patch for only using selinux on Linux, prepare to upload
[debian/sudo] / debian / rules
index 07385b362b715974ba5075a47e36b835fd984316..dfa19ed78cdb19120e1e97bc68832b5e34f95627 100755 (executable)
 
 export DH_VERBOSE=1
 
-CFLAGS = -O2 -Wall -Wno-comment
-ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
-CFLAGS += -g
+CFLAGS = `dpkg-buildflags --get CFLAGS`
+CFLAGS += -Wall -Wno-comment
+LDFLAGS = `dpkg-buildflags --get LDFLAGS`
+CPPFLAGS = `dpkg-buildflags --get CPPFLAGS`
+
+DEB_HOST_ARCH_OS ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
+ifeq ($(DEB_HOST_ARCH_OS),linux)
+  configure_args += --with-selinux
 endif
-export CFLAGS
 
-config: config-stamp
-config-stamp:
+configure: configure-stamp
+configure-stamp:
        dh_testdir
+       cp -f /usr/share/misc/config.sub config.sub
+       cp -f /usr/share/misc/config.guess config.guess
 
        # simple version
        mkdir -p build-simple
-       cd build-simple && NROFFPROG=/usr/bin/nroff ../configure \
+       cd build-simple && NROFFPROG=/usr/bin/nroff CFLAGS="$(CFLAGS)" \
+           CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" $(CURDIR)/configure \
                --prefix=/usr -v \
                --with-all-insults \
-               --with-devel --with-pam --with-fqdn \
-               --with-logging=syslog --with-logfac=authpriv \
-               --with-env-editor --with-editor=/usr/bin/editor \
-               --with-timeout=15 --with-password-timeout=0 \
-               --disable-root-mailer --disable-setresuid \
+               --with-pam \
+               --with-fqdn \
+               --with-logging=syslog \
+               --with-logfac=authpriv \
+               --with-env-editor \
+               --with-editor=/usr/bin/editor \
+               --with-timeout=15 \
+               --with-password-timeout=0 \
+               --with-passprompt="[sudo] password for %p: " \
+               --disable-root-mailer \
                --with-sendmail=/usr/sbin/sendmail \
-               --mandir=/usr/share/man --libexecdir=/usr/lib/sudo \
-               --with-secure-path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
+               --with-timedir=/var/lib/sudo \
+               --mandir=/usr/share/man \
+               --libexecdir=/usr/lib/sudo \
+               $(configure_args)
 
        # LDAP version
        mkdir -p build-ldap
-       cd build-ldap && NROFFPROG=/usr/bin/nroff ../configure \
+       cd build-ldap && NROFFPROG=/usr/bin/nroff CFLAGS="$(CFLAGS)" \
+           CPPFLAGS="$(CPPFLAGS)" LDFLAGS="$(LDFLAGS)" $(CURDIR)/configure \
                --prefix=/usr -v \
                --with-all-insults \
-               --with-exempt=sudo --with-pam --with-ldap --with-fqdn \
-               --with-logging=syslog --with-logfac=authpriv \
-               --with-env-editor --with-editor=/usr/bin/editor \
-               --with-timeout=15 --with-password-timeout=0 \
-               --disable-root-mailer --disable-setresuid \
+               --with-pam \
+               --with-ldap \
+               --with-fqdn \
+               --with-logging=syslog \
+               --with-logfac=authpriv \
+               --with-env-editor \
+               --with-editor=/usr/bin/editor \
+               --with-timeout=15 \
+               --with-password-timeout=0 \
+               --with-passprompt="[sudo] password for %p: " \
+               --disable-root-mailer \
+               --disable-setresuid \
                --with-sendmail=/usr/sbin/sendmail \
-               --with-ldap-conf-file=/etc/ldap/ldap.conf \
-               --mandir=/usr/share/man --libexecdir=/usr/lib/sudo \
+               --with-ldap-conf-file=/etc/sudo-ldap.conf \
+               --mandir=/usr/share/man \
+               --libexecdir=/usr/lib/sudo \
                --with-secure-path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
 
-       touch config-stamp
+       touch configure-stamp
 
-build: build-stamp
-build-stamp: config-stamp
+build: build-arch build-indep
+build-arch: build-stamp
+build-indep: build-stamp
+build-stamp: configure-stamp
        dh_testdir
 
        # ensure our pod changes get picked up
-       $(MAKE) -C build-simple sudoers.man.in sudo.man.in visudo.man.in
+       $(MAKE) -C doc sudoers.man.in sudo.man.in visudo.man.in
 
        $(MAKE) -C build-simple
        $(MAKE) -C build-ldap
 
+       $(MAKE) -C build-simple check
+
        touch build-stamp
 
 clean:
        dh_testdir
        dh_testroot
-       rm -f config-stamp build-stamp
+       rm -f configure-stamp build-stamp
        rm -rf build-simple build-ldap
        rm -f config.cache
-
-       -test -r /usr/share/misc/config.sub && \
-               cp -f /usr/share/misc/config.sub config.sub
-       -test -r /usr/share/misc/config.guess && \
-               cp -f /usr/share/misc/config.guess config.guess
-
        dh_clean
 
 install: build-stamp
        dh_testdir
        dh_testroot
-       dh_clean -k
+       dh_prep
        dh_installdirs
 
        $(MAKE) -C build-simple install DESTDIR=$(CURDIR)/debian/sudo
        $(MAKE) -C build-ldap   install DESTDIR=$(CURDIR)/debian/sudo-ldap
 
        # remove stuff we don't want
-       rm -f   $(CURDIR)/debian/sudo/etc/sudoers \
-               $(CURDIR)/debian/sudo-ldap/etc/sudoers
+       rm -f   debian/sudo*/etc/sudoers \
+               debian/sudo*/usr/share/doc/sudo/LICENSE* \
+               debian/sudo*/usr/share/doc/sudo/ChangeLog
+
+       # move upstream-installed docs to the right place for ldap package
+       mv      debian/sudo-ldap/usr/share/doc/sudo/* \
+               debian/sudo-ldap/usr/share/doc/sudo-ldap/
+       rmdir   debian/sudo-ldap/usr/share/doc/sudo
+
+       # move sample files to the examples folder
+       mv      debian/sudo/usr/share/doc/sudo/sample.* \
+               debian/sudo/usr/share/doc/sudo/examples/
+       mv      debian/sudo-ldap/usr/share/doc/sudo-ldap/sample.* \
+               debian/sudo-ldap/usr/share/doc/sudo-ldap/examples/
 
        # and install things we do want that make install doesn't know about
-       install -o root -g root -m 0644 $(CURDIR)/debian/sudo.pam \
+       install -o root -g root -m 0644 debian/sudo.pam \
                debian/sudo/etc/pam.d/sudo
-       install -o root -g root -m 0644 $(CURDIR)/debian/sudo.pam \
+       install -o root -g root -m 0644 debian/sudo.pam \
                debian/sudo-ldap/etc/pam.d/sudo
 
-       install -o root -g root -m 0644 $(CURDIR)/debian/sudo.lintian \
+       install -o root -g root -m 0644 debian/sudo.lintian \
                debian/sudo/usr/share/lintian/overrides/sudo
-       install -o root -g root -m 0644 $(CURDIR)/debian/sudo-ldap.lintian \
+       install -o root -g root -m 0644 debian/sudo-ldap.lintian \
                debian/sudo-ldap/usr/share/lintian/overrides/sudo-ldap
 
+       install -o root -g root -m 0440 debian/sudoers \
+               debian/sudo/etc/sudoers
+       install -o root -g root -m 0440 debian/sudoers \
+               debian/sudo-ldap/etc/sudoers
+
+       install -o root -g root -m 0440 debian/README \
+               debian/sudo/etc/sudoers.d/README
+       install -o root -g root -m 0440 debian/README \
+               debian/sudo-ldap/etc/sudoers.d/README
+
+       install -o root -g root -m 0644 debian/sudo.service \
+               debian/sudo/lib/systemd/system/sudo.service
+       install -o root -g root -m 0644 debian/sudo.service \
+               debian/sudo-ldap/lib/systemd/system/sudo.service
+
 binary-indep: build install
 
 binary-arch: build install
        dh_testdir
        dh_testroot
-       dh_installdocs
-       dh_installexamples -A sudoers
-       dh_installinit -psudo -psudo-ldap
-       dh_installmanpages fnmatch.3
+       dh_installdocs -A
+       dh_installinit -psudo -psudo-ldap --name=sudo
+       dh_installman -A
        dh_installinfo -A
-       dh_installchangelogs CHANGES
+       dh_installchangelogs ChangeLog 
        dh_strip
        dh_compress
        dh_fixperms
        chown root.root debian/sudo/usr/bin/sudo debian/sudo-ldap/usr/bin/sudo
        chmod 4755 debian/sudo/usr/bin/sudo debian/sudo-ldap/usr/bin/sudo
+       chmod 0440      debian/sudo/etc/sudoers.d/README \
+                       debian/sudo-ldap/etc/sudoers.d/README
        dh_installdeb
        dh_shlibdeps
        dh_gencontrol
@@ -116,4 +165,4 @@ binary-arch: build install
        dh_builddeb
 
 binary: binary-indep binary-arch
-.PHONY: build clean binary-indep binary-arch binary install
+.PHONY: configure build-indep build-arch build clean binary-indep binary-arch binary install