diff options
author | Christian Heim <phreak@gentoo.org> | 2008-01-12 17:30:39 +0000 |
---|---|---|
committer | Christian Heim <phreak@gentoo.org> | 2008-01-12 17:30:39 +0000 |
commit | 77049708fe989cd96646ca809806bff4d15d3f6e (patch) | |
tree | 0a57ac2bf762c0aaad852c2dd89f39561fa10cdc | |
parent | Updating source_subpath, my sed somehow sucked .. (diff) | |
download | phreak-77049708fe989cd96646ca809806bff4d15d3f6e.tar.gz phreak-77049708fe989cd96646ca809806bff4d15d3f6e.tar.bz2 phreak-77049708fe989cd96646ca809806bff4d15d3f6e.zip |
Adding Mike's changes regarding uClibc compilation failures to the portage_overlay.
svn path=/; revision=398
12 files changed, 619 insertions, 0 deletions
diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/Manifest b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/Manifest new file mode 100644 index 0000000..3ef466e --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/Manifest @@ -0,0 +1,45 @@ +AUX crypto-loop.confd 412 RMD160 5e65febe9641a8362078fdae39b4ac955fb2e63b SHA1 2f881a24ff67115e74de7a11c66a34a745060864 SHA256 188c945e5e6c54cb14874057c625ff30b72fb33d3d5648e53de2f231a3375600 +MD5 d481354b916628f42634cebe8f10f464 files/crypto-loop.confd 412 +RMD160 5e65febe9641a8362078fdae39b4ac955fb2e63b files/crypto-loop.confd 412 +SHA256 188c945e5e6c54cb14874057c625ff30b72fb33d3d5648e53de2f231a3375600 files/crypto-loop.confd 412 +AUX crypto-loop.initd 1658 RMD160 e3c33dee5da2747d6daf15590ff1422a42f7159c SHA1 37ac097ee38a349d503d28dda7b608c78c6ede54 SHA256 a5da900822b835dc2c54ed4152961f5802cb9cf7aac0a78afde893393af53624 +MD5 33e0a0784b1aa55939f0dca97fcd1010 files/crypto-loop.initd 1658 +RMD160 e3c33dee5da2747d6daf15590ff1422a42f7159c files/crypto-loop.initd 1658 +SHA256 a5da900822b835dc2c54ed4152961f5802cb9cf7aac0a78afde893393af53624 files/crypto-loop.initd 1658 +AUX util-linux-2.13-hwclock-rtc.patch 1844 RMD160 8960731d8d28779e2f6a135ba28405ba44f1e6b2 SHA1 645cbf9543fd6c1c4ae99d2fd667731614b1b606 SHA256 c74826d17422224b8bc0f88cab07b0e5d5f585868ba5603e1af672c2ecc62706 +MD5 c540d90bf39651e0e6038597245e0608 files/util-linux-2.13-hwclock-rtc.patch 1844 +RMD160 8960731d8d28779e2f6a135ba28405ba44f1e6b2 files/util-linux-2.13-hwclock-rtc.patch 1844 +SHA256 c74826d17422224b8bc0f88cab07b0e5d5f585868ba5603e1af672c2ecc62706 files/util-linux-2.13-hwclock-rtc.patch 1844 +AUX util-linux-2.13-ioprio-syscalls.patch 353 RMD160 a71a1423c1b6fa96320285d8a29fd1963c18d8d1 SHA1 bfc15114d82572e87e02486cf2d91d4ad82a3e57 SHA256 1f8cf8fb0da439072a423f1161ae401ea348c84e8b16811161ce3e46ef9d1aed +MD5 97f6c7f799cca0f0ee204cab47dc4ff0 files/util-linux-2.13-ioprio-syscalls.patch 353 +RMD160 a71a1423c1b6fa96320285d8a29fd1963c18d8d1 files/util-linux-2.13-ioprio-syscalls.patch 353 +SHA256 1f8cf8fb0da439072a423f1161ae401ea348c84e8b16811161ce3e46ef9d1aed files/util-linux-2.13-ioprio-syscalls.patch 353 +AUX util-linux-2.13-locale.patch 3028 RMD160 243732d4e353932908837a3b354e4b7486ed052f SHA1 0f1aec83d55d48112d4a9e954a3c64632e0cd9f3 SHA256 0de4bf7f4d9ae84f42ca656ccaadf814ff5f72325bcc3e687e7dbc7a5034a06f +MD5 2bc51f870c2b167290521010a077b797 files/util-linux-2.13-locale.patch 3028 +RMD160 243732d4e353932908837a3b354e4b7486ed052f files/util-linux-2.13-locale.patch 3028 +SHA256 0de4bf7f4d9ae84f42ca656ccaadf814ff5f72325bcc3e687e7dbc7a5034a06f files/util-linux-2.13-locale.patch 3028 +AUX util-linux-2.13-losetup-P.patch 409 RMD160 54d634f91acd0726038c26b0bfb7c784bf6e59e6 SHA1 7f4d5915fe003d25fc794cfe09a97f6449003a36 SHA256 f128a1e16b57904bd3937119d255b390ed256a4c13991cb13614176fb0c69700 +MD5 57027b9325b4d45672308ef4331c4f7a files/util-linux-2.13-losetup-P.patch 409 +RMD160 54d634f91acd0726038c26b0bfb7c784bf6e59e6 files/util-linux-2.13-losetup-P.patch 409 +SHA256 f128a1e16b57904bd3937119d255b390ed256a4c13991cb13614176fb0c69700 files/util-linux-2.13-losetup-P.patch 409 +AUX util-linux-2.13-script-SIGWINCH.patch 1338 RMD160 276f52d6f07dfa145eac7693d79531193a12d666 SHA1 4524f74d0ed8a7242667c3532e733fb9d8d4a23f SHA256 edf47e56e844a4af3efe643501ee5905be3957e3c76c97925df87bb61921e619 +MD5 4f5302b6506666bf3cda76a6d3f45929 files/util-linux-2.13-script-SIGWINCH.patch 1338 +RMD160 276f52d6f07dfa145eac7693d79531193a12d666 files/util-linux-2.13-script-SIGWINCH.patch 1338 +SHA256 edf47e56e844a4af3efe643501ee5905be3957e3c76c97925df87bb61921e619 files/util-linux-2.13-script-SIGWINCH.patch 1338 +AUX util-linux-2.13-setuid-checks.patch 1860 RMD160 9146bad2a5593424f52cea4615e4fe53cff60654 SHA1 c4da69c54a735c9fa717ef9c0dc07d11cd731181 SHA256 aec9802cace8538a77e006721b05bf50436b116f5e56d7468ca85ffc253d7e0a +MD5 a03d42a8a617b87e344735644a80ec5a files/util-linux-2.13-setuid-checks.patch 1860 +RMD160 9146bad2a5593424f52cea4615e4fe53cff60654 files/util-linux-2.13-setuid-checks.patch 1860 +SHA256 aec9802cace8538a77e006721b05bf50436b116f5e56d7468ca85ffc253d7e0a files/util-linux-2.13-setuid-checks.patch 1860 +AUX util-linux-2.13-uclibc.patch 1627 RMD160 3c52bac5b792c3ee6ccf69324729793314f279af SHA1 d85ad97b602daec290cc28858269ae4bcc0666f3 SHA256 7f0c5dcf91d3143c99006ada59ccb7842427933ad14e39c88bfaa7985d91a392 +MD5 69910b26908f68c1b5fddf52a91a7b7a files/util-linux-2.13-uclibc.patch 1627 +RMD160 3c52bac5b792c3ee6ccf69324729793314f279af files/util-linux-2.13-uclibc.patch 1627 +SHA256 7f0c5dcf91d3143c99006ada59ccb7842427933ad14e39c88bfaa7985d91a392 files/util-linux-2.13-uclibc.patch 1627 +DIST util-linux-ng-2.13-1.diff.bz2 40468 RMD160 defb0fa7abb39963d1d168c4fbf8352ceb2a916c SHA1 75aacfac824660fd7c2d7fa900394ef2d34a74e2 SHA256 6606666808f510cc8aeead408e14d3226b06219b0752ca3badea7acd154929cd +DIST util-linux-ng-2.13.tar.bz2 2702618 RMD160 499b1c5c2060b23d8bf504122a22122af99eb7fa SHA1 089638d9d3d57a22f80069f7f149b7521e689804 SHA256 002412e93d8e85b1796fdbe65bbb0a4d193d0317a7155fda4270667e08bdfbfc +EBUILD util-linux-2.13-r2.ebuild 2420 RMD160 cf497228d22b6f3f0c5a6b80a7824887de527172 SHA1 434720501c11f981ed2a22df866b3bce5095351f SHA256 b4433a9d0b237909f02dcb5a1e0bd5acc5fc06ae2234176e2f221db2567e891e +MD5 2ea8f28bf33b9c6da7fe376b2823f652 util-linux-2.13-r2.ebuild 2420 +RMD160 cf497228d22b6f3f0c5a6b80a7824887de527172 util-linux-2.13-r2.ebuild 2420 +SHA256 b4433a9d0b237909f02dcb5a1e0bd5acc5fc06ae2234176e2f221db2567e891e util-linux-2.13-r2.ebuild 2420 +MD5 4186a662d6ee50db80a1c9cf2dd171a9 files/digest-util-linux-2.13-r2 527 +RMD160 20a4700f7250f9138eb296421bc58acf852a30e8 files/digest-util-linux-2.13-r2 527 +SHA256 23cad3dd4dad96298070df7d75f7a574c279618378f393c2a85c7af8a9014c82 files/digest-util-linux-2.13-r2 527 diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/crypto-loop.confd b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/crypto-loop.confd new file mode 100644 index 0000000..6a88434 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/crypto-loop.confd @@ -0,0 +1,9 @@ +# /etc/conf.d/crypto-loop: Configuration file for /etc/init.d/crypto-loop + +# More info can be found in the init.d script + +# Specify loopback configurations here. The format of this file is +# shown in the following commented-out example. One line per loopback +# configuration. For possible hash values, see `man hashalot`. + +# loop=/dev/loop0 hash='' cipher=serpent keysize=256 device=/dev/system/test other='' diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/crypto-loop.initd b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/crypto-loop.initd new file mode 100755 index 0000000..21e0ef9 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/crypto-loop.initd @@ -0,0 +1,65 @@ +#!/sbin/runscript +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/files/crypto-loop.initd,v 1.2 2007/10/05 23:26:57 vapier Exp $ + +depend() { + need checkroot modules + before localmount +} + +start() { + local status="0" + + ebegin "Starting crypto loop devices" + + if [[ -e /etc/conf.d/crypto-loop ]] ; then + egrep "^loop" /etc/conf.d/crypto-loop | \ + while read loopline ; do + eval ${loopline} + + local configured=$(awk -v MOUNT="${device}" \ + '($2 == MOUNT) { print "yes" }' /proc/mounts) + + if [[ ${configured} != "yes" ]] ; then + einfo " Loop ${loop} on device ${device} (cipher ${cipher}, key size ${keysize}): " + + if [[ -n ${hash} ]] ; then + /usr/sbin/hashalot -n ${keysize} ${hash} </dev/tty|\ + /sbin/losetup -p 0 -e ${cipher}-${keysize} ${loop} ${device} ${other} + else + /sbin/losetup -e ${cipher}-${keysize} ${loop} ${device} ${other} + fi + + if [[ $? -ne 0 ]] ; then + ewarn "Failure configuring ${loop}. Skipping." + status=1 + fi + else + ewarn " Loop ${loop} on device ${device} are already configured" + fi + done + fi + ewend ${status} "Failed to start some loop devices." + + # We do not fail if some loop devices did not start ... + return 0 +} + +stop() { + local status="0" + for loop in $(ls /dev/loop[0-9]) ; do + losetup ${loop} &> /dev/null + if [[ $? == 0 ]] ; then + umount ${loop} &>/dev/null || swapoff "${loop}" &>/dev/null + if ! /sbin/losetup -d ${loop} &> /dev/null ; then + ewarn "Failure deconfiguring ${loop}." + status=1 + fi + fi + done + ewend ${status} +} + + +# vim:ts=4 diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/digest-util-linux-2.13-r2 b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/digest-util-linux-2.13-r2 new file mode 100644 index 0000000..35f8c62 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/digest-util-linux-2.13-r2 @@ -0,0 +1,6 @@ +MD5 601caadc3248fcd6b5911fc6339451e9 util-linux-ng-2.13-1.diff.bz2 40468 +RMD160 defb0fa7abb39963d1d168c4fbf8352ceb2a916c util-linux-ng-2.13-1.diff.bz2 40468 +SHA256 6606666808f510cc8aeead408e14d3226b06219b0752ca3badea7acd154929cd util-linux-ng-2.13-1.diff.bz2 40468 +MD5 2175a6e64ba0cf8ff05402eaee33e4b0 util-linux-ng-2.13.tar.bz2 2702618 +RMD160 499b1c5c2060b23d8bf504122a22122af99eb7fa util-linux-ng-2.13.tar.bz2 2702618 +SHA256 002412e93d8e85b1796fdbe65bbb0a4d193d0317a7155fda4270667e08bdfbfc util-linux-ng-2.13.tar.bz2 2702618 diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-hwclock-rtc.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-hwclock-rtc.patch new file mode 100644 index 0000000..b62433c --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-hwclock-rtc.patch @@ -0,0 +1,74 @@ +http://bugs.gentoo.org/179780 + +From: Matthias Koenig <mkoenig@suse.de> +Date: Thu, 20 Sep 2007 09:11:18 +0000 (+0200) +Subject: hwclock: fix --rtc option +X-Git-Url: http://git.kernel.org/?p=utils%2Futil-linux-ng%2Futil-linux-ng.git;a=commitdiff_plain;h=5d1f6bae3b298809ecd63b3e55f6ab30caaa4dbf + +hwclock: fix --rtc option + +The --rtc option does not set the name of the device correctly. +It still uses /dev/rtc even if the --rtc option is given. + +Testcase: +$ mv /dev/rtc /dev/foo +$ hwclock --show --debug --rtc=/dev/foo +hwclock from util-linux-2.13-rc2 +Using /dev interface to clock. +Last drift adjustment done at 1190198135 seconds after 1969 +Last calibration done at 1190198135 seconds after 1969 +Hardware clock is on local time +Assuming hardware clock is kept in local time. +Waiting for clock tick... +hwclock: open() of /dev/rtc failed, errno=2: No such file or directory. +...got clock tick + +Co-Author: Karel Zak <kzak@redhat.com> +Signed-off-by: Matthias Koenig <mkoenig@suse.de> +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + +diff --git a/hwclock/rtc.c b/hwclock/rtc.c +index f8e626e..724daf9 100644 +--- a/hwclock/rtc.c ++++ b/hwclock/rtc.c +@@ -104,24 +104,21 @@ open_rtc(void) { + "/dev/misc/rtc", + NULL + }; +- char **p = fls; +- char *fname = rtc_dev_name ? : *p; +- +- do { +- int fd = open(fname, O_RDONLY); +- +- if (fd < 0 && errno == ENOENT) { +- if (fname == rtc_dev_name) +- break; +- fname = *++p; +- } else { +- rtc_dev_name = *p; +- return fd; +- } +- } while(fname); +- +- if (!rtc_dev_name) +- rtc_dev_name = *fls; ++ char **p; ++ ++ /* --rtc option has been given */ ++ if (rtc_dev_name) ++ return open(rtc_dev_name, O_RDONLY); ++ ++ for (p=fls; *p; ++p) { ++ int fd = open(*p, O_RDONLY); ++ ++ if (fd < 0 && errno == ENOENT) ++ continue; ++ rtc_dev_name = *p; ++ return fd; ++ } ++ rtc_dev_name = *fls; /* default */ + return -1; + } + diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-ioprio-syscalls.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-ioprio-syscalls.patch new file mode 100644 index 0000000..f558ff6 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-ioprio-syscalls.patch @@ -0,0 +1,16 @@ +Just stub this cruft for crappy arches + +http://bugs.gentoo.org/190613 + +--- schedutils/ionice.c ++++ schedutils/ionice.c +@@ -39,7 +39,8 @@ + # define __NR_ioprio_set 196 + # define __NR_ioprio_get 218 + # else +-# error "Unsupported arch" ++# define __NR_ioprio_set -1 ++# define __NR_ioprio_get -1 + # endif + + # define SYS_ioprio_get __NR_ioprio_get diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-locale.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-locale.patch new file mode 100644 index 0000000..feb46f9 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-locale.patch @@ -0,0 +1,121 @@ +http://bugs.gentoo.org/191111 +http://thread.gmane.org/gmane.linux.utilities.util-linux-ng/614 + +Move all locale/nls related includes to nls.h and make sure they are only +pulled in when ENABLE_NLS. When !ENABLE_NLS, don't include any locale/nls +related headers and stub out setlocale() as well. + +Signed-off-by: Mike Frysinger <vapier@gentoo.org> +--- + include/nls.h | 5 ++++- + misc-utils/cal.c | 1 - + misc-utils/look.c | 1 - + misc-utils/write.c | 1 - + text-utils/colrm.c | 2 +- + text-utils/more.c | 1 - + text-utils/pg.c | 2 -- + 7 files changed, 5 insertions(+), 8 deletions(-) + +diff --git a/include/nls.h b/include/nls.h +index f571ca5..e9f7927 100644 +--- a/include/nls.h ++++ b/include/nls.h +@@ -9,6 +9,8 @@ int main(int argc, char *argv[]); + + #ifdef ENABLE_NLS + # include <libintl.h> ++# include <locale.h> ++# include <nl_types.h> + # define _(Text) gettext (Text) + # ifdef gettext_noop + # define N_(String) gettext_noop (String) +@@ -16,9 +18,10 @@ int main(int argc, char *argv[]); + # define N_(String) (String) + # endif + #else +-# include <locale.h> + # undef bindtextdomain + # define bindtextdomain(Domain, Directory) /* empty */ ++# undef setlocale ++# define setlocale(Category, Locale) /* empty */ + # undef textdomain + # define textdomain(Domain) /* empty */ + # define _(Text) (Text) +diff --git a/misc-utils/cal.c b/misc-utils/cal.c +index f5ede93..77333d8 100644 +--- a/misc-utils/cal.c ++++ b/misc-utils/cal.c +@@ -63,7 +63,6 @@ + #include <string.h> + #include <time.h> + #include <unistd.h> +-#include <locale.h> + #include "errs.h" + #include "nls.h" + +diff --git a/misc-utils/look.c b/misc-utils/look.c +index 5c7e30c..9e25596 100644 +--- a/misc-utils/look.c ++++ b/misc-utils/look.c +@@ -59,7 +59,6 @@ + #include <strings.h> + #include <ctype.h> + #include <getopt.h> +-#include <locale.h> + #include "pathnames.h" + #include "nls.h" + +diff --git a/misc-utils/write.c b/misc-utils/write.c +index b3c96d1..46b8f0a 100644 +--- a/misc-utils/write.c ++++ b/misc-utils/write.c +@@ -54,7 +54,6 @@ + #include <pwd.h> + #include <string.h> + #include <stdlib.h> +-#include <locale.h> + #include <signal.h> + #include <sys/param.h> + #include <sys/signal.h> +diff --git a/text-utils/colrm.c b/text-utils/colrm.c +index 5e18a6f..e8b1ea4 100644 +--- a/text-utils/colrm.c ++++ b/text-utils/colrm.c +@@ -40,8 +40,8 @@ + + #include <stdio.h> + #include <stdlib.h> +-#include <locale.h> + ++#include "nls.h" + #include "widechar.h" + + /* +diff --git a/text-utils/more.c b/text-utils/more.c +index 19c4417..5dcae7b 100644 +--- a/text-utils/more.c ++++ b/text-utils/more.c +@@ -55,7 +55,6 @@ + #include <sys/file.h> + #include <sys/wait.h> + #include <a.out.h> +-#include <locale.h> + #include "xstrncpy.h" + #include "nls.h" + #include "widechar.h" +diff --git a/text-utils/pg.c b/text-utils/pg.c +index 10bdd15..3e1b25e 100644 +--- a/text-utils/pg.c ++++ b/text-utils/pg.c +@@ -49,8 +49,6 @@ + #include <unistd.h> + #include <signal.h> + #include <setjmp.h> +-#include <locale.h> +-#include <nl_types.h> + #include <libgen.h> + + #ifdef HAVE_NCURSES_H +-- +1.5.3.rc7 + diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-losetup-P.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-losetup-P.patch new file mode 100644 index 0000000..65ac030 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-losetup-P.patch @@ -0,0 +1,15 @@ +loop-aes patch forgets to include -P in getopt call + +http://bugs.gentoo.org/201981 + +--- mount/lomount.c ++++ mount/lomount.c +@@ -1249,7 +1249,7 @@ + + delete = 0; + progname = argv[0]; +- while ((c = getopt(argc,argv,"aC:de:FG:H:I:K:o:p:rRs:S:Tv")) != -1) { ++ while ((c = getopt(argc,argv,"aC:de:FG:H:I:K:o:p:rRs:S:TvP:")) != -1) { + switch (c) { + case 'a': /* show status of all loops */ + option_a = 1; diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-script-SIGWINCH.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-script-SIGWINCH.patch new file mode 100644 index 0000000..e8ed571 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-script-SIGWINCH.patch @@ -0,0 +1,56 @@ +commit 2b8bbb5fb0f024ea3917fedbbbaf0fab1c1f6555 +Author: Karel Zak <kzak@redhat.com> +Date: Fri Oct 5 12:22:13 2007 +0200 + + script: dies on SIGWINCH + + The "doinput" process doesn't make a difference between SIGWINCH and + SIGCHILD. This process also sends unnecessary SIGWINCH to child (the + signal is ignored by child). Fixed. + + Signed-off-by: Karel Zak <kzak@redhat.com> + +diff --git a/misc-utils/script.c b/misc-utils/script.c +index d3272df..3b957d8 100644 +--- a/misc-utils/script.c ++++ b/misc-utils/script.c +@@ -99,6 +99,7 @@ int tflg = 0; + static char *progname; + + int die; ++int resized; + + static void + die_if_link(char *fn) { +@@ -235,8 +236,14 @@ doinput() { + if (die == 0 && child && kill(child, 0) == -1 && errno == ESRCH) + die = 1; + +- while (die == 0 && (cc = read(0, ibuf, BUFSIZ)) > 0) +- (void) write(master, ibuf, cc); ++ while (die == 0) { ++ if ((cc = read(0, ibuf, BUFSIZ)) > 0) ++ (void) write(master, ibuf, cc); ++ else if (cc == -1 && errno == EINTR && resized) ++ resized = 0; ++ else ++ break; ++ } + + done(); + } +@@ -255,11 +262,10 @@ finish(int dummy) { + + void + resize(int dummy) { ++ resized = 1; + /* transmit window change information to the child */ + (void) ioctl(0, TIOCGWINSZ, (char *)&win); + (void) ioctl(slave, TIOCSWINSZ, (char *)&win); +- +- kill(child, SIGWINCH); + } + + /* + + diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-setuid-checks.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-setuid-checks.patch new file mode 100644 index 0000000..a3758dd --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-setuid-checks.patch @@ -0,0 +1,52 @@ +From: Ludwig Nussel <ludwig.nussel@suse.de> +Date: Thu, 20 Sep 2007 12:57:20 +0000 (+0200) +Subject: mount: doesn't drop privileges properly when calling helpers +X-Git-Url: http://git.kernel.org/?p=utils%2Futil-linux-ng%2Futil-linux-ng.git;a=commitdiff_plain;h=ebbeb2c7ac1b00b6083905957837a271e80b187e + +mount: doesn't drop privileges properly when calling helpers + +{,u}mount calls setuid() and setgid() in the wrong order and doesn't checking +the return value of set{u,g}id(() when running helpers like mount.nfs. + +Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de> +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + +diff --git a/mount/mount.c b/mount/mount.c +index 40699f3..5bc2b30 100644 +--- a/mount/mount.c ++++ b/mount/mount.c +@@ -634,8 +634,12 @@ check_special_mountprog(const char *spec, const char *node, const char *type, in + char *oo, *mountargs[10]; + int i = 0; + +- setuid(getuid()); +- setgid(getgid()); ++ if(setgid(getgid()) < 0) ++ die(EX_FAIL, _("mount: cannot set group id: %s"), strerror(errno)); ++ ++ if(setuid(getuid()) < 0) ++ die(EX_FAIL, _("mount: cannot set user id: %s"), strerror(errno)); ++ + oo = fix_opts_string (flags, extra_opts, NULL); + mountargs[i++] = mountprog; /* 1 */ + mountargs[i++] = (char *) spec; /* 2 */ +diff --git a/mount/umount.c b/mount/umount.c +index b3100c9..3221619 100644 +--- a/mount/umount.c ++++ b/mount/umount.c +@@ -102,8 +102,12 @@ check_special_umountprog(const char *spec, const char *node, + char *umountargs[8]; + int i = 0; + +- setuid(getuid()); +- setgid(getgid()); ++ if(setgid(getgid()) < 0) ++ die(EX_FAIL, _("umount: cannot set group id: %s"), strerror(errno)); ++ ++ if(setuid(getuid()) < 0) ++ die(EX_FAIL, _("umount: cannot set user id: %s"), strerror(errno)); ++ + umountargs[i++] = umountprog; + umountargs[i++] = xstrdup(node); + if (nomtab) diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-uclibc.patch b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-uclibc.patch new file mode 100644 index 0000000..237e126 --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/files/util-linux-2.13-uclibc.patch @@ -0,0 +1,71 @@ +--- login-utils/agetty.c ++++ login-utils/agetty.c +@@ -884,7 +884,7 @@ + + case 'o': + { +- char domainname[HOST_NAME_MAX+1]; ++ char domainname[HOSTNAME_LENGTH+1]; + #ifdef HAVE_GETDOMAINNAME + if (getdomainname(domainname, sizeof(domainname))) + #endif +@@ -897,7 +897,7 @@ + case 'O': + { + char *dom = "unknown_domain"; +- char host[HOST_NAME_MAX + 1]; ++ char host[HOSTNAME_LENGTH + 1]; + struct addrinfo hints, *info = NULL; + + memset(&hints, 0, sizeof(hints)); +@@ -992,7 +992,7 @@ + } + #endif + { +- char hn[HOST_NAME_MAX+1]; ++ char hn[HOSTNAME_LENGTH+1]; + if (gethostname(hn, sizeof(hn)) == 0) + write(1, hn, strlen(hn)); + } +--- configure ++++ configure +@@ -7663,7 +7663,10 @@ + main () + { + +-int test = SYS_sched_getaffinity; ++#if defined(__UCLIBC__) && __UCLIBC_SUBLEVEL__ <= 28 ++#error taskset unusable ++#endif ++int test = SYS_sched_getaffinity; + + ; + return 0; +--- sys-utils/setarch.c ++++ sys-utils/setarch.c +@@ -39,6 +39,10 @@ + #include <sys/utsname.h> + #include "nls.h" + ++#if defined(__UCLIBC__) && __UCLIBC_SUBLEVEL__ <= 28 ++static const char *program_invocation_short_name; ++#endif ++ + #define set_pers(pers) ((long)syscall(SYS_personality, pers)) + + struct { +@@ -184,6 +188,14 @@ + bindtextdomain(PACKAGE, LOCALEDIR); + textdomain(PACKAGE); + ++#if defined(__UCLIBC__) && __UCLIBC_SUBLEVEL__ <= 28 ++ program_invocation_short_name = strrchr(argv[0],'/'); ++ if (program_invocation_short_name) ++ program_invocation_short_name++; ++ else ++ program_invocation_short_name = argv[0]; ++#endif ++ + if (argc < 1) + show_usage(_("Not enough arguments")); + diff --git a/catalyst/portage_overlay/uclibc/sys-apps/util-linux/util-linux-2.13-r2.ebuild b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/util-linux-2.13-r2.ebuild new file mode 100644 index 0000000..0f2981a --- /dev/null +++ b/catalyst/portage_overlay/uclibc/sys-apps/util-linux/util-linux-2.13-r2.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-apps/util-linux/util-linux-2.13-r2.ebuild,v 1.10 2008/01/12 10:50:31 vapier Exp $ + +EGIT_REPO_URI="git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git" +inherit eutils +[[ ${PV} == "9999" ]] && inherit git + +MY_PV=${PV/_/-} +MY_P=${PN}-ng-${MY_PV} +S=${WORKDIR}/${MY_P} + +DESCRIPTION="Various useful Linux utilities" +HOMEPAGE="http://www.kernel.org/pub/linux/utils/util-linux-ng/" +if [[ ${PV} == "9999" ]] ; then + SRC_URI="" +else + SRC_URI="http://www.kernel.org/pub/linux/utils/util-linux-ng/v${PV:0:4}/${MY_P}.tar.bz2 + crypt? ( http://loop-aes.sourceforge.net/updates/${MY_P}-1.diff.bz2 )" +fi + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86" +IUSE="crypt nls old-linux selinux" + +RDEPEND="!sys-process/schedutils + !sys-apps/setarch + >=sys-libs/ncurses-5.2-r2 + >=sys-fs/e2fsprogs-1.34 + selinux? ( sys-libs/libselinux )" +DEPEND="${RDEPEND} + nls? ( sys-devel/gettext ) + virtual/os-headers" + +src_unpack() { + if [[ ${PV} == "9999" ]] ; then + git_src_unpack + cd "${S}" + ./autogen.sh || die + else + unpack ${A} + cd "${S}" + epatch "${FILESDIR}"/${P}-uclibc.patch #203711 + epatch "${FILESDIR}"/${P}-locale.patch #191111 + epatch "${FILESDIR}"/${P}-ioprio-syscalls.patch #190613 + epatch "${FILESDIR}"/${P}-setuid-checks.patch + epatch "${FILESDIR}"/${P}-script-SIGWINCH.patch #191452 + use crypt && epatch "${WORKDIR}"/${MY_P}-1.diff + sed -i '/#include <asm\/page.h>/d' mount/swapon.c || die + fi +} + +src_compile() { + export localedir="/usr/share/locale" #190895 + econf \ + --with-fsprobe=blkid \ + $(use_enable nls) \ + --enable-agetty \ + --enable-cramfs \ + $(use_enable old-linux elvtune) \ + --disable-init \ + --disable-kill \ + --disable-last \ + --disable-mesg \ + --enable-partx \ + --enable-raw \ + --enable-rdev \ + --enable-rename \ + --disable-reset \ + --disable-login-utils \ + --enable-schedutils \ + --disable-wall \ + --enable-write \ + --without-pam \ + $(use_with selinux) \ + || die "configure failed" + emake || die "emake failed" +} + +src_install() { + emake install DESTDIR="${D}" || die "install failed" + dodoc AUTHORS NEWS README* TODO docs/* + + if use crypt ; then + newinitd "${FILESDIR}"/crypto-loop.initd crypto-loop || die + newconfd "${FILESDIR}"/crypto-loop.confd crypto-loop || die + fi +} |