Package: cdbs
Severity: important
Tags: patch
Hello,
To modify hardening flags dpkg-buildflags uses the
DEB_BUILD_MAINT_OPTIONS environmental variable. For example to
enable all hardening flags the maintainer can set it in
debian/rules:
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
include /usr/share/cdbs/1/...
...
But $(shell ...) doesn't inherit exported variables, thus at the
moment it's not possible to use DEB_BUILD_MAINT_OPTIONS to modify
dpkg-buildflags hardening flags in cdbs.
The attached patch fixes this and passes DEB_BUILD_MAINT_OPTIONS
to dpkg-buildflags, but I'm not sure if it's the best way to do
it.
Regards,
Simon
-- System Information:
Debian Release: wheezy/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)
Kernel: Linux 3.1.0-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
--- cdbs-0.4.100/1/class/langcore.mk.in.orig 2011-12-13 17:30:45.000000000 +0100
+++ cdbs-0.4.100/1/class/langcore.mk.in 2011-12-13 17:31:46.000000000 +0100
@@ -24,10 +24,12 @@
# Resolve our defaults
ifneq (,$(wildcard /usr/bin/dpkg-buildflags))
-deb_cflags := $(shell dpkg-buildflags --get CFLAGS)
-deb_cppflags := $(shell dpkg-buildflags --get CPPFLAGS)
-deb_cxxflags := $(shell dpkg-buildflags --get CXXFLAGS)
-deb_ldflags := $(shell dpkg-buildflags --get LDFLAGS)
+# We need to pass (at least) DEB_BUILD_MAINT_OPTIONS to dpkg-buildflags so
+# package maintainers can enable/disable hardening flags.
+deb_cflags := $(shell DEB_BUILD_MAINT_OPTIONS="$(DEB_BUILD_MAINT_OPTIONS)" dpkg-buildflags --get CFLAGS)
+deb_cppflags := $(shell DEB_BUILD_MAINT_OPTIONS="$(DEB_BUILD_MAINT_OPTIONS)" dpkg-buildflags --get CPPFLAGS)
+deb_cxxflags := $(shell DEB_BUILD_MAINT_OPTIONS="$(DEB_BUILD_MAINT_OPTIONS)" dpkg-buildflags --get CXXFLAGS)
+deb_ldflags := $(shell DEB_BUILD_MAINT_OPTIONS="$(DEB_BUILD_MAINT_OPTIONS)" dpkg-buildflags --get LDFLAGS)
else
# TODO: Use above unconditionally when oldstable has dpkg >= 1.15.7
deb_cflags = -g