Package: tellico
Version: 2.3.5+dfsg.1-3
Severity: normal
Tags: patch

Dear Maintainer,

The LDFLAGS hardening flags are missing because they are
overwritten in debian/rules. The real source of this problem is
in variables.mk (a separate bug was already filed) but as the
patch additionally simplifies debian/rules I reported it here as
well.

DEB_*_MAINT_APPEND is the preferred way to set additional flags
(see man dpkg-buildflags for more information). For more
hardening information please have a look at [1], [2] and [3].

The following patch fixes the issue.

diff -Nru tellico-2.3.5+dfsg.1/debian/rules tellico-2.3.5+dfsg.1/debian/rules
--- tellico-2.3.5+dfsg.1/debian/rules   2011-12-20 01:08:43.000000000 +0100
+++ tellico-2.3.5+dfsg.1/debian/rules   2012-04-18 02:00:11.000000000 +0200
@@ -5,17 +5,13 @@
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
-DEB_KDE_LINK_WITH_AS_NEEDED = yes
-
-include /usr/share/pkg-kde-tools/makefiles/1/variables.mk
+export DEB_LDFLAGS_MAINT_APPEND = -Wl,--no-undefined -Wl,--as-needed
 
 %:
-       dh $@ --buildsystem=cmake --builddirectory=build
+       dh $@ --with kde
 
 override_dh_auto_configure:
-       dh_auto_configure -- \
-               $(DEB_CMAKE_KDE4_FLAGS) \
-               $(DEB_CMAKE_CUSTOM_FLAGS) \
+       dh_auto_configure --buildsystem=kde -- \
                -DENABLE_WEBCAM=false
 
 override_dh_shlibdeps:

To check if all flags were correctly enabled you can use
`hardening-check` from the hardening-includes package and check
the build log (for example with blhc [4]) (hardening-check
doesn't catch everything):

    $ hardening-check /usr/bin/tellico /usr/bin/librecad
    /usr/bin/tellico:
     Position Independent Executable: no, normal executable!
     Stack protected: yes
     Fortify Source functions: yes (some protected functions found)
     Read-only relocations: yes
     Immediate binding: no not found!
    /usr/bin/librecad:
     Position Independent Executable: no, normal executable!
     Stack protected: yes
     Fortify Source functions: yes (some protected functions found)
     Read-only relocations: yes
     Immediate binding: no not found!

(Position Independent Executable and Immediate binding is not
enabled by default.)

Use find -type f \( -executable -o -name \*.so\* \) -exec
hardening-check {} + on the build result to check all files.

Regards,
Simon

[1]: https://wiki.debian.org/ReleaseGoals/SecurityHardeningBuildFlags
[2]: https://wiki.debian.org/HardeningWalkthrough
[3]: https://wiki.debian.org/Hardening
[4]: http://ruderich.org/simon/blhc/
-- 
+ privacy is necessary
+ using gnupg http://gnupg.org
+ public key id: 0x92FEFDB7E44C32F9

Attachment: signature.asc
Description: Digital signature

Reply via email to