%bcond_without fedora %define appname Test-AutoBuild # This macro is used for the continuous automated builds. It just # allows an extra fragment based on the timestamp to be appended # to the release. This distinguishes automated builds, from formal # Fedora RPM builds %define _extra_release %{?dist:%{dist}}%{!?dist:%{?extra_release:%{extra_release}}} Summary: Framework for performing continuous, unattended, automated software builds Name: perl-%{appname} Version: 1.2.0 Release: 2%{_extra_release} License: GPL Group: Development/Tools Url: http://autobuild.org/ Source: http://www.cpan.org/authors/id/D/DA/DANBERR/%{appname}-%{version}.tar.gz Patch1: Test-AutoBuild-remove-yumarch.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildArchitectures: noarch Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) BuildRequires: perl(BSD::Resource) >= 1.15 BuildRequires: perl(Config::Record) >= 1.1.0 BuildRequires: perl(Log::Log4perl) BuildRequires: perl(Template) BuildRequires: perl(IO::Scalar) BuildRequires: perl(Date::Manip) BuildRequires: perl(Class::MethodMaker) BuildRequires: perl(Test::Pod) BuildRequires: perl(Test::Pod::Coverage) BuildRequires: /usr/bin/cvs BuildRequires: /usr/bin/svn BuildRequires: /usr/bin/tla BuildRequires: /usr/bin/hg BuildRequires: /usr/bin/svk BuildRequires: fedora-usermgmt-devel # For Test::AutoBuild::Stage::ISOBuilder Requires: /usr/bin/mkisofs # For Test::AutoBuild::Stage::Yum # NB, removed by %patch1 #Requires: /usr/bin/yum-arch # For Test::AutoBuild::Stage::CreateRepo Requires: /usr/bin/createrepo # For Test::AutoBuild::Stage::Apt Requires: /usr/bin/genbasedir # For Test::AutoBuild::Publisher::XSLTransform Requires: /usr/bin/xsltproc %package account Summary: User account and directory structure for running builder Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} %{?FE_USERADD_REQ} %package cvs Summary: CVS source repository integration for autobuild engine Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} Requires: cvs >= 1.11 %package mercurial Summary: Mercurial source repository integration for autobuild engine Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} Requires: mercurial >= 0.7 %package subversion Summary: Subversion source repository integration for autobuild engine Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} Requires: subversion >= 1.0.0 %package tla Summary: GNU Arch source repository integration for autobuild engine Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} Requires: tla >= 1.1.0 %package svk Summary: SVK source repository integration for autobuild engine Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} Requires: perl-SVK >= 1.0 %package perforce Summary: Perforce source repository integration for autobuild engine Group: Development/Tools Url: http://autobuild.org/ Requires: perl-%{appname} = %{version}-%{release} # No RPMs of Perforce so we can't add a formal dep :-( # User willjust have to download p4 binary direct rom perforce.com #Requires: perforce %description Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds %description account Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package creates a 'builder' user account and the directory structure in /var/lib/builder necessary for running a builder instance using the default example configuration file. %description cvs Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package provides the module for integrating with the CVS version control system %description mercurial Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package provides the module for integrating with the Mercurial version control system %description subversion Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package provides the module for integrating with the Subversion version control system %description tla Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package provides the module for integrating with the GNU Arch version control system %description perforce Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package provides the module for integrating with the Perforce version control system. NB. this package requires that the 'p4' binary is provided in $PATH. %description svk Test-AutoBuild is a Perl framework for performing continuous, unattended, automated software builds. This sub-package provides the module for integrating with the SVK version control system %prep %setup -q -n %{appname}-%{version} %patch1 -p1 %build %{__perl} Makefile.PL INSTALLDIRS=vendor %__make %install %__rm -rf $RPM_BUILD_ROOT %__make install \ PERL_INSTALL_ROOT=$RPM_BUILD_ROOT \ sysconfdir=$RPM_BUILD_ROOT%{_sysconfdir} \ INSTALLVENDORMAN5DIR=$RPM_BUILD_ROOT%{_mandir}/man5 find $RPM_BUILD_ROOT -name perllocal.pod -exec rm -f {} \; find $RPM_BUILD_ROOT -name .packlist -exec rm -f {} \; %__cp $RPM_BUILD_ROOT%{_sysconfdir}/auto-build.d/auto-build.conf $RPM_BUILD_ROOT%{_sysconfdir}/auto-build.d/auto-build.conf-example # Create various bits wanted for the -account subRPM $RPM_BUILD_ROOT%{_bindir}/auto-build-make-root $RPM_BUILD_ROOT%{_localstatedir}/lib/builder echo "/1 :pserver:anonymous@cvs.gna.org:2401/cvs/testautobuild A" >> $RPM_BUILD_ROOT%{_localstatedir}/lib/builder/.cvspass %__chmod 0600 $RPM_BUILD_ROOT%{_localstatedir}/lib/builder/.cvspass echo "%%_topdir %{_localstatedir}/lib/builder/package-root/rpm" >> $RPM_BUILD_ROOT%{_localstatedir}/lib/builder/.rpmmacros %check make test %clean %__rm -rf $RPM_BUILD_ROOT %pre account %__id builder > /dev/null 2>&1 if [ $? == 0 ]; then # In case of upgrade from old version, relocate the home dir usermod -d %{_localstatedir}/lib/builder builder else %__fe_groupadd 28 -r builder &>/dev/null || : %__fe_useradd 28 -r -s /sbin/nologin -d %{_localstatedir}/lib/builder -M \ -c 'Test-AutoBuild build engine' -g builder builder &>/dev/null || : fi %postun account %__fe_userdel builder &>/dev/null || : %__fe_groupdel builder &>/dev/null || : %files %defattr(-,root,root) %doc AUTHORS %doc README %doc COPYING %doc CHANGES %doc UPGRADING %doc doc/* # Man pages %{_mandir}/man1/* %{_mandir}/man3/* %{_mandir}/man5/* # Config %dir %{_sysconfdir}/auto-build.d %config(noreplace) %{_sysconfdir}/auto-build.d/auto-build.conf-example %dir %{_sysconfdir}/auto-build.d/engine %config(noreplace) %{_sysconfdir}/auto-build.d/engine/*.conf %dir %{_sysconfdir}/auto-build.d/cron %config(noreplace) %{_sysconfdir}/auto-build.d/cron/*.conf %dir %{_sysconfdir}/auto-build.d/httpd %config(noreplace) %{_sysconfdir}/auto-build.d/httpd/*.conf %dir %{_sysconfdir}/auto-build.d/templates %config(noreplace) %{_sysconfdir}/auto-build.d/templates/* # Scripts & modules %attr(0755,root,root) %{_bindir}/auto-build %attr(0755,root,root) %{_bindir}/auto-build-make-root %{perl_vendorlib}/Test/AutoBuild.pm %dir %{perl_vendorlib}/Test/AutoBuild %{perl_vendorlib}/Test/AutoBuild/*.pm %dir %{perl_vendorlib}/Test/AutoBuild/Repository %{perl_vendorlib}/Test/AutoBuild/Repository/Disk.pm %dir %{perl_vendorlib}/Test/AutoBuild/Stage %{perl_vendorlib}/Test/AutoBuild/Stage/*.pm %dir %{perl_vendorlib}/Test/AutoBuild/Archive %{perl_vendorlib}/Test/AutoBuild/Archive/*.pm %dir %{perl_vendorlib}/Test/AutoBuild/ArchiveManager %{perl_vendorlib}/Test/AutoBuild/ArchiveManager/*.pm %dir %{perl_vendorlib}/Test/AutoBuild/Counter %{perl_vendorlib}/Test/AutoBuild/Counter/*.pm %dir %{perl_vendorlib}/Test/AutoBuild/Monitor %{perl_vendorlib}/Test/AutoBuild/Monitor/*.pm %dir %{perl_vendorlib}/Test/AutoBuild/Publisher %{perl_vendorlib}/Test/AutoBuild/Publisher/*.pm %files cvs %defattr(-,root,root) %doc README %{perl_vendorlib}/Test/AutoBuild/Repository/CVS.pm %files mercurial %defattr(-,root,root) %doc README %{perl_vendorlib}/Test/AutoBuild/Repository/Mercurial.pm %files subversion %defattr(-,root,root) %doc README %{perl_vendorlib}/Test/AutoBuild/Repository/Subversion.pm %files tla %defattr(-,root,root) %doc README %{perl_vendorlib}/Test/AutoBuild/Repository/GNUArch.pm %files svk %defattr(-,root,root) %doc README %{perl_vendorlib}/Test/AutoBuild/Repository/SVK.pm %files perforce %defattr(-,root,root) %doc README %{perl_vendorlib}/Test/AutoBuild/Repository/Perforce.pm %files account %defattr(-,root,root) %doc README # Builder home %config(noreplace) %{_sysconfdir}/auto-build.d/auto-build.conf %dir %attr(-,builder,builder) %{_localstatedir}/lib/builder %attr(-,builder,builder) %{_localstatedir}/lib/builder/* %config(noreplace) %attr(-,builder,builder) %{_localstatedir}/lib/builder/.rpmmacros %config(noreplace) %attr(-,builder,builder) %{_localstatedir}/lib/builder/.cvspass %changelog * Sun Sep 10 2006 Daniel Berrange - 1.2.0-2 - Use macros for all path prefixes - Added buildrequires on Test::Pod and Test::Pod::Coverage - Added docs/ dir to documentation files - Use macros for all programs used in build/install where available - Fixed buildroot to comply with Fedora standards - Make use of fedora-usermgmt package for creating builder account - Ensure main package owns all directories it creates in /etc/ & perl lib dir * Sat Sep 2 2006 Daniel Berrange - 1.2.0-1 - Misc fixes to bring closer in line with Fedora Extras guidelines * Thu Feb 2 2006 Daniel Berrange - 1.1.4-1 - Relocate from /var/builder to /var/lib/builder for FHS compliance * Wed Dec 28 2005 Daniel Berrange - 1.1.3-1 - Modular RPM packaging for source repository plugins