Compare commits

..

249 Commits

Author SHA1 Message Date
Colin Woodbury
a4240a55e4 Restore usage line for -Fh
Unlike the other main commands, -F was missing its top-level usage line in its
help output.

Signed-off-by: Colin Woodbury <colin@fosskers.ca>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-12-03 21:37:30 +10:00
Allan McRae
20f2ae56eb Modify "pacman -h" output for files operations
pacman -F can take both a file(s) or a package(s) as arguments.  Passing a
file is more common, so adjust to show that in the help.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-12-03 21:34:01 +10:00
morganamilo
5c24f7dd11 libalpm: set ret in download files
download_files never set ret on failiure, so even when downloading
fails, the transaction goes on to commit and error out.

:: Retrieving packages...
 python-packaging-20.4-4-any.pkg.tar.zst failed to download
error: failed retrieving file 'python-packaging-20.4-4-any.pkg.tar.zst' from mirror.oldsql.cc : The requested URL returned error: 404
warning: failed to retrieve some files
(1/1) checking keys in keyring
(1/1) checking package integrity
error: failed to commit transaction (wrong or NULL argument passed)
Errors occurred, no packages were upgraded.

Also make the ret checking more consistent.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-12-03 21:31:34 +10:00
Ivy Foster
08f4ae709c Add fossil scm support to makepkg
Signed-off-by: Ivy Foster <escondida@iff.ink>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 21:58:40 +10:00
morganamilo
73e0d7dedc libalpm: add alpm_option_get_parallel_downloads
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 21:10:16 +10:00
morganamilo
66f9f315cf libalpm: set errno when setting parallel downloads with an invalid number
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 21:08:13 +10:00
morganamilo
75cfce9468 libalpm: clarify alpm_download_event_completed_t status
The comment makes it seem that the result itself is an error code. But
all it does is simply return -1 to indicate an error occured;

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 21:07:48 +10:00
morganamilo
4b8c274f7f libalpm: don't call dlcb when not set
Fixes FS#68728:

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 16:31:27 +10:00
morganamilo
9dc29ebf5f libalpm: set parallel_downloads to 1 when creating the handle
Fixes FS#68729

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 16:19:24 +10:00
Anatol Pomozov
db4092e33d Move cursor to the end of the screen at the SIGINT
It requires exposing 'move cursor to the end' function in a pacman
header file. We use it as a chance to make naming of the cursor management
functions more consistent.

Note that there is still possibility of a race condition in the cursor
update logic. 'update cursor index variable' and 'send ASCII control
symbols to console' is not an atomic operation. So if an SIGINT is
received between these two action then cursor position is going to be
screwed.

Fixes FS#67973

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 16:10:26 +10:00
Anatol Pomozov
2859a6eefc Go to the end of screen if 'printonly' mode enabled
At the end of download operation our code makes sure the cursor is moved
to the end of the drawing area. But 'printonly' mode has its own if() branch
that skips this cursor alignment. Add cursor_goto_end() to the 'printonly'
codepath to make sure it does not clobber previous output.

Fixes FS#68355

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 15:47:47 +10:00
Michael Straube
94ac3330dd libmakepkg: compress: fix tar extension
With commit 74aacf4495 creating uncompressed .tar
packages fails.

  -> Compressing package...
/usr/share/makepkg/util/compress.sh: line 70: COMPRESS.TAR[@]: invalid variable name
bsdtar: Write error

Empty the '$ext' variable for the '.tar' extension in get_compress_command() to
fix this. We would fallback to cat for 'tar' anyways.

Signed-off-by: Michael Straube <michael.straubej@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-11-26 15:45:29 +10:00
Michael Straube
4d8f58d3b9 makepkg: emptydirs: fix typo
Fix typo in a comment in tidy_emptydirs().

Signed-off-by: Michael Straube <michael.straubej@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-10-21 11:19:01 +10:00
Eli Schwartz
c99a3cc867 makepkg: properly localize some internal function variables
We leaked fullver and pkgarch all over the place, and only conditionally
unset the other variables. Marking them local is a more proactive
solution.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-10-21 11:18:32 +10:00
Eli Schwartz
f76bd2c6c1 makepkg: fix signing of source packages
In commit c6b04c0465 the signing stage was
moved out of fakeroot, and thus into the main control flow instead of
create_{,src}package

While the function for signing binary packages has logic to build
and gpg-sign multiple filenames, the source package never got this
special treatment. This would be fine, except it uses the standard
variables to set define the filename... like ${fullver}, which is
usually set beforehand, but in this case is not. We don't define fullver
globally as it's an internal implementation detail, except by sheer
coincidence if PKGVERFUNC is false due to improperly guarded code.

Result: source packages didn't end up signed. Instead, we raised a logic
error:

==> WARNING: Failed to sign package file somepackage-.src.tar.gz.

==> ERROR: An unknown error has occurred. Exiting...

Instead, let's just build the version inline, since we only use it once.

Reported-by: GaKu999 <g4ku999@gmail.com>
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-10-21 11:17:14 +10:00
Eli Schwartz
406a37206f makepkg: libprovides: don't provide both versioned and unversioned sonames
If multiple files match the pattern libfoo.so*, we want to check each of
them and see if they are shared libraries, and if so, if they have
versions attached.

But some packages can have both shared libraries and random files which
match the filename pattern. This is true at least for files in
/usr/share/gdb/auto-load/, which must match the filename they are paired
with, followed by "-gdb.py" (or some other gdb scripting ext), but
definitely don't contain a shared library. In this case, we don't want
to double-report the library in the generated provides.

It's also possible (probably) for a package to provide a versioned as
well as an unversioned shared library, but in such cases a single
provides entry is sufficient to cover both cases (and the libdepends
for the depending package would contain an unversioned dependency).

Solve this by keeping track of whether we have added a versioned soname
provides already, and then only adding a maximum of one unversioned
provides *iff* there isn't a versioned one yet.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-09-23 17:12:01 +10:00
Chih-Hsuan Yen
4533c6a8e0 util.c: table_print_line: properly align texts involving CJK
For printf in C, width is counted as bytes rather than Unicode width. [1]

> If the precision is specified, no more than that many bytes are written.

[1] Section 7.21.6, N2176, final draft for ISO/IEC 9899:2017 (C18)

Thanks Andrew Gregory for suggesting a simpler approach.

Fixes FS#59229

Signed-off-by: Chih-Hsuan Yen <yan12125@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-09-23 17:12:01 +10:00
Anatol Pomozov
ff7ff3c58d FS#66472: Remove *.sig file if package corrupted
In case if a package corrupted (e.g. signature or hash is invalid)
pacman tries to remove the package file to redownload it anew the next time.
Remove *.sig file as well to make sure no data is left for the invalid
package.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-09-23 17:12:01 +10:00
Ronan Pigott
d85d9c8c60 Add pacman-conf zsh completions
Signed-off-by: Ronan Pigott <rpigott@berkeley.edu>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-09-03 12:55:34 +10:00
Eli Schwartz
04b69957c8 remove more autotools files
We forgot to remove m4/ in commit 454ea02438
and now it's tragically reminding me of autotools!

Also take this opportunity to drop some symlinks in lib/libalpm/ for
libcommon source files. In autotools these were built specifically for
libalpm and needed to be available in that directory, but the meson
setup just has libalpm depend on libcommon. So these pseudo source files
aren't needed anymore.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-09-03 12:49:13 +10:00
Allan McRae
f235cea733 makepkg.conf: Reword "Defaults"
FS#61661 notes that we have a comment "Defaults" value for BUILDENV and OPTIONS
but that does not necessarily correspond to what the example makepkg.conf sets.

Change the comment to "Makepkg defaults" to indicate this is what makepkg will
do unless told otherwise.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-09-03 12:44:24 +10:00
Anatol Pomozov
f53ac85ff6 Enable sha256/md5 hash verification if detached signatures are used
Pacman has multiple ways to verify package content integrity:
 - gpg signature
 - sha256
 - md5

These verification mechanisms overlap each other. gpg signatures already contain
hash value of the package content. So if a package signature is present then
pacman ignored the other 2 hash values. This worked well with signtures
embedded into pacman database.

Recently pacman got an ability to handle detached signatures (*.sig files
located next to the package files). If pacman verifies detached signature only
then one can replace pkg+sig files with some other content and pacman still
processes it as a valid package. To prevent it we need to verify
database<->package integrity using hash values stored in the database.

This commit fixes FS#67232

The new debug output is:
  checking package integrity...
  debug: found cached pkg: /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: sha256sum: 77baf61c62c5570b3a37cf0c3b16c5d9a97dde6fedd1a3528bf0cc5f96dd5e52
  debug: checking sha256sum for /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: sig data: <from .sig>
  debug: checking signature for /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: 1 signatures returned
  debug: fingerprint: B5971F2C5C10A9A08C60030F786C63F330D7CB92

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-08-10 19:25:59 +10:00
Anatol Pomozov
62246b9355 Fix error during keyring checking
With current master version the 'keyring checking' step produces an error:
  debug: returning error 6 from alpm_pkg_get_sig (../lib/libalpm/package.c: 274) : wrong or NULL argument passed

The package signature is still checked later at the integrity verification step though.

This commit fixes keyring checking and now the debug log looks like this:
  debug: found cached pkg: /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst
  debug: found detached signature /var/cache/pacman/pkg/ruby-2.7.1-2-x86_64.pkg.tar.zst.sig with size 566
  debug: found signature key: 786C63F330D7CB92
  debug: looking up key 786C63F330D7CB92 locally
  debug: key lookup success, key exists

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-08-10 10:02:02 +10:00
Eli Schwartz
2403fc9732 repo-add: use more libmakepkg to handle common compression routines
Currently the list of supported formats for an archive, is maintained in
two places. And repo-add does not actually get updated. :(

In the process, remove some of the logical duplication when calling
bsdtar/compress_as.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-08-10 09:57:37 +10:00
Eli Schwartz
74aacf4495 libmakepkg: extend compress.sh to also permit checking validity
get_compression_command() can now be used to do upfront checks for
whether a given extension is known to do something successfully. This is
useful when writing tools in which an unknown compression type is a
fatal error.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-08-10 09:57:32 +10:00
Morten Linderud
2a352dc059 doc/makepkg.8: Added punctuations.
Signed-off-by: Morten Linderud <morten@linderud.pw>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-14 23:44:16 +10:00
Anatol Pomozov
14c0e53eed Check that destfile_name exists before using it
In some cases (when trust_remote_name is used for a URL without a filename and
no Content-Disposition is provided by the server) destfile_name will be
NULL. In this case payload data will be stored in tempfile_name and no
destfile_name is set.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-14 23:43:10 +10:00
Anatol Pomozov
1fd95939db Do not free payload fields in the middle of this structure use
At the end of payload use it calls _alpm_dload_payload_reset()
that will free() these and other fields anyway.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-14 23:41:45 +10:00
Anatol Pomozov
a8bdc2e10a Build signature remote name based on the main payload name
The main payload final name might be affected by url redirects or
Content-Disposition HTTP header value.

We want to make sure that accompanion *.sig filename always matches the
package filename. So ignore finalname/Content-Disposition for the *.sig file.

It also helps to fix a corner case when the download URL does not contain
a filename and server provides Content-Disposition for the main payload
but not for the signature payload.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-14 23:39:37 +10:00
Anatol Pomozov
b01bcc7d3d Fallback to detached signatures during keyring check
Pacman has a 'key in keyring' verification step that makes sure the signatures
have a valid keyid. Currently pacman parses embedded package signatures only.

Add a fallback to detached signatures. If embedded signature is missing then it
tries to read corresponding *.sig file and get keyid from there.

Verification:
  debug: found cached pkg: /var/cache/pacman/pkg/glib-networking-2.64.3-1-x86_64.pkg.tar.zst
  debug: found detached signature /var/cache/pacman/pkg/glib-networking-2.64.3-1-x86_64.pkg.tar.zst.sig with size 310
  debug: found signature key: A5E9288C4FA415FA
  debug: looking up key A5E9288C4FA415FA locally
  debug: key lookup success, key exists

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-07 21:38:13 +10:00
Anatol Pomozov
f3dfba73d2 FS#33992: force download *.sig file if it does not exist in the cache
In case if *.pkg exists but *.sig file does not we still have to pass
the pkg to multi_download API.

To avoid redownloading *.pkg file we use CURLOPT_TIMECONDITION curl option.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-07 21:38:00 +10:00
Anatol Pomozov
78d6dcec6c Add a utility function to check whether a file exists in the cache
It is similar to _alpm_filecache_find() but does not return a
dynamically allocated memory to user. Thus the user does not need to
free this resource.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-07 21:36:56 +10:00
Anatol Pomozov
34ba8d984d Do not use counter for error tracking
Current code uses an incrementing counter to check whether a function
returned error:

  errors += some_function();
  if(errors) { goto finish }

Replace with a more standard variable
  errors = some_function();
  if(errors) { goto finish }

Rename 'errors' variable to a more typical 'ret'.

Avoid reporting both ALPM_EVENT_PKG_RETRIEVE_FAILED and
ALPM_EVENT_PKG_RETRIEVE_DONE in the error path.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-07 21:35:39 +10:00
Anatol Pomozov
f078c2d3bc Move signature payload creation to download engine
Until now callee of ALPM download functionality has been in charge of
payload creation both for the main file (e.g. *.pkg) and for the accompanied
*.sig file. One advantage of such solution is that all payloads are
independent and can be fetched in parallel thus exploiting the maximum
level of download parallelism.

To build *.sig file url we've been using a simple string concatenation:
$requested_url + ".sig". Unfortunately there are cases when it does not
work. For example an archlinux.org "Download From Mirror" link looks like
this https://www.archlinux.org/packages/core/x86_64/bash/download/ and
it gets redirected to some mirror. But if we append ".sig" to the end of
the link url and try to download it then archlinux.org returns 404 error.

To overcome this issue we need to follow redirects for the main payload
first, find the final url and only then append '.sig' suffix.
This implies 2 things:
 - the signature payload initialization need to be moved to dload.c
 as it is the place where we have access to the resolved url
 - *.sig is downloaded serially with the main payload and this reduces
 level of parallelism

Move *.sig payload creation to dload.c. Once the main payload is fetched
successfully we check if the callee asked to download the accompanied
signature. If yes - create a new payload and add it to mcurl.

*.sig payload does not use server list of the main payload and thus does
not support mirror failover. *.sig file comes from the same server as
the main payload.

Refactor event loop in curl_multi_download_internal() a bit. Instead of
relying on curl_multi_check_finished_download() to return number of new
payloads we simply rerun the loop iteration one more time to check if
there are any active downloads left.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-07-07 21:35:35 +10:00
Denton Liu
6b9c1b4d54 srcinfo.sh: remove trailing newline
When a .SRCINFO file is generated via `makepkg --printsrcinfo`, each
section is concluded with an empty line. This means that at the end of
the file, an empty line remains. This is considered a trailing
whitespace error. In fact, `git diff --check` will warn about this,
saying "new blank line at EOF."

Instead of closing each section off with an empty line, use the empty
line to separate sections, omitting the empty line at the end of the
file.

Signed-off-by: Denton Liu <liu.denton@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-26 16:00:26 +10:00
Anatol Pomozov
84723cab5d Cleanup the old sequential download code
All users of _alpm_download() have been refactored to the new API.
It is time to remove the old _alpm_download() functionality now.

This change also removes obsolete SIGPIPE signal handler functionality
(this is a leftover from libfetch days).

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
2020-06-26 15:59:16 +10:00
Anatol Pomozov
16d98d6577 Convert '-U pkg1 pkg2' codepath to parallel download
Installing remote packages using its URL is an interesting case for ALPM
API. Unlike package sync ('pacman -S pkg1 pkg2') '-U' does not deal with
server mirror list. Thus _alpm_multi_download() should be able to
handle file download for payloads that either have 'fileurl' field
or pair of fields ('servers' and 'filepath') set.

Signature for alpm_fetch_pkgurl() has changed and it accepts an
output list that is populated with filepaths to fetched packages.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
2020-06-26 15:59:08 +10:00
Eli Schwartz
59e751f72d doc/pacman.8: fix typo
Fixes FS#67000

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-19 15:38:24 +10:00
Allan McRae
7ba8e5f376 pacman-key: change signing key to RSA4096
RSA2048 may have been fine when this was written many moons ago, but time
this has a bump.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-15 19:17:41 +10:00
Eli Schwartz
02ae97b0da makepkg/repo-add: do not accept public-only keys for signing
If it's not listed by --list-secret-key we don't care if it has been
imported into your keyring, it's unusable. And you might not have a
private key at all in the no-keyid-specified case.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-11 10:57:59 +10:00
Eli Schwartz
899d39b635 makepkg/repo-add: handle GPGKEY with spaces
We pass this to gpg -u and this gpg option can accept a number of
different formats, not just the historical hexadecimal fingerprint we
assumed. We should not barf hard if a format is used which happens to
contain spaces.

This also fixes a validation bug. When we initially check if the desired
key is available, we don't quote spaces, so gpg goes ahead and treats
each space-separated string as a *different key* to search for,
returning partial matches, and returning success if at least one key is
found. But gpg --detach-sign -u will certainly not accept multiple keys!

Fixes FS#66949

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-11 10:56:30 +10:00
Eli Schwartz
bf458cced7 libmakepkg: fix regression in sending plain() output to stderr
In commit 882e707e40 we changed message
output to go to stdout by default, unless it was an error. The plain()
function doesn't *look* like an error function, but in practice it was
-- it's used to continue multiline messages, and all in-tree uses were
for warning/error.

This is a problem both because we're sending output to the wrong place,
and because in some cases, we were performing error logging from a
function which would otherwise return a value to be captured in a
variable using command substution.

Fix this and straighten out the API by providing two functions: one for
continuing msg output, and one which wraps this by sending output to
stderr, for continuing error output.

Change all callers to use the second function.
2020-06-11 10:54:54 +10:00
Eli Schwartz
381e113755 makepkg: correctly handle missing download clients
This was broken in commit 882e707e40,
which changed 'plain()' messages to go to stdout, which was then
captured as the download client in question: cmdline=("Aborting...").

The result was a very confusing error message e.g.

/usr/share/makepkg/source/file.sh: line 72: $'\E[1m': command not found

or with makepkg --nocolor:

/usr/share/makepkg/source/file.sh: line 72: Aborting...: command not found

The problem here is that we checked to see if an asynchronous subshell,
in our case <(...), failed, by checking if its captured stdout is
non-empty. Which is terrible, and also a limitation of old bash. But
bash 4.4 can use wait $! to retrieve the return value of an asynchronous
subshell. Now we target that as our minimum, we can sanely handle errors
in such functions.

Losing error messages on stdout by capturing them in a variable instead
of printing them, continues to be a problem, but this will be fixed
systematically in a later commit.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-11 10:53:24 +10:00
Eli Schwartz
817f9fb715 makepkg: guard against undefined git pinned sources
If something like source=(..."#commit=") is used, e.g. due to failed
variable expansion, we try to check out an empty refspec as nothing at
all, and end up just running "git checkout". This happens because we
fail at variable expansion too -- so let's quote our variables properly
and make sure git sees this as an empty refspec, so it can error out.

Also make sure it is interpreted as a ref instead of a path.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-11 10:50:52 +10:00
Eli Schwartz
3bd88821bb build: add libintl dependency to meson and the .pc file
In order to use gettext on systems where it is not part of libc, the
correct linker flags are needed in libalpm.pc (for static compilation).
This has never been the case.

The new meson build system currently only checks for ngettext in libc,
but does not fall back to searching for the existence of -lintl; add it
to the libalpm dependencies.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-11 10:47:14 +10:00
Filipe Laíns
e348ba3881 ci: cache packages
Results in ~40s saved in each job.

Signed-off-by: Filipe Laíns <lains@archlinux.org>
2020-06-11 10:30:15 +10:00
Allan McRae
40bbaead44 Revert "makepkg: drop duplicate reporting of missing dependencies"
This removed all information on dependency failures if the --syncdeps
flag was not used.  A better approach is needed.

This reverts commit 4246a4cc4f.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-11 10:27:54 +10:00
Allan McRae
5f6ef895b1 libalpm/signing.c: Fix calculation of packet size in parse_subpacket
Given RFC 4880 provides the code to do this calculation, I am not sure
how I managed to stuff that up!  This bug was only exposed when a
signature made with "include-key-block" was added to the Arch repos,
which provided a subpacket with the required size to hit this issue.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-01 10:59:08 +10:00
Dave Reisner
23b50d60e3 Avoid depending on side effects in assert(...) expressions
When building with -DNDEBUG, assert statements are compiled out to
no-ops. Thus, we can't depend on assignments or other computations
occurring inside the assert().

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-01 10:59:08 +10:00
Eli Schwartz
3674144a74 libmakepkg/strip: don't re-add the same debug source multiple times
It's either a waste of work, or triggers edge cases in some packages
(like coreutils-8.31) where the source file is readonly and cp gets a
permission denied error trying to overwrite it with an identical copy of
itself.

Also while we are at it, make the variable names be something readable,
because I could barely tell what this was doing while editing it.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-06-01 10:59:08 +10:00
Allan McRae
454ea02438 Remove autotools support
This removes support for autotools in favour of meson.
2020-06-01 10:59:08 +10:00
Levente Polyak
8ce142a255 makepkg: deterministic PKGINFO libprovides for multiple library versions
While iterating over the provides array, the find call for locating a
shared library may result in listing multiple entries which by itself
does not produce a stable deterministic order and may vary depending on
the underlying filesystem.
To provide a stable listing and a reproducible .PKGINFO file the result
of find is piped to sort with a static LC_ALL=C localisation.

Signed-off-by: Levente Polyak <anthraxx@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-11 12:19:40 +10:00
Eli Schwartz
8e769ddb8a Log invalid conf settings as an error
This is not a warning, _parse_options() returns failure without even
parsing further lines and the attempted pacman/pacman-conf program
execution immediately aborts. Warnings are for when e.g. later on if we
don't recognize a setting at all, we skip over it and have enough
confidence in this to continue executing the program.

The current implementation results in pacman-conf aborting with:

warning: config file /etc/pacman.conf, line 60: invalid value for 'ParallelDownloads' : '2.5'
error parsing '/etc/pacman.conf'

or pacman -Syu aborting with the entirely more cryptic:

warning: config file /etc/pacman.conf, line 59: invalid value for 'ParallelDownloads' : '2.5'

and this isn't just a problem for the newly added ParallelDownloads
setting, either, you could get the same problem if you specified a
broken XferCommand, but that's harder as it's more accepting of input
and you probably don't hit this except with unbalanced quotes.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-11 12:19:40 +10:00
Eli Schwartz
7423b16604 pacman-conf: fix incomplete support for ILoveCandy
This was only partially implemented in the original implementation.
`pacman-conf | grep ILoveCandy` would tell you if it was set, but
querying directly by name would not.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-11 12:19:40 +10:00
Eli Schwartz
559590256c pacman-conf: add support for new ParallelDownloads config option
This was forgotten in the initial implementation, so it was impossible
to figure out the value from a script, or correctly roundtrip the
config file.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-11 12:19:40 +10:00
Anatol Pomozov
22a58f5420 Swap alpm_db_update() implementation to multiplexed version
Now when all callers of the old alpm_db_update() function are gone we can
remove this implementation. And then rename alpm_dbs_update() function to
alpm_db_update().

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:39 +10:00
Anatol Pomozov
557845bc97 Convert downloading databases to the new multiplexed API
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:39 +10:00
Anatol Pomozov
0346e0eef2 Convert download packages logic to multiplexed API
Create a list of dload_payloads and pass it to the new _alpm_multi_*
interface.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:39 +10:00
Anatol Pomozov
b96e0df4dc Implement multibar UI
Multiplexed download requires ability to draw UI for multiple active progress
bars. To implement it we use ANSI codes to move cursor up/down and then
redraw the required progress bar.
`pacman_multibar_ui.active_downloads` field represents the list of active
downloads that correspond to progress bars.
`struct pacman_progress_bar` is a data structure for a progress bar.

In some cases (e.g. database downloads) we want to keep progress bars in order.
In some other cases (package downloads) we want to move completed items to the
top of the screen. Function `multibar_move_completed_up` allows to configure
such behavior.

Per discussion in the maillist we do not want to show download progress for
signature files.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:39 +10:00
Anatol Pomozov
c78eb48d91 Extend download callback interface with start/complete events
With the previous download interface the callback uses the first progress
event as 'download has started' signal. Unfortunately it does not work with
up-to-date files that never receive 'download progress' events.
Up-to-date database messages are currently handled in sync_syncdbs()
after the sequential download is completed and a result from ALPM is
received. But this is not going to work with multiplexed download
interface that returns the result only after all files are completed.

Another problem with 'first progress event is the beginning of the
download' is that such events time are unpredictable. Thus the UI progress
bar order might differ from what has been passed by client to
alpm_dbs_update() function. We actually want to keep the dbs progress bars
in a strict order.

To help to solve the given problems extend the download callback to
allow 2 more events - download started and completed. 'Download started'
events appear in the same order as in the list given by a client.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
64c4669f57 Introduce event types for start/end database list download
Multiplexed database/files downloads will use multiple progress bars.
The UI logic is quite complicated and printing error messages while
handling multiple progress bars is going to be challenging.

Instead we are going to save all ALPM error messages to a list and flush
it at the end of the download process. Use on_progress variable that
blocks error messages printing.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
6a331af27f Implement multiplexed download using mCURL
curl_multi_download_internal() is the main loop that creates up to
'ParallelDownloads' easy curl handles, adds them to mcurl and then
performs curl execution. This is when the paralled downloads happens.
Once any of the downloads complete the function checks its result.
In case if the download fails it initiates retry with the next server
from payload->servers list. At the download completion all the payload
resources are cleaned up.

curl_multi_check_finished_download() is essentially refactored version of
curl_download_internal() adopted for multi_curl. Once mcurl porting is
complete curl_download_internal() will be removed.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
1d42a8f954 Implement _alpm_multi_download
It is an equivalent of _alpm_download but accepts a list of payloads.

curl_multi_download_internal() is a stub at this moment and will be
implemented in the later commits of this patch series.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
fa68c33fa8 Inline dload_payload->curlerr field into a local variable
dload_payload->curlerr is a field that is used inside
curl_download_internal() function only. It can be converted to a local
variable.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
dc98d0ea09 Add multi_curl handle to ALPM global context
To be able to run multiple download in parallel efficiently we need to
use curl_multi interface [1]. It introduces a set of APIs over new type
of handler 'CURLM'.

Create CURLM object at the application start and set it to global ALPM
context.

The 'single-download' CURL handle moves to payload struct. A new CURL
handle is created for each payload with intention to be processed by CURLM.

Note that curl_download_internal() is not ported to CURLM interface due
to the fact that the function will go away soon.

[1] https://curl.haxx.se/libcurl/c/libcurl-multi.html

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
a8a1a1bb3e Introduce alpm_dbs_update() function for parallel db updates
This is an equivalent of alpm_db_update but for multiplexed (parallel)
download. The difference is that this function accepts list of
databases to update. And then ALPM internals download it in parallel if
possible.

Add a stub for _alpm_multi_download the function that will do parallel
payloads downloads in the future.

Introduce dload_payload->filepath field that contains url path to the
file we download. It is like fileurl field but does not contain
protocol/server part. The rationale for having this field is that with
the curl multidownload the server retry logic is going to move to a curl
callback. And the callback needs to be able to reconstruct the 'next'
fileurl. One will be able to do it by getting the next server url from
'servers' list and then concat with filepath. Once the 'parallel download'
refactoring is over 'fileurl' field will go away.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Anatol Pomozov
fe8e13341b Add config option to specify amount of parallel download streams
It includes pacman.conf new 'ParallelDownloads' option that
specifies how many concurrent downloads cURL starts in parallel.

Add alpm_option_set_parallel_downloads() ALPM function that
allows to set this config option programmatically.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Eli Schwartz
cffda331ad doc: remove vim modelines from BUILDINFO(5)
We (thought we) removed all modelines from the project in commit
860e4c4943, but apparently this one
sneaked in by virtue of this manpage being added to the project after
the "remove all the modelines" patch was submitted, but before it was
applied.

I must have failed to update the patch to remove it from this file also.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-09 11:58:21 +10:00
Eli Schwartz
411b12d09d editorconfig: set meson indentation style
meson.build gets two-space indents, but our global tabbed default was
overriding this.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-06 13:48:15 +10:00
Eli Schwartz
3a6c9220ff meson: use better check for debug builds
meson 0.48 added the 'debug' and 'optimization' builtin options, which
bidirectionally map to the buildtype, but in some cases where debug is
enabled, the builtype may be custom. Checking the 'debug' option lets us
detect every case currently detected, plus a few more, and does so in a
shorter and more concise manner.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-06 13:48:07 +10:00
Allan McRae
df30f10672 Convert gitlab valgrind runner to meson
Turns out environmental variables do get passed through fakechroot!

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-06 13:48:00 +10:00
Dave Reisner
cebda6d0ee meson: handle XFAIL tests outside of TAP
This change causes expected fail tests to actually fail by eliding the
'# TODO' from the test plan. In turn, we can now properly use
'should_fail' in the meson test() rule and see these expected fail
tests in the output:

Before:
  ...
  320/332 upgrade077.py                   OK 0.12679290771484375 s
  321/332 upgrade078.py                   OK 0.12620115280151367 s
  322/332 upgrade080.py                   OK 0.1252129077911377 s
  ...

  Ok:                 332
  Expected Fail:      0
  Fail:               0
  Unexpected Pass:    0
  Skipped:            0
  Timeout:            0

After:
  ...
  320/332 upgrade077.py                   OK 0.12679290771484375 s
  321/332 upgrade078.py                   EXPECTEDFAIL0.12620115280151367 s
  322/332 upgrade080.py                   OK 0.1252129077911377 s
  ...

  Ok:                 326
  Expected Fail:      6
  Fail:               0
  Unexpected Pass:    0
  Skipped:            0
  Timeout:            0

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-05 09:14:32 +10:00
Allan McRae
0b81fb64d3 Add Gitlab Runner configuration
Arch Linux is setting up a Gitlab instance.  This adds CI for the pacman
project, testing a range of configurations on Arch and basic builds on
Fedora and Debian.

Note that asciidoc is specifically not installed on the Debian run because
it is all sorts of broken...  Also, the defaults have been set to meson, with
two autotools tests that will soon be removed.

Original-file from: Andrew Gregory <andrew.gregory.8@gmail.com>
Altered-to-run-on-Arch-Gitlab by: Sven-Hendrik Haase <svenstaro@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-05-05 09:14:23 +10:00
Ivy Foster
969e1ab996 Add NoProgressbar to pacman.conf options
This is useful for dumb terminals that do not support escape
sequences.

Signed-off-by: Ivy Foster <escondida@iff.ink>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-29 13:57:53 +10:00
Rikard Falkeborn
2439222375 Constify some input pointers
Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-29 13:57:45 +10:00
Allan McRae
3ea7fdd96c pacman.8: Fix typo
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-15 11:05:55 +10:00
Carson Black
b323528491 Dull version colour numbers in summary
Version colour numbers are dulled in the non-verbose transaction summary
when colours are enabled.

To prevent a regression, this patch also adds handling of strings with
ANSI codes to string_length as to not break the transaction summary's
output functions when colour codes are in the package name strings.

Signed-off-by: Carson Black <uhhadd@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-15 11:05:55 +10:00
Allan McRae
6ba250e400 Use GOTO_ERR throughout
The GOTO_ERR define was added in commit 80ae8014 for use in future commits.
There are plenty of places in the code base it can be used, so convert them.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-13 23:44:46 +10:00
Allan McRae
0eda92c5d4 Use STRDUP for error checking in more places
Use STRDUP() over strdup() to catch memory allocation errors.

There are still some instances of strdup left, but these are in functions
that currently have no error path and would require a larger rework.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-13 23:44:46 +10:00
Rikard Falkeborn
1b32897453 Add REALLOC macro to simplify realloc error handling
realloc can fail just like the other memory allocation functions. Add a
macro to simplify handling of realloc failures, similar to the already
existing MALLOC, CALLOC, etc.

Replace the existing realloc uses with the new macro, allowing us to
move tedious error handling to the macro. Also, in be_package and
be_sync, this fixes hypothetical memory leaks (and thereafter null
pointer dereferences) in case realloc fails to shrink the allocated
memory.

Signed-off-by: Rikard Falkeborn <rikard.falkeborn@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-13 23:44:46 +10:00
Earnestly
1d39557aa0 Use noextract with pacman-conf NoExtract
Current code accidently uses noupgrade for the NoExtract directive.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-04-13 23:44:46 +10:00
Anatol Pomozov
87b74fcd82 Hide cursor while pacman is running
Use ASCII control codes to hide cursor at the pacman start and then
show the cursor when pacman finishes.

It helps to avoid annoying blinking when progress bars are re-drawn.

Cursor is reenabled if pacman expects user's input.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-03-13 11:24:01 +10:00
Allan McRae
ddd5b0a462 Add file and line number to RET_ERR{,_VOID}
Following the example of the recently added GOTO_ERR, adding the file and
line number in addition to the function name in our debug messages is
potentially useful.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-03-13 11:23:36 +10:00
Anatol Pomozov
80ae80149a Add GOTO_ERR() macro to set error and then goto a label
This is a macro similar to RET_ERR but useful in the case when we need
to record an error and then jump to some cleanup section.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-03-09 16:34:17 +10:00
Allan McRae
0deff63efa Remove unneeded goto cleanup
Since commit 2ee7a8d8, there is no cleanup needed in this function. Just
return instead of jumping to the cleanup label.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-03-09 14:51:38 +10:00
Anatol Pomozov
e578903b60 Move flushing 'output' list into separate function
'output' is a list of messages that pacman received but delayed printing
to avoid messing with UI.

Such functionality is useful for the upcoming multi-line progress bar
UI. Let's move it to a separate function.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-03-06 09:28:13 +10:00
Anatol Pomozov
aff69f43b1 Do not download files if find_dl_candidates() fails
One reason why the function returns an error is some repo
does not have any servers.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-03-05 16:15:44 +10:00
Anatol Pomozov
130db5cc9e Simplify construction of payloads in download_files
Currently, download_files() creates payloads for all packages then
iterates over them, calling download_single_file.  This can be
simplified by looping over packages and constructing the payload as needed.

Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-02-24 11:27:23 +10:00
Dave Reisner
4246a4cc4f makepkg: drop duplicate reporting of missing dependencies
When pacman fails to satisfy deps, we might see output like the
following:

==> Making package: spiderfoot 3.0-1 (Thu 06 Feb 2020 12:45:10 PM CET)
==> Checking runtime dependencies...
==> Installing missing dependencies...
error: target not found: python-pygexf
==> ERROR: 'pacman' failed to install missing dependencies.
==> Missing dependencies:
  -> python-dnspython
  -> python-exifread
  -> python-cherrypy
  -> python-beautifulsoup4
  -> python-netaddr
  -> python-pysocks
  -> python-ipwhois
  -> python-ipaddress
  -> python-phonenumbers
  -> python-pypdf2
  -> python-stem
  -> python-whois
  -> python-future
  -> python-pyopenssl
  -> python-docx
  -> python-pptx
  -> python-networkx
  -> python-cryptography
  -> python-secure
  -> python-pygexf
  -> python-adblockparser
==> Checking buildtime dependencies...
==> ERROR: Could not resolve all dependencies.

This is misleading -- the only truly missing package is python-pygexf,
but we fail to remove sync-able deps from our deplist and report
everything as if it were missing. Simply drop this extra reporting
because pacman already tells us exactly what couldn't be resolved.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-02-12 18:37:44 +10:00
Allan McRae
e76ec94083 build-aux/update-copyright 2019 2020
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-02-10 10:46:03 +10:00
Allan McRae
033405c963 Add pacman-hooks.5 man page symlink
Improve discoverability of the alpm-hooks man page by adding a pacman-hooks
symlink.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-02-10 10:38:38 +10:00
Anatol Pomozov
886a6677a8 Eliminate extra loop over dbs_sync
Current flow looks like
  loop dbs_sync {
    loop pkgs {
      if pkg.db == db then process(pkg, db)
    }
  }

Package sync transaction always has a counterpart in the dbs_sync list
(I cannot come up with a use-case when it is not true). So the loop can
be simplified to:

  loop pkgs {
    process(pkg, pkg.db)
  }

Tested: 'ninja test' & manually by using pacman with this patch for a
week
Signed-off-by: Anatol Pomozov <anatol.pomozov@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-31 00:38:36 +10:00
morganamilo
d0c487d4dc Docs docs docs
libalpm: move docs from .c files into alpm.h And fix/expand some
along the way.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-28 10:46:27 +10:00
morganamilo
0a25548cd0 libalpm: fix alpm_option_set_assumeinstalled
It looks like this function has never actually worked. The current list
is never set to NULL after being freed. So the new deps were just
appended to the already freed list, leading to a segfault.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-28 10:46:27 +10:00
Allan McRae
21af798604 makepkg: add CRC checksums and set these to be the default
Checksums arrays should be filled with values provided by upstream.  We
currently have md5 set as an unsecure default, and are constantly asked to
change it to sha2.  However, just changing the default to a stronger checksum
gives the user the impression that "makepkg -g" checksums are perfect.

Instead, change the default checksum to a CRC, to make it clear that any
checksum generated purely by "makepkg -g" is not ideal.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-28 10:46:26 +10:00
Allan McRae
c3852ff425 Note that checksums from "makepkg -g" are not ideal
Generating checksums with "makepkg -g" only determines that the user of a
PKGBUILD has the same file as the packager (assuming no collision).  This
means an upstream source could be maliciously changed and passed on as valid
by a PKGBUILD.  To avoid this, it is essential that any checksums used in
a PKGBUILD are as provided by upstream.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-28 10:45:42 +10:00
Allan McRae
e54617c7d5 Fix "pacman -U <url>" operations
Commit e6a6d307 detected complete part files by comparing a payload's
max_size to initial_size.  However, these values are also equal when we
use pacman -U on a URL as max_size is set to 0 in that case.  Add a further
condition to avoid that.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-27 17:53:50 +10:00
Eli Schwartz
d626a17ef9 makepkg: make per-package files containing '$pkgname' consistently work
Extracting function variables containing arbitrarily scoped variables of
arbitrary nature is a disaster, but let's at least cover the common case
of using the actual '$pkgname' in an install/changelog file. It's the
odd case of actually being basically justified use of disambiguating
between the same variable used in multiple different split packages...
and also, --printsrcinfo already uses and overwrites the variable
'pkgname' in pkgbuild_extract_to_srcinfo, so this "works" in .SRCINFO
but doesn't work in .src.tar.gz

It doesn't work in lint_pkgbuild either, but in that case the problem is
being too permissive, not too restrictive -- we might end up checking
the same file twice, and printing that it is missing twice.

Fixes FS#64932

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-27 17:53:50 +10:00
Allan McRae
2856a7dea3 Increase maximum database size
We previously has the maximum database size as 25MB.  This was set in the days
before repos had as many packages as they do now, and before we started
distributing files databases.  Increase this limit to 128MB.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-27 17:53:50 +10:00
Allan McRae
2e32d51a26 Remove unneeded ltmain patch
Many moons ago, libtool was bad - I mean worse than today!  It gobbled all
--as-needed and we ended up with an overlinked libalpm.  This was annoying,
particularly when dealing with soname bumps in libraries pacman/libalpm had
no business linking to. Luckily we had a fix, stolen from GNOME I believe.
And with that fix, we lived in harmony with libtool for many years.  Until one
day, unbeknownst to us, libtool was "fixed".  We kept applying our patch,
because it still applied, but it did worse than nothing.  It gobbled up our
other LDFLAGS, and our libalpm started missing out on RELRO and BIND_NOW.
This made the Arch Security Team unhappy. We will make them happy again by
stopping the patch.

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-27 17:53:50 +10:00
Allan McRae
75bf8e887c Increase meson test timeout
Running the testsuite using "PACTEST_VALGRIND=1 ninja test -C build", I ran
into the following failure:

161/332 smoke001.py                             TIMEOUT 30.02 s

I figure an i7 @ 3.10GHz should be enough to run our testsuite... so boost
the meson test timeout to 120 seconds (which should be enough time for
anyone...).

Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-27 17:53:50 +10:00
Allan McRae
0965023fc5 tests: Fix typo in test description 2020-01-27 17:53:50 +10:00
Eli Schwartz
acaed30e24 doc: reformat intro to VCS sources to distinguish the grammar
It's difficult to find it embedded inside a prose paragraph.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-07 11:40:32 +10:00
Eli Schwartz
ee8b4e9283 doc: clarify the format of a PKGBUILD source fragment
Currently, it could be misread to say that a fragment is literally
'commit', rather than 'commit=somehash'. Anecdotally this does not seem
to be obvious to everyone, and rewording it certainly doesn't hurt.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-07 11:40:32 +10:00
Eli Schwartz
435f5fc204 autotools: emit error message when autoconf-archive is missing
Forbid the AX_COMPARE_VERSION macro from being found in the output
configure script. If autoconf-archive is not installed when autoreconf
is run, the following error message is emitted:

configure.ac:231: error: possibly undefined macro: AX_COMPARE_VERSION
      If this token and others are legitimate, please use m4_pattern_allow.
      See the Autoconf documentation.
autoreconf: /usr/bin/autoconf failed with exit status: 1

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2020-01-07 11:40:32 +10:00
Dave Reisner
9883015be2 Use c99 struct initialization to avoid memset calls
This is guaranteed less error prone than calling memset and hoping the
human gets the argument order correct.
2020-01-07 11:40:32 +10:00
Dave Reisner
ffb69c700a Ensure regex object is always initialized
This avoids a crash in filetarget_free() when regex support isn't
requested in files_search().
2020-01-07 11:40:32 +10:00
Ethan Sommer
56e0763c6d libmakepkg: use readelf instead of file for finding ELF file types
Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-12-11 11:02:15 +10:00
morganamilo
b7f61aa557 pacman: print error when -Fx is given invalid regex
When processing the targets for -Fx, compile all the regex ahead of
time, printing an error for each that failed to compile. Then, if they all
compiled successfully, continue with printing files.

Signed-off-by: morganamilo <morganamilo@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-12-02 13:56:11 +10:00
Eli Schwartz
0428f6213b makepkg: add the $startdir to package .BUILDINFO
This value is needed for reproducible builds. The reason is because
$BUILDDIR changes its behavior depending on whether it is the same as
$startdir, and the result is that we cannot know whether $srcdir (the
path that is potentially embedded into the final package) is actually
"$BUILDDIR/src" or "$BUILDDIR/$pkgbase/src".

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-26 11:49:24 +10:00
Allan McRae
1e23b45851 Fix documentation of alpm_mtree_next and remove libarchive exposure
The documentation of the return types of alpm_mtree_next was incorrect.
This extended into the relevant function in be_local.c.

Also, return explicit integer values, rather than the ARCHIVE_xxx values,
to avoid unnecessarily exposing frontends to libarchive internals (even
though it makes no functional difference).

Original-work-by: morganamilo <morganamilo@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-26 11:37:32 +10:00
Eli Schwartz
3073752bcd pactest: add environment option to run tests with valgrind
In autotools, if we wanted to run tests with valgrind, we used some Make
magic which passed arguments to pactest.py, but that doesn't work in
meson, because all arguments are encoded at configure time. Instead,
let's short-circuit the build runner logic entirely, and teach pactest
to default to running valgrind, when it detects an environment variable
set independent of the build system.

To run the tests with valgrind, we can now use:

PACTEST_VALGRIND=1 meson test -C builddir/

or

PACTEST_VALGRIND=1 make check

It is also possible, but confusing/inconsistent, to use

make check PY_LOG_FLAGS=--valgrind

We *could* add a meson option -Dvalgrind=true, but that is annoying to
reconfigure between test runs, and overall the consensus is it seems
simpler to opt in each time we want to run valgrind, as was already the
case.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-26 11:05:44 +10:00
Eli Schwartz
49a8e90bc7 meson: make non-symlink scripts install for real, and use a better wrapper
We now generate the scripts using their real name, install them using
meson's builtin facility instead of an install_script, and generate the
wrapper scripts in the root of the build directory, instead of a
subdirectory.

This gets us closer to resolving FS#64394.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-26 10:49:57 +10:00
Eli Schwartz
349c22d043 makepkg: fix regression that broke extraction of file:// sources
In commit 9c817b6549 we made these sources
extendable, and heuristically determined the correct extraction
functions to use. But our fallback for protos that didn't have an exact
extract_* function didn't take into account that 'extract_file' matches
an actual proto... so we passed the netfile in while the function
expected a file.

Solution: the function should expect a netfile too, thereby allowing us
to delay an attempted resolution of netfile -> file, to the one case
where it is actually used. This makes us slightly more efficient in the
non-file case, makes our functions a bit more consistent, and makes
file:// extraction work again.

Fixes FS#64648

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-26 10:22:16 +10:00
Allan McRae
55233b69c7 Improved documentation for alpm_db_search() parameters
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-22 09:35:31 +10:00
Allan McRae
8846574eda Fix leak in _alpm_db_search on error condition 2019-11-21 22:42:23 +10:00
Daniel T. Borelli
eaa2770c80 Dereference double pointer before assigning NULL
Daniel T. Borelli <danieltborelli@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-16 15:14:30 +10:00
Allan McRae
6fb233d0ee Add Eli to current maintainers
Also retire Dan into past major contributors.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-16 00:14:34 +10:00
Allan McRae
e6a6d30793 Handle .part files that are the size of the correct package
In rare cases, likely due to a well timed Ctrl+C, but possibly due to a
broken mirror, a ".part" file may have size at least that of the correct
package size.

When encountering this issue, currently pacman fails in different ways
depending on where the package falls in the list to download.  If last,
"wrong or NULL argument passed" error is reported, or a "invalid or
corrupt package" issue if not.

Capture these .part files, and remove the extension. This lets pacman
either use the package if valid, or offer to remove it if it fails checksum
or signature verification.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-15 23:29:20 +10:00
Allan McRae
b9faf65273 pactest: set package tar format to GNU_FORMAT
python-3.8 changed the default tar format to PAX_FORMAT. This caused
issues in our testsuite with package extraction of files with UTF-8
characters as we run the tests under the C locale.

sycn600.py:
error: error while reading package /tmp/pactest-xuhri4xa/var/cache/pacman/pkg/unicodechars-2.0-1.pkg.tar.gz: Pathname can't be converted from UTF-8 to current locale.

Set format back to GNU_FORMAT.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-12 16:14:57 +10:00
Allan McRae
540b19164b libalpm/sync.c: Do not download missing keys multiple times
We now store key structs of our missing key info, so can not search the list
for string matches. This caused missing keys to be downloaded once for every
package they signed.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-12 07:29:52 +10:00
morganamilo
27f354a787 pacman+libalpm: handle search errors
Previously, pacman treated no matches and an error during search the
same.

To fix this, alpm_db_search now returns its status as an int and
instead takes the to be returned list as a param. Allowing front ends to
easily differentiate between errors and no matches.

Signed-off-by: morganamilo <morganamilo@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-08 16:32:55 +10:00
morganamilo
94982d0061 pacman: make exact_file an int
We only ever use it as a bool, no need to pass a char* around.

Signed-off-by: morganamilo <morganamilo@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-07 21:43:15 +10:00
Ethan Sommer
1df22d3242 repo-add: use wc -c on stdin instead of file to avoid use of cut
Redirect file to stdin so wc -c doesn't print a file name that needs to
be stripped.

Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-07 21:40:44 +10:00
Eli Schwartz
7b73c4a75f build: remove use of handcrafted m4 in configuring scripts
Now that library/ is fully gone, we don't need this anymore.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-06 16:11:53 +10:00
Eli Schwartz
8c7043390f scripts/library: remove human_to_size
pkgdelta was the last user, and it is gone now.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-06 15:52:21 +10:00
Allan McRae
2dd7725f2a Remove "Generated from ...; do not edit by hand" from scripts
This is a useless piece of information.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-06 15:46:59 +10:00
Ethan Sommer
3a814ee6bc makepkg: replaces sed in-place with built in substitution
Reads PKGBUILD into an array and replaces the pkgver and pkgrel with
bash parameter substitution, then uses shell redirection to write to to
the file. Because shell redirection follows symlinks, this accomplishes
the same thing as the previous default of using the GNU-specific
--follow-symlinks sed flag.

Removes SEDPATH and SEDINPLACEFLAGS from the build systems as they are
not used elsewhere.

Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-06 12:03:38 +10:00
morganamilo
424129e8d1 pacman: clarify error when alpm fails to init
Currently pacman is hard coded to print the dbpath, then the error alpm
returned. Even though the error could really be caused by anything.

So instead just print the arugemnts given to alpm and not assume the
resulting error message is releated to either path.

Fixes FS#59595

Signed-off-by: morganamilo <morganamilo@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-06 10:54:54 +10:00
Allan McRae
27955a0fee Move update-copyright into build-aux
This is a useful function to update all our copyright years. Move
it into build-aux so that it is not lost in the switch to meson.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-05 15:25:52 +10:00
Ethan Sommer
1bfae7d14a libmakepkg: fix empty arguments in parseopts
Previously parseopts checked if there was an argument by checking
that the string was non-empty, resulting in empty arguments being
incorrectly considered non-existent. This change makes parseopts check
if arguments exist at all, rather than checking that they are non-empty

Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-05 14:47:15 +10:00
Matthew Sexton
091b244d0f pacman-key: ignore already lsigned/deleted keys
Added two new functions, key_is_lsigned() and key_is_revoked()
that check whether a key has been locally signed or revoked
respectively during --populate. If the key is already signed
or revoked, it is quietly ignored.

Suggested-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Matthew Sexton <wsdmatty@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-05 14:16:31 +10:00
Matthew Sexton
e1f5f21983 pacman-key: hide lsign and revoke output behind --verbose
To cut down on spam during --populate, both locally signing and
revoking keys now hide the specific keys being signed or revoked,
but can be shown with --verbose. A count was added, to show the
number of keys signed/revoked during the process.

Partially Implements:
FS#64142 - pacman-key: make populate less noisy

Signed-off-by: Matthew Sexton <wsdmatty@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-05 14:13:10 +10:00
Ethan Sommer
7be7552329 libmakepkg: add optional argument support to parseopts
Adds a "?" suffix that can be used to indicate that an option's argument is
optional.

This allows options to have a default behaviour when the user doesn't
specify one, e.g.: --color=[when] being able to behave like --color=auto
when only --color is passed

Options with optional arguments given on the command line will be returned
in the form "--opt=optarg" and "-o=optarg". Despite that not being the
syntax for passing an argument with a shortopt (trying to pass -o=foo
would make -o's argument "=foo"), this is done to allow the caller to split
the option and its optarg easily

Signed-off-by: Ethan Sommer <e5ten.arch@gmail.com>
Reviewed-by: Dave Reisner <dreisner@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-04 10:55:23 +10:00
Allan McRae
f6564377a2 Release 5.2.1
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-01 10:57:09 +10:00
Allan McRae
c9613f3a0a Pull latest translations from Transifex
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-01 10:54:12 +10:00
Allan McRae
fca2f7e598 Update NEWS for pacman-5.2.1
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-11-01 09:26:54 +10:00
Allan McRae
4d76cf6f07 Comma fail 2019-10-30 14:26:07 +10:00
Eli Schwartz
866a5cd431 autotools: be more templated when getting list of doc dist files
Distribute asciidoc sources for all manpages instead of remembering to
add files to both variables. Fixes regression in
377d47142f which broke building the
website from a dist tarball:

make: *** No rule to make target 'pacman-conf.8.html', needed by 'html'.  Stop.

(Technically this regression is already fixed by commit
942b909829, but this is just going to keep
happening, I suspect, so we should fix the root cause.)

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-30 10:05:28 +10:00
Eli Schwartz
5c2059db28 makepkg: only run --clean actions if we built a package
Fixes issue where users were allowed to run cleanup while running
--geninteg or --printsrcinfo or --packagelist, thus mixing invalid
responses into stdout.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-30 10:04:17 +10:00
Eli Schwartz
0272fca993 makepkg: do not count hard links multiple times when calculating pkg size
Exclude files with hardlinks when cat'ing all the files, and do a second
run to look at each file with hardlinks, keep track of the ones we've
already operated on, and only cat each inode once. Then use "wc -c" to get
the size of all (deduplicated) files the same way we were already doing.

Original-patch-by: Ronan Pigott <rpigott@berkeley.edu>
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-30 10:03:46 +10:00
Eli Schwartz
a745d97c17 makepkg: protect against unexpected whitespace in filenames
zipman:

read -r protects against those evil manpages whose filenames contain
backslash escapes, (muahahaha?)

IFS= read protects against filenames with:

- leading whitespace (but no one is actually stupid enough to configure
  their MAN_DIRS=() in makepkg.conf with such silly directories, *right*?)

- trailing whitespace (but likewise, no one should be stupid enough to
  write an uncompressed manpage for section '1 ' or something)

Also fix several other cases where we read filenames without protecting
against surrounding whitespace, or without using null-delimited
filenames when we could trivially do so.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-30 09:47:28 +10:00
Eli Schwartz
99639dc27c meson: fix inodecmd for darwin/bsd
The BSD stat command uses %N, not %n, and was incorrectly ported to
meson.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-30 09:34:51 +10:00
Allan McRae
ae5cf26b5b Fix segfault importing PGP key for pacman -U operations
Use after free.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-27 19:05:27 +10:00
Evangelos Foutras
dc55701132 Add pacman-conf(8) to the documentation index
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-24 17:18:28 +10:00
Allan McRae
f37a3752b3 Update copyright years
make update-copyright OLD=2018 NEW=2019

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-23 22:06:54 +10:00
Allan McRae
a9835a38a3 Remove --force from completion
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-23 22:06:54 +10:00
Allan McRae
cd4f8f7530 Update completion for -F changes
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-23 22:06:45 +10:00
morganamilo
c58bf862b4 makepkg: don't warn when PACKAGER is unset
makepkg now complains when PACKAGER is not in the format
"name <email>".

Hide this warning when PACKAGER is unset but still warn if it is set to
something out of format.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-22 23:18:48 +10:00
Nick Cao
7df70e7fff Fix compression of package databases with zstd
Commit 7afe51171 attempted to add zstd compression support to repo-add,
but failed...

FS#64213

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-22 17:27:15 +10:00
Allan McRae
942b909829 Fix distribution of meson files
Also caught the source of a man page not being distributed.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-22 09:25:49 +10:00
Allan McRae
8ce20d3754 Release v5.2.0
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-21 17:56:25 +10:00
Allan McRae
de24f644f4 Final translation updates for pacman-5.2.0
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-21 17:25:29 +10:00
Eli Schwartz
9ddd0be027 document changes between 5.1 and 5.2
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
2019-10-17 11:51:30 -04:00
Allan McRae
b05a3c10bf Update README for pacman 5.2.0 release
This is the first major release without any additions to the libalpm API!

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-15 21:29:22 +10:00
morganamilo
719efe19c7 libalpm: set errno in signing dummy functions
This allows pacman to print the correct error message when checking keys
and libalpm has been compiled without gpgme support.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-15 19:56:40 +10:00
morganamilo
54b6d689e5 libalpm: fix segfault when -Qip'ing a package
The dummy checksigs function never sets count to 0, leaving it
unitialized. This caused the siglist cleanup to try and free the empty
list.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-15 19:56:00 +10:00
Allan McRae
27ccd68976 Translation updates
Pull all translations with >75% completion.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-14 09:43:35 +10:00
Andrew Gregory
5e11d86cc5 remove: improve broken dependency error message
This message was clarified for sync operations in
2b1b7b7075.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-14 09:31:43 +10:00
morganamilo
d4e667ee5e pacman: return 1 when -F <target> has no results
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-13 12:37:34 +10:00
Andrew Gregory
808a4f15ce run XferCommand via exec
system() runs the provided command via a shell, which is subject to
command injection.  Even though pacman already provides a mechanism to
sign and verify the databases containing the urls, certain distributions
have yet to get their act together and start signing databases, leaving
them vulnerable to MITM attacks.  Replacing the system call with an
almost equivalent exec call removes the possibility of a shell-injection
attack for those users.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2019-10-12 07:04:20 -07:00
Andrew Gregory
a82b0028e4 add arg_to_string helper
Converts an argc/argv pair to a string for presentation to the user.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2019-10-11 20:14:29 -07:00
Andrew Gregory
a2c4ad4675 move wordsplit into common for sharing
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
2019-10-11 18:49:38 -07:00
Eli Schwartz
a897599fa5 makepkg: do not save fflags when creating packages
Saving fflages breaks reproducible builds due to encoding information
specific to the filesystem that was used to build the package. This
information is not needed for packaging purposes anyway.

Including fflags also means that attempting to extract a package file as
root (or fakeroot) might result in angry warnings being printed to the
console by bsdtar, followed by a non-zero exit code, unless the user
remembers to use --no-fflags during extraction. This is unpleasant UI, even
if pacman itself won't care about these.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-09 15:39:48 +10:00
Christian Hesse
e8d4228614 signing: handle unknown uid in key import
With unknown uid pacman crashed. Return with error from email_from_uid()
if uid is NULL.

Signed-off-by: Christian Hesse <mail@eworm.de>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-09 15:39:35 +10:00
Christian Hesse
379f715105 signing: modify question text with unknwon uid
If the key's uid is unknown (for example with db signatures) the
question was:

:: Import PGP key 02FD1C7A934E614545849F19A6234074498E9CEE, "(null)"? [Y/n]

Let's display a modified question for unknown uid.

Signed-off-by: Christian Hesse <mail@eworm.de>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-09 15:39:22 +10:00
Jonas Witschel
d5c3ed129c pacman-key: receive keys from WKD with -r/--recv-keys
If an email address is specified, we use --locate-key to look up the key
using WKD and keyserver as a fallback. If the key is specified as a key
ID, this doesn't work, so we use the normal keyserver-based --recv-keys.

Note that --refresh-keys still uses the keyservers exclusively for
refreshing, though the situation might potentially be improved in a new
version of GnuPG:
https://lists.gnupg.org/pipermail/gnupg-users/2019-July/062169.html

Signed-off-by: Jonas Witschel <diabonas@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 21:40:54 +10:00
Allan McRae
5d2e48d17f Pull and push translation changes in preparation for 5.2
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 18:12:24 +10:00
Alad Wenter
7e79cf73fa makepkg: propagate E_REMOVE_BUILD_DEPS
remove_deps is called once, at the end of clean_up() before makepkg
exit. If remove_deps returns >0 (e.g. when pressing "n" in the resulting
prompt), the error is caught by the ERR signal handler. This in turns
sends SIGUSR1 to the process group, with resulting exit code 138.

In case remove_deps fails, this patch exits makepkg with E_REMOVE_DEPS
if there was no previous error (that is, EXIT_CODE equals E_OK).
Otherwise, makepkg exits with EXIT_CODE.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 17:09:23 +10:00
Erich Eckner
095d6332be makepkg: remove makedepends before installing built package
When running `makepkg -i` it may be necessary to first remove make- and
checkdepends before installing the built package - for example if they
conflict each other. This is the case for wireguard-arch which
makedepends and conflicts wireguard-dkms.

Signed-off-by: Erich Eckner <git@eckner.net>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 16:44:42 +10:00
Allan McRae
8e7d425627 makepkg: wait for process to finish
Without the -f option to wait, we might move on and try to delete the
logpipe before the process is completed.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 16:22:52 +10:00
Austin Lund
e581068c77 makepkg: Delete logpipe when exiting
The logpipe fifo can remain when exiting on a non-error condition such
as recieving signals INT and USR1.  This can be seen by doing either a
manual CTRL-C to interrupt the build or by sending a signal such as:

$ makepkg & sleep 5 ; kill -USR1 $!

Remove the fifo in all cases on script exit if it still exists.

Signed-off-by: Austin Lund <austin.lund@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 16:21:24 +10:00
morganamilo
8f89e509d2 pacman: speed up deptest
Try and find an exact match via pkgcache before iterating the entire
localdb.

Gives a noticeable speed up for exact matches e.g. `pacman -T zlib`

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 14:27:09 +10:00
morganamilo
f2442bc2e9 libalpm: short circuit alpm_find_dbs_satisfier
when a satisfying package is already installed, we always pick it
instead of prompting the user. So we can return that package as soon as
we find it, instead of waiting until we've iterated through all the
databases.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 14:21:08 +10:00
morganamilo
0a295f3f39 libalpm: fix incorrect documentation
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 14:19:54 +10:00
Eli Schwartz
0e3a4bd1fb meson: work around broken pkg-config file with private requires
In addition to the general issue of staticlibs linkage, linking a static
lib to a library() does not seem to generate the needed Libs.private.

Rework how we handle this entirely. Instead of relying on convenience
libraries, we will *sigh* go extract a boatload of .o files again, then
relink those to the installable libalpm, while mentioning our
dependencies again.

We still have our guaranteed static library for linking arbitrary programs
with (e.g. vercmp), and we still only generate one identical copy of the
.o files, but now we potentially `ar` it up twice, which isn't so bad.
And linking still works, and pkg-config files also still work.

One alternative would be to explicitly list our dependencies to
pkgconfig.generate with requires_private, but since gpgme might be an
elevated config-tool dependency, this can fail with:

meson.build:341:10: ERROR: requires argument not a string, library with pkgconfig-generated file or pkgconfig-dependency object, got <GpgmeDependency gpgme: True>

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 14:09:34 +10:00
Eli Schwartz
facd9533b0 meson: fix incorrect libalpm version
LIB_VERSION is supposed to be something like 11.0.1, not simply
reiterate the project version. As a result, we ended up with this:

$ pacman -V
[...]
Pacman v5.1.0 - libalpm v5.1.0
[...]

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 14:09:21 +10:00
Eli Schwartz
c0da1ba13a meson: fix libcommon being publicly exposed as a static link dependency
libcommon isn't even installed, so that means libalpm.a (if installed)
is fatally broken as it misses objects. The problem is that meson
doesn't handle this case correctly:

https://github.com/mesonbuild/meson/issues/3934
https://github.com/mesonbuild/meson/issues/3937
https://github.com/mesonbuild/meson/pull/3939

Work around this by manually extracting libcommon's .o files into the
list of objects used to create libalpm.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 14:08:57 +10:00
Eli Schwartz
de6249ce22 Support file with seccomp enabled
Not all compression types can be detected in the seccomp sandbox, so we
need to disable it. This requires either configuring makepkg to know the
sandbox is available, or checking for file >= 5.38 in which the sandbox
option is a no-op even when seccomp is disabled.

- Requires autoconf-archive for autotools version compare macro.
- meson version comparison could be made a lot simpler using meson-git.

Fixes FS#58626

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 13:43:37 +10:00
Eli Schwartz
2a792ac7bb pacman-key: clean keys on import to remove unknown signatures
There is no good reason to bloat the keyring by importing tons of
signatures we cannot use; drop any signatures that don't validate
against another available key (probably the master keys).

If any desired signatures get cleaned, the key can be refreshed after
importing the new signing public key.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 13:23:22 +10:00
Eli Schwartz
f492339035 pacman-key: make sure we actually use the Web of Trust, which GnuPG doesn't.
By default, the latest versions of GnuPG disable the Web of Trust and
refuse to import signatures from public keyservers. This is to prevent
denial of service attacks, because refusing to import signatures only if
the key size is too big, is apparently too silly to consider.

Either way, pacman needs the WoT. If pacman imports a key at all, it
means everything failed and we are in fallback mode, trying to overcome
a shortcoming in the availability of keys in the keyring package.
(This commonly means the user needs to acquire a new key during the same
transaction that updates archlinux-keyring.)
In order for that new key to be usable, it *must* also import signatures
from the Master Keys.

I don't give credence to this supposed DoS, since the worst case
scenario is nothing happening and needing to CTRL+C in order to exit the
program. In the case of pacman, this is better than being unable to
install anything at all (which is gnupg doing a much more harmful DoS to
pacman), and in the already unusual case where something like
--refresh-keys is being used directly instead of depending on the
keyring package itself, gnupg supports WKD out of the box and will
prefer that for people whose keys are marketed as being non-DOSable.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 13:23:11 +10:00
Eli Schwartz
45e01e55c9 pacman-key: when refreshing gpg.conf, don't truncate option checking
If an option is a two-part option, we print both (separated by IFS=' '),
but when grepping to see if it already exists, we only checked the first
component. This means that something like keyserver-options could only
check if there were existing keyserver options of any sort, but not
which ones.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 13:16:07 +10:00
Matthew Sexton
6d99a15f0b pacman/pacman-conf, testpkg: Added translatable strings
Added gettext macro to warnings, helps, and errors for translation.

Signed-off-by: Matthew Sexton <wsdmatty@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 12:15:06 +10:00
Matthew Sexton
a6ae5f0a04 pacman: pacman-conf: removed hputs macro for usage display
Using the macro got in the way of _() macro for translation
All the macro did was make it so the writer didn't have to type
\n", stream); at the end of every line.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 12:15:02 +10:00
morganamilo
b4e4b74ace libalpm: resolvedep(): don't compare names twice
If we failed to get the pkg from pkgcache then we know no satisfying
package exists by name. So only compare provides.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 12:12:04 +10:00
Eli Schwartz
bcacb00fc8 makepkg: add rust support for *FLAGS and debug-prefix-map
The rust language supports $RUSTFLAGS to be used automatically in all
rustc invocations. Allow setting this in makepkg.conf (e.g. for
optimization or debuginfo support), and teach debug+strip to pass the
rustc command line argument necessary to rewrite source file paths in
the debugging symbols.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 11:48:41 +10:00
Jonas Witschel
48752f1b4b signing: add ability to import keys using a WKD
Currently pacman relies on the SKS keyserver network to fetch unknown
PGP keys. These keyservers are vulnerable to signature spamming attacks,
potentionally making it impossible to import the required keys. An
alternative to keyservers is a so-called Web Key Directory (WKD), a
well-known, trusted location on a server from where the keys can be
fetched.

This commit adds the ability to retrieve keys from a WKD. Due to the
mentioned vulnerabilities, the WKD is tried first, falling back to the
keyservers only if no appropriate key is found there.

In contrast to keyservers, keys in a WKD are not looked up using their
fingerprint, but by email address. Since the email address of the
signing key is usually not included in the signature, we will use the
packager email address to perform the lookup.

Also see FS#63171.

Signed-off-by: Jonas Witschel <diabonas@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 11:21:46 +10:00
Jonas Witschel
80e2e1c7c9 signing: move key import confirmation before key_search
Ask the user whether they want to import a missing key before even doing
a search on the keyserver. This will be useful for getting Web Key
Directory support in place: for a WKD, looking up and importing a key
are a single action, so the current key_search -> QUESTION -> key_import
workflow does not apply.

Since only the ID of the package signing key is available before
key_search, we display the packager variable in addition to the key ID
for user convenience.

Signed-off-by: Jonas Witschel <diabonas@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 11:07:39 +10:00
Dave Reisner
0c4a8ae24b dload: never return NULL from get_filename
Downloads with a Content-Disposition header will typically not include
slashes. When they do, we should most certainly only take the basename,
but when they don't, we should treat the header value as the filename.

Crash introduced in d197d8ab82 when we started using get_filename
in order to rightfully avoid an arbitrary file overwrite vulnerability.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-07 10:55:49 +10:00
Allan McRae
5dd2b3776d makepkg.conf.5: Document PACKAGER format requirements
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-04 12:07:04 +10:00
Jonas Witschel
fd70c1c7bb libmakepkg: check if PACKAGER has the expected format for WKD lookup
pacman should be able to extract an email address from PACKAGER for WKD
lookup, so issue a warning if it is not of the form
"Example Name <email@address.invalid>". Neither the name nor the email
address must contain additional angle brackets.

Signed-off-by: Jonas Witschel <diabonas@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-04 11:48:51 +10:00
morganamilo
6f3810793f libmakepkg: fix typo
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-04 11:26:44 +10:00
Eli Schwartz
bcb44891ef autotools: distribute meson files
If we use make dist to create the official, signed release tarballs,
those will not have meson build files by default since autotools doesn't
know what they are.

Also distribute all src/common/ files. We never strictly needed any of
them to be distributed with autotools, because the dist tarball
dereferences the symlinks (???), but only some of them were being
distributed, and meson needs them to be in the right location as we only
build libcommon from the primary files.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-10-04 11:25:48 +10:00
Allan McRae
024fde9748 Prepare translations for next release
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-12 11:42:10 +10:00
László Várady
f9f22fded2 pacman/callback: fix buffer over-read
Commit 11ab9aa9f5 replaced a strcpy() call
with memcpy(), without copying the terminating null character.

Since fname is allocated with malloc(), subsequent strstr() calls will
overrun the buffer's boundary.

Signed-off-by: László Várady <laszlo.varady93@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-12 10:19:09 +10:00
Dave Reisner
18a6440061 meson: remove tap-driver.py, use meson's TAP protocol
This includes a patch from Andrew to fix pactest's TAP output for
subtests. Original TAP support in meson was added in 0.50, but 0.51
contains a bugfix that ensures the test still work with the --verbose
flag passed to meson test, so let's depend on that.
2019-08-12 10:03:17 +10:00
Austin Lund
75837a2717 makepkg: Ignore "<artificial>" source files
An artificial symbol can be produced when requesting debugging symbols
and the compiler has inlined a function.  These symbols will give
spurious results when listing source files for inclusion in debug
packages.  This will ignore these symbols and avoid an error that can be
generated when creating a debug package.

Signed-off-by: Austin Lund <austin.lund@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-05 20:28:09 +10:00
Dave Reisner
0318e84546 build-aux: detect build dir based on build.ninja
.ninja.log is only present after building (successful or otherwise) the
project, but build.ninja is output as soon as the build dir is setup.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-05 18:26:21 +10:00
Dave Reisner
72dae345e4 meson: port over checks for types used from sys/types.h
These are defined by a POSIX standard, and we should assert that we have
them, or define sane fallbacks (as per sys_types.h(0P)).

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-05 18:21:17 +10:00
Dave Reisner
b3dd02236c meson: drop checks for things we don't use
This was ported over from the AC_CHECK_{FUNCS,HEADERS} lists in
configure.ac, but I never actually checked if the resulting CPP defines
are used. Turns out, lots of symbols, not a lot of define usage.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-05 18:21:12 +10:00
Andrew Gregory
4e5254dbf3 create coredump on segfault
Overriding the segfault handler prevents the creation of core dumps by
the default handler, which makes debugging segfaults difficult.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-05 18:19:04 +10:00
Andrew Gregory
e7156e78b8 sighandler: block signals while handling SIGSEGV
If we get SIGSEGV we need to bail out quickly, leaving other signals
unblocked could lead to other signal handlers getting triggered.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-08-05 18:10:31 +10:00
morganamilo
0e67ee55bd Correctly report a download failiure for 404s
Currently when caling alpm_trans_commit, if fetching a package restults
in a 404 (or other non 400 response code), the function returns -1 but
errno is never set.

This patch sets errno to ALPM_ERR_RETRIEVE.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-28 13:39:48 +10:00
Eli Schwartz
796c02af4c meson: use dependency('gpgme') exclusively
This works everywhere that gpgme >= 1.13.0 because it is a pkg-config
dependency, and meson 0.51 adds a fallback config-tool dependency
provider that detects older versions of gpgme seamlessly via
gpgme-config.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-28 10:20:58 +10:00
Eli Schwartz
e7a2b2764a meson: use not_found_message when dependencies are not found
The default state of `dependency()` is `required: true`, which means if
a dependency is not found, meson immediately aborts and does not log our
`error()` messages. meson 0.50 has builtin support for dependencies with
custom error messages.

The alternative would be to specify `required: false` everywhere, and
only then to key off of `dep.found()`.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-28 10:20:53 +10:00
Eli Schwartz
83f428d974 meson: bump the minimum supported version of meson to 0.51
We haven't reached our first public release of the meson build backend
yet, so we have lots of flexibility for this... and build dependencies
are easier to upgrade than runtime dependencies anyway.

Updating meson allows us to make use of a bunch of new features that
rewquire the latest version of meson.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-28 10:20:49 +10:00
Eli Schwartz
cd475331f4 bash-completion: use POSIX character classes in regular expressions
bash uses POSIX extended regular expressions via regex(3), which does
not guarantee support for shorthand character classes. Although glibc
supports it, msys2-runtime does not.

Make sure the completion script works (hopefully) everywhere by being
more portable.

Fixes: https://github.com/msys2/MSYS2-packages/pull/1549

Original-patch-by: plotasse <platos@protonmail.ch>
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-26 10:15:47 +10:00
Allan McRae
d917109432 makepkg: do not exit immediately on dependency install failures
Fixes FS#63000

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-25 21:56:58 +10:00
Andrew Gregory
30acc87b7d use consistent time notation for the log
%X is locale-dependent, making it impossible to reliably parse and
potentially overflowing the buffer.  %T is consistent across locales.

Also fixes some adjacent whitespace.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-20 17:00:53 +10:00
morganamilo
686a9ee8e7 pacman: correctly free lists
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-20 16:56:57 +10:00
Allan McRae
4ca5f5949b Fix compiler warnings with gcc-9.1
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-20 16:28:44 +10:00
Dave Reisner
1a343d378a free makedepends/checkdepends when freeing packages
Credit to Andrew for identifying source of the leak.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-20 14:45:58 +10:00
morganamilo
80321b21ae pacman: fix error during -Fy
Signed-off-by: morganamilo <morganamilo@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-07 09:33:26 +10:00
Andrew Gregory
39c20ad4f1 hooks: rename type File to Path
Make it clearer that the targets are matched against both directories
and regular files and free up File to potentially refer specifically to
regular files in the future.  File is retained as a deprecated alias for
Path for the time being to avoid breaking existing hooks and will be
removed in a future release.

See FS#53136.

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-06 10:38:31 +10:00
Andrew Gregory
55a65aaf90 makepkg: restrict pkgname and pkgver to ascii
pkgname and pkgver are used as directory names within database files.
libarchive does not provide a reliable locale-independent method for
reading archive file names, causing errors when archive paths include
non-ascii characters.

This is a first step toward dealing with FS#49342, by hopefully reducing
the number of packages with non-ascii data in the wild before updating
libalpm to reject them outright.

See https://github.com/libarchive/libarchive/wiki/Filenames
and https://github.com/libarchive/libarchive/issues/587

Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-06 10:34:23 +10:00
morganamilo
ff1ae94c10 pacman: rework the UI of -F
Reworks the UI of -F according to FS#47949

In short -F replaces both -Fs and -Fo.

Searching for an exact path (target contains "/"), causes the output to
switch to the old -Fo output. Otherwise the old -Fs output is used.

Also strip the leading "/" from targets like how -Qo does.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-06 10:30:04 +10:00
morganamilo
eb92bcb089 pacman: refactor file match printing to their own functions
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-06-06 10:29:39 +10:00
Eli Schwartz
27e80ca7f6 makepkg: also move restore_envvars handling into libmakepkg
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-28 12:46:44 +10:00
Eli Schwartz
a00615bfda makepkg: move config loading into libmakepkg
When scripting/automating around makepkg, it is sometimes desirable to
know how makepkg will be configured to operate. One example is the
archlinux devtools, which must forward select makepkg.conf variables
into a build chroot (for example PACKAGER) or use those variables itself
(for example {SRC,PKG,LOG}DEST).

The configuration file can be in up to 3 places, and should be capable
of being overridden via environment variables. It is sufficiently
complex to represent distinct functionality, and sufficiently useful to
merit easy accessibility in other scripts, therefore, let us move it
into a publicly exposed utility library.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-28 11:28:30 +10:00
Eli Schwartz
5caf45cdbb doc: update SRCEXT/PKGEXT to reduce needlessly scary warnings
Currently this tells people that the settings should not be touched, but
we should just rely on the description of what it should be set to, and
leave it up to the user.  With the previous patch, makepkg aborts if an
invalid value is set, greatly reducing the danger of it being badly
configured.

Also make this clearer by indicating when it would be useful to change
the settings -- i.e. disable compression -- and ensure their described
defaults are based on the ones established during ./configure or meson
setup.

Reported-by: Jouke Witteveen <j.witteveen@gmail.com>
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-28 11:18:04 +10:00
Eli Schwartz
4c38f4b991 libmakepkg: add lint_config to validate SRCEXT/PKGEXT
These variables must begin with .src.tar / .pkg.tar respectively, so
fail early if those expectations are not matched. This prevents makepkg
from creating e.g. package files literally named "./pacman-5.1.3-1-x86_64"
which are actually uncompressed tarballs.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-28 11:13:40 +10:00
ekardnam
c8062d753c repo-add: Add --prevent-downgrade option
Implements FS#17752

Signed-off-by: Luca Bertozzi <ekarndam@autistici.org>
2019-05-28 11:08:21 +10:00
Kevin Mihelich
99c5809bbf Support application/gzip MIME type in extraction
file 5.37 changed the gzip MIME type from application/x-gzip to
application/gzip, so support this when checking to extract source files.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-28 10:48:42 +10:00
Eli Schwartz
0bc687e2e0 makepkg: propagate error codes when package failed to sign correctly
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 13:08:47 +10:00
Eli Schwartz
9375f49865 libmakepkg: install pkg-config file
Since makepkg exports a public library of functions, other projects may
wish to use these functions. Highlights include parseopts or our
messaging functions.

Install a pkg-config file in order to let downstream users detect where
they can source the libmakepkg functionality. This is useful e.g. to
gracefully handle the case where a thirdparty project is configured and
installed into a different datarootdir from pacman, but still wants to
use the installed pacman's version of libmakepkg.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 12:46:33 +10:00
Eli Schwartz
614ef781eb libmakepkg: fix missing or inaccurate interdependencies
When the executable checking was refactored into libmakepkg, it carried
with it, usage of $E_* error codes, which need to be declared from
error.sh but are only available when the parent program already sources
error.sh; additionally, message.sh was only loaded in a parent
library, but not where it was needed, and option.sh was often loaded
when it wasn't needed at all.

util.sh, meanwhile, has always depended on message.sh functions.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 12:45:34 +10:00
Eli Schwartz
b93dfa935f scripts: protect against unintended glob matching in [[ ]] RHS
The right-hand side of the [[ ... = ... ]] keyword is an exception to
the general rule that quoting is unnecessary with [[

This is usually not a problem, e.g. in libmakepkg, lint_one_pkgname will
already fail if pkgname has an asterisk, but it certainly doesn't hurt
to be "more proper" and go with the spec; it is more dangerous in
repo-add, which can get caught in an infinite loop instead of safely
asserting there is no package named 'foo*'.

Reported-by: Rafael Ascensão <rafa.almas@gmail.com>
Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 12:45:26 +10:00
Eli Schwartz
a0f4429e95 makepkg: use more schema.sh to clean the environment of special variables
Fixes "arch" and "checkdepends" never having been unset, fixes b2sums
(but not ${!b2sums_@}) being recently left out.
The "build" function used to be unset as well, explicitly unset it as a
function and do the same for other official functions as well.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 12:45:26 +10:00
Eli Schwartz
583f3122ce meson: fix build of executables with nonstandard libarchive path
The libarchive header is used in alpm.h, and several binaries include
this header. This is noticeably a problem when using e.g. the musl-gcc
compiler which does not include /usr/include by default, and thus the
build system reports:

...../lib/libalpm/alpm.h:35:10: fatal error: archive.h: No such file or directory

More commonly, this will result in compiling against potentially the
wrong headers, if the libarchive installation picked up by pkg-config is
different from the one with headers in /usr/include, and /usr/include is
in the -isystem path.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 10:15:52 +10:00
Eli Schwartz
6911904a03 makepkg: fix bash 5 compatibility when packaging symlinks to a directory
In commit b5191ea140 we moved to using
shell globbing to print package files for a couple of reasons including
reproducible packaging of .METADATA files.

Unfortunately, this only works reliably when the glob pattern does not
resolve to a symlinked directory due to a change in the bash 5.0
release. Note that the previous, desired behavior was rather to merely
refuse to recurse into symlinked directories, but due to an unrelated
issue, the symlink handling for globstar was reworked in a way that had
this side effect.
See https://lists.gnu.org/archive/html/bug-bash/2019-04/msg00015.html
for discussion; this may be fixed at some point, but bash 5.0 is broken
either way.

The appropriate way of handling this seems to be to use **/* to match
instead; this produces the same results on both bash 4 and bash 5, as
the ** matches any leading directory component (or none), and the *
matches any file, directory, or symlink to either one.

Fixes FS#62278

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 10:14:32 +10:00
Rikard Falkeborn
f2a7fb2b96 Fix clang 8 string-plus-int warnings
Clang 8 warns that adding a string to an integer does not append to
string. Indeed it doesn't, but that was not the intentetion. Use array
indexing as suggested by the compiler to silence the warning. There
should be no functional change.

Example of warning message:

    alpm.c:71:54: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
            sprintf(hookdir, "%s%s", myhandle->root, SYSHOOKDIR + 1);
                                                     ~~~~~~~~~~~^~~
    alpm.c:71:54: note: use array indexing to silence this warning
            sprintf(hookdir, "%s%s", myhandle->root, SYSHOOKDIR + 1);
                                                                ^
                                                     &          [  ]
    1 warning generated.
2019-05-08 10:12:14 +10:00
Eli Schwartz
a8b3d1a62a makepkg: correctly handle hg sources with updates on a non-default branch
The "tip" ref actually signifies the most recently updated branch. hg
does not support a default branch named anything other than "default",
except by creating a "@" bookmark. The correct way to explicitly update
to the default clone ref, is therefore to use one of these, rather than
"tip".

Fixes FS#62092

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 10:10:57 +10:00
Eli Schwartz
915ac9ff9b libmakepkg: fix migration to schema.sh for integsums
One of the callers was changed to use known_hash_algos, one was not.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-05-08 10:05:23 +10:00
Eli Schwartz
d37e6d40a1 bash-completion: support file redirection completions
The current completions don't properly handle redirection operators, and
attempt to complete command completions rather than completing filenames
to redirect to.

bash-completion provides both _get_comp_words_by_ref and a higher-level
wrapper _init_completion, but the latter provides handling of redirection
operators, so switch to using that.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-25 11:15:26 +10:00
Allan McRae
7a598d0845 Use bug tracker to track bugs
The mailing list requires subscription.  So does the bug tracker,
but that is more obvious.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-20 09:58:16 +10:00
Eli Schwartz
9f5412d809 doc: generalize description of the bash nature of PKGBUILD functions
Currently this is scoped to the build() function, which is simply wrong
as it equally applies to any function. Simply moving the paragraphs up
to the main manpage section makes this clear.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 14:33:50 +10:00
Que Quotion
7b15918b65 Clarify that build_options only apply during build()
Signed-off-by: Que Quotion <quequotion@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 14:24:18 +10:00
Eli Schwartz
ee5f24e50c libmakepkg: fix reporting of invalid archive extensions in compress.sh
In commit 1825bd6716 this was split out
from makepkg, but the warning was not properly migrated; $ext did not
ever exist.

As a result, no matter what you did, the only possible warning was:

==> WARNING: '' is not a valid archive extension.

Fix to filter based on the presence of .tar in the argument, and
building the $ext variable for all checking and messaging purposes
within the function.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 14:12:44 +10:00
Eli Schwartz
35a0d5e744 makepkg: use "shared" git clones when checking out sources
In order to cache sources offline, makepkg creates *two* copies of every
git repo. This is a useful tradeoff for network time, but comes at the
cost of increased disk space.

Normally, git can smooth this over automagically. Whenever possible, git
objects are hardlinked to save space, but this does not work when
SRCDEST and BUILDDIR are on separate filesystems.

When the repo in question is both very large (linux.git for example is
2.2 GB) and crosses filesystem boundaries, this results in a lot of
extra disk space being used; the most likely scenario is where BUILDDIR
is a tmpfs for bonus ouch.

git(1) has a builtin feature which serves this case handily: the
--shared flag will create the info/alternates file instructing git to
not copy or hardlink or create objects/packs at all, but merely look for
them in an external location (that being the source of the clone).

The downside of using shared clones, is that if you modify and drop
commits from the original repo, or simply delete the whole repo
altogether, you break the copy. But we don't care about that here,
because

1) the BUILDDIR copy is meant to be a temporary copy strictly derived
   via PKGBUILD syntax from the SRCDEST, and must be able to be
   recreated at any time,
2) if the SRCDEST disappears, makepkg will redownload it, thus restoring
   the objects needed by the BUILDDIR clone,
3) if the user does non-default things like hacking on the BUILDDIR copy
   then deleting and re-cloning the SRCDEST may result in momentary
   breakage, but ultimately should be fine -- the unique objects they
   created will be stored in the BUILDDIR copy.

While it's theoretically possible that upstream will force-push to
overwrite the base tree from which makepkg is building (which they
should not do), *and* the user deleted their SRCDEST which they should
not do, *and* they saved work in makepkg's working directory which they
should not do either...
... this is an unlikely chain of events for which we should not care.

Using --shared is therefore helpful in immediately useful ways and IMHO
has no actual downsides; we should use it.

An alternative implementation would be to use worktrees. I've rejected
this since it is essentially the same as shared clones, except adding
additional restrictions on the branch namespace, and could potentially
break existing use cases such as manually handling the SRCDEST in order
to share repositories with normal working copies.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 14:09:00 +10:00
Eli Schwartz
0a72874734 build: check for gpgme with pkg-config before gpgme-config
gpgme in git master now supports pkg-config and with the next release we
can and should prefer its use. However, retain the legacy code that
enables building with older versions of gpgme, as a fallback.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 14:05:53 +10:00
Santiago Torres
226d2c1248 drop DU* config variables
Since DUFLAGS and DUPATH are not needed anymore remove them from the
source

Signed-off-by: Santiago Torres <santiago@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 12:07:15 +10:00
Eli Schwartz
bbfb75fd29 build: remove references to variable replacements from pacman-optimize
MODECMD and OWNERCMD are not used by pacman itself, so we don't need to
check for and replace them now that pacman-optimize is removed.

Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 12:04:51 +10:00
Santiago Torres
f26cb61cb6 Make makepkg compute sizes properly
Makepkg used to use du --apparent-size to compute the size of the
package. Unfortunately, this would result in different sizes depending
on the filesystem used (e.g., btrfs vs ext4), which would affect
reproducible builds. Use a wc-based approach to compute sizes

Signed-off-by: Santiago Torres <santiago@archlinux.org>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 11:54:50 +10:00
Florian Wehner
c61cd050f9 Reformatting log timestamp to include time-zone
The time logged is currently given as localtime without any timezone
information. This is confusing in various scenarios.

Examples:
* If one is travelling across time-zones and the timestamps in the log
appear out of order.
* Comparing dates with `datediff` gives an offset by the time-zone

This patch would reformat the time-stamp to a full ISO-8601 version.
It includes the 'T' separating date and time including seconds.

Old: [2019-03-04 16:15]
New: [2019-03-04T16:15:45-05:00]

Signed-off-by: Florian Wehner <florian@whnr.de>
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-19 11:53:30 +10:00
Allan McRae
c0e9be7973 Remove support for deltas from libalpm
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-07 11:12:12 +10:00
Allan McRae
e7bb0f8824 Make pacman forget deltas exist
Dummy callbacks are still present to prevent compiler warnings until
libalpm is delta free.

Also remove Delta parsing from pacman.conf.

Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-07 11:12:12 +10:00
Allan McRae
40391c564a Remove cleanupdelta
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-07 11:12:12 +10:00
Allan McRae
2883b869c7 Remove pkgdelta
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-07 11:12:12 +10:00
Allan McRae
9adb0d5b37 Remove delta support from repo-add
Signed-off-by: Allan McRae <allan@archlinux.org>
2019-03-07 11:12:12 +10:00
390 changed files with 42625 additions and 47215 deletions

View File

@@ -16,5 +16,9 @@ indent_style = tab
[{NEWS,HACKING}]
indent_style = space
[meson.build]
indent_style = space
indent_size = 2
[*.py]
indent_style = space

21
.gitignore vendored
View File

@@ -1,24 +1,3 @@
*~
*.o
ABOUT-NLS
aclocal.m4
autom4te.cache
config.h
config.h.in
config.log
config.status
config.status.lineno
configure
configure.lineno
cov-int
cscope.in.out
cscope.out
cscope.po.out
intl
libtool
Makefile
Makefile.in
pacman-*.tar.gz
root
stamp-h1
tags

119
.gitlab-ci.yml Normal file
View File

@@ -0,0 +1,119 @@
variables:
MAKEFLAGS: "-j10"
VERBOSE: 1
PACMAN_OPTS: --needed --noconfirm --cachedir .pkg-cache
cache:
key: pkgs-v1
paths:
# For some reason Gitlab CI only supports storing cache/artifacts in a path relative to the build directory
- .pkg-cache
.arch-test:
image: archlinux/base
before_script:
- >
pacman -Syu $PACMAN_OPTS
base-devel git
gpgme libarchive curl
python
fakeroot fakechroot
meson
arch:
extends: .arch-test
script:
- meson build
- ninja -C build
- fakechroot meson test -C build
arch-debug:
extends: .arch-test
script:
- meson --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build
arch-docs:
extends: .arch-test
script:
- pacman -Syu $PACMAN_OPTS asciidoc
- meson -Ddoc=enabled build
- ninja -C build
arch-clang:
extends: .arch-test
script:
- pacman -Syu $PACMAN_OPTS clang
- CC=clang meson build
- ninja -C build
- fakechroot meson test -C build
arch-valgrind:
extends: .arch-test
script:
- pacman -Syu --needed --noconfirm valgrind
- meson build
- ninja -C build
- PACTEST_VALGRIND=1 fakechroot meson test -C build
arch-nettle:
extends: .arch-test
script:
- meson -Dcrypto=nettle --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build
arch-no-gpg:
extends: .arch-test
script:
- meson -Dgpgme=disabled --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build
arch-no-curl:
extends: .arch-test
script:
- meson -Dcurl=disabled --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build
arch-no-nls:
extends: .arch-test
script:
- meson -Di18n=false --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build
debian:
image: debian:bullseye
cache: {}
before_script:
- apt update
- >
apt -y install --no-install-recommends
git pkg-config meson gcc libtool
libgpgme-dev libarchive-dev libcurl4-openssl-dev libssl-dev curl
gettext python3 python3-setuptools dash gawk ca-certificates
fakeroot fakechroot
script:
- meson --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build
fedora:
image: fedora
cache: {}
before_script:
- >
dnf -y install
git findutils patch sed
meson gcc libtool
gpgme-devel libarchive-devel libcurl-devel openssl-devel gettext-devel
asciidoc python3 dash gawk
fakeroot fakechroot
perl-Module-Load-Conditional
script:
- meson --buildtype=debug build
- ninja -C build
- fakechroot meson test -C build

13
HACKING
View File

@@ -176,16 +176,3 @@ For pacman:
-------------------------------------------
Never directly include config.h. This will always be added via Makefiles.
GDB and Valgrind Usage
~~~~~~~~~~~~~~~~~~~~~~
When using GDB or valgrind on pacman, you will want to run it on the actual
binary rather than the shell script wrapper produced by libtool. The actual
binary lives at `src/pacman/.libs/lt-pacman`, and will exist after running
`./src/pacman/pacman` at least once.
For example, to run valgrind:
./src/pacman/pacman
valgrind --leak-check=full -- src/pacman/.libs/lt-pacman -Syu

370
INSTALL
View File

@@ -1,370 +0,0 @@
Installation Instructions
*************************
Copyright (C) 1994-1996, 1999-2002, 2004-2013 Free Software Foundation,
Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. This file is offered as-is,
without warranty of any kind.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package. Some packages provide this
`INSTALL' file but do not implement all of the features documented
below. The lack of an optional feature in a given package is not
necessarily a bug. More recommendations for GNU packages can be found
in *note Makefile Conventions: (standards)Makefile Conventions.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package, generally using the just-built uninstalled binaries.
4. Type `make install' to install the programs and any data files and
documentation. When installing into a prefix owned by root, it is
recommended that the package be configured and built as a regular
user, and only the `make install' phase executed with root
privileges.
5. Optionally, type `make installcheck' to repeat any self-tests, but
this time using the binaries in their final installed location.
This target does not install anything. Running this target as a
regular user, particularly if the prior `make install' required
root privileges, verifies that the installation completed
correctly.
6. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
7. Often, you can also type `make uninstall' to remove the installed
files again. In practice, not all packages have tested that
uninstallation works correctly, even though it is required by the
GNU Coding Standards.
8. Some packages, particularly those that use Automake, provide `make
distcheck', which can by used by developers to test that all other
targets like `make install' and `make uninstall' work correctly.
This target is generally not run by end users.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'. This
is known as a "VPATH" build.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX', where PREFIX must be an
absolute file name.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them. In general, the
default for these options is expressed in terms of `${prefix}', so that
specifying just `--prefix' will affect all of the other directory
specifications that were not explicitly provided.
The most portable way to affect installation locations is to pass the
correct locations to `configure'; however, many packages provide one or
both of the following shortcuts of passing variable assignments to the
`make install' command line to change installation locations without
having to reconfigure or recompile.
The first method involves providing an override variable for each
affected directory. For example, `make install
prefix=/alternate/directory' will choose an alternate location for all
directory configuration variables that were expressed in terms of
`${prefix}'. Any directories that were specified during `configure',
but not in terms of `${prefix}', must each be overridden at install
time for the entire installation to be relocated. The approach of
makefile variable overrides for each directory variable is required by
the GNU Coding Standards, and ideally causes no recompilation.
However, some platforms have known limitations with the semantics of
shared libraries that end up requiring recompilation when using this
method, particularly noticeable in packages that use GNU Libtool.
The second method involves providing the `DESTDIR' variable. For
example, `make install DESTDIR=/alternate/directory' will prepend
`/alternate/directory' before all installation names. The approach of
`DESTDIR' overrides is not required by the GNU Coding Standards, and
does not work on platforms that have drive letters. On the other hand,
it does better at avoiding recompilation issues, and works well even
when some directory options were not specified in terms of `${prefix}'
at `configure' time.
Optional Features
=================
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Some packages offer the ability to configure how verbose the
execution of `make' will be. For these packages, running `./configure
--enable-silent-rules' sets the default to minimal output, which can be
overridden with `make V=1'; while running `./configure
--disable-silent-rules' sets the default to verbose, which can be
overridden with `make V=0'.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
HP-UX `make' updates targets which have the same time stamps as
their prerequisites, which makes it generally unusable when shipped
generated files such as `configure' are involved. Use GNU `make'
instead.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
directory contains several dysfunctional programs; working variants of
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
in your `PATH', put it _after_ `/usr/bin'.
On Haiku, software installed for all users goes in `/boot/common',
not `/usr/local'. It is recommended to use the following options:
./configure --prefix=/boot/common
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS
KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf limitation. Until the limitation is lifted, you can use
this workaround:
CONFIG_SHELL=/bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@@ -1,78 +0,0 @@
SUBDIRS = lib/libalpm src/util src/pacman scripts etc test/pacman test/util test/scripts
if WANT_DOC
SUBDIRS += doc
endif
DIST_SUBDIRS = $(SUBDIRS) src/common
ACLOCAL_AMFLAGS = -I m4 --install
AM_MAKEFLAGS = --no-print-directory
# Make sure we test and build manpages when doing distcheck
DISTCHECK_CONFIGURE_FLAGS = --enable-doc --disable-git-version \
bashcompdir='$${prefix}/share/bash-completion/completions'
# Some files automatically included, so they aren't specified below:
# AUTHORS, COPYING, NEWS, README
EXTRA_DIST = HACKING test/tap.sh
# Sample makepkg prototype files
pkgdatadir = ${datadir}/${PACKAGE}
dist_pkgdata_DATA = \
proto/PKGBUILD.proto \
proto/PKGBUILD-split.proto \
proto/PKGBUILD-vcs.proto \
proto/proto.install
$(top_srcdir)/test/pacman/tests/TESTS: $(wildcard test/pacman/tests/*.py)
@printf "TESTS += %s\n" $^ | LC_ALL=C sort -u > "$@"
TESTS = test/scripts/parseopts_test.sh \
test/scripts/human_to_size_test.sh \
test/scripts/makepkg-template_test.sh \
test/scripts/pacman-db-upgrade-v9.py \
test/util/vercmptest.sh
include $(top_srcdir)/test/pacman/tests/TESTS
TEST_SUITE_LOG = test/test-suite.log
TEST_EXTENSIONS = .py
AM_TESTS_ENVIRONMENT = \
PMTEST_UTIL_DIR=$(top_builddir)/src/util/; export PMTEST_UTIL_DIR; \
PMTEST_SCRIPT_DIR=$(top_builddir)/scripts/; export PMTEST_SCRIPT_DIR; \
PMTEST_SCRIPTLIB_DIR=$(top_srcdir)/scripts/library/; export PMTEST_SCRIPTLIB_DIR; \
PMTEST_LIBMAKEPKG_DIR=$(top_builddir)/scripts/libmakepkg/; export PMTEST_LIBMAKEPKG_DIR;
LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
$(top_srcdir)/build-aux/tap-driver.sh
PY_LOG_DRIVER = env AM_TAP_AWK='$(AWK)' $(SHELL) \
$(top_srcdir)/build-aux/tap-driver.sh
PY_LOG_COMPILER = $(PYTHON) $(top_srcdir)/test/pacman/pactest.py
AM_PY_LOG_FLAGS = \
--scriptlet-shell $(SCRIPTLET_SHELL) \
--ldconfig $(LDCONFIG) \
--bindir $(top_builddir)/src/pacman \
--bindir $(top_builddir)/scripts
if !HAVE_LIBGPGME
AM_PY_LOG_FLAGS += --without-gpg
endif
if !HAVE_LIBCURL
AM_PY_LOG_FLAGS += --without-curl
endif
# create the pacman DB, cache, makepkg-template and system hook directories upon install
install-data-local:
for dir in "$(DESTDIR)$(localstatedir)/lib/pacman" "$(DESTDIR)$(localstatedir)/cache/pacman/pkg" \
"$(DESTDIR)$(datarootdir)/makepkg-template" "$(DESTDIR)$(datarootdir)/libalpm/hooks"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
update-po:
$(MAKE) -C lib/libalpm/po update-po
$(MAKE) -C scripts/po update-po
$(MAKE) -C src/pacman/po update-po
update-copyright:
for file in $(shell sh -c 'git grep -l "Copyright .* Pacman Development" | grep -v "\.po"'); do \
sed -i -e "/Copyright (/s/-$(OLD)/-$(NEW)/" -e "/Copyright (/s/ $(OLD)/ $(OLD)-$(NEW)/" "$$file"; \
done
.PHONY: update-po update-copyright

127
NEWS
View File

@@ -1,5 +1,132 @@
VERSION DESCRIPTION
-----------------------------------------------------------------------------
5.2.1 - fix segfault on importing PGP keys for -U operations
- fix distribution of meson files
- fix inode command for darwin/bsd
- distribute all documentation files
- update bash/zsh completion for -F changes, remove --force
- makepkg:
- fix calculation of package sizes in presence of hardlinks
- do not warn about PACKAGER format if not set
- only run --clean when a package is built
- repo-add:
- fix compression of databases with zstd
5.2.0 - completely remove delta support (CVE-2019-18183)
- add support to pacman and pacman-key for downloading PGP
signing keys using the WKD protocol (FS#63171)
- completely remove the --force option
- renovate and simplify the UI for -F (FS#47949)
- hooks: rename type File to Path, for accuracy
- add the meson build system as an alternative to autotools, and
distribute it in autotools dist tarballs
- switch from system() to exec() when using alternative download
agents for XferCommand; this prevents a potential source of
shell injection (CVE-2019-18182)
- ignore .hook suffix when sorting libalpm hooks
- update the minimum requirement of bash to 4.4
- scripts: pass on options such as set -x to child processes
- show group and installed status during -Fs
- user-visible log when validity check fails due to access
- port pactest to python3
- process --needed before group selection when resolving the
dependencies to prompt for (FS#22870)
- don't error when a group exists but all packages are ignored
- bash completion now completes when it should, and doesn't
complete when it shouldn't (FS#59965)
- improve error message when gpg support is missing (FS#60880)
- don't emit confusing errors when a package is simultaneously
replaced and upgraded (FS#50875, FS#55534)
- better warning message when skipping duplicate targets
(FS#49377)
- libalpm: parse {check, make}depends when reading database
(FS#60347)
- add [ignored] to -Qu output for packages in repos that are not
Usage = Upgrade (FS#59854)
- prevent 301 redirect loop from hanging libalpm
- use standard, consistent units in the download progress
(FS#59201)
- fix segfault when Usage is specified without a value
- include timezones in pacman.log
- bash-completion: use POSIX character classes for portability
- correctly report a download failiure for 404s
- fix handling of signals during SIGSEGV
- fix buffer overread in pacman/callback
- fix crash when downloading files with a Content-Disposition
that has no directory component
- pacman-conf, testpkg are now properly localized
- when -F returns zero results, set a failing exit code
- improve wording for the error message when a package cannot be
removed due to dependencies
- fix segfaults and other incorrect behavior when using -Qip if
pacman was compiled without GPGME support
- makepkg:
- implement extendable source/signature verification routines
within libmakepkg (FS#49076)
- if pacman is in use, wait until it is available before
continuing (FS#28840)
- add support for lzip, lz4 and zst compressed packages
(FS#56676, FS#59081)
- add new checksum algorithm, b2sum
- various improvements to PKGBUILD linting
- when signing packages, report package filename on failure
- fix pkgver() function not aborting on errors
- remove checksum algorithm whirlpoolsum as it has not worked
for a long time
- reject PKGBUILDs with both split and non-split package
functions
- send status messages to stderr rather than stdout (FS#17173)
- ensure debug buildflags are unset when they are supposed to be
- buildenv and executable detection, definitions for the
PKGBUILD schema, and makepkg.conf loading are now part of
libmakepkg
- fix broken check for the fakeroot binary
- improve the error message for invalid dependency versioning
- add routine for linting $SOURCE_DATE_EPOCH
- fix the error code when no PKGBUILD exists
- use --unneeded when removing build deps to allow runtime-only
deps to work well with makepkg -sir (FS#32723)
- compute package sizes correctly across different filesystems
- use shared clones for git sources to save space when building
- fix reporting of invalid archive extensions
- correctly handle hg sources with updates on a non-default
branch
- install pkg-config file for libmakepkg's library directory
- propagate error codes when package failed to sign correctly
- be compatible with file 5.37's application/gzip MIME type
- forbid non-ASCII pkgname and pkgver (FS#49342)
- fix exiting on failure without ensuring dependencies are
prompted for removal (FS#63000)
- quiet superfluous warnings for missing debug source files for
artificial symbols
- add routine for linting $PACKAGER to check that it has a
valid name and email address, and document the desired format
in makepkg.conf(5)
- add rust support for *FLAGS and debug-prefix-map
- correctly handle a system file command with seccomp enabled
(FS#58626)
- try to more thoroughly clean up logpipe during unusual exit
states such as CTRL-C
- when installing packages with -sir, be more robust against
conflicting makedepends by always uninstalling them first
- fix exit code when removing deps fails
- reproducible builds: suppress filesystem-specific archive
metadata from built packages as they are not needed
- pacman-key:
- just accept one file to verify, and enforce detached sigs
(FS#52022)
- after recent GnuPG updates, ensure the Web of Trust is still
used
- clean keys during import to reduce size consumed by unusable
signatures
- repo-add:
- add support for zst compressed databases
- print the name of the database when extracting
- do not infinitely loop on malformed arguments with embedded
globs
- add option to prevent downgrading (FS#17752)
- various documentation updates
5.1.3 - Sanitize file name received from Content-Disposition header
during -U (CVE-2019-9686)
5.1.2 - pacman-conf: add missing DisableDownloadTimeout support
- Include version when checking optdepend install status
during -Qi (FS#60106)

40
README
View File

@@ -58,7 +58,6 @@ library is initialized.
* progresscb: Callback to handle display of transaction progress.
* gpgdir: Directory where GnuPG files are stored.
* arch: Allowed package architecture.
* deltaratio: Download deltas if possible; a ratio value.
* checkspace: Check disk space before installing.
* default_siglevel: Default signature verification level.
* local_file_siglevel: Signature verification level for local file upgrades.
@@ -631,3 +630,42 @@ API CHANGES BETWEEN 5.0 AND 5.1
- alpm_capabilities()
- duplicate and add to list
- alpm_list_append_strdup()
API CHANGES BETWEEN 5.1 AND 5.2
===============================
[REMOVED]
- package delta support
- alpm_delta_t
- alpm_event_delta_patch_t
- alpm_event_t union - removed alpm_event_delta_patch_t
- ALPM_EVENT_DELTA_INTEGRITY_START, ALPM_EVENT_DELTA_INTEGRITY_DONE,
ALPM_EVENT_DELTA_PATCHES_START, ALPM_EVENT_DELTA_PATCHES_DONE,
ALPM_EVENT_DELTA_PATCH_START, ALPM_EVENT_DELTA_PATCH_DONE,
ALPM_EVENT_DELTA_PATCH_FAILED
- ALPM_ERR_DLT_INVALID, ALPM_ERR_DLT_PATCHFAILED
- alpm_option_get_deltaratio()
- alpm_option_set_deltaratio()
- alpm_pkg_get_deltas()
- alpm_pkg_unused_deltas()
- alpm_transflag_t - removed member ALPM_TRANS_FLAG_FORCE
[CHANGED]
- alpm_errno_t - added member ALPM_ERR_MISSING_CAPABILITY_SIGNATURES
- alpm_sync_newversion() replaced with alpm_sync_get_new_version() which
does not filter on any ALPM_DB_USAGE_*.
API CHANGES BETWEEN 5.2 AND 6.0
===============================
[REMOVED]
- ALPM_EVENT_PKGDOWNLOAD_START, ALPM_EVENT_PKGDOWNLOAD_DONE, ALPM_EVENT_PKGDOWNLOAD_FAILED
[CHANGED]
- alpm_db_update() changed its signature and now accepts a list of databases
rather than a single database. This is need to handle database downloading
in a multiplexed way.
[ADDED]

View File

@@ -1,21 +1,21 @@
The following checklist should be used for making a pacman release.
- Ensure "make distcheck" succeeds
- Ensure "ninja dist" succeeds
- Call a freeze to development.
- Send translation updates to Transifex at least two weeks before a major
release (see below). At this stage, strings can only be changed for a
major issue.
- Update NEWS and README files
- Pull translation updates from Transifex
- Update version in configure.ac as described in file
- Update version in meson.build as described in file
- Update doc/index.asciidoc
- Create a signed git tag (git tag -s vX.Y.Z -m "commit message")
- Create and sign release tarballs (generate with "make distcheck")
- Create and sign release tarballs (generate with "ninja dist")
- Update pacman website
Transifex updates are handled using the transifex client. The basic process is:
- Pull updates from transifex ("tx pull -a -f --minimum-perc 75")
- Update po files ("make update-po")
- Update po files ("./build-aux/update-po")
- Fix all translation errors found
- Add any new locales to the relevant LINGUAS file
- Optional: Make any manual changes needed (e.g. fixing spacing in a string)

View File

@@ -1,6 +0,0 @@
#!/bin/sh -x
autoreconf -i
patch -d build-aux -Np0 -i ltmain-asneeded.patch
exit 0

View File

@@ -19,13 +19,7 @@ mode=$3
-e "s|@TEMPLATE_DIR[@]|@TEMPLATE_DIR@|g" \
-e "s|@DEBUGSUFFIX[@]|@DEBUGSUFFIX@|g" \
-e "s|@INODECMD[@]|@INODECMD@|g" \
-e "s|@OWNERCMD[@]|@OWNERCMD@|g" \
-e "s|@MODECMD[@]|@MODECMD@|g" \
-e "s|@SEDINPLACEFLAGS[@]|@SEDINPLACEFLAGS@|g" \
-e "s|@SEDPATH[@]|@SEDPATH@|g" \
-e "s|@DUFLAGS[@]|@DUFLAGS@|g" \
-e "s|@DUPATH[@]|@DUPATH@|g" \
-e "s|@configure_input[@]|Generated from ${input##*/}; do not edit by hand.|g" \
-e "s|@FILECMD[@]|@FILECMD@|g" \
"$input" >"$output"
if [[ $mode ]]; then

View File

@@ -1,33 +0,0 @@
--- ltmain.sh.orig 2013-06-26 14:31:53.472627840 +1000
+++ ltmain.sh 2013-06-26 14:30:56.137038936 +1000
@@ -5800,6 +5800,14 @@
arg=$func_stripname_result
;;
+ -Wl,*--as-needed*)
+ deplibs="$deplibs $wl--as-needed"
+ ;;
+
+ -Wl,*--no-as-needed*)
+ deplibs="$deplibs $wl--no-as-needed"
+ ;;
+
-Wl,*)
func_stripname '-Wl,' '' "$arg"
args=$func_stripname_result
@@ -6160,6 +6168,15 @@
lib=
found=no
case $deplib in
+ -Wl,--as-needed|-Wl,--no-as-needed)
+ if test "$linkmode,$pass" = "prog,link"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ fi
+ continue
+ ;;
-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
|-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
if test "$linkmode,$pass" = "prog,link"; then

View File

@@ -1,6 +0,0 @@
#!/bin/sh
built_script=$1
dest_path=$2
install -Dm755 "$built_script" "$DESTDIR/$dest_path"

View File

@@ -1,296 +0,0 @@
#!/usr/bin/env python3
# Adapted from tappy copyright (c) 2016, Matt Layman
# MIT license
# https://github.com/python-tap/tappy
import io
import re
import subprocess
import sys
class Directive(object):
"""A representation of a result line directive."""
skip_pattern = re.compile(
r"""^SKIP\S*
(?P<whitespace>\s*) # Optional whitespace.
(?P<reason>.*) # Slurp up the rest.""",
re.IGNORECASE | re.VERBOSE)
todo_pattern = re.compile(
r"""^TODO\b # The directive name
(?P<whitespace>\s*) # Immediately following must be whitespace.
(?P<reason>.*) # Slurp up the rest.""",
re.IGNORECASE | re.VERBOSE)
def __init__(self, text):
"""Initialize the directive by parsing the text.
The text is assumed to be everything after a '#\s*' on a result line.
"""
self._text = text
self._skip = False
self._todo = False
self._reason = None
match = self.skip_pattern.match(text)
if match:
self._skip = True
self._reason = match.group('reason')
match = self.todo_pattern.match(text)
if match:
if match.group('whitespace'):
self._todo = True
else:
# Catch the case where the directive has no descriptive text.
if match.group('reason') == '':
self._todo = True
self._reason = match.group('reason')
@property
def text(self):
"""Get the entire text."""
return self._text
@property
def skip(self):
"""Check if the directive is a SKIP type."""
return self._skip
@property
def todo(self):
"""Check if the directive is a TODO type."""
return self._todo
@property
def reason(self):
"""Get the reason for the directive."""
return self._reason
class Parser(object):
"""A parser for TAP files and lines."""
# ok and not ok share most of the same characteristics.
result_base = r"""
\s* # Optional whitespace.
(?P<number>\d*) # Optional test number.
\s* # Optional whitespace.
(?P<description>[^#]*) # Optional description before #.
\#? # Optional directive marker.
\s* # Optional whitespace.
(?P<directive>.*) # Optional directive text.
"""
ok = re.compile(r'^ok' + result_base, re.VERBOSE)
not_ok = re.compile(r'^not\ ok' + result_base, re.VERBOSE)
plan = re.compile(r"""
^1..(?P<expected>\d+) # Match the plan details.
[^#]* # Consume any non-hash character to confirm only
# directives appear with the plan details.
\#? # Optional directive marker.
\s* # Optional whitespace.
(?P<directive>.*) # Optional directive text.
""", re.VERBOSE)
diagnostic = re.compile(r'^#')
bail = re.compile(r"""
^Bail\ out!
\s* # Optional whitespace.
(?P<reason>.*) # Optional reason.
""", re.VERBOSE)
version = re.compile(r'^TAP version (?P<version>\d+)$')
TAP_MINIMUM_DECLARED_VERSION = 13
def parse(self, fh):
"""Generate tap.line.Line objects, given a file-like object `fh`.
`fh` may be any object that implements both the iterator and
context management protocol (i.e. it can be used in both a
"with" statement and a "for...in" statement.)
Trailing whitespace and newline characters will be automatically
stripped from the input lines.
"""
with fh:
for line in fh:
yield self.parse_line(line.rstrip())
def parse_line(self, text):
"""Parse a line into whatever TAP category it belongs."""
match = self.ok.match(text)
if match:
return self._parse_result(True, match)
match = self.not_ok.match(text)
if match:
return self._parse_result(False, match)
if self.diagnostic.match(text):
return ('diagnostic', text)
match = self.plan.match(text)
if match:
return self._parse_plan(match)
match = self.bail.match(text)
if match:
return ('bail', match.group('reason'))
match = self.version.match(text)
if match:
return self._parse_version(match)
return ('unknown',)
def _parse_plan(self, match):
"""Parse a matching plan line."""
expected_tests = int(match.group('expected'))
directive = Directive(match.group('directive'))
# Only SKIP directives are allowed in the plan.
if directive.text and not directive.skip:
return ('unknown',)
return ('plan', expected_tests, directive)
def _parse_result(self, ok, match):
"""Parse a matching result line into a result instance."""
return ('result', ok, match.group('number'),
match.group('description').strip(),
Directive(match.group('directive')))
def _parse_version(self, match):
version = int(match.group('version'))
if version < self.TAP_MINIMUM_DECLARED_VERSION:
raise ValueError('It is an error to explicitly specify '
'any version lower than 13.')
return ('version', version)
class Rules(object):
def __init__(self):
self._lines_seen = {'plan': [], 'test': 0, 'failed': 0, 'version': []}
self._errors = []
def check(self, final_line_count):
"""Check the status of all provided data and update the suite."""
if self._lines_seen['version']:
self._process_version_lines()
self._process_plan_lines(final_line_count)
def check_errors(self):
if self._lines_seen['failed'] > 0:
self._add_error('Tests failed.')
if self._errors:
for error in self._errors:
print(error)
return 1
return 0
def _process_version_lines(self):
"""Process version line rules."""
if len(self._lines_seen['version']) > 1:
self._add_error('Multiple version lines appeared.')
elif self._lines_seen['version'][0] != 1:
self._add_error('The version must be on the first line.')
def _process_plan_lines(self, final_line_count):
"""Process plan line rules."""
if not self._lines_seen['plan']:
self._add_error('Missing a plan.')
return
if len(self._lines_seen['plan']) > 1:
self._add_error('Only one plan line is permitted per file.')
return
expected_tests, at_line = self._lines_seen['plan'][0]
if not self._plan_on_valid_line(at_line, final_line_count):
self._add_error(
'A plan must appear at the beginning or end of the file.')
return
if expected_tests != self._lines_seen['test']:
self._add_error(
'Expected {expected_count} tests '
'but only {seen_count} ran.'.format(
expected_count=expected_tests,
seen_count=self._lines_seen['test']))
def _plan_on_valid_line(self, at_line, final_line_count):
"""Check if a plan is on a valid line."""
# Put the common cases first.
if at_line == 1 or at_line == final_line_count:
return True
# The plan may only appear on line 2 if the version is at line 1.
after_version = (
self._lines_seen['version'] and
self._lines_seen['version'][0] == 1 and
at_line == 2)
if after_version:
return True
return False
def handle_bail(self, reason):
"""Handle a bail line."""
self._add_error('Bailed: {reason}').format(reason=reason)
def handle_skipping_plan(self):
"""Handle a plan that contains a SKIP directive."""
sys.exit(77)
def saw_plan(self, expected_tests, at_line):
"""Record when a plan line was seen."""
self._lines_seen['plan'].append((expected_tests, at_line))
def saw_test(self, ok):
"""Record when a test line was seen."""
self._lines_seen['test'] += 1
if not ok:
self._lines_seen['failed'] += 1
def saw_version_at(self, line_counter):
"""Record when a version line was seen."""
self._lines_seen['version'].append(line_counter)
def _add_error(self, message):
self._errors += [message]
if __name__ == '__main__':
parser = Parser()
rules = Rules()
try:
out = subprocess.check_output(sys.argv[1:], universal_newlines=True)
except subprocess.CalledProcessError as e:
sys.stdout.write(e.output)
raise e
line_generator = parser.parse(io.StringIO(out))
line_counter = 0
for line in line_generator:
line_counter += 1
if line[0] == 'unknown':
continue
if line[0] == 'result':
rules.saw_test(line[1])
print('{okay} {num} {description} {directive}'.format(
okay=('' if line[1] else 'not ') + 'ok', num=line[2],
description=line[3], directive=line[4].text))
elif line[0] == 'plan':
if line[2].skip:
rules.handle_skipping_plan()
rules.saw_plan(line[1], line_counter)
elif line[0] == 'bail':
rules.handle_bail(line[1])
elif line[0] == 'version':
rules.saw_version_at(line_counter)
elif line[0] == 'diagnostic':
print(line[1])
rules.check(line_counter)
sys.exit(rules.check_errors())

8
build-aux/update-copyright Executable file
View File

@@ -0,0 +1,8 @@
#! /bin/sh
OLD=$1
NEW=$2
for file in $(git grep -l "Copyright .* Pacman Development" | grep -v "\.po"); do \
sed -i -e "/Copyright (/s/-${OLD}/-${NEW}/" -e "/Copyright (/s/ ${OLD}/ ${OLD}-${NEW}/" "$file"
done

View File

@@ -1,7 +1,7 @@
#!/bin/bash
find_build_directory() {
local build_dirs=(*/.ninja_log)
local build_dirs=(*/build.ninja)
if [[ ! -e ${build_dirs[0]} ]]; then
echo "error: No build directory found. Have you run 'meson build' yet?" >&2

View File

@@ -1,599 +0,0 @@
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
# Minimum version of autoconf required
AC_PREREQ(2.64)
# UPDATING VERSION NUMBERS FOR RELEASES
#
# libalpm:
# current
# The most recent interface number that this library implements.
# revision
# The implementation number of the current interface.
# age
# The difference between the newest and oldest interfaces that this library
# implements. In other words, the library implements all the interface
# numbers in the range from number current - age to current.
#
# 1. Start with version information of `0:0:0' for each libtool library.
# 2. Update the version information only immediately before a public release of
# your software. More frequent updates are unnecessary, and only guarantee
# that the current interface number gets larger faster.
# 3. If the library source code has changed at all since the last update, then
# increment revision (`c:r:a' becomes `c:r+1:a').
# 4. If any interfaces have been added, removed, or changed since the last
# update, increment current, and set revision to 0.
# 5. If any interfaces have been added since the last public release, then
# increment age.
# 6. If any interfaces have been removed since the last public release, then
# set age to 0.
#
# pacman:
# Extreme huge major changes:
# pacman_version_major += 1
# pacman_version_minor = 0
# pacman_version_micro = 0
#
# Real releases:
# pacman_version_minor += 1
# pacman_version_micro = 0
#
# Bugfix releases:
# pacman_version_micro += 1
m4_define([lib_current], [11])
m4_define([lib_revision], [1])
m4_define([lib_age], [0])
m4_define([pacman_version_major], [5])
m4_define([pacman_version_minor], [1])
m4_define([pacman_version_micro], [1])
m4_define([pacman_version],
[pacman_version_major.pacman_version_minor.pacman_version_micro])
# Autoconf initialization
AC_INIT([pacman], [pacman_version], [pacman-dev@archlinux.org])
AC_CONFIG_SRCDIR([config.h.in])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_AUX_DIR([build-aux])
AC_REQUIRE_AUX_FILE([tap-driver.sh])
AC_CANONICAL_HOST
AM_INIT_AUTOMAKE([1.11 foreign])
AM_SILENT_RULES([yes])
LT_INIT
LIB_VERSION=`expr lib_current - lib_age`.lib_age.lib_revision
LIB_VERSION_INFO="lib_current:lib_revision:lib_age"
# Respect empty CFLAGS during compiler tests
if test "x$CFLAGS" = "x"; then
CFLAGS=""
fi
# Set substitution values for version stuff in Makefiles and anywhere else,
# and put LIB_VERSION in config.h
AC_SUBST(LIB_VERSION)
AC_SUBST(LIB_VERSION_INFO)
AC_DEFINE_UNQUOTED([LIB_VERSION], ["$LIB_VERSION"], [libalpm version number])
# Help line for root directory
AC_ARG_WITH(root-dir,
AS_HELP_STRING([--with-root-dir=path], [set the location of the root operating directory]),
[ROOTDIR=$withval], [ROOTDIR=/])
# Help line for package extension
AC_ARG_WITH(pkg-ext,
AS_HELP_STRING([--with-pkg-ext=ext], [set the file extension used by packages]),
[PKGEXT=$withval], [PKGEXT=.pkg.tar.gz])
# Help line for source package directory
AC_ARG_WITH(src-ext,
AS_HELP_STRING([--with-src-ext=ext], [set the file extension used by source packages]),
[SRCEXT=$withval], [SRCEXT=.src.tar.gz])
# Help line for buildscript filename
AC_ARG_WITH(buildscript,
AS_HELP_STRING([--with-buildscript=name], [set the build script name used by makepkg]),
[BUILDSCRIPT=$withval], [BUILDSCRIPT=PKGBUILD])
# Help line for buildscript filename
AC_ARG_WITH(makepkg-template-dir,
AS_HELP_STRING([--with-makepkg-template-dir=name], [set the template dir used by makepkg-template]),
[TEMPLATE_DIR=$withval], [TEMPLATE_DIR=${datarootdir}/makepkg-template])
# Help line for debug package suffix
AC_ARG_WITH(debug-suffix,
AS_HELP_STRING([--with-debug-suffix=name], [set the suffix for split debugging symbol packages used by makepkg]),
[DEBUGSUFFIX=$withval], [DEBUGSUFFIX=debug])
# Help line for changing shell used to run install scriptlets
AC_ARG_WITH(scriptlet-shell,
AS_HELP_STRING([--with-scriptlet-shell=shell],
[set the full path to the shell used to run install scriptlets]),
[SCRIPTLET_SHELL=$withval], [SCRIPTLET_SHELL=/bin/sh])
# Help line for ldconfig path
AC_ARG_WITH(ldconfig,
AS_HELP_STRING([--with-ldconfig=path],
[set the full path to ldconfig]),
[LDCONFIG=$withval], [LDCONFIG=/sbin/ldconfig])
# Help line for selecting a crypto library
AC_ARG_WITH(crypto,
AS_HELP_STRING([--with-crypto={openssl|nettle}],
[select crypto implementation @<:@default=openssl@:>@]),
[with_crypto=$withval], [with_crypto=openssl])
# Help line for using gpgme
AC_ARG_WITH(gpgme,
AS_HELP_STRING([--with-gpgme], [use GPGME for PGP signature verification]),
[], [with_gpgme=check])
# Help line for using libcurl
AC_ARG_WITH(libcurl,
AS_HELP_STRING([--with-libcurl], [use libcurl for the internal downloader]),
[], [with_libcurl=check])
# Help line for documentation
AC_ARG_ENABLE(doc,
AS_HELP_STRING([--disable-doc], [prevent make from looking at doc/ dir]),
[wantdoc=$enableval], [wantdoc=yes])
# Help line for doxygen
AC_ARG_ENABLE(doxygen,
AS_HELP_STRING([--enable-doxygen], [build your own API docs via Doxygen]),
[wantdoxygen=$enableval], [wantdoxygen=no])
# Help line for debug
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug], [enable debugging support]),
[debug=$enableval], [debug=no])
# Help line for compiler warning flags
AC_ARG_ENABLE(warningflags,
AS_HELP_STRING([--enable-warningflags], [enable extra compiler warning flags]),
[warningflags=$enableval], [warningflags=no])
# Help line for using git version in pacman version string
AC_ARG_ENABLE(git-version,
AS_HELP_STRING([--enable-git-version],
[enable use of git version in version string if available]),
[wantgitver=$enableval], [wantgitver=no])
# Enable large file support if available (must be enabled before
# testing compilation against gpgme).
AC_SYS_LARGEFILE
# Record large file flags in pkgconfig file
if test "$enable_largefile" != no; then
if test "$ac_cv_sys_file_offset_bits" != 'no'; then
LFS_CFLAGS="-D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
fi
fi
AC_SUBST(LFS_CFLAGS)
# Checks for programs.
AC_PROG_AWK
AC_PROG_CC_C99
AC_PROG_INSTALL
AC_CHECK_PROGS([PYTHON], [python3 python], [false])
AC_PATH_PROGS([BASH_SHELL], [bash bash4], [false])
# check for perl 5.10.1 (needed by makepkg-template)
AC_PATH_PROG([PERL],[perl])
AC_DEFUN([AX_PROG_PERL_VERSION],
[AC_CACHE_CHECK([for Perl version $1 or later], [ax_cv_prog_perl_version],
[AS_IF(["$PERL" -e 'require v$1;' >/dev/null 2>&1],
[ax_cv_prog_perl_version=yes],
[ax_cv_prog_perl_version=no])])
AS_IF([test x"$ax_cv_prog_perl_version" = xyes], [$2], [$3])])
AX_PROG_PERL_VERSION([5.10.1], [], [AC_MSG_ERROR([perl is too old])])
AS_IF([test "x$BASH_SHELL" = "xfalse"],
AC_MSG_WARN([*** bash >= 4.4.0 is required for pacman scripts]),
[bash_version_major=`$BASH_SHELL -c 'echo "${BASH_VERSINFO[[0]]}"'`
bash_version_minor=`$BASH_SHELL -c 'echo "${BASH_VERSINFO[[1]]}"'`
ok=yes
if test "$bash_version_major" -lt 4; then
ok=no
fi
if test "$bash_version_major" -eq 4 && test "$bash_version_minor" -lt 4; then
ok=no
fi
if test "$ok" = "no"; then
AC_MSG_ERROR([*** bash >= 4.4.0 is required for pacman scripts])
fi
unset bash_version_major bash_version_minor ok])
# find installed gettext
AM_GNU_GETTEXT([external], [need-ngettext])
AM_GNU_GETTEXT_VERSION(0.13.1)
AC_CHECK_LIB([m], [fabs], ,
AC_MSG_ERROR([libm is needed to compile pacman!]))
PKG_CHECK_VAR(bashcompdir, [bash-completion], [completionsdir], ,
bashcompdir="${datarootdir}/bash-completion/completions")
# Check for libarchive
PKG_CHECK_MODULES(LIBARCHIVE, [libarchive >= 3.0.0], ,
AC_MSG_ERROR([*** libarchive >= 3.0.0 is needed to compile pacman!]))
# Check for OpenSSL
have_openssl=no
have_nettle=no
if test "x$with_crypto" = "xnettle"; then
AC_SUBST(pc_crypto, [nettle])
PKG_CHECK_MODULES(NETTLE, [nettle],
[AC_DEFINE(HAVE_LIBNETTLE, 1, [Define whether to use nettle]) have_nettle=yes], have_nettle=no)
if test "x$have_nettle" = xno -a "x$with_crypto" = xnettle; then
AC_MSG_ERROR([*** nettle support requested but libraries not found])
fi
else if test "x$with_crypto" = "xopenssl"; then
AC_SUBST(pc_crypto, [libcrypto])
PKG_CHECK_MODULES(LIBSSL, [libcrypto],
[AC_DEFINE(HAVE_LIBSSL, 1, [Define if libcrypto is available]) have_openssl=yes], have_openssl=no)
if test "x$have_openssl" = xno; then
AC_MSG_ERROR([*** openssl support requested but libraries not found])
fi
else
AC_MSG_ERROR([*** unknown crypto support library requested - $with_crypto])
fi
fi
AM_CONDITIONAL(HAVE_LIBSSL, [test "$have_openssl" = "yes"])
AM_CONDITIONAL(HAVE_LIBNETTLE, [test "$have_nettle" = "yes"])
# Check for libcurl
have_libcurl=no
if test "x$with_libcurl" != "xno"; then
PKG_CHECK_MODULES(LIBCURL, [libcurl >= 7.32.0],
[AC_DEFINE(HAVE_LIBCURL, 1, [Define if libcurl is available]) have_libcurl=yes], have_libcurl=no)
if test "x$have_libcurl" = xno -a "x$with_libcurl" = xyes; then
AC_MSG_ERROR([*** libcurl >= 7.32.0 is required for internal downloader support])
fi
fi
AM_CONDITIONAL(HAVE_LIBCURL, [test "$have_libcurl" = "yes"])
# used to generate libalpm.pc
if test "x$have_libcurl" = xyes; then
AC_SUBST(pc_libcurl, [libcurl])
fi
# Check for gpgme
AC_MSG_CHECKING(whether to link with libgpgme)
AS_IF([test "x$with_gpgme" != "xno"],
[AC_MSG_RESULT([yes])],
[AC_MSG_RESULT([no])])
have_gpgme=no
AS_IF([test "x$with_gpgme" != "xno"],
[AM_PATH_GPGME([1.3.0],
[LIBS_save="$LIBS"
CPPFLAGS_save="$CPPFLAGS"
CFLAGS_save="$CFLAGS"
LIBS="$LIBS $GPGME_LIBS"
CPPFLAGS="$CPPFLAGS $GPGME_CPPFLAGS"
CFLAGS="$CFLAGS $GPGME_CFLAGS"
AC_MSG_CHECKING([for sane gpgme])
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[#include <gpgme.h>]],
[[return gpgme_check_version("1.3.0");]])],
[AC_MSG_RESULT([yes])
have_gpgme=yes
AC_DEFINE([HAVE_LIBGPGME], [1], [Define if gpgme should be used to provide GPG signature support.])],
[AC_MSG_RESULT([no])
have_gpgme=no
unset GPGME_LIBS
unset GPGME_CFLAGS]
AS_IF([test "x$with_gpgme" = "xyes"],
[AC_MSG_FAILURE([*** gpgme >= 1.3.0 is needed for GPG signature support])])
)
LIBS="$LIBS_save"
CPPFLAGS="$CPPFLAGS_save"
CFLAGS="$CFLAGS_save"
unset CPPFLAGS_save
unset CFLAGS_save],)])
AS_IF([test "x$have_gpgme" = xno -a "x$with_gpgme" = xyes],
[AC_MSG_FAILURE([--with-gpgme was given, but gpgme was not found])])
AM_CONDITIONAL([HAVE_LIBGPGME], [test "x$have_gpgme" = "xyes"])
# Checks for header files.
AC_CHECK_HEADERS([fcntl.h float.h glob.h langinfo.h libintl.h limits.h \
locale.h mntent.h netinet/in.h netinet/tcp.h \
stddef.h string.h sys/ioctl.h \
sys/mnttab.h sys/mount.h \
sys/param.h sys/statvfs.h sys/time.h sys/types.h \
sys/ucred.h syslog.h termios.h wchar.h])
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_INT64_T
AC_TYPE_MODE_T
AC_TYPE_OFF_T
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_STRUCT_TM
AC_TYPE_UID_T
AC_STRUCT_DIRENT_D_TYPE
PATH_MAX_DEFINED
# Checks for library functions.
AC_FUNC_FORK
AC_FUNC_GETMNTENT
AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
AC_CHECK_FUNCS([dup2 getcwd getmntinfo gettimeofday memmove memset \
mkdir realpath regcomp rmdir setenv setlocale strcasecmp \
strchr strcspn strdup strerror strndup strnlen strrchr \
strsep strstr strtol swprintf tcflush wcwidth uname])
AC_CHECK_MEMBERS([struct stat.st_blksize],,,[[#include <sys/stat.h>]])
# For the diskspace code
FS_STATS_TYPE
AC_CHECK_MEMBERS([struct statvfs.f_flag],,,[[#include <sys/statvfs.h>]])
AC_CHECK_MEMBERS([struct statfs.f_flags],,,[[#include <sys/param.h>
#include <sys/mount.h>]])
# Check if we can use symbol visibility support in GCC
GCC_VISIBILITY_CC
# Host-dependant definitions
DEFAULT_DUFLAGS=" -sk --apparent-size"
DEFAULT_SEDINPLACEFLAGS=" --follow-symlinks -i"
INODECMD="stat -c '%i %n'"
OWNERCMD="stat -c '%u:%g'"
MODECMD="stat -c '%a'"
STRIP_BINARIES="--strip-all"
STRIP_SHARED="--strip-unneeded"
STRIP_STATIC="--strip-debug"
case "${host_os}" in
*bsd*)
INODECMD="stat -f '%i %N'"
OWNERCMD="stat -f '%u:%g'"
MODECMD="stat -f '%Lp'"
DEFAULT_SEDINPLACEFLAGS=" -i \"\""
DEFAULT_DUFLAGS=" -sk"
;;
darwin*)
host_os_darwin=yes
INODECMD="/usr/bin/stat -f '%i %N'"
OWNERCMD="/usr/bin/stat -f '%u:%g'"
MODECMD="/usr/bin/stat -f '%Lp'"
DEFAULT_SEDINPLACEFLAGS=" -i ''"
DEFAULT_DUFLAGS=" -sk"
STRIP_BINARIES=""
STRIP_SHARED="-S"
STRIP_STATIC="-S"
;;
esac
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] )
AC_PATH_PROGS([SEDPATH], [sed], [sed], [/usr/bin$PATH_SEPARATOR/bin] )
AC_SUBST(INODECMD)
AC_SUBST(OWNERCMD)
AC_SUBST(MODECMD)
AC_SUBST(STRIP_BINARIES)
AC_SUBST(STRIP_SHARED)
AC_SUBST(STRIP_STATIC)
# Flags for du
if test "${DUFLAGS+set}" != "set"; then
DUFLAGS="${DEFAULT_DUFLAGS}"
fi
AC_ARG_VAR(DUFLAGS, [flags for du, overriding the default])
# Flags for sed in place
if test "${SEDINPLACEFLAGS+set}" != "set"; then
SEDINPLACEFLAGS="${DEFAULT_SEDINPLACEFLAGS}"
fi
AC_ARG_VAR(SEDINPLACEFLAGS, [flags for sed, overriding the default])
# Variables plugged into makepkg.conf
CARCH="${host%%-*}"
CHOST="${host}"
AC_SUBST(CARCH)
AC_SUBST(CHOST)
# Check for documentation support and status
AC_CHECK_PROGS([ASCIIDOC], [asciidoc])
AC_MSG_CHECKING([for building documentation])
if test "x$wantdoc" = "xyes" ; then
if test $ASCIIDOC ; then
AC_MSG_RESULT([yes, enabled by configure])
else
asciidoc="(warning : asciidoc not installed)"
AC_MSG_RESULT([yes $asciidoc])
fi
wantdoc=yes
else
AC_MSG_RESULT([no, disabled by configure])
wantdoc=no
fi
AM_CONDITIONAL(WANT_DOC, test "x$wantdoc" = "xyes")
# Check for doxygen support and status
AC_CHECK_PROGS([DOXYGEN], [doxygen])
AC_MSG_CHECKING([for doxygen])
if test "x$wantdoxygen" = "xyes" ; then
if test $DOXYGEN ; then
AC_MSG_RESULT([yes])
usedoxygen=yes
else
AC_MSG_RESULT([no, doxygen missing])
usedoxygen=no
fi
else
AC_MSG_RESULT([no, disabled by configure])
usedoxygen=no
fi
AM_CONDITIONAL(USE_DOXYGEN, test "x$usedoxygen" = "xyes")
# Enable or disable debug code
AC_MSG_CHECKING(for debug mode request)
if test "x$debug" = "xyes" ; then
AC_MSG_RESULT(yes)
AC_DEFINE([PACMAN_DEBUG], , [Enable debug code])
# Check for -fstack-protector availability
GCC_STACK_PROTECT_LIB
GCC_STACK_PROTECT_CC
GCC_STACK_CLASH_PROTECTION
GCC_FORTIFY_SOURCE_CC
WARNING_CFLAGS="-g -Wall -Werror"
else
AC_MSG_RESULT(no)
WARNING_CFLAGS="-Wall"
fi
# Enable or disable compiler warning flags
AC_MSG_CHECKING(for excessive compiler warning flags)
if test "x$warningflags" = "xyes" ; then
AC_MSG_RESULT(yes)
CFLAGS_ADD([-Wcast-align], [WARNING_CFLAGS])
CFLAGS_ADD([-Wclobbered], [WARNING_CFLAGS])
CFLAGS_ADD([-Wempty-body], [WARNING_CFLAGS])
CFLAGS_ADD([-Wfloat-equal], [WARNING_CFLAGS])
CFLAGS_ADD([-Wformat-nonliteral], [WARNING_CFLAGS])
CFLAGS_ADD([-Wformat-security], [WARNING_CFLAGS])
CFLAGS_ADD([-Wignored-qualifiers], [WARNING_CFLAGS])
CFLAGS_ADD([-Wimplicit-fallthrough], [WARNING_CFLAGS])
CFLAGS_ADD([-Winit-self], [WARNING_CFLAGS])
CFLAGS_ADD([-Wlogical-op], [WARNING_CFLAGS])
CFLAGS_ADD([-Wmissing-declarations], [WARNING_CFLAGS])
CFLAGS_ADD([-Wmissing-field-initializers], [WARNING_CFLAGS])
CFLAGS_ADD([-Wmissing-parameter-type], [WARNING_CFLAGS])
CFLAGS_ADD([-Wmissing-prototypes], [WARNING_CFLAGS])
CFLAGS_ADD([-Wold-style-declaration], [WARNING_CFLAGS])
CFLAGS_ADD([-Woverride-init], [WARNING_CFLAGS])
CFLAGS_ADD([-Wpointer-arith], [WARNING_CFLAGS])
CFLAGS_ADD([-Wredundant-decls], [WARNING_CFLAGS])
CFLAGS_ADD([-Wshadow], [WARNING_CFLAGS])
CFLAGS_ADD([-Wsign-compare], [WARNING_CFLAGS])
CFLAGS_ADD([-Wstrict-aliasing], [WARNING_CFLAGS])
CFLAGS_ADD([-Wstrict-overflow=5], [WARNING_CFLAGS])
CFLAGS_ADD([-Wstrict-prototypes], [WARNING_CFLAGS])
CFLAGS_ADD([-Wtype-limits], [WARNING_CFLAGS])
CFLAGS_ADD([-Wuninitialized], [WARNING_CFLAGS])
CFLAGS_ADD([-Wunused-but-set-parameter], [WARNING_CFLAGS])
CFLAGS_ADD([-Wunused-parameter], [WARNING_CFLAGS])
CFLAGS_ADD([-Wwrite-strings], [WARNING_CFLAGS])
else
AC_MSG_RESULT(no)
fi
# Enable or disable use of git version in pacman version string
AC_MSG_CHECKING(whether to use git version if available)
if test "x$wantgitver" = "xyes" ; then
AC_CHECK_PROGS([GIT], [git])
AC_CHECK_FILE([.git/], hasgitdir=yes)
usegitver=$ac_cv_file__git_
if test $GIT -a "x$hasgitdir" = "xyes"; then
AC_DEFINE([USE_GIT_VERSION], , [Use GIT version in version string])
fi
else
AC_MSG_RESULT([no, disabled by configure])
usegitver=no
fi
AM_CONDITIONAL(USE_GIT_VERSION, test "x$usegitver" = "xyes")
# Set root directory
AC_SUBST(ROOTDIR)
AC_DEFINE_UNQUOTED([ROOTDIR], "$ROOTDIR", [The location of the root operating directory])
# Set package file extension
AC_SUBST(PKGEXT)
AC_DEFINE_UNQUOTED([PKGEXT], "$PKGEXT", [The file extension used by pacman packages])
# Set source package file extension
AC_SUBST(SRCEXT)
AC_DEFINE_UNQUOTED([SRCEXT], "$SRCEXT", [The file extension used by pacman source packages])
# Set makepkg build script name
AC_SUBST(BUILDSCRIPT)
AC_DEFINE_UNQUOTED([BUILDSCRIPT], "$BUILDSCRIPT", [The build script name used by makepkg])
# Set makepkg-template template directory
AC_SUBST(TEMPLATE_DIR)
AC_DEFINE_UNQUOTED([TEMPLATE_DIR], "$TEMPLATE_DIR", [The template directory used by makepkg-teplate])
# Set makepkg split debugging symbol package suffix
AC_SUBST(DEBUGSUFFIX)
AC_DEFINE_UNQUOTED([DEBUGSUFFIX], "$DEBUGSUFFIX", [The suffix for debugging symbol packages used by makepkg])
# Set shell used by install scriptlets
AC_SUBST(SCRIPTLET_SHELL)
AC_DEFINE_UNQUOTED([SCRIPTLET_SHELL], "$SCRIPTLET_SHELL", [The full path of the shell used to run install scriptlets])
# Set ldconfig path
AC_SUBST(LDCONFIG)
AC_DEFINE_UNQUOTED([LDCONFIG], "$LDCONFIG", [The full path to ldconfig])
# Configuration files
AC_CONFIG_FILES([
lib/libalpm/Makefile
lib/libalpm/po/Makefile.in
lib/libalpm/libalpm.pc
src/common/Makefile
src/pacman/Makefile
src/pacman/po/Makefile.in
src/util/Makefile
scripts/Makefile
scripts/po/Makefile.in
doc/Makefile
etc/Makefile
test/pacman/Makefile
test/pacman/tests/Makefile
test/scripts/Makefile
test/util/Makefile
Makefile
])
AC_OUTPUT
echo "
${PACKAGE_NAME}:
Build information:
source code location : ${srcdir}
prefix : ${prefix}
sysconfdir : $(eval echo ${sysconfdir})
conf file : $(eval echo ${sysconfdir})/pacman.conf
localstatedir : $(eval echo ${localstatedir})
database dir : $(eval echo ${localstatedir})/lib/pacman/
cache dir : $(eval echo ${localstatedir})/cache/pacman/pkg/
compiler : ${CC}
preprocessor flags : ${CPPFLAGS}
compiler flags : ${WARNING_CFLAGS} ${CFLAGS}
library flags : ${LIBS} ${LIBSSL_LIBS} ${NETTLE_LIBS} ${LIBARCHIVE_LIBS} ${LIBCURL_LIBS} ${GPGME_LIBS}
linker flags : ${LDFLAGS}
Architecture : ${CARCH}
Host Type : ${CHOST}
File inode command : ${INODECMD}
File owner command : ${OWNERCMD}
File mode command : ${MODECMD}
In-place sed command : ${SEDPATH} ${SEDINPLACEFLAGS}
libalpm version : ${LIB_VERSION}
libalpm version info : ${LIB_VERSION_INFO}
pacman version : ${PACKAGE_VERSION}
using git version : ${usegitver}
Directory and file information:
root working directory : ${ROOTDIR}
package extension : ${PKGEXT}
source pkg extension : ${SRCEXT}
build script name : ${BUILDSCRIPT}
template directory : ${TEMPLATE_DIR}
Compilation options:
Use libcurl : ${have_libcurl}
Use GPGME : ${have_gpgme}
Use OpenSSL : ${have_openssl}
Use nettle : ${have_nettle}
Run make in doc/ dir : ${wantdoc} ${asciidoc}
Doxygen support : ${usedoxygen}
debug support : ${debug}
extra warning flags : ${warningflags}
use git version : ${wantgitver}
"

View File

@@ -1,6 +1,3 @@
/////
vim:set ts=4 sw=4 syntax=asciidoc noet spell spelllang=en_us:
/////
BUILDINFO(5)
============
@@ -53,6 +50,9 @@ BUILDINFO file format.
*builddir*::
The directory where the package was built.
*startdir*::
The directory from which makepkg was executed.
*buildenv (array)*::
The build environment specified in makepkg.conf.

View File

@@ -1,160 +0,0 @@
# We have to do some funny stuff here with the manpages. In order to ensure
# a dist tarball doesn't get put out there without manpages, we keep those
# files listed in EXTRA_DIST no matter what. However, we only add them to
# man_MANS if --enable-asciidoc and/or --enable-doxygen are used.
MANPAGES = \
alpm-hooks.5 \
pacman.8 \
makepkg.8 \
makepkg-template.1 \
repo-add.8 \
vercmp.8 \
pkgdelta.8 \
pacman-key.8 \
PKGBUILD.5 \
makepkg.conf.5 \
pacman.conf.5 \
libalpm.3 \
BUILDINFO.5 \
pacman-conf.8
DOXYGEN_MANS = $(wildcard man3/*.3)
HTML_MANPAGES = $(addsuffix .html,$(MANPAGES))
HTML_OTHER = \
index.html \
submitting-patches.html \
translation-help.html \
HACKING.html
HTML_DOCS = \
$(HTML_MANPAGES) \
$(HTML_OTHER)
EXTRA_DIST = \
asciidoc.conf \
asciidoc-override.css \
alpm-hooks.5.asciidoc \
pacman.8.asciidoc \
makepkg.8.asciidoc \
makepkg-template.1.asciidoc \
repo-add.8.asciidoc \
vercmp.8.asciidoc \
pkgdelta.8.asciidoc \
pacman-key.8.asciidoc \
PKGBUILD.5.asciidoc \
PKGBUILD-example.txt \
makepkg.conf.5.asciidoc \
pacman.conf.5.asciidoc \
BUILDINFO.5.asciidoc \
libalpm.3.asciidoc \
footer.asciidoc \
index.asciidoc \
submitting-patches.asciidoc \
translation-help.asciidoc \
$(MANPAGES) \
$(DOXYGEN_MANS)
# Files that should be removed, but which Automake does not know.
MOSTLYCLEANFILES = *.xml $(MANPAGES) $(HTML_DOCS) repo-remove.8 website.tar.gz
# Ensure manpages are fresh when building a dist tarball
dist-hook:
$(MAKE) $(AM_MAKEFLAGS) clean
$(MAKE) $(AM_MAKEFLAGS) all
if USE_GIT_VERSION
GIT_VERSION := $(shell sh -c 'git describe --abbrev=4 --dirty | sed s/^v//')
REAL_PACKAGE_VERSION = $(GIT_VERSION)
else
REAL_PACKAGE_VERSION = $(PACKAGE_VERSION)
endif
man_MANS =
dist_man_MANS = $(MANPAGES)
if USE_DOXYGEN
man_MANS += $(DOXYGEN_MANS)
all-local: doxygen.in
Doxyfile: Doxyfile.in
sed 's,@OUTPUT_DIRECTORY@,./,' Doxyfile.in >Doxyfile
doxygen.in: Doxyfile
$(DOXYGEN) $(srcdir)/Doxyfile
endif
man: $(MANPAGES)
html: $(HTML_DOCS)
website: website.tar.gz
.PHONY: html website
website.tar.gz: html
$(AM_V_GEN)bsdtar czf $@ $(HTML_DOCS) \
asciidoc-override.css \
-C /etc/asciidoc/stylesheets/ \
asciidoc.css \
-C /etc/asciidoc/javascripts/ \
asciidoc.js \
-C /etc/asciidoc/ \
images
pkgdatadir = ${datadir}/${PACKAGE}
ASCIIDOC_OPTS = \
-f $(srcdir)/asciidoc.conf \
-a pacman_version="$(REAL_PACKAGE_VERSION)" \
-a pacman_date="`date +%Y-%m-%d`" \
-a pkgdatadir=$(pkgdatadir) \
-a localstatedir=$(localstatedir) \
-a sysconfdir=$(sysconfdir) \
-a datarootdir=$(datarootdir) \
-a rootdir=$(ROOTDIR)
A2X_OPTS = \
--no-xmllint \
-d manpage \
-f manpage \
--xsltproc-opts='-param man.endnotes.list.enabled 0 -param man.endnotes.are.numbered 0'
# Generate manpages
%: %.asciidoc asciidoc.conf footer.asciidoc Makefile.am
$(AM_V_GEN)a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS) --out-file=./$@.xml" $(srcdir)/$@.asciidoc
# Generate HTML pages
%.html: %.asciidoc asciidoc.conf footer.asciidoc Makefile.am
$(AM_V_GEN)asciidoc $(ASCIIDOC_OPTS) -o - $*.asciidoc | \
sed -e 's/\r$$//' > $@
HACKING.html: ../HACKING
$(AM_V_GEN)asciidoc $(ASCIIDOC_OPTS) -o - ../HACKING | \
sed -e 's/\r$$//' > $@
# Customizations for certain HTML docs
%.html: ASCIIDOC_OPTS += -a linkcss -a toc -a icons -a max-width=960px -a stylesheet=asciidoc-override.css
%.8.html: ASCIIDOC_OPTS += -d manpage
%.5.html: ASCIIDOC_OPTS += -d manpage
%.3.html: ASCIIDOC_OPTS += -d manpage
# Custom dependency rules
PKGBUILD.5 PKGBUILD.5.html: PKGBUILD.5.asciidoc PKGBUILD-example.txt
# Manpages as symlinks
repo-remove.8: repo-add.8
$(RM) repo-remove.8
$(LN_S) repo-add.8 repo-remove.8
install-data-hook:
cd $(DESTDIR)$(mandir)/man8 && \
$(RM) repo-remove.8 && \
( $(LN_S) repo-add.8 repo-remove.8 || \
ln repo-add.8 repo-remove.8 || \
cp repo-add.8 repo-remove.8 )
uninstall-hook:
$(RM) $(DESTDIR)$(mandir)/man8/repo-remove.8

View File

@@ -118,7 +118,7 @@ systems (see below).
+
Additional architecture-specific sources can be added by appending an
underscore and the architecture name e.g., 'source_x86_64=()'. There must be a
corresponding integrity array with checksums, e.g. 'md5sums_x86_64=()'.
corresponding integrity array with checksums, e.g. 'cksums_x86_64=()'.
+
It is also possible to change the name of the downloaded file, which is helpful
with weird URLs and for handling multiple source files with the same
@@ -146,17 +146,19 @@ contain whitespace characters.
listed here will not be extracted with the rest of the source files. This
is useful for packages that use compressed data directly.
*md5sums (array)*::
This array contains an MD5 hash for every source file specified in the
*cksums (array)*::
This array contains CRC checksums for every source file specified in the
source array (in the same order). makepkg will use this to verify source
file integrity during subsequent builds. If 'SKIP' is put in the array
in place of a normal hash, the integrity check for that source file will
be skipped. To easily generate md5sums, run ``makepkg -g >> PKGBUILD''.
If desired, move the md5sums line to an appropriate location.
be skipped. To easily generate cksums, run ``makepkg -g >> PKGBUILD''.
If desired, move the cksums line to an appropriate location. Note that
checksums generated by "makepkg -g" should be verified using checksum
values provided by the software developer.
*sha1sums, sha224sums, sha256sums, sha384sums, sha512sums, b2sums (arrays)*::
*md5sums, sha1sums, sha224sums, sha256sums, sha384sums, sha512sums, b2sums (arrays)*::
Alternative integrity checks that makepkg supports; these all behave
similar to the md5sums option described above. To enable use and generation
similar to the cksums option described above. To enable use and generation
of these checksums, be sure to set up the `INTEGRITY_CHECK` option in
linkman:makepkg.conf[5].
@@ -296,23 +298,23 @@ underscore and the architecture name e.g., 'replaces_x86_64=()'.
Compress man and info pages with gzip.
*ccache*;;
Allow the use of ccache during build. More useful in its negative
Allow the use of ccache during `build()`. More useful in its negative
form `!ccache` with select packages that have problems building
with ccache.
*distcc*;;
Allow the use of distcc during build. More useful in its negative
Allow the use of distcc during `build()`. More useful in its negative
form `!distcc` with select packages that have problems building
with distcc.
*buildflags*;;
Allow the use of user-specific buildflags (CPPFLAGS, CFLAGS, CXXFLAGS,
LDFLAGS) during build as specified in linkman:makepkg.conf[5]. More
LDFLAGS) during `build()` as specified in linkman:makepkg.conf[5]. More
useful in its negative form `!buildflags` with select packages that
have problems building with custom buildflags.
*makeflags*;;
Allow the use of user-specific makeflags during build as specified
Allow the use of user-specific makeflags during `build()` as specified
in linkman:makepkg.conf[5]. More useful in its negative form
`!makeflags` with select packages that have problems building with
custom makeflags such as `-j2` (or higher).
@@ -332,6 +334,14 @@ PKGBUILD must contain a `package()` function which installs all the package's
files into the packaging directory, with optional `prepare()`, `build()`, and
`check()` functions being used to create those files from source.
This is directly sourced and executed by makepkg, so anything that Bash or the
system has available is available for use here. Be sure any exotic commands
used are covered by the `makedepends` array.
If you create any variables of your own in any of these functions, it is
recommended to use the Bash `local` keyword to scope the variable to inside the
function.
*package() Function*::
The `package()` function is used to install files into the directory that
will become the root directory of the built package and is run after all
@@ -348,14 +358,7 @@ files into the packaging directory, with optional `prepare()`, `build()`, and
*build() Function*::
The optional `build()` function is use to compile and/or adjust the source
files in preparation to be installed by the `package()` function. This is
directly sourced and executed by makepkg, so anything that Bash or the
system has available is available for use here. Be sure any exotic
commands used are covered by the `makedepends` array.
+
If you create any variables of your own in the `build()` function, it is
recommended to use the Bash `local` keyword to scope the variable to inside
the `build()` function.
files in preparation to be installed by the `package()` function.
*check() Function*::
An optional `check()` function can be specified in which a package's
@@ -465,11 +468,13 @@ reference with all of the available functions defined.
Using VCS Sources[[VCS]]
------------------------
Building a developmental version of a package using sources from a version
control system (VCS) is enabled by specifying the source in the form
`source=('directory::url#fragment?query')`. Currently makepkg supports the
Bazaar, Git, Subversion, and Mercurial version control systems. For other
version control systems, manual cloning of upstream repositories must be done
in the `prepare()` function.
control system (VCS) is enabled by specifying the source in the form:
source=('directory::url#fragment?query')
Currently makepkg supports the Bazaar, Git, Subversion, and Mercurial version
control systems. For other version control systems, manual cloning of upstream
repositories must be done in the `prepare()` function.
The source URL is divided into four components:
@@ -487,13 +492,16 @@ The source URL is divided into four components:
*fragment*::
(optional) Allows specifying a revision number or branch for makepkg to checkout
from the VCS. For example, to checkout a given revision, the source line would
have the format `source=(url#revision=123)`. The available fragments depends on
the VCS being used:
from the VCS. A fragment has the form `type=value`, for example to checkout a
given revision the source line would be `source=(url#revision=123)`. The
available types depends on the VCS being used:
*bzr*;;
revision (see `'bzr help revisionspec'` for details)
*fossil*;;
branch, commit, tag
*git*;;
branch, commit, tag

View File

@@ -12,7 +12,7 @@ SYNOPSIS
--------
[Trigger] (Required, Repeatable)
Operation = Install|Upgrade|Remove (Required, Repeatable)
Type = File|Package (Required)
Type = Path|Package (Required)
Target = <Path|PkgName> (Required, Repeatable)
[Action] (Required)
@@ -49,19 +49,20 @@ defined the hook will run if the transaction matches *any* of the triggers.
Select the type of operation to match targets against. May be specified
multiple times. Installations are considered an upgrade if the package or
file is already present on the system regardless of whether the new package
version is actually greater than the currently installed version. For File
version is actually greater than the currently installed version. For Path
triggers, this is true even if the file changes ownership from one package
to another. Required.
*Type =* File|Package::
*Type =* Path|Package::
Select whether targets are matched against transaction packages or files.
See CAVEATS for special notes regarding File triggers. Required.
See CAVEATS for special notes regarding Path triggers. 'File' is a deprecated
alias for 'Path' and will be removed in a future release. Required.
*Target =* <path|package>::
The file path or package name to match against the active transaction.
File paths refer to the files in the package archive; the installation root
The path or package name to match against the active transaction.
Paths refer to the files in the package archive; the installation root
should *not* be included in the path. Shell-style glob patterns are
allowed. It is possible to invert matches by prepending a file with an
allowed. It is possible to invert matches by prepending a target with an
exclamation mark. May be specified multiple times. Required.
ACTIONS
@@ -119,7 +120,7 @@ Exec = /usr/bin/sync
CAVEATS
-------
There are situations when file triggers may act in unexpected ways. Hooks are
There are situations when path triggers may act in unexpected ways. Hooks are
triggered using the file list of the installed, upgraded, or removed package.
When installing or upgrading a file that is extracted with a '.pacnew'
extension, the original file name is used in triggering the hook. When

View File

@@ -6,8 +6,9 @@ information on pacman and its related tools.
Bugs
----
Bugs? You must be kidding; there are no bugs in this software. But if we
happen to be wrong, send us an email with as much detail as possible to
mailto:pacman-dev@archlinux.org[].
happen to be wrong, submit a bug report with as much detail as possible
at the https://bugs.archlinux.org/index.php?project=3[Arch Linux Bug Tracker]
in the Pacman section.
Authors
@@ -17,14 +18,15 @@ Current maintainers:
* Allan McRae <allan@archlinux.org>
* Andrew Gregory <andrew.gregory.8@gmail.com>
* Dan McGee <dan@archlinux.org>
* Dave Reisner <dreisner@archlinux.org>
* Eli Schwartz <eschwartz@archlinux.org>
Past major contributors:
* Judd Vinet <jvinet@zeroflux.org>
* Aurelien Foret <aurelien@archlinux.org>
* Aaron Griffin <aaron@archlinux.org>
* Dan McGee <dan@archlinux.org>
* Xavier Chantry <shiningxc@gmail.com>
* Nagy Gabor <ngaba@bibl.u-szeged.hu>

View File

@@ -51,8 +51,8 @@ configuration files dealing with pacman.
* linkman:makepkg.conf[5]
* linkman:pacman[8]
* linkman:pacman-key[8]
* linkman:pacman-conf[8]
* linkman:pacman.conf[5]
* linkman:pkgdelta[8]
* linkman:repo-add[8]
* linkman:vercmp[8]
@@ -77,6 +77,9 @@ Releases
[frame="topbot",grid="none",options="header,autowidth"]
!======
!Version !Date
!5.2.1 !2019-11-01
!5.2.0 !2019-10-21
!5.1.3 !2019-03-01
!5.1.2 !2018-12-25
!5.1.1 !2018-07-27
!5.1.0 !2018-05-28
@@ -190,11 +193,11 @@ link:https://sources.archlinux.org/other/pacman/[]. To install, download the new
available source tarball, unpack it in a directory, and run the three magic
commands:
$ ./configure
$ make
# make install
$ meson build
$ ninja -C build
# ninja -C build install
You may wish to read the options presented by `./configure --help` in order to
You may wish to read the options presented by `meson` in order to
set appropriate paths and build options that are correct for your system.
Development
@@ -259,7 +262,7 @@ bugs under the Pacman project.
Copyright
---------
pacman is Copyright (C) 2006-2018 Pacman Development Team
pacman is Copyright (C) 2006-2020 Pacman Development Team
<pacman-dev@archlinux.org> and Copyright (C) 2002-2006 Judd Vinet
<jvinet@zeroflux.org> and is licensed through the GNU General Public License,
version 2 or later.

View File

@@ -274,7 +274,7 @@ Environment Variables
**GPGKEY=**"keyid"::
Specify a key to use when signing packages, overriding the GPGKEY setting
in linkman:makepkg.conf[5]
in linkman:makepkg.conf[5].
**SOURCE_DATE_EPOCH=**"<date>"::
Used for link:https://reproducible-builds.org/docs/[Reproducible Builds].
@@ -299,7 +299,7 @@ On exit, makepkg will return one of the following error codes.
Error in configuration file.
3::
User specified an invalid option
User specified an invalid option.
4::
Error in user-supplied function in PKGBUILD.
@@ -340,7 +340,7 @@ On exit, makepkg will return one of the following error codes.
Programs necessary to run makepkg are missing.
16::
Specified GPG key does not exist.
Specified GPG key does not exist or failed to sign package.
See Also
--------

View File

@@ -72,6 +72,10 @@ Options
**CXXFLAGS=**"cxxflags"::
Flags used for the C++ compiler; see CFLAGS for more info.
**RUSTFLAGS=**"rustflags"::
Flags used for the Rust compiler, similar in spirit to CFLAGS. Read
linkman:rustc[1] for more details on the available flags.
**LDFLAGS=**"ldflags"::
Flags used for the linker. Several options may be specified with common
usage resembling ``-Wl,--hash-style=gnu''. Read ld(1) for more details on
@@ -89,6 +93,11 @@ Options
**DEBUG_CXXFLAGS=**"debug_cxxflags"::
Debug flags used for the C++ compiler; see DEBUG_CFLAGS for more info.
**DEBUG_RUSTFLAGS=**"debug_rustflags"::
Additional compiler flags appended to `RUSTFLAGS` for use in debugging.
Usually this would include: ``-C debuginfo=2''. Read linkman:rustc[1] for
more details on the available flags.
**BUILDENV=(**!distcc !color !ccache check !sign**)**::
This array contains options that affect the build environment; the defaults
are shown here. All options should always be left in the array; to enable
@@ -183,7 +192,7 @@ Options
**INTEGRITY_CHECK=(**check1 ...**)**::
File integrity checks to use. Multiple checks may be specified; this
affects both generation and checking. The current valid options are:
`md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, and `b2`.
`ck`, `md5`, `sha1`, `sha224`, `sha256`, `sha384`, `sha512`, and `b2`.
**STRIP_BINARIES=**"--strip-all"::
Options to be used when stripping binaries. See linkman:strip[1]
@@ -244,6 +253,7 @@ Options
**PACKAGER=**"John Doe <john@example.com>"::
This value is used when querying a package to see who was the builder.
The given format is required for PGP key lookup through WKD.
It is recommended to change this to your name and email address.
**COMPRESSGZ=**"(gzip -c -f -n)"::
@@ -258,11 +268,12 @@ Options
Sets the command and options used when compressing compiled or source
packages in the named format.
**PKGEXT=**".pkg.tar.gz", **SRCEXT=**".src.tar.gz"::
**PKGEXT=**"{pkgext}", **SRCEXT=**"{srcext}"::
Sets the compression used when making compiled or source packages.
Valid suffixes are `.tar`, `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tar.zst`,
`.tar.lzo`, `.tar.lrz`, `.tar.lz4`, `.tar.lz` and `.tar.Z`.
Do not touch these unless you know what you are doing.
Valid suffixes are `.tar.gz`, `.tar.bz2`, `.tar.xz`, `.tar.zst`,
`.tar.lzo`, `.tar.lrz`, `.tar.lz4`, `.tar.lz` and `.tar.Z`, or
simply `.tar` to disable compression entirely.
See Also

View File

@@ -5,7 +5,6 @@ manpages = [
{ 'name': 'makepkg-template.1' },
{ 'name': 'repo-add.8' },
{ 'name': 'vercmp.8' },
{ 'name': 'pkgdelta.8' },
{ 'name': 'pacman-key.8' },
{ 'name': 'PKGBUILD.5', 'extra_depends' : [ 'PKGBUILD-example.txt' ] },
{ 'name': 'makepkg.conf.5' },
@@ -28,6 +27,8 @@ asciidoc_opts = [
'-f', asciidoc_conf,
'-a', 'pacman_version="@0@"'.format(PACKAGE_VERSION),
'-a', 'pacman_date=@0@'.format(run_command('date', '+%Y-%m-%d').stdout().strip()),
'-a', 'srcext=@0@'.format(get_option('src-ext')),
'-a', 'pkgext=@0@'.format(get_option('pkg-ext')),
'-a', 'pkgdatadir=@0@'.format(PKGDATADIR),
'-a', 'localstatedir=@0@'.format(LOCALSTATEDIR),
'-a', 'sysconfdir=@0@'.format(SYSCONFDIR),
@@ -128,6 +129,10 @@ meson.add_install_script(MESON_MAKE_SYMLINK,
'repo-add.8',
join_paths(MANDIR, 'man8/repo-remove.8'))
meson.add_install_script(MESON_MAKE_SYMLINK,
'alpm-hooks.5',
join_paths(MANDIR, 'man5/pacman-hooks.5'))
doxygen = find_program('doxygen', required : get_option('doxygen'))
if doxygen.found() and not get_option('doxygen').disabled()
doxyconf = configuration_data()

View File

@@ -141,7 +141,7 @@ Options
guest system. See '\--sysroot' instead.
*-v, \--verbose*::
Output paths such as as the Root, Conf File, DB Path, Cache Dirs, etc.
Output paths such as the Root, Conf File, DB Path, Cache Dirs, etc.
*\--arch* <arch>::
Specify an alternate architecture.
@@ -464,7 +464,7 @@ Database Options (apply to '-D')[[QO]]
*\--asexplicit* <package>::
Mark a package as explicitly installed; in other words, set their install
reason to be explicitly installed. This is useful it you want to keep a
reason to be explicitly installed. This is useful if you want to keep a
package installed even when it was initially installed as a dependency
of another package.
@@ -488,14 +488,8 @@ File Options (apply to '-F')[[FO]]
*-l, \--list*::
List the files owned by the queried package.
*-s, \--search*::
Search package file names for matching strings.
*-x, --regex*::
Treat arguments to '--search' as regular expressions.
*-o, \--owns*::
Search for packages that own a particular file.
Interpret each query as a regular expression.
*-q, \--quiet*::
Show less information for certain file operations. This is useful when
@@ -503,9 +497,9 @@ File Options (apply to '-F')[[FO]]
'--machinereadable' instead.
*--machinereadable*::
Use a machine readable output format for '--list', '--search' and
'--owns'. The format is 'repository\0pkgname\0pkgver\0path\n' with '\0'
being the NULL character and '\n' a linefeed.
Print each match in a machine readable output format. The format is
'repository\0pkgname\0pkgver\0path\n' with '\0' being the NULL character
and '\n' a linefeed.
Handling Config Files[[HCF]]
----------------------------

View File

@@ -186,13 +186,9 @@ Options
*Color*::
Automatically enable colors only when pacman's output is on a tty.
*UseDelta* [= ratio]::
Download delta files instead of complete packages if possible. Requires
the `xdelta3` program to be installed. If a ratio is specified (e.g.,
`0.5`), then it is used as a cutoff for determining whether to use deltas.
Allowed values are between `0.0` and `2.0`; sensible values are between
`0.2` and `0.9`. Using a value above `1.0` is not recommended. The
default is `0.7` if left unspecified.
*NoProgressBar*::
Disables progress bars. This is useful for terminals which do
not support escape characters.
*TotalDownload*::
When downloading, display the amount downloaded, download rate, ETA,
@@ -213,6 +209,11 @@ Options
Disable defaults for low speed limit and timeout on downloads. Use this
if you have issues downloading files with proxy and/or security gateway.
*ParallelDownloads*::
Specifies number of concurrent download streams. The value needs to be a
positive integer. If this config option is not set then only one download
stream is used (i.e. downloads happen sequentially).
Repository Sections
-------------------

View File

@@ -1,53 +0,0 @@
pkgdelta(8)
=========
Name
----
pkgdelta - package delta generation utility
Synopsis
--------
'pkgdelta' [options] <package1> <package2>
Description
-----------
'pkgdelta' is used to create package delta files between two versions of the
same package. These files are essentially binary patches. linkman:pacman[8] can
download deltas instead of full package upgrades, and use them with the
previous versions of packages (in the package cache) to synthesize the upgraded
version of the packages. This likely reduces download sizes for upgrades
significantly.
'pkgdelta' requires linkman:xdelta3[1] to do its job.
Options
-------
*--max-delta-size <ratio>*::
Only create delta files if the delta is smaller than ratio * package_size.
Possible values: 0.0 to 2.0.
Recommended values: 0.2 to 0.9.
Default value: 0.7
*--min-pkg-size <size>*::
Minimal size of the package file in bytes to be considered for delta creation.
Default value: 1048576 bytes = 1 MiB. This may be any absolute size in bytes or
a human-readable value such as `4MiB` or `3.5MB`.
*-q, \--quiet*::
Be quiet. Do not output anything but warnings and errors.
Examples
--------
$ pkgdelta libreoffice-3.3.2-1-x86_64.pkg.tar.xz libreoffice-3.3.2-2-x86_64.pkg.tar.xz
See Also
--------
linkman:pacman[8], linkman:xdelta3[1]
include::footer.asciidoc[]

View File

@@ -8,27 +8,25 @@ repo-add - package database maintenance utility
Synopsis
--------
'repo-add' [options] <path-to-db> <package|delta> [<package|delta> ...]
'repo-add' [options] <path-to-db> <package> [<package> ...]
'repo-remove' [options] <path-to-db> <packagename|delta> [<packagename|delta> ...]
'repo-remove' [options] <path-to-db> <packagename> [<packagename> ...]
Description
-----------
'repo-add' and 'repo-remove' are two scripts to help build a package database for
packages built with linkman:makepkg[8] and installed with linkman:pacman[8].
They also handle package deltas produced by linkman:pkgdelta[8].
'repo-add' will update a package database by reading a built package or package
delta file. Multiple packages and/or deltas to add can be specified on the
command line.
'repo-add' will update a package database by reading a built package file.
Multiple packages to add can be specified on the command line.
If a matching ``.sig'' file is found alongside a package file, the signature
will automatically be embedded into the database.
'repo-remove' will update a package database by removing the package name or
delta specified on the command line. Multiple packages and/or delta to remove
can be specified on the command line.
'repo-remove' will update a package database by removing the package name
specified on the command line. Multiple packages to remove can be specified
on the command line.
A package database is a tar file, optionally compressed. Valid extensions are
``.db'' followed by an archive extension of ``.tar'', ``.tar.gz'', ``.tar.bz2'',
@@ -64,10 +62,6 @@ Common Options
repo-add Options
----------------
*-d, \--delta*::
Automatically generate and add a delta file between the old entry and the
new one, if the old package file is found next to the new one.
*-n, \--new*::
Only add packages that are not already in the database. Warnings will be
printed upon detection of existing packages, but they will not be re-added.
@@ -89,6 +83,6 @@ db.tar* extension), there is currently no additional benefit for the larger down
See Also
--------
linkman:makepkg[8], linkman:pacman[8], linkman:pkgdelta[8]
linkman:makepkg[8], linkman:pacman[8]
include::footer.asciidoc[]

View File

@@ -1,27 +0,0 @@
dist_sysconf_DATA = makepkg.conf pacman.conf
EXTRA_DIST = makepkg.conf.in pacman.conf.in
# Files that should be removed, but which Automake does not know.
MOSTLYCLEANFILES = $(dist_sysconf_DATA)
SED_PROCESS = \
$(AM_V_GEN)$(MKDIR_P) $(dir $@) && \
$(SED) \
-e 's|@sysconfdir[@]|$(sysconfdir)|g' \
-e 's|@localstatedir[@]|$(localstatedir)|g' \
-e 's|@prefix[@]|$(prefix)|g' \
-e 's|@PACKAGE_VERSION[@]|$(PACKAGE_VERSION)|g' \
-e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
-e 's|@PKGEXT[@]|$(PKGEXT)|g' \
-e 's|@SRCEXT[@]|$(SRCEXT)|g' \
-e 's|@STRIP_BINARIES[@]|$(STRIP_BINARIES)|g' \
-e 's|@STRIP_SHARED[@]|$(STRIP_SHARED)|g' \
-e 's|@STRIP_STATIC[@]|$(STRIP_STATIC)|g' \
-e 's|@CARCH[@]|$(CARCH)|g' \
-e 's|@CHOST[@]|$(CHOST)|g' \
-e 's|@ARCHSWITCH[@]|$(ARCHSWITCH)|g' \
-e 's|@ROOTDIR[@]|$(ROOTDIR)|g' \
< $< > $@
%.conf: %.conf.in Makefile
$(SED_PROCESS)

View File

@@ -24,6 +24,7 @@ DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
#-- The package required by makepkg to download VCS sources
# Format: 'protocol::package'
VCSCLIENTS=('bzr::bzr'
'fossil::fossil'
'git::git'
'hg::mercurial'
'svn::subversion')
@@ -40,17 +41,19 @@ CHOST="@CHOST@"
#CFLAGS="-O2 -pipe"
#CXXFLAGS="-O2 -pipe"
#LDFLAGS=""
#RUSTFLAGS="-C opt-level=2"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
#DEBUG_CFLAGS="-g"
#DEBUG_CXXFLAGS="-g"
#DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
# Defaults: BUILDENV=(!distcc !color !ccache check !sign)
# Makepkg defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
@@ -73,7 +76,7 @@ BUILDENV=(!distcc color !ccache check !sign)
# These are default values for the options=() settings
#########################################################################
#
# Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)
# Makepkg defaults: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -87,8 +90,8 @@ BUILDENV=(!distcc color !ccache check !sign)
#
OPTIONS=(strip docs libtool staticlibs emptydirs zipman purge !debug)
#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(md5)
#-- File integrity checks to use. Valid: ck, md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(ck)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="@STRIP_BINARIES@"
#-- Options to be used when stripping shared libraries. See `man strip' for details.
@@ -141,8 +144,5 @@ COMPRESSLZ=(lzip -c -f)
# EXTENSION DEFAULTS
#########################################################################
#
# WARNING: Do NOT modify these variables unless you know what you are
# doing.
#
PKGEXT='@PKGEXT@'
SRCEXT='@SRCEXT@'

View File

@@ -19,7 +19,6 @@ HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
@@ -32,9 +31,11 @@ Architecture = auto
# Misc options
#UseSyslog
#Color
#NoProgressBar
#TotalDownload
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5
# PGP signature checking
#SigLevel = Optional

View File

@@ -1,77 +0,0 @@
AUTOMAKE_OPTIONS = gnu
SUBDIRS = po
lib_LTLIBRARIES = libalpm.la
include_HEADERS = alpm_list.h alpm.h
AM_CPPFLAGS = \
-imacros $(top_builddir)/config.h \
-DSYSHOOKDIR=\"@datarootdir@/libalpm/hooks/\" \
-DLOCALEDIR=\"@localedir@\"
AM_CFLAGS = -pedantic -D_GNU_SOURCE $(WARNING_CFLAGS)
if ENABLE_VISIBILITY_CC
if DARWIN
AM_CFLAGS += -fvisibility=hidden
else
AM_CFLAGS += -fvisibility=internal
endif
endif
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = libalpm.pc
libalpm_la_SOURCES = \
add.h add.c \
alpm.h alpm.c \
alpm_list.h alpm_list.c \
backup.h backup.c \
base64.h base64.c \
be_local.c \
be_package.c \
be_sync.c \
conflict.h conflict.c \
db.h db.c \
delta.h delta.c \
deps.h deps.c \
diskspace.h diskspace.c \
dload.h dload.c \
error.c \
filelist.h filelist.c \
graph.h graph.c \
group.h group.c \
handle.h handle.c \
hook.h hook.c \
ini.h ini.c \
libarchive-compat.h \
log.h log.c \
package.h package.c \
pkghash.h pkghash.c \
rawstr.c \
remove.h remove.c \
signing.c signing.h \
sync.h sync.c \
trans.h trans.c \
util.h util.c \
util-common.h util-common.c \
version.c
libalpm_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_INFO)
libalpm_la_CFLAGS = \
$(AM_CFLAGS) \
$(GPGME_CFLAGS) \
$(LIBARCHIVE_CFLAGS) \
$(LIBCURL_CFLAGS) \
$(LIBSSL_CFLAGS) \
$(NETTLE_CFLAGS)
libalpm_la_LIBADD = \
$(LTLIBINTL) \
$(GPGME_LIBS) \
$(LIBARCHIVE_LIBS) \
$(LIBCURL_LIBS) \
$(LIBSSL_LIBS) \
$(NETTLE_LIBS)

View File

@@ -1,7 +1,7 @@
/*
* add.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -47,7 +47,6 @@
#include "remove.h"
#include "handle.h"
/** Add a package to the transaction. */
int SYMEXPORT alpm_add_pkg(alpm_handle_t *handle, alpm_pkg_t *pkg)
{
const char *pkgname, *pkgver;
@@ -484,8 +483,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
/* set up fake remove transaction */
if(_alpm_remove_single_package(handle, oldpkg, newpkg, 0, 0) == -1) {
handle->pm_errno = ALPM_ERR_TRANS_ABORT;
ret = -1;
goto cleanup;
return -1;
}
}
@@ -496,15 +494,13 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
"error: could not create database entry %s-%s\n",
newpkg->name, newpkg->version);
handle->pm_errno = ALPM_ERR_DB_WRITE;
ret = -1;
goto cleanup;
return -1;
}
fd = _alpm_open_archive(db->handle, pkgfile, &buf,
&archive, ALPM_ERR_PKG_OPEN);
if(fd < 0) {
ret = -1;
goto cleanup;
return -1;
}
/* save the cwd so we can restore it later */
@@ -522,8 +518,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
close(cwdfd);
}
close(fd);
ret = -1;
goto cleanup;
return -1;
}
if(trans->flags & ALPM_TRANS_FLAG_DBONLY) {
@@ -607,8 +602,7 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
"error: could not update database entry %s-%s\n",
newpkg->name, newpkg->version);
handle->pm_errno = ALPM_ERR_DB_WRITE;
ret = -1;
goto cleanup;
return -1;
}
if(_alpm_db_add_pkgincache(db, newpkg) == -1) {
@@ -654,7 +648,6 @@ static int commit_single_pkg(alpm_handle_t *handle, alpm_pkg_t *newpkg,
event.type = ALPM_EVENT_PACKAGE_OPERATION_DONE;
EVENT(handle, &event);
cleanup:
return ret;
}

View File

@@ -1,7 +1,7 @@
/*
* add.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* alpm.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
@@ -32,19 +32,6 @@
#include "log.h"
#include "util.h"
/** \addtogroup alpm_interface Interface Functions
* @brief Functions to initialize and release libalpm
* @{
*/
/** Initializes the library.
* Creates handle, connects to database and creates lockfile.
* This must be called before any other functions are called.
* @param root the root path for all filesystem operations
* @param dbpath the absolute path to the libalpm database
* @param err an optional variable to hold any error return codes
* @return a context handle on success, NULL on error, err will be set if provided
*/
alpm_handle_t SYMEXPORT *alpm_initialize(const char *root, const char *dbpath,
alpm_errno_t *err)
{
@@ -68,7 +55,7 @@ alpm_handle_t SYMEXPORT *alpm_initialize(const char *root, const char *dbpath,
* with a slash) correctly, we skip SYSHOOKDIR[0]; the regular +1 therefore
* disappears from the allocation */
MALLOC(hookdir, strlen(myhandle->root) + strlen(SYSHOOKDIR), goto nomem);
sprintf(hookdir, "%s%s", myhandle->root, SYSHOOKDIR + 1);
sprintf(hookdir, "%s%s", myhandle->root, &SYSHOOKDIR[1]);
myhandle->hookdirs = alpm_list_add(NULL, hookdir);
/* set default database extension */
@@ -83,6 +70,13 @@ alpm_handle_t SYMEXPORT *alpm_initialize(const char *root, const char *dbpath,
goto cleanup;
}
#ifdef HAVE_LIBCURL
curl_global_init(CURL_GLOBAL_ALL);
myhandle->curlm = curl_multi_init();
#endif
myhandle->parallel_downloads = 1;
#ifdef ENABLE_NLS
bindtextdomain("libalpm", LOCALEDIR);
#endif
@@ -99,14 +93,6 @@ cleanup:
return NULL;
}
/** Release the library.
* Disconnects from the database, removes handle and lockfile
* This should be the last alpm call you make.
* After this returns, handle should be considered invalid and cannot be reused
* in any way.
* @param myhandle the context handle
* @return 0 on success, -1 on error
*/
int SYMEXPORT alpm_release(alpm_handle_t *myhandle)
{
int ret = 0;
@@ -125,33 +111,22 @@ int SYMEXPORT alpm_release(alpm_handle_t *myhandle)
ret = -1;
}
_alpm_handle_unlock(myhandle);
_alpm_handle_free(myhandle);
#ifdef HAVE_LIBCURL
curl_multi_cleanup(myhandle->curlm);
curl_global_cleanup();
#endif
_alpm_handle_unlock(myhandle);
_alpm_handle_free(myhandle);
return ret;
}
/** @} */
/** @defgroup alpm_misc Miscellaneous Functions
* @brief Various libalpm functions
*/
/** Get the version of library.
* @return the library version, e.g. "6.0.4"
* */
const char SYMEXPORT *alpm_version(void)
{
return LIB_VERSION;
}
/** Get the capabilities of the library.
* @return a bitmask of the capabilities
* */
int SYMEXPORT alpm_capabilities(void)
{
return 0

View File

@@ -1,7 +1,7 @@
/*
* alpm.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
@@ -104,9 +104,6 @@ typedef enum _alpm_errno_t {
/* Signatures */
ALPM_ERR_SIG_MISSING,
ALPM_ERR_SIG_INVALID,
/* Deltas */
ALPM_ERR_DLT_INVALID,
ALPM_ERR_DLT_PATCHFAILED,
/* Dependencies */
ALPM_ERR_UNSATISFIED_DEPS,
ALPM_ERR_CONFLICTING_DEPS,
@@ -273,22 +270,6 @@ typedef struct _alpm_group_t {
alpm_list_t *packages;
} alpm_group_t;
/** Package upgrade delta */
typedef struct _alpm_delta_t {
/** filename of the delta patch */
char *delta;
/** md5sum of the delta file */
char *delta_md5;
/** filename of the 'before' file */
char *from;
/** filename of the 'after' file */
char *to;
/** filesize of the delta file */
off_t delta_size;
/** download filesize of the delta file */
off_t download_size;
} alpm_delta_t;
/** File in a package */
typedef struct _alpm_file_t {
char *name;
@@ -354,6 +335,11 @@ typedef enum _alpm_hook_when_t {
* Logging facilities
*/
/** \addtogroup alpm_log Logging Functions
* @brief Functions to log using libalpm
* @{
*/
/** Logging Levels */
typedef enum _alpm_loglevel_t {
ALPM_LOG_ERROR = 1,
@@ -364,9 +350,17 @@ typedef enum _alpm_loglevel_t {
typedef void (*alpm_cb_log)(alpm_loglevel_t, const char *, va_list);
/** A printf-like function for logging.
* @param handle the context handle
* @param prefix caller-specific prefix for the log
* @param fmt output format
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int alpm_logaction(alpm_handle_t *handle, const char *prefix,
const char *fmt, ...) __attribute__((format(printf, 3, 4)));
/** @} */
/**
* Type of events.
*/
@@ -405,39 +399,21 @@ typedef enum _alpm_event_type_t {
ALPM_EVENT_LOAD_START,
/** Target package is finished loading. */
ALPM_EVENT_LOAD_DONE,
/** Target delta's integrity will be checked. */
ALPM_EVENT_DELTA_INTEGRITY_START,
/** Target delta's integrity was checked. */
ALPM_EVENT_DELTA_INTEGRITY_DONE,
/** Deltas will be applied to packages. */
ALPM_EVENT_DELTA_PATCHES_START,
/** Deltas were applied to packages. */
ALPM_EVENT_DELTA_PATCHES_DONE,
/** Delta patch will be applied to target package; See
* alpm_event_delta_patch_t for arguments.. */
ALPM_EVENT_DELTA_PATCH_START,
/** Delta patch was applied to target package. */
ALPM_EVENT_DELTA_PATCH_DONE,
/** Delta patch failed to apply to target package. */
ALPM_EVENT_DELTA_PATCH_FAILED,
/** Scriptlet has printed information; See alpm_event_scriptlet_info_t for
* arguments. */
ALPM_EVENT_SCRIPTLET_INFO,
/** Files will be downloaded from a repository. */
ALPM_EVENT_RETRIEVE_START,
/** Files were downloaded from a repository. */
ALPM_EVENT_RETRIEVE_DONE,
/** Not all files were successfully downloaded from a repository. */
ALPM_EVENT_RETRIEVE_FAILED,
/** A file will be downloaded from a repository; See alpm_event_pkgdownload_t
* for arguments */
ALPM_EVENT_PKGDOWNLOAD_START,
/** A file was downloaded from a repository; See alpm_event_pkgdownload_t
* for arguments */
ALPM_EVENT_PKGDOWNLOAD_DONE,
/** A file failed to be downloaded from a repository; See
* alpm_event_pkgdownload_t for arguments */
ALPM_EVENT_PKGDOWNLOAD_FAILED,
/** Database files will be downloaded from a repository. */
ALPM_EVENT_DB_RETRIEVE_START,
/** Database files were downloaded from a repository. */
ALPM_EVENT_DB_RETRIEVE_DONE,
/** Not all database files were successfully downloaded from a repository. */
ALPM_EVENT_DB_RETRIEVE_FAILED,
/** Package files will be downloaded from a repository. */
ALPM_EVENT_PKG_RETRIEVE_START,
/** Package files were downloaded from a repository. */
ALPM_EVENT_PKG_RETRIEVE_DONE,
/** Not all package files were successfully downloaded from a repository. */
ALPM_EVENT_PKG_RETRIEVE_FAILED,
/** Disk space usage will be computed for a package. */
ALPM_EVENT_DISKSPACE_START,
/** Disk space usage was computed for a package. */
@@ -509,13 +485,6 @@ typedef struct _alpm_event_optdep_removal_t {
alpm_depend_t *optdep;
} alpm_event_optdep_removal_t;
typedef struct _alpm_event_delta_patch_t {
/** Type of event. */
alpm_event_type_t type;
/** Delta info */
alpm_delta_t *delta;
} alpm_event_delta_patch_t;
typedef struct _alpm_event_scriptlet_info_t {
/** Type of event. */
alpm_event_type_t type;
@@ -589,7 +558,6 @@ typedef union _alpm_event_t {
alpm_event_any_t any;
alpm_event_package_operation_t package_operation;
alpm_event_optdep_removal_t optdep_removal;
alpm_event_delta_patch_t delta_patch;
alpm_event_scriptlet_info_t scriptlet_info;
alpm_event_database_missing_t database_missing;
alpm_event_pkgdownload_t pkgdownload;
@@ -738,13 +706,42 @@ typedef void (*alpm_cb_progress)(alpm_progress_t, const char *, int, size_t, siz
* Downloading
*/
/* File download events.
* These events are reported by ALPM via download callback.
*/
typedef enum {
ALPM_DOWNLOAD_INIT, /* alpm initializes file download logic */
ALPM_DOWNLOAD_PROGRESS, /* download progress reported */
ALPM_DOWNLOAD_COMPLETED /* alpm is about to release data related to the file */
} alpm_download_event_type_t;
typedef struct {
int optional; /* whether this file is optional and thus the errors could be ignored */
} alpm_download_event_init_t;
typedef struct {
off_t downloaded; /* amount of data downloaded */
off_t total; /* total amount need to be downloaded */
} alpm_download_event_progress_t;
typedef struct {
/* total bytes in file */
off_t total;
/* download result code:
* 0 - download completed successfully
* 1 - the file is up-to-date
* -1 - error
*/
int result;
} alpm_download_event_completed_t;
/** Type of download progress callbacks.
* @param filename the name of the file being downloaded
* @param xfered the number of transferred bytes
* @param total the total number of bytes to transfer
* @param event the event type
* @param data the event data of type alpm_download_event_*_t
*/
typedef void (*alpm_cb_download)(const char *filename,
off_t xfered, off_t total);
alpm_download_event_type_t event, void *data);
typedef void (*alpm_cb_totaldl)(off_t total);
@@ -758,12 +755,17 @@ typedef void (*alpm_cb_totaldl)(off_t total);
typedef int (*alpm_cb_fetch)(const char *url, const char *localpath,
int force);
/** Fetch a remote pkg.
/** Fetch a list of remote packages.
* @param handle the context handle
* @param url URL of the package to download
* @return the downloaded filepath on success, NULL on error
* @param urls list of package URLs to download
* @param fetched list of filepaths to the fetched packages, each item
* corresponds to one in `urls` list. This is an output parameter,
* the caller should provide a pointer to an empty list
* (*fetched === NULL) and the callee fills the list with data.
* @return 0 on success or -1 on failure
*/
char *alpm_fetch_pkgurl(alpm_handle_t *handle, const char *url);
int alpm_fetch_pkgurl(alpm_handle_t *handle, const alpm_list_t *urls,
alpm_list_t **fetched);
/** @addtogroup alpm_api_options Options
* Libalpm option getters and setters
@@ -915,9 +917,6 @@ const char *alpm_option_get_arch(alpm_handle_t *handle);
/** Sets the targeted architecture. */
int alpm_option_set_arch(alpm_handle_t *handle, const char *arch);
double alpm_option_get_deltaratio(alpm_handle_t *handle);
int alpm_option_set_deltaratio(alpm_handle_t *handle, double ratio);
int alpm_option_get_checkspace(alpm_handle_t *handle);
int alpm_option_set_checkspace(alpm_handle_t *handle, int checkspace);
@@ -935,6 +934,17 @@ int alpm_option_set_remote_file_siglevel(alpm_handle_t *handle, int level);
int alpm_option_set_disable_dl_timeout(alpm_handle_t *handle, unsigned short disable_dl_timeout);
int alpm_option_get_parallel_downloads(alpm_handle_t *handle);
/** Sets number of parallel streams to download database and package files.
* If the function is not called then the default value of '1' stream
* (i.e. sequential download) is used.
* @param handle the context handle
* @param num_streams number of parallel download streams
* @return 0 on success, -1 on error
*/
int alpm_option_set_parallel_downloads(alpm_handle_t *handle, unsigned int num_streams);
/** @} */
/** @addtogroup alpm_api_databases Database Functions
@@ -1005,13 +1015,65 @@ int alpm_db_get_valid(alpm_db_t *db);
/** @name Accessors to the list of servers for a database.
* @{
*/
/** Get the list of servers assigned to this db.
* @param db pointer to the database to get the servers from
* @return a char* list of servers
*/
alpm_list_t *alpm_db_get_servers(const alpm_db_t *db);
/** Sets the list of servers for the database to use.
* @param db the database to set the servers
* @param a char* list of servers. Note: the database will
* take ownership of the list and it should no longer be
* freed by the caller
*/
int alpm_db_set_servers(alpm_db_t *db, alpm_list_t *servers);
/** Add a download server to a database.
* @param db database pointer
* @param url url of the server
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int alpm_db_add_server(alpm_db_t *db, const char *url);
/** Remove a download server from a database.
* @param db database pointer
* @param url url of the server
* @return 0 on success, 1 on server not present,
* -1 on error (pm_errno is set accordingly)
*/
int alpm_db_remove_server(alpm_db_t *db, const char *url);
/** @} */
int alpm_db_update(int force, alpm_db_t *db);
/** Update package databases
*
* An update of the package databases in the list \a dbs will be attempted.
* Unless \a force is true, the update will only be performed if the remote
* databases were modified since the last update.
*
* This operation requires a database lock, and will return an applicable error
* if the lock could not be obtained.
*
* Example:
* @code
* alpm_list_t *dbs = alpm_get_syncdbs();
* ret = alpm_db_update(config->handle, dbs, force);
* if(ret < 0) {
* pm_printf(ALPM_LOG_ERROR, _("failed to synchronize all databases (%s)\n"),
* alpm_strerror(alpm_errno(config->handle)));
* }
* @endcode
*
* @note After a successful update, the \link alpm_db_get_pkgcache()
* package cache \endlink will be invalidated
* @param handle the context handle
* @param dbs list of package databases to update
* @param force if true, then forces the update, otherwise update only in case
* the databases aren't up to date
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int alpm_db_update(alpm_handle_t *handle, alpm_list_t *dbs, int force);
/** Get a package entry from a package database.
* @param db pointer to the package database to get the package from
@@ -1042,9 +1104,12 @@ alpm_list_t *alpm_db_get_groupcache(alpm_db_t *db);
/** Searches a database with regular expressions.
* @param db pointer to the package database to search in
* @param needles a list of regular expressions to search for
* @return the list of packages matching all regular expressions on success, NULL on error
* @param ret pointer to list for storing packages matching all
* regular expressions - must point to an empty (NULL) alpm_list_t *.
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
alpm_list_t *alpm_db_search(alpm_db_t *db, const alpm_list_t *needles);
int alpm_db_search(alpm_db_t *db, const alpm_list_t *needles,
alpm_list_t **ret);
typedef enum _alpm_db_usage_t {
ALPM_DB_USAGE_SYNC = 1,
@@ -1111,7 +1176,20 @@ int alpm_pkg_free(alpm_pkg_t *pkg);
*/
int alpm_pkg_checkmd5sum(alpm_pkg_t *pkg);
/** Compare two version strings and determine which one is 'newer'. */
/** Compare two version strings and determine which one is 'newer'.
* Returns a value comparable to the way strcmp works. Returns 1
* if a is newer than b, 0 if a and b are the same version, or -1
* if b is newer than a.
*
* Different epoch values for version strings will override any further
* comparison. If no epoch is provided, 0 is assumed.
*
* Keep in mind that the pkgrel is only compared if it is available
* on both versions handed to this function. For example, comparing
* 1.5-1 and 1.5 will yield 0; comparing 1.5-1 and 1.5-2 will yield
* -1 as expected. This is mainly for supporting versioned dependencies
* that do not include the pkgrel.
*/
int alpm_pkg_vercmp(const char *a, const char *b);
/** Computes the list of packages requiring a given package.
@@ -1294,12 +1372,6 @@ alpm_list_t *alpm_pkg_get_conflicts(alpm_pkg_t *pkg);
*/
alpm_list_t *alpm_pkg_get_provides(alpm_pkg_t *pkg);
/** Returns the list of available deltas for pkg.
* @param pkg a pointer to package
* @return a reference to an internal list of strings.
*/
alpm_list_t *alpm_pkg_get_deltas(alpm_pkg_t *pkg);
/** Returns the list of packages to be replaced by pkg.
* @param pkg a pointer to package
* @return a reference to an internal list of alpm_depend_t structures.
@@ -1335,6 +1407,17 @@ alpm_db_t *alpm_pkg_get_db(alpm_pkg_t *pkg);
*/
const char *alpm_pkg_get_base64_sig(alpm_pkg_t *pkg);
/** Extracts package signature either from embedded package signature
* or if it is absent then reads data from detached signature file.
* @param pkg a pointer to package.
* @param sig output parameter for signature data. Callee function allocates
* a buffer needed for the signature data. Caller is responsible for
* freeing this buffer.
* @param sig_len output parameter for the signature data length.
* @return 0 on success, negative number on error.
*/
int alpm_pkg_get_sig(alpm_pkg_t *pkg, unsigned char **sig, size_t *sig_len);
/** Returns the method used to validate a package during install.
* @param pkg a pointer to package
* @return an enum member giving the validation method
@@ -1365,11 +1448,15 @@ void *alpm_pkg_changelog_open(alpm_pkg_t *pkg);
size_t alpm_pkg_changelog_read(void *ptr, size_t size,
const alpm_pkg_t *pkg, void *fp);
/** Close a package changelog for reading.
* @param pkg the package to close the changelog of (either file or db)
* @return 0 on success, -1 on error
*/
int alpm_pkg_changelog_close(const alpm_pkg_t *pkg, void *fp);
/** Open a package mtree file for reading.
* @param pkg the local package to read the changelog of
* @return a archive structure for the package mtree file
* @param pkg the local package to read the mtree of
* @return an archive structure for the package mtree file
*/
struct archive *alpm_pkg_mtree_open(alpm_pkg_t *pkg);
@@ -1377,11 +1464,15 @@ struct archive *alpm_pkg_mtree_open(alpm_pkg_t *pkg);
* @param pkg the package that the mtree file is being read from
* @param archive the archive structure reading from the mtree file
* @param entry an archive_entry to store the entry header information
* @return 0 if end of archive is reached, non-zero otherwise.
* @return 0 on success, 1 if end of archive is reached, -1 otherwise.
*/
int alpm_pkg_mtree_next(const alpm_pkg_t *pkg, struct archive *archive,
struct archive_entry **entry);
/** Close a package mtree file.
* @param pkg the local package to close the mtree of
* @param the archive to close
*/
int alpm_pkg_mtree_close(const alpm_pkg_t *pkg, struct archive *archive);
/** Returns whether the package has an install scriptlet.
@@ -1389,16 +1480,13 @@ int alpm_pkg_mtree_close(const alpm_pkg_t *pkg, struct archive *archive);
*/
int alpm_pkg_has_scriptlet(alpm_pkg_t *pkg);
/** Returns the size of download.
* Returns the size of the files that will be downloaded to install a
/** Returns the size of the files that will be downloaded to install a
* package.
* @param newpkg the new package to upgrade to
* @return the size of the download
*/
off_t alpm_pkg_download_size(alpm_pkg_t *newpkg);
alpm_list_t *alpm_pkg_unused_deltas(alpm_pkg_t *pkg);
/** Set install reason for a package in the local database.
* The provided package object must be from the local database or this method
* will fail. The write to the local database is performed immediately.
@@ -1430,15 +1518,48 @@ alpm_file_t *alpm_filelist_contains(alpm_filelist_t *filelist, const char *path)
* Signatures
*/
/**
* Check the PGP signature for the given package file.
* @param pkg the package to check
* @param siglist a pointer to storage for signature results
* @return a int value : 0 (valid), 1 (invalid), -1 (an error occurred)
*/
int alpm_pkg_check_pgp_signature(alpm_pkg_t *pkg, alpm_siglist_t *siglist);
/**
* Check the PGP signature for the given database.
* @param db the database to check
* @param siglist a pointer to storage for signature results
* @return a int value : 0 (valid), 1 (invalid), -1 (an error occurred)
*/
int alpm_db_check_pgp_signature(alpm_db_t *db, alpm_siglist_t *siglist);
/**
* Clean up and free a signature result list.
* Note that this does not free the siglist object itself in case that
* was allocated on the stack; this is the responsibility of the caller.
* @param siglist a pointer to storage for signature results
* @return 0 on success, -1 on error
*/
int alpm_siglist_cleanup(alpm_siglist_t *siglist);
/**
* Decode a loaded signature in base64 form.
* @param base64_data the signature to attempt to decode
* @param data the decoded data; must be freed by the caller
* @param data_len the length of the returned data
* @return 0 on success, -1 on failure to properly decode
*/
int alpm_decode_signature(const char *base64_data,
unsigned char **data, size_t *data_len);
/**
* Extract the Issuer Key ID from a signature
* @param sig PGP signature
* @param len length of signature
* @param keys a pointer to storage for key IDs
* @return 0 on success, -1 on error
*/
int alpm_extract_keyid(alpm_handle_t *handle, const char *identifier,
const unsigned char *sig, const size_t len, alpm_list_t **keys);
@@ -1446,12 +1567,22 @@ int alpm_extract_keyid(alpm_handle_t *handle, const char *identifier,
* Groups
*/
/** Find group members across a list of databases.
* If a member exists in several databases, only the first database is used.
* IgnorePkg is also handled.
* @param dbs the list of alpm_db_t *
* @param name the name of the group
* @return the list of alpm_pkg_t * (caller is responsible for alpm_list_free)
*/
alpm_list_t *alpm_find_group_pkgs(alpm_list_t *dbs, const char *name);
/*
* Sync
*/
/** Check for new version of pkg in sync repos
* (only the first occurrence is considered in sync)
*/
alpm_pkg_t *alpm_sync_get_new_version(alpm_pkg_t *pkg, alpm_list_t *dbs_sync);
/** @addtogroup alpm_api_trans Transaction Functions
@@ -1584,12 +1715,49 @@ int alpm_remove_pkg(alpm_handle_t *handle, alpm_pkg_t *pkg);
* @{
*/
/** Checks dependencies and returns missing ones in a list.
* Dependencies can include versions with depmod operators.
* @param handle the context handle
* @param pkglist the list of local packages
* @param remove an alpm_list_t* of packages to be removed
* @param upgrade an alpm_list_t* of packages to be upgraded (remove-then-upgrade)
* @param reversedeps handles the backward dependencies
* @return an alpm_list_t* of alpm_depmissing_t pointers.
*/
alpm_list_t *alpm_checkdeps(alpm_handle_t *handle, alpm_list_t *pkglist,
alpm_list_t *remove, alpm_list_t *upgrade, int reversedeps);
/** Find a package satisfying a specified dependency.
* The dependency can include versions with depmod operators.
* @param pkgs an alpm_list_t* of alpm_pkg_t where the satisfier will be searched
* @param depstring package or provision name, versioned or not
* @return a alpm_pkg_t* satisfying depstring
*/
alpm_pkg_t *alpm_find_satisfier(alpm_list_t *pkgs, const char *depstring);
/** Find a package satisfying a specified dependency.
* First look for a literal, going through each db one by one. Then look for
* providers. The first satisfier that belongs to an installed package is
* returned. If no providers belong to an installed package then an
* alpm_question_select_provider_t is created to select the provider.
* The dependency can include versions with depmod operators.
*
* @param handle the context handle
* @param dbs an alpm_list_t* of alpm_db_t where the satisfier will be searched
* @param depstring package or provision name, versioned or not
* @return a alpm_pkg_t* satisfying depstring
*/
alpm_pkg_t *alpm_find_dbs_satisfier(alpm_handle_t *handle,
alpm_list_t *dbs, const char *depstring);
/**
* @brief Check the package conflicts in a database
*
* @param handle the context handle
* @param pkglist the list of packages to check
*
* @return an alpm_list_t of alpm_conflict_t
*/
alpm_list_t *alpm_checkconflicts(alpm_handle_t *handle, alpm_list_t *pkglist);
/** Returns a newly allocated string representing the dependency information.
@@ -1618,12 +1786,60 @@ void alpm_dep_free(alpm_depend_t *dep);
*/
/* checksums */
/** \addtogroup alpm_misc Miscellaneous Functions
* @brief Various libalpm functions
* @{
*/
/** Get the md5 sum of file.
* @param filename name of the file
* @return the checksum on success, NULL on error
*/
char *alpm_compute_md5sum(const char *filename);
/** Get the sha256 sum of file.
* @param filename name of the file
* @return the checksum on success, NULL on error
*/
char *alpm_compute_sha256sum(const char *filename);
/** @} */
/** \addtogroup alpm_interface Interface Functions
* @brief Functions to initialize and release libalpm
* @{
*/
/** Initializes the library.
* Creates handle, connects to database and creates lockfile.
* This must be called before any other functions are called.
* @param root the root path for all filesystem operations
* @param dbpath the absolute path to the libalpm database
* @param err an optional variable to hold any error return codes
* @return a context handle on success, NULL on error, err will be set if provided
*/
alpm_handle_t *alpm_initialize(const char *root, const char *dbpath,
alpm_errno_t *err);
/** Release the library.
* Disconnects from the database, removes handle and lockfile
* This should be the last alpm call you make.
* After this returns, handle should be considered invalid and cannot be reused
* in any way.
* @param myhandle the context handle
* @return 0 on success, -1 on error
*/
int alpm_release(alpm_handle_t *handle);
/** @} */
/** Remove the database lock file
* @param handle the context handle
* @return 0 on success, -1 on error
*
* @note Safe to call from inside signal handlers.
*/
int alpm_unlock(alpm_handle_t *handle);
enum alpm_caps {
@@ -1632,12 +1848,27 @@ enum alpm_caps {
ALPM_CAPABILITY_SIGNATURES = (1 << 2)
};
/** Get the version of library.
* @return the library version, e.g. "6.0.4"
* */
const char *alpm_version(void);
/* Return a bitfield of capabilities using values from 'enum alpm_caps' */
/** Get the capabilities of the library.
* @return a bitmask of the capabilities
* */
int alpm_capabilities(void);
/**
* Free a fileconflict and its members.
* @param conflict the fileconflict to free
*/
void alpm_fileconflict_free(alpm_fileconflict_t *conflict);
void alpm_depmissing_free(alpm_depmissing_t *miss);
/**
* Free a conflict and its members.
* @param conflict the conflict to free
*/
void alpm_conflict_free(alpm_conflict_t *conflict);
/* End of alpm_api */

View File

@@ -1,7 +1,7 @@
/*
* alpm_list.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* alpm_list.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* backup.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2005 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>

View File

@@ -1,7 +1,7 @@
/*
* backup.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* be_local.c : backend for the local database
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -256,8 +256,7 @@ static struct archive *_cache_mtree_open(alpm_pkg_t *pkg)
}
if((mtree = archive_read_new()) == NULL) {
pkg->handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(pkg->handle, ALPM_ERR_LIBARCHIVE, error);
}
_alpm_archive_read_support_filter_all(mtree);
@@ -266,9 +265,8 @@ static struct archive *_cache_mtree_open(alpm_pkg_t *pkg)
if((r = _alpm_archive_read_open_file(mtree, mtfile, ALPM_BUFFER_SIZE))) {
_alpm_log(pkg->handle, ALPM_LOG_ERROR, _("error while reading file %s: %s\n"),
mtfile, archive_error_string(mtree));
pkg->handle->pm_errno = ALPM_ERR_LIBARCHIVE;
_alpm_archive_read_free(mtree);
goto error;
GOTO_ERR(pkg->handle, ALPM_ERR_LIBARCHIVE, error);
}
free(mtfile);
@@ -284,12 +282,26 @@ error:
* @param pkg the package that the mtree file is being read from
* @param archive the archive structure reading from the mtree file
* @param entry an archive_entry to store the entry header information
* @return 0 if end of archive is reached, non-zero otherwise.
* @return 0 on success, 1 if end of archive is reached, -1 otherwise.
*/
static int _cache_mtree_next(const alpm_pkg_t UNUSED *pkg,
struct archive *mtree, struct archive_entry **entry)
{
return archive_read_next_header(mtree, entry);
int ret;
ret = archive_read_next_header(mtree, entry);
switch(ret) {
case ARCHIVE_OK:
return 0;
break;
case ARCHIVE_EOF:
return 1;
break;
default:
break;
}
return -1;
}
/**
@@ -680,7 +692,7 @@ char *_alpm_local_db_pkgpath(alpm_db_t *db, alpm_pkg_t *info,
static int local_db_read(alpm_pkg_t *info, int inforeq)
{
FILE *fp = NULL;
char line[1024];
char line[1024] = {0};
alpm_db_t *db = info->origin_data.db;
/* bitmask logic here:
@@ -703,9 +715,6 @@ static int local_db_read(alpm_pkg_t *info, int inforeq)
"loading package data for %s : level=0x%x\n",
info->name, inforeq);
/* clear out 'line', to be certain - and to make valgrind happy */
memset(line, 0, sizeof(line));
/* DESC */
if(inforeq & INFRQ_DESC && !(info->infolevel & INFRQ_DESC)) {
char *path = _alpm_local_db_pkgpath(db, info, "desc");
@@ -832,12 +841,7 @@ static int local_db_read(alpm_pkg_t *info, int inforeq)
}
/* attempt to hand back any memory we don't need */
if(files_count > 0) {
alpm_file_t *newfiles;
newfiles = realloc(files, sizeof(alpm_file_t) * files_count);
if(newfiles != NULL) {
files = newfiles;
}
REALLOC(files, sizeof(alpm_file_t) * files_count, (void)0);
} else {
FREE(files);
}

View File

@@ -1,7 +1,7 @@
/*
* be_package.c : backend for packages
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -164,9 +164,8 @@ static int parse_descfile(alpm_handle_t *handle, struct archive *a, alpm_pkg_t *
char *ptr = NULL;
char *key = NULL;
int ret, linenum = 0;
struct archive_read_buffer buf;
struct archive_read_buffer buf = {0};
memset(&buf, 0, sizeof(buf));
/* 512K for a line length seems reasonable */
buf.max_line_size = 512 * 1024;
@@ -202,11 +201,15 @@ static int parse_descfile(alpm_handle_t *handle, struct archive *a, alpm_pkg_t *
} else if(strcmp(key, "pkgdesc") == 0) {
STRDUP(newpkg->desc, ptr, return -1);
} else if(strcmp(key, "group") == 0) {
newpkg->groups = alpm_list_add(newpkg->groups, strdup(ptr));
char *tmp = NULL;
STRDUP(tmp, ptr, return -1);
newpkg->groups = alpm_list_add(newpkg->groups, tmp);
} else if(strcmp(key, "url") == 0) {
STRDUP(newpkg->url, ptr, return -1);
} else if(strcmp(key, "license") == 0) {
newpkg->licenses = alpm_list_add(newpkg->licenses, strdup(ptr));
char *tmp = NULL;
STRDUP(tmp, ptr, return -1);
newpkg->licenses = alpm_list_add(newpkg->licenses, tmp);
} else if(strcmp(key, "builddate") == 0) {
newpkg->builddate = _alpm_parsedate(ptr);
} else if(strcmp(key, "packager") == 0) {
@@ -308,7 +311,7 @@ int _alpm_pkg_validate_internal(alpm_handle_t *handle,
}
}
if(syncpkg && !has_sig) {
if(syncpkg && (!has_sig || !syncpkg->base64_sig)) {
if(syncpkg->md5sum && !syncpkg->sha256sum) {
_alpm_log(handle, ALPM_LOG_DEBUG, "md5sum: %s\n", syncpkg->md5sum);
_alpm_log(handle, ALPM_LOG_DEBUG, "checking md5sum for %s\n", pkgfile);
@@ -448,18 +451,15 @@ static int build_filelist_from_mtree(alpm_handle_t *handle, alpm_pkg_t *pkg, str
char *mtree_data = NULL;
struct archive *mtree;
struct archive_entry *mtree_entry = NULL;
alpm_filelist_t filelist;
alpm_filelist_t filelist = {0};
_alpm_log(handle, ALPM_LOG_DEBUG,
"found mtree for package %s, getting file list\n", pkg->filename);
memset(&filelist, 0, sizeof(alpm_filelist_t));
/* create a new archive to parse the mtree and load it from archive into memory */
/* TODO: split this into a function */
if((mtree = archive_read_new()) == NULL) {
handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(handle, ALPM_ERR_LIBARCHIVE, error);
}
_alpm_archive_read_support_filter_all(mtree);
@@ -478,8 +478,7 @@ static int build_filelist_from_mtree(alpm_handle_t *handle, alpm_pkg_t *pkg, str
if(size < 0) {
_alpm_log(handle, ALPM_LOG_DEBUG, _("error while reading package %s: %s\n"),
pkg->filename, archive_error_string(archive));
handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(handle, ALPM_ERR_LIBARCHIVE, error);
}
if(size == 0) {
break;
@@ -492,8 +491,7 @@ static int build_filelist_from_mtree(alpm_handle_t *handle, alpm_pkg_t *pkg, str
_alpm_log(handle, ALPM_LOG_DEBUG,
_("error while reading mtree of package %s: %s\n"),
pkg->filename, archive_error_string(mtree));
handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(handle, ALPM_ERR_LIBARCHIVE, error);
}
while((ret = archive_read_next_header(mtree, &mtree_entry)) == ARCHIVE_OK) {
@@ -516,8 +514,7 @@ static int build_filelist_from_mtree(alpm_handle_t *handle, alpm_pkg_t *pkg, str
if(ret != ARCHIVE_EOF && ret != ARCHIVE_OK) { /* An error occurred */
_alpm_log(handle, ALPM_LOG_DEBUG, _("error while reading mtree of package %s: %s\n"),
pkg->filename, archive_error_string(mtree));
handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(handle, ALPM_ERR_LIBARCHIVE, error);
}
/* throw away any files we loaded directly from the archive */
@@ -582,11 +579,9 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
newpkg = _alpm_pkg_new();
if(newpkg == NULL) {
handle->pm_errno = ALPM_ERR_MEMORY;
goto error;
GOTO_ERR(handle, ALPM_ERR_MEMORY, error);
}
STRDUP(newpkg->filename, pkgfile,
handle->pm_errno = ALPM_ERR_MEMORY; goto error);
STRDUP(newpkg->filename, pkgfile, GOTO_ERR(handle, ALPM_ERR_MEMORY, error));
newpkg->size = st.st_size;
_alpm_log(handle, ALPM_LOG_DEBUG, "starting package load for %s\n", pkgfile);
@@ -636,8 +631,7 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
if(archive_read_data_skip(archive)) {
_alpm_log(handle, ALPM_LOG_ERROR, _("error while reading package %s: %s\n"),
pkgfile, archive_error_string(archive));
handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(handle, ALPM_ERR_LIBARCHIVE, error);
}
/* if we are not doing a full read, see if we have all we need */
@@ -649,8 +643,7 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
if(ret != ARCHIVE_EOF && ret != ARCHIVE_OK) { /* An error occurred */
_alpm_log(handle, ALPM_LOG_ERROR, _("error while reading package %s: %s\n"),
pkgfile, archive_error_string(archive));
handle->pm_errno = ALPM_ERR_LIBARCHIVE;
goto error;
GOTO_ERR(handle, ALPM_ERR_LIBARCHIVE, error);
}
if(!config) {
@@ -663,7 +656,7 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
/* internal fields for package struct */
newpkg->origin = ALPM_PKG_FROM_FILE;
newpkg->origin_data.file = strdup(pkgfile);
STRDUP(newpkg->origin_data.file, pkgfile, goto error);
newpkg->ops = get_file_pkg_ops();
newpkg->handle = handle;
newpkg->infolevel = INFRQ_BASE | INFRQ_DESC | INFRQ_SCRIPTLET;
@@ -672,8 +665,7 @@ alpm_pkg_t *_alpm_pkg_load_internal(alpm_handle_t *handle,
if(full) {
if(newpkg->files.files) {
/* attempt to hand back any memory we don't need */
newpkg->files.files = realloc(newpkg->files.files,
sizeof(alpm_file_t) * newpkg->files.count);
REALLOC(newpkg->files.files, sizeof(alpm_file_t) * newpkg->files.count, (void)0);
/* "checking for conflicts" requires a sorted list, ensure that here */
_alpm_log(handle, ALPM_LOG_DEBUG,
"sorting package filelist for %s\n", pkgfile);
@@ -731,6 +723,8 @@ int SYMEXPORT alpm_pkg_load(alpm_handle_t *handle, const char *filename, int ful
{
int validation = 0;
char *sigpath;
alpm_pkg_t *pkg_temp;
char *packager;
CHECK_HANDLE(handle, return -1);
ASSERT(pkg != NULL, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1));
@@ -755,9 +749,17 @@ int SYMEXPORT alpm_pkg_load(alpm_handle_t *handle, const char *filename, int ful
for(k = keys; k; k = k->next) {
char *key = k->data;
if(_alpm_key_in_keychain(handle, key) == 0) {
if(_alpm_key_import(handle, key) == -1) {
pkg_temp = _alpm_pkg_load_internal(handle, filename, full);
if(pkg_temp) {
packager = pkg_temp->packager;
} else {
packager = NULL;
}
if(_alpm_key_import(handle, packager, key) == -1) {
fail = 1;
}
_alpm_pkg_free(pkg_temp);
}
}
FREELIST(keys);

View File

@@ -1,7 +1,7 @@
/*
* be_sync.c : backend for sync databases
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -37,7 +37,6 @@
#include "alpm_list.h"
#include "package.h"
#include "handle.h"
#include "delta.h"
#include "deps.h"
#include "dload.h"
#include "filelist.h"
@@ -137,178 +136,86 @@ valid:
return 0;
}
/** Update a package database
*
* An update of the package database \a db will be attempted. Unless
* \a force is true, the update will only be performed if the remote
* database was modified since the last update.
*
* This operation requires a database lock, and will return an applicable error
* if the lock could not be obtained.
*
* Example:
* @code
* alpm_list_t *syncs = alpm_get_syncdbs();
* for(i = syncs; i; i = alpm_list_next(i)) {
* alpm_db_t *db = alpm_list_getdata(i);
* result = alpm_db_update(0, db);
*
* if(result < 0) {
* printf("Unable to update database: %s\n", alpm_strerrorlast());
* } else if(result == 1) {
* printf("Database already up to date\n");
* } else {
* printf("Database updated\n");
* }
* }
* @endcode
*
* @ingroup alpm_databases
* @note After a successful update, the \link alpm_db_get_pkgcache()
* package cache \endlink will be invalidated
* @param force if true, then forces the update, otherwise update only in case
* the database isn't up to date
* @param db pointer to the package database to update
* @return 0 on success, -1 on error (pm_errno is set accordingly), 1 if up to
* to date
*/
int SYMEXPORT alpm_db_update(int force, alpm_db_t *db)
{
int SYMEXPORT alpm_db_update(alpm_handle_t *handle, alpm_list_t *dbs, int force) {
char *syncpath;
const char *dbext;
const char *dbext = handle->dbext;
alpm_list_t *i;
int updated = 0;
int ret = -1;
mode_t oldmask;
alpm_handle_t *handle;
int siglevel;
alpm_list_t *payloads = NULL;
alpm_event_t event;
/* Sanity checks */
ASSERT(db != NULL, return -1);
handle = db->handle;
CHECK_HANDLE(handle, return -1);
ASSERT(dbs != NULL, return -1);
handle->pm_errno = ALPM_ERR_OK;
ASSERT(db != handle->db_local, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1));
ASSERT(db->servers != NULL, RET_ERR(handle, ALPM_ERR_SERVER_NONE, -1));
if(!(db->usage & ALPM_DB_USAGE_SYNC)) {
return 0;
}
syncpath = get_sync_dir(handle);
if(!syncpath) {
return -1;
}
/* force update of invalid databases to fix potential mismatched database/signature */
if(db->status & DB_STATUS_INVALID) {
force = 1;
}
ASSERT(syncpath != NULL, return -1);
/* make sure we have a sane umask */
oldmask = umask(0022);
siglevel = alpm_db_get_siglevel(db);
/* attempt to grab a lock */
if(_alpm_handle_lock(handle)) {
free(syncpath);
umask(oldmask);
RET_ERR(handle, ALPM_ERR_HANDLE_LOCK, -1);
GOTO_ERR(handle, ALPM_ERR_HANDLE_LOCK, cleanup);
}
dbext = db->handle->dbext;
for(i = db->servers; i; i = i->next) {
const char *server = i->data, *final_db_url = NULL;
struct dload_payload payload;
for(i = dbs; i; i = i->next) {
alpm_db_t *db = i->data;
int dbforce = force;
struct dload_payload *payload = NULL;
size_t len;
int sig_ret = 0;
int siglevel;
memset(&payload, 0, sizeof(struct dload_payload));
if(!(db->usage & ALPM_DB_USAGE_SYNC)) {
continue;
}
/* set hard upper limit of 25MiB */
payload.max_size = 25 * 1024 * 1024;
ASSERT(db != handle->db_local, GOTO_ERR(handle, ALPM_ERR_WRONG_ARGS, cleanup));
ASSERT(db->servers != NULL, GOTO_ERR(handle, ALPM_ERR_SERVER_NONE, cleanup));
/* force update of invalid databases to fix potential mismatched database/signature */
if(db->status & DB_STATUS_INVALID) {
dbforce = 1;
}
siglevel = alpm_db_get_siglevel(db);
CALLOC(payload, 1, sizeof(*payload), GOTO_ERR(handle, ALPM_ERR_MEMORY, cleanup));
payload->servers = db->servers;
/* print server + filename into a buffer */
len = strlen(server) + strlen(db->treename) + strlen(dbext) + 2;
MALLOC(payload.fileurl, len,
{
free(syncpath);
umask(oldmask);
RET_ERR(handle, ALPM_ERR_MEMORY, -1);
}
);
snprintf(payload.fileurl, len, "%s/%s%s", server, db->treename, dbext);
payload.handle = handle;
payload.force = force;
payload.unlink_on_fail = 1;
ret = _alpm_download(&payload, syncpath, NULL, &final_db_url);
_alpm_dload_payload_reset(&payload);
updated = (updated || ret == 0);
if(ret != -1 && updated && (siglevel & ALPM_SIG_DATABASE)) {
/* an existing sig file is no good at this point */
char *sigpath = _alpm_sigpath(handle, _alpm_db_path(db));
if(!sigpath) {
ret = -1;
break;
}
unlink(sigpath);
free(sigpath);
/* check if the final URL from internal downloader looks reasonable */
if(final_db_url != NULL) {
if(strlen(final_db_url) < 3
|| strcmp(final_db_url + strlen(final_db_url) - strlen(dbext),
dbext) != 0) {
final_db_url = NULL;
}
}
/* if we downloaded a DB, we want the .sig from the same server */
if(final_db_url != NULL) {
/* print final_db_url into a buffer (leave space for .sig) */
len = strlen(final_db_url) + 5;
} else {
/* print server + filename into a buffer (leave space for separator and .sig) */
len = strlen(server) + strlen(db->treename) + strlen(dbext) + 6;
}
MALLOC(payload.fileurl, len,
{
free(syncpath);
umask(oldmask);
RET_ERR(handle, ALPM_ERR_MEMORY, -1);
}
);
if(final_db_url != NULL) {
snprintf(payload.fileurl, len, "%s.sig", final_db_url);
} else {
snprintf(payload.fileurl, len, "%s/%s%s.sig", server, db->treename, dbext);
}
payload.handle = handle;
payload.force = 1;
payload.errors_ok = (siglevel & ALPM_SIG_DATABASE_OPTIONAL);
/* set hard upper limit of 16KiB */
payload.max_size = 16 * 1024;
sig_ret = _alpm_download(&payload, syncpath, NULL, NULL);
/* errors_ok suppresses error messages, but not the return code */
sig_ret = payload.errors_ok ? 0 : sig_ret;
_alpm_dload_payload_reset(&payload);
}
if(ret != -1 && sig_ret != -1) {
break;
}
len = strlen(db->treename) + strlen(dbext) + 1;
MALLOC(payload->filepath, len,
FREE(payload); GOTO_ERR(handle, ALPM_ERR_MEMORY, cleanup));
snprintf(payload->filepath, len, "%s%s", db->treename, dbext);
payload->handle = handle;
payload->force = dbforce;
payload->unlink_on_fail = 1;
payload->download_signature = (siglevel & ALPM_SIG_DATABASE);
payload->signature_optional = (siglevel & ALPM_SIG_DATABASE_OPTIONAL);
/* set hard upper limit of 128 MiB */
payload->max_size = 128 * 1024 * 1024;
payloads = alpm_list_add(payloads, payload);
}
if(updated) {
event.type = ALPM_EVENT_DB_RETRIEVE_START;
EVENT(handle, &event);
ret = _alpm_download(handle, payloads, syncpath);
if(ret < 0) {
event.type = ALPM_EVENT_DB_RETRIEVE_FAILED;
EVENT(handle, &event);
goto cleanup;
}
event.type = ALPM_EVENT_DB_RETRIEVE_DONE;
EVENT(handle, &event);
for(i = dbs; i; i = i->next) {
alpm_db_t *db = i->data;
if(!(db->usage & ALPM_DB_USAGE_SYNC)) {
continue;
}
/* Cache needs to be rebuilt */
_alpm_db_free_pkgcache(db);
@@ -319,21 +226,29 @@ int SYMEXPORT alpm_db_update(int force, alpm_db_t *db)
db->status &= ~DB_STATUS_MISSING;
/* if the download failed skip validation to preserve the download error */
if(ret != -1 && sync_db_validate(db) != 0) {
if(sync_db_validate(db) != 0) {
_alpm_log(handle, ALPM_LOG_DEBUG, "failed to validate db: %s\n",
db->treename);
/* pm_errno should be set */
ret = -1;
}
}
cleanup:
_alpm_handle_unlock(handle);
if(ret == -1) {
/* pm_errno was set by the download code */
_alpm_log(handle, ALPM_LOG_DEBUG, "failed to sync db: %s\n",
_alpm_log(handle, ALPM_LOG_DEBUG, "failed to sync dbs: %s\n",
alpm_strerror(handle->pm_errno));
} else {
handle->pm_errno = ALPM_ERR_OK;
}
_alpm_handle_unlock(handle);
if(payloads) {
alpm_list_free_inner(payloads, (alpm_list_fn_free)_alpm_dload_payload_reset);
FREELIST(payloads);
}
free(syncpath);
umask(oldmask);
return ret;
@@ -427,9 +342,8 @@ static alpm_pkg_t *load_pkg_for_entry(alpm_db_t *db, const char *entryname,
/* This function doesn't work as well as one might think, as size of database
* entries varies considerably. Adding signatures nearly doubles the size of a
* single entry; deltas also can make for large variations in size. These
* current values are heavily influenced by Arch Linux; databases with no
* deltas and a single signature per package. */
* single entry. These current values are heavily influenced by Arch Linux;
* databases with a single signature per package. */
static size_t estimate_package_count(struct stat *st, struct archive *archive)
{
int per_package;
@@ -503,15 +417,14 @@ static int sync_db_populate(alpm_db_t *db)
db->pkgcache = _alpm_pkghash_create(est_count);
if(db->pkgcache == NULL) {
db->handle->pm_errno = ALPM_ERR_MEMORY;
ret = -1;
goto cleanup;
GOTO_ERR(db->handle, ALPM_ERR_MEMORY, cleanup);
}
while((archive_ret = archive_read_next_header(archive, &entry)) == ARCHIVE_OK) {
mode_t mode = archive_entry_mode(entry);
if(!S_ISDIR(mode)) {
/* we have desc, depends or deltas - parse it */
/* we have desc or depends - parse it */
if(sync_db_read(db, archive, entry, &pkg) != 0) {
_alpm_log(db->handle, ALPM_LOG_ERROR,
_("could not parse package description file '%s' from db '%s'\n"),
@@ -524,9 +437,8 @@ static int sync_db_populate(alpm_db_t *db)
_alpm_log(db->handle, ALPM_LOG_ERROR, _("could not read db '%s' (%s)\n"),
db->treename, archive_error_string(archive));
_alpm_db_free_pkgcache(db);
db->handle->pm_errno = ALPM_ERR_LIBARCHIVE;
ret = -1;
goto cleanup;
GOTO_ERR(db->handle, ALPM_ERR_LIBARCHIVE, cleanup);
}
count = alpm_list_count(db->pkgcache->list);
@@ -603,7 +515,7 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
{
const char *entryname, *filename;
alpm_pkg_t *pkg;
struct archive_read_buffer buf;
struct archive_read_buffer buf = {0};
entryname = archive_entry_pathname(entry);
if(entryname == NULL) {
@@ -615,7 +527,6 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
_alpm_log(db->handle, ALPM_LOG_FUNCTION, "loading package data from archive entry %s\n",
entryname);
memset(&buf, 0, sizeof(buf));
/* 512K for a line length seems reasonable */
buf.max_line_size = 512 * 1024;
@@ -637,8 +548,7 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
}
if(strcmp(filename, "desc") == 0 || strcmp(filename, "depends") == 0
|| strcmp(filename, "files") == 0
|| (strcmp(filename, "deltas") == 0 && db->handle->deltaratio > 0.0) ) {
|| strcmp(filename, "files") == 0) {
int ret;
while((ret = _alpm_archive_fgets(archive, &buf)) == ARCHIVE_OK) {
char *line = buf.line;
@@ -707,14 +617,6 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
READ_AND_SPLITDEP(pkg->conflicts);
} else if(strcmp(line, "%PROVIDES%") == 0) {
READ_AND_SPLITDEP(pkg->provides);
} else if(strcmp(line, "%DELTAS%") == 0) {
/* Different than the rest because of the _alpm_delta_parse call. */
while(1) {
READ_NEXT();
if(strlen(line) == 0) break;
pkg->deltas = alpm_list_add(pkg->deltas,
_alpm_delta_parse(db->handle, line));
}
} else if(strcmp(line, "%FILES%") == 0) {
/* TODO: this could lazy load if there is future demand */
size_t files_count = 0, files_size = 0;
@@ -738,7 +640,7 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
}
/* attempt to hand back any memory we don't need */
if(files_count > 0) {
files = realloc(files, sizeof(alpm_file_t) * files_count);
REALLOC(files, sizeof(alpm_file_t) * files_count, (void)0);
} else {
FREE(files);
}
@@ -751,8 +653,6 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
goto error;
}
*likely_pkg = pkg;
} else if(strcmp(filename, "deltas") == 0) {
/* skip reading delta files if UseDelta is unset */
} else {
/* unknown database file */
_alpm_log(db->handle, ALPM_LOG_DEBUG, "unknown database file: %s\n", filename);

View File

@@ -1,7 +1,7 @@
/*
* conflict.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org>
@@ -63,9 +63,6 @@ error:
return NULL;
}
/**
* @brief Free a conflict and its members.
*/
void SYMEXPORT alpm_conflict_free(alpm_conflict_t *conflict)
{
ASSERT(conflict != NULL, return);
@@ -243,14 +240,6 @@ alpm_list_t *_alpm_outerconflicts(alpm_db_t *db, alpm_list_t *packages)
return baddeps;
}
/**
* @brief Check the package conflicts in a database
*
* @param handle the context handle
* @param pkglist the list of packages to check
*
* @return an alpm_list_t of alpm_conflict_t
*/
alpm_list_t SYMEXPORT *alpm_checkconflicts(alpm_handle_t *handle,
alpm_list_t *pkglist)
{
@@ -300,9 +289,6 @@ error:
RET_ERR(handle, ALPM_ERR_MEMORY, conflicts);
}
/**
* @brief Frees a conflict and its members.
*/
void SYMEXPORT alpm_fileconflict_free(alpm_fileconflict_t *conflict)
{
ASSERT(conflict != NULL, return);

View File

@@ -1,7 +1,7 @@
/*
* conflict.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* db.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
@@ -37,12 +37,6 @@
#include "package.h"
#include "group.h"
/** \addtogroup alpm_databases Database Functions
* @brief Functions to query and manipulate the database of libalpm
* @{
*/
/** Register a sync database of packages. */
alpm_db_t SYMEXPORT *alpm_register_syncdb(alpm_handle_t *handle,
const char *treename, int siglevel)
{
@@ -81,7 +75,6 @@ void _alpm_db_unregister(alpm_db_t *db)
_alpm_db_free(db);
}
/** Unregister all package databases. */
int SYMEXPORT alpm_unregister_all_syncdbs(alpm_handle_t *handle)
{
alpm_list_t *i;
@@ -102,7 +95,6 @@ int SYMEXPORT alpm_unregister_all_syncdbs(alpm_handle_t *handle)
return 0;
}
/** Unregister a package database. */
int SYMEXPORT alpm_db_unregister(alpm_db_t *db)
{
int found = 0;
@@ -139,14 +131,12 @@ int SYMEXPORT alpm_db_unregister(alpm_db_t *db)
return 0;
}
/** Get the serverlist of a database. */
alpm_list_t SYMEXPORT *alpm_db_get_servers(const alpm_db_t *db)
{
ASSERT(db != NULL, return NULL);
return db->servers;
}
/** Set the serverlist of a database. */
int SYMEXPORT alpm_db_set_servers(alpm_db_t *db, alpm_list_t *servers)
{
ASSERT(db != NULL, return -1);
@@ -168,11 +158,6 @@ static char *sanitize_url(const char *url)
return newurl;
}
/** Add a download server to a database.
* @param db database pointer
* @param url url of the server
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int SYMEXPORT alpm_db_add_server(alpm_db_t *db, const char *url)
{
char *newurl;
@@ -193,12 +178,6 @@ int SYMEXPORT alpm_db_add_server(alpm_db_t *db, const char *url)
return 0;
}
/** Remove a download server from a database.
* @param db database pointer
* @param url url of the server
* @return 0 on success, 1 on server not present,
* -1 on error (pm_errno is set accordingly)
*/
int SYMEXPORT alpm_db_remove_server(alpm_db_t *db, const char *url)
{
char *newurl, *vdata = NULL;
@@ -227,14 +206,12 @@ int SYMEXPORT alpm_db_remove_server(alpm_db_t *db, const char *url)
return ret;
}
/** Get the name of a package database. */
const char SYMEXPORT *alpm_db_get_name(const alpm_db_t *db)
{
ASSERT(db != NULL, return NULL);
return db->treename;
}
/** Get the signature verification level for a database. */
int SYMEXPORT alpm_db_get_siglevel(alpm_db_t *db)
{
ASSERT(db != NULL, return -1);
@@ -245,7 +222,6 @@ int SYMEXPORT alpm_db_get_siglevel(alpm_db_t *db)
}
}
/** Check the validity of a database. */
int SYMEXPORT alpm_db_get_valid(alpm_db_t *db)
{
ASSERT(db != NULL, return -1);
@@ -253,7 +229,6 @@ int SYMEXPORT alpm_db_get_valid(alpm_db_t *db)
return db->ops->validate(db);
}
/** Get a package entry from a package database. */
alpm_pkg_t SYMEXPORT *alpm_db_get_pkg(alpm_db_t *db, const char *name)
{
alpm_pkg_t *pkg;
@@ -269,7 +244,6 @@ alpm_pkg_t SYMEXPORT *alpm_db_get_pkg(alpm_db_t *db, const char *name)
return pkg;
}
/** Get the package cache of a package database. */
alpm_list_t SYMEXPORT *alpm_db_get_pkgcache(alpm_db_t *db)
{
ASSERT(db != NULL, return NULL);
@@ -277,7 +251,6 @@ alpm_list_t SYMEXPORT *alpm_db_get_pkgcache(alpm_db_t *db)
return _alpm_db_get_pkgcache(db);
}
/** Get a group entry from a package database. */
alpm_group_t SYMEXPORT *alpm_db_get_group(alpm_db_t *db, const char *name)
{
ASSERT(db != NULL, return NULL);
@@ -288,7 +261,6 @@ alpm_group_t SYMEXPORT *alpm_db_get_group(alpm_db_t *db, const char *name)
return _alpm_db_get_groupfromcache(db, name);
}
/** Get the group cache of a package database. */
alpm_list_t SYMEXPORT *alpm_db_get_groupcache(alpm_db_t *db)
{
ASSERT(db != NULL, return NULL);
@@ -297,16 +269,16 @@ alpm_list_t SYMEXPORT *alpm_db_get_groupcache(alpm_db_t *db)
return _alpm_db_get_groupcache(db);
}
/** Searches a database. */
alpm_list_t SYMEXPORT *alpm_db_search(alpm_db_t *db, const alpm_list_t *needles)
int SYMEXPORT alpm_db_search(alpm_db_t *db, const alpm_list_t *needles,
alpm_list_t **ret)
{
ASSERT(db != NULL, return NULL);
ASSERT(db != NULL && ret != NULL && *ret == NULL,
RET_ERR(db->handle, ALPM_ERR_WRONG_ARGS, -1));
db->handle->pm_errno = ALPM_ERR_OK;
return _alpm_db_search(db, needles);
return _alpm_db_search(db, needles, ret);
}
/** Sets the usage bitmask for a repo */
int SYMEXPORT alpm_db_set_usage(alpm_db_t *db, int usage)
{
ASSERT(db != NULL, return -1);
@@ -314,7 +286,6 @@ int SYMEXPORT alpm_db_set_usage(alpm_db_t *db, int usage)
return 0;
}
/** Gets the usage bitmask for a repo */
int SYMEXPORT alpm_db_get_usage(alpm_db_t *db, int *usage)
{
ASSERT(db != NULL, return -1);
@@ -323,9 +294,6 @@ int SYMEXPORT alpm_db_get_usage(alpm_db_t *db, int *usage)
return 0;
}
/** @} */
alpm_db_t *_alpm_db_new(const char *treename, int is_local)
{
alpm_db_t *db;
@@ -396,13 +364,13 @@ int _alpm_db_cmp(const void *d1, const void *d2)
return strcmp(db1->treename, db2->treename);
}
alpm_list_t *_alpm_db_search(alpm_db_t *db, const alpm_list_t *needles)
int _alpm_db_search(alpm_db_t *db, const alpm_list_t *needles,
alpm_list_t **ret)
{
const alpm_list_t *i, *j, *k;
alpm_list_t *ret = NULL;
if(!(db->usage & ALPM_DB_USAGE_SEARCH)) {
return NULL;
return 0;
}
/* copy the pkgcache- we will free the list var after each needle */
@@ -415,12 +383,15 @@ alpm_list_t *_alpm_db_search(alpm_db_t *db, const alpm_list_t *needles)
if(i->data == NULL) {
continue;
}
ret = NULL;
*ret = NULL;
targ = i->data;
_alpm_log(db->handle, ALPM_LOG_DEBUG, "searching for target '%s'\n", targ);
if(regcomp(&reg, targ, REG_EXTENDED | REG_NOSUB | REG_ICASE | REG_NEWLINE) != 0) {
RET_ERR(db->handle, ALPM_ERR_INVALID_REGEX, NULL);
db->handle->pm_errno = ALPM_ERR_INVALID_REGEX;
alpm_list_free(list);
alpm_list_free(*ret);
return -1;
}
for(j = list; j; j = j->next) {
@@ -463,18 +434,18 @@ alpm_list_t *_alpm_db_search(alpm_db_t *db, const alpm_list_t *needles)
_alpm_log(db->handle, ALPM_LOG_DEBUG,
"search target '%s' matched '%s' on package '%s'\n",
targ, matched, name);
ret = alpm_list_add(ret, pkg);
*ret = alpm_list_add(*ret, pkg);
}
}
/* Free the existing search list, and use the returned list for the
* next needle. This allows for AND-based package searching. */
alpm_list_free(list);
list = ret;
list = *ret;
regfree(&reg);
}
return ret;
return 0;
}
/* Returns a new package cache from db.

View File

@@ -1,7 +1,7 @@
/*
* db.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>
@@ -87,7 +87,8 @@ alpm_db_t *_alpm_db_new(const char *treename, int is_local);
void _alpm_db_free(alpm_db_t *db);
const char *_alpm_db_path(alpm_db_t *db);
int _alpm_db_cmp(const void *d1, const void *d2);
alpm_list_t *_alpm_db_search(alpm_db_t *db, const alpm_list_t *needles);
int _alpm_db_search(alpm_db_t *db, const alpm_list_t *needles,
alpm_list_t **ret);
alpm_db_t *_alpm_db_register_local(alpm_handle_t *handle);
alpm_db_t *_alpm_db_register_sync(alpm_handle_t *handle, const char *treename,
int level);

View File

@@ -1,361 +0,0 @@
/*
* delta.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2007-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stdlib.h>
#include <string.h>
#include <stdint.h> /* intmax_t */
#include <limits.h>
#include <sys/types.h>
#include <regex.h>
/* libalpm */
#include "delta.h"
#include "alpm_list.h"
#include "util.h"
#include "log.h"
#include "graph.h"
static alpm_list_t *graph_init(alpm_list_t *deltas, int reverse)
{
alpm_list_t *i, *j;
alpm_list_t *vertices = NULL;
/* create the vertices */
for(i = deltas; i; i = i->next) {
alpm_graph_t *v = _alpm_graph_new();
if(!v) {
alpm_list_free(vertices);
return NULL;
}
alpm_delta_t *vdelta = i->data;
vdelta->download_size = vdelta->delta_size;
v->weight = LONG_MAX;
v->data = vdelta;
vertices = alpm_list_add(vertices, v);
}
/* compute the edges */
for(i = vertices; i; i = i->next) {
alpm_graph_t *v_i = i->data;
alpm_delta_t *d_i = v_i->data;
/* loop a second time so we make all possible comparisons */
for(j = vertices; j; j = j->next) {
alpm_graph_t *v_j = j->data;
alpm_delta_t *d_j = v_j->data;
/* We want to create a delta tree like the following:
* 1_to_2
* |
* 1_to_3 2_to_3
* \ /
* 3_to_4
* If J 'from' is equal to I 'to', then J is a child of I.
* */
if((!reverse && strcmp(d_j->from, d_i->to) == 0) ||
(reverse && strcmp(d_j->to, d_i->from) == 0)) {
v_i->children = alpm_list_add(v_i->children, v_j);
}
}
v_i->iterator = v_i->children;
}
return vertices;
}
static void graph_init_size(alpm_handle_t *handle, alpm_list_t *vertices)
{
alpm_list_t *i;
for(i = vertices; i; i = i->next) {
char *fpath, *md5sum;
alpm_graph_t *v = i->data;
alpm_delta_t *vdelta = v->data;
/* determine whether the delta file already exists */
fpath = _alpm_filecache_find(handle, vdelta->delta);
if(fpath) {
md5sum = alpm_compute_md5sum(fpath);
if(md5sum && strcmp(md5sum, vdelta->delta_md5) == 0) {
vdelta->download_size = 0;
}
FREE(md5sum);
FREE(fpath);
} else {
char *fnamepart;
CALLOC(fnamepart, strlen(vdelta->delta) + 6, sizeof(char), return);
sprintf(fnamepart, "%s.part", vdelta->delta);
fpath = _alpm_filecache_find(handle, fnamepart);
if(fpath) {
struct stat st;
if(stat(fpath, &st) == 0) {
vdelta->download_size = vdelta->delta_size - st.st_size;
vdelta->download_size = vdelta->download_size < 0 ? 0 : vdelta->download_size;
}
FREE(fpath);
}
FREE(fnamepart);
}
/* determine whether a base 'from' file exists */
fpath = _alpm_filecache_find(handle, vdelta->from);
if(fpath) {
v->weight = vdelta->download_size;
}
FREE(fpath);
}
}
static void dijkstra(alpm_list_t *vertices)
{
alpm_list_t *i;
alpm_graph_t *v;
while(1) {
v = NULL;
/* find the smallest vertice not visited yet */
for(i = vertices; i; i = i->next) {
alpm_graph_t *v_i = i->data;
if(v_i->state == ALPM_GRAPH_STATE_PROCESSING) {
continue;
}
if(v == NULL || v_i->weight < v->weight) {
v = v_i;
}
}
if(v == NULL || v->weight == LONG_MAX) {
break;
}
v->state = ALPM_GRAPH_STATE_PROCESSING;
v->iterator = v->children;
while(v->iterator) {
alpm_graph_t *v_c = v->iterator->data;
alpm_delta_t *d_c = v_c->data;
if(v_c->weight > v->weight + d_c->download_size) {
v_c->weight = v->weight + d_c->download_size;
v_c->parent = v;
}
v->iterator = (v->iterator)->next;
}
}
}
static off_t shortest_path(alpm_list_t *vertices, const char *to, alpm_list_t **path)
{
alpm_list_t *i;
alpm_graph_t *v = NULL;
off_t bestsize = 0;
alpm_list_t *rpath = NULL;
for(i = vertices; i; i = i->next) {
alpm_graph_t *v_i = i->data;
alpm_delta_t *d_i = v_i->data;
if(strcmp(d_i->to, to) == 0) {
if(v == NULL || v_i->weight < v->weight) {
v = v_i;
bestsize = v->weight;
}
}
}
while(v != NULL) {
alpm_delta_t *vdelta = v->data;
rpath = alpm_list_add(rpath, vdelta);
v = v->parent;
}
*path = alpm_list_reverse(rpath);
alpm_list_free(rpath);
return bestsize;
}
/** Calculates the shortest path from one version to another.
* The shortest path is defined as the path with the smallest combined
* size, not the length of the path.
* @param handle the context handle
* @param deltas the list of alpm_delta_t * objects that a file has
* @param to the file to start the search at
* @param path the pointer to a list location where alpm_delta_t * objects that
* have the smallest size are placed. NULL is set if there is no path
* possible with the files available.
* @return the size of the path stored, or LONG_MAX if path is unfindable
*/
off_t _alpm_shortest_delta_path(alpm_handle_t *handle, alpm_list_t *deltas,
const char *to, alpm_list_t **path)
{
alpm_list_t *bestpath = NULL;
alpm_list_t *vertices;
off_t bestsize = LONG_MAX;
if(deltas == NULL) {
*path = NULL;
return bestsize;
}
_alpm_log(handle, ALPM_LOG_DEBUG, "started delta shortest-path search for '%s'\n", to);
vertices = graph_init(deltas, 0);
graph_init_size(handle, vertices);
dijkstra(vertices);
bestsize = shortest_path(vertices, to, &bestpath);
_alpm_log(handle, ALPM_LOG_DEBUG, "delta shortest-path search complete : '%jd'\n", (intmax_t)bestsize);
alpm_list_free_inner(vertices, _alpm_graph_free);
alpm_list_free(vertices);
*path = bestpath;
return bestsize;
}
static alpm_list_t *find_unused(alpm_list_t *deltas, const char *to, off_t quota)
{
alpm_list_t *unused = NULL;
alpm_list_t *vertices;
alpm_list_t *i;
vertices = graph_init(deltas, 1);
for(i = vertices; i; i = i->next) {
alpm_graph_t *v = i->data;
alpm_delta_t *vdelta = v->data;
if(strcmp(vdelta->to, to) == 0) {
v->weight = vdelta->download_size;
}
}
dijkstra(vertices);
for(i = vertices; i; i = i->next) {
alpm_graph_t *v = i->data;
alpm_delta_t *vdelta = v->data;
if(v->weight > quota) {
unused = alpm_list_add(unused, vdelta->delta);
}
}
alpm_list_free_inner(vertices, _alpm_graph_free);
alpm_list_free(vertices);
return unused;
}
/** \addtogroup alpm_deltas Delta Functions
* @brief Functions to manipulate libalpm deltas
* @{
*/
alpm_list_t SYMEXPORT *alpm_pkg_unused_deltas(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return NULL);
return find_unused(pkg->deltas, pkg->filename,
pkg->size * pkg->handle->deltaratio);
}
/** @} */
#define NUM_MATCHES 6
/** Parses the string representation of a alpm_delta_t object.
* This function assumes that the string is in the correct format.
* This format is as follows:
* $deltafile $deltamd5 $deltasize $oldfile $newfile
* @param handle the context handle
* @param line the string to parse
* @return A pointer to the new alpm_delta_t object
*/
alpm_delta_t *_alpm_delta_parse(alpm_handle_t *handle, const char *line)
{
alpm_delta_t *delta;
size_t len;
regmatch_t pmatch[NUM_MATCHES];
char filesize[32];
/* this is so we only have to compile the pattern once */
if(!handle->delta_regex_compiled) {
/* $deltafile $deltamd5 $deltasize $oldfile $newfile*/
regcomp(&handle->delta_regex,
"^([^[:space:]]+) ([[:xdigit:]]{32}) ([[:digit:]]+)"
" ([^[:space:]]+) ([^[:space:]]+)$",
REG_EXTENDED | REG_NEWLINE);
handle->delta_regex_compiled = 1;
}
if(regexec(&handle->delta_regex, line, NUM_MATCHES, pmatch, 0) != 0) {
/* delta line is invalid, return NULL */
return NULL;
}
CALLOC(delta, 1, sizeof(alpm_delta_t), return NULL);
/* start at index 1 -- match 0 is the entire match */
len = pmatch[1].rm_eo - pmatch[1].rm_so;
STRNDUP(delta->delta, &line[pmatch[1].rm_so], len, goto error);
len = pmatch[2].rm_eo - pmatch[2].rm_so;
STRNDUP(delta->delta_md5, &line[pmatch[2].rm_so], len, goto error);
len = pmatch[3].rm_eo - pmatch[3].rm_so;
if(len < sizeof(filesize)) {
strncpy(filesize, &line[pmatch[3].rm_so], len);
filesize[len] = '\0';
delta->delta_size = _alpm_strtoofft(filesize);
}
len = pmatch[4].rm_eo - pmatch[4].rm_so;
STRNDUP(delta->from, &line[pmatch[4].rm_so], len, goto error);
len = pmatch[5].rm_eo - pmatch[5].rm_so;
STRNDUP(delta->to, &line[pmatch[5].rm_so], len, goto error);
return delta;
error:
_alpm_delta_free(delta);
return NULL;
}
#undef NUM_MATCHES
void _alpm_delta_free(alpm_delta_t *delta)
{
ASSERT(delta != NULL, return);
FREE(delta->delta);
FREE(delta->delta_md5);
FREE(delta->from);
FREE(delta->to);
FREE(delta);
}
alpm_delta_t *_alpm_delta_dup(const alpm_delta_t *delta)
{
alpm_delta_t *newdelta;
CALLOC(newdelta, 1, sizeof(alpm_delta_t), return NULL);
STRDUP(newdelta->delta, delta->delta, goto error);
STRDUP(newdelta->delta_md5, delta->delta_md5, goto error);
STRDUP(newdelta->from, delta->from, goto error);
STRDUP(newdelta->to, delta->to, goto error);
newdelta->delta_size = delta->delta_size;
newdelta->download_size = delta->download_size;
return newdelta;
error:
_alpm_delta_free(newdelta);
return NULL;
}

View File

@@ -1,33 +0,0 @@
/*
* delta.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2007-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef ALPM_DELTA_H
#define ALPM_DELTA_H
#include <sys/types.h> /* off_t */
#include "alpm.h"
alpm_delta_t *_alpm_delta_parse(alpm_handle_t *handle, const char *line);
void _alpm_delta_free(alpm_delta_t *delta);
alpm_delta_t *_alpm_delta_dup(const alpm_delta_t *delta);
off_t _alpm_shortest_delta_path(alpm_handle_t *handle, alpm_list_t *deltas,
const char *to, alpm_list_t **path);
#endif /* ALPM_DELTA_H */

View File

@@ -1,7 +1,7 @@
/*
* deps.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
@@ -286,12 +286,6 @@ static int no_dep_version(alpm_handle_t *handle)
return (handle->trans->flags & ALPM_TRANS_FLAG_NODEPVERSION);
}
/** Find a package satisfying a specified dependency.
* The dependency can include versions with depmod operators.
* @param pkgs an alpm_list_t* of alpm_pkg_t where the satisfier will be searched
* @param depstring package or provision name, versioned or not
* @return a alpm_pkg_t* satisfying depstring
*/
alpm_pkg_t SYMEXPORT *alpm_find_satisfier(alpm_list_t *pkgs, const char *depstring)
{
alpm_depend_t *dep = alpm_dep_from_string(depstring);
@@ -303,15 +297,6 @@ alpm_pkg_t SYMEXPORT *alpm_find_satisfier(alpm_list_t *pkgs, const char *depstri
return pkg;
}
/** Checks dependencies and returns missing ones in a list.
* Dependencies can include versions with depmod operators.
* @param handle the context handle
* @param pkglist the list of local packages
* @param remove an alpm_list_t* of packages to be removed
* @param upgrade an alpm_list_t* of packages to be upgraded (remove-then-upgrade)
* @param reversedeps handles the backward dependencies
* @return an alpm_list_t* of alpm_depmissing_t pointers.
*/
alpm_list_t SYMEXPORT *alpm_checkdeps(alpm_handle_t *handle,
alpm_list_t *pkglist, alpm_list_t *rem, alpm_list_t *upgrade,
int reversedeps)
@@ -643,10 +628,9 @@ int _alpm_recursedeps(alpm_db_t *db, alpm_list_t **targs, int include_explicit)
* @param dep is the dependency to search for
* @param dbs are the databases to search
* @param excluding are the packages to exclude from the search
* @param prompt if true, will cause an unresolvable dependency to issue an
* interactive prompt asking whether the package should be removed from
* the transaction or the transaction aborted; if false, simply returns
* an error code without prompting
* @param prompt if true, ask an alpm_question_install_ignorepkg_t to decide
* if ignored packages should be installed; if false, skip ignored
* packages.
* @return the resolved package
**/
static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
@@ -699,7 +683,8 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
for(j = _alpm_db_get_pkgcache(db); j; j = j->next) {
alpm_pkg_t *pkg = j->data;
if((pkg->name_hash != dep->name_hash || strcmp(pkg->name, dep->name) != 0)
&& _alpm_depcmp(pkg, dep) && !alpm_pkg_find(excluding, pkg->name)) {
&& _alpm_depcmp_provides(dep, alpm_pkg_get_provides(pkg))
&& !alpm_pkg_find(excluding, pkg->name)) {
if(alpm_pkg_should_ignore(handle, pkg)) {
alpm_question_install_ignorepkg_t question = {
.type = ALPM_QUESTION_INSTALL_IGNOREPKG,
@@ -719,20 +704,19 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
}
_alpm_log(handle, ALPM_LOG_DEBUG, "provider found (%s provides %s)\n",
pkg->name, dep->name);
/* provide is already installed so return early instead of prompting later */
if(_alpm_db_get_pkgfromcache(handle->db_local, pkg->name)) {
alpm_list_free(providers);
return pkg;
}
providers = alpm_list_add(providers, pkg);
/* keep looking for other providers in the all dbs */
}
}
}
/* first check if one provider is already installed locally */
for(i = providers; i; i = i->next) {
alpm_pkg_t *pkg = i->data;
if(_alpm_db_get_pkgfromcache(handle->db_local, pkg->name)) {
alpm_list_free(providers);
return pkg;
}
}
count = alpm_list_count(providers);
if(count >= 1) {
alpm_question_select_provider_t question = {
@@ -764,15 +748,6 @@ static alpm_pkg_t *resolvedep(alpm_handle_t *handle, alpm_depend_t *dep,
return NULL;
}
/** Find a package satisfying a specified dependency.
* First look for a literal, going through each db one by one. Then look for
* providers. The first satisfier found is returned.
* The dependency can include versions with depmod operators.
* @param handle the context handle
* @param dbs an alpm_list_t* of alpm_db_t where the satisfier will be searched
* @param depstring package or provision name, versioned or not
* @return a alpm_pkg_t* satisfying depstring
*/
alpm_pkg_t SYMEXPORT *alpm_find_dbs_satisfier(alpm_handle_t *handle,
alpm_list_t *dbs, const char *depstring)
{
@@ -887,11 +862,6 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs,
return ret;
}
/** Reverse of splitdep; make a dep string from a alpm_depend_t struct.
* The string must be freed!
* @param dep the depend to turn into a string
* @return a string-formatted dependency with operator if necessary
*/
char SYMEXPORT *alpm_dep_compute_string(const alpm_depend_t *dep)
{
const char *name, *opr, *ver, *desc_delim, *desc;

View File

@@ -1,7 +1,7 @@
/*
* deps.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>

View File

@@ -1,7 +1,7 @@
/*
* diskspace.c
*
* Copyright (c) 2010-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2010-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -359,7 +359,7 @@ static int check_mountpoint(alpm_handle_t *handle, alpm_mountpoint_t *mp)
}
int _alpm_check_downloadspace(alpm_handle_t *handle, const char *cachedir,
size_t num_files, off_t *file_sizes)
size_t num_files, const off_t *file_sizes)
{
alpm_list_t *mount_points;
alpm_mountpoint_t *cachedir_mp;

View File

@@ -1,7 +1,7 @@
/*
* diskspace.h
*
* Copyright (c) 2010-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2010-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -58,6 +58,6 @@ typedef struct __alpm_mountpoint_t {
int _alpm_check_diskspace(alpm_handle_t *handle);
int _alpm_check_downloadspace(alpm_handle_t *handle, const char *cachedir,
size_t num_files, off_t *file_sizes);
size_t num_files, const off_t *file_sizes);
#endif /* ALPM_DISKSPACE_H */

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
/*
* dload.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -30,7 +30,13 @@ struct dload_payload {
char *tempfile_name;
char *destfile_name;
char *content_disp_name;
/* client has to provide either
* 1) fileurl - full URL to the file
* 2) pair of (servers, filepath), in this case ALPM iterates over the
* server list and tries to download "$server/$filepath"
*/
char *fileurl;
char *filepath; /* download URL path */
alpm_list_t *servers;
long respcode;
off_t initial_size;
@@ -41,16 +47,20 @@ struct dload_payload {
int errors_ok;
int unlink_on_fail;
int trust_remote_name;
int cb_initialized;
int download_signature; /* specifies if an accompanion *.sig file need to be downloaded*/
int signature_optional; /* *.sig file is optional */
#ifdef HAVE_LIBCURL
CURLcode curlerr; /* last error produced by curl */
CURL *curl;
char error_buffer[CURL_ERROR_SIZE];
FILE *localf; /* temp download file */
int signature; /* specifies if this payload is for a signature file */
#endif
};
void _alpm_dload_payload_reset(struct dload_payload *payload);
void _alpm_dload_payload_reset_for_retry(struct dload_payload *payload);
int _alpm_download(struct dload_payload *payload, const char *localpath,
char **final_file, const char **final_url);
int _alpm_download(alpm_handle_t *handle,
alpm_list_t *payloads /* struct dload_payload */,
const char *localpath);
#endif /* ALPM_DLOAD_H */

View File

@@ -1,7 +1,7 @@
/*
* error.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -130,11 +130,6 @@ const char SYMEXPORT *alpm_strerror(alpm_errno_t err)
return _("missing PGP signature");
case ALPM_ERR_SIG_INVALID:
return _("invalid PGP signature");
/* Deltas */
case ALPM_ERR_DLT_INVALID:
return _("invalid or corrupted delta");
case ALPM_ERR_DLT_PATCHFAILED:
return _("delta patch failed");
/* Dependencies */
case ALPM_ERR_UNSATISFIED_DEPS:
return _("could not satisfy dependencies");

View File

@@ -1,7 +1,7 @@
/*
* filelist.c
*
* Copyright (c) 2012-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2012-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/*
* filelist.h
*
* Copyright (c) 2012-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2012-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/*
* graph.c - helpful graph structure and setup/teardown methods
*
* Copyright (c) 2007-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2007-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/*
* graph.h - helpful graph structure and setup/teardown methods
*
* Copyright (c) 2007-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2007-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/*
* group.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* group.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -1,7 +1,7 @@
/*
* handle.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
@@ -34,7 +34,6 @@
#include "alpm_list.h"
#include "util.h"
#include "log.h"
#include "delta.h"
#include "trans.h"
#include "alpm.h"
#include "deps.h"
@@ -44,7 +43,6 @@ alpm_handle_t *_alpm_handle_new(void)
alpm_handle_t *handle;
CALLOC(handle, 1, sizeof(alpm_handle_t), return NULL);
handle->deltaratio = 0.0;
handle->lockfd = -1;
return handle;
@@ -66,17 +64,10 @@ void _alpm_handle_free(alpm_handle_t *handle)
closelog();
}
#ifdef HAVE_LIBCURL
/* release curl handle */
curl_easy_cleanup(handle->curl);
#endif
#ifdef HAVE_LIBGPGME
FREELIST(handle->known_keys);
#endif
regfree(&handle->delta_regex);
/* free memory */
_alpm_trans_free(handle->trans);
FREE(handle->root);
@@ -109,7 +100,7 @@ int _alpm_handle_lock(alpm_handle_t *handle)
ASSERT(handle->lockfd < 0, return 0);
/* create the dir of the lockfile first */
dir = strdup(handle->lockfile);
STRDUP(dir, handle->lockfile, return -1);
ptr = strrchr(dir, '/');
if(ptr) {
*ptr = '\0';
@@ -127,12 +118,6 @@ int _alpm_handle_lock(alpm_handle_t *handle)
return (handle->lockfd >= 0 ? 0 : -1);
}
/** Remove the database lock file
* @param handle the context handle
* @return 0 on success, -1 on error
*
* @note Safe to call from inside signal handlers.
*/
int SYMEXPORT alpm_unlock(alpm_handle_t *handle)
{
ASSERT(handle != NULL, return -1);
@@ -303,12 +288,6 @@ const char SYMEXPORT *alpm_option_get_arch(alpm_handle_t *handle)
return handle->arch;
}
double SYMEXPORT alpm_option_get_deltaratio(alpm_handle_t *handle)
{
CHECK_HANDLE(handle, return -1);
return handle->deltaratio;
}
int SYMEXPORT alpm_option_get_checkspace(alpm_handle_t *handle)
{
CHECK_HANDLE(handle, return -1);
@@ -321,6 +300,16 @@ const char SYMEXPORT *alpm_option_get_dbext(alpm_handle_t *handle)
return handle->dbext;
}
int SYMEXPORT alpm_option_get_parallel_downloads(alpm_handle_t *handle)
{
CHECK_HANDLE(handle, return -1);
#ifdef HAVE_LIBCURL
return handle->parallel_downloads;
#else
return 1;
#endif
}
int SYMEXPORT alpm_option_set_logcb(alpm_handle_t *handle, alpm_cb_log cb)
{
CHECK_HANDLE(handle, return -1);
@@ -700,6 +689,7 @@ int SYMEXPORT alpm_option_set_assumeinstalled(alpm_handle_t *handle, alpm_list_t
if(handle->assumeinstalled) {
alpm_list_free_inner(handle->assumeinstalled, (alpm_list_fn_free)alpm_dep_free);
alpm_list_free(handle->assumeinstalled);
handle->assumeinstalled = NULL;
}
while(deps) {
if(alpm_option_add_assumeinstalled(handle, deps->data) != 0) {
@@ -755,16 +745,6 @@ int SYMEXPORT alpm_option_set_arch(alpm_handle_t *handle, const char *arch)
return 0;
}
int SYMEXPORT alpm_option_set_deltaratio(alpm_handle_t *handle, double ratio)
{
CHECK_HANDLE(handle, return -1);
if(ratio < 0.0 || ratio > 2.0) {
RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1);
}
handle->deltaratio = ratio;
return 0;
}
alpm_db_t SYMEXPORT *alpm_get_localdb(alpm_handle_t *handle)
{
CHECK_HANDLE(handle, return NULL);
@@ -881,3 +861,16 @@ int SYMEXPORT alpm_option_set_disable_dl_timeout(alpm_handle_t *handle,
#endif
return 0;
}
int SYMEXPORT alpm_option_set_parallel_downloads(alpm_handle_t *handle,
unsigned int num_streams)
{
CHECK_HANDLE(handle, return -1);
#ifdef HAVE_LIBCURL
ASSERT(num_streams >= 1, RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1));
handle->parallel_downloads = num_streams;
#else
(void)num_streams; /* silence unused variable warnings */
#endif
return 0;
}

View File

@@ -1,7 +1,7 @@
/*
* handle.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -59,8 +59,9 @@ struct __alpm_handle_t {
#ifdef HAVE_LIBCURL
/* libcurl handle */
CURL *curl; /* reusable curl_easy handle */
CURLM *curlm;
unsigned short disable_dl_timeout;
unsigned int parallel_downloads; /* number of download streams */
#endif
#ifdef HAVE_LIBGPGME
@@ -95,7 +96,6 @@ struct __alpm_handle_t {
/* options */
char *arch; /* Architecture of packages we should allow */
double deltaratio; /* Download deltas if possible; a ratio value */
int usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */
int checkspace; /* Check disk space before installing */
char *dbext; /* Sync DB extension */
@@ -110,10 +110,6 @@ struct __alpm_handle_t {
/* lock file descriptor */
int lockfd;
/* for delta parsing efficiency */
int delta_regex_compiled;
regex_t delta_regex;
};
alpm_handle_t *_alpm_handle_new(void);

View File

@@ -1,7 +1,7 @@
/*
* hook.c
*
* Copyright (c) 2015-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2015-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,7 +17,6 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <ctype.h>
#include <dirent.h>
#include <errno.h>
#include <limits.h>
@@ -38,7 +37,7 @@ enum _alpm_hook_op_t {
enum _alpm_trigger_type_t {
ALPM_HOOK_TYPE_PACKAGE = 1,
ALPM_HOOK_TYPE_FILE,
ALPM_HOOK_TYPE_PATH,
};
struct _alpm_trigger_t {
@@ -71,23 +70,12 @@ static void _alpm_trigger_free(struct _alpm_trigger_t *trigger)
}
}
static void _alpm_wordsplit_free(char **ws)
{
if(ws) {
char **c;
for(c = ws; *c; c++) {
free(*c);
}
free(ws);
}
}
static void _alpm_hook_free(struct _alpm_hook_t *hook)
{
if(hook) {
free(hook->name);
free(hook->desc);
_alpm_wordsplit_free(hook->cmd);
wordsplit_free(hook->cmd);
alpm_list_free_inner(hook->triggers, (alpm_list_fn_free) _alpm_trigger_free);
alpm_list_free(hook->triggers);
alpm_list_free(hook->matches);
@@ -158,107 +146,6 @@ static int _alpm_hook_validate(alpm_handle_t *handle,
return ret;
}
static char **_alpm_wordsplit(char *str)
{
char *c = str, *end;
char **out = NULL, **outsave;
size_t count = 0;
if(str == NULL) {
errno = EINVAL;
return NULL;
}
for(c = str; isspace(*c); c++);
while(*c) {
size_t wordlen = 0;
/* extend our array */
outsave = out;
if((out = realloc(out, (count + 1) * sizeof(char*))) == NULL) {
out = outsave;
goto error;
}
/* calculate word length and check for unbalanced quotes */
for(end = c; *end && !isspace(*end); end++) {
if(*end == '\'' || *end == '"') {
char quote = *end;
while(*(++end) && *end != quote) {
if(*end == '\\' && *(end + 1) == quote) {
end++;
}
wordlen++;
}
if(*end != quote) {
errno = EINVAL;
goto error;
}
} else {
if(*end == '\\' && (end[1] == '\'' || end[1] == '"')) {
end++; /* skip the '\\' */
}
wordlen++;
}
}
if(wordlen == (size_t) (end - c)) {
/* no internal quotes or escapes, copy it the easy way */
if((out[count++] = strndup(c, wordlen)) == NULL) {
goto error;
}
} else {
/* manually copy to remove quotes and escapes */
char *dest = out[count++] = malloc(wordlen + 1);
if(dest == NULL) { goto error; }
while(c < end) {
if(*c == '\'' || *c == '"') {
char quote = *c;
/* we know there must be a matching end quote,
* no need to check for '\0' */
for(c++; *c != quote; c++) {
if(*c == '\\' && *(c + 1) == quote) {
c++;
}
*(dest++) = *c;
}
c++;
} else {
if(*c == '\\' && (c[1] == '\'' || c[1] == '"')) {
c++; /* skip the '\\' */
}
*(dest++) = *(c++);
}
}
*dest = '\0';
}
if(*end == '\0') {
break;
} else {
for(c = end + 1; isspace(*c); c++);
}
}
outsave = out;
if((out = realloc(out, (count + 1) * sizeof(char*))) == NULL) {
out = outsave;
goto error;
}
out[count++] = NULL;
return out;
error:
/* can't use wordsplit_free here because NULL has not been appended */
while(count) {
free(out[--count]);
}
free(out);
return NULL;
}
static int _alpm_hook_parse_cb(const char *file, int line,
const char *section, char *key, char *value, void *data)
{
@@ -303,7 +190,11 @@ static int _alpm_hook_parse_cb(const char *file, int line,
if(strcmp(value, "Package") == 0) {
t->type = ALPM_HOOK_TYPE_PACKAGE;
} else if(strcmp(value, "File") == 0) {
t->type = ALPM_HOOK_TYPE_FILE;
_alpm_log(handle, ALPM_LOG_DEBUG,
"File targets are deprecated, use Path instead\n");
t->type = ALPM_HOOK_TYPE_PATH;
} else if(strcmp(value, "Path") == 0) {
t->type = ALPM_HOOK_TYPE_PATH;
} else {
error(_("hook %s line %d: invalid value %s\n"), file, line, value);
}
@@ -343,9 +234,9 @@ static int _alpm_hook_parse_cb(const char *file, int line,
} else if(strcmp(key, "Exec") == 0) {
if(hook->cmd != NULL) {
warning(_("hook %s line %d: overwriting previous definition of %s\n"), file, line, "Exec");
_alpm_wordsplit_free(hook->cmd);
wordsplit_free(hook->cmd);
}
if((hook->cmd = _alpm_wordsplit(value)) == NULL) {
if((hook->cmd = wordsplit(value)) == NULL) {
if(errno == EINVAL) {
error(_("hook %s line %d: invalid value %s\n"), file, line, value);
} else {

View File

@@ -1,7 +1,7 @@
/*
* hook.h
*
* Copyright (c) 2015-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2015-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1 +0,0 @@
../../src/common/ini.c

View File

@@ -1 +0,0 @@
../../src/common/ini.h

View File

@@ -7,7 +7,7 @@ Name: libalpm
Description: Arch Linux package management library
URL: http://www.archlinux.org/pacman/
Version: @LIB_VERSION@
Requires.private: libarchive @pc_crypto@ @pc_libcurl@
Requires.private: libarchive @pc_crypto@ @pc_libcurl@ @pc_gpgme@
Cflags: -I${includedir} @LFS_CFLAGS@
Libs: -L${libdir} -lalpm
Libs.private: @LIBS@ @GPGME_LIBS@
Libs.private: @LIBS@ @pc_gpgme_libs@ @LIBINTL@

View File

@@ -4,7 +4,7 @@
/*
* libarchive-compat.h
*
* Copyright (c) 2013-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2013-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/*
* log.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify
@@ -22,6 +22,7 @@
#include <stdarg.h>
#include <errno.h>
#include <syslog.h>
#include <time.h>
/* libalpm */
#include "log.h"
@@ -29,28 +30,18 @@
#include "util.h"
#include "alpm.h"
/** \addtogroup alpm_log Logging Functions
* @brief Functions to log using libalpm
* @{
*/
static int _alpm_log_leader(FILE *f, const char *prefix)
{
time_t t = time(NULL);
struct tm *tm = localtime(&t);
int length = 32;
char timestamp[length];
/* Use ISO-8601 date format */
return fprintf(f, "[%04d-%02d-%02d %02d:%02d] [%s] ",
tm->tm_year + 1900, tm->tm_mon + 1, tm->tm_mday,
tm->tm_hour, tm->tm_min, prefix);
strftime(timestamp,length,"%FT%T%z", tm);
return fprintf(f, "[%s] [%s] ", timestamp, prefix);
}
/** A printf-like function for logging.
* @param handle the context handle
* @param prefix caller-specific prefix for the log
* @param fmt output format
* @return 0 on success, -1 on error (pm_errno is set accordingly)
*/
int SYMEXPORT alpm_logaction(alpm_handle_t *handle, const char *prefix,
const char *fmt, ...)
{
@@ -107,8 +98,6 @@ int SYMEXPORT alpm_logaction(alpm_handle_t *handle, const char *prefix,
return ret;
}
/** @} */
void _alpm_log(alpm_handle_t *handle, alpm_loglevel_t flag, const char *fmt, ...)
{
va_list args;

View File

@@ -1,7 +1,7 @@
/*
* log.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
*
* This program is free software; you can redistribute it and/or modify

View File

@@ -9,7 +9,6 @@ libalpm_sources = files('''
be_sync.c
conflict.h conflict.c
db.h db.c
delta.h delta.c
deps.h deps.c
diskspace.h diskspace.c
dload.h dload.c

View File

@@ -1,7 +1,7 @@
/*
* package.c
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2005, 2006 by Christian Hamar <krics@linuxforum.hu>
@@ -31,16 +31,9 @@
#include "log.h"
#include "util.h"
#include "db.h"
#include "delta.h"
#include "handle.h"
#include "deps.h"
/** \addtogroup alpm_packages Package Functions
* @brief Functions to manipulate libalpm packages
* @{
*/
/** Free a package. */
int SYMEXPORT alpm_pkg_free(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return -1);
@@ -53,7 +46,6 @@ int SYMEXPORT alpm_pkg_free(alpm_pkg_t *pkg)
return 0;
}
/** Check the integrity (with md5) of a package from the sync cache. */
int SYMEXPORT alpm_pkg_checkmd5sum(alpm_pkg_t *pkg)
{
char *fpath;
@@ -276,6 +268,44 @@ const char SYMEXPORT *alpm_pkg_get_base64_sig(alpm_pkg_t *pkg)
return pkg->base64_sig;
}
int SYMEXPORT alpm_pkg_get_sig(alpm_pkg_t *pkg, unsigned char **sig, size_t *sig_len)
{
ASSERT(pkg != NULL, return -1);
if(pkg->base64_sig) {
int ret = alpm_decode_signature(pkg->base64_sig, sig, sig_len);
if(ret != 0) {
RET_ERR(pkg->handle, ALPM_ERR_SIG_INVALID, -1);
}
return 0;
} else {
char *pkgpath = NULL, *sigpath = NULL;
alpm_errno_t err;
int ret = -1;
pkgpath = _alpm_filecache_find(pkg->handle, pkg->filename);
if(!pkgpath) {
GOTO_ERR(pkg->handle, ALPM_ERR_PKG_NOT_FOUND, cleanup);
}
sigpath = _alpm_sigpath(pkg->handle, pkgpath);
if(!sigpath || _alpm_access(pkg->handle, NULL, sigpath, R_OK)) {
GOTO_ERR(pkg->handle, ALPM_ERR_SIG_MISSING, cleanup);
}
err = _alpm_read_file(sigpath, sig, sig_len);
if(err == ALPM_ERR_OK) {
_alpm_log(pkg->handle, ALPM_LOG_DEBUG, "found detached signature %s with size %ld\n",
sigpath, *sig_len);
} else {
GOTO_ERR(pkg->handle, err, cleanup);
}
ret = 0;
cleanup:
FREE(pkgpath);
FREE(sigpath);
return ret;
}
}
const char SYMEXPORT *alpm_pkg_get_arch(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return NULL);
@@ -374,13 +404,6 @@ alpm_list_t SYMEXPORT *alpm_pkg_get_replaces(alpm_pkg_t *pkg)
return pkg->ops->get_replaces(pkg);
}
alpm_list_t SYMEXPORT *alpm_pkg_get_deltas(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return NULL);
pkg->handle->pm_errno = ALPM_ERR_OK;
return pkg->deltas;
}
alpm_filelist_t SYMEXPORT *alpm_pkg_get_files(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return NULL);
@@ -405,7 +428,6 @@ alpm_db_t SYMEXPORT *alpm_pkg_get_db(alpm_pkg_t *pkg)
return pkg->origin_data.db;
}
/** Open a package changelog for reading. */
void SYMEXPORT *alpm_pkg_changelog_open(alpm_pkg_t *pkg)
{
ASSERT(pkg != NULL, return NULL);
@@ -413,7 +435,6 @@ void SYMEXPORT *alpm_pkg_changelog_open(alpm_pkg_t *pkg)
return pkg->ops->changelog_open(pkg);
}
/** Read data from an open changelog 'file stream'. */
size_t SYMEXPORT alpm_pkg_changelog_read(void *ptr, size_t size,
const alpm_pkg_t *pkg, void *fp)
{
@@ -422,7 +443,6 @@ size_t SYMEXPORT alpm_pkg_changelog_read(void *ptr, size_t size,
return pkg->ops->changelog_read(ptr, size, pkg, fp);
}
/** Close a package changelog for reading. */
int SYMEXPORT alpm_pkg_changelog_close(const alpm_pkg_t *pkg, void *fp)
{
ASSERT(pkg != NULL, return -1);
@@ -430,7 +450,6 @@ int SYMEXPORT alpm_pkg_changelog_close(const alpm_pkg_t *pkg, void *fp)
return pkg->ops->changelog_close(pkg, fp);
}
/** Open a package mtree file for reading. */
struct archive SYMEXPORT *alpm_pkg_mtree_open(alpm_pkg_t * pkg)
{
ASSERT(pkg != NULL, return NULL);
@@ -438,7 +457,6 @@ struct archive SYMEXPORT *alpm_pkg_mtree_open(alpm_pkg_t * pkg)
return pkg->ops->mtree_open(pkg);
}
/** Read entry from an open mtree file. */
int SYMEXPORT alpm_pkg_mtree_next(const alpm_pkg_t * pkg, struct archive *archive,
struct archive_entry **entry)
{
@@ -447,7 +465,6 @@ int SYMEXPORT alpm_pkg_mtree_next(const alpm_pkg_t * pkg, struct archive *archiv
return pkg->ops->mtree_next(pkg, archive, entry);
}
/** Close a package mtree file for reading. */
int SYMEXPORT alpm_pkg_mtree_close(const alpm_pkg_t * pkg, struct archive *archive)
{
ASSERT(pkg != NULL, return -1);
@@ -518,21 +535,16 @@ static alpm_list_t *compute_requiredby(alpm_pkg_t *pkg, int optional)
return reqs;
}
/** Compute the packages requiring a given package. */
alpm_list_t SYMEXPORT *alpm_pkg_compute_requiredby(alpm_pkg_t *pkg)
{
return compute_requiredby(pkg, 0);
}
/** Compute the packages optionally requiring a given package. */
alpm_list_t SYMEXPORT *alpm_pkg_compute_optionalfor(alpm_pkg_t *pkg)
{
return compute_requiredby(pkg, 1);
}
/** @} */
alpm_file_t *_alpm_file_copy(alpm_file_t *dest,
const alpm_file_t *src)
{
@@ -620,9 +632,6 @@ int _alpm_pkg_dup(alpm_pkg_t *pkg, alpm_pkg_t **new_ptr)
newpkg->optdepends = list_depdup(pkg->optdepends);
newpkg->conflicts = list_depdup(pkg->conflicts);
newpkg->provides = list_depdup(pkg->provides);
for(i = pkg->deltas; i; i = i->next) {
newpkg->deltas = alpm_list_add(newpkg->deltas, _alpm_delta_dup(i->data));
}
if(pkg->files.count) {
size_t filenum;
@@ -694,11 +703,10 @@ void _alpm_pkg_free(alpm_pkg_t *pkg)
alpm_list_free(pkg->backup);
free_deplist(pkg->depends);
free_deplist(pkg->optdepends);
free_deplist(pkg->checkdepends);
free_deplist(pkg->makedepends);
free_deplist(pkg->conflicts);
free_deplist(pkg->provides);
alpm_list_free_inner(pkg->deltas, (alpm_list_fn_free)_alpm_delta_free);
alpm_list_free(pkg->deltas);
alpm_list_free(pkg->delta_path);
alpm_list_free(pkg->removes);
_alpm_pkg_free(pkg->oldpkg);
@@ -776,16 +784,6 @@ alpm_pkg_t SYMEXPORT *alpm_pkg_find(alpm_list_t *haystack, const char *needle)
return NULL;
}
/** Test if a package should be ignored.
*
* Checks if the package is ignored via IgnorePkg, or if the package is
* in a group ignored via IgnoreGroup.
*
* @param handle the context handle
* @param pkg the package to test
*
* @return 1 if the package should be ignored, 0 otherwise
*/
int SYMEXPORT alpm_pkg_should_ignore(alpm_handle_t *handle, alpm_pkg_t *pkg)
{
alpm_list_t *groups = NULL;

View File

@@ -1,7 +1,7 @@
/*
* package.h
*
* Copyright (c) 2006-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2006-2020 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
* Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org>
@@ -118,8 +118,6 @@ struct __alpm_pkg_t {
alpm_list_t *makedepends;
alpm_list_t *conflicts;
alpm_list_t *provides;
alpm_list_t *deltas;
alpm_list_t *delta_path;
alpm_list_t *removes; /* in transaction targets only */
alpm_pkg_t *oldpkg; /* in transaction targets only */

View File

@@ -1,7 +1,7 @@
/*
* pkghash.c
*
* Copyright (c) 2011-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2011-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -1,7 +1,7 @@
/*
* pkghash.h
*
* Copyright (c) 2011-2018 Pacman Development Team <pacman-dev@archlinux.org>
* Copyright (c) 2011-2020 Pacman Development Team <pacman-dev@archlinux.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by

View File

@@ -12,7 +12,6 @@ lib/libalpm/be_package.c
lib/libalpm/be_sync.c
lib/libalpm/conflict.c
lib/libalpm/db.c
lib/libalpm/delta.c
lib/libalpm/deps.c
lib/libalpm/diskspace.c
lib/libalpm/dload.c

View File

@@ -9,15 +9,16 @@
# kraim <biskraim@gmail.com>, 2013
# Mosaab Alzoubi <moceap@hotmail.com>, 2013
# Mosaab Alzoubi <moceap@hotmail.com>, 2013
# Mutaz ismail <m3taz.ismail@gmail.com>, 2015
# Mutaz ismail <mutaz@gmx.net>, 2015
# Mutaz ismail <mutaz@gmx.net>, 2015
# سند <0otibi0@gmail.com>, 2013
# صفا الفليج <safaalfulaij@hotmail.com>, 2016-2017
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Arabic (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/ar/)\n"
@@ -28,52 +29,52 @@ msgstr ""
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 "
"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s محدّثة -- سأتجاوزها\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s محدّثة -- سأعيد تثبيتها\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "سأُنزِل الحزمة %s (من %s إلى %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr ""
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "تحذير عند الاستخراج %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "تعذّر استخراج %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "تعذر إعادة تسمية %s إلى %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr "لم يتم العثور على قائمة الملفات في الحزمة %s. تم تخطي الاستخراج %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr ""
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -82,7 +83,7 @@ msgstr ""
"صلاحيات المجلد تختلف عن %s\n"
"نظام الملفات: %o الحزمة: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -91,101 +92,101 @@ msgstr ""
"ملكية المجلد تختلف عن %s\n"
"ملفات النظام: %u:%u الحزمة: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "الاستخراج: عدم الكتابة فوق المجلد بالملف %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr ""
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "غير قادر على جلب مجلد العمل الحالي\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "غير قادر على تحويل المجلد إلى %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "تعذر استعادة مجلد العمل (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "حدثت مشكلة أثناء ترقية %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "حدثت مشكلة أثناء تثبيت %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "غير قادر على تحديث مدخل قاعدة البيانات %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "غير قادر على إضافة المدخل '%s' إلى المخبئيات\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "خطأ أثناء قراءة الملف %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "تجري إزالة قاعدة البيانات الغير صالحة: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "غير قادر على إنشاء الدليل %s : %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "مدخل قاعدة بيانات غير صالح '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "مدخل قاعدة بيانات مكرر '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "مدخل قاعدة بيانات معطوب '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "غير قادر على فتح اللمف %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s قاعدة البيانات غير متناسقة : اسم الحزمة غير مطابق %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "%s قاعدة البيانات غير متناسقة : إصدار الحزمة غير مطابق %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "نوع التّحقق غير مألوف في الحزمة %s: %s\n"
@@ -226,42 +227,42 @@ msgstr "إصدارة الحزمة غير صالح في %s\n"
msgid "missing package metadata in %s\n"
msgstr "معلومات الحزمة مفقودة في %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "فشل في قراءة ملف التّوقيع: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "مفتاح ضروري غير موجود في حلقة المفاتيح\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "يجري حذف ملف غير صالح: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "تعذّر تحليل ملف وصف الحزمة '%s' من قاعدة البيانات '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "%s قاعدة البيانات غير متناسقة : اسم ملف الحزمة غير قانوني %s\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "%s قاعدة البيانات غير متناسقة : اسم ملف الحزمة طويل جدًا %s\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "ملف قاعدة البيانات مجهول : %s\n"
@@ -286,12 +287,12 @@ msgstr "%s سيتم إزالتها بعد %s اعتمادياتها\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s سيتم تثبيتها قبل %s اعتمادياتها\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "تجاهل الحزمة %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "تعذّر تحليل \"%s\"، اعتمادية لـ \"%s\"\n"
@@ -346,37 +347,37 @@ msgstr "غير قادر على تحديد نقطة وصل الجذر %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "القسم %s موصول بصفة القراءة فقط\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "القرص"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "غير قادر على إنشاء ملف مؤقت للتحميل\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "العنوان '%s' غير صالح\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "فشل في استقبال الملف '%s' من %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr "فشل في استقبال الملف '%s' من %s : تم تجاوز حجم التحميل\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s يبدو غير موثوقًا: %jd/%jd بايت\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "tag td jpldg %s\n"
@@ -596,201 +597,196 @@ msgstr "توقيع PGP مفقود"
msgid "invalid PGP signature"
msgstr "توقيع PGP غير سليم"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "فروقات غير سليمة أو معطوبة"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "فشل تطبيق الفروقات"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "غير قادر على استيفاء الاعتماديات"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "اعتماديات متضاربة"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "ملفات متضاربة"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "فشل في استقبال بعض الملفات"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "تعبير غير نظامي"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "خطا في مكتبة الارشيف"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "خطأ في مكتبة التحميل"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "خطأ gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "خطأ في استحضار المحمّل الخارجي"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "خطأ غير متوقع"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "الملف المغلق مفقود %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "تعذّر إزالة ملف القفل %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "تعذّر فتح المجلد: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "تعذّر إحصاء الملف %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "غير قادر على استيراد معلومات الميتا للحزمة %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "لم يعثر على %s في قاعدة البيانات -- يجري التجاوز\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "يجري حذف %s من قائمة الأهداف\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr ""
"تعذر إزالة الملف '%s': %s\n"
"\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "تعذّر إزالة %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "تعذّر إزالة مدخل قاعدة البيانات %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "تعذر إزالة المدخل '%s' من المخبئيات\n"
@@ -800,139 +796,154 @@ msgstr "تعذر إزالة المدخل '%s' من المخبئيات\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "التوقيع المطلوب مفقود :%s\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: يجري تجاهل تحديث الحزمة (%s => %s) \n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: يجري تجاهل إرجاع الحزمة (%s => %s) \n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: يجري الإرجاع من الإصدار %s إلى الإصدار %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: (%s) المحلّي أحدث من %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "يجري تجاهل استبدال الحزمة (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "تعذر استبدال %s بـ %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "حدثت تعارضات حزميّة تعذّر تحليلها\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr " يجري حذف '%s' من قائمة الأهداف بسبب تعارضها مع '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "تعذّر استقبال بعض الملفات\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "لا توجد مساحة خالية كافية على القرص\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "تعذّر بدء مُبادلة الإزالة\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "فشل في بدء المُبادلة\n"
@@ -969,52 +980,52 @@ msgstr "تعذّرت الكتابة إلى الأنبوب (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "تعذّرت القراءة من الأنبوب (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "غير قادر على إنشاء العبارة (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "تعذّر تفريع العملية إلى عملية جديدة (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "تعذّر التعديل على مجلد الجذر (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "تعذّر مخاطبة execv (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "تعذّر مخاطبةwaitpid (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "فشل تطبيق الأمر بشكل صحيح\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "إشارة مجهوله"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "تم انهاء الامر بواسطة الاشارة %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "لا يوجد %s مخبئي، يجري الإنشاء...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "تعذّر إيجاد أو إنشاء مخبئية للحزم ، استخدم %s بدلًا عنها\n"

View File

@@ -3,7 +3,7 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# enolp <enolp@softastur.org>, 2015-2016,2018
# enolp <enolp@softastur.org>, 2015-2016,2018-2019
# Ḷḷumex03 <tornes@opmbx.org>, 2014
# Ḷḷumex03 <tornes@opmbx.org>, 2014
# Ḷḷumex03 <tornes@opmbx.org>, 2014-2015
@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Asturian (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/ast/)\n"
@@ -22,54 +22,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s ta anováu -- saltando\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s ta anováu -- reinstalando\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "baxando de versión el paquete %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "nun pue allugase l'oxetu del archivu del discu"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "alvertencia dada al estrayer el paquete %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "nun pudo estrayese %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "nun pudo renomase %s a %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"nun s'alcontró'l ficheru nel llistáu de ficheros pal paquete %s. saltando la "
"estraición de %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "nun pue estrayese %s%s: camín perllargu"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -78,7 +78,7 @@ msgstr ""
"los permisos del direutoriu son distintos en %s\n"
"sistema de ficheros: %o paquete: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -87,103 +87,103 @@ msgstr ""
"la propiedá del direutoriu ye distinta en %s\n"
"sistema de ficheros: %u:%u paquete: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "estración: nun pue sobrescribise'l direutoriu col ficheru %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "nun pue estrayese %s.pacnew: camín perllargu"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "nun pudo consiguise'l direutoriu de trabayu actual\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "nun pudo cambiase'l direutoriu a %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "nun pudo restaurase'l direutoriu de trabayu (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "asocedió un problema al anovar %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "asocedió un problema al instalar %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "nun pudo anovase la entrada de base de datos %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "nun pudo amestase la entrada '%s' na caché\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "fallu al lleer el ficheru %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "desaniciando base de datos non válida: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "nun pudo crease'l direutoriu %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "nome non válidu pa la base de datos '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "entrada de base de datos duplicada '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "entrada de base de datos toyida '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "nun pudo abrise'l ficheru %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr ""
"la base de datos %s ye inconsistente: el nome nun concasa nel paquete %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"la base de datos %s ye inconsistente: la versión nun concasa nel paquete %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "triba de validación desconocida pal paquete %s: %s\n"
@@ -224,46 +224,46 @@ msgstr "versión del paquete non válida en %s\n"
msgid "missing package metadata in %s\n"
msgstr "datos meta de paquete faltantes en %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "fallu al lleer el ficheru de robla: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "clave riquida del aniellu claves faltante\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "desaniciando ficheru non válidu: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"nun pudo analizase'l ficheru de descripción del paquete '%s' de la base de "
"datos '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"la base de datos %s ye inconsistente: el nome del paquete %s ye illegal\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"la base de datos %s ye inconsistente: el nome del paquete %s ye perllargu\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "ficheru de base de datos desconocíu: %s\n"
@@ -288,12 +288,12 @@ msgstr "%s desaniciaráse dempués de la so dependencia %s\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s desaniciaráse enantes de la so dependencia %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "inorando paquete %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "nun pue iguase \"%s\", una dependencia de \"%s\"\n"
@@ -348,37 +348,37 @@ msgstr "nun pudo determinase'l puntu de montaxe root %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "La partición %s ta montada como namái llectura\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "discu"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "fallu al crear el ficheru temporal pa la descarga\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "l'enllaz '%s' ye inválidu\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "fallu recibiendo'l ficheru '%s' de %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr "fallu recibiendo'l ficheru '%s' de %s: tamañu de descarga superáu\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr ""
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "fallu al lleer %s\n"
@@ -598,199 +598,194 @@ msgstr "falta la robla PGP"
msgid "invalid PGP signature"
msgstr "robla PGP non válida"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "delta non válidu o toriáu"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "fallu del parche delta"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "nun pudieron satisfacese les dependencies"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "dependencies en conflictu"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "ficheros en conflictu"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "fallu al recibir dello ficheros"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "espresión regular non válida"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "fallu de libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "fallu de llibrería de descarga"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "fallu de gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "fallu invocando'l descargador esternu"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "fallu inesperáu"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "falta'l ficheru de bloquéu %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "nun pudo desaniciase'l ficheru de bloquéu %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "nun pudo abrise'l direutoriu: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "nun pudieron cargase dafechu los datos meta pal paquete %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "nun pudo alcontrase %s na base de datos -- saltando\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "desaniciando %s de la llista d'oxetivos\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "nun pue desaniciase'l ficheru '%s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "nun pue desaniciase %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "nun pudo desaniciase la entrada de la base de datos %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "nun pudo desaniciase la entrada '%s' de la caché\n"
@@ -800,140 +795,155 @@ msgstr "nun pudo desaniciase la entrada '%s' de la caché\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: falta la robla riquida\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: inorando anovamientu del paquete (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: inorando baxada de versión del paquete (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: baxando de la versión %s a la %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: llocal (%s) ye más nuevu que %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "inorando troquéu de paquete (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "nun pue trocase %s por %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "deteutaos conflictos de paquete que nun puen iguase\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"desaniciando '%s' de la llista d'oxetivos porque ta en conflictu con '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "fallu al recuperar dellos ficheros\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "nun hai espaciu llibre abondu\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "nun pudo unviase la transaición de desaniciu\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "nun pudo unviase la transaición\n"
@@ -968,52 +978,52 @@ msgstr ""
msgid "unable to read from pipe (%s)\n"
msgstr ""
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr ""
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "Nun pudo bifurcase un procesu nuevu (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "nun pudo cambiase'l direutoriu root (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "llamada a execv fallida (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "llamada a waitpid fallida (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "el comandu falló al executase afayadizamente\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Señal desconocida"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "comandu fináu pola señal %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "nun esiste'l caché %s, creando...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Galin Iskrenov <loot270@abv.bg>, 2017-2018
# Galin Iskrenov <loot270@abv.bg>, 2017-2019
# Ivailo Monev <xakepa10@gmail.com>, 2014-2016
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 12:11+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-11 13:05+0000\n"
"Last-Translator: Galin Iskrenov <loot270@abv.bg>\n"
"Language-Team: Bulgarian (http://www.transifex.com/toofishes/archlinux-"
"pacman/language/bg/)\n"
@@ -20,54 +20,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s е актуален -- пропускане\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s е актуален -- преинсталиране\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "понижаване на пакет %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "не се открие указания архив на диск"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "има предупреждение при извличане %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "не може да се извлече %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "не може да се преименува %s на %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"файл не е намерен в листа с файлове на пекет %s. пропускане извличането на "
"%s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "неспешно извличането на %s%s: пътят е твърде дълъг"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -76,7 +76,7 @@ msgstr ""
"разлика в правата на папка за %s\n"
"filesystem: %o пакет: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -85,101 +85,101 @@ msgstr ""
"правата на директория се различава от %s\n"
"filesystem: %u:%u пакет: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "извличане: не се презаписва папка с файл %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "неспешно извличането на %s.pacnew: пътят е твърде дълъг"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "не може да се разбере текущата директория\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "не може да се смени директория на %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "не може да се възстанови работната директория (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "възникнал проблем при подновяване %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "възникнал проблем при инсталиране %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "не може да се поднови запис в базата %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "не може да се добави запис '%s' в кеша\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "грешка при четене на файл %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "премахване на невалидна база: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "не се създава директория %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "невалидно име за запис в базата '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "дублиран запис в базата '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "повреден запис в базата '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "не се отваря файл %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s несъответствие в базата: името не съответства на пакета %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "%s несъответствие в базата: версията не съответства на пакета %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "непознат валидиращ тип на пакета %s: %s\n"
@@ -220,42 +220,42 @@ msgstr "невалидна версия на пакет в %s\n"
msgid "missing package metadata in %s\n"
msgstr "липсват метаданни за пакета %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "не се чете подписващият файл: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "нужния ключ липсва от keyring\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "премахване невалиден файл: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "не може да се анализира описателния файл '%s' от db '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "не да се прочете db '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "%s базата е непълна: името на пакета %s е недопустимо\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "%s базата е непълна: името на пакета %s е твърде дълго\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "непознат датабаза файл: %s\n"
@@ -280,12 +280,12 @@ msgstr "%s ще бъде премахната след зависимостта
msgid "%s will be installed before its %s dependency\n"
msgstr "%s ще бъде инсталиран преди зависимостта %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "пренебрегване на пакет %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "не може да се разреши \"%s\", зависи от \"%s\"\n"
@@ -342,39 +342,39 @@ msgstr "не може да се определи root mount point %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "Дялът %s е монтиран само за четене\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "диск"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "не може да се създаде временен файл за сваляне\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "url '%s' е невалиден\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "неуспех при извличане на файл '%s' от %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"неуспех при получаването на файл '%s' от %s : очакваният размер за сваляне е "
"надвишен\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s изглежда частичен: %jd/%jd bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "неуспех при сваляне на %s\n"
@@ -594,199 +594,194 @@ msgstr "липсва PGP подпис"
msgid "invalid PGP signature"
msgstr "невалиден PGP подпис"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "невалидна или повредена delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "делта пач се провали"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "зависимостите не са решени"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "зависимости в конфликт"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "файлове в конфликт"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "не могат да се извлекат файлове"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "невалиден регулярен израз"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "грешка в libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "грешка в библиотеката за сваляне"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "грешка в gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "грешка при извикването на външен downloader"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "компилиран без поддръжка на подпис"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "неочаквана грешка"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "липсва заключващ файл %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "не се премахва заключен файл %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr "Липсва цели на спусъка в куката: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr "Липсва тип на спусъка в куката: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr "Липсва операция на спусъка в куката: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr "Липсва Exec опция в куката: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr "Липсва When опция в куката: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr "AbortOnFail е зададен за PostTransaction кука: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr "грешка при четене на куката %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "кука %s ред %d: невалидна опция %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr "кука %s ред %d: невалидна секция %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr "кука %s ред %d: невалидна стойност %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr "кука %s ред %d: пренаписва предишната дефиниция на %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr "кука %s ред %d: невъзможно да се зададе опцията (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr "невъзможно е пускане на куката %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "не се отваря папка: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "не може да се отвори файл: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "не се коригира %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "не може да се прочете папката: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "не пълно извеждане на метаданни за пакет %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "няма %s в базата -- пропускане\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "премахване %s от списъка с целите\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "не се премахва файла '%s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr "не може да се архивира %s поради препълване на PATH_MAX\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "не се премахва %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "не може да се премахне запис в базата %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "не може да се премахне '%s' от кеша\n"
@@ -796,139 +791,154 @@ msgstr "не може да се премахне '%s' от кеша\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr "Публичният ключодържател не е открит; Ще пуснете ли '%s'?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "GPGME грешка: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr "търсене на ключ %s използвайки WKD\n"
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "gpg грешка: %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "ключодържателя не се записва\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr "ключ \"%s\" на ключов съвър\n"
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "ключ \"%s\" не може да се внесе\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr "ключ %s, \"%s\" е открит в сървъра с ключове, ключ не се записва\n"
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr "ключ \"%s\" не може да се прегледа отдалечено\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: липсва изискващ се подпис\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr "%s: подписът от \"%s\" е изрично доверен\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr "%s: подписът от \"%s\" е с непознато доверие\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr "%s: подписът от \"%s\" никога да не се му вярва\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s: ключ \"%s\" е непознат\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr "%s: ключа е \"%s\" е негоден\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s: подписът от \"%s\" е изтекъл\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s: подписът от \"%s\" е невалиден\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: грешен формат на подписа\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: неподдържан формат на подписа\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: игнориране надграждането на пакет (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: игнориране на пакетен downgrade (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: снижаване на версията от %s към версия %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: текущият (%s) е по-нов от %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "игнориране замяната на пакет (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "не може да се замести %s от %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "засечени нерешени пакетни конфликти\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "премахване '%s' от целевия списък заради конфликт с '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "неуспех при извличане на файлове\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "не успя да се прочете файла %s: %s\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "няма достатъчно свободно място на диска\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "не се потвърждава транзакцията по премахване\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "не се потвърждава транзакцията\n"
@@ -963,52 +973,52 @@ msgstr "неъспешно записването в тръбата (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "неуспешно четенето от тръбата (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "не се създава pipe (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "could not fork a new process (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "не може да се промени root папката (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "неуспех при извикване execv (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "неуспех при извикване на waitpid (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "неуспешно правилно изпълнение на команда\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Неизвестен сигнал"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "командата прекратена от сигнал %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "не %s съществуваш кеш, създаване...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "не се открива или създава пакетен кеш, използва се %s\n"

View File

@@ -4,13 +4,13 @@
#
# Translators:
# Gwenn M <tornoz@laposte.net>, 2015
# Gwenn M <tornoz@laposte.net>, 2015
# Gwenn M <tornoz@laposte.net>, 2015,2018-2019
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Breton (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/br/)\n"
@@ -24,54 +24,54 @@ msgstr ""
"19) && (n%100 < 70 || n%100 > 79) && (n%100 < 90 || n%100 > 99) ? 2 :(n != 0 "
"&& n % 1000000 == 0) ? 3 : 4);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "hizivaet eo %s - %s -- laosket a-gostez\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "Hizivaet eo %s - %s -- adstaliadur\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "o pellgargañ ar pakad %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr ""
msgstr "n'haller ket derannañ an ergorenn kantenn diell"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "ur galv diwall a zo bet roet en ur eztennañ %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "n'haller ket eztennañ %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "n'haller ket adenvel %s e %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"n'eo ket bet kavet ar restr er roll restroù evit ar pakad %s. o tremen "
"eztennadur %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "n'haller ket eztennañ %s%s : re hir eo an treug"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -80,7 +80,7 @@ msgstr ""
"disheñvel eo an aotreoù kavlec'hioù war %s\n"
"reizhad restroù : %o pakad : %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -89,102 +89,102 @@ msgstr ""
"disheñvel eo perc'henniezh ar c'havlec'hioù evit %s\n"
"reizhad restroù : %u:%u pakad : %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "eztannadur : flastradur kavlec'h gant restr %s ebet \n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "n'haller ket eztennañ %s.pacnew : re hir eo an treug"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "n'haller ket kaout ar c'havlec'h labour bremanel\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "n'haller ket kemmañ ar c'havlec'h da %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "n'haller ket assav ar c'havlec'h labour (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "ur fazi a zo bet en ur hizivaat %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "ur fazi a zo bet en ur staliañ %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "n'haller ket hizivaat an enankad stlennvon %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "n'haller ket ouzhpennañ an enankad '%s' er skurzer\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "fazi en ul lenn ar restr %s : %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "o dilemel ar stlennvon direizh : %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "n'haller ker krouiñ ar c'havlec'h %s : %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "anv direizh evit an enankad stlennvon '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "enankad stlennvon eilet '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "enankad stlennvon kontronet '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "n'haller ket digeriñ ar restr %s : %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "digantalc'hek eo ar stlennvon %s : digenglotus eo anvioù ar pakad %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"digantalc'hek eo ar stlennvon %s : digenglotus eo handelvioù ar pakad %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "doare gwiriadur dianav evit ar pakad %s : %s\n"
@@ -225,44 +225,44 @@ msgstr "handelv pakad direizh e %s\n"
msgid "missing package metadata in %s\n"
msgstr "mankout a ra metaroadennoù ar pakad e %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "fazi en ul lenn ar restr sinadur : %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "mankout a ra an alc'hwez goulennet en droñsell\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "o dilemel ar restr direizh : %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"n'haller ket dezrannañ ar restr deskrivadur pakadoù '%s' adalek ar sv '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
msgstr "n'haller ket lenn ar stlennvon '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"digantalc'hek eo ar stlennvon %s : didalvoudek eo anv restr ar pakad %s\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "digantalc'hek eo ar stlennvon %s : re hir eo anv restr ar pakad %s\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "restr stlennvon dianav : %s\n"
@@ -287,12 +287,12 @@ msgstr "dilamet e vo %s goude e %s amzalc'h\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "staliet e vo %s goude e %s amzalc'h\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "o leuskel ar pakad %s - %s a-gostez\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "n'haller ket diskoulmañ \"%s\", un amzalc'h \"%s\"\n"
@@ -348,39 +348,39 @@ msgstr "n'haller ket despizañ poent kenstrollañ ar gwrizienn %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "E mod lenn nemetken eo kenstrollet ar parzhad %s\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "pladenn"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "fazi en ur c'hrouiñ ar restr padennek evit ar pellgargañ\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "direizh eo an url '%s'\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "fazi en ur adkavout ar restr '%s' adalek %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"fazi en ur adkavout ar restr '%s' adalek %s : re vras eo ment ar "
"pellgargadur\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "krennet e seblant bezañ %s : %jd/%jd eizhbit\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "fazi en ur pellgargañ %s\n"
@@ -601,199 +601,194 @@ msgstr "mankout a ra ar sinadur PGP"
msgid "invalid PGP signature"
msgstr "direizh eo ar sinadur PGP"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "direizh pe kontronet eo an delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "c'hwitadenn war pegell an delta"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "n'haller ket kejañ an holl amzalc'hoù"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "tabutoù en amzalc'hoù"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "tabut er restroù"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "c'hwitadenn war atoradur restroù 'zo"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "direizh eo ar bomm reol"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "fazi libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "pellgargañ fazi al levraoueg"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "fazi gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "fazi en ur gervel ar pellgarger diavaez"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "fazi dic'hortoz"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "mankout a ra ar restr marilhañ %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "n'haller ket dilemel ar restr marilhañ %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
msgstr "Mankout a ra bukennoù delusker er c'hrog: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
msgstr "Mankout a ra rizh an delusker er c'hrog: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
msgstr "Mankout a ra gwezhiadur an delusker er c'hrog: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
msgstr "Mankout a ra an dibarzh Exec er c'hrog: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
msgstr "Mankout a ra an dibarzh When er c'hrog: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
msgstr "AbortOnFail lakaet evit ar c'hrog PostTransaction: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
msgstr "fazi en ul lenn ar c'hrog %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
msgstr "krog %s linenn %d: dibarzh didalvoudek %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
msgstr "krog %slinenn %d: dibarzh didalvoudek %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
msgstr "krog %s linenn %d: gwerzh didalvoudek %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
msgstr "krog %s linenn %d: flastrañ despizadur kent %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
msgstr "krog %s linenn %d: n'haller ket arventennañ an dibarzh (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
msgstr "n'haller ket lañsañ ar c'hrog %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "n'haller ket digeriñ ar c'havlec'h : %s : %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
msgstr "n'haller ket digeriñ ar restr: %s %s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "n'heller ket kaout stad ar restr %s : %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
msgstr "n'haller ket lenn ar c'havlec'h: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "n'haller ket kargañ ar metaroadennoù a-bezh evit ar pakad %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "n'haller ket kavout %s er stlennvon -- laosket a-gostez\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "o dilemel %s eus ar roll bukenn\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "n'heller ket dilemel ar restr '%s' : %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
msgstr "n'haller ket gwarediñ %sabalamour d'an dic'hlann PATH_MAX\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "n'heller ket dilemel %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "n'haller ket dilemel an enankad stlennvon %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "n'haller ket dilemel an enankad '%s' eus ar c'hrubuilh\n"
@@ -801,141 +796,156 @@ msgstr "n'haller ket dilemel an enankad '%s' eus ar c'hrubuilh\n"
#: lib/libalpm/signing.c:171
#, c-format
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
msgstr "Ne gaver ket an droñsell foran; lañset ho peus '%s'?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "Fazi GPGME: %s\n"
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "n'haller ket skrivañ en droñsell\n"
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s : mankout a ra ar sinadur dleet\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
msgstr "%s: mentrezh ar sinadur \"%s\" n'eo ket fizius-tre\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
msgstr "%s: dianav zo an alc'hwez \"%s\"\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
msgstr "%s: mentrezh sinadur anskor\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s : o leuskel an hizivadenn pakad a-gostez (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s : o leuskel a-gostez an distro d'an handelv kozhoc'h (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s : o distreiñ eus an handelv %s betek an hini %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s : nevezoc'h eo an handelv lec'hel (%s) evit %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "o leuskel an erlec'hiadur pakad a-gostez (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "n'haller ket erlec'hiañ %s gant %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "tabutoù n'haller ket diskoulmañ a zo bet dinoet\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "o dilemel '%s' eus ar roll bukenn dre m'en deus un tabut gant '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "c'hwitadenn war atoradur restroù 'zo\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "n'eus ket plas dieub a-walc'h war ar bladenn\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "n'haller ket erounit an treuzkas dilemel\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "n'haller ket erounit an treuzkas\n"
@@ -970,52 +980,52 @@ msgstr "n'haller ket skrivañ er gorzenn (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "n'haller ket lenn ar gorzenn (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "n'haller ket krouiñ ar gorzenn (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "n'haller ket genel un araezad nevez (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "n'haller ket kemmañ ar c'havlec'h gwrizienn (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "c'hwitadenn war galv execv (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "c'hwitadenn war galv waitpid (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "c'hwitadenn war erounezadur an urzh\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Arhent dianav"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "arsavet eo bet an urzh gant an arhent %d : %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "n'eus krubuilh %s ebet, o krouiñ...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

File diff suppressed because it is too large Load Diff

View File

@@ -7,8 +7,8 @@
# David Kolibáč <david@kolibac.cz>, 2011
# David Macek <david.macek.0@gmail.com>, 2018
# IAmNotImportant, 2017
# Jaroslav Lichtblau <dragonlord@seznam.cz>, 2014-2015
# Jaroslav Lichtblau <dragonlord@seznam.cz>, 2014
# Jaroslav Lichtblau <jlichtblau@seznam.cz>, 2014-2015
# Jaroslav Lichtblau <jlichtblau@seznam.cz>, 2014
# mmm <markotahal@gmail.com>, 2013
# mmm <markotahal@gmail.com>, 2011
# IAmNotImportant, 2017
@@ -18,9 +18,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 06:59+0000\n"
"Last-Translator: David Macek <david.macek.0@gmail.com>\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Czech (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/cs/)\n"
"Language: cs\n"
@@ -30,53 +30,53 @@ msgstr ""
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n "
"<= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s je aktuální -- vynechat\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s je aktuální -- přeinstalovat\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "snížení verze balíčku %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "nedostatek paměti pro alokaci objektu"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "varování při rozbalování %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "nelze rozbalit %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "nelze přejmenovat %s na %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"soubor nenalezen v seznamu souborů balíčku %s. přeskakuje se rozbalení %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "nelze rozbalit %s%s: příliš dlouhá cesta"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -85,7 +85,7 @@ msgstr ""
"přístupová práva adresáře %s se neshodují\n"
"souborový systém: %o balíček: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -94,101 +94,101 @@ msgstr ""
"rozdílný vlastník adresáře %s\n"
"souborový systém: %u:%u balíček: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "rozbalení: adresář nebyl přepsán souborem %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "nelze rozbalit %s.pacnew: příliš dlouhá cesta"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "nelze určit aktuální pracovní adresář\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "nelze změnit adresář na %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "nelze obnovit pracovní adresář (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "nastal problém při aktualizaci %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "nastal problém při instalaci %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "nelze aktualizovat záznam databáze %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "nelze přidat položku '%s' do mezipaměti\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "chyba při čtení souboru %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "odstraňuje se chybná databáze: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "nelze změnit adresář %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "chybný název záznamu v databázi '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "duplicitní záznam v databázi '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "poškozený záznam v databázi '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "nelze otevřít soubor %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "databáze %s je nekonzistentní: nesouhlasí jméno balíčku %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "databáze %s je nekonzistentní: nesouhlasí verze balíčku %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "neznámý způsob ověření pro balíček %s: %s\n"
@@ -229,42 +229,42 @@ msgstr "neplatná verze balíčku v %s\n"
msgid "missing package metadata in %s\n"
msgstr "chybí metadata balíčku v %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "nelze načíst soubor s podpisy: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "požadovaný klíč není v klíčence\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "odstraněn neplatný soubor: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "nelze načíst soubor s popisem balíčku '%s' z databáze '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "nelze přečíst databázi '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "databáze %s je nekonzistentní: jméno balíčku %s je nepřípustné\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "databáze %s je nekonzistentní: jméno balíčku %s je příliš dlouhé\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "neznámý soubor databáze: %s\n"
@@ -289,12 +289,12 @@ msgstr "%s bude odstraněn po %s, na kterém závisí\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s bude nainstalován před %s, na kterém závisí\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignoruje se balíček %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "nelze vyřešit \"%s\", závislost \"%s\"\n"
@@ -349,39 +349,39 @@ msgstr "nepodařilo se určit kořen přípojného bodu %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "Diskový oddíl %s je připojen jen pro čtení\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disk"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "nepodařilo se vytvořit dočasný soubor pro stahování\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "URL '%s' je chybná\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "selhalo získání souboru '%s' z %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"selhalo získání souboru '%s' z %s : překročení očekávané velikosti "
"stahování\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s se zdá být zkrácen: %jd/%jd bytů\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "selhalo stahování %s\n"
@@ -601,199 +601,194 @@ msgstr "chybějící podpis PGP"
msgid "invalid PGP signature"
msgstr "neplatný podpis PGP"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "neplatný nebo poškozený delta rozdíl"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "aplikace delta rozdílu selhala"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "nelze vyřešit závislosti"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "konfliktní závislosti"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "konfliktní soubory"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "selhalo získání některých souborů"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "nesprávný regulární výraz"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "chyba knihovny libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "chyba knihovny pro stahování souborů"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "chyba v gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "chyba volání externího programu pro stahování souborů"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "neočekávaná chyba"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "chybí soubor zámku %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "nelze odstranit zamykací soubor %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr "Chybí cíle pro triggery v hooku: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr "Chybí typ triggeru v hooku: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr "Chybí operace triggeru v hooku: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr "Chybí volba Exec v hooku: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr "Chybí volba When v hooku: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr "V hooku typu PostTransaction bylo nastaveno AbortOnFail: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr "chyba při čtení hooku %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "v hooku %s na řádku %d: neplatná volba %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr "v hooku %s na řádku %d: neplatná sekce %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr "v hooku %s na řádku %d: neplatná hodnota %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr "v hooku %s na řádku %d: přepsání předchozí definice volby %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr "v hooku %s na řádku %d: nelze nastavit volbu (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr "nelze spustit hook %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "nelze otevřít adresář %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "nelze otevřít soubor: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "nelze najít soubor %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "nelze přečíst adresář: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "nelze zcela načíst metadata pro balíček %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "nelze nalézt %s v databázi -- vynechat\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "'%s' odstraněn ze seznamu cílů\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "nelze odstranit soubor '%s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr "nelze zazálohovat %s kvůli přetečení PATH_MAX\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "nelze odstranit %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "nelze odstranit záznam databáze %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "nelze odstranit položku '%s' z mezipaměti\n"
@@ -803,141 +798,154 @@ msgstr "nelze odstranit položku '%s' z mezipaměti\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr "Nebyla nalezena veřejná klíčenka; spustili jste '%s'?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "Chyba GPGME: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "do klíčenky nelze zapisovat\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "klíč \"%s\" se nepodařilo importovat\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
"klíč %s, \"%s\" byl nalezen na serveru s klíči, ale do klíčenky nelze "
"zapisovat\n"
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr "klíč \"%s\" nebylo možné vzdáleně vyhledat\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: chybí vyžadovaný podpis\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr "%s: podpis od \"%s\" má částečnou důvěru\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr "%s: u podpisu od \"%s\" není známá úroveň důvěry\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr "%s: podpis od \"%s\" je nedůvěryhodný\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s: klíč \"%s\" je neznámý\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr "%s: klíč \"%s\" je vypnut\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s: podpis od \"%s\" vypršel\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s: podpis od \"%s\" je neplatný\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: chyba formátu podpisu\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: nepodporovaný formát podpisu\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignoruje se aktualizace balíčku (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignoruje se snížení verze balíčku (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: snížení z verze %s na verzi %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: lokální verze (%s) je novější než v %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignoruje se náhrada balíčku (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "nelze nahradit soubor %s souborem %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "zjištěn konflikt nerozlišitelných balíčků\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "'%s' odstraněn ze seznamu cílů, protože je konfliktní s '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "selhalo získání některých souborů\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "není dostatek volného místa na disku\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "nelze provést transakci pro odstranění\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "nelze provést transakci\n"
@@ -972,52 +980,52 @@ msgstr "nelze zapisovat do roury (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "nelze číst z roury (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "nepodařilo se vytvořit rouru (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "nelze spustit nový proces (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "nelze změnit kořenový adresář (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "volání execv selhalo (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "volání waitpid selhalo (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "příkaz se nepodařilo spustit správně\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Neznámý signál"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "příkaz ukončen signálem %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "neexistuje mezipaměť %s, vytváří se...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -9,13 +9,13 @@
# jakobw <jakob.wadsager@gmail.com>, 2012
# Joe Hansen <joedalton2@yahoo.dk>, 2011,2013
# scootergrisen, 2017
# scootergrisen, 2017-2018
# scootergrisen, 2017-2019
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-06-07 09:48+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-14 00:27+0000\n"
"Last-Translator: scootergrisen\n"
"Language-Team: Danish (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/da/)\n"
@@ -25,53 +25,53 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s er opdateret - springer over\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s er opdateret - springer over\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "nedgraderer pakke %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "kan ikke allokere diskarkiv-objekt"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "advarsel givet under udpakning %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "kunne ikke udpakke %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "kunne ikke omdøbe %s til %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"fil ikke fundet i fillisten for pakke %s. springer over udpakkelse af %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "kan ikke pakke %s%s ud: sti for lang"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -80,7 +80,7 @@ msgstr ""
"mapperettigheder er forskellige for %s\n"
"filsystem: %o pakke: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -89,101 +89,101 @@ msgstr ""
"mapperettigheder er forskellige for %s\n"
"filsystem: %u:%u pakke: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "udtræk: overskriver ikke mappe med fil %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "kan ikke pakke %s.pacnew ud: sti for lang"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "kunne ikke hente nuværende arbejdsmappe\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "kunne ikke ændre mappe til %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "kunne ikke genskabe arbejdsmappe (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "der opstod et problem under opgradering %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "der opstod et problem under installation af %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "kunne ikke opdatere databasepunkt %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "kunne ikke tilføje punkt »%s« i cache\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "der opstod en fejl under læsning af fil %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "fjerner ugyldig database: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "kunne ikke oprette mappe %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "ugyldigt navn for databasepunkt '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "duplikeret databasepunkt '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "beskadiget databasepunkt '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "kunne ikke åbne fil %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s-database er inkonsistent: forskellige navne på pakke %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "%s-database er inkonsistent: forskellige versioner på pakke %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "ukendt valideringstype for pakke %s: %s\n"
@@ -224,42 +224,42 @@ msgstr "ugyldig pakkeversion i %s\n"
msgid "missing package metadata in %s\n"
msgstr "manglende pakkemetadata i %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "kunne ikke læse underskriftfil: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "krævede nøgle mangler fra nøglering\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "fjerner ugyldig fil: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "kunne ikke fortolke pakkebeskrivelsesfil '%s' fra db '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "kunne ikke læse db '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "%s-database er inkonsistent: filnavnet på pakken %s er ugyldigt\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "%s-database er inkonsistent: filnavnet på pakken %s er for langt\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "ukendt databaseful: %s\n"
@@ -284,12 +284,12 @@ msgstr "%s vil blive fjernet efter dennes %s-afhængighed\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s vil blive installeret før dennes %s-afhængighed\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignorerer pakke %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "kan ikke læse '%s', en afhængighed af '%s'\n"
@@ -344,39 +344,39 @@ msgstr "kunne ikke bestemme rodmonteringspunkt %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "Partition %s er monteret som læs-kun\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disk"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "kunne ikke oprette midlertidig fil til hentning\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "adressen '%s' er ugyldig\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "fejlede i indhentning af fil '%s' fra %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"kunne ikke indhente fil '%s' fra %s: forventet downloadstørrelse "
"overskredet\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s ser ud til at være afkortet: %jd/%jd byte\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "kunne ikke hente %s\n"
@@ -596,199 +596,194 @@ msgstr "manglende PGP-signatur"
msgid "invalid PGP signature"
msgstr "ugyldig PGP-signatur"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "ugyldig eller ødelagt delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "deltarettelse (patch) fejlede"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "kunne ikke tilfredsstille afhængigheder"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "konfliktende afhængigheder"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "konfliktende filer"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "kunne ikke indhente nogle filer"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "ugyldigt regulært udtryk"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "biblioteksarkivfejl"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "hent biblioteksfejl"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme fejl"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "fejl under opstart af ekstern hentningsprogram"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "kompileret uden understøttelse af signatur"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "uventet fejl"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "låsefil mangler %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "kunne ikke fjerne låsningsfil %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr "Manglende udløsermål i krog: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr "Manglende udløsertype i krog: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr "Manglende udløserhanlding i krog: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr "Manglende Exec-tilvalg i krog: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr "Manglende When-tilvalg i krog: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr "AbortOnFail sat for PostTransaction-hook: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr "fejl ved læsning af hook %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "hook %s linje %d: ugyldigt tilvalg %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr "hook %s linje %d: ugyldigt afsnit %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr "hook %s linje %d: ugyldig værdi %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr "hook %s linje %d: overskriver forrige definition af %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr "hook %s linje %d: kan ikke sætte tilvalg (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr "kan ikke køre hook %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "kunne ikke åbne mappe: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "kunne ikke åbne fil: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "kunne ikke køre (stat) fil %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "kunne ikke læse mappe: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "kunne ikke fuldt indlæse metadata for pakke %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "kunne ikke finde %s i database - springer over\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "fjerner %s fra målliste\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "kan ikke fjerne fil »%s«:%s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr "kunne ikke sikkerhedskopiere %s på grund af PATH_MAX-overløb\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "kan ikke fjerne %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "kunne ikke fjerne databasepunkt %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "kunne ikke fjerne punkt '%s' fra cache\n"
@@ -798,140 +793,154 @@ msgstr "kunne ikke fjerne punkt '%s' fra cache\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr "Offentlig nøglering ikke fundet. Har du kørt '%s'?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "Fejl ved GPGME: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr "slår nøglen %s op med WKD\n"
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "fejl ved gpg: %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "der kan ikke skrives til nøglering\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr "nøglen\"%s\" på nøgleserver\n"
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "nøglen \"%s\" kunne ikke importeres\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
"nøglen %s, \"%s\" fundet på nøgleserver, der kan ikke skrives til nøglering\n"
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr "nøglen \"%s\" kunne ikke fjernopslås\n"
msgstr "nøglen \"%s\" kunne ikke opslås eksternt\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: mangler krævet signatur\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr "%s: signatur fra \"%s\" er marginelt betroet\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr "%s: signatur fra \"%s\" er ukendt betroet\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr "%s: signatur fra \"%s\" skal aldrig betroes\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s: nøgelen \"%s\" er ukendt\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr "%s: nøglen \"%s\" er deaktiveret\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s: signatur fra \"%s\" er udløbet\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s: signatur fra \"%s\" er ugyldig\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: fejl i signaturformat\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: signaturformat understøttes ikke\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignorerer pakkeopgradering (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignorerer pakkenedgradering (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: nedgraderer fra version %s til version %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: lokal (%s) er nyere end %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignorerer pakkeerstatning (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "kan ikke erstatte %s med %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "pakkekonflikter, der ikke kan løses, er detekteret\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "fjerner »%s« fra målliste da det konflikter med »%s«\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "kunne ikke indhente nogle filer\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "kunne ikke læse filen %s: %s\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "ikke nok ledig diskplads\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "kunne ikke indsende (commit) fjernelsestransaktion\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "kunne ikke indsende (commit) transaktion\n"
@@ -966,52 +975,52 @@ msgstr "kan ikke skrive til pipe (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "kan ikke læse fra pipe (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "kunne ikke oprette pipe (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "kunne ikke forgren en ny proces (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "kunne ikke ændre rodmappen (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "kald til execv fejlede (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "kald til waitpid fejlede (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "kommando kunne ikke udføres korrekt\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Ukendt signal"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "kommando afbrudt af signal %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "ingen %s-cache findes, opretter...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "kunne ikke finde eller oprette pakke-cache, bruger i stedet %s\n"

View File

@@ -4,6 +4,7 @@
#
# Translators:
# Dan McGee <dpmcgee@gmail.com>, 2011
# Dieter S <ptpsmail@web.de>, 2019
# Frank Theile, 2018
# Frank Theile, 2018
# Jakob Gahde <j5lx@fmail.co.uk>, 2014-2015
@@ -20,9 +21,9 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 15:58+0000\n"
"Last-Translator: Frank Theile\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: German (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/de/)\n"
"Language: de\n"
@@ -31,54 +32,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s ist aktuell -- Überspringe\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s ist aktuell -- Reinstalliere\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "Downgrade des Paketes %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "Archivobjekt konnte nicht reserviert werden"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "Es erscheint eine Warnung, wenn %s extrahiert wird (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "Konnte %s nicht entpacken (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "Konnte %s nicht in %s umbenennen (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"Datei nicht in Dateiliste des Pakets %s gefunden. Überspringe Entpacken von "
"%s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "konnte %s%s nicht entpacken: Pfad zu lang"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -87,7 +88,7 @@ msgstr ""
"Verzeichnis-Berechtigungen unterscheiden sich für %s\n"
"Dateisystem: %o Paket: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -96,105 +97,105 @@ msgstr ""
"Verzeichnis-Eigentümer unterscheidet sich für %s\n"
"Dateisystem: %u:%u Paket: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "Entpacken: Überschreibe Verzeichnis nicht mit Datei %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "konnte %s.pacnew nicht entpacken: Pfad zu lang"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "Konnte aktuelles Arbeitsverzeichnis nicht ermitteln\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "Konnte nicht zu Verzeichnis %s wechseln (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "Konnte das Arbeitsverzeichnis (%s) nicht wiederherstellen\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "Fehler traten auf, während %s aktualisiert wurde\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "Fehler traten bei der Installation von %s auf\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "Konnte Datenbankeintrag %s-%s nicht aktualisieren\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "Konnte Eintrag '%s' nicht zum Pufferspeicher hinzufügen\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "Fehler beim Lesen der Datei %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "Entferne die ungültige Datenbank: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "Konnte Verzeichnis %s nicht erstellen: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "Ungültiger Name für Datenbank-Eintrag '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "Doppelter Datenbank-Eintrag '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "Beschädigter Datenbank-Eintrag '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "Konnte Datei %s nicht öffnen: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr ""
"Die Datenbank von %s ist inkonsistent: Die Paketnamen für %s stimmen nicht "
"überein\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"Die Datenbank von %s ist inkonsistent: Die Versionsnummern für das Paket %s "
"stimmen nicht überein\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "Unbekannter Validierungstyp für das Paket %s: %s\n"
@@ -235,47 +236,47 @@ msgstr "Ungültige Paketversion in %s\n"
msgid "missing package metadata in %s\n"
msgstr "Fehlende Paket-Metadaten in %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "Konnte die Signatur-Datei nicht lesen: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "Erforderlicher Schlüssel fehlt im Schlüsselbund\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "Entferne ungültige Datei: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"Konnte Paket-Beschreibungsdatei '%s' der Datenbank '%s' nicht analysieren\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
msgstr "konnte Datenbank '%s' (%s) nicht lesen\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"Datenbank %s ist inkonsistent: Der Dateiname des Paketes %s ist nicht "
"erlaubt\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"Die Datenbank von %s ist inkonsistent: Der Dateiname des Paketes %s ist zu "
"lang\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "Unbekannte Datenbankdatei: %s\n"
@@ -300,12 +301,12 @@ msgstr "%s wird nach seiner Abhängigkeit %s entfernt werden\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s wird vor seiner Abhängigkeit %s installiert werden\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "Ignoriere Paket %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "Kann \"%s\" nicht auflösen (eine Abhängigkeit von \"%s\")\n"
@@ -362,39 +363,39 @@ msgstr "Konnte den Root-Einhängepunkt %s nicht ermitteln\n"
msgid "Partition %s is mounted read only\n"
msgstr "Die Partition %s ist so eingehängt, dass sie nur gelesen werden kann\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "Platte"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "Konnte temporäre Datei für den Download nicht anlegen\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "URL '%s' ist ungültig\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "Konnte Datei '%s' nicht von %s übertragen : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"Konnte Datei '%s' nicht von %s empfangen: Erwartete Downloadgröße "
"überschritten\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s scheint abgeschnitten zu sein: %jd/%jd Bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "Konnte %s nicht herunterladen\n"
@@ -615,199 +616,194 @@ msgstr "Fehlende PGP-Signatur"
msgid "invalid PGP signature"
msgstr "Ungültige PGP-Signatur"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "Ungültiges oder beschädigtes Delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "Delta-Patch fehlgeschlagen"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "Kann Abhängigkeiten nicht erfüllen"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "In Konflikt stehende Abhängigkeiten"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "In Konflikt stehende Dateien"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "Konnte manche Dateien nicht übertragen"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "Ungültiger Regulärer Ausdruck"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive-Fehler"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "Fehler in der Bibliothek für Downloads"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme-Fehler"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "Fehler beim Aufruf eines externen Downloaders"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "Kompiliert ohne Signatur-Unterstützung"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "Unerwarteter Fehler"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "%s fehlt in Sperrdatei\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "Konnte Sperrdatei %s nicht entfernen\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
msgstr "Fehlende Exec-Option im hook: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
msgstr "Fehlende Exec-Option im hook: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
msgstr "Fehler beim Lesen des hooks %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "Hook %s, Zeile %d: ungültige Option %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
msgstr "hook %s, Zeile %d: Ungültige Sektion %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
msgstr "hook %s, Zeile %d: Ungültiger Wert %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
msgstr "hook %s, Zeile %d: Üerschreibe vorherige Definition von %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
msgstr "hook %s, Zeile %d: Kann die Option (%s) nicht setzen\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
msgstr "Kann den hook %s nicht starten: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "Konnte das Verzeichnis nicht öffnen: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
msgstr "Konnte die Datei nicht öffnen: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "Konnte Status-Information für die Datei %s nicht ermitteln: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
msgstr "Konnte Verzeichnis nicht lesen: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "Konnte die Metadaten für Paket %s-%s nicht vollständig laden\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "Konnte %s nicht in Datenbank finden -- Überspringe\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "Entferne '%s' aus der Ziel-Liste\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "Kann Datei '%s' nicht entfernen: %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
msgstr "Kann kein Backup von %s erstellen, auf Grund eines PATH_MAX overflow\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "Konnte %s nicht entfernen (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "Konnte Datenbank-Eintrag %s-%s nicht entfernen\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "Konnte Eintrag '%s' nicht aus dem Puffer entfernen\n"
@@ -817,139 +813,154 @@ msgstr "Konnte Eintrag '%s' nicht aus dem Puffer entfernen\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "Schlüssebund ist nicht schreibbar\n"
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
msgstr "Schlüssel \"%s\" konnte nicht importiert werden\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
msgstr "Schlüssel \"%s\" konnte nicht entfernt abgerufen werden\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: Erforderliche Signatur fehlt\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
msgstr "%s: Schlüssel \"%s\" ist unbekannt\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
msgstr "%s: Schlüssel \"%s\" ist deaktiviert\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
msgstr "%s: Signatur von \"%s\" ist abgelaufen\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
msgstr "%s: Signatur von \"%s\" ist ungültig\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
msgstr "%s: Signaturformatfehler\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
msgstr "%s: nicht unterstütztes Signaturformat\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: Ignoriere Paket-Aktualisierung (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: Ignoriere Paket-Downgrade (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: Downgrade von Version %s zu Version %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: Lokale Version (%s) ist neuer als %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "Ignoriere Paket-Ersetzung (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "Kann %s nicht durch %s ersetzen\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "Nicht auflösbare Paketkonflikte gefunden\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "Entferne '%s' aus der Ziel-Liste, da es mit '%s' in Konflikt steht\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "Konnte einige Dateien nicht übertragen\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "konnte die Datei nicht lesen %s: %s\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "Nicht genug freier Festplattenspeicher\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "Konnte Löschvorgang nicht durchführen\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "Konnte den Vorgang nicht durchführen\n"
@@ -984,52 +995,52 @@ msgstr "konnte nicht in Weiterleitung schreiben (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "konnte nicht von Weiterleitung lesen (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "Konnte Weiterleitung nicht erstellen (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "Konnte keinen neuen Prozess starten (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "Konnte Root-Verzeichnis nicht wechseln (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "Konnte execv nicht aufrufen (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "Aufruf von waitpid fehlgeschlagen (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "Befehl konnte nicht korrekt ausgeführt werden\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Unbekanntes Signal"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "Befehl unterbrochen durch Signal %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "Es existiert kein %s-Puffer, erstelle...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -7,7 +7,7 @@
# Achilleas Pipinellis, 2014
# Achilleas Pipinellis, 2013
# Achilleas Pipinellis, 2013
# Christos Nouskas <nous@archlinux.us>, 2011,2013-2014,2017
# Christos Nouskas <nous@archlinux.us>, 2011,2013-2014,2017,2019
# Dan McGee <dpmcgee@gmail.com>, 2011
# ifaigios <ifaigios@gmail.com>, 2015
# ifaigios <ifaigios@gmail.com>, 2015
@@ -17,8 +17,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Greek (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/el/)\n"
@@ -28,54 +28,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s ενημερωμένο -- παράλειψη\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s ενημερωμένο -- επανεγκατάσταση\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "υποβάθμιση πακέτου %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "αδυναμία κατανομής αντικειμένου αρχείου δίσκου"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "προειδοποίηση κατά την εξαγωγή του %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "αδυναμία εξαγωγής %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "αδυναμία μετονομασίας %s σε %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"αρχείο δεν βρέθηκε στην λίστα αρχείων του πακέτου %s. παράλειψη εξαγωγής του "
"%s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "αδυναμία εξαγωγής %s%s: πολύ μεγάλο μήκος διαδρομής"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -84,7 +84,7 @@ msgstr ""
"τα δικαιώματα καταλόγου διαφέρουν στο %s\n"
"σύστημα αρχείων: %o πακέτο: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -93,101 +93,101 @@ msgstr ""
"κυριότητα καταλόγου διαφορετική από του %s\n"
"σύστημα αρχείων: %u:%u πακέτου: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "εξαγωγή: μη αντικατάσταση καταλόγου με αρχείο %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "αδυναμία εξαγωγής %s.pacnew: πολύ μεγάλο μήκος διαδρομής"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "αδυναμία χρήσης τρέχοντος καταλόγου\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "αδυναμία μετάβασης στον κατάλογο %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "αδυναμία επαναφοράς καταλόγου εργασίας (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "πρόβλημα κατά την αναβάθμιση του %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "πρόβλημα κατά την εγκατάσταση του %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "αδυναμία ενημέρωσης εγγραφής βάσης %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "αδυναμία προσθήκης εγγραφής '%s' στην κρύπτη\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "σφάλμα ανάγνωσης αρχείου %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "διαγραφή άκυρης βάσης: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "αδυναμία δημιουργίας καταλόγου %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "άκυρο όνομα εγγραφής βάσης '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "διπλότυπη εγγραφή βάσης '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "κατεστραμμένη εγγραφή βάσης '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "αδυναμία ανάγνωσης αρχείου %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "ανακολουθία στην βάση %s: αναντιστοιχία ονόματος πακέτου %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "ανακολουθία στην βάση %s: ασυμφωνία έκδοσης πακέτου %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "άγνωστος τύπος επικύρωσης πακέτου %s: %s\n"
@@ -228,45 +228,45 @@ msgstr "άκυρη έκδοση πακέτου στο %s\n"
msgid "missing package metadata in %s\n"
msgstr "απόντα μετα-δεδομένα πακέτου στο %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "αδυναμία ανάγνωσης αρχείου υπογραφής: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr ""
"απόν κλειδί από τον κλειδούχο\n"
"\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "διαγραφή άκυρου αρχείου: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"αδυναμία ανάλυσης αρχείου περιγραφής πακέτου '%s' στη βάση δεδομένων '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
msgstr "αδυναμία ανάγνωσης βάσης '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "ασυνέπεια βάσης %s: μη έγκυρο όνομα πακέτου %s\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "ασυνέπεια βάσης %s: πολύ μεγάλο όνομα πακέτου %s\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "άγνωστο αρχείο βάσης: %s\n"
@@ -291,12 +291,12 @@ msgstr "κατάργηση του %s μετά την εξάρτησή του %s\
msgid "%s will be installed before its %s dependency\n"
msgstr "εγκατάσταση του %s πρίν από την εξάρτησή του %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "παράβλεψη πακέτου %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "αδυναμία εύρεσης του \"%s\", εξάρτησης του \"%s\"\n"
@@ -353,38 +353,38 @@ msgstr "αδυναμία καθορισμού ριζικού σημείου πρ
msgid "Partition %s is mounted read only\n"
msgstr "Η κατάτμηση %s είναι προσαρτημένη μόνο για ανάγνωση\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "δίσκο"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "αποτυχία δημιουργίας προσωρινού αρχείου λήψης\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "άκυρη διεύθυνση '%s'\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "αποτυχία λήψης αρχείου '%s' από %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"αποτυχία λήψης αρχείου '%s' από %s : υπέρβαση αναμενομένου μεγέθους λήψης\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "το %s δείχνει ημιτελές: %jd/%jd bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "αποτυχία λήψης %s\n"
@@ -604,199 +604,194 @@ msgstr "απούσα υπογραφή PGP"
msgid "invalid PGP signature"
msgstr "άκυρη υπογραφή PGP"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "άκυρο ή κατεστραμμένο delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "αποτυχία μπάλωματος delta"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "αδυναμία επίλυσης εξαρτήσεων"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "διένεξη εξαρτήσεων"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "διένεξη αρχείων"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "αποτυχία λήψης κάποιων αρχείων"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "άκυρη κανονική έκφραση"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "σφάλμα libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "σφάλμα βιβλιοθήκης λήψης"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "σφάλμα gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "σφάλμα κλήσης προγράμματος λήψης"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "απρόσμενο σφάλμα"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "απόν αρχείο κλειδώματος %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "αδυναμία διαγραφής αρχείου κλειδώματος %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
msgstr "Απόντες διακόπτες στόχων στο hook: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
msgstr "Απών τύπος διακόπτη στο hook: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
msgstr "Απούσα λειτουργία διακόπτη στο hook: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
msgstr "Απούσα επιλογή Exec στο hook: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
msgstr "Απούσα επιλογή When στο hook: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
msgstr "Τέθηκε AbortOnFail στο PostTransaction hook: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
msgstr "σφάλμα ανάγνωσης hook %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
msgstr "hook %s γραμμή %d: άκυρη επιλογή %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
msgstr "hook %s γραμμή %d: άκυρη ενότητα %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
msgstr "hook %s γραμμή %d: άκυρη τιμή %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
msgstr "hook %s γραμμή %d: αντικατάσταση προηγούμενου ορισμού %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
msgstr "hook %s γραμμή %d: αδυναμία ορισμού επιλογής (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
msgstr "αδυναμία εκτελέσεως hook %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "αδυναμία ανοίγματος καταλόγου %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
msgstr "αδυναμία ανοίγματος αρχείου: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "αδυναμία εντοπισμού αρχείου %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
msgstr "αδυναμία ανάγνωσης καταλόγου: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "αδυναμία πλήρους φόρτωσης μεταδεδομένων πακέτου %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "δεν βρέθηκε το %s στη βάση -- παράλειψη\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "αφαίρεση του %s από λίστα διεκπεραίωσης\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "αδυναμία διαγραφής αρχείου '%s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
msgstr "αδυναμία εφεδρικής αντιγραφής %s εξαιτίας υπερχείλισης PATH_MAX\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "αδυναμία κατάργησης %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "αδυναμία κατάργησης εγγραφής βάσης %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "αδυναμία κατάργησης εγγραφής '%s' από κρύπτη\n"
@@ -804,142 +799,157 @@ msgstr "αδυναμία κατάργησης εγγραφής '%s' από κρ
#: lib/libalpm/signing.c:171
#, c-format
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
msgstr "Δεν ευρέθη δημόσιος κλειδούχος· εκτελέστηκε '%s';\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "σφάλμα GPGME: %s\n"
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "μη εγγράψιμος κλειδούχος\n"
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
msgstr "αδυναμία εισαγωγής κλειδιού \"%s\"\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
msgstr "αδυναμία απομεμακρυσμένης αναζήτησης κλειδιού \"%s\"\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: απούσα απαιτούμενη υπογραφή\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
msgstr "%s: υπογραφή από \"%s\" οριακής εμπιστοσύνης\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
msgstr "%s: υπογραφή από \"%s\" αγνώστου εμπιστοσύνης\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
msgstr "%s: υπογραφή από \"%s\" ουδεμίας εμπιστοσύνης\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
msgstr "%s: κλειδί \"%s\" άγνωστο\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
msgstr "%s: κλειδί \"%s\" απενεργοποιημένο\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
msgstr "%s: υπογραφή από \"%s\" ληγμένη\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
msgstr "%s: υπογραφή από \"%s\" άκυρη\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
msgstr "%s: σφάλμα μορφής υπογραφής\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
msgstr "%s: μη υποστηριζόμενη μορφή υπογραφής\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: παράβλεψη αναβάθμισης πακέτου (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: παράβλεψη υποβάθμισης πακέτου (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: υποβάθμιση από έκδοση %s στην έκδοση %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: τοπικό (%s) νεότερο από του [%s] (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "παράβλεψη αντικατάστασης πακέτου (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "αδυναμία αντικατάστασης του %s από το %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "εντοπισμός ανεπίλυτων διενέξεων πακέτων\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"αφαίρεση του '%s' από την λίστα διεκπεραίωσης λόγω διένεξης με το '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "σφάλμα λήψης μερικών αρχείων\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "μη αρκετός ελεύθερος χώρος στο δίσκο\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "αδυναμία διεκπεραίωσης διαγραφής\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "αδυναμία διεκπεραίωσης\n"
@@ -974,52 +984,52 @@ msgstr "αποτυχία εγγραφής σε αγωγό (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "αποτυχία ανάγνωσης από αγωγό (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "αδυναμία δημιουργίας αγωγού (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "αδυναμία εκκίνησης νέας διεργασίας (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "αδυναμία αλλαγής ριζικού καταλόγου (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "αποτυχία κλήσης execv (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "αποτυχία κλήσης waitpid (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "αποτυχία σωστής εκτέλεσης εντολής\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Άγνωστο σήμα"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "τερματισμός εντολής με σήμα %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "μη υπάρχουσα κρύπτη %s, δημιουργία...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "αδυναμία εύρεσης ή δημιουργίας κρύπτης πακέτων, χρήση %s\n"

View File

@@ -4,14 +4,14 @@
#
# Translators:
# Allan McRae <allan@archlinux.org>, 2013
# Allan McRae <allan@archlinux.org>, 2013-2015,2017-2018
# Allan McRae <allan@archlinux.org>, 2013-2015,2017-2019
# Dan McGee <dpmcgee@gmail.com>, 2011
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:15+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:47+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/toofishes/"
"archlinux-pacman/language/en_GB/)\n"
@@ -21,53 +21,53 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s is up to date -- skipping\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s is up to date -- reinstalling\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "downgrading package %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "cannot allocate disk archive object"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "warning given when extracting %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "could not extract %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "could not rename %s to %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"file not found in file list for package %s. skipping extraction of %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "unable to extract %s%s: path too long"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -76,7 +76,7 @@ msgstr ""
"directory permissions differ on %s\n"
"filesystem: %o package: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -85,101 +85,101 @@ msgstr ""
"directory ownership differs on %s\n"
"filesystem: %u:%u package: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "extract: not overwriting dir with file %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "unable to extract %s.pacnew: path too long"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "could not get current working directory\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "could not change directory to %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "could not restore working directory (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "problem occurred while upgrading %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "problem occurred while installing %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "could not update database entry %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "could not add entry '%s' in cache\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "error while reading file %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "removing invalid database: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "could not create directory %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "invalid name for database entry '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "duplicated database entry '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "corrupted database entry '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "could not open file %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s database is inconsistent: name mismatch on package %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "%s database is inconsistent: version mismatch on package %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "unknown validation type for package %s: %s\n"
@@ -220,42 +220,42 @@ msgstr "invalid package version in %s\n"
msgid "missing package metadata in %s\n"
msgstr "missing package metadata in %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "failed to read signature file: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "required key missing from keyring\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "removing invalid file: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "could not parse package description file '%s' from db '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "could not read db '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "%s database is inconsistent: filename of package %s is illegal\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "%s database is inconsistent: filename of package %s is too long\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "unknown database file: %s\n"
@@ -280,12 +280,12 @@ msgstr "%s will be removed after its %s dependency\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s will be installed before its %s dependency\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignoring package %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "cannot resolve \"%s\", a dependency of \"%s\"\n"
@@ -340,38 +340,38 @@ msgstr "could not determine root mount point %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "Partition %s is mounted read only\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disk"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "failed to create temporary file for download\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "URL '%s' is invalid\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "failed retrieving file '%s' from %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"failed retrieving file '%s' from %s : expected download size exceeded\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s appears to be truncated: %jd/%jd bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "failed to download %s\n"
@@ -591,199 +591,194 @@ msgstr "missing PGP signature"
msgid "invalid PGP signature"
msgstr "invalid PGP signature"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "invalid or corrupted delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "delta patch failed"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "could not satisfy dependencies"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "conflicting dependencies"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "conflicting files"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "failed to retrieve some files"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "invalid regular expression"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive error"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "download library error"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme error"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "error invoking external downloader"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "compiled without signature support"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "unexpected error"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "lock file missing %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "could not remove lock file %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr "Missing trigger targets in hook: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr "Missing trigger type in hook: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr "Missing trigger operation in hook: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr "Missing Exec option in hook: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr "Missing When option in hook: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr "AbortOnFail set for PostTransaction hook: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr "error while reading hook %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "hook %s line %d: invalid option %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr "hook %s line %d: invalid section %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr "hook %s line %d: invalid value %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr "hook %s line %d: overwriting previous definition of %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr "hook %s line %d: unable to set option (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr "unable to run hook %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "could not open directory: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "could not open file: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "could not stat file %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "could not read directory: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "could not fully load metadata for package %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "could not find %s in database -- skipping\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "removing %s from target list\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "cannot remove file '%s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr "could not backup %s due to PATH_MAX overflow\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "cannot remove %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "could not remove database entry %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "could not remove entry '%s' from cache\n"
@@ -793,139 +788,154 @@ msgstr "could not remove entry '%s' from cache\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr "Public keyring not found; have you run '%s'?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "GPGME error: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr "looking up key %s using WKD\n"
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "gpg error: %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "keyring is not writable\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr "key \"%s\" on keyserver\n"
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "key \"%s\" could not be imported\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr "key %s, \"%s\" found on keyserver, keyring is not writable\n"
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr "key \"%s\" could not be looked up remotely\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: missing required signature\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr "%s: signature from \"%s\" is marginal trust\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr "%s: signature from \"%s\" is unknown trust\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr "%s: signature from \"%s\" should never be trusted\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s: key \"%s\" is unknown\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr "%s: key \"%s\" is disabled\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s: signature from \"%s\" is expired\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s: signature from \"%s\" is invalid\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: signature format error\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: unsupported signature format\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignoring package upgrade (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignoring package downgrade (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: downgrading from version %s to version %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: local (%s) is newer than %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignoring package replacement (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "cannot replace %s by %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "unresolvable package conflicts detected\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "removing '%s' from target list because it conflicts with '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "failed to retrieve some files\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "failed to read file %s: %s\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "not enough free disk space\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "could not commit removal transaction\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "could not commit transaction\n"
@@ -960,52 +970,52 @@ msgstr "unable to write to pipe (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "unable to read from pipe (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "could not create pipe (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "could not fork a new process (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "could not change the root directory (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "call to execv failed (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "call to waitpid failed (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "command failed to execute correctly\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Unknown signal"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "command terminated by signal %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "no %s cache exists, creating...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "couldn't find or create package cache, using %s instead\n"

View File

@@ -11,8 +11,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Esperanto (http://www.transifex.com/toofishes/archlinux-"
"pacman/language/eo/)\n"
@@ -22,54 +22,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s estas ĝisdata -- preterpasante\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s estas ĝisdata -- reinstalante\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "malpromociante pakaĵon %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "maleblas disponigi diskarkivaĵon"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "averto donita dum eltirado de %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "ne eblis eltiri %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "ne eblis renomi %s al %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"dosiero ne trovita en la dosierlisto por pakaĵo %s. preterpasante eltirado "
"de %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "ne eblis eltiri %s%s: la dosierindiko estas tro longa"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -78,7 +78,7 @@ msgstr ""
"dosierujaj permesoj malsamas en\n"
"dosiersistemo %s: pakaĵo %o: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -87,101 +87,101 @@ msgstr ""
"dosieruja posedo malsamas en\n"
"dosiersistemo %s: %u:%u pakaĵo: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "eltiri: ne superskribante dosierujon kun dosiero %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "ne eblis eltiri %s.pacnew: la dosierindiko estas tro longa"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "ne eblis akiri nunan funkciantan dosierujon\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "ne eblis ŝanĝi dosierujon al %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "ne eblis restaŭri nunan funkciantan dosierujon (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "problemo okazis dum ĝisdatigo de %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "problemo okazis dum instalo de %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "ne eblis ĝisdatigi datumbazan enigon %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "ne eblis aldoni enigon '%s' en kaŝmemoro\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "eraro dum legado de dosiero %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "forigante nevalidan datumbazon: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "ne eblis krei dosierujon %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "nevalida nomo por datumbaza enigo '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "duobla datumbaza enigo '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "difektita datumbaza enigo '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "ne eblis malfermi dosieron %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "la datumbazo %s estas nekohera: noma malkongruo en la pakaĵo %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "la datumbazo %s estas nekohera: versia malkongruo en la pakaĵo %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "nekonata validiga tipo por pakaĵo %s: %s\n"
@@ -222,46 +222,46 @@ msgstr "nevalida pakaĵa versio en %s\n"
msgid "missing package metadata in %s\n"
msgstr "mankas pakaĵaj metadatumoj en %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "malsukcesis legi subskriban dosieron: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "bezonata ŝlosilo mankas de la ŝlosilingo\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "forigante nevalidan dosieron: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "ne eblis analizi priskriba dosiero de la pakaĵo '%s' el db '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"la datumbazo %s estas malkongrua: la dosiernomo de pakaĵo %s estas "
"malpermesata\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"la datumbazo %s estas malkongrua: la dosiernomo de pakaĵo %s estas tro "
"longa\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "nekonata datumbaza dosiero: %s\n"
@@ -286,12 +286,12 @@ msgstr "oni forigos %s post sia dependenco %s\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "oni instalos %s antaŭ sia dependenco %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignorante pakaĵon %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "ne eblas solvi \"%s\", dependeco de \"%s\"\n"
@@ -348,39 +348,39 @@ msgstr "ne eblis scii radikan surmetingon %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "La subdisko %s estas surmetita nurlegebla\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disko"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "malsukcesis krei provizoran dosieron por elŝuto\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "la url '%s' ne estas valida\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "malsukcesis ricevi dosieron '%s' de %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"malsukcesis ricevi dosieron '%s' de %s: atendita elŝuta grando grandigis\n"
"\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s ŝajnas esti trunkita: %jd/%jd bitokoj\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "malsukcesis elŝuti %s\n"
@@ -600,199 +600,194 @@ msgstr "mankas PGP-subskribo"
msgid "invalid PGP signature"
msgstr "nevalida PGP-subskribo"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "nevalida aŭ difektita diferencodosiero"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "diferencodosiera fliko fiaskis"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "ne eblis satigi dependencojn"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "konfliktantaj dependencoj"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "konfliktantaj dosieroj"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "malsukcesis ricevi kelkajn dosierojn"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "nevalida regula esprimo"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "eraro en libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "eraro de biblioteka elŝuto"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "eraro de gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "eraro alvokante eksteran elŝutilon"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "neatendita eraro"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "ŝlosa dosiero mankas %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "ne eblis forigi ŝlosan dosieron %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "ne eblis malfermi dosierujon: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "ne eblis statikigi dosieron %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "ne eblis tute ŝarĝi la metadatumojn por la pakaĵo %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "ne eblis trovi %s en la datumbazo -- preterpasante\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "forigante %s de la cela listo\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "ne eblas forigi dosieron '%s': '%s'\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "ne eblas forigi %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "ne eblis forigi datumbazan enigon %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "ne eblis forigi enigon '%s' el la kaŝmemoro\n"
@@ -802,141 +797,156 @@ msgstr "ne eblis forigi enigon '%s' el la kaŝmemoro\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: mankas bezonata subskribo\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignorante pakaĵan promocion (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignorante pakaĵan malpromocion (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: malpromociante de versio %s al versio %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: la loka (%s) estas pli nova ol %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignorante pakaĵan anstataŭon (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "ne eblas anstataŭi %s por %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "nesolveblaj pakaĵaj konfliktoj detektitaj\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "forigante '%s' el cela listo ĉar ĝi konfliktas kun '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "malsukcesis ricevi kelkajn dosierojn\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "ne estas sufiĉe granda malokupata diskspaco\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr ""
"malsukcesis enmeti forigan transakcion\n"
"\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "ne eblis enmeti transakcion\n"
@@ -971,52 +981,52 @@ msgstr "ne eblas skribi al dukto (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "ne eblas legi el dukto (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "ne eblis krei dukton (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "ne eblis forki novan procezon (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "ne eblis ŝanĝi la radikan dosierujon (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "alvoko al execv fiaskis (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "alvoko al waitpid fiaskis (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "la komando malsukcese rulis ĝuste\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Nekonata signalo"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "komando ĉesigita de signalo %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "neniu kaŝmemoro %s ekzistas, kreante...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "ne eblis trovi aŭ krei pakaĵan kaŝmemoron, uzante %s anstataŭ\n"

View File

@@ -11,19 +11,20 @@
# Leonel <leonelmalon@gmail.com>, 2013
# Leonel <leonelmalon@gmail.com>, 2013
# neiko <neikokz+tsfx@gmail.com>, 2011
# Pablo Lezaeta Reyes [pˈaβ̞lo lˌe̞θaˈeta rˈejɛ] <prflr88@gmail.com>, 2017
# Pablo Lezaeta Reyes [pˈaβ̞lo lˌe̞θaˈeta rˈejɛ] <prflr88@gmail.com>, 2013-2016
# Pablo Lezaeta Reyes [pˈaβ̞lo lˌe̞θaˈeta rˈejɛ] <prflr88@gmail.com>, 2017
# Pedro Román <roizheim@gmail.com>, 2013-2014,2016-2018
# picodotdev <pico.dev@gmail.com>, 2016
# prflr88 <prflr88@gmail.com>, 2017
# prflr88 <prflr88@gmail.com>, 2013-2016
# prflr88 <prflr88@gmail.com>, 2017
# Pedro Román <roizheim@gmail.com>, 2013-2014,2016-2019
# picodotdev <pico.dev@gmail.com>, 2016,2019
# prflr88 <prflr88@gmail.com>, 2017
# Swyter <Swyterzone@gmail.com>, 2015,2017-2018
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-06-22 07:25+0000\n"
"Last-Translator: Pedro Román <roizheim@gmail.com>\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 09:15+0000\n"
"Last-Translator: picodotdev <pico.dev@gmail.com>\n"
"Language-Team: Spanish (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/es/)\n"
"Language: es\n"
@@ -32,55 +33,55 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s está actualizado -- omitiéndolo\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s está actualizado -- reinstalándolo\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "revertiendo el paquete %s a una versión anterior (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr ""
"memoria insuficiente en el sistema para lograr los objetivos del archivo"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "se han advertido errores mientras se extraía %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "no se pudo extraer %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "no se pudo renombrar %s a %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"el archivo no figura en la lista de archivos del paquete %s. Omitiendo la "
"extracción de %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "no se pudo extraer %s%s: ruta demasiado larga"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -89,7 +90,7 @@ msgstr ""
"los permisos del directorio difieren respecto de %s\n"
"sistema de archivos: %o paquete: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -98,107 +99,107 @@ msgstr ""
"la propiedad del directorio difiere respecto de %s\n"
"sistema de archivos: %u:%u paquete: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr ""
"sobre la extracción: no se puede sobrescribir el directorio con el archivo "
"%s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "no se pudo extraer %s.pacnew: ruta demasiado larga"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "no se pudo determinar el directorio de trabajo actual\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "no se pudo cambiar el directorio a %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "no se pudo restaurar el directorio de trabajo (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "ocurrió un error durante la actualización de %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "ocurrió un error durante la instalación de %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "no se pudo actualizar la entrada %s-%s en la base de datos\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "no se pudo agregar la entrada «%s» a la caché\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "error al leer el archivo %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "quitando la base de datos no válida: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "no se pudo crear el directorio %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "nombre no válido para la entrada «%s» de la base de datos\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "entrada «%s» duplicada en la base de datos\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "la entrada «%s» de la base de datos está dañada\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "no se pudo abrir el archivo %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr ""
"la base de datos %s es inconsistente: nombre mal emparejado en el paquete "
"%s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"la base de datos %s es inconsistente: versión mal emparejada en el paquete "
"%s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "tipo de validación desconocida para el paquete %s: %s\n"
@@ -239,48 +240,48 @@ msgstr "versión del paquete no válida en %s\n"
msgid "missing package metadata in %s\n"
msgstr "faltan los metadatos del paquete en %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "no se pudo leer correctamente el archivo de firmas: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "la clave necesaria no está presente en el depósito\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "quitando archivo no válido: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"no se pudo analizar el archivo de descripción del paquete «%s» de la base de "
"datos «%s»\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "no se pudo leer la base de datos '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"la base de datos %s es inconsistente: el nombre del archivo del paquete %s "
"no entra dentro de lo permisible\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"la base de datos %s es inconsistente: el nombre del archivo del paquete %s "
"es demasiado largo\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "archivo de base de datos desconocido: %s\n"
@@ -305,12 +306,12 @@ msgstr "%s se quitará después de su dependencia %s\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s se instalará antes de su dependencia %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignorando el paquete %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "no se pudo resolver «%s», una dependencia de «%s»\n"
@@ -369,39 +370,39 @@ msgstr "no se pudo determinar el punto de montaje de la raíz %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "La partición %s está montada solamente en modo lectura\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disco"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "no se pudo crear el archivo temporal para la descarga\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "la dirección «%s» no es válida\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "no se pudo obtener el archivo «%s» desde %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"no se pudo obtener el archivo «%s» desde %s : el tamaño de la descarga "
"supera lo esperado\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s parece estar incompleto: %jd/%jd bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "no se pudo descargar %s\n"
@@ -622,202 +623,197 @@ msgstr "falta la firma PGP"
msgid "invalid PGP signature"
msgstr "firma PGP no válida"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "el archivo diferencial no es válido o está dañado"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "el parche del diferencial ha fallado"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "no se pudieron satisfacer las dependencias"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "dependencias en conflicto"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "archivos en conflicto"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "no se pudieron descargar algunos archivos"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "expresión regular no válida"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "error de la biblioteca libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "error de la biblioteca de descarga"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "error de gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "error al invocar al gestor de descargas externo"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "compilado sin soporte de firma"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "error inesperado"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "falta el archivo de bloqueo %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "no se pudo quitar el archivo de bloqueo %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr "Paquetes de ejecución que faltan en el «hook»: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr "Tipo de ejecución que falta en el «hook»: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr "Operación de ejecución que falta en el «hook»: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr "Falta la opción «Exec» en el «hook»: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr "Falta la opción «When» en el «hook»: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr "«AbortOnFail» establecido para el «hook» de posinstalación: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr "hubo un error al leer el «hook» %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "«hook» %s línea %d: la opción %s no es correcta\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr "«hook» %s línea %d: la sección %s no es correcta\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr "«hook» %s línea %d: el valor %s no es correcto\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr "«hook» %s línea %d: sobrescribiendo la definición de %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr "«hook» %s línea %d: no se puede especificar la opción (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr "no se pudo ejecutar el «hook» %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "no se pudo abrir el directorio: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "no se pudo abrir el archivo: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "no se pudo recuperar la información del archivo %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "no se pudo crear la carpeta: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr ""
"no se pudieron cargar completamente los metadatos para el paquete %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "no se pudo encontrar %s en la base de datos -- omitiéndolo\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "quitando %s de la lista de paquetes\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "no se pudo quitar el archivo «%s»: %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
"no se ha podido respaldar %s debido a que la ruta supera el tamaño de "
"PATH_MAX\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "no se pudo quitar %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "no se pudo quitar la entrada %s-%s de la base de datos\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "no se pudo quitar la entrada «%s» de la caché\n"
@@ -829,145 +825,158 @@ msgstr ""
"No se ha encontrado el depósito público de claves; ¿ya se ha ejecutado "
"«%s»?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "Error de GPGME: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr "buscando clave %s usando WKD\n"
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "error gpg: %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "no se puede escribir en el depósito de claves\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr "clave «%s» en servidor de claves\n"
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "no se pudo importar la clave «%s»\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
"se ha encontrado la clave %s, «%s» en el servidor de claves, pero no se "
"puede añadir al llavero porque está protegido contra escritura\n"
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr "no se pudo buscar la clave «%s» de forma remota\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: falta la firma exigida\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr "%s: la firma de «%s» es de confianza mínima\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr "%s: se desconoce el nivel de confianza de la firma de «%s»\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
"%s: la firma de «%s» no es de confianza y no se debería confiar en ella bajo "
"ningún concepto\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s: clave «%s» desconocida\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr "%s: la clave «%s» está desactivada\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s: la firma de «%s» ha expirado\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s: la firma de «%s» no es válida\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: hubo un error con el formato de la firma\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: formato de firma desconocido\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignorando la actualización del paquete (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignorando la desactualización del paquete (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: desactualizando de la versión %s a la versión %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: la versión instalada (%s) es más nueva que %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignorando el remplazo del paquete (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "no se pudo remplazar el archivo %s por %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "se han detectado paquetes con conflictos sin resolver\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"quitando «%s» de la lista de paquetes debido a que tiene conflictos con "
"«%s»\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "no se pudieron recibir algunos archivos\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "no se pudo leer el archivo %s: %s\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "no hay suficiente espacio libre en el disco\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "no se pudo realizar la operación de eliminación\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "no se pudo realizar la operación\n"
@@ -1002,52 +1011,52 @@ msgstr "no se pudo escribir en la tubería (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "no se pudo leer de la tubería (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "no se pudo crear la tubería (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "no se pudo crear un nuevo proceso (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "no se pudo cambiar el directorio raíz (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "llamada a execv fallida (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "llamada a waitpid fallida (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "la orden no se ejecutó correctamente\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "firma desconocida"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "orden terminada por la señal %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "no existe la caché de %s, creándola...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -11,15 +11,16 @@
# ice <ice.modding@gmail.com>, 2016
# Leonel <leonelmalon@gmail.com>, 2013
# neiko <neikokz+tsfx@gmail.com>, 2011
# Pablo Lezaeta Reyes [pˈaβ̞lo lˌe̞θaˈeta rˈejɛ] <prflr88@gmail.com>, 2015,2017
# Pablo Lezaeta Reyes [pˈaβ̞lo lˌe̞θaˈeta rˈejɛ] <prflr88@gmail.com>, 2015
# Pablo Lezaeta Reyes [pˈaβ̞lo lˌe̞θaˈeta rˈejɛ] <prflr88@gmail.com>, 2015,2017
# prflr88 <prflr88@gmail.com>, 2015,2017
# prflr88 <prflr88@gmail.com>, 2015
# prflr88 <prflr88@gmail.com>, 2015,2017
# prflr88 <prflr88@gmail.com>, 2015,2017
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Spanish (Latin America) (http://www.transifex.com/toofishes/"
"archlinux-pacman/language/es_419/)\n"
@@ -29,54 +30,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s ya está actualizado -- omitiendo\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s ya está actualizado -- reinstalando\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "regresando a una versión anterior del paquete %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "No se puede asignar objeto de archivo de disco"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "alerta producida mientras se extraía %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "no se pudo extraer %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "no se pudo renombrar %s a %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"el archivo no figura en la lista de archivos del paquete %s. omitiendo "
"extracción de %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "no se pudo extraer %s%s: ruta demasiado larga"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -85,7 +86,7 @@ msgstr ""
"los permisos del directorio difieren respecto de %s\n"
"sistema de archivos: %o paquete: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -94,105 +95,105 @@ msgstr ""
"la propiedad del directorio difiere respecto de %s\n"
"sistema de archivos: %u:%u paquete: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "extracto: no se puede sobrescribir el directorio con el archivo %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "no se pudo extraer %s.pacnew: ruta demasiado larga"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "no se pudo determinar el directorio de trabajo actual\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "no se pudo cambiar el directorio a %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "no se pudo restaurar el directorio de trabajo (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "ocurrió un error durante la actualización de %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "ocurrió un error durante la instalación de %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "no se pudo actualizar la entrada %s-%s en la base de datos\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "no se pudo agregar la entrada «%s» a la caché\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "error durante la lectura del archivo %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "quitando la base de datos no válida: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "no se pudo crear el directorio %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "nombre no válido para la entrada «%s» de la base de datos\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "entrada «%s» duplicada en la base de datos\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "la entrada «%s» de la base de datos está dañada\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "no se pudo abrir el archivo %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr ""
"la base de datos %s es inconsistente: nombre mal emparejado en el paquete "
"%s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"la base de datos %s es inconsistente: versión mal emparejada en el paquete "
"%s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "tipo de validación desconocida para el paquete %s: %s\n"
@@ -233,48 +234,48 @@ msgstr "versión del paquete no válida en %s\n"
msgid "missing package metadata in %s\n"
msgstr "faltan los metadatos del paquete en %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "no se pudo leer correctamente el archivo de firma: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "la clave requerida no está presente en el llavero\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "eliminando archivo no válido: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"no se pudo analizar el archivo de descripción del paquete «%s» de la base de "
"datos «%s»\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"la base de datos %s es inconsistente: el nombre del archivo del paquete %s "
"es ilegal\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"la base de datos %s es inconsistente: el nombre del archivo del paquete %s "
"es demasiado largo\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "archivo de base de datos desconocido: %s\n"
@@ -299,12 +300,12 @@ msgstr "%s será eliminado después de su dependencia %s\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s será instalado antes que su dependencia %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignorando el paquete %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "no se pudo resolver «%s», una dependencia de «%s»\n"
@@ -365,39 +366,39 @@ msgstr "no se pudo determinar el punto de montaje de la raíz %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "La partición %s está montada como solamente lectura\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disco"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "no se pudo crear el archivo temporal para la descarga\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "la dirección «%s» no es válida\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "no se pudo obtener el archivo «%s» desde %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"no se pudo obtener el archivo «%s» desde %s : tamaño de la descarga superior "
"del esperado\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s parece estar incompleto: %jd/%jd bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "no se pudo descargar %s\n"
@@ -618,200 +619,195 @@ msgstr "falta la firma PGP"
msgid "invalid PGP signature"
msgstr "firma PGP no válida"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "el archivo diferencial no es válido o está dañado"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "el parche del diferencial ha fallado"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "no se pudieron satisfacer las dependencias"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "dependencias en conflicto"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "archivos en conflicto"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "no se pudieron descargar algunos archivos"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "expresión regular no válida"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "error de la biblioteca libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "error de la biblioteca de descarga"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "error de gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "error al invocar al gestor de descargas externo"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "error inesperado"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "falta el archivo de bloqueo %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "no se pudo eliminar el archivo de bloqueo %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "no se pudo abrir el directorio: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "no se pudo recuperar la información del archivo %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr ""
"no se pudieron cargar completamente los metadatos para el paquete %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "no se pudo encontrar %s en la base de datos -- ignorándolo\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "quitando %s de la lista de objetivos\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "no se pudo quitar el archivo «%s»: %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "no se pudo eliminar %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "no se pudo quitar la entrada %s-%s de la base de datos\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "no se pudo quitar la entrada «%s» de la caché\n"
@@ -821,141 +817,156 @@ msgstr "no se pudo quitar la entrada «%s» de la caché\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: falta la firma exigida\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignorando la actualización del paquete (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignorando la desactualización del paquete (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: desactualizando de la versión %s a la versión %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: la versión instalada (%s) es más nueva que %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignorando el remplazo del paquete (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "no se pudo remplazar el archivo %s por %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "se han detectado paquetes con conflictos irresolubles\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"quitando «%s» de la lista de objetivos debido a que tiene conflictos con "
"«%s»\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "no se pudieron recibir algunos archivos\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "no hay suficiente espacio libre en el disco\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "no se pudo realizar la operación de eliminación\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "no se pudo realizar la operación\n"
@@ -990,52 +1001,52 @@ msgstr "no se pudo escribir en la tubería (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "no se pudo leer de la tubería (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "no se pudo crear la tubería (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "no se pudo crear un nuevo proceso (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "no se pudo cambiar el directorio raíz (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "llamada a execv fallida (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "llamada a waitpid fallida (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "la orden no se ejecutó correctamente\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "firma desconocida"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "orden terminada por la señal %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "no existe la caché de %s, creándola…\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -9,8 +9,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Basque (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/eu/)\n"
@@ -20,54 +20,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s egunean dago -- ezikusi\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s egunean dago -- berrinstalatu\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "bertsio zahartzen %s paketea (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "ezin da artxibo-objektua esleitu"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "oharra eman da %s erauztean (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "ezin izan da %s erauzi (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "ezin izan da %s berrizendatu %s gisa (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"ez da fitxategia aurkitu %s paketearen fitxategi zerrendan. %s ez da "
"erauziko\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "ezin izan da %s%s erauzi: bidea luzeegia da"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -76,7 +76,7 @@ msgstr ""
"direktorioaren baimenak desberdinak dira hemen %s\n"
"fitxategi sistema: %o paketea: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -86,103 +86,103 @@ msgstr ""
"fitxategi sistema: %u:%u paketea: %u:%u\n"
"\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "erauzi: ez da direktorioa %s fitxategiarekin gainidatziko\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "ezin izan da %s.pacnew erauzi: bidea luzeegia da"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "ezin izan da uneko lan direktorioa lortu\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "ezin izan da direktorioa hona aldatu %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "ezin izan da laneko direktorioa berreskuratu (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "arazo bat egon da %s bertsio berritzean\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "arazo bat egon da %s instalatzean\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "ezin izan da datu-base sarrera eguneratu %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "ezin izan da '%s' sarrera katxean gehitu\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "errorea %s fitxategia irakurtzean: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "datu-base baliogabea ezabatzen:%s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr ""
"ezin izan da %s direktorioa sortu: %s\n"
"\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "izen baliogabea '%s' datu-base sarreran\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "bikoiztutako datu-base sarrera '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "datu-base sarrera hondatua '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "ezin izan da %s fitxategia ireki: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s datu-basea kontraesankorra da: izenak ez datoz bat %s paketean\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "%s datu-basea kontraesankorra da: bertsioak ez datoz bat %s paketean\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "Balidazio mota ezezaguna %s paketearentzat: %s\n"
@@ -223,45 +223,45 @@ msgstr "paketearen bertsio baliogabea hemen %s\n"
msgid "missing package metadata in %s\n"
msgstr "paketearen metadatuak falta dira hemen: %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "sinadura fitxategiaren irakurketak huts egin du: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "beharrezko gakoa falta da gako sortan\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "fitxategi baliogabea ezabatzen: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "ezin izan da '%s' fitxategi deskripzioa prozesatu '%s' datu-basetik\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "ezin izan da '%s' datu-basea irakurri (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"%s datu-basea kontraesankorra da: %s paketearen fitxategi izena legez "
"kanpokoa da\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"%s datu-basea kontraesankorra da: %s paketearen fitxategi izena luzeegia da\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "datu-base fitxategi ezezaguna: %s\n"
@@ -286,12 +286,12 @@ msgstr "%s ezabatuko da bere %s menpekotasuna eta gero\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s instalatuko da bere %s menpekotasuna baino lehenago\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "paketea ezikusten %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "ezin ebatzi \"%s\", \"%s\" paketearen menpekotasun bat\n"
@@ -347,41 +347,41 @@ msgstr "ezin izan da %s erro muntatze puntua zehaztu\n"
msgid "Partition %s is mounted read only\n"
msgstr "%s partizioa soilik irakurtzeko moduan muntatuta dago\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "diskoa"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "huts egin du deskargarako behin behineko fitxategiaren sorrerak\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr ""
"'%s' url baliogabea da\n"
"\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "huts egin du '%s' fitxategia '%s'-tik erauzteak: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"huts egin du '%s' fitxategia eskuratzean hemendik: %s : aurreikusitako "
"deskarga tamaina gainditu da\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s ez dago osorik antza: %jd/%jd byte\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "%s deskargatzeak huts egin du\n"
@@ -601,199 +601,194 @@ msgstr "PGP sinadura falta da"
msgid "invalid PGP signature"
msgstr "PGP sinadura baliogabea"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "delta baliogabea edo hondatua"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "delta adabakiak huts egin du"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "ezin dira menpekotasunak bete"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "menpekotasunen arteko gatazka"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "fitxategien arteko gatazka"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "ezin izan dira fitxategi batzuk eskuratu"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "adierazpen erregular baliogabea"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive errorea"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "errorea liburutegia deskargatzean"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme errorea"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "errorea kanpo deskarga programa deitzean"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "ustegabeko errorea"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "blokeo fitxategia falta da %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "ezin izan da %s blokeo fitxategia ezabatu\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "ezin izan da direktorioa ireki: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "ezin izan da fitxategiaren egoera zehaztu: %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "ezin izan dira %s-%s paketearen meta-datuak guztiz kargatu\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "ezin izan da %s aurkitu datu-basean -- ezikusi\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "%s helburu zerrendatik ezabatzen\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "ezin '%s' fitxategia ezabatu: %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "ezin ezabatu %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "ezin izan da datu-base sarrera ezabatu %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "ezin izan da '%s' sarrera ezabatu katxetik\n"
@@ -803,139 +798,154 @@ msgstr "ezin izan da '%s' sarrera ezabatu katxetik\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: beharrezko sinadura falta da\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ezikusi pakete bertsio berritzea (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ezikusi paketea bertsio zahartzea (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: bertsio zahartzen %s bertsiotik %s bertsiora\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: lokala (%s) %s (%s) baino berriagoa da\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ezikusi pakete ordezkapena (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "ezin %s ordezkatu %s paketearekin\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "ebatzi ezineko paketeen arteko gatazka detektatu da\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "'%s' helburutik ezabatzen gatazka sortzen duelako '%s' paketearekin\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "fitxategi batzuk eskuratzeak huts egin du\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "ez dago behar beste leku libre diskoan\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "ezin izan da ezabaketa transakzioa egikaritu\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "ezin izan da transakzioa egikaritu\n"
@@ -970,52 +980,52 @@ msgstr "ezin izan da kanalizazioan idatzi (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "ezin izan da kanalizaziotik irakurri (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "ezin izan da kanalizazioa sortu (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "ezin izan da prozesu berri bat sardetu (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "ezin izan da erro direktorioa aldatu (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "execv deiak huts egin du (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "waitpid deiak huts egin du (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "komandoa ez da behar bezala exekutatu\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Seinale ezezaguna"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "%d seinaleak eten du komandoa: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "ez dago %s katxerik, sortzen...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "ezin izan da pakete katxea aurkitu edo sortu, %s erabiliko da ordez\n"

View File

@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Basque (Spain) (http://www.transifex.com/toofishes/archlinux-"
"pacman/language/eu_ES/)\n"
@@ -19,54 +19,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s egunean dago -- ezikusi\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s egunean dago -- berrinstalatu\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "bertsio zahartzen %s paketea (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr ""
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "oharra eman da %s erauztean (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "ezin izan da %s erauzi (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "ezin izan da %s berrizendatu %s gisa (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"ez da fitxategia aurkitu %s paketearen fitxategi zerrendan. %s ez da "
"erauziko\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "ezin izan da %s%s erauzi: bidea luzeegia da"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -75,7 +75,7 @@ msgstr ""
"direktorioaren baimenak desberdinak dira hemen %s\n"
"fitxategi sistema: %o paketea: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -85,103 +85,103 @@ msgstr ""
"fitxategi sistema: %u:%u paketea: %u:%u\n"
"\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "erauzi: ez da direktorioa %s fitxategiarekin gainidatziko\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "ezin izan da %s.pacnew erauzi: bidea luzeegia da"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "ezin izan da uneko lan direktorioa lortu\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "ezin izan da direktorioa hona aldatu %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "ezin izan da laneko direktorioa berreskuratu (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "arazo bat egon da %s bertsio berritzean\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "arazo bat egon da %s instalatzean\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "ezin izan da datu-base sarrera eguneratu %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "ezin izan da '%s' sarrera katxean gehitu\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "errorea %s fitxategia irakurtzean: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "datu-base baliogabea ezabatzen:%s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr ""
"ezin izan da %s direktorioa sortu: %s\n"
"\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "izen baliogabea '%s' datu-base sarreran\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "bikoiztutako datu-base sarrera '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "datu-base sarrera hondatua '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "ezin izan da %s fitxategia ireki: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s datu-basea kontraesankorra da: izenak ez datoz bat %s paketean\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "%s datu-basea kontraesankorra da: bertsioak ez datoz bat %s paketean\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "Balidazio mota ezezaguna %s paketearentzat: %s\n"
@@ -222,45 +222,45 @@ msgstr "paketearen bertsio baliogabea hemen %s\n"
msgid "missing package metadata in %s\n"
msgstr "paketearen metadatuak falta dira hemen: %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "sinadura fitxategiaren irakurketak huts egin du: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "beharrezko gakoa falta da gako sortan\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "fitxategi baliogabea ezabatzen: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "ezin izan da '%s' fitxategi deskripzioa prozesatu '%s' datu-basetik\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"%s datu-basea kontraesankorra da: %s paketearen fitxategi izena legez "
"kanpokoa da\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"%s datu-basea kontraesankorra da: %s paketearen fitxategi izena luzeegia da\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "datu-base fitxategi ezezaguna: %s\n"
@@ -285,12 +285,12 @@ msgstr "%s ezabatuko da bere %s menpekotasuna eta gero\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s instalatuko da bere %s menpekotasuna baino lehenago\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "paketea ezikusten %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "ezin ebatzi \"%s\", \"%s\" paketearen menpekotasun bat\n"
@@ -346,41 +346,41 @@ msgstr "ezin izan da %s erro muntatze puntua zehaztu\n"
msgid "Partition %s is mounted read only\n"
msgstr "%s partizioa soilik irakurtzeko moduan muntatuta dago\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "diskoa"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "huts egin du deskargarako behin behineko fitxategiaren sorrerak\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr ""
"'%s' url baliogabea da\n"
"\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "huts egin du '%s' fitxategia '%s'-tik erauzteak: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"huts egin du '%s' fitxategia eskuratzean hemendik: %s : aurreikusitako "
"deskarga tamaina gainditu da\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s ez dago osorik antza: %jd/%jd byte\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "%s deskargatzeak huts egin du\n"
@@ -600,199 +600,194 @@ msgstr "PGP sinadura falta da"
msgid "invalid PGP signature"
msgstr "PGP sinadura baliogabea"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "delta baliogabea edo hondatua"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "delta adabakiak huts egin du"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "ezin dira menpekotasunak bete"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "menpekotasunen arteko gatazka"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "fitxategien arteko gatazka"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "ezin izan dira fitxategi batzuk eskuratu"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "adierazpen erregular baliogabea"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive errorea"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "errorea liburutegia deskargatzean"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme errorea"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "errorea kanpo deskarga programa deitzean"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "ustegabeko errorea"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "blokeo fitxategia falta da %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "ezin izan da %s blokeo fitxategia ezabatu\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "ezin izan da direktorioa ireki: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "ezin izan da fitxategiaren egoera zehaztu: %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "ezin izan dira %s-%s paketearen meta-datuak guztiz kargatu\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "ezin izan da %s aurkitu datu-basean -- ezikusi\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "%s helburu zerrendatik ezabatzen\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "ezin '%s' fitxategia ezabatu: %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "ezin ezabatu %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "ezin izan da datu-base sarrera ezabatu %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "ezin izan da '%s' sarrera ezabatu katxetik\n"
@@ -802,139 +797,154 @@ msgstr "ezin izan da '%s' sarrera ezabatu katxetik\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: beharrezko sinadura falta da\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ezikusi pakete bertsio berritzea (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ezikusi paketea bertsio zahartzea (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: bertsio zahartzen %s bertsiotik %s bertsiora\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: lokala (%s) %s (%s) baino berriagoa da\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ezikusi pakete ordezkapena (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "ezin %s ordezkatu %s paketearekin\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "ebatzi ezineko paketeen arteko gatazka detektatu da\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "'%s' helburutik ezabatzen gatazka sortzen duelako '%s' paketearekin\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "fitxategi batzuk eskuratzeak huts egin du\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "ez dago behar beste leku libre diskoan\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "ezin izan da ezabaketa transakzioa egikaritu\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "ezin izan da transakzioa egikaritu\n"
@@ -969,52 +979,52 @@ msgstr "ezin izan da kanalizazioan idatzi (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "ezin izan da kanalizaziotik irakurri (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "ezin izan da kanalizazioa sortu (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "ezin izan da prozesu berri bat sardetu (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "ezin izan da erro direktorioa aldatu (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "execv deiak huts egin du (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "waitpid deiak huts egin du (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "komandoa ez da behar bezala exekutatu\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Seinale ezezaguna"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "%d seinaleak eten du komandoa: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "ez dago %s katxerik, sortzen...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "ezin izan da pakete katxea aurkitu edo sortu, %s erabiliko da ordez\n"

View File

@@ -18,8 +18,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Finnish (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/fi/)\n"
@@ -29,54 +29,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s on ajan tasalla -- ohitetaan\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s on ajan tasalla -- asennetaan uudelleen\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "varhennetaan paketti %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "levyn arkisto-objektia ei voida varata"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "annettiin varoitus purettaessa %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "tiedostoa %s ei voitu purkaa (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "kohdetta %s ei voitu nimetä uudelleen kohteeksi %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"tiedostoa ei löydy paketin %s tiedostolistalta. ohitetaan paketin %s "
"purkaminen\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "ei voitu purkaa %s%s: polku liian pitkä"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -85,7 +85,7 @@ msgstr ""
"kansion oikeuksissa eroavaisuuksia kohdassa %s\n"
"tiedostojärjestelmä: %o paketti: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -94,101 +94,101 @@ msgstr ""
"kansion omistajuus eroaa tiedostossa %s\n"
"tiedostojärjestelmä: %u:%u paketti: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "purku: kansiota ei korvata tiedostolla %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "ei voitu purkaa %s.pacnew: polku liian pitkä"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "nykyisen kansion sijaintia ei voitu määrittää\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "ei voitu vaihtaa kansioon %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "työhakemistoa ei voitu palauttaa (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "pakettia %s päivitettäessä tapahtui virhe\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "pakettia %s asennettaessa tapahtui virhe\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "ei voitu päivittää tietokantamerkintää: %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "merkintää '%s' ei voitu lisätä välimuistiin\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "virhe luettaessa tiedostoa %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "poistetaan virheellinen tietokanta: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "kansiota %s ei voitu luoda: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "virheellinen nimi tietokantamerkinnälle '%s'\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "tietokantamerkintä '%s' on useampaan kertaan\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "vahingoittunut tietokantamerkintä '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "tiedostoa %s ei voitu avata: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "tietokanta %s on epäyhtenäinen: paketin %s nimi ei täsmää\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "tietokanta %s on epäyhtenäinen: paketin %s versio ei täsmää\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "tuntematon validointityyppi paketille %s: %s\n"
@@ -229,44 +229,44 @@ msgstr "virheellinen paketin versio tiedostossa %s\n"
msgid "missing package metadata in %s\n"
msgstr "paketin metadata puuttuu tiedostosta %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "allekirjoitustiedoston lukeminen epäonnistui: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "vaadittu avain puuttuu avainrenkaasta\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "poistetaan virheellinen tiedosto: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "paketin kuvaustiedostoa '%s' ei voitu jäsentää tietokannassa '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"tietokanta %s on epäyhtenäinen: paketin %s tiedostonimi on virheellinen\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"tietokanta %s on epäyhtenäinen: paketin %s tiedostonimi on liian pitkä\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "tuntematon tietokantatiedosto: %s\n"
@@ -291,12 +291,12 @@ msgstr "%s poistetaan riippuvuutensa %s jälkeen\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s asennetaan ennen riippuvuuttansa %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ohitetaan paketti %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "pakettia '%s' ei voida selvittää; se on paketin '%s' riippuvuus\n"
@@ -351,39 +351,39 @@ msgstr "juuren %s liitospistettä ei voitu selvittää\n"
msgid "Partition %s is mounted read only\n"
msgstr "Osio %s on liitetty vain lukutilassa\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "levy"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "väliaikaistiedoston luonti lataamista varten epäonnistui\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "osoite '%s' on virheellinen\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "tiedoston '%s' nouto palvelimelta %s epäonnistui : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"tiedoston '%s' noutaminen koneelta %s epäonnistui: odotettu latauskoko "
"ylittyi\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s näyttää katkenneen: %jd/%jd tavua\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "%s: lataus epäonnistui\n"
@@ -603,199 +603,194 @@ msgstr "puuttuva PGP-allekirjoitus"
msgid "invalid PGP signature"
msgstr "virheellinen PGP-allekirjoitus"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "virheellinen tai vahingoittunut delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "deltapaikkaus epäonnistui"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "riippuvuuksia ei voitu ratkoa"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "ristiriidassa olevia riippuvuuksia"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "ristiriidassa olevia tiedostoja"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "joidenkin tiedostojen noutaminen epäonnistui"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "virheellinen säännöllinen lauseke"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive-virhe"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "latauskirjaston virhe"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme-virhe"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "virhe kutsuttaessa ulkoista latausohjelmaa"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "odottamaton virhe"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "puuttuva lukkotiedosto %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "lukkotiedostoa %s ei voitu poistaa\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "kansiota ei voitu avata: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "tiedoston %s stat-toiminnon ei voitu tehdä: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "paketin %s-%s metadataa ei voitu ladata täysin\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "%s ei löytynyt tietokannasta -- ohitetaan\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "poistetaan %s kohteiden listasta\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "tiedostoa '%s' ei voitu poistaa: %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "tiedostoa %s ei voida poistaa (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "ei voitu poistaa tietokantamerkintää %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "merkintää '%s' ei voitu poistaa välimuistista\n"
@@ -805,141 +800,156 @@ msgstr "merkintää '%s' ei voitu poistaa välimuistista\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: pakollinen allekirjoitus puuttuu\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ohitetaan paketin päivitys (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ohitetaan paketin varhennus (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: varhennetaan versiosta %s versioon %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: paikallinen (%s) on uudempi kuin %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ohitetaan paketin korvaus (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "pakettia %s ei voi korvata paketilla %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "ratkaisemattomia pakettiristiriitoja havaittu\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"poistetaan '%s' kohteiden listasta, koska se on ristiriidassa paketin '%s' "
"kanssa\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "joidenkin tiedostojen noutaminen epäonnistui\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "ei tarpeeksi vapaata levytilaa\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "poistotoimenpidettä ei voitu suorittaa\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "toimenpidettä ei voitu suorittaa\n"
@@ -974,52 +984,52 @@ msgstr "ei voitu kirjoittaa putkeen (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "ei voitu lukea putkesta (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "ei voitu luoda putkea (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "ei voitu käynnistää uutta prosessia (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "juurikansiota ei voitu vaihtaa (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "execv-kutsu epäonnistui (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "waitpid-kutsu epäonnistui (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "komento päättyi virheeseen\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Tuntematon signaali"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "signaali %d päätti komennon: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "välimuistia %s ei ole olemassa, luodaan...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -8,6 +8,7 @@
# Antoine Lubineau <antoine@lubignon.info>, 2012
# Antoine Lubineau <antoine@lubignon.info>, 2012-2014,2018
# Cedric Girard <girard.cedric@gmail.com>, 2014
# Charles Monzat <c.monzat@laposte.net>, 2018-2019
# Charles Monzat <c.monzat@laposte.net>, 2015-2018
# Charles Monzat <c.monzat@laposte.net>, 2018
# Charles Monzat <c.monzat@laposte.net>, 2018
@@ -19,8 +20,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-20 14:11+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-20 19:02+0000\n"
"Last-Translator: Charles Monzat <c.monzat@laposte.net>\n"
"Language-Team: French (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/fr/)\n"
@@ -30,54 +31,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s est à jour -- ignoré\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s est à jour -- réinstallation\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "retourne à la version antérieure du paquet %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "Impossible dallouer lobjet darchive disque"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "problème pendant lextraction de %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "lextraction de %s a échoué (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "impossible de renommer %s en %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"fichier non trouvé dans la liste des fichiers du paquet %s. Extraction de %s "
"ignorée\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "impossible dextraire %s%s : chemin trop long"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -86,7 +87,7 @@ msgstr ""
"les permissions pour le répertoire %s sont différentes\n"
"système de fichiers : %o, paquet : %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -95,101 +96,101 @@ msgstr ""
"le propriétaire du répertoire %s est différent\n"
"système de fichiers : %u:%u, paquet : %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "extraction : nécrase pas le répertoire par le fichier %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "impossible dextraire %s.pacnew : chemin trop long"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "déterminer le répertoire courant a échoué\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "changer de répertoire vers %s a échoué (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "impossible de restaurer le répertoire de travail (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "des erreurs sont survenues pendant la mise à jour de %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "des erreurs sont survenues pendant linstallation de %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "la mise à jour de lentrée de base de données %s-%s a échoué\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "lajout au cache de lentrée « %s » a échoué\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "erreur lors de la lecture du paquet %s : %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "suppression dune base de données non valide : %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "la création du répertoire %s a échoué : %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "nom incorrect pour lentrée de base de données « %s »\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "lentrée « %s » de la base de données est dupliquée\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "lentrée « %s » de la base de données est corrompue\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "louverture du fichier %s a échoué : %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "le dépôt %s est incohérent : noms différents pour le paquet %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "le dépôt %s est incohérent : versions différentes pour le paquet %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "type de validation inconnu pour le paquet %s : %s\n"
@@ -230,46 +231,46 @@ msgstr "version de paquet non valide dans %s\n"
msgid "missing package metadata in %s\n"
msgstr "méta-données du paquet manquantes dans %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "échec lors de la lecture du fichier de signature : %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "clé requise absente du trousseau\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "suppression du fichier non valide : %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"impossible danalyser le fichier « %s » de description du paquet depuis la "
"base de données « %s »\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "impossible de lire la base de données « %s » (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"le dépôt %s est incohérent : le nom de fichier du paquet %s est incorrect\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"le dépôt %s est incohérent : le nom de fichier du paquet %s est trop long\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "fichier de base de données inconnu : %s\n"
@@ -294,12 +295,12 @@ msgstr "%s sera supprimé après sa dépendance %s\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s sera installé avant sa dépendance %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignore le paquet %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "impossible de résoudre « %s », une dépendance de « %s »\n"
@@ -356,39 +357,39 @@ msgstr "impossible de déterminer le point de montage de la racine %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "La partition %s est en lecture seule\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disque"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "échec de création dun fichier temporaire pour le téléchargement\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "lURL « %s » est non valide\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "échec de récupération du fichier « %s » depuis %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"échec de récupération du fichier « %s » depuis %s : taille attendue "
"dépassée\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s est apparemment tronqué : %jd/%jd octets\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "le fichier %s na pas pu être téléchargé\n"
@@ -610,200 +611,195 @@ msgstr "signature PGP manquante"
msgid "invalid PGP signature"
msgstr "signature PGP non valide"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "delta non valide ou corrompu"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "lapplication du delta a échoué"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "la satisfaction des dépendances a échoué"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "conflit de dépendances"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "conflit de fichiers"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "échec de récupération de certains fichiers"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "expression régulière incorrecte"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "erreur de libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "erreur de la bibliothèque de téléchargement"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "erreur de gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "erreur en invoquant le client externe de téléchargement"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "compilé sans prise en charge de signature"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "erreur non prévue"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "fichier de verrou manquant %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "la suppression du fichier de verrouillage %s a échoué\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr "Cibles de déclenchement manquantes dans le crochet : %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr "Type de déclenchement manquant dans le crochet : %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr "Opération de déclenchement manquante dans le crochet : %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr "Option dexécution manquante dans le crochet : %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr "Option manquante dans le crochet : %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr "AbortOnFail défini pour le crochet de post-transaction : %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr "erreur lors de la lecture du crochet %s : %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr "crochet %s ligne %d: option incorrecte %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr "crochet %s ligne %d : section %s incorrecte\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr "crochet %s ligne %d : valeur %s incorrecte\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr "crochet %s ligne %d : remplacement de la définition précédente de %s\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr "crochet %s ligne %d : impossible de définir loption (%s)\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr "impossible dexécuter le crochet %s : %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "impossible douvrir le dossier %s : %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "impossible douvrir le fichier : %s%s : %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "impossible de connaître létat du fichier %s : %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "impossible de lire le répertoire : %s : %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr ""
"les métadonnées pour le paquet %s-%s nont pas pu être totalement chargées.\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "trouver %s dans la base de données a échoué -- ignoré\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "supprime %s de la liste de cible\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "suppression du fichier « %s » impossible : %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr "impossible de sauvegarder %s en raison du débordement de PATH_MAX\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "impossible de supprimer %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "la suppression de lentrée de base de données %s-%s a échoué\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "la suppression du cache de lentrée « %s » a échoué\n"
@@ -814,142 +810,155 @@ msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
"Le trousseau de clés publique est introuvable ; avez-vous exécuté « %s » ?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "erreur GPGME : %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr "recherche de la clé %s via WKD\n"
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "erreur gpg : %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr "le trousseau de clés nest pas accessible en écriture\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr "clé « %s » sur le serveur de clés\n"
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "la clé « %s » na pas pu être importée\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
"clé %s, « %s » trouvée sur le serveur de clés, le trousseau de clés nest "
"pas accessible en écriture\n"
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr "la clé « %s » ne peut être recherchée à distance\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s : signature requise manquante\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr "%s : la signature de « %s » est de confiance mitigée\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr "%s : la signature de « %s » est de confiance inconnue\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr "%s : la signature de « %s » nest pas digne de confiance\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s : la clé « %s » est inconnue\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr "%s : la clé « %s » est désactivée\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s : la signature de « %s » est périmée\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s : la signature de « %s » nest pas valide\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s : erreur de format de signature\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s : format de signature non pris en charge\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s : ignore la mise à jour du paquet (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s : ignore le retour à la version antérieure (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s : retourne à la version antérieure (%s => %s)\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s : la version locale (%s) est plus récente que %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignore le remplacement du paquet (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "le remplacement de %s par %s est impossible\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "un conflit de paquets impossible à résoudre a été détecté\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"supprime « %s » de la liste de cible car il est en conflit avec « %s »\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "erreur lors de la récupération de certains fichiers\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "impossible de lire le fichier %s : %s\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "espace disque insuffisant\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "appliquer la transaction de suppression a échoué\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "appliquer la transaction a échoué\n"
@@ -986,52 +995,52 @@ msgstr ""
msgid "unable to read from pipe (%s)\n"
msgstr "impossible de lire à partir du tube (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "impossible de créer le tube (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "la génération dun nouveau processus a échoué (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "changer le répertoire racine a échoué (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "lappel à execv a échoué (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "lappel de waitpid a échoué (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "la commande na pas pu être exécutée correctement\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Signal inconnu"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "commande terminée par le signal %d : %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "le cache %s nexiste pas, création…\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -15,8 +15,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 08:12+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"Language-Team: Galician (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/gl/)\n"
@@ -26,54 +26,54 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s está actualizado -- omitindo\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s está actualizado --re-instalando\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "desactualizando a versión do paquete %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "memoria insuficiente para o obxecto de arquivo de disco"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "alerta producida mentres se extraía %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "Non foi posíbel extraer «%s» (%s).\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "Non foi posíbel cambiar o nome de «%s» a «%s» (%s).\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"Non se atopou o ficheiro na lista de ficheiros do paquete «%s». Non se "
"extraerá «%s».\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "non se pode extraer %s%s: ruta demasiado longa"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -82,7 +82,7 @@ msgstr ""
"Os permisos dun directorio son distintos en «%s».\n"
"No sistema de ficheiros: «%o». No paquete: «%o».\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -91,86 +91,86 @@ msgstr ""
"O dono do cartafol «%s» non cadra.\n"
"No sistema de ficheiros é «%u:%u», no paquete é «%u:%u».\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr ""
"[Extracción] Non é posíbel substituír un directorio polo ficheiro «%s».\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "non se pode extraer %s.pacnew: ruta demasiado longa"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "non se puido obter o directorio de traballo actual\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "non se puido cambiar o directorio a %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "non se puido restaurar o directorio de traballo (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "aconteceu un erro durante a actualización de %s\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "aconteceu un erro durante a instalación de %s\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "non se puido actualizar a entrada %s-%s na base de datos\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "non se puido agregar a entrada '%s' á caché\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "erro ao ler o ficheiro «%s»: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "quitando a base de datos non válida: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "non se puido crear o directorio %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "nome non válido para a entrada '%s' da base de datos\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "entrada '%s' duplicada na base de datos\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "entrada dañada na base de datos '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
@@ -178,19 +178,19 @@ msgstr ""
"non se puido abrir o arquivo %s: %s\n"
"\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr ""
"a base de datos %s é inconsistente: nome mal emparexado no paquete %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"a base de datos %s é inconsistente: versión mal emparexada no paquete %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "o paquete «%s» ten un tipo de validación incorrecto: %s\n"
@@ -231,47 +231,47 @@ msgstr "A versión do paquete %s non é correcta.\n"
msgid "missing package metadata in %s\n"
msgstr "faltan os metadatos do paquete en %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "non foi posíbel ler o ficheiro da sinatura: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "a chave solicitada non está no anel\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "eliminando arquivo inválido: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"error ao ler o arquivo de descripción '%s' do paquete da base de datos '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "non se puido ler a base de datos '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"A base de datos «%s» é inconsistente: a ruta do arquivo do paquete %s contén "
"caracteres non permitidos.\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr ""
"A base de datos «%s» é inconsistente: a ruta do arquivo do paquete %s é "
"demasiado longa.\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "Ficheiro de base de datos descoñecido: %s\n"
@@ -296,12 +296,12 @@ msgstr "%s eliminarase tras a súa dependencia %s\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s instalarase antes ca súa dependencia %s\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignorando o paquete %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "non se puido resolver \"%s\", unha dependencia de \"%s\"\n"
@@ -359,39 +359,39 @@ msgstr "non se puido determinar o punto de montaxe da raiz %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "A partición %s está montada como só lectura\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disco"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "error ao crear un arquivo temporal para a descarga\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "a dirección %s non é válida\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "error ao obter o arquivo '%s' dende %s: %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"Non foi posíbel obter o ficheiro «%s» de «%s»: superouse o tamaño de "
"descarga esperado.\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s parece estar truncado: %jd/%jd bytes\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "non se puido descargar %s\n"
@@ -612,199 +612,194 @@ msgstr "falta a firma PGP"
msgid "invalid PGP signature"
msgstr "firma PGP non válida"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "non válido ou diferencial dañado"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "parche diferencial fallou"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "non se puideron satisfacer as dependencias"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "dependencias en conflicto"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "arquivos en conflicto"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "error ao descargar algúns arquivos"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "expresión regular non válida"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "error de libarchive"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "error de descarga de biblioteca"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "error de gpgme"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "error invocando o descargador externo"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "error inesperado"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "Falta «%s» ao ficheiro de bloqueo.\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "Non foi posíbel eliminar o ficheiro de bloqueo «%s».\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "non foi posíbel abrir o cartafol «%s»: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr "non foi posíbel abrir o ficheiro:%s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "non foi posíbel executar a orde «stat» co ficheiro «%s»: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "non se puido ler o cartafol: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "non se puido cargar completamente os metadatos para o paquete %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "non se puido atopar %s na base de datos --saltando\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "quitando %s da lista de obxetivos\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "non se puido quitar o arquivo '%s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "error ao eliminar %s (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "non se puido quitar a entrada %s-%s da base de datos\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "non se puido quitar a entrada '%s' do caché\n"
@@ -814,140 +809,155 @@ msgstr "non se puido quitar a entrada '%s' do caché\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr ""
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr "a clave \"%s\" non se puido importar\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: fáltalle a sinatura obrigatoria.\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr "%s: a clave \"%s\" é descoñecida\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr "%s: a sinatura de \"%s\" caducou\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr "%s: a sinatura de \"%s\" non é válida\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: erro no formato da sinatura\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: formato da sinatura non soportado\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: ignorando a actualización do paquete (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignorando a desactualización do paquete (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: desactualizando da versión %s á versión %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: local (%s) é máis novo que %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignorando o reemplazo do paquete (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "non se puido reemplazar o arquivo %s por %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "detectáronse paquetes con conflictos non resolvibles\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr ""
"quitando '%s' da lista de obxetivos debido a que ten conflictos con '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "non foi posíbel descargar algúns dos ficheiros\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "non hai espazo de almacenamento dabondo\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "non se puido enviar a operación de eliminación\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "non se puido asignar a transacción\n"
@@ -982,52 +992,52 @@ msgstr "non se pode escribir na tubería (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "non se pode ler da tubería (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "non se puido crear tubería (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "non se puido crear un novo proceso (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "non se puido cambiar o directorio raíz (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "chamada a execv fallida (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "chamada a waitpid fallida (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "o comando fallou ao executarse\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Sinal descoñecido"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "O sinal %d interrompeu a execución: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "non existe o caché %s, creando...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

View File

@@ -3,14 +3,14 @@
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Ivica Kolić <ikoli@yahoo.com>, 2012-2016,2018
# Ivica Kolić <ikoli@yahoo.com>, 2012-2016,2018-2019
# Viktor Coric <viktor_coric94@hotmail.com>, 2016
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-24 04:44+0000\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-07 20:45+0000\n"
"Last-Translator: Ivica Kolić <ikoli@yahoo.com>\n"
"Language-Team: Croatian (http://www.transifex.com/toofishes/archlinux-pacman/"
"language/hr/)\n"
@@ -21,32 +21,32 @@ msgstr ""
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "%s-%s je ažuriran -- preskačem\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "%s-%s je ažuriran -- ponovno instaliram\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "unazađujem paket %s (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr ""
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "dano upozorenje tijekom raspakiranja %s (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr ""
@@ -54,23 +54,23 @@ msgstr ""
"\n"
"\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "ne mogu preimenivati %s u %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"datoteka nije pronađena u listi datoteka za %s, preskačem raspakiranje %s\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "nije moguće raspakirati %s%s: putanja je preduga"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -79,7 +79,7 @@ msgstr ""
"dozvole direktorija razlikuju se na %s\n"
"datotečni sustav: %o paket: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -88,110 +88,110 @@ msgstr ""
"vlasništvo direktorija se razlikuje na %s\n"
"datotečni sustav: %u:%u paket: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "raspakiravanje: ne pišem preko direktorija datotekom %s\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "nije moguće raspakirati %s.pacnew: putanja je preduga"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "ne mogu dobaviti trenutni radni direktorij\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "ne mogu promjeniti direktorij u %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr ""
"ne mogu obnoviti radni direktorij (%s)\n"
"\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr ""
"došlo je do greške prilikom nadogradnje %s\n"
"\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr ""
"došlo je do greške prilikom instaliranja %s\n"
"\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "ne mogu ažurirati unos baze podataka %s-%s\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "ne mogu dodati unos '%s' u cache\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "greška prilikom čitanja datoteke %s: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "uklanjam neispravnu bazu podataka: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "ne mogu napraviti direktorij %s: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr ""
"neispravno ime za unos baze podataka '%s'\n"
"\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "dvostruki unos '%s' u bazi podataka\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "oštećeni unos baze podataka '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "ne mogu otvoriti datoteku %s: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "%s baza podatak je nedosljedna: ime se ne podudara sa paketom %s\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr ""
"%s baza podataka je nedosljedna: verzija se ne podudara sa paketom %s\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "nepoznata vrsta provjere za paket %s: %s\n"
@@ -234,42 +234,42 @@ msgstr "neispravna verzija pakata u %s\n"
msgid "missing package metadata in %s\n"
msgstr "nedostaju metapodaci paketa u %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "ne mogu pročitati datoteku sa potpisom: %s\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "traženi ključ nedostaje u privjesku\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "uklanjam neispravnu datoteku: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr "ne mogu obraditi datoteku opisa paketa '%s' iz baze podataka '%s'\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr "ne mogu čitati db '%s' (%s)\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr "nedosljednost baze podataka %s: ime paketa %s je nevažeći\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "nedosljednost baze podataka %s: ime paketa %s je predugo\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "nepoznata datoteka baze podataka: %s\n"
@@ -294,12 +294,12 @@ msgstr "%s će biti uklonjen nakon njegove %s zavisnosti\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "%s će biti instaliran prije svoje %s zavisnosti\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "ignoriram paket %s-%s\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "ne mogu riješiti \"%s\", zavisnost je od \"%s\"\n"
@@ -357,39 +357,39 @@ msgstr "ne mogu odrediti točku montiranja za root %s\n"
msgid "Partition %s is mounted read only\n"
msgstr "Particija %s je montirana samo za čitanje\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "disk"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "neuspjela izrada privremene datoteke za preuzimanje\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "url '%s' je neispravan\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "neuspjelo primanje datoteke '%s' iz %s : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"greška pri dobavljanju datoteke '%s' iz %s: veličina preuzimanja je veća od "
"očekivane\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "%s je okrnjen: %jd%jd bajtova\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "neuspjelo preuzimanje %s\n"
@@ -609,201 +609,196 @@ msgstr "nedostaje PGP potpis"
msgid "invalid PGP signature"
msgstr "neispravni PGP potpis"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "neispravna ili oštećena delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "delta zakrpa nije uspjela"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "ne mogu zadovoljiti zavisnosti"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "sukobljene zavisnosti"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "sukobljene datoteke"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "neuspjelo primanje nekih datoteka"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "neispravan regularni izraz"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive greška"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "Greška pri preuzimanju biblioteke"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme greška"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "Greška pri dozivanju vanjskog preuzimatelja"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr ""
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "neočekivana greška"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "datoteka za zaključavanje nedostaje %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "ne mogu ukloniti datoteku za zaključavanje %s\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "ne mogu otvoriti direktorij: %s: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "ne mogu odrediti pojedinosti datoteke %s: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr "ne mogu čitati direktorij: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr "ne mogu skroz učitati metapodatke za oaket %s-%s\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "ne mogu naći %s u bazi podataka -- preskačem\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "uklanjanje %s sa ciljane liste\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "ne mogu ukloniti datoteku %s': %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr ""
"ne mogu ukloniti %s (%s)\n"
"\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "ne mogu ukloniti unos baze podataka %s-%s\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "ne mogu ukloniti unos '%s' iz cachea\n"
@@ -813,143 +808,158 @@ msgstr "ne mogu ukloniti unos '%s' iz cachea\n"
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr "GPGME greška: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr ""
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "gpg greška: %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr ""
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr ""
"%s: nedostaje potrebni potpis\n"
"\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
msgstr "%s: ključ \"%s\" je nepoznat\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
msgstr "%s: ključ \"%s\" je onemogućen\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr "%s: greška formata potpisa\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr "%s: nepodržani format potpisa\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr ""
"%s: ignoriram nadogradnju paketa (%s => %s)\n"
"\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: ignoriram unazađivanje paketa (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: unazađujem sa verzije %s na verziju %s\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: lokalni (%s) je noviji od %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "ignoriram zamjenu paketa (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "ne mogu zamjeniti %s sa %s\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "otkriveni su nerješivi sukobi paketa\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "uklanjam '%s' sa liste mete jer se sukobljava sa '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "neuspjelo primanje nekin datoteka\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr ""
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "nema dovoljno slobodnog prostora\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "ne mogu izvršiti transakciju uklanjanja\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "ne mogu izvršiti transakciju\n"
@@ -984,52 +994,52 @@ msgstr "ne mogu pisati u cijev (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "ne mogu čitati iz cijevi (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "ne mogu napraviti cijev (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "ne mogu račvati novi proces (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "ne mogu promjeniti korjenski/root direktorij (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "poziv procesa izvršavanja nije uspio (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "poziv procesa čekanja nije uspio (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "neuspjelo ispravno izvršenje naredbe\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Nepoznati signal"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "naredba prekinuta signalom %d: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "%s cache ne postoji, pravim...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr "ne mogu naći ili napraviti cache paketa, koristim %s umjesto toga\n"

View File

@@ -13,13 +13,15 @@
# JUHASZ, Peter Karoly <stone@midway.hu>, 2013
# Gábor Nagy <ngaba@bibl.u-szeged.hu>, 2013
# Gábor Nagy <ngaba@bibl.u-szeged.hu>, 2011,2013
# user14 <nleknh@gmail.com>, 2019
# user14 <nleknh@gmail.com>, 2019
msgid ""
msgstr ""
"Project-Id-Version: Arch Linux Pacman package manager\n"
"Report-Msgid-Bugs-To: http://bugs.archlinux.org/index.php?project=3\n"
"POT-Creation-Date: 2018-05-15 10:34+1000\n"
"PO-Revision-Date: 2018-05-15 01:05+0000\n"
"Last-Translator: Allan McRae <allan@archlinux.org>\n"
"POT-Creation-Date: 2019-10-21 17:23+1000\n"
"PO-Revision-Date: 2019-10-09 19:41+0000\n"
"Last-Translator: user14 <nleknh@gmail.com>\n"
"Language-Team: Hungarian (http://www.transifex.com/toofishes/archlinux-"
"pacman/language/hu/)\n"
"Language: hu\n"
@@ -28,53 +30,53 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/libalpm/add.c:86
#: lib/libalpm/add.c:91 lib/libalpm/sync.c:290
#, c-format
msgid "%s-%s is up to date -- skipping\n"
msgstr "a(z) %s-%s naprakész -- kihagyás\n"
#: lib/libalpm/add.c:90
#: lib/libalpm/add.c:95
#, c-format
msgid "%s-%s is up to date -- reinstalling\n"
msgstr "a(z) %s-%s naprakész -- újratelepítés\n"
#: lib/libalpm/add.c:95
#: lib/libalpm/add.c:100
#, c-format
msgid "downgrading package %s (%s => %s)\n"
msgstr "visszatérés egy régebbi %s verzióhoz (%s => %s)\n"
#: lib/libalpm/add.c:124
#: lib/libalpm/add.c:129
#, c-format
msgid "cannot allocate disk archive object"
msgstr "az archív objektum nem foglalható le a lemezen"
#: lib/libalpm/add.c:138 lib/libalpm/util.c:382
#: lib/libalpm/add.c:143 lib/libalpm/util.c:382
#, c-format
msgid "warning given when extracting %s (%s)\n"
msgstr "figyelmeztetés a(z) %s kibontása közben (%s)\n"
#: lib/libalpm/add.c:141 lib/libalpm/util.c:385
#: lib/libalpm/add.c:146 lib/libalpm/util.c:385
#, c-format
msgid "could not extract %s (%s)\n"
msgstr "nem sikerült kibontani: %s (%s)\n"
#: lib/libalpm/add.c:154 lib/libalpm/dload.c:561 lib/libalpm/remove.c:541
#: lib/libalpm/add.c:159 lib/libalpm/dload.c:574 lib/libalpm/remove.c:542
#, c-format
msgid "could not rename %s to %s (%s)\n"
msgstr "nem sikerült az átnevezés: %s -> %s (%s)\n"
#: lib/libalpm/add.c:205
#: lib/libalpm/add.c:210
#, c-format
msgid "file not found in file list for package %s. skipping extraction of %s\n"
msgstr ""
"fájl nem található a(z) %s csomag fájllistájában. %s kibontásának kihagyása\n"
#: lib/libalpm/add.c:214
#: lib/libalpm/add.c:219
#, c-format
msgid "unable to extract %s%s: path too long"
msgstr "%s%s kibontása nem sikerült: az útvonal túl hosszú"
#: lib/libalpm/add.c:256
#: lib/libalpm/add.c:261
#, c-format
msgid ""
"directory permissions differ on %s\n"
@@ -83,7 +85,7 @@ msgstr ""
"eltérő könyvtárjogosultságok: %s\n"
"fájlrendszer: %o csomag: %o\n"
#: lib/libalpm/add.c:271
#: lib/libalpm/add.c:276
#, c-format
msgid ""
"directory ownership differs on %s\n"
@@ -92,101 +94,101 @@ msgstr ""
"eltérő könyvtártulajdonos: %s\n"
"fájlrendszer: %u:%u csomag: %u:%u\n"
#: lib/libalpm/add.c:287
#: lib/libalpm/add.c:292
#, c-format
msgid "extract: not overwriting dir with file %s\n"
msgstr "kibontás: nem írok felül könyvtárat a %s fájllal\n"
#: lib/libalpm/add.c:315
#: lib/libalpm/add.c:320
#, c-format
msgid "unable to extract %s.pacnew: path too long"
msgstr "%s.pacnew kibontása nem sikerült: az útvonal túl hosszú"
#: lib/libalpm/add.c:508 lib/libalpm/util.c:334 lib/libalpm/util.c:573
#: lib/libalpm/add.c:513 lib/libalpm/util.c:334 lib/libalpm/util.c:592
#, c-format
msgid "could not get current working directory\n"
msgstr "a jelenlegi munkakönyvtár nem kapható meg\n"
#: lib/libalpm/add.c:513 lib/libalpm/util.c:339 lib/libalpm/util.c:578
#: lib/libalpm/util.c:631
#: lib/libalpm/add.c:518 lib/libalpm/util.c:339 lib/libalpm/util.c:597
#: lib/libalpm/util.c:650
#, c-format
msgid "could not change directory to %s (%s)\n"
msgstr "nem sikerült a könyvtárváltás ide: %s (%s)\n"
#: lib/libalpm/add.c:570 lib/libalpm/util.c:403 lib/libalpm/util.c:738
#: lib/libalpm/add.c:575 lib/libalpm/util.c:403 lib/libalpm/util.c:766
#, c-format
msgid "could not restore working directory (%s)\n"
msgstr "nem sikerült visszalépni a munkakönyvárba (%s)\n"
#: lib/libalpm/add.c:578
#: lib/libalpm/add.c:583
#, c-format
msgid "problem occurred while upgrading %s\n"
msgstr "hiba történt a(z) %s frissítése közben\n"
#: lib/libalpm/add.c:584
#: lib/libalpm/add.c:589
#, c-format
msgid "problem occurred while installing %s\n"
msgstr "hiba történt a(z) %s telepítése közben\n"
#: lib/libalpm/add.c:599
#: lib/libalpm/add.c:604
#, c-format
msgid "could not update database entry %s-%s\n"
msgstr "nem sikerült a(z) %s-%s adatbázis-bejegyzés frissítése\n"
#: lib/libalpm/add.c:610
#: lib/libalpm/add.c:615
#, c-format
msgid "could not add entry '%s' in cache\n"
msgstr "nem sikerült a(z) '%s' bejegyzés hozzáadása a gyorsítótárhoz\n"
#: lib/libalpm/be_local.c:255
#: lib/libalpm/be_local.c:267
#, c-format
msgid "error while reading file %s: %s\n"
msgstr "hiba a %s fájl olvasása közben: %s\n"
#: lib/libalpm/be_local.c:350
#: lib/libalpm/be_local.c:364
#, c-format
msgid "removing invalid database: %s\n"
msgstr "hibás adatbázis eltávolítása: %s\n"
#: lib/libalpm/be_local.c:401 lib/libalpm/be_local.c:887
#: lib/libalpm/be_local.c:415 lib/libalpm/be_local.c:905
#, c-format
msgid "could not create directory %s: %s\n"
msgstr "nem sikerült létrehozni a %s könyvtárat: %s\n"
#: lib/libalpm/be_local.c:576 lib/libalpm/be_sync.c:387
#: lib/libalpm/be_local.c:590 lib/libalpm/be_sync.c:386
#, c-format
msgid "invalid name for database entry '%s'\n"
msgstr "hibás név a(z) '%s' adatbázis-bejegyzés számára\n"
#: lib/libalpm/be_local.c:584
#: lib/libalpm/be_local.c:598
#, c-format
msgid "duplicated database entry '%s'\n"
msgstr "duplikált adatbázis-bejegyzés: '%s'\n"
#: lib/libalpm/be_local.c:596
#: lib/libalpm/be_local.c:610
#, c-format
msgid "corrupted database entry '%s'\n"
msgstr "sérült adatbázis-bejegyzés: '%s'\n"
#: lib/libalpm/be_local.c:699 lib/libalpm/be_local.c:791
#: lib/libalpm/be_local.c:936 lib/libalpm/be_local.c:1033
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:419 lib/libalpm/util.c:253
#: lib/libalpm/be_local.c:713 lib/libalpm/be_local.c:809
#: lib/libalpm/be_local.c:954 lib/libalpm/be_local.c:1051
#: lib/libalpm/diskspace.c:131 lib/libalpm/dload.c:422 lib/libalpm/util.c:253
#: lib/libalpm/util.c:269
#, c-format
msgid "could not open file %s: %s\n"
msgstr "nem sikerült megnyitni a %s fájlt: %s\n"
#: lib/libalpm/be_local.c:715 lib/libalpm/be_sync.c:653
#: lib/libalpm/be_local.c:729 lib/libalpm/be_sync.c:650
#, c-format
msgid "%s database is inconsistent: name mismatch on package %s\n"
msgstr "a(z) %s adatbázis inkonzisztens: eltérő nevek a(z) %s csomagnál\n"
#: lib/libalpm/be_local.c:721 lib/libalpm/be_sync.c:659
#: lib/libalpm/be_local.c:735 lib/libalpm/be_sync.c:656
#, c-format
msgid "%s database is inconsistent: version mismatch on package %s\n"
msgstr "a(z) %s adatbázis inkonzisztens: eltérő verziók a(z) %s csomagnál\n"
#: lib/libalpm/be_local.c:762
#: lib/libalpm/be_local.c:776
#, c-format
msgid "unknown validation type for package %s: %s\n"
msgstr "ismeretlen érvényességellenőrzési mód a(z) %s csomaghoz: %s\n"
@@ -227,45 +229,45 @@ msgstr "érvénytelen csomagverzió: %s\n"
msgid "missing package metadata in %s\n"
msgstr "hiányzó csomaginformációs fájl: %s\n"
#: lib/libalpm/be_package.c:748
#: lib/libalpm/be_package.c:750
#, c-format
msgid "failed to read signature file: %s\n"
msgstr "nem sikerült olvasni a %s aláírásfájlt\n"
#: lib/libalpm/be_package.c:769 lib/libalpm/sync.c:1113
#: lib/libalpm/be_package.c:779 lib/libalpm/sync.c:953
#, c-format
msgid "required key missing from keyring\n"
msgstr "egy szükséges kulcs hiányzik a kulcstartóból\n"
#: lib/libalpm/be_sync.c:62
#: lib/libalpm/be_sync.c:61
#, c-format
msgid "removing invalid file: %s\n"
msgstr "hibás fájl eltávolítása: %s\n"
#: lib/libalpm/be_sync.c:517
#: lib/libalpm/be_sync.c:515
#, c-format
msgid "could not parse package description file '%s' from db '%s'\n"
msgstr ""
"nem sikerült értelmezni a(z) '%s' csomagleíró fájlját a(z) '%s' "
"adatbázisból\n"
#: lib/libalpm/be_sync.c:524
#: lib/libalpm/be_sync.c:522
#, c-format
msgid "could not read db '%s' (%s)\n"
msgstr ""
msgstr "(%s) nem lehetett olvasni a(z) '%s' adatbázist\n"
#: lib/libalpm/be_sync.c:558 lib/libalpm/be_sync.c:563
#: lib/libalpm/be_sync.c:556 lib/libalpm/be_sync.c:561
#, c-format
msgid "%s database is inconsistent: filename of package %s is illegal\n"
msgstr ""
"a(z) %s adatbázis inkonzisztens: a(z) %s csomag fájlneve nem megengedett\n"
#: lib/libalpm/be_sync.c:568
#: lib/libalpm/be_sync.c:566
#, c-format
msgid "%s database is inconsistent: filename of package %s is too long\n"
msgstr "a(z) %s adatbázis inkonzisztens: a(z) %s csomag fáljneve túl hosszú\n"
#: lib/libalpm/be_sync.c:634
#: lib/libalpm/be_sync.c:632
#, c-format
msgid "unknown database file: %s\n"
msgstr "ismeretlen adatbázisfájl: %s\n"
@@ -290,12 +292,12 @@ msgstr "a(z) %s csomag saját %s függősége után lesz eltávolítva\n"
msgid "%s will be installed before its %s dependency\n"
msgstr "a(z) %s csomag saját %s függősége előtt lesz telepítve\n"
#: lib/libalpm/deps.c:682 lib/libalpm/deps.c:712
#: lib/libalpm/deps.c:681 lib/libalpm/deps.c:712
#, c-format
msgid "ignoring package %s-%s\n"
msgstr "%s-%s csomag kihagyása\n"
#: lib/libalpm/deps.c:867
#: lib/libalpm/deps.c:869
#, c-format
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
msgstr "nem sikerült a(z) \"%2$s\" csomag \"%1$s\" függőségét feloldani\n"
@@ -352,39 +354,39 @@ msgstr "nem sikerült meghatározni a %s gyökérkönyvtár csatolási pontját\
msgid "Partition %s is mounted read only\n"
msgstr "A %s partíció csak olvashatóként van csatolva\n"
#: lib/libalpm/dload.c:159
#: lib/libalpm/dload.c:161
#, c-format
msgid "disk"
msgstr "lemez"
#: lib/libalpm/dload.c:345
#: lib/libalpm/dload.c:348
#, c-format
msgid "failed to create temporary file for download\n"
msgstr "nem sikerült létrehozni ideiglenes fájlt a letöltéshez\n"
#: lib/libalpm/dload.c:390
#: lib/libalpm/dload.c:393
#, c-format
msgid "url '%s' is invalid\n"
msgstr "a '%s' URL hibás\n"
#: lib/libalpm/dload.c:459 lib/libalpm/dload.c:484
#: lib/libalpm/dload.c:464 lib/libalpm/dload.c:485 lib/libalpm/dload.c:496
#, c-format
msgid "failed retrieving file '%s' from %s : %s\n"
msgstr "nem sikerült a(z) '%s' fájlt letölteni a %s helyről : %s\n"
#: lib/libalpm/dload.c:472
#: lib/libalpm/dload.c:477
#, c-format
msgid "failed retrieving file '%s' from %s : expected download size exceeded\n"
msgstr ""
"nem sikerült a(z) '%s' fájlt letölteni a %s helyről : a várt letöltési méret "
"túlhaladva\n"
#: lib/libalpm/dload.c:520
#: lib/libalpm/dload.c:532
#, c-format
msgid "%s appears to be truncated: %jd/%jd bytes\n"
msgstr "úgy tűnik, hogy %s csonka: %jd/%jd bájt\n"
#: lib/libalpm/dload.c:664 lib/libalpm/dload.c:693
#: lib/libalpm/dload.c:677 lib/libalpm/dload.c:706
#, c-format
msgid "failed to download %s\n"
msgstr "nem sikerült a(z) %s letöltése\n"
@@ -604,200 +606,196 @@ msgstr "hiányzó PGP aláírás"
msgid "invalid PGP signature"
msgstr "érvénytelen PGP aláírás"
#: lib/libalpm/error.c:135
#, c-format
msgid "invalid or corrupted delta"
msgstr "hibás vagy sérült delta"
#: lib/libalpm/error.c:137
#, c-format
msgid "delta patch failed"
msgstr "delta foltozás sikertelen"
#: lib/libalpm/error.c:140 lib/libalpm/hook.c:614
#: lib/libalpm/error.c:135 lib/libalpm/hook.c:514
#, c-format
msgid "could not satisfy dependencies"
msgstr "nem sikerült kielégíteni a függőségeket"
#: lib/libalpm/error.c:142
#: lib/libalpm/error.c:137
#, c-format
msgid "conflicting dependencies"
msgstr "ütköző függőségek"
#: lib/libalpm/error.c:144
#: lib/libalpm/error.c:139
#, c-format
msgid "conflicting files"
msgstr "ütköző fájlok"
#: lib/libalpm/error.c:147
#: lib/libalpm/error.c:142
#, c-format
msgid "failed to retrieve some files"
msgstr "nem sikerült néhány fájlt letölteni"
#: lib/libalpm/error.c:149
#: lib/libalpm/error.c:144
#, c-format
msgid "invalid regular expression"
msgstr "hibás reguláris kifejezés"
#: lib/libalpm/error.c:155
#: lib/libalpm/error.c:150
#, c-format
msgid "libarchive error"
msgstr "libarchive hiba"
#: lib/libalpm/error.c:157
#: lib/libalpm/error.c:152
#, c-format
msgid "download library error"
msgstr "letöltőfüggvénytár hiba"
#: lib/libalpm/error.c:159
#: lib/libalpm/error.c:154
#, c-format
msgid "gpgme error"
msgstr "gpgme hiba"
#: lib/libalpm/error.c:161
#: lib/libalpm/error.c:156
#, c-format
msgid "error invoking external downloader"
msgstr "hiba a külső letöltő meghívásakor"
#: lib/libalpm/error.c:164
#: lib/libalpm/error.c:159
#, c-format
msgid "compiled without signature support"
msgstr "aláírás nélkül lett lefordítva"
#: lib/libalpm/error.c:162
#, c-format
msgid "unexpected error"
msgstr "nem várt hiba"
#: lib/libalpm/handle.c:157
#: lib/libalpm/handle.c:153
#, c-format
msgid "lock file missing %s\n"
msgstr "zárolófájl hiányzik: %s\n"
#: lib/libalpm/handle.c:163
#: lib/libalpm/handle.c:159
#, c-format
msgid "could not remove lock file %s\n"
msgstr "nem sikerült a zárolófájl (%s) eltávolítása\n"
#: lib/libalpm/hook.c:107
#: lib/libalpm/hook.c:95
#, c-format
msgid "Missing trigger targets in hook: %s\n"
msgstr ""
msgstr "Hiányzó trigger célpont ebben a horogban: %s\n"
#: lib/libalpm/hook.c:113
#: lib/libalpm/hook.c:101
#, c-format
msgid "Missing trigger type in hook: %s\n"
msgstr ""
msgstr "Hiányzó trigger típus ebben a horogban: %s\n"
#: lib/libalpm/hook.c:119
#: lib/libalpm/hook.c:107
#, c-format
msgid "Missing trigger operation in hook: %s\n"
msgstr ""
msgstr "Hiányzó triggerművelet ebben a horogban: %s\n"
#: lib/libalpm/hook.c:146
#: lib/libalpm/hook.c:134
#, c-format
msgid "Missing Exec option in hook: %s\n"
msgstr ""
msgstr "Hiányzó Exec opció ebben a horogban: %s\n"
#: lib/libalpm/hook.c:152
#: lib/libalpm/hook.c:140
#, c-format
msgid "Missing When option in hook: %s\n"
msgstr ""
msgstr "Hiányzik a Mikor választási lehetőség ebben a horogban: %s\n"
#: lib/libalpm/hook.c:155
#: lib/libalpm/hook.c:143
#, c-format
msgid "AbortOnFail set for PostTransaction hook: %s\n"
msgstr ""
msgstr "be van állítva az AbortOnFail a PostTransaction horogban: %s\n"
#: lib/libalpm/hook.c:273
#: lib/libalpm/hook.c:160
#, c-format
msgid "error while reading hook %s: %s\n"
msgstr ""
msgstr "hiaba a horog olvasása közben %s: %s\n"
#: lib/libalpm/hook.c:275 lib/libalpm/hook.c:315 lib/libalpm/hook.c:357
#: lib/libalpm/hook.c:162 lib/libalpm/hook.c:206 lib/libalpm/hook.c:248
#, c-format
msgid "hook %s line %d: invalid option %s\n"
msgstr ""
msgstr "horog %s sor %d: érvénytelen opció %s\n"
#: lib/libalpm/hook.c:285
#: lib/libalpm/hook.c:172
#, c-format
msgid "hook %s line %d: invalid section %s\n"
msgstr ""
msgstr "horog %s sor %d: érvénytelen szakasz %s\n"
#: lib/libalpm/hook.c:297 lib/libalpm/hook.c:308 lib/libalpm/hook.c:327
#: lib/libalpm/hook.c:350
#: lib/libalpm/hook.c:184 lib/libalpm/hook.c:199 lib/libalpm/hook.c:218
#: lib/libalpm/hook.c:241
#, c-format
msgid "hook %s line %d: invalid value %s\n"
msgstr ""
msgstr "horog %s sor %d: érvénytelen érték %s\n"
#: lib/libalpm/hook.c:301 lib/libalpm/hook.c:320 lib/libalpm/hook.c:331
#: lib/libalpm/hook.c:345
#: lib/libalpm/hook.c:188 lib/libalpm/hook.c:211 lib/libalpm/hook.c:222
#: lib/libalpm/hook.c:236
#, c-format
msgid "hook %s line %d: overwriting previous definition of %s\n"
msgstr ""
msgstr "horog %s sor %d: az előző definíció %s felülírása\n"
#: lib/libalpm/hook.c:352
#: lib/libalpm/hook.c:243
#, c-format
msgid "hook %s line %d: unable to set option (%s)\n"
msgstr ""
msgstr "horog %s sor %d: a (%s) opció beállítása nem lehetséges\n"
#: lib/libalpm/hook.c:613
#: lib/libalpm/hook.c:513
#, c-format
msgid "unable to run hook %s: %s\n"
msgstr ""
msgstr "a horog futtatása nem lehetséges %s: %s\n"
#: lib/libalpm/hook.c:648 lib/libalpm/hook.c:660 lib/libalpm/remove.c:385
#: lib/libalpm/hook.c:547 lib/libalpm/hook.c:559 lib/libalpm/remove.c:386
#, c-format
msgid "could not open directory: %s: %s\n"
msgstr "nem sikerült megnyitni a %s könyvtárat: %s\n"
#: lib/libalpm/hook.c:676
#: lib/libalpm/hook.c:575
#, c-format
msgid "could not open file: %s%s: %s\n"
msgstr ""
msgstr "fájl nem nyitható meg: %s%s: %s\n"
#: lib/libalpm/hook.c:696 lib/libalpm/util.c:259
#: lib/libalpm/hook.c:595 lib/libalpm/util.c:259
#, c-format
msgid "could not stat file %s: %s\n"
msgstr "sikertelen stat művelet a %s fájlon: %s\n"
#: lib/libalpm/hook.c:722
#: lib/libalpm/hook.c:621
#, c-format
msgid "could not read directory: %s: %s\n"
msgstr ""
msgstr "könyvtár nem olvasható: %s: %s\n"
#: lib/libalpm/package.c:586
#: lib/libalpm/package.c:578
#, c-format
msgid "could not fully load metadata for package %s-%s\n"
msgstr ""
"nem sikerült teljesen betölteni az információs fájlt a(z) %s-%s csomaghoz\n"
#: lib/libalpm/remove.c:118
#: lib/libalpm/remove.c:119
#, c-format
msgid "could not find %s in database -- skipping\n"
msgstr "nem található %s az adatbázisban -- kihagyás\n"
#: lib/libalpm/remove.c:153
#: lib/libalpm/remove.c:154
#, c-format
msgid "removing %s from target list\n"
msgstr "%s eltávolítása a céllistából\n"
#: lib/libalpm/remove.c:345
#: lib/libalpm/remove.c:346
#, c-format
msgid "cannot remove file '%s': %s\n"
msgstr "nem sikerült eltávolítani a '%s' fájlt : %s\n"
#: lib/libalpm/remove.c:410 lib/libalpm/remove.c:419
#: lib/libalpm/remove.c:411 lib/libalpm/remove.c:420
#, c-format
msgid "could not backup %s due to PATH_MAX overflow\n"
msgstr ""
"nem lehet biztonsági másolatot készíteni %s a PATH_MAX túlcsordulása miatt\n"
#: lib/libalpm/remove.c:561
#: lib/libalpm/remove.c:562
#, c-format
msgid "cannot remove %s (%s)\n"
msgstr "%s nem távolítható el (%s)\n"
#: lib/libalpm/remove.c:734
#: lib/libalpm/remove.c:735
#, c-format
msgid "could not remove database entry %s-%s\n"
msgstr "nem sikerült eltávolítani a(z) %s-%s adatbázis-bejegyzést\n"
#: lib/libalpm/remove.c:739
#: lib/libalpm/remove.c:740
#, c-format
msgid "could not remove entry '%s' from cache\n"
msgstr "nem sikerült eltávolítani a(z) '%s' bejegyzést a gyorsítótárból\n"
@@ -805,141 +803,156 @@ msgstr "nem sikerült eltávolítani a(z) '%s' bejegyzést a gyorsítótárból\
#: lib/libalpm/signing.c:171
#, c-format
msgid "Public keyring not found; have you run '%s'?\n"
msgstr ""
msgstr "Nem található a nyilvános kulcstartó; futtattad a(z) '%s' -t?\n"
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:705
#: lib/libalpm/signing.c:207 lib/libalpm/signing.c:784
#, c-format
msgid "GPGME error: %s\n"
msgstr ""
msgstr "GPGME hiba: %s\n"
#: lib/libalpm/signing.c:402
#: lib/libalpm/signing.c:284
#, c-format
msgid "looking up key %s using WKD\n"
msgstr "%s kulcs keresése WKD használatával\n"
#: lib/libalpm/signing.c:293
#, c-format
msgid "gpg error: %s\n"
msgstr "gpg hiba: %s\n"
#: lib/libalpm/signing.c:441 lib/libalpm/signing.c:515
#, c-format
msgid "keyring is not writable\n"
msgstr ""
msgstr "a kulcstartó nem írható\n"
#: lib/libalpm/signing.c:460
#: lib/libalpm/signing.c:539
#, c-format
msgid "key \"%s\" on keyserver\n"
msgstr "a kulcszerveren a \"%s\" kulcs\n"
#: lib/libalpm/signing.c:544
#, c-format
msgid "key \"%s\" could not be imported\n"
msgstr ""
msgstr "nem lehetett importálni a \"%s\" kulcsot\n"
#: lib/libalpm/signing.c:466
#, c-format
msgid "key %s, \"%s\" found on keyserver, keyring is not writable\n"
msgstr ""
#: lib/libalpm/signing.c:471
#: lib/libalpm/signing.c:548
#, c-format
msgid "key \"%s\" could not be looked up remotely\n"
msgstr ""
msgstr "a \"%s\" távoli kulcs nem található\n"
#: lib/libalpm/signing.c:859 lib/libalpm/sync.c:1181
#: lib/libalpm/signing.c:943 lib/libalpm/sync.c:1022
#, c-format
msgid "%s: missing required signature\n"
msgstr "%s: szükséges aláírás hiányzik\n"
#: lib/libalpm/signing.c:874
#: lib/libalpm/signing.c:958
#, c-format
msgid "%s: signature from \"%s\" is marginal trust\n"
msgstr ""
msgstr "%s: az aláírásnak a \"%s\" -ről alig megbízható\n"
#: lib/libalpm/signing.c:882
#: lib/libalpm/signing.c:966
#, c-format
msgid "%s: signature from \"%s\" is unknown trust\n"
msgstr ""
msgstr "%s: az aláírásnak a \"%s\" -ről ismeretlen a megbízhatósága\n"
#: lib/libalpm/signing.c:889
#: lib/libalpm/signing.c:973
#, c-format
msgid "%s: signature from \"%s\" should never be trusted\n"
msgstr ""
msgstr "%s: az aláírás a \"%s\" -ról soha nem megbízható\n"
#: lib/libalpm/signing.c:901
#: lib/libalpm/signing.c:985
#, c-format
msgid "%s: key \"%s\" is unknown\n"
msgstr ""
msgstr "%s: a \"%s\" kulcs ismeretlen\n"
#: lib/libalpm/signing.c:910
#: lib/libalpm/signing.c:994
#, c-format
msgid "%s: key \"%s\" is disabled\n"
msgstr ""
msgstr "%s: a \"%s\" kulcs ki van kapcsolva\n"
#: lib/libalpm/signing.c:914
#: lib/libalpm/signing.c:998
#, c-format
msgid "%s: signature from \"%s\" is expired\n"
msgstr ""
msgstr "%s: az aláírás \"%s\" lejárt\n"
#: lib/libalpm/signing.c:918
#: lib/libalpm/signing.c:1002
#, c-format
msgid "%s: signature from \"%s\" is invalid\n"
msgstr ""
msgstr "%s: az aláírás a \"%s\" -tól érvénytelen\n"
#: lib/libalpm/signing.c:995 lib/libalpm/signing.c:1063
#: lib/libalpm/signing.c:1142
#: lib/libalpm/signing.c:1079 lib/libalpm/signing.c:1147
#: lib/libalpm/signing.c:1226
#, c-format
msgid "%s: signature format error\n"
msgstr ""
msgstr "aláírásformátum hiba: %s\n"
#: lib/libalpm/signing.c:1095 lib/libalpm/signing.c:1128
#: lib/libalpm/signing.c:1136
#: lib/libalpm/signing.c:1179 lib/libalpm/signing.c:1212
#: lib/libalpm/signing.c:1220
#, c-format
msgid "%s: unsupported signature format\n"
msgstr ""
msgstr "nem támogatott aláírásformátum: %s\n"
#: lib/libalpm/sync.c:98
#: lib/libalpm/sync.c:99
#, c-format
msgid "%s: ignoring package upgrade (%s => %s)\n"
msgstr "%s: csomagfrissítés kihagyása (%s => %s)\n"
#: lib/libalpm/sync.c:110
#: lib/libalpm/sync.c:111
#, c-format
msgid "%s: ignoring package downgrade (%s => %s)\n"
msgstr "%s: csomag visszafejlesztésének kihagyása (%s => %s)\n"
#: lib/libalpm/sync.c:113
#: lib/libalpm/sync.c:114
#, c-format
msgid "%s: downgrading from version %s to version %s\n"
msgstr "%s: visszatérés a(z) %s verzióról a régebbi %s verzióhoz\n"
#: lib/libalpm/sync.c:119
#: lib/libalpm/sync.c:120
#, c-format
msgid "%s: local (%s) is newer than %s (%s)\n"
msgstr "%s: a helyi (%s) újabb, mint a(z) %s (%s)\n"
#: lib/libalpm/sync.c:160
#: lib/libalpm/sync.c:161
#, c-format
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
msgstr "csomaglecserélés kihagyása (%s-%s => %s-%s)\n"
#: lib/libalpm/sync.c:176
#: lib/libalpm/sync.c:177
#, c-format
msgid "cannot replace %s by %s\n"
msgstr "nem lehet lecserélni a(z) %s csomagot a(z) %s csomaggal\n"
#: lib/libalpm/sync.c:538 lib/libalpm/sync.c:608
#: lib/libalpm/sync.c:535 lib/libalpm/sync.c:605
#, c-format
msgid "unresolvable package conflicts detected\n"
msgstr "feloldhatatlan csomagütközéseket találtam\n"
#: lib/libalpm/sync.c:558
#: lib/libalpm/sync.c:555
#, c-format
msgid "removing '%s' from target list because it conflicts with '%s'\n"
msgstr "'%s' kihagyása, mert ütközik a következővel: '%s'\n"
#: lib/libalpm/sync.c:1019
#: lib/libalpm/sync.c:849
#, c-format
msgid "failed to retrieve some files\n"
msgstr "nem sikerült minden fájlt letölteni\n"
#: lib/libalpm/sync.c:1384
#: lib/libalpm/sync.c:1036
#, c-format
msgid "failed to read file %s: %s\n"
msgstr "nem sikerült olvasni a %s: %s fájlt\n"
#: lib/libalpm/sync.c:1223
#, c-format
msgid "not enough free disk space\n"
msgstr "nincs elég szabad lemezterület\n"
#: lib/libalpm/sync.c:1406
#: lib/libalpm/sync.c:1245
#, c-format
msgid "could not commit removal transaction\n"
msgstr "nem sikerült végrehajtani az eltávolító tranzakciót\n"
#: lib/libalpm/sync.c:1414
#: lib/libalpm/sync.c:1253
#, c-format
msgid "could not commit transaction\n"
msgstr "nem sikerült végrehajtani a tranzakciót\n"
@@ -974,52 +987,52 @@ msgstr "nem sikerül írni az adatcsatornába (%s)\n"
msgid "unable to read from pipe (%s)\n"
msgstr "nem sikerül olvasni az adatcsatornából (%s)\n"
#: lib/libalpm/util.c:590 lib/libalpm/util.c:596
#: lib/libalpm/util.c:609 lib/libalpm/util.c:615
#, c-format
msgid "could not create pipe (%s)\n"
msgstr "nem sikerült az adatcsatorna létrehozása (%s)\n"
#: lib/libalpm/util.c:604
#: lib/libalpm/util.c:623
#, c-format
msgid "could not fork a new process (%s)\n"
msgstr "nem sikerült indítani egy új folyamatot (%s)\n"
#: lib/libalpm/util.c:627
#: lib/libalpm/util.c:646
#, c-format
msgid "could not change the root directory (%s)\n"
msgstr "nem sikerült gyökérkönyvtárat váltani (%s)\n"
#: lib/libalpm/util.c:638
#: lib/libalpm/util.c:658
#, c-format
msgid "call to execv failed (%s)\n"
msgstr "sikertelen execv hívás (%s)\n"
#: lib/libalpm/util.c:709
#: lib/libalpm/util.c:737
#, c-format
msgid "call to waitpid failed (%s)\n"
msgstr "sikertelen waitpid hívás (%s)\n"
#: lib/libalpm/util.c:719
#: lib/libalpm/util.c:747
#, c-format
msgid "command failed to execute correctly\n"
msgstr "a parancs nem futott le helyesen\n"
#: lib/libalpm/util.c:726
#: lib/libalpm/util.c:754
#, c-format
msgid "Unknown signal"
msgstr "Ismeretlen szignál"
#: lib/libalpm/util.c:728
#: lib/libalpm/util.c:756
#, c-format
msgid "command terminated by signal %d: %s\n"
msgstr "parancs megszakítva a(z) %d szignál által: %s\n"
#: lib/libalpm/util.c:825
#: lib/libalpm/util.c:853
#, c-format
msgid "no %s cache exists, creating...\n"
msgstr "nem létezik a(z) %s gyorsítótár, létrehozás...\n"
#: lib/libalpm/util.c:856
#: lib/libalpm/util.c:884
#, c-format
msgid "couldn't find or create package cache, using %s instead\n"
msgstr ""

Some files were not shown because too many files have changed in this diff Show More