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