[packages/findutils] - up to 4.6.0

arekm arekm at pld-linux.org
Sun Jan 24 11:41:37 CET 2016


commit 29a37685225e6ba4a56bd2ba823fc4824ccb6e8d
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sun Jan 24 11:41:30 2016 +0100

    - 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(-)
---
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*
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 <kilobyte at angband.pl>
-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 <ametzler at debian.org>
-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.h>
-+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 <eggert at twinsun.com>.
- 
--   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
-+   <http://www.gnu.org/licenses/>.  */
- 
- /* 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 <stdio.h>
- # include <stdlib.h>
- /* 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
-+   <http://gcc.gnu.org/bugzilla/show_bug.cgi?id=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 at 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 at 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 <qboosh at pld-linux.org>\n"
  "Language-Team: Polish <translation-team-pl at lists.sourceforge.net>\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 %<PRIuMAX>, new inode "
+@@ -140,17 +99,26 @@ msgstr ""
+ "%s%s zmienił się podczas wykonywania %s (stary numer i-węzła %<PRIuMAX>, "
+ "nowy numer i-węzła %<PRIuMAX>, 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=%<PRIuMAX> 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 <bug-findutils at gnu.org>."
+ 
+-#: 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
++#. <http://en.wikipedia.org/wiki/Quotation_marks_in_other_languages>
++#. 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 <http://gnu.org/licenses/gpl."
++"html>.\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"
++"<http://gnu.org/licenses/gpl.html>\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 <translation-team-pl at lists."
++"sourceforge.net>.\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: <http://www.gnu.org/software/%s/>\n"
++msgstr "Strona domowa pakietu %s: <http://www.gnu.org/software/%s/>.\n"
++
++#: gl/lib/version-etc.c:256
++msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
++msgstr ""
++"Ogólna pomoc przy używaniu oprogramowania GNU: <http://www.gnu.org/gethelp/"
++">.\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 <bug-findutils at gnu.org>.\n"
+@@ -887,11 +1220,6 @@ msgstr ""
+ "\n"
+ "Błędy proszę zgłaszać na adres <bug-findutils at gnu.org>.\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 %<PRIuMAX> bytes\n"
+ msgstr "Zmienne środowiskowe zajmują %<PRIuMAX> bajtów\n"
+ 
+-#: xargs/xargs.c:729
++#: xargs/xargs.c:707
+ #, c-format
+ msgid "POSIX upper limit on argument length (this system): %<PRIuMAX>\n"
+ msgstr ""
+ "POSIX-owy górny limit na długość argumentów (na tym systemie): %<PRIuMAX>\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: "
+ "%<PRIuMAX>\n"
+ 
+-#: xargs/xargs.c:735
++#: xargs/xargs.c:713
+ #, c-format
+ msgid "Maximum length of command we could actually use: %<PRIuMAX>\n"
+ msgstr "Maksymalna długość polecenia, które można użyć: %<PRIuMAX>\n"
+ 
+-#: xargs/xargs.c:738
++#: xargs/xargs.c:716
+ #, c-format
+ msgid "Size of command buffer we are actually using: %<PRIuMAX>\n"
+ msgstr "Rozmiar używanego bufora polecenia: %<PRIuMAX>\n"
+ 
+-#: xargs/xargs.c:741
++#: xargs/xargs.c:719
+ #, c-format
+ msgid "Maximum parallelism (--max-procs must be no greater): %<PRIuMAX>\n"
+ msgstr ""
+ "Maksymalne zrównoleglenie (--max-procs nie może być większe): %<PRIuMAX>\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 <http://gnu.org/licenses/gpl."
+-#~ "html>.\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"
+-#~ "<http://gnu.org/licenses/gpl.html>\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 <translation-team-pl at lists."
+-#~ "sourceforge.net>.\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: <http://www.gnu.org/software/%s/>\n"
+-#~ msgstr "Strona domowa pakietu %s: <http://www.gnu.org/software/%s/>.\n"
+-
+-#~ msgid "General help using GNU software: <http://www.gnu.org/gethelp/>\n"
+-#~ msgstr ""
+-#~ "Ogólna pomoc przy używaniu oprogramowania GNU: <http://www.gnu.org/"
+-#~ "gethelp/>.\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
-- at include ../locate/dblocation.texi
- 
- @iftex
- @finalout
-@@ -1242,6 +1241,14 @@ situation.
- 
- @end deffn
- 
-+ at 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.
-+ at 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.
-+ at 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 <selinux/selinux.h>
-+#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 <unistd.h>
- #include <sys/stat.h>
- 
-+#ifdef WITH_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-+
- #if ENABLE_NLS
- # include <libintl.h>
- # 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 <selinux/selinux.h>
-+#endif /*WITH_SELINUX*/
-+
- #if ENABLE_NLS
- # include <libintl.h>
- # 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;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/findutils.git/commitdiff/29a37685225e6ba4a56bd2ba823fc4824ccb6e8d



More information about the pld-cvs-commit mailing list