X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=pld-builder.spec;h=2e6d33f8176450b939e0570acf772382e40ae037;hb=d37d3a926108b86a52d91a4c78f3bfb647b7b6a2;hp=470004ed0865f7120166e54953d143b14fb4a46d;hpb=f30503a52d8c59c1b1578b75839e588877914804;p=packages%2Fpld-builder.git diff --git a/pld-builder.spec b/pld-builder.spec index 470004e..2e6d33f 100644 --- a/pld-builder.spec +++ b/pld-builder.spec @@ -1,16 +1,14 @@ -%define snap 20101111 -Summary: PLD RPM builder environment +%define snap 20141202 +Summary: PLD Linux RPM builder environment Summary(pl.UTF-8): Środowisko budowniczego pakietów RPM dla PLD Name: pld-builder -Version: 0.5.%{snap} -Release: 3 +Version: 0.6.%{snap} +Release: 2 License: GPL Group: Development/Building Source0: %{name}-%{version}.tar.bz2 -# Source0-md5: 33912ce1eff84b97afc1d686015d5b28 -Source1: %{name}.init -Source2: %{name}.sysconfig -URL: http://cvs.pld-linux.org/cgi-bin/cvsweb/pld-builder.new/ +# Source0-md5: 2fae9f6f0db55331306ed5351219fdcb +URL: http://git.pld-linux.org/projects/pld-builder.new BuildRequires: python BuildRequires: rpm-pythonprov BuildRequires: rpmbuild(macros) >= 1.469 @@ -23,6 +21,7 @@ Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd Requires: /usr/lib/sendmail Requires: bash +Requires: bzip2 Requires: crondaemon Requires: filesystem >= 3.0-33 Requires: gnupg @@ -40,6 +39,23 @@ BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _sysconfdir /etc/pld-builder %define _datadir /usr/share/%{name} +# ensure these packaegs are never removed +%define keep_packages() { \ + f=/etc/rpm/sysinfo/Requirename; \ + for pkg in %*; do \ + grep -q "^$pkg$" $f && continue; \ + echo $pkg >> $f; \ + done; \ +} + +# remove packages from keep +%define undo_keep_packages() { \ + f=/etc/rpm/sysinfo/Requirename; \ + for pkg in %*; do \ + %{__sed} -i -e "/^$pkg$/d" $f; \ + done; \ +} + %description PLD RPM builder environment. This is the freshest "new" builder. @@ -61,7 +77,7 @@ http://cvs.pld-linux.org/cgi-bin/cvsweb/builder_ng/ Summary: PLD Builder Summary(pl.UTF-8): Budowniczy PLD Group: Development/Building -%pyrequires_eq python-modules +Requires: python-modules %description -n python-pld-builder PLD Builder Python code. @@ -78,20 +94,22 @@ Requires(pre): /bin/id Requires(pre): /usr/bin/getgid Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/sbin/useradd +Requires: basesystem Requires: bash Requires: filesystem >= 3.0-33 Requires: mount Requires: poldek >= 0.21-0.20070703.00.16 Requires: rpm-build +Requires: time Requires: tmpwatch # NOTE: vserver-packages is usually hidden, so you must install it manually with --noignore -Requires: basesystem Requires: vserver-packages Provides: group(builder) Provides: user(builder) # for srpm builder -Requires: cvs-client +Requires: git-core Requires: rpm-build-tools +Requires: rpm-specdump %description chroot This is the package to be installed in builder chroot. @@ -101,6 +119,11 @@ Ten pakiet należy zainstalować w środowisku chroot buildera. %prep %setup -q + +for a in config/*.dist; do + mv $a ${a%.dist} +done + %{__sed} -i -e ' /^root_dir/s,=.*,= "%{_sharedstatedir}/%{name}", /^conf_dir/s,=.*,= "%{_sysconfdir}", @@ -111,60 +134,6 @@ Ten pakiet należy zainstalować w środowisku chroot buildera. s,/spools/ready,/var/cache/%{name}/ready, ' config/builder.conf -cat <<'EOF' > poldek.conf -# locally cached rpms -[source] -name = ready -pri = -1 -type = dir -path = /var/cache/%{name}/ready/ -EOF - -cat <<'EOF' > crontab -SHELL=/bin/sh -MAILTO=root - -#* * * * * builder exec nice -n 19 %{_datadir}/bin/request-fetcher.sh -#* * * * * builder exec nice -n 19 %{_datadir}/bin/load-balancer.sh -#* * * * * builder exec nice -n 19 %{_datadir}/bin/file-sender.sh - -#0 0 * * * chroot /home/users/builder/chroot-ac nice -n 19 tmpwatch -m 240 /var/cache/%{name}/ready -EOF - -cat <<'EOF' > procmailrc -LOGFILE=procmail.log - -#:0 c -#mail.copy - -:0 -* ^X-New-PLD-Builder: -| %{_datadir}/bin/request-handler.sh - -:0 -* ^FROM_MAILER -/dev/null - -#:0 -#!root@example.org -EOF - -cat <<'EOF' > rpm.macros -# rpm macros for pld builder chroot - -# A colon separated list of desired locales to be installed; -# "all" means install all locale specific files. -%%_install_langs en_US - -# If non-zero, all erasures will be automagically repackaged. -%%_repackage_all_erasures 0 - -# Boolean (i.e. 1 == "yes", 0 == "no") that controls whether files -# marked as %doc should be installed. -# FIXME: excludedocs breaks kde build -#%%_excludedocs 1 -EOF - %build %{__make} %py_lint PLD_Builder @@ -174,11 +143,11 @@ rm -rf $RPM_BUILD_ROOT # python install -d $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder -cp -a PLD_Builder/*.py[co] $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder +cp -p PLD_Builder/*.py[co] $RPM_BUILD_ROOT%{py_scriptdir}/PLD_Builder # other install -d $RPM_BUILD_ROOT%{_sysconfdir} -cp -a config/{rsync-passwords,*.conf} $RPM_BUILD_ROOT%{_sysconfdir} +cp -p config/{rsync-passwords,*.conf} $RPM_BUILD_ROOT%{_sysconfdir} install -d $RPM_BUILD_ROOT%{_datadir}/{bin,admin} for a in bin/*.sh; do sed -e ' @@ -192,26 +161,26 @@ cp -a admin/*.sh $RPM_BUILD_ROOT%{_datadir}/admin install -d $RPM_BUILD_ROOT{%{_sharedstatedir}/%{name}/{spool/{buildlogs,builds,ftp,notify},lock},/etc/{sysconfig,rc.d/init.d}} install -d $RPM_BUILD_ROOT/home/services/builder/.gnupg install -d $RPM_BUILD_ROOT/home/services/builder/.ssh -install -d $RPM_BUILD_ROOT/home/services/builder/rpm/{BUILD,RPMS,SRPMS,SPECS,SOURCES,packages/CVS} +install -d $RPM_BUILD_ROOT/home/services/builder/rpm/{BUILD,RPMS,SRPMS,SPECS,SOURCES,packages} install -d $RPM_BUILD_ROOT/var/cache/%{name}/ready ln -s %{_bindir}/builder $RPM_BUILD_ROOT/home/services/builder/rpm/packages -echo "packages" > $RPM_BUILD_ROOT/home/services/builder/rpm/packages/CVS/Repository -echo ":pserver:cvs@cvs.pld-linux.org:/cvsroot" > $RPM_BUILD_ROOT/home/services/builder/rpm/packages/CVS/Root -touch $RPM_BUILD_ROOT/home/services/builder/rpm/packages/CVS/Entries{,.Static} - install -d $RPM_BUILD_ROOT/etc/poldek/repos.d -cp -a poldek.conf $RPM_BUILD_ROOT/etc/poldek/repos.d/%{name}.conf +cp -p etc/poldek.conf $RPM_BUILD_ROOT/etc/poldek/repos.d/%{name}.conf install -d $RPM_BUILD_ROOT/etc/rpm -cp -a rpm.macros $RPM_BUILD_ROOT/etc/rpm/macros.builder +cp -p etc/rpm.macros $RPM_BUILD_ROOT/etc/rpm/macros.builder # crontab install -d $RPM_BUILD_ROOT/etc/cron.d -cp -a crontab $RPM_BUILD_ROOT/etc/cron.d/%{name} +cp -p etc/crontab $RPM_BUILD_ROOT/etc/cron.d/%{name} -install %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/pld-builder -install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/pld-builder +# sudo +install -d $RPM_BUILD_ROOT/etc/sudoers.d +cp -p etc/sudo $RPM_BUILD_ROOT/etc/sudoers.d/%{name} + +install -p etc/pld-builder.init $RPM_BUILD_ROOT/etc/rc.d/init.d/pld-builder +cp -p etc/pld-builder.sysconfig $RPM_BUILD_ROOT/etc/sysconfig/pld-builder # from admin/fresh-queue.sh cd $RPM_BUILD_ROOT%{_sharedstatedir}/%{name} @@ -253,22 +222,26 @@ if [ "$1" = "0" ]; then %groupremove builder fi +%post chroot +%keep_packages pld-builder-chroot + %postun chroot if [ "$1" = "0" ]; then %userremove builder %groupremove builder + %undo_keep_packages pld-builder-chroot fi %files %defattr(644,root,root,755) -%doc README TODO -%doc user-manual.txt -%lang(pl) %doc jak-to-dziala.txt jak-wysylac-zlecenia.txt +%doc doc/{README,TODO,user-manual.txt} +%lang(pl) %doc doc/{jak-to-dziala.txt,jak-wysylac-zlecenia.txt} %attr(754,root,root) /etc/rc.d/init.d/pld-builder %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/pld-builder %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/cron.d/%{name} +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sudoers.d/%{name} %dir %{_sysconfdir} %attr(640,root,builder) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/*.conf @@ -313,11 +286,6 @@ fi # for srpm builder %attr(750,builder,builder) /home/services/builder/rpm/packages/builder -%dir %attr(750,builder,builder) /home/services/builder/rpm/packages/CVS -%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Repository -%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Root -%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Entries -%attr(640,builder,builder) %config(noreplace) %verify(not md5 mtime size) /home/services/builder/rpm/packages/CVS/Entries.Static # minimal but sane defaults for rpm inside chroot %config(noreplace) %verify(not md5 mtime size) /etc/rpm/macros.builder