diff --git a/.gitignore b/.gitignore index 4a36fec..d2387e8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ SOURCES/iprdbg.8.gz -SOURCES/iprutils-2.3.16-src.tgz +SOURCES/iprutils-2.4.3-src.tgz diff --git a/.iprutils.metadata b/.iprutils.metadata index 59f7e23..3a5de55 100644 --- a/.iprutils.metadata +++ b/.iprutils.metadata @@ -1,2 +1,2 @@ ba7fff20477af3cb00dcc323690ca108454a2302 SOURCES/iprdbg.8.gz -c472b19fbf00792d98766955f463596d1d7a26d0 SOURCES/iprutils-2.3.16-src.tgz +ac631b36bb463e3acfc3ac6bec7c3830fe7caed9 SOURCES/iprutils-2.4.3-src.tgz diff --git a/SOURCES/0001-Service-start-is-controled-by-udev-rule.patch b/SOURCES/0001-Service-start-is-controled-by-udev-rule.patch new file mode 100644 index 0000000..2cf9077 --- /dev/null +++ b/SOURCES/0001-Service-start-is-controled-by-udev-rule.patch @@ -0,0 +1,68 @@ +From fed37f858254734b26c09f3b52b51cb63d102229 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jakub=20=C4=8Cajka?= +Date: Mon, 1 Sep 2014 14:03:56 +0200 +Subject: [PATCH] Service start is controled by udev rule + +--- + systemd/iprdump.service | 2 +- + systemd/iprinit.service | 2 +- + systemd/iprupdate.service | 2 +- + systemd/iprutils.target | 7 +++++++ + udev/rules.d/90-iprutils.rules | 1 + + 5 files changed, 11 insertions(+), 3 deletions(-) + create mode 100644 systemd/iprutils.target + create mode 100644 udev/rules.d/90-iprutils.rules + +diff --git a/systemd/iprdump.service b/systemd/iprdump.service +index f1a72ff..4f085eb 100644 +--- a/systemd/iprdump.service ++++ b/systemd/iprdump.service +@@ -7,4 +7,4 @@ Type=forking + ExecStart=/sbin/iprdump --daemon + + [Install] +-WantedBy=multi-user.target ++WantedBy=iprutils.target +diff --git a/systemd/iprinit.service b/systemd/iprinit.service +index 2ae0ce0..1d699d6 100644 +--- a/systemd/iprinit.service ++++ b/systemd/iprinit.service +@@ -6,4 +6,4 @@ Type=forking + ExecStart=/sbin/iprinit --daemon + + [Install] +-WantedBy=multi-user.target ++WantedBy=iprutils.target +diff --git a/systemd/iprupdate.service b/systemd/iprupdate.service +index f34ed86..732dcf4 100644 +--- a/systemd/iprupdate.service ++++ b/systemd/iprupdate.service +@@ -6,4 +6,4 @@ Type=forking + ExecStart=/sbin/iprupdate --daemon + + [Install] +-WantedBy=multi-user.target ++WantedBy=iprutils.target +diff --git a/systemd/iprutils.target b/systemd/iprutils.target +new file mode 100644 +index 0000000..1b1260e +--- /dev/null ++++ b/systemd/iprutils.target +@@ -0,0 +1,7 @@ ++[Unit] ++Description=IBM Power Raid utilities ++Requires=iprupdate.service iprinit.service iprdump.service basic.target ++Before=default.target ++ ++[Install] ++WantedBy=default.target +diff --git a/udev/rules.d/90-iprutils.rules b/udev/rules.d/90-iprutils.rules +new file mode 100644 +index 0000000..ea39fa3 +--- /dev/null ++++ b/udev/rules.d/90-iprutils.rules +@@ -0,0 +1 @@ ++DRIVERS=="ipr", TAG+="systemd", ENV{SYSTEMD_WANTS}+="iprutils.target" +-- +1.9.3 + diff --git a/SOURCES/iprutils-cflags.patch b/SOURCES/iprutils-cflags.patch deleted file mode 100644 index b615bde..0000000 --- a/SOURCES/iprutils-cflags.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- iprutils/Makefile.cflags 2005-12-23 10:11:42.000000000 +0000 -+++ iprutils/Makefile 2005-12-23 10:11:49.000000000 +0000 -@@ -9,7 +9,7 @@ - - include version.mk - --CFLAGS = -g -Wall $(IPR_DEFINES) -+CFLAGS += -g -Wall $(IPR_DEFINES) - UTILS_VER = $(IPR_MAJOR_RELEASE).$(IPR_MINOR_RELEASE).$(IPR_FIX_LEVEL) - TAR = cd .. && tar -zcpf iprutils-$(UTILS_VER)-src.tgz --exclude CVS --exclude applied-patches --exclude series --exclude txt --exclude pc --exclude patches --exclude debug --exclude *~* iprutils - diff --git a/SOURCES/iprutils-initscripts.patch b/SOURCES/iprutils-initscripts.patch deleted file mode 100644 index 0641491..0000000 --- a/SOURCES/iprutils-initscripts.patch +++ /dev/null @@ -1,463 +0,0 @@ -diff -up iprutils/init.d/iprdump.initscripts iprutils/init.d/iprdump ---- iprutils/init.d/iprdump.initscripts 2008-11-20 02:20:20.000000000 +0100 -+++ iprutils/init.d/iprdump 2009-10-05 13:46:41.000000000 +0200 -@@ -20,84 +20,98 @@ - # Short-Description: Start the ipr dump daemon - # Description: Start the ipr dump daemon - ### END INIT INFO -+# -+# chkconfig: 2345 20 80 -+# description: Runs the IBM Power RAID adapter dump daemon -+# processname: iprdump -+# pidfile: /var/run/iprdump.pid -+# -+ -+# Source function library -+. /etc/init.d/functions -+ -+RETVAL=0 -+ -+prog=iprdump -+exec=/sbin/iprdump -+lockfile=/var/lock/subsys/iprdump -+pidfile=/var/run/iprdump.pid - --IPRDUMP=/sbin/iprdump --test -x $IPRDUMP || exit 5 --. /lib/lsb/init-functions - - start() { -- echo -n "Starting ipr dump daemon" -+ [ -x $exec ] || exit 5 -+ echo -n "Starting $prog: " - if [ ! -d /sys/class/scsi_generic ] ; then - modprobe sg - fi -- start_daemon $IPRDUMP --daemon -- -+ -+ daemon $exec --daemon - RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg " " -- else -- log_failure_msg " " -- fi -+ echo -+ [ $RETVAL = 0 ] && touch $lockfile && /sbin/pidof $exec > $pidfile - return $RETVAL - } - - stop() { -- echo -n "Shutting down ipr dump daemon" -- killproc $IPRDUMP -- -+ echo -n "Stopping $prog: " -+ killproc $exec -TERM - RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg " " -- else -- log_failure_msg " " -- fi -+ echo -+ [ $RETVAL = 0 ] && rm -f $lockfile $pidfile - return $RETVAL - } - - restart() { -- $0 stop -- $0 start -- return $RETVAL -+ stop -+ start - } - - reload() { -- echo -n "Reload ipr dump daemon" -- $0 stop && $0 start -- return $RETVAL -+ restart - } - --status() { -- echo -n "Checking for iprdump daemon: " -+force_reload() { -+ restart -+} - -- pidofproc $IPRDUMP >& /dev/null -+rh_status() { -+ # run checks to determine if the service is running or use generic status -+ status $prog -+} - -- RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg "running" -- else -- log_failure_msg "unused" -- fi -- return $RETVAL -+rh_status_q() { -+ rh_status >/dev/null 2>&1 - } - - case "$1" in - start) -- start -- ;; -+ rh_status_q && exit 0 -+ $1 -+ ;; - stop) -- stop -- ;; -+ rh_status_q || exit 0 -+ $1 -+ ;; - restart) -- restart -- ;; -+ $1 -+ ;; - reload) -- reload -- ;; -+ rh_status_q || exit 7 -+ $1 -+ ;; -+ force-reload) -+ force_reload -+ ;; - status) -- status -- ;; -+ rh_status -+ ;; -+ condrestart|try-restart) -+ rh_status_q || exit 0 -+ restart -+ ;; - *) -- echo "Usage: $0 {start|stop|status|restart|reload}" -- exit 1 -- ;; -+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" -+ exit 2 - esac -+exit $? -+ -diff -up iprutils/init.d/iprinit.initscripts iprutils/init.d/iprinit ---- iprutils/init.d/iprinit.initscripts 2007-08-21 20:56:03.000000000 +0200 -+++ iprutils/init.d/iprinit 2009-10-05 14:59:18.000000000 +0200 -@@ -20,84 +20,97 @@ - # Short-Description: Start the ipr init daemon - # Description: Start the ipr initialization daemon - ### END INIT INFO -- --IPRINIT=/sbin/iprinit --test -x $IPRINIT || exit 5 --. /lib/lsb/init-functions -+# -+# chkconfig: 2345 20 80 -+# description: Runs the IBM Power RAID adapter initialization daemon -+# processname: iprinit -+# pidfile: /var/run/iprinit.pid -+# -+ -+# Source function library -+. /etc/init.d/functions -+ -+RETVAL=0 -+ -+prog=iprinit -+exec=/sbin/iprinit -+lockfile=/var/lock/subsys/$prog -+pidfile=/var/run/iprinit.pid - - start() { -- echo -n "Starting ipr initialization daemon" -+ [ -x $exec ] || exit 5 -+ echo -n "Starting $prog: " - if [ ! -d /sys/class/scsi_generic ] ; then - modprobe sg - fi -- start_daemon $IPRINIT --daemon -+ daemon $exec --daemon - - RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg " " -- else -- log_failure_msg " " -- fi -+ echo -+ [ $RETVAL = 0 ] && touch $lockfile && /sbin/pidof $exec > $pidfile - return $RETVAL - } - - stop() { -- echo -n "Shutting down ipr initialization daemon" -- killproc $IPRINIT -- -+ echo -n "Stopping iprinit: " -+ killproc $exec -TERM - RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg " " -- else -- log_failure_msg " " -- fi -+ [ $RETVAL = 0 ] && rm -f $lockfile $pidfile - return $RETVAL - } - - restart() { -- $0 stop -- $0 start -- return $RETVAL -+ stop -+ start - } - - reload() { -- echo -n "Reload ipr initialization daemon" -- $0 stop && $0 start -- return $RETVAL -+ restart - } - --status() { -- echo -n "Checking for ipr initialization daemon: " -+force_reload() { -+ restart -+} - -- pidofproc $IPRINIT >& /dev/null -+rh_status() { -+ # run checks to determine if the service is running or use generic status -+ status $prog -+} - -- RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg "running" -- else -- log_failure_msg "unused" -- fi -- return $RETVAL -+rh_status_q() { -+ rh_status >/dev/null 2>&1 - } - -+ - case "$1" in - start) -- start -- ;; -+ rh_status_q && exit 0 -+ $1 -+ ;; - stop) -- stop -- ;; -+ rh_status_q || exit 0 -+ $1 -+ ;; - restart) -- restart -- ;; -+ $1 -+ ;; - reload) -- reload -- ;; -+ rh_status_q || exit 7 -+ $1 -+ ;; -+ force-reload) -+ force_reload -+ ;; - status) -- status -- ;; -+ rh_status -+ ;; -+ condrestart|try-restart) -+ rh_status_q || exit 0 -+ restart -+ ;; - *) -- echo "Usage: $0 {start|stop|status|restart|reload}" -- exit 1 -- ;; -+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" -+ exit 2 - esac -+exit $? -+ -diff -up iprutils/init.d/iprupdate.initscripts iprutils/init.d/iprupdate ---- iprutils/init.d/iprupdate.initscripts 2008-11-20 02:20:20.000000000 +0100 -+++ iprutils/init.d/iprupdate 2009-10-05 15:04:50.000000000 +0200 -@@ -20,86 +20,98 @@ - # Short-Description: Start the iprupdate utility - # Description: Start the iprupdate utility - ### END INIT INFO -- --IPRUPDATE=/sbin/iprupdate --test -x $IPRUPDATE || exit 5 --. /lib/lsb/init-functions -+# -+# chkconfig: 2345 20 80 -+# description: Runs the IBM Power RAID adapter update daemon -+# processname: iprupdate -+# pidfile: /var/run/iprupdate.pid -+# -+ -+# Source function library -+. /etc/init.d/functions -+ -+RETVAL=0 -+ -+prog=iprupdate -+exec=/sbin/iprupdate -+lockfile=/var/lock/subsys/iprupdate -+pidfile=/var/run/iprupdate.pid - - start() { -- echo "Checking ipr microcode levels" -- if [ ! -d /sys/class/scsi_generic ] ; then -- modprobe sg -- fi -- start_daemon $IPRUPDATE --daemon -- -- RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- echo -n "Completed ipr microcode updates" -- log_success_msg " " -- else -- echo -n "Completed ipr microcode updates" -- log_failure_msg " " -- fi -- return $RETVAL -+ [ -x $exec ] || exit 5 -+ echo -n "Starting iprupdate: " -+ -+ if [ ! -d /sys/class/scsi_generic ]; then -+ modprobe sg -+ fi -+ -+ daemon $exec --daemon -+ RETVAL=$? -+ echo -+ [ $RETVAL = 0 ] && touch $lockfile && /sbin/pidof $exec > $pidfile -+ return $RETVAL - } - - stop() { -- echo -n "Shutting down ipr update daemon" -- killproc $IPRUPDATE -- -+ echo -n "Stopping iprupdate: " -+ killproc $exec -TERM - RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg " " -- else -- log_failure_msg " " -- fi -+ [ $RETVAL = 0 ] && rm -f $lockfile $pidfile - return $RETVAL - } - - restart() { -- $0 stop -- $0 start -- return $RETVAL -+ stop -+ start - } - - reload() { -- $0 stop -- $0 start -- return $RETVAL -+ restart - } - --status() { -- echo -n "Checking for ipr update daemon: " -+force_reload() { -+ restart -+} - -- pidofproc $IPRUPDATE >& /dev/null -+rh_status() { -+ # run checks to determine if the service is running or use generic status -+ status $prog -+} - -- RETVAL=$? -- if [ $RETVAL -eq 0 ]; then -- log_success_msg "running" -- else -- log_failure_msg "unused" -- fi -- return $RETVAL -+rh_status_q() { -+ rh_status >/dev/null 2>&1 - } - -+ - case "$1" in -- start) -- start -- ;; -- stop) -- stop -- ;; -- restart) -- restart -- ;; -- reload) -- reload -- ;; -- status) -- status -- ;; -- *) -- echo "Usage: $0 {start|stop|status|restart|reload}" -- exit 1 -- ;; -+ start) -+ rh_status_q && exit 0 -+ $1 -+ ;; -+ stop) -+ rh_status_q || exit 0 -+ $1 -+ ;; -+ restart) -+ $1 -+ ;; -+ reload) -+ rh_status_q || exit 7 -+ $1 -+ ;; -+ force-reload) -+ force_reload -+ ;; -+ status) -+ rh_status -+ ;; -+ condrestart|try-restart) -+ rh_status_q || exit 0 -+ restart -+ ;; -+ *) -+ echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}" -+ exit 2 - esac -+exit $? -+ diff --git a/SOURCES/iprutils-t2-array-1061166.patch b/SOURCES/iprutils-t2-array-1061166.patch deleted file mode 100644 index 64b4510..0000000 --- a/SOURCES/iprutils-t2-array-1061166.patch +++ /dev/null @@ -1,49 +0,0 @@ ---- - iprutils/iprconfig.c | 14 +++----------- - 1 file changed, 3 insertions(+), 11 deletions(-) - -Index: b/iprutils/iprconfig.c -=================================================================== ---- a/iprutils/iprconfig.c 2014-01-31 17:18:38.000000000 -0600 -+++ b/iprutils/iprconfig.c 2014-01-31 17:22:35.847766342 -0600 -@@ -3847,6 +3847,8 @@ int confirm_raid_start(i_container *i_co - rc = ipr_start_array_protection(ioa, - cur_raid_cmd->stripe_size, - cur_raid_cmd->prot_level); -+ if (rc) -+ return RC_19_Create_Fail; - } - - rc = raid_start_complete(); -@@ -13297,7 +13299,7 @@ static int format_for_raid(char **args, - static int raid_create(char **args, int num_args) - { - int i, num_devs = 0, rc; -- int hdd_count = 0, ssd_count = 0, non_4k_count = 0, is_4k_count = 0; -+ int non_4k_count = 0, is_4k_count = 0; - int next_raid_level, next_stripe_size, next_qdepth; - char *raid_level = IPR_DEFAULT_RAID_LVL; - int stripe_size, qdepth, zeroed_devs; -@@ -13355,22 +13357,12 @@ static int raid_create(char **args, int - return -EINVAL; - } - -- if (dev->block_dev_class & IPR_SSD) -- ssd_count++; -- else -- hdd_count++; -- - if (dev->block_dev_class & IPR_BLK_DEV_CLASS_4K) - is_4k_count++; - else - non_4k_count++; - } - -- if (hdd_count > 0 && ssd_count > 0) { -- syslog(LOG_ERR, _("SSDs and HDDs can not be mixed in an array.\n")); -- return -EINVAL; -- } -- - if (is_4k_count > 0 && non_4k_count > 0) { - syslog(LOG_ERR, _("4K disks and 5XX disks can not be mixed in an array.\n")); - return -EINVAL; diff --git a/SOURCES/mig_fix_le.patch b/SOURCES/mig_fix_le.patch new file mode 100644 index 0000000..b08f8e6 --- /dev/null +++ b/SOURCES/mig_fix_le.patch @@ -0,0 +1,17 @@ +--- + iprutils/iprconfig.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: b/iprutils/iprconfig.c +=================================================================== +--- a/iprutils/iprconfig.c 2014-12-13 22:38:20.771743011 -0600 ++++ b/iprutils/iprconfig.c 2014-12-13 22:39:12.591743020 -0600 +@@ -5229,7 +5229,7 @@ int configure_raid_migrate(i_container * + + /* set up qac and send command to adapter */ + rc = do_ipr_migrate_array_protection(array_i_con, ioa, &qac, +- dev->stripe_size, ++ ntohs(dev->stripe_size), + cur_raid_cmd->prot_level, + cur_raid_cmd->array_id); + diff --git a/SPECS/iprutils.spec b/SPECS/iprutils.spec index 578d3bf..b06e8c7 100644 --- a/SPECS/iprutils.spec +++ b/SPECS/iprutils.spec @@ -1,7 +1,7 @@ Summary: Utilities for the IBM Power Linux RAID adapters Name: iprutils -Version: 2.3.16 -Release: 4%{?dist} +Version: 2.4.3 +Release: 3%{?dist} License: CPL Group: System Environment/Base URL: http://sourceforge.net/projects/iprdd/ @@ -11,18 +11,19 @@ Source0: http://downloads.sourceforge.net/project/iprdd/iprutils%20for%202.6%20k # missing man page Source1: iprdbg.8.gz -Patch0: %{name}-cflags.patch -Patch1: %{name}-initscripts.patch -Patch2: %{name}-t2-array-1061166.patch +Patch0: 0001-Service-start-is-controled-by-udev-rule.patch + +# BZ#1174371 migration between raid 0 to raid 10 fails(LE) +Patch1: mig_fix_le.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: /sbin/pidof -BuildRequires: libsysfs-devel -BuildRequires: pciutils-devel BuildRequires: ncurses-devel BuildRequires: libcap-devel BuildRequires: kernel-devel +BuildRequires: systemd Obsoletes: ipr-utils @@ -32,21 +33,27 @@ supported by the ipr SCSI storage device driver. %prep %setup -q -n %{name} -%patch0 -p1 -b .cflags -%patch1 -p1 -b .initscripts -%patch2 -p2 -b .t2array +%patch0 -p1 -b .udev + +%patch1 -p2 %build -CFLAGS="%{optflags}" %{__make} +export CFLAGS="%{optflags} -fPIE -Wl,-z,relro,-z,now" +export LDFLAGS="-pie" +%{__make} %install %{__rm} -rf %{buildroot} %{__make} INSTALL_MOD_PATH=%{buildroot} install -%{__install} -d %{buildroot}%{_sysconfdir}/rc.d/init.d -%{__install} -m 0755 init.d/iprinit %{buildroot}%{_sysconfdir}/rc.d/init.d/iprinit -%{__install} -m 0755 init.d/iprdump %{buildroot}%{_sysconfdir}/rc.d/init.d/iprdump -%{__install} -m 0755 init.d/iprupdate %{buildroot}%{_sysconfdir}/rc.d/init.d/iprupdate +mkdir -p $RPM_BUILD_ROOT/%{_unitdir} +%{__install} -m 0644 systemd/iprinit.service $RPM_BUILD_ROOT/%{_unitdir}/iprinit.service +%{__install} -m 0644 systemd/iprdump.service $RPM_BUILD_ROOT/%{_unitdir}/iprdump.service +%{__install} -m 0644 systemd/iprupdate.service $RPM_BUILD_ROOT/%{_unitdir}/iprupdate.service +%{__install} -m 0644 systemd/iprutils.target $RPM_BUILD_ROOT/%{_unitdir}/iprutils.target + +mkdir -p $RPM_BUILD_ROOT/%{_udevrulesdir} +%{__install} -m 0644 udev/rules.d/90-iprutils.rules $RPM_BUILD_ROOT/%{_udevrulesdir}/90-iprutils.rules # missing man page %{__install} -m 0644 %SOURCE1 %{buildroot}%{_mandir}/man8/ @@ -58,15 +65,16 @@ for file in iprconfig iprdbg iprdump iprinit iprupdate; do done %post -/sbin/chkconfig --add iprdump -/sbin/chkconfig --add iprupdate -/sbin/chkconfig --add iprinit +%systemd_post iprinit.service +%systemd_post iprdump.service +%systemd_post iprupdate.service +%systemd_post iprutils.target %preun -/sbin/chkconfig --del iprdump -/sbin/chkconfig --del iprupdate -/sbin/chkconfig --del iprinit - +%systemd_preun iprinit.service +%systemd_preun iprdump.service +%systemd_preun iprupdate.service +%systemd_preun iprutils.target %clean %{__rm} -rf %{buildroot} @@ -75,9 +83,30 @@ done %doc README LICENSE %{_sbindir}/* %attr(0644,root,root) %{_mandir}/man*/* -%{_sysconfdir}/rc.d/init.d/* +%attr(0644,root,root) %{_unitdir}/iprinit.service +%attr(0644,root,root) %{_unitdir}/iprdump.service +%attr(0644,root,root) %{_unitdir}/iprupdate.service +%attr(0644,root,root) %{_unitdir}/iprutils.target +%{_udevrulesdir}/90-iprutils.rules %changelog +* Tue Jan 06 2015 Jakub Čajka - 2.4.3-3 +- Related: #1174371 - Fixed changelog version-release + +* Tue Jan 06 2015 Jakub Čajka - 2.4.3-2 +- Resolves: #1174371 - [RHEL7.1 LE] migration between raid 0 to raid 10 fails for ZR1 + +* Thu Sep 04 2014 Jakub Čajka - 2.4.3-1 +- Related: #1088562 - [7.1 FEAT] iprutils package update - ppc64 + +* Tue Sep 02 2014 Jakub Čajka - 2.4.2-2 +- Related: #1088562 - removed unnecessary build requirements + +* Mon Sep 01 2014 Jakub Čajka - 2.4.2-1 +- Resolves: #1088562 - [7.1 FEAT] iprutils package update - ppc64 +- Resolves: #1044679 - iprutils should use systemd +- Resolves: #1092519 - iprutils - PIE and RELRO check + * Fri Mar 07 2014 Karsten Hopp 2.3.16-4 - add fix for T2 arrays - Resolves: rhbz 1061166