Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: /, bin/build/
Date: Tue, 01 Apr 2014 16:39:10
Message-Id: 1396370196.f7b9302ecf014c0699f9114556755a7294ef2974.dywi@gentoo
1 commit: f7b9302ecf014c0699f9114556755a7294ef2974
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Mon Mar 31 17:51:40 2014 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Tue Apr 1 16:36:36 2014 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=f7b9302e
7
8 Makefile: $ROVERLAY_TARGET_TYPE
9
10 ROVERLAY_TARGET_TYPE controls which files get installed:
11
12 when gentoo:
13 => config/R-overlay.conf.install
14 => no licenses file
15
16 when others:
17 => config/R-overlay.conf.install.others
18 => install files/licenses to $DATADIR/licenses
19
20 Also added a "generate-licenses" target for creating files/licenses.
21
22 ---
23 Makefile | 32 ++++++++++++++++++++++------
24 bin/build/make-licenses.sh | 53 ++++++++++++++++++++++++++++++++++++++++++++++
25 2 files changed, 79 insertions(+), 6 deletions(-)
26
27 diff --git a/Makefile b/Makefile
28 index 9a41011..06933f8 100644
29 --- a/Makefile
30 +++ b/Makefile
31 @@ -9,13 +9,16 @@ CONFDIR := $(DESTDIR)etc
32
33 BUILDDIR := ./tmp
34
35 +ROVERLAY_TARGET_TYPE := gentoo
36 +
37
38 PYMOD_FILE_LIST := ./roverlay_files.list
39
40 -MANIFEST := MANIFEST
41 -MANIFEST_TMP := $(MANIFEST).tmp
42 +MANIFEST := $(CURDIR)/MANIFEST
43 +LICENSES_FILE := $(CURDIR)/files/licenses
44
45 MANIFEST_GEN := ./bin/build/create_manifest.sh
46 +LICENSES_GEN := ./bin/build/make-licenses.sh
47
48 RV_SETUP := ./bin/roverlay-setup
49
50 @@ -90,10 +93,18 @@ htmldoc: $(SRC_DOCDIR)/rst/usage.rst
51 PHONY += generate-doc
52 generate-doc: htmldoc
53
54 +$(MANIFEST): $(MANIFEST_GEN) FORCE
55 + $< > $@
56 +
57 PHONY += generate-manifest
58 -generate-manifest: $(MANIFEST_GEN)
59 - $(MANIFEST_GEN) > $(MANIFEST_TMP)
60 - mv -- $(MANIFEST_TMP) $(MANIFEST)
61 +generate-manifest: $(MANIFEST)
62 +
63 +$(LICENSES_FILE): $(LICENSES_GEN) FORCE | $(CURDIR)/files
64 + $< $@
65 +
66 +PHONY += generate-licenses
67 +generate-licenses: $(CURDIR)/files/licenses
68 +
69
70
71 $(CURDIR)/config/R-overlay.conf.install: $(RV_SETUP) FORCE | $(CURDIR)/config
72 @@ -133,7 +144,7 @@ generate-config: \
73
74
75 PHONY += generate-files
76 -generate-files: generate-config generate-doc generate-manifest
77 +generate-files: generate-config generate-doc generate-manifest generate-licenses
78
79 # creates a src tarball (.tar.bz2)
80 # !!! does not include config files
81 @@ -167,8 +178,13 @@ install-config-common:
82 install -m 0644 -t $(CONFDIR)/roverlay \
83 config/description_fields.conf config/repo.list \
84 config/package_rules config/hookrc
85 +ifeq ($(ROVERLAY_TARGET_TYPE),gentoo)
86 install -m 0644 -T \
87 config/R-overlay.conf.install $(CONFDIR)/roverlay/R-overlay.conf
88 +else
89 + install -m 0644 -T \
90 + config/R-overlay.conf.install.others $(CONFDIR)/roverlay/R-overlay.conf
91 +endif
92
93 PHONY += install-config-compressed
94 install-config-compressed: install-config-common
95 @@ -187,9 +203,13 @@ install-config: install-config-common
96 PHONY += install-data
97 install-data:
98 install -m 0755 -d \
99 + $(DATADIR)/roverlay \
100 $(DATADIR)/roverlay/shlib $(DATADIR)/roverlay/hooks \
101 $(DATADIR)/roverlay/eclass $(DATADIR)/roverlay/mako_templates
102
103 +ifneq ($(ROVERLAY_TARGET_TYPE),gentoo)
104 + install -m 0644 -- $(LICENSES_FILE) $(DATADIR)/roverlay/licenses
105 +endif
106 install -m 0644 -t $(DATADIR)/roverlay/hooks files/hooks/*.sh
107 install -m 0644 -t $(DATADIR)/roverlay/shlib files/shlib/*.sh
108 chmod 0775 $(DATADIR)/roverlay/hooks/mux.sh
109
110 diff --git a/bin/build/make-licenses.sh b/bin/build/make-licenses.sh
111 new file mode 100755
112 index 0000000..77ae1d0
113 --- /dev/null
114 +++ b/bin/build/make-licenses.sh
115 @@ -0,0 +1,53 @@
116 +#!/bin/sh
117 +#
118 +# Creates a license list file for roverlay.
119 +#
120 +# Usage: make-licenses [dest_file] [compression]
121 +#
122 +# Environment variables:
123 +# * PORTDIR: path to the main tree (= root of the "licenses" dir)
124 +#
125 +set -u
126 +
127 +die() { echo "${1:-error}" 1>&2; exit ${2:-2}; }
128 +
129 +mkmap() {
130 + local x
131 + # find -type f, ls -1, ...
132 + set +f
133 + for x in "${PORTDIR}/licenses/"*; do
134 + [ ! -f "${x}" ] || echo "${x##*/}"
135 + done
136 +}
137 +
138 +mkmap_bz2() { mkmap | bzip2 -c; }
139 +mkmap_xz() { mkmap | xz -c; }
140 +mkmap_gz() { mkmap | gzip -c; }
141 +
142 +get_mkmap_func() {
143 + case "${1-}" in
144 + '') func=mkmap ;;
145 + bz2|xz|gz) func=mkmap_${1} ;;
146 + *) die "unknown compression '${1-}'." 64 ;;
147 + esac
148 +}
149 +
150 +if [ -z "${PORTDIR-}" ]; then
151 + PORTDIR="$(portageq get_repo_path / gentoo)"
152 + #PORTDIR="$(portageq get_repo_path $(portageq envvar EROOT) gentoo)"
153 + [ -n "${PORTDIR}" ] || PORTDIR="$(portageq envvar PORTDIR)"
154 + [ -n "${PORTDIR}" ] || die "failed to get \$PORTDIR"
155 +fi
156 +
157 +case "${1-}" in
158 + ''|'-')
159 + get_mkmap_func "${2-}" && ${func}
160 + ;;
161 + *.bz2|*.xz|*.gz)
162 + [ -z "${2-}" ] || [ "${2}" = "${1##*.}" ] || die
163 + get_mkmap_func "${1##*.}" && ${func} > "${1}"
164 + ;;
165 + *)
166 + get_mkmap_func "${2-}" && ${func} > "${1}"
167 + ;;
168 +esac