[systemd: 2/2] Automatically discover whether to run autoreconf and add BuildRequires

Michal Schmidt michich at fedoraproject.org
Tue Apr 9 15:34:15 UTC 2013


commit 77289efccae68866acbaf23d8558660361c42307
Author: Michal Schmidt <mschmidt at redhat.com>
Date:   Tue Apr 9 16:19:19 2013 +0200

    Automatically discover whether to run autoreconf and add BuildRequires
    
    Always use git to apply patches. BuildRequire git if we have any
    patches. Add a "num_patches" macro to detect this.

 systemd.spec |   79 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 43 insertions(+), 36 deletions(-)
---
diff --git a/systemd.spec b/systemd.spec
index a443caf..7631f41 100644
--- a/systemd.spec
+++ b/systemd.spec
@@ -12,12 +12,33 @@
 
 Name:           systemd
 Url:            http://www.freedesktop.org/wiki/Software/systemd
-
 Version:        201
-Release:        1%{?gitcommit:.git%{gitcommit}}%{?dist}
+Release:        2%{?gitcommit:.git%{gitcommit}}%{?dist}
 # For a breakdown of the licensing, see README
 License:        LGPLv2+ and MIT and GPLv2+
 Summary:        A System and Service Manager
+
+%if %{defined gitcommit}
+# Snapshot tarball can be created using: ./make-git-shapshot.sh [gitcommit]
+Source0:        %{name}-git%{gitcommit}.tar.xz
+%else
+Source0:        http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
+%endif
+# Fedora's default preset policy
+Source1:        90-default.preset
+Source5:        90-display-manager.preset
+# Feodora's SysV convert script. meh.
+Source2:        systemd-sysv-convert
+# Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away
+Source4:        listen.conf
+# Prevent accidental removal of the systemd package
+Source6:        yum-protect-systemd.conf
+
+# kernel-install patch for grubby, drop if grubby is obsolete
+Patch1000:      kernel-install-grubby.patch
+
+%global num_patches %{lua: c=0; for i,p in ipairs(patches) do c=c+1; end; print(c);}
+
 BuildRequires:  libcap-devel
 BuildRequires:  tcp_wrappers-devel
 BuildRequires:  pam-devel
@@ -42,11 +63,14 @@ BuildRequires:  intltool
 BuildRequires:  gperf
 BuildRequires:  gtk-doc
 BuildRequires:  python2-devel
-#%if %{defined gitcommit}
+%if %{defined gitcommit}%{num_patches}
 BuildRequires:  automake
 BuildRequires:  autoconf
 BuildRequires:  libtool
-#%endif
+%endif
+%if %{num_patches}
+BuildRequires:  git
+%endif
 Requires(post): coreutils
 Requires(post): gawk
 Requires(post): sed
@@ -57,21 +81,6 @@ Requires(pre):  /usr/sbin/groupadd
 Requires:       dbus
 Requires:       nss-myhostname
 Requires:       %{name}-libs = %{version}-%{release}
-%if %{defined gitcommit}
-# Snapshot tarball can be created using: ./make-git-shapshot.sh [gitcommit]
-Source0:        %{name}-git%{gitcommit}.tar.xz
-%else
-Source0:        http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
-%endif
-# Fedora's default preset policy
-Source1:        90-default.preset
-Source5:        90-display-manager.preset
-# Feodora's SysV convert script. meh.
-Source2:        systemd-sysv-convert
-# Stop-gap, just to ensure things work fine with rsyslog without having to change the package right-away
-Source4:        listen.conf
-# Prevent accidental removal of the systemd package
-Source6:        yum-protect-systemd.conf
 
 Provides:       /bin/systemctl
 Provides:       /sbin/shutdown
@@ -96,13 +105,6 @@ Provides:       nss-myhostname = 0.4
 Obsoletes:      systemd-analyze < 198
 Provides:       systemd-analyze = 198
 
-# patches for dracut's initramfs
-# remove for new git snapshots or releases
-BuildRequires:  git
-
-# kernel-install patch for grubby, drop if grubby is obsolete
-Patch1000:      kernel-install-grubby.patch
-
 %description
 systemd is a system and service manager for Linux, compatible with
 SysV and LSB init scripts. systemd provides aggressive parallelization
@@ -171,7 +173,7 @@ glib-based applications using libudev functionality.
 %prep
 %setup -q %{?gitcommit:-n %{name}-git%{gitcommit}}
 
-if command -v git &>/dev/null && [ -n "%{patches}" ]; then
+%if %{num_patches}
     git init
     git config user.email "systemd-maint at redhat.com"
     git config user.name "Fedora systemd team"
@@ -180,16 +182,16 @@ if command -v git &>/dev/null && [ -n "%{patches}" ]; then
 
     # Apply all the patches.
     git am %{patches}
-else
-
-# kernel-install patch for grubby, drop if grubby is obsolete
-%patch1000 -p1
-
-fi
+%endif
 
 %build
-#%{?gitcommit: ./autogen.sh }
-autoreconf
+%if %{defined gitcommit}
+    ./autogen.sh
+%else
+    %if %{num_patches}
+        autoreconf
+    %endif
+%endif
 
 %configure \
         --libexecdir=%{_prefix}/lib \
@@ -201,7 +203,7 @@ make %{?_smp_mflags} V=1
 
 %install
 %make_install
-find %{buildroot} \( -name '*.a' -o -name '*.la' \) -exec rm {} \;
+find %{buildroot} \( -name '*.a' -o -name '*.la' \) -delete
 
 # udev links
 mkdir -p %{buildroot}/%{_sbindir}
@@ -751,6 +753,11 @@ fi
 %{_libdir}/pkgconfig/gudev-1.0*
 
 %changelog
+* Tue Apr 09 2013 Michal Schmidt <mschmidt at redhat.com> - 201-2
+- Automatically discover whether to run autoreconf and add autotools and git
+  BuildRequires based on the presence of patches to be applied.
+- Use find -delete.
+
 * Mon Apr  8 2013 Lennart Poettering <lpoetter at redhat.com> - 201-1
 - New upstream release
 


More information about the scm-commits mailing list