From 29a37685225e6ba4a56bd2ba823fc4824ccb6e8d Mon Sep 17 00:00:00 2001 From: =?utf8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Date: Sun, 24 Jan 2016 11:41:30 +0100 Subject: [PATCH] - up to 4.6.0 --- 21-Fix-time_t-vs-long-int-mismatches.patch | 158 -- 22_gl_update_mktime.diff | 441 ----- findutils-automake_1.12.patch | 12 - findutils-pl.po-update.patch | 1678 +++++++++++++++++++- findutils-selinux.patch | 517 ------ findutils.spec | 26 +- 6 files changed, 1660 insertions(+), 1172 deletions(-) delete mode 100644 21-Fix-time_t-vs-long-int-mismatches.patch delete mode 100644 22_gl_update_mktime.diff delete mode 100644 findutils-automake_1.12.patch delete mode 100644 findutils-selinux.patch diff --git a/21-Fix-time_t-vs-long-int-mismatches.patch b/21-Fix-time_t-vs-long-int-mismatches.patch deleted file mode 100644 index f3ebb05..0000000 --- a/21-Fix-time_t-vs-long-int-mismatches.patch +++ /dev/null @@ -1,158 +0,0 @@ ->From 0078a6c784da339cc529b4f0bf1156ca52692e4c Mon Sep 17 00:00:00 2001 -From: Adam Borowski -Date: Thu, 6 Jun 2013 18:41:53 +0000 -Subject: [PATCH] Fix time_t vs long int mismatches. - -Old gnulibs used randomly either time_t or long int, with a compile-time -assert to ensure sizeof(time_t) <= sizeof(long int). This is not the -case on x32 where the machine word is 32 bit, yet time_t is 64 bit to -be able to handle dates after 2038. - -This is not relevant for modern versions of gnulib which has rewritten -this code, but, sadly, findutils 4.4.* uses an embedded copy of ancient -gnulib. ---- - gnulib/lib/getdate.y | 46 ++++++++++++++++++++++++---------------------- - 1 file changed, 24 insertions(+), 22 deletions(-) - -diff --git a/gnulib/lib/getdate.y b/gnulib/lib/getdate.y -index e292f5e..347cc77 100644 ---- a/gnulib/lib/getdate.y -+++ b/gnulib/lib/getdate.y -@@ -112,16 +112,18 @@ - /* Lots of this code assumes time_t and time_t-like values fit into - long int. It also assumes that signed integer overflow silently - wraps around, but there's no portable way to check for that at -- compile-time. */ -+ compile-time. -+ [1KB]: replaced suspicious uses of long_t by time_t. - verify (TYPE_IS_INTEGER (time_t)); - verify (LONG_MIN <= TYPE_MINIMUM (time_t) && TYPE_MAXIMUM (time_t) <= LONG_MAX); -+*/ - - /* An integer value, and the number of digits in its textual - representation. */ - typedef struct - { - bool negative; -- long int value; -+ time_t value; - size_t digits; - } textint; - -@@ -206,7 +208,7 @@ typedef struct - union YYSTYPE; - static int yylex (union YYSTYPE *, parser_control *); - static int yyerror (parser_control const *, char const *); --static long int time_zone_hhmm (textint, long int); -+static time_t time_zone_hhmm (textint, time_t); - - /* Extract into *PC any date and time info from a string of digits - of the form e.g., YYYYMMDD, YYMMDD, HHMM, HH (and sometimes YYY, -@@ -817,8 +819,8 @@ static table const military_table[] = - minutes. If MM is negative, then S is of the form HHMM and needs - to be picked apart; otherwise, S is of the form HH. */ - --static long int --time_zone_hhmm (textint s, long int mm) -+static time_t -+time_zone_hhmm (textint s, time_t mm) - { - if (mm < 0) - return (s.value / 100) * 60 + s.value % 100; -@@ -884,7 +886,7 @@ lookup_zone (parser_control const *pc, char const *name) - measured in seconds, ignoring leap seconds. - The body of this function is taken directly from the GNU C Library; - see src/strftime.c. */ --static long int -+static time_t - tm_diff (struct tm const *a, struct tm const *b) - { - /* Compute intervening leap days correctly even if year is negative. -@@ -896,9 +898,9 @@ tm_diff (struct tm const *a, struct tm const *b) - int a400 = SHR (a100, 2); - int b400 = SHR (b100, 2); - int intervening_leap_days = (a4 - b4) - (a100 - b100) + (a400 - b400); -- long int ayear = a->tm_year; -- long int years = ayear - b->tm_year; -- long int days = (365 * years + intervening_leap_days -+ time_t ayear = a->tm_year; -+ time_t years = ayear - b->tm_year; -+ time_t int days = (365 * years + intervening_leap_days - + (a->tm_yday - b->tm_yday)); - return (60 * (60 * (24 * days + (a->tm_hour - b->tm_hour)) - + (a->tm_min - b->tm_min)) -@@ -1200,7 +1202,7 @@ bool - get_date (struct timespec *result, char const *p, struct timespec const *now) - { - time_t Start; -- long int Start_ns; -+ time_t Start_ns; - struct tm const *tmp; - struct tm tm; - struct tm tm0; -@@ -1407,16 +1409,16 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) - problem, set the time zone to 1 hour behind UTC temporarily - by setting TZ="XXX1:00" and try mktime again. */ - -- long int time_zone = pc.time_zone; -- long int abs_time_zone = time_zone < 0 ? - time_zone : time_zone; -- long int abs_time_zone_hour = abs_time_zone / 60; -+ time_t time_zone = pc.time_zone; -+ time_t abs_time_zone = time_zone < 0 ? - time_zone : time_zone; -+ time_t abs_time_zone_hour = abs_time_zone / 60; - int abs_time_zone_min = abs_time_zone % 60; - char tz1buf[sizeof "XXX+0:00" - + sizeof pc.time_zone * CHAR_BIT / 3]; - if (!tz_was_altered) - tz0 = get_tz (tz0buf); - sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0), -- abs_time_zone_hour, abs_time_zone_min); -+ (long int)abs_time_zone_hour, abs_time_zone_min); - if (setenv ("TZ", tz1buf, 1) != 0) - goto fail; - tz_was_altered = true; -@@ -1439,7 +1441,7 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) - - if (pc.zones_seen) - { -- long int delta = pc.time_zone * 60; -+ time_t delta = pc.time_zone * 60; - time_t t1; - #ifdef HAVE_TM_GMTOFF - delta -= tm.tm_gmtoff; -@@ -1486,16 +1488,16 @@ get_date (struct timespec *result, char const *p, struct timespec const *now) - must be applied before relative times, and if mktime is applied - again the time zone will be lost. */ - { -- long int sum_ns = pc.seconds.tv_nsec + pc.rel.ns; -- long int normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; -+ time_t sum_ns = pc.seconds.tv_nsec + pc.rel.ns; -+ time_t normalized_ns = (sum_ns % BILLION + BILLION) % BILLION; - time_t t0 = Start; -- long int d1 = 60 * 60 * pc.rel.hour; -+ time_t d1 = 60 * 60 * pc.rel.hour; - time_t t1 = t0 + d1; -- long int d2 = 60 * pc.rel.minutes; -+ time_t d2 = 60 * pc.rel.minutes; - time_t t2 = t1 + d2; -- long int d3 = pc.rel.seconds; -+ time_t d3 = pc.rel.seconds; - time_t t3 = t2 + d3; -- long int d4 = (sum_ns - normalized_ns) / BILLION; -+ time_t d4 = (sum_ns - normalized_ns) / BILLION; - time_t t4 = t3 + d4; - - if ((d1 / (60 * 60) ^ pc.rel.hour) -@@ -1542,7 +1544,7 @@ main (int ac, char **av) - printf ("Bad format - couldn't convert.\n"); - else if (! (tm = localtime (&d.tv_sec))) - { -- long int sec = d.tv_sec; -+ time_t sec = d.tv_sec; - printf ("localtime (%ld) failed\n", sec); - } - else --- -1.8.3.rc3 - diff --git a/22_gl_update_mktime.diff b/22_gl_update_mktime.diff deleted file mode 100644 index 9fed1e9..0000000 --- a/22_gl_update_mktime.diff +++ /dev/null @@ -1,441 +0,0 @@ -Description: Update mktime* from gnulib 20140202+stable-2 - This fixes a build-error on x32. - Diagnosis and solution by Helmut Grohne. -Author: Andreas Metzler -Origin: vendor -Bug-Debian: http://bugs.debian.org/753896 -Forwarded: not-needed -Last-Update: 2014-07-06 - ---- /dev/null -+++ findutils-4.4.2/gnulib/lib/mktime-internal.h -@@ -0,0 +1,4 @@ -+#include -+time_t mktime_internal (struct tm *, -+ struct tm * (*) (time_t const *, struct tm *), -+ time_t *); ---- findutils-4.4.2.orig/gnulib/lib/mktime.c -+++ findutils-4.4.2/gnulib/lib/mktime.c -@@ -1,21 +1,21 @@ --/* Convert a `struct tm' to a time_t value. -- Copyright (C) 1993-1999, 2002-2005, 2006, 2007 Free Software Foundation, Inc. -+/* Convert a 'struct tm' to a time_t value. -+ Copyright (C) 1993-2014 Free Software Foundation, Inc. - This file is part of the GNU C Library. - Contributed by Paul Eggert . - -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3, or (at your option) -- any later version. -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. - -- This program is distributed in the hope that it will be useful, -+ The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. - -- You should have received a copy of the GNU General Public License along -- with this program; if not, write to the Free Software Foundation, -- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ - - /* Define this to have a standalone program to test this implementation of - mktime. */ -@@ -26,7 +26,7 @@ - #endif - - /* Assume that leap seconds are possible, unless told otherwise. -- If the host has a `zic' command with a `-L leapsecondfilename' option, -+ If the host has a 'zic' command with a '-L leapsecondfilename' option, - then it supports leap seconds; otherwise it probably doesn't. */ - #ifndef LEAP_SECONDS_POSSIBLE - # define LEAP_SECONDS_POSSIBLE 1 -@@ -42,9 +42,43 @@ - # include - # include - /* Make it work even if the system's libc has its own mktime routine. */ -+# undef mktime - # define mktime my_mktime - #endif /* DEBUG */ - -+/* Some of the code in this file assumes that signed integer overflow -+ silently wraps around. This assumption can't easily be programmed -+ around, nor can it be checked for portably at compile-time or -+ easily eliminated at run-time. -+ -+ Define WRAPV to 1 if the assumption is valid and if -+ #pragma GCC optimize ("wrapv") -+ does not trigger GCC bug 51793 -+ . -+ Otherwise, define it to 0; this forces the use of slower code that, -+ while not guaranteed by the C Standard, works on all production -+ platforms that we know about. */ -+#ifndef WRAPV -+# if (((__GNUC__ == 4 && 4 <= __GNUC_MINOR__) || 4 < __GNUC__) \ -+ && defined __GLIBC__) -+# pragma GCC optimize ("wrapv") -+# define WRAPV 1 -+# else -+# define WRAPV 0 -+# endif -+#endif -+ -+/* Verify a requirement at compile-time (unlike assert, which is runtime). */ -+#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } -+ -+/* A signed type that is at least one bit wider than int. */ -+#if INT_MAX <= LONG_MAX / 2 -+typedef long int long_int; -+#else -+typedef long long int long_int; -+#endif -+verify (long_int_is_wide_enough, INT_MAX == INT_MAX * (long_int) 2 / 2); -+ - /* Shift A right by B bits portably, by dividing A by 2**B and - truncating towards minus infinity. A and B should be free of side - effects, and B should be in the range 0 <= B <= INT_BITS - 2, where -@@ -55,9 +89,11 @@ - implementations (e.g., UNICOS 9.0 on a Cray Y-MP EL) don't shift - right in the usual way when A < 0, so SHR falls back on division if - ordinary A >> B doesn't seem to be the usual signed shift. */ --#define SHR(a, b) \ -- (-1 >> 1 == -1 \ -- ? (a) >> (b) \ -+#define SHR(a, b) \ -+ ((-1 >> 1 == -1 \ -+ && (long_int) -1 >> 1 == -1 \ -+ && ((time_t) -1 >> 1 == -1 || ! TYPE_SIGNED (time_t))) \ -+ ? (a) >> (b) \ - : (a) / (1 << (b)) - ((a) % (1 << (b)) < 0)) - - /* The extra casts in the following macros work around compiler bugs, -@@ -68,12 +104,8 @@ - #define TYPE_IS_INTEGER(t) ((t) 1.5 == 1) - - /* True if negative values of the signed integer type T use two's -- complement, ones' complement, or signed magnitude representation, -- respectively. Much GNU code assumes two's complement, but some -- people like to be portable to all possible C hosts. */ -+ complement, or if T is an unsigned integer type. */ - #define TYPE_TWOS_COMPLEMENT(t) ((t) ~ (t) 0 == (t) -1) --#define TYPE_ONES_COMPLEMENT(t) ((t) ~ (t) 0 == 0) --#define TYPE_SIGNED_MAGNITUDE(t) ((t) ~ (t) 0 < (t) -1) - - /* True if the arithmetic type T is signed. */ - #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) -@@ -85,13 +117,11 @@ - #define TYPE_MINIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) 0 \ -- : TYPE_SIGNED_MAGNITUDE (t) \ -- ? ~ (t) 0 \ -- : ~ (t) 0 << (sizeof (t) * CHAR_BIT - 1))) -+ : ~ TYPE_MAXIMUM (t))) - #define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ -- : ~ (~ (t) 0 << (sizeof (t) * CHAR_BIT - 1)))) -+ : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) - - #ifndef TIME_T_MIN - # define TIME_T_MIN TYPE_MINIMUM (time_t) -@@ -101,22 +131,19 @@ - #endif - #define TIME_T_MIDPOINT (SHR (TIME_T_MIN + TIME_T_MAX, 1) + 1) - --/* Verify a requirement at compile-time (unlike assert, which is runtime). */ --#define verify(name, assertion) struct name { char a[(assertion) ? 1 : -1]; } -- - verify (time_t_is_integer, TYPE_IS_INTEGER (time_t)); --verify (twos_complement_arithmetic, TYPE_TWOS_COMPLEMENT (int)); --/* The code also assumes that signed integer overflow silently wraps -- around, but this assumption can't be stated without causing a -- diagnostic on some hosts. */ -+verify (twos_complement_arithmetic, -+ (TYPE_TWOS_COMPLEMENT (int) -+ && TYPE_TWOS_COMPLEMENT (long_int) -+ && TYPE_TWOS_COMPLEMENT (time_t))); - - #define EPOCH_YEAR 1970 - #define TM_YEAR_BASE 1900 - verify (base_year_is_a_multiple_of_100, TM_YEAR_BASE % 100 == 0); - - /* Return 1 if YEAR + TM_YEAR_BASE is a leap year. */ --static inline int --leapyear (long int year) -+static int -+leapyear (long_int year) - { - /* Don't add YEAR to TM_YEAR_BASE, as that might overflow. - Also, work even if YEAR is negative. */ -@@ -147,8 +174,17 @@ const unsigned short int __mon_yday[2][1 - # undef __localtime_r - # define __localtime_r localtime_r - # define __mktime_internal mktime_internal -+# include "mktime-internal.h" - #endif - -+/* Return 1 if the values A and B differ according to the rules for -+ tm_isdst: A and B differ if one is zero and the other positive. */ -+static int -+isdst_differ (int a, int b) -+{ -+ return (!a != !b) && (0 <= a) && (0 <= b); -+} -+ - /* Return an integer value measuring (YEAR1-YDAY1 HOUR1:MIN1:SEC1) - - (YEAR0-YDAY0 HOUR0:MIN0:SEC0) in seconds, assuming that the clocks - were not adjusted between the time stamps. -@@ -160,13 +196,11 @@ const unsigned short int __mon_yday[2][1 - The result may overflow. It is the caller's responsibility to - detect overflow. */ - --static inline time_t --ydhms_diff (long int year1, long int yday1, int hour1, int min1, int sec1, -+static time_t -+ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, - int year0, int yday0, int hour0, int min0, int sec0) - { - verify (C99_integer_division, -1 / 2 == 0); -- verify (long_int_year_and_yday_are_wide_enough, -- INT_MAX <= LONG_MAX / 2 || TIME_T_MAX <= UINT_MAX); - - /* Compute intervening leap days correctly even if year is negative. - Take care to avoid integer overflow here. */ -@@ -189,6 +223,53 @@ ydhms_diff (long int year1, long int yda - return seconds; - } - -+/* Return the average of A and B, even if A + B would overflow. */ -+static time_t -+time_t_avg (time_t a, time_t b) -+{ -+ return SHR (a, 1) + SHR (b, 1) + (a & b & 1); -+} -+ -+/* Return 1 if A + B does not overflow. If time_t is unsigned and if -+ B's top bit is set, assume that the sum represents A - -B, and -+ return 1 if the subtraction does not wrap around. */ -+static int -+time_t_add_ok (time_t a, time_t b) -+{ -+ if (! TYPE_SIGNED (time_t)) -+ { -+ time_t sum = a + b; -+ return (sum < a) == (TIME_T_MIDPOINT <= b); -+ } -+ else if (WRAPV) -+ { -+ time_t sum = a + b; -+ return (sum < a) == (b < 0); -+ } -+ else -+ { -+ time_t avg = time_t_avg (a, b); -+ return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2; -+ } -+} -+ -+/* Return 1 if A + B does not overflow. */ -+static int -+time_t_int_add_ok (time_t a, int b) -+{ -+ verify (int_no_wider_than_time_t, INT_MAX <= TIME_T_MAX); -+ if (WRAPV) -+ { -+ time_t sum = a + b; -+ return (sum < a) == (b < 0); -+ } -+ else -+ { -+ int a_odd = a & 1; -+ time_t avg = SHR (a, 1) + (SHR (b, 1) + (a_odd & b)); -+ return TIME_T_MIN / 2 <= avg && avg <= TIME_T_MAX / 2; -+ } -+} - - /* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC), - assuming that *T corresponds to *TP and that no clock adjustments -@@ -197,7 +278,7 @@ ydhms_diff (long int year1, long int yda - If overflow occurs, yield the minimal or maximal value, except do not - yield a value equal to *T. */ - static time_t --guess_time_tm (long int year, long int yday, int hour, int min, int sec, -+guess_time_tm (long_int year, long_int yday, int hour, int min, int sec, - const time_t *t, const struct tm *tp) - { - if (tp) -@@ -205,9 +286,8 @@ guess_time_tm (long int year, long int y - time_t d = ydhms_diff (year, yday, hour, min, sec, - tp->tm_year, tp->tm_yday, - tp->tm_hour, tp->tm_min, tp->tm_sec); -- time_t t1 = *t + d; -- if ((t1 < *t) == (TYPE_SIGNED (time_t) ? d < 0 : TIME_T_MAX / 2 < d)) -- return t1; -+ if (time_t_add_ok (*t, d)) -+ return *t + d; - } - - /* Overflow occurred one way or another. Return the nearest result -@@ -239,9 +319,7 @@ ranged_convert (struct tm *(*convert) (c - they differ by 1. */ - while (bad != ok + (bad < 0 ? -1 : 1)) - { -- time_t mid = *t = (bad < 0 -- ? bad + ((ok - bad) >> 1) -- : ok + ((bad - ok) >> 1)); -+ time_t mid = *t = time_t_avg (ok, bad); - r = convert (t, tp); - if (r) - ok = mid; -@@ -299,8 +377,8 @@ __mktime_internal (struct tm *tp, - int mon_remainder = mon % 12; - int negative_mon_remainder = mon_remainder < 0; - int mon_years = mon / 12 - negative_mon_remainder; -- long int lyear_requested = year_requested; -- long int year = lyear_requested + mon_years; -+ long_int lyear_requested = year_requested; -+ long_int year = lyear_requested + mon_years; - - /* The other values need not be in range: - the remaining code handles minor overflows correctly, -@@ -312,8 +390,8 @@ __mktime_internal (struct tm *tp, - int mon_yday = ((__mon_yday[leapyear (year)] - [mon_remainder + 12 * negative_mon_remainder]) - - 1); -- long int lmday = mday; -- long int yday = mon_yday + lmday; -+ long_int lmday = mday; -+ long_int yday = mon_yday + lmday; - - time_t guessed_offset = *offset; - -@@ -367,9 +445,9 @@ __mktime_internal (struct tm *tp, - - int approx_biennia = SHR (t0, ALOG2_SECONDS_PER_BIENNIUM); - int diff = approx_biennia - approx_requested_biennia; -- int abs_diff = diff < 0 ? - diff : diff; -+ int approx_abs_diff = diff < 0 ? -1 - diff : diff; - -- /* IRIX 4.0.5 cc miscaculates TIME_T_MIN / 3: it erroneously -+ /* IRIX 4.0.5 cc miscalculates TIME_T_MIN / 3: it erroneously - gives a positive value of 715827882. Setting a variable - first then doing math on it seems to work. - (ghazi@caip.rutgers.edu) */ -@@ -378,15 +456,15 @@ __mktime_internal (struct tm *tp, - time_t overflow_threshold = - (time_t_max / 3 - time_t_min / 3) >> ALOG2_SECONDS_PER_BIENNIUM; - -- if (overflow_threshold < abs_diff) -+ if (overflow_threshold < approx_abs_diff) - { - /* Overflow occurred. Try repairing it; this might work if - the time zone offset is enough to undo the overflow. */ - time_t repaired_t0 = -1 - t0; - approx_biennia = SHR (repaired_t0, ALOG2_SECONDS_PER_BIENNIUM); - diff = approx_biennia - approx_requested_biennia; -- abs_diff = diff < 0 ? - diff : diff; -- if (overflow_threshold < abs_diff) -+ approx_abs_diff = diff < 0 ? -1 - diff : diff; -+ if (overflow_threshold < approx_abs_diff) - return -1; - guessed_offset += repaired_t0 - t0; - t0 = repaired_t0; -@@ -420,7 +498,7 @@ __mktime_internal (struct tm *tp, - - /* We have a match. Check whether tm.tm_isdst has the requested - value, if any. */ -- if (isdst != tm.tm_isdst && 0 <= isdst && 0 <= tm.tm_isdst) -+ if (isdst_differ (isdst, tm.tm_isdst)) - { - /* tm.tm_isdst has the wrong value. Look for a neighboring - time with the right value, and use its UTC offset. -@@ -453,22 +531,20 @@ __mktime_internal (struct tm *tp, - - for (delta = stride; delta < delta_bound; delta += stride) - for (direction = -1; direction <= 1; direction += 2) -- { -- time_t ot = t + delta * direction; -- if ((ot < t) == (direction < 0)) -- { -- struct tm otm; -- ranged_convert (convert, &ot, &otm); -- if (otm.tm_isdst == isdst) -- { -- /* We found the desired tm_isdst. -- Extrapolate back to the desired time. */ -- t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); -- ranged_convert (convert, &t, &tm); -- goto offset_found; -- } -- } -- } -+ if (time_t_int_add_ok (t, delta * direction)) -+ { -+ time_t ot = t + delta * direction; -+ struct tm otm; -+ ranged_convert (convert, &ot, &otm); -+ if (! isdst_differ (isdst, otm.tm_isdst)) -+ { -+ /* We found the desired tm_isdst. -+ Extrapolate back to the desired time. */ -+ t = guess_time_tm (year, yday, hour, min, sec, &ot, &otm); -+ ranged_convert (convert, &t, &tm); -+ goto offset_found; -+ } -+ } - } - - offset_found: -@@ -479,11 +555,13 @@ __mktime_internal (struct tm *tp, - /* Adjust time to reflect the tm_sec requested, not the normalized value. - Also, repair any damage from a false match due to a leap second. */ - int sec_adjustment = (sec == 0 && tm.tm_sec == 60) - sec; -+ if (! time_t_int_add_ok (t, sec_requested)) -+ return -1; - t1 = t + sec_requested; -+ if (! time_t_int_add_ok (t1, sec_adjustment)) -+ return -1; - t2 = t1 + sec_adjustment; -- if (((t1 < t) != (sec_requested < 0)) -- | ((t2 < t1) != (sec_adjustment < 0)) -- | ! convert (&t2, &tm)) -+ if (! convert (&t2, &tm)) - return -1; - t = t2; - } -@@ -505,7 +583,7 @@ mktime (struct tm *tp) - { - #ifdef _LIBC - /* POSIX.1 8.1.1 requires that whenever mktime() is called, the -- time zone names contained in the external variable `tzname' shall -+ time zone names contained in the external variable 'tzname' shall - be set as if the tzset() function had been called. */ - __tzset (); - #endif -@@ -534,7 +612,7 @@ not_equal_tm (const struct tm *a, const - | (a->tm_mon ^ b->tm_mon) - | (a->tm_year ^ b->tm_year) - | (a->tm_yday ^ b->tm_yday) -- | (a->tm_isdst ^ b->tm_isdst)); -+ | isdst_differ (a->tm_isdst, b->tm_isdst)); - } - - static void -@@ -658,6 +736,6 @@ main (int argc, char **argv) - - /* - Local Variables: --compile-command: "gcc -DDEBUG -Wall -W -O -g mktime.c -o mktime" -+compile-command: "gcc -DDEBUG -I. -Wall -W -O2 -g mktime.c -o mktime" - End: - */ diff --git a/findutils-automake_1.12.patch b/findutils-automake_1.12.patch deleted file mode 100644 index a13341d..0000000 --- a/findutils-automake_1.12.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -dur findutils-4.4.2.orig/configure.ac findutils-4.4.2/configure.ac ---- findutils-4.4.2.orig/configure.ac 2012-06-21 09:23:45.000000000 +0200 -+++ findutils-4.4.2/configure.ac 2012-06-21 09:23:28.000000000 +0200 -@@ -77,8 +77,6 @@ - dnl for gnulib - gl_EARLY - --AM_C_PROTOTYPES -- - AC_PROG_INSTALL - AC_PROG_RANLIB - dnl AC_PROG_LIBTOOL diff --git a/findutils-pl.po-update.patch b/findutils-pl.po-update.patch index bafb28b..4c00173 100644 --- a/findutils-pl.po-update.patch +++ b/findutils-pl.po-update.patch @@ -1,45 +1,1665 @@ ---- findutils-4.4.2/po/pl.po.orig 2009-05-16 17:17:01.000000000 +0200 -+++ findutils-4.4.2/po/pl.po 2010-11-04 08:09:35.247095747 +0100 -@@ -5,10 +5,10 @@ - # - msgid "" +--- findutils-4.6.0/po/pl.po.orig 2015-12-28 22:37:34.000000000 +0100 ++++ findutils-4.6.0/po/pl.po 2016-01-24 11:34:36.111487608 +0100 +@@ -8,7 +8,7 @@ msgid "" msgstr "" --"Project-Id-Version: findutils 4.4.0\n" -+"Project-Id-Version: findutils 4.4.2\n" + "Project-Id-Version: findutils 4.5.15\n" "Report-Msgid-Bugs-To: bug-findutils@gnu.org\n" - "POT-Creation-Date: 2009-05-12 09:47+0100\n" --"PO-Revision-Date: 2008-03-16 00:10+0100\n" -+"PO-Revision-Date: 2010-11-04 08:05+0100\n" +-"POT-Creation-Date: 2015-12-28 21:37+0000\n" ++"POT-Creation-Date: 2015-12-18 14:45+0000\n" + "PO-Revision-Date: 2015-12-18 23:41+0100\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" - "MIME-Version: 1.0\n" -@@ -507,9 +507,9 @@ - msgstr "Ten system nie daje mo¿liwo¶ci sprawdzenia czasu narodzin pliku." +@@ -31,98 +31,57 @@ msgid "Cannot close standard input" + msgstr "Nie można zamknąć standardowego wejścia" - #: find/parser.c:1525 + #: find/exec.c:285 -#, fuzzy, c-format +-msgid "Failed to change directory%s%s" +#, c-format - msgid "The %s test needs an argument" --msgstr "%s: opcja `%s' musi mieæ argument\n" -+msgstr "Test %s musi mieæ argument" ++msgid "Failed to change directory: %s" + msgstr "Nie udało się zmienić katalogu: %s" - #: find/parser.c:1562 +-#: find/exec.c:314 xargs/xargs.c:1265 ++#: find/exec.c:312 xargs/xargs.c:1241 #, c-format -@@ -571,14 +571,13 @@ - msgstr "B³êdny argument %s opcji -used" + msgid "cannot fork" + msgstr "nie można wykonać fork" - #: find/parser.c:2463 --#, fuzzy, c-format +-#: find/exec.c:345 ++#: find/exec.c:343 + #, c-format + msgid "error waiting for %s" + msgstr "błąd podczas czekania na %s" + +-#: find/exec.c:354 ++#: find/exec.c:352 + #, c-format + msgid "%s terminated by signal %d" + msgstr "%s zakończony sygnałem %d" + +-#: find/fstype.c:185 +-#, c-format +-msgid "Cannot read mounted file system list" +-msgstr "Nie można odczytać listy zamontowanych systemów plików" +- +-#: find/fstype.c:244 +-msgid "unknown" +-msgstr "nieznany" +- +-#: find/ftsfind.c:245 find/oldfind.c:1139 +-#, c-format +-msgid "" +-"Symbolic link %s is part of a loop in the directory hierarchy; we have " +-"already visited the directory to which it points." +-msgstr "" +-"Dowiązanie symboliczne %s jest częścią pętli w hierarchii katalogów; katalog " +-"wskazywany przez to dowiązanie był już odwiedzony." +- +-#: find/ftsfind.c:259 +-#, c-format +-msgid "" +-"File system loop detected; %s is part of the same file system loop as %s." +-msgstr "" +-"Wykryto pętlę w systemie plików; %s jest częścią tej samej pętli w systemie " +-"plików co %s." +- +-#: find/ftsfind.c:444 find/util.c:221 +-#, c-format +-msgid "WARNING: file %s appears to have mode 0000" +-msgstr "UWAGA: wygląda na to, że plik %s ma uprawnienia 0000" +- +-#: find/ftsfind.c:559 +-#, c-format +-msgid "cannot search %s" +-msgstr "nie można szukać %s" +- +-#: find/ftsfind.c:609 +-#, c-format +-msgid "failed to restore working directory after searching %s" +-msgstr "nie udało się przywrócić katalogu roboczego po przeszukaniu %s" +- +-#: find/ftsfind.c:677 find/oldfind.c:204 ++#: find/find.c:203 find/ftsfind.c:677 + #, c-format + msgid "Failed to initialize shared-file hash table" + msgstr "Nie udało się zainicjować tablicy haszującej współdzielonych plików" + +-#: find/ftsfind.c:693 find/oldfind.c:220 locate/bigram.c:105 locate/code.c:174 +-#: locate/frcode.c:233 locate/locate.c:1581 xargs/xargs.c:423 ++#: find/find.c:219 find/ftsfind.c:693 locate/bigram.c:105 locate/code.c:174 ++#: locate/frcode.c:233 locate/locate.c:1581 xargs/xargs.c:401 + #, c-format + msgid "The atexit library function failed" + msgstr "Wywołanie funkcji bibliotecznej atexit nie powiodło się" + +-#: find/oldfind.c:264 ++#: find/find.c:263 + #, c-format + msgid "cannot stat current directory" + msgstr "nie można wykonać stat na bieżącym katalogu" + +-#: find/oldfind.c:355 ++#: find/find.c:354 + #, c-format + msgid "Cannot read list of mounted devices." + msgstr "Nie można odczytać listy podmontowanych urządzeń." + +-#: find/oldfind.c:444 ++#: find/find.c:443 + #, c-format + msgid "WARNING: file system %s has recently been unmounted." + msgstr "UWAGA: system plików %s został niedawno odmontowany." + +-#: find/oldfind.c:454 ++#: find/find.c:453 + #, c-format + msgid "WARNING: file system %s has recently been mounted." + msgstr "UWAGA: system plików %s został niedawno zamontowany." + +-#: find/oldfind.c:551 ++#: find/find.c:550 + #, c-format + msgid "" + "%s%s changed during execution of %s (old device number %ld, new device " +@@ -131,7 +90,7 @@ msgstr "" + "%s%s zmienił się podczas wykonywania %s (stary numer urządzenia %ld, nowy " + "numer urządzenia %ld, typ systemu plików to %s) [ref %ld]" + +-#: find/oldfind.c:588 ++#: find/find.c:587 + #, c-format + msgid "" + "%s%s changed during execution of %s (old inode number %, new inode " +@@ -140,17 +99,26 @@ msgstr "" + "%s%s zmienił się podczas wykonywania %s (stary numer i-węzła %, " + "nowy numer i-węzła %, typ systemu plików %s) [ref %ld]" + +-#: find/oldfind.c:753 ++#: find/find.c:752 + #, c-format + msgid "failed to return to parent directory" + msgstr "nie udało się wrócić do katalogu nadrzędnego" + +-#: find/oldfind.c:1039 ++#: find/find.c:1038 + #, c-format + msgid "Failed to safely change directory into %s" + msgstr "Nie udało się bezpiecznie zmienić katalogu na %s" + +-#: find/oldfind.c:1158 ++#: find/find.c:1138 find/ftsfind.c:245 ++#, c-format ++msgid "" ++"Symbolic link %s is part of a loop in the directory hierarchy; we have " ++"already visited the directory to which it points." ++msgstr "" ++"Dowiązanie symboliczne %s jest częścią pętli w hierarchii katalogów; katalog " ++"wskazywany przez to dowiązanie był już odwiedzony." ++ ++#: find/find.c:1157 + #, c-format + msgid "" + "Filesystem loop detected; %s has the same device number and inode as a " +@@ -168,12 +136,12 @@ msgstr[2] "" + "Wykryto pętlę w systemie plików; %s ma ten sam numer urządzenia i i-węzeł co " + "katalog %d poziomów wyżej w hierarchii systemu plików." + +-#: find/oldfind.c:1410 ++#: find/find.c:1409 + #, c-format + msgid "warning: not following the symbolic link %s" + msgstr "uwaga: nie podążanie za dowiązaniem symbolicznym %s" + +-#: find/oldfind.c:1483 ++#: find/find.c:1482 + #, c-format + msgid "" + "WARNING: Hard link count is wrong for %s (saw only st_nlink=% but " +@@ -188,6 +156,38 @@ msgstr "" + "Wcześniejsze wyniki mogły nie zawierać katalogów, które powinny być " + "przeszukane." + ++#: find/fstype.c:185 ++#, c-format ++msgid "Cannot read mounted file system list" ++msgstr "Nie można odczytać listy zamontowanych systemów plików" ++ ++#: find/fstype.c:244 ++msgid "unknown" ++msgstr "nieznany" ++ ++#: find/ftsfind.c:259 ++#, c-format ++msgid "" ++"File system loop detected; %s is part of the same file system loop as %s." ++msgstr "" ++"Wykryto pętlę w systemie plików; %s jest częścią tej samej pętli w systemie " ++"plików co %s." ++ ++#: find/ftsfind.c:444 find/util.c:222 +#, c-format ++msgid "WARNING: file %s appears to have mode 0000" ++msgstr "UWAGA: wygląda na to, że plik %s ma uprawnienia 0000" ++ ++#: find/ftsfind.c:559 ++#, c-format ++msgid "cannot search %s" ++msgstr "nie można szukać %s" ++ ++#: find/ftsfind.c:609 ++#, c-format ++msgid "failed to restore working directory after searching %s" ++msgstr "nie udało się przywrócić katalogu roboczego po przeszukaniu %s" ++ + #: find/parser.c:452 + #, c-format + msgid "" +@@ -199,7 +199,7 @@ msgstr "" + "aktywna jest opcja -depth. Aby wykonać tę akcję, należy explicite użyć opcji " + "-depth." + +-#: find/parser.c:608 ++#: find/parser.c:599 + #, c-format + msgid "" + "warning: you have specified the %s option after a non-option argument %s, " +@@ -211,7 +211,7 @@ msgstr "" + "pozycyjne (%s wpływa na testy podane przed nią jak i po niej). Proszę " + "podawać opcje przed innymi argumentami.\n" + +-#: find/parser.c:915 ++#: find/parser.c:906 + #, c-format + msgid "" + "warning: the -d option is deprecated; please use -depth instead, because the " +@@ -220,7 +220,7 @@ msgstr "" + "uwaga: opcja -d jest przestarzała; proszę zamiast niej używać -depth, " + "ponieważ ta jest zgodna z POSIX." + +-#: find/parser.c:1188 ++#: find/parser.c:1179 + #, c-format + msgid "" + "%s is not the name of an existing group and it does not look like a numeric " +@@ -229,17 +229,17 @@ msgstr "" + "%s nie jest nazwą żadnej istniejącej grupy i nie wygląda na liczbowy " + "identyfikator grupy, ponieważ ma nieznany przyrostek %s" + +-#: find/parser.c:1203 ++#: find/parser.c:1194 + #, c-format + msgid "%s is not the name of an existing group" + msgstr "%s nie jest nazwą żadnej istniejącej grupy" + +-#: find/parser.c:1209 ++#: find/parser.c:1200 + #, c-format + msgid "argument to -group is empty, but should be a group name" + msgstr "argument opcji -group jest pusty, a powinien być nazwą grupy" + +-#: find/parser.c:1231 ++#: find/parser.c:1222 + msgid "" + "\n" + "default path is the current directory; default expression is -print\n" +@@ -249,7 +249,7 @@ msgstr "" + "domyślna ścieżka to aktualny katalog; domyślne wyrażenie to -print\n" + "wyrażenie może składać się z: operatorów, opcji, testów i akcji:\n" + +-#: find/parser.c:1234 ++#: find/parser.c:1225 + msgid "" + "operators (decreasing precedence; -and is implicit where no others are " + "given):\n" +@@ -260,7 +260,7 @@ msgstr "" + " ( WYR ) ! WYR -not WYR WYR1 -a WYR2 WYR1 -and WYR2\n" + " WYR1 -o WYR2 WYR1 -or WYR2 WYR1 , WYR2\n" + +-#: find/parser.c:1238 ++#: find/parser.c:1229 + msgid "" + "positional options (always true): -daystart -follow -regextype\n" + "\n" +@@ -274,7 +274,7 @@ msgstr "" + " -depth --help -maxdepth POZIOMY -mindepth POZIOMY -mount -noleaf\n" + " --version -xdev -ignore_readdir_race -noignore_readdir_race\n" + +-#: find/parser.c:1243 ++#: find/parser.c:1234 + msgid "" + "tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N\n" + " -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME\n" +@@ -289,7 +289,7 @@ msgstr "" + "WZORZEC\n" + " -links N -lname WZORZEC -mmin N -mtime N -name WZORZEC -newer PLIK" + +-#: find/parser.c:1248 ++#: find/parser.c:1239 + msgid "" + " -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN\n" + " -readable -writable -executable\n" +@@ -301,11 +301,11 @@ msgstr "" + " -wholename WZORZEC -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n" + " -used N -user NAZWA -xtype [bcdpfls]" + +-#: find/parser.c:1253 ++#: find/parser.c:1244 + msgid " -context CONTEXT\n" + msgstr " -context KONTEKST\n" + +-#: find/parser.c:1255 ++#: find/parser.c:1246 + msgid "" + "\n" + "actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n" +@@ -319,7 +319,7 @@ msgstr "" + " -exec POLECENIE ; -exec POLECENIE {} + -ok POLECENIE ;\n" + " -execdir POLECENIE ; -execdir POLECENIE {} + -okdir POLECENIE ;\n" + +-#: find/parser.c:1261 ++#: find/parser.c:1252 + msgid "" + "Report (and track progress on fixing) bugs via the findutils bug-reporting\n" + "page at http://savannah.gnu.org/ or, if you have no web access, by sending\n" +@@ -330,13 +330,13 @@ msgstr "" + "w przypadku braku dostępu do WWW, wysyłając pocztę elektroniczną pod\n" + "adres ." + +-#: find/parser.c:1316 ++#: find/parser.c:1307 + #, c-format + msgid "sanity check of the fnmatch() library function failed." + msgstr "" + "sprawdzenie poprawności funkcji bibliotecznej fnmatch() nie powiodło się." + +-#: find/parser.c:1330 ++#: find/parser.c:1321 + #, c-format + msgid "" + "warning: Unix filenames usually don't contain slashes (though pathnames " +@@ -350,44 +350,44 @@ msgstr "" + "systemie. Przydatny może być test '-wholename' albo '-samefile'. " + "Ewentualnie, mając GNU grepa, można użyć 'find ... -print0 | grep -FzZ %s'." + +-#: find/parser.c:1456 ++#: find/parser.c:1447 + #, c-format + msgid "Expected a positive decimal integer argument to %s, but got %s" + msgstr "" + "Dla opcji %s oczekiwano argumentu będącego dodatnią liczbą całkowitą, a " + "otrzymano %s" + +-#: find/parser.c:1621 ++#: find/parser.c:1612 + #, c-format + msgid "This system does not provide a way to find the birth time of a file." + msgstr "Ten system nie daje możliwości sprawdzenia czasu narodzin pliku." + +-#: find/parser.c:1642 ++#: find/parser.c:1633 + #, c-format + msgid "The %s test needs an argument" + msgstr "Test %s musi mieć argument" + +-#: find/parser.c:1679 ++#: find/parser.c:1670 + #, c-format + msgid "I cannot figure out how to interpret %s as a date or time" + msgstr "Nie wiem jak zinterpretować %s jako datę lub czas" + +-#: find/parser.c:1696 ++#: find/parser.c:1687 + #, c-format + msgid "Cannot obtain birth time of file %s" + msgstr "Nie można uzyskać czasu narodzin pliku %s" + +-#: find/parser.c:1840 ++#: find/parser.c:1831 + #, c-format + msgid "warning: -%s %s will not match anything because it ends with /." + msgstr "uwaga: -%s %s nie pasuje do niczego, ponieważ kończy się /." + +-#: find/parser.c:1937 ++#: find/parser.c:1928 + #, c-format + msgid "invalid mode %s" + msgstr "niewłaściwe uprawnienia %s" + +-#: find/parser.c:1955 ++#: find/parser.c:1946 + #, c-format + msgid "" + "warning: you have specified a mode pattern %s (which is equivalent to /000). " +@@ -399,27 +399,22 @@ msgstr "" + "wcześniej nie pasowało do żadnych plików, ale teraz pasuje do wszystkich " + "plików." + +-#: find/parser.c:2128 +-#, c-format +-msgid "failed to compile regular expression '%s': %s" +-msgstr "" +- +-#: find/parser.c:2157 ++#: find/parser.c:2147 + #, c-format + msgid "invalid null argument to -size" + msgstr "błędny zerowy argument opcji -size" + +-#: find/parser.c:2207 ++#: find/parser.c:2197 + #, c-format + msgid "invalid -size type `%c'" + msgstr "błędny typ -size `%c'" + +-#: find/parser.c:2217 ++#: find/parser.c:2207 + #, c-format + msgid "Invalid argument `%s%s' to -size" + msgstr "Błędny argument `%s%s' opcji -size" + +-#: find/parser.c:2399 ++#: find/parser.c:2389 + msgid "" + "The -show-control-chars option takes a single argument which must be " + "'literal' or 'safe'" +@@ -427,37 +422,37 @@ msgstr "" + "Opcja -show-control-chars przyjmuje jeden argument o wartości 'literal' lub " + "'safe'" + +-#: find/parser.c:2513 ++#: find/parser.c:2503 + #, c-format + msgid "Invalid argument %s to -used" + msgstr "Błędny argument %s opcji -used" + +-#: find/parser.c:2554 ++#: find/parser.c:2544 + #, c-format msgid "%s is not the name of a known user" --msgstr "%s nie jest nazw± ¿adnej istniej±cej grupy" -+msgstr "%s nie jest nazw± ¿adnego znanego u¿ytkownika" + msgstr "%s nie jest nazwą żadnego znanego użytkownika" - #: find/parser.c:2469 --#, fuzzy +-#: find/parser.c:2561 ++#: find/parser.c:2551 + #, c-format msgid "The argument to -user should not be empty" --msgstr "Argument opcji --max-database-age nie mo¿e byæ pusty" -+msgstr "Argument opcji -user nie mo¿e byæ pusty" + msgstr "Argument opcji -user nie może być pusty" + +-#: find/parser.c:2586 ++#: find/parser.c:2576 + #, c-format + msgid "Features enabled: " + msgstr "Włączone właściwości: " + +-#: find/parser.c:2663 ++#: find/parser.c:2653 + #, c-format + msgid "invalid predicate -context: SELinux is not enabled." + msgstr "błędne wyrażenie -context: SELinux nie jest włączony." + +-#: find/parser.c:2727 ++#: find/parser.c:2717 + #, c-format + msgid "Arguments to -type should contain only one letter" + msgstr "Argumenty dla -type powinny zawierać tylko jedną literę" + +-#: find/parser.c:2756 ++#: find/parser.c:2746 + #, c-format + msgid "" + "-type %c is not supported because symbolic links are not supported on the " +@@ -466,7 +461,7 @@ msgstr "" + "-type %c nie jest obsługiwane, ponieważ dowiązania symboliczne nie są " + "obsługiwane na platformie, dla której find został skompilowany." + +-#: find/parser.c:2767 ++#: find/parser.c:2757 + #, c-format + msgid "" + "-type %c is not supported because FIFOs are not supported on the platform " +@@ -475,7 +470,7 @@ msgstr "" + "-type %c nie jest obsługiwane, ponieważ FIFO nie są obsługiwane na " + "platformie, dla której find został skompilowany." + +-#: find/parser.c:2778 ++#: find/parser.c:2768 + #, c-format + msgid "" + "-type %c is not supported because named sockets are not supported on the " +@@ -484,7 +479,7 @@ msgstr "" + "-type %c nie jest obsługiwane, ponieważ gniazda nazwane nie są obsługiwane " + "na platformie, dla której find został skompilowany." + +-#: find/parser.c:2789 ++#: find/parser.c:2779 + #, c-format + msgid "" + "-type %c is not supported because Solaris doors are not supported on the " +@@ -493,12 +488,12 @@ msgstr "" + "-type %c nie jest obsługiwane, ponieważ solarisowe \"drzwi\" nie są " + "obsługiwane na platformie, dla której find został skompilowany." + +-#: find/parser.c:2796 ++#: find/parser.c:2786 + #, c-format + msgid "Unknown argument to -type: %c" + msgstr "Nieznany argument opcji -type: %c" + +-#: find/parser.c:2870 ++#: find/parser.c:2860 + #, c-format + msgid "" + "The current directory is included in the PATH environment variable, which is " +@@ -511,7 +506,7 @@ msgstr "" + "katalog ze zmiennej $PATH (tzn. usunąć \".\", podwójne, wiodące lub końcowe " + "dwukropki)" + +-#: find/parser.c:2882 ++#: find/parser.c:2872 + #, c-format + msgid "" + "The relative path %s is included in the PATH environment variable, which is " +@@ -522,7 +517,7 @@ msgstr "" + "niebezpieczne w połączeniu z akcją %s polecenia find. Proszę usunąć ten wpis " + "ze zmiennej $PATH" + +-#: find/parser.c:2991 ++#: find/parser.c:2981 + #, c-format + msgid "" + "You may not use {} within the utility name for -execdir and -okdir, because " +@@ -531,37 +526,37 @@ msgstr "" + "Nie można używać {} wewnątrz nazwy narzędzia dla opcji -execdir i -okdir, " + "ponieważ jest to potencjalny problem z bezpieczeństwem." + +-#: find/parser.c:3017 ++#: find/parser.c:3007 + #, c-format + msgid "Only one instance of {} is supported with -exec%s ... +" + msgstr "Obsługiwane jest tylko jedno wystąpienie {} przy -exec%s ... +" + +-#: find/parser.c:3027 ++#: find/parser.c:3017 + #, c-format + msgid "In %s the %s must appear by itself, but you specified %s" + msgstr "W %s %s musi wystąpić jako takie, ale podano %s" + +-#: find/parser.c:3047 ++#: find/parser.c:3037 + #, c-format + msgid "The environment is too large for exec()." + msgstr "Środowisko jest zbyt duże, aby wykonać exec()." + +-#: find/parser.c:3216 ++#: find/parser.c:3206 + #, c-format + msgid "arithmetic overflow while converting %s days to a number of seconds" + msgstr "przepełnienie arytmetyczne przy przeliczaniu %s z dni na liczbę sekund" + +-#: find/parser.c:3240 ++#: find/parser.c:3230 + #, c-format + msgid "arithmetic overflow when trying to calculate the end of today" + msgstr "" + "przepełnienie arytmetyczne przy próbie obliczenia końca dnia dzisiejszego" + +-#: find/parser.c:3399 ++#: find/parser.c:3389 + msgid "standard error" + msgstr "standardowe wyjście diagnostyczne" + +-#: find/parser.c:3404 ++#: find/parser.c:3394 + msgid "standard output" + msgstr "standardowe wyjście" + +@@ -736,52 +731,52 @@ msgstr "nie obsługiwane dodatkowe wyraÅ + msgid "oops -- invalid default insertion of and!" + msgstr "ojej -- błędne domyślne wstawienie and!" + +-#: find/util.c:174 ++#: find/util.c:175 + #, c-format + msgid "Usage: %s [-H] [-L] [-P] [-Olevel] [-D " + msgstr "Składnia: %s [-H] [-L] [-P] [-Opoziom] [-D " + +-#: find/util.c:176 ++#: find/util.c:177 + #, c-format + msgid "] [path...] [expression]\n" + msgstr "] [ścieżka...] [wyrażenie]\n" + +-#: find/util.c:458 +-#, fuzzy, c-format +-msgid "Failed to save initial working directory%s%s" ++#: find/util.c:459 ++#, c-format ++msgid "failed to save initial working directory: %s" + msgstr "nie udało się zachować początkowego katalogu roboczego: %s" + +-#: find/util.c:477 +-#, fuzzy, c-format +-msgid "Failed to restore initial working directory%s%s" ++#: find/util.c:476 ++#, c-format ++msgid "failed to restore initial working directory: %s" + msgstr "nie udało się przywrócić początkowego katalogu roboczego: %s" + +-#: find/util.c:827 ++#: find/util.c:824 + #, c-format + msgid "Ignoring unrecognised debug flag %s" + msgstr "Zignorowano nierozpoznaną flagę diagnostyczną %s" + +-#: find/util.c:834 ++#: find/util.c:831 + #, c-format + msgid "Empty argument to the -D option." + msgstr "Pusty argument dla opcji -D." + +-#: find/util.c:850 ++#: find/util.c:847 + #, c-format + msgid "The -O option must be immediately followed by a decimal integer" + msgstr "Bezpośrednio po opcji -O musi wystąpić liczba dziesiętna" + +-#: find/util.c:860 find/util.c:871 ++#: find/util.c:857 find/util.c:868 + #, c-format + msgid "Please specify a decimal number immediately after -O" + msgstr "Proszę podać liczbę dziesiętną bezpośrednio po -O" + +-#: find/util.c:876 find/util.c:881 ++#: find/util.c:873 find/util.c:878 + #, c-format + msgid "Invalid optimisation level %s" + msgstr "Błędny poziom optymalizacji %s" + +-#: find/util.c:889 ++#: find/util.c:886 + #, c-format + msgid "" + "Optimisation level %lu is too high. If you want to find files very quickly, " +@@ -790,7 +785,7 @@ msgstr "" + "Poziom optymalizacji %lu jest zbyt duży. Aby odnaleźć pliki bardzo szybko, " + "można użyć GNU locate." + +-#: find/util.c:1033 ++#: find/util.c:1030 + #, c-format + msgid "" + "The environment variable FIND_BLOCK_SIZE is not supported, the only thing " +@@ -799,29 +794,367 @@ msgstr "" + "Zmienna środowiskowa FIND_BLOCK_SIZE nie jest obsługiwana; jedyne, co wpływa " + "na rozmiar bloku, to zmienna środowiskowa POSIXLY_CORRECT" + +-#: lib/buildcmd.c:160 ++#: gl/lib/argmatch.c:133 ++#, c-format ++msgid "invalid argument %s for %s" ++msgstr "błędny argument %s opcji %s" ++ ++#: gl/lib/argmatch.c:134 ++#, c-format ++msgid "ambiguous argument %s for %s" ++msgstr "niejednoznaczny argument %s opcji %s" ++ ++#: gl/lib/argmatch.c:153 ++msgid "Valid arguments are:" ++msgstr "Prawidłowe argumenty to:" ++ ++#: gl/lib/closein.c:100 ++msgid "error closing file" ++msgstr "błąd podczas zamykania pliku" ++ ++#: gl/lib/closeout.c:112 locate/code.c:153 locate/frcode.c:210 ++#, c-format ++msgid "write error" ++msgstr "błąd zapisu" ++ ++#: gl/lib/error.c:188 ++msgid "Unknown system error" ++msgstr "Nieznany błąd systemowy" ++ ++#: gl/lib/getopt.c:547 gl/lib/getopt.c:576 ++#, c-format ++msgid "%s: option '%s' is ambiguous; possibilities:" ++msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:" ++ ++#: gl/lib/getopt.c:624 gl/lib/getopt.c:628 ++#, c-format ++msgid "%s: option '--%s' doesn't allow an argument\n" ++msgstr "%s: opcja '--%s' nie może mieć argumentów\n" ++ ++#: gl/lib/getopt.c:637 gl/lib/getopt.c:642 ++#, c-format ++msgid "%s: option '%c%s' doesn't allow an argument\n" ++msgstr "%s: opcja '%c%s' nie może mieć argumentów\n" ++ ++#: gl/lib/getopt.c:685 gl/lib/getopt.c:704 ++#, c-format ++msgid "%s: option '--%s' requires an argument\n" ++msgstr "%s: opcja '--%s' musi mieć argument\n" ++ ++#: gl/lib/getopt.c:742 gl/lib/getopt.c:745 ++#, c-format ++msgid "%s: unrecognized option '--%s'\n" ++msgstr "%s: nieznana opcja '--%s'\n" ++ ++#: gl/lib/getopt.c:753 gl/lib/getopt.c:756 ++#, c-format ++msgid "%s: unrecognized option '%c%s'\n" ++msgstr "%s: nieznana opcja '%c%s'\n" ++ ++#: gl/lib/getopt.c:805 gl/lib/getopt.c:808 ++#, c-format ++msgid "%s: invalid option -- '%c'\n" ++msgstr "%s: błędna opcja -- '%c'\n" ++ ++#: gl/lib/getopt.c:861 gl/lib/getopt.c:878 gl/lib/getopt.c:1088 ++#: gl/lib/getopt.c:1106 ++#, c-format ++msgid "%s: option requires an argument -- '%c'\n" ++msgstr "%s: opcja musi mieć argument -- '%c'\n" ++ ++#: gl/lib/getopt.c:934 gl/lib/getopt.c:950 ++#, c-format ++msgid "%s: option '-W %s' is ambiguous\n" ++msgstr "%s: opcja '-W %s' jest niejednoznaczna\n" ++ ++#: gl/lib/getopt.c:974 gl/lib/getopt.c:992 ++#, c-format ++msgid "%s: option '-W %s' doesn't allow an argument\n" ++msgstr "%s: opcja '-W %s' nie może mieć argumentów\n" ++ ++#: gl/lib/getopt.c:1013 gl/lib/getopt.c:1031 ++#, c-format ++msgid "%s: option '-W %s' requires an argument\n" ++msgstr "%s: opcja '-W %s' musi mieć argument\n" ++ ++#: gl/lib/openat-die.c:38 ++#, c-format ++msgid "unable to record current working directory" ++msgstr "nie udało się zapisać bieżącego katalogu roboczego" ++ ++#: gl/lib/openat-die.c:57 ++#, c-format ++msgid "failed to return to initial working directory" ++msgstr "nie udało się wrócić do początkowego katalogu roboczego" ++ ++#. TRANSLATORS: ++#. Get translations for open and closing quotation marks. ++#. The message catalog should translate "`" to a left ++#. quotation mark suitable for the locale, and similarly for ++#. "'". For example, a French Unicode local should translate ++#. these to U+00AB (LEFT-POINTING DOUBLE ANGLE ++#. QUOTATION MARK), and U+00BB (RIGHT-POINTING DOUBLE ANGLE ++#. QUOTATION MARK), respectively. ++#. ++#. If the catalog has no translation, we will try to ++#. use Unicode U+2018 (LEFT SINGLE QUOTATION MARK) and ++#. Unicode U+2019 (RIGHT SINGLE QUOTATION MARK). If the ++#. current locale is not Unicode, locale_quoting_style ++#. will quote 'like this', and clocale_quoting_style will ++#. quote "like this". You should always include translations ++#. for "`" and "'" even if U+2018 and U+2019 are appropriate ++#. for your locale. ++#. ++#. If you don't know what to put here, please see ++#. ++#. and use glyphs suitable for your language. ++#: gl/lib/quotearg.c:312 ++msgid "`" ++msgstr "`" ++ ++#: gl/lib/quotearg.c:313 ++msgid "'" ++msgstr "'" ++ ++#. TRANSLATORS: A regular expression testing for an affirmative answer ++#. (english: "yes"). Testing the first character may be sufficient. ++#. Take care to consider upper and lower case. ++#. To enquire the regular expression that your system uses for this ++#. purpose, you can use the command ++#. locale -k LC_MESSAGES | grep '^yesexpr=' ++#: gl/lib/rpmatch.c:150 ++msgid "^[yY]" ++msgstr "^[yYtT]" ++ ++#. TRANSLATORS: A regular expression testing for a negative answer ++#. (english: "no"). Testing the first character may be sufficient. ++#. Take care to consider upper and lower case. ++#. To enquire the regular expression that your system uses for this ++#. purpose, you can use the command ++#. locale -k LC_MESSAGES | grep '^noexpr=' ++#: gl/lib/rpmatch.c:163 ++msgid "^[nN]" ++msgstr "^[nN]" ++ ++#: gl/lib/version-etc.c:74 ++#, c-format ++msgid "Packaged by %s (%s)\n" ++msgstr "Pakietujący: %s (%s)\n" ++ ++#: gl/lib/version-etc.c:77 ++#, c-format ++msgid "Packaged by %s\n" ++msgstr "Pakietujący: %s\n" ++ ++#. TRANSLATORS: Translate "(C)" to the copyright symbol ++#. (C-in-a-circle), if this symbol is available in the user's ++#. locale. Otherwise, do not translate "(C)"; leave it as-is. ++#: gl/lib/version-etc.c:84 ++msgid "(C)" ++msgstr "(C)" ++ ++#: gl/lib/version-etc.c:86 ++msgid "" ++"\n" ++"License GPLv3+: GNU GPL version 3 or later .\n" ++"This is free software: you are free to change and redistribute it.\n" ++"There is NO WARRANTY, to the extent permitted by law.\n" ++"\n" ++msgstr "" ++"\n" ++"Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n" ++"\n" ++"To jest oprogramowanie wolnodostępne: można je modyfikować i " ++"rozpowszechniać.\n" ++"Nie ma Å»ADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n" ++ ++#. TRANSLATORS: %s denotes an author name. ++#: gl/lib/version-etc.c:102 ++#, c-format ++msgid "Written by %s.\n" ++msgstr "Autor: %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#: gl/lib/version-etc.c:106 ++#, c-format ++msgid "Written by %s and %s.\n" ++msgstr "Autorzy: %s i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#: gl/lib/version-etc.c:110 ++#, c-format ++msgid "Written by %s, %s, and %s.\n" ++msgstr "Autorzy: %s, %s i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:117 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"and %s.\n" ++msgstr "" ++"Autorzy: %s, %s, %s\n" ++"i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:124 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"%s, and %s.\n" ++msgstr "" ++"Autorzy: %s, %s, %s,\n" ++"%s i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:131 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"%s, %s, and %s.\n" ++msgstr "" ++"Autorzy: %s, %s, %s,\n" ++"%s, %s i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:139 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"%s, %s, %s, and %s.\n" ++msgstr "" ++"Autorzy: %s, %s, %s,\n" ++"%s, %s, %s i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:147 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"%s, %s, %s, %s,\n" ++"and %s.\n" ++msgstr "" ++"Autorzy: %s, %s, %s,\n" ++"%s, %s, %s, %s\n" ++"i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:156 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"%s, %s, %s, %s,\n" ++"%s, and %s.\n" ++msgstr "" ++"Autorzy: %s, %s, %s,\n" ++"%s, %s, %s, %s,\n" ++"%s i %s.\n" ++ ++#. TRANSLATORS: Each %s denotes an author name. ++#. You can use line breaks, estimating that each author name occupies ++#. ca. 16 screen columns and that a screen line has ca. 80 columns. ++#: gl/lib/version-etc.c:167 ++#, c-format ++msgid "" ++"Written by %s, %s, %s,\n" ++"%s, %s, %s, %s,\n" ++"%s, %s, and others.\n" ++msgstr "" ++"Autorzy: %s, %s, %s,\n" ++"%s, %s, %s, %s,\n" ++"%s, %s i inni.\n" ++ ++#. TRANSLATORS: The placeholder indicates the bug-reporting address ++#. for this package. Please add _another line_ saying ++#. "Report translation bugs to <...>\n" with the address for translation ++#. bugs (typically your translation team's web or email address). ++#: gl/lib/version-etc.c:245 ++#, c-format ++msgid "" ++"\n" ++"Report bugs to: %s\n" ++msgstr "" ++"\n" ++"Prosimy zgłaszać błędy na adres <%s>.\n" ++"Błędy w tłumaczeniu prosimy zgłaszać na adres .\n" ++ ++#: gl/lib/version-etc.c:247 ++#, c-format ++msgid "Report %s bugs to: %s\n" ++msgstr "Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>.\n" ++ ++#: gl/lib/version-etc.c:251 ++#, c-format ++msgid "%s home page: <%s>\n" ++msgstr "Strona domowa pakietu %s: <%s>\n" ++ ++#: gl/lib/version-etc.c:253 ++#, c-format ++msgid "%s home page: \n" ++msgstr "Strona domowa pakietu %s: .\n" ++ ++#: gl/lib/version-etc.c:256 ++msgid "General help using GNU software: \n" ++msgstr "" ++"Ogólna pomoc przy używaniu oprogramowania GNU: .\n" ++ ++#: gl/lib/xalloc-die.c:34 ++msgid "memory exhausted" ++msgstr "pamięć wyczerpana" ++ ++#: gl/lib/xstrtol-error.c:63 ++#, c-format ++msgid "invalid %s%s argument '%s'" ++msgstr "błędny argument opcji %s%s '%s'" ++ ++#: gl/lib/xstrtol-error.c:68 ++#, c-format ++msgid "invalid suffix in %s%s argument '%s'" ++msgstr "błędny przyrostek argumentu opcji %s%s '%s'" ++ ++#: gl/lib/xstrtol-error.c:72 ++#, c-format ++msgid "%s%s argument '%s' too large" ++msgstr "argument opcji %s%s '%s' zbyt duży" ++ ++#: lib/buildcmd.c:161 + #, c-format + msgid "command too long" + msgstr "polecenie zbyt długie" + +-#: lib/buildcmd.c:300 ++#: lib/buildcmd.c:301 + #, c-format + msgid "can't call exec() due to argument size restrictions" + msgstr "" + "nie można wywołać exec() ze względu na ograniczenia rozmiaru argumentów" + +-#: lib/buildcmd.c:370 ++#: lib/buildcmd.c:371 + #, c-format + msgid "cannot fit single argument within argument list size limit" + msgstr "" + "nie można zmieścić pojedynczego argumentu w limicie rozmiaru listy argumentów" + +-#: lib/buildcmd.c:376 ++#: lib/buildcmd.c:377 + #, c-format + msgid "argument list too long" + msgstr "lista argumentów zbyt długa" + +-#: lib/buildcmd.c:628 ++#: lib/buildcmd.c:629 + #, c-format + msgid "Environment variable %s is not set to a valid decimal number" + msgstr "" +@@ -849,7 +1182,7 @@ msgstr "James Youngman" + msgid "Kevin Dalley" + msgstr "Kevin Dalley" + +-#: lib/listfile.c:451 ++#: lib/listfile.c:452 + #, c-format + msgid "Failed to write output (at stage %d)" + msgstr "Nie udało się zapisać wyjścia (na etapie %d)" +@@ -879,7 +1212,7 @@ msgstr "" + "lub %s najpopularniejsze_bigramy < lista-plików > baza-danych-locate\n" + + #: locate/code.c:135 locate/frcode.c:162 locate/locate.c:1394 +-#: xargs/xargs.c:1697 ++#: xargs/xargs.c:1673 + msgid "" + "\n" + "Report bugs to .\n" +@@ -887,11 +1220,6 @@ msgstr "" + "\n" + "Błędy proszę zgłaszać na adres .\n" + +-#: locate/code.c:153 locate/frcode.c:210 +-#, c-format +-msgid "write error" +-msgstr "błąd zapisu" +- + #: locate/frcode.c:160 + #, c-format + msgid "Usage: %s [-0 | --null] [--version] [--help]\n" +@@ -1191,53 +1519,53 @@ msgstr "" + msgid "environment is too large for exec" + msgstr "środowisko jest zbyt duże, aby wykonać exec" + +-#: xargs/xargs.c:590 ++#: xargs/xargs.c:568 + #, c-format + msgid "warning: value %ld for -s option is too large, using %ld instead" + msgstr "uwaga: wartość %ld dla opcji -s jest zbyt duża, użyto %ld" + +-#: xargs/xargs.c:637 ++#: xargs/xargs.c:615 + #, c-format + msgid "option --%s may not be set to a value which includes `='" + msgstr "opcja --%s nie może być ustawiona na wartość zawierającą `='" + +-#: xargs/xargs.c:649 ++#: xargs/xargs.c:627 + #, c-format + msgid "failed to unset environment variable %s" + msgstr "nie udało się usunąć zmiennej środowiskowej %s" + +-#: xargs/xargs.c:663 ++#: xargs/xargs.c:641 + #, c-format + msgid "warning: the -E option has no effect if -0 or -d is used.\n" + msgstr "uwaga: opcja -E nie ma znaczenia, jeśli użyto -0 lub -d.\n" + +-#: xargs/xargs.c:685 ++#: xargs/xargs.c:663 + #, c-format + msgid "Cannot set SIGUSR1 signal handler" + msgstr "Nie można ustawić procedury obsługi sygnału SIGUSR1" + +-#: xargs/xargs.c:691 ++#: xargs/xargs.c:669 + #, c-format + msgid "Cannot set SIGUSR2 signal handler" + msgstr "Nie można ustawić procedury obsługi sygnału SIGUSR2" + +-#: xargs/xargs.c:707 ++#: xargs/xargs.c:685 + #, c-format + msgid "Cannot open input file %s" + msgstr "Nie można otworzyć pliku wejściowego %s" + +-#: xargs/xargs.c:726 ++#: xargs/xargs.c:704 + #, c-format + msgid "Your environment variables take up % bytes\n" + msgstr "Zmienne środowiskowe zajmują % bajtów\n" + +-#: xargs/xargs.c:729 ++#: xargs/xargs.c:707 + #, c-format + msgid "POSIX upper limit on argument length (this system): %\n" + msgstr "" + "POSIX-owy górny limit na długość argumentów (na tym systemie): %\n" + +-#: xargs/xargs.c:732 ++#: xargs/xargs.c:710 + #, c-format + msgid "" + "POSIX smallest allowable upper limit on argument length (all systems): " +@@ -1246,23 +1574,23 @@ msgstr "" + "POSIX-owy najmniejszy dopuszczalny górny limit na długość argumentów: " + "%\n" + +-#: xargs/xargs.c:735 ++#: xargs/xargs.c:713 + #, c-format + msgid "Maximum length of command we could actually use: %\n" + msgstr "Maksymalna długość polecenia, które można użyć: %\n" + +-#: xargs/xargs.c:738 ++#: xargs/xargs.c:716 + #, c-format + msgid "Size of command buffer we are actually using: %\n" + msgstr "Rozmiar używanego bufora polecenia: %\n" + +-#: xargs/xargs.c:741 ++#: xargs/xargs.c:719 + #, c-format + msgid "Maximum parallelism (--max-procs must be no greater): %\n" + msgstr "" + "Maksymalne zrównoleglenie (--max-procs nie może być większe): %\n" + +-#: xargs/xargs.c:747 ++#: xargs/xargs.c:725 + #, c-format + msgid "" + "\n" +@@ -1275,7 +1603,7 @@ msgstr "" + "uruchamiać polecenia; jeśli nie jest to porządane zachowanie, proszę " + "wprowadzić znak końca pliku.\n" + +-#: xargs/xargs.c:755 ++#: xargs/xargs.c:733 + #, c-format + msgid "" + "Warning: %s will be run at least once. If you do not want that to happen, " +@@ -1284,7 +1612,7 @@ msgstr "" + "Uwaga: %s będzie uruchomione przynajmniej raz. Jeśli nie jest to porządane " + "zachowanie, proszę nacisnąć klawisz przerwania.\n" - #: find/parser.c:2494 +-#: xargs/xargs.c:883 xargs/xargs.c:976 ++#: xargs/xargs.c:861 xargs/xargs.c:954 #, c-format + msgid "" + "unmatched %s quote; by default quotes are special to xargs unless you use " +@@ -1293,15 +1621,15 @@ msgstr "" + "niedopasowany %s cudzysłów; domyślnie znaki cytowania są specjalnymi dla " + "xargs o ile nie użyto opcji -0" + +-#: xargs/xargs.c:884 xargs/xargs.c:977 ++#: xargs/xargs.c:862 xargs/xargs.c:955 + msgid "double" + msgstr "podwójny" + +-#: xargs/xargs.c:884 xargs/xargs.c:977 ++#: xargs/xargs.c:862 xargs/xargs.c:955 + msgid "single" + msgstr "pojedynczy" + +-#: xargs/xargs.c:996 ++#: xargs/xargs.c:974 + #, c-format + msgid "" + "WARNING: a NUL character occurred in the input. It cannot be passed through " +@@ -1310,42 +1638,42 @@ msgstr "" + "UWAGA: na wejściu wystąpił znak NUL. Nie może być przekazany poprzez listę " + "argumentów. Czyżby miała być użyta opcja --null?" + +-#: xargs/xargs.c:1006 xargs/xargs.c:1071 ++#: xargs/xargs.c:984 xargs/xargs.c:1049 + #, c-format + msgid "argument line too long" + msgstr "za długa linia argumentów" + +-#: xargs/xargs.c:1090 xargs/xargs.c:1107 ++#: xargs/xargs.c:1068 xargs/xargs.c:1085 + #, c-format + msgid "Failed to write to stderr" + msgstr "Nie udało się zapisać na standardowe wyjście diagnostyczne" + +-#: xargs/xargs.c:1103 ++#: xargs/xargs.c:1081 + #, c-format + msgid "failed to open /dev/tty for reading" + msgstr "nie udało się otworzyć /dev/tty do odczytu" + +-#: xargs/xargs.c:1113 ++#: xargs/xargs.c:1091 + #, c-format + msgid "Failed to read from stdin" + msgstr "Nie udało się odczytać ze standardowego wyjścia" + +-#: xargs/xargs.c:1150 ++#: xargs/xargs.c:1128 + #, c-format + msgid "unable to allocate memory" + msgstr "nie udało się przydzielić pamięci" + +-#: xargs/xargs.c:1165 ++#: xargs/xargs.c:1143 + #, c-format + msgid "failed to set environment variable %s" + msgstr "nie udało się ustawić zmiennej środowiskowej %s" + +-#: xargs/xargs.c:1254 ++#: xargs/xargs.c:1230 + #, c-format + msgid "could not create pipe before fork" + msgstr "nie udało się utworzyć potoku przed wywołaniem fork" + +-#: xargs/xargs.c:1325 ++#: xargs/xargs.c:1301 + #, c-format + msgid "" + "errno-buffer safe_read failed in xargs_do_exec (this is probably a bug, " +@@ -1354,7 +1682,7 @@ msgstr "" + "safe_read bufora errno w xargs_do_exec nie powiódł się (prawdopodobnie błąd, " + "proszę to zgłosić)" + +-#: xargs/xargs.c:1378 ++#: xargs/xargs.c:1354 + #, c-format + msgid "" + "read returned unexpected value %zu; this is probably a bug, please report it" +@@ -1362,52 +1690,52 @@ msgstr "" + "read zwróciło nieoczekiwaną wartość %zu; prawdopodobnie błąd, proszę to " + "zgłosić" + +-#: xargs/xargs.c:1471 ++#: xargs/xargs.c:1447 + #, c-format + msgid "error waiting for child process" + msgstr "błąd podczas oczekiwania na proces potomny" + +-#: xargs/xargs.c:1504 ++#: xargs/xargs.c:1480 + #, c-format + msgid "WARNING: Lost track of %lu child processes" + msgstr "UWAGA: utracono ślad po %lu procesach potomnych" + +-#: xargs/xargs.c:1523 ++#: xargs/xargs.c:1499 + #, c-format + msgid "%s: exited with status 255; aborting" + msgstr "%s: wyszedł ze stanem 255; zaniechanie" + +-#: xargs/xargs.c:1526 ++#: xargs/xargs.c:1502 + #, c-format + msgid "%s: stopped by signal %d" + msgstr "%s: zatrzymany sygnałem %d" + +-#: xargs/xargs.c:1529 ++#: xargs/xargs.c:1505 + #, c-format + msgid "%s: terminated by signal %d" + msgstr "%s: zakończony sygnałem %d" + +-#: xargs/xargs.c:1614 ++#: xargs/xargs.c:1590 + #, c-format + msgid "%s: invalid number for -%c option\n" + msgstr "%s: błędna liczba dla opcji -%c\n" + +-#: xargs/xargs.c:1621 ++#: xargs/xargs.c:1597 + #, c-format + msgid "%s: value for -%c option should be >= %ld\n" + msgstr "%s: wartość dla opcji -%c powinna być >= %ld\n" + +-#: xargs/xargs.c:1635 ++#: xargs/xargs.c:1611 + #, c-format + msgid "%s: value for -%c option should be <= %ld\n" + msgstr "%s: wartość dla opcji -%c powinna być <= %ld\n" + +-#: xargs/xargs.c:1654 ++#: xargs/xargs.c:1630 + #, c-format + msgid "Usage: %s [OPTION]... COMMAND [INITIAL-ARGS]...\n" + msgstr "Składnia: %s [OPCJA]... POLECENIE [ARGUMENTY-POCZĄTKOWE]...\n" + +-#: xargs/xargs.c:1659 ++#: xargs/xargs.c:1635 + msgid "" + "Run COMMAND with arguments INITIAL-ARGS and more arguments read from input.\n" + "\n" +@@ -1416,7 +1744,7 @@ msgstr "" + "czytanymi z wejścia.\n" + "\n" + +-#: xargs/xargs.c:1661 ++#: xargs/xargs.c:1637 + msgid "" + "Mandatory and optional arguments to long options are also\n" + "mandatory or optional for the corresponding short option.\n" +@@ -1424,7 +1752,7 @@ msgstr "" + "Argumenty obowiązkowe i opcjonalne dla opcji długich są również\n" + "obowiązkowe i opcjonalne dla odpowiadających im opcji krótkich.\n" + +-#: xargs/xargs.c:1663 ++#: xargs/xargs.c:1639 + msgid "" + " -0, --null items are separated by a null, not " + "whitespace;\n" +@@ -1438,7 +1766,7 @@ msgstr "" + "odwrotnych\n" + " ukośników i logicznych EOF\n" + +-#: xargs/xargs.c:1666 ++#: xargs/xargs.c:1642 + msgid "" + " -a, --arg-file=FILE read arguments from FILE, not standard input\n" + msgstr "" +@@ -1446,7 +1774,7 @@ msgstr "" + "standardowego\n" + " wejścia\n" + +-#: xargs/xargs.c:1667 ++#: xargs/xargs.c:1643 + msgid "" + " -d, --delimiter=CHARACTER items in input stream are separated by " + "CHARACTER,\n" +@@ -1458,7 +1786,7 @@ msgstr "" + " odstępów; wyłącza przetwarzanie cytowania,\n" + " odwrotnych ukośników i logicznych EOF\n" + +-#: xargs/xargs.c:1670 ++#: xargs/xargs.c:1646 + msgid "" + " -E END set logical EOF string; if END occurs as a " + "line\n" +@@ -1471,7 +1799,7 @@ msgstr "" + " zignorowana (bez znaczenia z opcją -0 lub -" + "d)\n" + +-#: xargs/xargs.c:1673 ++#: xargs/xargs.c:1649 + msgid "" + " -e, --eof[=END] equivalent to -E END if END is specified;\n" + " otherwise, there is no end-of-file string\n" +@@ -1480,11 +1808,11 @@ msgstr "" + " w przeciwnym wypadku nie ma łańcucha\n" + " oznaczającego koniec pliku\n" + +-#: xargs/xargs.c:1675 ++#: xargs/xargs.c:1651 + msgid " -I R same as --replace=R\n" + msgstr " -I R to samo, co --replace=R\n" + +-#: xargs/xargs.c:1676 ++#: xargs/xargs.c:1652 + msgid "" + " -i, --replace[=R] replace R in INITIAL-ARGS with names read\n" + " from standard input; if R is unspecified,\n" +@@ -1494,7 +1822,7 @@ msgstr "" + " nazwy czytane ze standardowego wejścia;\n" + " jeśli nie podano R, przyjmowane jest {}\n" + +-#: xargs/xargs.c:1679 ++#: xargs/xargs.c:1655 + msgid "" + " -L, --max-lines=MAX-LINES use at most MAX-LINES non-blank input lines " + "per\n" +@@ -1504,7 +1832,7 @@ msgstr "" + "wejścia\n" + " dla linii polecenia\n" + +-#: xargs/xargs.c:1681 ++#: xargs/xargs.c:1657 + msgid "" + " -l[MAX-LINES] similar to -L but defaults to at most one " + "non-\n" +@@ -1514,7 +1842,7 @@ msgstr "" + " -l[MAKS] podobnie do -L, ale domyślnie najwyżej jedna\n" + " niepusta linia, jeśli nie podano MAKS\n" + +-#: xargs/xargs.c:1683 ++#: xargs/xargs.c:1659 + msgid "" + " -n, --max-args=MAX-ARGS use at most MAX-ARGS arguments per command " + "line\n" +@@ -1522,18 +1850,18 @@ msgstr "" + " -n, --max-args=MAKS użycie najwyżej MAKS argumentów dla linii\n" + " polecenia\n" + +-#: xargs/xargs.c:1684 ++#: xargs/xargs.c:1660 + msgid "" + " -P, --max-procs=MAX-PROCS run at most MAX-PROCS processes at a time\n" + msgstr "" + " -P, --max-procs=MAKS uruchomienie najwyżej MAKS procesów " + "jednocześnie\n" + +-#: xargs/xargs.c:1685 ++#: xargs/xargs.c:1661 + msgid " -p, --interactive prompt before running commands\n" + msgstr " -p, --interactive zapytanie przed uruchomieniem poleceń\n" + +-#: xargs/xargs.c:1686 ++#: xargs/xargs.c:1662 + msgid "" + " --process-slot-var=VAR set environment variable VAR in child " + "processes\n" +@@ -1542,7 +1870,7 @@ msgstr "" + "procesach\n" + " potomnych\n" + +-#: xargs/xargs.c:1687 ++#: xargs/xargs.c:1663 + msgid "" + " -r, --no-run-if-empty if there are no arguments, then do not run " + "COMMAND;\n" +@@ -1554,227 +1882,34 @@ msgstr "" + " argumentów; bez tej opcji POLECENIE zostanie\n" + " uruchomione przynajmniej raz\n" + +-#: xargs/xargs.c:1690 ++#: xargs/xargs.c:1666 + msgid "" + " -s, --max-chars=MAX-CHARS limit length of command line to MAX-CHARS\n" + msgstr "" + " -s, --max-chars=MAKS ograniczenie poleceń do najwyżej MAKS znaków\n" + +-#: xargs/xargs.c:1691 ++#: xargs/xargs.c:1667 + msgid " --show-limits show limits on command-line length\n" + msgstr "" + " --show-limits wyświetlenie limitów długości linii " + "polecenia\n" + +-#: xargs/xargs.c:1692 ++#: xargs/xargs.c:1668 + msgid " -t, --verbose print commands before executing them\n" + msgstr "" + " -t, --verbose wypisywanie poleceń przed ich uruchomieniem\n" + +-#: xargs/xargs.c:1693 ++#: xargs/xargs.c:1669 + msgid " -x, --exit exit if the size (see -s) is exceeded\n" + msgstr "" + " -x, --exit zakończenie w wypadku przekroczenia rozmiaru " + "(-s)\n" + +-#: xargs/xargs.c:1695 ++#: xargs/xargs.c:1671 + msgid " --help display this help and exit\n" + msgstr " --help wyświetlenie tego opisu i zakończenie\n" + +-#: xargs/xargs.c:1696 ++#: xargs/xargs.c:1672 + msgid " --version output version information and exit\n" + msgstr "" + " --version wypisanie informacji o wersji i zakończenie\n" +- +-#~ msgid "invalid argument %s for %s" +-#~ msgstr "błędny argument %s opcji %s" +- +-#~ msgid "ambiguous argument %s for %s" +-#~ msgstr "niejednoznaczny argument %s opcji %s" +- +-#~ msgid "Valid arguments are:" +-#~ msgstr "Prawidłowe argumenty to:" +- +-#~ msgid "error closing file" +-#~ msgstr "błąd podczas zamykania pliku" +- +-#~ msgid "Unknown system error" +-#~ msgstr "Nieznany błąd systemowy" +- +-#~ msgid "%s: option '%s' is ambiguous; possibilities:" +-#~ msgstr "%s: opcja '%s' jest niejednoznaczna; możliwości:" +- +-#, fuzzy +-#~ msgid "%s: option '%s' is ambiguous\n" +-#~ msgstr "%s: opcja '-W %s' jest niejednoznaczna\n" +- +-#~ msgid "%s: option '--%s' doesn't allow an argument\n" +-#~ msgstr "%s: opcja '--%s' nie może mieć argumentów\n" +- +-#~ msgid "%s: option '%c%s' doesn't allow an argument\n" +-#~ msgstr "%s: opcja '%c%s' nie może mieć argumentów\n" +- +-#~ msgid "%s: option '--%s' requires an argument\n" +-#~ msgstr "%s: opcja '--%s' musi mieć argument\n" +- +-#~ msgid "%s: unrecognized option '--%s'\n" +-#~ msgstr "%s: nieznana opcja '--%s'\n" +- +-#~ msgid "%s: unrecognized option '%c%s'\n" +-#~ msgstr "%s: nieznana opcja '%c%s'\n" +- +-#~ msgid "%s: invalid option -- '%c'\n" +-#~ msgstr "%s: błędna opcja -- '%c'\n" +- +-#~ msgid "%s: option requires an argument -- '%c'\n" +-#~ msgstr "%s: opcja musi mieć argument -- '%c'\n" +- +-#~ msgid "%s: option '-W %s' is ambiguous\n" +-#~ msgstr "%s: opcja '-W %s' jest niejednoznaczna\n" +- +-#~ msgid "%s: option '-W %s' doesn't allow an argument\n" +-#~ msgstr "%s: opcja '-W %s' nie może mieć argumentów\n" +- +-#~ msgid "%s: option '-W %s' requires an argument\n" +-#~ msgstr "%s: opcja '-W %s' musi mieć argument\n" +- +-#~ msgid "unable to record current working directory" +-#~ msgstr "nie udało się zapisać bieżącego katalogu roboczego" +- +-#~ msgid "failed to return to initial working directory" +-#~ msgstr "nie udało się wrócić do początkowego katalogu roboczego" +- +-#~ msgid "`" +-#~ msgstr "`" +- +-#~ msgid "'" +-#~ msgstr "'" +- +-#~ msgid "^[yY]" +-#~ msgstr "^[yYtT]" +- +-#~ msgid "^[nN]" +-#~ msgstr "^[nN]" +- +-#~ msgid "Packaged by %s (%s)\n" +-#~ msgstr "Pakietujący: %s (%s)\n" +- +-#~ msgid "Packaged by %s\n" +-#~ msgstr "Pakietujący: %s\n" +- +-#~ msgid "(C)" +-#~ msgstr "(C)" +- +-#~ msgid "" +-#~ "\n" +-#~ "License GPLv3+: GNU GPL version 3 or later .\n" +-#~ "This is free software: you are free to change and redistribute it.\n" +-#~ "There is NO WARRANTY, to the extent permitted by law.\n" +-#~ "\n" +-#~ msgstr "" +-#~ "\n" +-#~ "Licencja GPLv3+: GNU GPL wersja 3 lub późniejsza:\n" +-#~ "\n" +-#~ "To jest oprogramowanie wolnodostępne: można je modyfikować i " +-#~ "rozpowszechniać.\n" +-#~ "Nie ma Å»ADNEJ GWARANCJI w zakresie dopuszczalnym przez prawo.\n" +- +-#~ msgid "Written by %s.\n" +-#~ msgstr "Autor: %s.\n" +- +-#~ msgid "Written by %s and %s.\n" +-#~ msgstr "Autorzy: %s i %s.\n" +- +-#~ msgid "Written by %s, %s, and %s.\n" +-#~ msgstr "Autorzy: %s, %s i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "and %s.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s\n" +-#~ "i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "%s, and %s.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s,\n" +-#~ "%s i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "%s, %s, and %s.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s,\n" +-#~ "%s, %s i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "%s, %s, %s, and %s.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s,\n" +-#~ "%s, %s, %s i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "%s, %s, %s, %s,\n" +-#~ "and %s.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s,\n" +-#~ "%s, %s, %s, %s\n" +-#~ "i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "%s, %s, %s, %s,\n" +-#~ "%s, and %s.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s,\n" +-#~ "%s, %s, %s, %s,\n" +-#~ "%s i %s.\n" +- +-#~ msgid "" +-#~ "Written by %s, %s, %s,\n" +-#~ "%s, %s, %s, %s,\n" +-#~ "%s, %s, and others.\n" +-#~ msgstr "" +-#~ "Autorzy: %s, %s, %s,\n" +-#~ "%s, %s, %s, %s,\n" +-#~ "%s, %s i inni.\n" +- +-#~ msgid "" +-#~ "\n" +-#~ "Report bugs to: %s\n" +-#~ msgstr "" +-#~ "\n" +-#~ "Prosimy zgłaszać błędy na adres <%s>.\n" +-#~ "Błędy w tłumaczeniu prosimy zgłaszać na adres .\n" +- +-#~ msgid "Report %s bugs to: %s\n" +-#~ msgstr "Błędy pakietującego (%s) prosimy zgłaszać na adres <%s>.\n" +- +-#~ msgid "%s home page: <%s>\n" +-#~ msgstr "Strona domowa pakietu %s: <%s>\n" +- +-#~ msgid "%s home page: \n" +-#~ msgstr "Strona domowa pakietu %s: .\n" +- +-#~ msgid "General help using GNU software: \n" +-#~ msgstr "" +-#~ "Ogólna pomoc przy używaniu oprogramowania GNU: .\n" +- +-#~ msgid "memory exhausted" +-#~ msgstr "pamięć wyczerpana" +- +-#~ msgid "invalid %s%s argument '%s'" +-#~ msgstr "błędny argument opcji %s%s '%s'" +- +-#~ msgid "invalid suffix in %s%s argument '%s'" +-#~ msgstr "błędny przyrostek argumentu opcji %s%s '%s'" +- +-#~ msgid "%s%s argument '%s' too large" +-#~ msgstr "argument opcji %s%s '%s' zbyt duży" diff --git a/findutils-selinux.patch b/findutils-selinux.patch deleted file mode 100644 index cc68c67..0000000 --- a/findutils-selinux.patch +++ /dev/null @@ -1,517 +0,0 @@ -diff -up findutils-4.4.2/configure.ac_old findutils-4.4.2/configure.ac ---- findutils-4.4.2/configure.ac_old 2009-07-01 10:24:04.000000000 +0200 -+++ findutils-4.4.2/configure.ac 2009-07-01 10:24:46.000000000 +0200 -@@ -114,6 +114,16 @@ AC_CHECK_LIB([m],[fabs],[FINDLIBS="-lm $ - AC_DEFINE_UNQUOTED(HAVE_FABS_IN_LIBM,1,[fabs is defined in -lm])) - AC_SUBST([FINDLIBS]) - -+AC_ARG_WITH([selinux], -+ AS_HELP_STRING([--without-selinux], [disable SELinux support]), -+ [:], -+[AC_CHECK_LIB([selinux], [is_selinux_enabled], -+ [with_selinux=yes], [with_selinux=no])]) -+if test x$with_selinux != xno; then -+ AC_DEFINE([WITH_SELINUX], [1], [Define to support SELinux]) -+ AC_SUBST([LIBSELINUX], [-lselinux]) -+fi -+ - dnl Checks for header files. - AC_HEADER_STDC - dnl Assume unistd.h is present - coreutils does too. -diff -up findutils-4.4.2/doc/find.texi_old findutils-4.4.2/doc/find.texi ---- findutils-4.4.2/doc/find.texi_old 2009-07-01 10:25:09.000000000 +0200 -+++ findutils-4.4.2/doc/find.texi 2009-07-01 10:26:37.000000000 +0200 -@@ -7,7 +7,6 @@ - @c %**end of header - - @include version.texi --@include ../locate/dblocation.texi - - @iftex - @finalout -@@ -1242,6 +1241,14 @@ situation. - - @end deffn - -+@deffn Test -context pattern -+True if file's SELinux context matches the pattern @var{pattern}. -+The pattern uses shell glob matching. -+ -+This predicate is supported only on @code{find} versions compiled with -+SELinux support and only when SELinux is enabled. -+@end deffn -+ - @node Contents - @section Contents - -@@ -1826,6 +1833,9 @@ value used for BLOCKSIZE is system-depen - bytes. If the file size is zero, the value printed is undefined. On - systems which lack support for st_blocks, a file's sparseness is - assumed to be 1.0. -+@item %Z -+File's SELinux context, or empty string if the file has no SELinux context -+or this version of find does not support SELinux. - @end table - - @node Location Directives -diff -up findutils-4.4.2/find/defs.h_old findutils-4.4.2/find/defs.h ---- findutils-4.4.2/find/defs.h_old 2009-07-01 12:38:32.000000000 +0200 -+++ findutils-4.4.2/find/defs.h 2009-07-01 12:52:47.000000000 +0200 -@@ -91,6 +91,9 @@ int get_statinfo PARAMS((const char *pat - #define MODE_RWX (S_IXUSR | S_IXGRP | S_IXOTH | MODE_RW) - #define MODE_ALL (S_ISUID | S_ISGID | S_ISVTX | MODE_RWX) - -+#ifdef WITH_SELINUX -+#include -+#endif - - struct predicate; - struct options; -@@ -315,6 +318,9 @@ struct predicate - struct samefile_file_id samefileid; /* samefile */ - mode_t type; /* type */ - struct format_val printf_vec; /* printf fprintf fprint ls fls print0 fprint0 print */ -+#ifdef WITH_SELINUX -+ security_context_t scontext; /* scontext */ -+#endif - } args; - - /* The next predicate in the user input sequence, -@@ -459,6 +465,9 @@ PREDICATEFUNCTION pred_used; - PREDICATEFUNCTION pred_user; - PREDICATEFUNCTION pred_writable; - PREDICATEFUNCTION pred_xtype; -+#ifdef WITH_SELINUX -+PREDICATEFUNCTION pred_context; -+#endif - - - -@@ -601,6 +610,10 @@ struct options - */ - int regex_options; - -+#ifdef WITH_SELINUX -+ int (*x_getfilecon) (); -+#endif -+ - /* Optimisation level. One is the default. - */ - unsigned short optimisation_level; -diff -up findutils-4.4.2/find/find.1_old findutils-4.4.2/find/find.1 ---- findutils-4.4.2/find/find.1_old 2009-07-01 10:30:04.000000000 +0200 -+++ findutils-4.4.2/find/find.1 2009-07-01 10:30:59.000000000 +0200 -@@ -933,6 +933,8 @@ if \fIc\fR is `l'. In other words, for - checks the type of the file that - .B \-type - does not check. -+.IP "\-context \fIpattern\fR" -+(SELinux only) Security context of the file matches glob \fIpattern\fR. - - .SS ACTIONS - .IP "\-delete\fR" -@@ -1354,6 +1356,8 @@ File's type (like in - U=unknown type (shouldn't happen) - .IP %Y - File's type (like %y), plus follow symlinks: L=loop, N=nonexistent -+.IP %Z -+(SELinux only) file's security context. - .PP - A `%' character followed by any other character is discarded, but the - other character is printed (don't rely on this, as further format -diff -up findutils-4.4.2/find/find.c_old findutils-4.4.2/find/find.c ---- findutils-4.4.2/find/find.c_old 2009-07-01 10:26:53.000000000 +0200 -+++ findutils-4.4.2/find/find.c 2009-07-01 10:29:52.000000000 +0200 -@@ -120,6 +120,36 @@ int get_current_dirfd(void) - return AT_FDCWD; - } - -+#ifdef WITH_SELINUX -+static int -+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv) -+{ -+ /* Our original getfilecon() call failed. Perhaps we can't follow a -+ * symbolic link. If that might be the problem, lgetfilecon() the link. -+ * Otherwise, admit defeat. -+ */ -+ switch (errno) -+ { -+ case ENOENT: -+ case ENOTDIR: -+#ifdef DEBUG_STAT -+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name); -+#endif -+ return lgetfilecon(name, p); -+ -+ case EACCES: -+ case EIO: -+ case ELOOP: -+ case ENAMETOOLONG: -+#ifdef EOVERFLOW -+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */ -+#endif -+ default: -+ return prev_rv; -+ } -+} -+#endif /* WITH_SELINUX */ -+ - - int - main (int argc, char **argv) -@@ -1270,7 +1300,7 @@ process_path (char *pathname, char *name - static void - process_dir (char *pathname, char *name, int pathlen, const struct stat *statp, char *parent) - { -- int subdirs_left; /* Number of unexamined subdirs in PATHNAME. */ -+ int subdirs_left = 0; /* Number of unexamined subdirs in PATHNAME. */ - boolean subdirs_unreliable; /* if true, cannot use dir link count as subdir limif (if false, it may STILL be unreliable) */ - unsigned int idx; /* Which entry are we on? */ - struct stat stat_buf; -diff -up findutils-4.4.2/find/Makefile.am_old findutils-4.4.2/find/Makefile.am ---- findutils-4.4.2/find/Makefile.am_old 2009-07-01 10:35:04.000000000 +0200 -+++ findutils-4.4.2/find/Makefile.am 2009-07-01 10:35:37.000000000 +0200 -@@ -26,7 +26,7 @@ endif - - EXTRA_DIST = defs.h $(man_MANS) - INCLUDES = -I../gnulib/lib -I$(top_srcdir)/lib -I$(top_srcdir)/gnulib/lib -I../intl -DLOCALEDIR=\"$(localedir)\" --LDADD = ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ @LIB_CLOCK_GETTIME@ @FINDLIBS@ -+LDADD = ./libfindtools.a ../lib/libfind.a ../gnulib/lib/libgnulib.a @INTLLIBS@ @LIB_CLOCK_GETTIME@ @FINDLIBS@ @LIBSELINUX@ - man_MANS = find.1 - SUBDIRS = . testsuite - -diff -up findutils-4.4.2/find/parser.c_old findutils-4.4.2/find/parser.c ---- findutils-4.4.2/find/parser.c_old 2009-07-01 10:35:43.000000000 +0200 -+++ findutils-4.4.2/find/parser.c 2009-07-01 12:38:19.000000000 +0200 -@@ -53,6 +53,10 @@ - #include - #include - -+#ifdef WITH_SELINUX -+#include -+#endif -+ - #if ENABLE_NLS - # include - # define _(Text) gettext (Text) -@@ -155,6 +159,9 @@ static boolean parse_noignore_race PARAM - static boolean parse_warn PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); - static boolean parse_xtype PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); - static boolean parse_quit PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); -+#ifdef WITH_SELINUX -+static boolean parse_context PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); -+#endif - - boolean parse_print PARAMS((const struct parser_table*, char *argv[], int *arg_ptr)); - -@@ -251,6 +258,9 @@ static struct parser_table const parse_t - PARSE_TEST ("cmin", cmin), /* GNU */ - PARSE_TEST ("cnewer", cnewer), /* GNU */ - {ARG_TEST, "ctime", parse_time, pred_ctime}, /* POSIX */ -+#ifdef WITH_SELINUX -+ PARSE_TEST ("context", context), /* GNU */ -+#endif - PARSE_POSOPT ("daystart", daystart), /* GNU */ - PARSE_ACTION ("delete", delete), /* GNU, Mac OS, FreeBSD */ - PARSE_OPTION ("d", d), /* Mac OS X, FreeBSD, NetBSD, OpenBSD, but deprecated in favour of -depth */ -@@ -347,6 +357,89 @@ static struct parser_table const parse_t - static const char *first_nonoption_arg = NULL; - static const struct parser_table *noop = NULL; - -+#ifdef WITH_SELINUX -+static int -+fallback_getfilecon(const char *name, security_context_t *p, int prev_rv) -+{ -+ /* Our original getfilecon() call failed. Perhaps we can't follow a -+ * symbolic link. If that might be the problem, lgetfilecon() the link. -+ * Otherwise, admit defeat. -+ */ -+ switch (errno) -+ { -+ case ENOENT: -+ case ENOTDIR: -+#ifdef DEBUG_STAT -+ fprintf(stderr, "fallback_getfilecon(): getfilecon(%s) failed; falling back on lgetfilecon()\n", name); -+#endif -+ return lgetfilecon(name, p); -+ -+ case EACCES: -+ case EIO: -+ case ELOOP: -+ case ENAMETOOLONG: -+#ifdef EOVERFLOW -+ case EOVERFLOW: /* EOVERFLOW is not #defined on UNICOS. */ -+#endif -+ default: -+ return prev_rv; -+ } -+} -+ -+/* optionh_getfilecon() implements the getfilecon operation when the -+ * -H option is in effect. -+ * -+ * If the item to be examined is a command-line argument, we follow -+ * symbolic links. If the getfilecon() call fails on the command-line -+ * item, we fall back on the properties of the symbolic link. -+ * -+ * If the item to be examined is not a command-line argument, we -+ * examine the link itself. -+ */ -+int -+optionh_getfilecon(const char *name, security_context_t *p) -+{ -+ if (0 == state.curdepth) -+ { -+ /* This file is from the command line; deference the link (if it -+ * is a link). -+ */ -+ int rv = getfilecon(name, p); -+ if (0 == rv) -+ return 0; /* success */ -+ else -+ return fallback_getfilecon(name, p, rv); -+ } -+ else -+ { -+ /* Not a file on the command line; do not derefernce the link. -+ */ -+ return lgetfilecon(name, p); -+ } -+} -+/* optionl_getfilecon() implements the getfilecon operation when the -+ * -L option is in effect. That option makes us examine the thing the -+ * symbolic link points to, not the symbolic link itself. -+ */ -+int -+optionl_getfilecon(const char *name, security_context_t *p) -+{ -+ int rv = getfilecon(name, p); -+ if (0 == rv) -+ return 0; /* normal case. */ -+ else -+ return fallback_getfilecon(name, p, rv); -+} -+/* optionp_getfilecon() implements the stat operation when the -P -+ * option is in effect (this is also the default). That option makes -+ * us examine the symbolic link itself, not the thing it points to. -+ */ -+int -+optionp_getfilecon(const char *name, security_context_t *p) -+{ -+ return lgetfilecon(name, p); -+} -+#endif /* WITH_SELINUX */ - - void - check_option_combinations(const struct predicate *p) -@@ -450,11 +543,17 @@ set_follow_state(enum SymlinkOption opt) - { - case SYMLINK_ALWAYS_DEREF: /* -L */ - options.xstat = optionl_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionl_getfilecon; -+#endif - options.no_leaf_check = true; - break; - - case SYMLINK_NEVER_DEREF: /* -P (default) */ - options.xstat = optionp_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionp_getfilecon; -+#endif - /* Can't turn no_leaf_check off because the user might have specified - * -noleaf anyway - */ -@@ -462,6 +561,9 @@ set_follow_state(enum SymlinkOption opt) - - case SYMLINK_DEREF_ARGSONLY: /* -H */ - options.xstat = optionh_stat; -+#ifdef WITH_SELINUX -+ options.x_getfilecon = optionh_getfilecon; -+#endif - options.no_leaf_check = true; - } - } -@@ -1127,8 +1229,12 @@ tests (N can be +N or -N or N): -amin N - -nouser -nogroup -path PATTERN -perm [+-]MODE -regex PATTERN\n\ - -readable -writable -executable\n\ - -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N\n\ -- -used N -user NAME -xtype [bcdpfls]\n")); -+ -used N -user NAME -xtype [bcdpfls]")); -+#ifdef WITH_SELINUX - puts (_("\ -+ -context CONTEXT\n")); -+#endif -+ puts (_("\n\ - actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print \n\ - -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit\n\ - -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;\n\ -@@ -2518,6 +2624,10 @@ parse_version (const struct parser_table - printf("LEAF_OPTIMISATION "); - ++features; - #endif -+#if defined(WITH_SELINUX) -+ printf("SELINUX "); -+ ++features; -+#endif - - flags = 0; - if (is_fts_enabled(&flags)) -@@ -2552,6 +2662,32 @@ parse_version (const struct parser_table - exit (0); - } - -+#ifdef WITH_SELINUX -+static boolean -+parse_context (const struct parser_table* entry, char **argv, int *arg_ptr) -+{ -+ struct predicate *our_pred; -+ -+ if ((argv == NULL) || (argv[*arg_ptr] == NULL)) -+ return false; -+ -+ if (is_selinux_enabled() <= 0) -+ { -+ error (1, 0, _("invalid predicate -context: SELinux is not enabled.")); -+ return false; -+ } -+ our_pred = insert_primary (entry); -+ our_pred->need_stat = false; -+#ifdef DEBUG -+ our_pred->p_name = find_pred_name (pred_context); -+#endif /*DEBUG*/ -+ our_pred->args.scontext = argv[*arg_ptr]; -+ -+ (*arg_ptr)++; -+ return true; -+} -+#endif /* WITH_SELINUX */ -+ - static boolean - parse_xdev (const struct parser_table* entry, char **argv, int *arg_ptr) - { -@@ -2803,7 +2939,7 @@ insert_fprintf (struct format_val *vec, - if (*scan2 == '.') - for (scan2++; ISDIGIT (*scan2); scan2++) - /* Do nothing. */ ; -- if (strchr ("abcdDfFgGhHiklmMnpPsStuUyY", *scan2)) -+ if (strchr ("abcdDfFgGhHiklmMnpPsStuUyYZ", *scan2)) - { - segmentp = make_segment (segmentp, format, scan2 - format, - KIND_FORMAT, *scan2, 0, -@@ -2930,6 +3066,7 @@ make_segment (struct segment **segment, - case 'h': /* leading directories part of path */ - case 'p': /* pathname */ - case 'P': /* pathname with ARGV element stripped */ -+ case 'Z': /* SELinux security context */ - *fmt++ = 's'; - break; - -diff -up findutils-4.4.2/find/pred.c_old findutils-4.4.2/find/pred.c ---- findutils-4.4.2/find/pred.c_old 2009-07-01 10:31:11.000000000 +0200 -+++ findutils-4.4.2/find/pred.c 2009-07-01 10:33:45.000000000 +0200 -@@ -48,6 +48,10 @@ - #include "error.h" - #include "verify.h" - -+#ifdef WITH_SELINUX -+#include -+#endif /*WITH_SELINUX*/ -+ - #if ENABLE_NLS - # include - # define _(Text) gettext (Text) -@@ -230,6 +234,9 @@ struct pred_assoc pred_table[] = - {pred_user, "user "}, - {pred_writable, "writable "}, - {pred_xtype, "xtype "}, -+#ifdef WITH_SELINUX -+ {pred_context, "context"}, -+#endif /*WITH_SELINUX*/ - {0, "none "} - }; - #endif -@@ -1054,6 +1061,27 @@ do_fprintf(struct format_val *dest, - mode_to_filetype(stat_buf->st_mode & S_IFMT)); - } - break; -+ case 'Z': /* SELinux security context */ -+#ifdef WITH_SELINUX -+ { -+ security_context_t scontext; -+ int rv; -+ rv = (*options.x_getfilecon) (state.rel_pathname, &scontext); -+ -+ if (rv < 0) -+ { -+ fprintf (stderr, "getfilecon(%s): %s", pathname, -+ strerror(errno)); -+ fflush (stderr); -+ } -+ else -+ { -+ checked_fprintf (dest, segment->text, scontext); -+ freecon (scontext); -+ } -+ } -+#endif /* WITH_SELINUX */ -+ break; - } - /* end of KIND_FORMAT case */ - break; -@@ -1844,6 +1872,32 @@ pred_xtype (const char *pathname, struct - */ - return (pred_type (pathname, &sbuf, pred_ptr)); - } -+ -+#ifdef WITH_SELINUX -+ -+boolean -+pred_context (const char *pathname, struct stat *stat_buf, -+ struct predicate *pred_ptr) -+{ -+ int rv; -+ security_context_t scontext; -+ -+ rv = (*options.x_getfilecon) (state.rel_pathname, &scontext); -+ -+ if (rv < 0) -+ { -+ fprintf (stderr, "getfilecon(%s): %s\n", pathname, strerror(errno)); -+ fflush (stderr); -+ return false; -+ } -+ -+ rv = (fnmatch (pred_ptr->args.scontext, scontext, 0) == 0); -+ freecon (scontext); -+ return rv; -+} -+ -+#endif /*WITH_SELINUX*/ -+ - - /* 1) fork to get a child; parent remembers the child pid - 2) child execs the command requested -diff -up findutils-4.4.2/find/tree.c_old findutils-4.4.2/find/tree.c ---- findutils-4.4.2/find/tree.c_old 2009-07-01 10:33:57.000000000 +0200 -+++ findutils-4.4.2/find/tree.c 2009-07-01 10:34:54.000000000 +0200 -@@ -953,7 +953,8 @@ static struct pred_cost_lookup costlooku - { pred_used , NeedsStatInfo }, - { pred_user , NeedsStatInfo }, - { pred_writable , NeedsAccessInfo }, -- { pred_xtype , NeedsType } /* roughly correct unless most files are symlinks */ -+ { pred_xtype , NeedsType }, /* roughly correct unless most files are symlinks */ -+ { pred_context , NeedsNothing } /* remove warning only:) */ - }; - static int pred_table_sorted = 0; - -@@ -1434,6 +1435,9 @@ get_new_pred (const struct parser_table - last_pred->need_stat = true; - last_pred->need_type = true; - last_pred->args.str = NULL; -+#ifdef WITH_SELINUX -+ last_pred->args.scontext = NULL; -+#endif - last_pred->pred_next = NULL; - last_pred->pred_left = NULL; - last_pred->pred_right = NULL; diff --git a/findutils.spec b/findutils.spec index fa95a08..27619b7 100644 --- a/findutils.spec +++ b/findutils.spec @@ -10,24 +10,22 @@ Summary(pl.UTF-8): Narzędzia GNU do odnajdywania plików (find, xargs) Summary(pt_BR.UTF-8): Utilitários de procura da GNU Summary(tr.UTF-8): GNU dosya arama araçları Name: findutils -Version: 4.4.2 -Release: 2 +Version: 4.6.0 +Release: 1 Epoch: 1 License: GPL v3+ Group: Applications/File # development versions at ftp://alpha.gnu.org/gnu/findutils/ Source0: http://ftp.gnu.org/gnu/findutils/%{name}-%{version}.tar.gz -# Source0-md5: 351cc4adb07d54877fa15f75fb77d39f +# Source0-md5: 9936aa8009438ce185bea2694a997fc1 #Source1: http://www.mif.pg.gda.pl/homepages/ankry/man-PLD/%{name}-non-english-man-pages.tar.bz2 Source1: %{name}-non-english-man-pages.tar.bz2 # Source1-md5: e76388b0c3218eec3557d05ccd6d6515 -Patch0: %{name}-selinux.patch + Patch1: %{name}-man-selinux.patch Patch2: %{name}-info.patch +# http://translationproject.org/latest/findutils/pl.po Patch3: %{name}-pl.po-update.patch -Patch4: %{name}-automake_1.12.patch -Patch5: 21-Fix-time_t-vs-long-int-mismatches.patch -Patch6: 22_gl_update_mktime.diff URL: http://www.gnu.org/software/findutils/ BuildRequires: autoconf >= 2.59 BuildRequires: automake @@ -87,22 +85,21 @@ arayabilirsiniz. %prep %setup -q -%{?with_selinux:%patch0 -p1} + # patch1 is applied in install stage -%patch2 -p1 +# FIXME and push upstream +# %patch2 -p1 %patch3 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 %{__rm} po/stamp-po %build -%{__aclocal} -I gnulib/m4 -I m4 +%{__aclocal} -I gl/m4 -I m4 %{__autoconf} %{__autoheader} %{__automake} -%configure +%configure \ + %{__with_without selinux} %{__make} @@ -144,7 +141,6 @@ rm -rf $RPM_BUILD_ROOT %defattr(644,root,root,755) %doc NEWS README TODO ChangeLog %attr(755,root,root) %{_bindir}/find -%attr(755,root,root) %{_bindir}/oldfind %attr(755,root,root) /bin/xargs %{_mandir}/man1/find.1* %{_mandir}/man1/xargs.1* -- 2.44.0