diff --git a/AUTHORS b/AUTHORS index 0488b7031..6d11fcdc1 100644 --- a/AUTHORS +++ b/AUTHORS @@ -111,6 +111,7 @@ CONTRIBUTORS: Alexey Gladkov Alexey Obitotskiy Alex Ivanov + Alex Xu <351006+Hello71@users.noreply.github.com> Allon Mureinik Alon Bar-Lev Alvaro M. Echevarria @@ -198,6 +199,8 @@ CONTRIBUTORS: Chris MacGregor Chris Metcalf Chris Morin + Christian Bartolomäus + Christian Finnberg Christian Hesse Christian von Roques Christian Wiese @@ -272,6 +275,7 @@ CONTRIBUTORS: Elliott Mitchell Eric Biggers Eric Desrochers + Érico Nogueira Érico Rolim Eric Rannaud Eric Rasmussen @@ -323,6 +327,7 @@ CONTRIBUTORS: Gaël PORTAY Gao Xiang Georg Schiesser + Georgy Yakovlev Gerald Schaefer Gerhard Schneider Gero Treuner @@ -440,6 +445,7 @@ CONTRIBUTORS: Jörg Jenderek Joseph Parmelee Josep Puigdemont + Jose Riha Josh Triplett Joshua Hudson Joshua Watt @@ -488,6 +494,7 @@ CONTRIBUTORS: Li Zefan Lubomir Kundrak Lubomir Rintel + Luca Boccassi Luca Boccassi Luca BRUNO Luca Ceresoli @@ -584,6 +591,7 @@ CONTRIBUTORS: nick black nick black Nick Holloway + Nicolai Dagestad Nicolai Langfeldt Nicolas Boichat Nicolas Provost @@ -605,6 +613,7 @@ CONTRIBUTORS: osexp2000 Pádraig Brady Pali Rohár + panchenbo Pascal Terjan Patrice Dumas Patrick Plagwitz @@ -647,6 +656,7 @@ CONTRIBUTORS: Pierre Labastie Pietro Castelli Pino Toscano + Platon Pronko Po-Yu Chuang Prarit Bhargava Qais Yousef @@ -666,6 +676,7 @@ CONTRIBUTORS: Randy Dunlap Raphael S. Carvalho Rasmus Villemoes + ratijas Raul Gutierrez Segales Ray Wang Rian Hunter @@ -696,6 +707,7 @@ CONTRIBUTORS: Ron Sommeling Rosen Penev Ross Biro + Ross Burton Rostislav Skudnov Roy Peled Ruediger Meier @@ -706,6 +718,7 @@ CONTRIBUTORS: Sami Kerola Sami Liedes Sami Loone + Samir Benmendil Sam Morris Samuel Dionne-Riel Samuel Ortiz @@ -777,6 +790,7 @@ CONTRIBUTORS: Terry Burton Thayne McCombs Theodore Ts'o + Thiébaud Weksteen Thierry Reding Thierry Vignaud Thomas Abraham @@ -794,6 +808,7 @@ CONTRIBUTORS: Timo Juhani Lindfors Timo Warns Tim Waugh + Tj Tobias Klauser Tobias Stoeckmann Todd Lewis @@ -807,6 +822,7 @@ CONTRIBUTORS: Tom Prince Toni Uhlig Tony Asleson + Topi Miettinen Torsten Hilbrich Toshi Kani Trần Ngọc Quân diff --git a/Documentation/releases/v2.37.1-ReleaseNotes b/Documentation/releases/v2.37.1-ReleaseNotes new file mode 100644 index 000000000..e2ad3888c --- /dev/null +++ b/Documentation/releases/v2.37.1-ReleaseNotes @@ -0,0 +1,181 @@ +util-linux 2.37.1 Release Notes +=============================== + +agetty: + - do not use atol() [Karel Zak] +blockdev: + - improve arguments parsing (remove atoi) [Karel Zak] +build-sys: + - Update configure.ac [Alex Xu] + - add generated man-pages to distribution tarball [Karel Zak] + - display cryptsetup status after ./configure [Luca Boccassi] + - fix {release-version} man pages [Karel Zak] + - install hardlink bash-completion [Karel Zak] + - make re-use of generated man-pages more robust [Karel Zak] + - use $LIBS rather than LDFLAGS [Karel Zak] +cfdisk: + - do not use atoi() [Karel Zak] + - optimize mountpoint detection for PARTUUID [Karel Zak] +dmesg: + - fix indentation in man page [Platon Pronko] + - fix possible memory leak [coverity scan] [Karel Zak] + - remove condition [lgtm scan] [Karel Zak] +docs: + - add uclampset to AUTHORS file [Karel Zak] + - fix typo in v2.37-ReleaseNotes [Karel Zak] + - update AUTHORS file [Karel Zak] +eject: + - add __format__ attribute [Karel Zak] + - do not use atoi() [Karel Zak] +fdisk: + - do not print error message when partition reordering is not needed [Pali Rohár] + - move reorder diag messages to fdisk_reorder_partitions() [Pali Rohár] +findmnt: + - (verify) fix cache related memory leaks on --nocanonicalize [coverity scan] [Karel Zak] + - (verify) fix memory leak [asan] [Karel Zak] + - add __format__ attribute [Karel Zak] +fsck: + - check errno after strto..() [Karel Zak] + - do not use atoi() [Karel Zak] +fsck.cramfs: + - use open+fstat rather than stat+open [Karel Zak] +fstrim: + - clean return code on --quiet-unsupported [Karel Zak] +hardlink: + - remove pcre2posix.h support [Karel Zak] +hexdump: + - correctly display signed single byte integers [Samir Benmendil] + - do not use atoi() [Karel Zak] +hwclock: + - check errno after strto..() [Karel Zak] + - close adjtime on write error [coverity scan] [Karel Zak] + - fix ul_path_scanf() use [Karel Zak] +include/c: + - add __format__ attribute [Karel Zak] + - add drop_permissions(), consolidate UID/GID reset [Karel Zak] +include/path: + - add __format__attribute [Karel Zak] +include/strutils: + - cleanup strto..() functions [Karel Zak] + - consolidate string to number conversion [Karel Zak] + - fix __format__attribute [Karel Zak] + - fix heap-buffer-overflow in normalize_whitespace() [Karel Zak] +include/strv: + - fix format attributes [Karel Zak] +ipcs: + - check errno after strto..() [Karel Zak] + - do not use atoi() [Karel Zak] +kill: + - check errno after strto..() [Karel Zak] +ldattach: + - add __format__ attribute [Karel Zak] +lib/loopdev: + - perform retry on EAGAIN [Karel Zak] +lib/path: + - (test) fix ul_new_path() use [Karel Zak] + - fix possible leak when use ul_path_read_string() [coverity scan] [Karel Zak] + - improve ul_path_readlink() to be more robust [Karel Zak] +libblkid: + - Add hyphens to UUID string representation in Stratis superblock parsing [John Baublitz] + - check errno after strto..() [Karel Zak] + - vfat Fix reading FAT16 boot label and serial id [Pali Rohár] + - vfat Fix reading FAT32 boot label [Pali Rohár] +libfdisk: + - add and fix __format__ attributes [Karel Zak] +libmount: + - add __format__ attribute [Karel Zak] + - check errno after strto..() [Karel Zak] +libsmartcols: + - fix bare array on JSON output [Karel Zak] +libuuid: + - check errno after strto..() [Karel Zak] +logger: + - add __format__ attribute [Karel Zak] +login: + - add callback for close_range() [Karel Zak] + - fix close_range() use [Karel Zak] + - remove obsolete and confusing comment [Karel Zak] +lsblk: + - fix formatting in -e option [ratijas] + - normalize space in SERIAL and MODEL [Karel Zak] + - use ID_MODEL_ENC is possible [Karel Zak] +lscpu: + - check errno after strto..() [Karel Zak] + - do not use atoi() [Karel Zak] + - don't use DMI if executed with --sysroot [Karel Zak] + - fix build on powerpc [Georgy Yakovlev] +lslocks: + - check errno after strto..() [Karel Zak] +lslogins: + - ask for supplementary groups only once [asan] [Karel Zak] + - check errno after strto..() [Karel Zak] + - consolidate and optimize utmp files use [Karel Zak] + - fix memory leak [asan] [Karel Zak] + - use sd_journal_get_data() in proper way [Karel Zak] +lsmem: + - check errno after strto..() [Karel Zak] +meson: + - fix crypt_activate_by_signed_key detection [Luca Boccassi] + - fix dlopen support for cryptsetup [Luca Boccassi] +misc: + - improve string to number conversions [Karel Zak] +mkfs.cramfs: + - add comment to explain readlink() use [Karel Zak] +mkswap: + - fix holes detection (infinite loop and/or stack-buffer-underflow) [Karel Zak] +more: + - add __format__ attribute [Karel Zak] + - fix null-pointer dereference [Karel Zak] + - fix setuid/setgid order [Karel Zak] +mount: + - fix roothash signature extension in manpage [Luca Boccassi] + - man-page; add all overlayfs options [Tj] + - mount.8 fix overlayfs nfs_export= indention [Karel Zak] +mount.8.adoc: + - Remove context options exclusion [Thiébaud Weksteen] + - document SELinux use of nosuid mount flag [Topi Miettinen] +namei: + - simplify code [Karel Zak] +newgrp: + - fix memory leak [coverity scan] [Karel Zak] +pg: + - do not use atoi() [Karel Zak] +po: + - merge changes [Karel Zak] + - update es.po (from translationproject.org) [Antonio Ceballos Roa] + - update pt_BR.po (from translationproject.org) [Rafael Fontenelle] + - update sr.po (from translationproject.org) [Мирослав Николић] +readprofile: + - check errno after strto..() [Karel Zak] +rename: + - use readlink() in more robust way [Karel Zak] +rfkill: + - Set scols table name to make the json output valid [Nicolai Dagestad] +script: + - add __format__ attribute [Karel Zak] +sulogin: + - add missing ifdefs [Karel Zak] + - use explicit_bzero() for buffer with password [Karel Zak] +swapon: + - do not use atoi() [Karel Zak] +test/eject: + - guard asan LD_PRELOAD with use-system-commands check [Ross Burton] +tests: + - check correct log file for errors in blkdiscard test [Ross Burton] + - don't hardcode /bin/kill in the kill tests [Ross Burton] + - fix lsns test on kernels without USER namespaces [Anatoly Pugachev] + - mark ul/ul as a known failure [Ross Burton] + - skip if scsi_debug model file is not accessible [Karel Zak] + - update sfdisk reorder test [Karel Zak] +tools: + - report and use LDFLAGS in tools/config-gen [Karel Zak] +uclampset: + - Fix left over optind++ [Qais Yousef] +utmpdump: + - do not use atoi() [Karel Zak] +verity: + - fix verity.roothashsig only working as last parameter [Luca Boccassi] +wall: + - add __format__ attribute [Karel Zak] +wipefs: + - check errno after strto..() [Karel Zak] diff --git a/Documentation/releases/v2.37.2-ReleaseNotes b/Documentation/releases/v2.37.2-ReleaseNotes new file mode 100644 index 000000000..655931275 --- /dev/null +++ b/Documentation/releases/v2.37.2-ReleaseNotes @@ -0,0 +1,41 @@ +util-linux 2.37.2 Release Notes +=============================== + +blockdev: + - allow for larger values for start sector [Thomas Abraham] + - use snprintf() rather than sprintf() [Karel Zak] +docs: + - fix info about LIBSMARTCOLS_DEBUG_PADDING [Karel Zak] + - update AUTHORS file [Karel Zak] +lib/pwdutils: + - don't use getlogin(3). [Érico Nogueira] + - use assert to check correct usage. [Érico Nogueira] +libfdisk: + - (dos) don't ignore MBR+FAT use-case [Karel Zak] + - (dos) support partition and MBR overlap [Karel Zak] +libmount: + - don't use setgroups at all() [Karel Zak] + - fix setgroups() use [Karel Zak] +logger: + - use xgetlogin from pwdutils. [Érico Nogueira] +losetup: + - use LOOP_CONFIGURE in a more robust way [Karel Zak] +lscpu: + - Add Phytium FT-2000+ & S2500 support [panchenbo] + - Add Phytium aarch64 cpupart [panchenbo] + - fix NULL dereference [Karel Zak] + - fix compilation against librtas [Karel Zak] +mount: + - mount.8 don't consider additional mounts as experimental [Karel Zak] +po: + - add sk.po (from translationproject.org) [Jose Riha] + - merge changes [Karel Zak] + - update pl.po (from translationproject.org) [Jakub Bogusz] +prlimit: + - fix compiler warning [-Wmaybe-uninitialized] [Karel Zak] +sulogin: + - fix getpasswd() [Karel Zak] +sys-utils/ipcutils: + - be careful when call calloc() for uint64 nmembs [Karel Zak] +wall: + - use xgetlogin. [Érico Nogueira] diff --git a/Documentation/releases/v2.37.3-ReleaseNotes b/Documentation/releases/v2.37.3-ReleaseNotes new file mode 100644 index 000000000..f0dde289e --- /dev/null +++ b/Documentation/releases/v2.37.3-ReleaseNotes @@ -0,0 +1,13 @@ +util-linux 2.37.3 Release Notes +=============================== + +This release fixes two security mount(8) and umount(8) issues: + +CVE-2021-3996 + Improper UID check in libmount allows an unprivileged user to unmount FUSE + filesystems of users with similar UID. + +CVE-2021-3995 + This issue is related to parsing the /proc/self/mountinfo file allows an + unprivileged user to unmount other user's filesystems that are either + world-writable themselves or mounted in a world-writable directory. diff --git a/Documentation/releases/v2.37.4-ReleaseNotes b/Documentation/releases/v2.37.4-ReleaseNotes new file mode 100644 index 000000000..330ab09ce --- /dev/null +++ b/Documentation/releases/v2.37.4-ReleaseNotes @@ -0,0 +1,15 @@ +util-linux 2.37.4 Release Notes +=============================== + +This release fixes security issue in chsh(1) and chfn(8): + +CVE-2022-0563 + + The readline library uses INPUTRC= environment variable to get a path + to the library config file. When the library cannot parse the + specified file, it prints an error message containing data from the + file. + + Unfortunately, the library does not use secure_getenv() (or a similar + concept), or sanitize the config file path to avoid vulnerabilities that + could occur if set-user-ID or set-group-ID programs. diff --git a/Makefile.am b/Makefile.am index 886598d1b..29496e72c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -195,16 +195,16 @@ $(PATHFILES): Makefile @ mv $@.tmp $@ -CLEANFILES += $(MANPAGES) $(MANLINKS) -EXTRA_DIST += $(ADOCFILES_COMMON) - if ENABLE_ASCIIDOC +EXTRA_DIST += $(ADOCFILES_COMMON) $(MANPAGES) $(MANLINKS) man_MANS += $(MANPAGES) $(MANLINKS) -$(MANPAGES): $(ADOCFILES_COMMON) Makefile +$(MANPAGES): $(ADOCFILES_COMMON) asciidoc_man_cmd = $(ASCIIDOCTOR) \ -b manpage \ + -a 'release-version=$(VERSION)' \ + -a 'package-docdir=$(docdir)' \ -a 'VERSION=$(VERSION)' \ -a 'ADJTIME_PATH=$(ADJTIME_PATH)' @@ -218,14 +218,33 @@ SUFFIXES = .1.adoc .3.adoc .5.adoc .8.adoc .1 .3 .5 .8 $(MANLINKS): $(MANPAGES) gen-man: $(man_MANS) +# Standard "make" follows BUILD_* macros from ./configure, and in this case, it +# ignores man pages for disabled tools, but for distribution tarball, we need +# to generate all man-pages (to avoid dependence on asciidoc). [kzak Jan-2022] +gen-man-dist: + @list=`find -name *.adoc -not -path "*/man-common/*" -not -path "*/po-man/*" | sed -e 's/\.adoc//g'`; \ + missing=`for p in $$list; do test -f $$p || echo $$p; done`; \ + if test -n "$$missing"; then \ + $(MAKE) $(AM_MAKEFLAGS) $$missing; \ + fi; + + +# !ENABLE_ASCIIDOC else + +if HAVE_MANPAGES +EXTRA_DIST += $(ADOCFILES_COMMON) $(MANPAGES) $(MANLINKS) +man_MANS += $(MANPAGES) $(MANLINKS) +endif + gen-man: +gen-man-dist: endif # Arrange so that .tarball-version appears only in the distribution # tarball, and never in a checked-out repository. -dist-hook: +dist-hook: gen-man-dist echo $(VERSION) > $(distdir)/.tarball-version # Set ChangeLog tag reference. sed -i "s!log!log?h=v$(VERSION)!" $(distdir)/ChangeLog diff --git a/NEWS b/NEWS index 6c9a8e2f4..5d1eabab6 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,19 @@ +util-linux 2.37.4: Feb 14 2022 +* see Documentation/releases/v2.37.4-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.37/v2.37.4-ChangeLog + +util-linux 2.37.3: Jan 25 2022 +* see Documentation/releases/v2.37.3-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.37/v2.37.3-ChangeLog + +util-linux 2.37.2: Aug 16 2021 +* see Documentation/releases/v2.37.2-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.37/v2.37.2-ChangeLog + +util-linux 2.37.1: Jul 22 2021 +* see Documentation/releases/v2.37.1-ReleaseNotes or the complete changelog at + https://www.kernel.org/pub/linux/utils/util-linux/v2.37/v2.37.1-ChangeLog + util-linux 2.37: Jun 1 2021 * see Documentation/releases/v2.37-ReleaseNotes or the complete changelog at https://www.kernel.org/pub/linux/utils/util-linux/v2.37/v2.37-ChangeLog diff --git a/bash-completion/Makemodule.am b/bash-completion/Makemodule.am index 6771d0604..c2a222d75 100644 --- a/bash-completion/Makemodule.am +++ b/bash-completion/Makemodule.am @@ -329,5 +329,8 @@ endif if BUILD_UL dist_bashcompletion_DATA += bash-completion/ul endif +if BUILD_HARDLINK +dist_bashcompletion_DATA += bash-completion/hardlink +endif endif # BUILD_BASH_COMPLETION diff --git a/configure.ac b/configure.ac index a87d01d7f..54a91e87d 100644 --- a/configure.ac +++ b/configure.ac @@ -29,7 +29,7 @@ PACKAGE_VERSION_RELEASE=$(echo $PACKAGE_VERSION | awk -F. '{ dnl libblkid version LIBBLKID_VERSION="$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_RELEASE" -LIBBLKID_DATE="01-Jun-2021" +LIBBLKID_DATE="14-Feb-2022" LIBBLKID_LT_MAJOR=1 LIBBLKID_LT_MINOR=1 LIBBLKID_LT_MICRO=0 @@ -742,6 +742,13 @@ UL_BUILD_INIT([asciidoc]) UL_REQUIRES_PROGRAM([asciidoc], [ASCIIDOCTOR], [asciidoctor], [man pages]) AM_CONDITIONAL([ENABLE_ASCIIDOC], [test "x$build_asciidoc" = xyes]) +have_manpages=no +AS_IF([test -f "$srcdir/sys-utils/mount.8"], [ + AC_MSG_NOTICE([re-use already generated man-pages.]) + have_manpages=yes] +) +AM_CONDITIONAL([HAVE_MANPAGES], [test "x$have_manpages" = xyes]) + AC_ARG_ENABLE([poman], AS_HELP_STRING([--enable-poman], [generate translated man pages]), @@ -836,8 +843,8 @@ char *c = crypt("abc","pw"); have_libcrypt=no have_crypt=yes ],[ - LIBS="$LIBS -lcrypt" - AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + UL_SET_LIBS([-lcrypt]) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #ifdef HAVE_CRYPT_H #include #else @@ -847,12 +854,12 @@ char *c = crypt("abc","pw"); ]], [[ char *c = crypt("abc","pw"); ]])],[ - AC_DEFINE([HAVE_LIBCRYPT], [1], [Do we need -lcrypt?]) have_libcrypt=yes have_crypt=yes ],[ AC_MSG_WARN([crypt() is not available]) ]) + UL_RESTORE_LIBS ]) AM_CONDITIONAL([HAVE_LIBCRYPT], [test "x$have_libcrypt" = xyes]) @@ -874,10 +881,10 @@ AS_IF([test "x$with_selinux" = xno], [ UL_PKG_STATIC([SELINUX_LIBS_STATIC], [libselinux]) AM_CONDITIONAL([HAVE_SELINUX], [true]) - UL_SET_FLAGS([], [], [$SELINUX_LIBS]) + UL_SET_LIBS([$SELINUX_LIBS]) # This function is missing in old libselinux 1.xx versions AC_CHECK_FUNCS([security_get_initial_context]) - UL_RESTORE_FLAGS + UL_RESTORE_LIBS ]) ]) AC_SUBST([SELINUX_LIBS]) @@ -1452,14 +1459,6 @@ UL_REQUIRES_HAVE([setpriv], [linux_capability_h], [linux/capability.h header fil UL_REQUIRES_HAVE([setpriv], [cap_ng], [libcap-ng library]) AM_CONDITIONAL([BUILD_SETPRIV], [test "x$build_setpriv" = xyes]) -PKG_CHECK_MODULES([PCRE2_POSIX], [libpcre2-posix], - [have_pcre2_posix=yes], - [have_pcre2_posix=no]) -AS_IF([test "x$have_pcre2_posix" = xyes ], [ - AC_DEFINE([HAVE_PCRE2_POSIX], [1], [Define if libpcre2-posix is available]) -]) -AM_CONDITIONAL([HAVE_PCRE2_POSIX], [test "x$have_pcre2_posix" = xyes]) - AC_ARG_ENABLE([hardlink], AS_HELP_STRING([--disable-hardlink], [do not build hardlink]), [], [UL_DEFAULT_ENABLE([hardlink], [check])] @@ -2681,6 +2680,7 @@ AC_MSG_RESULT([ libeconf support: ${have_econf} Btrfs support: ${have_btrfs} Wide-char support: ${build_widechar} + libcryptsetup support: ${have_cryptsetup} Manual pages: ${build_asciidoc} Manual pages translated: ${build_poman} diff --git a/disk-utils/blockdev.c b/disk-utils/blockdev.c index f425d1533..c16cb1095 100644 --- a/disk-utils/blockdev.c +++ b/disk-utils/blockdev.c @@ -16,6 +16,7 @@ #include "blkdev.h" #include "pathnames.h" #include "closestream.h" +#include "strutils.h" #include "sysfs.h" struct bdc { @@ -351,7 +352,7 @@ static void do_commands(int fd, char **argv, int d) bdcms[j].name); errtryhelp(EXIT_FAILURE); } - iarg = atoi(argv[++i]); + iarg = strtos32_or_err(argv[++i], _("failed to parse command argument")); } else iarg = bdcms[j].argval; @@ -441,7 +442,7 @@ static void report_all_devices(void) &ma, &mi, &sz, ptname) != 4) continue; - sprintf(device, "/dev/%s", ptname); + snprintf(device, sizeof(device), "/dev/%s", ptname); report_device(device, 1); } @@ -455,7 +456,7 @@ static void report_device(char *device, int quiet) long ra; unsigned long long bytes; uint64_t start = 0; - char start_str[11] = { "\0" }; + char start_str[16] = { "\0" }; struct stat st; fd = open(device, O_RDONLY | O_NONBLOCK); @@ -477,13 +478,13 @@ static void report_device(char *device, int quiet) disk != st.st_rdev) { if (ul_path_read_u64(pc, &start, "start") != 0) - /* TRANSLATORS: Start sector not available. Max. 10 letters. */ - sprintf(start_str, "%10s", _("N/A")); + /* TRANSLATORS: Start sector not available. Max. 15 letters. */ + snprintf(start_str, sizeof(start_str), "%15s", _("N/A")); } ul_unref_path(pc); } if (!*start_str) - sprintf(start_str, "%10ju", start); + snprintf(start_str, sizeof(start_str), "%15ju", start); if (ioctl(fd, BLKROGET, &ro) == 0 && ioctl(fd, BLKRAGET, &ra) == 0 && @@ -502,5 +503,5 @@ static void report_device(char *device, int quiet) static void report_header(void) { - printf(_("RO RA SSZ BSZ StartSec Size Device\n")); + printf(_("RO RA SSZ BSZ StartSec Size Device\n")); } diff --git a/disk-utils/cfdisk.c b/disk-utils/cfdisk.c index 747953b22..c1b28889f 100644 --- a/disk-utils/cfdisk.c +++ b/disk-utils/cfdisk.c @@ -141,9 +141,14 @@ static void menu_refresh_size(struct cfdisk *cf); static int ui_end(void); static int ui_refresh(struct cfdisk *cf); -static void ui_warnx(const char *fmt, ...); -static void ui_warn(const char *fmt, ...); -static void ui_info(const char *fmt, ...); + +static void ui_warnx(const char *fmt, ...) + __attribute__((__format__ (__printf__, 1, 2))); +static void ui_warn(const char *fmt, ...) + __attribute__((__format__ (__printf__, 1, 2))); +static void ui_info(const char *fmt, ...) + __attribute__((__format__ (__printf__, 1, 2))); + static void ui_draw_menu(struct cfdisk *cf); static int ui_menu_move(struct cfdisk *cf, int key); static void ui_menu_resize(struct cfdisk *cf); @@ -630,13 +635,13 @@ static int ask_callback(struct fdisk_context *cxt __attribute__((__unused__)), switch(fdisk_ask_get_type(ask)) { case FDISK_ASKTYPE_INFO: - ui_info(fdisk_ask_print_get_mesg(ask)); + ui_info("%s", fdisk_ask_print_get_mesg(ask)); break; case FDISK_ASKTYPE_WARNX: - ui_warnx(fdisk_ask_print_get_mesg(ask)); + ui_warnx("%s", fdisk_ask_print_get_mesg(ask)); break; case FDISK_ASKTYPE_WARN: - ui_warn(fdisk_ask_print_get_mesg(ask)); + ui_warn("%s", fdisk_ask_print_get_mesg(ask)); break; case FDISK_ASKTYPE_MENU: ask_menu(ask, (struct cfdisk *) data); @@ -668,7 +673,8 @@ static int ui_end(void) return 0; } -static void ui_vprint_center(size_t line, int attrs, const char *fmt, va_list ap) +static void __attribute__((__format__ (__printf__, 3, 0))) + ui_vprint_center(size_t line, int attrs, const char *fmt, va_list ap) { size_t width; char *buf = NULL; @@ -698,7 +704,8 @@ static void ui_vprint_center(size_t line, int attrs, const char *fmt, va_list ap free(buf); } -static void ui_center(size_t line, const char *fmt, ...) +static void __attribute__((__format__ (__printf__, 2, 3))) + ui_center(size_t line, const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -706,7 +713,8 @@ static void ui_center(size_t line, const char *fmt, ...) va_end(ap); } -static void ui_warnx(const char *fmt, ...) +static void __attribute__((__format__ (__printf__, 1, 2))) + ui_warnx(const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -721,7 +729,8 @@ static void ui_warnx(const char *fmt, ...) va_end(ap); } -static void ui_warn(const char *fmt, ...) +static void __attribute__((__format__ (__printf__, 1, 2))) + ui_warn(const char *fmt, ...) { char *fmt_m; va_list ap; @@ -747,8 +756,10 @@ static void ui_clean_warn(void) clrtoeol(); } -static int __attribute__((__noreturn__)) ui_err(int rc, const char *fmt, ...) - { +static int __attribute__((__noreturn__)) + __attribute__((__format__ (__printf__, 2, 3))) + ui_err(int rc, const char *fmt, ...) +{ va_list ap; ui_end(); @@ -761,7 +772,9 @@ static int __attribute__((__noreturn__)) ui_err(int rc, const char *fmt, ...) exit(rc); } -static int __attribute__((__noreturn__)) ui_errx(int rc, const char *fmt, ...) +static int __attribute__((__noreturn__)) + __attribute__((__format__ (__printf__, 2, 3))) + ui_errx(int rc, const char *fmt, ...) { va_list ap; ui_end(); @@ -775,7 +788,8 @@ static int __attribute__((__noreturn__)) ui_errx(int rc, const char *fmt, ...) exit(rc); } -static void ui_info(const char *fmt, ...) +static void __attribute__((__format__ (__printf__, 1, 2))) + ui_info(const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -796,7 +810,8 @@ static void ui_clean_info(void) clrtoeol(); } -static void ui_hint(const char *fmt, ...) +static void __attribute__((__format__ (__printf__, 1, 2))) + ui_hint(const char *fmt, ...) { va_list ap; va_start(ap, fmt); @@ -1130,7 +1145,7 @@ static void ui_draw_menuitem(struct cfdisk *cf, if (cf->menu->idx == idx) { standend(); if (d->desc) - ui_hint(_(d->desc)); + ui_hint("%s", _(d->desc)); } } @@ -1307,6 +1322,34 @@ static char *get_mountpoint(struct cfdisk *cf, const char *tagname, const char * } #endif /* HAVE_LIBMOUNT */ +static inline int iszero(const char *str) +{ + const char *p; + + for (p = str; p && *p == '0'; p++); + + return !p || *p == '\0'; +} + +static int has_uuid(struct fdisk_table *tb, const char *uuid) +{ + struct fdisk_partition *pa; + struct fdisk_iter *itr; + int rc = 0; + + if (!tb || !uuid || fdisk_table_is_empty(tb)) + return 0; + + itr = fdisk_new_iter(FDISK_ITER_FORWARD); + while (rc == 0 && fdisk_table_next_partition(tb, itr, &pa) == 0) { + const char *x = fdisk_partition_get_uuid(pa); + if (x) + rc = strcmp(x, uuid) == 0; + } + fdisk_free_iter(itr); + return rc; +} + static void extra_prepare_data(struct cfdisk *cf) { struct fdisk_partition *pa = get_current_partition(cf); @@ -1326,7 +1369,14 @@ static void extra_prepare_data(struct cfdisk *cf) if (!fdisk_partition_to_string(pa, cf->cxt, FDISK_FIELD_UUID, &data) && data) { extra_insert_pair(l, _("Partition UUID:"), data); - if (!mountpoint) + + /* Search for mountpoint by PARTUUID= means that we need to + * check fstab and convert PARTUUID to the device name. This is + * unnecessary and overkill for newly created partitions. Let's + * check if the UUID already exist in the old layout, otherwise + * ignore it. + */ + if (!mountpoint && has_uuid(cf->original_layout, data)) mountpoint = get_mountpoint(cf, "PARTUUID", data); free(data); } @@ -1350,19 +1400,19 @@ static void extra_prepare_data(struct cfdisk *cf) /* for numeric data, only show non-zero rows */ if (!fdisk_partition_to_string(pa, cf->cxt, FDISK_FIELD_BSIZE, &data) && data) { - if (atoi(data)) + if (!iszero(data)) extra_insert_pair(l, "BSIZE:", data); free(data); } if (!fdisk_partition_to_string(pa, cf->cxt, FDISK_FIELD_CPG, &data) && data) { - if (atoi(data)) + if (!iszero(data)) extra_insert_pair(l, "CPG:", data); free(data); } if (!fdisk_partition_to_string(pa, cf->cxt, FDISK_FIELD_FSIZE, &data) && data) { - if (atoi(data)) + if (!iszero(data)) extra_insert_pair(l, "FSIZE:", data); free(data); } @@ -1778,7 +1828,7 @@ static ssize_t ui_get_string(const char *prompt, mbs_edit_goto(edit, MBS_EDIT_END); if (hint) - ui_hint(hint); + ui_hint("%s", hint); else ui_clean_hint(); diff --git a/disk-utils/fdisk-list.c b/disk-utils/fdisk-list.c index 62aa2b3f5..9f64decab 100644 --- a/disk-utils/fdisk-list.c +++ b/disk-utils/fdisk-list.c @@ -68,10 +68,10 @@ void list_disk_geometry(struct fdisk_context *cxt) fdisk_info(cxt, _("Disk model: %s"), fdisk_get_devmodel(cxt)); if (lb && (fdisk_label_require_geometry(lb) || fdisk_use_cylinders(cxt))) - fdisk_info(cxt, _("Geometry: %d heads, %llu sectors/track, %llu cylinders"), + fdisk_info(cxt, _("Geometry: %d heads, %ju sectors/track, %ju cylinders"), fdisk_get_geom_heads(cxt), - fdisk_get_geom_sectors(cxt), - fdisk_get_geom_cylinders(cxt)); + (uintmax_t) fdisk_get_geom_sectors(cxt), + (uintmax_t) fdisk_get_geom_cylinders(cxt)); fdisk_info(cxt, _("Units: %s of %d * %ld = %ld bytes"), fdisk_get_unit(cxt, FDISK_PLURAL), @@ -182,7 +182,7 @@ void list_disklabel(struct fdisk_context *cxt) /* print */ if (!scols_table_is_empty(out)) { - fdisk_info(cxt, ""); /* just line break */ + fdisk_info(cxt, "%s", ""); /* just line break */ scols_print_table(out); } @@ -193,14 +193,14 @@ void list_disklabel(struct fdisk_context *cxt) continue; if (!fdisk_lba_is_phy_aligned(cxt, fdisk_partition_get_start(pa))) { if (!post) - fdisk_info(cxt, ""); /* line break */ + fdisk_info(cxt, "%s", ""); /* line break */ fdisk_warnx(cxt, _("Partition %zu does not start on physical sector boundary."), fdisk_partition_get_partno(pa) + 1); post++; } if (fdisk_partition_has_wipe(cxt, pa)) { if (!post) - fdisk_info(cxt, ""); /* line break */ + fdisk_info(cxt, "%s", ""); /* line break */ fdisk_info(cxt, _("Filesystem/RAID signature on partition %zu will be wiped."), fdisk_partition_get_partno(pa) + 1); @@ -210,7 +210,7 @@ void list_disklabel(struct fdisk_context *cxt) if (fdisk_table_wrong_order(tb)) { if (!post) - fdisk_info(cxt, ""); /* line break */ + fdisk_info(cxt, "%s", ""); /* line break */ fdisk_info(cxt, _("Partition table entries are not in disk order.")); } done: @@ -308,7 +308,7 @@ void list_freespace(struct fdisk_context *cxt) /* print */ if (!scols_table_is_empty(out)) { - fdisk_info(cxt, ""); /* line break */ + fdisk_info(cxt, "%s", ""); /* line break */ scols_print_table(out); } done: diff --git a/disk-utils/fdisk-menu.c b/disk-utils/fdisk-menu.c index 9f09eea83..dcd9e796c 100644 --- a/disk-utils/fdisk-menu.c +++ b/disk-utils/fdisk-menu.c @@ -636,10 +636,6 @@ static int generic_menu_cb(struct fdisk_context **cxt0, break; case 'f': rc = fdisk_reorder_partitions(cxt); - if (rc) - fdisk_warnx(cxt, _("Failed to fix partitions order.")); - else - fdisk_info(cxt, _("Partitions order fixed.")); break; case 'r': rc = fdisk_enable_details(cxt, 0); diff --git a/disk-utils/fdisk.8.adoc b/disk-utils/fdisk.8.adoc index 16fb39fc7..fad0a9856 100644 --- a/disk-utils/fdisk.8.adoc +++ b/disk-utils/fdisk.8.adoc @@ -209,7 +209,7 @@ enables libblkid debug output. enables libsmartcols debug output. *LIBSMARTCOLS_DEBUG_PADDING*=on:: -use visible padding characters. Requires enabled *LIBSMARTCOLS_DEBUG*. +use visible padding characters. *LOCK_BLOCK_DEVICE*=:: use exclusive BSD lock. The mode is "1" or "0". See *--lock* for more details. diff --git a/disk-utils/fsck.8.adoc b/disk-utils/fsck.8.adoc index 703e9894a..803bd7455 100644 --- a/disk-utils/fsck.8.adoc +++ b/disk-utils/fsck.8.adoc @@ -16,7 +16,7 @@ fsck - check and repair a Linux filesystem == SYNOPSIS -*fsck* [*-lsAVRTMNP*] [*-r* [_fd_]] [*-C* [_fd_] [*-t* _fstype_] [_filesystem_...] [*--*] [_fs-specific-options_] +*fsck* [*-lsAVRTMNP*] [*-r* [_fd_]] [*-C* [_fd_]] [*-t* _fstype_] [_filesystem_...] [*--*] [_fs-specific-options_] == DESCRIPTION diff --git a/disk-utils/fsck.c b/disk-utils/fsck.c index fe114d729..d53ff213b 100644 --- a/disk-utils/fsck.c +++ b/disk-utils/fsck.c @@ -169,8 +169,9 @@ static int string_to_int(const char *s) long l; char *p; + errno = 0; l = strtol(s, &p, 0); - if (*p || l == LONG_MIN || l == LONG_MAX || l < 0 || l > INT_MAX) + if (errno || *p || l == LONG_MIN || l == LONG_MAX || l < 0 || l > INT_MAX) return -1; return (int) l; @@ -1603,8 +1604,8 @@ static void parse_argv(int argc, char *argv[]) if (getenv("FSCK_FORCE_ALL_PARALLEL")) force_all_parallel++; - if ((tmp = getenv("FSCK_MAX_INST"))) - max_running = atoi(tmp); + if (ul_strtos32(getenv("FSCK_MAX_INST"), &max_running, 10) != 0) + max_running = 0; } int main(int argc, char *argv[]) diff --git a/disk-utils/fsck.cramfs.c b/disk-utils/fsck.cramfs.c index 8961685e1..9b7e2a93b 100644 --- a/disk-utils/fsck.cramfs.c +++ b/disk-utils/fsck.cramfs.c @@ -152,14 +152,15 @@ static void test_super(int *start, size_t * length) { struct stat st; - /* find the physical size of the file or block device */ - if (stat(filename, &st) < 0) - err(FSCK_EX_ERROR, _("stat of %s failed"), filename); fd = open(filename, O_RDONLY); if (fd < 0) err(FSCK_EX_ERROR, _("cannot open %s"), filename); + /* find the physical size of the file or block device */ + if (fstat(fd, &st) < 0) + err(FSCK_EX_ERROR, _("stat of %s failed"), filename); + if (S_ISBLK(st.st_mode)) { unsigned long long bytes; if (blkdev_get_size(fd, &bytes)) diff --git a/disk-utils/mkfs.cramfs.c b/disk-utils/mkfs.cramfs.c index 1d0d17bf1..1fcb92778 100644 --- a/disk-utils/mkfs.cramfs.c +++ b/disk-utils/mkfs.cramfs.c @@ -157,6 +157,8 @@ do_mmap(char *path, unsigned int size, unsigned int mode){ return NULL; if (S_ISLNK(mode)) { + /* The link buffer is unnecessary to terminate by null as it's + * always used as buffer rather than a string */ start = xmalloc(size); if (readlink(path, start, size) < 0) { warn(_("readlink failed: %s"), path); diff --git a/disk-utils/mkswap.c b/disk-utils/mkswap.c index 27374fd72..c45a3a317 100644 --- a/disk-utils/mkswap.c +++ b/disk-utils/mkswap.c @@ -267,6 +267,8 @@ static void check_extents(struct mkswap_control *ctl) return; n = fiemap->fm_mapped_extents; + if (n == 0) + break; for (i = 0; i < n; i++) { struct fiemap_extent *e = &fiemap->fm_extents[i]; diff --git a/disk-utils/sfdisk.8.adoc b/disk-utils/sfdisk.8.adoc index b8d242eb6..091e59120 100644 --- a/disk-utils/sfdisk.8.adoc +++ b/disk-utils/sfdisk.8.adoc @@ -29,7 +29,7 @@ sfdisk - display or manipulate a disk partition table *sfdisk* [options] _device_ [*-N* _partition-number_] -*sfdisk* [options] _command_] +*sfdisk* [options] _command_ == DESCRIPTION diff --git a/disk-utils/sfdisk.c b/disk-utils/sfdisk.c index 3d390edf9..526d09007 100644 --- a/disk-utils/sfdisk.c +++ b/disk-utils/sfdisk.c @@ -468,7 +468,7 @@ static int move_partition_data(struct sfdisk *sf, size_t partno, struct fdisk_pa typescript = mk_backup_filename_tpl(sf->move_typescript, devname, ".move"); if (!sf->quiet) { - fdisk_info(sf->cxt,""); + fdisk_info(sf->cxt, "%s", ""); color_scheme_enable("header", UL_COLOR_BOLD); fdisk_info(sf->cxt, sf->noact ? _("Data move: (--no-act)") : _("Data move:")); color_disable(); @@ -1926,7 +1926,7 @@ static int command_fdisk(struct sfdisk *sf, int argc, char **argv) rc = fdisk_add_partition(sf->cxt, pa, &cur_partno); if (rc) { errno = -rc; - fdisk_warn(sf->cxt, _("Failed to add #%d partition"), next_partno + 1); + fdisk_warn(sf->cxt, _("Failed to add #%zu partition"), next_partno + 1); } } diff --git a/include/c.h b/include/c.h index b891ad480..354b59e29 100644 --- a/include/c.h +++ b/include/c.h @@ -16,6 +16,8 @@ #include #include #include +#include +#include #include @@ -217,7 +219,7 @@ prog_inv_sh_nm_from_file(char *f, char stripext) #ifndef HAVE_ERR_H -static inline void +static inline void __attribute__ ((__format__ (__printf__, 4, 5))) errmsg(char doexit, int excode, char adderr, const char *fmt, ...) { fprintf(stderr, "%s: ", program_invocation_short_name); @@ -335,6 +337,24 @@ static inline size_t get_hostname_max(void) return 64; } + +static inline int drop_permissions(void) +{ + errno = 0; + + /* drop GID */ + if (setgid(getgid()) < 0) + goto fail; + + /* drop UID */ + if (setuid(getuid()) < 0) + goto fail; + + return 0; +fail: + return errno ? -errno : -1; +} + /* * The usleep function was marked obsolete in POSIX.1-2001 and was removed * in POSIX.1-2008. It was replaced with nanosleep() that provides more diff --git a/include/fileutils.h b/include/fileutils.h index ad54b952c..17ad42938 100644 --- a/include/fileutils.h +++ b/include/fileutils.h @@ -82,18 +82,16 @@ static inline struct dirent *xreaddir(DIR *dp) # if defined(SYS_close_range) # include # ifndef HAVE_CLOSE_RANGE -static inline int close_range(unsigned int first, unsigned int last) +static inline int close_range(unsigned int first, unsigned int last, int flags) { - return syscall(SYS_close_range, first, last); + return syscall(SYS_close_range, first, last, flags); } # endif # define HAVE_CLOSE_RANGE 1 # endif /* SYS_close_range */ #endif /* __linux__ */ -#ifndef HAVE_CLOSE_RANGE extern void ul_close_all_fds(unsigned int first, unsigned int last); -#endif #define UL_COPY_READ_ERROR (-1) #define UL_COPY_WRITE_ERROR (-2) diff --git a/include/path.h b/include/path.h index 2a4f80ecd..e72089339 100644 --- a/include/path.h +++ b/include/path.h @@ -23,7 +23,8 @@ struct path_cxt { int (*redirect_on_enoent)(struct path_cxt *, const char *, int *); }; -struct path_cxt *ul_new_path(const char *dir, ...); +struct path_cxt *ul_new_path(const char *dir, ...) + __attribute__ ((__format__ (__printf__, 1, 2))); void ul_unref_path(struct path_cxt *pc); void ul_ref_path(struct path_cxt *pc); @@ -55,15 +56,18 @@ int ul_path_accessf(struct path_cxt *pc, int mode, const char *path, ...) int ul_path_open(struct path_cxt *pc, int flags, const char *path); int ul_path_openf(struct path_cxt *pc, int flags, const char *path, ...) __attribute__ ((__format__ (__printf__, 3, 4))); -int ul_path_vopenf(struct path_cxt *pc, int flags, const char *path, va_list ap); +int ul_path_vopenf(struct path_cxt *pc, int flags, const char *path, va_list ap) + __attribute__ ((__format__ (__printf__, 3, 0))); FILE *ul_path_fopen(struct path_cxt *pc, const char *mode, const char *path); FILE *ul_path_fopenf(struct path_cxt *pc, const char *mode, const char *path, ...) __attribute__ ((__format__ (__printf__, 3, 4))); -FILE *ul_path_vfopenf(struct path_cxt *pc, const char *mode, const char *path, va_list ap); +FILE *ul_path_vfopenf(struct path_cxt *pc, const char *mode, const char *path, va_list ap) + __attribute__ ((__format__ (__printf__, 3, 0))); DIR *ul_path_opendir(struct path_cxt *pc, const char *path); -DIR *ul_path_vopendirf(struct path_cxt *pc, const char *path, va_list ap); +DIR *ul_path_vopendirf(struct path_cxt *pc, const char *path, va_list ap) + __attribute__ ((__format__ (__printf__, 2, 0))); DIR *ul_path_opendirf(struct path_cxt *pc, const char *path, ...) __attribute__ ((__format__ (__printf__, 2, 3))); @@ -72,7 +76,8 @@ ssize_t ul_path_readlinkf(struct path_cxt *pc, char *buf, size_t bufsiz, const c __attribute__ ((__format__ (__printf__, 4, 5))); int ul_path_read(struct path_cxt *pc, char *buf, size_t len, const char *path); -int ul_path_vreadf(struct path_cxt *pc, char *buf, size_t len, const char *path, va_list ap); +int ul_path_vreadf(struct path_cxt *pc, char *buf, size_t len, const char *path, va_list ap) + __attribute__ ((__format__ (__printf__, 4, 0))); int ul_path_readf(struct path_cxt *pc, char *buf, size_t len, const char *path, ...) __attribute__ ((__format__ (__printf__, 4, 5))); @@ -84,8 +89,10 @@ int ul_path_read_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char int ul_path_readf_buffer(struct path_cxt *pc, char *buf, size_t bufsz, const char *path, ...) __attribute__ ((__format__ (__printf__, 4, 5))); -int ul_path_scanf(struct path_cxt *pc, const char *path, const char *fmt, ...); +int ul_path_scanf(struct path_cxt *pc, const char *path, const char *fmt, ...) + __attribute__ ((__format__ (__scanf__, 3, 4))); int ul_path_scanff(struct path_cxt *pc, const char *path, va_list ap, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__format__ (__scanf__, 4, 5))); int ul_path_read_majmin(struct path_cxt *pc, dev_t *res, const char *path); diff --git a/include/strutils.h b/include/strutils.h index 7969a84d0..a84d29594 100644 --- a/include/strutils.h +++ b/include/strutils.h @@ -19,17 +19,25 @@ extern int parse_size(const char *str, uintmax_t *res, int *power); extern int strtosize(const char *str, uintmax_t *res); extern uintmax_t strtosize_or_err(const char *str, const char *errmesg); -extern int16_t strtos16_or_err(const char *str, const char *errmesg); -extern uint16_t strtou16_or_err(const char *str, const char *errmesg); -extern uint16_t strtox16_or_err(const char *str, const char *errmesg); +extern int ul_strtos64(const char *str, int64_t *num, int base); +extern int ul_strtou64(const char *str, uint64_t *num, int base); +extern int ul_strtos32(const char *str, int32_t *num, int base); +extern int ul_strtou32(const char *str, uint32_t *num, int base); -extern int32_t strtos32_or_err(const char *str, const char *errmesg); -extern uint32_t strtou32_or_err(const char *str, const char *errmesg); -extern uint32_t strtox32_or_err(const char *str, const char *errmesg); +extern int64_t str2num_or_err(const char *str, int base, const char *errmesg, int64_t low, int64_t up); +extern uint64_t str2unum_or_err(const char *str, int base, const char *errmesg, uint64_t up); -extern int64_t strtos64_or_err(const char *str, const char *errmesg); -extern uint64_t strtou64_or_err(const char *str, const char *errmesg); -extern uint64_t strtox64_or_err(const char *str, const char *errmesg); +#define strtos64_or_err(_s, _e) str2num_or_err(_s, 10, _e, 0, 0) +#define strtou64_or_err(_s, _e) str2unum_or_err(_s, 10, _e, 0) +#define strtox64_or_err(_s, _e) str2unum_or_err(_s, 16, _e, 0) + +#define strtos32_or_err(_s, _e) (int32_t) str2num_or_err(_s, 10, _e, INT32_MIN, INT32_MAX) +#define strtou32_or_err(_s, _e) (uint32_t) str2unum_or_err(_s, 10, _e, UINT32_MAX) +#define strtox32_or_err(_s, _e) (uint32_t) str2unum_or_err(_s, 16, _e, UINT32_MAX) + +#define strtos16_or_err(_s, _e) (int16_t) str2num_or_err(_s, 10, _e, INT16_MIN, INT16_MAX) +#define strtou16_or_err(_s, _e) (uint16_t) str2unum_or_err(_s, 10, _e, UINT16_MAX) +#define strtox16_or_err(_s, _e) (uint16_t) str2unum_or_err(_s, 16, _e, UINT16_MAX) extern double strtod_or_err(const char *str, const char *errmesg); extern long double strtold_or_err(const char *str, const char *errmesg); @@ -98,8 +106,8 @@ static inline char *mem2strcpy(char *dest, const void *src, size_t n, size_t nma if (n + 1 > nmax) n = nmax - 1; + memset(dest, '\0', nmax); memcpy(dest, src, n); - dest[nmax-1] = '\0'; return dest; } @@ -334,7 +342,7 @@ static inline size_t normalize_whitespace(unsigned char *str) else str[x++] = str[i++]; } - if (nsp) /* tailing space */ + if (nsp && x > 0) /* tailing space */ x--; str[x] = '\0'; return x; @@ -362,7 +370,7 @@ static inline void strrem(char *s, int rem) extern char *strnappend(const char *s, const char *suffix, size_t b); extern char *strappend(const char *s, const char *suffix); extern char *strfappend(const char *s, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 0))); + __attribute__ ((__format__ (__printf__, 2, 3))); extern const char *split(const char **state, size_t *l, const char *separator, int quoted); extern int skip_fline(FILE *fp); diff --git a/include/strv.h b/include/strv.h index 260ad12d5..638253203 100644 --- a/include/strv.h +++ b/include/strv.h @@ -13,9 +13,12 @@ unsigned strv_length(char * const *l); int strv_extend_strv(char ***a, char **b); int strv_extend_strv_concat(char ***a, char **b, const char *suffix); int strv_extend(char ***l, const char *value); -int strv_extendv(char ***l, const char *format, va_list ap); + +int strv_extendv(char ***l, const char *format, va_list ap) + __attribute__ ((__format__ (__printf__, 2, 0))); int strv_extendf(char ***l, const char *format, ...) - __attribute__ ((__format__ (__printf__, 2, 0))); + __attribute__ ((__format__ (__printf__, 2, 3))); + int strv_push(char ***l, char *value); int strv_push_prepend(char ***l, char *value); int strv_consume(char ***l, char *value); diff --git a/lib/canonicalize.c b/lib/canonicalize.c index e101c5b7a..6f85b47e5 100644 --- a/lib/canonicalize.c +++ b/lib/canonicalize.c @@ -170,8 +170,7 @@ char *canonicalize_path_restricted(const char *path) pipes[0] = -1; errno = 0; - /* drop permissions */ - if (setgid(getgid()) < 0 || setuid(getuid()) < 0) + if (drop_permissions() != 0) canonical = NULL; /* failed */ else { char *dmname = NULL; diff --git a/lib/fileutils.c b/lib/fileutils.c index 846b718c9..7a8fce26f 100644 --- a/lib/fileutils.c +++ b/lib/fileutils.c @@ -129,7 +129,6 @@ unsigned int get_fd_tabsize(void) return m; } -#ifndef HAVE_CLOSE_RANGE void ul_close_all_fds(unsigned int first, unsigned int last) { struct dirent *d; @@ -166,7 +165,6 @@ void ul_close_all_fds(unsigned int first, unsigned int last) } } } -#endif #ifdef TEST_PROGRAM_FILEUTILS int main(int argc, char *argv[]) @@ -189,10 +187,10 @@ int main(int argc, char *argv[]) ignore_result( dup(STDIN_FILENO) ); # ifdef HAVE_CLOSE_RANGE - close_range(STDERR_FILENO + 1, ~0U); -# else - ul_close_all_fds(STDERR_FILENO + 1, ~0U); + if (close_range(STDERR_FILENO + 1, ~0U, 0) < 0) # endif + ul_close_all_fds(STDERR_FILENO + 1, ~0U); + } else if (strcmp(argv[1], "--copy-file") == 0) { int ret = ul_copy_file(STDIN_FILENO, STDOUT_FILENO); if (ret == UL_COPY_READ_ERROR) diff --git a/lib/loopdev.c b/lib/loopdev.c index 1eef15d89..d9ea1d4a2 100644 --- a/lib/loopdev.c +++ b/lib/loopdev.c @@ -1360,7 +1360,7 @@ int loopcxt_setup_device(struct loopdev_cxt *lc) if (ioctl(dev_fd, LOOP_CONFIGURE, &lc->config) < 0) { rc = -errno; errsv = errno; - if (errno != EINVAL) { + if (errno != EINVAL && errno != ENOTTY) { DBG(SETUP, ul_debugobj(lc, "LOOP_CONFIGURE failed: %m")); goto err; } diff --git a/lib/path.c b/lib/path.c index 75fa85305..21f9bd1c4 100644 --- a/lib/path.c +++ b/lib/path.c @@ -542,22 +542,27 @@ DIR *ul_path_opendirf(struct path_cxt *pc, const char *path, ...) ssize_t ul_path_readlink(struct path_cxt *pc, char *buf, size_t bufsiz, const char *path) { int dirfd; + ssize_t ssz; if (!path) { const char *p = get_absdir(pc); if (!p) return -errno; - return readlink(p, buf, bufsiz); + ssz = readlink(p, buf, bufsiz - 1); + } else { + dirfd = ul_path_get_dirfd(pc); + if (dirfd < 0) + return dirfd; + + if (*path == '/') + path++; + + ssz = readlinkat(dirfd, path, buf, bufsiz - 1); } - dirfd = ul_path_get_dirfd(pc); - if (dirfd < 0) - return dirfd; - - if (*path == '/') - path++; - - return readlinkat(dirfd, path, buf, bufsiz); + if (ssz >= 0) + buf[ssz] = '\0'; + return ssz; } /* @@ -617,7 +622,7 @@ int ul_path_readf(struct path_cxt *pc, char *buf, size_t len, const char *path, * Returns newly allocated buffer with data from file. Maximal size is BUFSIZ * (send patch if you need something bigger;-) * - * Returns size of the string! + * Returns size of the string without \0, nothing is allocated if returns <= 0. */ int ul_path_read_string(struct path_cxt *pc, char **str, const char *path) { @@ -635,6 +640,8 @@ int ul_path_read_string(struct path_cxt *pc, char **str, const char *path) /* Remove tailing newline (usual in sysfs) */ if (rc > 0 && *(buf + rc - 1) == '\n') --rc; + if (rc == 0) + return 0; buf[rc] = '\0'; *str = strdup(buf); @@ -1099,7 +1106,7 @@ int main(int argc, char *argv[]) ul_path_init_debug(); - pc = ul_new_path(dir); + pc = ul_new_path("%s", dir); if (!pc) err(EXIT_FAILURE, "failed to initialize path context"); if (prefix) @@ -1191,11 +1198,11 @@ int main(int argc, char *argv[]) errx(EXIT_FAILURE, " not defined"); file = argv[optind++]; - if (ul_path_read_string(pc, &res, file) < 0) + if (ul_path_read_string(pc, &res, file) <= 0) err(EXIT_FAILURE, "read string failed"); printf("read: %s: %s\n", file, res); - if (ul_path_readf_string(pc, &res, "%s", file) < 0) + if (ul_path_readf_string(pc, &res, "%s", file) <= 0) err(EXIT_FAILURE, "readf string failed"); printf("readf: %s: %s\n", file, res); diff --git a/lib/pwdutils.c b/lib/pwdutils.c index d97020cb9..1c1f13e92 100644 --- a/lib/pwdutils.c +++ b/lib/pwdutils.c @@ -3,6 +3,7 @@ * it what you wish. */ #include +#include #include "c.h" #include "pwdutils.h" @@ -17,8 +18,8 @@ struct passwd *xgetpwnam(const char *username, char **pwdbuf) struct passwd *pwd = NULL, *res = NULL; int rc; - if (!pwdbuf || !username) - return NULL; + assert(pwdbuf); + assert(username); *pwdbuf = xmalloc(UL_GETPW_BUFSIZ); pwd = xcalloc(1, sizeof(struct passwd)); @@ -49,8 +50,8 @@ struct group *xgetgrnam(const char *groupname, char **grpbuf) struct group *grp = NULL, *res = NULL; int rc; - if (!grpbuf || !groupname) - return NULL; + assert(grpbuf); + assert(groupname); *grpbuf = xmalloc(UL_GETPW_BUFSIZ); grp = xcalloc(1, sizeof(struct group)); @@ -77,8 +78,7 @@ struct passwd *xgetpwuid(uid_t uid, char **pwdbuf) struct passwd *pwd = NULL, *res = NULL; int rc; - if (!pwdbuf) - return NULL; + assert(pwdbuf); *pwdbuf = xmalloc(UL_GETPW_BUFSIZ); pwd = xcalloc(1, sizeof(struct passwd)); @@ -104,11 +104,6 @@ char *xgetlogin(void) { struct passwd *pw = NULL; uid_t ruid; - char *user; - - user = getlogin(); - if (user) - return xstrdup(user); /* GNU Hurd implementation has an extension where a process can exist in a * non-conforming environment, and thus be outside the realms of POSIX @@ -117,6 +112,9 @@ char *xgetlogin(void) * environment. * * http://austingroupbugs.net/view.php?id=511 + * + * The same implementation is useful for other systems, since getlogin(3) + * shouldn't be used as actual identification. */ errno = 0; ruid = getuid(); diff --git a/lib/strutils.c b/lib/strutils.c index 5b5e686aa..096aaf533 100644 --- a/lib/strutils.c +++ b/lib/strutils.c @@ -319,123 +319,114 @@ char *strndup(const char *s, size_t n) } #endif -static uint32_t _strtou32_or_err(const char *str, const char *errmesg, int base); -static uint64_t _strtou64_or_err(const char *str, const char *errmesg, int base); - -int16_t strtos16_or_err(const char *str, const char *errmesg) +/* + * convert strings to numbers; returns <0 on error, and 0 on success + */ +int ul_strtos64(const char *str, int64_t *num, int base) { - int32_t num = strtos32_or_err(str, errmesg); - - if (num < INT16_MIN || num > INT16_MAX) { - errno = ERANGE; - err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); - } - return num; -} - -static uint16_t _strtou16_or_err(const char *str, const char *errmesg, int base) -{ - uint32_t num = _strtou32_or_err(str, errmesg, base); - - if (num > UINT16_MAX) { - errno = ERANGE; - err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); - } - return num; -} - -uint16_t strtou16_or_err(const char *str, const char *errmesg) -{ - return _strtou16_or_err(str, errmesg, 10); -} - -uint16_t strtox16_or_err(const char *str, const char *errmesg) -{ - return _strtou16_or_err(str, errmesg, 16); -} - -int32_t strtos32_or_err(const char *str, const char *errmesg) -{ - int64_t num = strtos64_or_err(str, errmesg); - - if (num < INT32_MIN || num > INT32_MAX) { - errno = ERANGE; - err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); - } - return num; -} - -static uint32_t _strtou32_or_err(const char *str, const char *errmesg, int base) -{ - uint64_t num = _strtou64_or_err(str, errmesg, base); - - if (num > UINT32_MAX) { - errno = ERANGE; - err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); - } - return num; -} - -uint32_t strtou32_or_err(const char *str, const char *errmesg) -{ - return _strtou32_or_err(str, errmesg, 10); -} - -uint32_t strtox32_or_err(const char *str, const char *errmesg) -{ - return _strtou32_or_err(str, errmesg, 16); -} - -int64_t strtos64_or_err(const char *str, const char *errmesg) -{ - int64_t num; char *end = NULL; errno = 0; if (str == NULL || *str == '\0') - goto err; - num = strtoimax(str, &end, 10); + return -EINVAL; + *num = (int64_t) strtoimax(str, &end, base); if (errno || str == end || (end && *end)) - goto err; - - return num; -err: - if (errno == ERANGE) - err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); - - errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); + return -EINVAL; + return 0; } -static uint64_t _strtou64_or_err(const char *str, const char *errmesg, int base) +int ul_strtou64(const char *str, uint64_t *num, int base) { - uintmax_t num; char *end = NULL; + int64_t tmp; errno = 0; if (str == NULL || *str == '\0') - goto err; - num = strtoumax(str, &end, base); + return -EINVAL; + + /* we need to ignore negative numbers, note that for invalid negative + * number strtoimax() returns negative number too, so we do not + * need to check errno here */ + tmp = (int64_t) strtoimax(str, &end, base); + if (tmp < 0) + errno = ERANGE; + else { + errno = 0; + *num = strtoumax(str, &end, base); + } if (errno || str == end || (end && *end)) - goto err; + return -EINVAL; + return 0; +} +int ul_strtos32(const char *str, int32_t *num, int base) +{ + int64_t tmp; + int rc; + + rc = ul_strtos64(str, &tmp, base); + if (rc == 0 && (tmp < INT32_MIN || tmp > INT32_MAX)) + rc = -(errno = ERANGE); + if (rc == 0) + *num = (int32_t) tmp; + return rc; +} + +int ul_strtou32(const char *str, uint32_t *num, int base) +{ + uint64_t tmp; + int rc; + + rc = ul_strtou64(str, &tmp, base); + if (rc == 0 && tmp > UINT32_MAX) + rc = -(errno = ERANGE); + if (rc == 0) + *num = (uint32_t) tmp; + return rc; +} + +/* + * Covert strings to numbers in defined range and print message on error. + * + * These functions are used when we read input from users (getopt() etc.). It's + * better to consolidate the code and keep it all based on 64-bit numbers then + * implement it for 32 and 16-bit numbers too. + */ +int64_t str2num_or_err(const char *str, int base, const char *errmesg, + int64_t low, int64_t up) +{ + int64_t num = 0; + int rc; + + rc = ul_strtos64(str, &num, base); + if (rc == 0 && ((low && num < low) || (up && num > up))) + rc = -(errno = ERANGE); + + if (rc) { + if (errno == ERANGE) + err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); + errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); + } return num; -err: - if (errno == ERANGE) - err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); - - errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); } -uint64_t strtou64_or_err(const char *str, const char *errmesg) +uint64_t str2unum_or_err(const char *str, int base, const char *errmesg, uint64_t up) { - return _strtou64_or_err(str, errmesg, 10); -} + uint64_t num = 0; + int rc; -uint64_t strtox64_or_err(const char *str, const char *errmesg) -{ - return _strtou64_or_err(str, errmesg, 16); + rc = ul_strtou64(str, &num, base); + if (rc == 0 && (up && num > up)) + rc = -(errno = ERANGE); + + if (rc) { + if (errno == ERANGE) + err(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); + errx(STRTOXX_EXIT_CODE, "%s: '%s'", errmesg, str); + } + return num; } double strtod_or_err(const char *str, const char *errmesg) @@ -1192,29 +1183,49 @@ static int test_strutils_normalize(int argc, char *argv[]) int main(int argc, char *argv[]) { - if (argc == 3 && strcmp(argv[1], "--size") == 0) + if (argc == 3 && strcmp(argv[1], "--size") == 0) { return test_strutils_sizes(argc - 1, argv + 1); - if (argc == 4 && strcmp(argv[1], "--cmp-paths") == 0) + } else if (argc == 4 && strcmp(argv[1], "--cmp-paths") == 0) { return test_strutils_cmp_paths(argc - 1, argv + 1); - if (argc == 4 && strcmp(argv[1], "--strdup-member") == 0) + } else if (argc == 4 && strcmp(argv[1], "--strdup-member") == 0) { return test_strdup_to_member(argc - 1, argv + 1); - if (argc == 4 && strcmp(argv[1], "--stralnumcmp") == 0) { + } else if (argc == 4 && strcmp(argv[1], "--stralnumcmp") == 0) { printf("%s\n", ul_stralnumcmp(argv[2], argv[3]) == 0 ? "match" : "dismatch"); return EXIT_SUCCESS; - - } else if (argc == 3 && strcmp(argv[1], "--normalize") == 0) + } else if (argc == 3 && strcmp(argv[1], "--normalize") == 0) { return test_strutils_normalize(argc - 1, argv + 1); - else { + + } else if (argc == 3 && strcmp(argv[1], "--strtos64") == 0) { + printf("'%s'-->%jd\n", argv[2], strtos64_or_err(argv[2], "strtos64 failed")); + return EXIT_SUCCESS; + } else if (argc == 3 && strcmp(argv[1], "--strtou64") == 0) { + printf("'%s'-->%ju\n", argv[2], strtou64_or_err(argv[2], "strtou64 failed")); + return EXIT_SUCCESS; + } else if (argc == 3 && strcmp(argv[1], "--strtos32") == 0) { + printf("'%s'-->%d\n", argv[2], strtos32_or_err(argv[2], "strtos32 failed")); + return EXIT_SUCCESS; + } else if (argc == 3 && strcmp(argv[1], "--strtou32") == 0) { + printf("'%s'-->%u\n", argv[2], strtou32_or_err(argv[2], "strtou32 failed")); + return EXIT_SUCCESS; + } else if (argc == 3 && strcmp(argv[1], "--strtos16") == 0) { + printf("'%s'-->%hd\n", argv[2], strtos16_or_err(argv[2], "strtos16 failed")); + return EXIT_SUCCESS; + } else if (argc == 3 && strcmp(argv[1], "--strtou16") == 0) { + printf("'%s'-->%hu\n", argv[2], strtou16_or_err(argv[2], "strtou16 failed")); + return EXIT_SUCCESS; + + } else { fprintf(stderr, "usage: %1$s --size [suffix]\n" " %1$s --cmp-paths \n" " %1$s --strdup-member \n" " %1$s --stralnumcmp \n" - " %1$s --normalize \n", + " %1$s --normalize \n" + " %1$s --strto{s,u}{16,32,64} \n", argv[0]); exit(EXIT_FAILURE); } diff --git a/lib/sysfs.c b/lib/sysfs.c index 3b75a2398..bb7183319 100644 --- a/lib/sysfs.c +++ b/lib/sysfs.c @@ -182,10 +182,9 @@ char *sysfs_blkdev_get_name(struct path_cxt *pc, char *buf, size_t bufsiz) ssize_t sz; /* read /sys/dev/block/ link */ - sz = ul_path_readlink(pc, link, sizeof(link) - 1, NULL); + sz = ul_path_readlink(pc, link, sizeof(link), NULL); if (sz < 0) return NULL; - link[sz] = '\0'; name = strrchr(link, '/'); if (!name) @@ -393,7 +392,7 @@ char *sysfs_blkdev_get_devchain(struct path_cxt *pc, char *buf, size_t bufsz) if (sz <= 0 || sz + sizeof(_PATH_SYS_DEVBLOCK "/") > bufsz) return NULL; - buf[sz++] = '\0'; + sz++; prefix = ul_path_get_prefix(pc); if (prefix) psz = strlen(prefix); @@ -567,10 +566,9 @@ int sysfs_blkdev_get_wholedisk( struct path_cxt *pc, char *name; ssize_t linklen; - linklen = ul_path_readlink(pc, linkpath, sizeof(linkpath) - 1, NULL); + linklen = ul_path_readlink(pc, linkpath, sizeof(linkpath), NULL); if (linklen < 0) goto err; - linkpath[linklen] = '\0'; stripoff_last_component(linkpath); /* dirname */ name = stripoff_last_component(linkpath); /* basename */ @@ -678,11 +676,10 @@ int sysfs_blkdev_scsi_get_hctl(struct path_cxt *pc, int *h, int *c, int *t, int goto done; blk->hctl_error = 1; - len = ul_path_readlink(pc, buf, sizeof(buf) - 1, "device"); + len = ul_path_readlink(pc, buf, sizeof(buf), "device"); if (len < 0) return len; - buf[len] = '\0'; hctl = strrchr(buf, '/'); if (!hctl) return -1; diff --git a/libblkid/src/partitions/partitions.c b/libblkid/src/partitions/partitions.c index 611bf8e0a..a34a446dc 100644 --- a/libblkid/src/partitions/partitions.c +++ b/libblkid/src/partitions/partitions.c @@ -1040,8 +1040,9 @@ blkid_partition blkid_partlist_devno_to_partition(blkid_partlist ls, dev_t devno if (prefix && strncasecmp(prefix, "part", 4) == 0) { char *end = NULL; + errno = 0; partno = strtol(prefix + 4, &end, 10); - if (prefix == end || (end && *end)) + if (errno || prefix == end || (end && *end)) partno = 0; else rc = 0; /* success */ diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c index 67141232e..5f01bc3b3 100644 --- a/libblkid/src/probe.c +++ b/libblkid/src/probe.c @@ -1272,7 +1272,11 @@ int blkid_do_wipe(blkid_probe pr, int dryrun) if (rc || len == 0 || off == NULL) return 0; + errno = 0; magoff = strtoumax(off, NULL, 10); + if (errno) + return 0; + offset = magoff + pr->off; fd = blkid_probe_get_fd(pr); if (fd < 0) diff --git a/libblkid/src/read.c b/libblkid/src/read.c index c3b41be76..d62edfae3 100644 --- a/libblkid/src/read.c +++ b/libblkid/src/read.c @@ -297,16 +297,25 @@ static int parse_tag(blkid_cache cache, blkid_dev dev, char **cp) DBG(READ, ul_debug("tag: %s=\"%s\"", name, value)); + errno = 0; + /* Some tags are stored directly in the device struct */ - if (!strcmp(name, "DEVNO")) + if (!strcmp(name, "DEVNO")) { dev->bid_devno = strtoull(value, NULL, 0); - else if (!strcmp(name, "PRI")) + if (errno) + return -errno; + } else if (!strcmp(name, "PRI")) { dev->bid_pri = strtol(value, NULL, 0); - else if (!strcmp(name, "TIME")) { + if (errno) + return -errno; + } else if (!strcmp(name, "TIME")) { char *end = NULL; + dev->bid_time = strtoull(value, &end, 0); - if (end && *end == '.') + if (errno == 0 && end && *end == '.') dev->bid_utime = strtoull(end + 1, NULL, 0); + if (errno) + return -errno; } else ret = blkid_set_tag(dev, name, value, strlen(value)); diff --git a/libblkid/src/superblocks/stratis.c b/libblkid/src/superblocks/stratis.c index 7a889b2d4..fe4a45277 100644 --- a/libblkid/src/superblocks/stratis.c +++ b/libblkid/src/superblocks/stratis.c @@ -19,13 +19,18 @@ #include "superblocks.h" #include "crc32c.h" +/* Macro to avoid error in struct declaration. */ +#define STRATIS_UUID_LEN 32 +/* Contains 4 hyphens and trailing null byte. */ +const int STRATIS_UUID_STR_LEN = 37; + struct stratis_sb { uint32_t crc32; uint8_t magic[16]; uint64_t sectors; uint8_t reserved[4]; - uint8_t pool_uuid[32]; - uint8_t dev_uuid[32]; + uint8_t pool_uuid[STRATIS_UUID_LEN]; + uint8_t dev_uuid[STRATIS_UUID_LEN]; uint64_t mda_size; uint64_t reserved_size; uint64_t flags; @@ -57,11 +62,29 @@ static int stratis_valid_sb(uint8_t *p) return crc == le32_to_cpu(stratis->crc32); } +/* + * Format UUID string representation to include hyphens given that Stratis stores + * UUIDs without hyphens in the superblock to keep the UUID length a power of 2. + */ +static void stratis_format_uuid(const unsigned char *src_uuid, + unsigned char *dst_uuid) +{ + int i; + + for (i = 0; i < STRATIS_UUID_LEN; i++) { + *dst_uuid++ = *src_uuid++; + if (i == 7 || i == 11 || i == 15 || i == 19) + *dst_uuid ++ = '-'; + } + *dst_uuid = '\0'; +} + static int probe_stratis(blkid_probe pr, const struct blkid_idmag *mag __attribute__((__unused__))) { const struct stratis_sb *stratis = NULL; uint8_t *buf = blkid_probe_get_buffer(pr, 0, SB_AREA_SIZE); + unsigned char uuid[STRATIS_UUID_STR_LEN]; if (!buf) return errno ? -errno : 1; @@ -76,17 +99,16 @@ static int probe_stratis(blkid_probe pr, (buf + SECOND_COPY_OFFSET); } - blkid_probe_strncpy_uuid(pr, stratis->dev_uuid, - sizeof(stratis->dev_uuid)); - blkid_probe_set_value(pr, "POOL_UUID", - stratis->pool_uuid, - sizeof(stratis->pool_uuid)); + stratis_format_uuid(stratis->dev_uuid, uuid); + blkid_probe_strncpy_uuid(pr, uuid, sizeof(uuid)); + + stratis_format_uuid(stratis->pool_uuid, uuid); + blkid_probe_set_value(pr, "POOL_UUID", uuid, sizeof(uuid)); blkid_probe_sprintf_value(pr, "BLOCKDEV_SECTORS", "%" PRIu64, le64_to_cpu(stratis->sectors)); blkid_probe_sprintf_value(pr, "BLOCKDEV_INITTIME", "%" PRIu64, le64_to_cpu(stratis->initialization_time)); - return 0; } diff --git a/libblkid/src/superblocks/vfat.c b/libblkid/src/superblocks/vfat.c index 9b23ea900..71813485a 100644 --- a/libblkid/src/superblocks/vfat.c +++ b/libblkid/src/superblocks/vfat.c @@ -43,7 +43,9 @@ struct vfat_super_block { /* 30*/ uint16_t vs_fsinfo_sector; /* 32*/ uint16_t vs_backup_boot; /* 34*/ uint16_t vs_reserved2[6]; -/* 40*/ unsigned char vs_unknown[3]; +/* 40*/ unsigned char vs_drive_number; +/* 41*/ unsigned char vs_boot_flags; +/* 42*/ unsigned char vs_ext_boot_sign; /* 0x28 - without vs_label/vs_magic; 0x29 - with */ /* 43*/ unsigned char vs_serno[4]; /* 47*/ unsigned char vs_label[11]; /* 52*/ unsigned char vs_magic[8]; @@ -53,6 +55,7 @@ struct vfat_super_block { /* Yucky misaligned values */ struct msdos_super_block { +/* DOS 2.0 BPB */ /* 00*/ unsigned char ms_ignored[3]; /* 03*/ unsigned char ms_sysid[8]; /* 0b*/ unsigned char ms_sector_size[2]; @@ -63,16 +66,21 @@ struct msdos_super_block { /* 13*/ unsigned char ms_sectors[2]; /* =0 iff V3 or later */ /* 15*/ unsigned char ms_media; /* 16*/ uint16_t ms_fat_length; /* Sectors per FAT */ +/* DOS 3.0 BPB */ /* 18*/ uint16_t ms_secs_track; /* 1a*/ uint16_t ms_heads; /* 1c*/ uint32_t ms_hidden; -/* V3 BPB */ +/* DOS 3.31 BPB */ /* 20*/ uint32_t ms_total_sect; /* iff ms_sectors == 0 */ -/* V4 BPB */ -/* 24*/ unsigned char ms_unknown[3]; /* Phys drive no., resvd, V4 sig (0x29) */ +/* DOS 3.4 EBPB */ +/* 24*/ unsigned char ms_drive_number; +/* 25*/ unsigned char ms_boot_flags; +/* 26*/ unsigned char ms_ext_boot_sign; /* 0x28 - DOS 3.4 EBPB; 0x29 - DOS 4.0 EBPB */ /* 27*/ unsigned char ms_serno[4]; +/* DOS 4.0 EBPB */ /* 2b*/ unsigned char ms_label[11]; /* 36*/ unsigned char ms_magic[8]; +/* padding */ /* 3e*/ unsigned char ms_dummy2[0x1fe - 0x3e]; /*1fe*/ unsigned char ms_pmagic[2]; } __attribute__((packed)); @@ -324,8 +332,11 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag) vol_label = vol_label_buf; } - boot_label = ms->ms_label; - vol_serno = ms->ms_serno; + if (ms->ms_ext_boot_sign == 0x29) + boot_label = ms->ms_label; + + if (ms->ms_ext_boot_sign == 0x28 || ms->ms_ext_boot_sign == 0x29) + vol_serno = ms->ms_serno; blkid_probe_set_value(pr, "SEC_TYPE", (unsigned char *) "msdos", sizeof("msdos")); @@ -378,7 +389,9 @@ static int probe_vfat(blkid_probe pr, const struct blkid_idmag *mag) version = "FAT32"; - boot_label = vs->vs_label; + if (vs->vs_ext_boot_sign == 0x29) + boot_label = vs->vs_label; + vol_serno = vs->vs_serno; /* diff --git a/libblkid/src/topology/dm.c b/libblkid/src/topology/dm.c index 37fce6d62..b210a805b 100644 --- a/libblkid/src/topology/dm.c +++ b/libblkid/src/topology/dm.c @@ -73,10 +73,7 @@ static int probe_dm_tp(blkid_probe pr, if (dmpipe[1] != STDOUT_FILENO) dup2(dmpipe[1], STDOUT_FILENO); - /* The libblkid library could linked with setuid programs */ - if (setgid(getgid()) < 0) - exit(1); - if (setuid(getuid()) < 0) + if (drop_permissions() != 0) exit(1); snprintf(maj, sizeof(maj), "%d", major(devno)); diff --git a/libblkid/src/topology/lvm.c b/libblkid/src/topology/lvm.c index bd079d47b..8b0c0feea 100644 --- a/libblkid/src/topology/lvm.c +++ b/libblkid/src/topology/lvm.c @@ -82,10 +82,7 @@ static int probe_lvm_tp(blkid_probe pr, if (lvpipe[1] != STDOUT_FILENO) dup2(lvpipe[1], STDOUT_FILENO); - /* The libblkid library could linked with setuid programs */ - if (setgid(getgid()) < 0) - exit(1); - if (setuid(getuid()) < 0) + if (drop_permissions() != 0) exit(1); lvargv[0] = cmd; diff --git a/libfdisk/src/dos.c b/libfdisk/src/dos.c index 4368e5266..5d93e09b8 100644 --- a/libfdisk/src/dos.c +++ b/libfdisk/src/dos.c @@ -834,12 +834,6 @@ static int dos_probe_label(struct fdisk_context *cxt) if (!mbr_is_valid_magic(cxt->firstsector)) return 0; - /* ignore disks with FAT */ - if (cxt->collision && - (strcmp(cxt->collision, "vfat") == 0 || - strcmp(cxt->collision, "ntfs") == 0)) - return 0; - dos_init(cxt); get_partition_table_geometry(cxt, &h, &s); @@ -1257,7 +1251,8 @@ static int add_partition(struct fdisk_context *cxt, size_t n, if (start >= temp + fdisk_get_units_per_sector(cxt) && read) { if (!pa || !pa->start_follow_default) - fdisk_info(cxt, _("Sector %llu is already allocated."), temp); + fdisk_info(cxt, _("Sector %ju is already allocated."), + (uintmax_t) temp); temp = start; read = 0; if (pa && fdisk_partition_has_start(pa)) @@ -1513,12 +1508,13 @@ static void check(struct fdisk_context *cxt, size_t n, "maximum %d"), n, h + 1, cxt->geom.heads); if (real_s >= cxt->geom.sectors) fdisk_warnx(cxt, _("Partition %zu: sector %d greater than " - "maximum %llu"), n, s, cxt->geom.sectors); + "maximum %ju"), n, s, + (uintmax_t) cxt->geom.sectors); if (real_c >= cxt->geom.cylinders) fdisk_warnx(cxt, _("Partition %zu: cylinder %d greater than " - "maximum %llu"), + "maximum %ju"), n, real_c + 1, - cxt->geom.cylinders); + (uintmax_t) cxt->geom.cylinders); if (cxt->geom.cylinders <= 1024 && start != total) fdisk_warnx(cxt, _("Partition %zu: previous sectors %u " @@ -1704,11 +1700,11 @@ static int dos_verify_disklabel(struct fdisk_context *cxt) if (!nerrors) { fdisk_info(cxt, _("No errors detected.")); if (total > n_sectors) - fdisk_info(cxt, _("Total allocated sectors %llu greater " - "than the maximum %llu."), total, n_sectors); + fdisk_info(cxt, _("Total allocated sectors %ju greater " + "than the maximum %ju."), (uintmax_t) total, (uintmax_t) n_sectors); else if (total < n_sectors) - fdisk_info(cxt, _("Remaining %lld unallocated %ld-byte " - "sectors."), n_sectors - total, cxt->sector_size); + fdisk_info(cxt, _("Remaining %ju unallocated %ld-byte " + "sectors."), (uintmax_t) n_sectors - total, cxt->sector_size); } else fdisk_warnx(cxt, P_("%d error detected.", "%d errors detected.", nerrors), @@ -1873,10 +1869,10 @@ static int dos_add_partition(struct fdisk_context *cxt, msg = _("All space for primary partitions is in use."); if (pa && fdisk_partition_has_start(pa)) { - fdisk_warnx(cxt, msg); + fdisk_warnx(cxt, "%s", msg); return -EINVAL; } - fdisk_info(cxt, msg); + fdisk_info(cxt, "%s", msg); } DBG(LABEL, ul_debug("DOS: trying logical")); rc = add_logical(cxt, pa, &res); @@ -2440,10 +2436,8 @@ static int dos_reorder(struct fdisk_context *cxt) struct pte *pei, *pek; size_t i,k; - if (!wrong_p_order(cxt, NULL)) { - fdisk_info(cxt, _("Nothing to do. Ordering is correct already.")); + if (!wrong_p_order(cxt, NULL)) return 1; - } while ((i = wrong_p_order(cxt, &k)) != 0 && i < 4) { /* partition i should have come earlier, move it */ @@ -2500,10 +2494,11 @@ int fdisk_dos_move_begin(struct fdisk_context *cxt, size_t i) return 0; } - /* the default start is at the second sector of the disk or at the - * second sector of the extended partition + /* The safe start is at the second sector, but some use-cases require + * to have MBR within the first partition , so default to the first + * sector of the disk or at the second sector of the extended partition */ - free_start = pe->offset ? pe->offset + 1 : 1; + free_start = pe->offset ? pe->offset + 1 : 0; curr_start = get_abs_partition_start(pe); @@ -2543,6 +2538,11 @@ int fdisk_dos_move_begin(struct fdisk_context *cxt, size_t i) dos_partition_set_start(p, new); partition_set_changed(cxt, i, 1); + + if (new == 0) + fdisk_info(cxt, _("The new beginning of the partition overlaps the disk " + "label area. Be very careful when using the partition. " + "You can lose all your partitions on the disk.")); } return rc; diff --git a/libfdisk/src/gpt.c b/libfdisk/src/gpt.c index 97b161312..3ab0e74ff 100644 --- a/libfdisk/src/gpt.c +++ b/libfdisk/src/gpt.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -50,7 +51,7 @@ #define EFI_PMBR_OSTYPE 0xEE #define MSDOS_MBR_SIGNATURE 0xAA55 #define GPT_PART_NAME_LEN (72 / sizeof(uint16_t)) -#define GPT_NPARTITIONS FDISK_GPT_NPARTITIONS_DEFAULT +#define GPT_NPARTITIONS ((size_t) FDISK_GPT_NPARTITIONS_DEFAULT) /* Globally unique identifier */ struct gpt_guid { @@ -951,7 +952,7 @@ static int valid_pmbr(struct fdisk_context *cxt) fdisk_warnx(cxt, _("GPT PMBR size mismatch (%"PRIu64" != %"PRIu64") " "will be corrected by write."), - sz_lba, cxt->total_sectors - 1ULL); + sz_lba, cxt->total_sectors - (uint64_t) 1); /* Note that gpt_write_pmbr() overwrites PMBR, but we want to keep it valid already * in memory too to disable warnings when valid_pmbr() called next time */ @@ -2677,7 +2678,7 @@ static int gpt_create_disklabel(struct fdisk_context *cxt) fdisk_info(cxt, _("Created a new GPT disklabel (GUID: %s)."), str); if (gpt_get_nentries(gpt) < GPT_NPARTITIONS) - fdisk_info(cxt, _("The maximal number of partitions is %d (default is %d)."), + fdisk_info(cxt, _("The maximal number of partitions is %zu (default is %zu)."), gpt_get_nentries(gpt), GPT_NPARTITIONS); done: return rc; @@ -2758,7 +2759,7 @@ static int gpt_check_table_overlap(struct fdisk_context *cxt, } if (gpt_partition_end(e) > last_usable) { fdisk_warnx(cxt, _("Partition #%zu out of range (maximal end is %"PRIu64" sectors)"), - i + 1, last_usable - 1ULL); + i + 1, last_usable - (uint64_t) 1); rc = -EINVAL; } } @@ -2806,7 +2807,7 @@ int fdisk_gpt_set_npartitions(struct fdisk_context *cxt, uint32_t nents) fdisk_warnx(cxt, _("The partition entry size is zero.")); else fdisk_warnx(cxt, _("The number of the partition has to be smaller than %zu."), - UINT32_MAX / entry_size); + (size_t) UINT32_MAX / entry_size); return rc; } @@ -2858,7 +2859,7 @@ int fdisk_gpt_set_npartitions(struct fdisk_context *cxt, uint32_t nents) /* update library info */ cxt->label->nparts_max = gpt_get_nentries(gpt); - fdisk_info(cxt, _("Partition table length changed from %"PRIu32" to %"PRIu64"."), + fdisk_info(cxt, _("Partition table length changed from %"PRIu32" to %"PRIu32"."), old_nents, nents); fdisk_label_set_changed(cxt->label, 1); @@ -3096,10 +3097,8 @@ static int gpt_reorder(struct fdisk_context *cxt) (const void *) gpt_get_entry(gpt, i), (const void *) gpt_get_entry(gpt, i + 1)) > 0; - if (!mess) { - fdisk_info(cxt, _("Nothing to do. Ordering is correct already.")); + if (!mess) return 1; - } qsort(gpt->ents, nparts, sizeof(struct gpt_entry), gpt_entry_cmp_start); diff --git a/libfdisk/src/label.c b/libfdisk/src/label.c index 524a2bfb4..dc0ad9b04 100644 --- a/libfdisk/src/label.c +++ b/libfdisk/src/label.c @@ -583,12 +583,28 @@ int fdisk_toggle_partition_flag(struct fdisk_context *cxt, */ int fdisk_reorder_partitions(struct fdisk_context *cxt) { + int rc; + if (!cxt || !cxt->label) return -EINVAL; if (!cxt->label->op->reorder) return -ENOSYS; - return cxt->label->op->reorder(cxt); + rc = cxt->label->op->reorder(cxt); + + switch (rc) { + case 0: + fdisk_info(cxt, _("Partitions order fixed.")); + break; + case 1: + fdisk_info(cxt, _("Nothing to do. Ordering is correct already.")); + break; + default: + fdisk_warnx(cxt, _("Failed to fix partitions order.")); + break; + } + + return rc; } /* diff --git a/libfdisk/src/libfdisk.h.in b/libfdisk/src/libfdisk.h.in index 6f2e77d04..238aa1304 100644 --- a/libfdisk/src/libfdisk.h.in +++ b/libfdisk/src/libfdisk.h.in @@ -875,9 +875,12 @@ size_t fdisk_ask_menu_get_nitems(struct fdisk_ask *ask); int fdisk_ask_print_get_errno(struct fdisk_ask *ask); const char *fdisk_ask_print_get_mesg(struct fdisk_ask *ask); -int fdisk_info(struct fdisk_context *cxt, const char *fmt, ...); -int fdisk_warn(struct fdisk_context *cxt, const char *fmt, ...); -int fdisk_warnx(struct fdisk_context *cxt, const char *fmt, ...); +int fdisk_info(struct fdisk_context *cxt, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +int fdisk_warn(struct fdisk_context *cxt, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); +int fdisk_warnx(struct fdisk_context *cxt, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); /* utils.h */ extern char *fdisk_partname(const char *dev, size_t partno); diff --git a/libfdisk/src/sgi.c b/libfdisk/src/sgi.c index 64adf3454..674053504 100644 --- a/libfdisk/src/sgi.c +++ b/libfdisk/src/sgi.c @@ -987,9 +987,10 @@ static int sgi_create_disklabel(struct fdisk_context *cxt) /* otherwise print error and use truncated version */ fdisk_warnx(cxt, _("BLKGETSIZE ioctl failed on %s. " - "Using geometry cylinder value of %llu. " + "Using geometry cylinder value of %ju. " "This value may be truncated for devices " - "> 33.8 GB."), cxt->dev_path, cxt->geom.cylinders); + "> 33.8 GB."), cxt->dev_path, + (uintmax_t) cxt->geom.cylinders); } } diff --git a/libfdisk/src/sun.c b/libfdisk/src/sun.c index 4c3b1d8cb..dde9750a0 100644 --- a/libfdisk/src/sun.c +++ b/libfdisk/src/sun.c @@ -83,10 +83,10 @@ static void set_partition(struct fdisk_context *cxt, size_t i, fdisk_label_get_parttype_from_code(cxt->label, sysid); if (start / (cxt->geom.heads * cxt->geom.sectors) > UINT32_MAX) - fdisk_warnx(cxt, _("%#zu: start cylinder overflows Sun label limits"), i+1); + fdisk_warnx(cxt, _("#%zu: start cylinder overflows Sun label limits"), i+1); if (stop - start > UINT32_MAX) - fdisk_warnx(cxt, _("%#zu: number of sectors overflow Sun label limits"), i+1); + fdisk_warnx(cxt, _("#%zu: number of sectors overflow Sun label limits"), i+1); sunlabel->vtoc.infos[i].id = cpu_to_be16(sysid); sunlabel->vtoc.infos[i].flags = cpu_to_be16(0); @@ -246,10 +246,10 @@ static int sun_create_disklabel(struct fdisk_context *cxt) } else { fdisk_warnx(cxt, _("BLKGETSIZE ioctl failed on %s. " - "Using geometry cylinder value of %llu. " + "Using geometry cylinder value of %ju. " "This value may be truncated for devices " "> 33.8 GB."), - cxt->dev_path, cxt->geom.cylinders); + cxt->dev_path, (uintmax_t) cxt->geom.cylinders); } } else ask_geom(cxt); diff --git a/libmount/meson.build b/libmount/meson.build index d913654ff..d25ec8d08 100644 --- a/libmount/meson.build +++ b/libmount/meson.build @@ -81,7 +81,7 @@ lib_mount = library( link_with : [lib_common, lib_blkid], dependencies : [lib_selinux, - lib_cryptsetup, + get_option('cryptsetup-dlopen').enabled() ? lib_dl : lib_cryptsetup, realtime_libs], install : build_libmount) diff --git a/libmount/python/pylibmount.c b/libmount/python/pylibmount.c index 2e6bb62d7..bfc100fe1 100644 --- a/libmount/python/pylibmount.c +++ b/libmount/python/pylibmount.c @@ -220,9 +220,12 @@ PyMODINIT_FUNC initpylibmount(void) if (!(pylibmount_debug_mask & PYMNT_DEBUG_INIT)) { char *str = getenv("PYLIBMOUNT_DEBUG"); + errno = 0; pylibmount_debug_mask = 0; if (str) pylibmount_debug_mask = strtoul(str, NULL, 0); + if (errno) + pylibmount_debug_mask = 0; pylibmount_debug_mask |= PYMNT_DEBUG_INIT; } diff --git a/libmount/src/context.c b/libmount/src/context.c index ccd050130..3b32224e3 100644 --- a/libmount/src/context.c +++ b/libmount/src/context.c @@ -2702,7 +2702,7 @@ int mnt_context_strerror(struct libmnt_context *cxt __attribute__((__unused__)), } -int mnt_context_get_generic_excode(int rc, char *buf, size_t bufsz, char *fmt, ...) +int mnt_context_get_generic_excode(int rc, char *buf, size_t bufsz, const char *fmt, ...) { va_list va; diff --git a/libmount/src/context_mount.c b/libmount/src/context_mount.c index 8c0a20e55..55ebf7945 100644 --- a/libmount/src/context_mount.c +++ b/libmount/src/context_mount.c @@ -645,10 +645,7 @@ static int exec_helper(struct libmnt_context *cxt) const char *args[14], *type; int i = 0; - if (setgid(getgid()) < 0) - _exit(EXIT_FAILURE); - - if (setuid(getuid()) < 0) + if (drop_permissions() != 0) _exit(EXIT_FAILURE); if (!mnt_context_switch_origin_ns(cxt)) diff --git a/libmount/src/context_umount.c b/libmount/src/context_umount.c index 57eda75be..8773c65ff 100644 --- a/libmount/src/context_umount.c +++ b/libmount/src/context_umount.c @@ -453,10 +453,7 @@ static int is_fuse_usermount(struct libmnt_context *cxt, int *errsv) struct libmnt_ns *ns_old; const char *type = mnt_fs_get_fstype(cxt->fs); const char *optstr; - char *user_id = NULL; - size_t sz; - uid_t uid; - char uidstr[sizeof(stringify_value(ULONG_MAX))]; + uid_t uid, entry_uid; *errsv = 0; @@ -473,11 +470,7 @@ static int is_fuse_usermount(struct libmnt_context *cxt, int *errsv) optstr = mnt_fs_get_fs_options(cxt->fs); if (!optstr) return 0; - - if (mnt_optstr_get_option(optstr, "user_id", &user_id, &sz) != 0) - return 0; - - if (sz == 0 || user_id == NULL) + if (mnt_optstr_get_uid(optstr, "user_id", &entry_uid) != 0) return 0; /* get current user */ @@ -494,8 +487,7 @@ static int is_fuse_usermount(struct libmnt_context *cxt, int *errsv) return 0; } - snprintf(uidstr, sizeof(uidstr), "%lu", (unsigned long) uid); - return strncmp(user_id, uidstr, sz) == 0; + return uid == entry_uid; } /* @@ -696,10 +688,7 @@ static int exec_helper(struct libmnt_context *cxt) const char *args[12], *type; int i = 0; - if (setgid(getgid()) < 0) - _exit(EXIT_FAILURE); - - if (setuid(getuid()) < 0) + if (drop_permissions() != 0) _exit(EXIT_FAILURE); if (!mnt_context_switch_origin_ns(cxt)) diff --git a/libmount/src/context_veritydev.c b/libmount/src/context_veritydev.c index e795c071c..fd6f1fa89 100644 --- a/libmount/src/context_veritydev.c +++ b/libmount/src/context_veritydev.c @@ -61,8 +61,9 @@ static size_t crypt_hex_to_bytes(const char *hex, char **result) for (i = 0; i < len; i++) { memcpy(buf, &hex[i * 2], 2); + errno = 0; bytes[i] = strtoul(buf, &endp, 16); - if (endp != &buf[2]) { + if (errno || endp != &buf[2]) { free(bytes); return -EINVAL; } @@ -77,7 +78,8 @@ int mnt_context_setup_veritydev(struct libmnt_context *cxt) const char *backing_file, *optstr; char *val = NULL, *key = NULL, *root_hash_binary = NULL, *mapper_device = NULL, *mapper_device_full = NULL, *backing_file_basename = NULL, *root_hash = NULL, - *hash_device = NULL, *root_hash_file = NULL, *fec_device = NULL, *hash_sig = NULL; + *hash_device = NULL, *root_hash_file = NULL, *fec_device = NULL, *hash_sig = NULL, + *root_hash_sig_file = NULL; size_t len, hash_size, hash_sig_size = 0, keysize = 0; struct crypt_params_verity crypt_params = {}; struct crypt_device *crypt_dev = NULL; @@ -217,7 +219,10 @@ int mnt_context_setup_veritydev(struct libmnt_context *cxt) */ if (rc == 0 && (cxt->user_mountflags & MNT_MS_ROOT_HASH_SIG) && mnt_optstr_get_option(optstr, "verity.roothashsig", &val, &len) == 0 && val) { - rc = ul_path_stat(NULL, &hash_sig_st, val); + root_hash_sig_file = strndup(val, len); + rc = root_hash_sig_file ? 0 : -ENOMEM; + if (rc == 0) + rc = ul_path_stat(NULL, &hash_sig_st, root_hash_sig_file); if (rc == 0) rc = !S_ISREG(hash_sig_st.st_mode) || !hash_sig_st.st_size ? -EINVAL : 0; if (rc == 0) { @@ -226,7 +231,7 @@ int mnt_context_setup_veritydev(struct libmnt_context *cxt) rc = hash_sig ? 0 : -ENOMEM; } if (rc == 0) { - rc = ul_path_read(NULL, hash_sig, hash_sig_size, val); + rc = ul_path_read(NULL, hash_sig, hash_sig_size, root_hash_sig_file); rc = rc < (int)hash_sig_size ? -1 : 0; } } @@ -410,6 +415,7 @@ done: free(hash_device); free(root_hash); free(root_hash_file); + free(root_hash_sig_file); free(fec_device); free(hash_sig); free(key); diff --git a/libmount/src/mountP.h b/libmount/src/mountP.h index ee97c6b4a..22442ec55 100644 --- a/libmount/src/mountP.h +++ b/libmount/src/mountP.h @@ -399,6 +399,7 @@ extern const struct libmnt_optmap *mnt_optmap_get_entry( const struct libmnt_optmap **mapent); /* optstr.c */ +extern int mnt_optstr_get_uid(const char *optstr, const char *name, uid_t *uid); extern int mnt_optstr_remove_option_at(char **optstr, char *begin, char *end); extern int mnt_optstr_fix_gid(char **optstr, char *value, size_t valsz, char **next); extern int mnt_optstr_fix_uid(char **optstr, char *value, size_t valsz, char **next); @@ -454,7 +455,8 @@ extern int mnt_context_set_tabfilter(struct libmnt_context *cxt, int (*fltr)(struct libmnt_fs *, void *), void *data); -extern int mnt_context_get_generic_excode(int rc, char *buf, size_t bufsz, char *fmt, ...); +extern int mnt_context_get_generic_excode(int rc, char *buf, size_t bufsz, const char *fmt, ...) + __attribute__ ((__format__ (__printf__, 4, 5))); extern int mnt_context_get_mount_excode(struct libmnt_context *cxt, int mntrc, char *buf, size_t bufsz); extern int mnt_context_get_umount_excode(struct libmnt_context *cxt, int mntrc, char *buf, size_t bufsz); diff --git a/libmount/src/optstr.c b/libmount/src/optstr.c index 921b9318e..16800f571 100644 --- a/libmount/src/optstr.c +++ b/libmount/src/optstr.c @@ -1076,6 +1076,48 @@ int mnt_optstr_fix_user(char **optstr) return rc; } +/* + * Converts value from @optstr addressed by @name to uid. + * + * Returns: 0 on success, 1 if not found, <0 on error + */ +int mnt_optstr_get_uid(const char *optstr, const char *name, uid_t *uid) +{ + char *value = NULL; + size_t valsz = 0; + char buf[sizeof(stringify_value(UINT64_MAX))]; + int rc; + uint64_t num; + + assert(optstr); + assert(name); + assert(uid); + + rc = mnt_optstr_get_option(optstr, name, &value, &valsz); + if (rc != 0) + goto fail; + + if (valsz > sizeof(buf) - 1) { + rc = -ERANGE; + goto fail; + } + mem2strcpy(buf, value, valsz, sizeof(buf)); + + rc = ul_strtou64(buf, &num, 10); + if (rc != 0) + goto fail; + if (num > ULONG_MAX || (uid_t) num != num) { + rc = -ERANGE; + goto fail; + } + *uid = (uid_t) num; + + return 0; +fail: + DBG(UTILS, ul_debug("failed to convert '%s'= to number [rc=%d]", name, rc)); + return rc; +} + /** * mnt_match_options: * @optstr: options string diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c index 95585b5b7..4407f9c9c 100644 --- a/libmount/src/tab_parse.c +++ b/libmount/src/tab_parse.c @@ -50,11 +50,12 @@ static const char *next_s32(const char *s, int *num, int *rc) if (!s || !*s) return s; + errno = 0; *rc = -EINVAL; *num = strtol(s, &end, 10); if (end == NULL || s == end) return s; - if (*end == ' ' || *end == '\t' || *end == '\0') + if (errno == 0 && (*end == ' ' || *end == '\t' || *end == '\0')) *rc = 0; return end; } @@ -66,11 +67,12 @@ static const char *next_u64(const char *s, uint64_t *num, int *rc) if (!s || !*s) return s; + errno = 0; *rc = -EINVAL; *num = (uint64_t) strtoumax(s, &end, 10); if (end == NULL || s == end) return s; - if (*end == ' ' || *end == '\t' || *end == '\0') + if (errno == 0 && (*end == ' ' || *end == '\t' || *end == '\0')) *rc = 0; return end; } @@ -225,11 +227,6 @@ static int mnt_parse_mountinfo_line(struct libmnt_fs *fs, const char *s) goto fail; } - /* remove "\040(deleted)" suffix */ - p = (char *) endswith(fs->target, PATH_DELETED_SUFFIX); - if (p && *p) - *p = '\0'; - s = skip_separator(s); /* (6) vfs options (fs-independent) */ diff --git a/libsmartcols/src/print-api.c b/libsmartcols/src/print-api.c index 50df96416..237d9ae54 100644 --- a/libsmartcols/src/print-api.c +++ b/libsmartcols/src/print-api.c @@ -119,7 +119,7 @@ static int do_print_table(struct libscols_table *tb, int *is_empty) if (scols_table_is_json(tb)) { ul_jsonwrt_init(&tb->json, tb->out, 0); ul_jsonwrt_root_open(&tb->json); - ul_jsonwrt_array_open(&tb->json, tb->name); + ul_jsonwrt_array_open(&tb->json, tb->name ? tb->name : ""); ul_jsonwrt_array_close(&tb->json); ul_jsonwrt_root_close(&tb->json); } else if (is_empty) @@ -134,7 +134,7 @@ static int do_print_table(struct libscols_table *tb, int *is_empty) if (scols_table_is_json(tb)) { ul_jsonwrt_root_open(&tb->json); - ul_jsonwrt_array_open(&tb->json, tb->name); + ul_jsonwrt_array_open(&tb->json, tb->name ? tb->name : ""); } if (tb->format == SCOLS_FMT_HUMAN) diff --git a/libsmartcols/src/table.c b/libsmartcols/src/table.c index 2644215e0..cbc5fd42a 100644 --- a/libsmartcols/src/table.c +++ b/libsmartcols/src/table.c @@ -50,7 +50,7 @@ static void check_padding_debug(struct libscols_table *tb) { const char *str; - assert(libsmartcols_debug_mask); /* debug has to be enabled! */ + assert(libsmartcols_debug_mask); /* debug has to be already initialized! */ str = getenv("LIBSMARTCOLS_DEBUG_PADDING"); if (!str || (strcmp(str, "on") != 0 && strcmp(str, "1") != 0)) diff --git a/libuuid/src/parse.c b/libuuid/src/parse.c index ce9cc09e9..d0c69b0e6 100644 --- a/libuuid/src/parse.c +++ b/libuuid/src/parse.c @@ -37,6 +37,7 @@ #include #include +#include "c.h" #include "uuidP.h" int uuid_parse(const char *in, uuid_t uu) @@ -70,16 +71,28 @@ int uuid_parse_range(const char *in_start, const char *in_end, uuid_t uu) if (!isxdigit(*cp)) return -1; } + errno = 0; uuid.time_low = strtoul(in_start, NULL, 16); - uuid.time_mid = strtoul(in_start+9, NULL, 16); - uuid.time_hi_and_version = strtoul(in_start+14, NULL, 16); - uuid.clock_seq = strtoul(in_start+19, NULL, 16); + + if (!errno) + uuid.time_mid = strtoul(in_start+9, NULL, 16); + if (!errno) + uuid.time_hi_and_version = strtoul(in_start+14, NULL, 16); + if (!errno) + uuid.clock_seq = strtoul(in_start+19, NULL, 16); + if (errno) + return -1; + cp = in_start+24; buf[2] = 0; for (i=0; i < 6; i++) { buf[0] = *cp++; buf[1] = *cp++; + + errno = 0; uuid.node[i] = strtoul(buf, NULL, 16); + if (errno) + return -1; } uuid_pack(&uuid, uu); diff --git a/login-utils/Makemodule.am b/login-utils/Makemodule.am index 75c0a6756..2d0547a16 100644 --- a/login-utils/Makemodule.am +++ b/login-utils/Makemodule.am @@ -109,7 +109,7 @@ chfn_chsh_sources = \ login-utils/ch-common.c chfn_chsh_cflags = $(SUID_CFLAGS) $(AM_CFLAGS) chfn_chsh_ldflags = $(SUID_LDFLAGS) $(AM_LDFLAGS) -chfn_chsh_ldadd = libcommon.la $(READLINE_LIBS) +chfn_chsh_ldadd = libcommon.la if CHFN_CHSH_PASSWORD chfn_chsh_ldadd += -lpam diff --git a/login-utils/chfn.c b/login-utils/chfn.c index 2508e14c9..23c0f2dbe 100644 --- a/login-utils/chfn.c +++ b/login-utils/chfn.c @@ -56,11 +56,6 @@ # include "auth.h" #endif -#ifdef HAVE_LIBREADLINE -# define _FUNCTION_DEF -# include -#endif - struct finfo { char *full_name; char *office; @@ -228,23 +223,18 @@ static char *ask_new_field(struct chfn_control *ctl, const char *question, { int len; char *buf; -#ifndef HAVE_LIBREADLINE size_t dummy = 0; -#endif if (!def_val) def_val = ""; while (true) { printf("%s [%s]:", question, def_val); __fpurge(stdin); -#ifdef HAVE_LIBREADLINE - rl_bind_key('\t', rl_insert); - if ((buf = readline(" ")) == NULL) -#else putchar(' '); + if (getline(&buf, &dummy, stdin) < 0) -#endif errx(EXIT_FAILURE, _("Aborted.")); + /* remove white spaces from string end */ ltrim_whitespace((unsigned char *) buf); len = rtrim_whitespace((unsigned char *) buf); diff --git a/login-utils/chsh.c b/login-utils/chsh.c index 349712072..ebcca1f74 100644 --- a/login-utils/chsh.c +++ b/login-utils/chsh.c @@ -58,11 +58,6 @@ # include "auth.h" #endif -#ifdef HAVE_LIBREADLINE -# define _FUNCTION_DEF -# include -#endif - struct sinfo { char *username; char *shell; @@ -121,33 +116,6 @@ static void print_shells(void) endusershell(); } -#ifdef HAVE_LIBREADLINE -static char *shell_name_generator(const char *text, int state) -{ - static size_t len; - char *s; - - if (!state) { - setusershell(); - len = strlen(text); - } - - while ((s = getusershell())) { - if (strncmp(s, text, len) == 0) - return xstrdup(s); - } - return NULL; -} - -static char **shell_name_completion(const char *text, - int start __attribute__((__unused__)), - int end __attribute__((__unused__))) -{ - rl_attempted_completion_over = 1; - return rl_completion_matches(text, shell_name_generator); -} -#endif - /* * parse_argv () -- * parse the command line arguments, and fill in "pinfo" with any @@ -198,21 +166,16 @@ static char *ask_new_shell(char *question, char *oldshell) { int len; char *ans = NULL; -#ifdef HAVE_LIBREADLINE - rl_attempted_completion_function = shell_name_completion; -#else size_t dummy = 0; -#endif + if (!oldshell) oldshell = ""; printf("%s [%s]:", question, oldshell); -#ifdef HAVE_LIBREADLINE - if ((ans = readline(" ")) == NULL) -#else putchar(' '); + if (getline(&ans, &dummy, stdin) < 0) -#endif return NULL; + /* remove the newline at the end of ans. */ ltrim_whitespace((unsigned char *) ans); len = rtrim_whitespace((unsigned char *) ans); diff --git a/login-utils/login.c b/login-utils/login.c index 7fefd05da..c6cd340b6 100644 --- a/login-utils/login.c +++ b/login-utils/login.c @@ -1012,7 +1012,6 @@ static void loginpam_acct(struct login_context *cxt) loginpam_err(pamh, rc); /* - * Grab the user information out of the password file for future use. * First get the username that we are actually using, though. */ rc = loginpam_get_username(pamh, &cxt->username); @@ -1358,10 +1357,9 @@ static void initialize(int argc, char **argv, struct login_context *cxt) #endif } #ifdef HAVE_CLOSE_RANGE - close_range(STDERR_FILENO + 1, ~0U); -#else - ul_close_all_fds(STDERR_FILENO + 1, ~0U); + if (close_range(STDERR_FILENO + 1, ~0U, 0) < 0) #endif + ul_close_all_fds(STDERR_FILENO + 1, ~0U); } int main(int argc, char **argv) diff --git a/login-utils/lslogins.c b/login-utils/lslogins.c index 109e07fea..9431a50bb 100644 --- a/login-utils/lslogins.c +++ b/login-utils/lslogins.c @@ -474,55 +474,52 @@ static struct utmpx *get_last_btmp(struct lslogins_control *ctl, const char *use } -static int read_utmp(char const *file, size_t *nents, struct utmpx **res) +static int parse_utmpx(const char *path, size_t *nrecords, struct utmpx **records) { - size_t n_read = 0, n_alloc = 0; - struct utmpx *utmp = NULL, *u; + size_t i, imax = 0; + struct utmpx *ary = NULL; + struct stat st; - if (utmpxname(file) < 0) + *nrecords = 0; + *records = NULL; + + if (utmpxname(path) < 0) return -errno; - setutxent(); - errno = 0; + /* optimize allocation according to file size, the realloc() below is + * just fallback only */ + if (stat(path, &st) == 0 && (size_t) st.st_size > sizeof(struct utmpx)) { + imax = st.st_size / sizeof(struct utmpx); + ary = xmalloc(imax * sizeof(struct utmpx)); + } - while ((u = getutxent()) != NULL) { - if (n_read == n_alloc) { - n_alloc += 32; - utmp = xrealloc(utmp, n_alloc * sizeof (struct utmpx)); + for (i = 0; ; i++) { + struct utmpx *u; + errno = 0; + u = getutxent(); + if (!u) { + if (errno) + goto fail; + break; } - utmp[n_read++] = *u; + if (i == imax) + ary = xrealloc(ary, (imax *= 2) * sizeof(struct utmpx)); + ary[i] = *u; } - if (!u && errno) { - free(utmp); + + *nrecords = i; + *records = ary; + endutxent(); + return 0; +fail: + endutxent(); + free(ary); + if (errno) { + if (errno != EACCES) + err(EXIT_FAILURE, "%s", path); return -errno; } - - endutxent(); - - *nents = n_read; - *res = utmp; - - return 0; -} - -static int parse_wtmp(struct lslogins_control *ctl, char *path) -{ - int rc = 0; - - rc = read_utmp(path, &ctl->wtmp_size, &ctl->wtmp); - if (rc < 0 && errno != EACCES) - err(EXIT_FAILURE, "%s", path); - return rc; -} - -static int parse_btmp(struct lslogins_control *ctl, char *path) -{ - int rc = 0; - - rc = read_utmp(path, &ctl->btmp_size, &ctl->btmp); - if (rc < 0 && errno != EACCES) - err(EXIT_FAILURE, "%s", path); - return rc; + return -EINVAL; } static void get_lastlog(struct lslogins_control *ctl, uid_t uid, void *dst, int what) @@ -565,6 +562,9 @@ static int get_sgroups(gid_t **list, size_t *len, struct passwd *pwd) *list = xcalloc(1, ngroups * sizeof(gid_t)); +fprintf(stderr, "KZAK>>> alloc '%p' for %s\n", *list, pwd->pw_name); + + /* now for the actual list of GIDs */ if (-1 == getgrouplist(pwd->pw_name, pwd->pw_gid, *list, &ngroups)) return -1; @@ -757,7 +757,8 @@ static struct lslogins_user *get_user_info(struct lslogins_control *ctl, const c break; case COL_SGROUPS: case COL_SGIDS: - if (get_sgroups(&user->sgroups, &user->nsgroups, pwd)) + if (!user->nsgroups && + get_sgroups(&user->sgroups, &user->nsgroups, pwd) < 0) err(EXIT_FAILURE, _("failed to get supplementary groups")); break; case COL_HOME: @@ -908,11 +909,14 @@ static struct lslogins_user *get_user_info(struct lslogins_control *ctl, const c static int str_to_uint(char *s, unsigned int *ul) { - char *end; + char *end = NULL; + if (!s || !*s) return -1; + + errno = 0; *ul = strtoul(s, &end, 0); - if (!*end) + if (errno == 0 && end && !*end) return 0; return 1; } @@ -1048,7 +1052,6 @@ static int create_usertree(struct lslogins_control *ctl) } if (rc || !user) continue; - tsearch(user, &ctl->usertree, cmp_uid); } } else { @@ -1231,14 +1234,28 @@ static void fill_table(const void *u, const VISIT which, const int depth __attri } } #ifdef HAVE_LIBSYSTEMD +static char *get_journal_data(sd_journal *j, const char *name) +{ + const char *data = NULL, *p; + size_t len = 0; + + if (sd_journal_get_data(j, name, (const void **) &data, &len) < 0 + || !data || !len) + return NULL; + + /* Get rid of journal entry field identifiers */ + p = strnchr(data, len, '='); + if (!p || !*(p + 1)) + return NULL; + p++; + + return xstrndup(p, len - (p - data)); +} + static void print_journal_tail(const char *journal_path, uid_t uid, size_t len, int time_mode) { sd_journal *j; - char *match, *timestamp; - uint64_t x; - time_t t; - const char *identifier, *pid, *message; - size_t identifier_len, pid_len, message_len; + char *match; if (journal_path) sd_journal_open_directory(&j, journal_path, 0); @@ -1252,30 +1269,27 @@ static void print_journal_tail(const char *journal_path, uid_t uid, size_t len, sd_journal_previous_skip(j, len); do { - if (0 > sd_journal_get_data(j, "SYSLOG_IDENTIFIER", - (const void **) &identifier, &identifier_len)) - goto done; - if (0 > sd_journal_get_data(j, "_PID", - (const void **) &pid, &pid_len)) - goto done; - if (0 > sd_journal_get_data(j, "MESSAGE", - (const void **) &message, &message_len)) - goto done; + char *id, *pid, *msg, *ts; + uint64_t x; + time_t t; sd_journal_get_realtime_usec(j, &x); t = x / 1000000; - timestamp = make_time(time_mode, t); - /* Get rid of journal entry field identifiers */ - identifier = strchr(identifier, '=') + 1; - pid = strchr(pid, '=') + 1; - message = strchr(message, '=') + 1; + ts = make_time(time_mode, t); - fprintf(stdout, "%s %s[%s]: %s\n", timestamp, identifier, pid, - message); - free(timestamp); + id = get_journal_data(j, "SYSLOG_IDENTIFIER"); + pid = get_journal_data(j, "_PID"); + msg = get_journal_data(j, "MESSAGE"); + + if (ts && id && pid && msg) + fprintf(stdout, "%s %s[%s]: %s\n", ts, id, pid, msg); + + free(ts); + free(id); + free(pid); + free(msg); } while (sd_journal_next(j)); -done: free(match); sd_journal_flush_matches(j); sd_journal_close(j); @@ -1333,6 +1347,7 @@ static void free_user(void *f) struct lslogins_user *u = f; free(u->login); free(u->group); + free(u->nprocs); free(u->gecos); free(u->sgroups); free(u->pwd_ctime); @@ -1644,11 +1659,11 @@ int main(int argc, char *argv[]) return EXIT_FAILURE; if (require_wtmp()) { - parse_wtmp(ctl, path_wtmp); + parse_utmpx(path_wtmp, &ctl->wtmp_size, &ctl->wtmp); ctl->lastlogin_fd = open(path_lastlog, O_RDONLY, 0); } if (require_btmp()) - parse_btmp(ctl, path_btmp); + parse_utmpx(path_btmp, &ctl->btmp_size, &ctl->btmp); if (logins || groups) get_ulist(ctl, logins, groups); diff --git a/login-utils/newgrp.c b/login-utils/newgrp.c index 2c0aab114..2acbc9107 100644 --- a/login-utils/newgrp.c +++ b/login-utils/newgrp.c @@ -123,7 +123,7 @@ static int allow_setgid(const struct passwd *pe, const struct group *ge) { char **look; int notfound = 1; - char *pwd, *xpwd; + char *pwd, *xpwd, *spwd; if (getuid() == 0) /* root may do anything */ @@ -144,8 +144,8 @@ static int allow_setgid(const struct passwd *pe, const struct group *ge) * as in /etc/passwd */ /* check /etc/gshadow */ - if (!(pwd = get_gshadow_pwd(ge->gr_name))) - pwd = ge->gr_passwd; + spwd = get_gshadow_pwd(ge->gr_name); + pwd = spwd ? spwd : ge->gr_passwd; if (pwd && *pwd && (xpwd = xgetpass(stdin, _("Password: ")))) { char *cbuf = crypt(xpwd, pwd); @@ -162,6 +162,8 @@ static int allow_setgid(const struct passwd *pe, const struct group *ge) return TRUE; } + free(spwd); + /* default to denial */ return FALSE; } diff --git a/login-utils/sulogin.c b/login-utils/sulogin.c index 6ed63f1a0..4d48943ad 100644 --- a/login-utils/sulogin.c +++ b/login-utils/sulogin.c @@ -80,6 +80,8 @@ static struct sigaction saved_sigchld; static volatile sig_atomic_t alarm_rised; static volatile sig_atomic_t sigchild; +#define SULOGIN_PASSWORD_BUFSIZ 128 + #ifndef IUCLC # define IUCLC 0 #endif @@ -602,13 +604,13 @@ static void setup(struct console *con) * Ask for the password. Note that there is no default timeout as we normally * skip this during boot. */ -static const char *getpasswd(struct console *con) +static char *getpasswd(struct console *con) { struct sigaction sa; struct termios tty; - static char pass[128], *ptr; + static char pass[SULOGIN_PASSWORD_BUFSIZ], *ptr; struct chardata *cp; - const char *ret = pass; + char *ret = NULL; unsigned char tc; char c, ascval; int eightbit; @@ -619,6 +621,7 @@ static const char *getpasswd(struct console *con) cp = &con->cp; tty = con->tio; + ret = pass; tty.c_iflag &= ~(IUCLC|IXON|IXOFF|IXANY); tty.c_lflag &= ~(ECHO|ECHOE|ECHOK|ECHONL|TOSTOP|ISIG); tc = (tcsetattr(fd, TCSAFLUSH, &tty) == 0); @@ -711,6 +714,10 @@ quit: tcfinal(con); printf("\r\n"); out: +#ifdef HAVE_EXPLICIT_BZERO + if (ret == NULL) + explicit_bzero(pass, sizeof(pass)); +#endif return ret; } @@ -977,7 +984,7 @@ int main(int argc, char **argv) setup(con); while (1) { const char *passwd = pwd->pw_passwd; - const char *answer; + char *answer; int doshell = 0; int deny = !opt_e && locked_account_password(pwd->pw_passwd); @@ -985,8 +992,12 @@ int main(int argc, char **argv) if ((answer = getpasswd(con)) == NULL) break; - if (deny) + if (deny) { +#ifdef HAVE_EXPLICIT_BZERO + explicit_bzero(answer, SULOGIN_PASSWORD_BUFSIZ); +#endif exit(EXIT_FAILURE); + } /* no password or locked account */ if (!passwd[0] || locked_account_password(passwd)) @@ -999,7 +1010,9 @@ int main(int argc, char **argv) else if (strcmp(cryptbuf, pwd->pw_passwd) == 0) doshell++; } - +#ifdef HAVE_EXPLICIT_BZERO + explicit_bzero(answer, SULOGIN_PASSWORD_BUFSIZ); +#endif if (doshell) { /* sushell() unmask signals */ sushell(pwd); diff --git a/login-utils/utmpdump.c b/login-utils/utmpdump.c index b9a92b5f6..274f0d97a 100644 --- a/login-utils/utmpdump.c +++ b/login-utils/utmpdump.c @@ -74,8 +74,16 @@ static time_t strtotime(const char *s_time) static suseconds_t strtousec(const char *s_time) { const char *s = strchr(s_time, ','); - if (s) - return (suseconds_t) atoi(s + 1); + + if (s && *++s) { + suseconds_t us; + char *end = NULL; + + errno = 0; + us = strtol(s, &end, 10); + if (errno == 0 && end && end > s) + return us; + } return 0; } @@ -266,7 +274,7 @@ static int gettok(char *line, char *dest, int size, int eatspace) static void undump(FILE *in, FILE *out) { struct utmpx ut; - char s_addr[INET6_ADDRSTRLEN + 1], s_time[29], *linestart, *line; + char s_addr[INET6_ADDRSTRLEN + 1], s_time[29] = {}, *linestart, *line; linestart = xmalloc(1024 * sizeof(*linestart)); s_time[28] = 0; diff --git a/m4/ul.m4 b/m4/ul.m4 index 951db7371..724579462 100644 --- a/m4/ul.m4 +++ b/m4/ul.m4 @@ -67,28 +67,21 @@ AC_DEFUN([UL_SET_ARCH], [ ]) -dnl UL_SET_FLAGS(CFLAGS, CPPFLAGS, LDFLAGS) +dnl UL_SET_LIBS(LIBS) dnl -dnl Sets new global CFLAGS, CPPFLAGS and LDFLAG, the original -dnl setting could be restored by UL_RESTORE_FLAGS() +dnl Sets new global LIBS, the original setting could be restored by UL_RESTORE_LIBS() dnl -AC_DEFUN([UL_SET_FLAGS], [ - old_CFLAGS="$CFLAGS" - old_CPPFLAGS="$CPPFLAGS" - old_LDFLAGS="$LDFLAGS" - CFLAGS="$CFLAGS $1" - CPPFLAGS="$CPPFLAGS $2" - LDFLAGS="$LDFLAGS $3" +AC_DEFUN([UL_SET_LIBS], [ + old_LIBS="$LIBS" + LIBS="$LIBS $1" ]) -dnl UL_RESTORE_FLAGS() +dnl UL_RESTORE_LIBS() dnl -dnl Restores CFLAGS, CPPFLAGS and LDFLAG previously saved by UL_SET_FLAGS() +dnl Restores LIBS previously saved by UL_SET_LIBS() dnl -AC_DEFUN([UL_RESTORE_FLAGS], [ - CFLAGS="$old_CFLAGS" - CPPFLAGS="$old_CPPFLAGS" - LDFLAGS="$old_LDFLAGS" +AC_DEFUN([UL_RESTORE_LIBS], [ + LIBS="$old_LIBS" ]) diff --git a/meson.build b/meson.build index fbb24e7a4..bf1924bf7 100644 --- a/meson.build +++ b/meson.build @@ -264,11 +264,6 @@ lib_readline_static = dependency( static : true, required : need_static_libs ? get_option('readline') : disabler()) -lib_pcre = dependency( - 'libpcre2-posix', - required : get_option('libpcre2-posix')) -conf.set('HAVE_PCRE2_POSIX', lib_pcre.found() ? 1 : false) - lib_user = dependency( 'libuser', version : '>= 0.58', @@ -312,15 +307,24 @@ lib_cryptsetup = dependency( required : get_option('cryptsetup')) conf.set('HAVE_CRYPTSETUP', lib_cryptsetup.found() ? 1 : false) -lib_cryptsetup_dl = dependency( - 'dl', - required : get_option('cryptsetup-dlopen')) -conf.set('CRYPTSETUP_VIA_DLOPEN', lib_cryptsetup_dl.found() ? 1 : false) +if not get_option('cryptsetup').disabled() and get_option('cryptsetup-dlopen').enabled() + lib_dl = cc.find_library( + 'libdl', + required : true) + conf.set('CRYPTSETUP_VIA_DLOPEN', 1) + summary('cryptsetup support (dlopen)', + 'enabled', + section : 'components') +else + summary('cryptsetup support', + lib_cryptsetup.found() ? 'enabled' : 'disabled', + section : 'components') +endif have = cc.has_function( 'crypt_activate_by_signed_key', dependencies : lib_cryptsetup) -conf.set('HAVE_CRYPTSETUP', have ? 1 : false) +conf.set('HAVE_CRYPT_ACTIVATE_BY_SIGNED_KEY', have ? 1 : false) lib_cap_ng = dependency( 'libcap-ng') @@ -2532,7 +2536,6 @@ exe = executable( hardlink_sources, include_directories : includes, link_with : [lib_common], - dependencies : [lib_pcre], install_dir : usrbin_exec_dir, install : true) if not is_disabler(exe) diff --git a/misc-utils/Makemodule.am b/misc-utils/Makemodule.am index 9c93a8b93..6415f0cf0 100644 --- a/misc-utils/Makemodule.am +++ b/misc-utils/Makemodule.am @@ -28,7 +28,7 @@ usrbin_exec_PROGRAMS += logger MANPAGES += misc-utils/logger.1 dist_noinst_DATA += misc-utils/logger.1.adoc logger_SOURCES = misc-utils/logger.c lib/strutils.c lib/strv.c -logger_LDADD = $(LDADD) +logger_LDADD = $(LDADD) libcommon.la logger_CFLAGS = $(AM_CFLAGS) if HAVE_SYSTEMD logger_LDADD += $(SYSTEMD_LIBS) $(SYSTEMD_DAEMON_LIBS) $(SYSTEMD_JOURNAL_LIBS) @@ -244,8 +244,4 @@ dist_noinst_DATA += misc-utils/hardlink.1.adoc hardlink_SOURCES = misc-utils/hardlink.c lib/monotonic.c hardlink_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS) hardlink_CFLAGS = $(AM_CFLAGS) -if HAVE_PCRE2_POSIX -hardlink_LDADD += $(PCRE2_POSIX_LIBS) -hardlink_CFLAGS += $(PCRE2_POSIX_CFLAGS) -endif endif diff --git a/misc-utils/blkid.8.adoc b/misc-utils/blkid.8.adoc index cea44c303..e178418ec 100644 --- a/misc-utils/blkid.8.adoc +++ b/misc-utils/blkid.8.adoc @@ -17,7 +17,7 @@ blkid - locate/print block device attributes *blkid* *--label* _label_ | *--uuid* _uuid_ -*blkid* [*--no-encoding* *--garbage-collect* *--list-one* *--cache-file* _file_] [*--output* _format_][*--match-tag* _tag_] [*--match-token* _NAME=value_] [_device_...] +*blkid* [*--no-encoding* *--garbage-collect* *--list-one* *--cache-file* _file_] [*--output* _format_] [*--match-tag* _tag_] [*--match-token* _NAME=value_] [_device_...] *blkid* *--probe* [*--offset* _offset_] [*--output* _format_] [*--size* _size_] [*--match-tag* _tag_] [*--match-types* _list_] [*--usages* _list_] [*--no-part-details*] _device_... diff --git a/misc-utils/findmnt-verify.c b/misc-utils/findmnt-verify.c index 1d255426d..164c6589b 100644 --- a/misc-utils/findmnt-verify.c +++ b/misc-utils/findmnt-verify.c @@ -32,7 +32,8 @@ struct verify_context { no_fsck : 1; }; -static void verify_mesg(struct verify_context *vfy, char type, const char *fmt, va_list ap) +static void __attribute__ ((__format__ (__printf__, 3, 0))) + verify_mesg(struct verify_context *vfy, char type, const char *fmt, va_list ap) { if (!vfy->target_printed) { fprintf(stdout, "%s\n", mnt_fs_get_target(vfy->fs)); @@ -44,7 +45,8 @@ static void verify_mesg(struct verify_context *vfy, char type, const char *fmt, fputc('\n', stdout); } -static int verify_warn(struct verify_context *vfy, const char *fmt, ...) +static int __attribute__ ((__format__ (__printf__, 2, 3))) + verify_warn(struct verify_context *vfy, const char *fmt, ...) { va_list ap; vfy->nwarnings++; @@ -54,7 +56,8 @@ static int verify_warn(struct verify_context *vfy, const char *fmt, ...) return 0; } -static int verify_err(struct verify_context *vfy, const char *fmt, ...) +static int __attribute__ ((__format__ (__printf__, 2, 3))) + verify_err(struct verify_context *vfy, const char *fmt, ...) { va_list ap; vfy->nerrors++; @@ -64,7 +67,8 @@ static int verify_err(struct verify_context *vfy, const char *fmt, ...) return 0; } -static int verify_ok(struct verify_context *vfy __attribute__((unused)), +static int __attribute__ ((__format__ (__printf__, 2, 3))) + verify_ok(struct verify_context *vfy __attribute__((unused)), const char *fmt, ...) { va_list ap; @@ -160,7 +164,10 @@ static int verify_target(struct verify_context *vfy) static char *verify_tag(struct verify_context *vfy, const char *name, const char *value) { - char *src = mnt_resolve_tag(name, value, cache); + char *src = NULL; + + if (!(flags & FL_NOCACHE)) + src = mnt_resolve_tag(name, value, cache); if (!src) { if (mnt_fs_get_option(vfy->fs, "noauto", NULL, NULL) == 1) @@ -336,6 +343,18 @@ static int read_proc_filesystems(struct verify_context *vfy) return rc; } +static void free_proc_filesystems(struct verify_context *vfy) +{ + size_t n; + + if (!vfy->fs_ary) + return; + + for (n = 0; n < vfy->fs_num; n++ ) + free(vfy->fs_ary[n]); + free(vfy->fs_ary); +} + static int read_kernel_filesystems(struct verify_context *vfy) { int rc = 0; @@ -388,14 +407,18 @@ static int read_kernel_filesystems(struct verify_context *vfy) static int verify_fstype(struct verify_context *vfy) { - const char *src = mnt_resolve_spec(mnt_fs_get_source(vfy->fs), cache); - const char *type, *realtype; + char *src = mnt_resolve_spec(mnt_fs_get_source(vfy->fs), cache); + char *realtype = NULL; + const char *type; int ambi = 0, isauto = 0, isswap = 0; if (!src) return 0; - if (mnt_fs_is_pseudofs(vfy->fs) || mnt_fs_is_netfs(vfy->fs)) - return verify_ok(vfy, _("do not check %s FS type (pseudo/net)"), src); + + if (mnt_fs_is_pseudofs(vfy->fs) || mnt_fs_is_netfs(vfy->fs)) { + verify_ok(vfy, _("do not check %s FS type (pseudo/net)"), src); + goto done; + } type = mnt_fs_get_fstype(vfy->fs); @@ -404,8 +427,10 @@ static int verify_fstype(struct verify_context *vfy) if (none && mnt_fs_get_option(vfy->fs, "bind", NULL, NULL) == 1 - && mnt_fs_get_option(vfy->fs, "move", NULL, NULL) == 1) - return verify_warn(vfy, _("\"none\" FS type is recommended for bind or move oprations only")); + && mnt_fs_get_option(vfy->fs, "move", NULL, NULL) == 1) { + verify_warn(vfy, _("\"none\" FS type is recommended for bind or move oprations only")); + goto done; + } if (strcmp(type, "auto") == 0) isauto = 1; @@ -421,23 +446,33 @@ static int verify_fstype(struct verify_context *vfy) if (!realtype) { if (isauto) - return verify_err(vfy, _("cannot detect on-disk filesystem type")); - return verify_warn(vfy, _("cannot detect on-disk filesystem type")); + verify_err(vfy, _("cannot detect on-disk filesystem type")); + else + verify_warn(vfy, _("cannot detect on-disk filesystem type")); + goto done; } if (realtype) { isswap = strcmp(realtype, "swap") == 0; vfy->no_fsck = strcmp(realtype, "xfs") == 0; - if (type && !isauto && strcmp(type, realtype) != 0) - return verify_err(vfy, _("%s does not match with on-disk %s"), type, realtype); - - if (!isswap && !is_supported_filesystem(vfy, realtype)) - return verify_err(vfy, _("on-disk %s seems unsupported by the current kernel"), realtype); + if (type && !isauto && strcmp(type, realtype) != 0) { + verify_err(vfy, _("%s does not match with on-disk %s"), type, realtype); + goto done; + } + if (!isswap && !is_supported_filesystem(vfy, realtype)) { + verify_err(vfy, _("on-disk %s seems unsupported by the current kernel"), realtype); + goto done; + } verify_ok(vfy, _("FS type is %s"), realtype); } +done: + if (!cache) { + free(src); + free(realtype); + } return 0; } @@ -523,5 +558,8 @@ done: } else fprintf(stdout, _("Success, no errors or warnings detected\n")); + + free_proc_filesystems(&vfy); + return rc != 0 ? rc : vfy.nerrors + parse_nerrors; } diff --git a/misc-utils/findmnt.8.adoc b/misc-utils/findmnt.8.adoc index 7baa6e580..9890584df 100644 --- a/misc-utils/findmnt.8.adoc +++ b/misc-utils/findmnt.8.adoc @@ -187,7 +187,7 @@ LIBSMARTCOLS_DEBUG=all:: enables libsmartcols debug output LIBSMARTCOLS_DEBUG_PADDING=on:: -use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. +use visible padding characters. == EXAMPLES diff --git a/misc-utils/getopt.1.adoc b/misc-utils/getopt.1.adoc index b4d10169f..1b44b2076 100644 --- a/misc-utils/getopt.1.adoc +++ b/misc-utils/getopt.1.adoc @@ -129,8 +129,8 @@ In compatibility mode, leading '*-*' and '*{plus}*' characters in the short opti == EXAMPLES -// TRANSLATORS: Don't translate _{docdir}_. -Example scripts for (ba)sh and (t)csh are provided with the *getopt*(1) distribution, and are installed in _{docdir}_ directory. +// TRANSLATORS: Don't translate _{package-docdir}_. +Example scripts for (ba)sh and (t)csh are provided with the *getopt*(1) distribution, and are installed in _{package-docdir}_ directory. == ENVIRONMENT diff --git a/misc-utils/hardlink.c b/misc-utils/hardlink.c index 8918b326a..29c8509e3 100644 --- a/misc-utils/hardlink.c +++ b/misc-utils/hardlink.c @@ -44,14 +44,7 @@ #include "monotonic.h" #include "optutils.h" -/* Use libpcre2posix if it's available */ -#ifdef HAVE_PCRE2_POSIX -# include -# undef REG_NOSUB -# define REG_NOSUB 0 /* we do want backreferences in PCRE mode */ -#else -# include /* regcomp(), regsearch() */ -#endif +#include /* regcomp(), regsearch() */ #ifdef HAVE_SYS_XATTR_H # include /* listxattr, getxattr */ diff --git a/misc-utils/kill.c b/misc-utils/kill.c index 9cfb03cb9..c70c38507 100644 --- a/misc-utils/kill.c +++ b/misc-utils/kill.c @@ -176,10 +176,11 @@ static int arg_to_signum(char *arg, int maskbit) char *ep; if (isdigit(*arg)) { + errno = 0; numsig = strtol(arg, &ep, 10); if (NSIG <= numsig && maskbit && (numsig & 128) != 0) numsig -= 128; - if (*ep != 0 || numsig < 0 || NSIG <= numsig) + if (errno || *ep != 0 || numsig < 0 || NSIG <= numsig) return -1; return numsig; } diff --git a/misc-utils/logger.c b/misc-utils/logger.c index d51cd5988..5b122de79 100644 --- a/misc-utils/logger.c +++ b/misc-utils/logger.c @@ -63,6 +63,7 @@ #include "xalloc.h" #include "strv.h" #include "list.h" +#include "pwdutils.h" #define SYSLOG_NAMES #include @@ -393,16 +394,6 @@ static int journald_entry(struct logger_ctl *ctl, FILE *fp) } #endif -static char const *xgetlogin(void) -{ - char const *cp; - struct passwd *pw; - - if (!(cp = getlogin()) || !*cp) - cp = (pw = getpwuid(geteuid()))? pw->pw_name : ""; - return cp; -} - /* this creates a timestamp based on current time according to the * fine rules of RFC3164, most importantly it ensures in a portable * way that the month day is correctly written (with a SP instead @@ -619,7 +610,8 @@ static void add_structured_data_param(struct list_head *ls, const char *param) err_oom(); } -static void add_structured_data_paramf(struct list_head *ls, const char *fmt, ...) +static void __attribute__ ((__format__ (__printf__, 2, 3))) + add_structured_data_paramf(struct list_head *ls, const char *fmt, ...) { struct structured_data *sd; va_list ap; @@ -926,6 +918,8 @@ static void logger_open(struct logger_ctl *ctl) syslog_local_header; if (!ctl->tag) ctl->tag = xgetlogin(); + if (!ctl->tag) + ctl->tag = ""; generate_syslog_header(ctl); } diff --git a/misc-utils/lsblk-properties.c b/misc-utils/lsblk-properties.c index 6429db06e..bc6079371 100644 --- a/misc-utils/lsblk-properties.c +++ b/misc-utils/lsblk-properties.c @@ -10,6 +10,7 @@ #include "mangle.h" #include "path.h" #include "nls.h" +#include "strutils.h" #include "lsblk.h" @@ -111,11 +112,19 @@ static struct lsblk_devprop *get_properties_by_udev(struct lsblk_device *ld) data = udev_device_get_property_value(dev, "ID_SERIAL_SHORT"); if(!data) data = udev_device_get_property_value(dev, "ID_SERIAL"); - if (data) + if (data) { prop->serial = xstrdup(data); + normalize_whitespace((unsigned char *) prop->serial); + } - if ((data = udev_device_get_property_value(dev, "ID_MODEL"))) + if ((data = udev_device_get_property_value(dev, "ID_MODEL_ENC"))) { prop->model = xstrdup(data); + unhexmangle_string(prop->model); + normalize_whitespace((unsigned char *) prop->model); + } else if ((data = udev_device_get_property_value(dev, "ID_MODEL"))) { + prop->model = xstrdup(data); + normalize_whitespace((unsigned char *) prop->model); + } udev_device_unref(dev); DBG(DEV, ul_debugobj(ld, "%s: found udev properties", ld->name)); diff --git a/misc-utils/lsblk.8.adoc b/misc-utils/lsblk.8.adoc index eda9983a7..735697640 100644 --- a/misc-utils/lsblk.8.adoc +++ b/misc-utils/lsblk.8.adoc @@ -45,7 +45,7 @@ Use _column_ as a de-duplication key to de-duplicate output tree. If the key is + The usual use case is to de-duplicate output on system multi-path devices, for example by *-E WWN*. --e*, *--exclude* _list_:: +*-e*, *--exclude* _list_:: Exclude the devices specified by the comma-separated _list_ of major device numbers. Note that RAM disks (major=1) are excluded by default if *--all* is not specified. The filter is applied to the top-level devices only. This may be confusing for *--list* output format where hierarchy of the devices is not obvious. *-f*, *--fs*:: @@ -150,7 +150,7 @@ LIBSMARTCOLS_DEBUG=all:: enables *libsmartcols* debug output. LIBSMARTCOLS_DEBUG_PADDING=on:: -use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. +use visible padding characters. == NOTES diff --git a/misc-utils/lslocks.c b/misc-utils/lslocks.c index 18922e546..941ef7f06 100644 --- a/misc-utils/lslocks.c +++ b/misc-utils/lslocks.c @@ -192,8 +192,10 @@ static char *get_filename_sz(ino_t inode, pid_t lock_pid, size_t *size) !strcmp(dp->d_name, "..")) continue; + errno = 0; + /* care only for numerical descriptors */ - if (!strtol(dp->d_name, (char **) NULL, 10)) + if (!strtol(dp->d_name, (char **) NULL, 10) || errno) continue; if (!fstatat(fd, dp->d_name, &sb, 0) diff --git a/misc-utils/namei.c b/misc-utils/namei.c index 9c5f5fa4a..3d50b200d 100644 --- a/misc-utils/namei.c +++ b/misc-utils/namei.c @@ -99,7 +99,7 @@ readlink_to_namei(struct namei *nm, const char *path) } nm->abslink = xmalloc(sz + 1); - if (*sym != '/' && isrel) { + if (isrel) { /* create the absolute path from the relative symlink */ memcpy(nm->abslink, path, nm->relstart); *(nm->abslink + nm->relstart) = '/'; diff --git a/misc-utils/rename.c b/misc-utils/rename.c index 0f0d88322..fbabfe284 100644 --- a/misc-utils/rename.c +++ b/misc-utils/rename.c @@ -105,6 +105,7 @@ static int do_symlink(char *from, char *to, char *s, int verbose, int noact, { char *newname = NULL, *target = NULL; int ret = 1; + ssize_t ssz; struct stat sb; if ( faccessat(AT_FDCWD, s, F_OK, AT_SYMLINK_NOFOLLOW) != 0 && @@ -125,12 +126,15 @@ static int do_symlink(char *from, char *to, char *s, int verbose, int noact, return 2; } target = xmalloc(sb.st_size + 1); - if (readlink(s, target, sb.st_size + 1) < 0) { + + ssz = readlink(s, target, sb.st_size + 1); + if (ssz < 0) { warn(_("%s: readlink failed"), s); free(target); return 2; } - target[sb.st_size] = '\0'; + target[ssz] = '\0'; + if (string_replace(from, to, target, target, &newname) != 0) ret = 0; diff --git a/misc-utils/wipefs.c b/misc-utils/wipefs.c index 1b265b48c..78dc63ee7 100644 --- a/misc-utils/wipefs.c +++ b/misc-utils/wipefs.c @@ -334,7 +334,10 @@ static struct wipe_desc *get_desc_for_probe(struct wipe_control *ctl, } else return NULL; + errno = 0; *offset = strtoll(off, NULL, 10); + if (errno) + return NULL; /* Filter out by -t */ if (ctl->type_pattern && !match_fstype(type, ctl->type_pattern)) diff --git a/po/ca.po b/po/ca.po index 65938f3bf..30ae04261 100644 --- a/po/ca.po +++ b/po/ca.po @@ -13,7 +13,7 @@ msgid "" msgstr "" "Project-Id-Version: util-linux 2.13-pre3\n" "Report-Msgid-Bugs-To: util-linux@vger.kernel.org\n" -"POT-Creation-Date: 2021-05-31 18:30+0200\n" +"POT-Creation-Date: 2022-02-14 10:24+0100\n" "PO-Revision-Date: 2005-09-17 13:40+0200\n" "Last-Translator: Josep Puigdemont \n" "Language-Team: Catalan \n" @@ -31,10 +31,10 @@ msgstr "" msgid "Tell the kernel about the existence of a specified partition.\n" msgstr "" -#: disk-utils/addpart.c:52 disk-utils/blockdev.c:244 disk-utils/delpart.c:52 -#: disk-utils/mkfs.bfs.c:127 disk-utils/resizepart.c:96 misc-utils/kill.c:314 -#: misc-utils/kill.c:375 misc-utils/rename.c:289 misc-utils/whereis.c:527 -#: sys-utils/flock.c:177 sys-utils/ipcrm.c:160 sys-utils/ldattach.c:367 +#: disk-utils/addpart.c:52 disk-utils/blockdev.c:245 disk-utils/delpart.c:52 +#: disk-utils/mkfs.bfs.c:127 disk-utils/resizepart.c:96 misc-utils/kill.c:315 +#: misc-utils/kill.c:376 misc-utils/rename.c:293 misc-utils/whereis.c:527 +#: sys-utils/flock.c:177 sys-utils/ipcrm.c:161 sys-utils/ldattach.c:368 #: sys-utils/renice.c:144 sys-utils/switch_root.c:261 sys-utils/tunelp.c:152 #: term-utils/agetty.c:897 term-utils/agetty.c:898 term-utils/agetty.c:906 #: term-utils/agetty.c:907 @@ -42,36 +42,36 @@ msgstr "" msgid "not enough arguments" msgstr "Massa arguments.\n" -#: disk-utils/addpart.c:57 disk-utils/blockdev.c:293 disk-utils/blockdev.c:437 -#: disk-utils/blockdev.c:464 disk-utils/cfdisk.c:2768 disk-utils/delpart.c:58 +#: disk-utils/addpart.c:57 disk-utils/blockdev.c:294 disk-utils/blockdev.c:438 +#: disk-utils/blockdev.c:465 disk-utils/cfdisk.c:2818 disk-utils/delpart.c:58 #: disk-utils/fdformat.c:229 disk-utils/fdisk.c:810 disk-utils/fdisk.c:1141 #: disk-utils/fdisk-list.c:327 disk-utils/fdisk-list.c:368 -#: disk-utils/fdisk-list.c:391 disk-utils/fsck.c:1470 -#: disk-utils/fsck.cramfs.c:161 disk-utils/fsck.cramfs.c:520 +#: disk-utils/fdisk-list.c:391 disk-utils/fsck.c:1471 +#: disk-utils/fsck.cramfs.c:158 disk-utils/fsck.cramfs.c:521 #: disk-utils/isosize.c:53 disk-utils/mkfs.bfs.c:186 -#: disk-utils/mkfs.cramfs.c:171 disk-utils/mkfs.cramfs.c:660 -#: disk-utils/mkfs.cramfs.c:799 disk-utils/mkfs.minix.c:838 -#: disk-utils/mkswap.c:316 disk-utils/mkswap.c:345 disk-utils/partx.c:1021 +#: disk-utils/mkfs.cramfs.c:173 disk-utils/mkfs.cramfs.c:662 +#: disk-utils/mkfs.cramfs.c:801 disk-utils/mkfs.minix.c:838 +#: disk-utils/mkswap.c:318 disk-utils/mkswap.c:347 disk-utils/partx.c:1021 #: disk-utils/resizepart.c:104 disk-utils/sfdisk.c:380 disk-utils/sfdisk.c:501 #: disk-utils/sfdisk.c:812 disk-utils/sfdisk.c:1093 disk-utils/swaplabel.c:65 #: libfdisk/src/bsd.c:642 login-utils/islocal.c:86 login-utils/last.c:694 -#: login-utils/sulogin.c:444 login-utils/sulogin.c:481 -#: login-utils/utmpdump.c:134 login-utils/utmpdump.c:354 -#: login-utils/utmpdump.c:378 login-utils/vipw.c:250 login-utils/vipw.c:268 -#: misc-utils/findmnt.c:1131 misc-utils/hardlink.c:584 misc-utils/logger.c:1241 +#: login-utils/sulogin.c:446 login-utils/sulogin.c:483 +#: login-utils/utmpdump.c:142 login-utils/utmpdump.c:362 +#: login-utils/utmpdump.c:386 login-utils/vipw.c:250 login-utils/vipw.c:268 +#: misc-utils/findmnt.c:1131 misc-utils/hardlink.c:577 misc-utils/logger.c:1235 #: misc-utils/mcookie.c:119 misc-utils/uuidd.c:231 sys-utils/blkdiscard.c:230 -#: sys-utils/blkzone.c:144 sys-utils/dmesg.c:536 sys-utils/eject.c:499 -#: sys-utils/eject.c:698 sys-utils/fallocate.c:405 sys-utils/fsfreeze.c:116 -#: sys-utils/fstrim.c:103 sys-utils/hwclock.c:239 sys-utils/hwclock.c:906 +#: sys-utils/blkzone.c:144 sys-utils/dmesg.c:536 sys-utils/eject.c:501 +#: sys-utils/eject.c:696 sys-utils/fallocate.c:405 sys-utils/fsfreeze.c:116 +#: sys-utils/fstrim.c:103 sys-utils/hwclock.c:239 sys-utils/hwclock.c:908 #: sys-utils/hwclock-rtc.c:138 sys-utils/hwclock-rtc.c:403 -#: sys-utils/hwclock-rtc.c:438 sys-utils/irq-common.c:253 -#: sys-utils/ldattach.c:391 sys-utils/lscpu-cputype.c:456 sys-utils/lsmem.c:658 +#: sys-utils/hwclock-rtc.c:439 sys-utils/irq-common.c:253 +#: sys-utils/ldattach.c:392 sys-utils/lscpu-cputype.c:468 sys-utils/lsmem.c:671 #: sys-utils/nsenter.c:131 sys-utils/rfkill.c:195 sys-utils/rtcwake.c:137 #: sys-utils/rtcwake.c:292 sys-utils/setpriv.c:256 sys-utils/setpriv.c:622 -#: sys-utils/setpriv.c:645 sys-utils/swapon.c:387 sys-utils/swapon.c:530 +#: sys-utils/setpriv.c:645 sys-utils/swapon.c:382 sys-utils/swapon.c:525 #: sys-utils/switch_root.c:174 sys-utils/unshare.c:112 sys-utils/unshare.c:127 -#: sys-utils/wdctl.c:361 sys-utils/zramctl.c:517 term-utils/agetty.c:2965 -#: term-utils/mesg.c:154 term-utils/script.c:383 term-utils/scriptlive.c:256 +#: sys-utils/wdctl.c:361 sys-utils/zramctl.c:517 term-utils/agetty.c:2972 +#: term-utils/mesg.c:154 term-utils/script.c:384 term-utils/scriptlive.c:256 #: term-utils/scriptlive.c:259 term-utils/scriptlive.c:262 #: term-utils/scriptreplay.c:281 term-utils/scriptreplay.c:284 #: term-utils/scriptreplay.c:287 term-utils/scriptreplay.c:290 @@ -101,94 +101,94 @@ msgstr "identificador invàlid" msgid "failed to add partition" msgstr "torna a llegir la taula de particions" -#: disk-utils/blockdev.c:63 +#: disk-utils/blockdev.c:64 msgid "set read-only" msgstr "estableix a només lectura" -#: disk-utils/blockdev.c:70 +#: disk-utils/blockdev.c:71 msgid "set read-write" msgstr "estableix a lectura/escriptura" -#: disk-utils/blockdev.c:76 +#: disk-utils/blockdev.c:77 msgid "get read-only" msgstr "aconsegueix només lectura" -#: disk-utils/blockdev.c:82 +#: disk-utils/blockdev.c:83 msgid "get discard zeroes support status" msgstr "" -#: disk-utils/blockdev.c:88 +#: disk-utils/blockdev.c:89 #, fuzzy msgid "get logical block (sector) size" msgstr "aconsegueix la mida del sector" -#: disk-utils/blockdev.c:94 +#: disk-utils/blockdev.c:95 #, fuzzy msgid "get physical block (sector) size" msgstr "aconsegueix la mida del sector" -#: disk-utils/blockdev.c:100 +#: disk-utils/blockdev.c:101 msgid "get minimum I/O size" msgstr "" -#: disk-utils/blockdev.c:106 +#: disk-utils/blockdev.c:107 msgid "get optimal I/O size" msgstr "" -#: disk-utils/blockdev.c:112 +#: disk-utils/blockdev.c:113 #, fuzzy msgid "get alignment offset in bytes" msgstr "mida de node d'identificació incorrecte" -#: disk-utils/blockdev.c:118 +#: disk-utils/blockdev.c:119 #, fuzzy msgid "get max sectors per request" msgstr "Sectors addicionals per cilindre" -#: disk-utils/blockdev.c:124 +#: disk-utils/blockdev.c:125 msgid "get blocksize" msgstr "aconsegueix la mida del bloc" -#: disk-utils/blockdev.c:131 +#: disk-utils/blockdev.c:132 msgid "set blocksize on file descriptor opening the block device" msgstr "" -#: disk-utils/blockdev.c:137 +#: disk-utils/blockdev.c:138 #, fuzzy msgid "get 32-bit sector count (deprecated, use --getsz)" msgstr "aconsegueix el compte de sectors de 32 bits" -#: disk-utils/blockdev.c:143 +#: disk-utils/blockdev.c:144 msgid "get size in bytes" msgstr "aconsegueix la mida en octets" -#: disk-utils/blockdev.c:150 +#: disk-utils/blockdev.c:151 msgid "set readahead" msgstr "estableix «readahead»" -#: disk-utils/blockdev.c:156 +#: disk-utils/blockdev.c:157 msgid "get readahead" msgstr "aconsegueix \"readahead\"" -#: disk-utils/blockdev.c:163 +#: disk-utils/blockdev.c:164 #, fuzzy msgid "set filesystem readahead" msgstr "estableix «readahead»" -#: disk-utils/blockdev.c:169 +#: disk-utils/blockdev.c:170 #, fuzzy msgid "get filesystem readahead" msgstr "aconsegueix \"readahead\"" -#: disk-utils/blockdev.c:173 +#: disk-utils/blockdev.c:174 msgid "flush buffers" msgstr "buida la memòria temporal" -#: disk-utils/blockdev.c:177 +#: disk-utils/blockdev.c:178 msgid "reread partition table" msgstr "torna a llegir la taula de particions" -#: disk-utils/blockdev.c:187 +#: disk-utils/blockdev.c:188 #, c-format msgid "" " %1$s [-v|-q] commands devices\n" @@ -196,595 +196,600 @@ msgid "" " %1$s -h|-V\n" msgstr "" -#: disk-utils/blockdev.c:193 +#: disk-utils/blockdev.c:194 msgid "Call block device ioctls from the command line." msgstr "" -#: disk-utils/blockdev.c:196 +#: disk-utils/blockdev.c:197 #, fuzzy msgid " -q quiet mode" msgstr " -q [o --quiet]: Suprimeix els avisos" -#: disk-utils/blockdev.c:197 +#: disk-utils/blockdev.c:198 #, fuzzy msgid " -v verbose mode" msgstr " -V, --version Mostra la informació de la versió\n" -#: disk-utils/blockdev.c:198 +#: disk-utils/blockdev.c:199 msgid " --report print report for specified (or all) devices" msgstr "" -#: disk-utils/blockdev.c:203 +#: disk-utils/blockdev.c:204 #, fuzzy msgid "Available commands:" msgstr "Ordres disponibles:\n" -#: disk-utils/blockdev.c:204 +#: disk-utils/blockdev.c:205 #, fuzzy, c-format msgid " %-25s get size in 512-byte sectors\n" msgstr "aconsegueix la mida en octets" -#: disk-utils/blockdev.c:286 disk-utils/fdformat.c:219 +#: disk-utils/blockdev.c:287 disk-utils/fdformat.c:219 #: disk-utils/fsck.minix.c:1336 disk-utils/isosize.c:155 #: disk-utils/mkfs.bfs.c:175 disk-utils/mkfs.c:110 disk-utils/mkfs.minix.c:827 -#: disk-utils/swaplabel.c:180 misc-utils/wipefs.c:779 +#: disk-utils/swaplabel.c:180 misc-utils/wipefs.c:782 #: sys-utils/blkdiscard.c:219 sys-utils/blkzone.c:487 sys-utils/tunelp.c:241 #: sys-utils/zramctl.c:713 sys-utils/zramctl.c:739 #, fuzzy msgid "no device specified" msgstr "mount: el dispositiu loop està especificat dues vegades" -#: disk-utils/blockdev.c:328 +#: disk-utils/blockdev.c:329 #, fuzzy msgid "could not get device size" msgstr "No s'ha pogut obtenir la mida del disc" -#: disk-utils/blockdev.c:334 +#: disk-utils/blockdev.c:335 #, fuzzy, c-format msgid "Unknown command: %s" msgstr "%s: Ordre desconeguda: %s\n" -#: disk-utils/blockdev.c:350 +#: disk-utils/blockdev.c:351 #, fuzzy, c-format msgid "%s requires an argument" msgstr "%s requereix un argument\n" -#: disk-utils/blockdev.c:385 disk-utils/blockdev.c:497 +#: disk-utils/blockdev.c:355 +#, fuzzy +msgid "failed to parse command argument" +msgstr "%s: s'ha produït un error en obrir: %s\n" + +#: disk-utils/blockdev.c:386 disk-utils/blockdev.c:498 #, fuzzy, c-format msgid "ioctl error on %s" msgstr "%s: s'ha produït un error d'ioctl en %s\n" -#: disk-utils/blockdev.c:387 +#: disk-utils/blockdev.c:388 #, fuzzy, c-format msgid "%s failed.\n" msgstr "la cerca ha fallat" -#: disk-utils/blockdev.c:394 +#: disk-utils/blockdev.c:395 #, c-format msgid "%s succeeded.\n" msgstr "%s s'ha completat amb èxit.\n" -#. TRANSLATORS: Start sector not available. Max. 10 letters. -#: disk-utils/blockdev.c:481 +#. TRANSLATORS: Start sector not available. Max. 15 letters. +#: disk-utils/blockdev.c:482 msgid "N/A" msgstr "" -#: disk-utils/blockdev.c:505 +#: disk-utils/blockdev.c:506 #, fuzzy, c-format -msgid "RO RA SSZ BSZ StartSec Size Device\n" +msgid "RO RA SSZ BSZ StartSec Size Device\n" msgstr "RO RA SSZ BSZ SectInici Mida Dispositiu\n" -#: disk-utils/cfdisk.c:191 +#: disk-utils/cfdisk.c:196 msgid "Bootable" msgstr "Arrencable" -#: disk-utils/cfdisk.c:191 +#: disk-utils/cfdisk.c:196 msgid "Toggle bootable flag of the current partition" msgstr "Commuta el senyalador d'arrencada de la partició actual" -#: disk-utils/cfdisk.c:192 +#: disk-utils/cfdisk.c:197 msgid "Delete" msgstr "Suprimeix" -#: disk-utils/cfdisk.c:192 +#: disk-utils/cfdisk.c:197 msgid "Delete the current partition" msgstr "Suprimeix la partició actual" -#: disk-utils/cfdisk.c:193 +#: disk-utils/cfdisk.c:198 #, fuzzy msgid "Resize" msgstr "Mida màxima=%ld\n" -#: disk-utils/cfdisk.c:193 +#: disk-utils/cfdisk.c:198 #, fuzzy msgid "Reduce or enlarge the current partition" msgstr "Suprimeix la partició actual" -#: disk-utils/cfdisk.c:194 +#: disk-utils/cfdisk.c:199 msgid "New" msgstr "Nova" -#: disk-utils/cfdisk.c:194 +#: disk-utils/cfdisk.c:199 msgid "Create new partition from free space" msgstr "Crea una nova partició des de l'espai lliure" -#: disk-utils/cfdisk.c:195 +#: disk-utils/cfdisk.c:200 msgid "Quit" msgstr "Surt" -#: disk-utils/cfdisk.c:195 +#: disk-utils/cfdisk.c:200 #, fuzzy msgid "Quit program without writing changes" msgstr "Surt del programa sense escriure la taula de particions" -#: disk-utils/cfdisk.c:196 libfdisk/src/bsd.c:439 libfdisk/src/bsd.c:1031 -#: libfdisk/src/dos.c:2616 libfdisk/src/gpt.c:3194 libfdisk/src/sgi.c:1164 +#: disk-utils/cfdisk.c:201 libfdisk/src/bsd.c:439 libfdisk/src/bsd.c:1031 +#: libfdisk/src/dos.c:2616 libfdisk/src/gpt.c:3193 libfdisk/src/sgi.c:1165 #: libfdisk/src/sun.c:1136 msgid "Type" msgstr "Tipus" -#: disk-utils/cfdisk.c:196 +#: disk-utils/cfdisk.c:201 #, fuzzy msgid "Change the partition type" msgstr " t canvia l'identificador del sistema d'una partició" -#: disk-utils/cfdisk.c:197 +#: disk-utils/cfdisk.c:202 msgid "Help" msgstr "Ajuda" -#: disk-utils/cfdisk.c:197 +#: disk-utils/cfdisk.c:202 msgid "Print help screen" msgstr "Mostra la pantalla d'ajuda" -#: disk-utils/cfdisk.c:198 +#: disk-utils/cfdisk.c:203 msgid "Sort" msgstr "" -#: disk-utils/cfdisk.c:198 +#: disk-utils/cfdisk.c:203 #, fuzzy msgid "Fix partitions order" msgstr " f arregla l'ordre de les particions" -#: disk-utils/cfdisk.c:199 +#: disk-utils/cfdisk.c:204 msgid "Write" msgstr "Escriu" -#: disk-utils/cfdisk.c:199 +#: disk-utils/cfdisk.c:204 msgid "Write partition table to disk (this might destroy data)" msgstr "Escriu la taula de particions al disc (això pot destruir les dades)" -#: disk-utils/cfdisk.c:200 +#: disk-utils/cfdisk.c:205 msgid "Dump" msgstr "" -#: disk-utils/cfdisk.c:200 +#: disk-utils/cfdisk.c:205 #, fuzzy msgid "Dump partition table to sfdisk compatible script file" msgstr "Imprimeix la taula de particions a la pantalla o en un fitxer" -#: disk-utils/cfdisk.c:645 disk-utils/fdisk.c:465 +#: disk-utils/cfdisk.c:650 disk-utils/fdisk.c:465 #, c-format msgid "internal error: unsupported dialog type %d" msgstr "" -#: disk-utils/cfdisk.c:1301 +#: disk-utils/cfdisk.c:1316 #, fuzzy, c-format msgid "%s (mounted)" msgstr "umount: %s: no s'ha trobat" -#: disk-utils/cfdisk.c:1321 +#: disk-utils/cfdisk.c:1364 #, fuzzy msgid "Partition name:" msgstr "Nombre de partició" -#: disk-utils/cfdisk.c:1328 +#: disk-utils/cfdisk.c:1371 #, fuzzy msgid "Partition UUID:" msgstr "" "\n" "%d particions:\n" -#: disk-utils/cfdisk.c:1340 +#: disk-utils/cfdisk.c:1390 #, fuzzy msgid "Partition type:" msgstr "Nombre de partició" -#: disk-utils/cfdisk.c:1347 +#: disk-utils/cfdisk.c:1397 msgid "Attributes:" msgstr "" -#: disk-utils/cfdisk.c:1371 +#: disk-utils/cfdisk.c:1421 #, fuzzy msgid "Filesystem UUID:" msgstr "Introduïu el tipus del sistema de fitxers: " -#: disk-utils/cfdisk.c:1378 +#: disk-utils/cfdisk.c:1428 #, fuzzy msgid "Filesystem LABEL:" msgstr "Introduïu el tipus del sistema de fitxers: " -#: disk-utils/cfdisk.c:1384 +#: disk-utils/cfdisk.c:1434 #, fuzzy msgid "Filesystem:" msgstr "Introduïu el tipus del sistema de fitxers: " -#: disk-utils/cfdisk.c:1389 +#: disk-utils/cfdisk.c:1439 #, fuzzy msgid "Mountpoint:" msgstr "%s està muntat.\t " -#: disk-utils/cfdisk.c:1733 +#: disk-utils/cfdisk.c:1783 #, fuzzy, c-format msgid "Disk: %s" msgstr "disc: %.*s\n" -#: disk-utils/cfdisk.c:1735 +#: disk-utils/cfdisk.c:1785 #, fuzzy, c-format msgid "Size: %s, % bytes, %ju sectors" msgstr "" "\n" "Disc %s: %lu cilindres, %lu capçals, %lu sectors/pista\n" -#: disk-utils/cfdisk.c:1738 +#: disk-utils/cfdisk.c:1788 #, fuzzy, c-format msgid "Label: %s, identifier: %s" msgstr "Unitat de disc: %s" -#: disk-utils/cfdisk.c:1741 +#: disk-utils/cfdisk.c:1791 #, fuzzy, c-format msgid "Label: %s" msgstr "etiqueta: %.*s\n" -#: disk-utils/cfdisk.c:1892 +#: disk-utils/cfdisk.c:1942 msgid "May be followed by M for MiB, G for GiB, T for TiB, or S for sectors." msgstr "" -#: disk-utils/cfdisk.c:1898 +#: disk-utils/cfdisk.c:1948 #, fuzzy msgid "Please, specify size." msgstr "No s'ha especificat l'opció --date.\n" -#: disk-utils/cfdisk.c:1920 +#: disk-utils/cfdisk.c:1970 #, fuzzy, c-format msgid "Minimum size is % bytes." msgstr "aconsegueix la mida en octets" -#: disk-utils/cfdisk.c:1929 +#: disk-utils/cfdisk.c:1979 #, fuzzy, c-format msgid "Maximum size is % bytes." msgstr "aconsegueix la mida en octets" -#: disk-utils/cfdisk.c:1936 +#: disk-utils/cfdisk.c:1986 #, fuzzy msgid "Failed to parse size." msgstr "%s: s'ha produït un error en obrir: %s\n" -#: disk-utils/cfdisk.c:1994 +#: disk-utils/cfdisk.c:2044 #, fuzzy msgid "Select partition type" msgstr "S'ha seleccionat la partició %d\n" -#: disk-utils/cfdisk.c:2044 disk-utils/cfdisk.c:2074 +#: disk-utils/cfdisk.c:2094 disk-utils/cfdisk.c:2124 #, fuzzy msgid "Enter script file name: " msgstr "%s: no s'ha pogut trobar el dispositiu per a %s\n" -#: disk-utils/cfdisk.c:2045 +#: disk-utils/cfdisk.c:2095 #, fuzzy msgid "The script file will be applied to in-memory partition table." msgstr "No podreu escriure la taula de particions.\n" -#: disk-utils/cfdisk.c:2054 disk-utils/cfdisk.c:2096 +#: disk-utils/cfdisk.c:2104 disk-utils/cfdisk.c:2146 #: disk-utils/fdisk-menu.c:481 disk-utils/fdisk-menu.c:525 #, fuzzy, c-format msgid "Cannot open %s" msgstr "No es pot obrir %s\n" -#: disk-utils/cfdisk.c:2056 disk-utils/fdisk-menu.c:483 +#: disk-utils/cfdisk.c:2106 disk-utils/fdisk-menu.c:483 #, fuzzy, c-format msgid "Failed to parse script file %s" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" -#: disk-utils/cfdisk.c:2058 disk-utils/fdisk-menu.c:485 +#: disk-utils/cfdisk.c:2108 disk-utils/fdisk-menu.c:485 #, fuzzy, c-format msgid "Failed to apply script %s" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" -#: disk-utils/cfdisk.c:2075 +#: disk-utils/cfdisk.c:2125 msgid "The current in-memory partition table will be dumped to the file." msgstr "" -#: disk-utils/cfdisk.c:2083 disk-utils/fdisk-menu.c:513 +#: disk-utils/cfdisk.c:2133 disk-utils/fdisk-menu.c:513 #, fuzzy msgid "Failed to allocate script handler" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: disk-utils/cfdisk.c:2089 +#: disk-utils/cfdisk.c:2139 #, fuzzy msgid "Failed to read disk layout into script." msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: disk-utils/cfdisk.c:2103 +#: disk-utils/cfdisk.c:2153 msgid "Disk layout successfully dumped." msgstr "" -#: disk-utils/cfdisk.c:2106 disk-utils/fdisk-menu.c:531 +#: disk-utils/cfdisk.c:2156 disk-utils/fdisk-menu.c:531 #, fuzzy, c-format msgid "Failed to write script %s" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" -#: disk-utils/cfdisk.c:2142 +#: disk-utils/cfdisk.c:2192 #, fuzzy msgid "Select label type" msgstr "Tipus no permès\n" -#: disk-utils/cfdisk.c:2145 disk-utils/fdisk.c:1162 disk-utils/fdisk-menu.c:489 +#: disk-utils/cfdisk.c:2195 disk-utils/fdisk.c:1162 disk-utils/fdisk-menu.c:489 #, fuzzy msgid "Device does not contain a recognized partition table." msgstr "El disc %s no conté una taula de particions vàlida\n" -#: disk-utils/cfdisk.c:2153 +#: disk-utils/cfdisk.c:2203 msgid "Select a type to create a new label, press 'L' to load script file, 'Q' quits." msgstr "" -#: disk-utils/cfdisk.c:2202 +#: disk-utils/cfdisk.c:2252 #, fuzzy msgid "This is cfdisk, a curses-based disk partitioning program." msgstr "Això és el cfdisk, un programa per a la partició de discs basat en" -#: disk-utils/cfdisk.c:2203 +#: disk-utils/cfdisk.c:2253 #, fuzzy msgid "It lets you create, delete, and modify partitions on a block device." msgstr "curses, que us permet crear, suprimir i modificar particions del" -#: disk-utils/cfdisk.c:2205 +#: disk-utils/cfdisk.c:2255 msgid "Command Meaning" msgstr "Ordre Significat" -#: disk-utils/cfdisk.c:2206 +#: disk-utils/cfdisk.c:2256 msgid "------- -------" msgstr "----- ----------" -#: disk-utils/cfdisk.c:2207 +#: disk-utils/cfdisk.c:2257 msgid " b Toggle bootable flag of the current partition" msgstr " b Fixa el senyalador d'arrencada a la partició actual" -#: disk-utils/cfdisk.c:2208 +#: disk-utils/cfdisk.c:2258 msgid " d Delete the current partition" msgstr " d Suprimeix l'actual partició" -#: disk-utils/cfdisk.c:2209 +#: disk-utils/cfdisk.c:2259 msgid " h Print this screen" msgstr " h Imprimeix aquesta pantalla" -#: disk-utils/cfdisk.c:2210 +#: disk-utils/cfdisk.c:2260 msgid " n Create new partition from free space" msgstr " n Crea una nova partició des de l'espai lliure" -#: disk-utils/cfdisk.c:2211 +#: disk-utils/cfdisk.c:2261 msgid " q Quit program without writing partition table" msgstr " q Surt del programa sense escriure la taula de particions" -#: disk-utils/cfdisk.c:2212 +#: disk-utils/cfdisk.c:2262 #, fuzzy msgid " r Reduce or enlarge the current partition" msgstr "Suprimeix la partició actual" -#: disk-utils/cfdisk.c:2213 +#: disk-utils/cfdisk.c:2263 #, fuzzy msgid " s Fix partitions order (only when in disarray)" msgstr " paràmetres\n" -#: disk-utils/cfdisk.c:2214 +#: disk-utils/cfdisk.c:2264 #, fuzzy msgid " t Change the partition type" msgstr " t Canvia el tipus del sistema de fitxers" -#: disk-utils/cfdisk.c:2215 +#: disk-utils/cfdisk.c:2265 msgid " u Dump disk layout to sfdisk compatible script file" msgstr "" -#: disk-utils/cfdisk.c:2216 +#: disk-utils/cfdisk.c:2266 #, fuzzy msgid " W Write partition table to disk (you must enter uppercase W);" msgstr " W Escriu la taula de particions al disc (W en majúscula)" -#: disk-utils/cfdisk.c:2217 +#: disk-utils/cfdisk.c:2267 #, fuzzy msgid " since this might destroy data on the disk, you must either" msgstr " Com que això destruirà les dades del disc, ho haureu" -#: disk-utils/cfdisk.c:2218 +#: disk-utils/cfdisk.c:2268 #, fuzzy msgid " confirm or deny the write by entering 'yes' or 'no'" msgstr " de confirmar o denegar escrivint «sí» o" -#: disk-utils/cfdisk.c:2219 +#: disk-utils/cfdisk.c:2269 #, fuzzy msgid " x Display/hide extra information about a partition" msgstr " -V, --version Mostra la informació de la versió\n" -#: disk-utils/cfdisk.c:2220 +#: disk-utils/cfdisk.c:2270 msgid "Up Arrow Move cursor to the previous partition" msgstr "Fletxa amunt Desplaça el cursor a l'anterior partició" -#: disk-utils/cfdisk.c:2221 +#: disk-utils/cfdisk.c:2271 msgid "Down Arrow Move cursor to the next partition" msgstr "Fletxa avall Desplaça el cursor a la següent partició" -#: disk-utils/cfdisk.c:2222 +#: disk-utils/cfdisk.c:2272 #, fuzzy msgid "Left Arrow Move cursor to the previous menu item" msgstr "Fletxa amunt Desplaça el cursor a l'anterior partició" -#: disk-utils/cfdisk.c:2223 +#: disk-utils/cfdisk.c:2273 #, fuzzy msgid "Right Arrow Move cursor to the next menu item" msgstr "Fletxa avall Desplaça el cursor a la següent partició" -#: disk-utils/cfdisk.c:2225 +#: disk-utils/cfdisk.c:2275 msgid "Note: All of the commands can be entered with either upper or lower" msgstr "Nota: Totes les ordres es poden escriure en majúscules o" -#: disk-utils/cfdisk.c:2226 +#: disk-utils/cfdisk.c:2276 #, fuzzy msgid "case letters (except for Write)." msgstr "minúscules (excepte W per a escriure)." -#: disk-utils/cfdisk.c:2228 +#: disk-utils/cfdisk.c:2278 msgid "Use lsblk(8) or partx(8) to see more details about the device." msgstr "" -#: disk-utils/cfdisk.c:2238 disk-utils/cfdisk.c:2541 +#: disk-utils/cfdisk.c:2288 disk-utils/cfdisk.c:2591 #, fuzzy msgid "Press a key to continue." msgstr "Premeu una tecla per a continuar" -#: disk-utils/cfdisk.c:2324 +#: disk-utils/cfdisk.c:2374 #, fuzzy msgid "Could not toggle the flag." msgstr "No s'ha pogut obrir %s\n" -#: disk-utils/cfdisk.c:2334 +#: disk-utils/cfdisk.c:2384 #, fuzzy, c-format msgid "Could not delete partition %zu." msgstr "S'ha seleccionat la partició %d\n" -#: disk-utils/cfdisk.c:2336 disk-utils/fdisk-menu.c:662 +#: disk-utils/cfdisk.c:2386 disk-utils/fdisk-menu.c:658 #, fuzzy, c-format msgid "Partition %zu has been deleted." msgstr "La partició %d no té cap àrea de dades\n" -#: disk-utils/cfdisk.c:2357 +#: disk-utils/cfdisk.c:2407 #, fuzzy msgid "Partition size: " msgstr "" "\n" "%d particions:\n" -#: disk-utils/cfdisk.c:2398 +#: disk-utils/cfdisk.c:2448 #, fuzzy, c-format msgid "Changed type of partition %zu." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: disk-utils/cfdisk.c:2400 +#: disk-utils/cfdisk.c:2450 #, fuzzy, c-format msgid "The type of partition %zu is unchanged." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: disk-utils/cfdisk.c:2421 +#: disk-utils/cfdisk.c:2471 #, fuzzy msgid "New size: " msgstr "Nou intèrpret d'ordres" -#: disk-utils/cfdisk.c:2436 +#: disk-utils/cfdisk.c:2486 #, fuzzy, c-format msgid "Partition %zu resized." msgstr "No hi han particions definides\n" -#: disk-utils/cfdisk.c:2454 disk-utils/fdisk.c:1138 disk-utils/fdisk-menu.c:592 +#: disk-utils/cfdisk.c:2504 disk-utils/fdisk.c:1138 disk-utils/fdisk-menu.c:592 msgid "Device is open in read-only mode." msgstr "" -#: disk-utils/cfdisk.c:2459 +#: disk-utils/cfdisk.c:2509 #, fuzzy msgid "Are you sure you want to write the partition table to disk? " msgstr "Esteu segur que voleu escriure la taula de particions al disc? (sí o no): " -#: disk-utils/cfdisk.c:2461 +#: disk-utils/cfdisk.c:2511 msgid "Type \"yes\" or \"no\", or press ESC to leave this dialog." msgstr "" # FIXME: és possible que no es puga introduir l'accent. jm -#: disk-utils/cfdisk.c:2466 login-utils/lslogins.c:218 sys-utils/lscpu.c:412 +#: disk-utils/cfdisk.c:2516 login-utils/lslogins.c:218 sys-utils/lscpu.c:412 #: sys-utils/lscpu.c:422 sys-utils/lsmem.c:266 msgid "yes" msgstr "sí" -#: disk-utils/cfdisk.c:2467 +#: disk-utils/cfdisk.c:2517 #, fuzzy msgid "Did not write partition table to disk." msgstr "No s'ha escrit la taula de particions al disc" -#: disk-utils/cfdisk.c:2472 +#: disk-utils/cfdisk.c:2522 #, fuzzy msgid "Failed to write disklabel." msgstr "s'ha produït un error en cercar a write_tables" -#: disk-utils/cfdisk.c:2478 disk-utils/fdisk-menu.c:599 +#: disk-utils/cfdisk.c:2528 disk-utils/fdisk-menu.c:599 #, fuzzy msgid "The partition table has been altered." msgstr "" "S'ha modificat la taula de particions.\n" "\n" -#: disk-utils/cfdisk.c:2501 disk-utils/cfdisk.c:2576 +#: disk-utils/cfdisk.c:2551 disk-utils/cfdisk.c:2626 #, fuzzy msgid "Note that partition table entries are not in disk order now." msgstr "" "\n" "Les entrades a la taula de particions no estan en l'ordre del disc\n" -#: disk-utils/cfdisk.c:2538 +#: disk-utils/cfdisk.c:2588 #, c-format msgid "Device already contains a %s signature; it will be removed by a write command." msgstr "" -#: disk-utils/cfdisk.c:2550 +#: disk-utils/cfdisk.c:2600 #, fuzzy msgid "failed to create a new disklabel" msgstr "s'ha produït un error en cercar a write_tables" -#: disk-utils/cfdisk.c:2559 +#: disk-utils/cfdisk.c:2609 #, fuzzy msgid "failed to read partitions" msgstr "torna a llegir la taula de particions" -#: disk-utils/cfdisk.c:2572 +#: disk-utils/cfdisk.c:2622 msgid "Device is open in read-only mode. Changes will remain in memory only." msgstr "" -#: disk-utils/cfdisk.c:2574 +#: disk-utils/cfdisk.c:2624 msgid "Device is currently in use, repartitioning is probably a bad idea." msgstr "" -#: disk-utils/cfdisk.c:2660 +#: disk-utils/cfdisk.c:2710 #, fuzzy, c-format msgid " %1$s [options] \n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: disk-utils/cfdisk.c:2663 disk-utils/fdisk.c:855 disk-utils/sfdisk.c:2018 +#: disk-utils/cfdisk.c:2713 disk-utils/fdisk.c:855 disk-utils/sfdisk.c:2018 #, fuzzy msgid "Display or manipulate a disk partition table.\n" msgstr "torna a llegir la taula de particions" -#: disk-utils/cfdisk.c:2667 +#: disk-utils/cfdisk.c:2717 #, fuzzy, c-format msgid " -L, --color[=] colorize output (%s, %s or %s)\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: disk-utils/cfdisk.c:2670 +#: disk-utils/cfdisk.c:2720 #, fuzzy msgid " -z, --zero start with zeroed partition table\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: disk-utils/cfdisk.c:2672 +#: disk-utils/cfdisk.c:2722 #, fuzzy, c-format msgid " --lock[=] use exclusive device lock (%s, %s or %s)\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: disk-utils/cfdisk.c:2673 +#: disk-utils/cfdisk.c:2723 #, fuzzy msgid " -r, --read-only forced open cfdisk in read-only mode\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: disk-utils/cfdisk.c:2716 disk-utils/fdisk.c:1014 disk-utils/sfdisk.c:2319 +#: disk-utils/cfdisk.c:2766 disk-utils/fdisk.c:1014 disk-utils/sfdisk.c:2319 #: misc-utils/cal.c:426 sys-utils/dmesg.c:1453 text-utils/hexdump.c:121 #, fuzzy msgid "unsupported color mode" msgstr "cap ordre?\n" -#: disk-utils/cfdisk.c:2746 disk-utils/fdisk.c:949 disk-utils/sfdisk.c:231 +#: disk-utils/cfdisk.c:2796 disk-utils/fdisk.c:949 disk-utils/sfdisk.c:231 #, fuzzy msgid "failed to allocate libfdisk context" msgstr "No s'ha pogut assignar la memòria temporal.\n" @@ -837,7 +842,7 @@ msgstr "" "S'està continuant... " #: disk-utils/fdformat.c:146 disk-utils/fsck.minix.c:183 -#: disk-utils/swaplabel.c:123 misc-utils/wipefs.c:648 sys-utils/blkdiscard.c:89 +#: disk-utils/swaplabel.c:123 misc-utils/wipefs.c:651 sys-utils/blkdiscard.c:89 #: sys-utils/tunelp.c:95 #, fuzzy, c-format msgid " %s [options] \n" @@ -880,15 +885,15 @@ msgstr "id invàlid : %s\n" msgid "invalid argument - repair" msgstr "id invàlid : %s\n" -#: disk-utils/fdformat.c:223 disk-utils/fsck.cramfs.c:157 -#: disk-utils/mkfs.bfs.c:182 disk-utils/mkfs.cramfs.c:337 -#: disk-utils/mkfs.cramfs.c:758 disk-utils/mkfs.cramfs.c:796 -#: disk-utils/mkfs.minix.c:835 disk-utils/mkswap.c:342 disk-utils/partx.c:959 -#: login-utils/last.c:708 login-utils/utmpdump.c:137 misc-utils/namei.c:135 -#: misc-utils/rename.c:120 misc-utils/rename.c:182 sys-utils/blkdiscard.c:233 +#: disk-utils/fdformat.c:223 disk-utils/fsck.cramfs.c:162 +#: disk-utils/mkfs.bfs.c:182 disk-utils/mkfs.cramfs.c:339 +#: disk-utils/mkfs.cramfs.c:760 disk-utils/mkfs.cramfs.c:798 +#: disk-utils/mkfs.minix.c:835 disk-utils/mkswap.c:344 disk-utils/partx.c:959 +#: login-utils/last.c:708 login-utils/utmpdump.c:145 misc-utils/namei.c:135 +#: misc-utils/rename.c:121 misc-utils/rename.c:186 sys-utils/blkdiscard.c:233 #: sys-utils/blkzone.c:147 sys-utils/dmesg.c:538 sys-utils/fallocate.c:201 #: sys-utils/fsfreeze.c:119 sys-utils/fstrim.c:75 sys-utils/nsenter.c:166 -#: sys-utils/nsenter.c:170 sys-utils/swapon.c:535 sys-utils/switch_root.c:93 +#: sys-utils/nsenter.c:170 sys-utils/swapon.c:530 sys-utils/switch_root.c:93 #: sys-utils/switch_root.c:134 sys-utils/switch_root.c:139 #: term-utils/mesg.c:144 term-utils/mesg.c:156 #, fuzzy, c-format @@ -932,7 +937,7 @@ msgstr "" msgid "user defined start track exceeds the user defined end track" msgstr "" -#: disk-utils/fdformat.c:253 misc-utils/logger.c:1045 +#: disk-utils/fdformat.c:253 misc-utils/logger.c:1039 #, fuzzy msgid "close failed" msgstr "la cerca ha fallat" @@ -948,7 +953,7 @@ msgid "Using default response %c." msgstr "S'està utilitzant el valor per defecte %u\n" #: disk-utils/fdisk.c:224 disk-utils/fdisk.c:298 disk-utils/fdisk.c:375 -#: libfdisk/src/dos.c:1382 libfdisk/src/gpt.c:2518 +#: libfdisk/src/dos.c:1377 libfdisk/src/gpt.c:2519 #, fuzzy msgid "Value out of range." msgstr "El valor està fora del rang.\n" @@ -1065,8 +1070,8 @@ msgid "cannot read" msgstr "%s: no s'ha pogut llegir %s.\n" # Parla d'etiquetes, segurament és femení -#: disk-utils/fdisk.c:788 libfdisk/src/bsd.c:258 libfdisk/src/dos.c:968 -#: libfdisk/src/gpt.c:2446 +#: disk-utils/fdisk.c:788 libfdisk/src/bsd.c:258 libfdisk/src/dos.c:962 +#: libfdisk/src/gpt.c:2447 #, fuzzy msgid "First sector" msgstr "Primera %s" @@ -1231,21 +1236,21 @@ msgstr "cap ordre?\n" msgid "The device properties (sector size and geometry) should be used with one specified device only." msgstr "Avís: l'opció -b (estableix la mida del sector) s'ha d'usar amb un dispositiu específic\n" -#: disk-utils/fdisk.c:1107 disk-utils/fdisk.c:1122 disk-utils/fsck.cramfs.c:702 -#: disk-utils/mkfs.bfs.c:192 disk-utils/mkfs.cramfs.c:786 +#: disk-utils/fdisk.c:1107 disk-utils/fdisk.c:1122 disk-utils/fsck.cramfs.c:703 +#: disk-utils/mkfs.bfs.c:192 disk-utils/mkfs.cramfs.c:788 #: disk-utils/partx.c:975 disk-utils/raw.c:136 disk-utils/raw.c:149 #: disk-utils/raw.c:161 disk-utils/raw.c:202 misc-utils/cal.c:524 #: misc-utils/findfs.c:58 misc-utils/look.c:149 misc-utils/whereis.c:580 #: misc-utils/whereis.c:591 misc-utils/whereis.c:602 misc-utils/whereis.c:644 #: schedutils/chrt.c:443 schedutils/ionice.c:262 schedutils/taskset.c:188 -#: sys-utils/chcpu.c:355 sys-utils/chmem.c:422 sys-utils/dmesg.c:1536 -#: sys-utils/ipcmk.c:138 sys-utils/ldattach.c:320 sys-utils/losetup.c:917 -#: sys-utils/lscpu.c:1294 sys-utils/lsmem.c:643 sys-utils/mount.c:833 -#: sys-utils/mount.c:841 sys-utils/mount.c:888 sys-utils/mount.c:901 -#: sys-utils/mount.c:973 sys-utils/mountpoint.c:191 sys-utils/pivot_root.c:71 -#: sys-utils/swapoff.c:258 sys-utils/swapon.c:1005 sys-utils/switch_root.c:270 -#: sys-utils/umount.c:625 term-utils/setterm.c:1197 text-utils/col.c:584 -#: text-utils/more.c:2063 +#: sys-utils/chcpu.c:355 sys-utils/chmem.c:429 sys-utils/dmesg.c:1536 +#: sys-utils/ipcmk.c:143 sys-utils/ldattach.c:321 sys-utils/losetup.c:917 +#: sys-utils/lscpu.c:1294 sys-utils/lsmem.c:656 sys-utils/mount.c:828 +#: sys-utils/mount.c:836 sys-utils/mount.c:883 sys-utils/mount.c:896 +#: sys-utils/mount.c:968 sys-utils/mountpoint.c:191 sys-utils/pivot_root.c:71 +#: sys-utils/swapoff.c:258 sys-utils/swapon.c:1006 sys-utils/switch_root.c:270 +#: sys-utils/umount.c:620 term-utils/setterm.c:1197 text-utils/col.c:584 +#: text-utils/more.c:2066 #, fuzzy msgid "bad usage" msgstr "valor d'expiració erroni: %s" @@ -1307,7 +1312,7 @@ msgstr "disc: %.*s\n" #: disk-utils/fdisk-list.c:71 #, fuzzy, c-format -msgid "Geometry: %d heads, %llu sectors/track, %llu cylinders" +msgid "Geometry: %d heads, %ju sectors/track, %ju cylinders" msgstr "%d capçals, %d sectors/pista, %d cilindres" #: disk-utils/fdisk-list.c:76 disk-utils/fdisk-list.c:299 @@ -1333,14 +1338,14 @@ msgid "Alignment offset: %lu bytes" msgstr "mida de node d'identificació incorrecte" #: disk-utils/fdisk-list.c:120 disk-utils/fdisk-list.c:241 -#: disk-utils/fsck.c:1257 +#: disk-utils/fsck.c:1258 #, fuzzy msgid "failed to allocate iterator" msgstr "No s'ha pogut assignar la memòria temporal.\n" #: disk-utils/fdisk-list.c:126 disk-utils/fdisk-list.c:247 -#: disk-utils/partx.c:669 login-utils/lslogins.c:1067 misc-utils/fincore.c:356 -#: misc-utils/findmnt.c:1662 misc-utils/lsblk.c:2170 misc-utils/lslocks.c:456 +#: disk-utils/partx.c:669 login-utils/lslogins.c:1070 misc-utils/fincore.c:356 +#: misc-utils/findmnt.c:1662 misc-utils/lsblk.c:2170 misc-utils/lslocks.c:458 #: misc-utils/uuidparse.c:252 misc-utils/wipefs.c:157 sys-utils/losetup.c:325 #: sys-utils/lscpu.c:577 sys-utils/lscpu.c:727 sys-utils/lscpu.c:928 #: sys-utils/lsipc.c:351 sys-utils/prlimit.c:300 sys-utils/rfkill.c:465 @@ -1351,9 +1356,9 @@ msgid "failed to allocate output table" msgstr "No s'ha pogut assignar la memòria temporal.\n" #: disk-utils/fdisk-list.c:167 disk-utils/fdisk-list.c:271 -#: disk-utils/partx.c:583 login-utils/lslogins.c:1125 misc-utils/fincore.c:123 +#: disk-utils/partx.c:583 login-utils/lslogins.c:1128 misc-utils/fincore.c:123 #: misc-utils/findmnt.c:705 misc-utils/findmnt.c:723 misc-utils/lsblk.c:1116 -#: misc-utils/lslocks.c:393 misc-utils/uuidparse.c:154 misc-utils/wipefs.c:224 +#: misc-utils/lslocks.c:395 misc-utils/uuidparse.c:154 misc-utils/wipefs.c:224 #: sys-utils/losetup.c:348 sys-utils/losetup.c:377 sys-utils/lscpu.c:491 #: sys-utils/lscpu.c:756 sys-utils/lscpu.c:788 sys-utils/lsipc.c:481 #: sys-utils/lsipc.c:562 sys-utils/lsipc.c:664 sys-utils/lsipc.c:756 @@ -1365,9 +1370,9 @@ msgid "failed to allocate output line" msgstr "No s'ha pogut assignar la memòria temporal.\n" #: disk-utils/fdisk-list.c:177 disk-utils/fdisk-list.c:278 -#: disk-utils/partx.c:646 login-utils/lslogins.c:1229 misc-utils/fincore.c:159 +#: disk-utils/partx.c:646 login-utils/lslogins.c:1232 misc-utils/fincore.c:159 #: misc-utils/findmnt.c:709 misc-utils/findmnt.c:728 misc-utils/lsblk.c:1157 -#: misc-utils/lslocks.c:443 misc-utils/uuidparse.c:239 misc-utils/wipefs.c:264 +#: misc-utils/lslocks.c:445 misc-utils/uuidparse.c:239 misc-utils/wipefs.c:264 #: sys-utils/losetup.c:305 sys-utils/lscpu.c:559 sys-utils/lscpu.c:763 #: sys-utils/lscpu.c:792 sys-utils/lscpu.c:802 sys-utils/lsipc.c:521 #: sys-utils/lsipc.c:646 sys-utils/prlimit.c:264 sys-utils/rfkill.c:408 @@ -1395,23 +1400,23 @@ msgstr "" "Les entrades a la taula de particions no estan en l'ordre del disc\n" #: disk-utils/fdisk-list.c:233 libfdisk/src/bsd.c:1026 libfdisk/src/dos.c:2610 -#: libfdisk/src/gpt.c:3190 libfdisk/src/sgi.c:1158 libfdisk/src/sun.c:1130 +#: libfdisk/src/gpt.c:3189 libfdisk/src/sgi.c:1159 libfdisk/src/sun.c:1130 #, fuzzy msgid "Start" msgstr "inici" #: disk-utils/fdisk-list.c:233 libfdisk/src/bsd.c:1027 libfdisk/src/dos.c:2611 -#: libfdisk/src/gpt.c:3191 libfdisk/src/sgi.c:1159 libfdisk/src/sun.c:1131 +#: libfdisk/src/gpt.c:3190 libfdisk/src/sgi.c:1160 libfdisk/src/sun.c:1131 msgid "End" msgstr "Final" #: disk-utils/fdisk-list.c:233 libfdisk/src/bsd.c:1028 libfdisk/src/dos.c:2612 -#: libfdisk/src/gpt.c:3192 libfdisk/src/sgi.c:1160 libfdisk/src/sun.c:1132 +#: libfdisk/src/gpt.c:3191 libfdisk/src/sgi.c:1161 libfdisk/src/sun.c:1132 msgid "Sectors" msgstr "Sectors" #: disk-utils/fdisk-list.c:233 libfdisk/src/bsd.c:1030 libfdisk/src/dos.c:2614 -#: libfdisk/src/gpt.c:3193 libfdisk/src/sgi.c:1162 libfdisk/src/sun.c:1134 +#: libfdisk/src/gpt.c:3192 libfdisk/src/sgi.c:1163 libfdisk/src/sun.c:1134 msgid "Size" msgstr "" @@ -1846,91 +1851,81 @@ msgstr "" msgid "failed to write disklabel" msgstr "s'ha produït un error en cercar a write_tables" -#: disk-utils/fdisk-menu.c:640 -#, fuzzy -msgid "Failed to fix partitions order." -msgstr " f arregla l'ordre de les particions" - -#: disk-utils/fdisk-menu.c:642 -#, fuzzy -msgid "Partitions order fixed." -msgstr "No hi han particions definides\n" - -#: disk-utils/fdisk-menu.c:660 +#: disk-utils/fdisk-menu.c:656 #, fuzzy, c-format msgid "Could not delete partition %zu" msgstr "S'ha seleccionat la partició %d\n" -#: disk-utils/fdisk-menu.c:689 +#: disk-utils/fdisk-menu.c:685 #, fuzzy msgid "Changing display/entry units to cylinders (DEPRECATED!)." msgstr "S'està canviant les unitats de visualització/entrada a %s\n" -#: disk-utils/fdisk-menu.c:691 +#: disk-utils/fdisk-menu.c:687 #, fuzzy msgid "Changing display/entry units to sectors." msgstr "S'està canviant les unitats de visualització/entrada a %s\n" -#: disk-utils/fdisk-menu.c:701 disk-utils/fdisk-menu.c:872 +#: disk-utils/fdisk-menu.c:697 disk-utils/fdisk-menu.c:868 #, fuzzy msgid "Leaving nested disklabel." msgstr " b edita l'etiqueta de disc bsd" -#: disk-utils/fdisk-menu.c:738 +#: disk-utils/fdisk-menu.c:734 msgid "New maximum entries" msgstr "" -#: disk-utils/fdisk-menu.c:749 +#: disk-utils/fdisk-menu.c:745 #, fuzzy msgid "Entering protective/hybrid MBR disklabel." msgstr " b edita l'etiqueta de disc bsd" -#: disk-utils/fdisk-menu.c:765 +#: disk-utils/fdisk-menu.c:761 msgid "New UUID (in 8-4-4-4-12 format)" msgstr "" -#: disk-utils/fdisk-menu.c:780 +#: disk-utils/fdisk-menu.c:776 #, fuzzy msgid "New name" msgstr "Nom d'usuari il·legal" -#: disk-utils/fdisk-menu.c:843 +#: disk-utils/fdisk-menu.c:839 #, fuzzy msgid "Entering nested BSD disklabel." msgstr " b edita l'etiqueta de disc bsd" -#: disk-utils/fdisk-menu.c:1041 +#: disk-utils/fdisk-menu.c:1037 msgid "Number of cylinders" msgstr "Nombre de cilindres" -#: disk-utils/fdisk-menu.c:1048 +#: disk-utils/fdisk-menu.c:1044 msgid "Number of heads" msgstr "Nombre de capçals" -#: disk-utils/fdisk-menu.c:1054 +#: disk-utils/fdisk-menu.c:1050 msgid "Number of sectors" msgstr "Nombre de sectors" -#: disk-utils/fdisk-menu.c:1105 +#: disk-utils/fdisk-menu.c:1101 #, fuzzy, c-format msgid "Failed to create '%s' disk label" msgstr "s'ha produït un error en cercar a write_tables" -#: disk-utils/fsck.c:213 +#: disk-utils/fsck.c:214 #, fuzzy, c-format msgid "%s is mounted\n" msgstr "%s està muntat.\t " -#: disk-utils/fsck.c:215 +#: disk-utils/fsck.c:216 #, fuzzy, c-format msgid "%s is not mounted\n" msgstr "umount: %s: no s'ha trobat" -#: disk-utils/fsck.c:329 disk-utils/fsck.cramfs.c:180 -#: disk-utils/fsck.cramfs.c:187 disk-utils/fsck.cramfs.c:243 -#: disk-utils/fsck.cramfs.c:264 disk-utils/sfdisk.c:307 libfdisk/src/bsd.c:647 -#: login-utils/last.c:214 login-utils/last.c:251 login-utils/sulogin.c:657 -#: misc-utils/hardlink.c:586 misc-utils/hardlink.c:743 +#: disk-utils/fsck.c:330 disk-utils/fsck.cramfs.c:181 +#: disk-utils/fsck.cramfs.c:188 disk-utils/fsck.cramfs.c:244 +#: disk-utils/fsck.cramfs.c:265 disk-utils/sfdisk.c:307 libfdisk/src/bsd.c:647 +#: login-utils/last.c:214 login-utils/last.c:251 login-utils/sulogin.c:660 +#: misc-utils/hardlink.c:579 misc-utils/hardlink.c:736 #: schedutils/uclampset.c:111 sys-utils/ctrlaltdel.c:44 #: sys-utils/irq-common.c:259 sys-utils/rfkill.c:216 sys-utils/setpriv.c:265 #: term-utils/setterm.c:746 term-utils/setterm.c:802 term-utils/setterm.c:806 @@ -1939,260 +1934,260 @@ msgstr "umount: %s: no s'ha trobat" msgid "cannot read %s" msgstr "%s: no s'ha pogut llegir %s.\n" -#: disk-utils/fsck.c:331 +#: disk-utils/fsck.c:332 #, fuzzy, c-format msgid "parse error: %s" msgstr "s'ha produït un error en cercar" -#: disk-utils/fsck.c:358 +#: disk-utils/fsck.c:359 #, fuzzy, c-format msgid "cannot create directory %s" msgstr "namei: no s'ha pogut obtenir el directori actual - %s\n" -#: disk-utils/fsck.c:371 +#: disk-utils/fsck.c:372 #, fuzzy, c-format msgid "Locking disk by %s ... " msgstr "S'estan sincronitzant els discs.\n" -#: disk-utils/fsck.c:382 +#: disk-utils/fsck.c:383 #, c-format msgid "(waiting) " msgstr "" #. TRANSLATORS: These are followups to "Locking disk...". -#: disk-utils/fsck.c:392 +#: disk-utils/fsck.c:393 #, fuzzy msgid "succeeded" msgstr "%s s'ha completat amb èxit.\n" -#: disk-utils/fsck.c:392 +#: disk-utils/fsck.c:393 #, fuzzy msgid "failed" msgstr "la cerca ha fallat" -#: disk-utils/fsck.c:409 +#: disk-utils/fsck.c:410 #, fuzzy, c-format msgid "Unlocking %s.\n" msgstr "Usant %s.\n" -#: disk-utils/fsck.c:440 +#: disk-utils/fsck.c:441 #, fuzzy, c-format msgid "failed to setup description for %s" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" -#: disk-utils/fsck.c:470 misc-utils/findmnt.c:801 misc-utils/lsblk-mnt.c:15 -#: sys-utils/mount.c:104 sys-utils/swapon-common.c:19 sys-utils/umount.c:52 +#: disk-utils/fsck.c:471 misc-utils/findmnt.c:801 misc-utils/lsblk-mnt.c:15 +#: sys-utils/mount.c:99 sys-utils/swapon-common.c:19 sys-utils/umount.c:52 #, fuzzy, c-format msgid "%s: parse error at line %d -- ignored" msgstr "s'ha produït un error en cercar" -#: disk-utils/fsck.c:502 disk-utils/fsck.c:504 +#: disk-utils/fsck.c:503 disk-utils/fsck.c:505 #, fuzzy, c-format msgid "%s: failed to parse fstab" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: disk-utils/fsck.c:689 login-utils/login.c:1108 login-utils/sulogin.c:1025 +#: disk-utils/fsck.c:690 login-utils/login.c:1107 login-utils/sulogin.c:1038 #: login-utils/vipw.c:197 sys-utils/flock.c:351 sys-utils/nsenter.c:182 #: sys-utils/swapon.c:332 sys-utils/unshare.c:242 sys-utils/unshare.c:567 #, fuzzy msgid "fork failed" msgstr "no s'ha pogut bifurcar\n" -#: disk-utils/fsck.c:696 +#: disk-utils/fsck.c:697 #, fuzzy, c-format msgid "%s: execute failed" msgstr "no ha estat possible executar openpty\n" -#: disk-utils/fsck.c:784 +#: disk-utils/fsck.c:785 msgid "wait: no more child process?!?" msgstr "" -#: disk-utils/fsck.c:787 sys-utils/flock.c:369 sys-utils/swapon.c:364 +#: disk-utils/fsck.c:788 sys-utils/flock.c:369 sys-utils/swapon.c:359 #: sys-utils/unshare.c:594 sys-utils/unshare.c:607 #, fuzzy msgid "waitpid failed" msgstr "setuid() ha fallat" -#: disk-utils/fsck.c:805 +#: disk-utils/fsck.c:806 #, c-format msgid "Warning... %s for device %s exited with signal %d." msgstr "" -#: disk-utils/fsck.c:811 +#: disk-utils/fsck.c:812 #, c-format msgid "%s %s: status is %x, should never happen." msgstr "" -#: disk-utils/fsck.c:857 +#: disk-utils/fsck.c:858 #, c-format msgid "Finished with %s (exit status %d)\n" msgstr "" -#: disk-utils/fsck.c:938 +#: disk-utils/fsck.c:939 #, fuzzy, c-format msgid "error %d (%s) while executing fsck.%s for %s" msgstr "%s: s'ha produït un error %d en descomprimir! %p(%d)\n" -#: disk-utils/fsck.c:1004 +#: disk-utils/fsck.c:1005 msgid "" "Either all or none of the filesystem types passed to -t must be prefixed\n" "with 'no' or '!'." msgstr "" -#: disk-utils/fsck.c:1120 +#: disk-utils/fsck.c:1121 #, c-format msgid "%s: skipping bad line in /etc/fstab: bind mount with nonzero fsck pass number" msgstr "" -#: disk-utils/fsck.c:1132 +#: disk-utils/fsck.c:1133 #, fuzzy, c-format msgid "%s: skipping nonexistent device\n" msgstr "%s: %s no és un dispositiu lp.\n" -#: disk-utils/fsck.c:1137 +#: disk-utils/fsck.c:1138 #, c-format msgid "%s: nonexistent device (\"nofail\" fstab option may be used to skip this device)\n" msgstr "" -#: disk-utils/fsck.c:1154 +#: disk-utils/fsck.c:1155 #, fuzzy, c-format msgid "%s: skipping unknown filesystem type\n" msgstr "mount: no es reconeix el sitema de fitxers «%s»" -#: disk-utils/fsck.c:1168 +#: disk-utils/fsck.c:1169 #, c-format msgid "cannot check %s: fsck.%s not found" msgstr "" -#: disk-utils/fsck.c:1272 +#: disk-utils/fsck.c:1273 #, fuzzy msgid "Checking all file systems.\n" msgstr "S'està forçant la comprovació del sistema de fitxers a %s.\n" -#: disk-utils/fsck.c:1363 +#: disk-utils/fsck.c:1364 #, c-format msgid "--waiting-- (pass %d)\n" msgstr "" -#: disk-utils/fsck.c:1389 +#: disk-utils/fsck.c:1390 #, fuzzy, c-format msgid " %s [options] -- [fs-options] [ ...]\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: disk-utils/fsck.c:1393 +#: disk-utils/fsck.c:1394 #, fuzzy msgid "Check and repair a Linux filesystem.\n" msgstr "S'està forçant la comprovació del sistema de fitxers a %s.\n" -#: disk-utils/fsck.c:1396 +#: disk-utils/fsck.c:1397 #, fuzzy msgid " -A check all filesystems\n" msgstr "S'està forçant la comprovació del sistema de fitxers a %s.\n" -#: disk-utils/fsck.c:1397 +#: disk-utils/fsck.c:1398 msgid " -C [] display progress bar; file descriptor is for GUIs\n" msgstr "" -#: disk-utils/fsck.c:1398 +#: disk-utils/fsck.c:1399 msgid " -l lock the device to guarantee exclusive access\n" msgstr "" -#: disk-utils/fsck.c:1399 +#: disk-utils/fsck.c:1400 #, fuzzy msgid " -M do not check mounted filesystems\n" msgstr " t Canvia el tipus del sistema de fitxers" -#: disk-utils/fsck.c:1400 +#: disk-utils/fsck.c:1401 msgid " -N do not execute, just show what would be done\n" msgstr "" -#: disk-utils/fsck.c:1401 +#: disk-utils/fsck.c:1402 msgid " -P check filesystems in parallel, including root\n" msgstr "" -#: disk-utils/fsck.c:1402 +#: disk-utils/fsck.c:1403 msgid " -R skip root filesystem; useful only with '-A'\n" msgstr "" -#: disk-utils/fsck.c:1403 +#: disk-utils/fsck.c:1404 #, fuzzy msgid "" " -r [] report statistics for each device checked;\n" " file descriptor is for GUIs\n" msgstr " -l [o --list]: Mostra les particions de cada dispositiu" -#: disk-utils/fsck.c:1405 +#: disk-utils/fsck.c:1406 #, fuzzy msgid " -s serialize the checking operations\n" msgstr " d Suprimeix l'actual partició" -#: disk-utils/fsck.c:1406 +#: disk-utils/fsck.c:1407 #, fuzzy msgid " -T do not show the title on startup\n" msgstr " -n : No escrigues realment al disc" -#: disk-utils/fsck.c:1407 +#: disk-utils/fsck.c:1408 msgid "" " -t specify filesystem types to be checked;\n" " is allowed to be a comma-separated list\n" msgstr "" -#: disk-utils/fsck.c:1409 +#: disk-utils/fsck.c:1410 #, fuzzy msgid " -V explain what is being done\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: disk-utils/fsck.c:1415 +#: disk-utils/fsck.c:1416 msgid "See the specific fsck.* commands for available fs-options." msgstr "" -#: disk-utils/fsck.c:1460 +#: disk-utils/fsck.c:1461 #, fuzzy msgid "too many devices" msgstr "%s: %s no és un dispositiu lp.\n" -#: disk-utils/fsck.c:1472 +#: disk-utils/fsck.c:1473 #, fuzzy msgid "Is /proc mounted?" msgstr "%s desmuntat\n" -#: disk-utils/fsck.c:1480 +#: disk-utils/fsck.c:1481 #, fuzzy, c-format msgid "must be root to scan for matching filesystems: %s" msgstr "S'està desmuntant els sistemes de fitxers restants..." -#: disk-utils/fsck.c:1484 +#: disk-utils/fsck.c:1485 #, fuzzy, c-format msgid "couldn't find matching filesystem: %s" msgstr "S'està desmuntant els sistemes de fitxers restants..." -#: disk-utils/fsck.c:1492 disk-utils/fsck.c:1589 misc-utils/kill.c:281 -#: sys-utils/eject.c:279 +#: disk-utils/fsck.c:1493 disk-utils/fsck.c:1590 misc-utils/kill.c:282 +#: sys-utils/eject.c:281 #, fuzzy msgid "too many arguments" msgstr "%s: argument desconegut: %s\n" -#: disk-utils/fsck.c:1547 disk-utils/fsck.c:1550 +#: disk-utils/fsck.c:1548 disk-utils/fsck.c:1551 #, fuzzy msgid "invalid argument of -r" msgstr "id invàlid : %s\n" -#: disk-utils/fsck.c:1562 +#: disk-utils/fsck.c:1563 #, fuzzy, c-format msgid "option '%s' may be specified only once" msgstr "Heu especificat més cilindres dels que caben al disc" -#: disk-utils/fsck.c:1569 misc-utils/kill.c:327 misc-utils/kill.c:343 +#: disk-utils/fsck.c:1570 misc-utils/kill.c:328 misc-utils/kill.c:344 #, fuzzy, c-format msgid "option '%s' requires an argument" msgstr "%s requereix un argument\n" -#: disk-utils/fsck.c:1600 +#: disk-utils/fsck.c:1601 #, fuzzy, c-format msgid "invalid argument of -r: %d" msgstr "id invàlid : %s\n" -#: disk-utils/fsck.c:1643 +#: disk-utils/fsck.c:1644 msgid "the -l option can be used with one device only -- ignore" msgstr "" @@ -2226,254 +2221,254 @@ msgstr "" msgid " --extract[=] test uncompression, optionally extract into \n" msgstr "" -#: disk-utils/fsck.cramfs.c:167 +#: disk-utils/fsck.cramfs.c:168 #, fuzzy, c-format msgid "ioctl failed: unable to determine device size: %s" msgstr "%s: avís; no es pot determinar la mida del sistema de fitxers \n" -#: disk-utils/fsck.cramfs.c:173 +#: disk-utils/fsck.cramfs.c:174 #, fuzzy, c-format msgid "not a block device or file: %s" msgstr "%s no és cap dispositiu de bloc o un fitxer\n" -#: disk-utils/fsck.cramfs.c:176 disk-utils/fsck.cramfs.c:212 +#: disk-utils/fsck.cramfs.c:177 disk-utils/fsck.cramfs.c:213 #, fuzzy msgid "file length too short" msgstr "%s: el cramfs és invàlid, la longitud del fitxer és massa curta\n" -#: disk-utils/fsck.cramfs.c:185 disk-utils/fsck.cramfs.c:240 -#: disk-utils/fsck.cramfs.c:260 libfdisk/src/bsd.c:719 libfdisk/src/bsd.c:901 +#: disk-utils/fsck.cramfs.c:186 disk-utils/fsck.cramfs.c:241 +#: disk-utils/fsck.cramfs.c:261 libfdisk/src/bsd.c:719 libfdisk/src/bsd.c:901 #: login-utils/last.c:209 login-utils/last.c:243 sys-utils/fallocate.c:206 #, fuzzy, c-format msgid "seek on %s failed" msgstr "la cerca ha fallat" -#: disk-utils/fsck.cramfs.c:191 disk-utils/fsck.cramfs.c:193 +#: disk-utils/fsck.cramfs.c:192 disk-utils/fsck.cramfs.c:194 msgid "superblock magic not found" msgstr "" -#: disk-utils/fsck.cramfs.c:196 +#: disk-utils/fsck.cramfs.c:197 #, c-format msgid "cramfs endianness is %s\n" msgstr "" -#: disk-utils/fsck.cramfs.c:197 +#: disk-utils/fsck.cramfs.c:198 msgid "big" msgstr "" -#: disk-utils/fsck.cramfs.c:197 +#: disk-utils/fsck.cramfs.c:198 msgid "little" msgstr "" -#: disk-utils/fsck.cramfs.c:201 +#: disk-utils/fsck.cramfs.c:202 #, fuzzy msgid "unsupported filesystem features" msgstr "Introduïu el tipus del sistema de fitxers: " -#: disk-utils/fsck.cramfs.c:205 +#: disk-utils/fsck.cramfs.c:206 #, fuzzy, c-format msgid "superblock size (%d) too small" msgstr "Nombre de sectors" -#: disk-utils/fsck.cramfs.c:210 +#: disk-utils/fsck.cramfs.c:211 msgid "zero file count" msgstr "" -#: disk-utils/fsck.cramfs.c:214 +#: disk-utils/fsck.cramfs.c:215 #, fuzzy msgid "file extends past end of filesystem" msgstr "Avís: la partició %s s'extén més enllà del final del disc\n" -#: disk-utils/fsck.cramfs.c:216 +#: disk-utils/fsck.cramfs.c:217 #, fuzzy msgid "old cramfs format" msgstr "%s: avís; la imatge cramfs és antiga, no té CRC\n" -#: disk-utils/fsck.cramfs.c:225 +#: disk-utils/fsck.cramfs.c:226 msgid "unable to test CRC: old cramfs format" msgstr "" -#: disk-utils/fsck.cramfs.c:245 +#: disk-utils/fsck.cramfs.c:246 #, fuzzy, c-format msgid "failed to read % bytes from file %s" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" -#: disk-utils/fsck.cramfs.c:283 +#: disk-utils/fsck.cramfs.c:284 #, fuzzy msgid "crc error" msgstr ", error" -#: disk-utils/fsck.cramfs.c:313 disk-utils/fsck.minix.c:558 +#: disk-utils/fsck.cramfs.c:314 disk-utils/fsck.minix.c:558 msgid "seek failed" msgstr "la cerca ha fallat" -#: disk-utils/fsck.cramfs.c:317 +#: disk-utils/fsck.cramfs.c:318 #, fuzzy msgid "read romfs failed" msgstr "(Fitxer següent: %s)" -#: disk-utils/fsck.cramfs.c:349 +#: disk-utils/fsck.cramfs.c:350 #, fuzzy msgid "root inode is not directory" msgstr "el node d'identificació arrel no és un directori" -#: disk-utils/fsck.cramfs.c:353 +#: disk-utils/fsck.cramfs.c:354 #, c-format msgid "bad root offset (%lu)" msgstr "" -#: disk-utils/fsck.cramfs.c:371 +#: disk-utils/fsck.cramfs.c:372 msgid "data block too large" msgstr "" -#: disk-utils/fsck.cramfs.c:375 +#: disk-utils/fsck.cramfs.c:376 #, fuzzy, c-format msgid "decompression error: %s" msgstr "s'ha produït un error en cercar" -#: disk-utils/fsck.cramfs.c:401 +#: disk-utils/fsck.cramfs.c:402 #, fuzzy, c-format msgid " hole at %lu (%zu)\n" msgstr " forat a %ld (%d)\n" -#: disk-utils/fsck.cramfs.c:408 disk-utils/fsck.cramfs.c:560 +#: disk-utils/fsck.cramfs.c:409 disk-utils/fsck.cramfs.c:561 #, fuzzy, c-format msgid " uncompressing block at %lu to %lu (%lu)\n" msgstr " s'està descomprimint el bloc de %ld a %ld (%ld)\n" -#: disk-utils/fsck.cramfs.c:415 +#: disk-utils/fsck.cramfs.c:416 #, fuzzy, c-format msgid "non-block (%ld) bytes" msgstr "%s: No bloc (%ld) octets\n" # "No mida" no és gens correcte... jm -#: disk-utils/fsck.cramfs.c:419 +#: disk-utils/fsck.cramfs.c:420 #, fuzzy, c-format msgid "non-size (%ld vs %ld) bytes" msgstr "%s: Octets sense mida (%ld vs %ld)\n" -#: disk-utils/fsck.cramfs.c:424 disk-utils/fsck.cramfs.c:526 +#: disk-utils/fsck.cramfs.c:425 disk-utils/fsck.cramfs.c:527 #: disk-utils/swaplabel.c:109 misc-utils/uuidd.c:403 sys-utils/fallocate.c:417 -#: sys-utils/rfkill.c:555 sys-utils/setpriv.c:628 sys-utils/setpriv.c:651 -#: sys-utils/swapon.c:405 term-utils/script.c:319 term-utils/ttymsg.c:175 +#: sys-utils/rfkill.c:556 sys-utils/setpriv.c:628 sys-utils/setpriv.c:651 +#: sys-utils/swapon.c:400 term-utils/script.c:320 term-utils/ttymsg.c:175 #, fuzzy, c-format msgid "write failed: %s" msgstr "(Fitxer següent: %s)" -#: disk-utils/fsck.cramfs.c:434 +#: disk-utils/fsck.cramfs.c:435 #, fuzzy, c-format msgid "lchown failed: %s" msgstr "no s'ha estat possible muntar" -#: disk-utils/fsck.cramfs.c:438 +#: disk-utils/fsck.cramfs.c:439 #, fuzzy, c-format msgid "chown failed: %s" msgstr "no s'ha estat possible muntar" -#: disk-utils/fsck.cramfs.c:443 +#: disk-utils/fsck.cramfs.c:444 #, fuzzy, c-format msgid "utimes failed: %s" msgstr "valor d'expiració erroni: %s" -#: disk-utils/fsck.cramfs.c:455 +#: disk-utils/fsck.cramfs.c:456 #, c-format msgid "directory inode has zero offset and non-zero size: %s" msgstr "" -#: disk-utils/fsck.cramfs.c:470 +#: disk-utils/fsck.cramfs.c:471 #, fuzzy, c-format msgid "mkdir failed: %s" msgstr "/dev: chdir() ha fallat: %m" -#: disk-utils/fsck.cramfs.c:486 +#: disk-utils/fsck.cramfs.c:487 msgid "filename length is zero" msgstr "" -#: disk-utils/fsck.cramfs.c:488 +#: disk-utils/fsck.cramfs.c:489 msgid "bad filename length" msgstr "" -#: disk-utils/fsck.cramfs.c:494 +#: disk-utils/fsck.cramfs.c:495 #, fuzzy msgid "bad inode offset" msgstr "mida de node d'identificació incorrecte" -#: disk-utils/fsck.cramfs.c:509 +#: disk-utils/fsck.cramfs.c:510 msgid "file inode has zero offset and non-zero size" msgstr "" -#: disk-utils/fsck.cramfs.c:512 +#: disk-utils/fsck.cramfs.c:513 msgid "file inode has zero size and non-zero offset" msgstr "" -#: disk-utils/fsck.cramfs.c:541 +#: disk-utils/fsck.cramfs.c:542 msgid "symbolic link has zero offset" msgstr "" -#: disk-utils/fsck.cramfs.c:543 +#: disk-utils/fsck.cramfs.c:544 msgid "symbolic link has zero size" msgstr "" -#: disk-utils/fsck.cramfs.c:552 +#: disk-utils/fsck.cramfs.c:553 #, fuzzy, c-format msgid "size error in symlink: %s" msgstr "%s: hi ha un error en la mida de l'enllaç simbòlic «%s»\n" -#: disk-utils/fsck.cramfs.c:566 +#: disk-utils/fsck.cramfs.c:567 #, fuzzy, c-format msgid "symlink failed: %s" msgstr "no s'ha pogut fer fsync" -#: disk-utils/fsck.cramfs.c:579 +#: disk-utils/fsck.cramfs.c:580 #, c-format msgid "special file has non-zero offset: %s" msgstr "" -#: disk-utils/fsck.cramfs.c:589 +#: disk-utils/fsck.cramfs.c:590 #, c-format msgid "fifo has non-zero size: %s" msgstr "" -#: disk-utils/fsck.cramfs.c:595 +#: disk-utils/fsck.cramfs.c:596 #, c-format msgid "socket has non-zero size: %s" msgstr "" -#: disk-utils/fsck.cramfs.c:598 +#: disk-utils/fsck.cramfs.c:599 #, fuzzy, c-format msgid "bogus mode: %s (%o)" msgstr "%s: mode erroni a «%s» (%o)\n" -#: disk-utils/fsck.cramfs.c:607 +#: disk-utils/fsck.cramfs.c:608 #, fuzzy, c-format msgid "mknod failed: %s" msgstr "no s'ha estat possible muntar" -#: disk-utils/fsck.cramfs.c:639 +#: disk-utils/fsck.cramfs.c:640 #, fuzzy, c-format msgid "directory data start (%lu) < sizeof(struct cramfs_super) + start (%zu)" msgstr "" "%s: el cramfs és invàlid, el final de les dades als directoris (%ld)\n" "és diferent de l'inici de les dades dels fitxers (%ld)\n" -#: disk-utils/fsck.cramfs.c:643 +#: disk-utils/fsck.cramfs.c:644 #, fuzzy, c-format msgid "directory data end (%lu) != file data start (%lu)" msgstr "" "%s: el cramfs és invàlid, el final de les dades als directoris (%ld)\n" "és diferent de l'inici de les dades dels fitxers (%ld)\n" -#: disk-utils/fsck.cramfs.c:647 +#: disk-utils/fsck.cramfs.c:648 #, fuzzy msgid "invalid file data offset" msgstr "%s: el cramfs és invàlid, hi ha un desplaçament invàlid de les dades dels fitxers\n" -#: disk-utils/fsck.cramfs.c:695 disk-utils/mkfs.cramfs.c:736 +#: disk-utils/fsck.cramfs.c:696 disk-utils/mkfs.cramfs.c:738 #, fuzzy msgid "invalid blocksize argument" msgstr "umount: %s: dispositiu de blocs no vàlid" -#: disk-utils/fsck.cramfs.c:729 +#: disk-utils/fsck.cramfs.c:730 #, c-format msgid "%s: OK\n" msgstr "%s: Correcte\n" @@ -2939,10 +2934,10 @@ msgstr "" "----------------------------------\n" #: disk-utils/fsck.minix.c:1429 disk-utils/mkfs.minix.c:854 -#: disk-utils/mkswap.c:667 disk-utils/partx.c:1068 disk-utils/resizepart.c:115 -#: login-utils/utmpdump.c:395 sys-utils/dmesg.c:679 sys-utils/wdctl.c:386 +#: disk-utils/mkswap.c:669 disk-utils/partx.c:1068 disk-utils/resizepart.c:115 +#: login-utils/utmpdump.c:403 sys-utils/dmesg.c:679 sys-utils/wdctl.c:386 #: sys-utils/wdctl.c:446 term-utils/setterm.c:908 text-utils/col.c:195 -#: text-utils/pg.c:1259 +#: text-utils/pg.c:1255 #, fuzzy msgid "write failed" msgstr "(Fitxer següent: %s)" @@ -3149,8 +3144,8 @@ msgid "" " specifying -V more than once will cause a dry-run\n" msgstr "" -#: disk-utils/mkfs.c:133 include/c.h:269 login-utils/su-common.c:1238 -#: login-utils/sulogin.c:794 login-utils/sulogin.c:798 sys-utils/flock.c:123 +#: disk-utils/mkfs.c:133 include/c.h:271 login-utils/su-common.c:1238 +#: login-utils/sulogin.c:801 login-utils/sulogin.c:805 sys-utils/flock.c:123 #: sys-utils/rtcwake.c:623 #, fuzzy, c-format msgid "failed to execute %s" @@ -3220,119 +3215,119 @@ msgstr "" msgid " outfile output file" msgstr "" -#: disk-utils/mkfs.cramfs.c:162 +#: disk-utils/mkfs.cramfs.c:164 #, fuzzy, c-format msgid "readlink failed: %s" msgstr "(Fitxer següent: %s)" -#: disk-utils/mkfs.cramfs.c:307 +#: disk-utils/mkfs.cramfs.c:309 #, fuzzy, c-format msgid "could not read directory %s" msgstr "el node d'identificació arrel no és un directori" -#: disk-utils/mkfs.cramfs.c:442 +#: disk-utils/mkfs.cramfs.c:444 #, fuzzy msgid "filesystem too big. Exiting." msgstr "el sistema de fitxers és massa gran. S'està sortint.\n" -#: disk-utils/mkfs.cramfs.c:601 +#: disk-utils/mkfs.cramfs.c:603 #, c-format msgid "AIEEE: block \"compressed\" to > 2*blocklength (%ld)\n" msgstr "Ep: bloc \"comprimit\" a > 2*longituddelbloc (%ld)\n" -#: disk-utils/mkfs.cramfs.c:620 +#: disk-utils/mkfs.cramfs.c:622 #, fuzzy, c-format msgid "%6.2f%% (%+ld bytes)\t%s\n" msgstr "%6.2f%% (%+d octets)\t%s\n" -#: disk-utils/mkfs.cramfs.c:665 +#: disk-utils/mkfs.cramfs.c:667 #, fuzzy, c-format msgid "cannot close file %s" msgstr "No s'ha pogut obrir el fitxer '%s'" -#: disk-utils/mkfs.cramfs.c:742 +#: disk-utils/mkfs.cramfs.c:744 #, fuzzy msgid "invalid edition number argument" msgstr "identificador invàlid" -#: disk-utils/mkfs.cramfs.c:752 +#: disk-utils/mkfs.cramfs.c:754 msgid "invalid endianness given; must be 'big', 'little', or 'host'" msgstr "" -#: disk-utils/mkfs.cramfs.c:817 +#: disk-utils/mkfs.cramfs.c:819 #, fuzzy, c-format msgid "warning: guestimate of required size (upper bound) is %lldMB, but maximum image size is %uMB. We might die prematurely." msgstr "avís: s'estima que la mida requerida (cota superior) és d %LdMB, però la mida màxima de la imatge és %uMB. Es podria sortir prematurament.\n" -#: disk-utils/mkfs.cramfs.c:841 +#: disk-utils/mkfs.cramfs.c:843 msgid "ROM image map" msgstr "" -#: disk-utils/mkfs.cramfs.c:853 +#: disk-utils/mkfs.cramfs.c:855 #, c-format msgid "Including: %s\n" msgstr "S'està incloent: %s\n" -#: disk-utils/mkfs.cramfs.c:859 +#: disk-utils/mkfs.cramfs.c:861 #, fuzzy, c-format msgid "Directory data: %zd bytes\n" msgstr "Dades del directori: %d octets\n" -#: disk-utils/mkfs.cramfs.c:867 +#: disk-utils/mkfs.cramfs.c:869 #, fuzzy, c-format msgid "Everything: %zd kilobytes\n" msgstr "Tot: %d kilooctets\n" -#: disk-utils/mkfs.cramfs.c:872 +#: disk-utils/mkfs.cramfs.c:874 #, fuzzy, c-format msgid "Super block: %zd bytes\n" msgstr "Súper bloc: %d octets\n" -#: disk-utils/mkfs.cramfs.c:879 +#: disk-utils/mkfs.cramfs.c:881 #, c-format msgid "CRC: %x\n" msgstr "CRC: %x\n" -#: disk-utils/mkfs.cramfs.c:884 +#: disk-utils/mkfs.cramfs.c:886 #, fuzzy, c-format msgid "not enough space allocated for ROM image (%lld allocated, %zu used)" msgstr "no hi ha prou espai per a la imatge ROM (assignats %Ld, emprats %d)\n" -#: disk-utils/mkfs.cramfs.c:890 +#: disk-utils/mkfs.cramfs.c:892 #, fuzzy, c-format msgid "ROM image write failed (%zd %zd)" msgstr "No és possible escriure la imatge ROM (%d %d)\n" -#: disk-utils/mkfs.cramfs.c:893 +#: disk-utils/mkfs.cramfs.c:895 msgid "ROM image" msgstr "" -#: disk-utils/mkfs.cramfs.c:902 +#: disk-utils/mkfs.cramfs.c:904 #, fuzzy, c-format msgid "warning: filenames truncated to %u bytes." msgstr "avís: els noms de fitxer es trunquen a 255 octets.\n" -#: disk-utils/mkfs.cramfs.c:904 +#: disk-utils/mkfs.cramfs.c:906 #, fuzzy msgid "warning: files were skipped due to errors." msgstr "avís: s'han saltat fitxers degut a errors.\n" -#: disk-utils/mkfs.cramfs.c:906 +#: disk-utils/mkfs.cramfs.c:908 #, fuzzy, c-format msgid "warning: file sizes truncated to %luMB (minus 1 byte)." msgstr "avís: la mida dels fitxers es trunca a %luMB (menys 1 octet).\n" -#: disk-utils/mkfs.cramfs.c:910 +#: disk-utils/mkfs.cramfs.c:912 #, fuzzy, c-format msgid "warning: uids truncated to %u bits. (This may be a security concern.)" msgstr "avís: els identificadors d'usuari (uid) es trunquen a %u bits, (podria ser un problema de seguretat).\n" -#: disk-utils/mkfs.cramfs.c:913 +#: disk-utils/mkfs.cramfs.c:915 #, fuzzy, c-format msgid "warning: gids truncated to %u bits. (This may be a security concern.)" msgstr "avís: els identificadors de grup (gid) es trunquen a %u bits. (Podria ser un problema de seguretat).\n" -#: disk-utils/mkfs.cramfs.c:916 +#: disk-utils/mkfs.cramfs.c:918 #, fuzzy, c-format msgid "" "WARNING: device numbers truncated to %u bits. This almost certainly means\n" @@ -3676,180 +3671,180 @@ msgstr "" msgid " Use --verbose for more details.\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: disk-utils/mkswap.c:275 disk-utils/mkswap.c:300 +#: disk-utils/mkswap.c:277 disk-utils/mkswap.c:302 #, c-format msgid "hole detected at offset %ju" msgstr "" -#: disk-utils/mkswap.c:283 +#: disk-utils/mkswap.c:285 #, c-format msgid "data inline extent at offset %ju" msgstr "" -#: disk-utils/mkswap.c:286 +#: disk-utils/mkswap.c:288 #, c-format msgid "shared extent at offset %ju" msgstr "" -#: disk-utils/mkswap.c:289 +#: disk-utils/mkswap.c:291 #, c-format msgid "unallocated extent at offset %ju" msgstr "" -#: disk-utils/mkswap.c:329 +#: disk-utils/mkswap.c:331 #, fuzzy msgid "unable to alloc new libblkid probe" msgstr "no s'ha pogut assignar memòria intermèdia per als nodes d'identificació" -#: disk-utils/mkswap.c:331 +#: disk-utils/mkswap.c:333 #, fuzzy msgid "unable to assign device to libblkid probe" msgstr "no s'ha pogut assignar memòria intermèdia per als nodes d'identificació" -#: disk-utils/mkswap.c:352 +#: disk-utils/mkswap.c:354 #, fuzzy, c-format msgid "warning: checking bad blocks from swap file is not supported: %s" msgstr "Avís: L'opció namlen no està implementada.\n" -#: disk-utils/mkswap.c:367 disk-utils/mkswap.c:392 disk-utils/mkswap.c:439 +#: disk-utils/mkswap.c:369 disk-utils/mkswap.c:394 disk-utils/mkswap.c:441 msgid "unable to rewind swap-device" msgstr "no s'ha pogut rebobinar el dispositiu d'intercanvi" -#: disk-utils/mkswap.c:395 +#: disk-utils/mkswap.c:397 #, fuzzy msgid "unable to erase bootbits sectors" msgstr "no s'ha pogut netejar el sector d'arrencada" -#: disk-utils/mkswap.c:411 +#: disk-utils/mkswap.c:413 #, c-format msgid "%s: warning: wiping old %s signature." msgstr "" -#: disk-utils/mkswap.c:416 +#: disk-utils/mkswap.c:418 #, fuzzy, c-format msgid "%s: warning: don't erase bootbits sectors" msgstr "no s'ha pogut netejar el sector d'arrencada" -#: disk-utils/mkswap.c:419 +#: disk-utils/mkswap.c:421 #, fuzzy, c-format msgid " (%s partition table detected). " msgstr " p imprimeix la taula de particions BSD" -#: disk-utils/mkswap.c:421 +#: disk-utils/mkswap.c:423 #, fuzzy, c-format msgid " (compiled without libblkid). " msgstr " s mostra totes les etiquetes del disc" -#: disk-utils/mkswap.c:422 +#: disk-utils/mkswap.c:424 #, fuzzy, c-format msgid "Use -f to force.\n" msgstr "Useu %s -l per veure'n la llista.\n" -#: disk-utils/mkswap.c:444 +#: disk-utils/mkswap.c:446 #, fuzzy, c-format msgid "%s: unable to write signature page" msgstr "no s'ha pogut escriure la pàgina de la signatura" -#: disk-utils/mkswap.c:491 +#: disk-utils/mkswap.c:493 #, fuzzy msgid "parsing page size failed" msgstr "la cerca ha fallat" -#: disk-utils/mkswap.c:497 +#: disk-utils/mkswap.c:499 #, fuzzy msgid "parsing version number failed" msgstr "semàfors assignats = %d\n" -#: disk-utils/mkswap.c:500 +#: disk-utils/mkswap.c:502 #, c-format msgid "swapspace version %d is not supported" msgstr "" -#: disk-utils/mkswap.c:506 +#: disk-utils/mkswap.c:508 #, c-format msgid "warning: ignoring -U (UUIDs are unsupported by %s)" msgstr "" -#: disk-utils/mkswap.c:536 +#: disk-utils/mkswap.c:538 msgid "only one device argument is currently supported" msgstr "" -#: disk-utils/mkswap.c:543 +#: disk-utils/mkswap.c:545 #, fuzzy msgid "error: parsing UUID failed" msgstr "" "\n" "S'ha produït un error en tancar el fitxer\n" -#: disk-utils/mkswap.c:552 +#: disk-utils/mkswap.c:554 #, fuzzy msgid "error: Nowhere to set up swap on?" msgstr "%s: error: no es pot especificar l'espai d'intercanvi enlloc?\n" -#: disk-utils/mkswap.c:558 +#: disk-utils/mkswap.c:560 #, fuzzy msgid "invalid block count argument" msgstr "identificador invàlid" -#: disk-utils/mkswap.c:567 +#: disk-utils/mkswap.c:569 #, fuzzy, c-format msgid "error: size %llu KiB is larger than device size % KiB" msgstr "%s: error: la mida %lu es més gran que a la mida del dispositiu %lu\n" -#: disk-utils/mkswap.c:573 +#: disk-utils/mkswap.c:575 #, fuzzy, c-format msgid "error: swap area needs to be at least %ld KiB" msgstr "%s: error: l'espai d'intercanvi ha de tenir com a mínim %ldkB\n" -#: disk-utils/mkswap.c:578 +#: disk-utils/mkswap.c:580 #, fuzzy, c-format msgid "warning: truncating swap area to %llu KiB" msgstr "%s: avís: l'espai d'intercanvi s'ha truncat a %ldkB\n" -#: disk-utils/mkswap.c:583 +#: disk-utils/mkswap.c:585 #, fuzzy, c-format msgid "error: %s is mounted; will not make swapspace" msgstr "%s ja està muntat; no s'hi crearà cap sistema de fitxers." -#: disk-utils/mkswap.c:590 +#: disk-utils/mkswap.c:592 #, fuzzy, c-format msgid "%s: insecure permissions %04o, fix with: chmod %04o %s" msgstr "%s: avís: %s té els permisos %04o que són insegurs, se suggereix %04o\n" -#: disk-utils/mkswap.c:594 +#: disk-utils/mkswap.c:596 #, fuzzy, c-format msgid "%s: insecure file owner %d, fix with: chown 0:0 %s" msgstr "%s: avís: %s té els permisos %04o que són insegurs, se suggereix %04o\n" -#: disk-utils/mkswap.c:613 +#: disk-utils/mkswap.c:615 msgid "Unable to set up swap-space: unreadable" msgstr "No s'ha pogut configurar l'espai d'intercanvi: no es pot llegir" -#: disk-utils/mkswap.c:618 +#: disk-utils/mkswap.c:620 #, fuzzy, c-format msgid "Setting up swapspace version %d, size = %s (% bytes)\n" msgstr "S'està configurant l'espai d'intercanvi versió %d, mida = %llu kB\n" -#: disk-utils/mkswap.c:637 +#: disk-utils/mkswap.c:639 #, fuzzy, c-format msgid "%s: unable to obtain selinux file label" msgstr "no s'ha pogut rebobinar el dispositiu d'intercanvi" -#: disk-utils/mkswap.c:642 +#: disk-utils/mkswap.c:644 #, fuzzy, c-format msgid "%s: unable to obtain default selinux file label" msgstr "no s'ha pogut rebobinar el dispositiu d'intercanvi" -#: disk-utils/mkswap.c:646 +#: disk-utils/mkswap.c:648 #, fuzzy msgid "unable to create new selinux context" msgstr "no s'ha pogut escriure els nodes d'identificació" -#: disk-utils/mkswap.c:648 +#: disk-utils/mkswap.c:650 msgid "couldn't compute selinux context" msgstr "" -#: disk-utils/mkswap.c:654 +#: disk-utils/mkswap.c:656 #, fuzzy, c-format msgid "unable to relabel %s to %s" msgstr "no s'ha pogut tornar a nomenar %s per %s: %s\n" @@ -3932,7 +3927,7 @@ msgid "%s: failed to set up loop device" msgstr "no s'ha pogut rebobinar el dispositiu d'intercanvi" #: disk-utils/partx.c:161 login-utils/lslogins.c:320 misc-utils/fincore.c:92 -#: misc-utils/findmnt.c:378 misc-utils/lsblk.c:324 misc-utils/lslocks.c:344 +#: misc-utils/findmnt.c:378 misc-utils/lsblk.c:324 misc-utils/lslocks.c:346 #: misc-utils/uuidparse.c:125 misc-utils/wipefs.c:132 #: sys-utils/irq-common.c:102 sys-utils/losetup.c:112 sys-utils/lscpu.c:193 #: sys-utils/lscpu.c:208 sys-utils/lsipc.c:232 sys-utils/lsmem.c:178 @@ -4035,9 +4030,9 @@ msgstr[0] "" msgstr[1] "" #: disk-utils/partx.c:680 misc-utils/fincore.c:370 misc-utils/findmnt.c:1690 -#: misc-utils/lsblk.c:2213 misc-utils/lslocks.c:471 sys-utils/losetup.c:339 +#: misc-utils/lsblk.c:2213 misc-utils/lslocks.c:473 sys-utils/losetup.c:339 #: sys-utils/lscpu.c:586 sys-utils/lscpu.c:736 sys-utils/prlimit.c:309 -#: sys-utils/rfkill.c:477 sys-utils/swapon.c:305 sys-utils/wdctl.c:310 +#: sys-utils/rfkill.c:478 sys-utils/swapon.c:305 sys-utils/wdctl.c:310 #, fuzzy msgid "failed to allocate output column" msgstr "No s'ha pogut assignar la memòria temporal.\n" @@ -4090,7 +4085,7 @@ msgid "" "\n" msgstr " paràmetres\n" -#: disk-utils/partx.c:766 misc-utils/lsblk.c:1858 sys-utils/lsmem.c:515 +#: disk-utils/partx.c:766 misc-utils/lsblk.c:1858 sys-utils/lsmem.c:528 msgid " -b, --bytes print SIZE in bytes rather than in human readable format\n" msgstr "" @@ -4107,18 +4102,18 @@ msgstr "" msgid " -o, --output define which output columns to use\n" msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" -#: disk-utils/partx.c:770 sys-utils/lsmem.c:518 +#: disk-utils/partx.c:770 sys-utils/lsmem.c:531 #, fuzzy msgid " --output-all output all columns\n" msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" #: disk-utils/partx.c:771 misc-utils/lsblk.c:1854 sys-utils/lsirq.c:64 -#: sys-utils/lsmem.c:513 +#: sys-utils/lsmem.c:526 #, fuzzy msgid " -P, --pairs use key=\"value\" output format\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: disk-utils/partx.c:772 misc-utils/lsblk.c:1869 sys-utils/lsmem.c:519 +#: disk-utils/partx.c:772 misc-utils/lsblk.c:1869 sys-utils/lsmem.c:532 #, fuzzy msgid " -r, --raw use raw output format\n" msgstr " -V, --version Mostra la informació de la versió\n" @@ -4215,8 +4210,8 @@ msgstr "No s'ha pogut blocar el fitxer de blocat %s: %s\n" msgid "Device '%s' is not a block device" msgstr "Avís: %s no és un dispositiu de blocs\n" -#: disk-utils/raw.c:195 disk-utils/raw.c:198 sys-utils/ipcrm.c:352 -#: sys-utils/ipcrm.c:366 sys-utils/ipcrm.c:380 +#: disk-utils/raw.c:195 disk-utils/raw.c:198 sys-utils/ipcrm.c:353 +#: sys-utils/ipcrm.c:367 sys-utils/ipcrm.c:381 #, fuzzy msgid "failed to parse argument" msgstr "%s: s'ha produït un error en obrir: %s\n" @@ -4286,7 +4281,7 @@ msgid "cannot seek %s" msgstr "no s'ha pogut bifurcar" #: disk-utils/sfdisk.c:312 libfdisk/src/bsd.c:724 libfdisk/src/bsd.c:905 -#: schedutils/uclampset.c:119 term-utils/script.c:462 +#: schedutils/uclampset.c:119 term-utils/script.c:463 #, fuzzy, c-format msgid "cannot write %s" msgstr "%s no es pot obrir" @@ -4689,7 +4684,7 @@ msgstr "" msgid " , 4G Creates a 4GiB partition at default start offset.\n" msgstr " n Crea una nova partició des de l'espai lliure" -#: disk-utils/sfdisk.c:1521 sys-utils/dmesg.c:1616 +#: disk-utils/sfdisk.c:1521 sys-utils/dmesg.c:1615 #, fuzzy msgid "unsupported command" msgstr "cap ordre?\n" @@ -4834,7 +4829,7 @@ msgstr "s'ha produït un error en cercar a write_tables" #: disk-utils/sfdisk.c:1929 #, fuzzy, c-format -msgid "Failed to add #%d partition" +msgid "Failed to add #%zu partition" msgstr "torna a llegir la taula de particions" #: disk-utils/sfdisk.c:1952 @@ -5128,19 +5123,19 @@ msgstr "" msgid "ignore -U (UUIDs are unsupported)" msgstr "" -#: include/c.h:260 +#: include/c.h:262 #, fuzzy, c-format msgid "Try '%s --help' for more information.\n" msgstr "Escolliu `getopt --help' per obtenir més informació.\n" -#: include/c.h:364 +#: include/c.h:384 #, fuzzy msgid "" "\n" "Usage:\n" msgstr "Forma d'ús:\n" -#: include/c.h:365 +#: include/c.h:385 #, fuzzy msgid "" "\n" @@ -5149,7 +5144,7 @@ msgstr "" "\n" "%d particions:\n" -#: include/c.h:366 +#: include/c.h:386 #, fuzzy msgid "" "\n" @@ -5158,51 +5153,51 @@ msgstr "" "\n" "%d particions:\n" -#: include/c.h:367 +#: include/c.h:387 msgid "" "\n" "Commands:\n" msgstr "" -#: include/c.h:368 +#: include/c.h:388 #, fuzzy msgid "" "\n" "Arguments:\n" msgstr "col: argument -l incorrecte %s.\n" -#: include/c.h:369 +#: include/c.h:389 #, fuzzy msgid "" "\n" "Available output columns:\n" msgstr "Ordres disponibles:\n" -#: include/c.h:372 +#: include/c.h:392 #, fuzzy msgid "display this help" msgstr " -h, --help Aquesta petita guia d'ús\n" -#: include/c.h:373 +#: include/c.h:393 #, fuzzy msgid "display version" msgstr "versió" -#: include/c.h:383 +#: include/c.h:403 #, c-format msgid "" " %s arguments may be followed by the suffixes for\n" " GiB, TiB, PiB, EiB, ZiB, and YiB (the \"iB\" is optional)\n" msgstr "" -#: include/c.h:386 +#: include/c.h:406 #, fuzzy, c-format msgid "" "\n" "For more details see %s.\n" msgstr "S'ha canviat la informació del finger.\n" -#: include/c.h:388 +#: include/c.h:408 #, c-format msgid "%s from %s\n" msgstr "%s de %s\n" @@ -5223,8 +5218,8 @@ msgstr "Per defecte, s'ha denegat l'accés a %s des de %s.\n" msgid "colors are disabled by default" msgstr "Per defecte, s'ha denegat l'accés a %s des de %s.\n" -#: include/env.h:25 lib/pager.c:153 login-utils/login.c:1192 -#: login-utils/login.c:1196 term-utils/agetty.c:1207 +#: include/env.h:25 lib/pager.c:153 login-utils/login.c:1191 +#: login-utils/login.c:1195 term-utils/agetty.c:1207 #, fuzzy, c-format msgid "failed to set the %s environment variable" msgstr "No s'ha pogut escriure la partició a %s\n" @@ -6148,19 +6143,19 @@ msgstr "La partició %s no és vàlida perquè comença pel sector 0.\n" msgid "There is no *BSD partition on %s." msgstr "No hi ha cap partició *BSD en %s.\n" -#: libfdisk/src/bsd.c:258 libfdisk/src/dos.c:968 +#: libfdisk/src/bsd.c:258 libfdisk/src/dos.c:962 #, fuzzy msgid "First cylinder" msgstr "cilindre" # Parla d'etiquetes, segurament és femení -#: libfdisk/src/bsd.c:291 libfdisk/src/dos.c:1353 +#: libfdisk/src/bsd.c:291 libfdisk/src/dos.c:1348 #, fuzzy msgid "Last cylinder, +/-cylinders or +/-size{K,M,G,T,P}" msgstr "Última %s o +mida o +midaM o +midaK" # Parla d'etiquetes, segurament és femení -#: libfdisk/src/bsd.c:296 libfdisk/src/dos.c:1358 libfdisk/src/gpt.c:2495 +#: libfdisk/src/bsd.c:296 libfdisk/src/dos.c:1353 libfdisk/src/gpt.c:2496 #, fuzzy msgid "Last sector, +/-sectors or +/-size{K,M,G,T,P}" msgstr "Última %s o +mida o +midaM o +midaK" @@ -6216,7 +6211,7 @@ msgid "Sectors/Cylinder" msgstr "sectors/cilindre" #: libfdisk/src/bsd.c:491 libfdisk/src/bsd.c:1029 libfdisk/src/dos.c:2613 -#: libfdisk/src/sgi.c:1161 libfdisk/src/sun.c:203 libfdisk/src/sun.c:1133 +#: libfdisk/src/sgi.c:1162 libfdisk/src/sun.c:203 libfdisk/src/sun.c:1133 msgid "Cylinders" msgstr "Cilindres" @@ -6519,205 +6514,205 @@ msgstr "Valor establert invàlid: %s\n" msgid "Disk identifier changed from 0x%08x to 0x%08x." msgstr "" -#: libfdisk/src/dos.c:864 +#: libfdisk/src/dos.c:858 #, fuzzy, c-format msgid "Ignoring extra extended partition %zu" msgstr "S'està ignorant la partició estesa addicional %d\n" -#: libfdisk/src/dos.c:878 +#: libfdisk/src/dos.c:872 #, fuzzy, c-format msgid "Invalid flag 0x%02x%02x of EBR (for partition %zu) will be corrected by w(rite)." msgstr "Avís: el senyalador 0x%04x invàlid de la taula de particions %d es corregirà amb w(escriu)\n" -#: libfdisk/src/dos.c:955 +#: libfdisk/src/dos.c:949 #, fuzzy, c-format msgid "Start sector %ju out of range." msgstr "El valor està fora del rang.\n" -#: libfdisk/src/dos.c:1194 libfdisk/src/gpt.c:2369 libfdisk/src/sgi.c:842 +#: libfdisk/src/dos.c:1188 libfdisk/src/gpt.c:2370 libfdisk/src/sgi.c:842 #: libfdisk/src/sun.c:528 #, fuzzy, c-format msgid "Partition %zu is already defined. Delete it before re-adding it." msgstr "La partició %d ja està definida. Esborreu-la abans de tornar-la a afegir.\n" -#: libfdisk/src/dos.c:1209 libfdisk/src/dos.c:1235 libfdisk/src/dos.c:1292 -#: libfdisk/src/dos.c:1324 libfdisk/src/gpt.c:2378 +#: libfdisk/src/dos.c:1203 libfdisk/src/dos.c:1229 libfdisk/src/dos.c:1287 +#: libfdisk/src/dos.c:1319 libfdisk/src/gpt.c:2379 #, fuzzy msgid "No free sectors available." msgstr "No hi ha cap sector lliure disponible\n" -#: libfdisk/src/dos.c:1260 +#: libfdisk/src/dos.c:1254 #, fuzzy, c-format -msgid "Sector %llu is already allocated." +msgid "Sector %ju is already allocated." msgstr "El sector %d ja està assignat\n" -#: libfdisk/src/dos.c:1479 +#: libfdisk/src/dos.c:1474 #, fuzzy, c-format msgid "Adding logical partition %zu" msgstr "Partició lògica incorrecta" -#: libfdisk/src/dos.c:1510 +#: libfdisk/src/dos.c:1505 #, fuzzy, c-format msgid "Partition %zu: contains sector 0" msgstr "Avís: la partició %d conté el sector 0\n" -#: libfdisk/src/dos.c:1512 +#: libfdisk/src/dos.c:1507 #, fuzzy, c-format msgid "Partition %zu: head %d greater than maximum %d" msgstr "Partició %d: el capçal %d supera el màxim %d\n" -#: libfdisk/src/dos.c:1515 +#: libfdisk/src/dos.c:1510 #, fuzzy, c-format -msgid "Partition %zu: sector %d greater than maximum %llu" +msgid "Partition %zu: sector %d greater than maximum %ju" msgstr "Partició %d: el sector %d supera el màxim %d\n" -#: libfdisk/src/dos.c:1518 +#: libfdisk/src/dos.c:1514 #, fuzzy, c-format -msgid "Partition %zu: cylinder %d greater than maximum %llu" +msgid "Partition %zu: cylinder %d greater than maximum %ju" msgstr "Partició %d: el cilindre %d supera el màxim %d\n" -#: libfdisk/src/dos.c:1524 +#: libfdisk/src/dos.c:1520 #, fuzzy, c-format msgid "Partition %zu: previous sectors %u disagrees with total %u" msgstr "Partició %d: sectors anteriors %d difereixen del total %d\n" -#: libfdisk/src/dos.c:1577 +#: libfdisk/src/dos.c:1573 #, fuzzy, c-format msgid "Partition %zu: different physical/logical beginnings (non-Linux?): phys=(%d, %d, %d), logical=(%d, %d, %d)" msgstr "La partició %d té diferents començaments físics/lògics (no Linux?):\n" -#: libfdisk/src/dos.c:1588 +#: libfdisk/src/dos.c:1584 #, fuzzy, c-format msgid "Partition %zu: different physical/logical endings: phys=(%d, %d, %d), logical=(%d, %d, %d)" msgstr "La partició %d té diferents finals físics/lògics:\n" -#: libfdisk/src/dos.c:1597 +#: libfdisk/src/dos.c:1593 #, fuzzy, c-format msgid "Partition %zu: does not end on cylinder boundary." msgstr "La partició %d no acaba en un límit de cilindre.\n" -#: libfdisk/src/dos.c:1645 +#: libfdisk/src/dos.c:1641 #, fuzzy, c-format msgid "Partition %zu: bad start-of-data." msgstr "La partició %d no té cap àrea de dades\n" -#: libfdisk/src/dos.c:1660 +#: libfdisk/src/dos.c:1656 #, fuzzy, c-format msgid "Partition %zu: overlaps partition %zu." msgstr "Avís: la partició %d cavalca amb la partició %d.\n" -#: libfdisk/src/dos.c:1689 +#: libfdisk/src/dos.c:1685 #, fuzzy, c-format msgid "Partition %zu: empty." msgstr "Avís: la partició %d està buida\n" -#: libfdisk/src/dos.c:1696 +#: libfdisk/src/dos.c:1692 #, fuzzy, c-format msgid "Logical partition %zu: not entirely in partition %zu." msgstr "La partició lògica %d no està integrada en la partició %d\n" -#: libfdisk/src/dos.c:1705 libfdisk/src/gpt.c:2275 +#: libfdisk/src/dos.c:1701 libfdisk/src/gpt.c:2276 msgid "No errors detected." msgstr "" -#: libfdisk/src/dos.c:1707 +#: libfdisk/src/dos.c:1703 #, fuzzy, c-format -msgid "Total allocated sectors %llu greater than the maximum %llu." +msgid "Total allocated sectors %ju greater than the maximum %ju." msgstr "El total de sectors assignats %d supera el màxim de %lld\n" -#: libfdisk/src/dos.c:1710 +#: libfdisk/src/dos.c:1706 #, fuzzy, c-format -msgid "Remaining %lld unallocated %ld-byte sectors." +msgid "Remaining %ju unallocated %ld-byte sectors." msgstr "%lld sectors no assignats\n" -#: libfdisk/src/dos.c:1714 libfdisk/src/gpt.c:2295 +#: libfdisk/src/dos.c:1710 libfdisk/src/gpt.c:2296 #, c-format msgid "%d error detected." msgid_plural "%d errors detected." msgstr[0] "" msgstr[1] "" -#: libfdisk/src/dos.c:1747 +#: libfdisk/src/dos.c:1743 #, fuzzy msgid "The maximum number of partitions has been created." msgstr "S'ha creat el màxim nombre de particions\n" -#: libfdisk/src/dos.c:1780 libfdisk/src/dos.c:1795 libfdisk/src/dos.c:2248 +#: libfdisk/src/dos.c:1776 libfdisk/src/dos.c:1791 libfdisk/src/dos.c:2244 #, fuzzy msgid "Extended partition already exists." msgstr "Aquesta partició ja existeix.\n" -#: libfdisk/src/dos.c:1810 +#: libfdisk/src/dos.c:1806 msgid "Extended partition does not exists. Failed to add logical partition." msgstr "" -#: libfdisk/src/dos.c:1871 +#: libfdisk/src/dos.c:1867 #, fuzzy msgid "All primary partitions are in use." msgstr "S'usen totes les particions lògiques\n" -#: libfdisk/src/dos.c:1873 libfdisk/src/dos.c:1885 +#: libfdisk/src/dos.c:1869 libfdisk/src/dos.c:1881 #, fuzzy msgid "All space for primary partitions is in use." msgstr "S'usen totes les particions lògiques\n" #. TRANSLATORS: Try to keep this within 80 characters. -#: libfdisk/src/dos.c:1888 +#: libfdisk/src/dos.c:1884 #, fuzzy msgid "To create more partitions, first replace a primary with an extended partition." msgstr "Primer heu de suprimir alguna partició i afegir-ne una d'estesa\n" -#: libfdisk/src/dos.c:1909 +#: libfdisk/src/dos.c:1905 #, fuzzy msgid "Partition type" msgstr "Nombre de partició" -#: libfdisk/src/dos.c:1913 +#: libfdisk/src/dos.c:1909 #, c-format msgid "%u primary, %d extended, %u free" msgstr "" -#: libfdisk/src/dos.c:1918 +#: libfdisk/src/dos.c:1914 #, fuzzy msgid "primary" msgstr "Primària" -#: libfdisk/src/dos.c:1920 +#: libfdisk/src/dos.c:1916 #, fuzzy msgid "extended" msgstr "Estesa" -#: libfdisk/src/dos.c:1920 +#: libfdisk/src/dos.c:1916 #, fuzzy msgid "container for logical partitions" msgstr "Partició lògica incorrecta" -#: libfdisk/src/dos.c:1922 +#: libfdisk/src/dos.c:1918 #, fuzzy msgid "logical" msgstr "Lògica" -#: libfdisk/src/dos.c:1922 +#: libfdisk/src/dos.c:1918 #, fuzzy msgid "numbered from 5" msgstr "l lògica (5 o superior)" -#: libfdisk/src/dos.c:1961 +#: libfdisk/src/dos.c:1957 #, fuzzy, c-format msgid "Invalid partition type `%c'." msgstr "Nombre de partició no vàlid per al tipus `%c'\n" -#: libfdisk/src/dos.c:1979 +#: libfdisk/src/dos.c:1975 #, fuzzy, c-format msgid "Cannot write sector %jd: seek failed" msgstr "%s: no s'ha pogut trobar el dispositiu per a %s\n" -#: libfdisk/src/dos.c:2139 libfdisk/src/gpt.c:1294 +#: libfdisk/src/dos.c:2135 libfdisk/src/gpt.c:1295 #, fuzzy msgid "Disk identifier" msgstr "Unitat de disc: %s" -#: libfdisk/src/dos.c:2253 +#: libfdisk/src/dos.c:2249 #, fuzzy msgid "Type 0 means free space to many systems. Having partitions of type 0 is probably unwise." msgstr "" @@ -6726,26 +6721,23 @@ msgstr "" "particions del tipus 0. Les podeu suprimir amb\n" "l'ordre «d».\n" -#: libfdisk/src/dos.c:2258 +#: libfdisk/src/dos.c:2254 msgid "Cannot change type of the extended partition which is already used by logical partitions. Delete logical partitions first." msgstr "" -#: libfdisk/src/dos.c:2444 libfdisk/src/gpt.c:3100 -#, fuzzy -msgid "Nothing to do. Ordering is correct already." -msgstr "" -"Res a fer. L'ordenament ja és correcte.\n" -"\n" - -#: libfdisk/src/dos.c:2499 +#: libfdisk/src/dos.c:2493 #, fuzzy, c-format msgid "Partition %zu: no data area." msgstr "La partició %d no té cap àrea de dades\n" -#: libfdisk/src/dos.c:2532 +#: libfdisk/src/dos.c:2527 msgid "New beginning of data" msgstr "Nou començament de dades" +#: libfdisk/src/dos.c:2543 +msgid "The new beginning of the partition overlaps the disk label area. Be very careful when using the partition. You can lose all your partitions on the disk." +msgstr "" + #: libfdisk/src/dos.c:2588 #, fuzzy, c-format msgid "Partition %zu: is an extended partition." @@ -6761,7 +6753,7 @@ msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" msgid "The bootable flag on partition %zu is disabled now." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: libfdisk/src/dos.c:2608 libfdisk/src/gpt.c:3189 libfdisk/src/sgi.c:1157 +#: libfdisk/src/dos.c:2608 libfdisk/src/gpt.c:3188 libfdisk/src/sgi.c:1158 #: libfdisk/src/sun.c:1129 msgid "Device" msgstr "Dispositiu" @@ -6770,7 +6762,7 @@ msgstr "Dispositiu" msgid "Boot" msgstr "Arrencada" -#: libfdisk/src/dos.c:2615 libfdisk/src/sgi.c:1163 libfdisk/src/sun.c:1135 +#: libfdisk/src/dos.c:2615 libfdisk/src/sgi.c:1164 libfdisk/src/sun.c:1135 msgid "Id" msgstr "" @@ -6783,351 +6775,368 @@ msgstr "inici" msgid "End-C/H/S" msgstr "" -#: libfdisk/src/dos.c:2621 libfdisk/src/gpt.c:3199 libfdisk/src/sgi.c:1165 +#: libfdisk/src/dos.c:2621 libfdisk/src/gpt.c:3198 libfdisk/src/sgi.c:1166 msgid "Attrs" msgstr "" -#: libfdisk/src/gpt.c:690 +#: libfdisk/src/gpt.c:691 #, fuzzy msgid "failed to allocate GPT header" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: libfdisk/src/gpt.c:799 +#: libfdisk/src/gpt.c:800 msgid "First LBA specified by script is out of range." msgstr "" -#: libfdisk/src/gpt.c:811 +#: libfdisk/src/gpt.c:812 msgid "Last LBA specified by script is out of range." msgstr "" -#: libfdisk/src/gpt.c:952 +#: libfdisk/src/gpt.c:953 #, c-format msgid "GPT PMBR size mismatch (% != %) will be corrected by write." msgstr "" -#: libfdisk/src/gpt.c:977 +#: libfdisk/src/gpt.c:978 #, fuzzy msgid "gpt: stat() failed" msgstr "la cerca ha fallat" -#: libfdisk/src/gpt.c:987 +#: libfdisk/src/gpt.c:988 #, c-format msgid "gpt: cannot handle files with mode %o" msgstr "" -#: libfdisk/src/gpt.c:1252 +#: libfdisk/src/gpt.c:1253 msgid "GPT Header" msgstr "" -#: libfdisk/src/gpt.c:1257 +#: libfdisk/src/gpt.c:1258 msgid "GPT Entries" msgstr "" -#: libfdisk/src/gpt.c:1263 +#: libfdisk/src/gpt.c:1264 msgid "GPT Backup Entries" msgstr "" -#: libfdisk/src/gpt.c:1269 +#: libfdisk/src/gpt.c:1270 msgid "GPT Backup Header" msgstr "" # Parla d'etiquetes, segurament és femení -#: libfdisk/src/gpt.c:1301 +#: libfdisk/src/gpt.c:1302 #, fuzzy msgid "First LBA" msgstr "Primera %s" -#: libfdisk/src/gpt.c:1306 +#: libfdisk/src/gpt.c:1307 #, fuzzy msgid "Last LBA" msgstr " Últim %s" #. TRANSLATORS: The LBA (Logical Block Address) of the backup GPT header. -#: libfdisk/src/gpt.c:1312 +#: libfdisk/src/gpt.c:1313 msgid "Alternative LBA" msgstr "" #. TRANSLATORS: The start of the array of partition entries. -#: libfdisk/src/gpt.c:1318 +#: libfdisk/src/gpt.c:1319 #, fuzzy msgid "Partition entries LBA" msgstr "S'ha seleccionat la partició %d\n" -#: libfdisk/src/gpt.c:1323 +#: libfdisk/src/gpt.c:1324 #, fuzzy msgid "Allocated partition entries" msgstr "S'ha seleccionat la partició %d\n" -#: libfdisk/src/gpt.c:1665 +#: libfdisk/src/gpt.c:1666 msgid "The backup GPT table is corrupt, but the primary appears OK, so that will be used." msgstr "" -#: libfdisk/src/gpt.c:1675 +#: libfdisk/src/gpt.c:1676 msgid "The primary GPT table is corrupt, but the backup appears OK, so that will be used." msgstr "" -#: libfdisk/src/gpt.c:1691 +#: libfdisk/src/gpt.c:1692 msgid "The backup GPT table is not on the end of the device." msgstr "" -#: libfdisk/src/gpt.c:1694 +#: libfdisk/src/gpt.c:1695 msgid "The backup GPT table is not on the end of the device. This problem will be corrected by write." msgstr "" -#: libfdisk/src/gpt.c:1698 +#: libfdisk/src/gpt.c:1699 #, fuzzy msgid "Failed to recalculate backup GPT table location" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: libfdisk/src/gpt.c:1853 +#: libfdisk/src/gpt.c:1854 #, fuzzy, c-format msgid "unsupported GPT attribute bit '%s'" msgstr "%s: argument desconegut: %s\n" -#: libfdisk/src/gpt.c:1858 +#: libfdisk/src/gpt.c:1859 #, fuzzy, c-format msgid "failed to parse GPT attribute string '%s'" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libfdisk/src/gpt.c:1958 +#: libfdisk/src/gpt.c:1959 #, fuzzy, c-format msgid "Partition UUID changed from %s to %s." msgstr "No s'ha pogut escriure la partició a %s\n" -#: libfdisk/src/gpt.c:1967 +#: libfdisk/src/gpt.c:1968 #, fuzzy msgid "Failed to translate partition name, name not changed." msgstr "torna a llegir la taula de particions" -#: libfdisk/src/gpt.c:1969 +#: libfdisk/src/gpt.c:1970 #, fuzzy, c-format msgid "Partition name changed from '%s' to '%.*s'." msgstr "No s'ha pogut escriure la partició a %s\n" -#: libfdisk/src/gpt.c:1998 +#: libfdisk/src/gpt.c:1999 #, fuzzy msgid "The start of the partition understeps FirstUsableLBA." msgstr "" "\n" "La partició d'arrencada no existeix.\n" -#: libfdisk/src/gpt.c:2005 +#: libfdisk/src/gpt.c:2006 #, fuzzy msgid "The end of the partition oversteps LastUsableLBA." msgstr "No s'ha pogut escriure la partició a %s\n" -#: libfdisk/src/gpt.c:2163 +#: libfdisk/src/gpt.c:2164 msgid "The device contains hybrid MBR -- writing GPT only." msgstr "" -#: libfdisk/src/gpt.c:2199 +#: libfdisk/src/gpt.c:2200 #, fuzzy msgid "Disk does not contain a valid backup header." msgstr "El disc %s no conté una taula de particions vàlida\n" -#: libfdisk/src/gpt.c:2204 +#: libfdisk/src/gpt.c:2205 msgid "Invalid primary header CRC checksum." msgstr "" -#: libfdisk/src/gpt.c:2208 +#: libfdisk/src/gpt.c:2209 msgid "Invalid backup header CRC checksum." msgstr "" -#: libfdisk/src/gpt.c:2213 +#: libfdisk/src/gpt.c:2214 #, fuzzy msgid "Invalid partition entry checksum." msgstr "Nombre de partició no vàlid per al tipus `%c'\n" -#: libfdisk/src/gpt.c:2218 +#: libfdisk/src/gpt.c:2219 msgid "Invalid primary header LBA sanity checks." msgstr "" -#: libfdisk/src/gpt.c:2222 +#: libfdisk/src/gpt.c:2223 msgid "Invalid backup header LBA sanity checks." msgstr "" -#: libfdisk/src/gpt.c:2227 +#: libfdisk/src/gpt.c:2228 msgid "MyLBA mismatch with real position at primary header." msgstr "" -#: libfdisk/src/gpt.c:2231 +#: libfdisk/src/gpt.c:2232 msgid "MyLBA mismatch with real position at backup header." msgstr "" -#: libfdisk/src/gpt.c:2236 +#: libfdisk/src/gpt.c:2237 msgid "Disk is too small to hold all data." msgstr "" -#: libfdisk/src/gpt.c:2246 +#: libfdisk/src/gpt.c:2247 msgid "Primary and backup header mismatch." msgstr "" -#: libfdisk/src/gpt.c:2252 +#: libfdisk/src/gpt.c:2253 #, fuzzy, c-format msgid "Partition %u overlaps with partition %u." msgstr "Avís: la partició %d cavalca amb la partició %d.\n" -#: libfdisk/src/gpt.c:2259 +#: libfdisk/src/gpt.c:2260 #, fuzzy, c-format msgid "Partition %u is too big for the disk." msgstr "S'ha produït un encavalcament de particions al disc. Corregiu-ho.\n" -#: libfdisk/src/gpt.c:2266 +#: libfdisk/src/gpt.c:2267 #, fuzzy, c-format msgid "Partition %u ends before it starts." msgstr "La partició acaba abans del sector 0" -#: libfdisk/src/gpt.c:2276 +#: libfdisk/src/gpt.c:2277 #, fuzzy, c-format msgid "Header version: %s" msgstr "s'ha produït un error en cercar" -#: libfdisk/src/gpt.c:2277 +#: libfdisk/src/gpt.c:2278 #, fuzzy, c-format msgid "Using %zu out of %zu partitions." msgstr "és estrany, només hi ha definides %d particions.\n" -#: libfdisk/src/gpt.c:2287 +#: libfdisk/src/gpt.c:2288 #, fuzzy, c-format msgid "A total of %ju free sectors is available in %u segment." msgid_plural "A total of %ju free sectors is available in %u segments (the largest is %s)." msgstr[0] "No hi ha cap sector lliure disponible\n" msgstr[1] "No hi ha cap sector lliure disponible\n" -#: libfdisk/src/gpt.c:2374 +#: libfdisk/src/gpt.c:2375 #, fuzzy msgid "All partitions are already in use." msgstr "Aquesta partició ja està en ús" -#: libfdisk/src/gpt.c:2431 libfdisk/src/gpt.c:2458 +#: libfdisk/src/gpt.c:2432 libfdisk/src/gpt.c:2459 #, fuzzy, c-format msgid "Sector %ju already used." msgstr "El sector %d ja està assignat\n" -#: libfdisk/src/gpt.c:2524 +#: libfdisk/src/gpt.c:2525 #, fuzzy, c-format msgid "Could not create partition %zu" msgstr "No creïs cap partició" -#: libfdisk/src/gpt.c:2531 +#: libfdisk/src/gpt.c:2532 #, c-format msgid "The last usable GPT sector is %ju, but %ju is requested." msgstr "" -#: libfdisk/src/gpt.c:2538 +#: libfdisk/src/gpt.c:2539 #, c-format msgid "The first usable GPT sector is %ju, but %ju is requested." msgstr "" -#: libfdisk/src/gpt.c:2677 +#: libfdisk/src/gpt.c:2678 #, fuzzy, c-format msgid "Created a new GPT disklabel (GUID: %s)." msgstr " s crea una etiqueta de disc Sun nova" -#: libfdisk/src/gpt.c:2680 +#: libfdisk/src/gpt.c:2681 #, fuzzy, c-format -msgid "The maximal number of partitions is %d (default is %d)." +msgid "The maximal number of partitions is %zu (default is %zu)." msgstr "S'ha creat el màxim nombre de particions\n" -#: libfdisk/src/gpt.c:2702 +#: libfdisk/src/gpt.c:2703 msgid "Enter new disk UUID (in 8-4-4-4-12 format)" msgstr "" -#: libfdisk/src/gpt.c:2710 +#: libfdisk/src/gpt.c:2711 #, fuzzy msgid "Failed to parse your UUID." msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libfdisk/src/gpt.c:2724 +#: libfdisk/src/gpt.c:2725 #, fuzzy, c-format msgid "Disk identifier changed from %s to %s." msgstr "No s'ha pogut escriure la partició a %s\n" -#: libfdisk/src/gpt.c:2744 +#: libfdisk/src/gpt.c:2745 #, fuzzy msgid "Not enough space for new partition table!" msgstr "No hi ha cap sector lliure disponible\n" -#: libfdisk/src/gpt.c:2755 +#: libfdisk/src/gpt.c:2756 #, fuzzy, c-format msgid "Partition #%zu out of range (minimal start is % sectors)" msgstr "La partició %s no és vàlida perquè comença pel sector 0.\n" -#: libfdisk/src/gpt.c:2760 +#: libfdisk/src/gpt.c:2761 #, c-format msgid "Partition #%zu out of range (maximal end is % sectors)" msgstr "" -#: libfdisk/src/gpt.c:2806 +#: libfdisk/src/gpt.c:2807 #, fuzzy msgid "The partition entry size is zero." msgstr "" "\n" "La partició d'arrencada no existeix.\n" -#: libfdisk/src/gpt.c:2808 +#: libfdisk/src/gpt.c:2809 #, fuzzy, c-format msgid "The number of the partition has to be smaller than %zu." msgstr "S'ha creat el màxim nombre de particions\n" -#: libfdisk/src/gpt.c:2832 +#: libfdisk/src/gpt.c:2833 #, fuzzy msgid "Cannot allocate memory!" msgstr "no s'ha pogut bifurcar" -#: libfdisk/src/gpt.c:2861 +#: libfdisk/src/gpt.c:2862 #, fuzzy, c-format -msgid "Partition table length changed from % to %." +msgid "Partition table length changed from % to %." msgstr "No s'ha pogut escriure la partició a %s\n" -#: libfdisk/src/gpt.c:2971 +#: libfdisk/src/gpt.c:2972 #, fuzzy, c-format msgid "The attributes on partition %zu changed to 0x%016." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: libfdisk/src/gpt.c:3021 +#: libfdisk/src/gpt.c:3022 msgid "Enter GUID specific bit" msgstr "" -#: libfdisk/src/gpt.c:3036 +#: libfdisk/src/gpt.c:3037 #, fuzzy, c-format msgid "failed to toggle unsupported bit %lu" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libfdisk/src/gpt.c:3049 +#: libfdisk/src/gpt.c:3050 #, fuzzy, c-format msgid "The GUID specific bit %d on partition %zu is enabled now." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: libfdisk/src/gpt.c:3050 +#: libfdisk/src/gpt.c:3051 #, c-format msgid "The GUID specific bit %d on partition %zu is disabled now." msgstr "" -#: libfdisk/src/gpt.c:3054 +#: libfdisk/src/gpt.c:3055 #, fuzzy, c-format msgid "The %s flag on partition %zu is enabled now." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: libfdisk/src/gpt.c:3055 +#: libfdisk/src/gpt.c:3056 #, fuzzy, c-format msgid "The %s flag on partition %zu is disabled now." msgstr "S'ha canviat el tipus del sistema de la partició %d per %x (%s)\n" -#: libfdisk/src/gpt.c:3196 +#: libfdisk/src/gpt.c:3195 #, fuzzy msgid "Type-UUID" msgstr "Tipus" -#: libfdisk/src/gpt.c:3197 +#: libfdisk/src/gpt.c:3196 msgid "UUID" msgstr "UUID" -#: libfdisk/src/gpt.c:3198 login-utils/chfn.c:156 login-utils/chfn.c:158 -#: login-utils/chfn.c:322 +#: libfdisk/src/gpt.c:3197 login-utils/chfn.c:151 login-utils/chfn.c:153 +#: login-utils/chfn.c:312 msgid "Name" msgstr "Nom" +#: libfdisk/src/label.c:597 +#, fuzzy +msgid "Partitions order fixed." +msgstr "No hi han particions definides\n" + +#: libfdisk/src/label.c:600 +#, fuzzy +msgid "Nothing to do. Ordering is correct already." +msgstr "" +"Res a fer. L'ordenament ja és correcte.\n" +"\n" + +#: libfdisk/src/label.c:603 +#, fuzzy +msgid "Failed to fix partitions order." +msgstr " f arregla l'ordre de les particions" + #: libfdisk/src/partition.c:871 #, fuzzy msgid "Free space" @@ -7394,22 +7403,22 @@ msgstr "Última %s o +mida o +midaM o +midaK" #: libfdisk/src/sgi.c:989 libfdisk/src/sun.c:248 #, fuzzy, c-format -msgid "BLKGETSIZE ioctl failed on %s. Using geometry cylinder value of %llu. This value may be truncated for devices > 33.8 GB." +msgid "BLKGETSIZE ioctl failed on %s. Using geometry cylinder value of %ju. This value may be truncated for devices > 33.8 GB." msgstr "" "Avís: no s'ha pogut executar ioctl BLKGETSIZE a %s. S'està utilitzant el valor de la geometria del cilindre %d.\n" "Aquest valor es pot truncar per a dispositius > 33.8 GB.\n" -#: libfdisk/src/sgi.c:1055 +#: libfdisk/src/sgi.c:1056 #, fuzzy msgid "Created a new SGI disklabel." msgstr " s crea una etiqueta de disc Sun nova" -#: libfdisk/src/sgi.c:1074 +#: libfdisk/src/sgi.c:1075 #, fuzzy msgid "Sorry, only for non-empty partitions you can change the tag." msgstr "Només el superusuari port canviar el rellotge del sistema.\n" -#: libfdisk/src/sgi.c:1080 +#: libfdisk/src/sgi.c:1081 #, fuzzy msgid "Consider leaving partition 9 as volume header (0), and partition 11 as entire volume (6), as IRIX expects it." msgstr "" @@ -7418,7 +7427,7 @@ msgstr "" "espera.\n" "\n" -#: libfdisk/src/sgi.c:1089 +#: libfdisk/src/sgi.c:1090 #, fuzzy msgid "It is highly recommended that the partition at offset 0 is of type \"SGI volhdr\", the IRIX system will rely on it to retrieve from its directory standalone tools like sash and fx. Only the \"SGI volume\" entire disk section may violate this. Are you sure about tagging this partition differently?" msgstr "" @@ -7477,12 +7486,12 @@ msgstr "SunOS usr" #: libfdisk/src/sun.c:86 #, c-format -msgid "%#zu: start cylinder overflows Sun label limits" +msgid "#%zu: start cylinder overflows Sun label limits" msgstr "" #: libfdisk/src/sun.c:89 #, c-format -msgid "%#zu: number of sectors overflow Sun label limits" +msgid "#%zu: number of sectors overflow Sun label limits" msgstr "" #: libfdisk/src/sun.c:136 @@ -7660,335 +7669,335 @@ msgstr "" msgid "operation failed: %m" msgstr "(Fitxer següent: %s)" -#: libmount/src/context_mount.c:1653 +#: libmount/src/context_mount.c:1650 #, fuzzy, c-format msgid "WARNING: failed to apply propagation flags" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libmount/src/context_mount.c:1663 +#: libmount/src/context_mount.c:1660 #, fuzzy, c-format msgid "WARNING: source write-protected, mounted read-only" msgstr "mount: %s%s està protegit contra escriptura; es muntarà en només lectura" -#: libmount/src/context_mount.c:1677 +#: libmount/src/context_mount.c:1674 #, c-format msgid "operation permitted for root only" msgstr "" -#: libmount/src/context_mount.c:1681 +#: libmount/src/context_mount.c:1678 #, fuzzy, c-format msgid "%s is already mounted" msgstr "mount: %s ja està muntat a %s\n" -#: libmount/src/context_mount.c:1687 +#: libmount/src/context_mount.c:1684 #, fuzzy, c-format msgid "can't find in %s" msgstr "mount: no s'ha pogut trobar %s a %s" -#: libmount/src/context_mount.c:1690 +#: libmount/src/context_mount.c:1687 #, fuzzy, c-format msgid "can't find mount point in %s" msgstr "mount: no s'ha pogut trobar %s a %s" -#: libmount/src/context_mount.c:1693 +#: libmount/src/context_mount.c:1690 #, fuzzy, c-format msgid "can't find mount source %s in %s" msgstr "mount: no s'ha pogut trobar %s a %s" -#: libmount/src/context_mount.c:1698 +#: libmount/src/context_mount.c:1695 #, c-format msgid "more filesystems detected on %s; use -t or wipefs(8)" msgstr "" -#: libmount/src/context_mount.c:1703 +#: libmount/src/context_mount.c:1700 #, fuzzy, c-format msgid "failed to determine filesystem type" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libmount/src/context_mount.c:1704 +#: libmount/src/context_mount.c:1701 #, fuzzy, c-format msgid "no filesystem type specified" msgstr "No s'ha especificat l'opció --date.\n" -#: libmount/src/context_mount.c:1711 +#: libmount/src/context_mount.c:1708 #, fuzzy, c-format msgid "can't find %s" msgstr "%s: no s'ha pogut enllaçar %s: %s\n" -#: libmount/src/context_mount.c:1713 +#: libmount/src/context_mount.c:1710 #, fuzzy, c-format msgid "no mount source specified" msgstr "No s'ha especificat l'opció --date.\n" -#: libmount/src/context_mount.c:1719 +#: libmount/src/context_mount.c:1716 #, fuzzy, c-format msgid "failed to parse mount options: %m" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libmount/src/context_mount.c:1720 +#: libmount/src/context_mount.c:1717 #, fuzzy, c-format msgid "failed to parse mount options" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: libmount/src/context_mount.c:1724 +#: libmount/src/context_mount.c:1721 #, fuzzy, c-format msgid "failed to setup loop device for %s" msgstr "no s'ha pogut rebobinar el dispositiu d'intercanvi" -#: libmount/src/context_mount.c:1728 +#: libmount/src/context_mount.c:1725 #, fuzzy, c-format msgid "overlapping loop device exists for %s" msgstr "%s: %s no és un dispositiu lp.\n" -#: libmount/src/context_mount.c:1732 libmount/src/context_umount.c:1270 +#: libmount/src/context_mount.c:1729 libmount/src/context_umount.c:1259 #, fuzzy, c-format msgid "locking failed" msgstr "no s'ha pogut executar exec\n" -#: libmount/src/context_mount.c:1736 libmount/src/context_umount.c:1276 -#: sys-utils/umount.c:257 sys-utils/umount.c:273 +#: libmount/src/context_mount.c:1733 libmount/src/context_umount.c:1265 +#: sys-utils/umount.c:252 sys-utils/umount.c:268 #, fuzzy, c-format msgid "failed to switch namespace" msgstr "no s'ha pogut executar «stat» al camí\n" -#: libmount/src/context_mount.c:1739 +#: libmount/src/context_mount.c:1736 #, fuzzy, c-format msgid "mount failed: %m" msgstr "no s'ha estat possible muntar" -#: libmount/src/context_mount.c:1749 +#: libmount/src/context_mount.c:1746 #, fuzzy, c-format msgid "filesystem was mounted, but failed to update userspace mount table" msgstr "mount: no ha estat possible muntar" -#: libmount/src/context_mount.c:1755 +#: libmount/src/context_mount.c:1752 #, fuzzy, c-format msgid "filesystem was mounted, but failed to switch namespace back" msgstr "mount: no ha estat possible muntar" -#: libmount/src/context_mount.c:1762 +#: libmount/src/context_mount.c:1759 #, fuzzy, c-format msgid "filesystem was mounted, but any subsequent operation failed: %m" msgstr "mount: no ha estat possible muntar" -#: libmount/src/context_mount.c:1780 libmount/src/context_mount.c:1825 +#: libmount/src/context_mount.c:1777 libmount/src/context_mount.c:1822 #, fuzzy, c-format msgid "mount point is not a directory" msgstr "mount: el punt de muntatge %s no és un directori" -#: libmount/src/context_mount.c:1782 login-utils/newgrp.c:226 +#: libmount/src/context_mount.c:1779 login-utils/newgrp.c:228 #, fuzzy, c-format msgid "permission denied" msgstr "mount: s'ha denegat el permís" -#: libmount/src/context_mount.c:1784 +#: libmount/src/context_mount.c:1781 #, fuzzy, c-format msgid "must be superuser to use mount" msgstr "mount: haureu de ser un superusuari per a usar mount" -#: libmount/src/context_mount.c:1791 +#: libmount/src/context_mount.c:1788 #, fuzzy, c-format msgid "mount point is busy" msgstr "mount: %s està ocupat" -#: libmount/src/context_mount.c:1798 +#: libmount/src/context_mount.c:1795 #, fuzzy, c-format msgid "%s already mounted on %s" msgstr "mount: %s ja està muntat a %s\n" -#: libmount/src/context_mount.c:1802 +#: libmount/src/context_mount.c:1799 #, fuzzy, c-format msgid "%s already mounted or mount point busy" msgstr "mount: %s ja està muntat o %s està ocupat" -#: libmount/src/context_mount.c:1807 +#: libmount/src/context_mount.c:1804 #, fuzzy, c-format msgid "mount point does not exist" msgstr "mount: el punt de muntatge %s no existeix" -#: libmount/src/context_mount.c:1810 +#: libmount/src/context_mount.c:1807 #, fuzzy, c-format msgid "mount point is a symbolic link to nowhere" msgstr "mount: el punt de muntatge %s és un enllaç simbòlic sense destí" -#: libmount/src/context_mount.c:1815 +#: libmount/src/context_mount.c:1812 #, fuzzy, c-format msgid "special device %s does not exist" msgstr "mount: el dispositiu especial %s no existeix" -#: libmount/src/context_mount.c:1818 libmount/src/context_mount.c:1834 -#: libmount/src/context_mount.c:1918 libmount/src/context_mount.c:1941 +#: libmount/src/context_mount.c:1815 libmount/src/context_mount.c:1831 +#: libmount/src/context_mount.c:1915 libmount/src/context_mount.c:1938 #, fuzzy, c-format msgid "mount(2) system call failed: %m" msgstr "no s'ha estat possible muntar" -#: libmount/src/context_mount.c:1830 +#: libmount/src/context_mount.c:1827 #, fuzzy, c-format msgid "special device %s does not exist (a path prefix is not a directory)" msgstr "" "mount: el dispositiu especial %s no existeix\n" " (un prefix de camí no és un directori)\n" -#: libmount/src/context_mount.c:1842 +#: libmount/src/context_mount.c:1839 #, fuzzy, c-format msgid "mount point not mounted or bad option" msgstr "mount: %s encara no està muntat o una opció és incorrecta" -#: libmount/src/context_mount.c:1844 +#: libmount/src/context_mount.c:1841 #, fuzzy, c-format msgid "not mount point or bad option" msgstr "mount: %s encara no està muntat o una opció és incorrecta" -#: libmount/src/context_mount.c:1847 +#: libmount/src/context_mount.c:1844 #, c-format msgid "bad option; moving a mount residing under a shared mount is unsupported" msgstr "" -#: libmount/src/context_mount.c:1851 +#: libmount/src/context_mount.c:1848 #, c-format msgid "bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount. helper program" msgstr "" -#: libmount/src/context_mount.c:1855 +#: libmount/src/context_mount.c:1852 #, fuzzy, c-format msgid "wrong fs type, bad option, bad superblock on %s, missing codepage or helper program, or other error" msgstr "" "mount: el tipus de sistema de fitxers o és correcte, la opció no és correcta,\n" " superbloc incorrecte a %s, manca la pàgina de codis o algun altre error" -#: libmount/src/context_mount.c:1862 +#: libmount/src/context_mount.c:1859 #, c-format msgid "mount table full" msgstr "la taula de dispositius muntats està plena" -#: libmount/src/context_mount.c:1867 +#: libmount/src/context_mount.c:1864 #, fuzzy, c-format msgid "can't read superblock on %s" msgstr "mount: %s: no s'ha pogut llegir el superbloc" -#: libmount/src/context_mount.c:1874 +#: libmount/src/context_mount.c:1871 #, fuzzy, c-format msgid "unknown filesystem type '%s'" msgstr "mount: no es reconeix el sitema de fitxers «%s»" -#: libmount/src/context_mount.c:1877 +#: libmount/src/context_mount.c:1874 #, fuzzy, c-format msgid "unknown filesystem type" msgstr "mount: no es reconeix el sitema de fitxers «%s»" -#: libmount/src/context_mount.c:1886 +#: libmount/src/context_mount.c:1883 #, fuzzy, c-format msgid "%s is not a block device, and stat(2) fails?" msgstr "mount: %s no és cap dispositiu de blocs, i stat falla?" -#: libmount/src/context_mount.c:1889 +#: libmount/src/context_mount.c:1886 #, fuzzy, c-format msgid "the kernel does not recognize %s as a block device; maybe \"modprobe driver\" is necessary" msgstr "" "mount: el nucli no reconeix %s com a dispositiu de blocs\n" " (potser fent «insmod controlador»?)" -#: libmount/src/context_mount.c:1892 +#: libmount/src/context_mount.c:1889 #, fuzzy, c-format msgid "%s is not a block device; try \"-o loop\"" msgstr "mount: %s no és un dispositiu de blocs (proveu amb `-o loop')" -#: libmount/src/context_mount.c:1894 +#: libmount/src/context_mount.c:1891 #, fuzzy, c-format msgid "%s is not a block device" msgstr "%s: no és un dispositiu de bloc\n" -#: libmount/src/context_mount.c:1901 +#: libmount/src/context_mount.c:1898 #, fuzzy, c-format msgid "%s is not a valid block device" msgstr "mount: %s no és un dispositiu de blocs vàlid" -#: libmount/src/context_mount.c:1909 +#: libmount/src/context_mount.c:1906 #, fuzzy, c-format msgid "cannot mount %s read-only" msgstr "mount : no s'ha pogut muntar %s%s com a només de lectura" -#: libmount/src/context_mount.c:1911 +#: libmount/src/context_mount.c:1908 #, fuzzy, c-format msgid "%s is write-protected but explicit read-write mode requested" msgstr "mount : %s%s està protegit contra escriptura però se li ha donat el senyalador explícit «-w»" -#: libmount/src/context_mount.c:1913 +#: libmount/src/context_mount.c:1910 #, fuzzy, c-format msgid "cannot remount %s read-write, is write-protected" msgstr "mount : no s'ha pogut muntar %s%s com a només de lectura" -#: libmount/src/context_mount.c:1915 +#: libmount/src/context_mount.c:1912 #, fuzzy, c-format msgid "bind %s failed" msgstr "la cerca ha fallat" -#: libmount/src/context_mount.c:1926 +#: libmount/src/context_mount.c:1923 #, fuzzy, c-format msgid "no medium found on %s" msgstr "mount: %s ja està muntat a %s\n" -#: libmount/src/context_mount.c:1933 +#: libmount/src/context_mount.c:1930 #, fuzzy, c-format msgid "cannot mount; probably corrupted filesystem on %s" msgstr "no s'intentarà crear cap sistema de fitxers a '%s'" -#: libmount/src/context_umount.c:1264 libmount/src/context_umount.c:1318 +#: libmount/src/context_umount.c:1253 libmount/src/context_umount.c:1307 #, fuzzy, c-format msgid "not mounted" msgstr "umount: %s: no s'ha trobat" -#: libmount/src/context_umount.c:1280 +#: libmount/src/context_umount.c:1269 #, fuzzy, c-format msgid "umount failed: %m" msgstr "no s'ha estat possible muntar" -#: libmount/src/context_umount.c:1289 +#: libmount/src/context_umount.c:1278 #, fuzzy, c-format msgid "filesystem was unmounted, but failed to update userspace mount table" msgstr "mount: no ha estat possible muntar" -#: libmount/src/context_umount.c:1295 +#: libmount/src/context_umount.c:1284 #, fuzzy, c-format msgid "filesystem was unmounted, but failed to switch namespace back" msgstr "mount: no ha estat possible muntar" -#: libmount/src/context_umount.c:1302 +#: libmount/src/context_umount.c:1291 #, fuzzy, c-format msgid "filesystem was unmounted, but any subsequent operation failed: %m" msgstr "mount: no ha estat possible muntar" -#: libmount/src/context_umount.c:1315 +#: libmount/src/context_umount.c:1304 #, fuzzy, c-format msgid "invalid block device" msgstr "umount: %s: dispositiu de blocs no vàlid" -#: libmount/src/context_umount.c:1321 +#: libmount/src/context_umount.c:1310 #, fuzzy, c-format msgid "can't write superblock" msgstr "mount: %s: no s'ha pogut llegir el superbloc" -#: libmount/src/context_umount.c:1324 +#: libmount/src/context_umount.c:1313 #, fuzzy, c-format msgid "target is busy" msgstr "mount: %s està ocupat" -#: libmount/src/context_umount.c:1327 +#: libmount/src/context_umount.c:1316 #, fuzzy, c-format msgid "no mount point specified" msgstr "No s'ha especificat l'opció --date.\n" -#: libmount/src/context_umount.c:1330 +#: libmount/src/context_umount.c:1319 #, fuzzy, c-format msgid "must be superuser to unmount" msgstr "umount: %s: haureu de ser superusuari per poder usar umount" -#: libmount/src/context_umount.c:1333 +#: libmount/src/context_umount.c:1322 #, fuzzy, c-format msgid "block devices are not permitted on filesystem" msgstr "umount: %s: dispositius de blocs no permesos en el sistema de fitxers" -#: libmount/src/context_umount.c:1336 +#: libmount/src/context_umount.c:1325 #, fuzzy, c-format msgid "umount(2) system call failed: %m" msgstr "no s'ha estat possible muntar" @@ -8056,223 +8065,223 @@ msgstr "namei: desbordament de la memòria intermèdia\n" msgid "time % is out of range." msgstr "El valor està fora del rang.\n" -#: login-utils/chfn.c:96 login-utils/chsh.c:75 login-utils/lslogins.c:1382 +#: login-utils/chfn.c:91 login-utils/chsh.c:70 login-utils/lslogins.c:1397 #, fuzzy, c-format msgid " %s [options] []\n" msgstr "forma d'ús: namei [-mx] camí [camí ...]\n" -#: login-utils/chfn.c:99 +#: login-utils/chfn.c:94 #, fuzzy msgid "Change your finger information.\n" msgstr "S'està canviant la informació del finger per a l'usuari %s.\n" -#: login-utils/chfn.c:102 +#: login-utils/chfn.c:97 msgid " -f, --full-name real name\n" msgstr "" -#: login-utils/chfn.c:103 +#: login-utils/chfn.c:98 msgid " -o, --office office number\n" msgstr "" -#: login-utils/chfn.c:104 +#: login-utils/chfn.c:99 #, fuzzy msgid " -p, --office-phone office phone number\n" msgstr "" "[ -p telèfon_oficina ]\n" "\t[ -h telèfon_particular ] " -#: login-utils/chfn.c:105 +#: login-utils/chfn.c:100 msgid " -h, --home-phone home phone number\n" msgstr "" -#: login-utils/chfn.c:123 +#: login-utils/chfn.c:118 #, fuzzy, c-format msgid "field %s is too long" msgstr "el camp és massa llarg.\n" -#: login-utils/chfn.c:127 login-utils/chsh.c:237 +#: login-utils/chfn.c:122 login-utils/chsh.c:200 #, c-format msgid "%s: has illegal characters" msgstr "" -#: login-utils/chfn.c:156 login-utils/chfn.c:162 login-utils/chfn.c:168 -#: login-utils/chfn.c:174 +#: login-utils/chfn.c:151 login-utils/chfn.c:157 login-utils/chfn.c:163 +#: login-utils/chfn.c:169 #, c-format msgid "login.defs forbids setting %s" msgstr "" -#: login-utils/chfn.c:162 login-utils/chfn.c:164 login-utils/chfn.c:324 +#: login-utils/chfn.c:157 login-utils/chfn.c:159 login-utils/chfn.c:314 msgid "Office" msgstr "" -#: login-utils/chfn.c:168 login-utils/chfn.c:170 login-utils/chfn.c:326 +#: login-utils/chfn.c:163 login-utils/chfn.c:165 login-utils/chfn.c:316 msgid "Office Phone" msgstr "" -#: login-utils/chfn.c:174 login-utils/chfn.c:176 login-utils/chfn.c:328 +#: login-utils/chfn.c:169 login-utils/chfn.c:171 login-utils/chfn.c:318 msgid "Home Phone" msgstr "" -#: login-utils/chfn.c:193 login-utils/chsh.c:187 +#: login-utils/chfn.c:188 login-utils/chsh.c:155 msgid "cannot handle multiple usernames" msgstr "" -#: login-utils/chfn.c:247 +#: login-utils/chfn.c:236 #, fuzzy msgid "Aborted." msgstr "" "\n" "S'ha avortat.\n" -#: login-utils/chfn.c:310 +#: login-utils/chfn.c:300 #, c-format msgid "%s: CHFN_RESTRICT has unexpected value: %s" msgstr "" -#: login-utils/chfn.c:312 +#: login-utils/chfn.c:302 #, c-format msgid "%s: CHFN_RESTRICT does not allow any changes" msgstr "" -#: login-utils/chfn.c:394 +#: login-utils/chfn.c:384 #, c-format msgid "Finger information *NOT* changed. Try again later.\n" msgstr "*NO* s'ha canviat la informació del finger. Intenteu-ho de nou més endavant.\n" -#: login-utils/chfn.c:398 +#: login-utils/chfn.c:388 #, c-format msgid "Finger information changed.\n" msgstr "S'ha canviat la informació del finger.\n" -#: login-utils/chfn.c:424 login-utils/chsh.c:274 +#: login-utils/chfn.c:414 login-utils/chsh.c:237 #, fuzzy, c-format msgid "you (user %d) don't exist." msgstr "%s: aquest usuari (%d) no existeix.\n" -#: login-utils/chfn.c:430 login-utils/chsh.c:279 login-utils/libuser.c:59 +#: login-utils/chfn.c:420 login-utils/chsh.c:242 login-utils/libuser.c:59 #, fuzzy, c-format msgid "user \"%s\" does not exist." msgstr "%s: l'usuari \"%s\" no existeix.\n" -#: login-utils/chfn.c:436 login-utils/chsh.c:285 +#: login-utils/chfn.c:426 login-utils/chsh.c:248 #, fuzzy msgid "can only change local entries" msgstr "%s: només es poden modificar entrades locals; useu yp%s.\n" -#: login-utils/chfn.c:445 +#: login-utils/chfn.c:435 #, fuzzy, c-format msgid "%s is not authorized to change the finger info of %s" msgstr "%s: %s no està autoritzat a canviar la informació del finger de %s\n" -#: login-utils/chfn.c:447 login-utils/chsh.c:295 +#: login-utils/chfn.c:437 login-utils/chsh.c:258 msgid "Unknown user context" msgstr "Es desconeix el context de l'usuari" -#: login-utils/chfn.c:452 login-utils/chsh.c:300 +#: login-utils/chfn.c:442 login-utils/chsh.c:263 #, fuzzy, c-format msgid "can't set default context for %s" msgstr "%s: No s'ha pogut establir el context per defecte per a /etc/passwd" -#: login-utils/chfn.c:463 +#: login-utils/chfn.c:453 #, fuzzy msgid "running UID doesn't match UID of user we're altering, change denied" msgstr "%s: L'UID en execució no coincideix amb l'UID de l'usuari que s'està alterant, s'ha denegat el canvi d'intèrpret d'ordres\n" -#: login-utils/chfn.c:467 +#: login-utils/chfn.c:457 #, c-format msgid "Changing finger information for %s.\n" msgstr "S'està canviant la informació del finger per a l'usuari %s.\n" -#: login-utils/chfn.c:481 +#: login-utils/chfn.c:471 #, c-format msgid "Finger information not changed.\n" msgstr "No s'ha canviat la informació del finger.\n" -#: login-utils/chsh.c:78 +#: login-utils/chsh.c:73 #, fuzzy msgid "Change your login shell.\n" msgstr "S'està canviant l'intèrpret d'ordres per %s.\n" -#: login-utils/chsh.c:81 +#: login-utils/chsh.c:76 #, fuzzy msgid " -s, --shell specify login shell\n" msgstr "" " -s, --shell=intèrpret_ordres Estableix els mateixos convenis quant a les\n" " cometes que l'interpret d'ordres indicat\n" -#: login-utils/chsh.c:82 +#: login-utils/chsh.c:77 msgid " -l, --list-shells print list of shells and exit\n" msgstr "" -#: login-utils/chsh.c:231 +#: login-utils/chsh.c:194 #, fuzzy msgid "shell must be a full path name" msgstr "%s: l'intèrpret d'ordres ha de ser un camí complet.\n" -#: login-utils/chsh.c:233 +#: login-utils/chsh.c:196 #, fuzzy, c-format msgid "\"%s\" does not exist" msgstr "%s: \"%s\" no existeix.\n" -#: login-utils/chsh.c:235 +#: login-utils/chsh.c:198 #, fuzzy, c-format msgid "\"%s\" is not executable" msgstr "%s: \"%s\" no és executable.\n" -#: login-utils/chsh.c:241 +#: login-utils/chsh.c:204 #, fuzzy, c-format msgid "Warning: \"%s\" is not listed in %s." msgstr "Avís: \"%s\" no està llistat a /etc/shells.\n" -#: login-utils/chsh.c:245 login-utils/chsh.c:249 +#: login-utils/chsh.c:208 login-utils/chsh.c:212 #, fuzzy, c-format msgid "" "\"%s\" is not listed in %s.\n" "Use %s -l to see list." msgstr "%s: \"%s\" no està llistat a /etc/shells.\n" -#: login-utils/chsh.c:294 +#: login-utils/chsh.c:257 #, fuzzy, c-format msgid "%s is not authorized to change the shell of %s" msgstr "%s: %s no està autoritzat a canviar l'intèrpret d'ordres de l'usuari %s\n" -#: login-utils/chsh.c:319 +#: login-utils/chsh.c:282 #, fuzzy msgid "running UID doesn't match UID of user we're altering, shell change denied" msgstr "%s: L'UID en execució no coincideix amb l'UID de l'usuari que s'està alterant, s'ha denegat el canvi d'intèrpret d'ordres\n" -#: login-utils/chsh.c:324 +#: login-utils/chsh.c:287 #, fuzzy, c-format msgid "your shell is not in %s, shell change denied" msgstr "%s: El vostre intèrpret d'ordres no està a /etc/shells; s'ha denegat el canvi d'intèrpret d'ordres\n" -#: login-utils/chsh.c:328 +#: login-utils/chsh.c:291 #, c-format msgid "Changing shell for %s.\n" msgstr "S'està canviant l'intèrpret d'ordres per %s.\n" -#: login-utils/chsh.c:336 +#: login-utils/chsh.c:299 msgid "New shell" msgstr "Nou intèrpret d'ordres" -#: login-utils/chsh.c:344 +#: login-utils/chsh.c:307 #, fuzzy msgid "Shell not changed." msgstr "No s'ha canviat l'intèrpret d'ordres.\n" -#: login-utils/chsh.c:349 +#: login-utils/chsh.c:312 #, fuzzy msgid "Shell *NOT* changed. Try again later." msgstr "No s'ha canviat l'intèrpret d'ordres. Intenteu-ho de nou més endavant.\n" -#: login-utils/chsh.c:353 +#: login-utils/chsh.c:316 #, fuzzy msgid "" "setpwnam failed\n" "Shell *NOT* changed. Try again later." msgstr "No s'ha canviat l'intèrpret d'ordres. Intenteu-ho de nou més endavant.\n" -#: login-utils/chsh.c:357 +#: login-utils/chsh.c:320 #, c-format msgid "Shell changed.\n" msgstr "S'ha canviat l'intèrpret d'ordres.\n" @@ -8282,7 +8291,7 @@ msgstr "S'ha canviat l'intèrpret d'ordres.\n" msgid "Usage: %s ...\n" msgstr "forma d'ús: %s [fitxer]\n" -#: login-utils/last.c:174 login-utils/lslogins.c:1373 sys-utils/dmesg.c:1300 +#: login-utils/last.c:174 login-utils/lslogins.c:1388 sys-utils/dmesg.c:1300 #: sys-utils/lsipc.c:282 #, fuzzy, c-format msgid "unknown time format: %s" @@ -8517,7 +8526,7 @@ msgstr "No s'ha pogut inicialitzar PAM: %s" msgid "FAILED LOGIN %u FROM %s FOR %s, %s" msgstr "S'HA INTENTAT ACCEDIR SENSE ÈXIT %d VEGADES DES DE %s PER A %s, %s" -#: login-utils/login.c:965 login-utils/sulogin.c:1014 +#: login-utils/login.c:965 login-utils/sulogin.c:1027 #, c-format msgid "" "Login incorrect\n" @@ -8554,7 +8563,7 @@ msgstr "" "\n" "Entrada incorrecta\n" -#: login-utils/login.c:1023 login-utils/login.c:1411 login-utils/login.c:1437 +#: login-utils/login.c:1022 login-utils/login.c:1409 login-utils/login.c:1435 #, fuzzy msgid "" "\n" @@ -8563,93 +8572,93 @@ msgstr "" "\n" "S'ha produït un problema en iniciar la sessió, s'avortarà.\n" -#: login-utils/login.c:1024 +#: login-utils/login.c:1023 #, fuzzy msgid "NULL user name. Abort." msgstr "Nom d'usuari NUL a %s:%d. S'avortarà." -#: login-utils/login.c:1162 +#: login-utils/login.c:1161 #, c-format msgid "TIOCSCTTY failed: %m" msgstr "TIOCSCTTY ha fallat: %m" -#: login-utils/login.c:1264 +#: login-utils/login.c:1263 #, fuzzy, c-format msgid " %s [-p] [-h ] [-H] [[-f] ]\n" msgstr "forma d'ús: last [-#] [-f fitxer] [-t tty] [-h nom_ordinador] [usuari ...]\n" -#: login-utils/login.c:1266 +#: login-utils/login.c:1265 #, fuzzy msgid "Begin a session on the system.\n" msgstr "Aquest sistema utilitza contrasenyes ocultes.\n" -#: login-utils/login.c:1269 +#: login-utils/login.c:1268 #, fuzzy msgid " -p do not destroy the environment" msgstr " -n : No escrigues realment al disc" -#: login-utils/login.c:1270 +#: login-utils/login.c:1269 #, fuzzy msgid " -f skip a login authentication" msgstr " -n : No escrigues realment al disc" -#: login-utils/login.c:1271 +#: login-utils/login.c:1270 msgid " -h hostname to be used for utmp logging" msgstr "" -#: login-utils/login.c:1272 +#: login-utils/login.c:1271 #, fuzzy msgid " -H suppress hostname in the login prompt" msgstr " p Imprimeix la taula de particions a la pantalla o en un fitxer" #. TRANSLATORS: The standard value for %u is 60. -#: login-utils/login.c:1296 +#: login-utils/login.c:1295 #, fuzzy, c-format msgid "%s: timed out after %u seconds" msgstr "S'ha excedit el temps d'espera per a l'entrada al cap de %d segons.\n" -#: login-utils/login.c:1323 +#: login-utils/login.c:1322 #, fuzzy, c-format msgid "login: -h is for superuser only\n" msgstr "login: només el superusuari pot fer servir -h.\n" -#: login-utils/login.c:1412 +#: login-utils/login.c:1410 #, fuzzy, c-format msgid "Invalid user name \"%s\". Abort." msgstr "Nom d'usuari invàlid \"%s\" a %s:%d. S'avortarà." -#: login-utils/login.c:1436 +#: login-utils/login.c:1434 #, fuzzy, c-format msgid "groups initialization failed: %m" msgstr "" "\n" "S'ha produït un error en tancar el fitxer\n" -#: login-utils/login.c:1464 sys-utils/mount.c:59 sys-utils/umount.c:123 +#: login-utils/login.c:1462 #, fuzzy msgid "setgid() failed" msgstr "setuid() ha fallat" -#: login-utils/login.c:1488 sys-utils/mount.c:62 sys-utils/umount.c:126 +#: login-utils/login.c:1486 msgid "setuid() failed" msgstr "setuid() ha fallat" -#: login-utils/login.c:1494 login-utils/sulogin.c:731 +#: login-utils/login.c:1492 login-utils/sulogin.c:738 #, fuzzy, c-format msgid "%s: change directory failed" msgstr "la cerca ha fallat" -#: login-utils/login.c:1501 login-utils/sulogin.c:732 +#: login-utils/login.c:1499 login-utils/sulogin.c:739 #, c-format msgid "Logging in with home = \"/\".\n" msgstr "S'està entrant amb el directori inicial = «/».\n" -#: login-utils/login.c:1529 +#: login-utils/login.c:1527 #, fuzzy msgid "couldn't exec shell script" msgstr "login: no s'ha pogut executar la seqüènca de l'intèrpret d'ordres: %s.\n" -#: login-utils/login.c:1531 +#: login-utils/login.c:1529 #, fuzzy msgid "no shell" msgstr "No hi ha intèrpret d'ordres" @@ -8936,147 +8945,147 @@ msgstr "%s: argument desconegut: %s\n" msgid "failed to compose time string" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: login-utils/lslogins.c:761 +#: login-utils/lslogins.c:762 #, fuzzy msgid "failed to get supplementary groups" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: login-utils/lslogins.c:1046 +#: login-utils/lslogins.c:1050 #, fuzzy, c-format msgid "cannot found '%s'" msgstr "%s no es pot obrir" -#: login-utils/lslogins.c:1225 +#: login-utils/lslogins.c:1228 #, fuzzy msgid "internal error: unknown column" msgstr "error intern" -#: login-utils/lslogins.c:1322 +#: login-utils/lslogins.c:1336 #, fuzzy, c-format msgid "" "\n" "Last logs:\n" msgstr "Última entrada: %.*s " -#: login-utils/lslogins.c:1385 +#: login-utils/lslogins.c:1400 msgid "Display information about known users in the system.\n" msgstr "" -#: login-utils/lslogins.c:1388 +#: login-utils/lslogins.c:1403 msgid " -a, --acc-expiration display info about passwords expiration\n" msgstr "" -#: login-utils/lslogins.c:1389 +#: login-utils/lslogins.c:1404 msgid " -c, --colon-separate display data in a format similar to /etc/passwd\n" msgstr "" -#: login-utils/lslogins.c:1390 sys-utils/lsipc.c:310 +#: login-utils/lslogins.c:1405 sys-utils/lsipc.c:310 #, fuzzy msgid " -e, --export display in an export-able output format\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: login-utils/lslogins.c:1391 +#: login-utils/lslogins.c:1406 #, fuzzy msgid " -f, --failed display data about the users' last failed logins\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: login-utils/lslogins.c:1392 +#: login-utils/lslogins.c:1407 #, fuzzy msgid " -G, --supp-groups display information about groups\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: login-utils/lslogins.c:1393 +#: login-utils/lslogins.c:1408 msgid " -g, --groups= display users belonging to a group in \n" msgstr "" -#: login-utils/lslogins.c:1394 +#: login-utils/lslogins.c:1409 #, fuzzy msgid " -L, --last show info about the users' last login sessions\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: login-utils/lslogins.c:1395 +#: login-utils/lslogins.c:1410 #, fuzzy msgid " -l, --logins= display only users from \n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: login-utils/lslogins.c:1396 sys-utils/lsipc.c:312 +#: login-utils/lslogins.c:1411 sys-utils/lsipc.c:312 #, fuzzy msgid " -n, --newline display each piece of information on a new line\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: login-utils/lslogins.c:1397 sys-utils/lsipc.c:305 +#: login-utils/lslogins.c:1412 sys-utils/lsipc.c:305 #, fuzzy msgid " --noheadings don't print headings\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: login-utils/lslogins.c:1398 sys-utils/lsipc.c:306 +#: login-utils/lslogins.c:1413 sys-utils/lsipc.c:306 #, fuzzy msgid " --notruncate don't truncate output\n" msgstr " -n : No escrigues realment al disc" -#: login-utils/lslogins.c:1399 sys-utils/lsipc.c:314 +#: login-utils/lslogins.c:1414 sys-utils/lsipc.c:314 #, fuzzy msgid " -o, --output[=] define the columns to output\n" msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" -#: login-utils/lslogins.c:1400 +#: login-utils/lslogins.c:1415 #, fuzzy msgid " --output-all output all columns\n" msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" -#: login-utils/lslogins.c:1401 +#: login-utils/lslogins.c:1416 #, fuzzy msgid " -p, --pwd display information related to login by password.\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: login-utils/lslogins.c:1402 sys-utils/lsipc.c:316 +#: login-utils/lslogins.c:1417 sys-utils/lsipc.c:316 #, fuzzy msgid " -r, --raw display in raw mode\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: login-utils/lslogins.c:1403 +#: login-utils/lslogins.c:1418 #, fuzzy msgid " -s, --system-accs display system accounts\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: login-utils/lslogins.c:1404 sys-utils/lsipc.c:307 +#: login-utils/lslogins.c:1419 sys-utils/lsipc.c:307 msgid " --time-format= display dates in short, full or iso format\n" msgstr "" -#: login-utils/lslogins.c:1405 +#: login-utils/lslogins.c:1420 #, fuzzy msgid " -u, --user-accs display user accounts\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: login-utils/lslogins.c:1406 +#: login-utils/lslogins.c:1421 #, fuzzy msgid " -Z, --context display SELinux contexts\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: login-utils/lslogins.c:1407 +#: login-utils/lslogins.c:1422 #, fuzzy msgid " -z, --print0 delimit user entries with a nul character\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: login-utils/lslogins.c:1408 +#: login-utils/lslogins.c:1423 msgid " --wtmp-file set an alternate path for wtmp\n" msgstr "" -#: login-utils/lslogins.c:1409 +#: login-utils/lslogins.c:1424 msgid " --btmp-file set an alternate path for btmp\n" msgstr "" -#: login-utils/lslogins.c:1410 +#: login-utils/lslogins.c:1425 #, fuzzy msgid " --lastlog set an alternate path for lastlog\n" msgstr " -a, --alternative Permet opcions llargues amb només un -\n" -#: login-utils/lslogins.c:1599 +#: login-utils/lslogins.c:1614 #, fuzzy msgid "failed to request selinux state" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: login-utils/lslogins.c:1613 login-utils/lslogins.c:1618 +#: login-utils/lslogins.c:1628 login-utils/lslogins.c:1633 msgid "Only one user may be specified. Use -l for multiple users." msgstr "" @@ -9094,47 +9103,46 @@ msgstr "setuid() ha fallat" msgid "Password: " msgstr "Contrasenya: " -#: login-utils/newgrp.c:160 login-utils/sulogin.c:998 +#: login-utils/newgrp.c:160 login-utils/sulogin.c:1009 #, fuzzy msgid "crypt failed" msgstr "l'assignació de memòria (malloc) ha fallat" -#: login-utils/newgrp.c:173 +#: login-utils/newgrp.c:175 #, fuzzy, c-format msgid " %s \n" msgstr "newgrp: Aquest grup no existeix." -#: login-utils/newgrp.c:176 +#: login-utils/newgrp.c:178 msgid "Log in to a new group.\n" msgstr "" -#: login-utils/newgrp.c:212 +#: login-utils/newgrp.c:214 #, fuzzy msgid "who are you?" msgstr "newgrp: Qui sou?" -#: login-utils/newgrp.c:216 login-utils/newgrp.c:228 sys-utils/nsenter.c:484 -#: sys-utils/unshare.c:663 text-utils/more.c:1256 +#: login-utils/newgrp.c:218 login-utils/newgrp.c:230 sys-utils/nsenter.c:484 +#: sys-utils/unshare.c:663 #, fuzzy msgid "setgid failed" msgstr "setuid() ha fallat" -#: login-utils/newgrp.c:221 login-utils/newgrp.c:223 +#: login-utils/newgrp.c:223 login-utils/newgrp.c:225 #, fuzzy msgid "no such group" msgstr "newgrp: Aquest grup no existeix." -#: login-utils/newgrp.c:232 sys-utils/nsenter.c:486 sys-utils/unshare.c:666 -#: text-utils/more.c:1254 +#: login-utils/newgrp.c:234 sys-utils/nsenter.c:486 sys-utils/unshare.c:666 #, fuzzy msgid "setuid failed" msgstr "setuid() ha fallat" -#: login-utils/nologin.c:28 misc-utils/lslocks.c:528 misc-utils/mcookie.c:83 +#: login-utils/nologin.c:28 misc-utils/lslocks.c:530 misc-utils/mcookie.c:83 #: misc-utils/uuidd.c:95 misc-utils/uuidgen.c:26 sys-utils/dmesg.c:272 #: sys-utils/ipcmk.c:67 sys-utils/irqtop.c:244 sys-utils/lscpu.c:1136 -#: sys-utils/lsipc.c:291 sys-utils/lsirq.c:57 sys-utils/lsmem.c:506 -#: sys-utils/readprofile.c:104 sys-utils/rtcwake.c:99 +#: sys-utils/lsipc.c:291 sys-utils/lsirq.c:57 sys-utils/lsmem.c:519 +#: sys-utils/readprofile.c:106 sys-utils/rtcwake.c:99 #: term-utils/scriptlive.c:57 term-utils/scriptreplay.c:47 #: term-utils/setterm.c:381 text-utils/line.c:31 #, fuzzy, c-format @@ -9201,7 +9209,7 @@ msgid "cannot set signal handler for session" msgstr "No s'ha pogut determinar el gestor de senyals" #: login-utils/su-common.c:504 misc-utils/uuidd.c:435 -#: sys-utils/lscpu-virt.c:486 +#: sys-utils/lscpu-virt.c:489 #, fuzzy msgid "cannot set signal handler" msgstr "No s'ha pogut determinar el gestor de senyals" @@ -9211,13 +9219,13 @@ msgstr "No s'ha pogut determinar el gestor de senyals" msgid "cannot set signal mask" msgstr "No s'ha pogut determinar el gestor de senyals" -#: login-utils/su-common.c:538 term-utils/script.c:944 +#: login-utils/su-common.c:538 term-utils/script.c:946 #: term-utils/scriptlive.c:296 #, fuzzy msgid "failed to create pseudo-terminal" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: login-utils/su-common.c:550 term-utils/script.c:954 +#: login-utils/su-common.c:550 term-utils/script.c:956 #: term-utils/scriptlive.c:303 #, fuzzy msgid "cannot create child process" @@ -9256,12 +9264,12 @@ msgstr "mount : no s'ha pogut establir la velocitat de: %s" msgid "failed to establish user credentials: %s" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: login-utils/su-common.c:796 sys-utils/eject.c:660 +#: login-utils/su-common.c:796 #, fuzzy msgid "cannot set group id" msgstr "mount : no s'ha pogut establir la velocitat de: %s" -#: login-utils/su-common.c:798 sys-utils/eject.c:663 +#: login-utils/su-common.c:798 #, fuzzy msgid "cannot set user id" msgstr "mount : no s'ha pogut establir la velocitat de: %s" @@ -9399,32 +9407,32 @@ msgstr "No s'ha pogut assignar la memòria temporal.\n" msgid "warning: cannot change directory to %s" msgstr "namei: no s'ha pogut obtenir el directori actual - %s\n" -#: login-utils/sulogin.c:130 +#: login-utils/sulogin.c:132 #, fuzzy msgid "tcgetattr failed" msgstr "la cerca ha fallat" -#: login-utils/sulogin.c:208 +#: login-utils/sulogin.c:210 #, fuzzy msgid "tcsetattr failed" msgstr "la cerca ha fallat" -#: login-utils/sulogin.c:470 +#: login-utils/sulogin.c:472 #, fuzzy, c-format msgid "%s: no entry for root\n" msgstr "%s: no s'ha obert per a lectura/escriptura" -#: login-utils/sulogin.c:497 +#: login-utils/sulogin.c:499 #, fuzzy, c-format msgid "%s: no entry for root" msgstr "%s: no s'ha obert per a lectura/escriptura" -#: login-utils/sulogin.c:502 +#: login-utils/sulogin.c:504 #, fuzzy, c-format msgid "%s: root password garbled" msgstr "%s: el fitxer password està ocupat.\n" -#: login-utils/sulogin.c:531 +#: login-utils/sulogin.c:533 #, c-format msgid "" "\n" @@ -9434,150 +9442,150 @@ msgid "" "Press Enter to continue.\n" msgstr "" -#: login-utils/sulogin.c:537 +#: login-utils/sulogin.c:539 #, fuzzy, c-format msgid "Give root password for login: " msgstr "%s: el fitxer password està ocupat.\n" -#: login-utils/sulogin.c:539 +#: login-utils/sulogin.c:541 #, fuzzy, c-format msgid "Press Enter for login: " msgstr "%s: el fitxer password està ocupat.\n" -#: login-utils/sulogin.c:542 +#: login-utils/sulogin.c:544 #, c-format msgid "Give root password for maintenance\n" msgstr "" -#: login-utils/sulogin.c:544 +#: login-utils/sulogin.c:546 #, fuzzy, c-format msgid "Press Enter for maintenance\n" msgstr "%s: el fitxer password està ocupat.\n" -#: login-utils/sulogin.c:545 +#: login-utils/sulogin.c:547 #, fuzzy, c-format msgid "(or press Control-D to continue): " msgstr "Esteu segur de voler continuar?" -#: login-utils/sulogin.c:735 +#: login-utils/sulogin.c:742 #, fuzzy msgid "change directory to system root failed" msgstr "la cerca ha fallat" -#: login-utils/sulogin.c:785 +#: login-utils/sulogin.c:792 #, fuzzy msgid "setexeccon failed" msgstr "no s'ha pogut executar exec\n" -#: login-utils/sulogin.c:806 +#: login-utils/sulogin.c:813 #, fuzzy, c-format msgid " %s [options] [tty device]\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: login-utils/sulogin.c:809 +#: login-utils/sulogin.c:816 msgid "Single-user login.\n" msgstr "" -#: login-utils/sulogin.c:812 +#: login-utils/sulogin.c:819 msgid "" " -p, --login-shell start a login shell\n" " -t, --timeout max time to wait for a password (default: no limit)\n" " -e, --force examine password files directly if getpwnam(3) fails\n" msgstr "" -#: login-utils/sulogin.c:868 misc-utils/findmnt.c:1520 sys-utils/wdctl.c:640 -#: term-utils/agetty.c:847 term-utils/wall.c:218 +#: login-utils/sulogin.c:875 misc-utils/findmnt.c:1520 sys-utils/wdctl.c:640 +#: term-utils/agetty.c:847 term-utils/wall.c:219 #, fuzzy msgid "invalid timeout argument" msgstr "identificador invàlid" -#: login-utils/sulogin.c:887 +#: login-utils/sulogin.c:894 #, fuzzy msgid "only superuser can run this program" msgstr "mount: només l'usuari root pot fer això" -#: login-utils/sulogin.c:930 +#: login-utils/sulogin.c:937 #, fuzzy msgid "cannot open console" msgstr "%s no es pot obrir" -#: login-utils/sulogin.c:937 +#: login-utils/sulogin.c:944 #, fuzzy msgid "cannot open password database" msgstr "mount : no s'ha pogut establir la velocitat de: %s" -#: login-utils/sulogin.c:1011 +#: login-utils/sulogin.c:1024 #, fuzzy, c-format msgid "" "cannot execute su shell\n" "\n" msgstr "No s'ha pogut executar %s: %s\n" -#: login-utils/sulogin.c:1018 +#: login-utils/sulogin.c:1031 #, fuzzy msgid "" "Timed out\n" "\n" msgstr "s'ha exhaurit el temps d'espera" -#: login-utils/sulogin.c:1050 +#: login-utils/sulogin.c:1063 #, fuzzy msgid "" "cannot wait on su shell\n" "\n" msgstr "No s'ha pogut executar %s: %s\n" -#: login-utils/utmpdump.c:173 +#: login-utils/utmpdump.c:181 #, fuzzy, c-format msgid "%s: cannot get file position" msgstr "No es pot suprimir una partició buida" -#: login-utils/utmpdump.c:177 +#: login-utils/utmpdump.c:185 #, c-format msgid "%s: cannot add inotify watch." msgstr "" -#: login-utils/utmpdump.c:186 +#: login-utils/utmpdump.c:194 #, fuzzy, c-format msgid "%s: cannot read inotify events" msgstr "%s: no es pot obrir %s\n" -#: login-utils/utmpdump.c:246 login-utils/utmpdump.c:251 +#: login-utils/utmpdump.c:254 login-utils/utmpdump.c:259 msgid "Extraneous newline in file. Exiting." msgstr "" -#: login-utils/utmpdump.c:305 +#: login-utils/utmpdump.c:313 #, fuzzy, c-format msgid " %s [options] [filename]\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: login-utils/utmpdump.c:308 +#: login-utils/utmpdump.c:316 msgid "Dump UTMP and WTMP files in raw format.\n" msgstr "" -#: login-utils/utmpdump.c:311 +#: login-utils/utmpdump.c:319 #, fuzzy msgid " -f, --follow output appended data as the file grows\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: login-utils/utmpdump.c:312 +#: login-utils/utmpdump.c:320 msgid " -r, --reverse write back dumped data into utmp file\n" msgstr "" -#: login-utils/utmpdump.c:313 +#: login-utils/utmpdump.c:321 msgid " -o, --output write to file instead of standard output\n" msgstr "" -#: login-utils/utmpdump.c:381 +#: login-utils/utmpdump.c:389 msgid "following standard input is unsupported" msgstr "" -#: login-utils/utmpdump.c:387 +#: login-utils/utmpdump.c:395 #, c-format msgid "Utmp undump of %s\n" msgstr "" -#: login-utils/utmpdump.c:390 +#: login-utils/utmpdump.c:398 #, c-format msgid "Utmp dump of %s\n" msgstr "" @@ -9817,7 +9825,7 @@ msgstr "" msgid "unsupported output format %s" msgstr "%s: argument desconegut: %s\n" -#: misc-utils/blkid.c:787 misc-utils/wipefs.c:749 +#: misc-utils/blkid.c:787 misc-utils/wipefs.c:752 #, fuzzy msgid "invalid offset argument" msgstr "identificador invàlid" @@ -10236,8 +10244,8 @@ msgstr "s'ha llegit %c\n" msgid "move" msgstr " Elimina" -#: misc-utils/findmnt.c:831 misc-utils/findmnt.c:1109 sys-utils/eject.c:717 -#: sys-utils/mount.c:378 +#: misc-utils/findmnt.c:831 misc-utils/findmnt.c:1109 sys-utils/eject.c:715 +#: sys-utils/mount.c:373 #, fuzzy msgid "failed to initialize libmount table" msgstr "No s'ha pogut assignar la memòria temporal.\n" @@ -10248,11 +10256,11 @@ msgid "can't read %s" msgstr "%s: no s'ha pogut llegir %s.\n" #: misc-utils/findmnt.c:1049 misc-utils/findmnt.c:1115 -#: misc-utils/findmnt-verify.c:95 misc-utils/findmnt-verify.c:487 -#: sys-utils/fstrim.c:288 sys-utils/mount.c:136 sys-utils/mount.c:184 -#: sys-utils/mount.c:251 sys-utils/swapoff.c:63 sys-utils/swapoff.c:173 -#: sys-utils/swapon.c:247 sys-utils/swapon.c:290 sys-utils/swapon.c:749 -#: sys-utils/umount.c:195 +#: misc-utils/findmnt-verify.c:99 misc-utils/findmnt-verify.c:522 +#: sys-utils/fstrim.c:288 sys-utils/mount.c:131 sys-utils/mount.c:179 +#: sys-utils/mount.c:246 sys-utils/swapoff.c:63 sys-utils/swapoff.c:173 +#: sys-utils/swapon.c:247 sys-utils/swapon.c:290 sys-utils/swapon.c:750 +#: sys-utils/umount.c:190 #, fuzzy msgid "failed to initialize libmount iterator" msgstr "No s'ha pogut assignar la memòria temporal.\n" @@ -10262,7 +10270,7 @@ msgstr "No s'ha pogut assignar la memòria temporal.\n" msgid "failed to initialize libmount tabdiff" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: misc-utils/findmnt.c:1149 misc-utils/kill.c:407 +#: misc-utils/findmnt.c:1149 misc-utils/kill.c:408 #, fuzzy msgid "poll() failed" msgstr "l'assignació de memòria (malloc) ha fallat" @@ -10360,8 +10368,8 @@ msgstr " l llista els tipus de sistemes de fitxers coneguts" msgid " -i, --invert invert the sense of matching\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/findmnt.c:1256 misc-utils/lslocks.c:535 sys-utils/lsns.c:970 -#: sys-utils/rfkill.c:629 +#: misc-utils/findmnt.c:1256 misc-utils/lslocks.c:537 sys-utils/lsns.c:970 +#: sys-utils/rfkill.c:630 #, fuzzy msgid " -J, --json use JSON output format\n" msgstr " -V, --version Mostra la informació de la versió\n" @@ -10455,7 +10463,7 @@ msgstr " l llista els tipus de sistemes de fitxers coneguts" msgid " -U, --uniq ignore filesystems with duplicate target\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: misc-utils/findmnt.c:1276 misc-utils/lslocks.c:542 sys-utils/lsns.c:977 +#: misc-utils/findmnt.c:1276 misc-utils/lslocks.c:544 sys-utils/lsns.c:977 #, fuzzy msgid " -u, --notruncate don't truncate text in columns\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" @@ -10508,179 +10516,179 @@ msgstr "No s'ha pogut assignar la memòria temporal.\n" msgid "%s column is requested, but --poll is not enabled" msgstr "" -#: misc-utils/findmnt-verify.c:119 +#: misc-utils/findmnt-verify.c:123 #, fuzzy msgid "target specified more than once" msgstr "Heu especificat més cilindres dels que caben al disc" -#: misc-utils/findmnt-verify.c:121 +#: misc-utils/findmnt-verify.c:125 #, c-format msgid "wrong order: %s specified before %s" msgstr "" -#: misc-utils/findmnt-verify.c:135 +#: misc-utils/findmnt-verify.c:139 msgid "undefined target (fs_file)" msgstr "" -#: misc-utils/findmnt-verify.c:142 +#: misc-utils/findmnt-verify.c:146 #, c-format msgid "non-canonical target path (real: %s)" msgstr "" -#: misc-utils/findmnt-verify.c:147 +#: misc-utils/findmnt-verify.c:151 #, c-format msgid "unreachable on boot required target: %m" msgstr "" -#: misc-utils/findmnt-verify.c:149 +#: misc-utils/findmnt-verify.c:153 #, fuzzy, c-format msgid "unreachable target: %m" msgstr "No s'ha pogut llegir %s\n" -#: misc-utils/findmnt-verify.c:153 +#: misc-utils/findmnt-verify.c:157 #, fuzzy msgid "target is not a directory" msgstr "el node d'identificació arrel no és un directori" -#: misc-utils/findmnt-verify.c:155 +#: misc-utils/findmnt-verify.c:159 msgid "target exists" msgstr "" -#: misc-utils/findmnt-verify.c:167 +#: misc-utils/findmnt-verify.c:174 #, c-format msgid "unreachable on boot required source: %s=%s" msgstr "" -#: misc-utils/findmnt-verify.c:169 +#: misc-utils/findmnt-verify.c:176 #, fuzzy, c-format msgid "unreachable: %s=%s" msgstr "(Fitxer següent: %s)" -#: misc-utils/findmnt-verify.c:171 +#: misc-utils/findmnt-verify.c:178 #, fuzzy, c-format msgid "%s=%s translated to %s" msgstr "El sector %d ja està assignat\n" -#: misc-utils/findmnt-verify.c:192 +#: misc-utils/findmnt-verify.c:199 msgid "undefined source (fs_spec)" msgstr "" -#: misc-utils/findmnt-verify.c:201 +#: misc-utils/findmnt-verify.c:208 #, fuzzy, c-format msgid "unsupported source tag: %s" msgstr "%s: argument desconegut: %s\n" -#: misc-utils/findmnt-verify.c:208 +#: misc-utils/findmnt-verify.c:215 #, c-format msgid "do not check %s source (pseudo/net)" msgstr "" -#: misc-utils/findmnt-verify.c:211 +#: misc-utils/findmnt-verify.c:218 #, fuzzy, c-format msgid "unreachable source: %s: %m" msgstr "no es pot obrir '%s'" -#: misc-utils/findmnt-verify.c:214 +#: misc-utils/findmnt-verify.c:221 #, c-format msgid "non-bind mount source %s is a directory or regular file" msgstr "" -#: misc-utils/findmnt-verify.c:217 +#: misc-utils/findmnt-verify.c:224 #, fuzzy, c-format msgid "source %s is not a block device" msgstr "%s: no és un dispositiu de bloc\n" -#: misc-utils/findmnt-verify.c:219 +#: misc-utils/findmnt-verify.c:226 #, fuzzy, c-format msgid "source %s exists" msgstr "dispositiu de blocs " -#: misc-utils/findmnt-verify.c:232 +#: misc-utils/findmnt-verify.c:239 #, fuzzy, c-format msgid "VFS options: %s" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: misc-utils/findmnt-verify.c:236 +#: misc-utils/findmnt-verify.c:243 #, fuzzy, c-format msgid "FS options: %s" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: misc-utils/findmnt-verify.c:240 +#: misc-utils/findmnt-verify.c:247 #, fuzzy, c-format msgid "userspace options: %s" msgstr "opcions perilloses:" -#: misc-utils/findmnt-verify.c:254 +#: misc-utils/findmnt-verify.c:261 #, fuzzy, c-format msgid "unsupported swaparea discard policy: %s" msgstr "%s: argument desconegut: %s\n" -#: misc-utils/findmnt-verify.c:262 +#: misc-utils/findmnt-verify.c:269 #, fuzzy msgid "failed to parse swaparea priority option" msgstr "No s'ha pogut escriure la partició a %s\n" -#: misc-utils/findmnt-verify.c:398 +#: misc-utils/findmnt-verify.c:419 #, c-format msgid "do not check %s FS type (pseudo/net)" msgstr "" -#: misc-utils/findmnt-verify.c:408 +#: misc-utils/findmnt-verify.c:431 msgid "\"none\" FS type is recommended for bind or move oprations only" msgstr "" -#: misc-utils/findmnt-verify.c:418 +#: misc-utils/findmnt-verify.c:443 #, fuzzy, c-format msgid "%s seems unsupported by the current kernel" msgstr "mount: el tipus del sistema de fitxers %s no està suportat pel nucli" -#: misc-utils/findmnt-verify.c:424 misc-utils/findmnt-verify.c:425 +#: misc-utils/findmnt-verify.c:449 misc-utils/findmnt-verify.c:451 #, fuzzy msgid "cannot detect on-disk filesystem type" msgstr "mount: no es reconeix el sitema de fitxers «%s»" -#: misc-utils/findmnt-verify.c:433 +#: misc-utils/findmnt-verify.c:460 #, c-format msgid "%s does not match with on-disk %s" msgstr "" -#: misc-utils/findmnt-verify.c:436 +#: misc-utils/findmnt-verify.c:464 #, fuzzy, c-format msgid "on-disk %s seems unsupported by the current kernel" msgstr "mount: el tipus del sistema de fitxers %s no està suportat pel nucli" -#: misc-utils/findmnt-verify.c:438 +#: misc-utils/findmnt-verify.c:468 #, fuzzy, c-format msgid "FS type is %s" msgstr "tipus: %s\n" -#: misc-utils/findmnt-verify.c:450 +#: misc-utils/findmnt-verify.c:485 #, c-format msgid "recommended root FS passno is 1 (current is %d)" msgstr "" -#: misc-utils/findmnt-verify.c:519 +#: misc-utils/findmnt-verify.c:554 #, fuzzy, c-format msgid "%d parse error" msgid_plural "%d parse errors" msgstr[0] "s'ha produït un error en cercar" msgstr[1] "s'ha produït un error en cercar" -#: misc-utils/findmnt-verify.c:520 +#: misc-utils/findmnt-verify.c:555 #, fuzzy, c-format msgid ", %d error" msgid_plural ", %d errors" msgstr[0] ", error" msgstr[1] ", error" -#: misc-utils/findmnt-verify.c:521 +#: misc-utils/findmnt-verify.c:556 #, c-format msgid ", %d warning" msgid_plural ", %d warnings" msgstr[0] "" msgstr[1] "" -#: misc-utils/findmnt-verify.c:524 +#: misc-utils/findmnt-verify.c:559 #, c-format msgid "Success, no errors or warnings detected\n" msgstr "" @@ -10763,218 +10771,218 @@ msgstr "falta l'argument cadena_opcions" msgid "internal error, contact the author." msgstr "s'ha produït un error intern; contacteu amb l'autor." -#: misc-utils/hardlink.c:286 +#: misc-utils/hardlink.c:279 #, fuzzy msgid "Mode:" msgstr "Nom d'usuari il·legal" -#: misc-utils/hardlink.c:287 +#: misc-utils/hardlink.c:280 msgid "dry-run" msgstr "" -#: misc-utils/hardlink.c:287 +#: misc-utils/hardlink.c:280 msgid "real" msgstr "" -#: misc-utils/hardlink.c:288 +#: misc-utils/hardlink.c:281 #, fuzzy msgid "Files:" msgstr "(Fitxer següent: %s)" -#: misc-utils/hardlink.c:289 misc-utils/hardlink.c:295 +#: misc-utils/hardlink.c:282 misc-utils/hardlink.c:288 #, c-format msgid "%-15s %zu files" msgstr "" -#: misc-utils/hardlink.c:289 +#: misc-utils/hardlink.c:282 msgid "Linked:" msgstr "" -#: misc-utils/hardlink.c:292 +#: misc-utils/hardlink.c:285 #, c-format msgid "%-15s %zu xattrs" msgstr "" -#: misc-utils/hardlink.c:292 misc-utils/hardlink.c:295 +#: misc-utils/hardlink.c:285 misc-utils/hardlink.c:288 msgid "Compared:" msgstr "" -#: misc-utils/hardlink.c:302 +#: misc-utils/hardlink.c:295 #, fuzzy msgid "Saved:" msgstr "s'ha desat" -#: misc-utils/hardlink.c:305 +#: misc-utils/hardlink.c:298 #, fuzzy, c-format msgid "%-15s %.%06 seconds" msgstr "%s %.6f segons\n" -#: misc-utils/hardlink.c:305 +#: misc-utils/hardlink.c:298 #, fuzzy msgid "Duration:" msgstr "dispositiu de blocs " -#: misc-utils/hardlink.c:343 +#: misc-utils/hardlink.c:336 #, fuzzy, c-format msgid "cannot get xattr names for %s" msgstr "No s'ha pogut obtenir el llindar per a %s: %s\n" -#: misc-utils/hardlink.c:359 +#: misc-utils/hardlink.c:352 #, fuzzy, c-format msgid "cannot get xattr value of %s for %s" msgstr "No s'ha pogut obtenir el llindar per a %s: %s\n" -#: misc-utils/hardlink.c:439 +#: misc-utils/hardlink.c:432 #, c-format msgid "Comparing xattrs of %s to %s" msgstr "" -#: misc-utils/hardlink.c:541 +#: misc-utils/hardlink.c:534 #, fuzzy, c-format msgid "Comparing %s to %s" msgstr "" "\n" "%d particions:\n" -#: misc-utils/hardlink.c:667 +#: misc-utils/hardlink.c:660 #, c-format msgid "%sLinking %s to %s (-%s)" msgstr "" -#: misc-utils/hardlink.c:668 +#: misc-utils/hardlink.c:661 msgid "[DryRun] " msgstr "" -#: misc-utils/hardlink.c:681 +#: misc-utils/hardlink.c:674 #, fuzzy, c-format msgid "cannot link %s to %s" msgstr "%s no es pot obrir" -#: misc-utils/hardlink.c:686 +#: misc-utils/hardlink.c:679 #, fuzzy, c-format msgid "cannot rename %s to %s" msgstr "no s'ha pogut tornar a nomenar %s per %s: %s\n" -#: misc-utils/hardlink.c:758 +#: misc-utils/hardlink.c:751 #, c-format msgid "Skipped %s (smaller than configured size)" msgstr "" -#: misc-utils/hardlink.c:762 +#: misc-utils/hardlink.c:755 #, fuzzy, c-format msgid "Visiting %s (file %zu)" msgstr "no s'ha pogut executar exec\n" -#: misc-utils/hardlink.c:820 +#: misc-utils/hardlink.c:813 #, fuzzy msgid "cannot continue" msgstr "no es pot obtenir la mida de %s" -#: misc-utils/hardlink.c:875 +#: misc-utils/hardlink.c:868 #, fuzzy, c-format msgid " %s [options] | ...\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: misc-utils/hardlink.c:879 +#: misc-utils/hardlink.c:872 msgid "Consolidate duplicate files using hardlinks.\n" msgstr "" -#: misc-utils/hardlink.c:882 +#: misc-utils/hardlink.c:875 #, fuzzy msgid " -v, --verbose verbose output (repeat for more verbosity)\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/hardlink.c:883 +#: misc-utils/hardlink.c:876 #, fuzzy msgid " -q, --quiet quiet mode - don't print anything\n" msgstr " -q [o --quiet]: Suprimeix els avisos" -#: misc-utils/hardlink.c:884 +#: misc-utils/hardlink.c:877 #, fuzzy msgid " -n, --dry-run don't actually link anything\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/hardlink.c:885 +#: misc-utils/hardlink.c:878 msgid " -f, --respect-name filenames have to be identical\n" msgstr "" -#: misc-utils/hardlink.c:886 +#: misc-utils/hardlink.c:879 #, fuzzy msgid " -p, --ignore-mode ignore changes of file mode\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/hardlink.c:887 +#: misc-utils/hardlink.c:880 #, fuzzy msgid " -o, --ignore-owner ignore owner changes\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/hardlink.c:888 +#: misc-utils/hardlink.c:881 #, fuzzy msgid " -t, --ignore-time ignore timestamps (when testing for equality)\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/hardlink.c:890 +#: misc-utils/hardlink.c:883 msgid " -X, --respect-xattrs respect extended attributes\n" msgstr "" -#: misc-utils/hardlink.c:892 +#: misc-utils/hardlink.c:885 #, fuzzy msgid "" " -m, --maximize maximize the hardlink count, remove the file with\n" " lowest hardlink count\n" msgstr " -h, --help Aquesta petita guia d'ús\n" -#: misc-utils/hardlink.c:894 +#: misc-utils/hardlink.c:887 #, fuzzy msgid " -M, --minimize reverse the meaning of -m\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/hardlink.c:895 +#: misc-utils/hardlink.c:888 msgid "" " -O, --keep-oldest keep the oldest file of multiple equal files\n" " (lower precedence than minimize/maximize)\n" msgstr "" -#: misc-utils/hardlink.c:897 +#: misc-utils/hardlink.c:890 msgid " -x, --exclude regular expression to exclude files\n" msgstr "" -#: misc-utils/hardlink.c:898 +#: misc-utils/hardlink.c:891 msgid " -i, --include regular expression to include files/dirs\n" msgstr "" -#: misc-utils/hardlink.c:899 +#: misc-utils/hardlink.c:892 #, fuzzy msgid " -s, --minimum-size minimum size for files.\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/hardlink.c:900 +#: misc-utils/hardlink.c:893 #, fuzzy msgid " -c, --content compare only file contents, same as -pot\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/hardlink.c:927 +#: misc-utils/hardlink.c:920 #, fuzzy, c-format msgid "could not compile regular expression %s: %s" msgstr "S'ha produït un error en l'expressió regular" -#: misc-utils/hardlink.c:1020 sys-utils/ipcmk.c:114 sys-utils/losetup.c:735 +#: misc-utils/hardlink.c:1013 sys-utils/ipcmk.c:114 sys-utils/losetup.c:735 #: sys-utils/zramctl.c:650 #, fuzzy msgid "failed to parse size" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/hardlink.c:1070 +#: misc-utils/hardlink.c:1063 #, fuzzy msgid "cannot register exit handler" msgstr "No s'ha pogut determinar el gestor de senyals" -#: misc-utils/hardlink.c:1075 +#: misc-utils/hardlink.c:1068 #, fuzzy msgid "no directory or file specified" msgstr "mount: el dispositiu loop està especificat dues vegades" -#: misc-utils/hardlink.c:1082 +#: misc-utils/hardlink.c:1075 #, fuzzy, c-format msgid "cannot process %s" msgstr "No s'ha pogut obrir el fitxer '%s'" @@ -10984,76 +10992,76 @@ msgstr "No s'ha pogut obrir el fitxer '%s'" msgid "unknown signal %s; valid signals:" msgstr "%s: senyal desconegut %s; senyals vàlids:\n" -#: misc-utils/kill.c:193 +#: misc-utils/kill.c:194 #, fuzzy, c-format msgid " %s [options] |...\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: misc-utils/kill.c:196 +#: misc-utils/kill.c:197 msgid "Forcibly terminate a process.\n" msgstr "" -#: misc-utils/kill.c:199 +#: misc-utils/kill.c:200 msgid "" " -a, --all do not restrict the name-to-pid conversion to processes\n" " with the same uid as the present process\n" msgstr "" -#: misc-utils/kill.c:201 +#: misc-utils/kill.c:202 msgid " -s, --signal send this instead of SIGTERM\n" msgstr "" -#: misc-utils/kill.c:203 +#: misc-utils/kill.c:204 msgid " -q, --queue use sigqueue(2), not kill(2), and pass as data\n" msgstr "" -#: misc-utils/kill.c:206 +#: misc-utils/kill.c:207 msgid "" " --timeout \n" " wait up to timeout and send follow-up signal\n" msgstr "" -#: misc-utils/kill.c:209 +#: misc-utils/kill.c:210 #, fuzzy msgid " -p, --pid print pids without signaling them\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/kill.c:210 +#: misc-utils/kill.c:211 msgid " -l, --list[=] list signal names, or convert a signal number to a name\n" msgstr "" -#: misc-utils/kill.c:211 +#: misc-utils/kill.c:212 msgid " -L, --table list signal names and numbers\n" msgstr "" -#: misc-utils/kill.c:212 +#: misc-utils/kill.c:213 #, fuzzy msgid " --verbose print pids that will be signaled\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/kill.c:232 term-utils/agetty.c:691 +#: misc-utils/kill.c:233 term-utils/agetty.c:691 #, fuzzy, c-format msgid "%s from %s" msgstr "%s de %s\n" -#: misc-utils/kill.c:236 +#: misc-utils/kill.c:237 msgid " (with: " msgstr "" -#: misc-utils/kill.c:285 misc-utils/kill.c:294 sys-utils/setpriv.c:448 +#: misc-utils/kill.c:286 misc-utils/kill.c:295 sys-utils/setpriv.c:448 #: sys-utils/unshare.c:499 #, fuzzy, c-format msgid "unknown signal: %s" msgstr "%s: senyal desconegut %s\n" -#: misc-utils/kill.c:305 misc-utils/kill.c:308 misc-utils/kill.c:317 -#: misc-utils/kill.c:329 misc-utils/kill.c:372 sys-utils/mountpoint.c:195 +#: misc-utils/kill.c:306 misc-utils/kill.c:309 misc-utils/kill.c:318 +#: misc-utils/kill.c:330 misc-utils/kill.c:373 sys-utils/mountpoint.c:195 #, fuzzy, c-format msgid "%s and %s are mutually exclusive" msgstr "%s: Les opcions --adjust i --noadjfile s'exclouen mútuament. Les heu especificat totes dues.\n" -#: misc-utils/kill.c:332 misc-utils/kill.c:347 sys-utils/eject.c:208 -#: sys-utils/eject.c:230 sys-utils/losetup.c:730 sys-utils/tunelp.c:164 +#: misc-utils/kill.c:333 misc-utils/kill.c:348 sys-utils/eject.c:210 +#: sys-utils/eject.c:232 sys-utils/losetup.c:730 sys-utils/tunelp.c:164 #: sys-utils/tunelp.c:171 sys-utils/tunelp.c:178 sys-utils/tunelp.c:185 #: sys-utils/tunelp.c:192 sys-utils/tunelp.c:198 sys-utils/tunelp.c:202 #: sys-utils/tunelp.c:209 term-utils/setterm.c:211 term-utils/setterm.c:214 @@ -11071,268 +11079,268 @@ msgstr "%s: Les opcions --adjust i --noadjfile s'exclouen mútuament. Les heu es msgid "argument error" msgstr "%s: Argument erroni, forma d'ús\n" -#: misc-utils/kill.c:369 +#: misc-utils/kill.c:370 #, fuzzy, c-format msgid "invalid signal name or number: %s" msgstr "identificador invàlid" -#: misc-utils/kill.c:395 +#: misc-utils/kill.c:396 #, fuzzy, c-format msgid "pidfd_open() failed: %d" msgstr "(Fitxer següent: %s)" -#: misc-utils/kill.c:400 misc-utils/kill.c:414 +#: misc-utils/kill.c:401 misc-utils/kill.c:415 #, fuzzy msgid "pidfd_send_signal() failed" msgstr "settimeofday() ha fallat" -#: misc-utils/kill.c:411 +#: misc-utils/kill.c:412 #, fuzzy, c-format msgid "timeout, sending signal %d to pid %d\n" msgstr "%s: no s'ha pogut reanomenar %s a %s: %s\n" -#: misc-utils/kill.c:426 +#: misc-utils/kill.c:427 #, fuzzy, c-format msgid "sending signal %d to pid %d\n" msgstr "%s: no s'ha pogut reanomenar %s a %s: %s\n" -#: misc-utils/kill.c:444 +#: misc-utils/kill.c:445 #, fuzzy, c-format msgid "sending signal to %s failed" msgstr "%s: no s'ha pogut reanomenar %s a %s: %s\n" -#: misc-utils/kill.c:493 +#: misc-utils/kill.c:494 #, fuzzy, c-format msgid "cannot find process \"%s\"" msgstr "%s: no s'ha pogut trobar el procés \"%s\"\n" -#: misc-utils/logger.c:228 +#: misc-utils/logger.c:229 #, fuzzy, c-format msgid "unknown facility name: %s" msgstr "logger: no es coneix el nom de la facilitat: %s.\n" -#: misc-utils/logger.c:234 +#: misc-utils/logger.c:235 #, fuzzy, c-format msgid "unknown priority name: %s" msgstr "logger: nom amb prioritat desconeguda: %s.\n" -#: misc-utils/logger.c:246 +#: misc-utils/logger.c:247 #, fuzzy, c-format msgid "openlog %s: pathname too long" msgstr "el nom d'entrada és massa llarg.\n" -#: misc-utils/logger.c:273 +#: misc-utils/logger.c:274 #, fuzzy, c-format msgid "socket %s" msgstr "MidaBloc: %d\n" -#: misc-utils/logger.c:310 +#: misc-utils/logger.c:311 #, fuzzy, c-format msgid "failed to resolve name %s port %s: %s" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/logger.c:327 +#: misc-utils/logger.c:328 #, fuzzy, c-format msgid "failed to connect to %s port %s" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/logger.c:375 +#: misc-utils/logger.c:376 #, c-format msgid "maximum input lines (%d) exceeded" msgstr "" -#: misc-utils/logger.c:528 +#: misc-utils/logger.c:519 #, fuzzy msgid "send message failed" msgstr "setuid() ha fallat" -#: misc-utils/logger.c:598 +#: misc-utils/logger.c:589 #, c-format msgid "structured data ID '%s' is not unique" msgstr "" -#: misc-utils/logger.c:612 +#: misc-utils/logger.c:603 #, c-format msgid "--sd-id was not specified for --sd-param %s" msgstr "" -#: misc-utils/logger.c:791 +#: misc-utils/logger.c:783 #, fuzzy msgid "localtime() failed" msgstr "no ha estat possible executar openpty\n" -#: misc-utils/logger.c:801 +#: misc-utils/logger.c:793 #, fuzzy, c-format msgid "hostname '%s' is too long" msgstr "el camp és massa llarg.\n" -#: misc-utils/logger.c:807 +#: misc-utils/logger.c:799 #, fuzzy, c-format msgid "tag '%s' is too long" msgstr "el camp és massa llarg.\n" -#: misc-utils/logger.c:870 +#: misc-utils/logger.c:862 #, fuzzy, c-format msgid "ignoring unknown option argument: %s" msgstr "%s: argument desconegut: %s\n" -#: misc-utils/logger.c:882 +#: misc-utils/logger.c:874 #, fuzzy, c-format msgid "invalid argument: %s: using automatic errors" msgstr "id invàlid : %s\n" -#: misc-utils/logger.c:1053 +#: misc-utils/logger.c:1047 #, fuzzy, c-format msgid " %s [options] []\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: misc-utils/logger.c:1056 +#: misc-utils/logger.c:1050 #, fuzzy msgid "Enter messages into the system log.\n" msgstr "No es pot establir el rellotge del sistema.\n" -#: misc-utils/logger.c:1059 +#: misc-utils/logger.c:1053 #, fuzzy msgid " -i log the logger command's PID\n" msgstr " -h, --help Aquesta petita guia d'ús\n" -#: misc-utils/logger.c:1060 +#: misc-utils/logger.c:1054 msgid " --id[=] log the given , or otherwise the PID\n" msgstr "" -#: misc-utils/logger.c:1061 +#: misc-utils/logger.c:1055 #, fuzzy msgid " -f, --file log the contents of this file\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/logger.c:1062 +#: misc-utils/logger.c:1056 #, fuzzy msgid " -e, --skip-empty do not log empty lines when processing files\n" msgstr " -n : No escrigues realment al disc" -#: misc-utils/logger.c:1063 +#: misc-utils/logger.c:1057 #, fuzzy msgid " --no-act do everything except the write the log\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/logger.c:1064 +#: misc-utils/logger.c:1058 msgid " -p, --priority mark given message with this priority\n" msgstr "" -#: misc-utils/logger.c:1065 +#: misc-utils/logger.c:1059 msgid " --octet-count use rfc6587 octet counting\n" msgstr "" -#: misc-utils/logger.c:1066 +#: misc-utils/logger.c:1060 msgid " --prio-prefix look for a prefix on every line read from stdin\n" msgstr "" -#: misc-utils/logger.c:1067 +#: misc-utils/logger.c:1061 #, fuzzy msgid " -s, --stderr output message to standard error as well\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/logger.c:1068 +#: misc-utils/logger.c:1062 #, fuzzy msgid " -S, --size maximum size for a single message\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/logger.c:1069 +#: misc-utils/logger.c:1063 msgid " -t, --tag mark every line with this tag\n" msgstr "" -#: misc-utils/logger.c:1070 +#: misc-utils/logger.c:1064 msgid " -n, --server write to this remote syslog server\n" msgstr "" -#: misc-utils/logger.c:1071 +#: misc-utils/logger.c:1065 #, fuzzy msgid " -P, --port use this port for UDP or TCP connection\n" msgstr "" " -s, --shell=intèrpret_ordres Estableix els mateixos convenis quant a les\n" " cometes que l'interpret d'ordres indicat\n" -#: misc-utils/logger.c:1072 +#: misc-utils/logger.c:1066 #, fuzzy msgid " -T, --tcp use TCP only\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/logger.c:1073 +#: misc-utils/logger.c:1067 #, fuzzy msgid " -d, --udp use UDP only\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/logger.c:1074 +#: misc-utils/logger.c:1068 #, fuzzy msgid " --rfc3164 use the obsolete BSD syslog protocol\n" msgstr " -T, --test Prova la versió del getopt(1)\n" -#: misc-utils/logger.c:1075 +#: misc-utils/logger.c:1069 msgid "" " --rfc5424[=] use the syslog protocol (the default for remote);\n" " can be notime, or notq, and/or nohost\n" msgstr "" -#: misc-utils/logger.c:1077 +#: misc-utils/logger.c:1071 msgid " --sd-id rfc5424 structured data ID\n" msgstr "" -#: misc-utils/logger.c:1078 +#: misc-utils/logger.c:1072 msgid " --sd-param rfc5424 structured data name=value\n" msgstr "" -#: misc-utils/logger.c:1079 +#: misc-utils/logger.c:1073 msgid " --msgid set rfc5424 message id field\n" msgstr "" -#: misc-utils/logger.c:1080 +#: misc-utils/logger.c:1074 msgid " -u, --socket write to this Unix socket\n" msgstr "" -#: misc-utils/logger.c:1081 +#: misc-utils/logger.c:1075 msgid "" " --socket-errors[=]\n" " print connection errors when using Unix sockets\n" msgstr "" -#: misc-utils/logger.c:1084 +#: misc-utils/logger.c:1078 msgid " --journald[=] write journald entry\n" msgstr "" -#: misc-utils/logger.c:1170 +#: misc-utils/logger.c:1164 #, fuzzy, c-format msgid "file %s" msgstr "(Fitxer següent: %s)" -#: misc-utils/logger.c:1185 +#: misc-utils/logger.c:1179 #, fuzzy msgid "failed to parse id" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/logger.c:1203 +#: misc-utils/logger.c:1197 #, fuzzy msgid "failed to parse message size" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/logger.c:1233 +#: misc-utils/logger.c:1227 msgid "--msgid cannot contain space" msgstr "" -#: misc-utils/logger.c:1255 +#: misc-utils/logger.c:1249 #, fuzzy, c-format msgid "invalid structured data ID: '%s'" msgstr "id invàlid : %s\n" -#: misc-utils/logger.c:1260 +#: misc-utils/logger.c:1254 #, fuzzy, c-format msgid "invalid structured data parameter: '%s'" msgstr "valor d'expiració erroni: %s" -#: misc-utils/logger.c:1275 +#: misc-utils/logger.c:1269 msgid "--file and are mutually exclusive, message is ignored" msgstr "" -#: misc-utils/logger.c:1282 +#: misc-utils/logger.c:1276 msgid "journald entry could not be written" msgstr "" @@ -11637,7 +11645,7 @@ msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" msgid " -I, --include show only devices with specified major numbers\n" msgstr "" -#: misc-utils/lsblk.c:1852 sys-utils/lsirq.c:63 sys-utils/lsmem.c:512 +#: misc-utils/lsblk.c:1852 sys-utils/lsirq.c:63 sys-utils/lsmem.c:525 #, fuzzy msgid " -J, --json use JSON output format\n" msgstr " -V, --version Mostra la informació de la versió\n" @@ -11696,11 +11704,11 @@ msgstr " -u, --unqote No es posarà la sortida entre cometes\n" msgid " -m, --perms output info about permissions\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/lsblk.c:1866 sys-utils/lsirq.c:65 sys-utils/lsmem.c:516 +#: misc-utils/lsblk.c:1866 sys-utils/lsirq.c:65 sys-utils/lsmem.c:529 msgid " -n, --noheadings don't print headings\n" msgstr "" -#: misc-utils/lsblk.c:1867 sys-utils/lsmem.c:517 +#: misc-utils/lsblk.c:1867 sys-utils/lsmem.c:530 msgid " -o, --output output columns\n" msgstr "" @@ -11796,74 +11804,74 @@ msgstr "No s'ha pogut obrir el fitxer '%s'" msgid "PID of the process blocking the lock" msgstr "" -#: misc-utils/lslocks.c:259 +#: misc-utils/lslocks.c:261 #, fuzzy msgid "failed to parse ID" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/lslocks.c:281 misc-utils/uuidd.c:755 sys-utils/nsenter.c:262 +#: misc-utils/lslocks.c:283 misc-utils/uuidd.c:755 sys-utils/nsenter.c:262 #, fuzzy msgid "failed to parse pid" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/lslocks.c:285 +#: misc-utils/lslocks.c:287 #, fuzzy msgid "(unknown)" msgstr "desconegut" -#: misc-utils/lslocks.c:287 +#: misc-utils/lslocks.c:289 msgid "(undefined)" msgstr "" -#: misc-utils/lslocks.c:296 +#: misc-utils/lslocks.c:298 #, fuzzy msgid "failed to parse start" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/lslocks.c:303 +#: misc-utils/lslocks.c:305 #, fuzzy msgid "failed to parse end" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/lslocks.c:531 +#: misc-utils/lslocks.c:533 #, fuzzy msgid "List local system locks.\n" msgstr "No es pot establir el rellotge del sistema.\n" -#: misc-utils/lslocks.c:534 +#: misc-utils/lslocks.c:536 #, fuzzy msgid " -b, --bytes print SIZE in bytes rather than in human readable format\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/lslocks.c:536 +#: misc-utils/lslocks.c:538 msgid " -i, --noinaccessible ignore locks without read permissions\n" msgstr "" -#: misc-utils/lslocks.c:537 sys-utils/lsns.c:972 sys-utils/rfkill.c:630 +#: misc-utils/lslocks.c:539 sys-utils/lsns.c:972 sys-utils/rfkill.c:631 #, fuzzy msgid " -n, --noheadings don't print headings\n" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/lslocks.c:538 sys-utils/lsns.c:973 sys-utils/rfkill.c:631 +#: misc-utils/lslocks.c:540 sys-utils/lsns.c:973 sys-utils/rfkill.c:632 #, fuzzy msgid " -o, --output define which output columns to use\n" msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" -#: misc-utils/lslocks.c:539 sys-utils/lsns.c:974 sys-utils/rfkill.c:632 +#: misc-utils/lslocks.c:541 sys-utils/lsns.c:974 sys-utils/rfkill.c:633 #, fuzzy msgid " --output-all output all columns\n" msgstr " -o, --options=cadena_opcions Opcions curtes a reconèixer\n" -#: misc-utils/lslocks.c:540 +#: misc-utils/lslocks.c:542 msgid " -p, --pid display only locks held by this process\n" msgstr "" -#: misc-utils/lslocks.c:541 sys-utils/lsns.c:976 sys-utils/rfkill.c:633 +#: misc-utils/lslocks.c:543 sys-utils/lsns.c:976 sys-utils/rfkill.c:634 #, fuzzy msgid " -r, --raw use the raw output format\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/lslocks.c:606 schedutils/chrt.c:414 schedutils/ionice.c:177 +#: misc-utils/lslocks.c:608 schedutils/chrt.c:414 schedutils/ionice.c:177 #: schedutils/taskset.c:171 schedutils/uclampset.c:255 sys-utils/choom.c:102 #: sys-utils/lsns.c:1058 sys-utils/prlimit.c:593 #, fuzzy @@ -11887,7 +11895,7 @@ msgstr "" msgid " -v, --verbose explain what is being done\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/mcookie.c:97 misc-utils/wipefs.c:671 sys-utils/blkdiscard.c:107 +#: misc-utils/mcookie.c:97 misc-utils/wipefs.c:674 sys-utils/blkdiscard.c:107 #: sys-utils/fallocate.c:107 sys-utils/fstrim.c:435 msgid "" msgstr "" @@ -11970,80 +11978,80 @@ msgstr "" msgid "%s: overwrite `%s'? " msgstr "s'ha produït un error d'escriptura a %s\n" -#: misc-utils/rename.c:115 misc-utils/rename.c:177 +#: misc-utils/rename.c:116 misc-utils/rename.c:181 #, fuzzy, c-format msgid "%s: not accessible" msgstr "el node d'identificació arrel no és un directori" -#: misc-utils/rename.c:124 +#: misc-utils/rename.c:125 #, fuzzy, c-format msgid "%s: not a symbolic link" msgstr "%s: no és un dispositiu de bloc\n" -#: misc-utils/rename.c:129 +#: misc-utils/rename.c:132 #, fuzzy, c-format msgid "%s: readlink failed" msgstr "no ha estat possible executar openpty\n" -#: misc-utils/rename.c:144 +#: misc-utils/rename.c:148 #, fuzzy, c-format msgid "Skipping existing link: `%s' -> `%s'\n" msgstr "...s'està saltant al fitxer " -#: misc-utils/rename.c:150 +#: misc-utils/rename.c:154 #, fuzzy, c-format msgid "%s: unlink failed" msgstr "la cerca ha fallat" -#: misc-utils/rename.c:154 +#: misc-utils/rename.c:158 #, fuzzy, c-format msgid "%s: symlinking to %s failed" msgstr "%s: no s'ha pogut reanomenar %s a %s: %s\n" -#: misc-utils/rename.c:197 +#: misc-utils/rename.c:201 #, fuzzy, c-format msgid "Skipping existing file: `%s'\n" msgstr "...s'està saltant al fitxer " -#: misc-utils/rename.c:201 +#: misc-utils/rename.c:205 #, fuzzy, c-format msgid "%s: rename to %s failed" msgstr "%s: no s'ha pogut reanomenar %s a %s: %s\n" -#: misc-utils/rename.c:215 +#: misc-utils/rename.c:219 #, fuzzy, c-format msgid " %s [options] ...\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: misc-utils/rename.c:219 +#: misc-utils/rename.c:223 #, fuzzy msgid "Rename files.\n" msgstr "la cerca ha fallat" -#: misc-utils/rename.c:222 +#: misc-utils/rename.c:226 #, fuzzy msgid " -v, --verbose explain what is being done\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/rename.c:223 +#: misc-utils/rename.c:227 #, fuzzy msgid " -s, --symlink act on the target of symlinks\n" msgstr " -n : No escrigues realment al disc" -#: misc-utils/rename.c:224 +#: misc-utils/rename.c:228 #, fuzzy msgid " -n, --no-act do not make any changes\n" msgstr " -n : No escrigues realment al disc" -#: misc-utils/rename.c:225 +#: misc-utils/rename.c:229 msgid " -o, --no-overwrite don't overwrite existing files\n" msgstr "" -#: misc-utils/rename.c:226 +#: misc-utils/rename.c:230 msgid " -i, --interactive prompt before overwrite\n" msgstr "" -#: misc-utils/rename.c:302 +#: misc-utils/rename.c:306 #, fuzzy msgid "failed to get terminal attributes" msgstr "no es pot obtenir la mida de %s" @@ -12200,7 +12208,7 @@ msgstr "" msgid "too many file descriptors received, check uuidd.socket" msgstr "la cerca ha fallat" -#: misc-utils/uuidd.c:448 text-utils/more.c:1353 +#: misc-utils/uuidd.c:448 text-utils/more.c:1356 #, fuzzy msgid "poll failed" msgstr "l'assignació de memòria (malloc) ha fallat" @@ -12567,119 +12575,119 @@ msgstr "dispositiu de blocs " msgid "partition-table" msgstr "Nombre de partició" -#: misc-utils/wipefs.c:420 +#: misc-utils/wipefs.c:423 #, fuzzy, c-format msgid "error: %s: probing initialization failed" msgstr "" "\n" "S'ha produït un error en tancar el fitxer\n" -#: misc-utils/wipefs.c:471 +#: misc-utils/wipefs.c:474 #, fuzzy, c-format msgid "%s: failed to erase %s magic string at offset 0x%08jx" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/wipefs.c:477 +#: misc-utils/wipefs.c:480 #, fuzzy, c-format msgid "%s: %zd byte was erased at offset 0x%08jx (%s): " msgid_plural "%s: %zd bytes were erased at offset 0x%08jx (%s): " msgstr[0] "%s: s'ha produït un error en obrir: %s\n" msgstr[1] "%s: s'ha produït un error en obrir: %s\n" -#: misc-utils/wipefs.c:506 +#: misc-utils/wipefs.c:509 #, fuzzy, c-format msgid "%s: failed to create a signature backup" msgstr "no s'ha pogut escriure la pàgina de la signatura" -#: misc-utils/wipefs.c:532 +#: misc-utils/wipefs.c:535 #, fuzzy, c-format msgid "%s: calling ioctl to re-read partition table: %m\n" msgstr "S'està cridant ioctl() per rellegir la taula de particions.\n" -#: misc-utils/wipefs.c:561 +#: misc-utils/wipefs.c:564 msgid "failed to create a signature backup, $HOME undefined" msgstr "" -#: misc-utils/wipefs.c:579 +#: misc-utils/wipefs.c:582 #, c-format msgid "%s: ignoring nested \"%s\" partition table on non-whole disk device" msgstr "" -#: misc-utils/wipefs.c:608 +#: misc-utils/wipefs.c:611 #, fuzzy, c-format msgid "%s: offset 0x%jx not found" msgstr "umount: %s: no s'ha trobat" -#: misc-utils/wipefs.c:613 +#: misc-utils/wipefs.c:616 #, fuzzy msgid "Use the --force option to force erase." msgstr "Useu el senyalador --force per a obviar totes les comprovacions.\n" -#: misc-utils/wipefs.c:651 +#: misc-utils/wipefs.c:654 #, fuzzy msgid "Wipe signatures from a device." msgstr "S'ha produït un error en obrir %s" -#: misc-utils/wipefs.c:654 +#: misc-utils/wipefs.c:657 #, fuzzy msgid " -a, --all wipe all magic strings (BE CAREFUL!)" msgstr " -h, --help Aquesta petita guia d'ús\n" -#: misc-utils/wipefs.c:655 +#: misc-utils/wipefs.c:658 #, fuzzy msgid " -b, --backup create a signature backup in $HOME" msgstr "no s'ha pogut escriure la pàgina de la signatura" -#: misc-utils/wipefs.c:656 +#: misc-utils/wipefs.c:659 #, fuzzy msgid " -f, --force force erasure" msgstr " t Canvia el tipus del sistema de fitxers" -#: misc-utils/wipefs.c:657 +#: misc-utils/wipefs.c:660 #, fuzzy msgid " -i, --noheadings don't print headings" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/wipefs.c:658 +#: misc-utils/wipefs.c:661 #, fuzzy msgid " -J, --json use JSON output format" msgstr " -V, --version Mostra la informació de la versió\n" -#: misc-utils/wipefs.c:659 +#: misc-utils/wipefs.c:662 #, fuzzy msgid " -n, --no-act do everything except the actual write() call" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: misc-utils/wipefs.c:660 +#: misc-utils/wipefs.c:663 #, fuzzy msgid " -o, --offset offset to erase, in bytes" msgstr " -C# [o --cylinders #]: Estableix el nombre de cilindres que s'usaran" -#: misc-utils/wipefs.c:661 +#: misc-utils/wipefs.c:664 msgid " -O, --output COLUMNS to display (see below)" msgstr "" -#: misc-utils/wipefs.c:662 +#: misc-utils/wipefs.c:665 #, fuzzy msgid " -p, --parsable print out in parsable instead of printable format" msgstr " p Imprimeix la taula de particions a la pantalla o en un fitxer" -#: misc-utils/wipefs.c:663 +#: misc-utils/wipefs.c:666 #, fuzzy msgid " -q, --quiet suppress output messages" msgstr " -q [o --quiet]: Suprimeix els avisos" -#: misc-utils/wipefs.c:664 +#: misc-utils/wipefs.c:667 #, fuzzy msgid " -t, --types limit the set of filesystem, RAIDs or partition tables" msgstr " l llista els tipus de sistemes de fitxers coneguts" -#: misc-utils/wipefs.c:666 +#: misc-utils/wipefs.c:669 #, fuzzy, c-format msgid " --lock[=] use exclusive device lock (%s, %s or %s)\n" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: misc-utils/wipefs.c:785 +#: misc-utils/wipefs.c:788 msgid "The --backup option is meaningless in this context" msgstr "" @@ -13144,22 +13152,22 @@ msgstr "" msgid "%d out of range" msgstr "El valor està fora del rang.\n" -#: schedutils/uclampset.c:268 +#: schedutils/uclampset.c:267 #, fuzzy msgid "invalid util_min argument" msgstr "identificador invàlid" -#: schedutils/uclampset.c:274 +#: schedutils/uclampset.c:272 #, fuzzy msgid "invalid util_max argument" msgstr "identificador invàlid" -#: schedutils/uclampset.c:297 +#: schedutils/uclampset.c:294 #, fuzzy msgid "missing -p option" msgstr "falta l'argument cadena_opcions" -#: schedutils/uclampset.c:315 +#: schedutils/uclampset.c:312 #, fuzzy msgid "no cmd to execute" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" @@ -13225,7 +13233,7 @@ msgid "failed to parse step" msgstr "%s: s'ha produït un error en obrir: %s\n" #: sys-utils/blkdiscard.c:224 sys-utils/blkzone.c:491 sys-utils/fallocate.c:382 -#: sys-utils/fsfreeze.c:110 sys-utils/fstrim.c:533 sys-utils/umount.c:615 +#: sys-utils/fsfreeze.c:110 sys-utils/fstrim.c:533 sys-utils/umount.c:610 #, fuzzy msgid "unexpected number of arguments" msgstr "màx. nombre de segments = %lu\n" @@ -13661,120 +13669,120 @@ msgstr "No s'ha pogut fer la configuració automàtica.\n" msgid "%s disable failed" msgstr "El sector %d ja està assignat\n" -#: sys-utils/chmem.c:265 sys-utils/lsmem.c:490 +#: sys-utils/chmem.c:274 sys-utils/lsmem.c:503 #, fuzzy, c-format msgid "Failed to read %s" msgstr "no es pot fer stat per a %s" -#: sys-utils/chmem.c:273 +#: sys-utils/chmem.c:280 #, fuzzy msgid "Failed to parse block number" msgstr "No s'ha pogut escriure la partició a %s\n" -#: sys-utils/chmem.c:278 +#: sys-utils/chmem.c:285 #, fuzzy msgid "Failed to parse size" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/chmem.c:282 +#: sys-utils/chmem.c:289 #, c-format msgid "Size must be aligned to memory block size (%s)" msgstr "" -#: sys-utils/chmem.c:291 +#: sys-utils/chmem.c:298 #, fuzzy msgid "Failed to parse start" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/chmem.c:292 +#: sys-utils/chmem.c:299 #, fuzzy msgid "Failed to parse end" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/chmem.c:296 +#: sys-utils/chmem.c:303 #, fuzzy, c-format msgid "Invalid start address format: %s" msgstr "identificador invàlid" -#: sys-utils/chmem.c:298 +#: sys-utils/chmem.c:305 #, fuzzy, c-format msgid "Invalid end address format: %s" msgstr "mount: no s'ha pogut obtenir l'adreça per a %s\n" -#: sys-utils/chmem.c:299 +#: sys-utils/chmem.c:306 #, fuzzy msgid "Failed to parse start address" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/chmem.c:300 +#: sys-utils/chmem.c:307 #, fuzzy msgid "Failed to parse end address" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/chmem.c:303 +#: sys-utils/chmem.c:310 #, c-format msgid "Start address and (end address + 1) must be aligned to memory block size (%s)" msgstr "" -#: sys-utils/chmem.c:317 +#: sys-utils/chmem.c:324 #, fuzzy, c-format msgid "Invalid parameter: %s" msgstr "id invàlid : %s\n" -#: sys-utils/chmem.c:324 +#: sys-utils/chmem.c:331 #, fuzzy, c-format msgid "Invalid range: %s" msgstr "id invàlid : %s\n" -#: sys-utils/chmem.c:333 +#: sys-utils/chmem.c:340 #, fuzzy, c-format msgid " %s [options] [SIZE|RANGE|BLOCKRANGE]\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: sys-utils/chmem.c:336 +#: sys-utils/chmem.c:343 msgid "Set a particular size or range of memory online or offline.\n" msgstr "" -#: sys-utils/chmem.c:339 +#: sys-utils/chmem.c:346 #, fuzzy msgid " -e, --enable enable memory\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: sys-utils/chmem.c:340 +#: sys-utils/chmem.c:347 #, fuzzy msgid " -d, --disable disable memory\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: sys-utils/chmem.c:341 +#: sys-utils/chmem.c:348 #, fuzzy msgid " -b, --blocks use memory blocks\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: sys-utils/chmem.c:342 +#: sys-utils/chmem.c:349 msgid " -z, --zone select memory zone (see below)\n" msgstr "" -#: sys-utils/chmem.c:343 +#: sys-utils/chmem.c:350 #, fuzzy msgid " -v, --verbose verbose output\n" msgstr " -V, --version Mostra la informació de la versió\n" -#: sys-utils/chmem.c:346 +#: sys-utils/chmem.c:353 msgid "" "\n" "Supported zones:\n" msgstr "" -#: sys-utils/chmem.c:387 sys-utils/lscpu-cputype.c:844 sys-utils/lsmem.c:654 +#: sys-utils/chmem.c:394 sys-utils/lscpu-cputype.c:864 sys-utils/lsmem.c:667 #, fuzzy, c-format msgid "failed to initialize %s handler" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: sys-utils/chmem.c:433 +#: sys-utils/chmem.c:440 msgid "zone ignored, no valid_zones sysfs attribute present" msgstr "" -#: sys-utils/chmem.c:438 +#: sys-utils/chmem.c:445 #, fuzzy, c-format msgid "unknown memory zone: %s" msgstr "logger: nom amb prioritat desconeguda: %s.\n" @@ -13875,7 +13883,7 @@ msgstr "màx. nombre de segments = %lu\n" msgid "You must be root to set the Ctrl-Alt-Del behavior" msgstr "Haureu de ser el root per a establir el comportament de Ctrl-Alt-Supr.\n" -#: sys-utils/ctrlaltdel.c:74 sys-utils/ipcrm.c:395 sys-utils/ipcrm.c:418 +#: sys-utils/ctrlaltdel.c:74 sys-utils/ipcrm.c:396 sys-utils/ipcrm.c:419 #, fuzzy, c-format msgid "unknown argument: %s" msgstr "%s: argument desconegut: %s\n" @@ -14160,27 +14168,27 @@ msgstr "" msgid "read kernel buffer failed" msgstr "no ha estat possible executar gettimeofday" -#: sys-utils/dmesg.c:1606 +#: sys-utils/dmesg.c:1605 #, fuzzy msgid "clear kernel buffer failed" msgstr "no ha estat possible executar gettimeofday" -#: sys-utils/dmesg.c:1622 +#: sys-utils/dmesg.c:1621 #, fuzzy msgid "klogctl failed" msgstr "no s'ha pogut fer fsync" -#: sys-utils/eject.c:138 +#: sys-utils/eject.c:140 #, fuzzy, c-format msgid " %s [options] [|]\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: sys-utils/eject.c:141 +#: sys-utils/eject.c:143 #, fuzzy msgid "Eject removable media.\n" msgstr " extraïble" -#: sys-utils/eject.c:144 +#: sys-utils/eject.c:146 msgid "" " -a, --auto turn auto-eject feature on or off\n" " -c, --changerslot switch discs on a CD-ROM changer\n" @@ -14202,297 +14210,303 @@ msgid "" " -X, --listspeed list CD-ROM available speeds\n" msgstr "" -#: sys-utils/eject.c:167 +#: sys-utils/eject.c:169 msgid "" "\n" "By default tries -r, -s, -f, and -q in order until success.\n" msgstr "" -#: sys-utils/eject.c:213 +#: sys-utils/eject.c:215 msgid "invalid argument to --changerslot/-c option" msgstr "" -#: sys-utils/eject.c:217 +#: sys-utils/eject.c:219 #, fuzzy msgid "invalid argument to --cdspeed/-x option" msgstr "id invàlid : %s\n" -#: sys-utils/eject.c:325 +#: sys-utils/eject.c:327 msgid "CD-ROM auto-eject command failed" msgstr "" -#: sys-utils/eject.c:339 +#: sys-utils/eject.c:341 #, fuzzy msgid "CD-ROM door lock is not supported" msgstr "Només es suporten blocs o zones de 1k" -#: sys-utils/eject.c:341 +#: sys-utils/eject.c:343 msgid "other users have the drive open and not CAP_SYS_ADMIN" msgstr "" -#: sys-utils/eject.c:343 +#: sys-utils/eject.c:345 msgid "CD-ROM lock door command failed" msgstr "" -#: sys-utils/eject.c:348 +#: sys-utils/eject.c:350 msgid "CD-Drive may NOT be ejected with device button" msgstr "" -#: sys-utils/eject.c:350 +#: sys-utils/eject.c:352 msgid "CD-Drive may be ejected with device button" msgstr "" -#: sys-utils/eject.c:361 +#: sys-utils/eject.c:363 msgid "CD-ROM select disc command failed" msgstr "" -#: sys-utils/eject.c:365 +#: sys-utils/eject.c:367 msgid "CD-ROM load from slot command failed" msgstr "" -#: sys-utils/eject.c:367 +#: sys-utils/eject.c:369 msgid "IDE/ATAPI CD-ROM changer not supported by this kernel\n" msgstr "" -#: sys-utils/eject.c:385 +#: sys-utils/eject.c:387 msgid "CD-ROM tray close command failed" msgstr "" -#: sys-utils/eject.c:387 +#: sys-utils/eject.c:389 #, fuzzy msgid "CD-ROM tray close command not supported by this kernel\n" msgstr "mount: el tipus del sistema de fitxers %s no està suportat pel nucli" -#: sys-utils/eject.c:404 +#: sys-utils/eject.c:406 msgid "CD-ROM eject unsupported" msgstr "" -#: sys-utils/eject.c:432 sys-utils/eject.c:455 sys-utils/eject.c:1020 +#: sys-utils/eject.c:434 sys-utils/eject.c:457 sys-utils/eject.c:1018 msgid "CD-ROM eject command failed" msgstr "" -#: sys-utils/eject.c:435 +#: sys-utils/eject.c:437 msgid "no CD-ROM information available" msgstr "" -#: sys-utils/eject.c:438 +#: sys-utils/eject.c:440 msgid "CD-ROM drive is not ready" msgstr "" -#: sys-utils/eject.c:441 +#: sys-utils/eject.c:443 #, fuzzy msgid "CD-ROM status command failed" msgstr "no s'ha pogut obrir el directori\n" -#: sys-utils/eject.c:481 +#: sys-utils/eject.c:483 msgid "CD-ROM select speed command failed" msgstr "" -#: sys-utils/eject.c:483 +#: sys-utils/eject.c:485 #, fuzzy msgid "CD-ROM select speed command not supported by this kernel" msgstr "mount: el tipus del sistema de fitxers %s no està suportat pel nucli" -#: sys-utils/eject.c:520 +#: sys-utils/eject.c:522 #, fuzzy, c-format msgid "%s: failed to finding CD-ROM name" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/eject.c:535 +#: sys-utils/eject.c:539 #, fuzzy, c-format msgid "%s: failed to read speed" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/eject.c:543 +#: sys-utils/eject.c:545 #, fuzzy msgid "failed to read speed" msgstr "no es pot fer stat per a %s" -#: sys-utils/eject.c:583 +#: sys-utils/eject.c:585 #, fuzzy msgid "not an sg device, or old sg driver" msgstr "%s no és cap dispositiu de bloc o un fitxer\n" -#: sys-utils/eject.c:655 +#: sys-utils/eject.c:657 #, fuzzy, c-format msgid "%s: unmounting" msgstr "no s'ha estat possible muntar" -#: sys-utils/eject.c:673 +#: sys-utils/eject.c:662 sys-utils/mount.c:58 sys-utils/umount.c:122 +#: text-utils/more.c:1260 +#, fuzzy +msgid "drop permissions failed" +msgstr "mount: s'ha denegat el permís" + +#: sys-utils/eject.c:671 #, fuzzy msgid "unable to fork" msgstr "no es pot obrir %s" -#: sys-utils/eject.c:680 +#: sys-utils/eject.c:678 #, fuzzy, c-format msgid "unmount of `%s' did not exit normally" msgstr "mount: el punt de muntatge %s no existeix" -#: sys-utils/eject.c:683 +#: sys-utils/eject.c:681 #, fuzzy, c-format msgid "unmount of `%s' failed\n" msgstr "%s: no s'ha pogut reanomenar %s a %s: %s\n" -#: sys-utils/eject.c:728 +#: sys-utils/eject.c:726 #, fuzzy msgid "failed to parse mount table" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/eject.c:794 sys-utils/eject.c:896 +#: sys-utils/eject.c:792 sys-utils/eject.c:894 #, fuzzy, c-format msgid "%s: mounted on %s" msgstr "umount: %s: no s'ha trobat" -#: sys-utils/eject.c:837 +#: sys-utils/eject.c:835 msgid "setting CD-ROM speed to auto" msgstr "" -#: sys-utils/eject.c:839 +#: sys-utils/eject.c:837 #, c-format msgid "setting CD-ROM speed to %ldX" msgstr "" -#: sys-utils/eject.c:865 +#: sys-utils/eject.c:863 #, c-format msgid "default device: `%s'" msgstr "" -#: sys-utils/eject.c:871 +#: sys-utils/eject.c:869 #, fuzzy, c-format msgid "using default device `%s'" msgstr "S'està utilitzant el valor per defecte %u\n" -#: sys-utils/eject.c:890 +#: sys-utils/eject.c:888 #, fuzzy msgid "unable to find device" msgstr "no s'ha pogut rebobinar el dispositiu d'intercanvi" -#: sys-utils/eject.c:892 +#: sys-utils/eject.c:890 #, fuzzy, c-format msgid "device name is `%s'" msgstr "loop: no s'ha pogut obrir el dispositiu %s: %s\n" -#: sys-utils/eject.c:898 sys-utils/umount.c:361 sys-utils/umount.c:385 +#: sys-utils/eject.c:896 sys-utils/umount.c:356 sys-utils/umount.c:380 #, fuzzy, c-format msgid "%s: not mounted" msgstr "umount: %s: no s'ha trobat" -#: sys-utils/eject.c:902 +#: sys-utils/eject.c:900 #, c-format msgid "%s: disc device: %s (disk device will be used for eject)" msgstr "" -#: sys-utils/eject.c:910 +#: sys-utils/eject.c:908 #, c-format msgid "%s: not found mountpoint or device with the given name" msgstr "" -#: sys-utils/eject.c:913 +#: sys-utils/eject.c:911 #, fuzzy, c-format msgid "%s: is whole-disk device" msgstr "%s: s'ha produït un error en obrir: %s\n" -#: sys-utils/eject.c:917 +#: sys-utils/eject.c:915 #, fuzzy, c-format msgid "%s: is not hot-pluggable device" msgstr "%s: no és un dispositiu de bloc\n" -#: sys-utils/eject.c:921 +#: sys-utils/eject.c:919 #, fuzzy, c-format msgid "device is `%s'" msgstr "loop: no s'ha pogut obrir el dispositiu %s: %s\n" -#: sys-utils/eject.c:922 +#: sys-utils/eject.c:920 msgid "exiting due to -n/--noop option" msgstr "" -#: sys-utils/eject.c:936 +#: sys-utils/eject.c:934 #, c-format msgid "%s: enabling auto-eject mode" msgstr "" -#: sys-utils/eject.c:938 +#: sys-utils/eject.c:936 #, c-format msgid "%s: disabling auto-eject mode" msgstr "" -#: sys-utils/eject.c:946 +#: sys-utils/eject.c:944 #, c-format msgid "%s: closing tray" msgstr "" -#: sys-utils/eject.c:955 +#: sys-utils/eject.c:953 #, c-format msgid "%s: toggling tray" msgstr "" -#: sys-utils/eject.c:964 +#: sys-utils/eject.c:962 #, c-format msgid "%s: listing CD-ROM speed" msgstr "" -#: sys-utils/eject.c:990 +#: sys-utils/eject.c:988 #, fuzzy, c-format msgid "error: %s: device in use" msgstr "umount: %s: dispositiu ocupat" -#: sys-utils/eject.c:1001 +#: sys-utils/eject.c:999 #, c-format msgid "%s: selecting CD-ROM disc #%ld" msgstr "" -#: sys-utils/eject.c:1017 +#: sys-utils/eject.c:1015 #, c-format msgid "%s: trying to eject using CD-ROM eject command" msgstr "" -#: sys-utils/eject.c:1019 +#: sys-utils/eject.c:1017 msgid "CD-ROM eject command succeeded" msgstr "" -#: sys-utils/eject.c:1024 +#: sys-utils/eject.c:1022 #, c-format msgid "%s: trying to eject using SCSI commands" msgstr "" -#: sys-utils/eject.c:1026 +#: sys-utils/eject.c:1024 #, fuzzy msgid "SCSI eject succeeded" msgstr "%s s'ha completat amb èxit.\n" -#: sys-utils/eject.c:1027 +#: sys-utils/eject.c:1025 #, fuzzy msgid "SCSI eject failed" msgstr "no s'ha pogut executar exec\n" -#: sys-utils/eject.c:1031 +#: sys-utils/eject.c:1029 #, c-format msgid "%s: trying to eject using floppy eject command" msgstr "" -#: sys-utils/eject.c:1033 +#: sys-utils/eject.c:1031 msgid "floppy eject command succeeded" msgstr "" -#: sys-utils/eject.c:1034 +#: sys-utils/eject.c:1032 msgid "floppy eject command failed" msgstr "" -#: sys-utils/eject.c:1038 +#: sys-utils/eject.c:1036 #, c-format msgid "%s: trying to eject using tape offline command" msgstr "" -#: sys-utils/eject.c:1040 +#: sys-utils/eject.c:1038 msgid "tape offline command succeeded" msgstr "" -#: sys-utils/eject.c:1041 +#: sys-utils/eject.c:1039 #, fuzzy msgid "tape offline command failed" msgstr "no s'ha pogut obrir el directori\n" -#: sys-utils/eject.c:1045 +#: sys-utils/eject.c:1043 #, fuzzy msgid "unable to eject" msgstr "no ha estat possible executar ioctl() per llegir l'hora de %s" @@ -14781,8 +14795,8 @@ msgstr "" msgid "%s: %s (% bytes) trimmed\n" msgstr "" -#: sys-utils/fstrim.c:249 sys-utils/lsns.c:1144 sys-utils/swapon.c:745 -#: sys-utils/umount.c:267 +#: sys-utils/fstrim.c:249 sys-utils/lsns.c:1144 sys-utils/swapon.c:746 +#: sys-utils/umount.c:262 #, fuzzy, c-format msgid "failed to parse %s" msgstr "%s: s'ha produït un error en obrir: %s\n" @@ -14792,7 +14806,7 @@ msgstr "%s: s'ha produït un error en obrir: %s\n" msgid "failed to allocate FS handler" msgstr "No s'ha pogut assignar la memòria temporal.\n" -#: sys-utils/fstrim.c:364 sys-utils/fstrim.c:545 +#: sys-utils/fstrim.c:364 sys-utils/fstrim.c:547 #, fuzzy, c-format msgid "%s: the discard operation is not supported" msgstr "Avís: l'opció nolock no està implementada.\n" @@ -15042,12 +15056,12 @@ msgid "" "%s" msgstr "" -#: sys-utils/hwclock.c:911 +#: sys-utils/hwclock.c:916 #, fuzzy, c-format msgid "cannot update %s" msgstr "%s no es pot obrir" -#: sys-utils/hwclock.c:947 +#: sys-utils/hwclock.c:952 #, fuzzy, c-format msgid "Not setting clock because last adjustment time is zero, so history is bad.\n" msgstr "" @@ -15055,7 +15069,7 @@ msgstr "" "calibració és zero, així que l'historial és dolent, i és necessària\n" "una calibració des del començament.\n" -#: sys-utils/hwclock.c:951 +#: sys-utils/hwclock.c:956 #, fuzzy, c-format msgid "Not setting clock because drift factor %f is far too high.\n" msgstr "" @@ -15063,208 +15077,208 @@ msgstr "" "calibració és zero, així que l'historial és dolent, i és necessària\n" "una calibració des del començament.\n" -#: sys-utils/hwclock.c:981 +#: sys-utils/hwclock.c:986 #, c-format msgid "No usable clock interface found.\n" msgstr "No s'ha trobat cap interfície de rellotge usable.\n" -#: sys-utils/hwclock.c:983 +#: sys-utils/hwclock.c:988 #, fuzzy msgid "Cannot access the Hardware Clock via any known method." msgstr "No s'ha pogut accedir al rellotge del maquinari mitjançant cap dels mètodes coneguts.\n" -#: sys-utils/hwclock.c:987 +#: sys-utils/hwclock.c:992 #, fuzzy msgid "Use the --verbose option to see the details of our search for an access method." msgstr "Useu l'opció --debug per veure els detalls de la recerca d'un mètode d'accés.\n" -#: sys-utils/hwclock.c:1037 +#: sys-utils/hwclock.c:1042 #, fuzzy, c-format msgid "Target date: %\n" msgstr "pàgines intercanviades %ld\n" -#: sys-utils/hwclock.c:1038 +#: sys-utils/hwclock.c:1043 #, c-format msgid "Predicted RTC: %\n" msgstr "" -#: sys-utils/hwclock.c:1068 +#: sys-utils/hwclock.c:1073 msgid "RTC read returned an invalid value." msgstr "" -#: sys-utils/hwclock.c:1098 +#: sys-utils/hwclock.c:1103 #, c-format msgid "Needed adjustment is less than one second, so not setting clock.\n" msgstr "L'ajustament necessari és inferior a un segon, no s'ajustarà el rellotge.\n" -#: sys-utils/hwclock.c:1135 +#: sys-utils/hwclock.c:1140 #, fuzzy msgid "unable to read the RTC epoch." msgstr "no es pot llegir el superbloc" -#: sys-utils/hwclock.c:1137 +#: sys-utils/hwclock.c:1142 #, c-format msgid "The RTC epoch is set to %lu.\n" msgstr "" -#: sys-utils/hwclock.c:1140 +#: sys-utils/hwclock.c:1145 msgid "--epoch is required for --setepoch." msgstr "" -#: sys-utils/hwclock.c:1143 +#: sys-utils/hwclock.c:1148 #, fuzzy msgid "unable to set the RTC epoch." msgstr "No es pot establir el rellotge del sistema.\n" -#: sys-utils/hwclock.c:1157 +#: sys-utils/hwclock.c:1162 #, fuzzy, c-format msgid " %s [function] [option...]\n" msgstr "Forma d'ús: %s [opcions] dispositiu ...\n" -#: sys-utils/hwclock.c:1160 +#: sys-utils/hwclock.c:1165 msgid "Time clocks utility." msgstr "" -#: sys-utils/hwclock.c:1163 +#: sys-utils/hwclock.c:1168 #, fuzzy msgid " -r, --show display the RTC time" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: sys-utils/hwclock.c:1164 +#: sys-utils/hwclock.c:1169 #, fuzzy msgid " --get display drift corrected RTC time" msgstr " -Q, --quiet-output No hi ha sortida normal\n" -#: sys-utils/hwclock.c:1165 +#: sys-utils/hwclock.c:1170 #, fuzzy msgid " --set set the RTC according to --date" msgstr " -u, --unqote No es posarà la sortida entre cometes\n" -#: sys-utils/hwclock.c:1166 +#: sys-utils/hwclock.c:1171 msgid " -s, --hctosys set the system time from the RTC" msgstr "" -#: sys-utils/hwclock.c:1167 +#: sys-utils/hwclock.c:1172 #, fuzzy msgid " -w, --systohc set the RTC from the system time" msgstr " l llista els tipus de sistemes de fitxers coneguts" -#: sys-utils/hwclock.c:1168 +#: sys-utils/hwclock.c:1173 #, fuzzy msgid " --systz send timescale configurations to the kernel" msgstr " -n : No escrigues realment al disc" -#: sys-utils/hwclock.c:1169 -msgid " -a, --adjust adjust the RTC to account for systematic drift" -msgstr "" - -#: sys-utils/hwclock.c:1171 -#, fuzzy -msgid " --getepoch display the RTC epoch" -msgstr " -h, --help Aquesta petita guia d'ús\n" - -#: sys-utils/hwclock.c:1172 -msgid " --setepoch set the RTC epoch according to --epoch" -msgstr "" - #: sys-utils/hwclock.c:1174 -msgid " --predict predict the drifted RTC time according to --date" +msgid " -a, --adjust adjust the RTC to account for systematic drift" msgstr "" #: sys-utils/hwclock.c:1176 #, fuzzy +msgid " --getepoch display the RTC epoch" +msgstr " -h, --help Aquesta petita guia d'ús\n" + +#: sys-utils/hwclock.c:1177 +msgid " --setepoch set the RTC epoch according to --epoch" +msgstr "" + +#: sys-utils/hwclock.c:1179 +msgid " --predict predict the drifted RTC time according to --date" +msgstr "" + +#: sys-utils/hwclock.c:1181 +#, fuzzy msgid " -u, --utc the RTC timescale is UTC" msgstr " -V, --version Mostra la informació de la versió\n" -#: sys-utils/hwclock.c:1177 +#: sys-utils/hwclock.c:1182 #, fuzzy msgid " -l, --localtime the RTC timescale is Local" msgstr " -h, --help Aquesta petita guia d'ús\n" -#: sys-utils/hwclock.c:1180 +#: sys-utils/hwclock.c:1185 #, fuzzy, c-format msgid " -f, --rtc use an alternate file to %1$s\n" msgstr " -a, --alternative Permet opcions llargues amb només un -\n" -#: sys-utils/hwclock.c:1183 +#: sys-utils/hwclock.c:1188 #, c-format msgid " --directisa use the ISA bus instead of %1$s access\n" msgstr "" -#: sys-utils/hwclock.c:1184 +#: sys-utils/hwclock.c:1189 msgid " --date