[arch-commits] Commit in hardening-wrapper/repos (4 files)
Daniel Micay
thestinger at archlinux.org
Tue Jul 22 23:05:14 UTC 2014
Date: Wednesday, July 23, 2014 @ 01:05:14
Author: thestinger
Revision: 116123
archrelease: copy trunk to community-any
Added:
hardening-wrapper/repos/community-any/
hardening-wrapper/repos/community-any/PKGBUILD
(from rev 116122, hardening-wrapper/trunk/PKGBUILD)
hardening-wrapper/repos/community-any/cc-wrapper.sh
(from rev 116122, hardening-wrapper/trunk/cc-wrapper.sh)
hardening-wrapper/repos/community-any/path.sh
(from rev 116122, hardening-wrapper/trunk/path.sh)
---------------+
PKGBUILD | 26 +++++++++++++++
cc-wrapper.sh | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
path.sh | 1
3 files changed, 123 insertions(+)
Copied: hardening-wrapper/repos/community-any/PKGBUILD (from rev 116122, hardening-wrapper/trunk/PKGBUILD)
===================================================================
--- community-any/PKGBUILD (rev 0)
+++ community-any/PKGBUILD 2014-07-22 23:05:14 UTC (rev 116123)
@@ -0,0 +1,26 @@
+# Maintainer: Daniel Micay <danielmicay at gmail.com>
+pkgname=hardening-wrapper
+pkgver=1
+pkgrel=1
+pkgdesc='Wrapper script for building hardened executables by default'
+arch=(any)
+url='https://archlinux.org/'
+license=('GPL')
+depends=(bash)
+source=(cc-wrapper.sh path.sh)
+sha1sums=('99d2a33b30790c51e7ea4340dc85368ae65cbdd1'
+ '1e5f6d9931f01b26bb4b6fbb839e21d34d534cdc')
+
+package() {
+ mkdir -p "$pkgdir/usr/lib/hardening-wrapper/bin"
+ install -m644 path.sh "$pkgdir/usr/lib/hardening-wrapper/path.sh"
+ install -m755 cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/c89"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/c99"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/cc"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/c++"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/clang"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/clang++"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/gcc"
+ ln -s ../cc-wrapper.sh "$pkgdir/usr/lib/hardening-wrapper/bin/g++"
+}
Copied: hardening-wrapper/repos/community-any/cc-wrapper.sh (from rev 116122, hardening-wrapper/trunk/cc-wrapper.sh)
===================================================================
--- community-any/cc-wrapper.sh (rev 0)
+++ community-any/cc-wrapper.sh 2014-07-22 23:05:14 UTC (rev 116123)
@@ -0,0 +1,96 @@
+#!/bin/bash
+
+set -o nounset
+
+force_bindnow="${HARDENING_BINDNOW:-1}"
+force_fPIE="${HARDENING_PIE:-1}"
+force_fortify="${HARDENING_FORTIFY:-2}"
+force_pie="${HARDENING_PIE:-1}"
+force_relro="${HARDENING_RELRO:-1}"
+force_stack_protector="${HARDENING_STACK_PROTECTOR:-2}"
+
+error() {
+ echo "$1"
+ exit 1
+}
+
+linking=1
+optimizing=0
+
+for opt; do
+ case "$opt" in
+ -fno-PIC|-fno-pic|-fno-PIE|-fno-pie|-nopie|-static|--static|-shared|--shared|-D__KERNEL__|-nostdlib|-nostartfiles)
+ force_fPIE=0
+ force_pie=0
+ ;;
+ -fPIC|-fpic|-fPIE|-fpie)
+ force_fPIE=0
+ ;;
+ -c)
+ linking=0
+ ;;
+ -nostdlib|-ffreestanding)
+ force_stack_protector=0
+ ;;
+ -D_FORTIFY_SOURCE*)
+ force_fortify=0
+ ;;
+ -O0)
+ optimizing=0
+ ;;
+ -O*)
+ optimizing=1
+ ;;
+ esac
+done
+
+arguments=()
+
+case "$force_bindnow" in
+ 0) ;;
+ 1) (( linking )) && arguments+=(-Wl,-z,now) ;;
+ *) error 'invalid value for HARDENING_BINDNOW' ;;
+esac
+
+case "$force_fPIE" in
+ 0) ;;
+ 1) arguments+=(-fPIE) ;;
+ *) error 'invalid value for HARDENING_PIE' ;;
+esac
+
+case "$force_fortify" in
+ 0) ;;
+ 1|2) (( optimizing )) && arguments+=(-D_FORTIFY_SOURCE=$force_fortify) ;;
+ *) error 'invalid value for HARDENING_FORTIFY' ;;
+esac
+
+case "$force_pie" in
+ 0) ;;
+ 1) (( linking )) && arguments+=(-pie) ;;
+ *) error 'invalid value for HARDENING_PIE' ;;
+esac
+
+case "$force_relro" in
+ 0) ;;
+ 1) (( linking )) && arguments+=(-Wl,-z,relro) ;;
+ *) error 'invalid value for HARDENING_RELRO' ;;
+esac
+
+case "$force_stack_protector" in
+ 0) ;;
+ 1) arguments+=(-fstack-protector) ;;
+ 2) arguments+=(-fstack-protector-strong) ;;
+ 3) arguments+=(-fstack-protector-all) ;;
+ *) error 'invalid value for HARDENING_STACK_PROTECTOR' ;;
+esac
+
+unwrapped=false
+IFS=: read -ra path <<< "$PATH";
+for p in "${path[@]}"; do
+ binary="$p/${0##*/}"
+ if [[ "$binary" != "$0" && -x "$binary" ]]; then
+ unwrapped="$binary"
+ fi
+done
+
+exec "$unwrapped" "${arguments[@]}" "$@"
Copied: hardening-wrapper/repos/community-any/path.sh (from rev 116122, hardening-wrapper/trunk/path.sh)
===================================================================
--- community-any/path.sh (rev 0)
+++ community-any/path.sh 2014-07-22 23:05:14 UTC (rev 116123)
@@ -0,0 +1 @@
+export PATH="/usr/lib/hardening-wrapper/bin:$PATH"
More information about the arch-commits
mailing list