]> git.pld-linux.org Git - packages/pld-builder.git/blame - pld-builder.spec
- v0.3
[packages/pld-builder.git] / pld-builder.spec
CommitLineData
359ef865 1Summary: PLD RPM builder environment
4839b6d9 2Summary(pl.UTF-8): Środowisko budowniczego pakietów RPM dla PLD
4141c8e1 3Name: pld-builder
24cbe8f9
ER
4Version: 0.3
5Release: 0.1
4141c8e1
ER
6License: GPL
7Group: Development/Building
2cfb01a1 8Source0: %{name}-%{version}.tar.bz2
24cbe8f9 9# Source0-md5: e88f720f799bca7c968c3291a033cae7
78fe8cbc 10Source1: %{name}.init
11Source2: %{name}.sysconfig
4141c8e1 12URL: http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.new/
caa09625 13BuildRequires: python
6664c0a4 14BuildRequires: rpm-pythonprov
caa09625 15BuildRequires: rpmbuild(macros) >= 1.469
8fcdf5b9 16BuildRequires: sed >= 4.0
d700a8d1 17Requires(post,preun): /sbin/chkconfig
abe78017 18Requires(postun): /usr/sbin/userdel
6664c0a4 19Requires(pre): /bin/id
4c5c9ab5
ER
20Requires(pre): /usr/bin/getgid
21Requires(pre): /usr/sbin/groupadd
abe78017 22Requires(pre): /usr/sbin/useradd
2a46f3da 23Requires: bash
07aaec12 24Requires: crondaemon
e9a79f98 25Requires: gnupg
abe78017 26Requires: libuuid
774b8745 27Requires: python
2854b7c6 28Requires: python-pld-builder = %{version}-%{release}
d700a8d1 29Requires: rc-scripts
279f0ab2
ER
30Provides: group(builder)
31Provides: user(builder)
4141c8e1
ER
32BuildArch: noarch
33BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
34
2854b7c6
ER
35%define _sysconfdir /etc/pld-builder
36%define _datadir /usr/share/%{name}
4141c8e1
ER
37
38%description
359ef865 39PLD RPM builder environment. This is the freshest "new" builder.
4141c8e1
ER
40
41Other new and older attempts can be found from:
42http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder/
43http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.old/
44http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/
45
6f451f4a
JR
46%description -l pl.UTF-8
47Środowisko budowniczego pakietów RPM dla PLD. To jest najnowszy "nowy"
359ef865
JB
48builder.
49
6f451f4a 50Inne nowe i starsze próby można znaleźć pod:
359ef865
JB
51http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder/
52http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.old/
53http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/
4141c8e1 54
2854b7c6
ER
55%package -n python-pld-builder
56Summary: PLD Builder
4839b6d9 57Summary(pl.UTF-8): Budowniczy PLD
2854b7c6
ER
58Group: Development/Building
59%pyrequires_eq python-modules
60
61%description -n python-pld-builder
359ef865
JB
62PLD Builder Python code.
63
6f451f4a 64%description -n python-pld-builder -l pl.UTF-8
359ef865 65Kod pythonowy budowniczego PLD.
2854b7c6 66
279f0ab2
ER
67%package chroot
68Summary: PLD Builder chroot
be03cc8f 69Summary(pl.UTF-8): Środowisko chroot buildera PLD
279f0ab2
ER
70Group: Development/Building
71Requires(postun): /usr/sbin/userdel
72Requires(pre): /bin/id
73Requires(pre): /usr/bin/getgid
74Requires(pre): /usr/sbin/groupadd
75Requires(pre): /usr/sbin/useradd
2a46f3da 76Requires: bash
71255e9c 77Requires: mount
2cfb01a1 78Requires: poldek >= 0.21-0.20070703.00.16
279f0ab2 79Requires: rpm-build
8a0ffb64 80Requires: tmpwatch
279f0ab2
ER
81Provides: group(builder)
82Provides: user(builder)
f574023f
ER
83# for srpm builder
84Requires: cvs-client
85Requires: rpm-build-tools
279f0ab2
ER
86
87%description chroot
88This is the package to be installed in builder chroot.
89
be03cc8f
JB
90%description chroot -l pl.UTF-8
91Ten pakiet należy zainstalować w środowisku chroot buildera.
92
4141c8e1 93%prep
3c942db4 94%setup -q
4141c8e1 95
8fcdf5b9
ER
96mv jak-wysy?a?-zlecenia.txt jak-wysylac-zlecenia.txt
97
98%{__sed} -i -e '
c4999ea2 99 s,~/pld-builder.new/,%{_sharedstatedir}/%{name}/,
2854b7c6
ER
100 /^conf_dir/s,=.*,= "%{_sysconfdir}/",
101
102' PLD_Builder/path.py
103
47ca8a17
ER
104%{__sed} -i -e '
105 s,pld-linux\.org,example.org,g
774b8745 106 s,/spools/ready,/var/cache/%{name}/ready,
47ca8a17 107' config/builder.conf
4c5c9ab5 108
2cfb01a1
ER
109cat <<'EOF' > poldek.conf
110# locally cached rpms
111[source]
112name = ready
113pri = -1
114type = pndir
115path = /var/cache/%{name}/ready
116EOF
117
6db6f1d3
ER
118cat <<'EOF' > crontab
119SHELL=/bin/sh
120MAILTO=root
121
122#* * * * * builder exec nice -n 19 %{_datadir}/bin/request-fetcher.sh
123#* * * * * builder exec nice -n 19 %{_datadir}/bin/load-balancer.sh
124#* * * * * builder exec nice -n 19 %{_datadir}/bin/file-sender.sh
125
126#0 0 * * * chroot /home/users/builder/chroot-ac nice -n 19 tmpwatch -m 240 /var/cache/%{name}/ready
127EOF
128
71255e9c
ER
129cat <<'EOF' > procmailrc
130LOGFILE=procmail.log
131
132#:0 c
133#mail.copy
134
135:0
136* ^X-New-PLD-Builder:
137| %{_datadir}/bin/request-handler.sh
138
139:0
140* ^FROM_MAILER
141/dev/null
142
143#:0
144#!root@example.org
145EOF
146
2fdf337f
ER
147cat <<'EOF' > rpm.macros
148# rpm macros for pld builder chroot
149
150# A colon separated list of desired locales to be installed;
151# "all" means install all locale specific files.
152%%_install_langs en_US
153
154# If non-zero, all erasures will be automagically repackaged.
155%%_repackage_all_erasures 0
156
157# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files
158# marked as %doc should be installed.
6db6f1d3
ER
159# FIXME: excludedocs breaks kde build
160#%%_excludedocs 1
2fdf337f
ER
161EOF
162
4141c8e1
ER
163%build
164%{__make}
caa09625 165%py_lint PLD_Builder
4141c8e1
ER
166
167%install
168rm -rf $RPM_BUILD_ROOT
4141c8e1 169
2854b7c6
ER
170# python
171install -d $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder
172cp -a PLD_Builder/*.py[co] $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder
173
174# other
175install -d $RPM_BUILD_ROOT%{_sysconfdir}
176cp -a config/{rsync-passwords,*.conf} $RPM_BUILD_ROOT%{_sysconfdir}
177install -d $RPM_BUILD_ROOT%{_datadir}/{bin,admin}
178for a in bin/*.sh; do
179sed -e '
2854b7c6
ER
180 /cd ~\/pld-builder.new/d
181 s,python \(PLD_Builder.*.py\),python %{py_scriptdir}/\1c,
182' $a > $RPM_BUILD_ROOT%{_datadir}/bin/$(basename $a)
183done
184cp -a admin/*.sh $RPM_BUILD_ROOT%{_datadir}/admin
185
186# dirs
4c5c9ab5 187install -d $RPM_BUILD_ROOT{%{_sharedstatedir}/%{name}/{spool/{buildlogs,builds,ftp,notify},lock,www/{s,}rpms},/etc/{sysconfig,rc.d/init.d}}
9401ac92
ER
188install -d $RPM_BUILD_ROOT/home/services/builder/.gnupg
189install -d $RPM_BUILD_ROOT/home/services/builder/.ssh
f574023f 190install -d $RPM_BUILD_ROOT/home/services/builder/rpm/{BUILD,RPMS,SRPMS,{SOURCES,SPECS}/CVS}
2cfb01a1 191install -d $RPM_BUILD_ROOT/var/cache/%{name}/ready
f574023f
ER
192ln -s %{_bindir}/builder $RPM_BUILD_ROOT/home/services/builder/rpm/SPECS
193
194echo "SPECS" > $RPM_BUILD_ROOT/home/services/builder/rpm/SPECS/CVS/Repository
195echo ":pserver:cvs@cvs.pld-linux.org:/cvsroot" > $RPM_BUILD_ROOT/home/services/builder/rpm/SPECS/CVS/Root
196touch $RPM_BUILD_ROOT/home/services/builder/rpm/SPECS/CVS/Entries{,.Static}
78fe8cbc 197
2fdf337f 198install -d $RPM_BUILD_ROOT/etc/poldek/repos.d
2cfb01a1 199cp -a poldek.conf $RPM_BUILD_ROOT/etc/poldek/repos.d/%{name}.conf
2fdf337f
ER
200
201install -d $RPM_BUILD_ROOT/etc/rpm
202cp -a rpm.macros $RPM_BUILD_ROOT/etc/rpm/macros.builder
203
a4592569
ER
204# crontab
205install -d $RPM_BUILD_ROOT/etc/cron.d
206cp -a crontab $RPM_BUILD_ROOT/etc/cron.d/%{name}
207
78fe8cbc 208install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/pld-builder
209install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/pld-builder
2854b7c6 210
3f38ca41
ER
211# from admin/fresh-queue.sh
212cd $RPM_BUILD_ROOT%{_sharedstatedir}/%{name}
279f0ab2 213install -d spool/{builds,buildlogs,notify,ftp} www/srpms lock
3f38ca41
ER
214echo 0 > www/max_req_no
215echo 0 > spool/last_req_no
216echo -n > spool/processed_ids
217echo -n > spool/got_lock
218echo '<queue/>' > spool/queue
219echo '<queue/>' > spool/req_queue
220if [ "$binary_builders" ]; then
221 for bb in $binary_builders; do
222 echo '<queue/>' > spool/queue-$bb
223 done
224fi
225
4141c8e1
ER
226%clean
227rm -rf $RPM_BUILD_ROOT
228
abe78017 229%pre
279f0ab2 230%groupadd -g 181 builder
2a46f3da 231%useradd -u 182 -g builder -c "bin builder" -s /bin/bash -d /home/services/builder builder
abe78017 232
279f0ab2
ER
233%pre chroot
234%groupadd -g 181 builder
2a46f3da 235%useradd -u 182 -g builder -c "bin builder" -s /bin/bash -d /home/services/builder builder
279f0ab2 236
78fe8cbc 237%post
238/sbin/chkconfig --add %{name}
d08e805a 239%service %{name} restart
78fe8cbc 240
241%preun
242if [ "$1" = "0" ]; then
d700a8d1
ER
243 %service %{name} stop
244 /sbin/chkconfig --del %{name}
78fe8cbc 245fi
246
abe78017
ER
247%postun
248if [ "$1" = "0" ]; then
279f0ab2 249 %userremove builder
279f0ab2
ER
250 %groupremove builder
251fi
252
253%postun chroot
254if [ "$1" = "0" ]; then
255 %userremove builder
256 %groupremove builder
abe78017
ER
257fi
258
4141c8e1
ER
259%files
260%defattr(644,root,root,755)
261%doc README TODO
8fcdf5b9
ER
262%doc user-manual.txt
263%lang(pl) %doc jak-to-dziala.txt jak-wysylac-zlecenia.txt
264
3f38ca41
ER
265%attr(754,root,root) /etc/rc.d/init.d/pld-builder
266%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pld-builder
267
6db6f1d3
ER
268%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name}
269
2854b7c6
ER
270%dir %{_sysconfdir}
271%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*
272
273%dir %{_datadir}
274%dir %{_datadir}/bin
275%attr(755,root,root) %{_datadir}/bin/*
276%dir %{_datadir}/admin
277%attr(755,root,root) %{_datadir}/admin/*
278
279%dir %{_sharedstatedir}/%{name}
3f38ca41 280
279f0ab2
ER
281%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool
282%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/buildlogs
9401ac92
ER
283%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/builds
284%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/ftp
279f0ab2 285%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/spool/notify
3f38ca41 286
9401ac92
ER
287%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/got_lock
288%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/last_req_no
289%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/processed_ids
290%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/queue
291%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/spool/req_queue
3f38ca41 292
279f0ab2 293%dir %attr(775,root,builder) %{_sharedstatedir}/%{name}/lock
3f38ca41 294
c4999ea2
ER
295%dir %{_sharedstatedir}/%{name}/www
296%dir %{_sharedstatedir}/%{name}/www/rpms
297%dir %{_sharedstatedir}/%{name}/www/srpms
9401ac92 298%attr(644,builder,builder) %config(noreplace) %verify(not md5 mtime size) %{_sharedstatedir}/%{name}/www/max_req_no
78fe8cbc 299
279f0ab2 300%dir %attr(750,builder,builder) /home/services/builder
9401ac92
ER
301%dir %attr(750,builder,builder) /home/services/builder/.gnupg
302%dir %attr(700,builder,builder) /home/services/builder/.ssh
279f0ab2
ER
303
304%files chroot
305%defattr(644,root,root,755)
306%dir %attr(750,builder,builder) /home/services/builder
9401ac92
ER
307%dir %attr(750,builder,builder) /home/services/builder/rpm
308%dir %attr(750,builder,builder) /home/services/builder/rpm/BUILD
309%dir %attr(750,builder,builder) /home/services/builder/rpm/RPMS
f574023f 310%dir %attr(750,builder,builder) /home/services/builder/rpm/SRPMS
9401ac92
ER
311%dir %attr(750,builder,builder) /home/services/builder/rpm/SOURCES
312%dir %attr(750,builder,builder) /home/services/builder/rpm/SPECS
f574023f
ER
313
314# for srpm builder
315%attr(750,builder,builder) /home/services/builder/rpm/SPECS/builder
316%dir %attr(750,builder,builder) /home/services/builder/rpm/SPECS/CVS
317%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/SPECS/CVS/Repository
318%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/SPECS/CVS/Root
319%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/SPECS/CVS/Entries
320%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/SPECS/CVS/Entries.Static
279f0ab2 321
2fdf337f
ER
322# minimal but sane defaults for rpm inside chroot
323%config(noreplace) %verify(not md5 mtime size) /etc/rpm/macros.builder
324
2cfb01a1
ER
325# locally cached rpms from bin-builder
326%config(noreplace) %verify(not md5 mtime size) /etc/poldek/repos.d/%{name}.conf
53b9c170 327%dir /var/cache/%{name}
2cfb01a1
ER
328%dir %attr(775,root,builder) /var/cache/%{name}/ready
329
2854b7c6
ER
330%files -n python-pld-builder
331%defattr(644,root,root,755)
332%{py_scriptdir}/PLD_Builder
This page took 1.354875 seconds and 4 git commands to generate.