forked from mirrors/pacman
Compare commits
385 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a97e28205a | ||
|
|
76735e6519 | ||
|
|
85d0111da8 | ||
|
|
30f53cfe8d | ||
|
|
cae2bdafec | ||
|
|
8e30a46adb | ||
|
|
9e8af82c97 | ||
|
|
6ddc115c7f | ||
|
|
df360b791d | ||
|
|
58ee249c86 | ||
|
|
e0d327462c | ||
|
|
c002567d96 | ||
|
|
ba45cb4590 | ||
|
|
c5f6995aeb | ||
|
|
8f18798d10 | ||
|
|
5c8083baa4 | ||
|
|
eedf4f4e63 | ||
|
|
bd08581d2e | ||
|
|
a91250b7bb | ||
|
|
a08638edc8 | ||
|
|
592211b6dc | ||
|
|
d901646f7a | ||
|
|
30734c9a4a | ||
|
|
a2d7f6f206 | ||
|
|
3a06a9fa9f | ||
|
|
283ef6519a | ||
|
|
302188b169 | ||
|
|
fd38319106 | ||
|
|
c2993197ea | ||
|
|
79541193f7 | ||
|
|
e29dde9157 | ||
|
|
6d41da4086 | ||
|
|
df15a8c432 | ||
|
|
3739e2c10c | ||
|
|
1cbc3c5c90 | ||
|
|
4e3bd7c137 | ||
|
|
9d3a8efb7b | ||
|
|
a7c4159b16 | ||
|
|
54b63de098 | ||
|
|
90c45f7bbe | ||
|
|
9fbf5d9336 | ||
|
|
3de32a0812 | ||
|
|
71660f55b2 | ||
|
|
4a487346c5 | ||
|
|
0478dfa1a5 | ||
|
|
281bc72534 | ||
|
|
5908992e47 | ||
|
|
c3f5375380 | ||
|
|
b02bda75f1 | ||
|
|
0d6efb35ce | ||
|
|
52118bf0f0 | ||
|
|
ff689b6a38 | ||
|
|
fa4f25626c | ||
|
|
f8d7cd6b26 | ||
|
|
e702f56ea6 | ||
|
|
7f5c486666 | ||
|
|
fcb4f0264f | ||
|
|
3d8be4291c | ||
|
|
622326bb37 | ||
|
|
68dff73463 | ||
|
|
0ea52e3a4f | ||
|
|
8b23aa172f | ||
|
|
d7c98d4e45 | ||
|
|
21d5dedfdd | ||
|
|
6f4f9c1b66 | ||
|
|
07a9effdd0 | ||
|
|
708f186f98 | ||
|
|
226c137245 | ||
|
|
2222e9f8df | ||
|
|
c2cf6a14cf | ||
|
|
6c00ca8f23 | ||
|
|
7fc50d7950 | ||
|
|
dc817a2061 | ||
|
|
892266277e | ||
|
|
2ee186506c | ||
|
|
1c59b9e881 | ||
|
|
2e5e3739a1 | ||
|
|
84b999823b | ||
|
|
c355d2a3b7 | ||
|
|
6e31ddf42e | ||
|
|
8fbc91e693 | ||
|
|
fe7b77cd8a | ||
|
|
ea7696b441 | ||
|
|
6297248087 | ||
|
|
5f5b6f16af | ||
|
|
f9c70d3140 | ||
|
|
d978039cf0 | ||
|
|
d73d055c6f | ||
|
|
b886362282 | ||
|
|
ac5c2fd09b | ||
|
|
8163beb622 | ||
|
|
88f139ab4e | ||
|
|
b00d911331 | ||
|
|
982018bf74 | ||
|
|
93def410b8 | ||
|
|
9a56830164 | ||
|
|
3012c0e091 | ||
|
|
b79193a37e | ||
|
|
a338778028 | ||
|
|
d58f398312 | ||
|
|
c80e04a151 | ||
|
|
a3b1585b7b | ||
|
|
a66f8dbbb1 | ||
|
|
10aba2fd53 | ||
|
|
46b170a26e | ||
|
|
5bf3ba1ca8 | ||
|
|
f60db581a7 | ||
|
|
a8a6eed9e8 | ||
|
|
d8d5d48270 | ||
|
|
5cddcc901b | ||
|
|
3739fe9913 | ||
|
|
756e49259d | ||
|
|
0ac96d94ec | ||
|
|
844d82fad8 | ||
|
|
ccea1b5576 | ||
|
|
2710b256cc | ||
|
|
5dffef787d | ||
|
|
fe1e3471f4 | ||
|
|
3064f8d08d | ||
|
|
80f7c1707c | ||
|
|
ae73d75660 | ||
|
|
3cd237dec3 | ||
|
|
52c3f871db | ||
|
|
f948cb25bb | ||
|
|
9ab6bfad22 | ||
|
|
ac722c9327 | ||
|
|
c1fc00508e | ||
|
|
0e7ba6bddd | ||
|
|
eada558e12 | ||
|
|
c6f0fc27ed | ||
|
|
d44e509933 | ||
|
|
d32f6daa66 | ||
|
|
5752e276fb | ||
|
|
a6ace987a9 | ||
|
|
3a85f83840 | ||
|
|
df842e11cf | ||
|
|
25cd6c2e8d | ||
|
|
f03f09011f | ||
|
|
10b0acfc20 | ||
|
|
07b2ba251f | ||
|
|
df833f6c64 | ||
|
|
7f02f7cb9f | ||
|
|
364ebf4e16 | ||
|
|
2ce444ee10 | ||
|
|
79987c92cb | ||
|
|
64c3255b0e | ||
|
|
590606a5d7 | ||
|
|
ccbef232c9 | ||
|
|
df99495b82 | ||
|
|
d485c0370f | ||
|
|
9528c36452 | ||
|
|
f9fa822ccb | ||
|
|
ac9dde072c | ||
|
|
6b6eb6345b | ||
|
|
eb6af031ec | ||
|
|
4f80993933 | ||
|
|
2a6f3f0652 | ||
|
|
8a6bbed98e | ||
|
|
90aca75cb9 | ||
|
|
753599b504 | ||
|
|
652762488a | ||
|
|
6995aed9ae | ||
|
|
7608dd74d7 | ||
|
|
88254d762d | ||
|
|
7965345d43 | ||
|
|
21abae98cb | ||
|
|
98ee520907 | ||
|
|
526806e7ac | ||
|
|
bf7c3eb17f | ||
|
|
cdbb90aceb | ||
|
|
ad4efa539d | ||
|
|
f6c7de77ed | ||
|
|
a36ff9404b | ||
|
|
1aa1d00248 | ||
|
|
be2f43191d | ||
|
|
2f4ee4341d | ||
|
|
69b3a811a1 | ||
|
|
d39b1dbe62 | ||
|
|
67700b926a | ||
|
|
e4be3e06af | ||
|
|
e5dce888c0 | ||
|
|
087be2f1fb | ||
|
|
6f0ffb2386 | ||
|
|
5fe41df8a9 | ||
|
|
22331fdadb | ||
|
|
65d43fbb84 | ||
|
|
a4e3fd1847 | ||
|
|
de5473c026 | ||
|
|
eee61a0bbc | ||
|
|
7ea0a115db | ||
|
|
1a00ee5c27 | ||
|
|
d85421ec62 | ||
|
|
afb61bb22a | ||
|
|
27bc2f7eb8 | ||
|
|
0eadc99240 | ||
|
|
8b3f5f0ce6 | ||
|
|
ce9bb994f8 | ||
|
|
0c3f502064 | ||
|
|
a12ed63545 | ||
|
|
afc37c58c7 | ||
|
|
335627d72d | ||
|
|
a6cca6e456 | ||
|
|
9fe27b068a | ||
|
|
05ff276eef | ||
|
|
66c6d288fd | ||
|
|
b805fe58ae | ||
|
|
a2c9cbdbdc | ||
|
|
b8b8c78627 | ||
|
|
51f9e5e40a | ||
|
|
444ff95641 | ||
|
|
e612eb6ba2 | ||
|
|
926dfe5827 | ||
|
|
03f35b1432 | ||
|
|
f2c9e51eb0 | ||
|
|
82443e0059 | ||
|
|
93862bd7cb | ||
|
|
6c8f817040 | ||
|
|
96b34308fe | ||
|
|
8a8dfc9d55 | ||
|
|
d2dbb04a9a | ||
|
|
be266b4364 | ||
|
|
120cd312e4 | ||
|
|
4d2ec3751c | ||
|
|
564352c4a2 | ||
|
|
9c34dfd908 | ||
|
|
c2999619d2 | ||
|
|
966c815881 | ||
|
|
5d5070f47d | ||
|
|
fb310fc01e | ||
|
|
77023978c5 | ||
|
|
77e84bea71 | ||
|
|
0199a7ee71 | ||
|
|
88706168f2 | ||
|
|
7ae15768e5 | ||
|
|
e09253d15b | ||
|
|
db756ed931 | ||
|
|
133a39e2bb | ||
|
|
3f7cc83e0d | ||
|
|
361a25c086 | ||
|
|
fff6d9dc2e | ||
|
|
7f0f319a3e | ||
|
|
0bc961a8be | ||
|
|
21caf8730f | ||
|
|
748bc8ebd4 | ||
|
|
013fc9a795 | ||
|
|
1000c0bd2e | ||
|
|
6ed7d001f6 | ||
|
|
c6095e1032 | ||
|
|
3758ccbb52 | ||
|
|
6c635d76a0 | ||
|
|
c7e4d10df3 | ||
|
|
2020e6297b | ||
|
|
2c2596177d | ||
|
|
3d67d9b16c | ||
|
|
5ffc1ad3cd | ||
|
|
4281a1a7f2 | ||
|
|
f9582c7df2 | ||
|
|
2cabe336eb | ||
|
|
da5fb3ee4f | ||
|
|
e3ac806262 | ||
|
|
c7d8601e12 | ||
|
|
ab3c6f01f5 | ||
|
|
72bc947cbb | ||
|
|
3dc87851cc | ||
|
|
14ab02e289 | ||
|
|
471b1fa543 | ||
|
|
caea098c21 | ||
|
|
35bbc96b99 | ||
|
|
302310c5aa | ||
|
|
4828d9ef7c | ||
|
|
6e312220ec | ||
|
|
3bc8c28ce3 | ||
|
|
145103aacc | ||
|
|
35dc9b0314 | ||
|
|
cf0d619670 | ||
|
|
5e03941ee5 | ||
|
|
f15c8d4616 | ||
|
|
aea22ac2fd | ||
|
|
9282a4a909 | ||
|
|
f77d73af4b | ||
|
|
ba14bd7728 | ||
|
|
8db120c260 | ||
|
|
a0acf8b509 | ||
|
|
a131c468f7 | ||
|
|
d7a20d9c41 | ||
|
|
42042723a8 | ||
|
|
44a57c890b | ||
|
|
8e7652f1af | ||
|
|
20392c0a02 | ||
|
|
2071286770 | ||
|
|
7f14f185a2 | ||
|
|
20aa17c276 | ||
|
|
86d4b8a3aa | ||
|
|
7cead800c5 | ||
|
|
5bea2c08a3 | ||
|
|
0f834c93c7 | ||
|
|
e76b3374d8 | ||
|
|
802b1a6f2f | ||
|
|
cfb86fed7c | ||
|
|
38ac020f51 | ||
|
|
9c13a6c364 | ||
|
|
03470c51ca | ||
|
|
ece8f6fb0b | ||
|
|
e6efd1932b | ||
|
|
c07aef0d6e | ||
|
|
72883e3bcb | ||
|
|
6bfca2fd14 | ||
|
|
ef37168770 | ||
|
|
481014e944 | ||
|
|
f4809dcc9c | ||
|
|
338c6546ff | ||
|
|
6685822e57 | ||
|
|
44cddb351b | ||
|
|
6cd8d6bd05 | ||
|
|
90a06b1cf0 | ||
|
|
ccf7c31f52 | ||
|
|
419c4a2afa | ||
|
|
65e7682638 | ||
|
|
259cb3aad4 | ||
|
|
9516d5afe6 | ||
|
|
5d0734861f | ||
|
|
9424197b42 | ||
|
|
ed9d459ee2 | ||
|
|
922448a9bf | ||
|
|
9d4448dc7f | ||
|
|
9505c594fd | ||
|
|
1df3b91931 | ||
|
|
08ee4059b5 | ||
|
|
95cb4b6874 | ||
|
|
d0d6c58c05 | ||
|
|
bc24c002fe | ||
|
|
b4317a740a | ||
|
|
19e07eb8e8 | ||
|
|
8ff3b87066 | ||
|
|
0da96abc90 | ||
|
|
b7db46d610 | ||
|
|
90e3e026d1 | ||
|
|
12b55958d8 | ||
|
|
902dfe5900 | ||
|
|
f53d9bab0e | ||
|
|
a2cd48960e | ||
|
|
cd5b029e93 | ||
|
|
43e16b373b | ||
|
|
cb1d4195bf | ||
|
|
2e7c569950 | ||
|
|
814cd7aee1 | ||
|
|
2f19072632 | ||
|
|
845f21207c | ||
|
|
0845b2f13c | ||
|
|
5dbd00faf7 | ||
|
|
c88ac86292 | ||
|
|
f53d2ac471 | ||
|
|
6e1b1aea59 | ||
|
|
b53aa87ea9 | ||
|
|
cb07265851 | ||
|
|
545eac145d | ||
|
|
b9dd8ce233 | ||
|
|
65c1f06be5 | ||
|
|
5b27e78ba0 | ||
|
|
594621cbeb | ||
|
|
1e51b81c63 | ||
|
|
7ddb645bd7 | ||
|
|
a05757f984 | ||
|
|
20ba3cfe4e | ||
|
|
82522dd8c1 | ||
|
|
92f0775e76 | ||
|
|
7dae79e7b9 | ||
|
|
bdd8e92ff6 | ||
|
|
6f97842ab2 | ||
|
|
8a55b79363 | ||
|
|
bba234a92e | ||
|
|
600782853a | ||
|
|
14a93b2e43 | ||
|
|
7bb9c4098b | ||
|
|
e8806748ec | ||
|
|
619d1fcf7f | ||
|
|
6d00025c18 | ||
|
|
3cf0ee98c0 | ||
|
|
68200676d2 | ||
|
|
d7675e393f | ||
|
|
ee43e75ed2 | ||
|
|
839bb56269 | ||
|
|
f16c7a4343 | ||
|
|
4fa6f262a6 | ||
|
|
8152077f6d |
28
.mailmap
Normal file
28
.mailmap
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
Aaron Griffin <aaron@archlinux.org> <aaronmgriffin@gmail.com>
|
||||||
|
Allan McRae <allan@archlinux.org> <mcrae_allan@hotmail.com>
|
||||||
|
Allan McRae <allan@archlinux.org> <mcrae_allan at hotmail.com>
|
||||||
|
Allan McRae <allan@archlinux.org> <allan.mcrae@qimr.edu.au>
|
||||||
|
Andres P <aepd87@gmail.com> <stderr@mail.com>
|
||||||
|
Bryan Ischo <bryan@ischo.com> <bji-keyword-pacman.3644cb@www.ischo.com>
|
||||||
|
Christos Nouskas <nous@archlinux.us> <nouskas@gmail.com>
|
||||||
|
Daenyth Blank <daenyth+arch@gmail.com> <Daenyth+Arch@gmail.com>
|
||||||
|
Daenyth Blank <Daenyth+Arch@gmail.com> <Daenyth+git@gmail.com>
|
||||||
|
甘露(Gan Lu) <rhythm.gan@gmail.com>
|
||||||
|
Giovanni Scafora <giovanni@archlinux.org> <linuxmania@gmail.com>
|
||||||
|
Jaroslaw Swierczynski <swiergot@gmail.com> <swiergot@juvepoland.com>
|
||||||
|
Juan Pablo González Tognarelli <lord_jotape@yahoo.com.ar>
|
||||||
|
Juan Pablo González Tognarelli <lord_jotape@yahoo.com.ar> <jotapesan@gmail.com>
|
||||||
|
Manuel Tortosa <manutortosa@chakra-project.org> <manutortosa@gmail.com>
|
||||||
|
Marc - A. Dahlhaus <mad@wol.de>
|
||||||
|
Matthias Gorissen <matthias@archlinux.de> <siquame@web.de>
|
||||||
|
Laszlo Papp <djszapi@archlinux.us> <djszapi2@gmail.com>
|
||||||
|
Nagy Gabor <ngaba@bibl.u-szeged.hu> <ngaba@petra.hos.u-szeged.hu>
|
||||||
|
Nagy Gabor <ngaba@bibl.u-szeged.hu> <ngaba at bibl.u-szeged.hu>
|
||||||
|
Nezmer <git@nezmer.info> <Nezmer@allurelinux.org>
|
||||||
|
Roman Kyrylych <roman@archlinux.org> <roman.kyrylych@gmail.com>
|
||||||
|
Sebastian Nowicki <sebnow@gmail.com> <xilonmu@gmail.com>
|
||||||
|
Vojtěch Gondžala <vojtech.gondzala@gmail.com> <vogo@seznam.cz>
|
||||||
|
Vojtěch Gondžala <vojtech.gondzala@gmail.com> Vojtech Gondzala <vojtech.gondzala@gmail.com>
|
||||||
|
Xavier Chantry <shiningxc@gmail.com>
|
||||||
|
Xavier Chantry <shiningxc@gmail.com> <chantry.xavier@gmail.com>
|
||||||
|
Xavier Chantry <shiningxc@gmail.com> <xav@chantry.homelinux.org>
|
||||||
49
HACKING
49
HACKING
@@ -12,10 +12,10 @@ Coding style
|
|||||||
1. All code should be indented with tabs. (Ignore the use of only spaces in
|
1. All code should be indented with tabs. (Ignore the use of only spaces in
|
||||||
this file) By default, source files contain the following VIM modeline:
|
this file) By default, source files contain the following VIM modeline:
|
||||||
+
|
+
|
||||||
[code,C]
|
[source,C]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
/* vim: set ts=2 sw=2 noet: */
|
/* vim: set ts=2 sw=2 noet: */
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
|
|
||||||
2. When opening new blocks such as 'while', 'if', or 'for', leave the opening
|
2. When opening new blocks such as 'while', 'if', or 'for', leave the opening
|
||||||
brace on the same line as the beginning of the codeblock. The closing brace
|
brace on the same line as the beginning of the codeblock. The closing brace
|
||||||
@@ -24,8 +24,8 @@ Coding style
|
|||||||
braces, even if it's just a one-line block. This reduces future error when
|
braces, even if it's just a one-line block. This reduces future error when
|
||||||
blocks are expanded beyond one line.
|
blocks are expanded beyond one line.
|
||||||
+
|
+
|
||||||
[code,C]
|
[source,C]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
for(lp = list; lp; lp = lp->next) {
|
for(lp = list; lp; lp = lp->next) {
|
||||||
newlist = _alpm_list_add(newlist, strdup(lp->data));
|
newlist = _alpm_list_add(newlist, strdup(lp->data));
|
||||||
}
|
}
|
||||||
@@ -40,14 +40,14 @@ while(it) {
|
|||||||
free(it);
|
free(it);
|
||||||
it = ptr;
|
it = ptr;
|
||||||
}
|
}
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
|
|
||||||
3. When declaring a new function, put the opening and closing braces on their
|
3. When declaring a new function, put the opening and closing braces on their
|
||||||
own line. Also, when declaring a pointer, do not put a space between the
|
own line. Also, when declaring a pointer, do not put a space between the
|
||||||
asterisk and the variable name.
|
asterisk and the variable name.
|
||||||
+
|
+
|
||||||
[code,C]
|
[source,C]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
alpm_list_t *alpm_list_add(alpm_list_t *list, void *data)
|
alpm_list_t *alpm_list_add(alpm_list_t *list, void *data)
|
||||||
{
|
{
|
||||||
alpm_list_t *ptr, *lp;
|
alpm_list_t *ptr, *lp;
|
||||||
@@ -58,7 +58,7 @@ alpm_list_t *alpm_list_add(alpm_list_t *list, void *data)
|
|||||||
}
|
}
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
|
|
||||||
4. Comments should be ANSI-C89 compliant. That means no `// Comment` style;
|
4. Comments should be ANSI-C89 compliant. That means no `// Comment` style;
|
||||||
use only `/* Comment */` style.
|
use only `/* Comment */` style.
|
||||||
@@ -101,37 +101,50 @@ Currently our #include usage is in messy shape, but this is no reason to
|
|||||||
continue down this messy path. When adding an include to a file, follow this
|
continue down this messy path. When adding an include to a file, follow this
|
||||||
general pattern, including blank lines:
|
general pattern, including blank lines:
|
||||||
|
|
||||||
[code,C]
|
[source,C]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#include <standardheader.h>
|
#include <standardheader.h>
|
||||||
#include <another.h>
|
#include <another.h>
|
||||||
#include <...>
|
#include <...>
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
|
|
||||||
Follow this with some more headers, depending on whether the file is in libalpm
|
Follow this with some more headers, depending on whether the file is in libalpm
|
||||||
or pacman proper. For libalpm:
|
or pacman proper. For libalpm:
|
||||||
|
|
||||||
[code,C]
|
[source,C]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
/* libalpm */
|
/* libalpm */
|
||||||
#include "yourfile.h"
|
#include "yourfile.h"
|
||||||
#include "alpm_list.h"
|
#include "alpm_list.h"
|
||||||
#include "anythingelse.h"
|
#include "anythingelse.h"
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
|
|
||||||
For pacman:
|
For pacman:
|
||||||
|
|
||||||
[code,C]
|
[source,C]
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
#include <alpm.h>
|
#include <alpm.h>
|
||||||
#include <alpm_list.h>
|
#include <alpm_list.h>
|
||||||
|
|
||||||
/* pacman */
|
/* pacman */
|
||||||
#include "yourfile.h"
|
#include "yourfile.h"
|
||||||
#include "anythingelse.h"
|
#include "anythingelse.h"
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
-------------------------------------------
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
/////
|
/////
|
||||||
vim: set ts=2 sw=2 syntax=asciidoc et:
|
vim: set ts=2 sw=2 syntax=asciidoc et:
|
||||||
|
|||||||
10
Makefile.am
10
Makefile.am
@@ -1,4 +1,4 @@
|
|||||||
SUBDIRS = lib/libalpm src/util src/pacman scripts etc po pactest contrib
|
SUBDIRS = lib/libalpm src/util src/pacman scripts etc po test/pacman test/util contrib
|
||||||
if WANT_DOC
|
if WANT_DOC
|
||||||
SUBDIRS += doc
|
SUBDIRS += doc
|
||||||
endif
|
endif
|
||||||
@@ -15,12 +15,12 @@ pkgdatadir = ${datadir}/${PACKAGE}
|
|||||||
dist_pkgdata_DATA = PKGBUILD.proto PKGBUILD-split.proto proto.install ChangeLog.proto
|
dist_pkgdata_DATA = PKGBUILD.proto PKGBUILD-split.proto proto.install ChangeLog.proto
|
||||||
|
|
||||||
# run the pactest test suite and vercmp tests
|
# run the pactest test suite and vercmp tests
|
||||||
check-local: pactest src/pacman src/util
|
check-local: test/pacman test/util src/pacman src/util
|
||||||
$(PYTHON) $(top_srcdir)/pactest/pactest.py --debug=1 \
|
$(PYTHON) $(top_srcdir)/test/pacman/pactest.py --debug=1 \
|
||||||
--test $(top_srcdir)/pactest/tests/*.py \
|
--test $(top_srcdir)/test/pacman/tests/*.py \
|
||||||
-p $(top_builddir)/src/pacman/pacman
|
-p $(top_builddir)/src/pacman/pacman
|
||||||
rm -rf $(top_builddir)/root
|
rm -rf $(top_builddir)/root
|
||||||
$(SH) $(top_srcdir)/pactest/vercmptest.sh \
|
$(SH) $(top_srcdir)/test/util/vercmptest.sh \
|
||||||
$(top_builddir)/src/util/vercmp
|
$(top_builddir)/src/util/vercmp
|
||||||
|
|
||||||
# create the pacman DB and cache directories upon install
|
# create the pacman DB and cache directories upon install
|
||||||
|
|||||||
92
NEWS
92
NEWS
@@ -1,5 +1,97 @@
|
|||||||
VERSION DESCRIPTION
|
VERSION DESCRIPTION
|
||||||
-----------------------------------------------------------------------------
|
-----------------------------------------------------------------------------
|
||||||
|
3.4.3 - fix attempted double remove of all files issue during upgrades
|
||||||
|
- respect IgnorePkg/IgnoreGroup for group members (FS#19854)
|
||||||
|
- back out epoch changes; 3.5.X will handle them differently
|
||||||
|
3.4.2 - fix progress bar display with empty packages
|
||||||
|
- make pactest testsuite Python 2.7 compatible
|
||||||
|
- write epoch values in preparation for 3.5.X releases
|
||||||
|
- fix null pointer dereference in architecture check (FS#21668)
|
||||||
|
- documentation: remove unnecessary "|| return 1"
|
||||||
|
- contrib/bacman: update package compression selection
|
||||||
|
- contrib/PKGBUILD.vim: add a few more license options
|
||||||
|
- translations: es, kk, sv, pt, ru updated
|
||||||
|
3.4.1 - fix interaction of --needed and multiple repo groups (FS#20221)
|
||||||
|
- bash completion: small fixes to prevent alias problems
|
||||||
|
- rankmirrors: fix bogus/empty variable assignment (FS#19911)
|
||||||
|
- repo-add: ensure bare DB symlinks are relative (FS#20498)
|
||||||
|
- repo-add: fallback to copy if symlink not permitted (FS#19907)
|
||||||
|
- makepkg:
|
||||||
|
- use absolute path to 'du' to exclude wrapper progs (FS#19932)
|
||||||
|
- ensure $startdir check doesn't stall indefinitely (FS#19975)
|
||||||
|
- fix repackaging with multiple passed packages (FS#20272)
|
||||||
|
- translations:
|
||||||
|
- zh_CN: fix crash when using during install (FS#20188)
|
||||||
|
- sk: new Slovak translation
|
||||||
|
- pt: new European Portuguese translation
|
||||||
|
- other small updates to various translations
|
||||||
|
3.4.0 - new "Architecture" option that will restrict pacman to
|
||||||
|
installing only packages from the given architecture. Can be
|
||||||
|
set to "auto" in which case the output of "uname -m" is used
|
||||||
|
- use "$arch" when specifying a mirror url to automatically
|
||||||
|
select the correct architecture
|
||||||
|
- Installing packages with -U can handle installing
|
||||||
|
dependencies, conflict resolution and replacing packages
|
||||||
|
(FS#3492, FS#5798)
|
||||||
|
- can upgrade the system and install a new package using
|
||||||
|
"pacman -Syu <pkg>" (FS#15581)
|
||||||
|
- new -D/--database operation for modifying package install
|
||||||
|
reasons (FS#12950)
|
||||||
|
- new --print and --print-format options to output information
|
||||||
|
in suitable format for wrapper scripts (FS#14208)
|
||||||
|
- only extract new entries when updating a repo database
|
||||||
|
- show "Required by" in -Sii output (FS#16244)
|
||||||
|
- -U and -R options always ask for confirmation
|
||||||
|
- allow -Qo to perform a functional 'which' (FS#8798)
|
||||||
|
- cache cleaning cleans all directories, not just first
|
||||||
|
- cleanupdelta: new utility to help remove unused deltas from
|
||||||
|
a repo database
|
||||||
|
- bash completion: rewrite for size and performance (FS#16630)
|
||||||
|
- repo-add: handle removing the final package from a repo
|
||||||
|
- rankmirrors: rewrite using bash
|
||||||
|
- vercmp: does not link to libalpm to prevent upgrade issues
|
||||||
|
- makepkg:
|
||||||
|
- automatically aborts on any errors during packaging
|
||||||
|
- changelogs are now included via the "changelog" variable
|
||||||
|
- override pkgver, pkgrel and arch in split packages (FS#15955)
|
||||||
|
- repackaging without a package() function is deprecated
|
||||||
|
- stricter syntax checking for backup and optdepends entries
|
||||||
|
- file stripping options are configurable
|
||||||
|
- New --pkg flag to allow building specific package(s) from
|
||||||
|
split PKGBUILDs (FS#15956)
|
||||||
|
- build() function is now optional (FS#15147)
|
||||||
|
- warn about reference to build root in a package (FS#14751)
|
||||||
|
- configure source package destination with SRCPKGDEST
|
||||||
|
- major internal refactoring of handling tests ("[" to "[[")
|
||||||
|
- contrib/pactree: print reverse dependency tree
|
||||||
|
3.3.3 - correctly check the return code from opendir()
|
||||||
|
- fix possible infinite loop in alpm_list_remove()
|
||||||
|
- makepkg:
|
||||||
|
- quote arrays to preserve spaces in arrays (FS#16871)
|
||||||
|
- allow passing arguments with spaces
|
||||||
|
- adjust preselected option for clearing cache
|
||||||
|
- translations:
|
||||||
|
- zh_CN: fix positional parameter usage in makepkg (FS#16983)
|
||||||
|
- el: fix Y/N response translation (FS#16568)
|
||||||
|
3.3.2 - fix infinite filesize download issue (FS#16359)
|
||||||
|
- fix bogus download size on TotalDownload
|
||||||
|
- documentation updates
|
||||||
|
- small translation updates
|
||||||
|
- repo-add: use size of target files and not symlinks
|
||||||
|
- repo-remove: create empty DB when all packages are removed
|
||||||
|
3.3.1 - use full path to ldconfig when calling in chroot
|
||||||
|
- optimize the check for modified databases during sync
|
||||||
|
- ensure installed libfetch is new enough
|
||||||
|
- have -Q ops return 1 when no package matches (FS#15938)
|
||||||
|
- skip SyncFirst dialog if unnecessary (FS#15810)
|
||||||
|
- misc documentation updates (FS#15870, FS#15984)
|
||||||
|
- testdb: be less verbose during checks
|
||||||
|
- existing translation updates
|
||||||
|
- two new translations: Norwegian, Swedish
|
||||||
|
- makepkg:
|
||||||
|
- add --skipinteg option (FS#15830)
|
||||||
|
- fix .PKGINFO creation with -R option (FS#15851)
|
||||||
|
- always keep symlinks to sources when unpacking
|
||||||
3.3.0 - xdelta: many fixes and improvements
|
3.3.0 - xdelta: many fixes and improvements
|
||||||
- new pkgdelta script to create deltas
|
- new pkgdelta script to create deltas
|
||||||
- repo-add can add both deltas and packages to a database
|
- repo-add can add both deltas and packages to a database
|
||||||
|
|||||||
@@ -3,9 +3,9 @@
|
|||||||
# see 'man PKGBUILD'. NOTE: Please fill out the license field for your package!
|
# see 'man PKGBUILD'. NOTE: Please fill out the license field for your package!
|
||||||
# If it is unknown, then please put 'unknown'.
|
# If it is unknown, then please put 'unknown'.
|
||||||
|
|
||||||
# Contributor: Your Name <youremail@domain.com>
|
# Maintainer: Your Name <youremail@domain.com>
|
||||||
pkgname=('pkg1' 'pkg2')
|
pkgname=('pkg1' 'pkg2')
|
||||||
pkgbase=""
|
pkgbase=BASE
|
||||||
pkgver=VERSION
|
pkgver=VERSION
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
pkgdesc=""
|
pkgdesc=""
|
||||||
@@ -21,6 +21,7 @@ replaces=()
|
|||||||
backup=()
|
backup=()
|
||||||
options=()
|
options=()
|
||||||
install=
|
install=
|
||||||
|
changelog=
|
||||||
source=($pkgbase-$pkgver.tar.gz)
|
source=($pkgbase-$pkgver.tar.gz)
|
||||||
noextract=()
|
noextract=()
|
||||||
md5sums=() #generate with 'makepkg -g'
|
md5sums=() #generate with 'makepkg -g'
|
||||||
@@ -28,12 +29,15 @@ md5sums=() #generate with 'makepkg -g'
|
|||||||
build() {
|
build() {
|
||||||
cd "$srcdir/$pkgbase-$pkgver"
|
cd "$srcdir/$pkgbase-$pkgver"
|
||||||
./configure --prefix=/usr
|
./configure --prefix=/usr
|
||||||
make || return 1
|
make
|
||||||
}
|
}
|
||||||
|
|
||||||
package_pkg1() {
|
package_pkg1() {
|
||||||
# options and directives that can be overridden
|
# options and directives that can be overridden
|
||||||
|
pkgver=
|
||||||
|
pkgrel=
|
||||||
pkgdesc=""
|
pkgdesc=""
|
||||||
|
arch=()
|
||||||
license=()
|
license=()
|
||||||
groups=()
|
groups=()
|
||||||
depends=()
|
depends=()
|
||||||
@@ -44,6 +48,7 @@ package_pkg1() {
|
|||||||
backup=()
|
backup=()
|
||||||
options=()
|
options=()
|
||||||
install=
|
install=
|
||||||
|
changelog=
|
||||||
|
|
||||||
cd "$srcdir/$pkgbase-$pkgver"
|
cd "$srcdir/$pkgbase-$pkgver"
|
||||||
make DESTDIR="$pkgdir/" install-pkg1
|
make DESTDIR="$pkgdir/" install-pkg1
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# NOTE: Please fill out the license field for your package! If it is unknown,
|
# NOTE: Please fill out the license field for your package! If it is unknown,
|
||||||
# then please put 'unknown'.
|
# then please put 'unknown'.
|
||||||
|
|
||||||
# Contributor: Your Name <youremail@domain.com>
|
# Maintainer: Your Name <youremail@domain.com>
|
||||||
pkgname=NAME
|
pkgname=NAME
|
||||||
pkgver=VERSION
|
pkgver=VERSION
|
||||||
pkgrel=1
|
pkgrel=1
|
||||||
@@ -21,6 +21,7 @@ replaces=()
|
|||||||
backup=()
|
backup=()
|
||||||
options=()
|
options=()
|
||||||
install=
|
install=
|
||||||
|
changelog=
|
||||||
source=($pkgname-$pkgver.tar.gz)
|
source=($pkgname-$pkgver.tar.gz)
|
||||||
noextract=()
|
noextract=()
|
||||||
md5sums=() #generate with 'makepkg -g'
|
md5sums=() #generate with 'makepkg -g'
|
||||||
@@ -29,7 +30,12 @@ build() {
|
|||||||
cd "$srcdir/$pkgname-$pkgver"
|
cd "$srcdir/$pkgname-$pkgver"
|
||||||
|
|
||||||
./configure --prefix=/usr
|
./configure --prefix=/usr
|
||||||
make || return 1
|
make
|
||||||
|
}
|
||||||
|
|
||||||
|
package() {
|
||||||
|
cd "$srcdir/$pkgname-$pkgver"
|
||||||
|
|
||||||
make DESTDIR="$pkgdir/" install
|
make DESTDIR="$pkgdir/" install
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
34
README
34
README
@@ -57,7 +57,6 @@ library is initialized.
|
|||||||
* dbpath: The toplevel database directory (Default: /var/lib/pacman)
|
* dbpath: The toplevel database directory (Default: /var/lib/pacman)
|
||||||
* logfile: The base path to pacman's log file (Default: /var/log/pacman.log)
|
* logfile: The base path to pacman's log file (Default: /var/log/pacman.log)
|
||||||
* usesyslog: Log to syslog instead of `logfile` for file-base logging.
|
* usesyslog: Log to syslog instead of `logfile` for file-base logging.
|
||||||
* nopassiveftp: Do not use passive FTP commands for ftp connections.
|
|
||||||
|
|
||||||
The following options also have `alpm_option_{add,remove}_*` functions, as the
|
The following options also have `alpm_option_{add,remove}_*` functions, as the
|
||||||
values are list structures.
|
values are list structures.
|
||||||
@@ -296,3 +295,36 @@ API CHANGES BETWEEN 3.2 AND 3.3
|
|||||||
- error codes:
|
- error codes:
|
||||||
PM_ERR_SERVER_NONE, PM_ERR_TRANS_NOT_LOCKED, PM_ERR_PKG_IGNORED and
|
PM_ERR_SERVER_NONE, PM_ERR_TRANS_NOT_LOCKED, PM_ERR_PKG_IGNORED and
|
||||||
PM_ERR_LIBFETCH
|
PM_ERR_LIBFETCH
|
||||||
|
|
||||||
|
|
||||||
|
API CHANGES BETWEEN 3.3 AND 3.4
|
||||||
|
===============================
|
||||||
|
|
||||||
|
[REMOVED]
|
||||||
|
- pmtranstype_t struct (transaction type), alpm_trans_get_type()
|
||||||
|
- alpm_option_get_nopassiveftp(), alpm_option_set_nopassiveftp()
|
||||||
|
|
||||||
|
[CHANGED]
|
||||||
|
- interface for target loading:
|
||||||
|
- alpm_trans_addtarget() and alpm_trans_sysupgrade() were removed
|
||||||
|
- alpm_sync_target() and alpm_sync_dbtarget() can be used to add a sync target
|
||||||
|
- alpm_sync_sysupgrade() can be used to add outdated packages (for sysupgrade)
|
||||||
|
- alpm_add_target() can be used to add an add/upgrade target
|
||||||
|
- alpm_remove_target() can be used to add a remove target
|
||||||
|
- interface for target listing:
|
||||||
|
- alpm_trans_get_pkgs() was removed
|
||||||
|
- alpm_pkg_get_removes() was removed
|
||||||
|
- alpm_trans_get_add() can be used to list add/upgrade/sync targets
|
||||||
|
- alpm_trans_get_remove() can be used to list to-be-removed packages
|
||||||
|
- the type parameter of alpm_trans_init() was removed
|
||||||
|
- the type of alpm_db_fetch callback function: mtimeold and mtimenew parameters
|
||||||
|
were replaced by force parameter
|
||||||
|
- unsigned short -> int changes for Boolean variables
|
||||||
|
|
||||||
|
[ADDED]
|
||||||
|
- alpm_db_set_pkgreason()
|
||||||
|
- alpm_option_get_arch(), alpm_option_set_arch()
|
||||||
|
- alpm_option_get_usedelta()
|
||||||
|
- alpm_pkg_unused_deltas()
|
||||||
|
- alpm_conflict_get_reason()
|
||||||
|
- error code: PM_ERR_PKG_INVALID_ARCH
|
||||||
|
|||||||
@@ -10,10 +10,14 @@ If your language is not listed here and you wish it was, let the pacman mailing
|
|||||||
list know you are interested in making a translation. We will be happy to add
|
list know you are interested in making a translation. We will be happy to add
|
||||||
your language to the mix.
|
your language to the mix.
|
||||||
|
|
||||||
|
Catalan (ca):
|
||||||
|
Manuel Tortosa <manutortosa@chakra-project.org>
|
||||||
Czech (cs):
|
Czech (cs):
|
||||||
Vojtěch Gondžala <vojtech.gondzala@gmail.com>
|
Vojtěch Gondžala <vojtech.gondzala@gmail.com>
|
||||||
German (de):
|
German (de):
|
||||||
Matthias Gorissen <matthias@archlinux.de>
|
Matthias Gorissen <matthias@archlinux.de>
|
||||||
|
Greek (el):
|
||||||
|
Christos Nouskas <nouskas@gmail.com>
|
||||||
British English (en_GB):
|
British English (en_GB):
|
||||||
Jeff Bailes <thepizzaking@gmail.com>
|
Jeff Bailes <thepizzaking@gmail.com>
|
||||||
Spanish (es):
|
Spanish (es):
|
||||||
@@ -28,6 +32,8 @@ Italian (it):
|
|||||||
Giovanni Scafora <giovanni@archlinux.org>
|
Giovanni Scafora <giovanni@archlinux.org>
|
||||||
Kazakh (kk):
|
Kazakh (kk):
|
||||||
Baurzhan Muftakhidinov <baurthefirst@gmail.com>
|
Baurzhan Muftakhidinov <baurthefirst@gmail.com>
|
||||||
|
Norwegian (nb):
|
||||||
|
Hans-Kristian Arntzen <maister@archlinux.us>
|
||||||
Polish (pl):
|
Polish (pl):
|
||||||
Mateusz Herych <heniekk@gmail.com>
|
Mateusz Herych <heniekk@gmail.com>
|
||||||
Jaroslaw Swierczynski <swiergot@gmail.com>
|
Jaroslaw Swierczynski <swiergot@gmail.com>
|
||||||
@@ -43,6 +49,8 @@ Russian (ru):
|
|||||||
Vitaly Dolgov <ferhiord@gmail.com>
|
Vitaly Dolgov <ferhiord@gmail.com>
|
||||||
Oleg Finkelshteyn <olegfink@gmail.com>
|
Oleg Finkelshteyn <olegfink@gmail.com>
|
||||||
Vladimir Bayrakovskiy <4rayven@gmail.com>
|
Vladimir Bayrakovskiy <4rayven@gmail.com>
|
||||||
|
Swedish (sv):
|
||||||
|
Christian Larsson <congacx@gmail.com>
|
||||||
Turkish (tr):
|
Turkish (tr):
|
||||||
Samed Beyribey <ras0ir@eventualis.org>
|
Samed Beyribey <ras0ir@eventualis.org>
|
||||||
Alper KANAT <alperkanat@gmail.com>
|
Alper KANAT <alperkanat@gmail.com>
|
||||||
|
|||||||
@@ -18,11 +18,11 @@ rm -f scripts/{Makefile.in,Makefile}
|
|||||||
rm -f etc/{Makefile.in,Makefile}
|
rm -f etc/{Makefile.in,Makefile}
|
||||||
rm -f etc/pacman.d/{Makefile.in,Makefile}
|
rm -f etc/pacman.d/{Makefile.in,Makefile}
|
||||||
rm -f etc/abs/{Makefile.in,Makefile}
|
rm -f etc/abs/{Makefile.in,Makefile}
|
||||||
rm -f pactest{,/tests}/{Makefile.in,Makefile}
|
rm -f test/{pacman,util}{,/tests}/{Makefile.in,Makefile}
|
||||||
rm -f contrib/{Makefile.in,Makefile}
|
rm -f contrib/{Makefile.in,Makefile}
|
||||||
rm -f doc/{Makefile.in,Makefile}
|
rm -f doc/{Makefile.in,Makefile}
|
||||||
|
|
||||||
rm -f pactest/*.pyc
|
rm -f test/pacman/*.pyc
|
||||||
rm -f doc/html/*.html
|
rm -f doc/html/*.html
|
||||||
rm -f doc/man3/*.3
|
rm -f doc/man3/*.3
|
||||||
|
|
||||||
|
|||||||
56
configure.ac
56
configure.ac
@@ -41,13 +41,13 @@ AC_PREREQ(2.60)
|
|||||||
# Bugfix releases:
|
# Bugfix releases:
|
||||||
# pacman_version_micro += 1
|
# pacman_version_micro += 1
|
||||||
|
|
||||||
m4_define([lib_current], [4])
|
m4_define([lib_current], [5])
|
||||||
m4_define([lib_revision], [0])
|
m4_define([lib_revision], [3])
|
||||||
m4_define([lib_age], [0])
|
m4_define([lib_age], [0])
|
||||||
|
|
||||||
m4_define([pacman_version_major], [3])
|
m4_define([pacman_version_major], [3])
|
||||||
m4_define([pacman_version_minor], [3])
|
m4_define([pacman_version_minor], [4])
|
||||||
m4_define([pacman_version_micro], [0])
|
m4_define([pacman_version_micro], [3])
|
||||||
m4_define([pacman_version],
|
m4_define([pacman_version],
|
||||||
[pacman_version_major.pacman_version_minor.pacman_version_micro])
|
[pacman_version_major.pacman_version_minor.pacman_version_micro])
|
||||||
|
|
||||||
@@ -126,7 +126,7 @@ AC_PROG_INSTALL
|
|||||||
AC_PROG_LN_S
|
AC_PROG_LN_S
|
||||||
AC_PROG_MAKE_SET
|
AC_PROG_MAKE_SET
|
||||||
AC_PROG_LIBTOOL
|
AC_PROG_LIBTOOL
|
||||||
AC_CHECK_PROGS([PYTHON], [python2.6 python2.5 python], [false])
|
AC_CHECK_PROGS([PYTHON], [python2.7 python2.6 python2.5 python2 python], [false])
|
||||||
|
|
||||||
# find installed gettext
|
# find installed gettext
|
||||||
AM_GNU_GETTEXT([external])
|
AM_GNU_GETTEXT([external])
|
||||||
@@ -143,14 +143,19 @@ if test "x$internaldownload" = "xyes" ; then
|
|||||||
AC_DEFINE([INTERNAL_DOWNLOAD], , [Use internal download library])
|
AC_DEFINE([INTERNAL_DOWNLOAD], , [Use internal download library])
|
||||||
# Check for a download library if it was actually requested
|
# Check for a download library if it was actually requested
|
||||||
AC_CHECK_LIB([fetch], [fetchParseURL], ,
|
AC_CHECK_LIB([fetch], [fetchParseURL], ,
|
||||||
AC_MSG_ERROR([libfetch is needed to compile with internal download support]) )
|
AC_MSG_ERROR([libfetch is needed to compile with internal download support]), [-lcrypto -ldl] )
|
||||||
|
# Check if libfetch supports conditional GET
|
||||||
|
# (version >=2.21, struct url has member last_modified)
|
||||||
|
AC_CHECK_MEMBER(struct url.last_modified, ,
|
||||||
|
AC_MSG_ERROR([libfetch must be version 2.21 or greater]),
|
||||||
|
[#include <fetch.h>] )
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
fi
|
fi
|
||||||
AM_CONDITIONAL(INTERNAL_DOWNLOAD, test "x$internaldownload" = "xyes")
|
AM_CONDITIONAL(INTERNAL_DOWNLOAD, test "x$internaldownload" = "xyes")
|
||||||
|
|
||||||
# Checks for header files.
|
# Checks for header files.
|
||||||
AC_CHECK_HEADERS([fcntl.h libintl.h limits.h locale.h string.h strings.h sys/ioctl.h sys/param.h sys/statvfs.h sys/syslimits.h sys/time.h syslog.h wchar.h])
|
AC_CHECK_HEADERS([fcntl.h glob.h libintl.h limits.h locale.h string.h strings.h sys/ioctl.h sys/param.h sys/statvfs.h sys/syslimits.h sys/time.h syslog.h wchar.h])
|
||||||
|
|
||||||
# Checks for typedefs, structures, and compiler characteristics.
|
# Checks for typedefs, structures, and compiler characteristics.
|
||||||
AC_C_INLINE
|
AC_C_INLINE
|
||||||
@@ -179,11 +184,14 @@ GCC_VISIBILITY_CC
|
|||||||
GCC_GNU89_INLINE_CC
|
GCC_GNU89_INLINE_CC
|
||||||
|
|
||||||
# Host-dependant definitions
|
# Host-dependant definitions
|
||||||
SIZECMD="stat -c %s"
|
SIZECMD="stat -L -c %s"
|
||||||
SEDINPLACE="sed -i"
|
SEDINPLACE="sed -i"
|
||||||
|
STRIP_BINARIES="--strip-all"
|
||||||
|
STRIP_SHARED="--strip-unneeded"
|
||||||
|
STRIP_STATIC="--strip-debug"
|
||||||
case "${host_os}" in
|
case "${host_os}" in
|
||||||
*bsd*)
|
*bsd*)
|
||||||
SIZECMD="stat -f %z"
|
SIZECMD="stat -L -f %z"
|
||||||
SEDINPLACE="sed -i ''"
|
SEDINPLACE="sed -i ''"
|
||||||
;;
|
;;
|
||||||
cygwin*)
|
cygwin*)
|
||||||
@@ -192,15 +200,22 @@ case "${host_os}" in
|
|||||||
;;
|
;;
|
||||||
darwin*)
|
darwin*)
|
||||||
host_os_darwin=yes
|
host_os_darwin=yes
|
||||||
SIZECMD="/usr/bin/stat -f %z"
|
SIZECMD="/usr/bin/stat -L -f %z"
|
||||||
SEDINPLACE="/usr/bin/sed -i ''"
|
SEDINPLACE="/usr/bin/sed -i ''"
|
||||||
|
STRIP_BINARIES=""
|
||||||
|
STRIP_SHARED="-S"
|
||||||
|
STRIP_STATIC="-S"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
|
AM_CONDITIONAL([CYGWIN], test "x$host_os_cygwin" = "xyes")
|
||||||
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
|
AM_CONDITIONAL([DARWIN], test "x$host_os_darwin" = "xyes")
|
||||||
|
AC_PATH_PROGS([DUPATH], [du], [du], [/usr/bin$PATH_SEPARATOR/bin] )
|
||||||
AC_SUBST(SIZECMD)
|
AC_SUBST(SIZECMD)
|
||||||
AC_SUBST(SEDINPLACE)
|
AC_SUBST(SEDINPLACE)
|
||||||
|
AC_SUBST(STRIP_BINARIES)
|
||||||
|
AC_SUBST(STRIP_SHARED)
|
||||||
|
AC_SUBST(STRIP_STATIC)
|
||||||
|
|
||||||
# Check for architecture, used in default makepkg.conf
|
# Check for architecture, used in default makepkg.conf
|
||||||
# (Note single space left after CARCHFLAGS)
|
# (Note single space left after CARCHFLAGS)
|
||||||
@@ -247,9 +262,15 @@ AC_SUBST(CARCHFLAGS)
|
|||||||
AC_SUBST(CHOST)
|
AC_SUBST(CHOST)
|
||||||
|
|
||||||
# Check for documentation support and status
|
# Check for documentation support and status
|
||||||
|
AC_CHECK_PROGS([ASCIIDOC], [asciidoc])
|
||||||
AC_MSG_CHECKING([for building documentation])
|
AC_MSG_CHECKING([for building documentation])
|
||||||
if test "x$wantdoc" = "xyes" ; then
|
if test "x$wantdoc" = "xyes" ; then
|
||||||
AC_MSG_RESULT([yes])
|
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
|
wantdoc=yes
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT([no, disabled by configure])
|
AC_MSG_RESULT([no, disabled by configure])
|
||||||
@@ -284,17 +305,17 @@ if test "x$debug" = "xyes" ; then
|
|||||||
# Check for -fstack-protector availability
|
# Check for -fstack-protector availability
|
||||||
GCC_STACK_PROTECT_LIB
|
GCC_STACK_PROTECT_LIB
|
||||||
GCC_STACK_PROTECT_CC
|
GCC_STACK_PROTECT_CC
|
||||||
CFLAGS="$CFLAGS -Wall -Werror"
|
CFLAGS="$CFLAGS -g -Wall -Werror"
|
||||||
else
|
else
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
CFLAGS="$CFLAGS -Wall"
|
CFLAGS="$CFLAGS -Wall"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Enable or disable use of git version in pacman version string
|
# Enable or disable use of git version in pacman version string
|
||||||
AC_CHECK_PROGS([GIT], [git])
|
|
||||||
AC_CHECK_FILE([.git/], hasgitdir=yes)
|
|
||||||
AC_MSG_CHECKING(whether to use git version if available)
|
AC_MSG_CHECKING(whether to use git version if available)
|
||||||
if test "x$wantgitver" = "xyes" ; then
|
if test "x$wantgitver" = "xyes" ; then
|
||||||
|
AC_CHECK_PROGS([GIT], [git])
|
||||||
|
AC_CHECK_FILE([.git/], hasgitdir=yes)
|
||||||
if test $GIT -a "x$hasgitdir" = "xyes"; then
|
if test $GIT -a "x$hasgitdir" = "xyes"; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
usegitver=yes
|
usegitver=yes
|
||||||
@@ -334,8 +355,9 @@ scripts/Makefile
|
|||||||
doc/Makefile
|
doc/Makefile
|
||||||
etc/Makefile
|
etc/Makefile
|
||||||
po/Makefile.in
|
po/Makefile.in
|
||||||
pactest/Makefile
|
test/pacman/Makefile
|
||||||
pactest/tests/Makefile
|
test/pacman/tests/Makefile
|
||||||
|
test/util/Makefile
|
||||||
contrib/Makefile
|
contrib/Makefile
|
||||||
Makefile
|
Makefile
|
||||||
])
|
])
|
||||||
@@ -375,7 +397,7 @@ ${PACKAGE_NAME}:
|
|||||||
build script name : ${BUILDSCRIPT}
|
build script name : ${BUILDSCRIPT}
|
||||||
|
|
||||||
Compilation options:
|
Compilation options:
|
||||||
Run make in doc/ dir : ${wantdoc}
|
Run make in doc/ dir : ${wantdoc} ${asciidoc}
|
||||||
Use download library : ${internaldownload}
|
Use download library : ${internaldownload}
|
||||||
Doxygen support : ${usedoxygen}
|
Doxygen support : ${usedoxygen}
|
||||||
debug support : ${debug}
|
debug support : ${debug}
|
||||||
|
|||||||
@@ -2,13 +2,11 @@ EXTRA_DIST = \
|
|||||||
PKGBUILD.vim \
|
PKGBUILD.vim \
|
||||||
bacman \
|
bacman \
|
||||||
bash_completion \
|
bash_completion \
|
||||||
gensync \
|
|
||||||
pacdiff \
|
pacdiff \
|
||||||
paclist \
|
paclist \
|
||||||
pacscripts \
|
pacscripts \
|
||||||
pacsearch \
|
pacsearch \
|
||||||
pactree \
|
pactree \
|
||||||
updatesync \
|
|
||||||
vimprojects \
|
vimprojects \
|
||||||
wget-xdelta.sh \
|
wget-xdelta.sh \
|
||||||
zsh_completion \
|
zsh_completion \
|
||||||
|
|||||||
@@ -25,6 +25,13 @@ syn match pbValidPkgname /\([[:alnum:]]\|+\|-\|_\){,32}/ contained contains=pbIl
|
|||||||
syn match pbIllegalPkgname /[[:upper:]]\|[^[:alnum:]-+_=]\|=.*=\|=['"]\?.\{33,\}['"]\?/ contained
|
syn match pbIllegalPkgname /[[:upper:]]\|[^[:alnum:]-+_=]\|=.*=\|=['"]\?.\{33,\}['"]\?/ contained
|
||||||
syn match pbPkgnameGroup /^pkgname=.*/ contains=pbIllegalPkgname,pb_k_pkgname,shDoubleQuote,shSingleQuote
|
syn match pbPkgnameGroup /^pkgname=.*/ contains=pbIllegalPkgname,pb_k_pkgname,shDoubleQuote,shSingleQuote
|
||||||
|
|
||||||
|
" pkgbase
|
||||||
|
" FIXME if '=' is in pkgbase/pkgname/pkgver, it highlights whole string, not just '='
|
||||||
|
syn keyword pb_k_pkgbase pkgbase contained
|
||||||
|
syn match pbValidPkgbase /\([[:alnum:]]\|+\|-\|_\){,32}/ contained contains=pbIllegalPkgbase
|
||||||
|
syn match pbIllegalPkgbase /[[:upper:]]\|[^[:alnum:]-+_=]\|=.*=\|=['"]\?.\{33,\}['"]\?/ contained
|
||||||
|
syn match pbPkgbaseGroup /^pkgbase=.*/ contains=pbIllegalPkgbase,pb_k_pkgbase,shDoubleQuote,shSingleQuote
|
||||||
|
|
||||||
" pkgver
|
" pkgver
|
||||||
syn keyword pb_k_pkgver pkgver contained
|
syn keyword pb_k_pkgver pkgver contained
|
||||||
syn match pbValidPkgver /\([[:alnum:]]\|\.\|+\|_\)/ contained contains=pbIllegalPkgver
|
syn match pbValidPkgver /\([[:alnum:]]\|\.\|+\|_\)/ contained contains=pbIllegalPkgver
|
||||||
@@ -54,10 +61,13 @@ syn match pbUrlGroup /^url=.*/ contains=pbValidUrl,pb_k_url,pbIllegalUrl,shDoubl
|
|||||||
|
|
||||||
" license
|
" license
|
||||||
syn keyword pb_k_license license contained
|
syn keyword pb_k_license license contained
|
||||||
syn keyword pbLicense APACHE CDDL EPL FDL GPL LGPL MPL PHP RUBY ZLIB ISC MIT BSD contained
|
" echo $(pacman -Ql licenses | grep '/usr/share/licenses/common/' | cut -d'/' -f6 | sort -u)
|
||||||
|
syn keyword pbLicense APACHE CCPL CDDL CPL EPL FDL FDL1.2 FDL1.3 GPL GPL2 GPL3 LGPL LGPL2.1 LGPL3 LPPL MPL PerlArtistic PHP PSF RALINK RUBY ZPL contained
|
||||||
|
" special cases from http://wiki.archlinux.org/index.php/Arch_Packaging_Standards
|
||||||
|
syn keyword pbLicenseSpecial BSD MIT ZLIB Python contained
|
||||||
syn match pbLicenseCustom /custom\(:[[:alnum:]]*\)*/ contained
|
syn match pbLicenseCustom /custom\(:[[:alnum:]]*\)*/ contained
|
||||||
syn match pbIllegalLicense /[^='"() ]/ contained contains=pbLicenseCustom,pbLicense
|
syn match pbIllegalLicense /[^='"() ]/ contained contains=pbLicenseCustom,pbLicenseSpecial,pbLicense
|
||||||
syn region pbLicenseGroup start=/^license=(/ end=/)/ contains=pb_k_license,pbLicenseCustom,pbLicense,pbIllegalLicense
|
syn region pbLicenseGroup start=/^license=(/ end=/)/ contains=pb_k_license,pbLicenseCustom,pbLicenseSpecial,pbLicense,pbIllegalLicense
|
||||||
|
|
||||||
" backup
|
" backup
|
||||||
syn keyword pb_k_backup backup contained
|
syn keyword pb_k_backup backup contained
|
||||||
@@ -66,7 +76,7 @@ syn region pbBackupGroup start=/^backup=(/ end=/)/ contains=pb_k_backup,pbValidB
|
|||||||
|
|
||||||
" arch
|
" arch
|
||||||
syn keyword pb_k_arch arch contained
|
syn keyword pb_k_arch arch contained
|
||||||
syn keyword pbArch i686 x86_64 ppc contained
|
syn keyword pbArch i686 x86_64 ppc any contained
|
||||||
syn match pbIllegalArch /[^='"() ]/ contained contains=pbArch
|
syn match pbIllegalArch /[^='"() ]/ contained contains=pbArch
|
||||||
syn region pbArchGroup start=/^arch=(/ end=/)/ contains=pb_k_arch,pbArch,pbIllegalArch
|
syn region pbArchGroup start=/^arch=(/ end=/)/ contains=pb_k_arch,pbArch,pbIllegalArch
|
||||||
|
|
||||||
@@ -115,6 +125,12 @@ syn match pbValidInstall /\([[:alnum:]]\|\$\|+\|-\|_\)*\.install/ contained
|
|||||||
syn match pbIllegalInstall /[^=]/ contained contains=pbValidInstall
|
syn match pbIllegalInstall /[^=]/ contained contains=pbValidInstall
|
||||||
syn match pbInstallGroup /^install=.*/ contains=pb_k_install,pbValidInstall,pbIllegalInstall,shDeref,shDoubleQuote,shSingleQuote
|
syn match pbInstallGroup /^install=.*/ contains=pb_k_install,pbValidInstall,pbIllegalInstall,shDeref,shDoubleQuote,shSingleQuote
|
||||||
|
|
||||||
|
" changelog
|
||||||
|
syn keyword pb_k_changelog changelog contained
|
||||||
|
syn match pbValidChangelog /\([[:alnum:]]\|\$\|+\|-\|_\)*/ contained
|
||||||
|
syn match pbIllegalChangelog /[^=]/ contained contains=pbValidChangelog
|
||||||
|
syn match pbChangelogGroup /^changelog=.*/ contains=pb_k_changelog,pbValidChangelog,pbIllegalChangelog,shDeref,shDoubleQuote,shSingleQuote
|
||||||
|
|
||||||
" source:
|
" source:
|
||||||
" XXX remove source from shStatement, fix strange bug
|
" XXX remove source from shStatement, fix strange bug
|
||||||
syn clear shStatement
|
syn clear shStatement
|
||||||
@@ -127,13 +143,12 @@ syn match pbDerefEmulation /\$[{]\?[[:alnum:]_]*[}]\?/ contained
|
|||||||
hi def link pbDerefEmulation PreProc
|
hi def link pbDerefEmulation PreProc
|
||||||
|
|
||||||
" md5sums
|
" md5sums
|
||||||
|
|
||||||
syn keyword pb_k_md5sums md5sums contained
|
syn keyword pb_k_md5sums md5sums contained
|
||||||
syn match pbIllegalMd5sums /[^='"()\/ ]/ contained contains=pbValidMd5sums
|
syn match pbIllegalMd5sums /[^='"()\/ ]/ contained contains=pbValidMd5sums
|
||||||
syn match pbValidMd5sums /[[:alnum:]]\{32\}/ contained
|
syn match pbValidMd5sums /\x\{32\}/ contained
|
||||||
syn region pbMd5sumsGroup start=/^md5sums/ end=/)/ contains=pb_k_md5sums,pbMd5Quotes,pbMd5Hash,pbIllegalMd5sums keepend
|
syn region pbMd5sumsGroup start=/^md5sums/ end=/)/ contains=pb_k_md5sums,pbMd5Quotes,pbMd5Hash,pbIllegalMd5sums keepend
|
||||||
syn match pbMd5Quotes /'.*'\|".*"/ contained contains=pbMd5Hash,pbIllegalMd5sums
|
syn match pbMd5Quotes /'.*'\|".*"/ contained contains=pbMd5Hash,pbIllegalMd5sums
|
||||||
syn match pbMd5Hash /[[:alnum:]]\+/ contained contains=pbValidMd5sums
|
syn match pbMd5Hash /\x\+/ contained contains=pbValidMd5sums
|
||||||
hi def link pbMd5Quotes Keyword
|
hi def link pbMd5Quotes Keyword
|
||||||
hi def link pbMd5Hash Error
|
hi def link pbMd5Hash Error
|
||||||
hi def link pbValidMd5sums Number
|
hi def link pbValidMd5sums Number
|
||||||
@@ -141,10 +156,10 @@ hi def link pbValidMd5sums Number
|
|||||||
" sha1sums
|
" sha1sums
|
||||||
syn keyword pb_k_sha1sums sha1sums contained
|
syn keyword pb_k_sha1sums sha1sums contained
|
||||||
syn match pbIllegalSha1sums /[^='"()\/ ]/ contained contains=pbValidSha1sums
|
syn match pbIllegalSha1sums /[^='"()\/ ]/ contained contains=pbValidSha1sums
|
||||||
syn match pbValidSha1sums /[[:alnum:]]\{40\}/ contained
|
syn match pbValidSha1sums /\x\{40\}/ contained
|
||||||
syn region pbSha1sumsGroup start=/^sha1sums/ end=/)/ contains=pb_k_sha1sums,pbSha1Quotes,pbSha1Hash,pbIllegalSha1sums keepend
|
syn region pbSha1sumsGroup start=/^sha1sums/ end=/)/ contains=pb_k_sha1sums,pbSha1Quotes,pbSha1Hash,pbIllegalSha1sums keepend
|
||||||
syn match pbSha1Quotes /'.*'\|".*"/ contained contains=pbSha1Hash,pbIllegalSha1sums
|
syn match pbSha1Quotes /'.*'\|".*"/ contained contains=pbSha1Hash,pbIllegalSha1sums
|
||||||
syn match pbSha1Hash /[[:alnum:]]\+/ contained contains=pbValidSha1sums
|
syn match pbSha1Hash /\x\+/ contained contains=pbValidSha1sums
|
||||||
hi def link pbSha1Quotes Keyword
|
hi def link pbSha1Quotes Keyword
|
||||||
hi def link pbSha1Hash Error
|
hi def link pbSha1Hash Error
|
||||||
hi def link pbValidSha1sums Number
|
hi def link pbValidSha1sums Number
|
||||||
@@ -181,6 +196,9 @@ hi def link pbTodo Todo
|
|||||||
hi def link pbIllegalPkgname Error
|
hi def link pbIllegalPkgname Error
|
||||||
hi def link pb_k_pkgname pbKeywords
|
hi def link pb_k_pkgname pbKeywords
|
||||||
|
|
||||||
|
hi def link pbIllegalPkgbase Error
|
||||||
|
hi def link pb_k_pkgbase pbKeywords
|
||||||
|
|
||||||
hi def link pbIllegalPkgver Error
|
hi def link pbIllegalPkgver Error
|
||||||
hi def link pb_k_pkgver pbKeywords
|
hi def link pb_k_pkgver pbKeywords
|
||||||
|
|
||||||
@@ -212,6 +230,9 @@ hi def link pb_k_provides pbKeywords
|
|||||||
hi def link pbIllegalInstall Error
|
hi def link pbIllegalInstall Error
|
||||||
hi def link pb_k_install pbKeywords
|
hi def link pb_k_install pbKeywords
|
||||||
|
|
||||||
|
hi def link pbIllegalChangelog Error
|
||||||
|
hi def link pb_k_changelog pbKeywords
|
||||||
|
|
||||||
hi def link pb_k_source pbKeywords
|
hi def link pb_k_source pbKeywords
|
||||||
hi def link pbIllegalSource Error
|
hi def link pbIllegalSource Error
|
||||||
|
|
||||||
|
|||||||
@@ -34,7 +34,3 @@ vimprojects - a project file for the vim project plugin.
|
|||||||
wget-xdelta.sh - A download script for pacman which allows binary deltas
|
wget-xdelta.sh - A download script for pacman which allows binary deltas
|
||||||
generated with makepkg to be used instead of downloading full binary packages.
|
generated with makepkg to be used instead of downloading full binary packages.
|
||||||
This should cut download sizes for some package upgrades significantly.
|
This should cut download sizes for some package upgrades significantly.
|
||||||
|
|
||||||
gensync, updatesync - The former repository management scripts that have since
|
|
||||||
been superseded by repo-add and repo-remove. They are here for posterity's
|
|
||||||
sake, and to show how repo-add and repo-remove can be wrapped in other scripts.
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
readonly progname="bacman"
|
readonly progname="bacman"
|
||||||
readonly progver="0.2.0"
|
readonly progver="0.2.1"
|
||||||
|
|
||||||
#
|
#
|
||||||
# User Friendliness
|
# User Friendliness
|
||||||
@@ -87,7 +87,6 @@ fi
|
|||||||
|
|
||||||
pkg_arch=${CARCH:-'unknown'}
|
pkg_arch=${CARCH:-'unknown'}
|
||||||
pkg_dest="${PKGDEST:-$PWD}"
|
pkg_dest="${PKGDEST:-$PWD}"
|
||||||
pkg_ext=${PKGEXT:-'.pkg.tar.gz'}
|
|
||||||
pkg_pkger=${PACKAGER:-'Unknown Packager'}
|
pkg_pkger=${PACKAGER:-'Unknown Packager'}
|
||||||
|
|
||||||
pkg_name="$1"
|
pkg_name="$1"
|
||||||
@@ -137,7 +136,7 @@ while read i; do
|
|||||||
bsdtar -cnf - "/$i" 2> /dev/null | bsdtar -xpf -
|
bsdtar -cnf - "/$i" 2> /dev/null | bsdtar -xpf -
|
||||||
|
|
||||||
# Workaround to bsdtar not reporting a missing file as an error
|
# Workaround to bsdtar not reporting a missing file as an error
|
||||||
if [ ! -e "$work_dir/$i" ] && [ -L "$work_dir/$i"]; then
|
if [ ! -e "$work_dir/$i" -a ! -L "$work_dir/$i" ]; then
|
||||||
echo ""
|
echo ""
|
||||||
echo "ERROR: unable to add /$i to the package"
|
echo "ERROR: unable to add /$i to the package"
|
||||||
echo " If your user does not have permssion to read this file then"
|
echo " If your user does not have permssion to read this file then"
|
||||||
@@ -164,13 +163,6 @@ fi
|
|||||||
|
|
||||||
pkg_size=$(du -sk | awk '{print $1 * 1024}')
|
pkg_size=$(du -sk | awk '{print $1 * 1024}')
|
||||||
|
|
||||||
if [ -f "$pkg_dir/install" ] ; then
|
|
||||||
cp "$pkg_dir/install" "$work_dir/.INSTALL"
|
|
||||||
fi
|
|
||||||
if [ -f $pkg_dir/changelog ] ; then
|
|
||||||
cp "$pkg_dir/changelog" "$work_dir/.CHANGELOG"
|
|
||||||
fi
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# .PKGINFO stuff
|
# .PKGINFO stuff
|
||||||
#
|
#
|
||||||
@@ -254,6 +246,17 @@ while read i; do
|
|||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
|
|
||||||
|
comp_files=".PKGINFO"
|
||||||
|
|
||||||
|
if [ -f "$pkg_dir/install" ] ; then
|
||||||
|
cp "$pkg_dir/install" "$work_dir/.INSTALL"
|
||||||
|
comp_files+=" .INSTALL"
|
||||||
|
fi
|
||||||
|
if [ -f $pkg_dir/changelog ] ; then
|
||||||
|
cp "$pkg_dir/changelog" "$work_dir/.CHANGELOG"
|
||||||
|
comp_files+=" .CHANGELOG"
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Fixes owner:group and permissions for .PKGINFO, .CHANGELOG, .INSTALL
|
# Fixes owner:group and permissions for .PKGINFO, .CHANGELOG, .INSTALL
|
||||||
#
|
#
|
||||||
@@ -265,8 +268,31 @@ chmod 644 "$work_dir"/{.PKGINFO,.CHANGELOG,.INSTALL} 2> /dev/null
|
|||||||
#
|
#
|
||||||
echo "Generating the package..."
|
echo "Generating the package..."
|
||||||
|
|
||||||
|
case "$PKGEXT" in
|
||||||
|
*tar.gz) EXT=${PKGEXT%.gz} ;;
|
||||||
|
*tar.bz2) EXT=${PKGEXT%.bz2} ;;
|
||||||
|
*tar.xz) EXT=${PKGEXT%.xz} ;;
|
||||||
|
*tar) EXT=${PKGEXT} ;;
|
||||||
|
*) echo "WARNING: '%s' is not a valid archive extension." \
|
||||||
|
"$PKGEXT" ; EXT=$PKGEXT ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
pkg_file="$pkg_dest/$pkg_namver-$pkg_arch${PKGEXT}"
|
||||||
ret=0
|
ret=0
|
||||||
bsdtar -czf "$pkg_dest/$pkg_namver-$pkg_arch$pkg_ext" $(ls -A) || ret=$?
|
|
||||||
|
# when fileglobbing, we want * in an empty directory to expand to
|
||||||
|
# the null string rather than itself
|
||||||
|
shopt -s nullglob
|
||||||
|
# TODO: Maybe this can be set globally for robustness
|
||||||
|
shopt -s -o pipefail
|
||||||
|
bsdtar -cf - $comp_files * |
|
||||||
|
case "$PKGEXT" in
|
||||||
|
*tar.gz) gzip -c -f -n ;;
|
||||||
|
*tar.bz2) bzip2 -c -f ;;
|
||||||
|
*tar.xz) xz -c -z - ;;
|
||||||
|
*tar) cat ;;
|
||||||
|
esac > ${pkg_file} || ret=$?
|
||||||
|
|
||||||
if [ $ret -ne 0 ]; then
|
if [ $ret -ne 0 ]; then
|
||||||
echo "ERROR: unable to write package to $pkg_dest"
|
echo "ERROR: unable to write package to $pkg_dest"
|
||||||
echo " Maybe the disk is full or you do not have write access"
|
echo " Maybe the disk is full or you do not have write access"
|
||||||
|
|||||||
@@ -1,365 +1,115 @@
|
|||||||
# vim: set ft=sh ts=2 sw=2 et:
|
# This file is in the public domain.
|
||||||
# file: /etc/bash_completion.d/pacman
|
|
||||||
|
|
||||||
# Bash completion for pacman
|
_arch_compgen() {
|
||||||
# Original: Manolis Tzanidakis <mtzanidakis@freemail.gr>
|
local i r
|
||||||
#
|
COMPREPLY=($(compgen -W '$*' -- "$cur"))
|
||||||
# Distributed under the terms of the GNU General Public License, v2 or later.
|
for ((i=1; i < ${#COMP_WORDS[@]}-1; i++)); do
|
||||||
#
|
for r in ${!COMPREPLY[@]}; do
|
||||||
|
if [[ ${COMP_WORDS[i]} = ${COMPREPLY[r]} ]]; then
|
||||||
## initial functions
|
unset 'COMPREPLY[r]'; break
|
||||||
|
fi
|
||||||
rem_selected ()
|
|
||||||
{
|
|
||||||
# (Adapted from bash_completion by Ian Macdonald <ian@caliban.org>)
|
|
||||||
# This removes any options from the list of completions that have
|
|
||||||
# already been specified on the command line.
|
|
||||||
COMPREPLY=($(echo "${COMP_WORDS[@]}" | \
|
|
||||||
(while read -d ' ' i; do
|
|
||||||
[ "${i}" == "" ] && continue
|
|
||||||
# flatten array with spaces on either side,
|
|
||||||
# otherwise we cannot grep on word boundaries of
|
|
||||||
# first and last word
|
|
||||||
COMPREPLY=" ${COMPREPLY[@]} "
|
|
||||||
# remove word from list of completions
|
|
||||||
COMPREPLY=(${COMPREPLY/ ${i%% *} / })
|
|
||||||
done
|
done
|
||||||
echo ${COMPREPLY[@]})))
|
done
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_available_repos ()
|
_arch_ptr2comp() {
|
||||||
{
|
local list= x y
|
||||||
COMPREPLY=( $( compgen -W "$(grep '\[' /etc/pacman.conf | grep -v -e 'options' -e '^#' | tr -d '[]' )" -- $cur ) )
|
for x; do
|
||||||
|
for y in '0 --' '1 -'; do
|
||||||
|
eval 'set -- ${'$x'[${y% *}]}'
|
||||||
|
list+=\ ${@/#/${y#* }}
|
||||||
|
done
|
||||||
|
done
|
||||||
|
_arch_compgen $list
|
||||||
}
|
}
|
||||||
|
|
||||||
_installed_pkgs ()
|
_arch_incomp() {
|
||||||
{
|
local r="\s-(-${1#* }\s|\w*${1% *})"; [[ $COMP_LINE =~ $r ]]
|
||||||
local installed_pkgs
|
|
||||||
installed_pkgs=$( ls /var/lib/pacman/local/ )
|
|
||||||
COMPREPLY=( $( compgen -W "$( for i in $installed_pkgs; do echo ${i%-*-*}; done )" -- $cur ) )
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_available_pkgs ()
|
_makepkg() {
|
||||||
{
|
local cur opts prev
|
||||||
#find balks easilly on a find /foo/*/* type dir, especially one like
|
|
||||||
# /var/lib/pacman/*/*
|
|
||||||
# This little change-up removes the find *and* only uses enabled repos
|
|
||||||
local available_pkgs
|
|
||||||
local enabled_repos
|
|
||||||
enabled_repos=$( grep '\[' /etc/pacman.conf | grep -v -e 'options' -e '^#' | tr -d '[]' )
|
|
||||||
available_pkgs=$( for r in $enabled_repos; do echo /var/lib/pacman/sync/$r/*; done )
|
|
||||||
COMPREPLY=( $( compgen -W "$( for i in $available_pkgs; do j=${i##*/}; echo ${j%-*-*}; done )" -- $cur ) )
|
|
||||||
}
|
|
||||||
|
|
||||||
_installed_groups ()
|
|
||||||
{
|
|
||||||
local installed_groups
|
|
||||||
installed_groups=$( find /var/lib/pacman/local -name desc -exec sed -ne '/%GROUPS%/,/^$/{//d; p}' {} \; | sort -u )
|
|
||||||
COMPREPLY=( $( compgen -W "$( for i in $installed_groups; do echo ${i%-*-*}; done )" -- $cur ) )
|
|
||||||
}
|
|
||||||
|
|
||||||
_available_groups ()
|
|
||||||
{
|
|
||||||
#find balks easilly on a find /foo/*/* type dir, especially one like
|
|
||||||
# /var/lib/pacman/*/*
|
|
||||||
# This little change-up removes the find *and* only uses enabled repos
|
|
||||||
local available_groups
|
|
||||||
local enabled_repos
|
|
||||||
enabled_repos=$( grep '\[' /etc/pacman.conf | grep -v -e 'options' -e '^#' | tr -d '[]' )
|
|
||||||
available_groups=$( for r in $enabled_repos; do sed '/%GROUPS%/,/^$/{//d; p}' /var/lib/pacman/sync/$r/*/desc | sort -u; done )
|
|
||||||
COMPREPLY=( $( compgen -W "$( for i in $available_groups; do echo ${i%-*-*}; done )" -- $cur ) )
|
|
||||||
}
|
|
||||||
|
|
||||||
## makepkg completion
|
|
||||||
|
|
||||||
_makepkg ()
|
|
||||||
{
|
|
||||||
local cur prev
|
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
cur=${COMP_WORDS[COMP_CWORD]}
|
cur=$(_get_cword)
|
||||||
prev=${COMP_WORDS[COMP_CWORD-1]}
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
if [[ $cur = -* && ! $prev =~ ^-(-(cleancache|config|help)$|\w*[Chp]) ]]; then
|
||||||
case "$prev" in
|
opts=('allsource asroot clean cleancache config force geninteg help holdver
|
||||||
-p)
|
ignorearch install log nobuild nocolor noconfirm nodeps noextract
|
||||||
_filedir
|
noprogressbar pkg repackage rmdeps skipinteg source syncdeps'
|
||||||
return 0
|
'A C L R c d e f g h i m o p r s')
|
||||||
;;
|
_arch_ptr2comp opts
|
||||||
--help|--cleancache)
|
|
||||||
COMPREPLY=''
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
if [[ "$cur" == -* ]]; then
|
|
||||||
COMPREPLY=( $( compgen -W '\
|
|
||||||
-A --ignorearch \
|
|
||||||
-b --builddeps \
|
|
||||||
-c --clean \
|
|
||||||
-C --cleancache \
|
|
||||||
-d --nodeps \
|
|
||||||
-e --noextract \
|
|
||||||
-f --force \
|
|
||||||
-g --geninteg \
|
|
||||||
-h --help \
|
|
||||||
-i --install \
|
|
||||||
-L --log \
|
|
||||||
-m --nocolor \
|
|
||||||
-o --nobuild \
|
|
||||||
-p \
|
|
||||||
-r --rmdeps \
|
|
||||||
-s --syncdeps \
|
|
||||||
--asroot \
|
|
||||||
--source \
|
|
||||||
--noconfirm \
|
|
||||||
--noprogressbar' -- $cur ) )
|
|
||||||
fi
|
fi
|
||||||
|
true
|
||||||
rem_selected
|
|
||||||
}
|
}
|
||||||
complete -o default -F _makepkg makepkg
|
|
||||||
|
|
||||||
## pacman completion
|
_pacman_pkg() {
|
||||||
|
_arch_compgen "$(
|
||||||
_instring ()
|
if [[ $2 ]]; then
|
||||||
{
|
\pacman -$1 | \cut -d' ' -f1 | \sort -u
|
||||||
str="${1}"
|
else
|
||||||
shift 1
|
\pacman -$1
|
||||||
for c in "${@}"; do
|
|
||||||
if [ $(expr index "${str}" "${c}") -gt 0 ]; then
|
|
||||||
return 0
|
|
||||||
fi
|
fi
|
||||||
done
|
)"
|
||||||
return 1
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_pacman ()
|
_pacman() {
|
||||||
{
|
local common core cur database prev query remove sync upgrade o
|
||||||
local a arg toparse op mod cur
|
|
||||||
COMPREPLY=()
|
COMPREPLY=()
|
||||||
|
cur=$(_get_cword)
|
||||||
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
||||||
|
database=('asdeps asexplicit')
|
||||||
|
query=('changelog check deps explicit file foreign groups info list owns
|
||||||
|
search unrequired upgrades' 'c e g i k l m o p s t u')
|
||||||
|
remove=('cascade dbonly nodeps nosave print recursive unneeded' 'c k n p s u')
|
||||||
|
sync=('asdeps asexplicit clean downloadonly force groups ignore ignoregroup
|
||||||
|
info list needed nodeps print refresh search sysupgrade'
|
||||||
|
'c f g i l p s u w y')
|
||||||
|
upgrade=('asdeps asexplicit force nodeps print' 'f p')
|
||||||
|
common=('arch cachedir config dbpath debug help logfile noconfirm
|
||||||
|
noprogressbar noscriptlet quiet root verbose' 'b d h q r v')
|
||||||
|
core=('database help query remove sync upgrade version' 'D Q R S U V h')
|
||||||
|
|
||||||
# This argument parsing is done so we can check for flag existance later
|
for o in 'D database' 'Q query' 'R remove' 'S sync' 'U upgrade'; do
|
||||||
# right now it's a tad crappy, but does the job
|
_arch_incomp "$o" && break
|
||||||
for (( i=1; i < ${#COMP_WORDS[@]}-1; i++ )); do
|
|
||||||
a=${COMP_WORDS[i]}
|
|
||||||
arg="${a:0:2}"
|
|
||||||
toparse="${a:2}"
|
|
||||||
|
|
||||||
case "${arg}" in
|
|
||||||
-@(U|R|S|Q|h|V))
|
|
||||||
op="${arg/-}"
|
|
||||||
mod="${mod}${a:2}"
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
arg="${a:2}"
|
|
||||||
case "${arg}" in
|
|
||||||
remove) op="R" ;;
|
|
||||||
upgrade) op="U" ;;
|
|
||||||
query) op="Q" ;;
|
|
||||||
sync) op="S" ;;
|
|
||||||
help) op="h" ;;
|
|
||||||
version) op="V" ;;
|
|
||||||
verbose) mod="${mod}v" ;;
|
|
||||||
root) mod="${mod}r" ;;
|
|
||||||
dbpath) mod="${mod}b" ;;
|
|
||||||
nodeps) mod="${mod}d" ;;
|
|
||||||
force) mod="${mod}f" ;;
|
|
||||||
groups) mod="${mod}g" ;;
|
|
||||||
info) mod="${mod}i" ;;
|
|
||||||
list) mod="${mod}l" ;;
|
|
||||||
print-uris) mod="${mod}p" ;;
|
|
||||||
search) mod="${mod}s" ;;
|
|
||||||
sysupgrade) mod="${mod}u" ;;
|
|
||||||
upgrades) mod="${mod}u" ;;
|
|
||||||
downloadonly) mod="${mod}w" ;;
|
|
||||||
refresh) mod="${mod}y" ;;
|
|
||||||
changelog) mod="${mod}c" ;;
|
|
||||||
deps) mod="${mod}d" ;;
|
|
||||||
explicit) mod="${mod}e" ;;
|
|
||||||
unrequired) mod="${mod}t" ;;
|
|
||||||
foreign) mod="${mod}m" ;;
|
|
||||||
owns) mod="${mod}o" ;;
|
|
||||||
file) mod="${mod}p" ;;
|
|
||||||
search) mod="${mod}s" ;;
|
|
||||||
upgrades) mod="${mod}u" ;;
|
|
||||||
cascade) mod="${mod}c" ;;
|
|
||||||
check) mod="${mod}k" ;;
|
|
||||||
dbonly) mod="${mod}k" ;;
|
|
||||||
nosave) mod="${mod}n" ;;
|
|
||||||
recursive) mod="${mod}s" ;;
|
|
||||||
unneeded) mod="${mod}u" ;;
|
|
||||||
esac ;;
|
|
||||||
*) toparse="${a}" ;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
arglen=$(( ${#toparse}-1 ))
|
|
||||||
for c in $(seq 0 "${arglen}"); do
|
|
||||||
arg=${toparse:$c:1}
|
|
||||||
[ "${arg}" != "-" ] && mod="${mod}${arg}"
|
|
||||||
done
|
|
||||||
done
|
done
|
||||||
|
|
||||||
cur=${COMP_WORDS[COMP_CWORD]}
|
if [[ $? != 0 ]]; then
|
||||||
|
_arch_ptr2comp core
|
||||||
if [ $COMP_CWORD -eq 1 ] && [[ "$cur" == -* ]]; then
|
elif [[ ! $prev =~ ^-\w*[Vbhr] &&
|
||||||
COMPREPLY=( $( compgen -W '\
|
! $prev = --@(cachedir|config|dbpath|help|logfile|root|version) ]]
|
||||||
-h --help \
|
then
|
||||||
-Q --query \
|
[[ $cur = -* ]] && _arch_ptr2comp ${o#* } common ||
|
||||||
-R --remove \
|
case ${o% *} in
|
||||||
-S --sync \
|
D|R)
|
||||||
-U --upgrade \
|
_pacman_pkg Qq;;
|
||||||
-V --version \
|
|
||||||
' -- $cur ) )
|
|
||||||
rem_selected
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ "$cur" == -* ]]; then
|
|
||||||
case "${op}" in
|
|
||||||
U)
|
|
||||||
COMPREPLY=( $( compgen -W '\
|
|
||||||
--asdeps \
|
|
||||||
--asexplicit \
|
|
||||||
-d --nodeps \
|
|
||||||
-f --force \
|
|
||||||
-h --help \
|
|
||||||
--config \
|
|
||||||
--logfile \
|
|
||||||
--noconfirm \
|
|
||||||
--noprogressbar \
|
|
||||||
--noscriptlet \
|
|
||||||
-v --verbose \
|
|
||||||
-r --root \
|
|
||||||
-b --dbpath \
|
|
||||||
--cachedir \
|
|
||||||
' -- $cur ) )
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
R)
|
|
||||||
COMPREPLY=( $( compgen -W '\
|
|
||||||
-c --cascade \
|
|
||||||
-d --nodeps \
|
|
||||||
-h --help \
|
|
||||||
-k --dbonly \
|
|
||||||
-n --nosave \
|
|
||||||
-s --recursive \
|
|
||||||
-u --unneeded \
|
|
||||||
--config \
|
|
||||||
--logfile \
|
|
||||||
--noconfirm \
|
|
||||||
--noprogressbar \
|
|
||||||
--noscriptlet \
|
|
||||||
-v --verbose \
|
|
||||||
-r --root \
|
|
||||||
-b --dbpath \
|
|
||||||
--cachedir \
|
|
||||||
' -- $cur ) )
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
S)
|
|
||||||
COMPREPLY=( $( compgen -W '\
|
|
||||||
--asdeps \
|
|
||||||
--asexplicit \
|
|
||||||
-c --clean \
|
|
||||||
-d --nodeps \
|
|
||||||
-f --force \
|
|
||||||
-g --groups \
|
|
||||||
-h --help \
|
|
||||||
-i --info \
|
|
||||||
-l --list \
|
|
||||||
-p --print-uris \
|
|
||||||
-s --search \
|
|
||||||
-u --sysupgrade \
|
|
||||||
-w --downloadonly \
|
|
||||||
-y --refresh \
|
|
||||||
--needed \
|
|
||||||
--ignore \
|
|
||||||
--ignoregroup \
|
|
||||||
--config \
|
|
||||||
--logfile \
|
|
||||||
--noconfirm \
|
|
||||||
--noprogressbar \
|
|
||||||
--noscriptlet \
|
|
||||||
-v --verbose \
|
|
||||||
-r --root \
|
|
||||||
-b --dbpath \
|
|
||||||
--cachedir \
|
|
||||||
' -- $cur ) )
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
Q)
|
Q)
|
||||||
COMPREPLY=( $( compgen -W '\
|
{ _arch_incomp 'g groups' && _pacman_pkg Qg sort; } ||
|
||||||
-c --changelog \
|
{ _arch_incomp 'p file' && _pacman_file; } ||
|
||||||
-d --deps \
|
_arch_incomp 'o owns' || _arch_incomp 'u upgrades' ||
|
||||||
-e --explicit \
|
_pacman_pkg Qq;;
|
||||||
-g --groups \
|
|
||||||
-h --help \
|
|
||||||
-i --info \
|
|
||||||
-k --check \
|
|
||||||
-l --list \
|
|
||||||
-m --foreign \
|
|
||||||
-o --owns \
|
|
||||||
-p --file \
|
|
||||||
-s --search \
|
|
||||||
-t --unrequired \
|
|
||||||
-u --upgrades \
|
|
||||||
--config \
|
|
||||||
--logfile \
|
|
||||||
--noconfirm \
|
|
||||||
--noprogressbar \
|
|
||||||
--noscriptlet \
|
|
||||||
-v --verbose \
|
|
||||||
-r --root \
|
|
||||||
-b --dbpath \
|
|
||||||
--cachedir \
|
|
||||||
' -- $cur ) )
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
rem_selected
|
|
||||||
else
|
|
||||||
case "${op}" in
|
|
||||||
U)
|
|
||||||
COMPREPLY=( $( compgen -d -- "$cur" ) \
|
|
||||||
$( compgen -f -X '!*.pkg.tar.gz' -- "$cur" ) )
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
h|V)
|
|
||||||
COMPREPLY=''
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
Q)
|
|
||||||
if _instring $mod g; then
|
|
||||||
_installed_groups
|
|
||||||
elif _instring $mod o; then
|
|
||||||
COMPREPLY=( $( compgen -d -- "$cur" ) \
|
|
||||||
$( compgen -f -- "$cur" ) )
|
|
||||||
elif _instring $mod p; then
|
|
||||||
COMPREPLY=( $( compgen -d -- "$cur" ) \
|
|
||||||
$( compgen -f -X '!*.pkg.tar.gz' -- "$cur" ) )
|
|
||||||
elif _instring $mod u; then
|
|
||||||
COMPREPLY=''
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
_installed_pkgs
|
|
||||||
fi
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
R)
|
|
||||||
_installed_pkgs
|
|
||||||
return 0
|
|
||||||
;;
|
|
||||||
S)
|
S)
|
||||||
if _instring $mod l; then
|
{ _arch_incomp 'g groups' && _pacman_pkg Sg; } ||
|
||||||
_available_repos
|
{ _arch_incomp 'l list' && _pacman_pkg Sl sort; } ||
|
||||||
else
|
_pacman_pkg Slq;;
|
||||||
_available_pkgs
|
U)
|
||||||
fi
|
_pacman_file;;
|
||||||
return 0
|
esac
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
fi
|
||||||
|
true
|
||||||
rem_selected
|
|
||||||
}
|
}
|
||||||
complete -o filenames -F _pacman pacman
|
|
||||||
|
if [[ $(type -t compopt) = "builtin" ]]; then
|
||||||
|
_pacman_file() {
|
||||||
|
compopt -o filenames; _filedir 'pkg.tar.*'
|
||||||
|
}
|
||||||
|
complete -F _pacman -o default pacman
|
||||||
|
else
|
||||||
|
_pacman_file() {
|
||||||
|
_filedir 'pkg.tar.*'
|
||||||
|
}
|
||||||
|
complete -F _pacman -o filenames -o default pacman
|
||||||
|
fi
|
||||||
|
|
||||||
|
complete -F _makepkg -o default makepkg
|
||||||
|
|
||||||
|
# ex:et ts=2 sw=2 ft=sh
|
||||||
|
|||||||
134
contrib/gensync
134
contrib/gensync
@@ -1,134 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# gensync
|
|
||||||
#
|
|
||||||
# Copyright (c) 2002-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/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
myver='3.1.1'
|
|
||||||
|
|
||||||
# functions
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
printf "gensync (pacman) %s\n\n" "$myver"
|
|
||||||
printf "Usage: %s <root> <destfile> [package_directory]\n\n" "$0"
|
|
||||||
printf "\
|
|
||||||
gensync will generate a sync database by reading all PKGBUILD files\n\
|
|
||||||
from <root>. gensync builds the database in a temporary directory\n\
|
|
||||||
and then compresses it to <destfile>.\n\n"
|
|
||||||
printf "\
|
|
||||||
gensync will calculate md5sums of packages in the same directory as\n\
|
|
||||||
<destfile>, unless an alternate [package_directory] is specified.\n\n"
|
|
||||||
printf "\
|
|
||||||
note: The <destfile> name is important. It must be of the form\n\
|
|
||||||
{treename}.db.tar.gz where {treename} is the name of the custom\n\
|
|
||||||
package repository you configured in /etc/pacman.conf. The\n\
|
|
||||||
generated database must reside in the same directory as your\n\
|
|
||||||
custom packages (also configured in /etc/pacman.conf)\n\n"
|
|
||||||
echo "Example: gensync /var/abs/local /home/mypkgs/custom.db.tar.gz"
|
|
||||||
}
|
|
||||||
|
|
||||||
version() {
|
|
||||||
printf "gensync (pacman) %s\n" "$myver"
|
|
||||||
printf "\
|
|
||||||
Copyright (C) 2002-2006 Judd Vinet <jvinet@zeroflux.org>.\n\n\
|
|
||||||
This is free software; see the source for copying conditions.\n\
|
|
||||||
There is NO WARRANTY, to the extent permitted by law.\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
error () {
|
|
||||||
local mesg=$1; shift
|
|
||||||
printf "==> ERROR: ${mesg}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
error $*
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# PROGRAM START
|
|
||||||
|
|
||||||
if [ "$1" = "-h" -o "$1" = "--help" ]; then
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "-V" -o "$1" = "--version" ]; then
|
|
||||||
version
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -lt 2 ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# source system and user makepkg.conf
|
|
||||||
if [ -r /etc/makepkg.conf ]; then
|
|
||||||
source /etc/makepkg.conf
|
|
||||||
else
|
|
||||||
die "/etc/makepkg.conf not found. Cannot continue."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -r ~/.makepkg.conf ]; then
|
|
||||||
source ~/.makepkg.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
|
||||||
d=$(dirname $1)
|
|
||||||
rootdir="$(cd $d && pwd)/$(basename $1)"
|
|
||||||
d="$(dirname $2)"
|
|
||||||
destdir="$(cd $d && pwd)"
|
|
||||||
destfile="$destdir/$(basename $2)"
|
|
||||||
pkgdir=""
|
|
||||||
if [ "$3" != "" ]; then
|
|
||||||
pkgdir="$3"
|
|
||||||
fi
|
|
||||||
|
|
||||||
[ ! -d "$rootdir" ] && die "invalid root dir: $rootdir"
|
|
||||||
|
|
||||||
echo "gensync: building database entries, generating md5sums..." >&2
|
|
||||||
cd "$destdir"
|
|
||||||
|
|
||||||
pkgs=""
|
|
||||||
|
|
||||||
for file in $(find "$rootdir"/* -name "$BUILDSCRIPT"); do
|
|
||||||
unset pkgname pkgver pkgrel options
|
|
||||||
|
|
||||||
source $file || die "failed to parse $file"
|
|
||||||
if [ "$arch" = 'any' ]; then
|
|
||||||
CARCH='any'
|
|
||||||
fi
|
|
||||||
if [ "$pkgdir" != "" ]; then
|
|
||||||
pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-${CARCH}${PKGEXT}"
|
|
||||||
else
|
|
||||||
pkgfile="$destdir/$pkgname-$pkgver-$pkgrel-${CARCH}${PKGEXT}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -f "$pkgfile" ]; then
|
|
||||||
error "could not find %s-%s-%s-%s%s - skipping" $pkgname $pkgver $pkgrel $CARCH $PKGEXT
|
|
||||||
else
|
|
||||||
pkgs="$pkgs $pkgfile"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
echo "creating repo DB..."
|
|
||||||
|
|
||||||
# we'll trim the output just a tad, as gensync may be used on large repos
|
|
||||||
repo-add $destfile $pkgs \
|
|
||||||
| grep -e "package" -e "database"
|
|
||||||
|
|
||||||
# vim: set ts=2 sw=2 noet:
|
|
||||||
@@ -18,19 +18,23 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
diffprog=${DIFFPROG:-vimdiff}
|
diffprog=${DIFFPROG:-vimdiff}
|
||||||
|
diffsearchpath=${DIFFSEARCHPATH:-/etc}
|
||||||
locate=0
|
locate=0
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
echo "pacdiff : a simple pacnew/pacorig/pacsave updater"
|
echo "pacdiff : a simple pacnew/pacorig/pacsave updater"
|
||||||
echo "Usage : pacdiff [-l]"
|
echo "Usage : pacdiff [-l]"
|
||||||
echo "The -l/--locate flag makes pacdiff use locate rather than find"
|
echo " -l/--locate makes pacdiff use locate rather than find"
|
||||||
|
echo " DIFFPROG variable allows to override the default vimdiff"
|
||||||
|
echo " DIFFSEARCHPATH allows to override the default /etc path"
|
||||||
|
echo "Example : DIFFPROG=meld DIFFSEARCHPATH=\"/boot /etc /usr\" pacdiff"
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd() {
|
cmd() {
|
||||||
if [ $locate -eq 1 ]; then
|
if [ $locate -eq 1 ]; then
|
||||||
locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave
|
locate -0 -e -b \*.pacnew \*.pacorig \*.pacsave
|
||||||
else
|
else
|
||||||
find /etc/ \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave \) -print0
|
find $diffsearchpath \( -name \*.pacnew -o -name \*.pacorig -o -name \*.pacsave \) -print0
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
# pacsearch - Adds color and install information to a 'pacman -Ss' search
|
# pacsearch - Adds color and install information to a 'pacman -Ss' search
|
||||||
#
|
#
|
||||||
# Copyright (C) 2008 Dan McGee <dpmcgee@gmail.com>
|
# Copyright (C) 2008, 2010 Dan McGee <dpmcgee@gmail.com>
|
||||||
#
|
#
|
||||||
# Based off original shell script version:
|
# Based off original shell script version:
|
||||||
# Copyright (C) 2006-2007 Dan McGee <dpmcgee@gmail.com>
|
# Copyright (C) 2006-2007 Dan McGee <dpmcgee@gmail.com>
|
||||||
@@ -39,7 +39,7 @@ if ($#ARGV lt 0 || $ARGV[0] eq "--help" || $ARGV[0] eq "-h") {
|
|||||||
|
|
||||||
if ($ARGV[0] eq "--version" || $ARGV[0] eq "-v") {
|
if ($ARGV[0] eq "--version" || $ARGV[0] eq "-v") {
|
||||||
print "$progname version $version\n";
|
print "$progname version $version\n";
|
||||||
print "Copyright (C) 2006-2008 Dan McGee\n";
|
print "Copyright (C) 2006-2010 Dan McGee\n";
|
||||||
exit 0;
|
exit 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -53,17 +53,18 @@ my $CLR6 = "\e[0;33m";
|
|||||||
my $CLR7 = "\e[1;36m";
|
my $CLR7 = "\e[1;36m";
|
||||||
my $INST = "\e[1;31m";
|
my $INST = "\e[1;31m";
|
||||||
my $BASE = "\e[0m";
|
my $BASE = "\e[0m";
|
||||||
my $INSTMARK = $INST."***";
|
|
||||||
|
|
||||||
# color a "repo/pkgname pkgver" line based on the respository name
|
# color a "repo/pkgname pkgver" line based on the repository name
|
||||||
sub to_color {
|
sub to_color {
|
||||||
my $line = shift;
|
my $line = shift;
|
||||||
|
# get the installed text colored first
|
||||||
|
$line =~ s/(\[.*\]$)/$INST$1$BASE/;
|
||||||
|
# and now the repo and dealings
|
||||||
$line =~ s/(^core\/.*)/$CLR1$1$BASE/;
|
$line =~ s/(^core\/.*)/$CLR1$1$BASE/;
|
||||||
$line =~ s/(^extra\/.*)/$CLR2$1$BASE/;
|
$line =~ s/(^extra\/.*)/$CLR2$1$BASE/;
|
||||||
$line =~ s/(^community\/.*)/$CLR3$1$BASE/;
|
$line =~ s/(^community\/.*)/$CLR3$1$BASE/;
|
||||||
$line =~ s/(^testing\/.*)/$CLR4$1$BASE/;
|
$line =~ s/(^testing\/.*)/$CLR4$1$BASE/;
|
||||||
$line =~ s/(^unstable\/.*)/$CLR5$1$BASE/;
|
$line =~ s/(^community-testing\/.*)/$CLR5$1$BASE/;
|
||||||
$line =~ s/(^custom\/.*)/$CLR6$1$BASE/;
|
|
||||||
$line =~ s/(^local\/.*)/$CLR7$1$BASE/;
|
$line =~ s/(^local\/.*)/$CLR7$1$BASE/;
|
||||||
# any other unknown repository
|
# any other unknown repository
|
||||||
$line =~ s/(^[\w-]*\/.*)/$CLR6$1$BASE/;
|
$line =~ s/(^[\w-]*\/.*)/$CLR6$1$BASE/;
|
||||||
@@ -83,10 +84,10 @@ if ($#syncpkgs >= 0) {
|
|||||||
# counter var for packages, used here and in the query loop too
|
# counter var for packages, used here and in the query loop too
|
||||||
my $cnt = 0;
|
my $cnt = 0;
|
||||||
foreach $_ (@syncpkgs) {
|
foreach $_ (@syncpkgs) {
|
||||||
# we grab 3 fields here: repo, name/ver, and desc
|
# we grab 4 fields here: repo, name/ver, installed, and desc
|
||||||
my @pkgfields = /^(.*?)\/(.*?)\n(.*)$/s;
|
my @pkgfields = /^(.*?)\/(.*?) ?(\[.*\])?\n(.*)$/s;
|
||||||
# add a fourth field that will indicate install status
|
# since installed is optional, we should fill it in if necessary
|
||||||
push (@pkgfields, "");
|
$pkgfields[2] = "" if not defined $pkgfields[2];
|
||||||
# add a fifth field that indicates original order
|
# add a fifth field that indicates original order
|
||||||
push (@pkgfields, $cnt++);
|
push (@pkgfields, $cnt++);
|
||||||
# add each sync pkg by name/ver to a hash table for quick lookup
|
# add each sync pkg by name/ver to a hash table for quick lookup
|
||||||
@@ -102,16 +103,13 @@ if ($#querypkgs >= 0) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach $_ (@querypkgs) {
|
foreach $_ (@querypkgs) {
|
||||||
# we grab 3 fields here: repo, name/ver, and desc
|
# we grab 4 fields here: repo, name/ver, installed, and desc
|
||||||
my @pkgfields = /^(.*?)\/(.*?)\n(.*)$/s;
|
my @pkgfields = /^(.*?)\/(.*?) ?(\[.*\])?\n(.*)$/s;
|
||||||
|
# since installed is optional, we should fill it in if necessary
|
||||||
|
$pkgfields[2] = "" if not defined $pkgfields[2];
|
||||||
# check if the package was listed in the sync out
|
# check if the package was listed in the sync out
|
||||||
# if it is we want to mark it with a *** marker
|
if (not exists $allpkgs{$pkgfields[1]}) {
|
||||||
if (exists $allpkgs{$pkgfields[1]}) {
|
$pkgfields[2] = "[installed]";
|
||||||
# mark it in our fourth field as installed
|
|
||||||
@{ $allpkgs{$pkgfields[1]} }[3] = $INSTMARK;
|
|
||||||
} else {
|
|
||||||
# add a fourth field that will indicate install status
|
|
||||||
push (@pkgfields, $INSTMARK);
|
|
||||||
# add a fifth field that indicates original order (after sync)
|
# add a fifth field that indicates original order (after sync)
|
||||||
push (@pkgfields, $cnt++);
|
push (@pkgfields, $cnt++);
|
||||||
# add our local-only package to the hash
|
# add our local-only package to the hash
|
||||||
@@ -122,11 +120,11 @@ foreach $_ (@querypkgs) {
|
|||||||
# sort by original order (the fifth field) and print
|
# sort by original order (the fifth field) and print
|
||||||
foreach $_ ( sort{ @{$allpkgs{$a}}[4] <=> @{$allpkgs{$b}}[4] } keys %allpkgs) {
|
foreach $_ ( sort{ @{$allpkgs{$a}}[4] <=> @{$allpkgs{$b}}[4] } keys %allpkgs) {
|
||||||
my @v = @{$allpkgs{$_}};
|
my @v = @{$allpkgs{$_}};
|
||||||
my $line = "$v[0]/$v[1]";
|
my $line = "$v[0]/$v[1] $v[2]";
|
||||||
$line = to_color($line);
|
$line = to_color($line);
|
||||||
# print install marker + colorized "repo/pkgname pkgver" string
|
# print colorized "repo/pkgname pkgver" string with possible installed text
|
||||||
print "$v[3]$line\n";
|
print "$line\n";
|
||||||
print "$v[2]\n";
|
print "$v[3]\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
#vim: set noet:
|
#vim: set noet:
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ arrow1_color="chocolate4" #color of the normal arrow
|
|||||||
arrow2_color="grey" #color of the "provided by" headless arrow
|
arrow2_color="grey" #color of the "provided by" headless arrow
|
||||||
|
|
||||||
readonly prog_name="pactree"
|
readonly prog_name="pactree"
|
||||||
readonly prog_ver="0.2"
|
readonly prog_ver="0.3"
|
||||||
|
|
||||||
_usage(){
|
_usage(){
|
||||||
echo "This program generates the dependency tree of an installed package"
|
echo "This program generates the dependency tree of an installed package"
|
||||||
@@ -52,13 +52,14 @@ _usage(){
|
|||||||
echo " -d, --depth INT Limit the shown dependencies depth"
|
echo " -d, --depth INT Limit the shown dependencies depth"
|
||||||
echo " -g, --graph Use graphviz to make an image of the tree"
|
echo " -g, --graph Use graphviz to make an image of the tree"
|
||||||
echo " -l, --linear Enable linear output"
|
echo " -l, --linear Enable linear output"
|
||||||
|
echo " -r, --reversed Show reversed dependancies"
|
||||||
echo " -s, --silent Shh, let me hear those errors!"
|
echo " -s, --silent Shh, let me hear those errors!"
|
||||||
echo " -u, --unique Print the dependency list with no duplicates"
|
echo " -u, --unique Print the dependency list with no duplicates"
|
||||||
echo
|
echo
|
||||||
echo " -h, --help Print this help message"
|
echo " -h, --help Print this help message"
|
||||||
echo " -v, --version Print the program name and version"
|
echo " -v, --version Print the program name and version"
|
||||||
echo
|
echo
|
||||||
echo "Example: $prog_name -c -d 2 readline"
|
echo "Example: $prog_name -c -d2 readline"
|
||||||
}
|
}
|
||||||
|
|
||||||
_version(){
|
_version(){
|
||||||
@@ -140,7 +141,16 @@ _tree(){
|
|||||||
|
|
||||||
if [[ ! " ${dep_list[@]} " =~ " $pkg_name " ]] && [ $spaces -ne $max_depth ]; then
|
if [[ ! " ${dep_list[@]} " =~ " $pkg_name " ]] && [ $spaces -ne $max_depth ]; then
|
||||||
dep_list=( "${dep_list[@]}" "$pkg_name" )
|
dep_list=( "${dep_list[@]}" "$pkg_name" )
|
||||||
for dep_pkg in $(_grabfield "$pkg_dir/depends" %DEPENDS%); do
|
if [ $reversed_dep -eq 0 ]; then
|
||||||
|
deps_pkg="$(_grabfield "$pkg_dir/depends" %DEPENDS%)"
|
||||||
|
else
|
||||||
|
reqs_pkg_dir="$(_finddep "$pkg_name" %DEPENDS% depends)"
|
||||||
|
unset deps_pkg
|
||||||
|
for req_pkg_dir in $reqs_pkg_dir; do
|
||||||
|
deps_pkg=$(echo "$deps_pkg" "$(_grabfield "$req_pkg_dir/desc" %NAME%)")
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
for dep_pkg in $deps_pkg; do
|
||||||
spaces=$2 #Bash scoping ;_;
|
spaces=$2 #Bash scoping ;_;
|
||||||
if [ $graphviz -eq 1 ]; then
|
if [ $graphviz -eq 1 ]; then
|
||||||
echo "\"$1\" -> \"${dep_pkg%%[<>=]*}\" [color=$arrow1_color];"
|
echo "\"$1\" -> \"${dep_pkg%%[<>=]*}\" [color=$arrow1_color];"
|
||||||
@@ -208,6 +218,12 @@ for (( n=0 ; n < $len_options ; n++ )); do
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ "${options[$n]}" = "-r" -o "${options[$n]}" = "--reversed" ]; then
|
||||||
|
unset options[$n]
|
||||||
|
reversed_dep=1
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${options[$n]}" =~ -d[[:digit:]]+ || "${options[$n]}" == "--depth" ]]; then
|
if [[ "${options[$n]}" =~ -d[[:digit:]]+ || "${options[$n]}" == "--depth" ]]; then
|
||||||
if [[ "${options[$n]#-d}" =~ [[:digit:]]+ ]]; then
|
if [[ "${options[$n]#-d}" =~ [[:digit:]]+ ]]; then
|
||||||
max_depth="${options[$n]#-d}"
|
max_depth="${options[$n]#-d}"
|
||||||
@@ -229,6 +245,7 @@ linear=${linear:-0}
|
|||||||
silent=${silent:-0}
|
silent=${silent:-0}
|
||||||
nodup=${nodup:-0}
|
nodup=${nodup:-0}
|
||||||
graphviz=${graphviz:-0}
|
graphviz=${graphviz:-0}
|
||||||
|
reversed_dep=${reversed_dep:-0}
|
||||||
|
|
||||||
if [ $colored -ne 1 ]; then
|
if [ $colored -ne 1 ]; then
|
||||||
unset branch1_color
|
unset branch1_color
|
||||||
@@ -292,8 +309,12 @@ if [ $graphviz -eq 1 ]; then
|
|||||||
root_pkgs="${options[@]}"
|
root_pkgs="${options[@]}"
|
||||||
# Uncomment for the "generated by pactree" node in graphviz
|
# Uncomment for the "generated by pactree" node in graphviz
|
||||||
#advert="xyz [height=0.07, fontsize=8.0, label=\"GENERATED WITH PACTREE\",shape=box,color="black",style=filled,fontcolor="white"];\n"
|
#advert="xyz [height=0.07, fontsize=8.0, label=\"GENERATED WITH PACTREE\",shape=box,color="black",style=filled,fontcolor="white"];\n"
|
||||||
|
if [ $reversed_dep -eq 0 ]; then
|
||||||
echo -e "digraph G { START [color=$start_color, style=filled];\n node [style=filled, color=$nodes_color];\n$(_main)\n$advert}" | dot -T$gformat -o "${root_pkgs// /_}.deps.$gformat"
|
file_extension="deps.$gformat"
|
||||||
|
else
|
||||||
|
file_extension="reqs.$gformat"
|
||||||
|
fi
|
||||||
|
echo -e "digraph G { START [color=$start_color, style=filled];\n node [style=filled, color=$nodes_color];\n$(_main)\n$advert}" | dot -T$gformat -o "${root_pkgs// /_}.$file_extension"
|
||||||
else _main
|
else _main
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -1,137 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# updatesync
|
|
||||||
#
|
|
||||||
# Copyright (c) 2004 by Jason Chu <jason@archlinux.org>
|
|
||||||
# Derived from gensync (c) 2002-2006 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/>.
|
|
||||||
#
|
|
||||||
|
|
||||||
myver='3.1.1'
|
|
||||||
|
|
||||||
# functions
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
printf "updatesync (pacman) %s\n\n" "$myver"
|
|
||||||
printf "Usage: %s <action> <destfile> <option> [package_directory]\n\n" "$0"
|
|
||||||
printf "\
|
|
||||||
updatesync will update a sync database by reading a PKGBUILD and\n\
|
|
||||||
modifying the destfile. updatesync updates the database in a temporary\n\
|
|
||||||
directory and then compresses it to <destfile>.\n\n"
|
|
||||||
printf "There are two types of actions:\n\n"
|
|
||||||
printf "upd - Will update a package's entry or create it if it doesn't exist.\n It takes the package's PKGBUILD as an option.\n"
|
|
||||||
printf "del - Will remove a package's entry from the db. It takes the package's\n name as an option.\n"
|
|
||||||
echo
|
|
||||||
printf "\
|
|
||||||
updatesync will calculate md5sums of packages in the same directory as\n\
|
|
||||||
<destfile>, unless an alternate [package_directory] is specified.\n\n"
|
|
||||||
echo "Example: updatesync upd /home/mypkgs/custom.db.tar.gz PKGBUILD"
|
|
||||||
}
|
|
||||||
|
|
||||||
version() {
|
|
||||||
printf "updatesync (pacman) %s\n" "$myver"
|
|
||||||
printf "\
|
|
||||||
Copyright (C) 2004 Jason Chu <jason@archlinux.org>.\n\n\
|
|
||||||
This is free software; see the source for copying conditions.\n\
|
|
||||||
There is NO WARRANTY, to the extent permitted by law.\n"
|
|
||||||
}
|
|
||||||
|
|
||||||
error () {
|
|
||||||
local mesg=$1; shift
|
|
||||||
printf "==> ERROR: ${mesg}\n" "$@" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
die () {
|
|
||||||
error $*
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
|
|
||||||
# PROGRAM START
|
|
||||||
|
|
||||||
if [ "$1" = "-h" -o "$1" = "--help" ]; then
|
|
||||||
usage
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" = "-V" -o "$1" = "--version" ]; then
|
|
||||||
version
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $# -lt 3 ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# source system and user makepkg.conf
|
|
||||||
if [ -r /etc/makepkg.conf ]; then
|
|
||||||
source /etc/makepkg.conf
|
|
||||||
else
|
|
||||||
die "/etc/makepkg.conf not found. Cannot continue."
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -r ~/.makepkg.conf ]; then
|
|
||||||
source ~/.makepkg.conf
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$1" != "upd" -a "$1" != "del" ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
action=$1
|
|
||||||
pkgdb=$2
|
|
||||||
option=$3
|
|
||||||
pkgdir="$(pwd)"
|
|
||||||
if [ "$4" != "" ]; then
|
|
||||||
pkgdir="$4"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$action" = "upd" ]; then # INSERT / UPDATE
|
|
||||||
if [ ! -f "$option" ]; then
|
|
||||||
die "$option not found"
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset pkgname pkgver pkgrel options
|
|
||||||
|
|
||||||
source $option || die "failed to parse $option"
|
|
||||||
if [ "$arch" = 'any' ]; then
|
|
||||||
CARCH='any'
|
|
||||||
fi
|
|
||||||
pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-${CARCH}${PKGEXT}"
|
|
||||||
|
|
||||||
if [ ! -f "$pkgfile" ]; then
|
|
||||||
die "could not find %s-%s-%s-%s%s - aborting" $pkgname $pkgver $pkgrel $CARCH $PKGEXT
|
|
||||||
fi
|
|
||||||
|
|
||||||
repo-add "$pkgdb" "$pkgfile"
|
|
||||||
else # DELETE
|
|
||||||
fname="$(basename $option)"
|
|
||||||
if [ "$fname" = "PKGBUILD" ]; then
|
|
||||||
if [ ! -f "$option" ]; then
|
|
||||||
die "%s not found" $option
|
|
||||||
fi
|
|
||||||
|
|
||||||
unset pkgname pkgver pkgrel options
|
|
||||||
source $option
|
|
||||||
else
|
|
||||||
pkgname=$option
|
|
||||||
fi
|
|
||||||
|
|
||||||
repo-remove "$pkgdb" "$pkgname"
|
|
||||||
fi
|
|
||||||
|
|
||||||
exit 0
|
|
||||||
# vim: set ts=2 sw=2 noet:
|
|
||||||
@@ -26,13 +26,14 @@ _pacman_opts_common=(
|
|||||||
'--noconfirm[Do not ask for confirmation]'
|
'--noconfirm[Do not ask for confirmation]'
|
||||||
'--noprogressbar[Do not show a progress bar when downloading files]'
|
'--noprogressbar[Do not show a progress bar when downloading files]'
|
||||||
'--noscriptlet[Do not execute the install scriptlet if one exists]'
|
'--noscriptlet[Do not execute the install scriptlet if one exists]'
|
||||||
|
'--print[Only print the targets instead of performing the operation]'
|
||||||
)
|
)
|
||||||
|
|
||||||
# options for passing to _arguments: options for --upgrade commands
|
# options for passing to _arguments: options for --upgrade commands
|
||||||
_pacman_opts_pkgfile=(
|
_pacman_opts_pkgfile=(
|
||||||
'-d[Skip dependency checks]'
|
'-d[Skip dependency checks]'
|
||||||
'-f[Overwrite conflicting files]'
|
'-f[Overwrite conflicting files]'
|
||||||
'*:package file:_files -g "*.pkg.tar.gz(.)"'
|
'*:package file:_files -g "*.pkg.tar.*(.)"'
|
||||||
)
|
)
|
||||||
|
|
||||||
# options for passing to _arguments: subactions for --query command
|
# options for passing to _arguments: subactions for --query command
|
||||||
@@ -120,7 +121,7 @@ _pacman_action_query() {
|
|||||||
_arguments -s : \
|
_arguments -s : \
|
||||||
"$_pacman_opts_common[@]" \
|
"$_pacman_opts_common[@]" \
|
||||||
"$_pacman_opts_query_modifiers[@]" \
|
"$_pacman_opts_query_modifiers[@]" \
|
||||||
'*:package file:_files -g "*.pkg.tar.gz"'
|
'*:package file:_files -g "*.pkg.tar.*"'
|
||||||
;;
|
;;
|
||||||
query_group)
|
query_group)
|
||||||
_arguments -s : \
|
_arguments -s : \
|
||||||
@@ -295,11 +296,11 @@ _pacman() {
|
|||||||
"$_pacman_opts_query_modifiers[@]" \
|
"$_pacman_opts_query_modifiers[@]" \
|
||||||
'*:package file:_files'
|
'*:package file:_files'
|
||||||
;;
|
;;
|
||||||
-Q*p*) # file *.pkg.tar.gz
|
-Q*p*) # file *.pkg.tar.*
|
||||||
_arguments -s : \
|
_arguments -s : \
|
||||||
"$_pacman_opts_common[@]" \
|
"$_pacman_opts_common[@]" \
|
||||||
"$_pacman_opts_query_modifiers[@]" \
|
"$_pacman_opts_query_modifiers[@]" \
|
||||||
'*:package file:_files -g "*.pkg.tar.gz"'
|
'*:package file:_files -g "*.pkg.tar.*"'
|
||||||
;;
|
;;
|
||||||
-Q*) _pacman_action_query ;;
|
-Q*) _pacman_action_query ;;
|
||||||
-R*) _pacman_action_remove ;;
|
-R*) _pacman_action_remove ;;
|
||||||
|
|||||||
1
doc/.gitignore
vendored
1
doc/.gitignore
vendored
@@ -10,3 +10,4 @@ repo-remove.8
|
|||||||
*.html
|
*.html
|
||||||
*.xml
|
*.xml
|
||||||
man3
|
man3
|
||||||
|
website.tar.gz
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ HTML_MANPAGES = \
|
|||||||
HTML_OTHER = \
|
HTML_OTHER = \
|
||||||
index.html \
|
index.html \
|
||||||
submitting-patches.html \
|
submitting-patches.html \
|
||||||
translation-help.html
|
translation-help.html \
|
||||||
|
HACKING.html
|
||||||
|
|
||||||
HTML_DOCS = \
|
HTML_DOCS = \
|
||||||
$(HTML_MANPAGES) \
|
$(HTML_MANPAGES) \
|
||||||
@@ -51,7 +52,7 @@ EXTRA_DIST = \
|
|||||||
$(DOXYGEN_MANS)
|
$(DOXYGEN_MANS)
|
||||||
|
|
||||||
# Files that should be removed, but which Automake does not know.
|
# Files that should be removed, but which Automake does not know.
|
||||||
MOSTLYCLEANFILES = *.xml $(ASCIIDOC_MANS) $(HTML_DOCS) repo-remove.8
|
MOSTLYCLEANFILES = *.xml $(ASCIIDOC_MANS) $(HTML_DOCS) repo-remove.8 website.tar.gz
|
||||||
|
|
||||||
# Ensure manpages are fresh when building a dist tarball
|
# Ensure manpages are fresh when building a dist tarball
|
||||||
dist-hook:
|
dist-hook:
|
||||||
@@ -79,29 +80,46 @@ endif
|
|||||||
|
|
||||||
html: $(HTML_DOCS)
|
html: $(HTML_DOCS)
|
||||||
|
|
||||||
|
website: html
|
||||||
|
bsdtar czf website.tar.gz $(HTML_DOCS) \
|
||||||
|
-C /etc/asciidoc/stylesheets/ \
|
||||||
|
xhtml11.css xhtml11-manpage.css xhtml11-quirks.css \
|
||||||
|
-C /etc/asciidoc/javascripts/ \
|
||||||
|
asciidoc-xhtml11.js \
|
||||||
|
-C /etc/asciidoc/ \
|
||||||
|
images
|
||||||
|
|
||||||
|
pkgdatadir = ${datadir}/${PACKAGE}
|
||||||
|
|
||||||
ASCIIDOC_OPTS = \
|
ASCIIDOC_OPTS = \
|
||||||
-f asciidoc.conf \
|
-f asciidoc.conf \
|
||||||
-a pacman_version="$(REAL_PACKAGE_VERSION)" \
|
-a pacman_version="$(REAL_PACKAGE_VERSION)" \
|
||||||
-a pacman_date="`date +%Y-%m-%d`" \
|
-a pacman_date="`date +%Y-%m-%d`" \
|
||||||
|
-a pkgdatadir=$(pkgdatadir) \
|
||||||
-a sysconfdir=$(sysconfdir)
|
-a sysconfdir=$(sysconfdir)
|
||||||
|
|
||||||
A2X_OPTS = \
|
A2X_OPTS = \
|
||||||
--no-xmllint \
|
--no-xmllint \
|
||||||
-d manpage \
|
-d manpage \
|
||||||
-f manpage \
|
-f manpage \
|
||||||
--xsltproc-opts='-param man.endnotes.list.enabled 0' \
|
--xsltproc-opts='-param man.endnotes.list.enabled 0 -param man.endnotes.are.numbered 0'
|
||||||
--xsltproc-opts='-param man.endnotes.are.numbered 0'
|
|
||||||
|
|
||||||
# These rules are due to the includes and files of the asciidoc text
|
# These rules are due to the includes and files of the asciidoc text
|
||||||
$(ASCIIDOC_MANS): asciidoc.conf footer.txt
|
$(ASCIIDOC_MANS): asciidoc.conf footer.txt
|
||||||
a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS)" $@.txt
|
a2x $(A2X_OPTS) --asciidoc-opts="$(ASCIIDOC_OPTS)" $@.txt
|
||||||
|
|
||||||
%.html: %.txt
|
%.html: %.txt
|
||||||
asciidoc $(ASCIIDOC_OPTS) -a linkcss $*.txt
|
asciidoc $(ASCIIDOC_OPTS) $*.txt
|
||||||
|
dos2unix $@
|
||||||
|
|
||||||
|
HACKING.html: ../HACKING
|
||||||
|
asciidoc $(ASCIIDOC_OPTS) -o $@ ../HACKING
|
||||||
dos2unix $@
|
dos2unix $@
|
||||||
|
|
||||||
# Customizations for certain HTML docs
|
# Customizations for certain HTML docs
|
||||||
$(HTML_MANPAGES): asciidoc.conf footer.txt
|
$(HTML_MANPAGES): asciidoc.conf footer.txt
|
||||||
$(HTML_OTHER): asciidoc.conf
|
$(HTML_OTHER): asciidoc.conf
|
||||||
|
%.html: ASCIIDOC_OPTS += -a linkcss -a toc -a icons
|
||||||
%.8.html: ASCIIDOC_OPTS += -d manpage
|
%.8.html: ASCIIDOC_OPTS += -d manpage
|
||||||
%.5.html: ASCIIDOC_OPTS += -d manpage
|
%.5.html: ASCIIDOC_OPTS += -d manpage
|
||||||
%.3.html: ASCIIDOC_OPTS += -d manpage
|
%.3.html: ASCIIDOC_OPTS += -d manpage
|
||||||
|
|||||||
@@ -15,6 +15,6 @@ md5sums=('ee5ae84d115f051d87fcaaef3b4ae782')
|
|||||||
build() {
|
build() {
|
||||||
cd $srcdir/$pkgname-$pkgver
|
cd $srcdir/$pkgname-$pkgver
|
||||||
./configure --prefix=/usr
|
./configure --prefix=/usr
|
||||||
make || return 1
|
make
|
||||||
make prefix=$pkgdir/usr install
|
make prefix=$pkgdir/usr install
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,12 +20,10 @@ This manual page is meant to describe general rules about PKGBUILDs. Once a
|
|||||||
PKGBUILD is written, the actual package is built using makepkg and installed
|
PKGBUILD is written, the actual package is built using makepkg and installed
|
||||||
with pacman.
|
with pacman.
|
||||||
|
|
||||||
NOTE: If you are using Arch Linux and have a local copy of the Arch Build
|
NOTE: An example PKGBUILD, useful for reference, is located in '{pkgdatadir}'.
|
||||||
System (ABS) tree on your computer, or are using another distribution that
|
Also located there are other example files such as a ChangeLog and an install
|
||||||
provides a similar tree of build files, you can copy the provided
|
script. You can copy the provided PKGBUILD.proto file to a new package build
|
||||||
PKGBUILD.proto file to a new package build directory and make customizations to
|
directory and make customizations to suit your needs.
|
||||||
suit your needs. An up to date prototype file can also be found in the source
|
|
||||||
distribution of this package.
|
|
||||||
|
|
||||||
|
|
||||||
Options and Directives
|
Options and Directives
|
||||||
@@ -40,18 +38,21 @@ This will prevent any possible name clashes with internal makepkg variables.
|
|||||||
For example, to store the base kernel version in a variable, use something
|
For example, to store the base kernel version in a variable, use something
|
||||||
similar to `$_basekernver`.
|
similar to `$_basekernver`.
|
||||||
|
|
||||||
*pkgname*::
|
*pkgname (array)*::
|
||||||
The name of the package. This has be a unix-friendly name as it will be
|
The name of the package. This has be a unix-friendly name as it will be
|
||||||
used in the package filename.
|
used in the package filename. Members of the array are not allowed to start
|
||||||
|
with hyphens.
|
||||||
|
|
||||||
*pkgver*::
|
*pkgver*::
|
||||||
The version of the software as released from the author (e.g. '2.7.1').
|
The version of the software as released from the author (e.g. '2.7.1').
|
||||||
|
The variable is not allowed to contain hyphens.
|
||||||
|
|
||||||
*pkgrel*::
|
*pkgrel*::
|
||||||
This is the release number specific to the Arch Linux release. This
|
This is the release number specific to the Arch Linux release. This
|
||||||
allows package maintainers to make updates to the package's configure
|
allows package maintainers to make updates to the package's configure
|
||||||
flags, for example. A pkgrel of 1 is typically used for each upstream
|
flags, for example. A pkgrel of 1 is typically used for each upstream
|
||||||
software release and is incremented for intermediate PKGBUILD updates.
|
software release and is incremented for intermediate PKGBUILD updates. The
|
||||||
|
variable is not allowed to contain hyphens.
|
||||||
|
|
||||||
*pkgdesc*::
|
*pkgdesc*::
|
||||||
This should be a brief description of the package and its functionality.
|
This should be a brief description of the package and its functionality.
|
||||||
@@ -79,6 +80,12 @@ similar to `$_basekernver`.
|
|||||||
be copied into the package by makepkg. It does not need to be included
|
be copied into the package by makepkg. It does not need to be included
|
||||||
in the source array (e.g. `install=pkgname.install`).
|
in the source array (e.g. `install=pkgname.install`).
|
||||||
|
|
||||||
|
*changelog*::
|
||||||
|
Specifies a changelog file that is to be included in the package.
|
||||||
|
This file should reside in the same directory as the PKGBUILD, and will
|
||||||
|
be copied into the package by makepkg. It does not need to be included
|
||||||
|
in the source array (e.g. `changelog=$pkgname.changelog`).
|
||||||
|
|
||||||
*source (array)*::
|
*source (array)*::
|
||||||
An array of source files required to build the package. Source files
|
An array of source files required to build the package. Source files
|
||||||
must either reside in the same directory as the PKGBUILD file, or be a
|
must either reside in the same directory as the PKGBUILD file, or be a
|
||||||
@@ -118,7 +125,8 @@ name. The syntax is: `source=('filename::url')`.
|
|||||||
|
|
||||||
*arch (array)*::
|
*arch (array)*::
|
||||||
Defines on which architectures the given package is available (e.g.
|
Defines on which architectures the given package is available (e.g.
|
||||||
`arch=('i686' 'x86_64')`).
|
`arch=('i686' 'x86_64')`). Packages that contain no architecture specific
|
||||||
|
files may use arch=('any').
|
||||||
|
|
||||||
*backup (array)*::
|
*backup (array)*::
|
||||||
A space-delimited array of filenames, without preceding slashes, that
|
A space-delimited array of filenames, without preceding slashes, that
|
||||||
@@ -144,7 +152,7 @@ name. The syntax is: `source=('filename::url')`.
|
|||||||
base functionality, but may be necessary to make full use of the contents
|
base functionality, but may be necessary to make full use of the contents
|
||||||
of this package. optdepends are currently for informational purposes only
|
of this package. optdepends are currently for informational purposes only
|
||||||
and are not utilized by pacman during dependency resolution. The format
|
and are not utilized by pacman during dependency resolution. The format
|
||||||
should be similar to the following:
|
for specifying optdepends is:
|
||||||
|
|
||||||
optdepends=('fakeroot: for makepkg usage as normal user')
|
optdepends=('fakeroot: for makepkg usage as normal user')
|
||||||
|
|
||||||
@@ -226,10 +234,12 @@ name. The syntax is: `source=('filename::url')`.
|
|||||||
|
|
||||||
build() Function
|
build() Function
|
||||||
----------------
|
----------------
|
||||||
In addition to the above directives, the build() bash function comprises the
|
In addition to the above directives, the optional build() bash function usually
|
||||||
remainder of the PKGBUILD. This is directly sourced and executed by makepkg, so
|
comprises the remainder of the PKGBUILD. This is directly sourced and executed
|
||||||
anything that bash or the system has available is available for use here. Be
|
by makepkg, so anything that bash or the system has available is available for
|
||||||
sure any exotic commands used are covered by `makedepends`.
|
use here. The function is run in `bash -e` mode, meaning any command that exits
|
||||||
|
with a non-zero status will cause the function to exit. Be sure any exotic
|
||||||
|
commands used are covered by `makedepends`.
|
||||||
|
|
||||||
All of the above variables such as `pkgname` and `pkgver` are available for use
|
All of the above variables such as `pkgname` and `pkgver` are available for use
|
||||||
in the build function. In addition, makepkg defines three variables for your
|
in the build function. In addition, makepkg defines three variables for your
|
||||||
@@ -253,31 +263,35 @@ the build function.
|
|||||||
|
|
||||||
package() Function
|
package() Function
|
||||||
------------------
|
------------------
|
||||||
An optional package() function can be specified in addition to the build() function.
|
An optional package() function can be specified in addition to the build()
|
||||||
This function is run immediately after the build() function. When specified in
|
function. This function is run immediately after the build() function. The
|
||||||
combination with the fakeroot BUILDENV option in linkman:makepkg.conf[5], fakeroot
|
function is run in `bash -e` mode, meaning any command that exits with a
|
||||||
usage will be limited to running the packaging stage. The build() function will be
|
non-zero status will cause the function to exit. When specified in combination
|
||||||
run as the user calling makepkg.
|
with the fakeroot BUILDENV option in linkman:makepkg.conf[5], fakeroot usage
|
||||||
|
will be limited to running the packaging stage. An existing build() function
|
||||||
|
will be run as the user calling makepkg.
|
||||||
|
|
||||||
Package Splitting
|
Package Splitting
|
||||||
-----------------
|
-----------------
|
||||||
makepkg supports building multiple packages from a single PKGBUILD. This is achieved
|
makepkg supports building multiple packages from a single PKGBUILD. This is
|
||||||
by assigning an array of package names to the `pkgname` directive. Each split package
|
achieved by assigning an array of package names to the `pkgname` directive.
|
||||||
uses a corresponding packaging function with name `package_foo()`, where `foo` is the
|
Each split package uses a corresponding packaging function with name
|
||||||
name of the split package.
|
`package_foo()`, where `foo` is the name of the split package.
|
||||||
|
|
||||||
All options and directives for the split packages default to the global values given
|
All options and directives for the split packages default to the global values
|
||||||
within the PKGBUILD. However, some of these can be overridden within each split
|
given within the PKGBUILD. However, some of these can be overridden within each
|
||||||
package's packaging function. The following variables can be overridden: `pkgdesc`,
|
split package's packaging function. The following variables can be overridden:
|
||||||
`license`, `groups`, `depends`, `optdepends`, `provides`, `conflicts`, `replaces`,
|
`pkgver`, `pkgrel`, `pkgdesc`, `arch`, `license`, `groups`, `depends`,
|
||||||
`backup`, `options` and `install`.
|
`optdepends`, `provides`, `conflicts`, `replaces`, `backup`, `options`,
|
||||||
|
`install` and `changelog`.
|
||||||
|
|
||||||
An optional global directive is available when building a split package:
|
An optional global directive is available when building a split package:
|
||||||
|
|
||||||
*pkgbase*::
|
*pkgbase*::
|
||||||
The name used to refer to the group of packages in the output of makepkg
|
The name used to refer to the group of packages in the output of makepkg
|
||||||
and in the naming of source-only tarballs. If not specified, the first
|
and in the naming of source-only tarballs. If not specified, the first
|
||||||
element in the `pkgname` array is used.
|
element in the `pkgname` array is used. The variable is not allowed to
|
||||||
|
begin with a hyphen.
|
||||||
|
|
||||||
Install/Upgrade/Remove Scripting
|
Install/Upgrade/Remove Scripting
|
||||||
--------------------------------
|
--------------------------------
|
||||||
@@ -317,9 +331,8 @@ same directory as the PKGBUILD script. Then use the install directive:
|
|||||||
install=pkgname.install
|
install=pkgname.install
|
||||||
|
|
||||||
The install script does not need to be specified in the source array. A
|
The install script does not need to be specified in the source array. A
|
||||||
template install file is available with the source distribution of this
|
template install file is available in '{pkgdatadir}' as 'proto.install' for
|
||||||
program, or one may be provided by your distribution. For example, Arch Linux
|
reference with all of the available functions defined.
|
||||||
provides prototype install files in the ABS tree.
|
|
||||||
|
|
||||||
|
|
||||||
Development Directives
|
Development Directives
|
||||||
|
|||||||
@@ -47,11 +47,11 @@ configuration files dealing with pacman.
|
|||||||
Changelog
|
Changelog
|
||||||
~~~~~~~~~
|
~~~~~~~~~
|
||||||
For a good idea of what is going on in pacman development, take a look at the
|
For a good idea of what is going on in pacman development, take a look at the
|
||||||
link:http://projects.archlinux.org/?p=pacman.git[Gitweb] summary
|
link:http://projects.archlinux.org/pacman.git/[Git summary page] for the
|
||||||
page for the project.
|
project.
|
||||||
|
|
||||||
See the most recent
|
See the most recent
|
||||||
link:http://projects.archlinux.org/?p=pacman.git;a=blob_plain;f=NEWS;hb=HEAD[NEWS]
|
link:http://projects.archlinux.org/pacman.git/tree/NEWS[NEWS]
|
||||||
file for a not-as-frequently-updated list of changes. However, this should
|
file for a not-as-frequently-updated list of changes. However, this should
|
||||||
contain the biggest changes in a format more concise than the commit log.
|
contain the biggest changes in a format more concise than the commit log.
|
||||||
|
|
||||||
@@ -62,6 +62,14 @@ Releases
|
|||||||
`------------`-------
|
`------------`-------
|
||||||
Date Version
|
Date Version
|
||||||
---------------------
|
---------------------
|
||||||
|
2011-01-22 v3.4.3
|
||||||
|
2010-12-29 v3.4.2
|
||||||
|
2010-09-03 v3.4.1
|
||||||
|
2010-06-16 v3.4.0
|
||||||
|
2009-11-10 v3.3.3
|
||||||
|
2009-10-05 v3.3.2
|
||||||
|
2009-09-22 v3.3.1
|
||||||
|
2009-08-02 v3.3.0
|
||||||
2009-01-05 v3.2.2
|
2009-01-05 v3.2.2
|
||||||
2008-08-26 v3.2.1
|
2008-08-26 v3.2.1
|
||||||
2008-07-30 v3.2.0
|
2008-07-30 v3.2.0
|
||||||
@@ -106,8 +114,8 @@ Development
|
|||||||
Mailing List
|
Mailing List
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
There is a mailing list devoted to pacman development, hosted by Arch Linux.
|
There is a mailing list devoted to pacman development, hosted by Arch Linux.
|
||||||
link:http://www.archlinux.org/mailman/listinfo/pacman-dev/[Subscribe] or
|
link:http://mailman.archlinux.org/mailman/listinfo/pacman-dev/[Subscribe] or
|
||||||
link:http://www.archlinux.org/pipermail/pacman-dev/[view the archives].
|
link:http://mailman.archlinux.org/pipermail/pacman-dev/[view the archives].
|
||||||
|
|
||||||
Source Code
|
Source Code
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
@@ -122,7 +130,8 @@ The current development tree can be fetched with the following command:
|
|||||||
|
|
||||||
which will fetch the full development history into a directory named pacman.
|
which will fetch the full development history into a directory named pacman.
|
||||||
You can browse the source as well using
|
You can browse the source as well using
|
||||||
link:http://projects.archlinux.org/?p=pacman.git[Gitweb].
|
link:http://projects.archlinux.org/pacman.git/[cgit]. HTTP/HTTPS URLs are also
|
||||||
|
available for cloning purposes; these URLs are listed at the above page.
|
||||||
|
|
||||||
If you are interested in hacking on pacman, it is highly recommended you join
|
If you are interested in hacking on pacman, it is highly recommended you join
|
||||||
the mailing list mentioned above, as well as take a quick glance at our
|
the mailing list mentioned above, as well as take a quick glance at our
|
||||||
@@ -138,17 +147,17 @@ Other Utilities
|
|||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
Although the package manager itself is quite simple, many scripts have been
|
Although the package manager itself is quite simple, many scripts have been
|
||||||
developed that help automate building and installing packages. These are used
|
developed that help automate building and installing packages. These are used
|
||||||
extensively in link:http://archlinux.org[Arch Linux]. Most of these utilities
|
extensively in link:http://archlinux.org/[Arch Linux]. Most of these utilities
|
||||||
are available in the Arch Linux projects
|
are available in the Arch Linux projects
|
||||||
link:http://projects.archlinux.org/[Gitweb browser].
|
link:http://projects.archlinux.org/[code browser].
|
||||||
|
|
||||||
Utilities available:
|
Utilities available:
|
||||||
|
|
||||||
* link:http://projects.archlinux.org/?p=abs.git[abs] - ABS (Arch Build System), scripts to download & use the Arch Linux PKGBUILD tree
|
* link:http://projects.archlinux.org/abs.git/[abs] - ABS (Arch Build System), scripts to download & use the Arch Linux PKGBUILD tree
|
||||||
* link:http://projects.archlinux.org/?p=devtools.git[devtools] - tools to assist in packaging and dependency checking
|
* link:http://projects.archlinux.org/dbscripts.git/[dbscripts] - scripts used by Arch Linux to manage the main package repositories
|
||||||
* link:http://projects.archlinux.org/?p=namcap.git[namcap] - a package analysis utility written in python
|
* link:http://projects.archlinux.org/devtools.git/[devtools] - tools to assist in packaging and dependency checking
|
||||||
* link:http://projects.archlinux.org/?p=pacbuild.git[pacbuild] - a package building system utilizing a daemon
|
* link:http://projects.archlinux.org/namcap.git/[namcap] - a package analysis utility written in python
|
||||||
* link:http://projects.archlinux.org/?p=srcpac.git[srcpac] - a bash build-from-source pacman wrapper
|
* link:http://projects.archlinux.org/srcpac.git/[srcpac] - a bash build-from-source pacman wrapper
|
||||||
|
|
||||||
Bugs
|
Bugs
|
||||||
----
|
----
|
||||||
@@ -157,7 +166,7 @@ mailing last at mailto:pacman-dev@archlinux.org[] with specific information
|
|||||||
such as your commandline, the nature of the bug, and even the package database
|
such as your commandline, the nature of the bug, and even the package database
|
||||||
if it helps.
|
if it helps.
|
||||||
|
|
||||||
You can also post a bug to the Archlinux bug tracker
|
You can also post a bug to the Arch Linux bug tracker
|
||||||
link:http://bugs.archlinux.org/index.php?project=3[Flyspray]. Be sure to file
|
link:http://bugs.archlinux.org/index.php?project=3[Flyspray]. Be sure to file
|
||||||
bugs under the Pacman project.
|
bugs under the Pacman project.
|
||||||
|
|
||||||
@@ -185,7 +194,7 @@ Pacman/libalpm frontends:
|
|||||||
|
|
||||||
Copyright
|
Copyright
|
||||||
---------
|
---------
|
||||||
pacman is Copyright (C) 2006-2009 Pacman Development Team
|
pacman is Copyright (C) 2006-2010 Pacman Development Team
|
||||||
<pacman-dev@archlinux.org> and Copyright (C) 2002-2006 Judd Vinet
|
<pacman-dev@archlinux.org> and Copyright (C) 2002-2006 Judd Vinet
|
||||||
<jvinet@zeroflux.org> and is licensed through the GNU General Public License,
|
<jvinet@zeroflux.org> and is licensed through the GNU General Public License,
|
||||||
version 2 or later.
|
version 2 or later.
|
||||||
|
|||||||
@@ -81,10 +81,14 @@ Options
|
|||||||
|
|
||||||
*-g, \--geninteg*::
|
*-g, \--geninteg*::
|
||||||
For each source file in the source array of PKGBUILD, download the file
|
For each source file in the source array of PKGBUILD, download the file
|
||||||
if required and generate integrity checks. The integrity checks
|
if required and generate integrity checks. The integrity checks generated
|
||||||
generated are determined by the value of the INTEGRITY_CHECK array in
|
are determined by the checks present in the PKGBUILD, falling back to the
|
||||||
linkman:makepkg.conf[5]. This output can be redirected into your
|
value of the INTEGRITY_CHECK array in makepkg.conf(5) if these are absent
|
||||||
PKGBUILD for source validation using "`makepkg -g >> PKGBUILD`".
|
This output can be redirected into your PKGBUILD for source validation
|
||||||
|
using "`makepkg -g >> PKGBUILD`".
|
||||||
|
|
||||||
|
*--skipinteg*::
|
||||||
|
Do not perform any integrity checks, just print a warning instead.
|
||||||
|
|
||||||
*-h, \--help*::
|
*-h, \--help*::
|
||||||
Output syntax and command line options.
|
Output syntax and command line options.
|
||||||
@@ -142,7 +146,12 @@ Options
|
|||||||
Do not actually build the package, but build a source-only tarball that
|
Do not actually build the package, but build a source-only tarball that
|
||||||
does not include sources that can be fetched via a download URL. This is
|
does not include sources that can be fetched via a download URL. This is
|
||||||
useful for passing a single tarball to another program such as a chroot,
|
useful for passing a single tarball to another program such as a chroot,
|
||||||
remote builder, or a tarball upload.
|
remote builder, or a tarball upload. Because integrity checks are verified,
|
||||||
|
all source files of the package need to be present or downloadable.
|
||||||
|
|
||||||
|
*\--pkg <`list`>*::
|
||||||
|
Only build listed packages from a split package. The use of quotes is
|
||||||
|
necessary when specifying multiple packages. e.g. `--pkg "pkg1 pkg3"`
|
||||||
|
|
||||||
*\--noconfirm*::
|
*\--noconfirm*::
|
||||||
(Passed to pacman) Prevent pacman from waiting for user input before
|
(Passed to pacman) Prevent pacman from waiting for user input before
|
||||||
@@ -161,6 +170,23 @@ separate utility 'versionpkg'. See linkman:PKGBUILD[5] for details on how to
|
|||||||
set up a development PKGBUILD.
|
set up a development PKGBUILD.
|
||||||
|
|
||||||
|
|
||||||
|
Environment Variables
|
||||||
|
---------------------
|
||||||
|
*PACMAN*::
|
||||||
|
The command that will be used to check for missing dependencies and to
|
||||||
|
install and remove packages. Pacman's -Qq, -Rns, -S, -T, and -U
|
||||||
|
operations must be supported by this command. If the variable is not
|
||||||
|
set or empty, makepkg will fall back to `pacman'.
|
||||||
|
|
||||||
|
**PKGDEST=**"/path/to/folder"::
|
||||||
|
Folder where the resulting packages will be stored. Overrides the
|
||||||
|
corresponding value defined in linkman:makepkg.conf[5].
|
||||||
|
|
||||||
|
**SRCDEST=**"/path/to/folder"::
|
||||||
|
Folder where the downloaded sources will be stored. Overrides the
|
||||||
|
corresponding value defined in linkman:makepkg.conf[5].
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
Configuration
|
||||||
-------------
|
-------------
|
||||||
See linkman:makepkg.conf[5] for more details on configuring makepkg using the
|
See linkman:makepkg.conf[5] for more details on configuring makepkg using the
|
||||||
|
|||||||
@@ -135,6 +135,18 @@ Options
|
|||||||
affects both generation and checking. The current valid options are:
|
affects both generation and checking. The current valid options are:
|
||||||
`md5`, `sha1`, `sha256`, `sha384`, and `sha512`.
|
`md5`, `sha1`, `sha256`, `sha384`, and `sha512`.
|
||||||
|
|
||||||
|
**STRIP_BINARIES=**"--strip-all"::
|
||||||
|
Options to be used when stripping binaries. See linkman:strip[1]
|
||||||
|
for details.
|
||||||
|
|
||||||
|
**STRIP_SHARED=**"--strip-unneeded"::
|
||||||
|
Options to be used when stripping shared libraries. See linkman:strip[1]
|
||||||
|
for details.
|
||||||
|
|
||||||
|
**STRIP_STATIC=**"--strip-debug"::
|
||||||
|
Options to be used when stripping static libraries. See linkman:strip[1]
|
||||||
|
for details.
|
||||||
|
|
||||||
**MAN_DIRS=(**{usr{,/local}{,/share},opt/*}/{man,info} ...**)**::
|
**MAN_DIRS=(**{usr{,/local}{,/share},opt/*}/{man,info} ...**)**::
|
||||||
If `zipman` is specified in the OPTIONS array, this variable will
|
If `zipman` is specified in the OPTIONS array, this variable will
|
||||||
instruct makepkg where to look to compress manual (man and info)
|
instruct makepkg where to look to compress manual (man and info)
|
||||||
@@ -171,6 +183,11 @@ Options
|
|||||||
in the current directory. Many people like to keep all source files in
|
in the current directory. Many people like to keep all source files in
|
||||||
a central location for easy cleanup, so this path can be set here.
|
a central location for easy cleanup, so this path can be set here.
|
||||||
|
|
||||||
|
**SRCPKGDEST=**"/path/to/folder"::
|
||||||
|
If this value is not set, source package files will be stored in
|
||||||
|
PKGDEST. Many people like to keep all source package files in
|
||||||
|
a central location for easy cleanup, so this path can be set here.
|
||||||
|
|
||||||
**PACKAGER=**"John Doe <john@example.com>"::
|
**PACKAGER=**"John Doe <john@example.com>"::
|
||||||
This value is used when querying a package to see who was the builder.
|
This value is used when querying a package to see who was the builder.
|
||||||
It is recommended you change this to your name and email address.
|
It is recommended you change this to your name and email address.
|
||||||
|
|||||||
@@ -28,6 +28,12 @@ front ends to be written (for instance, a GUI front end).
|
|||||||
|
|
||||||
Operations
|
Operations
|
||||||
----------
|
----------
|
||||||
|
*-D, \--database*::
|
||||||
|
Modify the package database. This options allows you to modify certain
|
||||||
|
attributes of the installed packages in pacman's database. At the
|
||||||
|
moment, you can only change the install reason using '\--asdeps' and
|
||||||
|
'\--asexplicit' options.
|
||||||
|
|
||||||
*-Q, \--query*::
|
*-Q, \--query*::
|
||||||
Query the package database. This operation allows you to view installed
|
Query the package database. This operation allows you to view installed
|
||||||
packages and their files, as well as meta-information about individual
|
packages and their files, as well as meta-information about individual
|
||||||
@@ -82,9 +88,11 @@ to determine which packages need upgrading. This behavior operates as follows:
|
|||||||
"bash>=3.2"`.
|
"bash>=3.2"`.
|
||||||
|
|
||||||
*-U, \--upgrade*::
|
*-U, \--upgrade*::
|
||||||
Upgrade or add package(s) to the system. Either a URL or file path can be
|
Upgrade or add package(s) to the system and install the required
|
||||||
specified. This is a ``remove-then-add'' process. See <<HCF,Handling Config
|
dependencies from sync repos. Either a URL or file path can be
|
||||||
Files>> for an explanation on how pacman takes care of config files.
|
specified. This is a ``remove-then-add'' process. See <<UO,Upgrade
|
||||||
|
Options>> below; also see <<HCF,Handling Config Files>> for an explanation
|
||||||
|
on how pacman takes care of config files.
|
||||||
|
|
||||||
*-V, \--version*::
|
*-V, \--version*::
|
||||||
Display version and exit.
|
Display version and exit.
|
||||||
@@ -166,6 +174,19 @@ Options
|
|||||||
If an install scriptlet exists, do not execute it. Do not use this
|
If an install scriptlet exists, do not execute it. Do not use this
|
||||||
unless you know what you are doing.
|
unless you know what you are doing.
|
||||||
|
|
||||||
|
*\--arch* <'arch'>::
|
||||||
|
Specify an alternate architecture.
|
||||||
|
|
||||||
|
*-p, \--print*::
|
||||||
|
Only print the targets instead of performing the actual operation (sync,
|
||||||
|
remove or upgrade). Use '\--print-format' to specify how targets are
|
||||||
|
displayed. The default format string is "%l", which displays url with '-S',
|
||||||
|
filename with '-U' and pkgname-pkgver with '-R'.
|
||||||
|
|
||||||
|
*\--print-format* <'format'>::
|
||||||
|
Specify a printf-like format to control the output of the '\--print'
|
||||||
|
operation. The possible are attributes are : %n for pkgname, %v for pkgver, %l
|
||||||
|
for location, %r for repo and %s for size.
|
||||||
|
|
||||||
Query Options[[QO]]
|
Query Options[[QO]]
|
||||||
-------------------
|
-------------------
|
||||||
@@ -253,7 +274,7 @@ Remove Options[[RO]]
|
|||||||
or more target packages. This operation is recursive, and must be used
|
or more target packages. This operation is recursive, and must be used
|
||||||
with care since it can remove many potentially needed packages.
|
with care since it can remove many potentially needed packages.
|
||||||
|
|
||||||
*-k, \--keep*::
|
*-k, \--dbonly*::
|
||||||
Removes the database entry only. Leaves all files in place.
|
Removes the database entry only. Leaves all files in place.
|
||||||
|
|
||||||
*-n, \--nosave*::
|
*-n, \--nosave*::
|
||||||
@@ -296,18 +317,14 @@ linkman:pacman.conf[5].
|
|||||||
view all groups and their members.
|
view all groups and their members.
|
||||||
|
|
||||||
*-i, \--info*::
|
*-i, \--info*::
|
||||||
Display dependency and other information for a given package. This will
|
Display information on a given sync database package. Passing two '\--info'
|
||||||
search through all repositories for a matching package.
|
or '-i' flags will also display those packages in all repositories that
|
||||||
|
depend on this package.
|
||||||
|
|
||||||
*-l, \--list*::
|
*-l, \--list*::
|
||||||
List all packages in the specified repositories. Multiple repositories
|
List all packages in the specified repositories. Multiple repositories
|
||||||
can be specified on the command line.
|
can be specified on the command line.
|
||||||
|
|
||||||
*-p, \--print-uris*::
|
|
||||||
Print out URIs for each package that will be installed, including any
|
|
||||||
dependencies yet to be installed. These can be piped to a file and
|
|
||||||
downloaded at a later time, using a program like wget.
|
|
||||||
|
|
||||||
*-q, \--quiet*::
|
*-q, \--quiet*::
|
||||||
Show less information for certain sync operations. (This is useful when
|
Show less information for certain sync operations. (This is useful when
|
||||||
pacman's output is processed in a script.) Search will only show package
|
pacman's output is processed in a script.) Search will only show package
|
||||||
@@ -330,7 +347,9 @@ linkman:pacman.conf[5].
|
|||||||
necessary. Pass this option twice to enable package downgrade; in this
|
necessary. Pass this option twice to enable package downgrade; in this
|
||||||
case pacman will select sync packages whose version does not match with
|
case pacman will select sync packages whose version does not match with
|
||||||
the local version. This can be useful when the user switches from a testing
|
the local version. This can be useful when the user switches from a testing
|
||||||
repo to a stable one.
|
repo to a stable one. Additional targets can also be specified manually, so
|
||||||
|
that '-Su foo' will do a system upgrade and install/upgrade the foo package in
|
||||||
|
the same operation.
|
||||||
|
|
||||||
*-w, \--downloadonly*::
|
*-w, \--downloadonly*::
|
||||||
Retrieve all packages from the server, but do not install/upgrade
|
Retrieve all packages from the server, but do not install/upgrade
|
||||||
@@ -357,6 +376,14 @@ linkman:pacman.conf[5].
|
|||||||
separating them with a comma.
|
separating them with a comma.
|
||||||
|
|
||||||
|
|
||||||
|
Upgrade Options[[UO]]
|
||||||
|
--------------------
|
||||||
|
*-k, \--dbonly*::
|
||||||
|
Adds the database entries for the specified packages but do not install any
|
||||||
|
of the files. On an upgrade operation, the existing package and all files
|
||||||
|
will be removed and the database entry for the new package will be added.
|
||||||
|
|
||||||
|
|
||||||
Handling Config Files[[HCF]]
|
Handling Config Files[[HCF]]
|
||||||
----------------------------
|
----------------------------
|
||||||
Pacman uses the same logic as rpm to determine action against files that are
|
Pacman uses the same logic as rpm to determine action against files that are
|
||||||
|
|||||||
@@ -86,8 +86,11 @@ Options
|
|||||||
*SyncFirst =* package ...::
|
*SyncFirst =* package ...::
|
||||||
Instructs pacman to check for newer version of these packages before any
|
Instructs pacman to check for newer version of these packages before any
|
||||||
sync operation. The user will have the choice to either cancel the current
|
sync operation. The user will have the choice to either cancel the current
|
||||||
operation and upgrade these packages first or go on with the current operation.
|
operation and upgrade these packages first or go on with the current
|
||||||
This option is typically used with the 'pacman' package.
|
operation. This option is typically used with the 'pacman' package.
|
||||||
|
*NOTE*: when a `SyncFirst` transaction takes place, no command line flags
|
||||||
|
(e.g. '\--force') are honored. If this is not ideal, disabling `SyncFirst`
|
||||||
|
and performing a manual sync of the involved packages may be required.
|
||||||
|
|
||||||
*IgnoreGroup =* group ...::
|
*IgnoreGroup =* group ...::
|
||||||
Instructs pacman to ignore any upgrades for all packages in this
|
Instructs pacman to ignore any upgrades for all packages in this
|
||||||
@@ -95,7 +98,16 @@ Options
|
|||||||
|
|
||||||
*Include =* path::
|
*Include =* path::
|
||||||
Include another config file. This file can include repositories or
|
Include another config file. This file can include repositories or
|
||||||
general configuration options.
|
general configuration options. Wildcards in the specified paths will get
|
||||||
|
expanded based on linkman:glob[7] rules.
|
||||||
|
|
||||||
|
*Architecture =* auto | i686 | x86_64 | ...::
|
||||||
|
If set, pacman will only allow installation of packages of the given
|
||||||
|
architecture (e.g. 'i686', 'x86_64', etc). The special value 'auto' will
|
||||||
|
use the system architecture, provided by in ``uname -m''. If unset, no
|
||||||
|
architecture checks are made. *NOTE*: packages with the special
|
||||||
|
architecture 'any' can always be installed, as they are meant to be
|
||||||
|
architecture independent.
|
||||||
|
|
||||||
*XferCommand =* /path/to/command %u::
|
*XferCommand =* /path/to/command %u::
|
||||||
If set, an external program will be used to download all remote files.
|
If set, an external program will be used to download all remote files.
|
||||||
@@ -108,9 +120,6 @@ Options
|
|||||||
http/ftp support, or need the more advanced proxy support that comes with
|
http/ftp support, or need the more advanced proxy support that comes with
|
||||||
utilities like wget.
|
utilities like wget.
|
||||||
|
|
||||||
*NoPassiveFtp*::
|
|
||||||
Disables passive ftp connections when downloading packages. (aka Active Mode)
|
|
||||||
|
|
||||||
*NoUpgrade =* file ...::
|
*NoUpgrade =* file ...::
|
||||||
All files listed with a `NoUpgrade` directive will never be touched during
|
All files listed with a `NoUpgrade` directive will never be touched during
|
||||||
a package install/upgrade, and the new files will be installed with a
|
a package install/upgrade, and the new files will be installed with a
|
||||||
@@ -176,10 +185,12 @@ Include = /etc/pacman.d/mirrorlist
|
|||||||
|
|
||||||
During parsing, pacman will define the `$repo` variable to the name of the
|
During parsing, pacman will define the `$repo` variable to the name of the
|
||||||
current section. This is often utilized in files specified using the 'Include'
|
current section. This is often utilized in files specified using the 'Include'
|
||||||
directive so all repositories can use the same mirrorfile.
|
directive so all repositories can use the same mirrorfile. pacman also defines
|
||||||
|
the `$arch` variable to the value of `Architecture`, so the same mirrorfile can
|
||||||
|
even be used for different architectures.
|
||||||
|
|
||||||
--------
|
--------
|
||||||
Server = ftp://ftp.archlinux.org/$repo/os/arch
|
Server = ftp://ftp.archlinux.org/$repo/os/$arch
|
||||||
--------
|
--------
|
||||||
|
|
||||||
The order of repositories in the configuration files matters; repositories
|
The order of repositories in the configuration files matters; repositories
|
||||||
|
|||||||
@@ -13,6 +13,9 @@ edit = sed \
|
|||||||
-e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
|
-e 's|@PACKAGE_NAME[@]|$(PACKAGE_NAME)|g' \
|
||||||
-e 's|@PKGEXT[@]|$(PKGEXT)|g' \
|
-e 's|@PKGEXT[@]|$(PKGEXT)|g' \
|
||||||
-e 's|@SRCEXT[@]|$(SRCEXT)|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|@CARCH[@]|$(CARCH)|g' \
|
||||||
-e 's|@CHOST[@]|$(CHOST)|g' \
|
-e 's|@CHOST[@]|$(CHOST)|g' \
|
||||||
-e 's|@ARCHSWITCH[@]|$(ARCHSWITCH)|g' \
|
-e 's|@ARCHSWITCH[@]|$(ARCHSWITCH)|g' \
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ DLAGENTS=('ftp::/usr/bin/wget -c --passive-ftp -t 3 --waitretry=3 -O %o %u'
|
|||||||
CARCH="@CARCH@"
|
CARCH="@CARCH@"
|
||||||
CHOST="@CHOST@"
|
CHOST="@CHOST@"
|
||||||
|
|
||||||
#-- Exclusive: will only run on @CARCHFLAGS@
|
#-- Exclusive: will only run on @CARCH@
|
||||||
# -march (or -mcpu) builds exclusively for an architecture
|
# -march (or -mcpu) builds exclusively for an architecture
|
||||||
# -mtune optimizes for an architecture, but builds for whole processor family
|
# -mtune optimizes for an architecture, but builds for whole processor family
|
||||||
CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe"
|
CFLAGS="@CARCHFLAGS@-mtune=generic -O2 -pipe"
|
||||||
@@ -72,6 +72,12 @@ OPTIONS=(strip docs libtool emptydirs zipman purge)
|
|||||||
|
|
||||||
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
|
||||||
INTEGRITY_CHECK=(md5)
|
INTEGRITY_CHECK=(md5)
|
||||||
|
#-- 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.
|
||||||
|
STRIP_SHARED="@STRIP_SHARED@"
|
||||||
|
#-- Options to be used when stripping static libraries. See `man strip' for details.
|
||||||
|
STRIP_STATIC="@STRIP_STATIC@"
|
||||||
#-- Manual (man and info) directories to compress (if zipman is specified)
|
#-- Manual (man and info) directories to compress (if zipman is specified)
|
||||||
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
|
MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
|
||||||
#-- Doc directories to remove (if !docs is specified)
|
#-- Doc directories to remove (if !docs is specified)
|
||||||
@@ -91,6 +97,8 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
|
|||||||
#PKGDEST=/home/packages
|
#PKGDEST=/home/packages
|
||||||
#-- Source cache: specify a fixed directory where source files will be cached
|
#-- Source cache: specify a fixed directory where source files will be cached
|
||||||
#SRCDEST=/home/sources
|
#SRCDEST=/home/sources
|
||||||
|
#-- Source packages: specify a fixed directory where all src packages will be placed
|
||||||
|
#SRCPKGDEST=/home/srcpackages
|
||||||
#-- Packager: name/email of the person or organization building packages
|
#-- Packager: name/email of the person or organization building packages
|
||||||
#PACKAGER="John Doe <john@doe.com>"
|
#PACKAGER="John Doe <john@doe.com>"
|
||||||
|
|
||||||
|
|||||||
@@ -17,8 +17,9 @@ HoldPkg = pacman glibc
|
|||||||
# If upgrades are available for these packages they will be asked for first
|
# If upgrades are available for these packages they will be asked for first
|
||||||
SyncFirst = pacman
|
SyncFirst = pacman
|
||||||
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
|
||||||
#XferCommand = /usr/bin/curl %u > %o
|
#XferCommand = /usr/bin/curl -C - %u > %o
|
||||||
#CleanMethod = KeepInstalled
|
#CleanMethod = KeepInstalled
|
||||||
|
Architecture = auto
|
||||||
|
|
||||||
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
|
||||||
#IgnorePkg =
|
#IgnorePkg =
|
||||||
@@ -28,7 +29,6 @@ SyncFirst = pacman
|
|||||||
#NoExtract =
|
#NoExtract =
|
||||||
|
|
||||||
# Misc options (all disabled by default)
|
# Misc options (all disabled by default)
|
||||||
#NoPassiveFtp
|
|
||||||
#UseSyslog
|
#UseSyslog
|
||||||
#ShowSize
|
#ShowSize
|
||||||
#UseDelta
|
#UseDelta
|
||||||
@@ -42,6 +42,7 @@ SyncFirst = pacman
|
|||||||
# - repositories listed first will take precedence when packages
|
# - repositories listed first will take precedence when packages
|
||||||
# have identical names, regardless of version number
|
# have identical names, regardless of version number
|
||||||
# - URLs will have $repo replaced by the name of the current repo
|
# - URLs will have $repo replaced by the name of the current repo
|
||||||
|
# - URLs will have $arch replaced by the name of the architecture
|
||||||
#
|
#
|
||||||
# Repository entries are of the format:
|
# Repository entries are of the format:
|
||||||
# [repo-name]
|
# [repo-name]
|
||||||
@@ -57,7 +58,7 @@ SyncFirst = pacman
|
|||||||
# servers immediately after the header and they will be used before the
|
# servers immediately after the header and they will be used before the
|
||||||
# default mirrors.
|
# default mirrors.
|
||||||
#[core]
|
#[core]
|
||||||
#Server = ftp://ftp.example.com/foobar/$repo/os/i686/
|
#Server = ftp://ftp.example.com/foobar/$repo/os/$arch/
|
||||||
# The file referenced here should contain a list of 'Server = ' lines.
|
# The file referenced here should contain a list of 'Server = ' lines.
|
||||||
#Include = @sysconfdir@/pacman.d/mirrorlist
|
#Include = @sysconfdir@/pacman.d/mirrorlist
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ libalpm_la_SOURCES = \
|
|||||||
remove.h remove.c \
|
remove.h remove.c \
|
||||||
sync.h sync.c \
|
sync.h sync.c \
|
||||||
trans.h trans.c \
|
trans.h trans.c \
|
||||||
util.h util.c
|
util.h util.c \
|
||||||
|
version.c
|
||||||
|
|
||||||
libalpm_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_INFO)
|
libalpm_la_LDFLAGS = -no-undefined -version-info $(LIB_VERSION_INFO)
|
||||||
libalpm_la_LIBADD = $(LTLIBINTL)
|
libalpm_la_LIBADD = $(LTLIBINTL)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* add.c
|
* add.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -50,21 +50,30 @@
|
|||||||
#include "remove.h"
|
#include "remove.h"
|
||||||
#include "handle.h"
|
#include "handle.h"
|
||||||
|
|
||||||
int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
|
/** Add a file target to the transaction.
|
||||||
|
* @param target the name of the file target to add
|
||||||
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
|
*/
|
||||||
|
int SYMEXPORT alpm_add_target(char *target)
|
||||||
{
|
{
|
||||||
pmpkg_t *pkg = NULL;
|
pmpkg_t *pkg = NULL;
|
||||||
const char *pkgname, *pkgver;
|
const char *pkgname, *pkgver;
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
|
pmtrans_t *trans;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(target != NULL && strlen(target) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
trans = handle->trans;
|
||||||
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
|
||||||
ASSERT(name != NULL && strlen(name) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "loading target '%s'\n", name);
|
_alpm_log(PM_LOG_DEBUG, "loading target '%s'\n", target);
|
||||||
|
|
||||||
if(alpm_pkg_load(name, 1, &pkg) != 0) {
|
if(alpm_pkg_load(target, 1, &pkg) != 0) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
pkgname = alpm_pkg_get_name(pkg);
|
pkgname = alpm_pkg_get_name(pkg);
|
||||||
@@ -72,17 +81,19 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
|
|||||||
|
|
||||||
/* check if an older version of said package is already in transaction
|
/* check if an older version of said package is already in transaction
|
||||||
* packages. if so, replace it in the list */
|
* packages. if so, replace it in the list */
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
pmpkg_t *transpkg = i->data;
|
pmpkg_t *transpkg = i->data;
|
||||||
if(strcmp(transpkg->name, pkgname) == 0) {
|
if(strcmp(transpkg->name, pkgname) == 0) {
|
||||||
if(alpm_pkg_vercmp(transpkg->version, pkgver) < 0) {
|
if(alpm_pkg_vercmp(transpkg->version, pkgver) < 0) {
|
||||||
_alpm_log(PM_LOG_WARNING, _("replacing older version %s-%s by %s in target list\n"),
|
_alpm_log(PM_LOG_WARNING,
|
||||||
transpkg->name, transpkg->version, pkgver);
|
_("replacing older version %s-%s by %s in target list\n"),
|
||||||
|
transpkg->name, transpkg->version, pkgver);
|
||||||
_alpm_pkg_free(i->data);
|
_alpm_pkg_free(i->data);
|
||||||
i->data = pkg;
|
i->data = pkg;
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_WARNING, _("skipping %s-%s because newer version %s is in the target list\n"),
|
_alpm_log(PM_LOG_WARNING,
|
||||||
pkgname, pkgver, transpkg->version);
|
_("skipping %s-%s because newer version %s is in target list\n"),
|
||||||
|
pkgname, pkgver, transpkg->version);
|
||||||
_alpm_pkg_free(pkg);
|
_alpm_pkg_free(pkg);
|
||||||
}
|
}
|
||||||
return(0);
|
return(0);
|
||||||
@@ -90,7 +101,7 @@ int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* add the package to the transaction */
|
/* add the package to the transaction */
|
||||||
trans->packages = alpm_list_add(trans->packages, pkg);
|
trans->add = alpm_list_add(trans->add, pkg);
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
|
|
||||||
@@ -99,176 +110,6 @@ error:
|
|||||||
return(-1);
|
return(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
|
|
||||||
{
|
|
||||||
alpm_list_t *lp = NULL;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
|
||||||
|
|
||||||
/* Check dependencies
|
|
||||||
*/
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
|
||||||
EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL);
|
|
||||||
|
|
||||||
/* look for unsatisfied dependencies */
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "looking for unsatisfied dependencies\n");
|
|
||||||
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, NULL, trans->packages);
|
|
||||||
if(lp != NULL) {
|
|
||||||
if(data) {
|
|
||||||
*data = lp;
|
|
||||||
} else {
|
|
||||||
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_depmiss_free);
|
|
||||||
alpm_list_free(lp);
|
|
||||||
}
|
|
||||||
RET_ERR(PM_ERR_UNSATISFIED_DEPS, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* no unsatisfied deps, so look for conflicts */
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "looking for conflicts\n");
|
|
||||||
alpm_list_t *inner = _alpm_innerconflicts(trans->packages);
|
|
||||||
alpm_list_t *outer = _alpm_outerconflicts(db, trans->packages);
|
|
||||||
lp = alpm_list_join(inner, outer);
|
|
||||||
|
|
||||||
/* TODO : factorize the conflict resolving code from sync.c to use it here (FS#3492) */
|
|
||||||
|
|
||||||
if(lp != NULL) {
|
|
||||||
if(data) {
|
|
||||||
*data = lp;
|
|
||||||
} else {
|
|
||||||
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_conflict_free);
|
|
||||||
alpm_list_free(lp);
|
|
||||||
}
|
|
||||||
if(inner) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("conflicting packages were found in the target list\n"));
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("you cannot install two conflicting packages at the same time\n"));
|
|
||||||
}
|
|
||||||
if(outer) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("replacing packages with -U is not supported yet\n"));
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("you can replace packages manually using -Rd and -U\n"));
|
|
||||||
}
|
|
||||||
RET_ERR(PM_ERR_CONFLICTING_DEPS, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* re-order w.r.t. dependencies */
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "sorting by dependencies\n");
|
|
||||||
lp = _alpm_sortbydeps(trans->packages, 0);
|
|
||||||
/* free the old alltargs */
|
|
||||||
alpm_list_free(trans->packages);
|
|
||||||
trans->packages = lp;
|
|
||||||
|
|
||||||
EVENT(trans, PM_TRANS_EVT_CHECKDEPS_DONE, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Check for file conflicts */
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_FORCE)) {
|
|
||||||
EVENT(trans, PM_TRANS_EVT_FILECONFLICTS_START, NULL, NULL);
|
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "looking for file conflicts\n");
|
|
||||||
lp = _alpm_db_find_fileconflicts(db, trans, trans->packages, NULL);
|
|
||||||
if(lp != NULL) {
|
|
||||||
if(data) {
|
|
||||||
*data = lp;
|
|
||||||
} else {
|
|
||||||
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_fileconflict_free);
|
|
||||||
alpm_list_free(lp);
|
|
||||||
}
|
|
||||||
RET_ERR(PM_ERR_FILE_CONFLICTS, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
EVENT(trans, PM_TRANS_EVT_FILECONFLICTS_DONE, NULL, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int upgrade_remove(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *trans, pmdb_t *db) {
|
|
||||||
/* this is kinda odd. If the old package exists, at this point we make a
|
|
||||||
* NEW transaction, unrelated to handle->trans, and instantiate a "remove"
|
|
||||||
* with the type PM_TRANS_TYPE_REMOVEUPGRADE. TODO: kill this weird
|
|
||||||
* behavior. */
|
|
||||||
pmtrans_t *tr = _alpm_trans_new();
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "removing old package first (%s-%s)\n",
|
|
||||||
oldpkg->name, oldpkg->version);
|
|
||||||
|
|
||||||
if(!tr) {
|
|
||||||
RET_ERR(PM_ERR_TRANS_ABORT, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_alpm_trans_init(tr, PM_TRANS_TYPE_REMOVEUPGRADE, trans->flags,
|
|
||||||
NULL, NULL, NULL) == -1) {
|
|
||||||
_alpm_trans_free(tr);
|
|
||||||
tr = NULL;
|
|
||||||
RET_ERR(PM_ERR_TRANS_ABORT, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_alpm_remove_loadtarget(tr, db, newpkg->name) == -1) {
|
|
||||||
_alpm_trans_free(tr);
|
|
||||||
tr = NULL;
|
|
||||||
RET_ERR(PM_ERR_TRANS_ABORT, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* copy the remove skiplist over */
|
|
||||||
tr->skip_remove = alpm_list_strdup(trans->skip_remove);
|
|
||||||
const alpm_list_t *b;
|
|
||||||
|
|
||||||
/* Add files in the NEW backup array to the NoUpgrade array
|
|
||||||
* so this removal operation doesn't kill them */
|
|
||||||
alpm_list_t *old_noupgrade = alpm_list_strdup(handle->noupgrade);
|
|
||||||
/* old package backup list */
|
|
||||||
alpm_list_t *filelist = alpm_pkg_get_files(newpkg);
|
|
||||||
for(b = alpm_pkg_get_backup(newpkg); b; b = b->next) {
|
|
||||||
char *backup = _alpm_backup_file(b->data);
|
|
||||||
/* safety check (fix the upgrade026 pactest) */
|
|
||||||
if(!alpm_list_find_str(filelist, backup)) {
|
|
||||||
FREE(backup);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "adding %s to the NoUpgrade array temporarily\n",
|
|
||||||
backup);
|
|
||||||
handle->noupgrade = alpm_list_add(handle->noupgrade,
|
|
||||||
backup);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* TODO: we could also add files in the OLD backup array, but this would
|
|
||||||
* change the backup handling behavior, and break several pactests, and we
|
|
||||||
* can't do this just before 3.1 release.
|
|
||||||
* The unlink_file function in remove.c would also need to be reviewed. */
|
|
||||||
#if 0
|
|
||||||
/* new package backup list */
|
|
||||||
for(b = alpm_pkg_get_backup(oldpkg); b; b = b->next) {
|
|
||||||
char *backup = _alpm_backup_file(b->data);
|
|
||||||
/* make sure we don't add duplicate entries */
|
|
||||||
if(!alpm_list_find_ptr(handle->noupgrade, backup)) {
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "adding %s to the NoUpgrade array temporarily\n",
|
|
||||||
backup);
|
|
||||||
handle->noupgrade = alpm_list_add(handle->noupgrade,
|
|
||||||
backup);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int ret = _alpm_remove_commit(tr, db);
|
|
||||||
|
|
||||||
_alpm_trans_free(tr);
|
|
||||||
tr = NULL;
|
|
||||||
|
|
||||||
/* restore our "NoUpgrade" list to previous state */
|
|
||||||
FREELIST(handle->noupgrade);
|
|
||||||
handle->noupgrade = old_noupgrade;
|
|
||||||
|
|
||||||
if(ret == -1) {
|
|
||||||
RET_ERR(PM_ERR_TRANS_ABORT, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int extract_single_file(struct archive *archive,
|
static int extract_single_file(struct archive *archive,
|
||||||
struct archive_entry *entry, pmpkg_t *newpkg, pmpkg_t *oldpkg,
|
struct archive_entry *entry, pmpkg_t *newpkg, pmpkg_t *oldpkg,
|
||||||
pmtrans_t *trans, pmdb_t *db)
|
pmtrans_t *trans, pmdb_t *db)
|
||||||
@@ -291,13 +132,13 @@ static int extract_single_file(struct archive *archive,
|
|||||||
|
|
||||||
if(strcmp(entryname, ".INSTALL") == 0) {
|
if(strcmp(entryname, ".INSTALL") == 0) {
|
||||||
/* the install script goes inside the db */
|
/* the install script goes inside the db */
|
||||||
snprintf(filename, PATH_MAX, "%s%s-%s/install", db->path,
|
snprintf(filename, PATH_MAX, "%s%s-%s/install",
|
||||||
newpkg->name, newpkg->version);
|
_alpm_db_path(db), newpkg->name, newpkg->version);
|
||||||
archive_entry_set_perm(entry, 0644);
|
archive_entry_set_perm(entry, 0644);
|
||||||
} else if(strcmp(entryname, ".CHANGELOG") == 0) {
|
} else if(strcmp(entryname, ".CHANGELOG") == 0) {
|
||||||
/* the changelog goes inside the db */
|
/* the changelog goes inside the db */
|
||||||
snprintf(filename, PATH_MAX, "%s%s-%s/changelog", db->path,
|
snprintf(filename, PATH_MAX, "%s%s-%s/changelog",
|
||||||
newpkg->name, newpkg->version);
|
_alpm_db_path(db), newpkg->name, newpkg->version);
|
||||||
archive_entry_set_perm(entry, 0644);
|
archive_entry_set_perm(entry, 0644);
|
||||||
} else if(*entryname == '.') {
|
} else if(*entryname == '.') {
|
||||||
/* for now, ignore all files starting with '.' that haven't
|
/* for now, ignore all files starting with '.' that haven't
|
||||||
@@ -358,7 +199,7 @@ static int extract_single_file(struct archive *archive,
|
|||||||
/* case 12: existing dir, ignore it */
|
/* case 12: existing dir, ignore it */
|
||||||
if(lsbuf.st_mode != entrymode) {
|
if(lsbuf.st_mode != entrymode) {
|
||||||
/* if filesystem perms are different than pkg perms, warn user */
|
/* if filesystem perms are different than pkg perms, warn user */
|
||||||
int mask = 07777;
|
mode_t mask = 07777;
|
||||||
_alpm_log(PM_LOG_WARNING, _("directory permissions differ on %s\n"
|
_alpm_log(PM_LOG_WARNING, _("directory permissions differ on %s\n"
|
||||||
"filesystem: %o package: %o\n"), entryname, lsbuf.st_mode & mask,
|
"filesystem: %o package: %o\n"), entryname, lsbuf.st_mode & mask,
|
||||||
entrymode & mask);
|
entrymode & mask);
|
||||||
@@ -642,8 +483,11 @@ static int commit_single_pkg(pmpkg_t *newpkg, int pkg_current, int pkg_count,
|
|||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
snprintf(scriptlet, PATH_MAX, "%s%s-%s/install", db->path,
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
alpm_pkg_get_name(newpkg), alpm_pkg_get_version(newpkg));
|
|
||||||
|
snprintf(scriptlet, PATH_MAX, "%s%s-%s/install",
|
||||||
|
_alpm_db_path(db), alpm_pkg_get_name(newpkg),
|
||||||
|
alpm_pkg_get_version(newpkg));
|
||||||
|
|
||||||
/* see if this is an upgrade. if so, remove the old package first */
|
/* see if this is an upgrade. if so, remove the old package first */
|
||||||
pmpkg_t *local = _alpm_db_get_pkgfromcache(db, newpkg->name);
|
pmpkg_t *local = _alpm_db_get_pkgfromcache(db, newpkg->name);
|
||||||
@@ -691,8 +535,9 @@ static int commit_single_pkg(pmpkg_t *newpkg, int pkg_current, int pkg_count,
|
|||||||
|
|
||||||
if(oldpkg) {
|
if(oldpkg) {
|
||||||
/* set up fake remove transaction */
|
/* set up fake remove transaction */
|
||||||
int ret = upgrade_remove(oldpkg, newpkg, trans, db);
|
if(_alpm_upgraderemove_package(oldpkg, newpkg, trans) == -1) {
|
||||||
if(ret != 0) {
|
pm_errno = PM_ERR_TRANS_ABORT;
|
||||||
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -858,7 +703,7 @@ cleanup:
|
|||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db)
|
int _alpm_upgrade_packages(pmtrans_t *trans, pmdb_t *db)
|
||||||
{
|
{
|
||||||
int pkg_count, pkg_current;
|
int pkg_count, pkg_current;
|
||||||
alpm_list_t *targ;
|
alpm_list_t *targ;
|
||||||
@@ -868,15 +713,15 @@ int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db)
|
|||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
|
|
||||||
if(trans->packages == NULL) {
|
if(trans->add == NULL) {
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg_count = alpm_list_count(trans->packages);
|
pkg_count = alpm_list_count(trans->add);
|
||||||
pkg_current = 1;
|
pkg_current = 1;
|
||||||
|
|
||||||
/* loop through our package list adding/upgrading one at a time */
|
/* loop through our package list adding/upgrading one at a time */
|
||||||
for(targ = trans->packages; targ; targ = targ->next) {
|
for(targ = trans->add; targ; targ = targ->next) {
|
||||||
if(handle->trans->state == STATE_INTERRUPTED) {
|
if(handle->trans->state == STATE_INTERRUPTED) {
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* add.h
|
* add.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -24,9 +24,7 @@
|
|||||||
#include "alpm_list.h"
|
#include "alpm_list.h"
|
||||||
#include "trans.h"
|
#include "trans.h"
|
||||||
|
|
||||||
int _alpm_add_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name);
|
int _alpm_upgrade_packages(pmtrans_t *trans, pmdb_t *db);
|
||||||
int _alpm_add_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data);
|
|
||||||
int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db);
|
|
||||||
|
|
||||||
#endif /* _ALPM_ADD_H */
|
#endif /* _ALPM_ADD_H */
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* alpm.c
|
* alpm.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -71,6 +71,7 @@ int SYMEXPORT alpm_release(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
_alpm_handle_free(handle);
|
_alpm_handle_free(handle);
|
||||||
|
handle = NULL;
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* alpm.h
|
* alpm.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -67,10 +67,10 @@ const char *alpm_version(void);
|
|||||||
|
|
||||||
/* Levels */
|
/* Levels */
|
||||||
typedef enum _pmloglevel_t {
|
typedef enum _pmloglevel_t {
|
||||||
PM_LOG_ERROR = 0x01,
|
PM_LOG_ERROR = 1,
|
||||||
PM_LOG_WARNING = 0x02,
|
PM_LOG_WARNING = (1 << 1),
|
||||||
PM_LOG_DEBUG = 0x04,
|
PM_LOG_DEBUG = (1 << 2),
|
||||||
PM_LOG_FUNCTION = 0x08
|
PM_LOG_FUNCTION = (1 << 3)
|
||||||
} pmloglevel_t;
|
} pmloglevel_t;
|
||||||
|
|
||||||
typedef void (*alpm_cb_log)(pmloglevel_t, char *, va_list);
|
typedef void (*alpm_cb_log)(pmloglevel_t, char *, va_list);
|
||||||
@@ -86,14 +86,12 @@ typedef void (*alpm_cb_totaldl)(off_t total);
|
|||||||
/** A callback for downloading files
|
/** A callback for downloading files
|
||||||
* @param url the URL of the file to be downloaded
|
* @param url the URL of the file to be downloaded
|
||||||
* @param localpath the directory to which the file should be downloaded
|
* @param localpath the directory to which the file should be downloaded
|
||||||
* @param mtimeold the modification time of the file previously downloaded
|
* @param force whether to force an update, even if the file is the same
|
||||||
* @param mtimenew the modification time of the newly downloaded file.
|
* @return 0 on success, 1 if the file exists and is identical, -1 on
|
||||||
* This should be set by the callback.
|
|
||||||
* @return 0 on success, 1 if the modification times are identical, -1 on
|
|
||||||
* error.
|
* error.
|
||||||
*/
|
*/
|
||||||
typedef int (*alpm_cb_fetch)(const char *url, const char *localpath,
|
typedef int (*alpm_cb_fetch)(const char *url, const char *localpath,
|
||||||
time_t mtimeold, time_t *mtimenew);
|
int force);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Options
|
* Options
|
||||||
@@ -128,8 +126,8 @@ int alpm_option_set_logfile(const char *logfile);
|
|||||||
const char *alpm_option_get_lockfile();
|
const char *alpm_option_get_lockfile();
|
||||||
/* no set_lockfile, path is determined from dbpath */
|
/* no set_lockfile, path is determined from dbpath */
|
||||||
|
|
||||||
unsigned short alpm_option_get_usesyslog();
|
int alpm_option_get_usesyslog();
|
||||||
void alpm_option_set_usesyslog(unsigned short usesyslog);
|
void alpm_option_set_usesyslog(int usesyslog);
|
||||||
|
|
||||||
alpm_list_t *alpm_option_get_noupgrades();
|
alpm_list_t *alpm_option_get_noupgrades();
|
||||||
void alpm_option_add_noupgrade(const char *pkg);
|
void alpm_option_add_noupgrade(const char *pkg);
|
||||||
@@ -151,13 +149,24 @@ void alpm_option_add_ignoregrp(const char *grp);
|
|||||||
void alpm_option_set_ignoregrps(alpm_list_t *ignoregrps);
|
void alpm_option_set_ignoregrps(alpm_list_t *ignoregrps);
|
||||||
int alpm_option_remove_ignoregrp(const char *grp);
|
int alpm_option_remove_ignoregrp(const char *grp);
|
||||||
|
|
||||||
unsigned short alpm_option_get_nopassiveftp();
|
const char *alpm_option_get_arch();
|
||||||
void alpm_option_set_nopassiveftp(unsigned short nopasv);
|
void alpm_option_set_arch(const char *arch);
|
||||||
void alpm_option_set_usedelta(unsigned short usedelta);
|
|
||||||
|
int alpm_option_get_usedelta();
|
||||||
|
void alpm_option_set_usedelta(int usedelta);
|
||||||
|
|
||||||
pmdb_t *alpm_option_get_localdb();
|
pmdb_t *alpm_option_get_localdb();
|
||||||
alpm_list_t *alpm_option_get_syncdbs();
|
alpm_list_t *alpm_option_get_syncdbs();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Install reasons -- ie, why the package was installed
|
||||||
|
*/
|
||||||
|
|
||||||
|
typedef enum _pmpkgreason_t {
|
||||||
|
PM_PKG_REASON_EXPLICIT = 0, /* explicitly requested by the user */
|
||||||
|
PM_PKG_REASON_DEPEND = 1 /* installed as a dependency for another package */
|
||||||
|
} pmpkgreason_t;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Databases
|
* Databases
|
||||||
*/
|
*/
|
||||||
@@ -181,6 +190,7 @@ alpm_list_t *alpm_db_get_pkgcache(pmdb_t *db);
|
|||||||
pmgrp_t *alpm_db_readgrp(pmdb_t *db, const char *name);
|
pmgrp_t *alpm_db_readgrp(pmdb_t *db, const char *name);
|
||||||
alpm_list_t *alpm_db_get_grpcache(pmdb_t *db);
|
alpm_list_t *alpm_db_get_grpcache(pmdb_t *db);
|
||||||
alpm_list_t *alpm_db_search(pmdb_t *db, const alpm_list_t* needles);
|
alpm_list_t *alpm_db_search(pmdb_t *db, const alpm_list_t* needles);
|
||||||
|
int alpm_db_set_pkgreason(pmdb_t *db, const char *name, pmpkgreason_t reason);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Packages
|
* Packages
|
||||||
@@ -188,13 +198,7 @@ alpm_list_t *alpm_db_search(pmdb_t *db, const alpm_list_t* needles);
|
|||||||
|
|
||||||
/* Info parameters */
|
/* Info parameters */
|
||||||
|
|
||||||
/* reasons -- ie, why the package was installed */
|
int alpm_pkg_load(const char *filename, int full, pmpkg_t **pkg);
|
||||||
typedef enum _pmpkgreason_t {
|
|
||||||
PM_PKG_REASON_EXPLICIT = 0, /* explicitly requested by the user */
|
|
||||||
PM_PKG_REASON_DEPEND = 1 /* installed as a dependency for another package */
|
|
||||||
} pmpkgreason_t;
|
|
||||||
|
|
||||||
int alpm_pkg_load(const char *filename, unsigned short full, pmpkg_t **pkg);
|
|
||||||
int alpm_pkg_free(pmpkg_t *pkg);
|
int alpm_pkg_free(pmpkg_t *pkg);
|
||||||
int alpm_pkg_checkmd5sum(pmpkg_t *pkg);
|
int alpm_pkg_checkmd5sum(pmpkg_t *pkg);
|
||||||
char *alpm_fetch_pkgurl(const char *url);
|
char *alpm_fetch_pkgurl(const char *url);
|
||||||
@@ -224,17 +228,17 @@ alpm_list_t *alpm_pkg_get_deltas(pmpkg_t *pkg);
|
|||||||
alpm_list_t *alpm_pkg_get_replaces(pmpkg_t *pkg);
|
alpm_list_t *alpm_pkg_get_replaces(pmpkg_t *pkg);
|
||||||
alpm_list_t *alpm_pkg_get_files(pmpkg_t *pkg);
|
alpm_list_t *alpm_pkg_get_files(pmpkg_t *pkg);
|
||||||
alpm_list_t *alpm_pkg_get_backup(pmpkg_t *pkg);
|
alpm_list_t *alpm_pkg_get_backup(pmpkg_t *pkg);
|
||||||
alpm_list_t *alpm_pkg_get_removes(pmpkg_t *pkg);
|
|
||||||
pmdb_t *alpm_pkg_get_db(pmpkg_t *pkg);
|
pmdb_t *alpm_pkg_get_db(pmpkg_t *pkg);
|
||||||
void *alpm_pkg_changelog_open(pmpkg_t *pkg);
|
void *alpm_pkg_changelog_open(pmpkg_t *pkg);
|
||||||
size_t alpm_pkg_changelog_read(void *ptr, size_t size,
|
size_t alpm_pkg_changelog_read(void *ptr, size_t size,
|
||||||
const pmpkg_t *pkg, const void *fp);
|
const pmpkg_t *pkg, const void *fp);
|
||||||
/*int alpm_pkg_changelog_feof(const pmpkg_t *pkg, void *fp);*/
|
/*int alpm_pkg_changelog_feof(const pmpkg_t *pkg, void *fp);*/
|
||||||
int alpm_pkg_changelog_close(const pmpkg_t *pkg, void *fp);
|
int alpm_pkg_changelog_close(const pmpkg_t *pkg, void *fp);
|
||||||
unsigned short alpm_pkg_has_scriptlet(pmpkg_t *pkg);
|
int alpm_pkg_has_scriptlet(pmpkg_t *pkg);
|
||||||
unsigned short alpm_pkg_has_force(pmpkg_t *pkg);
|
int alpm_pkg_has_force(pmpkg_t *pkg);
|
||||||
|
|
||||||
off_t alpm_pkg_download_size(pmpkg_t *newpkg);
|
off_t alpm_pkg_download_size(pmpkg_t *newpkg);
|
||||||
|
alpm_list_t *alpm_pkg_unused_deltas(pmpkg_t *pkg);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Deltas
|
* Deltas
|
||||||
@@ -262,34 +266,27 @@ pmpkg_t *alpm_sync_newversion(pmpkg_t *pkg, alpm_list_t *dbs_sync);
|
|||||||
* Transactions
|
* Transactions
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* Types */
|
|
||||||
typedef enum _pmtranstype_t {
|
|
||||||
PM_TRANS_TYPE_UPGRADE = 1,
|
|
||||||
PM_TRANS_TYPE_REMOVE,
|
|
||||||
PM_TRANS_TYPE_REMOVEUPGRADE,
|
|
||||||
PM_TRANS_TYPE_SYNC
|
|
||||||
} pmtranstype_t;
|
|
||||||
|
|
||||||
/* Flags */
|
/* Flags */
|
||||||
typedef enum _pmtransflag_t {
|
typedef enum _pmtransflag_t {
|
||||||
PM_TRANS_FLAG_NODEPS = 0x01,
|
PM_TRANS_FLAG_NODEPS = 1,
|
||||||
PM_TRANS_FLAG_FORCE = 0x02,
|
PM_TRANS_FLAG_FORCE = (1 << 1),
|
||||||
PM_TRANS_FLAG_NOSAVE = 0x04,
|
PM_TRANS_FLAG_NOSAVE = (1 << 2),
|
||||||
/* 0x08 flag can go here */
|
/* (1 << 3) flag can go here */
|
||||||
PM_TRANS_FLAG_CASCADE = 0x10,
|
PM_TRANS_FLAG_CASCADE = (1 << 4),
|
||||||
PM_TRANS_FLAG_RECURSE = 0x20,
|
PM_TRANS_FLAG_RECURSE = (1 << 5),
|
||||||
PM_TRANS_FLAG_DBONLY = 0x40,
|
PM_TRANS_FLAG_DBONLY = (1 << 6),
|
||||||
/* 0x80 flag can go here */
|
/* (1 << 7) flag can go here */
|
||||||
PM_TRANS_FLAG_ALLDEPS = 0x100,
|
PM_TRANS_FLAG_ALLDEPS = (1 << 8),
|
||||||
PM_TRANS_FLAG_DOWNLOADONLY = 0x200,
|
PM_TRANS_FLAG_DOWNLOADONLY = (1 << 9),
|
||||||
PM_TRANS_FLAG_NOSCRIPTLET = 0x400,
|
PM_TRANS_FLAG_NOSCRIPTLET = (1 << 10),
|
||||||
PM_TRANS_FLAG_NOCONFLICTS = 0x800,
|
PM_TRANS_FLAG_NOCONFLICTS = (1 << 11),
|
||||||
/* 0x1000 flag can go here */
|
/* (1 << 12) flag can go here */
|
||||||
PM_TRANS_FLAG_NEEDED = 0x2000,
|
PM_TRANS_FLAG_NEEDED = (1 << 13),
|
||||||
PM_TRANS_FLAG_ALLEXPLICIT = 0x4000,
|
PM_TRANS_FLAG_ALLEXPLICIT = (1 << 14),
|
||||||
PM_TRANS_FLAG_UNNEEDED = 0x8000,
|
PM_TRANS_FLAG_UNNEEDED = (1 << 15),
|
||||||
PM_TRANS_FLAG_RECURSEALL = 0x10000,
|
PM_TRANS_FLAG_RECURSEALL = (1 << 16),
|
||||||
PM_TRANS_FLAG_NOLOCK = 0x20000
|
PM_TRANS_FLAG_NOLOCK = (1 << 17)
|
||||||
} pmtransflag_t;
|
} pmtransflag_t;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -376,12 +373,12 @@ typedef enum _pmtransevt_t {
|
|||||||
|
|
||||||
/* Transaction Conversations (ie, questions) */
|
/* Transaction Conversations (ie, questions) */
|
||||||
typedef enum _pmtransconv_t {
|
typedef enum _pmtransconv_t {
|
||||||
PM_TRANS_CONV_INSTALL_IGNOREPKG = 0x01,
|
PM_TRANS_CONV_INSTALL_IGNOREPKG = 1,
|
||||||
PM_TRANS_CONV_REPLACE_PKG = 0x02,
|
PM_TRANS_CONV_REPLACE_PKG = (1 << 1),
|
||||||
PM_TRANS_CONV_CONFLICT_PKG = 0x04,
|
PM_TRANS_CONV_CONFLICT_PKG = (1 << 2),
|
||||||
PM_TRANS_CONV_CORRUPTED_PKG = 0x08,
|
PM_TRANS_CONV_CORRUPTED_PKG = (1 << 3),
|
||||||
PM_TRANS_CONV_LOCAL_NEWER = 0x10,
|
PM_TRANS_CONV_LOCAL_NEWER = (1 << 4),
|
||||||
PM_TRANS_CONV_REMOVE_PKGS = 0x20,
|
PM_TRANS_CONV_REMOVE_PKGS = (1 << 5),
|
||||||
} pmtransconv_t;
|
} pmtransconv_t;
|
||||||
|
|
||||||
/* Transaction Progress */
|
/* Transaction Progress */
|
||||||
@@ -402,19 +399,23 @@ typedef void (*alpm_trans_cb_conv)(pmtransconv_t, void *, void *,
|
|||||||
/* Transaction Progress callback */
|
/* Transaction Progress callback */
|
||||||
typedef void (*alpm_trans_cb_progress)(pmtransprog_t, const char *, int, int, int);
|
typedef void (*alpm_trans_cb_progress)(pmtransprog_t, const char *, int, int, int);
|
||||||
|
|
||||||
pmtranstype_t alpm_trans_get_type();
|
int alpm_trans_get_flags();
|
||||||
unsigned int alpm_trans_get_flags();
|
alpm_list_t * alpm_trans_get_add();
|
||||||
alpm_list_t * alpm_trans_get_pkgs();
|
alpm_list_t * alpm_trans_get_remove();
|
||||||
int alpm_trans_init(pmtranstype_t type, pmtransflag_t flags,
|
int alpm_trans_init(pmtransflag_t flags,
|
||||||
alpm_trans_cb_event cb_event, alpm_trans_cb_conv conv,
|
alpm_trans_cb_event cb_event, alpm_trans_cb_conv conv,
|
||||||
alpm_trans_cb_progress cb_progress);
|
alpm_trans_cb_progress cb_progress);
|
||||||
int alpm_trans_sysupgrade(int enable_downgrade);
|
|
||||||
int alpm_trans_addtarget(char *target);
|
|
||||||
int alpm_trans_prepare(alpm_list_t **data);
|
int alpm_trans_prepare(alpm_list_t **data);
|
||||||
int alpm_trans_commit(alpm_list_t **data);
|
int alpm_trans_commit(alpm_list_t **data);
|
||||||
int alpm_trans_interrupt(void);
|
int alpm_trans_interrupt(void);
|
||||||
int alpm_trans_release(void);
|
int alpm_trans_release(void);
|
||||||
|
|
||||||
|
int alpm_sync_sysupgrade(int enable_downgrade);
|
||||||
|
int alpm_sync_target(char *target);
|
||||||
|
int alpm_sync_dbtarget(char *db, char *target);
|
||||||
|
int alpm_add_target(char *target);
|
||||||
|
int alpm_remove_target(char *target);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dependencies and conflicts
|
* Dependencies and conflicts
|
||||||
*/
|
*/
|
||||||
@@ -441,6 +442,7 @@ alpm_list_t *alpm_checkconflicts(alpm_list_t *pkglist);
|
|||||||
|
|
||||||
const char *alpm_conflict_get_package1(pmconflict_t *conflict);
|
const char *alpm_conflict_get_package1(pmconflict_t *conflict);
|
||||||
const char *alpm_conflict_get_package2(pmconflict_t *conflict);
|
const char *alpm_conflict_get_package2(pmconflict_t *conflict);
|
||||||
|
const char *alpm_conflict_get_reason(pmconflict_t *conflict);
|
||||||
|
|
||||||
pmdepmod_t alpm_dep_get_mod(const pmdepend_t *dep);
|
pmdepmod_t alpm_dep_get_mod(const pmdepend_t *dep);
|
||||||
const char *alpm_dep_get_name(const pmdepend_t *dep);
|
const char *alpm_dep_get_name(const pmdepend_t *dep);
|
||||||
@@ -509,6 +511,7 @@ enum _pmerrno_t {
|
|||||||
PM_ERR_PKG_OPEN,
|
PM_ERR_PKG_OPEN,
|
||||||
PM_ERR_PKG_CANT_REMOVE,
|
PM_ERR_PKG_CANT_REMOVE,
|
||||||
PM_ERR_PKG_INVALID_NAME,
|
PM_ERR_PKG_INVALID_NAME,
|
||||||
|
PM_ERR_PKG_INVALID_ARCH,
|
||||||
PM_ERR_PKG_REPO_NOT_FOUND,
|
PM_ERR_PKG_REPO_NOT_FOUND,
|
||||||
/* Deltas */
|
/* Deltas */
|
||||||
PM_ERR_DLT_INVALID,
|
PM_ERR_DLT_INVALID,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* alpm_list.c
|
* alpm_list.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -309,6 +309,7 @@ alpm_list_t SYMEXPORT *alpm_list_remove(alpm_list_t *haystack, const void *needl
|
|||||||
|
|
||||||
while(i) {
|
while(i) {
|
||||||
if(i->data == NULL) {
|
if(i->data == NULL) {
|
||||||
|
i = i->next;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
tmp = i->next;
|
tmp = i->next;
|
||||||
@@ -615,7 +616,7 @@ static int ptr_cmp(const void *p, const void *q)
|
|||||||
/**
|
/**
|
||||||
* @brief Find an item in a list.
|
* @brief Find an item in a list.
|
||||||
*
|
*
|
||||||
* Search for the item whos data matches that of the `needle`.
|
* Search for the item whose data matches that of the `needle`.
|
||||||
*
|
*
|
||||||
* @param needle the data to search for (== comparison)
|
* @param needle the data to search for (== comparison)
|
||||||
* @param haystack the list
|
* @param haystack the list
|
||||||
@@ -643,11 +644,65 @@ char SYMEXPORT *alpm_list_find_str(const alpm_list_t *haystack,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Find the items in list `lhs` that are not present in list `rhs`.
|
* @brief Find the differences between list `left` and list `right`
|
||||||
*
|
*
|
||||||
* Entries are not duplicated. Operation is O(m*n). The first list is stepped
|
* The two lists must be sorted. Items only in list `left` are added to the
|
||||||
* through one node at a time, and for each node in the first list, each node
|
* `onlyleft` list. Items only in list `right` are added to the `onlyright`
|
||||||
* in the second list is compared to it.
|
* list.
|
||||||
|
*
|
||||||
|
* @param left the first list
|
||||||
|
* @param right the second list
|
||||||
|
* @param fn the comparison function
|
||||||
|
* @param onlyleft pointer to the first result list
|
||||||
|
* @param onlyright pointer to the second result list
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void SYMEXPORT alpm_list_diff_sorted(const alpm_list_t *left,
|
||||||
|
const alpm_list_t *right, alpm_list_fn_cmp fn,
|
||||||
|
alpm_list_t **onlyleft, alpm_list_t **onlyright)
|
||||||
|
{
|
||||||
|
const alpm_list_t *l = left;
|
||||||
|
const alpm_list_t *r = right;
|
||||||
|
|
||||||
|
if(!onlyleft && !onlyright) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (l != NULL && r != NULL) {
|
||||||
|
int cmp = fn(l->data, r->data);
|
||||||
|
if(cmp < 0) {
|
||||||
|
if(onlyleft) {
|
||||||
|
*onlyleft = alpm_list_add(*onlyleft, l->data);
|
||||||
|
}
|
||||||
|
l = l->next;
|
||||||
|
}
|
||||||
|
else if(cmp > 0) {
|
||||||
|
if(onlyright) {
|
||||||
|
*onlyright = alpm_list_add(*onlyright, r->data);
|
||||||
|
}
|
||||||
|
r = r->next;
|
||||||
|
} else {
|
||||||
|
l = l->next;
|
||||||
|
r = r->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
while (l != NULL) {
|
||||||
|
if(onlyleft) {
|
||||||
|
*onlyleft = alpm_list_add(*onlyleft, l->data);
|
||||||
|
}
|
||||||
|
l = l->next;
|
||||||
|
}
|
||||||
|
while (r != NULL) {
|
||||||
|
if(onlyright) {
|
||||||
|
*onlyright = alpm_list_add(*onlyright, r->data);
|
||||||
|
}
|
||||||
|
r = r->next;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Find the items in list `lhs` that are not present in list `rhs`.
|
||||||
*
|
*
|
||||||
* @param lhs the first list
|
* @param lhs the first list
|
||||||
* @param rhs the second list
|
* @param rhs the second list
|
||||||
@@ -658,21 +713,18 @@ char SYMEXPORT *alpm_list_find_str(const alpm_list_t *haystack,
|
|||||||
alpm_list_t SYMEXPORT *alpm_list_diff(const alpm_list_t *lhs,
|
alpm_list_t SYMEXPORT *alpm_list_diff(const alpm_list_t *lhs,
|
||||||
const alpm_list_t *rhs, alpm_list_fn_cmp fn)
|
const alpm_list_t *rhs, alpm_list_fn_cmp fn)
|
||||||
{
|
{
|
||||||
const alpm_list_t *i, *j;
|
alpm_list_t *left, *right;
|
||||||
alpm_list_t *ret = NULL;
|
alpm_list_t *ret = NULL;
|
||||||
for(i = lhs; i; i = i->next) {
|
|
||||||
int found = 0;
|
|
||||||
for(j = rhs; j; j = j->next) {
|
|
||||||
if(fn(i->data, j->data) == 0) {
|
|
||||||
found = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) {
|
|
||||||
ret = alpm_list_add(ret, i->data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
left = alpm_list_copy(lhs);
|
||||||
|
left = alpm_list_msort(left, alpm_list_count(left), fn);
|
||||||
|
right = alpm_list_copy(rhs);
|
||||||
|
right = alpm_list_msort(right, alpm_list_count(right), fn);
|
||||||
|
|
||||||
|
alpm_list_diff_sorted(left, right, fn, &ret, NULL);
|
||||||
|
|
||||||
|
alpm_list_free(left);
|
||||||
|
alpm_list_free(right);
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* alpm_list.h
|
* alpm_list.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -78,6 +78,8 @@ void *alpm_list_find(const alpm_list_t *haystack, const void *needle, alpm_list_
|
|||||||
void *alpm_list_find_ptr(const alpm_list_t *haystack, const void *needle);
|
void *alpm_list_find_ptr(const alpm_list_t *haystack, const void *needle);
|
||||||
char *alpm_list_find_str(const alpm_list_t *haystack, const char *needle);
|
char *alpm_list_find_str(const alpm_list_t *haystack, const char *needle);
|
||||||
alpm_list_t *alpm_list_diff(const alpm_list_t *lhs, const alpm_list_t *rhs, alpm_list_fn_cmp fn);
|
alpm_list_t *alpm_list_diff(const alpm_list_t *lhs, const alpm_list_t *rhs, alpm_list_fn_cmp fn);
|
||||||
|
void alpm_list_diff_sorted(const alpm_list_t *left, const alpm_list_t *right,
|
||||||
|
alpm_list_fn_cmp fn, alpm_list_t **onlyleft, alpm_list_t **onlyright);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* backup.c
|
* backup.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2005 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2005 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
/* split a backup string "file\thash" into two strings : file and hash */
|
/* split a backup string "file\thash" into two strings : file and hash */
|
||||||
int _alpm_backup_split(const char *string, char **file, char **hash)
|
static int backup_split(const char *string, char **file, char **hash)
|
||||||
{
|
{
|
||||||
char *str = strdup(string);
|
char *str = strdup(string);
|
||||||
char *ptr;
|
char *ptr;
|
||||||
@@ -65,14 +65,14 @@ int _alpm_backup_split(const char *string, char **file, char **hash)
|
|||||||
char *_alpm_backup_file(const char *string)
|
char *_alpm_backup_file(const char *string)
|
||||||
{
|
{
|
||||||
char *file = NULL;
|
char *file = NULL;
|
||||||
_alpm_backup_split(string, &file, NULL);
|
backup_split(string, &file, NULL);
|
||||||
return(file);
|
return(file);
|
||||||
}
|
}
|
||||||
|
|
||||||
char *_alpm_backup_hash(const char *string)
|
char *_alpm_backup_hash(const char *string)
|
||||||
{
|
{
|
||||||
char *hash = NULL;
|
char *hash = NULL;
|
||||||
_alpm_backup_split(string, NULL, &hash);
|
backup_split(string, NULL, &hash);
|
||||||
return(hash);
|
return(hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -95,7 +95,7 @@ char *_alpm_needbackup(const char *file, const alpm_list_t *backup)
|
|||||||
char *hash = NULL;
|
char *hash = NULL;
|
||||||
|
|
||||||
/* no hash found */
|
/* no hash found */
|
||||||
if(!_alpm_backup_split((char *)lp->data, &filename, &hash)) {
|
if(!backup_split((char *)lp->data, &filename, &hash)) {
|
||||||
FREE(filename);
|
FREE(filename);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* backup.h
|
* backup.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdint.h> /* uintmax_t, intmax_t */
|
#include <stdint.h> /* intmax_t */
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
@@ -33,6 +33,10 @@
|
|||||||
#include <limits.h> /* PATH_MAX */
|
#include <limits.h> /* PATH_MAX */
|
||||||
#include <locale.h> /* setlocale */
|
#include <locale.h> /* setlocale */
|
||||||
|
|
||||||
|
/* libarchive */
|
||||||
|
#include <archive.h>
|
||||||
|
#include <archive_entry.h>
|
||||||
|
|
||||||
/* libalpm */
|
/* libalpm */
|
||||||
#include "db.h"
|
#include "db.h"
|
||||||
#include "alpm_list.h"
|
#include "alpm_list.h"
|
||||||
@@ -47,76 +51,10 @@
|
|||||||
#include "dload.h"
|
#include "dload.h"
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Return the last update time as number of seconds from the epoch.
|
|
||||||
* Returns 0 if the value is unknown or can't be read.
|
|
||||||
*/
|
|
||||||
static time_t getlastupdate(const pmdb_t *db)
|
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
char *file;
|
|
||||||
time_t ret = 0;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
if(db == NULL) {
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* db->path + '.lastupdate' + NULL */
|
|
||||||
MALLOC(file, strlen(db->path) + 12, RET_ERR(PM_ERR_MEMORY, ret));
|
|
||||||
sprintf(file, "%s.lastupdate", db->path);
|
|
||||||
|
|
||||||
/* get the last update time, if it's there */
|
|
||||||
if((fp = fopen(file, "r")) == NULL) {
|
|
||||||
free(file);
|
|
||||||
return(ret);
|
|
||||||
} else {
|
|
||||||
char line[64];
|
|
||||||
if(fgets(line, sizeof(line), fp)) {
|
|
||||||
ret = atol(line);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
fclose(fp);
|
|
||||||
free(file);
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* writes the dbpath/.lastupdate file with the value in time
|
|
||||||
*/
|
|
||||||
static int setlastupdate(const pmdb_t *db, time_t time)
|
|
||||||
{
|
|
||||||
FILE *fp;
|
|
||||||
char *file;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
if(db == NULL || time == 0) {
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* db->path + '.lastupdate' + NULL */
|
|
||||||
MALLOC(file, strlen(db->path) + 12, RET_ERR(PM_ERR_MEMORY, ret));
|
|
||||||
sprintf(file, "%s.lastupdate", db->path);
|
|
||||||
|
|
||||||
if((fp = fopen(file, "w")) == NULL) {
|
|
||||||
free(file);
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
if(fprintf(fp, "%ju", (uintmax_t)time) <= 0) {
|
|
||||||
ret = -1;
|
|
||||||
}
|
|
||||||
fclose(fp);
|
|
||||||
free(file);
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
static int checkdbdir(pmdb_t *db)
|
static int checkdbdir(pmdb_t *db)
|
||||||
{
|
{
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
char *path = db->path;
|
const char *path = _alpm_db_path(db);
|
||||||
|
|
||||||
if(stat(path, &buf) != 0) {
|
if(stat(path, &buf) != 0) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "database dir '%s' does not exist, creating it\n",
|
_alpm_log(PM_LOG_DEBUG, "database dir '%s' does not exist, creating it\n",
|
||||||
@@ -125,7 +63,7 @@ static int checkdbdir(pmdb_t *db)
|
|||||||
RET_ERR(PM_ERR_SYSTEM, -1);
|
RET_ERR(PM_ERR_SYSTEM, -1);
|
||||||
}
|
}
|
||||||
} else if(!S_ISDIR(buf.st_mode)) {
|
} else if(!S_ISDIR(buf.st_mode)) {
|
||||||
_alpm_log(PM_LOG_WARNING, "removing bogus database: %s\n", path);
|
_alpm_log(PM_LOG_WARNING, _("removing invalid database: %s\n"), path);
|
||||||
if(unlink(path) != 0 || _alpm_makepath(path) != 0) {
|
if(unlink(path) != 0 || _alpm_makepath(path) != 0) {
|
||||||
RET_ERR(PM_ERR_SYSTEM, -1);
|
RET_ERR(PM_ERR_SYSTEM, -1);
|
||||||
}
|
}
|
||||||
@@ -133,6 +71,103 @@ static int checkdbdir(pmdb_t *db)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* create list of directories in db */
|
||||||
|
static int dirlist_from_tar(const char *archive, alpm_list_t **dirlist)
|
||||||
|
{
|
||||||
|
struct archive *_archive;
|
||||||
|
struct archive_entry *entry;
|
||||||
|
|
||||||
|
if((_archive = archive_read_new()) == NULL)
|
||||||
|
RET_ERR(PM_ERR_LIBARCHIVE, -1);
|
||||||
|
|
||||||
|
archive_read_support_compression_all(_archive);
|
||||||
|
archive_read_support_format_all(_archive);
|
||||||
|
|
||||||
|
if(archive_read_open_filename(_archive, archive,
|
||||||
|
ARCHIVE_DEFAULT_BYTES_PER_BLOCK) != ARCHIVE_OK) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("could not open %s: %s\n"), archive,
|
||||||
|
archive_error_string(_archive));
|
||||||
|
RET_ERR(PM_ERR_PKG_OPEN, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
while(archive_read_next_header(_archive, &entry) == ARCHIVE_OK) {
|
||||||
|
const struct stat *st;
|
||||||
|
const char *entryname; /* the name of the file in the archive */
|
||||||
|
|
||||||
|
st = archive_entry_stat(entry);
|
||||||
|
entryname = archive_entry_pathname(entry);
|
||||||
|
|
||||||
|
if(S_ISDIR(st->st_mode)) {
|
||||||
|
char *name = strdup(entryname);
|
||||||
|
*dirlist = alpm_list_add(*dirlist, name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
archive_read_finish(_archive);
|
||||||
|
|
||||||
|
*dirlist = alpm_list_msort(*dirlist, alpm_list_count(*dirlist), _alpm_str_cmp);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* create list of directories in db */
|
||||||
|
static int dirlist_from_fs(const char *syncdbpath, alpm_list_t **dirlist)
|
||||||
|
{
|
||||||
|
DIR *dbdir;
|
||||||
|
struct dirent *ent = NULL;
|
||||||
|
struct stat sbuf;
|
||||||
|
char path[PATH_MAX];
|
||||||
|
|
||||||
|
dbdir = opendir(syncdbpath);
|
||||||
|
if (dbdir != NULL) {
|
||||||
|
while((ent = readdir(dbdir)) != NULL) {
|
||||||
|
char *name = ent->d_name;
|
||||||
|
size_t len;
|
||||||
|
char *entry;
|
||||||
|
|
||||||
|
if(strcmp(name, ".") == 0 || strcmp(name, "..") == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* stat the entry, make sure it's a directory */
|
||||||
|
snprintf(path, PATH_MAX, "%s%s", syncdbpath, name);
|
||||||
|
if(stat(path, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = strlen(name);
|
||||||
|
MALLOC(entry, len + 2, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
|
strcpy(entry, name);
|
||||||
|
entry[len] = '/';
|
||||||
|
entry[len+1] = '\0';
|
||||||
|
*dirlist = alpm_list_add(*dirlist, entry);
|
||||||
|
}
|
||||||
|
closedir(dbdir);
|
||||||
|
}
|
||||||
|
|
||||||
|
*dirlist = alpm_list_msort(*dirlist, alpm_list_count(*dirlist), _alpm_str_cmp);
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* remove old directories from dbdir */
|
||||||
|
static int remove_olddir(const char *syncdbpath, alpm_list_t *dirlist)
|
||||||
|
{
|
||||||
|
alpm_list_t *i;
|
||||||
|
for (i = dirlist; i; i = i->next) {
|
||||||
|
const char *name = i->data;
|
||||||
|
char *dbdir;
|
||||||
|
size_t len = strlen(syncdbpath) + strlen(name) + 2;
|
||||||
|
MALLOC(dbdir, len, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
|
snprintf(dbdir, len, "%s%s", syncdbpath, name);
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "removing: %s\n", dbdir);
|
||||||
|
if(_alpm_rmrf(dbdir) != 0) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("could not remove database directory %s\n"), dbdir);
|
||||||
|
free(dbdir);
|
||||||
|
RET_ERR(PM_ERR_DB_REMOVE, -1);
|
||||||
|
}
|
||||||
|
free(dbdir);
|
||||||
|
}
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
/** Update a package database
|
/** Update a package database
|
||||||
*
|
*
|
||||||
* An update of the package database \a db will be attempted. Unless
|
* An update of the package database \a db will be attempted. Unless
|
||||||
@@ -148,7 +183,7 @@ static int checkdbdir(pmdb_t *db)
|
|||||||
* pmdb_t *db;
|
* pmdb_t *db;
|
||||||
* int result;
|
* int result;
|
||||||
* db = alpm_list_getdata(alpm_option_get_syncdbs());
|
* db = alpm_list_getdata(alpm_option_get_syncdbs());
|
||||||
* if(alpm_trans_init(PM_TRANS_TYPE_SYNC, 0, NULL, NULL, NULL) == 0) {
|
* if(alpm_trans_init(0, NULL, NULL, NULL) == 0) {
|
||||||
* result = alpm_db_update(0, db);
|
* result = alpm_db_update(0, db);
|
||||||
* alpm_trans_release();
|
* alpm_trans_release();
|
||||||
*
|
*
|
||||||
@@ -174,10 +209,10 @@ static int checkdbdir(pmdb_t *db)
|
|||||||
int SYMEXPORT alpm_db_update(int force, pmdb_t *db)
|
int SYMEXPORT alpm_db_update(int force, pmdb_t *db)
|
||||||
{
|
{
|
||||||
char *dbfile, *dbfilepath;
|
char *dbfile, *dbfilepath;
|
||||||
time_t newmtime = 0, lastupdate = 0;
|
const char *dbpath, *syncdbpath;
|
||||||
const char *dbpath;
|
alpm_list_t *newdirlist = NULL, *olddirlist = NULL;
|
||||||
|
alpm_list_t *onlynew = NULL, *onlyold = NULL;
|
||||||
size_t len;
|
size_t len;
|
||||||
|
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
@@ -191,72 +226,82 @@ int SYMEXPORT alpm_db_update(int force, pmdb_t *db)
|
|||||||
*/
|
*/
|
||||||
ASSERT(handle->trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(handle->trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(handle->trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
ASSERT(handle->trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
||||||
ASSERT(handle->trans->type == PM_TRANS_TYPE_SYNC, RET_ERR(PM_ERR_TRANS_TYPE, -1));
|
|
||||||
|
|
||||||
if(!alpm_list_find_ptr(handle->dbs_sync, db)) {
|
if(!alpm_list_find_ptr(handle->dbs_sync, db)) {
|
||||||
RET_ERR(PM_ERR_DB_NOT_FOUND, -1);
|
RET_ERR(PM_ERR_DB_NOT_FOUND, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!force) {
|
|
||||||
/* get the lastupdate time */
|
|
||||||
lastupdate = getlastupdate(db);
|
|
||||||
if(lastupdate == 0) {
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "failed to get lastupdate time for %s\n",
|
|
||||||
db->treename);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
len = strlen(db->treename) + strlen(DBEXT) + 1;
|
len = strlen(db->treename) + strlen(DBEXT) + 1;
|
||||||
MALLOC(dbfile, len, RET_ERR(PM_ERR_MEMORY, -1));
|
MALLOC(dbfile, len, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
sprintf(dbfile, "%s" DBEXT, db->treename);
|
sprintf(dbfile, "%s" DBEXT, db->treename);
|
||||||
|
|
||||||
dbpath = alpm_option_get_dbpath();
|
dbpath = alpm_option_get_dbpath();
|
||||||
|
|
||||||
ret = _alpm_download_single_file(dbfile, db->servers, dbpath,
|
ret = _alpm_download_single_file(dbfile, db->servers, dbpath, force);
|
||||||
lastupdate, &newmtime);
|
|
||||||
free(dbfile);
|
free(dbfile);
|
||||||
|
|
||||||
if(ret == 1) {
|
if(ret == 1) {
|
||||||
/* mtimes match, do nothing */
|
/* files match, do nothing */
|
||||||
pm_errno = 0;
|
pm_errno = 0;
|
||||||
return(1);
|
return(1);
|
||||||
} else if(ret == -1) {
|
} else if(ret == -1) {
|
||||||
/* pm_errno was set by the download code */
|
/* pm_errno was set by the download code */
|
||||||
_alpm_log(PM_LOG_DEBUG, "failed to sync db: %s\n", alpm_strerrorlast());
|
_alpm_log(PM_LOG_DEBUG, "failed to sync db: %s\n", alpm_strerrorlast());
|
||||||
return(-1);
|
return(-1);
|
||||||
} else {
|
}
|
||||||
/* remove the old dir */
|
|
||||||
if(_alpm_rmrf(db->path) != 0) {
|
syncdbpath = _alpm_db_path(db);
|
||||||
|
|
||||||
|
/* form the path to the db location */
|
||||||
|
len = strlen(dbpath) + strlen(db->treename) + strlen(DBEXT) + 1;
|
||||||
|
MALLOC(dbfilepath, len, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
|
sprintf(dbfilepath, "%s%s" DBEXT, dbpath, db->treename);
|
||||||
|
|
||||||
|
if(force) {
|
||||||
|
/* if forcing update, remove the old dir and extract the db */
|
||||||
|
if(_alpm_rmrf(syncdbpath) != 0) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not remove database %s\n"), db->treename);
|
_alpm_log(PM_LOG_ERROR, _("could not remove database %s\n"), db->treename);
|
||||||
RET_ERR(PM_ERR_DB_REMOVE, -1);
|
RET_ERR(PM_ERR_DB_REMOVE, -1);
|
||||||
|
} else {
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "database dir %s removed\n", _alpm_db_path(db));
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
/* Cache needs to be rebuilt */
|
/* if not forcing, only remove and extract what is necessary */
|
||||||
_alpm_db_free_pkgcache(db);
|
ret = dirlist_from_tar(dbfilepath, &newdirlist);
|
||||||
|
|
||||||
/* form the path to the db location */
|
|
||||||
len = strlen(dbpath) + strlen(db->treename) + strlen(DBEXT) + 1;
|
|
||||||
MALLOC(dbfilepath, len, RET_ERR(PM_ERR_MEMORY, -1));
|
|
||||||
sprintf(dbfilepath, "%s%s" DBEXT, dbpath, db->treename);
|
|
||||||
|
|
||||||
/* uncompress the sync database */
|
|
||||||
checkdbdir(db);
|
|
||||||
ret = _alpm_unpack(dbfilepath, db->path, NULL);
|
|
||||||
if(ret) {
|
if(ret) {
|
||||||
free(dbfilepath);
|
goto cleanup;
|
||||||
RET_ERR(PM_ERR_SYSTEM, -1);
|
}
|
||||||
|
ret = dirlist_from_fs(syncdbpath, &olddirlist);
|
||||||
|
if(ret) {
|
||||||
|
goto cleanup;
|
||||||
}
|
}
|
||||||
unlink(dbfilepath);
|
|
||||||
free(dbfilepath);
|
|
||||||
|
|
||||||
/* if we have a new mtime, set the DB last update value */
|
alpm_list_diff_sorted(olddirlist, newdirlist, _alpm_str_cmp, &onlyold, &onlynew);
|
||||||
if(newmtime) {
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "sync: new mtime for %s: %ju\n",
|
ret = remove_olddir(syncdbpath, onlyold);
|
||||||
db->treename, (uintmax_t)newmtime);
|
if(ret) {
|
||||||
setlastupdate(db, newmtime);
|
goto cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Cache needs to be rebuilt */
|
||||||
|
_alpm_db_free_pkgcache(db);
|
||||||
|
|
||||||
|
checkdbdir(db);
|
||||||
|
ret = _alpm_unpack(dbfilepath, syncdbpath, onlynew, 0);
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
FREELIST(newdirlist);
|
||||||
|
FREELIST(olddirlist);
|
||||||
|
alpm_list_free(onlynew);
|
||||||
|
alpm_list_free(onlyold);
|
||||||
|
|
||||||
|
free(dbfilepath);
|
||||||
|
|
||||||
|
if(ret) {
|
||||||
|
RET_ERR(PM_ERR_SYSTEM, -1);
|
||||||
|
}
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -306,13 +351,15 @@ int _alpm_db_populate(pmdb_t *db)
|
|||||||
struct dirent *ent = NULL;
|
struct dirent *ent = NULL;
|
||||||
struct stat sbuf;
|
struct stat sbuf;
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
|
const char *dbpath;
|
||||||
DIR *dbdir;
|
DIR *dbdir;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
|
|
||||||
dbdir = opendir(db->path);
|
dbpath = _alpm_db_path(db);
|
||||||
|
dbdir = opendir(dbpath);
|
||||||
if(dbdir == NULL) {
|
if(dbdir == NULL) {
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
@@ -324,7 +371,7 @@ int _alpm_db_populate(pmdb_t *db)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
/* stat the entry, make sure it's a directory */
|
/* stat the entry, make sure it's a directory */
|
||||||
snprintf(path, PATH_MAX, "%s%s", db->path, name);
|
snprintf(path, PATH_MAX, "%s%s", dbpath, name);
|
||||||
if(stat(path, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
|
if(stat(path, &sbuf) != 0 || !S_ISDIR(sbuf.st_mode)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -342,14 +389,23 @@ int _alpm_db_populate(pmdb_t *db)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* duplicated database entries are not allowed */
|
||||||
|
if(_alpm_pkg_find(db->pkgcache, pkg->name)) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("duplicated database entry '%s'\n"), pkg->name);
|
||||||
|
_alpm_pkg_free(pkg);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
pkg->origin = PKG_FROM_CACHE;
|
||||||
|
pkg->origin_data.db = db;
|
||||||
|
|
||||||
/* explicitly read with only 'BASE' data, accessors will handle the rest */
|
/* explicitly read with only 'BASE' data, accessors will handle the rest */
|
||||||
if(_alpm_db_read(db, pkg, INFRQ_BASE) == -1) {
|
if(_alpm_db_read(db, pkg, INFRQ_BASE) == -1) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("corrupted database entry '%s'\n"), name);
|
_alpm_log(PM_LOG_ERROR, _("corrupted database entry '%s'\n"), name);
|
||||||
_alpm_pkg_free(pkg);
|
_alpm_pkg_free(pkg);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
pkg->origin = PKG_FROM_CACHE;
|
|
||||||
pkg->origin_data.db = db;
|
|
||||||
/* add to the collection */
|
/* add to the collection */
|
||||||
_alpm_log(PM_LOG_FUNCTION, "adding '%s' to package cache for db '%s'\n",
|
_alpm_log(PM_LOG_FUNCTION, "adding '%s' to package cache for db '%s'\n",
|
||||||
pkg->name, db->treename);
|
pkg->name, db->treename);
|
||||||
@@ -367,10 +423,12 @@ static char *get_pkgpath(pmdb_t *db, pmpkg_t *info)
|
|||||||
{
|
{
|
||||||
size_t len;
|
size_t len;
|
||||||
char *pkgpath;
|
char *pkgpath;
|
||||||
|
const char *dbpath;
|
||||||
|
|
||||||
len = strlen(db->path) + strlen(info->name) + strlen(info->version) + 3;
|
dbpath = _alpm_db_path(db);
|
||||||
|
len = strlen(dbpath) + strlen(info->name) + strlen(info->version) + 3;
|
||||||
MALLOC(pkgpath, len, RET_ERR(PM_ERR_MEMORY, NULL));
|
MALLOC(pkgpath, len, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
sprintf(pkgpath, "%s%s-%s/", db->path, info->name, info->version);
|
sprintf(pkgpath, "%s%s-%s/", dbpath, info->name, info->version);
|
||||||
return(pkgpath);
|
return(pkgpath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -379,6 +437,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
FILE *fp = NULL;
|
FILE *fp = NULL;
|
||||||
char path[PATH_MAX];
|
char path[PATH_MAX];
|
||||||
char line[513];
|
char line[513];
|
||||||
|
int sline = sizeof(line)-1;
|
||||||
char *pkgpath = NULL;
|
char *pkgpath = NULL;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
@@ -403,14 +462,14 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
* & result: 00000100
|
* & result: 00000100
|
||||||
* == to inforeq? nope, we need to load more info. */
|
* == to inforeq? nope, we need to load more info. */
|
||||||
if((info->infolevel & inforeq) == inforeq) {
|
if((info->infolevel & inforeq) == inforeq) {
|
||||||
/* already loaded this info, do nothing */
|
/* already loaded all of this info, do nothing */
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
_alpm_log(PM_LOG_FUNCTION, "loading package data for %s : level=0x%x\n",
|
_alpm_log(PM_LOG_FUNCTION, "loading package data for %s : level=0x%x\n",
|
||||||
info->name, inforeq);
|
info->name, inforeq);
|
||||||
|
|
||||||
/* clear out 'line', to be certain - and to make valgrind happy */
|
/* clear out 'line', to be certain - and to make valgrind happy */
|
||||||
memset(line, 0, 513);
|
memset(line, 0, sline+1);
|
||||||
|
|
||||||
pkgpath = get_pkgpath(db, info);
|
pkgpath = get_pkgpath(db, info);
|
||||||
|
|
||||||
@@ -422,7 +481,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* DESC */
|
/* DESC */
|
||||||
if(inforeq & INFRQ_DESC) {
|
if(inforeq & INFRQ_DESC && !(info->infolevel & INFRQ_DESC)) {
|
||||||
snprintf(path, PATH_MAX, "%sdesc", pkgpath);
|
snprintf(path, PATH_MAX, "%sdesc", pkgpath);
|
||||||
if((fp = fopen(path, "r")) == NULL) {
|
if((fp = fopen(path, "r")) == NULL) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno));
|
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno));
|
||||||
@@ -434,7 +493,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
_alpm_strtrim(line);
|
_alpm_strtrim(line);
|
||||||
if(strcmp(line, "%NAME%") == 0) {
|
if(strcmp(line, "%NAME%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
if(strcmp(_alpm_strtrim(line), info->name) != 0) {
|
if(strcmp(_alpm_strtrim(line), info->name) != 0) {
|
||||||
@@ -442,7 +501,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
"mismatch on package %s\n"), db->treename, info->name);
|
"mismatch on package %s\n"), db->treename, info->name);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%VERSION%") == 0) {
|
} else if(strcmp(line, "%VERSION%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
if(strcmp(_alpm_strtrim(line), info->version) != 0) {
|
if(strcmp(_alpm_strtrim(line), info->version) != 0) {
|
||||||
@@ -450,44 +509,44 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
"mismatch on package %s\n"), db->treename, info->name);
|
"mismatch on package %s\n"), db->treename, info->name);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%FILENAME%") == 0) {
|
} else if(strcmp(line, "%FILENAME%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
STRDUP(info->filename, _alpm_strtrim(line), goto error);
|
STRDUP(info->filename, _alpm_strtrim(line), goto error);
|
||||||
} else if(strcmp(line, "%DESC%") == 0) {
|
} else if(strcmp(line, "%DESC%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
STRDUP(info->desc, _alpm_strtrim(line), goto error);
|
STRDUP(info->desc, _alpm_strtrim(line), goto error);
|
||||||
} else if(strcmp(line, "%GROUPS%") == 0) {
|
} else if(strcmp(line, "%GROUPS%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->groups = alpm_list_add(info->groups, linedup);
|
info->groups = alpm_list_add(info->groups, linedup);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%URL%") == 0) {
|
} else if(strcmp(line, "%URL%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
STRDUP(info->url, _alpm_strtrim(line), goto error);
|
STRDUP(info->url, _alpm_strtrim(line), goto error);
|
||||||
} else if(strcmp(line, "%LICENSE%") == 0) {
|
} else if(strcmp(line, "%LICENSE%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->licenses = alpm_list_add(info->licenses, linedup);
|
info->licenses = alpm_list_add(info->licenses, linedup);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%ARCH%") == 0) {
|
} else if(strcmp(line, "%ARCH%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
STRDUP(info->arch, _alpm_strtrim(line), goto error);
|
STRDUP(info->arch, _alpm_strtrim(line), goto error);
|
||||||
} else if(strcmp(line, "%BUILDDATE%") == 0) {
|
} else if(strcmp(line, "%BUILDDATE%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
_alpm_strtrim(line);
|
_alpm_strtrim(line);
|
||||||
|
|
||||||
char first = tolower(line[0]);
|
char first = tolower((unsigned char)line[0]);
|
||||||
if(first > 'a' && first < 'z') {
|
if(first > 'a' && first < 'z') {
|
||||||
struct tm tmp_tm = {0}; /* initialize to null in case of failure */
|
struct tm tmp_tm = {0}; /* initialize to null in case of failure */
|
||||||
setlocale(LC_TIME, "C");
|
setlocale(LC_TIME, "C");
|
||||||
@@ -498,12 +557,12 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
info->builddate = atol(line);
|
info->builddate = atol(line);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%INSTALLDATE%") == 0) {
|
} else if(strcmp(line, "%INSTALLDATE%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
_alpm_strtrim(line);
|
_alpm_strtrim(line);
|
||||||
|
|
||||||
char first = tolower(line[0]);
|
char first = tolower((unsigned char)line[0]);
|
||||||
if(first > 'a' && first < 'z') {
|
if(first > 'a' && first < 'z') {
|
||||||
struct tm tmp_tm = {0}; /* initialize to null in case of failure */
|
struct tm tmp_tm = {0}; /* initialize to null in case of failure */
|
||||||
setlocale(LC_TIME, "C");
|
setlocale(LC_TIME, "C");
|
||||||
@@ -514,12 +573,12 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
info->installdate = atol(line);
|
info->installdate = atol(line);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%PACKAGER%") == 0) {
|
} else if(strcmp(line, "%PACKAGER%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
STRDUP(info->packager, _alpm_strtrim(line), goto error);
|
STRDUP(info->packager, _alpm_strtrim(line), goto error);
|
||||||
} else if(strcmp(line, "%REASON%") == 0) {
|
} else if(strcmp(line, "%REASON%") == 0) {
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
info->reason = (pmpkgreason_t)atol(_alpm_strtrim(line));
|
info->reason = (pmpkgreason_t)atol(_alpm_strtrim(line));
|
||||||
@@ -529,7 +588,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
* is currently only used in sync databases, and SIZE is
|
* is currently only used in sync databases, and SIZE is
|
||||||
* only used in local databases.
|
* only used in local databases.
|
||||||
*/
|
*/
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
info->size = atol(_alpm_strtrim(line));
|
info->size = atol(_alpm_strtrim(line));
|
||||||
@@ -540,19 +599,19 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
} else if(strcmp(line, "%ISIZE%") == 0) {
|
} else if(strcmp(line, "%ISIZE%") == 0) {
|
||||||
/* ISIZE (installed size) tag only appears in sync repositories,
|
/* ISIZE (installed size) tag only appears in sync repositories,
|
||||||
* not the local one. */
|
* not the local one. */
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
info->isize = atol(_alpm_strtrim(line));
|
info->isize = atol(_alpm_strtrim(line));
|
||||||
} else if(strcmp(line, "%MD5SUM%") == 0) {
|
} else if(strcmp(line, "%MD5SUM%") == 0) {
|
||||||
/* MD5SUM tag only appears in sync repositories,
|
/* MD5SUM tag only appears in sync repositories,
|
||||||
* not the local one. */
|
* not the local one. */
|
||||||
if(fgets(line, 512, fp) == NULL) {
|
if(fgets(line, sline, fp) == NULL) {
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
STRDUP(info->md5sum, _alpm_strtrim(line), goto error);
|
STRDUP(info->md5sum, _alpm_strtrim(line), goto error);
|
||||||
} else if(strcmp(line, "%REPLACES%") == 0) {
|
} else if(strcmp(line, "%REPLACES%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->replaces = alpm_list_add(info->replaces, linedup);
|
info->replaces = alpm_list_add(info->replaces, linedup);
|
||||||
@@ -566,7 +625,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* FILES */
|
/* FILES */
|
||||||
if(inforeq & INFRQ_FILES) {
|
if(inforeq & INFRQ_FILES && !(info->infolevel & INFRQ_FILES)) {
|
||||||
snprintf(path, PATH_MAX, "%sfiles", pkgpath);
|
snprintf(path, PATH_MAX, "%sfiles", pkgpath);
|
||||||
if((fp = fopen(path, "r")) == NULL) {
|
if((fp = fopen(path, "r")) == NULL) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno));
|
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno));
|
||||||
@@ -575,13 +634,13 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
while(fgets(line, 256, fp)) {
|
while(fgets(line, 256, fp)) {
|
||||||
_alpm_strtrim(line);
|
_alpm_strtrim(line);
|
||||||
if(strcmp(line, "%FILES%") == 0) {
|
if(strcmp(line, "%FILES%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->files = alpm_list_add(info->files, linedup);
|
info->files = alpm_list_add(info->files, linedup);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%BACKUP%") == 0) {
|
} else if(strcmp(line, "%BACKUP%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->backup = alpm_list_add(info->backup, linedup);
|
info->backup = alpm_list_add(info->backup, linedup);
|
||||||
@@ -593,7 +652,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* DEPENDS */
|
/* DEPENDS */
|
||||||
if(inforeq & INFRQ_DEPENDS) {
|
if(inforeq & INFRQ_DEPENDS && !(info->infolevel & INFRQ_DEPENDS)) {
|
||||||
snprintf(path, PATH_MAX, "%sdepends", pkgpath);
|
snprintf(path, PATH_MAX, "%sdepends", pkgpath);
|
||||||
if((fp = fopen(path, "r")) == NULL) {
|
if((fp = fopen(path, "r")) == NULL) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno));
|
_alpm_log(PM_LOG_ERROR, _("could not open file %s: %s\n"), path, strerror(errno));
|
||||||
@@ -603,24 +662,24 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
fgets(line, 255, fp);
|
fgets(line, 255, fp);
|
||||||
_alpm_strtrim(line);
|
_alpm_strtrim(line);
|
||||||
if(strcmp(line, "%DEPENDS%") == 0) {
|
if(strcmp(line, "%DEPENDS%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
pmdepend_t *dep = _alpm_splitdep(_alpm_strtrim(line));
|
pmdepend_t *dep = _alpm_splitdep(_alpm_strtrim(line));
|
||||||
info->depends = alpm_list_add(info->depends, dep);
|
info->depends = alpm_list_add(info->depends, dep);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%OPTDEPENDS%") == 0) {
|
} else if(strcmp(line, "%OPTDEPENDS%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->optdepends = alpm_list_add(info->optdepends, linedup);
|
info->optdepends = alpm_list_add(info->optdepends, linedup);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%CONFLICTS%") == 0) {
|
} else if(strcmp(line, "%CONFLICTS%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->conflicts = alpm_list_add(info->conflicts, linedup);
|
info->conflicts = alpm_list_add(info->conflicts, linedup);
|
||||||
}
|
}
|
||||||
} else if(strcmp(line, "%PROVIDES%") == 0) {
|
} else if(strcmp(line, "%PROVIDES%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
char *linedup;
|
char *linedup;
|
||||||
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
STRDUP(linedup, _alpm_strtrim(line), goto error);
|
||||||
info->provides = alpm_list_add(info->provides, linedup);
|
info->provides = alpm_list_add(info->provides, linedup);
|
||||||
@@ -632,14 +691,14 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* DELTAS */
|
/* DELTAS */
|
||||||
if(inforeq & INFRQ_DELTAS) {
|
if(inforeq & INFRQ_DELTAS && !(info->infolevel & INFRQ_DELTAS)) {
|
||||||
snprintf(path, PATH_MAX, "%sdeltas", pkgpath);
|
snprintf(path, PATH_MAX, "%sdeltas", pkgpath);
|
||||||
if((fp = fopen(path, "r"))) {
|
if((fp = fopen(path, "r"))) {
|
||||||
while(!feof(fp)) {
|
while(!feof(fp)) {
|
||||||
fgets(line, 255, fp);
|
fgets(line, 255, fp);
|
||||||
_alpm_strtrim(line);
|
_alpm_strtrim(line);
|
||||||
if(strcmp(line, "%DELTAS%") == 0) {
|
if(strcmp(line, "%DELTAS%") == 0) {
|
||||||
while(fgets(line, 512, fp) && strlen(_alpm_strtrim(line))) {
|
while(fgets(line, sline, fp) && strlen(_alpm_strtrim(line))) {
|
||||||
pmdelta_t *delta = _alpm_delta_parse(line);
|
pmdelta_t *delta = _alpm_delta_parse(line);
|
||||||
if(delta) {
|
if(delta) {
|
||||||
info->deltas = alpm_list_add(info->deltas, delta);
|
info->deltas = alpm_list_add(info->deltas, delta);
|
||||||
@@ -653,7 +712,7 @@ int _alpm_db_read(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* INSTALL */
|
/* INSTALL */
|
||||||
if(inforeq & INFRQ_SCRIPTLET) {
|
if(inforeq & INFRQ_SCRIPTLET && !(info->infolevel & INFRQ_SCRIPTLET)) {
|
||||||
snprintf(path, PATH_MAX, "%sinstall", pkgpath);
|
snprintf(path, PATH_MAX, "%sinstall", pkgpath);
|
||||||
if(access(path, F_OK) == 0) {
|
if(access(path, F_OK) == 0) {
|
||||||
info->scriptlet = 1;
|
info->scriptlet = 1;
|
||||||
@@ -753,9 +812,6 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
fprintf(fp, "\n");
|
fprintf(fp, "\n");
|
||||||
}
|
}
|
||||||
if(info->force) {
|
|
||||||
fprintf(fp, "%%FORCE%%\n\n");
|
|
||||||
}
|
|
||||||
if(local) {
|
if(local) {
|
||||||
if(info->url) {
|
if(info->url) {
|
||||||
fprintf(fp, "%%URL%%\n"
|
fprintf(fp, "%%URL%%\n"
|
||||||
@@ -774,11 +830,11 @@ int _alpm_db_write(pmdb_t *db, pmpkg_t *info, pmdbinfrq_t inforeq)
|
|||||||
}
|
}
|
||||||
if(info->builddate) {
|
if(info->builddate) {
|
||||||
fprintf(fp, "%%BUILDDATE%%\n"
|
fprintf(fp, "%%BUILDDATE%%\n"
|
||||||
"%ju\n\n", (uintmax_t)info->builddate);
|
"%ld\n\n", info->builddate);
|
||||||
}
|
}
|
||||||
if(info->installdate) {
|
if(info->installdate) {
|
||||||
fprintf(fp, "%%INSTALLDATE%%\n"
|
fprintf(fp, "%%INSTALLDATE%%\n"
|
||||||
"%ju\n\n", (uintmax_t)info->installdate);
|
"%ld\n\n", info->installdate);
|
||||||
}
|
}
|
||||||
if(info->packager) {
|
if(info->packager) {
|
||||||
fprintf(fp, "%%PACKAGER%%\n"
|
fprintf(fp, "%%PACKAGER%%\n"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* be_package.c
|
* be_package.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -75,6 +75,8 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
|
|||||||
STRDUP(newpkg->version, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
STRDUP(newpkg->version, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
} else if(!strcmp(key, "pkgdesc")) {
|
} else if(!strcmp(key, "pkgdesc")) {
|
||||||
STRDUP(newpkg->desc, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
STRDUP(newpkg->desc, ptr, RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
|
} else if(!strcmp(key, "force")) {
|
||||||
|
newpkg->force = 1;
|
||||||
} else if(!strcmp(key, "group")) {
|
} else if(!strcmp(key, "group")) {
|
||||||
newpkg->groups = alpm_list_add(newpkg->groups, strdup(ptr));
|
newpkg->groups = alpm_list_add(newpkg->groups, strdup(ptr));
|
||||||
} else if(!strcmp(key, "url")) {
|
} else if(!strcmp(key, "url")) {
|
||||||
@@ -82,7 +84,7 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
|
|||||||
} else if(!strcmp(key, "license")) {
|
} else if(!strcmp(key, "license")) {
|
||||||
newpkg->licenses = alpm_list_add(newpkg->licenses, strdup(ptr));
|
newpkg->licenses = alpm_list_add(newpkg->licenses, strdup(ptr));
|
||||||
} else if(!strcmp(key, "builddate")) {
|
} else if(!strcmp(key, "builddate")) {
|
||||||
char first = tolower(ptr[0]);
|
char first = tolower((unsigned char)ptr[0]);
|
||||||
if(first > 'a' && first < 'z') {
|
if(first > 'a' && first < 'z') {
|
||||||
struct tm tmp_tm = {0}; /* initialize to null in case of failure */
|
struct tm tmp_tm = {0}; /* initialize to null in case of failure */
|
||||||
setlocale(LC_TIME, "C");
|
setlocale(LC_TIME, "C");
|
||||||
@@ -112,6 +114,8 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
|
|||||||
newpkg->provides = alpm_list_add(newpkg->provides, strdup(ptr));
|
newpkg->provides = alpm_list_add(newpkg->provides, strdup(ptr));
|
||||||
} else if(!strcmp(key, "backup")) {
|
} else if(!strcmp(key, "backup")) {
|
||||||
newpkg->backup = alpm_list_add(newpkg->backup, strdup(ptr));
|
newpkg->backup = alpm_list_add(newpkg->backup, strdup(ptr));
|
||||||
|
} else if(!strcmp(key, "makepkgopt")) {
|
||||||
|
/* not used atm */
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_DEBUG, "%s: syntax error in description file line %d\n",
|
_alpm_log(PM_LOG_DEBUG, "%s: syntax error in description file line %d\n",
|
||||||
newpkg->name ? newpkg->name : "error", linenum);
|
newpkg->name ? newpkg->name : "error", linenum);
|
||||||
@@ -130,7 +134,7 @@ static int parse_descfile(struct archive *a, pmpkg_t *newpkg)
|
|||||||
* through the full archive
|
* through the full archive
|
||||||
* @return An information filled pmpkg_t struct
|
* @return An information filled pmpkg_t struct
|
||||||
*/
|
*/
|
||||||
static pmpkg_t *pkg_load(const char *pkgfile, unsigned short full)
|
static pmpkg_t *pkg_load(const char *pkgfile, int full)
|
||||||
{
|
{
|
||||||
int ret = ARCHIVE_OK;
|
int ret = ARCHIVE_OK;
|
||||||
int config = 0;
|
int config = 0;
|
||||||
@@ -267,8 +271,7 @@ error:
|
|||||||
* @param pkg address of the package pointer
|
* @param pkg address of the package pointer
|
||||||
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
*/
|
*/
|
||||||
int SYMEXPORT alpm_pkg_load(const char *filename, unsigned short full,
|
int SYMEXPORT alpm_pkg_load(const char *filename, int full, pmpkg_t **pkg)
|
||||||
pmpkg_t **pkg)
|
|
||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* cache.c
|
* cache.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* cache.h
|
* cache.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* conflict.c
|
* conflict.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org>
|
* Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org>
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
#include "cache.h"
|
#include "cache.h"
|
||||||
#include "deps.h"
|
#include "deps.h"
|
||||||
|
|
||||||
pmconflict_t *_alpm_conflict_new(const char *package1, const char *package2)
|
pmconflict_t *_alpm_conflict_new(const char *package1, const char *package2, const char *reason)
|
||||||
{
|
{
|
||||||
pmconflict_t *conflict;
|
pmconflict_t *conflict;
|
||||||
|
|
||||||
@@ -51,6 +51,7 @@ pmconflict_t *_alpm_conflict_new(const char *package1, const char *package2)
|
|||||||
|
|
||||||
STRDUP(conflict->package1, package1, RET_ERR(PM_ERR_MEMORY, NULL));
|
STRDUP(conflict->package1, package1, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
STRDUP(conflict->package2, package2, RET_ERR(PM_ERR_MEMORY, NULL));
|
STRDUP(conflict->package2, package2, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
STRDUP(conflict->reason, reason, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
|
||||||
return(conflict);
|
return(conflict);
|
||||||
}
|
}
|
||||||
@@ -59,6 +60,7 @@ void _alpm_conflict_free(pmconflict_t *conflict)
|
|||||||
{
|
{
|
||||||
FREE(conflict->package2);
|
FREE(conflict->package2);
|
||||||
FREE(conflict->package1);
|
FREE(conflict->package1);
|
||||||
|
FREE(conflict->reason);
|
||||||
FREE(conflict);
|
FREE(conflict);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,6 +71,7 @@ pmconflict_t *_alpm_conflict_dup(const pmconflict_t *conflict)
|
|||||||
|
|
||||||
STRDUP(newconflict->package1, conflict->package1, RET_ERR(PM_ERR_MEMORY, NULL));
|
STRDUP(newconflict->package1, conflict->package1, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
STRDUP(newconflict->package2, conflict->package2, RET_ERR(PM_ERR_MEMORY, NULL));
|
STRDUP(newconflict->package2, conflict->package2, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
STRDUP(newconflict->reason, conflict->reason, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
|
||||||
return(newconflict);
|
return(newconflict);
|
||||||
}
|
}
|
||||||
@@ -122,9 +125,9 @@ static int does_conflict(pmpkg_t *pkg1, const char *conflict, pmpkg_t *pkg2)
|
|||||||
* @param pkg2 package causing conflict
|
* @param pkg2 package causing conflict
|
||||||
*/
|
*/
|
||||||
static void add_conflict(alpm_list_t **baddeps, const char *pkg1,
|
static void add_conflict(alpm_list_t **baddeps, const char *pkg1,
|
||||||
const char *pkg2)
|
const char *pkg2, const char *reason)
|
||||||
{
|
{
|
||||||
pmconflict_t *conflict = _alpm_conflict_new(pkg1, pkg2);
|
pmconflict_t *conflict = _alpm_conflict_new(pkg1, pkg2, reason);
|
||||||
if(conflict && !_alpm_conflict_isin(conflict, *baddeps)) {
|
if(conflict && !_alpm_conflict_isin(conflict, *baddeps)) {
|
||||||
*baddeps = alpm_list_add(*baddeps, conflict);
|
*baddeps = alpm_list_add(*baddeps, conflict);
|
||||||
} else {
|
} else {
|
||||||
@@ -168,9 +171,9 @@ static void check_conflict(alpm_list_t *list1, alpm_list_t *list2,
|
|||||||
|
|
||||||
if(does_conflict(pkg1, conflict, pkg2)) {
|
if(does_conflict(pkg1, conflict, pkg2)) {
|
||||||
if(order >= 0) {
|
if(order >= 0) {
|
||||||
add_conflict(baddeps, pkg1name, pkg2name);
|
add_conflict(baddeps, pkg1name, pkg2name, conflict);
|
||||||
} else {
|
} else {
|
||||||
add_conflict(baddeps, pkg2name, pkg1name);
|
add_conflict(baddeps, pkg2name, pkg1name, conflict);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -405,7 +408,7 @@ alpm_list_t *_alpm_db_find_fileconflicts(pmdb_t *db, pmtrans_t *trans,
|
|||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
if(db == NULL || upgrade == NULL) {
|
if(db == NULL || upgrade == NULL || trans == NULL) {
|
||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -513,7 +516,7 @@ alpm_list_t *_alpm_db_find_fileconflicts(pmdb_t *db, pmtrans_t *trans,
|
|||||||
/* skip removal of file, but not add. this will prevent a second
|
/* skip removal of file, but not add. this will prevent a second
|
||||||
* package from removing the file when it was already installed
|
* package from removing the file when it was already installed
|
||||||
* by its new owner (whether the file is in backup array or not */
|
* by its new owner (whether the file is in backup array or not */
|
||||||
trans->skip_remove = alpm_list_add(trans->skip_remove, strdup(path));
|
trans->skip_remove = alpm_list_add(trans->skip_remove, strdup(filestr));
|
||||||
_alpm_log(PM_LOG_DEBUG, "file changed packages, adding to remove skiplist: %s\n", filestr);
|
_alpm_log(PM_LOG_DEBUG, "file changed packages, adding to remove skiplist: %s\n", filestr);
|
||||||
resolved_conflict = 1;
|
resolved_conflict = 1;
|
||||||
}
|
}
|
||||||
@@ -578,6 +581,17 @@ const char SYMEXPORT *alpm_conflict_get_package2(pmconflict_t *conflict)
|
|||||||
return conflict->package2;
|
return conflict->package2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char SYMEXPORT *alpm_conflict_get_reason(pmconflict_t *conflict)
|
||||||
|
{
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(handle != NULL, return(NULL));
|
||||||
|
ASSERT(conflict != NULL, return(NULL));
|
||||||
|
|
||||||
|
return conflict->reason;
|
||||||
|
}
|
||||||
|
|
||||||
const char SYMEXPORT *alpm_fileconflict_get_target(pmfileconflict_t *conflict)
|
const char SYMEXPORT *alpm_fileconflict_get_target(pmfileconflict_t *conflict)
|
||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* conflict.h
|
* conflict.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -27,6 +27,7 @@
|
|||||||
struct __pmconflict_t {
|
struct __pmconflict_t {
|
||||||
char *package1;
|
char *package1;
|
||||||
char *package2;
|
char *package2;
|
||||||
|
char *reason;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct __pmfileconflict_t {
|
struct __pmfileconflict_t {
|
||||||
@@ -36,7 +37,7 @@ struct __pmfileconflict_t {
|
|||||||
char *ctarget;
|
char *ctarget;
|
||||||
};
|
};
|
||||||
|
|
||||||
pmconflict_t *_alpm_conflict_new(const char *package1, const char *package2);
|
pmconflict_t *_alpm_conflict_new(const char *package1, const char *package2, const char *reason);
|
||||||
pmconflict_t *_alpm_conflict_dup(const pmconflict_t *conflict);
|
pmconflict_t *_alpm_conflict_dup(const pmconflict_t *conflict);
|
||||||
void _alpm_conflict_free(pmconflict_t *conflict);
|
void _alpm_conflict_free(pmconflict_t *conflict);
|
||||||
int _alpm_conflict_isin(pmconflict_t *needle, alpm_list_t *haystack);
|
int _alpm_conflict_isin(pmconflict_t *needle, alpm_list_t *haystack);
|
||||||
|
|||||||
101
lib/libalpm/db.c
101
lib/libalpm/db.c
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* db.c
|
* db.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -321,20 +321,55 @@ alpm_list_t SYMEXPORT *alpm_db_search(pmdb_t *db, const alpm_list_t* needles)
|
|||||||
return(_alpm_db_search(db, needles));
|
return(_alpm_db_search(db, needles));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Set install reason for a package in db
|
||||||
|
* @param db pointer to the package database
|
||||||
|
* @param name the name of the package
|
||||||
|
* @param reason the new install reason
|
||||||
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
|
*/
|
||||||
|
int SYMEXPORT alpm_db_set_pkgreason(pmdb_t *db, const char *name, pmpkgreason_t reason)
|
||||||
|
{
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
ASSERT(db != NULL && name != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
|
||||||
|
pmpkg_t *pkg = _alpm_db_get_pkgfromcache(db, name);
|
||||||
|
if(pkg == NULL) {
|
||||||
|
RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "setting install reason %u for %s/%s\n", reason, db->treename, name);
|
||||||
|
/* read DESC */
|
||||||
|
if(_alpm_db_read(db, pkg, INFRQ_DESC)) {
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
if(pkg->reason == reason) {
|
||||||
|
/* we are done */
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
/* set reason (in pkgcache) */
|
||||||
|
pkg->reason = reason;
|
||||||
|
/* write DESC */
|
||||||
|
if(_alpm_db_write(db, pkg, INFRQ_DESC)) {
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
pmdb_t *_alpm_db_new(const char *dbpath, const char *treename)
|
static pmdb_t *_alpm_db_new(const char *treename, int is_local)
|
||||||
{
|
{
|
||||||
pmdb_t *db;
|
pmdb_t *db;
|
||||||
const size_t pathsize = strlen(dbpath) + strlen(treename) + 2;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
CALLOC(db, 1, sizeof(pmdb_t), RET_ERR(PM_ERR_MEMORY, NULL));
|
CALLOC(db, 1, sizeof(pmdb_t), RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
CALLOC(db->path, 1, pathsize, RET_ERR(PM_ERR_MEMORY, NULL));
|
|
||||||
|
|
||||||
sprintf(db->path, "%s%s/", dbpath, treename);
|
|
||||||
STRDUP(db->treename, treename, RET_ERR(PM_ERR_MEMORY, NULL));
|
STRDUP(db->treename, treename, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
db->is_local = is_local;
|
||||||
|
|
||||||
return(db);
|
return(db);
|
||||||
}
|
}
|
||||||
@@ -347,13 +382,44 @@ void _alpm_db_free(pmdb_t *db)
|
|||||||
_alpm_db_free_pkgcache(db);
|
_alpm_db_free_pkgcache(db);
|
||||||
/* cleanup server list */
|
/* cleanup server list */
|
||||||
FREELIST(db->servers);
|
FREELIST(db->servers);
|
||||||
FREE(db->path);
|
FREE(db->_path);
|
||||||
FREE(db->treename);
|
FREE(db->treename);
|
||||||
FREE(db);
|
FREE(db);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const char *_alpm_db_path(pmdb_t *db)
|
||||||
|
{
|
||||||
|
if(!db) {
|
||||||
|
return(NULL);
|
||||||
|
}
|
||||||
|
if(!db->_path) {
|
||||||
|
const char *dbpath;
|
||||||
|
size_t pathsize;
|
||||||
|
|
||||||
|
dbpath = alpm_option_get_dbpath();
|
||||||
|
if(!dbpath) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("database path is undefined\n"));
|
||||||
|
RET_ERR(PM_ERR_DB_OPEN, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(db->is_local) {
|
||||||
|
pathsize = strlen(dbpath) + strlen(db->treename) + 2;
|
||||||
|
CALLOC(db->_path, 1, pathsize, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
sprintf(db->_path, "%s%s/", dbpath, db->treename);
|
||||||
|
} else {
|
||||||
|
pathsize = strlen(dbpath) + 5 + strlen(db->treename) + 2;
|
||||||
|
CALLOC(db->_path, 1, pathsize, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
/* all sync DBs now reside in the sync/ subdir of the dbpath */
|
||||||
|
sprintf(db->_path, "%ssync/%s/", dbpath, db->treename);
|
||||||
|
}
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "database path for tree %s set to %s\n",
|
||||||
|
db->treename, db->_path);
|
||||||
|
}
|
||||||
|
return(db->_path);
|
||||||
|
}
|
||||||
|
|
||||||
int _alpm_db_cmp(const void *d1, const void *d2)
|
int _alpm_db_cmp(const void *d1, const void *d2)
|
||||||
{
|
{
|
||||||
pmdb_t *db1 = (pmdb_t *)d1;
|
pmdb_t *db1 = (pmdb_t *)d1;
|
||||||
@@ -440,7 +506,6 @@ alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles)
|
|||||||
pmdb_t *_alpm_db_register_local(void)
|
pmdb_t *_alpm_db_register_local(void)
|
||||||
{
|
{
|
||||||
pmdb_t *db;
|
pmdb_t *db;
|
||||||
const char *dbpath;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
@@ -451,13 +516,7 @@ pmdb_t *_alpm_db_register_local(void)
|
|||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "registering local database\n");
|
_alpm_log(PM_LOG_DEBUG, "registering local database\n");
|
||||||
|
|
||||||
dbpath = alpm_option_get_dbpath();
|
db = _alpm_db_new("local", 1);
|
||||||
if(!dbpath) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("database path is undefined\n"));
|
|
||||||
RET_ERR(PM_ERR_DB_OPEN, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
db = _alpm_db_new(dbpath, "local");
|
|
||||||
if(db == NULL) {
|
if(db == NULL) {
|
||||||
RET_ERR(PM_ERR_DB_CREATE, NULL);
|
RET_ERR(PM_ERR_DB_CREATE, NULL);
|
||||||
}
|
}
|
||||||
@@ -469,8 +528,6 @@ pmdb_t *_alpm_db_register_local(void)
|
|||||||
pmdb_t *_alpm_db_register_sync(const char *treename)
|
pmdb_t *_alpm_db_register_sync(const char *treename)
|
||||||
{
|
{
|
||||||
pmdb_t *db;
|
pmdb_t *db;
|
||||||
const char *dbpath;
|
|
||||||
char path[PATH_MAX];
|
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
@@ -485,15 +542,7 @@ pmdb_t *_alpm_db_register_sync(const char *treename)
|
|||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "registering sync database '%s'\n", treename);
|
_alpm_log(PM_LOG_DEBUG, "registering sync database '%s'\n", treename);
|
||||||
|
|
||||||
dbpath = alpm_option_get_dbpath();
|
db = _alpm_db_new(treename, 0);
|
||||||
if(!dbpath) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("database path is undefined\n"));
|
|
||||||
RET_ERR(PM_ERR_DB_OPEN, NULL);
|
|
||||||
}
|
|
||||||
/* all sync DBs now reside in the sync/ subdir of the dbpath */
|
|
||||||
snprintf(path, PATH_MAX, "%ssync/", dbpath);
|
|
||||||
|
|
||||||
db = _alpm_db_new(path, treename);
|
|
||||||
if(db == NULL) {
|
if(db == NULL) {
|
||||||
RET_ERR(PM_ERR_DB_CREATE, NULL);
|
RET_ERR(PM_ERR_DB_CREATE, NULL);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* db.h
|
* db.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
* Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
||||||
@@ -28,30 +28,33 @@
|
|||||||
|
|
||||||
/* Database entries */
|
/* Database entries */
|
||||||
typedef enum _pmdbinfrq_t {
|
typedef enum _pmdbinfrq_t {
|
||||||
INFRQ_BASE = 0x01,
|
INFRQ_BASE = 1,
|
||||||
INFRQ_DESC = 0x02,
|
INFRQ_DESC = (1 << 1),
|
||||||
INFRQ_DEPENDS = 0x04,
|
INFRQ_DEPENDS = (1 << 2),
|
||||||
INFRQ_FILES = 0x08,
|
INFRQ_FILES = (1 << 3),
|
||||||
INFRQ_SCRIPTLET = 0x10,
|
INFRQ_SCRIPTLET = (1 << 4),
|
||||||
INFRQ_DELTAS = 0x20,
|
INFRQ_DELTAS = (1 << 5),
|
||||||
/* ALL should be sum of all above */
|
INFRQ_DSIZE = (1 << 6),
|
||||||
|
/* ALL should be info stored in the package or database */
|
||||||
INFRQ_ALL = 0x3F
|
INFRQ_ALL = 0x3F
|
||||||
} pmdbinfrq_t;
|
} pmdbinfrq_t;
|
||||||
|
|
||||||
/* Database */
|
/* Database */
|
||||||
struct __pmdb_t {
|
struct __pmdb_t {
|
||||||
char *path;
|
|
||||||
char *treename;
|
char *treename;
|
||||||
unsigned short pkgcache_loaded;
|
/* do not access directly, use _alpm_db_path(db) for lazy access */
|
||||||
|
char *_path;
|
||||||
|
int pkgcache_loaded;
|
||||||
|
int grpcache_loaded;
|
||||||
|
int is_local;
|
||||||
alpm_list_t *pkgcache;
|
alpm_list_t *pkgcache;
|
||||||
unsigned short grpcache_loaded;
|
|
||||||
alpm_list_t *grpcache;
|
alpm_list_t *grpcache;
|
||||||
alpm_list_t *servers;
|
alpm_list_t *servers;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* db.c, database general calls */
|
/* db.c, database general calls */
|
||||||
pmdb_t *_alpm_db_new(const char *dbpath, const char *treename);
|
|
||||||
void _alpm_db_free(pmdb_t *db);
|
void _alpm_db_free(pmdb_t *db);
|
||||||
|
const char *_alpm_db_path(pmdb_t *db);
|
||||||
int _alpm_db_cmp(const void *d1, const void *d2);
|
int _alpm_db_cmp(const void *d1, const void *d2);
|
||||||
alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles);
|
alpm_list_t *_alpm_db_search(pmdb_t *db, const alpm_list_t *needles);
|
||||||
pmdb_t *_alpm_db_register_local(void);
|
pmdb_t *_alpm_db_register_local(void);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* delta.c
|
* delta.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2007-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2007-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -71,34 +71,16 @@ off_t SYMEXPORT alpm_delta_get_size(pmdelta_t *delta)
|
|||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
static alpm_list_t *delta_graph_init(alpm_list_t *deltas)
|
static alpm_list_t *graph_init(alpm_list_t *deltas, int reverse)
|
||||||
{
|
{
|
||||||
alpm_list_t *i, *j;
|
alpm_list_t *i, *j;
|
||||||
alpm_list_t *vertices = NULL;
|
alpm_list_t *vertices = NULL;
|
||||||
/* create the vertices */
|
/* create the vertices */
|
||||||
for(i = deltas; i; i = i->next) {
|
for(i = deltas; i; i = i->next) {
|
||||||
char *fpath, *md5sum;
|
|
||||||
pmgraph_t *v = _alpm_graph_new();
|
pmgraph_t *v = _alpm_graph_new();
|
||||||
pmdelta_t *vdelta = i->data;
|
pmdelta_t *vdelta = i->data;
|
||||||
vdelta->download_size = vdelta->delta_size;
|
vdelta->download_size = vdelta->delta_size;
|
||||||
v->weight = LONG_MAX;
|
v->weight = LONG_MAX;
|
||||||
|
|
||||||
/* determine whether the delta file already exists */
|
|
||||||
fpath = _alpm_filecache_find(vdelta->delta);
|
|
||||||
md5sum = alpm_compute_md5sum(fpath);
|
|
||||||
if(fpath && md5sum && strcmp(md5sum, vdelta->delta_md5) == 0) {
|
|
||||||
vdelta->download_size = 0;
|
|
||||||
}
|
|
||||||
FREE(fpath);
|
|
||||||
FREE(md5sum);
|
|
||||||
|
|
||||||
/* determine whether a base 'from' file exists */
|
|
||||||
fpath = _alpm_filecache_find(vdelta->from);
|
|
||||||
if(fpath) {
|
|
||||||
v->weight = vdelta->download_size;
|
|
||||||
}
|
|
||||||
FREE(fpath);
|
|
||||||
|
|
||||||
v->data = vdelta;
|
v->data = vdelta;
|
||||||
vertices = alpm_list_add(vertices, v);
|
vertices = alpm_list_add(vertices, v);
|
||||||
}
|
}
|
||||||
@@ -119,7 +101,8 @@ static alpm_list_t *delta_graph_init(alpm_list_t *deltas)
|
|||||||
* 3_to_4
|
* 3_to_4
|
||||||
* If J 'from' is equal to I 'to', then J is a child of I.
|
* If J 'from' is equal to I 'to', then J is a child of I.
|
||||||
* */
|
* */
|
||||||
if(strcmp(d_j->from, d_i->to) == 0) {
|
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->children = alpm_list_add(v_i->children, v_j);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -128,8 +111,36 @@ static alpm_list_t *delta_graph_init(alpm_list_t *deltas)
|
|||||||
return(vertices);
|
return(vertices);
|
||||||
}
|
}
|
||||||
|
|
||||||
static off_t delta_vert(alpm_list_t *vertices,
|
static void graph_init_size(alpm_list_t *vertices)
|
||||||
const char *to, alpm_list_t **path) {
|
{
|
||||||
|
alpm_list_t *i;
|
||||||
|
|
||||||
|
for(i = vertices; i; i = i->next) {
|
||||||
|
char *fpath, *md5sum;
|
||||||
|
pmgraph_t *v = i->data;
|
||||||
|
pmdelta_t *vdelta = v->data;
|
||||||
|
|
||||||
|
/* determine whether the delta file already exists */
|
||||||
|
fpath = _alpm_filecache_find(vdelta->delta);
|
||||||
|
md5sum = alpm_compute_md5sum(fpath);
|
||||||
|
if(fpath && md5sum && strcmp(md5sum, vdelta->delta_md5) == 0) {
|
||||||
|
vdelta->download_size = 0;
|
||||||
|
}
|
||||||
|
FREE(fpath);
|
||||||
|
FREE(md5sum);
|
||||||
|
|
||||||
|
/* determine whether a base 'from' file exists */
|
||||||
|
fpath = _alpm_filecache_find(vdelta->from);
|
||||||
|
if(fpath) {
|
||||||
|
v->weight = vdelta->download_size;
|
||||||
|
}
|
||||||
|
FREE(fpath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void dijkstra(alpm_list_t *vertices)
|
||||||
|
{
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
pmgraph_t *v;
|
pmgraph_t *v;
|
||||||
while(1) {
|
while(1) {
|
||||||
@@ -165,9 +176,14 @@ static off_t delta_vert(alpm_list_t *vertices,
|
|||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
v = NULL;
|
static off_t shortest_path(alpm_list_t *vertices, const char *to, alpm_list_t **path)
|
||||||
|
{
|
||||||
|
alpm_list_t *i;
|
||||||
|
pmgraph_t *v = NULL;
|
||||||
off_t bestsize = 0;
|
off_t bestsize = 0;
|
||||||
|
alpm_list_t *rpath = NULL;
|
||||||
|
|
||||||
for(i = vertices; i; i = i->next) {
|
for(i = vertices; i; i = i->next) {
|
||||||
pmgraph_t *v_i = i->data;
|
pmgraph_t *v_i = i->data;
|
||||||
@@ -181,7 +197,6 @@ static off_t delta_vert(alpm_list_t *vertices,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
alpm_list_t *rpath = NULL;
|
|
||||||
while(v != NULL) {
|
while(v != NULL) {
|
||||||
pmdelta_t *vdelta = v->data;
|
pmdelta_t *vdelta = v->data;
|
||||||
rpath = alpm_list_add(rpath, vdelta);
|
rpath = alpm_list_add(rpath, vdelta);
|
||||||
@@ -219,9 +234,10 @@ off_t _alpm_shortest_delta_path(alpm_list_t *deltas,
|
|||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "started delta shortest-path search for '%s'\n", to);
|
_alpm_log(PM_LOG_DEBUG, "started delta shortest-path search for '%s'\n", to);
|
||||||
|
|
||||||
vertices = delta_graph_init(deltas);
|
vertices = graph_init(deltas, 0);
|
||||||
|
graph_init_size(vertices);
|
||||||
bestsize = delta_vert(vertices, to, &bestpath);
|
dijkstra(vertices);
|
||||||
|
bestsize = shortest_path(vertices, to, &bestpath);
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "delta shortest-path search complete : '%jd'\n", (intmax_t)bestsize);
|
_alpm_log(PM_LOG_DEBUG, "delta shortest-path search complete : '%jd'\n", (intmax_t)bestsize);
|
||||||
|
|
||||||
@@ -232,6 +248,45 @@ off_t _alpm_shortest_delta_path(alpm_list_t *deltas,
|
|||||||
return(bestsize);
|
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) {
|
||||||
|
pmgraph_t *v = i->data;
|
||||||
|
pmdelta_t *vdelta = v->data;
|
||||||
|
if(strcmp(vdelta->to, to) == 0)
|
||||||
|
{
|
||||||
|
v->weight = vdelta->download_size;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
dijkstra(vertices);
|
||||||
|
for(i = vertices; i; i = i->next) {
|
||||||
|
pmgraph_t *v = i->data;
|
||||||
|
pmdelta_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);
|
||||||
|
}
|
||||||
|
|
||||||
|
alpm_list_t SYMEXPORT *alpm_pkg_unused_deltas(pmpkg_t *pkg)
|
||||||
|
{
|
||||||
|
off_t pkgsize = alpm_pkg_get_size(pkg);
|
||||||
|
alpm_list_t *unused = find_unused(
|
||||||
|
alpm_pkg_get_deltas(pkg),
|
||||||
|
alpm_pkg_get_filename(pkg),
|
||||||
|
pkgsize * MAX_DELTA_RATIO);
|
||||||
|
return(unused);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/** Parses the string representation of a pmdelta_t object.
|
/** Parses the string representation of a pmdelta_t object.
|
||||||
* This function assumes that the string is in the correct format.
|
* This function assumes that the string is in the correct format.
|
||||||
* This format is as follows:
|
* This format is as follows:
|
||||||
@@ -282,7 +337,7 @@ pmdelta_t *_alpm_delta_parse(char *line)
|
|||||||
tmp2 = tmp;
|
tmp2 = tmp;
|
||||||
STRDUP(delta->to, tmp2, RET_ERR(PM_ERR_MEMORY, NULL));
|
STRDUP(delta->to, tmp2, RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "delta : %s %s '%lld'\n", delta->from, delta->to, (long long)delta->delta_size);
|
_alpm_log(PM_LOG_DEBUG, "delta : %s %s '%jd'\n", delta->from, delta->to, (intmax_t)delta->delta_size);
|
||||||
|
|
||||||
return(delta);
|
return(delta);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* delta.h
|
* delta.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2007-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2007-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* deps.c
|
* deps.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
||||||
@@ -578,7 +578,7 @@ pmpkg_t *_alpm_resolvedep(pmdepend_t *dep, alpm_list_t *dbs,
|
|||||||
/* Computes resolvable dependencies for a given package and adds that package
|
/* Computes resolvable dependencies for a given package and adds that package
|
||||||
* and those resolvable dependencies to a list.
|
* and those resolvable dependencies to a list.
|
||||||
*
|
*
|
||||||
* @param local is the local database
|
* @param localpkgs is the list of local packages
|
||||||
* @param dbs_sync are the sync databases
|
* @param dbs_sync are the sync databases
|
||||||
* @param pkg is the package to resolve
|
* @param pkg is the package to resolve
|
||||||
* @param packages is a pointer to a list of packages which will be
|
* @param packages is a pointer to a list of packages which will be
|
||||||
@@ -594,7 +594,7 @@ pmpkg_t *_alpm_resolvedep(pmdepend_t *dep, alpm_list_t *dbs,
|
|||||||
* unresolvable dependency, in which case the [*packages] list will be
|
* unresolvable dependency, in which case the [*packages] list will be
|
||||||
* unmodified by this function
|
* unmodified by this function
|
||||||
*/
|
*/
|
||||||
int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
int _alpm_resolvedeps(alpm_list_t *localpkgs, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
||||||
alpm_list_t *preferred, alpm_list_t **packages,
|
alpm_list_t *preferred, alpm_list_t **packages,
|
||||||
alpm_list_t *remove, alpm_list_t **data)
|
alpm_list_t *remove, alpm_list_t **data)
|
||||||
{
|
{
|
||||||
@@ -605,10 +605,6 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
|||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
if(local == NULL || dbs_sync == NULL) {
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_alpm_pkg_find(*packages, pkg->name) != NULL) {
|
if(_alpm_pkg_find(*packages, pkg->name) != NULL) {
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
@@ -624,7 +620,7 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
|||||||
for(i = alpm_list_last(*packages); i; i = i->next) {
|
for(i = alpm_list_last(*packages); i; i = i->next) {
|
||||||
pmpkg_t *tpkg = i->data;
|
pmpkg_t *tpkg = i->data;
|
||||||
targ = alpm_list_add(NULL, tpkg);
|
targ = alpm_list_add(NULL, tpkg);
|
||||||
deps = alpm_checkdeps(_alpm_db_get_pkgcache(local), 0, remove, targ);
|
deps = alpm_checkdeps(localpkgs, 0, remove, targ);
|
||||||
alpm_list_free(targ);
|
alpm_list_free(targ);
|
||||||
for(j = deps; j; j = j->next) {
|
for(j = deps; j; j = j->next) {
|
||||||
pmdepmissing_t *miss = j->data;
|
pmdepmissing_t *miss = j->data;
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* deps.h
|
* deps.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
* Copyright (c) 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
||||||
@@ -49,7 +49,7 @@ void _alpm_depmiss_free(pmdepmissing_t *miss);
|
|||||||
alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, int reverse);
|
alpm_list_t *_alpm_sortbydeps(alpm_list_t *targets, int reverse);
|
||||||
void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit);
|
void _alpm_recursedeps(pmdb_t *db, alpm_list_t *targs, int include_explicit);
|
||||||
pmpkg_t *_alpm_resolvedep(pmdepend_t *dep, alpm_list_t *dbs, alpm_list_t *excluding, int prompt);
|
pmpkg_t *_alpm_resolvedep(pmdepend_t *dep, alpm_list_t *dbs, alpm_list_t *excluding, int prompt);
|
||||||
int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
int _alpm_resolvedeps(alpm_list_t *localpkgs, alpm_list_t *dbs_sync, pmpkg_t *pkg,
|
||||||
alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t *remove,
|
alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t *remove,
|
||||||
alpm_list_t **data);
|
alpm_list_t **data);
|
||||||
int _alpm_dep_edge(pmpkg_t *pkg1, pmpkg_t *pkg2);
|
int _alpm_dep_edge(pmpkg_t *pkg1, pmpkg_t *pkg2);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* download.c
|
* download.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -25,6 +25,9 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/stat.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
/* the following two are needed on BSD for libfetch */
|
/* the following two are needed on BSD for libfetch */
|
||||||
@@ -59,7 +62,7 @@ static char *get_filename(const char *url) {
|
|||||||
static char *get_destfile(const char *path, const char *filename) {
|
static char *get_destfile(const char *path, const char *filename) {
|
||||||
char *destfile;
|
char *destfile;
|
||||||
/* len = localpath len + filename len + null */
|
/* len = localpath len + filename len + null */
|
||||||
int len = strlen(path) + strlen(filename) + 1;
|
size_t len = strlen(path) + strlen(filename) + 1;
|
||||||
CALLOC(destfile, len, sizeof(char), RET_ERR(PM_ERR_MEMORY, NULL));
|
CALLOC(destfile, len, sizeof(char), RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
snprintf(destfile, len, "%s%s", path, filename);
|
snprintf(destfile, len, "%s%s", path, filename);
|
||||||
|
|
||||||
@@ -69,127 +72,161 @@ static char *get_destfile(const char *path, const char *filename) {
|
|||||||
static char *get_tempfile(const char *path, const char *filename) {
|
static char *get_tempfile(const char *path, const char *filename) {
|
||||||
char *tempfile;
|
char *tempfile;
|
||||||
/* len = localpath len + filename len + '.part' len + null */
|
/* len = localpath len + filename len + '.part' len + null */
|
||||||
int len = strlen(path) + strlen(filename) + 6;
|
size_t len = strlen(path) + strlen(filename) + 6;
|
||||||
CALLOC(tempfile, len, sizeof(char), RET_ERR(PM_ERR_MEMORY, NULL));
|
CALLOC(tempfile, len, sizeof(char), RET_ERR(PM_ERR_MEMORY, NULL));
|
||||||
snprintf(tempfile, len, "%s%s.part", path, filename);
|
snprintf(tempfile, len, "%s%s.part", path, filename);
|
||||||
|
|
||||||
return(tempfile);
|
return(tempfile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Build a 'struct url' from an url. */
|
static const char *gethost(struct url *fileurl)
|
||||||
static struct url *url_for_string(const char *url)
|
|
||||||
{
|
{
|
||||||
struct url *ret = NULL;
|
const char *host = _("disk");
|
||||||
ret = fetchParseURL(url);
|
if(strcmp(SCHEME_FILE, fileurl->scheme) != 0) {
|
||||||
if(!ret) {
|
host = fileurl->host;
|
||||||
_alpm_log(PM_LOG_ERROR, _("url '%s' is invalid\n"), url);
|
|
||||||
RET_ERR(PM_ERR_SERVER_BAD_URL, NULL);
|
|
||||||
}
|
}
|
||||||
|
return(host);
|
||||||
/* if no URL scheme specified, assume HTTP */
|
|
||||||
if(strlen(ret->scheme) == 0) {
|
|
||||||
_alpm_log(PM_LOG_WARNING, _("url scheme not specified, assuming HTTP\n"));
|
|
||||||
strcpy(ret->scheme, SCHEME_HTTP);
|
|
||||||
}
|
|
||||||
/* add a user & password for anonymous FTP */
|
|
||||||
if(strcmp(ret->scheme,SCHEME_FTP) == 0 && strlen(ret->user) == 0) {
|
|
||||||
strcpy(ret->user, "anonymous");
|
|
||||||
strcpy(ret->pwd, "libalpm@guest");
|
|
||||||
}
|
|
||||||
|
|
||||||
return(ret);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int download_internal(const char *url, const char *localpath,
|
int dload_interrupted;
|
||||||
time_t mtimeold, time_t *mtimenew) {
|
static RETSIGTYPE inthandler(int signum)
|
||||||
fetchIO *dlf = NULL;
|
{
|
||||||
FILE *localf = NULL;
|
dload_interrupted = 1;
|
||||||
struct url_stat ust;
|
}
|
||||||
struct stat st;
|
|
||||||
int chk_resume = 0, ret = 0;
|
|
||||||
size_t dl_thisfile = 0, nread = 0;
|
|
||||||
char *tempfile, *destfile, *filename;
|
|
||||||
struct sigaction new_action, old_action;
|
|
||||||
struct url *fileurl = url_for_string(url);
|
|
||||||
char buffer[PM_DLBUF_LEN];
|
|
||||||
|
|
||||||
if(!fileurl) {
|
#define check_stop() if(dload_interrupted) { ret = -1; goto cleanup; }
|
||||||
return(-1);
|
enum sighandlers { OLD = 0, NEW = 1 };
|
||||||
}
|
|
||||||
|
static int download_internal(const char *url, const char *localpath,
|
||||||
|
int force) {
|
||||||
|
FILE *localf = NULL;
|
||||||
|
struct stat st;
|
||||||
|
int ret = 0;
|
||||||
|
off_t dl_thisfile = 0;
|
||||||
|
ssize_t nread = 0;
|
||||||
|
char *tempfile, *destfile, *filename;
|
||||||
|
struct sigaction sig_pipe[2], sig_int[2];
|
||||||
|
|
||||||
|
off_t local_size = 0;
|
||||||
|
time_t local_time = 0;
|
||||||
|
|
||||||
|
struct url *fileurl;
|
||||||
|
struct url_stat ust;
|
||||||
|
fetchIO *dlf = NULL;
|
||||||
|
|
||||||
|
char buffer[PM_DLBUF_LEN];
|
||||||
|
|
||||||
filename = get_filename(url);
|
filename = get_filename(url);
|
||||||
if(!filename) {
|
if(!filename) {
|
||||||
return(-1);
|
_alpm_log(PM_LOG_ERROR, _("url '%s' is invalid\n"), url);
|
||||||
|
RET_ERR(PM_ERR_SERVER_BAD_URL, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fileurl = fetchParseURL(url);
|
||||||
|
if(!fileurl) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("url '%s' is invalid\n"), url);
|
||||||
|
RET_ERR(PM_ERR_LIBFETCH, -1);
|
||||||
|
}
|
||||||
|
|
||||||
destfile = get_destfile(localpath, filename);
|
destfile = get_destfile(localpath, filename);
|
||||||
tempfile = get_tempfile(localpath, filename);
|
tempfile = get_tempfile(localpath, filename);
|
||||||
|
|
||||||
/* pass the raw filename for passing to the callback function */
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "using '%s' for download progress\n", filename);
|
|
||||||
|
|
||||||
if(stat(tempfile, &st) == 0 && st.st_size > 0) {
|
if(stat(tempfile, &st) == 0 && st.st_size > 0) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "existing file found, using it\n");
|
_alpm_log(PM_LOG_DEBUG, "tempfile found, attempting continuation\n");
|
||||||
fileurl->offset = (off_t)st.st_size;
|
local_time = fileurl->last_modified = st.st_mtime;
|
||||||
|
local_size = fileurl->offset = (off_t)st.st_size;
|
||||||
dl_thisfile = st.st_size;
|
dl_thisfile = st.st_size;
|
||||||
localf = fopen(tempfile, "ab");
|
localf = fopen(tempfile, "ab");
|
||||||
chk_resume = 1;
|
} else if(!force && stat(destfile, &st) == 0 && st.st_size > 0) {
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "destfile found, using mtime only\n");
|
||||||
|
local_time = fileurl->last_modified = st.st_mtime;
|
||||||
|
local_size = /* no fu->off here */ (off_t)st.st_size;
|
||||||
} else {
|
} else {
|
||||||
fileurl->offset = (off_t)0;
|
_alpm_log(PM_LOG_DEBUG, "no file found matching criteria, starting from scratch\n");
|
||||||
dl_thisfile = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* pass the raw filename for passing to the callback function */
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "using '%s' for download progress\n", filename);
|
||||||
|
|
||||||
/* print proxy info for debug purposes */
|
/* print proxy info for debug purposes */
|
||||||
_alpm_log(PM_LOG_DEBUG, "HTTP_PROXY: %s\n", getenv("HTTP_PROXY"));
|
_alpm_log(PM_LOG_DEBUG, "HTTP_PROXY: %s\n", getenv("HTTP_PROXY"));
|
||||||
_alpm_log(PM_LOG_DEBUG, "http_proxy: %s\n", getenv("http_proxy"));
|
_alpm_log(PM_LOG_DEBUG, "http_proxy: %s\n", getenv("http_proxy"));
|
||||||
_alpm_log(PM_LOG_DEBUG, "FTP_PROXY: %s\n", getenv("FTP_PROXY"));
|
_alpm_log(PM_LOG_DEBUG, "FTP_PROXY: %s\n", getenv("FTP_PROXY"));
|
||||||
_alpm_log(PM_LOG_DEBUG, "ftp_proxy: %s\n", getenv("ftp_proxy"));
|
_alpm_log(PM_LOG_DEBUG, "ftp_proxy: %s\n", getenv("ftp_proxy"));
|
||||||
|
|
||||||
/* libfetch does not reset the error code */
|
/* 10s timeout */
|
||||||
fetchLastErrCode = 0;
|
fetchTimeout = 10;
|
||||||
|
|
||||||
/* 10s timeout - TODO make a config option */
|
|
||||||
fetchTimeout = 10000;
|
|
||||||
|
|
||||||
/* ignore any SIGPIPE signals- these may occur if our FTP socket dies or
|
/* ignore any SIGPIPE signals- these may occur if our FTP socket dies or
|
||||||
* something along those lines. Store the old signal handler first. */
|
* something along those lines. Store the old signal handler first. */
|
||||||
new_action.sa_handler = SIG_IGN;
|
sig_pipe[NEW].sa_handler = SIG_IGN;
|
||||||
sigemptyset(&new_action.sa_mask);
|
sigemptyset(&sig_pipe[NEW].sa_mask);
|
||||||
sigaction(SIGPIPE, NULL, &old_action);
|
sig_pipe[NEW].sa_flags = 0;
|
||||||
sigaction(SIGPIPE, &new_action, NULL);
|
sigaction(SIGPIPE, NULL, &sig_pipe[OLD]);
|
||||||
|
sigaction(SIGPIPE, &sig_pipe[NEW], NULL);
|
||||||
|
|
||||||
dlf = fetchXGet(fileurl, &ust, (handle->nopassiveftp ? "" : "p"));
|
dload_interrupted = 0;
|
||||||
|
sig_int[NEW].sa_handler = &inthandler;
|
||||||
|
sigemptyset(&sig_int[NEW].sa_mask);
|
||||||
|
sig_int[NEW].sa_flags = 0;
|
||||||
|
sigaction(SIGINT, NULL, &sig_int[OLD]);
|
||||||
|
sigaction(SIGINT, &sig_int[NEW], NULL);
|
||||||
|
|
||||||
if(fetchLastErrCode != 0 || dlf == NULL) {
|
/* NOTE: libfetch does not reset the error code, be sure to do it before
|
||||||
const char *host = _("disk");
|
* calls into the library */
|
||||||
if(strcmp(SCHEME_FILE, fileurl->scheme) != 0) {
|
|
||||||
host = fileurl->host;
|
/* find out the remote size *and* mtime in one go. there is a lot of
|
||||||
}
|
* trouble in trying to do both size and "if-modified-since" logic in a
|
||||||
|
* non-stat request, so avoid it. */
|
||||||
|
fetchLastErrCode = 0;
|
||||||
|
if(fetchStat(fileurl, &ust, "") == -1) {
|
||||||
pm_errno = PM_ERR_LIBFETCH;
|
pm_errno = PM_ERR_LIBFETCH;
|
||||||
_alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s\n"),
|
_alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s\n"),
|
||||||
filename, host, fetchLastErrString);
|
filename, gethost(fileurl), fetchLastErrString);
|
||||||
|
ret = -1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
check_stop();
|
||||||
|
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "ust.mtime: %ld local_time: %ld compare: %ld\n",
|
||||||
|
ust.mtime, local_time, local_time - ust.mtime);
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "ust.size: %jd local_size: %jd compare: %jd\n",
|
||||||
|
(intmax_t)ust.size, (intmax_t)local_size, (intmax_t)(local_size - ust.size));
|
||||||
|
if(!force && ust.mtime && ust.mtime == local_time
|
||||||
|
&& ust.size && ust.size == local_size) {
|
||||||
|
/* the remote time and size values agreed with what we have, so move on
|
||||||
|
* because there is nothing more to do. */
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "files are identical, skipping %s\n", filename);
|
||||||
|
ret = 1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if(!ust.mtime || ust.mtime != local_time) {
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "mtimes were different or unavailable, downloading %s from beginning\n", filename);
|
||||||
|
fileurl->offset = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
fetchLastErrCode = 0;
|
||||||
|
dlf = fetchGet(fileurl, "");
|
||||||
|
check_stop();
|
||||||
|
|
||||||
|
if(fetchLastErrCode != 0 || dlf == NULL) {
|
||||||
|
pm_errno = PM_ERR_LIBFETCH;
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s : %s\n"),
|
||||||
|
filename, gethost(fileurl), fetchLastErrString);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_DEBUG, "connected to %s successfully\n", fileurl->host);
|
_alpm_log(PM_LOG_DEBUG, "connected to %s successfully\n", fileurl->host);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ust.mtime && mtimeold && ust.mtime == mtimeold) {
|
if(localf && fileurl->offset == 0) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "mtimes are identical, skipping %s\n", filename);
|
_alpm_log(PM_LOG_WARNING, _("resuming download of %s not possible; starting over\n"), filename);
|
||||||
ret = 1;
|
fclose(localf);
|
||||||
goto cleanup;
|
localf = NULL;
|
||||||
|
} else if(fileurl->offset) {
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "resuming download at position %jd\n", (intmax_t)fileurl->offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(ust.mtime && mtimenew) {
|
|
||||||
*mtimenew = ust.mtime;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(chk_resume && fileurl->offset == 0) {
|
|
||||||
_alpm_log(PM_LOG_WARNING, _("cannot resume download, starting over\n"));
|
|
||||||
if(localf != NULL) {
|
|
||||||
fclose(localf);
|
|
||||||
localf = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(localf == NULL) {
|
if(localf == NULL) {
|
||||||
_alpm_rmrf(tempfile);
|
_alpm_rmrf(tempfile);
|
||||||
@@ -197,7 +234,9 @@ static int download_internal(const char *url, const char *localpath,
|
|||||||
dl_thisfile = 0;
|
dl_thisfile = 0;
|
||||||
localf = fopen(tempfile, "wb");
|
localf = fopen(tempfile, "wb");
|
||||||
if(localf == NULL) { /* still null? */
|
if(localf == NULL) { /* still null? */
|
||||||
_alpm_log(PM_LOG_ERROR, _("cannot write to file '%s'\n"), tempfile);
|
pm_errno = PM_ERR_RETRIEVE;
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"),
|
||||||
|
tempfile, strerror(errno));
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
@@ -209,15 +248,15 @@ static int download_internal(const char *url, const char *localpath,
|
|||||||
}
|
}
|
||||||
|
|
||||||
while((nread = fetchIO_read(dlf, buffer, PM_DLBUF_LEN)) > 0) {
|
while((nread = fetchIO_read(dlf, buffer, PM_DLBUF_LEN)) > 0) {
|
||||||
|
check_stop();
|
||||||
size_t nwritten = 0;
|
size_t nwritten = 0;
|
||||||
while(nwritten < nread) {
|
nwritten = fwrite(buffer, 1, nread, localf);
|
||||||
nwritten += fwrite(buffer, 1, (nread - nwritten), localf);
|
if((nwritten != nread) || ferror(localf)) {
|
||||||
if(ferror(localf)) {
|
pm_errno = PM_ERR_RETRIEVE;
|
||||||
_alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"),
|
_alpm_log(PM_LOG_ERROR, _("error writing to file '%s': %s\n"),
|
||||||
destfile, strerror(errno));
|
tempfile, strerror(errno));
|
||||||
ret = -1;
|
ret = -1;
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
dl_thisfile += nread;
|
dl_thisfile += nread;
|
||||||
|
|
||||||
@@ -227,8 +266,17 @@ static int download_internal(const char *url, const char *localpath,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* did the transfer complete normally? */
|
/* did the transfer complete normally? */
|
||||||
|
if (nread == -1) {
|
||||||
|
/* not PM_ERR_LIBFETCH here because libfetch error string might be empty */
|
||||||
|
pm_errno = PM_ERR_RETRIEVE;
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("failed retrieving file '%s' from %s\n"),
|
||||||
|
filename, gethost(fileurl));
|
||||||
|
ret = -1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
if (ust.size != -1 && dl_thisfile < ust.size) {
|
if (ust.size != -1 && dl_thisfile < ust.size) {
|
||||||
pm_errno = PM_ERR_LIBFETCH;
|
pm_errno = PM_ERR_RETRIEVE;
|
||||||
_alpm_log(PM_LOG_ERROR, _("%s appears to be truncated: %jd/%jd bytes\n"),
|
_alpm_log(PM_LOG_ERROR, _("%s appears to be truncated: %jd/%jd bytes\n"),
|
||||||
filename, (intmax_t)dl_thisfile, (intmax_t)ust.size);
|
filename, (intmax_t)dl_thisfile, (intmax_t)ust.size);
|
||||||
ret = -1;
|
ret = -1;
|
||||||
@@ -243,36 +291,60 @@ static int download_internal(const char *url, const char *localpath,
|
|||||||
fetchIO_close(dlf);
|
fetchIO_close(dlf);
|
||||||
dlf = NULL;
|
dlf = NULL;
|
||||||
|
|
||||||
|
/* set the times on the file to the same as that of the remote file */
|
||||||
|
if(ust.mtime) {
|
||||||
|
struct timeval tv[2];
|
||||||
|
memset(&tv, 0, sizeof(tv));
|
||||||
|
tv[0].tv_sec = ust.atime;
|
||||||
|
tv[1].tv_sec = ust.mtime;
|
||||||
|
utimes(tempfile, tv);
|
||||||
|
}
|
||||||
rename(tempfile, destfile);
|
rename(tempfile, destfile);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
/* restore any existing SIGPIPE signal handler */
|
|
||||||
sigaction(SIGPIPE, &old_action, NULL);
|
|
||||||
|
|
||||||
FREE(tempfile);
|
FREE(tempfile);
|
||||||
FREE(destfile);
|
FREE(destfile);
|
||||||
if(localf != NULL) {
|
if(localf != NULL) {
|
||||||
|
/* if we still had a local file open, we got interrupted. set the mtimes on
|
||||||
|
* the file accordingly. */
|
||||||
|
fflush(localf);
|
||||||
|
if(ust.mtime) {
|
||||||
|
struct timeval tv[2];
|
||||||
|
memset(&tv, 0, sizeof(tv));
|
||||||
|
tv[0].tv_sec = ust.atime;
|
||||||
|
tv[1].tv_sec = ust.mtime;
|
||||||
|
futimes(fileno(localf), tv);
|
||||||
|
}
|
||||||
fclose(localf);
|
fclose(localf);
|
||||||
}
|
}
|
||||||
if(dlf != NULL) {
|
if(dlf != NULL) {
|
||||||
fetchIO_close(dlf);
|
fetchIO_close(dlf);
|
||||||
}
|
}
|
||||||
fetchFreeURL(fileurl);
|
fetchFreeURL(fileurl);
|
||||||
|
|
||||||
|
/* restore the old signal handlers */
|
||||||
|
sigaction(SIGINT, &sig_int[OLD], NULL);
|
||||||
|
sigaction(SIGPIPE, &sig_pipe[OLD], NULL);
|
||||||
|
/* if we were interrupted, trip the old handler */
|
||||||
|
if(dload_interrupted) {
|
||||||
|
raise(SIGINT);
|
||||||
|
}
|
||||||
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int download(const char *url, const char *localpath,
|
static int download(const char *url, const char *localpath,
|
||||||
time_t mtimeold, time_t *mtimenew) {
|
int force) {
|
||||||
if(handle->fetchcb == NULL) {
|
if(handle->fetchcb == NULL) {
|
||||||
#if defined(INTERNAL_DOWNLOAD)
|
#if defined(INTERNAL_DOWNLOAD)
|
||||||
return(download_internal(url, localpath, mtimeold, mtimenew));
|
return(download_internal(url, localpath, force));
|
||||||
#else
|
#else
|
||||||
RET_ERR(PM_ERR_EXTERNAL_DOWNLOAD, -1);
|
RET_ERR(PM_ERR_EXTERNAL_DOWNLOAD, -1);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
int ret = handle->fetchcb(url, localpath, mtimeold, mtimenew);
|
int ret = handle->fetchcb(url, localpath, force);
|
||||||
if(ret == -1) {
|
if(ret == -1) {
|
||||||
RET_ERR(PM_ERR_EXTERNAL_DOWNLOAD, -1);
|
RET_ERR(PM_ERR_EXTERNAL_DOWNLOAD, -1);
|
||||||
}
|
}
|
||||||
@@ -282,19 +354,15 @@ static int download(const char *url, const char *localpath,
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* Download a single file
|
* Download a single file
|
||||||
* - if mtimeold is non-NULL, then only download the file if it's different
|
|
||||||
* than mtimeold.
|
|
||||||
* - if *mtimenew is non-NULL, it will be filled with the mtime of the remote
|
|
||||||
* file.
|
|
||||||
* - servers must be a list of urls WITHOUT trailing slashes.
|
* - servers must be a list of urls WITHOUT trailing slashes.
|
||||||
*
|
*
|
||||||
* RETURN: 0 for successful download
|
* RETURN: 0 for successful download
|
||||||
* 1 if the mtimes are identical
|
* 1 if the files are identical
|
||||||
* -1 on error
|
* -1 on error
|
||||||
*/
|
*/
|
||||||
int _alpm_download_single_file(const char *filename,
|
int _alpm_download_single_file(const char *filename,
|
||||||
alpm_list_t *servers, const char *localpath,
|
alpm_list_t *servers, const char *localpath,
|
||||||
time_t mtimeold, time_t *mtimenew)
|
int force)
|
||||||
{
|
{
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
int ret = -1;
|
int ret = -1;
|
||||||
@@ -304,14 +372,14 @@ int _alpm_download_single_file(const char *filename,
|
|||||||
for(i = servers; i; i = i->next) {
|
for(i = servers; i; i = i->next) {
|
||||||
const char *server = i->data;
|
const char *server = i->data;
|
||||||
char *fileurl = NULL;
|
char *fileurl = NULL;
|
||||||
int len;
|
size_t len;
|
||||||
|
|
||||||
/* print server + filename into a buffer */
|
/* print server + filename into a buffer */
|
||||||
len = strlen(server) + strlen(filename) + 2;
|
len = strlen(server) + strlen(filename) + 2;
|
||||||
CALLOC(fileurl, len, sizeof(char), RET_ERR(PM_ERR_MEMORY, -1));
|
CALLOC(fileurl, len, sizeof(char), RET_ERR(PM_ERR_MEMORY, -1));
|
||||||
snprintf(fileurl, len, "%s/%s", server, filename);
|
snprintf(fileurl, len, "%s/%s", server, filename);
|
||||||
|
|
||||||
ret = download(fileurl, localpath, mtimeold, mtimenew);
|
ret = download(fileurl, localpath, force);
|
||||||
FREE(fileurl);
|
FREE(fileurl);
|
||||||
if(ret != -1) {
|
if(ret != -1) {
|
||||||
break;
|
break;
|
||||||
@@ -330,7 +398,7 @@ int _alpm_download_files(alpm_list_t *files,
|
|||||||
for(lp = files; lp; lp = lp->next) {
|
for(lp = files; lp; lp = lp->next) {
|
||||||
char *filename = lp->data;
|
char *filename = lp->data;
|
||||||
if(_alpm_download_single_file(filename, servers,
|
if(_alpm_download_single_file(filename, servers,
|
||||||
localpath, 0, NULL) == -1) {
|
localpath, 0) == -1) {
|
||||||
ret++;
|
ret++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -357,7 +425,7 @@ char SYMEXPORT *alpm_fetch_pkgurl(const char *url)
|
|||||||
cachedir = _alpm_filecache_setup();
|
cachedir = _alpm_filecache_setup();
|
||||||
|
|
||||||
/* download the file */
|
/* download the file */
|
||||||
ret = download(url, cachedir, 0, NULL);
|
ret = download(url, cachedir, 0);
|
||||||
if(ret == -1) {
|
if(ret == -1) {
|
||||||
_alpm_log(PM_LOG_WARNING, _("failed to download %s\n"), url);
|
_alpm_log(PM_LOG_WARNING, _("failed to download %s\n"), url);
|
||||||
return(NULL);
|
return(NULL);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* dload.h
|
* dload.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -25,11 +25,11 @@
|
|||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
#define PM_DLBUF_LEN (1024 * 10)
|
#define PM_DLBUF_LEN (1024 * 16)
|
||||||
|
|
||||||
int _alpm_download_single_file(const char *filename,
|
int _alpm_download_single_file(const char *filename,
|
||||||
alpm_list_t *servers, const char *localpath,
|
alpm_list_t *servers, const char *localpath,
|
||||||
time_t mtimeold, time_t *mtimenew);
|
int force);
|
||||||
|
|
||||||
int _alpm_download_files(alpm_list_t *files,
|
int _alpm_download_files(alpm_list_t *files,
|
||||||
alpm_list_t *servers, const char *localpath);
|
alpm_list_t *servers, const char *localpath);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* error.c
|
* error.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -117,8 +117,10 @@ const char SYMEXPORT *alpm_strerror(int err)
|
|||||||
return _("cannot remove all files for package");
|
return _("cannot remove all files for package");
|
||||||
case PM_ERR_PKG_INVALID_NAME:
|
case PM_ERR_PKG_INVALID_NAME:
|
||||||
return _("package filename is not valid");
|
return _("package filename is not valid");
|
||||||
|
case PM_ERR_PKG_INVALID_ARCH:
|
||||||
|
return _("package architecture is not valid");
|
||||||
case PM_ERR_PKG_REPO_NOT_FOUND:
|
case PM_ERR_PKG_REPO_NOT_FOUND:
|
||||||
return _("no such repository");
|
return _("could not find repository for target");
|
||||||
/* Deltas */
|
/* Deltas */
|
||||||
case PM_ERR_DLT_INVALID:
|
case PM_ERR_DLT_INVALID:
|
||||||
return _("invalid or corrupted delta");
|
return _("invalid or corrupted delta");
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* graph.h - helpful graph structure and setup/teardown methods
|
* graph.h - helpful graph structure and setup/teardown methods
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* group.c
|
* group.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* group.h
|
* group.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* handle.c
|
* handle.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
||||||
@@ -79,6 +79,7 @@ void _alpm_handle_free(pmhandle_t *handle)
|
|||||||
FREELIST(handle->cachedirs);
|
FREELIST(handle->cachedirs);
|
||||||
FREE(handle->logfile);
|
FREE(handle->logfile);
|
||||||
FREE(handle->lockfile);
|
FREE(handle->lockfile);
|
||||||
|
FREE(handle->arch);
|
||||||
FREELIST(handle->dbs_sync);
|
FREELIST(handle->dbs_sync);
|
||||||
FREELIST(handle->noupgrade);
|
FREELIST(handle->noupgrade);
|
||||||
FREELIST(handle->noextract);
|
FREELIST(handle->noextract);
|
||||||
@@ -168,7 +169,7 @@ const char SYMEXPORT *alpm_option_get_lockfile()
|
|||||||
return handle->lockfile;
|
return handle->lockfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short SYMEXPORT alpm_option_get_usesyslog()
|
int SYMEXPORT alpm_option_get_usesyslog()
|
||||||
{
|
{
|
||||||
if (handle == NULL) {
|
if (handle == NULL) {
|
||||||
pm_errno = PM_ERR_HANDLE_NULL;
|
pm_errno = PM_ERR_HANDLE_NULL;
|
||||||
@@ -213,13 +214,22 @@ alpm_list_t SYMEXPORT *alpm_option_get_ignoregrps()
|
|||||||
return handle->ignoregrp;
|
return handle->ignoregrp;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short SYMEXPORT alpm_option_get_nopassiveftp()
|
const char SYMEXPORT *alpm_option_get_arch()
|
||||||
|
{
|
||||||
|
if (handle == NULL) {
|
||||||
|
pm_errno = PM_ERR_HANDLE_NULL;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
return handle->arch;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SYMEXPORT alpm_option_get_usedelta()
|
||||||
{
|
{
|
||||||
if (handle == NULL) {
|
if (handle == NULL) {
|
||||||
pm_errno = PM_ERR_HANDLE_NULL;
|
pm_errno = PM_ERR_HANDLE_NULL;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
return handle->nopassiveftp;
|
return handle->usedelta;
|
||||||
}
|
}
|
||||||
|
|
||||||
pmdb_t SYMEXPORT *alpm_option_get_localdb()
|
pmdb_t SYMEXPORT *alpm_option_get_localdb()
|
||||||
@@ -436,7 +446,7 @@ int SYMEXPORT alpm_option_set_logfile(const char *logfile)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SYMEXPORT alpm_option_set_usesyslog(unsigned short usesyslog)
|
void SYMEXPORT alpm_option_set_usesyslog(int usesyslog)
|
||||||
{
|
{
|
||||||
handle->usesyslog = usesyslog;
|
handle->usesyslog = usesyslog;
|
||||||
}
|
}
|
||||||
@@ -529,12 +539,13 @@ int SYMEXPORT alpm_option_remove_ignoregrp(const char *grp)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SYMEXPORT alpm_option_set_nopassiveftp(unsigned short nopasv)
|
void SYMEXPORT alpm_option_set_arch(const char *arch)
|
||||||
{
|
{
|
||||||
handle->nopassiveftp = nopasv;
|
if(handle->arch) FREE(handle->arch);
|
||||||
|
if(arch) handle->arch = strdup(arch);
|
||||||
}
|
}
|
||||||
|
|
||||||
void SYMEXPORT alpm_option_set_usedelta(unsigned short usedelta)
|
void SYMEXPORT alpm_option_set_usedelta(int usedelta)
|
||||||
{
|
{
|
||||||
handle->usedelta = usedelta;
|
handle->usedelta = usedelta;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* handle.h
|
* handle.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -57,9 +57,9 @@ typedef struct _pmhandle_t {
|
|||||||
alpm_list_t *ignoregrp; /* List of groups to ignore */
|
alpm_list_t *ignoregrp; /* List of groups to ignore */
|
||||||
|
|
||||||
/* options */
|
/* options */
|
||||||
unsigned short usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */
|
int usesyslog; /* Use syslog instead of logfile? */ /* TODO move to frontend */
|
||||||
unsigned short nopassiveftp; /* Don't use PASV ftp connections */
|
char *arch; /* Architecture of packages we should allow */
|
||||||
unsigned short usedelta; /* Download deltas if possible */
|
int usedelta; /* Download deltas if possible */
|
||||||
} pmhandle_t;
|
} pmhandle_t;
|
||||||
|
|
||||||
/* global handle variable */
|
/* global handle variable */
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* log.c
|
* log.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* log.h
|
* log.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
|||||||
@@ -37,6 +37,9 @@
|
|||||||
* to
|
* to
|
||||||
* int md5_file( const char *path, unsigned char *output )
|
* int md5_file( const char *path, unsigned char *output )
|
||||||
* * various static/inline changes
|
* * various static/inline changes
|
||||||
|
*
|
||||||
|
* NOTE: XySSL has been renamed to PolarSSL, which is available at
|
||||||
|
* www.polarssl.org. If we update, we should get it from there.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* package.c
|
* package.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005, 2006 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005, 2006 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -295,7 +295,7 @@ alpm_list_t SYMEXPORT *alpm_pkg_get_groups(pmpkg_t *pkg)
|
|||||||
return pkg->groups;
|
return pkg->groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short SYMEXPORT alpm_pkg_has_force(pmpkg_t *pkg)
|
int SYMEXPORT alpm_pkg_has_force(pmpkg_t *pkg)
|
||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
@@ -423,13 +423,6 @@ alpm_list_t SYMEXPORT *alpm_pkg_get_backup(pmpkg_t *pkg)
|
|||||||
return pkg->backup;
|
return pkg->backup;
|
||||||
}
|
}
|
||||||
|
|
||||||
alpm_list_t SYMEXPORT *alpm_pkg_get_removes(pmpkg_t *pkg)
|
|
||||||
{
|
|
||||||
ASSERT(pkg != NULL, return(NULL));
|
|
||||||
|
|
||||||
return(pkg->removes);
|
|
||||||
}
|
|
||||||
|
|
||||||
pmdb_t SYMEXPORT *alpm_pkg_get_db(pmpkg_t *pkg)
|
pmdb_t SYMEXPORT *alpm_pkg_get_db(pmpkg_t *pkg)
|
||||||
{
|
{
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
@@ -466,7 +459,6 @@ void SYMEXPORT *alpm_pkg_changelog_open(pmpkg_t *pkg)
|
|||||||
struct archive *archive = NULL;
|
struct archive *archive = NULL;
|
||||||
struct archive_entry *entry;
|
struct archive_entry *entry;
|
||||||
const char *pkgfile = pkg->origin_data.file;
|
const char *pkgfile = pkg->origin_data.file;
|
||||||
int ret = ARCHIVE_OK;
|
|
||||||
|
|
||||||
if((archive = archive_read_new()) == NULL) {
|
if((archive = archive_read_new()) == NULL) {
|
||||||
RET_ERR(PM_ERR_LIBARCHIVE, NULL);
|
RET_ERR(PM_ERR_LIBARCHIVE, NULL);
|
||||||
@@ -480,7 +472,7 @@ void SYMEXPORT *alpm_pkg_changelog_open(pmpkg_t *pkg)
|
|||||||
RET_ERR(PM_ERR_PKG_OPEN, NULL);
|
RET_ERR(PM_ERR_PKG_OPEN, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
while((ret = archive_read_next_header(archive, &entry)) == ARCHIVE_OK) {
|
while(archive_read_next_header(archive, &entry) == ARCHIVE_OK) {
|
||||||
const char *entry_name = archive_entry_pathname(entry);
|
const char *entry_name = archive_entry_pathname(entry);
|
||||||
|
|
||||||
if(strcmp(entry_name, ".CHANGELOG") == 0) {
|
if(strcmp(entry_name, ".CHANGELOG") == 0) {
|
||||||
@@ -548,7 +540,7 @@ int SYMEXPORT alpm_pkg_changelog_close(const pmpkg_t *pkg, void *fp)
|
|||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned short SYMEXPORT alpm_pkg_has_scriptlet(pmpkg_t *pkg)
|
int SYMEXPORT alpm_pkg_has_scriptlet(pmpkg_t *pkg)
|
||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
@@ -563,6 +555,23 @@ unsigned short SYMEXPORT alpm_pkg_has_scriptlet(pmpkg_t *pkg)
|
|||||||
return pkg->scriptlet;
|
return pkg->scriptlet;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void find_requiredby(pmpkg_t *pkg, pmdb_t *db, alpm_list_t **reqs)
|
||||||
|
{
|
||||||
|
const alpm_list_t *i;
|
||||||
|
for(i = _alpm_db_get_pkgcache(db); i; i = i->next) {
|
||||||
|
if(!i->data) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
pmpkg_t *cachepkg = i->data;
|
||||||
|
if(_alpm_dep_edge(cachepkg, pkg)) {
|
||||||
|
const char *cachepkgname = cachepkg->name;
|
||||||
|
if(alpm_list_find_str(*reqs, cachepkgname) == 0) {
|
||||||
|
*reqs = alpm_list_add(*reqs, strdup(cachepkgname));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Compute the packages requiring a given package.
|
* @brief Compute the packages requiring a given package.
|
||||||
* @param pkg a package
|
* @param pkg a package
|
||||||
@@ -572,192 +581,29 @@ alpm_list_t SYMEXPORT *alpm_pkg_compute_requiredby(pmpkg_t *pkg)
|
|||||||
{
|
{
|
||||||
const alpm_list_t *i;
|
const alpm_list_t *i;
|
||||||
alpm_list_t *reqs = NULL;
|
alpm_list_t *reqs = NULL;
|
||||||
|
pmdb_t *db;
|
||||||
|
|
||||||
pmdb_t *localdb = alpm_option_get_localdb();
|
if(pkg->origin == PKG_FROM_FILE) {
|
||||||
for(i = _alpm_db_get_pkgcache(localdb); i; i = i->next) {
|
/* The sane option; search locally for things that require this. */
|
||||||
if(!i->data) {
|
db = alpm_option_get_localdb();
|
||||||
continue;
|
find_requiredby(pkg, db, &reqs);
|
||||||
}
|
} else {
|
||||||
pmpkg_t *cachepkg = i->data;
|
/* We have a DB package. if it is a local package, then we should
|
||||||
if(_alpm_dep_edge(cachepkg, pkg)) {
|
* only search the local DB; else search all known sync databases. */
|
||||||
const char *cachepkgname = alpm_pkg_get_name(cachepkg);
|
db = pkg->origin_data.db;
|
||||||
reqs = alpm_list_add(reqs, strdup(cachepkgname));
|
if(db->is_local) {
|
||||||
|
find_requiredby(pkg, db, &reqs);
|
||||||
|
} else {
|
||||||
|
for(i = handle->dbs_sync; i; i = i->next) {
|
||||||
|
db = i->data;
|
||||||
|
find_requiredby(pkg, db, &reqs);
|
||||||
|
reqs = alpm_list_msort(reqs, alpm_list_count(reqs), _alpm_str_cmp);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return(reqs);
|
return(reqs);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 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.
|
|
||||||
*
|
|
||||||
* This function has been adopted from the rpmvercmp function located
|
|
||||||
* at lib/rpmvercmp.c, and was most recently updated against rpm
|
|
||||||
* version 4.4.2.3. Small modifications have been made to make it more
|
|
||||||
* consistent with the libalpm coding style.
|
|
||||||
*
|
|
||||||
* 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 SYMEXPORT alpm_pkg_vercmp(const char *a, const char *b)
|
|
||||||
{
|
|
||||||
char oldch1, oldch2;
|
|
||||||
char *str1, *str2;
|
|
||||||
char *ptr1, *ptr2;
|
|
||||||
char *one, *two;
|
|
||||||
int rc;
|
|
||||||
int isnum;
|
|
||||||
int ret = 0;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
/* libalpm added code. ensure our strings are not null */
|
|
||||||
if(!a) {
|
|
||||||
if(!b) return(0);
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
if(!b) return(1);
|
|
||||||
|
|
||||||
/* easy comparison to see if versions are identical */
|
|
||||||
if(strcmp(a, b) == 0) return(0);
|
|
||||||
|
|
||||||
str1 = strdup(a);
|
|
||||||
str2 = strdup(b);
|
|
||||||
|
|
||||||
one = str1;
|
|
||||||
two = str2;
|
|
||||||
|
|
||||||
/* loop through each version segment of str1 and str2 and compare them */
|
|
||||||
while(*one && *two) {
|
|
||||||
while(*one && !isalnum((int)*one)) one++;
|
|
||||||
while(*two && !isalnum((int)*two)) two++;
|
|
||||||
|
|
||||||
/* If we ran to the end of either, we are finished with the loop */
|
|
||||||
if(!(*one && *two)) break;
|
|
||||||
|
|
||||||
ptr1 = one;
|
|
||||||
ptr2 = two;
|
|
||||||
|
|
||||||
/* grab first completely alpha or completely numeric segment */
|
|
||||||
/* leave one and two pointing to the start of the alpha or numeric */
|
|
||||||
/* segment and walk ptr1 and ptr2 to end of segment */
|
|
||||||
if(isdigit((int)*ptr1)) {
|
|
||||||
while(*ptr1 && isdigit((int)*ptr1)) ptr1++;
|
|
||||||
while(*ptr2 && isdigit((int)*ptr2)) ptr2++;
|
|
||||||
isnum = 1;
|
|
||||||
} else {
|
|
||||||
while(*ptr1 && isalpha((int)*ptr1)) ptr1++;
|
|
||||||
while(*ptr2 && isalpha((int)*ptr2)) ptr2++;
|
|
||||||
isnum = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* save character at the end of the alpha or numeric segment */
|
|
||||||
/* so that they can be restored after the comparison */
|
|
||||||
oldch1 = *ptr1;
|
|
||||||
*ptr1 = '\0';
|
|
||||||
oldch2 = *ptr2;
|
|
||||||
*ptr2 = '\0';
|
|
||||||
|
|
||||||
/* this cannot happen, as we previously tested to make sure that */
|
|
||||||
/* the first string has a non-null segment */
|
|
||||||
if (one == ptr1) {
|
|
||||||
ret = -1; /* arbitrary */
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* take care of the case where the two version segments are */
|
|
||||||
/* different types: one numeric, the other alpha (i.e. empty) */
|
|
||||||
/* numeric segments are always newer than alpha segments */
|
|
||||||
/* XXX See patch #60884 (and details) from bugzilla #50977. */
|
|
||||||
if (two == ptr2) {
|
|
||||||
ret = isnum ? 1 : -1;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (isnum) {
|
|
||||||
/* this used to be done by converting the digit segments */
|
|
||||||
/* to ints using atoi() - it's changed because long */
|
|
||||||
/* digit segments can overflow an int - this should fix that. */
|
|
||||||
|
|
||||||
/* throw away any leading zeros - it's a number, right? */
|
|
||||||
while (*one == '0') one++;
|
|
||||||
while (*two == '0') two++;
|
|
||||||
|
|
||||||
/* whichever number has more digits wins */
|
|
||||||
if (strlen(one) > strlen(two)) {
|
|
||||||
ret = 1;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
if (strlen(two) > strlen(one)) {
|
|
||||||
ret = -1;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* strcmp will return which one is greater - even if the two */
|
|
||||||
/* segments are alpha or if they are numeric. don't return */
|
|
||||||
/* if they are equal because there might be more segments to */
|
|
||||||
/* compare */
|
|
||||||
rc = strcmp(one, two);
|
|
||||||
if (rc) {
|
|
||||||
ret = rc < 1 ? -1 : 1;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* restore character that was replaced by null above */
|
|
||||||
*ptr1 = oldch1;
|
|
||||||
one = ptr1;
|
|
||||||
*ptr2 = oldch2;
|
|
||||||
two = ptr2;
|
|
||||||
|
|
||||||
/* libalpm added code. check if version strings have hit the pkgrel
|
|
||||||
* portion. depending on which strings have hit, take correct action.
|
|
||||||
* this is all based on the premise that we only have one dash in
|
|
||||||
* the version string, and it separates pkgver from pkgrel. */
|
|
||||||
if(*ptr1 == '-' && *ptr2 == '-') {
|
|
||||||
/* no-op, continue comparing since we are equivalent throughout */
|
|
||||||
} else if(*ptr1 == '-') {
|
|
||||||
/* ptr1 has hit the pkgrel and ptr2 has not. continue version
|
|
||||||
* comparison after stripping the pkgrel from ptr1. */
|
|
||||||
*ptr1 = '\0';
|
|
||||||
} else if(*ptr2 == '-') {
|
|
||||||
/* ptr2 has hit the pkgrel and ptr1 has not. continue version
|
|
||||||
* comparison after stripping the pkgrel from ptr2. */
|
|
||||||
*ptr2 = '\0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* this catches the case where all numeric and alpha segments have */
|
|
||||||
/* compared identically but the segment separating characters were */
|
|
||||||
/* different */
|
|
||||||
if ((!*one) && (!*two)) {
|
|
||||||
ret = 0;
|
|
||||||
goto cleanup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* the final showdown. we never want a remaining alpha string to
|
|
||||||
* beat an empty string. the logic is a bit weird, but:
|
|
||||||
* - if one is empty and two is not an alpha, two is newer.
|
|
||||||
* - if one is an alpha, two is newer.
|
|
||||||
* - otherwise one is newer.
|
|
||||||
* */
|
|
||||||
if ( ( !*one && !isalpha((int)*two) )
|
|
||||||
|| isalpha((int)*one) ) {
|
|
||||||
ret = -1;
|
|
||||||
} else {
|
|
||||||
ret = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
cleanup:
|
|
||||||
free(str1);
|
|
||||||
free(str2);
|
|
||||||
return(ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
pmpkg_t *_alpm_pkg_new(void)
|
pmpkg_t *_alpm_pkg_new(void)
|
||||||
@@ -858,7 +704,11 @@ void _alpm_pkg_free(pmpkg_t *pkg)
|
|||||||
FREE(pkg);
|
FREE(pkg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Free transaction specific fields */
|
/* This function should be used when removing a target from upgrade/sync target list
|
||||||
|
* Case 1: If pkg is a loaded package file (PKG_FROM_FILE), it will be freed.
|
||||||
|
* Case 2: If pkg is a pkgcache entry (PKG_FROM_CACHE), it won't be freed,
|
||||||
|
* only the transaction specific fields of pkg will be freed.
|
||||||
|
*/
|
||||||
void _alpm_pkg_free_trans(pmpkg_t *pkg)
|
void _alpm_pkg_free_trans(pmpkg_t *pkg)
|
||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
@@ -867,6 +717,11 @@ void _alpm_pkg_free_trans(pmpkg_t *pkg)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(pkg->origin == PKG_FROM_FILE) {
|
||||||
|
_alpm_pkg_free(pkg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
alpm_list_free(pkg->removes);
|
alpm_list_free(pkg->removes);
|
||||||
pkg->removes = NULL;
|
pkg->removes = NULL;
|
||||||
}
|
}
|
||||||
@@ -894,7 +749,7 @@ int _alpm_pkg_cmp(const void *p1, const void *p2)
|
|||||||
{
|
{
|
||||||
pmpkg_t *pkg1 = (pmpkg_t *)p1;
|
pmpkg_t *pkg1 = (pmpkg_t *)p1;
|
||||||
pmpkg_t *pkg2 = (pmpkg_t *)p2;
|
pmpkg_t *pkg2 = (pmpkg_t *)p2;
|
||||||
return(strcmp(alpm_pkg_get_name(pkg1), alpm_pkg_get_name(pkg2)));
|
return(strcmp(pkg1->name, pkg2->name));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Test for existence of a package in a alpm_list_t*
|
/* Test for existence of a package in a alpm_list_t*
|
||||||
@@ -913,7 +768,7 @@ pmpkg_t *_alpm_pkg_find(alpm_list_t *haystack, const char *needle)
|
|||||||
for(lp = haystack; lp; lp = lp->next) {
|
for(lp = haystack; lp; lp = lp->next) {
|
||||||
pmpkg_t *info = lp->data;
|
pmpkg_t *info = lp->data;
|
||||||
|
|
||||||
if(info && strcmp(alpm_pkg_get_name(info), needle) == 0) {
|
if(info && strcmp(info->name, needle) == 0) {
|
||||||
return(info);
|
return(info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* package.h
|
* package.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org>
|
* Copyright (c) 2006 by David Kimpe <dnaku@frugalware.org>
|
||||||
@@ -49,8 +49,8 @@ struct __pmpkg_t {
|
|||||||
off_t size;
|
off_t size;
|
||||||
off_t isize;
|
off_t isize;
|
||||||
off_t download_size;
|
off_t download_size;
|
||||||
unsigned short scriptlet;
|
int scriptlet;
|
||||||
unsigned short force;
|
int force;
|
||||||
pmpkgreason_t reason;
|
pmpkgreason_t reason;
|
||||||
alpm_list_t *licenses;
|
alpm_list_t *licenses;
|
||||||
alpm_list_t *replaces;
|
alpm_list_t *replaces;
|
||||||
|
|||||||
@@ -1,16 +1,22 @@
|
|||||||
# Set of available languages.
|
# Set of available languages.
|
||||||
|
ca
|
||||||
cs
|
cs
|
||||||
de
|
de
|
||||||
|
el
|
||||||
en_GB
|
en_GB
|
||||||
es
|
es
|
||||||
fr
|
fr
|
||||||
hu
|
hu
|
||||||
it
|
it
|
||||||
kk
|
kk
|
||||||
|
nb
|
||||||
pl
|
pl
|
||||||
|
pt
|
||||||
pt_BR
|
pt_BR
|
||||||
ro
|
ro
|
||||||
ru
|
ru
|
||||||
|
sk
|
||||||
|
sv
|
||||||
tr
|
tr
|
||||||
uk
|
uk
|
||||||
zh_CN
|
zh_CN
|
||||||
|
|||||||
567
lib/libalpm/po/ca.po
Normal file
567
lib/libalpm/po/ca.po
Normal file
@@ -0,0 +1,567 @@
|
|||||||
|
# Translation of libpalm.po to Catalan
|
||||||
|
# Copyright (C) YEAR Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
#
|
||||||
|
# Manuel Tortosa <manutortosa@gmail.com>, 2009, 2010.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
|
"PO-Revision-Date: 2010-06-12 19:17+0200\n"
|
||||||
|
"Last-Translator: Manuel Tortosa <manutortosa@gmail.com>\n"
|
||||||
|
"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
|
||||||
|
"Language: ca\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Lokalize 1.0\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
|
msgstr ""
|
||||||
|
"s'està reemplaçant l'antiga versió %s-%s per %s en la llista d'objectius\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
msgstr ""
|
||||||
|
"s'ometrà %s-%s perquè la versió més nova %s és en la llista d'objectius\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"directory permissions differ on %s\n"
|
||||||
|
"filesystem: %o package: %o\n"
|
||||||
|
msgstr ""
|
||||||
|
"els permisos del directori difereixen en %s\n"
|
||||||
|
"sistema de fitxers: %o paquet: %o\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: not overwriting dir with file %s\n"
|
||||||
|
msgstr "extracció: no se sobreescriurà el directori amb el fitxer %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: symlink %s does not point to dir\n"
|
||||||
|
msgstr "extracció: l'enllaç simbòlic %s no apunta al directori\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not extract %s (%s)\n"
|
||||||
|
msgstr "no es pot extreure %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not rename %s to %s (%s)\n"
|
||||||
|
msgstr "no es pot reanomenar %s a %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s saved as %s\n"
|
||||||
|
msgstr "%s desat com %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not install %s as %s (%s)\n"
|
||||||
|
msgstr "no es pot instal·lar %s com %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s installed as %s\n"
|
||||||
|
msgstr "%s instal·lat com %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extracting %s as %s.pacnew\n"
|
||||||
|
msgstr "s'està extraient %s com %s.pacnew\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not get current working directory\n"
|
||||||
|
msgstr "no es pot obtenir el directori de treball actual\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while upgrading %s\n"
|
||||||
|
msgstr "ha ocorregut un problema en actualitzar %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while installing %s\n"
|
||||||
|
msgstr "ha ocorregut un problema en instal·lar %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database entry %s-%s\n"
|
||||||
|
msgstr "no s'ha pogut actualitzar l'entrada de la base de dades %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not add entry '%s' in cache\n"
|
||||||
|
msgstr "no s'ha pogut afegir l'entrada '%s' en la memòria cau\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "s'està eliminant la base de dades invàlida: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "no s'ha pogut obrir %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "no s'ha pogut eliminar el directori de la base de dades %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database %s\n"
|
||||||
|
msgstr "no s'ha pogut eliminar la base de dades %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid name for database entry '%s'\n"
|
||||||
|
msgstr "nom invàlid per l'entrada de la base de dades '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "entrada de la base de dades duplicada '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "corrupted database entry '%s'\n"
|
||||||
|
msgstr "entrada de la base de dades corrupta '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open file %s: %s\n"
|
||||||
|
msgstr "no es pot obrir el fitxer %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
|
msgstr "la base de dades %s és inconsistent: nom erroni en el paquet %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
|
msgstr "la base de dades %s és inconsistent: versió errònia en el paquet %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create directory %s: %s\n"
|
||||||
|
msgstr "no s'ha pogut crear el directori %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not parse package description file in %s\n"
|
||||||
|
msgstr "no s'ha pogut analitzar el fitxers de descripció de paquet en %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package name in %s\n"
|
||||||
|
msgstr "falta nom de paquet en %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package version in %s\n"
|
||||||
|
msgstr "falta versió de paquet en %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error while reading package %s: %s\n"
|
||||||
|
msgstr "error en llegir paquet %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package metadata in %s\n"
|
||||||
|
msgstr "falten les metadades del paquet en %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database path is undefined\n"
|
||||||
|
msgstr "no s'ha definit la ruta de la base de dades\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "intent de re-registre de la BD 'local'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "dependency cycle detected:\n"
|
||||||
|
msgstr "s'ha detectat una dependència cíclica:\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
|
msgstr "%s serà eliminat després de la seva dependència %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
|
msgstr "%s serà instal·lar abans de la seva dependència %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package %s-%s\n"
|
||||||
|
msgstr "s'està ignorant paquet %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "provider package was selected (%s provides %s)\n"
|
||||||
|
msgstr "s'ha seleccionat un paquet proveïdor (%s proveeix %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
msgstr "no es pot resoldre \"%s\", una dependència de \"%s\"\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "disk"
|
||||||
|
msgstr "disc"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "l'url '%s' és invàlid\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
msgstr "ha fallat en recuperar el fitxer '%s' des de %s : %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
|
msgstr "no es pot la reprendre la baixada de %s, s'està iniciant de nou\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error writing to file '%s': %s\n"
|
||||||
|
msgstr "error en escriure al fitxer '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "ha fallat en recuperar el fitxer '%s' de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
|
msgstr "%s sembla estar truncat: %jd/%jd bytes\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to download %s\n"
|
||||||
|
msgstr "ha fallat en baixar %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "out of memory!"
|
||||||
|
msgstr "memòria esgotada!"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected system error"
|
||||||
|
msgstr "error inesperat del sistema"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "insufficient privileges"
|
||||||
|
msgstr "privilegis insuficients"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read file"
|
||||||
|
msgstr "no es pot trobar o llegir fitxer"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read directory"
|
||||||
|
msgstr "no es pot trobar o llegir directori"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "wrong or NULL argument passed"
|
||||||
|
msgstr "s'ha passat un argument erroni o NULL"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library not initialized"
|
||||||
|
msgstr "llibreria no inicialitzada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library already initialized"
|
||||||
|
msgstr "la llibreria ja s'ha inicialitzat"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unable to lock database"
|
||||||
|
msgstr "no s'ha pogut bloquejar la base de dades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open database"
|
||||||
|
msgstr "no s'ha pogut obrir la base de dades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create database"
|
||||||
|
msgstr "no s'ha pogut crear la base de dades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database not initialized"
|
||||||
|
msgstr "base de dades no inicialitzada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database already registered"
|
||||||
|
msgstr "la base de dades ja s'ha registrat"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find database"
|
||||||
|
msgstr "no s'ha pogut trobar la base de dades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database"
|
||||||
|
msgstr "no s'ha pogut actualitzar la base de dades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry"
|
||||||
|
msgstr "no s'ha pogut suprimir l'entrada de la base de dades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid url for server"
|
||||||
|
msgstr "url del servidor invàlid"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no servers configured for repository"
|
||||||
|
msgstr "no s'ha configurat cap servidor pel repositori"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction already initialized"
|
||||||
|
msgstr "ja s'ha inicialitzat la transacció"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not initialized"
|
||||||
|
msgstr "no s'ha inicialitzat la transacció"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicate target"
|
||||||
|
msgstr "objectiu duplicat"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not prepared"
|
||||||
|
msgstr "transacció no preparada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction aborted"
|
||||||
|
msgstr "transacció cancel·lada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation not compatible with the transaction type"
|
||||||
|
msgstr "l'operació no és compatible amb el tipus de transacció"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction commit attempt when database is not locked"
|
||||||
|
msgstr ""
|
||||||
|
"intent de publicació de la transacció amb la base de dades no bloquejada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read package"
|
||||||
|
msgstr "no s'ha pogut trobar o llegir el paquet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation cancelled due to ignorepkg"
|
||||||
|
msgstr "operació cancel·lada degut a ignorepkg"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted package"
|
||||||
|
msgstr "paquet invàlid o corrupte"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open package file"
|
||||||
|
msgstr "no s'ha pogut obrir el fitxer de paquet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove all files for package"
|
||||||
|
msgstr "no s'han pogut eliminar tots els fitxers del paquet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package filename is not valid"
|
||||||
|
msgstr "el nom de fitxer del paquet no és vàlid"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package architecture is not valid"
|
||||||
|
msgstr "l'arquitectura del paquet no és vàlida"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "no s'ha pogut trobar el repositori per l'objectiu"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted delta"
|
||||||
|
msgstr "delta invàlid o corrupte"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "delta patch failed"
|
||||||
|
msgstr "ha fallat el pedaç delta"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not satisfy dependencies"
|
||||||
|
msgstr "no s'han pogut satisfer les dependències"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting dependencies"
|
||||||
|
msgstr "dependències conflictives"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting files"
|
||||||
|
msgstr "fitxers conflictius"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files"
|
||||||
|
msgstr "ha fallat en recuperar alguns fitxers"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid regular expression"
|
||||||
|
msgstr "expressió regular invàlida"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "libarchive error"
|
||||||
|
msgstr "error de libarchive"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "download library error"
|
||||||
|
msgstr "error de la llibreria de baixades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error invoking external downloader"
|
||||||
|
msgstr "error en invocar el baixador extern"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected error"
|
||||||
|
msgstr "error inesperat"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find %s in database -- skipping\n"
|
||||||
|
msgstr "no s'ha pogut trobar %s en la base de dades -- s'està ometent\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "s'està eliminant %s de la llista d'objectius\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove file '%s': %s\n"
|
||||||
|
msgstr "no s'ha pogut eliminar el fitxer '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry %s-%s\n"
|
||||||
|
msgstr "no s'ha pogut eliminar la entrada de la base de dades %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
|
msgstr "no s'ha pogut eliminar l'entrada '%s' de la memòria cau\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: s'ha ignorat l'actualització del paquet (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: s'ha ignorat la desactualització del paquet (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
|
msgstr "%s: desactualitzant de la versió %s a la versió %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: local (%s) is newer than %s (%s)\n"
|
||||||
|
msgstr "%s: local (%s) és més nou que %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
|
||||||
|
msgstr "s'està ignorant el reemplaçament del paquet (%s-%s => %s-%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot replace %s by %s\n"
|
||||||
|
msgstr "no s'ha pogut reemplaçar %s per %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
|
msgstr "%s-%s és al dia -- s'ignorarà\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
|
msgstr "%s-%s és al dia -- es reinstal·larà\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
|
msgstr "desactualitzant paquet %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "s'ometrà l'objectiu: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unresolvable package conflicts detected\n"
|
||||||
|
msgstr "s'ha detectat un paquet amb un conflicte impossible de resoldre\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
|
msgstr ""
|
||||||
|
"s'està eliminant '%s' de la llista d'objectius perquè té conflictes amb "
|
||||||
|
"'%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files from %s\n"
|
||||||
|
msgstr "ha fallat en recuperar alguns fitxers de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit removal transaction\n"
|
||||||
|
msgstr "no s'ha pogut publicar la transacció d'eliminació\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit transaction\n"
|
||||||
|
msgstr "no s'ha pogut publicar la transacció\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove lock file %s\n"
|
||||||
|
msgstr "no s'ha pogut eliminar el fitxer de bloqueig %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create temp directory\n"
|
||||||
|
msgstr "no s'ha pogut crear el directori temporal\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not copy tempfile to %s (%s)\n"
|
||||||
|
msgstr "no s'ha pogut copiar el fitxer temporal a %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove tmpdir %s\n"
|
||||||
|
msgstr "no s'ha pogut eliminar el directori temporal %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to %s (%s)\n"
|
||||||
|
msgstr "no s'ha pogut canviar el directori a %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not fork a new process (%s)\n"
|
||||||
|
msgstr "no s'ha pogut bifurcar a un nou procés (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change the root directory (%s)\n"
|
||||||
|
msgstr "no s'ha pogut canviar el directori arrel (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to / (%s)\n"
|
||||||
|
msgstr "no s'ha pogut canviar el directori a / (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to popen failed (%s)\n"
|
||||||
|
msgstr "ha fallat la crida a popen (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
msgstr "ha fallat la crida a waitpid (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "command failed to execute correctly\n"
|
||||||
|
msgstr "l'ordre a fallat a executar-se correctament\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no %s cache exists, creating...\n"
|
||||||
|
msgstr "no existeix memòria cau %s, s'està creant...\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
|
msgstr "no s'ha pogut crear la memòria cau del paquet, s'usarà /tmp\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "s'han trobat paquets conflictius en la llista d'objectius\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "no podeu instal·lar dos paquets amb conflictes alhora\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "no està implementat reemplaçar paquets amb -U\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "podeu reemplaçar paquets manualment usant -Rd i -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "no s'ha especificat l'esquema url, s'està assumint HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "no s'ha pogut escriure al fitxer '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "no existeix aquest repositori"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "no s'ha trobat el repositori '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "no s'ha pogut crear la transacció d'eliminació\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "no s'ha pogut crear la transacció\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "no s'ha pogut inicialitzar la transacció d'eliminació\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "no s'ha pogut inicialitzar la transacció\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "no s'ha pogut preparar la transacció d'eliminació\n"
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
# translation of cs.po to Čeština
|
# translation of cs.po to Čeština
|
||||||
# Copyright (C) YEAR Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
#
|
# Vojtěch Gondžala <vojtech.gondzala@gmail.com>, 2007, 2008, 2009, 2010.
|
||||||
# Vojtěch Gondžala <vojtech.gondzala@gmail.com>, 2007, 2008, 2009.
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: cs\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-29 14:14+0200\n"
|
"PO-Revision-Date: 2010-06-05 12:56+0200\n"
|
||||||
"Last-Translator: Vojtěch Gondžala <vojtech.gondzala@gmail.com>\n"
|
"Last-Translator: Vojtěch Gondžala <vojtech.gondzala@gmail.com>\n"
|
||||||
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
"Language-Team: Czech <kde-i18n-doc@kde.org>\n"
|
||||||
|
"Language: cs\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -22,25 +22,9 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "v seznamu cílů nahrazena starší verze %s-%s za %s\n"
|
msgstr "v seznamu cílů nahrazena starší verze %s-%s za %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "vynechává se %s-%s, protože v seznamu cílů je novější veze %s\n"
|
msgstr "vynechává se %s-%s, protože v seznamu cílů je novější veze %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "v seznamu cílů byly nalezeny konfliktní balíčky\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "nelze instalovat dva konfliktní balíčky současně\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "nahrazování balíčků pomocí -U není nyní podporováno\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "balíčky lze nahradit ručně použitím -Rd a -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -101,6 +85,18 @@ msgstr "nelze aktualizovat záznam databáze %s-%s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "nelze přidat položku '%s' do cache\n"
|
msgstr "nelze přidat položku '%s' do cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "odstraňuje se chybná databáze: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "nelze otevřít %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "nelze odstranit adresář databáze %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "nelze odstranit záznam v databázi %s\n"
|
msgstr "nelze odstranit záznam v databázi %s\n"
|
||||||
@@ -109,6 +105,10 @@ msgstr "nelze odstranit záznam v databázi %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "chybný název záznamu v databázi '%s'\n"
|
msgstr "chybný název záznamu v databázi '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "duplicitní záznam v databázi '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "poškozený záznam v databázi '%s'\n"
|
msgstr "poškozený záznam v databázi '%s'\n"
|
||||||
@@ -149,14 +149,14 @@ msgstr "chyba při čtení balíčku %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "chybí metadata balíčku v %s\n"
|
msgstr "chybí metadata balíčku v %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "pokus o opětovné zaregistrování databáze 'local'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "cesta k databázi není definována\n"
|
msgstr "cesta k databázi není definována\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "pokus o opětovné zaregistrování databáze 'local'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "zjištěna cyklická závislost:\n"
|
msgstr "zjištěna cyklická závislost:\n"
|
||||||
@@ -181,34 +181,30 @@ msgstr "byl vybrán nahrazující balíček (%s poskytuje %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "nelze vyřešit \"%s\", závislost \"%s\"\n"
|
msgstr "nelze vyřešit \"%s\", závislost \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "URL '%s' je chybná\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "schéma URL nedefinováno, předpokládá se HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disk"
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "URL '%s' je chybná\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "selhalo získání souboru '%s' z %s: %s\n"
|
msgstr "selhalo získání souboru '%s' z %s: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "nelze navázat stahování, začíná se znovu\n"
|
msgstr "nelze navázat stahování %s, začíná se znovu\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "nelze zapisovat do souboru '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "chyba při zápisu do souboru '%s': %s\n"
|
msgstr "chyba při zápisu do souboru '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "selhalo získání souboru '%s' z %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s se zdá být zkrácen: %jd/%jd bytů\n"
|
msgstr "%s se zdá být zkrácen: %jd/%jd bytů\n"
|
||||||
@@ -342,8 +338,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "jméno souboru balíčku není platné"
|
msgstr "jméno souboru balíčku není platné"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "takový repositář není nastaven"
|
msgstr "architektura balíčku není platná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "nelze nalézt repositář cíle"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -393,6 +393,10 @@ msgstr "neočekávaná chyba"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "nelze nalézt %s v databázi -- vynechat\n"
|
msgstr "nelze nalézt %s v databázi -- vynechat\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "'%s' odstraněn ze seznamu cílů\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "nelze odstranit soubor '%s': %s\n"
|
msgstr "nelze odstranit soubor '%s': %s\n"
|
||||||
@@ -429,10 +433,6 @@ msgstr "ignoruje se náhrada balíčku (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "nelze nahradit soubor %s souborem %s\n"
|
msgstr "nelze nahradit soubor %s souborem %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "repositář '%s' nebyl nalezen\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s je aktuální -- vynechat\n"
|
msgstr "%s-%s je aktuální -- vynechat\n"
|
||||||
@@ -445,6 +445,10 @@ msgstr "%s-%s je aktuální -- přeinstalovat\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "ponížení verze balíčku %s (%s => %s)\n"
|
msgstr "ponížení verze balíčku %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "přeskakuje se cíl: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "zjištěn konflikt nerozlišitelných balíčků\n"
|
msgstr "zjištěn konflikt nerozlišitelných balíčků\n"
|
||||||
@@ -457,26 +461,6 @@ msgstr "'%s' odstraněn ze seznamu cílů, protože je konfliktní s '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "selhalo získání některých souborů z %s\n"
|
msgstr "selhalo získání některých souborů z %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "nelze vytvořit transakci pro odstranění\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "nelze vytvořit transakci\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "nelze inicializovat transakci pro odstranění\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "nelze inicializovat transakci\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "nelze připravit transakci pro odstranění\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "nelze provést transakci pro odstranění\n"
|
msgstr "nelze provést transakci pro odstranění\n"
|
||||||
@@ -501,10 +485,6 @@ msgstr "nelze zkopírovat dočasný soubor do %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "nelze odstranit dočasný adresář %s\n"
|
msgstr "nelze odstranit dočasný adresář %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "nelze otevřít %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "nelze změnit adresář na %s (%s)\n"
|
msgstr "nelze změnit adresář na %s (%s)\n"
|
||||||
@@ -522,8 +502,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "nelze změnit adresář na / (%s)\n"
|
msgstr "nelze změnit adresář na / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "volání popen selhalo (%s)"
|
msgstr "volání popen selhalo (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -541,6 +521,45 @@ msgstr "neexistuje cache %s, vytváří se...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "nelze vytvořit cache balíčků, používá se /tmp\n"
|
msgstr "nelze vytvořit cache balíčků, používá se /tmp\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "v seznamu cílů byly nalezeny konfliktní balíčky\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "nelze instalovat dva konfliktní balíčky současně\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "nahrazování balíčků pomocí -U není nyní podporováno\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "balíčky lze nahradit ručně použitím -Rd a -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "schéma URL nedefinováno, předpokládá se HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "nelze zapisovat do souboru '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "takový repositář není nastaven"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "repositář '%s' nebyl nalezen\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "nelze vytvořit transakci pro odstranění\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "nelze vytvořit transakci\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "nelze inicializovat transakci pro odstranění\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "nelze inicializovat transakci\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "nelze připravit transakci pro odstranění\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "chyba při stahování '%s': %s\n"
|
#~ msgstr "chyba při stahování '%s': %s\n"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# translation of de.po to German
|
# translation of de.po to German
|
||||||
# German translations for Pacman package manager package.
|
# German translations for Pacman package manager package.
|
||||||
# Copyright (C) 2002-2008 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
#
|
#
|
||||||
# Marcus Habermehl <bmh1980@frugalware.org>, 2006.
|
# Marcus Habermehl <bmh1980@frugalware.org>, 2006.
|
||||||
# Pierre Schmitz <pierre@archlinux.de>, 2007.
|
# Pierre Schmitz <pierre@archlinux.de>, 2007.
|
||||||
@@ -9,12 +9,13 @@
|
|||||||
# Matthias Gorissen <matthias@archlinux.de>, 2008-2009.
|
# Matthias Gorissen <matthias@archlinux.de>, 2008-2009.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: de\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-29 16:09+0100\n"
|
"PO-Revision-Date: 2010-06-07 20:02+0100\n"
|
||||||
"Last-Translator: Matthias Gorissen <matthias@archlinux.de>\n"
|
"Last-Translator: Matthias Gorissen <matthias@archlinux.de>\n"
|
||||||
"Language-Team: German <archlinux.de>\n"
|
"Language-Team: German <archlinux.de>\n"
|
||||||
|
"Language: de\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -26,26 +27,9 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "Ersetze ältere Version %s-%s durch %s in der Ziel-Liste\n"
|
msgstr "Ersetze ältere Version %s-%s durch %s in der Ziel-Liste\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "Überspringe %s-%s, da die Ziel-Liste die neuere Version %s enthält\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "In Konflikt stehende Pakete wurden in Ziel-Liste gefunden\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sie können nicht zwei in Konflikt stehende Pakete zur selben Zeit "
|
"Überspringe %s-%s, da sich die neuere Version %s in der Ziel-Liste befindet\n"
|
||||||
"installieren\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "Das Ersetzen von Paketen mit -U wird noch nicht unterstützt\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "Sie können Pakete manuell mit -Rd und -U ersetzen\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -107,6 +91,18 @@ msgstr "Konnte Datenbankeintrag %s-%s nicht aktualisieren\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "Konnte Eintrag '%s' nicht zum Pufferspeicher hinzufügen\n"
|
msgstr "Konnte Eintrag '%s' nicht zum Pufferspeicher hinzufügen\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "Entferne die ungültige Datenbank: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "Konnte Datei %s nicht öffnen: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "Konnte Datenbank-Verzeichnis %s nicht entfernen\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "Konnte Datenbank %s nicht entfernen\n"
|
msgstr "Konnte Datenbank %s nicht entfernen\n"
|
||||||
@@ -115,6 +111,10 @@ msgstr "Konnte Datenbank %s nicht entfernen\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "Ungültiger Name für Datenbank-Eintrag '%s'\n"
|
msgstr "Ungültiger Name für Datenbank-Eintrag '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "Doppelter Datenbank-Eintrag '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "Beschädigter Datenbank-Eintrag '%s'\n"
|
msgstr "Beschädigter Datenbank-Eintrag '%s'\n"
|
||||||
@@ -159,14 +159,14 @@ msgstr "Fehler beim Lesen des Paketes %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "Fehlende Paket-Metadaten in %s\n"
|
msgstr "Fehlende Paket-Metadaten in %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "Versuche die lokale Datenbank neu zu registrieren\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "Datenbank-Pfad ist nicht definiert\n"
|
msgstr "Datenbank-Pfad ist nicht definiert\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "Versuche die lokale Datenbank neu zu registrieren\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "Abhängigkeits-Zyklus entdeckt:\n"
|
msgstr "Abhängigkeits-Zyklus entdeckt:\n"
|
||||||
@@ -191,34 +191,30 @@ msgstr "Bereitstellendes Paket wurde ausgewählt (%s enthält %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "Kann \"%s\" nicht auflösen (eine Abhängigkeit von \"%s\")\n"
|
msgstr "Kann \"%s\" nicht auflösen (eine Abhängigkeit von \"%s\")\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "URL '%s' ist ungültig\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "URL-Schema nicht spezifiziert, vermute HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "Platte"
|
msgstr "Platte"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "URL '%s' ist ungültig\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "Konnte Datei '%s' nicht von %s übertragen : %s\n"
|
msgstr "Konnte Datei '%s' nicht von %s übertragen : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "Kann den Download nicht wieder aufnehmen, starte neu\n"
|
msgstr "Kann den Download von %s wieder aufnehmen, starte neu\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "Kann Datei '%s' nicht beschreiben\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "Fehler beim Beschreiben von Datei '%s': %s\n"
|
msgstr "Fehler beim Beschreiben von Datei '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "Konnte Datei '%s' nicht von %s übertragen\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s scheint verstümmelt zu sein: %jd/%jd Byte\n"
|
msgstr "%s scheint verstümmelt zu sein: %jd/%jd Byte\n"
|
||||||
@@ -353,8 +349,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "Der Dateiname des Paketes ist nicht gültig"
|
msgstr "Der Dateiname des Paketes ist nicht gültig"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "Kein solches Repositorium"
|
msgstr "Die Paket-Architektur ist ungültig"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "Konnte kein Repositorium für das Ziel finden"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -404,6 +404,10 @@ msgstr "Unerwarteter Fehler"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "Konnte %s nicht in Datenbank finden -- Überspringe\n"
|
msgstr "Konnte %s nicht in Datenbank finden -- Überspringe\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "Entferne '%s' aus der Ziel-Liste\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "Kann Datei '%s' nicht entfernen: %s\n"
|
msgstr "Kann Datei '%s' nicht entfernen: %s\n"
|
||||||
@@ -440,10 +444,6 @@ msgstr "Ignoriere Paket-Ersetzung (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "Kann %s nicht durch %s ersetzen\n"
|
msgstr "Kann %s nicht durch %s ersetzen\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "Repositorium '%s' nicht gefunden\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s ist aktuell -- Überspringe\n"
|
msgstr "%s-%s ist aktuell -- Überspringe\n"
|
||||||
@@ -456,6 +456,10 @@ msgstr "%s-%s ist aktuell -- Reinstalliere\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "Downgrade des Paketes %s (%s => %s)\n"
|
msgstr "Downgrade des Paketes %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "Überspringe das Ziel: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "Nicht lösbare Paketkonflikte gefunden\n"
|
msgstr "Nicht lösbare Paketkonflikte gefunden\n"
|
||||||
@@ -468,26 +472,6 @@ msgstr "Entferne '%s' aus der Ziel-Liste, da es mit '%s' in Konflikt steht\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "Konnte manche Dateien von %s nicht übertragen\n"
|
msgstr "Konnte manche Dateien von %s nicht übertragen\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "Konnte den Lösch-Vorgang nicht erstellen\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "Konnte den Vorgang nicht erstellen\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "Konnte den Lösch-Vorgang nicht beginnen\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "Konnte den Vorgang nicht beginnen\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "Konnte Lösch-Vorgang nicht vorbereiten\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "Konnte Lösch-Vorgang nicht durchführen\n"
|
msgstr "Konnte Lösch-Vorgang nicht durchführen\n"
|
||||||
@@ -512,10 +496,6 @@ msgstr "Konnte temporäre Datei nicht nach %s kopieren (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "Konnte temporäres Verzeichnis %s nicht entfernen\n"
|
msgstr "Konnte temporäres Verzeichnis %s nicht entfernen\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "Konnte Datei %s nicht öffnen: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "Konnte nicht zu Verzeichnis %s wechseln (%s)\n"
|
msgstr "Konnte nicht zu Verzeichnis %s wechseln (%s)\n"
|
||||||
@@ -533,8 +513,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "Konnte nicht zu Verzeichnis / (%s) wechseln\n"
|
msgstr "Konnte nicht zu Verzeichnis / (%s) wechseln\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "Aufruf von 'popen' fehlgeschlagen (%s)"
|
msgstr "Aufruf von 'popen' fehlgeschlagen (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
|||||||
567
lib/libalpm/po/el.po
Normal file
567
lib/libalpm/po/el.po
Normal file
@@ -0,0 +1,567 @@
|
|||||||
|
# Greek translations for Pacman package manager package.
|
||||||
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
|
#
|
||||||
|
# Christos Nouskas <nous@archlinux.us>, 2009, 2010.
|
||||||
|
# Χρήστος Νούσκας (Christos Nouskas) <nous@archlinux.us>, 2010.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
|
"PO-Revision-Date: 2010-06-09 23:02+0300\n"
|
||||||
|
"Last-Translator: Χρήστος Νούσκας (Christos Nouskas) <nous@archlinux.us>\n"
|
||||||
|
"Language-Team: Greek <>\n"
|
||||||
|
"Language: Greek\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Lokalize 1.0\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
|
msgstr ""
|
||||||
|
"αντικατάσταση παλαιότερης έκδοσης %s-%s από %s στην λίστα διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
msgstr ""
|
||||||
|
"παράλειψη %s-%s καθώς υπάρχει νεότερη έκδοση %s στην λίστα διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"directory permissions differ on %s\n"
|
||||||
|
"filesystem: %o package: %o\n"
|
||||||
|
msgstr ""
|
||||||
|
"τα δικαιώματα καταλόγου διαφέρουν στο %s\n"
|
||||||
|
"σύστημα αρχείων: %o πακέτο: %o\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: not overwriting dir with file %s\n"
|
||||||
|
msgstr "εξαγωγή: μη αντικατάσταση καταλόγου από αρχείο %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: symlink %s does not point to dir\n"
|
||||||
|
msgstr "εξαγωγή: ο συμβολικός δεσμός %s δεν δείχνει σε κατάλογο\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not extract %s (%s)\n"
|
||||||
|
msgstr "αδυναμία εξαγωγής %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not rename %s to %s (%s)\n"
|
||||||
|
msgstr "αδυναμία μετονομασίας %s σε %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s saved as %s\n"
|
||||||
|
msgstr "αποθήκευση %s ως %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not install %s as %s (%s)\n"
|
||||||
|
msgstr "αδυναμία εγκατάστασης %s ως %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s installed as %s\n"
|
||||||
|
msgstr "εγκατάσταση %s ως %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extracting %s as %s.pacnew\n"
|
||||||
|
msgstr "εξαγωγή %s ως %s.pacnew\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not get current working directory\n"
|
||||||
|
msgstr "αδυναμία χρήσης τρέχοντος καταλόγου\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while upgrading %s\n"
|
||||||
|
msgstr "πρόβλημα κατά την αναβάθμιση του %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while installing %s\n"
|
||||||
|
msgstr "πρόβλημα κατά την εγκατάσταση του %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database entry %s-%s\n"
|
||||||
|
msgstr "αδυναμία ενημέρωσης εγγραφής %s-%s στην βάση\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not add entry '%s' in cache\n"
|
||||||
|
msgstr "αδυναμία προσθήκης εγγραφής '%s' στην κρύπτη\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "διαγραφή άκυρης βάσης: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "αδυναμία ανάγνωσης %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "αδυναμία διαγραφής καταλόγου βάσης %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database %s\n"
|
||||||
|
msgstr "αδυναμία διαγραφής βάσης %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid name for database entry '%s'\n"
|
||||||
|
msgstr "άκυρο όνομα εγγραφής βάσης '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "διπλότυπη εγγραφή βάσης '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "corrupted database entry '%s'\n"
|
||||||
|
msgstr "κατεστραμμένη εγγραφή βάσης '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open file %s: %s\n"
|
||||||
|
msgstr "αδυναμία ανάγνωσης αρχείου %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
|
msgstr "ανακολουθία στην βάση %s: ασυμφωνία ονόματος πακέτου %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
|
msgstr "ανακολουθία στην βάση %s: ασυμφωνία έκδοσης πακέτου %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create directory %s: %s\n"
|
||||||
|
msgstr "αδυναμία δημιουργίας καταλόγου %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not parse package description file in %s\n"
|
||||||
|
msgstr "αδυναμία ανάλυσης αρχείου περιγραφής πακέτου στο %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package name in %s\n"
|
||||||
|
msgstr "απόν όνομα πακέτου στο %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package version in %s\n"
|
||||||
|
msgstr "απούσα έκδοση πακέτου στο %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error while reading package %s: %s\n"
|
||||||
|
msgstr "σφάλμα ανάγνωσης πακέτου %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package metadata in %s\n"
|
||||||
|
msgstr "απόντα μετα-δεδομένα πακέτου στο %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database path is undefined\n"
|
||||||
|
msgstr "ακαθόριστη διαδρομή βάσης\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "προσπάθεια επανακαταχώρησης 'τοπικής' βάσης\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "dependency cycle detected:\n"
|
||||||
|
msgstr "εντοπισμός κυκλικής εξάρτησης:\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
|
msgstr "κατάργηση του %s μετά την εξάρτησή του %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
|
msgstr "εγκατάσταση του %s πρίν από την εξάρτησή του %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package %s-%s\n"
|
||||||
|
msgstr "παράβλεψη πακέτου %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "provider package was selected (%s provides %s)\n"
|
||||||
|
msgstr "επιλογή παρέχοντος πακέτου (το %s παρέχει το %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
msgstr "αδυναμία εύρεσης του \"%s\", εξάρτησης του \"%s\"\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "disk"
|
||||||
|
msgstr "δίσκο"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "άκυρη διεύθυνση '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
msgstr "αποτυχία λήψης αρχείου '%s' από %s : %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
|
msgstr "συνέχιση λήψης %s αδύνατη, επανεκκίνηση\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error writing to file '%s': %s\n"
|
||||||
|
msgstr "σφάλμα εγγραφής στο '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "αποτυχία λήψης αρχείου '%s' από %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
|
msgstr "το %s δείχνει ημιτελές: %jd/%jd bytes\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to download %s\n"
|
||||||
|
msgstr "αποτυχία λήψης %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "out of memory!"
|
||||||
|
msgstr "ανεπαρκής μνήμη!"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected system error"
|
||||||
|
msgstr "απροσδόκητο σφάλμα συστήματος"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "insufficient privileges"
|
||||||
|
msgstr "ανεπαρκή προνόμια"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read file"
|
||||||
|
msgstr "αδυναμία εύρεσης ή ανάγνωσης αρχείου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read directory"
|
||||||
|
msgstr "αδυναμία εύρεσης ή ανάγνωσης καταλόγου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "wrong or NULL argument passed"
|
||||||
|
msgstr "εσφαλμένο ή NULL όρισμα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library not initialized"
|
||||||
|
msgstr "βιβλιοθήκη μη εκκινηθείσα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library already initialized"
|
||||||
|
msgstr "βιβλιοθήκη ήδη εκκινηθείσα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unable to lock database"
|
||||||
|
msgstr "αδυναμία κλειδώματος βάσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open database"
|
||||||
|
msgstr "αδυναμία ανάγνωσης βάσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create database"
|
||||||
|
msgstr "αδυναμία δημιουργίας βάσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database not initialized"
|
||||||
|
msgstr "βάση μη εκκινηθείσα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database already registered"
|
||||||
|
msgstr "βάση ήδη εκκινηθείσα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find database"
|
||||||
|
msgstr "αδυναμία εύρεσης βάσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database"
|
||||||
|
msgstr "αδυναμία ενημέρωσης βάσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry"
|
||||||
|
msgstr "αδυναμία κατάργησης εγγραφής βάσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid url for server"
|
||||||
|
msgstr "άκυρη διεύθυνση διακομιστή"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no servers configured for repository"
|
||||||
|
msgstr "ακαθόριστοι διακομιστές αποθήκης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction already initialized"
|
||||||
|
msgstr "διεκπεραίωση ήδη εκκινηθείσα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not initialized"
|
||||||
|
msgstr "διεκπεραίωση μη εκκινηθείσα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicate target"
|
||||||
|
msgstr "διπλότυπος στόχος"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not prepared"
|
||||||
|
msgstr "απροετοίμαστη διεκπεραίωση"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction aborted"
|
||||||
|
msgstr "ματαίωση διεκπεραίωσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation not compatible with the transaction type"
|
||||||
|
msgstr "λειτουργία ασύμβατη με τον τύπο διεκπεραίωσης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction commit attempt when database is not locked"
|
||||||
|
msgstr "προσπάθεια διεκπεραίωσης σε μη κλειδωμένη βάση"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read package"
|
||||||
|
msgstr "αδυναμία εύρεσης ή ανάγνωσης πακέτου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation cancelled due to ignorepkg"
|
||||||
|
msgstr "ακύρωση λειτουργίας λόγω ignorepkg"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted package"
|
||||||
|
msgstr "άκυρο ή κατεστραμμένο πακέτο"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open package file"
|
||||||
|
msgstr "αδυναμία ανοίγματος πακέτου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove all files for package"
|
||||||
|
msgstr "αδυναμία διαγραφής όλων των αρχείων του πακέτου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package filename is not valid"
|
||||||
|
msgstr "μη έγκυρο όνομα πακέτου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package architecture is not valid"
|
||||||
|
msgstr "μη έγκυρη αρχιτεκτονική πακέτου"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "αδυναμία εύρεσης αποθήκης για διεκπεραίωση"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted delta"
|
||||||
|
msgstr "άκυρο ή κατεστραμμένο delta"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "delta patch failed"
|
||||||
|
msgstr "αποτυχία μπάλωματος delta"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not satisfy dependencies"
|
||||||
|
msgstr "αδυναμία επίλυσης εξαρτήσεων"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting dependencies"
|
||||||
|
msgstr "διένεξη εξαρτήσεων"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting files"
|
||||||
|
msgstr "διένεξη αρχείων"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files"
|
||||||
|
msgstr "αποτυχία λήψης κάποιων αρχείων"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid regular expression"
|
||||||
|
msgstr "άκυρη κανονική έκφραση"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "libarchive error"
|
||||||
|
msgstr "σφάλμα libarchive"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "download library error"
|
||||||
|
msgstr "σφάλμα βιβλιοθήκης λήψης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error invoking external downloader"
|
||||||
|
msgstr "σφάλμα κλήσης προγράμματος λήψης"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected error"
|
||||||
|
msgstr "απροσδόκητο σφάλμα"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find %s in database -- skipping\n"
|
||||||
|
msgstr "δεν βρέθηκε το %s στη βάση -- παράλειψη\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "αφαίρεση του %s από λίστα διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove file '%s': %s\n"
|
||||||
|
msgstr "αδυναμία διαγραφής αρχείου '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry %s-%s\n"
|
||||||
|
msgstr "αδυναμία διαγραφής εγγραφής βάσης %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
|
msgstr "αδυναμία διαγραφής εγγραφής '%s' από κρύπτη\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: παράβλεψη αναβάθμισης πακέτου (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: παράβλεψη υποβάθμισης πακέτου (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
|
msgstr "%s: υποβάθμιση από έκδοση %s στην έκδοση %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: local (%s) is newer than %s (%s)\n"
|
||||||
|
msgstr "%s: τοπικό (%s) νεότερο από του [%s] (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
|
||||||
|
msgstr "παράβλεψη αντικαταστάτη πακέτου (%s-%s => %s-%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot replace %s by %s\n"
|
||||||
|
msgstr "αδυναμία αντικατάστασης του %s από το %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
|
msgstr "%s-%s ενημερωμένο -- παράλειψη\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
|
msgstr "%s-%s ενημερωμένο -- επανεγκατάσταση\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
|
msgstr "υποβάθμιση πακέτου %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "παράλειψη στόχου: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unresolvable package conflicts detected\n"
|
||||||
|
msgstr "εντοπισμός ανεπίλυτων διενέξεων πακέτων\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
|
msgstr ""
|
||||||
|
"αφαίρεση του '%s' από την λίστα διεκπεραίωσης λόγω διένεξης με το '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files from %s\n"
|
||||||
|
msgstr "αποτυχία λήψεως κάποιων αρχείων από %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit removal transaction\n"
|
||||||
|
msgstr "αδυναμία διεκπεραίωσης διαγραφής\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit transaction\n"
|
||||||
|
msgstr "αδυναμία διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove lock file %s\n"
|
||||||
|
msgstr "αδυναμία διαγραφής αρχείου κλειδώματος %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create temp directory\n"
|
||||||
|
msgstr "αδυναμία δημιουργίας προσωρινού καταλόγου\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not copy tempfile to %s (%s)\n"
|
||||||
|
msgstr "αδυναμία αντιγραφής προσωρινού αρχείου στο %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove tmpdir %s\n"
|
||||||
|
msgstr "αδυναμία διαγραφής προσωρινού καταλόγου %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to %s (%s)\n"
|
||||||
|
msgstr "αδυναμία μετάβασης στον κατάλογο %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not fork a new process (%s)\n"
|
||||||
|
msgstr "αποτυχία εκκίνησης νέας διεργασίας (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change the root directory (%s)\n"
|
||||||
|
msgstr "αδυναμία αλλαγής ριζικού καταλόγου (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to / (%s)\n"
|
||||||
|
msgstr "αδυναμία αλλαγής καταλόγου σε / (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to popen failed (%s)\n"
|
||||||
|
msgstr "αποτυχία κλήσης popen (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
msgstr "αποτυχία κλήσης waitpid (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "command failed to execute correctly\n"
|
||||||
|
msgstr "αποτυχία σωστής εκτέλεσης εντολής\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no %s cache exists, creating...\n"
|
||||||
|
msgstr "δημιουργία κρύπτης %s...\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
|
msgstr "αδυναμία δημιουργίας κρύπτης πακέτων, χρήση /tmp\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "βρέθηκαν αντιτιθέμενα πακέτα στην λίστα διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "δεν επιτρέπεται η ταυτόχρονη εγκατάσταση δύο αντιτιθεμένων πακέτων\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "η αντικατάσταση πακέτων με όρισμα -U δεν υποστηρίζεται ακόμη\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "η αντικατάσταση πακέτων μπορεί να γίνει χειροκίνητα με -Rd and -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "ακαθόριστο πρωτόκολλο url, εικάζεται HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "αδυναμία εγγραφής στο '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "δεν υπάρχει τέτοια αποθήκη"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "δεν βρέθηκε αποθήκη'%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "αδυναμία διεκπεραίωσης κατάργησης\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "αδυναμία δημιουργίας διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "αδυναμία εκκίνησης κατάργησης\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "αδυναμία εκκίνησης διεκπεραίωσης\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "αδυναμία προετοιμασίας κατάργησης\n"
|
||||||
@@ -1,16 +1,16 @@
|
|||||||
# English (British) translations for Pacman package manager package.
|
# English (British) translations for Pacman package manager package.
|
||||||
# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
#
|
|
||||||
# Jeff Bailes <thepizzaking@gmail.com>, 2007, 2009.
|
# Jeff Bailes <thepizzaking@gmail.com>, 2007, 2009.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.0.0\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-30 18:37+1000\n"
|
"PO-Revision-Date: 2009-10-04 17:08+0200\n"
|
||||||
"Last-Translator: Jeff Bailes <thepizzaking@gmail.com>\n"
|
"Last-Translator: Dan McGee <dpmcgee@gmail.com>\n"
|
||||||
"Language-Team: English <en_gb@li.org>\n"
|
"Language-Team: English <en_gb@li.org>\n"
|
||||||
|
"Language: en\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -21,24 +21,8 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "replacing older version %s-%s by %s in target list\n"
|
msgstr "replacing older version %s-%s by %s in target list\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "skipping %s-%s because newer version %s is in the target list\n"
|
msgstr "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "conflicting packages were found in the target list\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "you cannot install two conflicting packages at the same time\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "replacing packages with -U is not supported yet\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "you can replace packages manually using -Rd and -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -100,6 +84,18 @@ msgstr "could not update database entry %s-%s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "could not add entry '%s' in cache\n"
|
msgstr "could not add entry '%s' in cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "removing invalid database: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "could not open %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "could not remove database directory %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "could not remove database %s\n"
|
msgstr "could not remove database %s\n"
|
||||||
@@ -108,6 +104,10 @@ msgstr "could not remove database %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "invalid name for database entry '%s'\n"
|
msgstr "invalid name for database entry '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "duplicated database entry '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "corrupted database entry '%s'\n"
|
msgstr "corrupted database entry '%s'\n"
|
||||||
@@ -148,14 +148,14 @@ msgstr "error while reading package %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "missing package metadata in %s\n"
|
msgstr "missing package metadata in %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "attempt to re-register the 'local' DB\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "database path is undefined\n"
|
msgstr "database path is undefined\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "attempt to re-register the 'local' DB\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "dependency cycle detected:\n"
|
msgstr "dependency cycle detected:\n"
|
||||||
@@ -180,34 +180,30 @@ msgstr "provider package was selected (%s provides %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgstr "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "URL '%s' is invalid\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "URL scheme not specified, assuming HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disk"
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "URL '%s' is invalid\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "failed retrieving file '%s' from %s : %s\n"
|
msgstr "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "cannot resume download, starting over\n"
|
msgstr "resuming download of %s not possible; starting over\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "cannot write to file '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "error writing to file '%s': %s\n"
|
msgstr "error writing to file '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "failed retrieving file '%s' from %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s appears to be truncated: %jd/%jd bytes\n"
|
msgstr "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
@@ -341,8 +337,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "package filename is not valid"
|
msgstr "package filename is not valid"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "no such repository"
|
msgstr "package architecture is not valid"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "could not find repository for target"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -392,6 +392,10 @@ msgstr "unexpected error"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "could not find %s in database -- skipping\n"
|
msgstr "could not find %s in database -- skipping\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "removing %s from target list\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "cannot remove file '%s': %s\n"
|
msgstr "cannot remove file '%s': %s\n"
|
||||||
@@ -428,10 +432,6 @@ msgstr "ignoring package replacement (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "cannot replace %s by %s\n"
|
msgstr "cannot replace %s by %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "repository '%s' not found\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s is up to date -- skipping\n"
|
msgstr "%s-%s is up to date -- skipping\n"
|
||||||
@@ -444,6 +444,10 @@ msgstr "%s-%s is up to date -- reinstalling\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "downgrading package %s (%s => %s)\n"
|
msgstr "downgrading package %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "skipping target: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "unresolvable package conflicts detected\n"
|
msgstr "unresolvable package conflicts detected\n"
|
||||||
@@ -456,26 +460,6 @@ msgstr "removing '%s' from target list because it conflicts with '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "failed to retrieve some files from %s\n"
|
msgstr "failed to retrieve some files from %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "could not create removal transaction\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "could not create transaction\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "could not initialise the removal transaction\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "could not initialise transaction\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "could not prepare removal transaction\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "could not commit removal transaction\n"
|
msgstr "could not commit removal transaction\n"
|
||||||
@@ -500,10 +484,6 @@ msgstr "could not copy tempfile to %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "could not remove tmpdir %s\n"
|
msgstr "could not remove tmpdir %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "could not open %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "could not change directory to %s (%s)\n"
|
msgstr "could not change directory to %s (%s)\n"
|
||||||
@@ -521,8 +501,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "could not change directory to / (%s)\n"
|
msgstr "could not change directory to / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "call to popen failed (%s)"
|
msgstr "call to popen failed (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -539,48 +519,3 @@ msgstr "no %s cache exists, creating...\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "couldn't create package cache, using /tmp instead\n"
|
msgstr "couldn't create package cache, using /tmp instead\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
|
||||||
#~ msgstr "error downloading '%s': %s\n"
|
|
||||||
|
|
||||||
#~ msgid "could not chdir to %s\n"
|
|
||||||
#~ msgstr "could not chdir to %s\n"
|
|
||||||
|
|
||||||
#~ msgid "running XferCommand: fork failed!\n"
|
|
||||||
#~ msgstr "running XferCommand: fork failed!\n"
|
|
||||||
|
|
||||||
#~ msgid "could not commit transaction"
|
|
||||||
#~ msgstr "could not commit transaction"
|
|
||||||
|
|
||||||
#~ msgid "could not download all files"
|
|
||||||
#~ msgstr "could not download all files"
|
|
||||||
|
|
||||||
#~ msgid "cannot load package data"
|
|
||||||
#~ msgstr "cannot load package data"
|
|
||||||
|
|
||||||
#~ msgid "package not installed or lesser version"
|
|
||||||
#~ msgstr "package not installed or lesser version"
|
|
||||||
|
|
||||||
#~ msgid "group not found"
|
|
||||||
#~ msgstr "group not found"
|
|
||||||
|
|
||||||
#~ msgid "user aborted the operation"
|
|
||||||
#~ msgstr "user aborted the operation"
|
|
||||||
|
|
||||||
#~ msgid "internal error"
|
|
||||||
#~ msgstr "internal error"
|
|
||||||
|
|
||||||
#~ msgid "not confirmed"
|
|
||||||
#~ msgstr "not confirmed"
|
|
||||||
|
|
||||||
#~ msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"
|
|
||||||
#~ msgstr "%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"
|
|
||||||
|
|
||||||
#~ msgid "command: %s\n"
|
|
||||||
#~ msgstr "command: %s\n"
|
|
||||||
|
|
||||||
#~ msgid "could not prepare transaction\n"
|
|
||||||
#~ msgstr "could not prepare transaction\n"
|
|
||||||
|
|
||||||
#~ msgid "No /bin/sh in parent environment, aborting scriptlet\n"
|
|
||||||
#~ msgstr "No /bin/sh in parent environment, aborting scriptlet\n"
|
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
# Juan Pablo González Tognarelli <jotapesan@gmail.com>, 2008, 2009.
|
# Juan Pablo González Tognarelli <jotapesan@gmail.com>, 2008, 2009.
|
||||||
# Juan Pablo González Tognarelli <juan.gonzalez.tognarelli@gmail.com>, 2009.
|
# Juan Pablo González Tognarelli <juan.gonzalez.tognarelli@gmail.com>, 2009.
|
||||||
|
# Juan Pablo Gonzalez <jotapesan@gmail.com>, 2010.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: libalpm\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-29 11:51+0200\n"
|
"PO-Revision-Date: 2010-06-13 10:49-0400\n"
|
||||||
"Last-Translator: Juan Pablo González Tognarelli <juan.gonzalez."
|
"Last-Translator: Juan Pablo Gonzalez <jotapesan@gmail.com>\n"
|
||||||
"tognarelli@gmail.com>\n"
|
|
||||||
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
|
"Language-Team: Spanish <kde-i18n-doc@kde.org>\n"
|
||||||
|
"Language: es\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Poedit-Language: Spanish\n"
|
"X-Poedit-Language: Spanish\n"
|
||||||
"X-Poedit-Country: CHILE\n"
|
"X-Poedit-Country: CHILE\n"
|
||||||
"X-Poedit-SourceCharset: utf-8\n"
|
"X-Poedit-SourceCharset: utf-8\n"
|
||||||
"X-Generator: Lokalize 0.3\n"
|
"X-Generator: Lokalize 1.0\n"
|
||||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
@@ -23,27 +24,12 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"reemplazando la versión antigua %s-%s por %s en la lista de objetivos\n"
|
"reemplazando la versión antigua %s-%s por %s en la lista de objetivos\n"
|
||||||
|
|
||||||
|
# , c-format
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "saltando %s-%s debido a que una nueva versión de %s esta en la lista\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "paquetes con conflictos fueron encontrados en la lista\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"usted no puede instalar simultáneamente dos paquetes que poseen conflictos "
|
"saltando %s-%s debido a la nueva versión de %s esta en la lista de "
|
||||||
"entre si\n"
|
"objetivos\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "reemplazar paquetes con -U aún no esta soportado\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "usted puede reemplazar manualmente los paquetes usando -Rd y -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -105,6 +91,19 @@ msgstr "no se pudo actualizar en la base de datos la entrada %s-%s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "no se pudo agregar '%s' en la cache\n"
|
msgstr "no se pudo agregar '%s' en la cache\n"
|
||||||
|
|
||||||
|
# , c-format
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "quitando la base de datos inválida: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "no se pudo abrir %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "no se pudo quitar el directorio de la base de datos %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "no se pudo quitar la base de datos %s\n"
|
msgstr "no se pudo quitar la base de datos %s\n"
|
||||||
@@ -113,6 +112,10 @@ msgstr "no se pudo quitar la base de datos %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "nombre invalido para la entrada de la base de datos '%s'\n"
|
msgstr "nombre invalido para la entrada de la base de datos '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "entrada duplicada en la base de datos '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "entrada corrupta en la base de datos '%s'\n"
|
msgstr "entrada corrupta en la base de datos '%s'\n"
|
||||||
@@ -124,14 +127,14 @@ msgstr "no se pudo abrir el archivo %s: %s\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"la base de datos %s es inconsistente: nombre mal emparejado en el paquete %"
|
"la base de datos %s es inconsistente: nombre mal emparejado en el paquete "
|
||||||
"s\n"
|
"%s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"la base de datos %s es inconsistente: versión mal emparejada en el paquete %"
|
"la base de datos %s es inconsistente: versión mal emparejada en el paquete "
|
||||||
"s\n"
|
"%s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not create directory %s: %s\n"
|
msgid "could not create directory %s: %s\n"
|
||||||
@@ -157,14 +160,14 @@ msgstr "error mientras se leía el paquete %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "faltan los metadatos del paquete en %s\n"
|
msgstr "faltan los metadatos del paquete en %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "intento para re-registrar la base de datos 'local'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "la ruta para la base de datos no está definida\n"
|
msgstr "la ruta para la base de datos no está definida\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "intento para re-registrar la base de datos 'local'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "ciclo de dependencias detectado:\n"
|
msgstr "ciclo de dependencias detectado:\n"
|
||||||
@@ -189,34 +192,30 @@ msgstr "El paquete proveedor fue seleccionado (%s provee %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "no se pudo resolver \"%s\", una dependencia para \"%s\"\n"
|
msgstr "no se pudo resolver \"%s\", una dependencia para \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "la url %s no es válida\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "no fue especificado el esquema de url, asumiendo HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disco"
|
msgstr "disco"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "la url %s no es válida\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "falló al obtener archivo '%s' desde %s: %s\n"
|
msgstr "falló al obtener archivo '%s' desde %s: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "no se puede resumir la descarga, empezando de nuevo\n"
|
msgstr "no es posible continuar la descarga de %s; empezando de nuevo\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "no se puede escribir en el archivo '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "no se pudo escribir al archivo '%s': %s\n"
|
msgstr "no se pudo escribir al archivo '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "falló al obtener archivo '%s' desde %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s parece estar truncado: %jd/%jd bytes\n"
|
msgstr "%s parece estar truncado: %jd/%jd bytes\n"
|
||||||
@@ -247,7 +246,7 @@ msgstr "no se pudo leer el directorio"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "wrong or NULL argument passed"
|
msgid "wrong or NULL argument passed"
|
||||||
msgstr "argumento erroneo o NULO"
|
msgstr "se pasó un argumento erróneo o NULO"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "library not initialized"
|
msgid "library not initialized"
|
||||||
@@ -351,8 +350,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "el nombre de archivo del paquete no es válido"
|
msgstr "el nombre de archivo del paquete no es válido"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "no existe el repositorio"
|
msgstr "no es válida la arquitectura del paquete"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "no pudo encontrarse un repositorio para el objetivo"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -360,7 +363,7 @@ msgstr "invalido o diferencial corrupto"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "delta patch failed"
|
msgid "delta patch failed"
|
||||||
msgstr "parche delta fallado"
|
msgstr "parche diferencial fallado"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not satisfy dependencies"
|
msgid "could not satisfy dependencies"
|
||||||
@@ -402,6 +405,11 @@ msgstr "error inesperado"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "no se pudo encontrar %s en la base de datos -- saltando\n"
|
msgstr "no se pudo encontrar %s en la base de datos -- saltando\n"
|
||||||
|
|
||||||
|
# , c-format
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "quitando %s de la lista de objetivos\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "no se pudo quitar el archivo '%s': %s\n"
|
msgstr "no se pudo quitar el archivo '%s': %s\n"
|
||||||
@@ -438,10 +446,6 @@ msgstr "ignorando el reemplazo del paquete (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "no se pudo reemplazar el archivo %s por %s\n"
|
msgstr "no se pudo reemplazar el archivo %s por %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "repositorio '%s' no encontrado\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s esta al día -- saltando\n"
|
msgstr "%s-%s esta al día -- saltando\n"
|
||||||
@@ -454,6 +458,10 @@ msgstr "%s-%s esta al día -- re-instalando\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "decrementando la versión del paquete %s (%s => %s)\n"
|
msgstr "decrementando la versión del paquete %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "saltando el objetivo: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "se han detectado paquetes con conflictos no resueltos\n"
|
msgstr "se han detectado paquetes con conflictos no resueltos\n"
|
||||||
@@ -461,33 +469,13 @@ msgstr "se han detectado paquetes con conflictos no resueltos\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"quitando '%s' de la lista de objetivos debido a que posee conflictos con '%"
|
"quitando '%s' de la lista de objetivos debido a que posee conflictos con "
|
||||||
"s'\n"
|
"'%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "falló al descargar algunos archivos desde %s\n"
|
msgstr "falló al descargar algunos archivos desde %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "no se pudo crear la operación de eliminación\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "no se pudo crear la operación\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "no se pudo iniciar la operación de eliminación\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "no se pudo iniciar la operación\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "no se pudo preparar la operación de eliminación\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "no se pudo enviar la operación de eliminación\n"
|
msgstr "no se pudo enviar la operación de eliminación\n"
|
||||||
@@ -512,10 +500,6 @@ msgstr "no se pudo copiar el archivo temporal a %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "no se pudo eliminar el directorio temporal %s\n"
|
msgstr "no se pudo eliminar el directorio temporal %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "no se pudo abrir %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "no se pudo cambiar el directorio a %s (%s)\n"
|
msgstr "no se pudo cambiar el directorio a %s (%s)\n"
|
||||||
@@ -532,9 +516,10 @@ msgstr "no se pudo cambiar el directorio raíz (%s)\n"
|
|||||||
msgid "could not change directory to / (%s)\n"
|
msgid "could not change directory to / (%s)\n"
|
||||||
msgstr "no se pudo cambiar el directorio a / (%s)\n"
|
msgstr "no se pudo cambiar el directorio a / (%s)\n"
|
||||||
|
|
||||||
|
# , c-format
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "llamada a popen fallida (%s)"
|
msgstr "falló la llamada a popen (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -551,3 +536,45 @@ msgstr "no existe la cache %s, creando...\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "no se pudo crear la cache de paquetes, usando /tmp en su lugar\n"
|
msgstr "no se pudo crear la cache de paquetes, usando /tmp en su lugar\n"
|
||||||
|
|
||||||
|
# , c-format
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "se encontraron paquetes con conflictos en la lista de objetivos\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "usted no puede instalar simultáneamente dos paquetes que poseen "
|
||||||
|
#~ "conflictos entre si\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "reemplazar paquetes con -U aún no esta soportado\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "usted puede reemplazar manualmente los paquetes usando -Rd y -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "no fue especificado el esquema de url, asumiendo HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "no se puede escribir en el archivo '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "no existe el repositorio"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "repositorio '%s' no encontrado\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "no se pudo crear la operación de eliminación\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "no se pudo crear la operación\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "no se pudo iniciar la operación de eliminación\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "no se pudo iniciar la operación\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "no se pudo preparar la operación de eliminación\n"
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
# French translations for Pacman package manager package.
|
# French translations for Pacman package manager package.
|
||||||
# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.0.1\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-28 14:01+0200\n"
|
"PO-Revision-Date: 2010-06-06 20:26+0200\n"
|
||||||
"Last-Translator: Xavier <shiningxc@gmail.com>\n"
|
"Last-Translator: Xavier <shiningxc@gmail.com>\n"
|
||||||
"Language-Team: solsTiCe d'Hiver <solstice.dhiver@laposte.net>\n"
|
"Language-Team: solsTiCe d'Hiver <solstice.dhiver@laposte.net>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -21,28 +22,11 @@ msgstr ""
|
|||||||
"remplacement de l'ancienne version %s-%s par %s dans la liste des cibles\n"
|
"remplacement de l'ancienne version %s-%s par %s dans la liste des cibles\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ignore le paquet %s-%s car une version plus récente %s est dans la liste des "
|
"ignore le paquet %s-%s car une version plus récente %s est dans la liste des "
|
||||||
"cibles\n"
|
"cibles\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "des paquets en conflit ont été trouvés dans la liste des cibles\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "vous ne pouvez pas installer deux paquets en conflit en même temps\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "remplacer un paquet avec -U n'est pas encore possible\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr ""
|
|
||||||
"vous pouvez remplacer les paquets manuellement en utilisant -Rd et -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -104,6 +88,18 @@ msgstr "la mise à jour l'entrée de base de données %s-%s a échoué\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "l'ajout au cache de l'entrée '%s' a échoué\n"
|
msgstr "l'ajout au cache de l'entrée '%s' a échoué\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "suppression d'une base de données invalide: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "l'ouverture de %s: %s a échoué\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "la suppression de la base de données %s a échoué\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "la suppression de la base de données %s a échoué\n"
|
msgstr "la suppression de la base de données %s a échoué\n"
|
||||||
@@ -112,6 +108,10 @@ msgstr "la suppression de la base de données %s a échoué\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "nom invalide pour l'entrée de base de données '%s'\n"
|
msgstr "nom invalide pour l'entrée de base de données '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "l'entrée '%s' de la base de données est dupliquée\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "l'entrée '%s' de la base de données est corrompue\n"
|
msgstr "l'entrée '%s' de la base de données est corrompue\n"
|
||||||
@@ -152,14 +152,14 @@ msgstr "erreur lors de la lecture du paquet %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "méta-données du paquet manquantes dans %s\n"
|
msgstr "méta-données du paquet manquantes dans %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "tentative de ré-enregistrer la base de données locale\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "base de données non initialisée\n"
|
msgstr "base de données non initialisée\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "tentative de ré-enregistrer la base de données locale\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "cycle de dépendances détecté:\n"
|
msgstr "cycle de dépendances détecté:\n"
|
||||||
@@ -184,34 +184,30 @@ msgstr "Une provision a été sélectionnée (%s fournit %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "impossible de résoudre \"%s\", une dépendance de \"%s\"\n"
|
msgstr "impossible de résoudre \"%s\", une dépendance de \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "l'url '%s' est invalide\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "Le protocole n'a pas été spécifié dans l'url, assume http\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disque"
|
msgstr "disque"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "l'url '%s' est invalide\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "échec de récupération du fichier '%s' depuis %s : %s\n"
|
msgstr "échec de récupération du fichier '%s' depuis %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "le téléchargement ne peut pas être repris, relance\n"
|
msgstr "le téléchargement de %s ne peut pas être continué, reprise au début\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "écriture dans le fichier '%s' impossible\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "écriture dans le fichier '%s' impossible: %s\n"
|
msgstr "écriture dans le fichier '%s' impossible: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "échec de récupération du fichier '%s' depuis %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s est apparemment tronqué: %jd/%jd bytes\n"
|
msgstr "%s est apparemment tronqué: %jd/%jd bytes\n"
|
||||||
@@ -324,7 +320,7 @@ msgstr ""
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not find or read package"
|
msgid "could not find or read package"
|
||||||
msgstr "trouver ou de lire le paquet a échoué"
|
msgstr "impossible de trouver ou de lire le paquet"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "operation cancelled due to ignorepkg"
|
msgid "operation cancelled due to ignorepkg"
|
||||||
@@ -347,8 +343,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "nom de paquet invalide"
|
msgstr "nom de paquet invalide"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "ce dépôt n'existe pas"
|
msgstr "architecture invalide"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "impossible de trouver le dépôt pour la cible"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -398,6 +398,10 @@ msgstr "erreur non prévue"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "trouver %s dans la base de données a échoué -- ignoré\n"
|
msgstr "trouver %s dans la base de données a échoué -- ignoré\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "supprime %s de la liste de cible\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "suppression du fichier '%s' impossible: %s\n"
|
msgstr "suppression du fichier '%s' impossible: %s\n"
|
||||||
@@ -434,10 +438,6 @@ msgstr "ignore le remplacement du paquet (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "le remplacement de %s par %s est impossible\n"
|
msgstr "le remplacement de %s par %s est impossible\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "dépôt '%s' non trouvé\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s est à jour -- ignoré\n"
|
msgstr "%s-%s est à jour -- ignoré\n"
|
||||||
@@ -450,6 +450,10 @@ msgstr "%s-%s est à jour -- réinstalle\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "retourne à la version antérieure du paquet %s (%s => %s)\n"
|
msgstr "retourne à la version antérieure du paquet %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "omission de la cible: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "un conflit de paquets impossible à résoudre a été détecté\n"
|
msgstr "un conflit de paquets impossible à résoudre a été détecté\n"
|
||||||
@@ -462,26 +466,6 @@ msgstr "supprime '%s' de la liste de cible car il est en conflit avec '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "échec de récupération de certains fichiers depuis %s\n"
|
msgstr "échec de récupération de certains fichiers depuis %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "la création de la transaction de suppression a échoué\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "la création de la transaction a échoué\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "l'initialisation de la transaction de suppression a échoué\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "l'initialisation de la transaction a échoué\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "la préparation de la transaction de suppression a échoué\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "appliquer la transaction de suppression a échoué\n"
|
msgstr "appliquer la transaction de suppression a échoué\n"
|
||||||
@@ -506,10 +490,6 @@ msgstr "la copie du fichier temporaire vers %s a échoué (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "la suppression du répertoire temporaire %s a échoué\n"
|
msgstr "la suppression du répertoire temporaire %s a échoué\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "l'ouverture de %s: %s a échoué\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "changer de répertoire vers %s a échoué (%s)\n"
|
msgstr "changer de répertoire vers %s a échoué (%s)\n"
|
||||||
@@ -527,8 +507,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "changer de répertoire vers / a échoué (%s)\n"
|
msgstr "changer de répertoire vers / a échoué (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "l'appel de popen a échoué (%s)"
|
msgstr "l'appel de popen a échoué (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
# Hungarian translations for libalpm package.
|
# Hungarian translations for libalpm package.
|
||||||
# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the libalpm library.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Miklos Vajna <vmiklos@frugalware.org>, 2006.
|
# Miklos Vajna <vmiklos@frugalware.org>, 2006.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: hu\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2007-03-14 13:45+0100\n"
|
"PO-Revision-Date: 2009-10-04 17:08+0200\n"
|
||||||
"Last-Translator: Nagy Gabor <ngaba@bibl.u-szeged.hu>\n"
|
"Last-Translator: Nagy Gabor <ngaba@bibl.u-szeged.hu>\n"
|
||||||
"Language-Team: <hu@li.org>\n"
|
"Language-Team: <hu@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -22,25 +23,9 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "régebbi verzió (%s-%s) lecserélése %s verzióra a célok listájában\n"
|
msgstr "régebbi verzió (%s-%s) lecserélése %s verzióra a célok listájában\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "%s-%s kihagyása, mert újabb verzió (%s) van a célok között\n"
|
msgstr "%s-%s kihagyása, mert újabb verzió (%s) van a célok között\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "ütköző csomagokat találtam a célok között\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "nem telepíthető két ütköző csomag egyszerre\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "csomagok lecserélése még nem támogatott -U esetén\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "a -Rd és -U használatával elvégezhető a csere\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -101,17 +86,33 @@ msgstr "nem sikerült a(z) %s-%s adatbázisbejegyzés frissítése\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "sikertelen a '%s' bejegyzés hozzáadása a gyorsítótárhoz\n"
|
msgstr "sikertelen a '%s' bejegyzés hozzáadása a gyorsítótárhoz\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "hibás adatbázis eltávolítása: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "nem sikerült megnyitni a %s fájlt: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "nem sikerült eltávolítani a(z) %s adatbázis-könyvtárat\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "sikertelen a %s adatbázis-bejegyzés eltávolítása\n"
|
msgstr "sikertelen a(z) %s adatbázis eltávolítása\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "hibás név a '%s' adatbázis-bejegyzés számára\n"
|
msgstr "hibás név a '%s' adatbázis-bejegyzés számára\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "duplikált adatbázis-bejegyzés: '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "sérült adatbázis bejegyzés: '%s'\n"
|
msgstr "sérült adatbázis-bejegyzés: '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not open file %s: %s\n"
|
msgid "could not open file %s: %s\n"
|
||||||
@@ -149,14 +150,14 @@ msgstr "hiba a(z) %s csomag olvasása közben: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "hiányzó csomaginformációs fájl itt: %s\n"
|
msgstr "hiányzó csomaginformációs fájl itt: %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "kísérlet a 'local' adatbázis újraregisztrálására\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "az adatbázis-útvonal nincs megadva\n"
|
msgstr "az adatbázis-útvonal nincs megadva\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "kísérlet a 'local' adatbázis újraregisztrálására\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "körkörös függőséget észleltem:\n"
|
msgstr "körkörös függőséget észleltem:\n"
|
||||||
@@ -181,34 +182,30 @@ msgstr "közvetett csomagválasztás (%s szolgáltatja %s-t)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
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"
|
msgstr "nem sikerült a(z) \"%2$s\" csomag \"%1$s\" függőségét feloldani\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "a '%s' URL hibás\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "az URL séma nem definiált, http feltételezése\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "diszk"
|
msgstr "diszk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "a '%s' URL hibás\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
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"
|
msgstr "nem sikerült a(z) '%s' fájlt letölteni a %s helyről : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "nem tudom folytatni a letöltést, újrakezdem\n"
|
msgstr "nem tudom folytatni a(z) %s letöltését; újrakezdem\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "nem sikerült a(z) '%s' fájlba írni\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "hiba a(z) '%s' fájl írása során: %s\n"
|
msgstr "hiba a(z) '%s' fájl írása során: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "nem sikerült a(z) '%s' fájlt letölteni a %s helyről\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "úgy tűnik, hogy %s csonka: %jd/%jd bájt\n"
|
msgstr "úgy tűnik, hogy %s csonka: %jd/%jd bájt\n"
|
||||||
@@ -342,8 +339,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "érvénytelen csomagnév"
|
msgstr "érvénytelen csomagnév"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "nincs ilyen repó"
|
msgstr "érvénytelen csomag-architektúra"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "nem található repó a célcsomaghoz"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -393,6 +394,10 @@ msgstr "nemvárt hiba"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "nem található a(z) %s az adatbázisban -- kihagyás\n"
|
msgstr "nem található a(z) %s az adatbázisban -- kihagyás\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "%s eltávolítása a cél listából\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "nem sikerült eltávolítani a '%s' fájlt : %s\n"
|
msgstr "nem sikerült eltávolítani a '%s' fájlt : %s\n"
|
||||||
@@ -429,10 +434,6 @@ msgstr "csomag-lecserélés kihagyása (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "nem lehet lecserélni a(z) %s csomagot a(z) %s csomaggal\n"
|
msgstr "nem lehet lecserélni a(z) %s csomagot a(z) %s csomaggal\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "a(z) '%s' repó nem található\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "a(z) %s-%s naprakész -- kihagyás\n"
|
msgstr "a(z) %s-%s naprakész -- kihagyás\n"
|
||||||
@@ -445,6 +446,10 @@ msgstr "a(z) %s-%s naprakész -- újratelepítés\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "visszatérés egy régebbi %s verzióhoz (%s => %s)\n"
|
msgstr "visszatérés egy régebbi %s verzióhoz (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "cél kihagyása: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "feloldhatatlan csomagütközéseket találtam\n"
|
msgstr "feloldhatatlan csomagütközéseket találtam\n"
|
||||||
@@ -457,26 +462,6 @@ msgstr "'%s' kihagyása, mert ütközik a következővel: '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "nem sikerült néhány fájlt letölteni innen: %s\n"
|
msgstr "nem sikerült néhány fájlt letölteni innen: %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "nem sikerült létrehozni az eltávolító tranzakciót\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "nem sikerült létrehozni a tranzakciót\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "nem sikerült inicializálni az eltávolító tranzakciót\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "nem sikerült inicializálni a tranzakciót\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "nem sikerült előkészíteni az eltávolító tranzakciót\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "nem sikerült végrehajtani az eltávolító tranzakciót\n"
|
msgstr "nem sikerült végrehajtani az eltávolító tranzakciót\n"
|
||||||
@@ -501,10 +486,6 @@ msgstr "nem sikerült az ideiglenes fájlt ide másolni: %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "nem sikerült eltávolítani a %s ideiglenes könyvtárat\n"
|
msgstr "nem sikerült eltávolítani a %s ideiglenes könyvtárat\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "nem sikerült megnyitni a %s fájlt: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "nem sikerült a könyvtárváltás ide: %s (%s)\n"
|
msgstr "nem sikerült a könyvtárváltás ide: %s (%s)\n"
|
||||||
@@ -522,8 +503,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "nem sikerült a könyvtárat a /-re váltani (%s)\n"
|
msgstr "nem sikerült a könyvtárat a /-re váltani (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "popen hívás sikertelen (%s)"
|
msgstr "popen hívás sikertelen (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
|||||||
@@ -1,19 +1,20 @@
|
|||||||
# Italian translation of libalpm.
|
# Italian translation of libalpm.
|
||||||
# Copyright (C) 2007 THE libalpm'S COPYRIGHT HOLDER
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the libalpm package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Giovanni 'voidnull' Scafora <giovanni@archlinux.org>, 2007, 2008, 2009
|
# Giovanni 'voidnull' Scafora <giovanni@archlinux.org>, 2007, 2008, 2009, 2010
|
||||||
# Andrea 'bash' Scarpino <bash.lnx@gmail.com>, 2008
|
# Andrea 'bash' Scarpino <bash.lnx@gmail.com>, 2008
|
||||||
# Alessio 'mOLOk' Bolognino <themolok@gmail.com>, 2007
|
# Alessio 'mOLOk' Bolognino <themolok@gmail.com>, 2007
|
||||||
# Lorenzo '^zanDarK' Masini <lorenxo86@gmail.com>, 2007
|
# Lorenzo '^zanDarK' Masini <lorenxo86@gmail.com>, 2007
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: libalpm VERSION\n"
|
"Project-Id-Version: Pacman package manager 3.4.0\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-28 15:00+0200\n"
|
"PO-Revision-Date: 2010-06-05 18:00+0200\n"
|
||||||
"Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n"
|
"Last-Translator: Giovanni Scafora <giovanni@archlinux.org>\n"
|
||||||
"Language-Team: Arch Linux Italian Team <giovanni@archlinux.org>\n"
|
"Language-Team: Arch Linux Italian Team <giovanni@archlinux.org>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -23,27 +24,11 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "sostituzione in corso della vecchia versione di %s-%s con %s\n"
|
msgstr "sostituzione in corso della vecchia versione di %s-%s con %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ignoro %s-%s perché la nuova versione %s è già presente nella lista dei "
|
"ignoro %s-%s perché la nuova versione %s è presente nella lista dei "
|
||||||
"pacchetti\n"
|
"pacchetti\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "sono stati individuati dei pacchetti che vanno in conflitto\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "impossibile installare due pacchetti che vanno in conflitto\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "la sostituzione dei pacchetti con -U non è ancora supportata\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "puoi sostituire manualmente i pacchetti, usando le opzioni -Rd e -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -104,6 +89,18 @@ msgstr "impossibile aggiornare la voce %s-%s nel database\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "impossible includere la voce '%s' nella cache\n"
|
msgstr "impossible includere la voce '%s' nella cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "rimozione del database: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "impossibile aprire %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "impossibile rimuovere la directory %s del database\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "impossibile rimuovere il database %s\n"
|
msgstr "impossibile rimuovere il database %s\n"
|
||||||
@@ -112,6 +109,10 @@ msgstr "impossibile rimuovere il database %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "nome non valido per la voce del database '%s'\n"
|
msgstr "nome non valido per la voce del database '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "la voce nel database '%s' è duplicata\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "la voce nel database '%s' è corrotta\n"
|
msgstr "la voce nel database '%s' è corrotta\n"
|
||||||
@@ -155,14 +156,14 @@ msgstr "si è verificato un errore durante la lettura del pacchetto %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "manca il metadata del pacchetto in %s\n"
|
msgstr "manca il metadata del pacchetto in %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "tentativo in corso di registrare di nuovo il DB 'locale'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "il percorso del database non è stato definito\n"
|
msgstr "il percorso del database non è stato definito\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "tentativo in corso di registrare di nuovo il DB 'locale'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "individuato un possibile ciclo di dipendenze:\n"
|
msgstr "individuato un possibile ciclo di dipendenze:\n"
|
||||||
@@ -187,34 +188,30 @@ msgstr "il pacchetto è già stato selezionato (%s dipende da %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "impossibile risolvere \"%s\", una dipendenza di \"%s\"\n"
|
msgstr "impossibile risolvere \"%s\", una dipendenza di \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "l'url '%s' non è esatto\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "non è stato specificato il protocollo dell'url, sarà usato HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disco"
|
msgstr "disco"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "l'url '%s' non è esatto\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "impossibile scaricare il pacchetto '%s' da %s : %s\n"
|
msgstr "impossibile scaricare il pacchetto '%s' da %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "impossibile riprendere il download\n"
|
msgstr "impossibile riprendere il download di %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "impossibile scrivere nel file '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "si è verificato un errore durante la scrittura nel file '%s': %s\n"
|
msgstr "si è verificato un errore durante la scrittura nel file '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "impossibile scaricare il pacchetto '%s' da %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s sembra essere incompleto: %jd/%jd byte\n"
|
msgstr "%s sembra essere incompleto: %jd/%jd byte\n"
|
||||||
@@ -348,8 +345,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "il nome del pacchetto non è valido"
|
msgstr "il nome del pacchetto non è valido"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "nessun repository corrispondente"
|
msgstr "l'architettura del pacchetto non è valida"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "impossibile trovare un repository contenente questo pacchetto"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -399,6 +400,10 @@ msgstr "errore inaspettato"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "impossibile trovare %s nel database, sarà ignorato\n"
|
msgstr "impossibile trovare %s nel database, sarà ignorato\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "rimozione di %s dalla lista dei pacchetti\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "impossibile rimuovere il file '%s': %s\n"
|
msgstr "impossibile rimuovere il file '%s': %s\n"
|
||||||
@@ -436,10 +441,6 @@ msgstr "sto ignorando la sostituzione del pacchetto (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "impossibile sostituire %s con %s\n"
|
msgstr "impossibile sostituire %s con %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "impossibile trovare il repository '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s è aggiornato, sarà ignorato\n"
|
msgstr "%s-%s è aggiornato, sarà ignorato\n"
|
||||||
@@ -451,8 +452,12 @@ msgstr "%s-%s è aggiornato, sarà reinstallato\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"installazione in corso di una versione meno recente del pacchetto %s (%s => %"
|
"installazione in corso di una versione meno recente del pacchetto %s (%s => "
|
||||||
"s)\n"
|
"%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "sto ignorando il pacchetto: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
@@ -467,26 +472,6 @@ msgstr ""
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "impossibile scaricare alcuni file da %s\n"
|
msgstr "impossibile scaricare alcuni file da %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "impossibile avviare l'operazione di rimozione\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "impossibile avviare l'operazione\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "impossibile inizializzare l'operazione di rimozione\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "impossibile inizializzare l'operazione\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "impossibile preparare l'operazione di rimozione\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "impossibile eseguire l'operazione di rimozione\n"
|
msgstr "impossibile eseguire l'operazione di rimozione\n"
|
||||||
@@ -511,10 +496,6 @@ msgstr "impossibile copiare il file temporaneo in %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "impossibile rimuovere la directory temporanea %s\n"
|
msgstr "impossibile rimuovere la directory temporanea %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "impossibile aprire %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "impossibile spostarsi nella directory %s (%s)\n"
|
msgstr "impossibile spostarsi nella directory %s (%s)\n"
|
||||||
@@ -532,8 +513,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "impossibile spostarsi nella directory / (%s)\n"
|
msgstr "impossibile spostarsi nella directory / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "chiamata a popen non riuscita (%s)"
|
msgstr "chiamata a popen non riuscita (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
# Kazakh translations for Pacman package manager package.
|
# Kazakh translations for Pacman package manager package.
|
||||||
# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Baurzhan Muftakhidinov <baurthefirst@gmail.com> 2009
|
# Baurzhan Muftakhidinov <baurthefirst@gmail.com> 2009
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.0.0\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-28 19:05+0600\n"
|
"PO-Revision-Date: 2010-06-07 09:22+0600\n"
|
||||||
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
|
"Last-Translator: Baurzhan Muftakhidinov <baurthefirst@gmail.com>\n"
|
||||||
"Language-Team: Kazakh\n"
|
"Language-Team: Kazakh\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -21,27 +22,9 @@ msgstr ""
|
|||||||
"мақсаттар тізімінде ескірген %s-%s нұсқасы жаңа %s нұсқасымен алмастырылады\n"
|
"мақсаттар тізімінде ескірген %s-%s нұсқасы жаңа %s нұсқасымен алмастырылады\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s-%s өткізіледі, өйткені оның жаңа %s нұсқасы мақсаттар тізімінде бар болып "
|
"%s-%s өткізіледі, өйткені жаңа %s нұсқасы мақсаттар тізімінде бар болып тұр\n"
|
||||||
"тұр\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "мақсаттар тізімінде ерегісетін дестелер табылды\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "сіз екі екі ерегісетін дестені орната алмайсыз\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "дестелерді -A мен -U опцияларын қолданып алмастыру әлі жасалмаған\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr ""
|
|
||||||
"сіз дестелерді қолмен алмастыра аласыз, ол үшін -Rd мен -U қолданыңыз\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -69,7 +52,7 @@ msgstr "%s атын жаңа %s атына ауыстыру мүмкін еме
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s saved as %s\n"
|
msgid "%s saved as %s\n"
|
||||||
msgstr "%s қазір %s деп сақталды\n"
|
msgstr "%s қазір %s етіп сақталды\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not install %s as %s (%s)\n"
|
msgid "could not install %s as %s (%s)\n"
|
||||||
@@ -103,6 +86,18 @@ msgstr "дерекқорда жазбаны жаңарту мүмкін емес
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "кэш ішіне '%s' жазбасын қосу мүмкін емес\n"
|
msgstr "кэш ішіне '%s' жазбасын қосу мүмкін емес\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "қате дерекқорды өшіру: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "%s ашу мүмкін емес: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "дерекқор %s бумасын өшіру мүмкін емес\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "%s дерекқорын өшіру мүмкін емес\n"
|
msgstr "%s дерекқорын өшіру мүмкін емес\n"
|
||||||
@@ -111,6 +106,10 @@ msgstr "%s дерекқорын өшіру мүмкін емес\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "дерекқордағы '%s' жазбасының аты қате\n"
|
msgstr "дерекқордағы '%s' жазбасының аты қате\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "деркқордағы '%s' жазбасы қайталанып тұр\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "дерекқордағы '%s' жазбасы зақымдалған\n"
|
msgstr "дерекқордағы '%s' жазбасы зақымдалған\n"
|
||||||
@@ -151,14 +150,14 @@ msgstr "%s дестесін оқу қатесі: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "%s ішінде дестенің мета мәліметтері жоқ\n"
|
msgstr "%s ішінде дестенің мета мәліметтері жоқ\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "дерекқорды қайта тіркеу талабы\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "дерекқорға жол анықталмаған\n"
|
msgstr "дерекқорға жол анықталмаған\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "дерекқорды қайта тіркеу талабы\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "циклдік тәуелділік табылды:\n"
|
msgstr "циклдік тәуелділік табылды:\n"
|
||||||
@@ -183,37 +182,33 @@ msgstr "тандалған %s дестесі %s ұсынады\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "\"%s\" шешу мүмкін емес, ол \"%s\" тәуелділігі болып тұр\n"
|
msgstr "\"%s\" шешу мүмкін емес, ол \"%s\" тәуелділігі болып тұр\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "'%s' сілтемесі қате\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "сілтеменің түрі анықталмады, HTTP деп саналады\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "дискі"
|
msgstr "дискі"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "'%s' сілтемесі қате\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "'%s' файлын %s адресінен алу қатемен аяқталды : %s\n"
|
msgstr "'%s' файлын %s адресінен алу қатемен аяқталды : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "жүктемені жалғастыру мүмкін емес, басынан басталады\n"
|
msgstr "%s жүктемесін жалғастыру мүмкін емес; басынан басталады\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "'%s' файлына жазу мүмкін емес\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "'%s' файлына жазу қатесі: %s\n"
|
msgstr "'%s' файлына жазу қатесі: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "'%s' файлын %s адресінен алу қатемен аяқталды\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s қысқартылады: %jd/%jd байт\n"
|
msgstr "%s қысқартылған сияқты: %jd/%jd байт\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed to download %s\n"
|
msgid "failed to download %s\n"
|
||||||
@@ -245,11 +240,11 @@ msgstr "аргумент қате не нөлдік болып тұр"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "library not initialized"
|
msgid "library not initialized"
|
||||||
msgstr "library іске қосылмады"
|
msgstr "жинақ іске қосылмады"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "library already initialized"
|
msgid "library already initialized"
|
||||||
msgstr "library іске қосылған болып тұр"
|
msgstr "жинақ іске қосылған болып тұр"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unable to lock database"
|
msgid "unable to lock database"
|
||||||
@@ -261,7 +256,7 @@ msgstr "дерекқорды ашу мүмкін емес"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not create database"
|
msgid "could not create database"
|
||||||
msgstr "дерекқорды құру мүмкін емес"
|
msgstr "дерекқорды жасау мүмкін емес"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database not initialized"
|
msgid "database not initialized"
|
||||||
@@ -344,8 +339,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "десте файлдың аты қате"
|
msgstr "десте файлдың аты қате"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "мұндай репозиторий жоқ"
|
msgstr "десте файлдың архитектурасы қате"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "көрсетілген мақсат үшін репозиторийді табу мүмкін емес"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -395,6 +394,10 @@ msgstr "күтпеген қате кетті"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "дерекқор ішінде %s табылмады -- өткізіп жібереміз\n"
|
msgstr "дерекқор ішінде %s табылмады -- өткізіп жібереміз\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "мақсаттар тізімінен '%s' өшіру\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr " '%s' файлын өшіру мүмкін емес: %s\n"
|
msgstr " '%s' файлын өшіру мүмкін емес: %s\n"
|
||||||
@@ -431,10 +434,6 @@ msgstr "дестені алмастыруды елемеу (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "%s жаңа %s нұсқасымен алмастыру мүмкін емес\n"
|
msgstr "%s жаңа %s нұсқасымен алмастыру мүмкін емес\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "'%s' репозиторийі табылмады\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s ескірмеді -- өткізіледі\n"
|
msgstr "%s-%s ескірмеді -- өткізіледі\n"
|
||||||
@@ -447,9 +446,13 @@ msgstr "%s-%s ескірмеді -- қайта орнатылады\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "дестенің нұсқасын төмендету %s (%s => %s)\n"
|
msgstr "дестенің нұсқасын төмендету %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "мақсатты аттап өту: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "шешілмейтін дестелер ерегісі табылды\n"
|
msgstr "дестелердің шешілмейтін ерегісі табылды\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
@@ -460,26 +463,6 @@ msgstr ""
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "%s адресінен кейбір файлдарды алу мүмкін емес\n"
|
msgstr "%s адресінен кейбір файлдарды алу мүмкін емес\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "өшіруге сұранымды құру мүмкін емес\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "сұранымды жасау мүмкін емес\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "өшіруге сұранымды іске қосу мүмкін емес\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "сұранымды іске қосу мүмкін емес\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "өшіруге сұранымды дайындау мүмкін емес\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "өшіруге сұранымды орындау мүмкін емес\n"
|
msgstr "өшіруге сұранымды орындау мүмкін емес\n"
|
||||||
@@ -502,11 +485,7 @@ msgstr "уақытша файлды %s ішіне көшіру мүмкін ем
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "tmpdir %s өшіру мүмкін емес\n"
|
msgstr "%s уақытша бумасын өшіру мүмкін емес\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "%s ашу мүмкін емес: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
@@ -514,7 +493,7 @@ msgstr "%s бумасына ауысу мүмкін емес (%s)\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not fork a new process (%s)\n"
|
msgid "could not fork a new process (%s)\n"
|
||||||
msgstr "жаңа үрдісті құру мүмкін емес (%s)\n"
|
msgstr "жаңа үрдісті жасау мүмкін емес (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change the root directory (%s)\n"
|
msgid "could not change the root directory (%s)\n"
|
||||||
@@ -525,8 +504,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "/ бумасына ауысу мүмкін емес (%s)\n"
|
msgstr "/ бумасына ауысу мүмкін емес (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "popen шақыру қатемен аяқталды (%s)"
|
msgstr "popen шақыру сәтсіз аяқталды (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -544,6 +523,46 @@ msgstr "%s кэші жоқ болып тұр, құрылады...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "дестелер кэшін құру мүмкін емес, оның орнына /tmp қолданылады\n"
|
msgstr "дестелер кэшін құру мүмкін емес, оның орнына /tmp қолданылады\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "мақсаттар тізімінде ерегісетін дестелер табылды\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "сіз екі екі ерегісетін дестені орната алмайсыз\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "дестелерді -A мен -U опцияларын қолданып алмастыру әлі жасалмаған\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "сіз дестелерді қолмен алмастыра аласыз, ол үшін -Rd мен -U қолданыңыз\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "сілтеменің түрі анықталмады, HTTP деп саналады\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "'%s' файлына жазу мүмкін емес\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "мұндай репозиторий жоқ"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "'%s' репозиторийі табылмады\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "өшіруге сұранымды құру мүмкін емес\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "сұранымды жасау мүмкін емес\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "өшіруге сұранымды іске қосу мүмкін емес\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "сұранымды іске қосу мүмкін емес\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "өшіруге сұранымды дайындау мүмкін емес\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "'%s' жүктеп алу қатесі: %s\n"
|
#~ msgstr "'%s' жүктеп алу қатесі: %s\n"
|
||||||
|
|
||||||
|
|||||||
@@ -8,10 +8,11 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=CHARSET\n"
|
"Content-Type: text/plain; charset=CHARSET\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -21,23 +22,7 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
@@ -98,6 +83,18 @@ msgstr ""
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -106,6 +103,10 @@ msgstr ""
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -147,11 +148,11 @@ msgid "missing package metadata in %s\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
@@ -178,34 +179,30 @@ msgstr ""
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -339,7 +336,11 @@ msgid "package filename is not valid"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
@@ -390,6 +391,10 @@ msgstr ""
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -426,10 +431,6 @@ msgstr ""
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -442,6 +443,10 @@ msgstr ""
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -454,26 +459,6 @@ msgstr ""
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -498,10 +483,6 @@ msgstr ""
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -519,7 +500,7 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
|
|||||||
560
lib/libalpm/po/nb.po
Normal file
560
lib/libalpm/po/nb.po
Normal file
@@ -0,0 +1,560 @@
|
|||||||
|
# Language libalpm translations for PACKAGE package.
|
||||||
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
|
# <maister@archlinux.us>, 2009.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
|
"PO-Revision-Date: 2009-10-04 17:09+0200\n"
|
||||||
|
"Last-Translator: <maister@archlinux.us>\n"
|
||||||
|
"Language-Team: Language libalpm\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
|
msgstr "bytter ut eldre versjon %s-%s med %s i liste\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
msgstr "hopper over %s-%s siden nyere versjon %s finnes i liste\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"directory permissions differ on %s\n"
|
||||||
|
"filesystem: %o package: %o\n"
|
||||||
|
msgstr ""
|
||||||
|
"mapperettigheter er forskjellige i %s\n"
|
||||||
|
"filsystem: %o pakke: %o\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: not overwriting dir with file %s\n"
|
||||||
|
msgstr "utpakking: skriver ikke over mappe med fil %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: symlink %s does not point to dir\n"
|
||||||
|
msgstr "utpakking: symlink %s viser ikke til mappe\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not extract %s (%s)\n"
|
||||||
|
msgstr "kunne ikke pakke ut %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not rename %s to %s (%s)\n"
|
||||||
|
msgstr "kunne ikke døpe om %s til %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s saved as %s\n"
|
||||||
|
msgstr "%s lagret som %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not install %s as %s (%s)\n"
|
||||||
|
msgstr "kunne ikke installere %s som %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s installed as %s\n"
|
||||||
|
msgstr "%s installert som %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extracting %s as %s.pacnew\n"
|
||||||
|
msgstr "pakker ut %s som %s.pacnew\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not get current working directory\n"
|
||||||
|
msgstr "kunne ikke motta nåværende mappe\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while upgrading %s\n"
|
||||||
|
msgstr "problem oppstod under oppgradering av %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while installing %s\n"
|
||||||
|
msgstr "problem oppstod under installasjon av %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database entry %s-%s\n"
|
||||||
|
msgstr "kunne ikke oppdatere databaseelement %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not add entry '%s' in cache\n"
|
||||||
|
msgstr "kunne ikke legge til '%s' i cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "fjerner ugyldig database: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "kunne ikke åpne %s: %s\n"
|
||||||
|
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "kunne ikke fjerne databaseelement %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database %s\n"
|
||||||
|
msgstr "kunne ikke fjerne database %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid name for database entry '%s'\n"
|
||||||
|
msgstr "ugyldig navn for databaseelement '%s'\n"
|
||||||
|
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "korrupt databaseelement '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "corrupted database entry '%s'\n"
|
||||||
|
msgstr "korrupt databaseelement '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open file %s: %s\n"
|
||||||
|
msgstr "kunne ikke åpne fil %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
|
msgstr "%s database er ukonsistent: navn samsvarer ikke med pakke %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
|
msgstr "%s database er ukonsistent: versjon samsvarer ikke med pakke %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create directory %s: %s\n"
|
||||||
|
msgstr "kunne ikke opprette mappe %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not parse package description file in %s\n"
|
||||||
|
msgstr "kunne ikke analysere pakkebeskrivelse i fil %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package name in %s\n"
|
||||||
|
msgstr "mangler pakkenavn i %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package version in %s\n"
|
||||||
|
msgstr "mangler pakkeversjon i %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error while reading package %s: %s\n"
|
||||||
|
msgstr "feil oppstod under lesing av pakke: %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package metadata in %s\n"
|
||||||
|
msgstr "mangler metadata i %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database path is undefined\n"
|
||||||
|
msgstr "databaseplassering er udefinert\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "forsøker å re-registrere den lokale databasen\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "dependency cycle detected:\n"
|
||||||
|
msgstr "avhengighetssyklus oppdaget\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
|
msgstr "%s vil fjernes etter dens avhengighet %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
|
msgstr "%s vil bli installert før dens avhengighet %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package %s-%s\n"
|
||||||
|
msgstr "ignorerer pakke %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "provider package was selected (%s provides %s)\n"
|
||||||
|
msgstr "tilføringspakke ble valgt (%s tilfører %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
msgstr "kan ikke avgjøre \"%s\", en avhengighet av \"%s\"\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "disk"
|
||||||
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "url '%s' er ugyldig\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
msgstr "mottakelse av fil '%s' fra %s : %s feilet\n"
|
||||||
|
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
|
msgstr "kan ikke fortsette nedlasting, starter på nytt\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error writing to file '%s': %s\n"
|
||||||
|
msgstr "skriving til fil '%s': %s feilet\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "mottakelse av fil '%s' fra %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
|
msgstr "%s ser ut til å være trunkert: %jd/%jd bytes\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to download %s\n"
|
||||||
|
msgstr "nedlasting av %s feilet\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "out of memory!"
|
||||||
|
msgstr "ikke mer minne!"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected system error"
|
||||||
|
msgstr "uventet systemfeil"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "insufficient privileges"
|
||||||
|
msgstr "ikke nok rettigheter"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read file"
|
||||||
|
msgstr "kunne ikke finne eller lese fil"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read directory"
|
||||||
|
msgstr "kunne ikke finne eller lese mappe"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "wrong or NULL argument passed"
|
||||||
|
msgstr "feil eller NULL-argument gitt"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library not initialized"
|
||||||
|
msgstr "bibliotek ikke initialisert"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library already initialized"
|
||||||
|
msgstr "bibliotek allerede initialisert"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unable to lock database"
|
||||||
|
msgstr "kunne ikke låse database"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open database"
|
||||||
|
msgstr "kunne ikke åpne database"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create database"
|
||||||
|
msgstr "kunne ikke opprette database"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database not initialized"
|
||||||
|
msgstr "database ikke initialisert"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database already registered"
|
||||||
|
msgstr "database allerede registret"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find database"
|
||||||
|
msgstr "kunne ikke finne database"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database"
|
||||||
|
msgstr "kunne ikke oppdatere database"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry"
|
||||||
|
msgstr "kunne ikke fjerne databaseelement"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid url for server"
|
||||||
|
msgstr "ugyldig url for server"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no servers configured for repository"
|
||||||
|
msgstr "ingen servere konfigurert for pakkebrønn"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction already initialized"
|
||||||
|
msgstr "transaksjon allerede initialisert"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not initialized"
|
||||||
|
msgstr "transaksjon ikke initialisert"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicate target"
|
||||||
|
msgstr "klonet mål"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not prepared"
|
||||||
|
msgstr "transaksjon ikke forberedt"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction aborted"
|
||||||
|
msgstr "transaksjon avsluttet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation not compatible with the transaction type"
|
||||||
|
msgstr "operasjon ikke kompatibel med transaksjonstypen"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction commit attempt when database is not locked"
|
||||||
|
msgstr "førsøk på utføring av transaksjon mens databasen ikke er lukket"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read package"
|
||||||
|
msgstr "kunne ikke finne eller lese pakke"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation cancelled due to ignorepkg"
|
||||||
|
msgstr "operasjon avsluttet grunnet ignorepkg"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted package"
|
||||||
|
msgstr "invalid eller korrupt pakke"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open package file"
|
||||||
|
msgstr "kan ikke åpne pakkefil"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove all files for package"
|
||||||
|
msgstr "kan ikke fjerne alle filer for pakke"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package filename is not valid"
|
||||||
|
msgstr "pakkens filnavn er ikke gyldig"
|
||||||
|
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid "package architecture is not valid"
|
||||||
|
msgstr "pakkens filnavn er ikke gyldig"
|
||||||
|
|
||||||
|
#, fuzzy, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "kunne ikke finne eller lese pakke"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted delta"
|
||||||
|
msgstr "invalid"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "delta patch failed"
|
||||||
|
msgstr "delta-patch feilet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not satisfy dependencies"
|
||||||
|
msgstr "kunne ikke tilfredstille avhengigheter"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting dependencies"
|
||||||
|
msgstr "modstridige avhengigheter"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting files"
|
||||||
|
msgstr "modstridige filer"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files"
|
||||||
|
msgstr "mottagelsen av noen filer feilet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid regular expression"
|
||||||
|
msgstr "ugyldig uttrykk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "libarchive error"
|
||||||
|
msgstr "feil i libarchive"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "download library error"
|
||||||
|
msgstr "feil i nedlastingsbibliotek"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error invoking external downloader"
|
||||||
|
msgstr "påkalling av ekstern nedlaster feilet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected error"
|
||||||
|
msgstr "uforventet feil"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find %s in database -- skipping\n"
|
||||||
|
msgstr "kunne ikke finne %s i database -- hopper over\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "fjerner %s fra målliste\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove file '%s': %s\n"
|
||||||
|
msgstr "kan ikke fjerne fil '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry %s-%s\n"
|
||||||
|
msgstr "kunne ikke fjerne databaseelement %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
|
msgstr "kunne ikke fjerne element '%s' fra cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: ignorerer pakkeoppgradering (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: ignorerer pakkenedgradering (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
|
msgstr "%s: nedgradering fra versjon %s til versjon %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: local (%s) is newer than %s (%s)\n"
|
||||||
|
msgstr "%s: lokal (%s) er nyere enn %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
|
||||||
|
msgstr "ignorerer utbytting av pakke (%s-%s => %s-%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot replace %s by %s\n"
|
||||||
|
msgstr "kan ikke bytte ut %s med %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
|
msgstr "%s-%s er allerede oppdatert -- hopper over\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
|
msgstr "%s-%s er allerede oppdatert -- installerer på nytt\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
|
msgstr "nedgraderer pakke %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "hopper over mål: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unresolvable package conflicts detected\n"
|
||||||
|
msgstr "uløselige pakkekonflikter oppdaget\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
|
msgstr "fjerner '%s' fra mållisten fordi den strider mot '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files from %s\n"
|
||||||
|
msgstr "feilet å motta noen filer fra %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit removal transaction\n"
|
||||||
|
msgstr "kunne ikke begå fjerningstransaksjon\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit transaction\n"
|
||||||
|
msgstr "kunne ikke begå transaksjon\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove lock file %s\n"
|
||||||
|
msgstr "kunne ikke fjerne låsingsfil %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create temp directory\n"
|
||||||
|
msgstr "kunne ikke opprette midlertidig mappe\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not copy tempfile to %s (%s)\n"
|
||||||
|
msgstr "kunne ikke kopiere midertidig fil til %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove tmpdir %s\n"
|
||||||
|
msgstr "kunne ikke fjerne midlertidig mappe %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to %s (%s)\n"
|
||||||
|
msgstr "kunne ikke endre mappe til %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not fork a new process (%s)\n"
|
||||||
|
msgstr "kunne ikke skille ut en ny prosess (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change the root directory (%s)\n"
|
||||||
|
msgstr "kunne ikke endre root-mappe (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to / (%s)\n"
|
||||||
|
msgstr "kunne ikke endre mappe til / (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to popen failed (%s)\n"
|
||||||
|
msgstr "kall på popen feilet (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
msgstr "kall på waitpid feilet (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "command failed to execute correctly\n"
|
||||||
|
msgstr "kommando feilet å kjøre korrekt\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no %s cache exists, creating...\n"
|
||||||
|
msgstr "ingen %s cache eksisterer, lager en ...\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
|
msgstr "kunne ikke danne pakke-cache, bruker /tmp istedenfor\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "motstridige pakker ble funnet i målliste\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "du kan ikke installere to motstridige pakker samtidig\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "å bytte ut pakker med -U er ikke støttet enda\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "du kan bytte ut pakker manuelt ved å bruke -Rd og -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "url-protokoll ikke gitt, bruker HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "kan ikke skrive til fil '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "ingen slik pakkebrønn"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "pakkebrønn '%s' ikke funnet\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "kunne ikke opprette fjerningstransaksjon\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "kunne ikke opprette transaksjon\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "kunne ikke initialisere fjerningstransaksjonen\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "kunne ikke initialisere transaksjon\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "kunne ikke forberede fjerningstransaksjon\n"
|
||||||
@@ -1,18 +1,19 @@
|
|||||||
# Polish translations for Pacman package manager package
|
# Polish translations for Pacman package manager package
|
||||||
# Polskie tłumaczenia dla pakietu Pacman package manager.
|
# Polskie tłumaczenia dla pakietu Pacman package manager.
|
||||||
# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Mateusz Jędrasik <m.jedrasik@gmail.com>, 2007.
|
# Mateusz Jędrasik <m.jedrasik@gmail.com>, 2007.
|
||||||
# Mateusz Herych <heniekk@gmail.com>, 2008-2009.
|
# Mateusz Herych <heniekk@gmail.com>, 2008-2009.
|
||||||
# #
|
# #
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.0.1\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-29 10:39+0100\n"
|
"PO-Revision-Date: 2010-08-01 05:10+0100\n"
|
||||||
"Last-Translator: Mateusz Herych <heniekk@gmail.com>\n"
|
"Last-Translator: Mateusz Herych <heniekk@gmail.com>\n"
|
||||||
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
|
"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
|
||||||
|
"Language: pl\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -24,28 +25,8 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "zastępowanie starszej wersji %s-%s na %s z listy celów\n"
|
msgstr "zastępowanie starszej wersji %s-%s na %s z listy celów\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "pomijam %s-%s ponieważ na liście celów znajduje się nowsza wersja %s\n"
|
msgstr "pomijam %s-%s ponieważ nowsza wersja %s jest na liście celów\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr ""
|
|
||||||
"konfliktujące pakiety znalazły się na liście pakietów do zainstalowania\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr ""
|
|
||||||
"nie możesz mieć zainstalowanych dwóch konfliktujących ze sobą pakietów w tym "
|
|
||||||
"samym czasie\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "zastępowanie pakietów za pomocą -U nie jest już wspierane\n"
|
|
||||||
|
|
||||||
# hmm
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "możesz zastąpić pakiety ręcznie, używając opcji -Rd oraz -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -107,6 +88,18 @@ msgstr "nie udało się zaktualizować pozycji bazy danych %s-%s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "nie udało się dodać pozycji '%s' w pliku podręcznym\n"
|
msgstr "nie udało się dodać pozycji '%s' w pliku podręcznym\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "usuwanie niepoprawnej bazy danych: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "nie udało się otworzyć %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "nie udało się usunąć katalogu bazy danych %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "nie można usunąć bazy danych %s\n"
|
msgstr "nie można usunąć bazy danych %s\n"
|
||||||
@@ -115,6 +108,10 @@ msgstr "nie można usunąć bazy danych %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "nieprawidłowa nazwa dla wpisu bazy danych '%s'\n"
|
msgstr "nieprawidłowa nazwa dla wpisu bazy danych '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "zduplikowany wpis '%s' w bazie danych\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "zepsuty wpis w bazie danych '%s'\n"
|
msgstr "zepsuty wpis w bazie danych '%s'\n"
|
||||||
@@ -155,14 +152,14 @@ msgstr "błąd odczytywania pakietu: %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "brak metadanych pakietu w %s\n"
|
msgstr "brak metadanych pakietu w %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "próba ponownej rejestracji 'lokalnej' BD\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "ścieżka bazy danych jest niezdefiniowana\n"
|
msgstr "ścieżka bazy danych jest niezdefiniowana\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "próba ponownej rejestracji 'lokalnej' BD\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "wykryto cykl zależności:\n"
|
msgstr "wykryto cykl zależności:\n"
|
||||||
@@ -187,34 +184,30 @@ msgstr "dostawca pakietu został wybrany (%s dostarcza %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "nie można rozwiązać \"%s\", zależności od \"%s\"\n"
|
msgstr "nie można rozwiązać \"%s\", zależności od \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "url '%s' jest błędny\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "schemat url nie został sprecyzowany, wybieranie HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "dysk"
|
msgstr "dysk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "url '%s' jest błędny\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "nie udało się pobrać pliku '%s' z %s : %s\n"
|
msgstr "nie udało się pobrać pliku '%s' z %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "nie można kontynuować pobieranie, zaczynanie od początku\n"
|
msgstr "kontynuowanie pobieranie %s jest niemożliwe; zaczynam od nowa\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "nie można zapisywać do pliku '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "Błąd podczas zapisywania do pliku '%s': %s\n"
|
msgstr "Błąd podczas zapisywania do pliku '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "nie udało się pobrać pliku '%s' z %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s wygląda, jakby został obcięty %jd/%jd bajtów\n"
|
msgstr "%s wygląda, jakby został obcięty %jd/%jd bajtów\n"
|
||||||
@@ -348,8 +341,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "nazwa pakietu jest nieprawidłowa"
|
msgstr "nazwa pakietu jest nieprawidłowa"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "nie ma takiego repozytorium"
|
msgstr "architektura pakietu jest nieprawidłowa"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "nie mogę znaleźć repozytorium dla celu"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -361,7 +358,7 @@ msgstr "Łatanie pakietem przyrostowym nie powiodło się"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not satisfy dependencies"
|
msgid "could not satisfy dependencies"
|
||||||
msgstr "nie udało się usatysfakcjonować zależności"
|
msgstr "nie udało się rozwiązać zależności"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "conflicting dependencies"
|
msgid "conflicting dependencies"
|
||||||
@@ -400,6 +397,10 @@ msgstr "niespodziewany błąd"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "nie udało się odnaleźć %s w bazie danych -- pomijanie\n"
|
msgstr "nie udało się odnaleźć %s w bazie danych -- pomijanie\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "usuwanie %s z listy celów\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "nie udało się usunąć pliku '%s': %s\n"
|
msgstr "nie udało się usunąć pliku '%s': %s\n"
|
||||||
@@ -436,10 +437,6 @@ msgstr "ignorowanie zastępowania pakietu (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "nie udało się zastąpić %s przez %s\n"
|
msgstr "nie udało się zastąpić %s przez %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "repozytorium '%s' nie zostało znalezione\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s jest w najnowszej wersji -- pomijanie\n"
|
msgstr "%s-%s jest w najnowszej wersji -- pomijanie\n"
|
||||||
@@ -452,6 +449,10 @@ msgstr "%s-%s jest w najnowszej wersji -- ponowne instalowanie\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "dezaktualizowanie pakietu %s (%s => %s)\n"
|
msgstr "dezaktualizowanie pakietu %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "Pomijam cel: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "odkryto nierozwiązywalne konflikty pakietów\n"
|
msgstr "odkryto nierozwiązywalne konflikty pakietów\n"
|
||||||
@@ -464,26 +465,6 @@ msgstr "usuwanie '%s' z listy celów ponieważ konfliktuje z '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "nie udało się pobrać niektórych plików z %s\n"
|
msgstr "nie udało się pobrać niektórych plików z %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "nie udało się utworzyć tranzakcji usuwania\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "nie udało się stworzyć tranzakcji\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "nie udało się zainicjować tranzakcji usuwania\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "nie udało się zainicjować tranzakcji\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "nie udało się przygotować tranzakcji usuwania\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "nie udało się wykonać tranzakcji usuwania\n"
|
msgstr "nie udało się wykonać tranzakcji usuwania\n"
|
||||||
@@ -508,10 +489,6 @@ msgstr "nie udało się skopiować pliku tymczasowego do %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "nie udało się usunąć katalogu tymczasowego %s\n"
|
msgstr "nie udało się usunąć katalogu tymczasowego %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "nie udało się otworzyć %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "nie udało się zmienić katalogu na %s (%s)\n"
|
msgstr "nie udało się zmienić katalogu na %s (%s)\n"
|
||||||
@@ -529,8 +506,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "nie udało się zmienić katalogu na / (%s)\n"
|
msgstr "nie udało się zmienić katalogu na / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "zawołanie do popen nieudane (%s)"
|
msgstr "zawołanie do popen nieudane (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -549,48 +526,13 @@ msgid "couldn't create package cache, using /tmp instead\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"nie udało się stworzyć pamięci podręcznej pakietu, używanie /tmp w zamian\n"
|
"nie udało się stworzyć pamięci podręcznej pakietu, używanie /tmp w zamian\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
#~ msgstr "błąd podczas pobierania '%s': %s\n"
|
#~ msgstr "konfliktujące pakiety zostały znalezione na liście celów\n"
|
||||||
|
|
||||||
#~ msgid "could not chdir to %s\n"
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
#~ msgstr "nie udało się zmienić katalogu na / %s\n"
|
|
||||||
|
|
||||||
#~ msgid "running XferCommand: fork failed!\n"
|
|
||||||
#~ msgstr "uruchamianie XferCommand: klonowanie nieudane!\n"
|
|
||||||
|
|
||||||
#~ msgid "could not commit transaction"
|
|
||||||
#~ msgstr "nie udało się wykonać tranzakcji"
|
|
||||||
|
|
||||||
#~ msgid "could not download all files"
|
|
||||||
#~ msgstr "nie udało się pobrać wszystkich plików"
|
|
||||||
|
|
||||||
#~ msgid "cannot load package data"
|
|
||||||
#~ msgstr "nie udało się załadować danych pakietu"
|
|
||||||
|
|
||||||
#~ msgid "package not installed or lesser version"
|
|
||||||
#~ msgstr "pakiet nie zainstalowany lub zainstalowany w niższej wersji"
|
|
||||||
|
|
||||||
#~ msgid "group not found"
|
|
||||||
#~ msgstr "grupa nie została odnaleziona"
|
|
||||||
|
|
||||||
#~ msgid "user aborted the operation"
|
|
||||||
#~ msgstr "użytkownik zaniechał operacji"
|
|
||||||
|
|
||||||
#~ msgid "internal error"
|
|
||||||
#~ msgstr "błąd wewnętrzny"
|
|
||||||
|
|
||||||
#~ msgid "not confirmed"
|
|
||||||
#~ msgstr "nie potwierdzono"
|
|
||||||
|
|
||||||
#~ msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"
|
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "%s-%s: ignorowanie aktualizowania pakietu (do zastąpienia przez %s-%s)\n"
|
#~ "nie możesz mieć zainstalowanych dwóch konfliktujących ze sobą pakietów w "
|
||||||
|
#~ "tym samym czasie\n"
|
||||||
|
|
||||||
#~ msgid "command: %s\n"
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
#~ msgstr "komenda: %s\n"
|
#~ msgstr "zastępowanie pakietów za pomocą -U nie jest już wspierane\n"
|
||||||
|
|
||||||
#~ msgid "could not prepare transaction\n"
|
|
||||||
#~ msgstr "nie udało się przygotować tranzakcji\n"
|
|
||||||
|
|
||||||
#~ msgid "No /bin/sh in parent environment, aborting scriptlet\n"
|
|
||||||
#~ msgstr "Brak /bin/sh w środowisku, przerywanie wykonywania skryptu\n"
|
|
||||||
|
|||||||
619
lib/libalpm/po/pt.po
Normal file
619
lib/libalpm/po/pt.po
Normal file
@@ -0,0 +1,619 @@
|
|||||||
|
# translation of pt_PT.po to European Portuguese
|
||||||
|
# European Portuguese translations for Pacman package manager package.
|
||||||
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
|
# Gaspar Santos aka ArchGalileu <omeuviolino@gmail.com>, 2010.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
|
"PO-Revision-Date: 2010-08-31 18:25+0100\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: Gaspar Santos aka ArchGalileu <omeuviolino@gmail.com>\n"
|
||||||
|
"Language: pt_PT\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||||
|
"X-Generator: Lokalize 1.1\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
|
msgstr ""
|
||||||
|
"a substituir a versão antiga %s-%s por %s na lista de pacotes para "
|
||||||
|
"actualizar\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
msgstr ""
|
||||||
|
"a ignorar %s-%s por que uma versão mais nova %s está na lista de pacotes "
|
||||||
|
"para actualizar\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"directory permissions differ on %s\n"
|
||||||
|
"filesystem: %o package: %o\n"
|
||||||
|
msgstr ""
|
||||||
|
"permissões do diretório diferem em %s\n"
|
||||||
|
"sistema de ficheiros: %o pacote: %o\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: not overwriting dir with file %s\n"
|
||||||
|
msgstr "extracção: não sobrescrever diretório com o ficheiro %s\n"
|
||||||
|
|
||||||
|
# ?
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: symlink %s does not point to dir\n"
|
||||||
|
msgstr "extracção: symlink %s não aponta para diretório\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not extract %s (%s)\n"
|
||||||
|
msgstr "não foi possível extrair %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not rename %s to %s (%s)\n"
|
||||||
|
msgstr "não foi possível renomear %s para %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s saved as %s\n"
|
||||||
|
msgstr "%s salvo como %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not install %s as %s (%s)\n"
|
||||||
|
msgstr "não foi possível instalar %s como %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s installed as %s\n"
|
||||||
|
msgstr "%s instalado como %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extracting %s as %s.pacnew\n"
|
||||||
|
msgstr "a extrair %s como %s.pacnew\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not get current working directory\n"
|
||||||
|
msgstr "não foi possível obter o diretório de trabalho actual\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while upgrading %s\n"
|
||||||
|
msgstr "ocorreram erros durante a actualização de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while installing %s\n"
|
||||||
|
msgstr "ocorreram erros durante a instalação de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database entry %s-%s\n"
|
||||||
|
msgstr "não foi possível actualizar a entrada na base de dados %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not add entry '%s' in cache\n"
|
||||||
|
msgstr "não foi possível adicionar a entrada '%s' à cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "a remover banco de dados inválido: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "não foi possível abrir %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "não foi possível remover o diretório da base de dados %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database %s\n"
|
||||||
|
msgstr "não foi possível remover a base de dados %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid name for database entry '%s'\n"
|
||||||
|
msgstr "nome inválido para a entrada na base de dados '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "entrada da base de dados duplicada '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "corrupted database entry '%s'\n"
|
||||||
|
msgstr "entrada da base de dados corrompida '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open file %s: %s\n"
|
||||||
|
msgstr "não foi possível abrir o ficheiro %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
|
msgstr "%s base de dados está inconsistente: nome no pacote %s não coincide\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
|
msgstr ""
|
||||||
|
"%s base de dados está inconsistente: versão do pacote %s não coincide\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create directory %s: %s\n"
|
||||||
|
msgstr "não foi possível criar o diretório %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not parse package description file in %s\n"
|
||||||
|
msgstr "não foi possível interpretar o ficheiro de descrição do pacote em %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package name in %s\n"
|
||||||
|
msgstr "em falta o nome do pacote em %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package version in %s\n"
|
||||||
|
msgstr "em falta a versão do pacote em %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error while reading package %s: %s\n"
|
||||||
|
msgstr "erro ao ler o pacote %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package metadata in %s\n"
|
||||||
|
msgstr "em falta metadados do pacote em %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database path is undefined\n"
|
||||||
|
msgstr "localização da base de dados não definida\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "nova tentativa de registrar a base de dados 'local'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "dependency cycle detected:\n"
|
||||||
|
msgstr "dependência cíclica detectada:\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
|
msgstr "%s será removido após a dependência %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
|
msgstr "%s será instalado antes da dependência %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package %s-%s\n"
|
||||||
|
msgstr "a ignorar pacote %s-%s\n"
|
||||||
|
|
||||||
|
# ?
|
||||||
|
#, c-format
|
||||||
|
msgid "provider package was selected (%s provides %s)\n"
|
||||||
|
msgstr "foi selecionado o pacote que fornece (%s fornece %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
msgstr "não é possível resolver \"%s\", uma dependência de \"%s\"\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "disk"
|
||||||
|
msgstr "disco"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "url '%s' é inválida\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
msgstr "falha ao obter ficheiro '%s' de %s : %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
|
msgstr "não foi possível retomar a descarga de %s; a reiniciar a descarga\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error writing to file '%s': %s\n"
|
||||||
|
msgstr "erro ao escrever no ficheiro '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "falha ao obter o ficheiro '%s' de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
|
msgstr "%s parece estar quebrado: %jd/%jd bytes\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to download %s\n"
|
||||||
|
msgstr "falha ao fazer a descarga de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "out of memory!"
|
||||||
|
msgstr "memória cheia!"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected system error"
|
||||||
|
msgstr "erro inesperado do sistema"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "insufficient privileges"
|
||||||
|
msgstr "privilégios insuficientes"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read file"
|
||||||
|
msgstr "não foi possível encontrar ou ler o ficheiro"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read directory"
|
||||||
|
msgstr "não foi possível encontrar ou ler o diretório"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "wrong or NULL argument passed"
|
||||||
|
msgstr "argumento comunicado está errado ou NULO"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library not initialized"
|
||||||
|
msgstr "biblioteca não inicializada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library already initialized"
|
||||||
|
msgstr "biblioteca já inicializada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unable to lock database"
|
||||||
|
msgstr "não foi possível bloquear a base de dados"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open database"
|
||||||
|
msgstr "não foi possível abrir a base de dados"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create database"
|
||||||
|
msgstr "não foi possível criar a base de dados"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database not initialized"
|
||||||
|
msgstr "base de dados não inicializada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database already registered"
|
||||||
|
msgstr "base de dados já registrada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find database"
|
||||||
|
msgstr "não foi possível encontrar a base de dados"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database"
|
||||||
|
msgstr "não foi possível actualizar a base de dados"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry"
|
||||||
|
msgstr "não foi possível remover a entrada da base de dados"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid url for server"
|
||||||
|
msgstr "url inválida para o servidor"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no servers configured for repository"
|
||||||
|
msgstr "nenhum servidor configurado para o repositório"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction already initialized"
|
||||||
|
msgstr "operação já inicializada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not initialized"
|
||||||
|
msgstr "operação não inicializada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicate target"
|
||||||
|
msgstr "objecto alvo duplicado"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not prepared"
|
||||||
|
msgstr "operação não está pronta"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction aborted"
|
||||||
|
msgstr "operação abortada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation not compatible with the transaction type"
|
||||||
|
msgstr "actividade não compatível com o tipo de operação"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction commit attempt when database is not locked"
|
||||||
|
msgstr "tentativa de aceitar a operação com a base de dados não bloqueada"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read package"
|
||||||
|
msgstr "não foi possível ler ou escrever o pacote"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation cancelled due to ignorepkg"
|
||||||
|
msgstr "operação cancelada devido a ignorepkg"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted package"
|
||||||
|
msgstr "pacote inválido ou corrompido"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open package file"
|
||||||
|
msgstr "não foi possível abrir o ficheiro do pacote"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove all files for package"
|
||||||
|
msgstr "não foi possível remover todos os ficheiros do pacote"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package filename is not valid"
|
||||||
|
msgstr "o nome do pacote não é válido"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package architecture is not valid"
|
||||||
|
msgstr "a arquitectura do pacote não é válida"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "não foi possível encontrar o repositório para o pacote"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted delta"
|
||||||
|
msgstr "delta inválido ou corrompido"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "delta patch failed"
|
||||||
|
msgstr "patch do delta falhou"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not satisfy dependencies"
|
||||||
|
msgstr "não foi possível cumprir as dependências"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting dependencies"
|
||||||
|
msgstr "dependências em conflito"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting files"
|
||||||
|
msgstr "ficheiros em conflito"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files"
|
||||||
|
msgstr "falha ao descarregar alguns ficheiros"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid regular expression"
|
||||||
|
msgstr "expressão regular inválida"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "libarchive error"
|
||||||
|
msgstr "erro na libarchive"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "download library error"
|
||||||
|
msgstr "erro na biblioteca de descargas"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error invoking external downloader"
|
||||||
|
msgstr "erro ao invocar o programa de descargas externo"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected error"
|
||||||
|
msgstr "erro inesperado"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find %s in database -- skipping\n"
|
||||||
|
msgstr "não foi possível encontrar %s na base de dados - a ignorar\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "a remover \"%s\" da lista de pacotes a serem actualizados\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove file '%s': %s\n"
|
||||||
|
msgstr "não foi possível remover o ficheiro '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry %s-%s\n"
|
||||||
|
msgstr "não foi possível remover a entrada da base de dados %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
|
msgstr "não foi possível remover a entrada '%s' da cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: a ignorar actualização do pacote (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: a ignorar downgrade do pacote (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
|
msgstr "%s: a voltar da versão %s para a versão %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: local (%s) is newer than %s (%s)\n"
|
||||||
|
msgstr "%s: local (%s) é mais recente que %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
|
||||||
|
msgstr "a ignorar substituição do pacote (%s-%s => %s-%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot replace %s by %s\n"
|
||||||
|
msgstr "não foi possível substituir %s por %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
|
msgstr "%s-%s está actualizado -- a ignorar\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
|
msgstr "%s-%s está actualizado -- a reinstalar\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
|
msgstr "a fazer downgrade do pacote %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "ignorar alvo: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unresolvable package conflicts detected\n"
|
||||||
|
msgstr "detectado conflito entre pacotes sem solução\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
|
msgstr "a remover '%s' da lista de pacotes porque entra em conflito com '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files from %s\n"
|
||||||
|
msgstr "falha ao obter alguns ficheiros de %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit removal transaction\n"
|
||||||
|
msgstr "não foi possível efectuar a operação de remoção\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit transaction\n"
|
||||||
|
msgstr "não foi possível efectuar a operação\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove lock file %s\n"
|
||||||
|
msgstr "não foi possível remover o ficheiro bloqueado %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create temp directory\n"
|
||||||
|
msgstr "não foi possível criar diretório temporário\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not copy tempfile to %s (%s)\n"
|
||||||
|
msgstr "não foi possível copiar ficheiro temporário para %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove tmpdir %s\n"
|
||||||
|
msgstr "não foi possível remover o diretório temporário %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to %s (%s)\n"
|
||||||
|
msgstr "não foi possível mudar o diretório para %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not fork a new process (%s)\n"
|
||||||
|
msgstr "não foi possível fazer fork de um novo processo (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change the root directory (%s)\n"
|
||||||
|
msgstr "não foi possível mudar o diretório raiz (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to / (%s)\n"
|
||||||
|
msgstr "não foi possível mudar o diretório para / (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to popen failed (%s)\n"
|
||||||
|
msgstr "chamada para popen falhou (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
msgstr "chamada para waitpid falhou (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "command failed to execute correctly\n"
|
||||||
|
msgstr "comando não executado corretamente\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no %s cache exists, creating...\n"
|
||||||
|
msgstr "cache %s não existe, a criar...\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
|
msgstr ""
|
||||||
|
"não foi possível criar cache de pacotes, a usar /tmp como alternativa\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "pacotes conflitantes foram encontrados na lista de pacotes a serem "
|
||||||
|
#~ "atualizados\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "você não pode instalar dois pacotes conflitantes ao mesmo tempo\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "substituir pacotes com -U ainda não é suportado\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "você pode substituir pacotes manualmente usando as opções -Rd e -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "esquema da url não especificado, assumindo HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "não foi possível escrever no arquivo '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "repositório não existe"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "repositório '%s' não encontrado\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "não foi possível criar transação de remoção\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "não foi possível criar a transação\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "não foi possível inicializar a transação de remoção\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "não foi possível inicializar a transação\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "não foi possível preparar a transação de remoção\n"
|
||||||
|
|
||||||
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
|
#~ msgstr "erro no download de '%s': %s\n"
|
||||||
|
|
||||||
|
#~ msgid "could not chdir to %s\n"
|
||||||
|
#~ msgstr "não foi possível mudar para o diretório %s\n"
|
||||||
|
|
||||||
|
#~ msgid "running XferCommand: fork failed!\n"
|
||||||
|
#~ msgstr "rodando XferCommand: fork falhou!\n"
|
||||||
|
|
||||||
|
#~ msgid "could not commit transaction"
|
||||||
|
#~ msgstr "não foi possível realizar transação"
|
||||||
|
|
||||||
|
#~ msgid "could not download all files"
|
||||||
|
#~ msgstr "não foi possível fazer o download de todos os arquivos"
|
||||||
|
|
||||||
|
#~ msgid "cannot load package data"
|
||||||
|
#~ msgstr "não foi possível carregar dados do pacote"
|
||||||
|
|
||||||
|
#~ msgid "package not installed or lesser version"
|
||||||
|
#~ msgstr "pacote não instalado ou versão inferior"
|
||||||
|
|
||||||
|
#~ msgid "group not found"
|
||||||
|
#~ msgstr "grupo não encontrado"
|
||||||
|
|
||||||
|
#~ msgid "user aborted the operation"
|
||||||
|
#~ msgstr "usuário abortou a operação"
|
||||||
|
|
||||||
|
#~ msgid "internal error"
|
||||||
|
#~ msgstr "erro interno"
|
||||||
|
|
||||||
|
#~ msgid "not confirmed"
|
||||||
|
#~ msgstr "não confirmado"
|
||||||
|
|
||||||
|
#~ msgid "%s-%s: ignoring package upgrade (to be replaced by %s-%s)\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "%s-%s: ignorando atualização do pacote (a ser substituido por %s-%s)\n"
|
||||||
|
|
||||||
|
#~ msgid "command: %s\n"
|
||||||
|
#~ msgstr "comando: %s\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare transaction\n"
|
||||||
|
#~ msgstr "não foi possível preparar a transação\n"
|
||||||
|
|
||||||
|
#~ msgid "No /bin/sh in parent environment, aborting scriptlet\n"
|
||||||
|
#~ msgstr "/bin/sh não encontrado no diretório pai, abortando scriptlet\n"
|
||||||
@@ -1,21 +1,22 @@
|
|||||||
# translation of pt_BR.po to Português do Brasil
|
# translation of pt_BR.po to Português do Brasil
|
||||||
# Portuguese translations for Pacman package manager package.
|
# Portuguese translations for Pacman package manager package.
|
||||||
# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Lincoln de Sousa <lincoln@archlinux-br.org>, 2007.
|
# Lincoln de Sousa <lincoln@archlinux-br.org>, 2007.
|
||||||
# Hugo Doria <hugodoria@archlinux-br.org>, 2007-2008.
|
# Hugo Doria <hugodoria@archlinux-br.org>, 2007-2008.
|
||||||
# Douglas Soares de Andrade <dsandrade@gmail.com>, 2008.
|
# Douglas Soares de Andrade <dsandrade@gmail.com>, 2008.
|
||||||
# João Felipe Santos <jfsantos@archlinux-br.org>, 2008.
|
# João Felipe Santos <jfsantos@archlinux-br.org>, 2008.
|
||||||
# Armando M. Baratti <ambaratti@archlinux-br.org>, 2008.
|
# Armando M. Baratti <ambaratti@archlinux-br.org>, 2008.
|
||||||
#
|
# Rodrigo L. M. Flores <flores@archlinux-br.org>, 2009, 2010.
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: pt_BR\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-28 23:17-0300\n"
|
"PO-Revision-Date: 2010-06-07 21:09-0300\n"
|
||||||
"Last-Translator: Armando M. Baratti <ambaratti.listas@gmail.com.br>\n"
|
"Last-Translator: Rodrigo L. M. Flores <flores@archlinux-br.org>\n"
|
||||||
"Language-Team: Português do Brasil <www.archlinux-br.org>\n"
|
"Language-Team: Português do Brasil <www.archlinux-br.org>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -28,28 +29,10 @@ msgstr ""
|
|||||||
"atualizados\n"
|
"atualizados\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ignorando %s-%s porque uma nova versão %s está na lista de pacotes a serem "
|
"pulando %s-%s por que uma versão mais nova %s está na lista de pacotes a "
|
||||||
"atualizados\n"
|
"serem atualizados\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr ""
|
|
||||||
"pacotes conflitantes foram encontrados na lista de pacotes a serem "
|
|
||||||
"atualizados\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "você não pode instalar dois pacotes conflitantes ao mesmo tempo\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "substituir pacotes com -U ainda não é suportado\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "você pode substituir pacotes manualmente usando as opções -Rd e -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -81,7 +64,7 @@ msgstr "%s salvo como %s\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not install %s as %s (%s)\n"
|
msgid "could not install %s as %s (%s)\n"
|
||||||
msgstr "não foi possível instalar %s como %s: (%s)\n"
|
msgstr "não foi possível instalar %s como %s (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s installed as %s\n"
|
msgid "%s installed as %s\n"
|
||||||
@@ -97,7 +80,7 @@ msgstr "não foi possível obter o diretório de trabalho atual\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "problem occurred while upgrading %s\n"
|
msgid "problem occurred while upgrading %s\n"
|
||||||
msgstr "erros ocorreram durante o upgrade de %s\n"
|
msgstr "erros ocorreram durante a atualização de %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "problem occurred while installing %s\n"
|
msgid "problem occurred while installing %s\n"
|
||||||
@@ -111,6 +94,18 @@ msgstr "não foi possível atualizar a entrada na base de dados %s-%s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "não foi possível adicionar a entrada '%s' ao cache\n"
|
msgstr "não foi possível adicionar a entrada '%s' ao cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "removendo banco de dados inválido: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "não foi possível abrir %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "não foi possível remover o diretório da base de dados %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "não foi possível remover a base de dados %s\n"
|
msgstr "não foi possível remover a base de dados %s\n"
|
||||||
@@ -119,9 +114,13 @@ msgstr "não foi possível remover a base de dados %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "nome inválido para a entrada na base de dados '%s'\n"
|
msgstr "nome inválido para a entrada na base de dados '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "entrada da base de dados duplicada '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "entrada corrompida da base de dados '%s'\n"
|
msgstr "entrada da base de dados corrompida '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not open file %s: %s\n"
|
msgid "could not open file %s: %s\n"
|
||||||
@@ -134,7 +133,7 @@ msgstr "%s base de dados está inconsistente: nome no pacote %s não coincide\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s base de dados está inconsistente: versão no pacote %s não coincide\n"
|
"%s base de dados está inconsistente: versão do pacote %s não coincide\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not create directory %s: %s\n"
|
msgid "could not create directory %s: %s\n"
|
||||||
@@ -160,14 +159,14 @@ msgstr "erro ao ler o pacote %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "faltando metadados do pacote em %s\n"
|
msgstr "faltando metadados do pacote em %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "tentativa de registrar a base de dados 'local' novamente\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "caminho da base de dados não definido\n"
|
msgstr "caminho da base de dados não definido\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "nova tentativa de registrar a base de dados 'local'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "dependência cíclica detectada:\n"
|
msgstr "dependência cíclica detectada:\n"
|
||||||
@@ -192,34 +191,30 @@ msgstr "pacote provedor foi selecionado (%s provê %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "não é possível resolver \"%s\", uma dependência de \"%s\"\n"
|
msgstr "não é possível resolver \"%s\", uma dependência de \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "url '%s' é inválida\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "esquema da url não especificado, assumindo HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disco"
|
msgstr "disco"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "url '%s' é inválida\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "falha ao obter arquivo '%s' de %s : %s\n"
|
msgstr "falha ao obter arquivo '%s' de %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "não foi possível retomar o download, reiniciando\n"
|
msgstr "não foi possível retomar o download de %s; reiniciando download\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "não foi possível escrever no arquivo '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "erro ao escrever no arquivo '%s': %s\n"
|
msgstr "erro ao escrever no arquivo '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "falha ao obter arquivo '%s' de %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s parece estar truncado: %jd/%jd bytes\n"
|
msgstr "%s parece estar truncado: %jd/%jd bytes\n"
|
||||||
@@ -294,7 +289,7 @@ msgstr "não foi possível remover a entrada da base de dados"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid url for server"
|
msgid "invalid url for server"
|
||||||
msgstr "url inválida para servidor"
|
msgstr "url inválida para o servidor"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no servers configured for repository"
|
msgid "no servers configured for repository"
|
||||||
@@ -346,15 +341,19 @@ msgstr "não foi possível abrir arquivo do pacote"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove all files for package"
|
msgid "cannot remove all files for package"
|
||||||
msgstr "não foi possível remover todos os arquivos para o pacote"
|
msgstr "não foi possível remover todos os arquivos do pacote"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package filename is not valid"
|
msgid "package filename is not valid"
|
||||||
msgstr "o nome do arquivo do pacote não é valido"
|
msgstr "o nome do pacote não é valido"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "repositório não existe"
|
msgstr "a arquitetura do pacote não é valida"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "não foi possível encontrar o repositório para o pacote"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -394,7 +393,7 @@ msgstr "erro na biblioteca de download"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error invoking external downloader"
|
msgid "error invoking external downloader"
|
||||||
msgstr "erro invocando programa de download externo"
|
msgstr "erro ao invocar o programa de download externo"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unexpected error"
|
msgid "unexpected error"
|
||||||
@@ -404,6 +403,10 @@ msgstr "erro inesperado"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "não foi possível encontrar %s na base de dados - pulando\n"
|
msgstr "não foi possível encontrar %s na base de dados - pulando\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "removendo \"%s\" da lista de pacotes a serem atualizados\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "não foi possível remover o arquivo '%s': %s\n"
|
msgstr "não foi possível remover o arquivo '%s': %s\n"
|
||||||
@@ -422,7 +425,7 @@ msgstr "%s: ignorando atualização do pacote (%s => %s)\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
msgstr "%s: ignorando retorno de versão do pacote (%s => %s)\n"
|
msgstr "%s: ignorando downgrade do pacote (%s => %s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: downgrading from version %s to version %s\n"
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
@@ -440,10 +443,6 @@ msgstr "ignorando substituição do pacote (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "não foi possível substituir %s por %s\n"
|
msgstr "não foi possível substituir %s por %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "repositório '%s' não encontrado\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s está atualizado -- pulando\n"
|
msgstr "%s-%s está atualizado -- pulando\n"
|
||||||
@@ -456,6 +455,10 @@ msgstr "%s-%s está atualizado -- reinstalando\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "fazendo downgrade do pacote %s (%s => %s)\n"
|
msgstr "fazendo downgrade do pacote %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "pulando alvo: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "conflito de pacotes não solucionável detectado\n"
|
msgstr "conflito de pacotes não solucionável detectado\n"
|
||||||
@@ -468,26 +471,6 @@ msgstr "removendo '%s' da lista de pacotes porque ele conflita com '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "falha ao obter alguns arquivos de %s\n"
|
msgstr "falha ao obter alguns arquivos de %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "não foi possível criar transação de remoção\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "não foi possível criar a transação\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "não foi possível inicializar a transação de remoção\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "não foi possível inicializar a transação\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "não foi possível preparar a transação de remoção\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "não foi possível efetuar a transação de remoção\n"
|
msgstr "não foi possível efetuar a transação de remoção\n"
|
||||||
@@ -512,13 +495,9 @@ msgstr "não foi possível copiar arquivo temporário para %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "não foi possível remover o diretório temporário %s\n"
|
msgstr "não foi possível remover o diretório temporário %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "não foi possível abrir %s : %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "não foi possível mudar diretório para %s (%s)\n"
|
msgstr "não foi possível mudar o diretório para %s (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not fork a new process (%s)\n"
|
msgid "could not fork a new process (%s)\n"
|
||||||
@@ -533,8 +512,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "não foi possível mudar o diretório para / (%s)\n"
|
msgstr "não foi possível mudar o diretório para / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "chamada para popen falhou (%s)"
|
msgstr "chamada para popen falhou (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -542,7 +521,7 @@ msgstr "chamada para waitpid falhou (%s)\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "command failed to execute correctly\n"
|
msgid "command failed to execute correctly\n"
|
||||||
msgstr "o comando falhou em executar corretamente\n"
|
msgstr "comando não executado corretamente\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no %s cache exists, creating...\n"
|
msgid "no %s cache exists, creating...\n"
|
||||||
@@ -552,6 +531,48 @@ msgstr "cache %s não existe, criando...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "não foi possível criar cache de pacotes, usando /tmp em seu lugar\n"
|
msgstr "não foi possível criar cache de pacotes, usando /tmp em seu lugar\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "pacotes conflitantes foram encontrados na lista de pacotes a serem "
|
||||||
|
#~ "atualizados\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "você não pode instalar dois pacotes conflitantes ao mesmo tempo\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "substituir pacotes com -U ainda não é suportado\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "você pode substituir pacotes manualmente usando as opções -Rd e -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "esquema da url não especificado, assumindo HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "não foi possível escrever no arquivo '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "repositório não existe"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "repositório '%s' não encontrado\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "não foi possível criar transação de remoção\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "não foi possível criar a transação\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "não foi possível inicializar a transação de remoção\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "não foi possível inicializar a transação\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "não foi possível preparar a transação de remoção\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "erro no download de '%s': %s\n"
|
#~ msgstr "erro no download de '%s': %s\n"
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
# libalpm Romanian translation.
|
# libalpm Romanian translation.
|
||||||
# Copyright (C) 2009 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the PACKAGE package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Volodia Macovei <blog@volodia.ro>, 2009.
|
# Volodia Macovei <blog@volodia.ro>, 2009.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.0.0\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-06-28 14:30+0700\n"
|
"PO-Revision-Date: 2009-10-04 17:09+0200\n"
|
||||||
"Last-Translator: volodia macovei <blog@volodia.ro>\n"
|
"Last-Translator: volodia macovei <blog@volodia.ro>\n"
|
||||||
"Language-Team: Romanian SbLUG for Arch <blog@volodia.ro>\n"
|
"Language-Team: Romanian SbLUG for Arch <blog@volodia.ro>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -21,26 +22,10 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "se înlocuieşte versiunea veche %s-%s cu %s în lista ţintă\n"
|
msgstr "se înlocuieşte versiunea veche %s-%s cu %s în lista ţintă\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"se trece peste %s-%s deoarece o versiune mai nouă %s există în lista ţintă\n"
|
"se trece peste %s-%s deoarece o versiune mai nouă %s există în lista ţintă\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "s-au găsit pachete în conflict în lista ţintă\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "nu puteţi instala două pachete aflate în conflict în acelaşi timp\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "înlocuirea pachetelor cu -U nu este suportată încă\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "puteţi înlocui manual pachetele folosind -Rd şi -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -101,6 +86,18 @@ msgstr "nu se poate actualiza intrarea în baza de date %s-%s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "nu se poate adăuga intrarea '%s' în cache\n"
|
msgstr "nu se poate adăuga intrarea '%s' în cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "se elimină baza de date nevalidă %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "nu se poate deschide %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "nu se poate elimina directorul cu baza de date %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "nu poate fi eliminată baza de date %s\n"
|
msgstr "nu poate fi eliminată baza de date %s\n"
|
||||||
@@ -109,6 +106,10 @@ msgstr "nu poate fi eliminată baza de date %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "nume pentru intrarea în baza de date nevalid '%s'\n"
|
msgstr "nume pentru intrarea în baza de date nevalid '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "intrare duplicitara pentru baza de date '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "intrare în baza de date coruptă '%s'\n"
|
msgstr "intrare în baza de date coruptă '%s'\n"
|
||||||
@@ -125,8 +126,8 @@ msgstr ""
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"baza de date %s este inconsistentă: versiunea nu se potriveşte cu pachetul %"
|
"baza de date %s este inconsistentă: versiunea nu se potriveşte cu pachetul "
|
||||||
"s\n"
|
"%s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not create directory %s: %s\n"
|
msgid "could not create directory %s: %s\n"
|
||||||
@@ -152,14 +153,14 @@ msgstr "eroare la citirea pachetului %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "lipsă metadata pentru pachet în %s\n"
|
msgstr "lipsă metadata pentru pachet în %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "încercare de a reînregistra 'local' DB\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "calea bazei de date este nedefinită\n"
|
msgstr "calea bazei de date este nedefinită\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "încercare de a reînregistra 'local' DB\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "a fost detectat ciclul de dependenţă:\n"
|
msgstr "a fost detectat ciclul de dependenţă:\n"
|
||||||
@@ -184,34 +185,30 @@ msgstr "pachetul furnizor a fost selectat (%s furnizează %s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "nu se poate rezolva \"%s\", o dependenţă a \"%s\"\n"
|
msgstr "nu se poate rezolva \"%s\", o dependenţă a \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "URL '%s' este nevalid\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "schemă URL nespecificată, se presupune HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disk"
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "URL '%s' este nevalid\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "eşec la regăsirea fişierului '%s' din %s : %s\n"
|
msgstr "eşec la regăsirea fişierului '%s' din %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "nu se poate relua descărcare, se începe peste\n"
|
msgstr "nu se poate relua descărcare pentru %s; se începe peste\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "nu se poate scrie în fişierul '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "eroare la scriere în fişierul '%s': %s\n"
|
msgstr "eroare la scriere în fişierul '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "eşec la regăsirea fişierului '%s' din %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s apare a fi trunchiat: %jd/%jd bytes\n"
|
msgstr "%s apare a fi trunchiat: %jd/%jd bytes\n"
|
||||||
@@ -345,8 +342,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "numele de fişier pachet este nevalid"
|
msgstr "numele de fişier pachet este nevalid"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "nu există astfel de depozit"
|
msgstr "architectura pachetului este nevalidă"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "depozitul pentru țintă nu poate fi găsit"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -396,6 +397,10 @@ msgstr "eroare neaşteptată"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "nu poate fi găsit %s în baza de date -- se trece peste\n"
|
msgstr "nu poate fi găsit %s în baza de date -- se trece peste\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "se elimină '%s' din lista ţintă\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "nu poate fi eliminat fişierul '%s': %s\n"
|
msgstr "nu poate fi eliminat fişierul '%s': %s\n"
|
||||||
@@ -432,10 +437,6 @@ msgstr "se ignoră înlocuirea pachetului (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "nu poate fi înlocuit %s de %s\n"
|
msgstr "nu poate fi înlocuit %s de %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "depozit '%s' negăsit\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s este actualizat -- se trece peste\n"
|
msgstr "%s-%s este actualizat -- se trece peste\n"
|
||||||
@@ -448,6 +449,10 @@ msgstr "%s-%s este actualizat -- se reinstalează\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "se declasează pachetul %s (%s => %s)\n"
|
msgstr "se declasează pachetul %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "se sare peste ținta: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "au fost detectate conflicte nerezolvabile în pachet\n"
|
msgstr "au fost detectate conflicte nerezolvabile în pachet\n"
|
||||||
@@ -460,26 +465,6 @@ msgstr "se elimină '%s' din lista ţintă deoarece este în conflict cu '%s'\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "eşec în refacerea unor fişiere din %s\n"
|
msgstr "eşec în refacerea unor fişiere din %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "nu poate fi creată tranzacţia de eliminare\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "nu poate fi creată tranzacţia\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "nu poate fi iniţializată tranzacţia de eliminare\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "nu poate fi iniţializată tranzacţia\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "nu poate fi pregătită tranzacţia de eliminare\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "nu poate fi efectuată tranzacţia de eliminare\n"
|
msgstr "nu poate fi efectuată tranzacţia de eliminare\n"
|
||||||
@@ -504,10 +489,6 @@ msgstr "nu se poate copia tempfile la %s (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "nu poate fi eliminat tmpdir %s\n"
|
msgstr "nu poate fi eliminat tmpdir %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "nu se poate deschide %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "nu poate fi schimbat directorul la %s (%s)\n"
|
msgstr "nu poate fi schimbat directorul la %s (%s)\n"
|
||||||
@@ -525,8 +506,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "nu poate fi schimbat directorul la / (%s)\n"
|
msgstr "nu poate fi schimbat directorul la / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "cererea către popen a eşuat (%s)"
|
msgstr "cererea către popen a eşuat (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -543,3 +524,42 @@ msgstr "nu există %s cache, se crează...\n"
|
|||||||
#, c-format
|
#, c-format
|
||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "nu se poate crea cache pachet, se foloseşte mai degrabă /tmp\n"
|
msgstr "nu se poate crea cache pachet, se foloseşte mai degrabă /tmp\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "s-au găsit pachete în conflict în lista ţintă\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "nu puteţi instala două pachete aflate în conflict în acelaşi timp\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "înlocuirea pachetelor cu -U nu este suportată încă\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "puteţi înlocui manual pachetele folosind -Rd şi -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "schemă URL nespecificată, se presupune HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "nu se poate scrie în fişierul '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "nu există astfel de depozit"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "depozit '%s' negăsit\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "nu poate fi creată tranzacţia de eliminare\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "nu poate fi creată tranzacţia\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "nu poate fi iniţializată tranzacţia de eliminare\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "nu poate fi iniţializată tranzacţia\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "nu poate fi pregătită tranzacţia de eliminare\n"
|
||||||
|
|||||||
@@ -1,48 +1,31 @@
|
|||||||
# Russian translations for Pacman package manager package.
|
# Russian translations for Pacman package manager package.
|
||||||
# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# <4rayven@gmail.com>, 2007. <serg.partizan@gmail.com> 2008
|
# <4rayven@gmail.com>, 2007. <serg.partizan@gmail.com> 2008
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.0.0\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-29 20:29+0300\n"
|
"PO-Revision-Date: 2010-06-06 10:07+0300\n"
|
||||||
"Last-Translator: Sergey Tereschenko <serg.partizan@gmail.com>\n"
|
"Last-Translator: Sergey Tereschenko <serg.partizan@gmail.com>\n"
|
||||||
"Language-Team: Russian\n"
|
"Language-Team: Russian\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
|
"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"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "replacing older version %s-%s by %s in target list\n"
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
msgstr "заменяется устаревшая версия %s-%s на %s в списке целей\n"
|
msgstr "заменяется устаревшая версия %s-%s на %s в списке целей\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "пропускается %s-%s, поскольку новая версия %s в списке целей\n"
|
msgstr "пропускается %s-%s, поскольку новая версия %s в списке целей\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "в списке целей найдены конфликтующие пакеты\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr ""
|
|
||||||
"вы не можете одновременно установить конфликтующие между собой пакеты\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr ""
|
|
||||||
"замещение пакетов с использованием параметров -A и -U еще не реализовано\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "вы можете заменить пакеты вручную, используя -Rd и -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -103,6 +86,18 @@ msgstr "не удалось обновить в базе данных запис
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "не удалось добавить запись '%s' в кэш\n"
|
msgstr "не удалось добавить запись '%s' в кэш\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "удаление некорректной базы данных %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "не удалось открыть %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "не удалось удалить каталог базы данных %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "не удалось удалить базу данных %s\n"
|
msgstr "не удалось удалить базу данных %s\n"
|
||||||
@@ -111,6 +106,10 @@ msgstr "не удалось удалить базу данных %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "неправильное имя для записи в базе данных '%s'\n"
|
msgstr "неправильное имя для записи в базе данных '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "повторяющаяся запись в базе данных '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "повреждённая запись в базе данных '%s'\n"
|
msgstr "повреждённая запись в базе данных '%s'\n"
|
||||||
@@ -153,14 +152,14 @@ msgstr "ошибка при чтении пакета %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "отсутствуют метаданные пакета в %s\n"
|
msgstr "отсутствуют метаданные пакета в %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "попытка перерегистрировать локальную БД\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "путь к базе данных не определён\n"
|
msgstr "путь к базе данных не определён\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "попытка перерегистрировать локальную БД\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "обнаружена циклическая зависимость:\n"
|
msgstr "обнаружена циклическая зависимость:\n"
|
||||||
@@ -185,34 +184,30 @@ msgstr "выбран пакет %s, предоставляющий %s\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "не удалось разрешить \"%s\", зависимость \"%s\"\n"
|
msgstr "не удалось разрешить \"%s\", зависимость \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "ссылка '%s' некорректна\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "схема ссылки не определена, подразумевается HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "диск"
|
msgstr "диск"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "ссылка '%s' некорректна\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "не удалось получить файл '%s' из %s : %s\n"
|
msgstr "не удалось получить файл '%s' из %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "не удалось продолжить закачку, начинаю заново\n"
|
msgstr "не удалось продолжить закачку %s; начинаю заново\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "не удалось записать в файл '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "ошибка записи в файл '%s': %s\n"
|
msgstr "ошибка записи в файл '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "не удалось получить файл '%s' из %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s, видимо, обрезан: %jd/%jd байт\n"
|
msgstr "%s, видимо, обрезан: %jd/%jd байт\n"
|
||||||
@@ -346,8 +341,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "неверное имя файла пакета"
|
msgstr "неверное имя файла пакета"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "нет такого репозитория"
|
msgstr "архитектура пакета недопустима"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "не удалось репозиторий для цели"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -397,6 +396,10 @@ msgstr "непредвиденная ошибка"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "не удалось найти %s в базе данных -- пропускается\n"
|
msgstr "не удалось найти %s в базе данных -- пропускается\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "удаление '%s' из списка целей\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "не удалось удалить файл '%s': %s\n"
|
msgstr "не удалось удалить файл '%s': %s\n"
|
||||||
@@ -433,10 +436,6 @@ msgstr "пропускается замена пакета (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "не удалось заменить %s на %s\n"
|
msgstr "не удалось заменить %s на %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "репозиторий '%s' не найден\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s не устарел -- пропускается\n"
|
msgstr "%s-%s не устарел -- пропускается\n"
|
||||||
@@ -449,6 +448,10 @@ msgstr "%s-%s не устарел -- переустанавливается\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "откат версии пакета %s (%s => %s)\n"
|
msgstr "откат версии пакета %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "пропуск цели: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "обнаружен неразрешимый конфликт пакетов\n"
|
msgstr "обнаружен неразрешимый конфликт пакетов\n"
|
||||||
@@ -461,26 +464,6 @@ msgstr "удаление '%s' из списка целей, поскольку
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "не удалось получить некоторые файлы с %s\n"
|
msgstr "не удалось получить некоторые файлы с %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "не удалось создать запрос на удаление\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "не удалось создать запрос\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "не удалось инициализировать запрос на удаление\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "не удалось инициализировать запрос\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "не удалось подготовить запрос на удаление\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "не удалось совершить запрос на удаление\n"
|
msgstr "не удалось совершить запрос на удаление\n"
|
||||||
@@ -505,10 +488,6 @@ msgstr "не удалось скопировать временный файл
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "не удалось удалить временный каталог %s\n"
|
msgstr "не удалось удалить временный каталог %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "не удалось открыть %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "не удалось изменить каталог на %s (%s)\n"
|
msgstr "не удалось изменить каталог на %s (%s)\n"
|
||||||
@@ -526,8 +505,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "не удалось изменить каталог на / (%s)\n"
|
msgstr "не удалось изменить каталог на / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "вызов popen не удался (%s)"
|
msgstr "вызов popen не удался (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -545,6 +524,47 @@ msgstr "кэш %s не существует, создается...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "не удалось создать кэш пакетов, будет использован /tmp\n"
|
msgstr "не удалось создать кэш пакетов, будет использован /tmp\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "в списке целей найдены конфликтующие пакеты\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "вы не можете одновременно установить конфликтующие между собой пакеты\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "замещение пакетов с использованием параметров -A и -U еще не реализовано\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "вы можете заменить пакеты вручную, используя -Rd и -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "схема ссылки не определена, подразумевается HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "не удалось записать в файл '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "нет такого репозитория"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "репозиторий '%s' не найден\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "не удалось создать запрос на удаление\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "не удалось создать запрос\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "не удалось инициализировать запрос на удаление\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "не удалось инициализировать запрос\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "не удалось подготовить запрос на удаление\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "ошибка загрузки '%s': %s\n"
|
#~ msgstr "ошибка загрузки '%s': %s\n"
|
||||||
|
|
||||||
@@ -588,4 +608,4 @@ msgstr "не удалось создать кэш пакетов, будет и
|
|||||||
#~ msgstr "не удалось подготовить запрос\n"
|
#~ msgstr "не удалось подготовить запрос\n"
|
||||||
|
|
||||||
#~ msgid "No /bin/sh in parent environment, aborting scriptlet\n"
|
#~ msgid "No /bin/sh in parent environment, aborting scriptlet\n"
|
||||||
#~ msgstr "Нету /bin/sh в родительском окружении, отмена скрипта\n"
|
#~ msgstr "Нет /bin/sh в родительском окружении, отмена скрипта\n"
|
||||||
|
|||||||
522
lib/libalpm/po/sk.po
Normal file
522
lib/libalpm/po/sk.po
Normal file
@@ -0,0 +1,522 @@
|
|||||||
|
# translation of sk.po to Slovak
|
||||||
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
|
# Jose Riha <jose1711 gmail com>, 2010.
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
|
"PO-Revision-Date: 2010-07-27 22:56+0200\n"
|
||||||
|
"Last-Translator: Jozef Říha <jose1711@gmail.com>\n"
|
||||||
|
"Language-Team: Slovak\n"
|
||||||
|
"Language: sk\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"X-Generator: Lokalize 1.0\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
|
msgstr "v zozname cieľov nahradená staršia verzia %s-%s za %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
msgstr "vynechávam %s-%s, pretože v zozname cieľov je novšia verzia %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"directory permissions differ on %s\n"
|
||||||
|
"filesystem: %o package: %o\n"
|
||||||
|
msgstr ""
|
||||||
|
"prístupové práva adresára %s sa nezhodujú\n"
|
||||||
|
"súborový systém: %o balíček: %o\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: not overwriting dir with file %s\n"
|
||||||
|
msgstr "rozbalenie: adresár nebol prepísaný súborom %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: symlink %s does not point to dir\n"
|
||||||
|
msgstr "rozbalenie: symbolický odkaz %s neodkazuje na adresár\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not extract %s (%s)\n"
|
||||||
|
msgstr "nie je možné rozbaliť %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not rename %s to %s (%s)\n"
|
||||||
|
msgstr "nie je možné premenovať %s na %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s saved as %s\n"
|
||||||
|
msgstr "%s bol uložený ako %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not install %s as %s (%s)\n"
|
||||||
|
msgstr "%s nie je možné nainštalovať ako %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s installed as %s\n"
|
||||||
|
msgstr "%s bol nainštalovaný ako %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extracting %s as %s.pacnew\n"
|
||||||
|
msgstr "%s bol rozbalený ako %s.pacnew\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not get current working directory\n"
|
||||||
|
msgstr "nie je možné zistiť aktuálny pracovný adresár\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while upgrading %s\n"
|
||||||
|
msgstr "nastal problém pri aktualizácii %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while installing %s\n"
|
||||||
|
msgstr "nastal problém pri inštalácii %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database entry %s-%s\n"
|
||||||
|
msgstr "nie je možné aktualizovať záznam databáze %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not add entry '%s' in cache\n"
|
||||||
|
msgstr "nie je možné pridať položku '%s' do cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "odstraňujem neplatnú databázu: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "nepodarilo sa otvoriť %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "nie je možné odstrániť adresár databáze %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database %s\n"
|
||||||
|
msgstr "nie je možné odstrániť záznam v databáze %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid name for database entry '%s'\n"
|
||||||
|
msgstr "neplatná názov záznamu v databáze '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "duplicitný záznam v databáze '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "corrupted database entry '%s'\n"
|
||||||
|
msgstr "poškodený záznam v databáze '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open file %s: %s\n"
|
||||||
|
msgstr "nie je možné otvoriť súbor %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
|
msgstr "databáza %s je nekonzistentná: nesúhlasí meno balíčka %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
|
msgstr "databáza %s je nekonzistentná: nesúhlasí verzia balíčka %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create directory %s: %s\n"
|
||||||
|
msgstr "nie je možné vytvoriť adresár %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not parse package description file in %s\n"
|
||||||
|
msgstr "nie je možné spracovať súbor s popisom balíčka v %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package name in %s\n"
|
||||||
|
msgstr "chýba meno balíčka v %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package version in %s\n"
|
||||||
|
msgstr "chýba verzia balíčka v %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error while reading package %s: %s\n"
|
||||||
|
msgstr "chyba pri čítaní balíčka %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package metadata in %s\n"
|
||||||
|
msgstr "chýbaju metadáta balíčka v %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database path is undefined\n"
|
||||||
|
msgstr "cesta k databáze nie je definovaná\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "pokus o opätovné zaregistrovanie databáze 'local'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "dependency cycle detected:\n"
|
||||||
|
msgstr "zistená cyklická závislosť:\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
|
msgstr "%s bude odstránený po %s, na ktorom závisí\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
|
msgstr "%s bude nainštalovaný pred %s, na ktorom závisí\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package %s-%s\n"
|
||||||
|
msgstr "ignorujem balíček %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "provider package was selected (%s provides %s)\n"
|
||||||
|
msgstr "bol vybraný nahradzujúci balíček (%s poskytuje %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
msgstr "nie je možné vyriešiť \"%s\", závislosť \"%s\"\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "disk"
|
||||||
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "URL '%s' je neplatná\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
msgstr "chyba pri získavaní súboru '%s' z %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
|
msgstr "nie je možné pokračovať v sťahovaní %s, začínam sťahovať od začiatku\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error writing to file '%s': %s\n"
|
||||||
|
msgstr "chyba pri zápisu do súboru '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "zlyhalo získanie súboru '%s' z %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
|
msgstr "%s vyzerá byť skrátený: %jd/%jd bytov\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to download %s\n"
|
||||||
|
msgstr "chyba pri sťahovaní %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "out of memory!"
|
||||||
|
msgstr "nedostatok pamäte!"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected system error"
|
||||||
|
msgstr "neočakávaná systémová chyba"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "insufficient privileges"
|
||||||
|
msgstr "nedostatočné oprávnenia"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read file"
|
||||||
|
msgstr "nie je možné nájsť alebo prečítať súbor"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read directory"
|
||||||
|
msgstr "nie je možné nájsť alebo prečítať adresár"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "wrong or NULL argument passed"
|
||||||
|
msgstr "odovzdaný chybný alebo NULL argument"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library not initialized"
|
||||||
|
msgstr "knižnica nebola inicializovaná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library already initialized"
|
||||||
|
msgstr "knižnica je už inicializovaná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unable to lock database"
|
||||||
|
msgstr "nie je možné zamknúť databázu"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open database"
|
||||||
|
msgstr "nie je možné otvoriť databázu"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create database"
|
||||||
|
msgstr "nie je možné vytvoriť databázu"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database not initialized"
|
||||||
|
msgstr "databáza nebola inicializovaná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database already registered"
|
||||||
|
msgstr "databáza je už zaregistrovaná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find database"
|
||||||
|
msgstr "nemožno nájsť databázu"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database"
|
||||||
|
msgstr "nemožno aktualizovať databázu"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry"
|
||||||
|
msgstr "nie je možné odstrániť záznam v databáze"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid url for server"
|
||||||
|
msgstr "neplatná URL pre server"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no servers configured for repository"
|
||||||
|
msgstr "pre repozitár nie sú nastavené žiadne servery"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction already initialized"
|
||||||
|
msgstr "transakcia už bola inicializovaná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not initialized"
|
||||||
|
msgstr "transakcia nebola inicializovaná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicate target"
|
||||||
|
msgstr "duplicitný cieľ"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not prepared"
|
||||||
|
msgstr "transakcia nie je pripravená"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction aborted"
|
||||||
|
msgstr "transakcia bola zrušená"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation not compatible with the transaction type"
|
||||||
|
msgstr "operácia nie je kompatibilná s typom transakcie"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction commit attempt when database is not locked"
|
||||||
|
msgstr "pokus o uskutočnenie transakcie v čas, kedy nie je databáza uzamknutá"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read package"
|
||||||
|
msgstr "nie je možné nájsť alebo prečítať balíček"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation cancelled due to ignorepkg"
|
||||||
|
msgstr "operácia bola zrušená kvôli ignorovanému balíčku"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted package"
|
||||||
|
msgstr "neplatný alebo poškodený balíček"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open package file"
|
||||||
|
msgstr "nie je možné otvoriť súbor balíčka"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove all files for package"
|
||||||
|
msgstr "nie je možné odstrániť všetky súbory balíčka"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package filename is not valid"
|
||||||
|
msgstr "méno súboru balíčka je neplatné"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package architecture is not valid"
|
||||||
|
msgstr "architektúra balíčka je neplatná"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "nie je možné nájsť repozitár cieľa"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted delta"
|
||||||
|
msgstr "neplatný alebo poškodený delta rozdiel"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "delta patch failed"
|
||||||
|
msgstr "aplikácia delta rozdielu zlyhala"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not satisfy dependencies"
|
||||||
|
msgstr "nie je možné vyriešiť závislosti"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting dependencies"
|
||||||
|
msgstr "konfliktné závislosti"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting files"
|
||||||
|
msgstr "konfliktné súbory"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files"
|
||||||
|
msgstr "chyba pri získavaní niektorých súborov"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid regular expression"
|
||||||
|
msgstr "neplatný regulárny výraz"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "libarchive error"
|
||||||
|
msgstr "chyba knižnice libarchive"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "download library error"
|
||||||
|
msgstr "chyba knižnice pre sťahovanie súborov"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error invoking external downloader"
|
||||||
|
msgstr "chyba volania externého programu pre sťahovanie súborov"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected error"
|
||||||
|
msgstr "neočakávaná chyba"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find %s in database -- skipping\n"
|
||||||
|
msgstr "nie je možné nájsť %s v databáze -- preskakujem\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "'%s' odstránený zo zoznamu cieľov\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove file '%s': %s\n"
|
||||||
|
msgstr "nie je možné odstrániť súbor '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry %s-%s\n"
|
||||||
|
msgstr "nie je možné odstrániť záznam databáze %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
|
msgstr "nie je možné odstrániť položku '%s' z cache\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: ignorujem aktualizáciu balíčka (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: ignorujem downgrade balíčka (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
|
msgstr "%s: downgradujem z verzie %s na verziu %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: local (%s) is newer than %s (%s)\n"
|
||||||
|
msgstr "%s: lokálna verzia (%s) je novšia ako %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
|
||||||
|
msgstr "ignorujem náhradu balíčku (%s-%s => %s-%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot replace %s by %s\n"
|
||||||
|
msgstr "nedá sa nahradiť súbor %s súborom %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
|
msgstr "%s-%s je aktuálny -- preskakujem\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
|
msgstr "%s-%s je aktuálny -- preinštalovávam\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
|
msgstr "downgradujem balíček %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "preskakujem cieľ: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unresolvable package conflicts detected\n"
|
||||||
|
msgstr "zistený konflikt nerozlíšiteľných balíčkov\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
|
msgstr "'%s' odstránený zo zoznamu cieľov, pretože je v konflikte s '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files from %s\n"
|
||||||
|
msgstr "chyba pri získavaní niektorých súborov z %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit removal transaction\n"
|
||||||
|
msgstr "nie je možné uskutočniť transakciu pre odstránenie\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit transaction\n"
|
||||||
|
msgstr "nie je možné uskutočniť transakciu\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove lock file %s\n"
|
||||||
|
msgstr "nie je možné odstrániť zamykací súbor %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create temp directory\n"
|
||||||
|
msgstr "nie je možné vytvoriť dočasný adresár\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not copy tempfile to %s (%s)\n"
|
||||||
|
msgstr "nie je možné skopírovať dočasný súbor do %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove tmpdir %s\n"
|
||||||
|
msgstr "nie je možné odstrániť dočasný adresár %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to %s (%s)\n"
|
||||||
|
msgstr "nie je možné prepnúť sa do adresára %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not fork a new process (%s)\n"
|
||||||
|
msgstr "nie je možné spustiť nový proces (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change the root directory (%s)\n"
|
||||||
|
msgstr "nie je možné zmeniť koreňový adresár (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to / (%s)\n"
|
||||||
|
msgstr "nie je možné prepnúť sa do adresára / (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to popen failed (%s)\n"
|
||||||
|
msgstr "volanie popen skončilo s chybou (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
msgstr "volanie waitpid zlyhalo (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "command failed to execute correctly\n"
|
||||||
|
msgstr "príkaz sa nepodarilo spustiť správne\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no %s cache exists, creating...\n"
|
||||||
|
msgstr "neexistuje cache %s, vytváram...\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
|
msgstr "nie je možné vytvoriť cache balíčkov, použijem /tmp\n"
|
||||||
560
lib/libalpm/po/sv.po
Normal file
560
lib/libalpm/po/sv.po
Normal file
@@ -0,0 +1,560 @@
|
|||||||
|
# Swedish translations for Pacman package manager package.
|
||||||
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
|
# <congacx@gmail.com>, 2009.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
|
"PO-Revision-Date: 2010-09-03 13:00+0200\n"
|
||||||
|
"Last-Translator: Tobias Eriksson <tobier@tobier.se>\n"
|
||||||
|
"Language-Team: Swedish\n"
|
||||||
|
"Language: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "replacing older version %s-%s by %s in target list\n"
|
||||||
|
msgstr "ersätter den äldre versionen %s-%s med %s i mållistan\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
|
msgstr "hoppar över %s-%s för en nyare version %s finns i mållistan\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid ""
|
||||||
|
"directory permissions differ on %s\n"
|
||||||
|
"filesystem: %o package: %o\n"
|
||||||
|
msgstr ""
|
||||||
|
"katalogrättigheter skiljer sig på %s\n"
|
||||||
|
"filsystem: %o paket: %o\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: not overwriting dir with file %s\n"
|
||||||
|
msgstr "extrahera: ersätter ej katalog med fil %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extract: symlink %s does not point to dir\n"
|
||||||
|
msgstr "extrahera: symbolisk länk %s pekar inte mot en katalog\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not extract %s (%s)\n"
|
||||||
|
msgstr "kunde inte extrahera %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not rename %s to %s (%s)\n"
|
||||||
|
msgstr "kunde inte döpa om %s till %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s saved as %s\n"
|
||||||
|
msgstr "%s sparad som %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not install %s as %s (%s)\n"
|
||||||
|
msgstr "kunde inte installera %s som %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s installed as %s\n"
|
||||||
|
msgstr "%s installerad som %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "extracting %s as %s.pacnew\n"
|
||||||
|
msgstr "extraherar %s som %s.pacnew\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not get current working directory\n"
|
||||||
|
msgstr "kunde inte hitta nuvarande sökväg\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while upgrading %s\n"
|
||||||
|
msgstr "problem uppstod under uppgraderingen %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "problem occurred while installing %s\n"
|
||||||
|
msgstr "problem uppstod under installationen %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database entry %s-%s\n"
|
||||||
|
msgstr "kunde inte uppdatera databasinlägget %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not add entry '%s' in cache\n"
|
||||||
|
msgstr "kunde inte lägga till '%s' i cachen\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "tar bort ogiltig databas: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "kunde inte öppna %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "kunde inte ta bort databaskatalogen %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database %s\n"
|
||||||
|
msgstr "kunde inte ta bort databasen %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid name for database entry '%s'\n"
|
||||||
|
msgstr "ogiltigt namn för databasinlägget '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "dubblerat databasinlägg '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "corrupted database entry '%s'\n"
|
||||||
|
msgstr "korrupt databasinlägg '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open file %s: %s\n"
|
||||||
|
msgstr "kunde inte öppna filen %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: name mismatch on package %s\n"
|
||||||
|
msgstr "%s databasen är inkonsekvent: ej matchande namn på paketet %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s database is inconsistent: version mismatch on package %s\n"
|
||||||
|
msgstr "%s databasen är inkonsekvent: ej matchande version på paketet %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create directory %s: %s\n"
|
||||||
|
msgstr "kunde inte skapa katalogen %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not parse package description file in %s\n"
|
||||||
|
msgstr "kunde inte analysera paketbeskrivningen i %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package name in %s\n"
|
||||||
|
msgstr "saknar paketnamnet för %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package version in %s\n"
|
||||||
|
msgstr "saknar paketversionen för %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error while reading package %s: %s\n"
|
||||||
|
msgstr "fel vid läsning av paketet %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "missing package metadata in %s\n"
|
||||||
|
msgstr "saknar metadata för paketet i %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database path is undefined\n"
|
||||||
|
msgstr "sökväg till databasen är odefinierad\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "försöker att återregistrera den 'lokala' DB\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "dependency cycle detected:\n"
|
||||||
|
msgstr "beroende cykel upptäckt:\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
|
msgstr "%s kommer att tas bort efter dess %s beroende\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
|
msgstr "%s kommer installeras före dess %s beroende\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package %s-%s\n"
|
||||||
|
msgstr "ignorerar paketet %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "provider package was selected (%s provides %s)\n"
|
||||||
|
msgstr "föräldrapaket blev valt (%s tillhandahåller %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
|
msgstr "kan inte lösa \"%s\", beroende till \"%s\", \n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "disk"
|
||||||
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "url '%s' är ogiltigt\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
|
msgstr "misslyckades hämta filen '%s' från %s : %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
|
msgstr "kan inte återuppta nerladdning av %s, börjar om\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error writing to file '%s': %s\n"
|
||||||
|
msgstr "fel vid skrivning till filen '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "misslyckades hämta filen '%s' från %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
|
msgstr "%s verkar vara trunkerad: %jd/%jd bytes\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to download %s\n"
|
||||||
|
msgstr "misslyckades ladda ner %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "out of memory!"
|
||||||
|
msgstr "slut på minne!"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected system error"
|
||||||
|
msgstr "oväntat systemfel"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "insufficient privileges"
|
||||||
|
msgstr "otillräckliga rättigheter"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read file"
|
||||||
|
msgstr "kunde inte hitta eller läsa filen"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read directory"
|
||||||
|
msgstr "kunde inte hitta eller läsa katalogen"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "wrong or NULL argument passed"
|
||||||
|
msgstr "fel eller inga argument angivna"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library not initialized"
|
||||||
|
msgstr "bibliotek inte initialiserat"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "library already initialized"
|
||||||
|
msgstr "bibliotek redan initialiserat"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unable to lock database"
|
||||||
|
msgstr "kunde inte låsa databas"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open database"
|
||||||
|
msgstr "kunde inte öppna databas"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create database"
|
||||||
|
msgstr "kunde inte sakapa databas"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database not initialized"
|
||||||
|
msgstr "databas inte initialiserad"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "database already registered"
|
||||||
|
msgstr "databas redan registrerad"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find database"
|
||||||
|
msgstr "kunde inte hitta databas"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not update database"
|
||||||
|
msgstr "kunde inte uppdatera databas"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry"
|
||||||
|
msgstr "kunde inte ta bort databasinlägg"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid url for server"
|
||||||
|
msgstr "ogilltigt url för server"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no servers configured for repository"
|
||||||
|
msgstr "inga servrar konfigurerade för förrådet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction already initialized"
|
||||||
|
msgstr "överföring redan påbörjad"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not initialized"
|
||||||
|
msgstr "överföring ej påbörjad"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicate target"
|
||||||
|
msgstr "dubbelt mål"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction not prepared"
|
||||||
|
msgstr "överföring inte förberedd"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction aborted"
|
||||||
|
msgstr "överföring avbryten"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation not compatible with the transaction type"
|
||||||
|
msgstr "operation inte kompatibel med överföringstypen"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "transaction commit attempt when database is not locked"
|
||||||
|
msgstr "överföringsförsök när databasen inte är låst"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find or read package"
|
||||||
|
msgstr "kunde inte hitta eller förbereda paket"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "operation cancelled due to ignorepkg"
|
||||||
|
msgstr "operationen avbryten på grund av ignorepkg"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted package"
|
||||||
|
msgstr "ogiltigt eller korrupt paket"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot open package file"
|
||||||
|
msgstr "kan inte öppna paketfil"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove all files for package"
|
||||||
|
msgstr "kan inte ta bort alla filer för paketet"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package filename is not valid"
|
||||||
|
msgstr "paketnamn är inte giltigt"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "package architecture is not valid"
|
||||||
|
msgstr "paketets arkitektur är inte giltigt"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "givet förråd finns inte"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid or corrupted delta"
|
||||||
|
msgstr "ogiltig eller korrupt delta"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "delta patch failed"
|
||||||
|
msgstr "delta patch misslyckades"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not satisfy dependencies"
|
||||||
|
msgstr "kunde inte tillfredställa beroenden"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting dependencies"
|
||||||
|
msgstr "motstridiga beroenden"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "conflicting files"
|
||||||
|
msgstr "motstridiga filer "
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files"
|
||||||
|
msgstr "misslyckades att hämta några filer"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "invalid regular expression"
|
||||||
|
msgstr "ogiltigt vanligt uttryck"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "libarchive error"
|
||||||
|
msgstr "libarchive fel"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "download library error"
|
||||||
|
msgstr "fel vid nerladdning av bibliotek"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "error invoking external downloader"
|
||||||
|
msgstr "fel vid anrop av extern nerladdare"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unexpected error"
|
||||||
|
msgstr "oväntat fel"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find %s in database -- skipping\n"
|
||||||
|
msgstr "kunde inte hitta %s i databasen -- hoppar över\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "tar bort %s från mållistan\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot remove file '%s': %s\n"
|
||||||
|
msgstr "kan inte ta bort '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database entry %s-%s\n"
|
||||||
|
msgstr "kunde inte ta bort databasinlägget %s-%s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
|
msgstr "kunde inte ta bort '%s' från cachen\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
|
msgstr "%s ignorerar uppgradering av paket (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
|
msgstr "%s: ignorerar nedgradering av paket (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: downgrading from version %s to version %s\n"
|
||||||
|
msgstr "%s: nedgraderar från version %s till version %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s: local (%s) is newer than %s (%s)\n"
|
||||||
|
msgstr "%s: lokala (%s) är nyare än %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "ignoring package replacement (%s-%s => %s-%s)\n"
|
||||||
|
msgstr "ignorerar ersättning av paket (%s-%s => %s-%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "cannot replace %s by %s\n"
|
||||||
|
msgstr "kan inte ersätta %s med %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
|
msgstr "%s-%s är senaste versionen -- hoppar över\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
|
msgstr "%s-%s är senaste versionen -- återinstallerar\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
|
msgstr "nedgraderar paketet %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "hoppar över målet: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "unresolvable package conflicts detected\n"
|
||||||
|
msgstr "olösliga paketkonflikter upptäckta\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
|
msgstr "tar bort '%s' från mållistan då den står i konflikt med '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed to retrieve some files from %s\n"
|
||||||
|
msgstr "misslyckades att hämta vissa filer från %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit removal transaction\n"
|
||||||
|
msgstr "kunde inte skicka överföring för borttagning\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not commit transaction\n"
|
||||||
|
msgstr "kunde inte skicka överföring\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove lock file %s\n"
|
||||||
|
msgstr "kunde inte ta bort låsningsfil %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not create temp directory\n"
|
||||||
|
msgstr "kunde inte skapa temporär katalog\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not copy tempfile to %s (%s)\n"
|
||||||
|
msgstr "kunde inte kopiera temporär fil till %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove tmpdir %s\n"
|
||||||
|
msgstr "kunde inte ta bort tmpdir %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to %s (%s)\n"
|
||||||
|
msgstr "kunde inte byta katalog till %s (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not fork a new process (%s)\n"
|
||||||
|
msgstr "kunde inte förgrena en ny process (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change the root directory (%s)\n"
|
||||||
|
msgstr "kunde inte byta rootkatalogen (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not change directory to / (%s)\n"
|
||||||
|
msgstr "kunde inte byta katalog till / (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to popen failed (%s)\n"
|
||||||
|
msgstr "anrop till popen misslyckades (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "call to waitpid failed (%s)\n"
|
||||||
|
msgstr "anrop till waitpid misslyckades (%s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "command failed to execute correctly\n"
|
||||||
|
msgstr "kommando misslyckades att exekveras korrekt\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "no %s cache exists, creating...\n"
|
||||||
|
msgstr "ingen %s cache existerar, skapar...\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
|
msgstr "kunde inte skapa paket-cache, använder /tmp istället\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "motstridande paket hittades i mållistan\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "du kan inte installera två motstridiga paket på samma gång\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "erstätta paket med -U stödjs inte än\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "du kan ersätta paket manuellt genom att använda -Rd och -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "url schema inte specifierat, antar HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "kan inte skriva till filen '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "inget sådant förråd"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "förrådet '%s' hittades inte\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "kunde inte skapa överföring för borttagning\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "kunde inte skapa överföring\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "kunde inte påbörja överföring för borttagning\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "kunde inte påbörja överföring\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "kunde inte förbereda överföring för borttagning\n"
|
||||||
@@ -1,16 +1,17 @@
|
|||||||
# Turkish translation for libalpm.
|
# Turkish translation for libalpm.
|
||||||
# Copyright (C) 2008 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the libalpm package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Samed BEYRİBEY <ras0ir@eventualis.org>, 2008.
|
# Samed BEYRİBEY <ras0ir@eventualis.org>, 2008.
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: 3.1.4-1\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-29 03:26+0200\n"
|
"PO-Revision-Date: 2010-06-05 00:59+0200\n"
|
||||||
"Last-Translator: Samed Beyribey <ras0ir@eventualis.org>\n"
|
"Last-Translator: Samed Beyribey <ras0ir@eventualis.org>\n"
|
||||||
"Language-Team: Turkish Arch Linux Users <tr@archlinuxtr.org>\n"
|
"Language-Team: Turkish Arch Linux Users <archlinux@archlinux.org.tr>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -20,24 +21,8 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "eski sürüm %s-%s hedef listesindeki %s ile değiştiriliyor\n"
|
msgstr "eski sürüm %s-%s hedef listesindeki %s ile değiştiriliyor\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "%s-%s yeni sürüm %s hedef listesinde olduğundan atlanıyor\n"
|
msgstr "%s-%s yeni sürümü %s hedef listesinde olduğundan atlanıyor\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "hedef listesinde çakışan paketler bulundu\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "çakışan iki paketi aynı anda kuramazsınız\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "-U kullanarak paket değiştirme henüz desteklenmemektedir\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "paketleri -Rd ve -U kullanarak değiştirebilirsiniz\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -99,6 +84,18 @@ msgstr "%s-%s veritabanı kaydı güncellenemedi\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "'%s' kaydı tampona eklenemedi\n"
|
msgstr "'%s' kaydı tampona eklenemedi\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "geçersiz veritabanı siliniyor: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "%s açılamadı: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "veritabanı dizini %s silinemedi\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "veritabanı kaldırılamıyor %s\n"
|
msgstr "veritabanı kaldırılamıyor %s\n"
|
||||||
@@ -107,6 +104,10 @@ msgstr "veritabanı kaldırılamıyor %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "geçersiz bir veritabanı kaydı '%s'\n"
|
msgstr "geçersiz bir veritabanı kaydı '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "kopya veritabanı kaydı '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "bozuk veritabanı kaydı '%s'\n"
|
msgstr "bozuk veritabanı kaydı '%s'\n"
|
||||||
@@ -147,14 +148,14 @@ msgstr "%s paketi okunurken hata meydana geldi: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "%s içerisinde eksik paket bilgisi\n"
|
msgstr "%s içerisinde eksik paket bilgisi\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "'yerel' veritabanı tekrar kaydedilmeye çalışılıyor\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "veritabanı yolu belirtilmemiş\n"
|
msgstr "veritabanı yolu belirtilmemiş\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "'yerel' veritabanı tekrar kaydedilmeye çalışılıyor\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "dolaylı bağımlılıklar bulundu:\n"
|
msgstr "dolaylı bağımlılıklar bulundu:\n"
|
||||||
@@ -179,34 +180,30 @@ msgstr "sağlayan paket seçildi ( %s %s paketini sağlıyor)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "\"%s\" paketi \"%s\" paketinin bağımlılığı olarak çözümlenemiyor\n"
|
msgstr "\"%s\" paketi \"%s\" paketinin bağımlılığı olarak çözümlenemiyor\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "'%s' adresi geçersiz\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "adres şeması belirtilmemiş, HTTP kullanılacak\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "disk"
|
msgstr "disk"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "'%s' adresi geçersiz\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "%3$s hatası nedeniyle '%1$s' dosyası %2$s adresinden alınamadı\n"
|
msgstr "%3$s hatası nedeniyle '%1$s' dosyası %2$s adresinden alınamadı\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "indirme işlemine devam edilemiyor, baştan başlanıyor\n"
|
msgstr "%s için indirme işlemine devam edilemiyor, baştan başlanıyor\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "'%s' dosyasına yazılamıyor\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "'%s' dosyasına yazılamıyor: %s\n"
|
msgstr "'%s' dosyasına yazılamıyor: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "%s dosyası %s adresinden alınamadı\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s eksik görünüyor: %jd/%jd bayt\n"
|
msgstr "%s eksik görünüyor: %jd/%jd bayt\n"
|
||||||
@@ -340,8 +337,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "paket dosya adı geçerli değil"
|
msgstr "paket dosya adı geçerli değil"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "depo bulunmuyor"
|
msgstr "paket mimarisi geçerli değil"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "hedef için depo bulunamadı"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -391,6 +392,10 @@ msgstr "beklenmedik hata"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "%s veritabanında bulunamadı -- atlanıyor\n"
|
msgstr "%s veritabanında bulunamadı -- atlanıyor\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "%s hedef listesinden kaldırılıyor\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "'%s' dosyası silinemiyor: %s\n"
|
msgstr "'%s' dosyası silinemiyor: %s\n"
|
||||||
@@ -428,10 +433,6 @@ msgstr "paket değiştirme işlemi göz ardı ediliyor (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "%s ile %s değiştirilemiyor\n"
|
msgstr "%s ile %s değiştirilemiyor\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "'%s' deposu bulunamadı\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s güncel -- atlanıyor\n"
|
msgstr "%s-%s güncel -- atlanıyor\n"
|
||||||
@@ -444,6 +445,10 @@ msgstr "%s-%s güncel -- yeniden kuruluyor\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "%s paketi eski sürümüne çevriliyor (%s => %s)\n"
|
msgstr "%s paketi eski sürümüne çevriliyor (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "hedef atlanıyor: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "çözülemeyen paket çakışmaları bulundu\n"
|
msgstr "çözülemeyen paket çakışmaları bulundu\n"
|
||||||
@@ -456,26 +461,6 @@ msgstr "'%s' hedef listesindeki '%s' ile çakıştığı için kaldırıldı\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "%s deposundan bazı dosyalar alınamadı\n"
|
msgstr "%s deposundan bazı dosyalar alınamadı\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "kaldırma işlemi oluşturulamadı\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "işlem oluşturulamadı\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "kaldırma işlemi başlatılamadı\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "işlem başlatılamadı\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "kaldırma işlemi hazırlanamadı\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "kaldırma işlemi teslim edilemedi\n"
|
msgstr "kaldırma işlemi teslim edilemedi\n"
|
||||||
@@ -500,10 +485,6 @@ msgstr "geçici dosya %s üzerine kopyalanamadı (%s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "geçici dizin %s kaldırılamadı\n"
|
msgstr "geçici dizin %s kaldırılamadı\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "%s açılamadı: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "%s dizinine geçilemedi (%s)\n"
|
msgstr "%s dizinine geçilemedi (%s)\n"
|
||||||
@@ -521,8 +502,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "/ dizinine geçilemedi (%s)\n"
|
msgstr "/ dizinine geçilemedi (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "popen çağrısı başarısız (%s)"
|
msgstr "popen çağrısı başarısız (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -540,6 +521,45 @@ msgstr "%s önbelleği yok, oluşturuluyor...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "paket önbelleği oluşturulamadı, /tmp kullanılacak\n"
|
msgstr "paket önbelleği oluşturulamadı, /tmp kullanılacak\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "hedef listesinde çakışan paketler bulundu\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "çakışan iki paketi aynı anda kuramazsınız\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "-U kullanarak paket değiştirme henüz desteklenmemektedir\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "paketleri -Rd ve -U kullanarak değiştirebilirsiniz\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "adres şeması belirtilmemiş, HTTP kullanılacak\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "'%s' dosyasına yazılamıyor\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "depo bulunmuyor"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "'%s' deposu bulunamadı\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "kaldırma işlemi oluşturulamadı\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "işlem oluşturulamadı\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "kaldırma işlemi başlatılamadı\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "işlem başlatılamadı\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "kaldırma işlemi hazırlanamadı\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "'%s' indirilirken hata oluştu: %s\n"
|
#~ msgstr "'%s' indirilirken hata oluştu: %s\n"
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
# Copyright (C) 2008 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the pacman package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# Ivan Kovnatsky <sevenfourk@gmail.com>, 2008.
|
# Ivan Kovnatsky <sevenfourk@gmail.com>, 2008.
|
||||||
# Roman Kyrylych <roman@archlinux.org>, 2008, 2009.
|
# Roman Kyrylych <roman@archlinux.org>, 2008, 2009, 2010.
|
||||||
#
|
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: libalpm 3.2.2\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: \n"
|
"PO-Revision-Date: 2010-06-13 20:08+0300\n"
|
||||||
"Last-Translator: Roman Kyrylych <roman@archlinux.org>\n"
|
"Last-Translator: Roman Kyrylych <roman@archlinux.org>\n"
|
||||||
"Language-Team: http://archlinux.org.ua\n"
|
"Language-Team: Ukrainian (archlinux.org.ua) <>\n"
|
||||||
|
"Language: uk\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -22,26 +22,10 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "старіша версія %s-%s замінюється на %s в цільовому списку пакунків\n"
|
msgstr "старіша версія %s-%s замінюється на %s в цільовому списку пакунків\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%s-%s пропускається, бо в списку цільових пакунків є новіша версія %s\n"
|
"%s-%s пропускається, бо в списку цільових пакунків є новіша версія %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "в списку цільових пакунків були знайдені конфліктуючі пакунки\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "ви не можете одночасно встановити два пакунки, що конфліктують\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "заміна пакунків за допомогою -U поки-що не підтримується\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "ви можете власноруч замінити пакунки використавши -Rd та -U\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"directory permissions differ on %s\n"
|
"directory permissions differ on %s\n"
|
||||||
@@ -88,7 +72,7 @@ msgstr "неможливо отримати поточний робочий ка
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "problem occurred while upgrading %s\n"
|
msgid "problem occurred while upgrading %s\n"
|
||||||
msgstr "з'явилась проблема при поновленні %s\n"
|
msgstr "з'явилась проблема при оновленні %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "problem occurred while installing %s\n"
|
msgid "problem occurred while installing %s\n"
|
||||||
@@ -96,20 +80,36 @@ msgstr "з'явилась проблема при встановленні %s\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not update database entry %s-%s\n"
|
msgid "could not update database entry %s-%s\n"
|
||||||
msgstr "неможливо поновити запис бази даних %s-%s\n"
|
msgstr "неможливо оновити запис бази даних %s-%s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "неможливо додати запис '%s' у кеш\n"
|
msgstr "неможливо додати запис '%s' у кеш\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "вилучення невірної бази даних: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "неможливо відкрити %s: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "неможливо вилучити запис бази даних %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "неможливо видалити базу даних %s\n"
|
msgstr "неможливо вилучити базу даних %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "невірне ім'я для запису бази даних '%s'\n"
|
msgstr "невірне ім'я для запису бази даних '%s'\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "дублікат у базі даних '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "пошкоджений запис у базі даних '%s'\n"
|
msgstr "пошкоджений запис у базі даних '%s'\n"
|
||||||
@@ -150,21 +150,21 @@ msgstr "помилка при читанні пакунку %s: %s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "бракує метаданих пакунку в %s\n"
|
msgstr "бракує метаданих пакунку в %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "спроба перереєструвати базу даних 'local'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "шлях до бази даних не вказано\n"
|
msgstr "шлях до бази даних не вказано\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "спроба перереєструвати базу даних 'local'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "виявлено цикл залежностей:\n"
|
msgstr "виявлено цикл залежностей:\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s will be removed after its %s dependency\n"
|
msgid "%s will be removed after its %s dependency\n"
|
||||||
msgstr "%s буде видалено після його залежності %s\n"
|
msgstr "%s буде вилучено після його залежності %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s will be installed before its %s dependency\n"
|
msgid "%s will be installed before its %s dependency\n"
|
||||||
@@ -182,34 +182,30 @@ msgstr "був вибраний пакунок %s, що забезпечує %s\
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "неможливо розв'язати \"%s\", залежність \"%s\"\n"
|
msgstr "неможливо розв'язати \"%s\", залежність \"%s\"\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "посилання '%s' невірне\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "протокол посилання не вказано, вважається HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "диск"
|
msgstr "диск"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "посилання '%s' невірне\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "не вдалося отримати файл '%s' з %s : %s\n"
|
msgstr "не вдалося отримати файл '%s' з %s : %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "неможливо продовжити завантаження, починається з початку\n"
|
msgstr "неможливо продовжити завантаження %s; починається з початку\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "неможливо писати у файл '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "помилка при запису до файлу '%s': %s\n"
|
msgstr "помилка при запису до файлу '%s': %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "не вдалося отримати файл '%s' з %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "здається %s обрізаний: %jd/%jd байтів\n"
|
msgstr "здається %s обрізаний: %jd/%jd байтів\n"
|
||||||
@@ -276,11 +272,11 @@ msgstr "неможливо знайти базу даних"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not update database"
|
msgid "could not update database"
|
||||||
msgstr "неможливо поновити базу даних"
|
msgstr "неможливо оновити базу даних"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database entry"
|
msgid "could not remove database entry"
|
||||||
msgstr "неможливо видалити запис з бази даних"
|
msgstr "неможливо вилучити запис з бази даних"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid url for server"
|
msgid "invalid url for server"
|
||||||
@@ -336,15 +332,19 @@ msgstr "неможливо відкрити файл пакунку"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove all files for package"
|
msgid "cannot remove all files for package"
|
||||||
msgstr "неможливо видалити всі файли для пакунку"
|
msgstr "неможливо вилучити всі файли для пакунку"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package filename is not valid"
|
msgid "package filename is not valid"
|
||||||
msgstr "ім'я файлу пакунку невірне"
|
msgstr "ім'я файлу пакунку невірне"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "немає такого репозиторію"
|
msgstr "архітектура пакунку невірна"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "неможливо знайти репозиторій з пакунком"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -394,21 +394,25 @@ msgstr "неочікувана помилка"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "неможливо знайти %s в базі даних -- пропускається\n"
|
msgstr "неможливо знайти %s в базі даних -- пропускається\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "вилучення '%s' зі списку пакунків\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "неможливо видалити файл '%s': %s\n"
|
msgstr "неможливо вилучити файл '%s': %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database entry %s-%s\n"
|
msgid "could not remove database entry %s-%s\n"
|
||||||
msgstr "неможливо видалити запис бази даних %s-%s\n"
|
msgstr "неможливо вилучити запис бази даних %s-%s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove entry '%s' from cache\n"
|
msgid "could not remove entry '%s' from cache\n"
|
||||||
msgstr "неможливо видалити запис '%s' з кешу\n"
|
msgstr "неможливо вилучити запис '%s' з кешу\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
msgid "%s: ignoring package upgrade (%s => %s)\n"
|
||||||
msgstr "%s: ігнорування поновлення пакунку (%s => %s)\n"
|
msgstr "%s: ігнорування оновлення пакунку (%s => %s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
msgid "%s: ignoring package downgrade (%s => %s)\n"
|
||||||
@@ -430,57 +434,37 @@ msgstr "ігнорування заміни пакунка (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "неможливо замінити %s на %s\n"
|
msgstr "неможливо замінити %s на %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "репозиторій '%s' не знайдено\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%s-%s не потребує поновлення -- пропускається\n"
|
msgstr "%s-%s не потребує оновлення -- пропущено\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- reinstalling\n"
|
msgid "%s-%s is up to date -- reinstalling\n"
|
||||||
msgstr "%s-%s не потребує поновлення -- перевстановлюється\n"
|
msgstr "%s-%s не потребує оновлення -- перевстановлюється\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "пониження версії пакунку %s (%s => %s)\n"
|
msgstr "пониження версії пакунку %s (%s => %s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "пропуск пакунка: %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "виявлені нерозв'язні конфлікти пакунків\n"
|
msgstr "виявлені нерозв'язні конфлікти пакунків\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
msgid "removing '%s' from target list because it conflicts with '%s'\n"
|
||||||
msgstr "видалення '%s' з списку пакунків, бо він конфліктує з '%s'\n"
|
msgstr "вилучення '%s' з списку пакунків, бо він конфліктує з '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "не вдалося отримати деякі файли з %s\n"
|
msgstr "не вдалося отримати деякі файли з %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "неможливо створити транзакцію видалення\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "неможливо створити транзакцію\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "неможливо почати транзакцію видалення\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "неможливо почати транзакцію\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "неможливо підготувати транзакцію видалення\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "неможливо здійснити транзакцію видалення\n"
|
msgstr "неможливо здійснити транзакцію вилучення\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit transaction\n"
|
msgid "could not commit transaction\n"
|
||||||
@@ -488,7 +472,7 @@ msgstr "неможливо здійснити транзакцію\n"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove lock file %s\n"
|
msgid "could not remove lock file %s\n"
|
||||||
msgstr "неможливо видалити файл блокування %s\n"
|
msgstr "неможливо вилучити файл блокування %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not create temp directory\n"
|
msgid "could not create temp directory\n"
|
||||||
@@ -500,11 +484,7 @@ msgstr "неможливо скопіювати тимчасовий файл д
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "неможливо видалити тимчасовий каталог %s\n"
|
msgstr "неможливо вилучити тимчасовий каталог %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "неможливо відкрити %s: %s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
@@ -523,8 +503,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "неможливо змінити каталог на / (%s)\n"
|
msgstr "неможливо змінити каталог на / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "виклик popen невдалий (%s)"
|
msgstr "виклик popen невдалий (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -542,6 +522,45 @@ msgstr "кеш %s не існує, створюється...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "неможливо створити кеш пакунку, використовуватиметься /tmp\n"
|
msgstr "неможливо створити кеш пакунку, використовуватиметься /tmp\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "в списку цільових пакунків були знайдені конфліктуючі пакунки\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "ви не можете одночасно встановити два пакунки, що конфліктують\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "заміна пакунків за допомогою -U поки-що не підтримується\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "ви можете власноруч замінити пакунки використавши -Rd та -U\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "протокол посилання не вказано, вважається HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "неможливо писати у файл '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "немає такого репозиторію"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "репозиторій '%s' не знайдено\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "неможливо створити транзакцію вилучення\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "неможливо створити транзакцію\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "неможливо почати транзакцію вилучення\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "неможливо почати транзакцію\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "неможливо підготувати транзакцію вилучення\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "помилка при завантаженні '%s': %s\n"
|
#~ msgstr "помилка при завантаженні '%s': %s\n"
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +1,19 @@
|
|||||||
# Chinese/Simplified translation of Pacman package manager package.
|
# Chinese/Simplified translation of Pacman package manager package.
|
||||||
# Copyright (C) 2008 Judd Vinet <jvinet@zeroflux.org>
|
# Copyright (C) 2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
# This file is distributed under the same license as the Pacman package manager package.
|
# This file is distributed under the same license as the pacman package manager package.
|
||||||
# 甘露(Lu.Gan) <rhythm.gan@gmail.com>, 2008.
|
# 甘露(Lu.Gan) <rhythm.gan@gmail.com>, 2008.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Pacman package manager 3.2.1\n"
|
"Project-Id-Version: Pacman package manager 3.3.1\n"
|
||||||
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
|
||||||
"POT-Creation-Date: 2009-07-27 21:15-0500\n"
|
"POT-Creation-Date: 2011-01-21 10:47-0600\n"
|
||||||
"PO-Revision-Date: 2009-07-30 20:39+0700\n"
|
"PO-Revision-Date: 2010-06-05 10:41+0700\n"
|
||||||
"Last-Translator: 甘露(Gan Lu) <rhythm.gan@gmail.com>\n"
|
"Last-Translator: 甘露(Gan Lu) <rhythm.gan@gmail.com>\n"
|
||||||
"Language-Team: Chinese/Simplified <i18n-translation@lists.linux.net.cn>\n"
|
"Language-Team: Chinese/Simplified <i18n-translation@lists.linux.net.cn>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
@@ -22,24 +23,8 @@ msgid "replacing older version %s-%s by %s in target list\n"
|
|||||||
msgstr "正在用目标清单中的 %3$s 替换老版本 %1$s-%2$s\n"
|
msgstr "正在用目标清单中的 %3$s 替换老版本 %1$s-%2$s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "skipping %s-%s because newer version %s is in the target list\n"
|
msgid "skipping %s-%s because newer version %s is in target list\n"
|
||||||
msgstr "跳过 %1$s-%2$s,因为较新版本的 %3$s 在目标清单中\n"
|
msgstr "正在跳过 %1$s-%2$s,因为较新版本的 %3$s 在目标清单中\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "conflicting packages were found in the target list\n"
|
|
||||||
msgstr "目标清单中发现有冲突的软件包\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you cannot install two conflicting packages at the same time\n"
|
|
||||||
msgstr "你不能同时安装有冲突的两个软件包\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "replacing packages with -U is not supported yet\n"
|
|
||||||
msgstr "目前尚不支持用 -U 参数替换软件包\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "you can replace packages manually using -Rd and -U\n"
|
|
||||||
msgstr "你可以使用 -Rd 及 -U 来手动替换软件包\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -101,6 +86,18 @@ msgstr "无法更新数据库记录 %1$s-%2$s\n"
|
|||||||
msgid "could not add entry '%s' in cache\n"
|
msgid "could not add entry '%s' in cache\n"
|
||||||
msgstr "无法在缓存中添加记录 '%s' \n"
|
msgstr "无法在缓存中添加记录 '%s' \n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing invalid database: %s\n"
|
||||||
|
msgstr "正在删除无效的数据库: %s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not open %s: %s\n"
|
||||||
|
msgstr "无法打开 %1$s: %2$s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not remove database directory %s\n"
|
||||||
|
msgstr "无法删除数据库目录 %s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not remove database %s\n"
|
msgid "could not remove database %s\n"
|
||||||
msgstr "无法删除数据库 %s\n"
|
msgstr "无法删除数据库 %s\n"
|
||||||
@@ -109,6 +106,10 @@ msgstr "无法删除数据库 %s\n"
|
|||||||
msgid "invalid name for database entry '%s'\n"
|
msgid "invalid name for database entry '%s'\n"
|
||||||
msgstr "数据库记录 '%s' 名字无效\n"
|
msgstr "数据库记录 '%s' 名字无效\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "duplicated database entry '%s'\n"
|
||||||
|
msgstr "重复的数据库记录 '%s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "corrupted database entry '%s'\n"
|
msgid "corrupted database entry '%s'\n"
|
||||||
msgstr "损坏的数据库记录 '%s'\n"
|
msgstr "损坏的数据库记录 '%s'\n"
|
||||||
@@ -149,14 +150,14 @@ msgstr "读取软件包 %1$s 发生错误: %2$s\n"
|
|||||||
msgid "missing package metadata in %s\n"
|
msgid "missing package metadata in %s\n"
|
||||||
msgstr "%s 中缺少软件包元数据\n"
|
msgstr "%s 中缺少软件包元数据\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "attempt to re-register the 'local' DB\n"
|
|
||||||
msgstr "尝试重新登记“本地”数据库\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "database path is undefined\n"
|
msgid "database path is undefined\n"
|
||||||
msgstr "数据库路径未定义\n"
|
msgstr "数据库路径未定义\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "attempt to re-register the 'local' DB\n"
|
||||||
|
msgstr "尝试重新登记“本地”数据库\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "dependency cycle detected:\n"
|
msgid "dependency cycle detected:\n"
|
||||||
msgstr "检测到依赖关系环:\n"
|
msgstr "检测到依赖关系环:\n"
|
||||||
@@ -181,34 +182,30 @@ msgstr "已选定提供软件包 (%1$s 提供 %2$s)\n"
|
|||||||
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
msgid "cannot resolve \"%s\", a dependency of \"%s\"\n"
|
||||||
msgstr "无法解决 \"%1$s\",\"%2$s\" 的一个依赖关系\n"
|
msgstr "无法解决 \"%1$s\",\"%2$s\" 的一个依赖关系\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url '%s' is invalid\n"
|
|
||||||
msgstr "url '%s' 无效\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "url scheme not specified, assuming HTTP\n"
|
|
||||||
msgstr "url scheme 未指定,假定为 HTTP\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "disk"
|
msgid "disk"
|
||||||
msgstr "硬盘"
|
msgstr "硬盘"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "url '%s' is invalid\n"
|
||||||
|
msgstr "url '%s' 无效\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed retrieving file '%s' from %s : %s\n"
|
msgid "failed retrieving file '%s' from %s : %s\n"
|
||||||
msgstr "无法从 %2$s : %3$s 获取文件 '%1$s'\n"
|
msgstr "无法从 %2$s : %3$s 获取文件 '%1$s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot resume download, starting over\n"
|
msgid "resuming download of %s not possible; starting over\n"
|
||||||
msgstr "无法恢复下载,重新开始\n"
|
msgstr "无法恢复下载 %s;正在重新开始\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "cannot write to file '%s'\n"
|
|
||||||
msgstr "无法写入文件 '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "error writing to file '%s': %s\n"
|
msgid "error writing to file '%s': %s\n"
|
||||||
msgstr "写入文件 '%1$s' 时出错: %2$s\n"
|
msgstr "写入文件 '%1$s' 时出错: %2$s\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "failed retrieving file '%s' from %s\n"
|
||||||
|
msgstr "无法从 %2$s 获取文件 '%1$s'\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
msgid "%s appears to be truncated: %jd/%jd bytes\n"
|
||||||
msgstr "%s 可缩小:%jd/%jd bytes\n"
|
msgstr "%s 可缩小:%jd/%jd bytes\n"
|
||||||
@@ -287,7 +284,7 @@ msgstr "无效的服务器 url"
|
|||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no servers configured for repository"
|
msgid "no servers configured for repository"
|
||||||
msgstr "软件仓库没有配置服务器信息"
|
msgstr "软件库没有配置服务器信息"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "transaction already initialized"
|
msgid "transaction already initialized"
|
||||||
@@ -342,8 +339,12 @@ msgid "package filename is not valid"
|
|||||||
msgstr "软件包文件名无效"
|
msgstr "软件包文件名无效"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "no such repository"
|
msgid "package architecture is not valid"
|
||||||
msgstr "没有该软件库"
|
msgstr "无效的软件包架构"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "could not find repository for target"
|
||||||
|
msgstr "无法为目标找到软件库"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "invalid or corrupted delta"
|
msgid "invalid or corrupted delta"
|
||||||
@@ -393,6 +394,10 @@ msgstr "未预期的错误"
|
|||||||
msgid "could not find %s in database -- skipping\n"
|
msgid "could not find %s in database -- skipping\n"
|
||||||
msgstr "无法在数据库中找到 %s -- 跳过\n"
|
msgstr "无法在数据库中找到 %s -- 跳过\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "removing %s from target list\n"
|
||||||
|
msgstr "正在从目标清单中删除 '%s' \n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove file '%s': %s\n"
|
msgid "cannot remove file '%s': %s\n"
|
||||||
msgstr "无法删除文件 '%1$s': %2$s\n"
|
msgstr "无法删除文件 '%1$s': %2$s\n"
|
||||||
@@ -429,10 +434,6 @@ msgstr "正在忽略软件包更新 (%s-%s => %s-%s)\n"
|
|||||||
msgid "cannot replace %s by %s\n"
|
msgid "cannot replace %s by %s\n"
|
||||||
msgstr "无法用文件 '%2$s' 替代 %1$s\n"
|
msgstr "无法用文件 '%2$s' 替代 %1$s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "repository '%s' not found\n"
|
|
||||||
msgstr "没有找到软件库 '%s'\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s-%s is up to date -- skipping\n"
|
msgid "%s-%s is up to date -- skipping\n"
|
||||||
msgstr "%1$s-%2$s 已经为最新 -- 跳过\n"
|
msgstr "%1$s-%2$s 已经为最新 -- 跳过\n"
|
||||||
@@ -445,6 +446,10 @@ msgstr "%1$s-%2$s 已经为最新 -- 重新安装\n"
|
|||||||
msgid "downgrading package %s (%s => %s)\n"
|
msgid "downgrading package %s (%s => %s)\n"
|
||||||
msgstr "正在降级软件包 %1$s (%2$s => %3$s)\n"
|
msgstr "正在降级软件包 %1$s (%2$s => %3$s)\n"
|
||||||
|
|
||||||
|
#, c-format
|
||||||
|
msgid "skipping target: %s\n"
|
||||||
|
msgstr "正在跳过软件包:%s\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unresolvable package conflicts detected\n"
|
msgid "unresolvable package conflicts detected\n"
|
||||||
msgstr "检测到未解决的软件包冲突\n"
|
msgstr "检测到未解决的软件包冲突\n"
|
||||||
@@ -457,26 +462,6 @@ msgstr "正在从目标清单中删除 '%1$s' ,因为它和 '%2$s' 冲突\n"
|
|||||||
msgid "failed to retrieve some files from %s\n"
|
msgid "failed to retrieve some files from %s\n"
|
||||||
msgstr "无法从 %s 获取某些文件\n"
|
msgstr "无法从 %s 获取某些文件\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create removal transaction\n"
|
|
||||||
msgstr "无法生成可撤销处理\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not create transaction\n"
|
|
||||||
msgstr "无法创建处理\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize the removal transaction\n"
|
|
||||||
msgstr "无法初始化可撤销处理\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not initialize transaction\n"
|
|
||||||
msgstr "无法初始化处理\n"
|
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not prepare removal transaction\n"
|
|
||||||
msgstr "无法准备可撤销处理\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not commit removal transaction\n"
|
msgid "could not commit removal transaction\n"
|
||||||
msgstr "无法交付可撤销处理\n"
|
msgstr "无法交付可撤销处理\n"
|
||||||
@@ -501,10 +486,6 @@ msgstr "无法复制临时文件到 %1$s (%2$s)\n"
|
|||||||
msgid "could not remove tmpdir %s\n"
|
msgid "could not remove tmpdir %s\n"
|
||||||
msgstr "无法删除临时目录 %s\n"
|
msgstr "无法删除临时目录 %s\n"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
msgid "could not open %s: %s\n"
|
|
||||||
msgstr "无法打开 %1$s: %2$s\n"
|
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "could not change directory to %s (%s)\n"
|
msgid "could not change directory to %s (%s)\n"
|
||||||
msgstr "无法更改目录到 %1$s (%2$s)\n"
|
msgstr "无法更改目录到 %1$s (%2$s)\n"
|
||||||
@@ -522,8 +503,8 @@ msgid "could not change directory to / (%s)\n"
|
|||||||
msgstr "无法切换目录到 / (%s)\n"
|
msgstr "无法切换目录到 / (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to popen failed (%s)"
|
msgid "call to popen failed (%s)\n"
|
||||||
msgstr "调用 popen 失败 (%s)"
|
msgstr "调用 popen 失败 (%s)\n"
|
||||||
|
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "call to waitpid failed (%s)\n"
|
msgid "call to waitpid failed (%s)\n"
|
||||||
@@ -541,6 +522,45 @@ msgstr "没有 %s 缓存存在,正在创建...\n"
|
|||||||
msgid "couldn't create package cache, using /tmp instead\n"
|
msgid "couldn't create package cache, using /tmp instead\n"
|
||||||
msgstr "无法创建软件包缓存,正在使用 /tmp 代替\n"
|
msgstr "无法创建软件包缓存,正在使用 /tmp 代替\n"
|
||||||
|
|
||||||
|
#~ msgid "conflicting packages were found in target list\n"
|
||||||
|
#~ msgstr "目标清单中发现有冲突的软件包\n"
|
||||||
|
|
||||||
|
#~ msgid "you cannot install two conflicting packages at the same time\n"
|
||||||
|
#~ msgstr "你不能同时安装有冲突的两个软件包\n"
|
||||||
|
|
||||||
|
#~ msgid "replacing packages with -U is not supported yet\n"
|
||||||
|
#~ msgstr "目前尚不支持用 -U 参数替换软件包\n"
|
||||||
|
|
||||||
|
#~ msgid "you can replace packages manually using -Rd and -U\n"
|
||||||
|
#~ msgstr "你可以使用 -Rd 及 -U 来手动替换软件包\n"
|
||||||
|
|
||||||
|
#~ msgid "url scheme not specified, assuming HTTP\n"
|
||||||
|
#~ msgstr "url scheme 未指定,假定为 HTTP\n"
|
||||||
|
|
||||||
|
#~ msgid "cannot write to file '%s'\n"
|
||||||
|
#~ msgstr "无法写入文件 '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "no such repository"
|
||||||
|
#~ msgstr "没有该软件库"
|
||||||
|
|
||||||
|
#~ msgid "repository '%s' not found\n"
|
||||||
|
#~ msgstr "没有找到软件库 '%s'\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create removal transaction\n"
|
||||||
|
#~ msgstr "无法生成可撤销处理\n"
|
||||||
|
|
||||||
|
#~ msgid "could not create transaction\n"
|
||||||
|
#~ msgstr "无法创建处理\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize the removal transaction\n"
|
||||||
|
#~ msgstr "无法初始化可撤销处理\n"
|
||||||
|
|
||||||
|
#~ msgid "could not initialize transaction\n"
|
||||||
|
#~ msgstr "无法初始化处理\n"
|
||||||
|
|
||||||
|
#~ msgid "could not prepare removal transaction\n"
|
||||||
|
#~ msgstr "无法准备可撤销处理\n"
|
||||||
|
|
||||||
#~ msgid "error downloading '%s': %s\n"
|
#~ msgid "error downloading '%s': %s\n"
|
||||||
#~ msgstr "下载 '%1$s' 时出错: %2$s\n"
|
#~ msgstr "下载 '%1$s' 时出错: %2$s\n"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* remove.c
|
* remove.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -47,35 +47,45 @@
|
|||||||
#include "handle.h"
|
#include "handle.h"
|
||||||
#include "alpm.h"
|
#include "alpm.h"
|
||||||
|
|
||||||
int _alpm_remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name)
|
int SYMEXPORT alpm_remove_target(char *target)
|
||||||
{
|
{
|
||||||
pmpkg_t *info;
|
pmpkg_t *info;
|
||||||
const char *targ;
|
pmtrans_t *trans;
|
||||||
|
pmdb_t *db_local;
|
||||||
|
alpm_list_t *p;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
/* Sanity checks */
|
||||||
|
ASSERT(target != NULL && strlen(target) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
trans = handle->trans;
|
||||||
|
db_local = handle->db_local;
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(name != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
||||||
|
ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
|
|
||||||
targ = strchr(name, '/');
|
|
||||||
if(targ && strncmp(name, "local", 5) == 0) {
|
|
||||||
targ++;
|
|
||||||
} else {
|
|
||||||
targ = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_alpm_pkg_find(trans->packages, targ)) {
|
if(_alpm_pkg_find(trans->remove, target)) {
|
||||||
RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1);
|
RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if((info = _alpm_db_get_pkgfromcache(db, targ)) == NULL) {
|
if((info = _alpm_db_get_pkgfromcache(db_local, target)) != NULL) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "could not find %s in database\n", targ);
|
_alpm_log(PM_LOG_DEBUG, "adding %s in the target list\n", info->name);
|
||||||
RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
|
trans->remove = alpm_list_add(trans->remove, _alpm_pkg_dup(info));
|
||||||
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "adding %s in the targets list\n", info->name);
|
_alpm_log(PM_LOG_DEBUG, "could not find %s in database\n", target);
|
||||||
trans->packages = alpm_list_add(trans->packages, _alpm_pkg_dup(info));
|
pmgrp_t *grp = alpm_db_readgrp(db_local, target);
|
||||||
|
if(grp == NULL) {
|
||||||
|
RET_ERR(PM_ERR_PKG_NOT_FOUND, -1);
|
||||||
|
}
|
||||||
|
for(p = alpm_grp_get_pkgs(grp); p; p = alpm_list_next(p)) {
|
||||||
|
pmpkg_t *pkg = alpm_list_getdata(p);
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "adding %s in the target list\n", pkg->name);
|
||||||
|
trans->remove = alpm_list_add(trans->remove, _alpm_pkg_dup(pkg));
|
||||||
|
}
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
@@ -91,10 +101,10 @@ static void remove_prepare_cascade(pmtrans_t *trans, pmdb_t *db,
|
|||||||
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
|
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
|
||||||
pmpkg_t *info = _alpm_db_get_pkgfromcache(db, miss->target);
|
pmpkg_t *info = _alpm_db_get_pkgfromcache(db, miss->target);
|
||||||
if(info) {
|
if(info) {
|
||||||
if(!_alpm_pkg_find(trans->packages, alpm_pkg_get_name(info))) {
|
if(!_alpm_pkg_find(trans->remove, alpm_pkg_get_name(info))) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "pulling %s in the targets list\n",
|
_alpm_log(PM_LOG_DEBUG, "pulling %s in target list\n",
|
||||||
alpm_pkg_get_name(info));
|
alpm_pkg_get_name(info));
|
||||||
trans->packages = alpm_list_add(trans->packages, _alpm_pkg_dup(info));
|
trans->remove = alpm_list_add(trans->remove, _alpm_pkg_dup(info));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping\n"),
|
_alpm_log(PM_LOG_ERROR, _("could not find %s in database -- skipping\n"),
|
||||||
@@ -103,7 +113,7 @@ static void remove_prepare_cascade(pmtrans_t *trans, pmdb_t *db,
|
|||||||
}
|
}
|
||||||
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_depmiss_free);
|
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_depmiss_free);
|
||||||
alpm_list_free(lp);
|
alpm_list_free(lp);
|
||||||
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, trans->packages, NULL);
|
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, trans->remove, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,28 +122,28 @@ static void remove_prepare_keep_needed(pmtrans_t *trans, pmdb_t *db,
|
|||||||
{
|
{
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
/* Remove needed packages (which break dependencies) from the target list */
|
/* Remove needed packages (which break dependencies) from target list */
|
||||||
while(lp != NULL) {
|
while(lp != NULL) {
|
||||||
alpm_list_t *i;
|
alpm_list_t *i;
|
||||||
for(i = lp; i; i = i->next) {
|
for(i = lp; i; i = i->next) {
|
||||||
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
|
pmdepmissing_t *miss = (pmdepmissing_t *)i->data;
|
||||||
void *vpkg;
|
void *vpkg;
|
||||||
pmpkg_t *pkg = _alpm_pkg_find(trans->packages, miss->causingpkg);
|
pmpkg_t *pkg = _alpm_pkg_find(trans->remove, miss->causingpkg);
|
||||||
if(pkg == NULL) {
|
if(pkg == NULL) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
trans->packages = alpm_list_remove(trans->packages, pkg, _alpm_pkg_cmp,
|
trans->remove = alpm_list_remove(trans->remove, pkg, _alpm_pkg_cmp,
|
||||||
&vpkg);
|
&vpkg);
|
||||||
pkg = vpkg;
|
pkg = vpkg;
|
||||||
if(pkg) {
|
if(pkg) {
|
||||||
_alpm_log(PM_LOG_WARNING, "removing %s from the target-list\n",
|
_alpm_log(PM_LOG_WARNING, _("removing %s from target list\n"),
|
||||||
alpm_pkg_get_name(pkg));
|
alpm_pkg_get_name(pkg));
|
||||||
_alpm_pkg_free(pkg);
|
_alpm_pkg_free(pkg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_depmiss_free);
|
alpm_list_free_inner(lp, (alpm_list_fn_free)_alpm_depmiss_free);
|
||||||
alpm_list_free(lp);
|
alpm_list_free(lp);
|
||||||
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, trans->packages, NULL);
|
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, trans->remove, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,28 +156,23 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
|
|||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
|
||||||
/* skip all checks if we are doing this removal as part of an upgrade */
|
|
||||||
if(trans->type == PM_TRANS_TYPE_REMOVEUPGRADE) {
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
if((trans->flags & PM_TRANS_FLAG_RECURSE) && !(trans->flags & PM_TRANS_FLAG_CASCADE)) {
|
if((trans->flags & PM_TRANS_FLAG_RECURSE) && !(trans->flags & PM_TRANS_FLAG_CASCADE)) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "finding removable dependencies\n");
|
_alpm_log(PM_LOG_DEBUG, "finding removable dependencies\n");
|
||||||
_alpm_recursedeps(db, trans->packages, trans->flags & PM_TRANS_FLAG_RECURSEALL);
|
_alpm_recursedeps(db, trans->remove, trans->flags & PM_TRANS_FLAG_RECURSEALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
||||||
EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_CHECKDEPS_START, NULL, NULL);
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "looking for unsatisfied dependencies\n");
|
_alpm_log(PM_LOG_DEBUG, "looking for unsatisfied dependencies\n");
|
||||||
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, trans->packages, NULL);
|
lp = alpm_checkdeps(_alpm_db_get_pkgcache(db), 1, trans->remove, NULL);
|
||||||
if(lp != NULL) {
|
if(lp != NULL) {
|
||||||
|
|
||||||
if(trans->flags & PM_TRANS_FLAG_CASCADE) {
|
if(trans->flags & PM_TRANS_FLAG_CASCADE) {
|
||||||
remove_prepare_cascade(trans, db, lp);
|
remove_prepare_cascade(trans, db, lp);
|
||||||
} else if (trans->flags & PM_TRANS_FLAG_UNNEEDED) {
|
} else if (trans->flags & PM_TRANS_FLAG_UNNEEDED) {
|
||||||
/* Remove needed packages (which would break dependencies)
|
/* Remove needed packages (which would break dependencies)
|
||||||
* from the target list */
|
* from target list */
|
||||||
remove_prepare_keep_needed(trans, db, lp);
|
remove_prepare_keep_needed(trans, db, lp);
|
||||||
} else {
|
} else {
|
||||||
if(data) {
|
if(data) {
|
||||||
@@ -183,15 +188,15 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
|
|||||||
|
|
||||||
/* re-order w.r.t. dependencies */
|
/* re-order w.r.t. dependencies */
|
||||||
_alpm_log(PM_LOG_DEBUG, "sorting by dependencies\n");
|
_alpm_log(PM_LOG_DEBUG, "sorting by dependencies\n");
|
||||||
lp = _alpm_sortbydeps(trans->packages, 1);
|
lp = _alpm_sortbydeps(trans->remove, 1);
|
||||||
/* free the old alltargs */
|
/* free the old alltargs */
|
||||||
alpm_list_free(trans->packages);
|
alpm_list_free(trans->remove);
|
||||||
trans->packages = lp;
|
trans->remove = lp;
|
||||||
|
|
||||||
/* -Rcs == -Rc then -Rs */
|
/* -Rcs == -Rc then -Rs */
|
||||||
if((trans->flags & PM_TRANS_FLAG_CASCADE) && (trans->flags & PM_TRANS_FLAG_RECURSE)) {
|
if((trans->flags & PM_TRANS_FLAG_CASCADE) && (trans->flags & PM_TRANS_FLAG_RECURSE)) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "finding removable dependencies\n");
|
_alpm_log(PM_LOG_DEBUG, "finding removable dependencies\n");
|
||||||
_alpm_recursedeps(db, trans->packages, trans->flags & PM_TRANS_FLAG_RECURSEALL);
|
_alpm_recursedeps(db, trans->remove, trans->flags & PM_TRANS_FLAG_RECURSEALL);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
||||||
@@ -201,13 +206,13 @@ int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int can_remove_file(pmtrans_t *trans, const char *path)
|
static int can_remove_file(const char *path, alpm_list_t *skip)
|
||||||
{
|
{
|
||||||
char file[PATH_MAX+1];
|
char file[PATH_MAX+1];
|
||||||
|
|
||||||
snprintf(file, PATH_MAX, "%s%s", handle->root, path);
|
snprintf(file, PATH_MAX, "%s%s", handle->root, path);
|
||||||
|
|
||||||
if(alpm_list_find_str(trans->skip_remove, file)) {
|
if(alpm_list_find_str(skip, file)) {
|
||||||
/* return success because we will never actually remove this file */
|
/* return success because we will never actually remove this file */
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
@@ -228,7 +233,7 @@ static int can_remove_file(pmtrans_t *trans, const char *path)
|
|||||||
|
|
||||||
/* Helper function for iterating through a package's file and deleting them
|
/* Helper function for iterating through a package's file and deleting them
|
||||||
* Used by _alpm_remove_commit. */
|
* Used by _alpm_remove_commit. */
|
||||||
static void unlink_file(pmpkg_t *info, char *filename, pmtrans_t *trans)
|
static void unlink_file(pmpkg_t *info, char *filename, alpm_list_t *skip_remove, int nosave)
|
||||||
{
|
{
|
||||||
struct stat buf;
|
struct stat buf;
|
||||||
char file[PATH_MAX+1];
|
char file[PATH_MAX+1];
|
||||||
@@ -237,13 +242,13 @@ static void unlink_file(pmpkg_t *info, char *filename, pmtrans_t *trans)
|
|||||||
|
|
||||||
snprintf(file, PATH_MAX, "%s%s", handle->root, filename);
|
snprintf(file, PATH_MAX, "%s%s", handle->root, filename);
|
||||||
|
|
||||||
if(trans->type == PM_TRANS_TYPE_REMOVEUPGRADE) {
|
/* check the remove skip list before removing the file.
|
||||||
/* check noupgrade */
|
* see the big comment block in db_find_fileconflicts() for an
|
||||||
if(alpm_list_find_str(handle->noupgrade, filename)) {
|
* explanation. */
|
||||||
_alpm_log(PM_LOG_DEBUG, "Skipping removal of '%s' due to NoUpgrade\n",
|
if(alpm_list_find_str(skip_remove, filename)) {
|
||||||
file);
|
_alpm_log(PM_LOG_DEBUG, "%s is in skip_remove, skipping removal\n",
|
||||||
return;
|
file);
|
||||||
}
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* we want to do a lstat here, and not a _alpm_lstat.
|
/* we want to do a lstat here, and not a _alpm_lstat.
|
||||||
@@ -263,19 +268,10 @@ static void unlink_file(pmpkg_t *info, char *filename, pmtrans_t *trans)
|
|||||||
_alpm_log(PM_LOG_DEBUG, "removing directory %s\n", file);
|
_alpm_log(PM_LOG_DEBUG, "removing directory %s\n", file);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* check the remove skip list before removing the file.
|
|
||||||
* see the big comment block in db_find_fileconflicts() for an
|
|
||||||
* explanation. */
|
|
||||||
if(alpm_list_find_str(trans->skip_remove, file)) {
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "%s is in trans->skip_remove, skipping removal\n",
|
|
||||||
file);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if the file needs backup and has been modified, back it up to .pacsave */
|
/* if the file needs backup and has been modified, back it up to .pacsave */
|
||||||
char *pkghash = _alpm_needbackup(filename, alpm_pkg_get_backup(info));
|
char *pkghash = _alpm_needbackup(filename, alpm_pkg_get_backup(info));
|
||||||
if(pkghash) {
|
if(pkghash) {
|
||||||
if(trans->flags & PM_TRANS_FLAG_NOSAVE) {
|
if(nosave) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "transaction is set to NOSAVE, not backing up '%s'\n", file);
|
_alpm_log(PM_LOG_DEBUG, "transaction is set to NOSAVE, not backing up '%s'\n", file);
|
||||||
FREE(pkghash);
|
FREE(pkghash);
|
||||||
} else {
|
} else {
|
||||||
@@ -303,7 +299,69 @@ static void unlink_file(pmpkg_t *info, char *filename, pmtrans_t *trans)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db)
|
int _alpm_upgraderemove_package(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *trans)
|
||||||
|
{
|
||||||
|
alpm_list_t *skip_remove, *b;
|
||||||
|
alpm_list_t *newfiles, *lp;
|
||||||
|
alpm_list_t *files = alpm_pkg_get_files(oldpkg);
|
||||||
|
const char *pkgname = alpm_pkg_get_name(oldpkg);
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "removing old package first (%s-%s)\n",
|
||||||
|
oldpkg->name, oldpkg->version);
|
||||||
|
|
||||||
|
/* copy the remove skiplist over */
|
||||||
|
skip_remove =
|
||||||
|
alpm_list_join(alpm_list_strdup(trans->skip_remove),alpm_list_strdup(handle->noupgrade));
|
||||||
|
/* Add files in the NEW backup array to the skip_remove array
|
||||||
|
* so this removal operation doesn't kill them */
|
||||||
|
/* old package backup list */
|
||||||
|
alpm_list_t *filelist = alpm_pkg_get_files(newpkg);
|
||||||
|
for(b = alpm_pkg_get_backup(newpkg); b; b = b->next) {
|
||||||
|
char *backup = _alpm_backup_file(b->data);
|
||||||
|
/* safety check (fix the upgrade026 pactest) */
|
||||||
|
if(!alpm_list_find_str(filelist, backup)) {
|
||||||
|
FREE(backup);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "adding %s to the skip_remove array\n", backup);
|
||||||
|
skip_remove = alpm_list_add(skip_remove, backup);
|
||||||
|
}
|
||||||
|
|
||||||
|
for(lp = files; lp; lp = lp->next) {
|
||||||
|
if(!can_remove_file(lp->data, skip_remove)) {
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "not removing package '%s', can't remove all files\n",
|
||||||
|
pkgname);
|
||||||
|
RET_ERR(PM_ERR_PKG_CANT_REMOVE, -1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* iterate through the list backwards, unlinking files */
|
||||||
|
newfiles = alpm_list_reverse(files);
|
||||||
|
for(lp = newfiles; lp; lp = alpm_list_next(lp)) {
|
||||||
|
unlink_file(oldpkg, lp->data, skip_remove, 0);
|
||||||
|
}
|
||||||
|
alpm_list_free(newfiles);
|
||||||
|
FREELIST(skip_remove);
|
||||||
|
|
||||||
|
/* remove the package from the database */
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "updating database\n");
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "removing database entry '%s'\n", pkgname);
|
||||||
|
if(_alpm_db_remove(handle->db_local, oldpkg) == -1) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("could not remove database entry %s-%s\n"),
|
||||||
|
pkgname, alpm_pkg_get_version(oldpkg));
|
||||||
|
}
|
||||||
|
/* remove the package from the cache */
|
||||||
|
if(_alpm_db_remove_pkgfromcache(handle->db_local, oldpkg) == -1) {
|
||||||
|
_alpm_log(PM_LOG_ERROR, _("could not remove entry '%s' from cache\n"),
|
||||||
|
pkgname);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
int _alpm_remove_packages(pmtrans_t *trans, pmdb_t *db)
|
||||||
{
|
{
|
||||||
pmpkg_t *info;
|
pmpkg_t *info;
|
||||||
alpm_list_t *targ, *lp;
|
alpm_list_t *targ, *lp;
|
||||||
@@ -314,14 +372,14 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db)
|
|||||||
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
ASSERT(db != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
|
||||||
pkg_count = alpm_list_count(trans->packages);
|
pkg_count = alpm_list_count(trans->remove);
|
||||||
|
|
||||||
for(targ = trans->packages; targ; targ = targ->next) {
|
for(targ = trans->remove; targ; targ = targ->next) {
|
||||||
int position = 0;
|
int position = 0;
|
||||||
char scriptlet[PATH_MAX];
|
char scriptlet[PATH_MAX];
|
||||||
alpm_list_t *files;
|
|
||||||
info = (pmpkg_t*)targ->data;
|
info = (pmpkg_t*)targ->data;
|
||||||
const char *pkgname = NULL;
|
const char *pkgname = NULL;
|
||||||
|
int targcount = alpm_list_count(targ);
|
||||||
|
|
||||||
if(handle->trans->state == STATE_INTERRUPTED) {
|
if(handle->trans->state == STATE_INTERRUPTED) {
|
||||||
return(0);
|
return(0);
|
||||||
@@ -329,26 +387,23 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db)
|
|||||||
|
|
||||||
/* get the name now so we can use it after package is removed */
|
/* get the name now so we can use it after package is removed */
|
||||||
pkgname = alpm_pkg_get_name(info);
|
pkgname = alpm_pkg_get_name(info);
|
||||||
snprintf(scriptlet, PATH_MAX, "%s%s-%s/install", db->path,
|
snprintf(scriptlet, PATH_MAX, "%s%s-%s/install",
|
||||||
pkgname, alpm_pkg_get_version(info));
|
_alpm_db_path(db), pkgname, alpm_pkg_get_version(info));
|
||||||
|
|
||||||
if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) {
|
EVENT(trans, PM_TRANS_EVT_REMOVE_START, info, NULL);
|
||||||
EVENT(trans, PM_TRANS_EVT_REMOVE_START, info, NULL);
|
_alpm_log(PM_LOG_DEBUG, "removing package %s-%s\n",
|
||||||
_alpm_log(PM_LOG_DEBUG, "removing package %s-%s\n",
|
pkgname, alpm_pkg_get_version(info));
|
||||||
pkgname, alpm_pkg_get_version(info));
|
|
||||||
|
|
||||||
/* run the pre-remove scriptlet if it exists */
|
/* run the pre-remove scriptlet if it exists */
|
||||||
if(alpm_pkg_has_scriptlet(info) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) {
|
if(alpm_pkg_has_scriptlet(info) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) {
|
||||||
_alpm_runscriptlet(handle->root, scriptlet, "pre_remove",
|
_alpm_runscriptlet(handle->root, scriptlet, "pre_remove",
|
||||||
alpm_pkg_get_version(info), NULL, trans);
|
alpm_pkg_get_version(info), NULL, trans);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
files = alpm_pkg_get_files(info);
|
|
||||||
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) {
|
if(!(trans->flags & PM_TRANS_FLAG_DBONLY)) {
|
||||||
|
alpm_list_t *files = alpm_pkg_get_files(info);
|
||||||
for(lp = files; lp; lp = lp->next) {
|
for(lp = files; lp; lp = lp->next) {
|
||||||
if(!can_remove_file(trans, lp->data)) {
|
if(!can_remove_file(lp->data, NULL)) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "not removing package '%s', can't remove all files\n",
|
_alpm_log(PM_LOG_DEBUG, "not removing package '%s', can't remove all files\n",
|
||||||
pkgname);
|
pkgname);
|
||||||
RET_ERR(PM_ERR_PKG_CANT_REMOVE, -1);
|
RET_ERR(PM_ERR_PKG_CANT_REMOVE, -1);
|
||||||
@@ -356,20 +411,24 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db)
|
|||||||
}
|
}
|
||||||
|
|
||||||
int filenum = alpm_list_count(files);
|
int filenum = alpm_list_count(files);
|
||||||
double percent = 0.0;
|
|
||||||
alpm_list_t *newfiles;
|
alpm_list_t *newfiles;
|
||||||
_alpm_log(PM_LOG_DEBUG, "removing %d files\n", filenum);
|
_alpm_log(PM_LOG_DEBUG, "removing %d files\n", filenum);
|
||||||
|
|
||||||
|
/* init progress bar */
|
||||||
|
PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name, 0,
|
||||||
|
pkg_count, (pkg_count - targcount + 1));
|
||||||
|
|
||||||
/* iterate through the list backwards, unlinking files */
|
/* iterate through the list backwards, unlinking files */
|
||||||
newfiles = alpm_list_reverse(files);
|
newfiles = alpm_list_reverse(files);
|
||||||
for(lp = newfiles; lp; lp = alpm_list_next(lp)) {
|
for(lp = newfiles; lp; lp = alpm_list_next(lp)) {
|
||||||
unlink_file(info, lp->data, trans);
|
double percent;
|
||||||
|
unlink_file(info, lp->data, NULL, trans->flags & PM_TRANS_FLAG_NOSAVE);
|
||||||
|
|
||||||
/* update progress bar after each file */
|
/* update progress bar after each file */
|
||||||
percent = (double)position / (double)filenum;
|
percent = (double)position / (double)filenum;
|
||||||
PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name,
|
PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, info->name,
|
||||||
(double)(percent * 100), pkg_count,
|
(double)(percent * 100), pkg_count,
|
||||||
(pkg_count - alpm_list_count(targ) + 1));
|
(pkg_count - targcount + 1));
|
||||||
position++;
|
position++;
|
||||||
}
|
}
|
||||||
alpm_list_free(newfiles);
|
alpm_list_free(newfiles);
|
||||||
@@ -377,14 +436,12 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db)
|
|||||||
|
|
||||||
/* set progress to 100% after we finish unlinking files */
|
/* set progress to 100% after we finish unlinking files */
|
||||||
PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, pkgname, 100,
|
PROGRESS(trans, PM_TRANS_PROGRESS_REMOVE_START, pkgname, 100,
|
||||||
pkg_count, (pkg_count - alpm_list_count(targ) + 1));
|
pkg_count, (pkg_count - targcount + 1));
|
||||||
|
|
||||||
if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) {
|
/* run the post-remove script if it exists */
|
||||||
/* run the post-remove script if it exists */
|
if(alpm_pkg_has_scriptlet(info) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) {
|
||||||
if(alpm_pkg_has_scriptlet(info) && !(trans->flags & PM_TRANS_FLAG_NOSCRIPTLET)) {
|
_alpm_runscriptlet(handle->root, scriptlet, "post_remove",
|
||||||
_alpm_runscriptlet(handle->root, scriptlet, "post_remove",
|
alpm_pkg_get_version(info), NULL, trans);
|
||||||
alpm_pkg_get_version(info), NULL, trans);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* remove the package from the database */
|
/* remove the package from the database */
|
||||||
@@ -400,16 +457,11 @@ int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db)
|
|||||||
pkgname);
|
pkgname);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* call a done event if this isn't an upgrade */
|
EVENT(trans, PM_TRANS_EVT_REMOVE_DONE, info, NULL);
|
||||||
if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) {
|
|
||||||
EVENT(trans, PM_TRANS_EVT_REMOVE_DONE, info, NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* run ldconfig if it exists */
|
/* run ldconfig if it exists */
|
||||||
if(trans->type != PM_TRANS_TYPE_REMOVEUPGRADE) {
|
_alpm_ldconfig(handle->root);
|
||||||
_alpm_ldconfig(handle->root);
|
|
||||||
}
|
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* remove.h
|
* remove.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
@@ -24,9 +24,10 @@
|
|||||||
#include "alpm_list.h"
|
#include "alpm_list.h"
|
||||||
#include "trans.h"
|
#include "trans.h"
|
||||||
|
|
||||||
int _alpm_remove_loadtarget(pmtrans_t *trans, pmdb_t *db, char *name);
|
|
||||||
int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data);
|
int _alpm_remove_prepare(pmtrans_t *trans, pmdb_t *db, alpm_list_t **data);
|
||||||
int _alpm_remove_commit(pmtrans_t *trans, pmdb_t *db);
|
int _alpm_remove_packages(pmtrans_t *trans, pmdb_t *db);
|
||||||
|
|
||||||
|
int _alpm_upgraderemove_package(pmpkg_t *oldpkg, pmpkg_t *newpkg, pmtrans_t *trans);
|
||||||
|
|
||||||
#endif /* _ALPM_REMOVE_H */
|
#endif /* _ALPM_REMOVE_H */
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* sync.c
|
* sync.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -43,11 +43,13 @@
|
|||||||
#include "deps.h"
|
#include "deps.h"
|
||||||
#include "conflict.h"
|
#include "conflict.h"
|
||||||
#include "trans.h"
|
#include "trans.h"
|
||||||
|
#include "add.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "handle.h"
|
#include "handle.h"
|
||||||
#include "alpm.h"
|
#include "alpm.h"
|
||||||
#include "dload.h"
|
#include "dload.h"
|
||||||
#include "delta.h"
|
#include "delta.h"
|
||||||
|
#include "remove.h"
|
||||||
|
|
||||||
/** Check for new version of pkg in sync repos
|
/** Check for new version of pkg in sync repos
|
||||||
* (only the first occurrence is considered in sync)
|
* (only the first occurrence is considered in sync)
|
||||||
@@ -80,17 +82,30 @@ pmpkg_t SYMEXPORT *alpm_sync_newversion(pmpkg_t *pkg, alpm_list_t *dbs_sync)
|
|||||||
return(NULL);
|
return(NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, int enable_downgrade)
|
/** Search for packages to upgrade and add them to the transaction.
|
||||||
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
|
*/
|
||||||
|
int SYMEXPORT alpm_sync_sysupgrade(int enable_downgrade)
|
||||||
{
|
{
|
||||||
alpm_list_t *i, *j, *k;
|
alpm_list_t *i, *j, *k;
|
||||||
|
pmtrans_t *trans;
|
||||||
|
pmdb_t *db_local;
|
||||||
|
alpm_list_t *dbs_sync;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
trans = handle->trans;
|
||||||
|
db_local = handle->db_local;
|
||||||
|
dbs_sync = handle->dbs_sync;
|
||||||
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "checking for package upgrades\n");
|
_alpm_log(PM_LOG_DEBUG, "checking for package upgrades\n");
|
||||||
for(i = _alpm_db_get_pkgcache(db_local); i; i = i->next) {
|
for(i = _alpm_db_get_pkgcache(db_local); i; i = i->next) {
|
||||||
pmpkg_t *lpkg = i->data;
|
pmpkg_t *lpkg = i->data;
|
||||||
|
|
||||||
if(_alpm_pkg_find(trans->packages, lpkg->name)) {
|
if(_alpm_pkg_find(trans->add, lpkg->name)) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "%s is already in the target list -- skipping\n", lpkg->name);
|
_alpm_log(PM_LOG_DEBUG, "%s is already in the target list -- skipping\n", lpkg->name);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -113,7 +128,7 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
|
|||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n",
|
_alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n",
|
||||||
spkg->name, spkg->version);
|
spkg->name, spkg->version);
|
||||||
trans->packages = alpm_list_add(trans->packages, spkg);
|
trans->add = alpm_list_add(trans->add, spkg);
|
||||||
}
|
}
|
||||||
} else if(cmp < 0) {
|
} else if(cmp < 0) {
|
||||||
if(enable_downgrade) {
|
if(enable_downgrade) {
|
||||||
@@ -124,7 +139,7 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
|
|||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_WARNING, _("%s: downgrading from version %s to version %s\n"),
|
_alpm_log(PM_LOG_WARNING, _("%s: downgrading from version %s to version %s\n"),
|
||||||
lpkg->name, lpkg->version, spkg->version);
|
lpkg->name, lpkg->version, spkg->version);
|
||||||
trans->packages = alpm_list_add(trans->packages, spkg);
|
trans->add = alpm_list_add(trans->add, spkg);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
_alpm_log(PM_LOG_WARNING, _("%s: local (%s) is newer than %s (%s)\n"),
|
_alpm_log(PM_LOG_WARNING, _("%s: local (%s) is newer than %s (%s)\n"),
|
||||||
@@ -152,7 +167,7 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* If spkg is already in the target list, we append lpkg to spkg's removes list */
|
/* If spkg is already in the target list, we append lpkg to spkg's removes list */
|
||||||
pmpkg_t *tpkg = _alpm_pkg_find(trans->packages, spkg->name);
|
pmpkg_t *tpkg = _alpm_pkg_find(trans->add, spkg->name);
|
||||||
if(tpkg) {
|
if(tpkg) {
|
||||||
/* sanity check, multiple repos can contain spkg->name */
|
/* sanity check, multiple repos can contain spkg->name */
|
||||||
if(tpkg->origin_data.db != sdb) {
|
if(tpkg->origin_data.db != sdb) {
|
||||||
@@ -173,7 +188,7 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
|
|||||||
spkg->removes = alpm_list_add(NULL, lpkg);
|
spkg->removes = alpm_list_add(NULL, lpkg);
|
||||||
_alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n",
|
_alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n",
|
||||||
spkg->name, spkg->version);
|
spkg->name, spkg->version);
|
||||||
trans->packages = alpm_list_add(trans->packages, spkg);
|
trans->add = alpm_list_add(trans->add, spkg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -187,57 +202,18 @@ int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_s
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, char *name)
|
static int sync_pkg(pmpkg_t *spkg, alpm_list_t *pkg_list)
|
||||||
{
|
{
|
||||||
char *targline;
|
pmtrans_t *trans;
|
||||||
char *targ;
|
pmdb_t *db_local;
|
||||||
alpm_list_t *j;
|
pmpkg_t *local;
|
||||||
pmpkg_t *local, *spkg;
|
|
||||||
pmdepend_t *dep; /* provisions and dependencies are also allowed */
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
ASSERT(db_local != NULL, RET_ERR(PM_ERR_DB_NULL, -1));
|
trans = handle->trans;
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
db_local = handle->db_local;
|
||||||
ASSERT(name != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
STRDUP(targline, name, RET_ERR(PM_ERR_MEMORY, -1));
|
if(_alpm_pkg_find(pkg_list, alpm_pkg_get_name(spkg))) {
|
||||||
targ = strchr(targline, '/');
|
|
||||||
if(targ) {
|
|
||||||
/* we are looking for a package in a specific database */
|
|
||||||
alpm_list_t *dbs = NULL;
|
|
||||||
*targ = '\0';
|
|
||||||
targ++;
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "searching for target '%s' in repo '%s'\n", targ, targline);
|
|
||||||
for(j = dbs_sync; j; j = j->next) {
|
|
||||||
pmdb_t *db = j->data;
|
|
||||||
if(strcmp(db->treename, targline) == 0) {
|
|
||||||
dbs = alpm_list_add(NULL, db);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(dbs == NULL) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("repository '%s' not found\n"), targline);
|
|
||||||
FREE(targline);
|
|
||||||
RET_ERR(PM_ERR_PKG_REPO_NOT_FOUND, -1);
|
|
||||||
}
|
|
||||||
dep = _alpm_splitdep(targ);
|
|
||||||
spkg = _alpm_resolvedep(dep, dbs, NULL, 1);
|
|
||||||
_alpm_dep_free(dep);
|
|
||||||
alpm_list_free(dbs);
|
|
||||||
} else {
|
|
||||||
dep = _alpm_splitdep(targline);
|
|
||||||
spkg = _alpm_resolvedep(dep, dbs_sync, NULL, 1);
|
|
||||||
_alpm_dep_free(dep);
|
|
||||||
}
|
|
||||||
FREE(targline);
|
|
||||||
|
|
||||||
if(spkg == NULL) {
|
|
||||||
/* pm_errno is set by _alpm_resolvedep */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_alpm_pkg_find(trans->packages, alpm_pkg_get_name(spkg))) {
|
|
||||||
RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1);
|
RET_ERR(PM_ERR_TRANS_DUP_TARGET, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -267,11 +243,138 @@ int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sy
|
|||||||
spkg->reason = PM_PKG_REASON_EXPLICIT;
|
spkg->reason = PM_PKG_REASON_EXPLICIT;
|
||||||
_alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n",
|
_alpm_log(PM_LOG_DEBUG, "adding package %s-%s to the transaction targets\n",
|
||||||
alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg));
|
alpm_pkg_get_name(spkg), alpm_pkg_get_version(spkg));
|
||||||
trans->packages = alpm_list_add(trans->packages, spkg);
|
trans->add = alpm_list_add(trans->add, spkg);
|
||||||
|
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int sync_group(alpm_list_t *dbs_sync, const char *target)
|
||||||
|
{
|
||||||
|
alpm_list_t *i, *j;
|
||||||
|
alpm_list_t *known_pkgs = NULL;
|
||||||
|
pmgrp_t *grp;
|
||||||
|
int found = 0;
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "%s package not found, searching for group...\n", target);
|
||||||
|
for(i = dbs_sync; i; i = i->next) {
|
||||||
|
pmdb_t *db = i->data;
|
||||||
|
grp = alpm_db_readgrp(db, target);
|
||||||
|
if(grp) {
|
||||||
|
found = 1;
|
||||||
|
for(j = alpm_grp_get_pkgs(grp); j; j = j->next) {
|
||||||
|
pmpkg_t *pkg = j->data;
|
||||||
|
|
||||||
|
/* check if group member is ignored */
|
||||||
|
if(_alpm_pkg_should_ignore(pkg)) {
|
||||||
|
int install = 0;
|
||||||
|
QUESTION(handle->trans, PM_TRANS_CONV_INSTALL_IGNOREPKG, pkg,
|
||||||
|
NULL, NULL, &install);
|
||||||
|
if(install == 0) {
|
||||||
|
_alpm_log(PM_LOG_WARNING, _("skipping target: %s\n"), alpm_pkg_get_name(pkg));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(sync_pkg(pkg, known_pkgs) == -1) {
|
||||||
|
if(pm_errno == PM_ERR_TRANS_DUP_TARGET || pm_errno == PM_ERR_PKG_IGNORED) {
|
||||||
|
/* just skip duplicate or ignored targets */
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
alpm_list_free(known_pkgs);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
known_pkgs = alpm_list_add(known_pkgs, pkg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
alpm_list_free(known_pkgs);
|
||||||
|
|
||||||
|
if(!found) {
|
||||||
|
/* pass through any 'found but ignored' errors */
|
||||||
|
if(pm_errno != PM_ERR_PKG_IGNORED) {
|
||||||
|
pm_errno = PM_ERR_PKG_NOT_FOUND;
|
||||||
|
}
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int sync_target(alpm_list_t *dbs_sync, const char *target)
|
||||||
|
{
|
||||||
|
pmpkg_t *spkg;
|
||||||
|
pmdepend_t *dep; /* provisions and dependencies are also allowed */
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(target != NULL && strlen(target) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
|
||||||
|
dep = _alpm_splitdep(target);
|
||||||
|
spkg = _alpm_resolvedep(dep, dbs_sync, NULL, 1);
|
||||||
|
_alpm_dep_free(dep);
|
||||||
|
|
||||||
|
if(spkg != NULL) {
|
||||||
|
return(sync_pkg(spkg, handle->trans->add));
|
||||||
|
}
|
||||||
|
|
||||||
|
return(sync_group(dbs_sync, target));
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Add a sync target to the transaction.
|
||||||
|
* @param target the name of the sync target to add
|
||||||
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
|
*/
|
||||||
|
int SYMEXPORT alpm_sync_dbtarget(char *dbname, char *target)
|
||||||
|
{
|
||||||
|
alpm_list_t *i;
|
||||||
|
alpm_list_t *dbs_sync;
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
dbs_sync = handle->dbs_sync;
|
||||||
|
|
||||||
|
/* we are looking for a package in a specific database */
|
||||||
|
alpm_list_t *dbs = NULL;
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "searching for target '%s' in repo '%s'\n", target, dbname);
|
||||||
|
for(i = dbs_sync; i; i = i->next) {
|
||||||
|
pmdb_t *db = i->data;
|
||||||
|
if(strcmp(db->treename, dbname) == 0) {
|
||||||
|
dbs = alpm_list_add(NULL, db);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(dbs == NULL) {
|
||||||
|
RET_ERR(PM_ERR_PKG_REPO_NOT_FOUND, -1);
|
||||||
|
}
|
||||||
|
int ret = sync_target(dbs, target);
|
||||||
|
alpm_list_free(dbs);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Add a sync target to the transaction.
|
||||||
|
* @param target the name of the sync target to add
|
||||||
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
|
*/
|
||||||
|
int SYMEXPORT alpm_sync_target(char *target)
|
||||||
|
{
|
||||||
|
alpm_list_t *dbs_sync;
|
||||||
|
|
||||||
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
dbs_sync = handle->dbs_sync;
|
||||||
|
|
||||||
|
return(sync_target(dbs_sync,target));
|
||||||
|
}
|
||||||
|
|
||||||
/** Compute the size of the files that will be downloaded to install a
|
/** Compute the size of the files that will be downloaded to install a
|
||||||
* package.
|
* package.
|
||||||
* @param newpkg the new package to upgrade to
|
* @param newpkg the new package to upgrade to
|
||||||
@@ -282,6 +385,12 @@ static int compute_download_size(pmpkg_t *newpkg)
|
|||||||
char *fpath;
|
char *fpath;
|
||||||
off_t size = 0;
|
off_t size = 0;
|
||||||
|
|
||||||
|
if(newpkg->origin == PKG_FROM_FILE) {
|
||||||
|
newpkg->infolevel |= INFRQ_DSIZE;
|
||||||
|
newpkg->download_size = 0;
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
fname = alpm_pkg_get_filename(newpkg);
|
fname = alpm_pkg_get_filename(newpkg);
|
||||||
ASSERT(fname != NULL, RET_ERR(PM_ERR_PKG_INVALID_NAME, -1));
|
ASSERT(fname != NULL, RET_ERR(PM_ERR_PKG_INVALID_NAME, -1));
|
||||||
fpath = _alpm_filecache_find(fname);
|
fpath = _alpm_filecache_find(fname);
|
||||||
@@ -314,6 +423,7 @@ static int compute_download_size(pmpkg_t *newpkg)
|
|||||||
_alpm_log(PM_LOG_DEBUG, "setting download size %jd for pkg %s\n",
|
_alpm_log(PM_LOG_DEBUG, "setting download size %jd for pkg %s\n",
|
||||||
(intmax_t)size, alpm_pkg_get_name(newpkg));
|
(intmax_t)size, alpm_pkg_get_name(newpkg));
|
||||||
|
|
||||||
|
newpkg->infolevel |= INFRQ_DSIZE;
|
||||||
newpkg->download_size = size;
|
newpkg->download_size = size;
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
@@ -321,10 +431,9 @@ static int compute_download_size(pmpkg_t *newpkg)
|
|||||||
int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, alpm_list_t **data)
|
int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, alpm_list_t **data)
|
||||||
{
|
{
|
||||||
alpm_list_t *deps = NULL;
|
alpm_list_t *deps = NULL;
|
||||||
alpm_list_t *preferred = NULL;
|
|
||||||
alpm_list_t *unresolvable = NULL;
|
alpm_list_t *unresolvable = NULL;
|
||||||
alpm_list_t *remove = NULL; /* allow checkdeps usage with trans->packages */
|
|
||||||
alpm_list_t *i, *j;
|
alpm_list_t *i, *j;
|
||||||
|
alpm_list_t *remove = NULL;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
@@ -344,32 +453,33 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_START, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_START, NULL, NULL);
|
||||||
_alpm_log(PM_LOG_DEBUG, "resolving target's dependencies\n");
|
_alpm_log(PM_LOG_DEBUG, "resolving target's dependencies\n");
|
||||||
|
|
||||||
/* build remove list and preferred list for resolvedeps */
|
/* build remove list for resolvedeps */
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
pmpkg_t *spkg = i->data;
|
pmpkg_t *spkg = i->data;
|
||||||
for(j = spkg->removes; j; j = j->next) {
|
for(j = spkg->removes; j; j = j->next) {
|
||||||
remove = alpm_list_add(remove, j->data);
|
remove = alpm_list_add(remove, j->data);
|
||||||
}
|
}
|
||||||
preferred = alpm_list_add(preferred, spkg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Compute the fake local database for resolvedeps (partial fix for the phonon/qt issue) */
|
||||||
|
alpm_list_t *localpkgs = alpm_list_diff(_alpm_db_get_pkgcache(db_local), trans->add, _alpm_pkg_cmp);
|
||||||
|
|
||||||
/* Resolve packages in the transaction one at a time, in addtion
|
/* Resolve packages in the transaction one at a time, in addtion
|
||||||
building up a list of packages which could not be resolved. */
|
building up a list of packages which could not be resolved. */
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
pmpkg_t *pkg = i->data;
|
pmpkg_t *pkg = i->data;
|
||||||
if(_alpm_resolvedeps(db_local, dbs_sync, pkg, preferred,
|
if(_alpm_resolvedeps(localpkgs, dbs_sync, pkg, trans->add,
|
||||||
&resolved, remove, data) == -1) {
|
&resolved, remove, data) == -1) {
|
||||||
unresolvable = alpm_list_add(unresolvable, pkg);
|
unresolvable = alpm_list_add(unresolvable, pkg);
|
||||||
}
|
}
|
||||||
/* Else, [resolved] now additionally contains [pkg] and all of its
|
/* Else, [resolved] now additionally contains [pkg] and all of its
|
||||||
dependencies not already on the list */
|
dependencies not already on the list */
|
||||||
}
|
}
|
||||||
alpm_list_free(preferred);
|
alpm_list_free(localpkgs);
|
||||||
|
|
||||||
/* If there were unresolvable top-level packages, prompt the user to
|
/* If there were unresolvable top-level packages, prompt the user to
|
||||||
see if they'd like to ignore them rather than failing the sync */
|
see if they'd like to ignore them rather than failing the sync */
|
||||||
if(unresolvable != NULL) {
|
if(unresolvable != NULL) {
|
||||||
unresolvable = alpm_list_remove_dupes(unresolvable);
|
|
||||||
int remove_unresolvable = 0;
|
int remove_unresolvable = 0;
|
||||||
QUESTION(handle->trans, PM_TRANS_CONV_REMOVE_PKGS, unresolvable,
|
QUESTION(handle->trans, PM_TRANS_CONV_REMOVE_PKGS, unresolvable,
|
||||||
NULL, NULL, &remove_unresolvable);
|
NULL, NULL, &remove_unresolvable);
|
||||||
@@ -392,21 +502,21 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unresolvable packages will be removed from the target list, so
|
|
||||||
we free the transaction specific fields */
|
|
||||||
alpm_list_free_inner(unresolvable, (alpm_list_fn_free)_alpm_pkg_free_trans);
|
|
||||||
|
|
||||||
/* Set DEPEND reason for pulled packages */
|
/* Set DEPEND reason for pulled packages */
|
||||||
for(i = resolved; i; i = i->next) {
|
for(i = resolved; i; i = i->next) {
|
||||||
pmpkg_t *pkg = i->data;
|
pmpkg_t *pkg = i->data;
|
||||||
if(!_alpm_pkg_find(trans->packages, pkg->name)) {
|
if(!_alpm_pkg_find(trans->add, pkg->name)) {
|
||||||
pkg->reason = PM_PKG_REASON_DEPEND;
|
pkg->reason = PM_PKG_REASON_DEPEND;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Unresolvable packages will be removed from the target list, so
|
||||||
|
we free the transaction specific fields */
|
||||||
|
alpm_list_free_inner(unresolvable, (alpm_list_fn_free)_alpm_pkg_free_trans);
|
||||||
|
|
||||||
/* re-order w.r.t. dependencies */
|
/* re-order w.r.t. dependencies */
|
||||||
alpm_list_free(trans->packages);
|
alpm_list_free(trans->add);
|
||||||
trans->packages = _alpm_sortbydeps(resolved, 0);
|
trans->add = _alpm_sortbydeps(resolved, 0);
|
||||||
alpm_list_free(resolved);
|
alpm_list_free(resolved);
|
||||||
|
|
||||||
EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_DONE, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_RESOLVEDEPS_DONE, NULL, NULL);
|
||||||
@@ -420,15 +530,15 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
|
|
||||||
/* 1. check for conflicts in the target list */
|
/* 1. check for conflicts in the target list */
|
||||||
_alpm_log(PM_LOG_DEBUG, "check targets vs targets\n");
|
_alpm_log(PM_LOG_DEBUG, "check targets vs targets\n");
|
||||||
deps = _alpm_innerconflicts(trans->packages);
|
deps = _alpm_innerconflicts(trans->add);
|
||||||
|
|
||||||
for(i = deps; i; i = i->next) {
|
for(i = deps; i; i = i->next) {
|
||||||
pmconflict_t *conflict = i->data;
|
pmconflict_t *conflict = i->data;
|
||||||
pmpkg_t *rsync, *sync, *sync1, *sync2;
|
pmpkg_t *rsync, *sync, *sync1, *sync2;
|
||||||
|
|
||||||
/* have we already removed one of the conflicting targets? */
|
/* have we already removed one of the conflicting targets? */
|
||||||
sync1 = _alpm_pkg_find(trans->packages, conflict->package1);
|
sync1 = _alpm_pkg_find(trans->add, conflict->package1);
|
||||||
sync2 = _alpm_pkg_find(trans->packages, conflict->package2);
|
sync2 = _alpm_pkg_find(trans->add, conflict->package2);
|
||||||
if(!sync1 || !sync2) {
|
if(!sync1 || !sync2) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -468,8 +578,8 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
_alpm_log(PM_LOG_WARNING,
|
_alpm_log(PM_LOG_WARNING,
|
||||||
_("removing '%s' from target list because it conflicts with '%s'\n"),
|
_("removing '%s' from target list because it conflicts with '%s'\n"),
|
||||||
rsync->name, sync->name);
|
rsync->name, sync->name);
|
||||||
|
trans->add = alpm_list_remove(trans->add, rsync, _alpm_pkg_cmp, NULL);
|
||||||
_alpm_pkg_free_trans(rsync); /* rsync is not transaction target anymore */
|
_alpm_pkg_free_trans(rsync); /* rsync is not transaction target anymore */
|
||||||
trans->packages = alpm_list_remove(trans->packages, rsync, _alpm_pkg_cmp, NULL);
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -479,7 +589,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
|
|
||||||
/* 2. we check for target vs db conflicts (and resolve)*/
|
/* 2. we check for target vs db conflicts (and resolve)*/
|
||||||
_alpm_log(PM_LOG_DEBUG, "check targets vs db and db vs targets\n");
|
_alpm_log(PM_LOG_DEBUG, "check targets vs db and db vs targets\n");
|
||||||
deps = _alpm_outerconflicts(db_local, trans->packages);
|
deps = _alpm_outerconflicts(db_local, trans->add);
|
||||||
|
|
||||||
for(i = deps; i; i = i->next) {
|
for(i = deps; i; i = i->next) {
|
||||||
pmconflict_t *conflict = i->data;
|
pmconflict_t *conflict = i->data;
|
||||||
@@ -487,7 +597,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
/* if conflict->package2 (the local package) is not elected for removal,
|
/* if conflict->package2 (the local package) is not elected for removal,
|
||||||
we ask the user */
|
we ask the user */
|
||||||
int found = 0;
|
int found = 0;
|
||||||
for(j = trans->packages; j && !found; j = j->next) {
|
for(j = trans->add; j && !found; j = j->next) {
|
||||||
pmpkg_t *spkg = j->data;
|
pmpkg_t *spkg = j->data;
|
||||||
if(_alpm_pkg_find(spkg->removes, conflict->package2)) {
|
if(_alpm_pkg_find(spkg->removes, conflict->package2)) {
|
||||||
found = 1;
|
found = 1;
|
||||||
@@ -500,11 +610,11 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
_alpm_log(PM_LOG_DEBUG, "package '%s' conflicts with '%s'\n",
|
_alpm_log(PM_LOG_DEBUG, "package '%s' conflicts with '%s'\n",
|
||||||
conflict->package1, conflict->package2);
|
conflict->package1, conflict->package2);
|
||||||
|
|
||||||
pmpkg_t *sync = _alpm_pkg_find(trans->packages, conflict->package1);
|
pmpkg_t *sync = _alpm_pkg_find(trans->add, conflict->package1);
|
||||||
pmpkg_t *local = _alpm_db_get_pkgfromcache(db_local, conflict->package2);
|
pmpkg_t *local = _alpm_db_get_pkgfromcache(db_local, conflict->package2);
|
||||||
int doremove = 0;
|
int doremove = 0;
|
||||||
QUESTION(trans, PM_TRANS_CONV_CONFLICT_PKG, conflict->package1,
|
QUESTION(trans, PM_TRANS_CONV_CONFLICT_PKG, conflict->package1,
|
||||||
conflict->package2, NULL, &doremove);
|
conflict->package2, conflict->reason, &doremove);
|
||||||
if(doremove) {
|
if(doremove) {
|
||||||
/* append to the removes list */
|
/* append to the removes list */
|
||||||
_alpm_log(PM_LOG_DEBUG, "electing '%s' for removal\n", conflict->package2);
|
_alpm_log(PM_LOG_DEBUG, "electing '%s' for removal\n", conflict->package2);
|
||||||
@@ -529,19 +639,17 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
alpm_list_free(deps);
|
alpm_list_free(deps);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
/* Build trans->remove list */
|
||||||
/* rebuild remove list */
|
for(i = trans->add; i; i = i->next) {
|
||||||
alpm_list_free(remove);
|
pmpkg_t *spkg = i->data;
|
||||||
remove = NULL;
|
for(j = spkg->removes; j; j = j->next) {
|
||||||
for(i = trans->packages; i; i = i->next) {
|
trans->remove = alpm_list_add(trans->remove, _alpm_pkg_dup(j->data));
|
||||||
pmpkg_t *spkg = i->data;
|
|
||||||
for(j = spkg->removes; j; j = j->next) {
|
|
||||||
remove = alpm_list_add(remove, j->data);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!(trans->flags & PM_TRANS_FLAG_NODEPS)) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "checking dependencies\n");
|
_alpm_log(PM_LOG_DEBUG, "checking dependencies\n");
|
||||||
deps = alpm_checkdeps(_alpm_db_get_pkgcache(db_local), 1, remove, trans->packages);
|
deps = alpm_checkdeps(_alpm_db_get_pkgcache(db_local), 1, trans->remove, trans->add);
|
||||||
if(deps) {
|
if(deps) {
|
||||||
pm_errno = PM_ERR_UNSATISFIED_DEPS;
|
pm_errno = PM_ERR_UNSATISFIED_DEPS;
|
||||||
ret = -1;
|
ret = -1;
|
||||||
@@ -554,7 +662,7 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
/* update download size field */
|
/* update download size field */
|
||||||
pmpkg_t *spkg = i->data;
|
pmpkg_t *spkg = i->data;
|
||||||
if(compute_download_size(spkg) != 0) {
|
if(compute_download_size(spkg) != 0) {
|
||||||
@@ -564,8 +672,8 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
alpm_list_free(remove);
|
|
||||||
alpm_list_free(unresolvable);
|
alpm_list_free(unresolvable);
|
||||||
|
alpm_list_free(remove);
|
||||||
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
@@ -577,6 +685,9 @@ cleanup:
|
|||||||
*/
|
*/
|
||||||
off_t SYMEXPORT alpm_pkg_download_size(pmpkg_t *newpkg)
|
off_t SYMEXPORT alpm_pkg_download_size(pmpkg_t *newpkg)
|
||||||
{
|
{
|
||||||
|
if(!(newpkg->infolevel & INFRQ_DSIZE)) {
|
||||||
|
compute_download_size(newpkg);
|
||||||
|
}
|
||||||
return(newpkg->download_size);
|
return(newpkg->download_size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -601,7 +712,7 @@ static int apply_deltas(pmtrans_t *trans)
|
|||||||
int ret = 0;
|
int ret = 0;
|
||||||
const char *cachedir = _alpm_filecache_setup();
|
const char *cachedir = _alpm_filecache_setup();
|
||||||
|
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
pmpkg_t *spkg = i->data;
|
pmpkg_t *spkg = i->data;
|
||||||
alpm_list_t *delta_path = spkg->delta_path;
|
alpm_list_t *delta_path = spkg->delta_path;
|
||||||
alpm_list_t *dlts = NULL;
|
alpm_list_t *dlts = NULL;
|
||||||
@@ -614,7 +725,7 @@ static int apply_deltas(pmtrans_t *trans)
|
|||||||
pmdelta_t *d = dlts->data;
|
pmdelta_t *d = dlts->data;
|
||||||
char *delta, *from, *to;
|
char *delta, *from, *to;
|
||||||
char command[PATH_MAX];
|
char command[PATH_MAX];
|
||||||
int len = 0;
|
size_t len = 0;
|
||||||
|
|
||||||
delta = _alpm_filecache_find(d->delta);
|
delta = _alpm_filecache_find(d->delta);
|
||||||
/* the initial package might be in a different cachedir */
|
/* the initial package might be in a different cachedir */
|
||||||
@@ -711,7 +822,6 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
{
|
{
|
||||||
alpm_list_t *i, *j, *files = NULL;
|
alpm_list_t *i, *j, *files = NULL;
|
||||||
alpm_list_t *deltas = NULL;
|
alpm_list_t *deltas = NULL;
|
||||||
pmtrans_t *tr_remove = NULL, *tr_upgrade = NULL;
|
|
||||||
int replaces = 0;
|
int replaces = 0;
|
||||||
int errors = 0;
|
int errors = 0;
|
||||||
const char *cachedir = NULL;
|
const char *cachedir = NULL;
|
||||||
@@ -730,7 +840,7 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
if(handle->totaldlcb) {
|
if(handle->totaldlcb) {
|
||||||
off_t total_size = (off_t)0;
|
off_t total_size = (off_t)0;
|
||||||
/* sum up the download size for each package and store total */
|
/* sum up the download size for each package and store total */
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
pmpkg_t *spkg = i->data;
|
pmpkg_t *spkg = i->data;
|
||||||
total_size += spkg->download_size;
|
total_size += spkg->download_size;
|
||||||
}
|
}
|
||||||
@@ -741,11 +851,10 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
for(i = handle->dbs_sync; i; i = i->next) {
|
for(i = handle->dbs_sync; i; i = i->next) {
|
||||||
pmdb_t *current = i->data;
|
pmdb_t *current = i->data;
|
||||||
|
|
||||||
for(j = trans->packages; j; j = j->next) {
|
for(j = trans->add; j; j = j->next) {
|
||||||
pmpkg_t *spkg = j->data;
|
pmpkg_t *spkg = j->data;
|
||||||
pmdb_t *dbs = spkg->origin_data.db;
|
|
||||||
|
|
||||||
if(current == dbs) {
|
if(spkg->origin == PKG_FROM_CACHE && current == spkg->origin_data.db) {
|
||||||
const char *fname = NULL;
|
const char *fname = NULL;
|
||||||
|
|
||||||
fname = alpm_pkg_get_filename(spkg);
|
fname = alpm_pkg_get_filename(spkg);
|
||||||
@@ -780,7 +889,9 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
|
|
||||||
if(files) {
|
if(files) {
|
||||||
EVENT(trans, PM_TRANS_EVT_RETRIEVE_START, current->treename, NULL);
|
EVENT(trans, PM_TRANS_EVT_RETRIEVE_START, current->treename, NULL);
|
||||||
if(_alpm_download_files(files, current->servers, cachedir)) {
|
errors = _alpm_download_files(files, current->servers, cachedir);
|
||||||
|
|
||||||
|
if (errors) {
|
||||||
_alpm_log(PM_LOG_WARNING, _("failed to retrieve some files from %s\n"),
|
_alpm_log(PM_LOG_WARNING, _("failed to retrieve some files from %s\n"),
|
||||||
current->treename);
|
current->treename);
|
||||||
if(pm_errno == 0) {
|
if(pm_errno == 0) {
|
||||||
@@ -792,6 +903,12 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(j = trans->add; j; j = j->next) {
|
||||||
|
pmpkg_t *pkg = j->data;
|
||||||
|
pkg->infolevel &= ~INFRQ_DSIZE;
|
||||||
|
pkg->download_size = 0;
|
||||||
|
}
|
||||||
|
|
||||||
/* clear out value to let callback know we are done */
|
/* clear out value to let callback know we are done */
|
||||||
if(handle->totaldlcb) {
|
if(handle->totaldlcb) {
|
||||||
handle->totaldlcb(0);
|
handle->totaldlcb(0);
|
||||||
@@ -835,15 +952,36 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
EVENT(trans, PM_TRANS_EVT_INTEGRITY_START, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_INTEGRITY_START, NULL, NULL);
|
||||||
|
|
||||||
errors = 0;
|
errors = 0;
|
||||||
for(i = trans->packages; i; i = i->next) {
|
for(i = trans->add; i; i = i->next) {
|
||||||
pmpkg_t *spkg = i->data;
|
pmpkg_t *spkg = i->data;
|
||||||
|
if(spkg->origin == PKG_FROM_FILE) {
|
||||||
|
continue; /* pkg_load() has been already called, this package is valid */
|
||||||
|
}
|
||||||
|
|
||||||
const char *filename = alpm_pkg_get_filename(spkg);
|
const char *filename = alpm_pkg_get_filename(spkg);
|
||||||
const char *md5sum = alpm_pkg_get_md5sum(spkg);
|
const char *md5sum = alpm_pkg_get_md5sum(spkg);
|
||||||
|
|
||||||
if(test_md5sum(trans, filename, md5sum) != 0) {
|
if(test_md5sum(trans, filename, md5sum) != 0) {
|
||||||
errors++;
|
errors++;
|
||||||
*data = alpm_list_add(*data, strdup(filename));
|
*data = alpm_list_add(*data, strdup(filename));
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
/* load the package file and replace pkgcache entry with it in the target list */
|
||||||
|
/* TODO: alpm_pkg_get_db() will not work on this target anymore */
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "replacing pkgcache entry with package file for target %s\n", spkg->name);
|
||||||
|
char *filepath = _alpm_filecache_find(filename);
|
||||||
|
pmpkg_t *pkgfile;
|
||||||
|
if(alpm_pkg_load(filepath, 1, &pkgfile) != 0) {
|
||||||
|
_alpm_pkg_free(pkgfile);
|
||||||
|
errors++;
|
||||||
|
*data = alpm_list_add(*data, strdup(filename));
|
||||||
|
FREE(filepath);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
FREE(filepath);
|
||||||
|
pkgfile->reason = spkg->reason; /* copy over install reason */
|
||||||
|
i->data = pkgfile;
|
||||||
|
_alpm_pkg_free_trans(spkg); /* spkg has been removed from the target list */
|
||||||
}
|
}
|
||||||
if(errors) {
|
if(errors) {
|
||||||
pm_errno = PM_ERR_PKG_INVALID;
|
pm_errno = PM_ERR_PKG_INVALID;
|
||||||
@@ -851,76 +989,21 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
}
|
}
|
||||||
EVENT(trans, PM_TRANS_EVT_INTEGRITY_DONE, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_INTEGRITY_DONE, NULL, NULL);
|
||||||
if(trans->flags & PM_TRANS_FLAG_DOWNLOADONLY) {
|
if(trans->flags & PM_TRANS_FLAG_DOWNLOADONLY) {
|
||||||
return(0);
|
ret = 0;
|
||||||
|
goto error;
|
||||||
}
|
}
|
||||||
|
|
||||||
trans->state = STATE_COMMITING;
|
trans->state = STATE_COMMITING;
|
||||||
|
|
||||||
/* Create remove and upgrade transactions */
|
replaces = alpm_list_count(trans->remove);
|
||||||
tr_remove = _alpm_trans_new();
|
|
||||||
if(tr_remove == NULL) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not create removal transaction\n"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
tr_upgrade = _alpm_trans_new();
|
|
||||||
if(tr_upgrade == NULL) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not create transaction\n"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(_alpm_trans_init(tr_remove, PM_TRANS_TYPE_REMOVE, PM_TRANS_FLAG_NODEPS, NULL, NULL, NULL) == -1) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not initialize the removal transaction\n"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
if(_alpm_trans_init(tr_upgrade, PM_TRANS_TYPE_UPGRADE, trans->flags, trans->cb_event, trans->cb_conv, trans->cb_progress) == -1) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not initialize transaction\n"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* adding targets */
|
|
||||||
for(i = trans->packages; i; i = i->next) {
|
|
||||||
pmpkg_t *spkg = i->data;
|
|
||||||
alpm_list_t *j;
|
|
||||||
/* remove transaction */
|
|
||||||
for(j = spkg->removes; j; j = j->next) {
|
|
||||||
pmpkg_t *pkg = j->data;
|
|
||||||
if(!_alpm_pkg_find(tr_remove->packages, pkg->name)) {
|
|
||||||
if(_alpm_trans_addtarget(tr_remove, pkg->name) == -1) {
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
replaces++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/* upgrade transaction */
|
|
||||||
const char *fname;
|
|
||||||
char *fpath;
|
|
||||||
|
|
||||||
fname = alpm_pkg_get_filename(spkg);
|
|
||||||
if(fname == NULL) {
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
/* Loop through the cache dirs until we find a matching file */
|
|
||||||
fpath = _alpm_filecache_find(fname);
|
|
||||||
|
|
||||||
if(_alpm_trans_addtarget(tr_upgrade, fpath) == -1) {
|
|
||||||
FREE(fpath);
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
FREE(fpath);
|
|
||||||
|
|
||||||
/* using alpm_list_last() is ok because addtarget() adds the new target at the
|
|
||||||
* end of the tr->packages list */
|
|
||||||
pmpkg_t *ipkg = alpm_list_last(tr_upgrade->packages)->data;
|
|
||||||
ipkg->reason = spkg->reason;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fileconflict check */
|
/* fileconflict check */
|
||||||
if(!(trans->flags & PM_TRANS_FLAG_FORCE)) {
|
if(!(trans->flags & PM_TRANS_FLAG_FORCE)) {
|
||||||
EVENT(trans, PM_TRANS_EVT_FILECONFLICTS_START, NULL, NULL);
|
EVENT(trans, PM_TRANS_EVT_FILECONFLICTS_START, NULL, NULL);
|
||||||
|
|
||||||
_alpm_log(PM_LOG_DEBUG, "looking for file conflicts\n");
|
_alpm_log(PM_LOG_DEBUG, "looking for file conflicts\n");
|
||||||
alpm_list_t *conflict = _alpm_db_find_fileconflicts(db_local, tr_upgrade,
|
alpm_list_t *conflict = _alpm_db_find_fileconflicts(db_local, trans,
|
||||||
tr_upgrade->packages, tr_remove->packages);
|
trans->add, trans->remove);
|
||||||
if(conflict) {
|
if(conflict) {
|
||||||
pm_errno = PM_ERR_FILE_CONFLICTS;
|
pm_errno = PM_ERR_FILE_CONFLICTS;
|
||||||
if(data) {
|
if(data) {
|
||||||
@@ -938,14 +1021,8 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
/* remove conflicting and to-be-replaced packages */
|
/* remove conflicting and to-be-replaced packages */
|
||||||
if(replaces) {
|
if(replaces) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "removing conflicting and to-be-replaced packages\n");
|
_alpm_log(PM_LOG_DEBUG, "removing conflicting and to-be-replaced packages\n");
|
||||||
if(_alpm_trans_prepare(tr_remove, data) == -1) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not prepare removal transaction\n"));
|
|
||||||
goto error;
|
|
||||||
}
|
|
||||||
/* we want the frontend to be aware of commit details */
|
/* we want the frontend to be aware of commit details */
|
||||||
tr_remove->cb_event = trans->cb_event;
|
if(_alpm_remove_packages(trans, handle->db_local) == -1) {
|
||||||
tr_remove->cb_progress = trans->cb_progress;
|
|
||||||
if(_alpm_trans_commit(tr_remove, NULL) == -1) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not commit removal transaction\n"));
|
_alpm_log(PM_LOG_ERROR, _("could not commit removal transaction\n"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@@ -953,8 +1030,7 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
|
|
||||||
/* install targets */
|
/* install targets */
|
||||||
_alpm_log(PM_LOG_DEBUG, "installing packages\n");
|
_alpm_log(PM_LOG_DEBUG, "installing packages\n");
|
||||||
/* add_prepare is not needed */
|
if(_alpm_upgrade_packages(trans, handle->db_local) == -1) {
|
||||||
if(_alpm_trans_commit(tr_upgrade, NULL) == -1) {
|
|
||||||
_alpm_log(PM_LOG_ERROR, _("could not commit transaction\n"));
|
_alpm_log(PM_LOG_ERROR, _("could not commit transaction\n"));
|
||||||
goto error;
|
goto error;
|
||||||
}
|
}
|
||||||
@@ -963,8 +1039,6 @@ int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data)
|
|||||||
error:
|
error:
|
||||||
FREELIST(files);
|
FREELIST(files);
|
||||||
alpm_list_free(deltas);
|
alpm_list_free(deltas);
|
||||||
_alpm_trans_free(tr_remove);
|
|
||||||
_alpm_trans_free(tr_upgrade);
|
|
||||||
return(ret);
|
return(ret);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* sync.h
|
* sync.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
* Copyright (c) 2005, 2006 by Miklos Vajna <vmiklos@frugalware.org>
|
||||||
@@ -24,9 +24,6 @@
|
|||||||
|
|
||||||
#include "alpm.h"
|
#include "alpm.h"
|
||||||
|
|
||||||
int _alpm_sync_sysupgrade(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, int enable_downgrade);
|
|
||||||
|
|
||||||
int _alpm_sync_addtarget(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, char *name);
|
|
||||||
int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, alpm_list_t **data);
|
int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync, alpm_list_t **data);
|
||||||
int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data);
|
int _alpm_sync_commit(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t **data);
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* trans.c
|
* trans.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -52,17 +52,18 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/** Initialize the transaction.
|
/** Initialize the transaction.
|
||||||
* @param type type of the transaction
|
|
||||||
* @param flags flags of the transaction (like nodeps, etc)
|
* @param flags flags of the transaction (like nodeps, etc)
|
||||||
* @param event event callback function pointer
|
* @param event event callback function pointer
|
||||||
* @param conv question callback function pointer
|
* @param conv question callback function pointer
|
||||||
* @param progress progress callback function pointer
|
* @param progress progress callback function pointer
|
||||||
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
||||||
*/
|
*/
|
||||||
int SYMEXPORT alpm_trans_init(pmtranstype_t type, pmtransflag_t flags,
|
int SYMEXPORT alpm_trans_init(pmtransflag_t flags,
|
||||||
alpm_trans_cb_event event, alpm_trans_cb_conv conv,
|
alpm_trans_cb_event event, alpm_trans_cb_conv conv,
|
||||||
alpm_trans_cb_progress progress)
|
alpm_trans_cb_progress progress)
|
||||||
{
|
{
|
||||||
|
pmtrans_t *trans;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
@@ -78,52 +79,45 @@ int SYMEXPORT alpm_trans_init(pmtranstype_t type, pmtransflag_t flags,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handle->trans = _alpm_trans_new();
|
trans = _alpm_trans_new();
|
||||||
if(handle->trans == NULL) {
|
if(trans == NULL) {
|
||||||
RET_ERR(PM_ERR_MEMORY, -1);
|
RET_ERR(PM_ERR_MEMORY, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return(_alpm_trans_init(handle->trans, type, flags, event, conv, progress));
|
trans->flags = flags;
|
||||||
|
trans->cb_event = event;
|
||||||
|
trans->cb_conv = conv;
|
||||||
|
trans->cb_progress = progress;
|
||||||
|
trans->state = STATE_INITIALIZED;
|
||||||
|
|
||||||
|
handle->trans = trans;
|
||||||
|
|
||||||
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Search for packages to upgrade and add them to the transaction.
|
static alpm_list_t *check_arch(alpm_list_t *pkgs)
|
||||||
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
|
||||||
*/
|
|
||||||
int SYMEXPORT alpm_trans_sysupgrade(int enable_downgrade)
|
|
||||||
{
|
{
|
||||||
pmtrans_t *trans;
|
alpm_list_t *i;
|
||||||
|
alpm_list_t *invalid = NULL;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
const char *arch = alpm_option_get_arch();
|
||||||
|
if(!arch) {
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
return(NULL);
|
||||||
|
}
|
||||||
trans = handle->trans;
|
for(i = pkgs; i; i = i->next) {
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
pmpkg_t *pkg = i->data;
|
||||||
ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
const char *pkgarch = alpm_pkg_get_arch(pkg);
|
||||||
ASSERT(trans->type == PM_TRANS_TYPE_SYNC, RET_ERR(PM_ERR_TRANS_TYPE, -1));
|
if(pkgarch && strcmp(pkgarch, arch) && strcmp(pkgarch, "any")) {
|
||||||
|
char *string;
|
||||||
return(_alpm_sync_sysupgrade(trans, handle->db_local, handle->dbs_sync, enable_downgrade));
|
const char *pkgname = alpm_pkg_get_name(pkg);
|
||||||
}
|
const char *pkgver = alpm_pkg_get_version(pkg);
|
||||||
|
size_t len = strlen(pkgname) + strlen(pkgver) + strlen(pkgarch) + 3;
|
||||||
/** Add a target to the transaction.
|
MALLOC(string, len, RET_ERR(PM_ERR_MEMORY, invalid));
|
||||||
* @param target the name of the target to add
|
sprintf(string, "%s-%s-%s", pkgname, pkgver, pkgarch);
|
||||||
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
invalid = alpm_list_add(invalid, string);
|
||||||
*/
|
}
|
||||||
int SYMEXPORT alpm_trans_addtarget(char *target)
|
}
|
||||||
{
|
return(invalid);
|
||||||
pmtrans_t *trans;
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
|
||||||
ASSERT(target != NULL && strlen(target) != 0, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
trans = handle->trans;
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
|
||||||
|
|
||||||
return(_alpm_trans_addtarget(trans, target));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Prepare a transaction.
|
/** Prepare a transaction.
|
||||||
@@ -133,16 +127,47 @@ int SYMEXPORT alpm_trans_addtarget(char *target)
|
|||||||
*/
|
*/
|
||||||
int SYMEXPORT alpm_trans_prepare(alpm_list_t **data)
|
int SYMEXPORT alpm_trans_prepare(alpm_list_t **data)
|
||||||
{
|
{
|
||||||
|
pmtrans_t *trans;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
ASSERT(data != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
ASSERT(data != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
||||||
|
|
||||||
ASSERT(handle->trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
trans = handle->trans;
|
||||||
ASSERT(handle->trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
|
||||||
|
|
||||||
return(_alpm_trans_prepare(handle->trans, data));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
ASSERT(trans->state == STATE_INITIALIZED, RET_ERR(PM_ERR_TRANS_NOT_INITIALIZED, -1));
|
||||||
|
|
||||||
|
/* If there's nothing to do, return without complaining */
|
||||||
|
if(trans->add == NULL && trans->remove == NULL) {
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
alpm_list_t *invalid = check_arch(trans->add);
|
||||||
|
if(invalid) {
|
||||||
|
if(data) {
|
||||||
|
*data = invalid;
|
||||||
|
}
|
||||||
|
RET_ERR(PM_ERR_PKG_INVALID_ARCH, -1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(trans->add == NULL) {
|
||||||
|
if(_alpm_remove_prepare(trans, handle->db_local, data) == -1) {
|
||||||
|
/* pm_errno is set by _alpm_remove_prepare() */
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(_alpm_sync_prepare(trans, handle->db_local, handle->dbs_sync, data) == -1) {
|
||||||
|
/* pm_errno is set by _alpm_sync_prepare() */
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trans->state = STATE_PREPARED;
|
||||||
|
|
||||||
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Commit a transaction.
|
/** Commit a transaction.
|
||||||
@@ -152,17 +177,42 @@ int SYMEXPORT alpm_trans_prepare(alpm_list_t **data)
|
|||||||
*/
|
*/
|
||||||
int SYMEXPORT alpm_trans_commit(alpm_list_t **data)
|
int SYMEXPORT alpm_trans_commit(alpm_list_t **data)
|
||||||
{
|
{
|
||||||
|
pmtrans_t *trans;
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
ALPM_LOG_FUNC;
|
||||||
|
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
ASSERT(handle != NULL, RET_ERR(PM_ERR_HANDLE_NULL, -1));
|
||||||
|
|
||||||
ASSERT(handle->trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
trans = handle->trans;
|
||||||
ASSERT(handle->trans->state == STATE_PREPARED, RET_ERR(PM_ERR_TRANS_NOT_PREPARED, -1));
|
|
||||||
|
|
||||||
ASSERT(!(handle->trans->flags & PM_TRANS_FLAG_NOLOCK), RET_ERR(PM_ERR_TRANS_NOT_LOCKED, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
ASSERT(trans->state == STATE_PREPARED, RET_ERR(PM_ERR_TRANS_NOT_PREPARED, -1));
|
||||||
|
|
||||||
return(_alpm_trans_commit(handle->trans, data));
|
ASSERT(!(trans->flags & PM_TRANS_FLAG_NOLOCK), RET_ERR(PM_ERR_TRANS_NOT_LOCKED, -1));
|
||||||
|
|
||||||
|
/* If there's nothing to do, return without complaining */
|
||||||
|
if(trans->add == NULL && trans->remove == NULL) {
|
||||||
|
return(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
trans->state = STATE_COMMITING;
|
||||||
|
|
||||||
|
if(trans->add == NULL) {
|
||||||
|
if(_alpm_remove_packages(trans, handle->db_local) == -1) {
|
||||||
|
/* pm_errno is set by _alpm_remove_commit() */
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if(_alpm_sync_commit(trans, handle->db_local, data) == -1) {
|
||||||
|
/* pm_errno is set by _alpm_sync_commit() */
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
trans->state = STATE_COMMITED;
|
||||||
|
|
||||||
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Interrupt a transaction.
|
/** Interrupt a transaction.
|
||||||
@@ -203,7 +253,7 @@ int SYMEXPORT alpm_trans_release()
|
|||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
ASSERT(trans->state != STATE_IDLE, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
ASSERT(trans->state != STATE_IDLE, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
||||||
|
|
||||||
unsigned int nolock_flag = trans->flags & PM_TRANS_FLAG_NOLOCK;
|
int nolock_flag = trans->flags & PM_TRANS_FLAG_NOLOCK;
|
||||||
|
|
||||||
_alpm_trans_free(trans);
|
_alpm_trans_free(trans);
|
||||||
handle->trans = NULL;
|
handle->trans = NULL;
|
||||||
@@ -211,7 +261,10 @@ int SYMEXPORT alpm_trans_release()
|
|||||||
/* unlock db */
|
/* unlock db */
|
||||||
if(!nolock_flag) {
|
if(!nolock_flag) {
|
||||||
if(handle->lckfd != -1) {
|
if(handle->lckfd != -1) {
|
||||||
while(close(handle->lckfd) == -1 && errno == EINTR);
|
int fd;
|
||||||
|
do {
|
||||||
|
fd = close(handle->lckfd);
|
||||||
|
} while(fd == -1 && errno == EINTR);
|
||||||
handle->lckfd = -1;
|
handle->lckfd = -1;
|
||||||
}
|
}
|
||||||
if(_alpm_lckrm()) {
|
if(_alpm_lckrm()) {
|
||||||
@@ -247,12 +300,10 @@ void _alpm_trans_free(pmtrans_t *trans)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(trans->type == PM_TRANS_TYPE_SYNC) {
|
alpm_list_free_inner(trans->add, (alpm_list_fn_free)_alpm_pkg_free_trans);
|
||||||
alpm_list_free_inner(trans->packages, (alpm_list_fn_free)_alpm_pkg_free_trans);
|
alpm_list_free(trans->add);
|
||||||
} else {
|
alpm_list_free_inner(trans->remove, (alpm_list_fn_free)_alpm_pkg_free);
|
||||||
alpm_list_free_inner(trans->packages, (alpm_list_fn_free)_alpm_pkg_free);
|
alpm_list_free(trans->remove);
|
||||||
}
|
|
||||||
alpm_list_free(trans->packages);
|
|
||||||
|
|
||||||
FREELIST(trans->skip_add);
|
FREELIST(trans->skip_add);
|
||||||
FREELIST(trans->skip_remove);
|
FREELIST(trans->skip_remove);
|
||||||
@@ -260,150 +311,6 @@ void _alpm_trans_free(pmtrans_t *trans)
|
|||||||
FREE(trans);
|
FREE(trans);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_trans_init(pmtrans_t *trans, pmtranstype_t type, pmtransflag_t flags,
|
|
||||||
alpm_trans_cb_event event, alpm_trans_cb_conv conv,
|
|
||||||
alpm_trans_cb_progress progress)
|
|
||||||
{
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
|
|
||||||
trans->type = type;
|
|
||||||
trans->flags = flags;
|
|
||||||
trans->cb_event = event;
|
|
||||||
trans->cb_conv = conv;
|
|
||||||
trans->cb_progress = progress;
|
|
||||||
trans->state = STATE_INITIALIZED;
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Add a target to the transaction.
|
|
||||||
* @param trans the current transaction
|
|
||||||
* @param target the name of the target to add
|
|
||||||
* @return 0 on success, -1 on error (pm_errno is set accordingly)
|
|
||||||
*/
|
|
||||||
int _alpm_trans_addtarget(pmtrans_t *trans, char *target)
|
|
||||||
{
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
ASSERT(target != NULL, RET_ERR(PM_ERR_WRONG_ARGS, -1));
|
|
||||||
|
|
||||||
switch(trans->type) {
|
|
||||||
case PM_TRANS_TYPE_UPGRADE:
|
|
||||||
if(_alpm_add_loadtarget(trans, handle->db_local, target) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_add_loadtarget() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PM_TRANS_TYPE_REMOVE:
|
|
||||||
case PM_TRANS_TYPE_REMOVEUPGRADE:
|
|
||||||
if(_alpm_remove_loadtarget(trans, handle->db_local, target) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_remove_loadtarget() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PM_TRANS_TYPE_SYNC:
|
|
||||||
if(_alpm_sync_addtarget(trans, handle->db_local, handle->dbs_sync, target) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_sync_loadtarget() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int _alpm_trans_prepare(pmtrans_t *trans, alpm_list_t **data)
|
|
||||||
{
|
|
||||||
if(data) {
|
|
||||||
*data = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
|
|
||||||
/* If there's nothing to do, return without complaining */
|
|
||||||
if(trans->packages == NULL) {
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch(trans->type) {
|
|
||||||
case PM_TRANS_TYPE_UPGRADE:
|
|
||||||
if(_alpm_add_prepare(trans, handle->db_local, data) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_add_prepare() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PM_TRANS_TYPE_REMOVE:
|
|
||||||
case PM_TRANS_TYPE_REMOVEUPGRADE:
|
|
||||||
if(_alpm_remove_prepare(trans, handle->db_local, data) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_remove_prepare() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PM_TRANS_TYPE_SYNC:
|
|
||||||
if(_alpm_sync_prepare(trans, handle->db_local, handle->dbs_sync, data) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_sync_prepare() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
trans->state = STATE_PREPARED;
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
int _alpm_trans_commit(pmtrans_t *trans, alpm_list_t **data)
|
|
||||||
{
|
|
||||||
ALPM_LOG_FUNC;
|
|
||||||
|
|
||||||
if(data!=NULL)
|
|
||||||
*data = NULL;
|
|
||||||
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(trans != NULL, RET_ERR(PM_ERR_TRANS_NULL, -1));
|
|
||||||
|
|
||||||
/* If there's nothing to do, return without complaining */
|
|
||||||
if(trans->packages == NULL) {
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
trans->state = STATE_COMMITING;
|
|
||||||
|
|
||||||
switch(trans->type) {
|
|
||||||
case PM_TRANS_TYPE_UPGRADE:
|
|
||||||
if(_alpm_add_commit(trans, handle->db_local) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_add_commit() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PM_TRANS_TYPE_REMOVE:
|
|
||||||
case PM_TRANS_TYPE_REMOVEUPGRADE:
|
|
||||||
if(_alpm_remove_commit(trans, handle->db_local) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_remove_commit() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PM_TRANS_TYPE_SYNC:
|
|
||||||
if(_alpm_sync_commit(trans, handle->db_local, data) == -1) {
|
|
||||||
/* pm_errno is set by _alpm_sync_commit() */
|
|
||||||
return(-1);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
trans->state = STATE_COMMITED;
|
|
||||||
|
|
||||||
return(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* A cheap grep for text files, returns 1 if a substring
|
/* A cheap grep for text files, returns 1 if a substring
|
||||||
* was found in the text file fn, 0 if it wasn't
|
* was found in the text file fn, 0 if it wasn't
|
||||||
*/
|
*/
|
||||||
@@ -416,7 +323,8 @@ static int grep(const char *fn, const char *needle)
|
|||||||
}
|
}
|
||||||
while(!feof(fp)) {
|
while(!feof(fp)) {
|
||||||
char line[1024];
|
char line[1024];
|
||||||
fgets(line, 1024, fp);
|
int sline = sizeof(line)-1;
|
||||||
|
fgets(line, sline, fp);
|
||||||
if(feof(fp)) {
|
if(feof(fp)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -464,7 +372,7 @@ int _alpm_runscriptlet(const char *root, const char *installfn,
|
|||||||
/* either extract or copy the scriptlet */
|
/* either extract or copy the scriptlet */
|
||||||
snprintf(scriptfn, PATH_MAX, "%s/.INSTALL", tmpdir);
|
snprintf(scriptfn, PATH_MAX, "%s/.INSTALL", tmpdir);
|
||||||
if(!strcmp(script, "pre_upgrade") || !strcmp(script, "pre_install")) {
|
if(!strcmp(script, "pre_upgrade") || !strcmp(script, "pre_install")) {
|
||||||
if(_alpm_unpack(installfn, tmpdir, ".INSTALL")) {
|
if(_alpm_unpack_single(installfn, tmpdir, ".INSTALL")) {
|
||||||
retval = 1;
|
retval = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -503,16 +411,7 @@ cleanup:
|
|||||||
return(retval);
|
return(retval);
|
||||||
}
|
}
|
||||||
|
|
||||||
pmtranstype_t SYMEXPORT alpm_trans_get_type()
|
int SYMEXPORT alpm_trans_get_flags()
|
||||||
{
|
|
||||||
/* Sanity checks */
|
|
||||||
ASSERT(handle != NULL, return(-1));
|
|
||||||
ASSERT(handle->trans != NULL, return(-1));
|
|
||||||
|
|
||||||
return handle->trans->type;
|
|
||||||
}
|
|
||||||
|
|
||||||
unsigned int SYMEXPORT alpm_trans_get_flags()
|
|
||||||
{
|
{
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(handle != NULL, return(-1));
|
ASSERT(handle != NULL, return(-1));
|
||||||
@@ -521,12 +420,21 @@ unsigned int SYMEXPORT alpm_trans_get_flags()
|
|||||||
return handle->trans->flags;
|
return handle->trans->flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
alpm_list_t SYMEXPORT * alpm_trans_get_pkgs()
|
alpm_list_t SYMEXPORT * alpm_trans_get_add()
|
||||||
{
|
{
|
||||||
/* Sanity checks */
|
/* Sanity checks */
|
||||||
ASSERT(handle != NULL, return(NULL));
|
ASSERT(handle != NULL, return(NULL));
|
||||||
ASSERT(handle->trans != NULL, return(NULL));
|
ASSERT(handle->trans != NULL, return(NULL));
|
||||||
|
|
||||||
return handle->trans->packages;
|
return handle->trans->add;
|
||||||
|
}
|
||||||
|
|
||||||
|
alpm_list_t SYMEXPORT * alpm_trans_get_remove()
|
||||||
|
{
|
||||||
|
/* Sanity checks */
|
||||||
|
ASSERT(handle != NULL, return(NULL));
|
||||||
|
ASSERT(handle->trans != NULL, return(NULL));
|
||||||
|
|
||||||
|
return handle->trans->remove;
|
||||||
}
|
}
|
||||||
/* vim: set ts=2 sw=2 noet: */
|
/* vim: set ts=2 sw=2 noet: */
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* trans.h
|
* trans.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -37,10 +37,10 @@ typedef enum _pmtransstate_t {
|
|||||||
|
|
||||||
/* Transaction */
|
/* Transaction */
|
||||||
struct __pmtrans_t {
|
struct __pmtrans_t {
|
||||||
pmtranstype_t type;
|
|
||||||
pmtransflag_t flags;
|
pmtransflag_t flags;
|
||||||
pmtransstate_t state;
|
pmtransstate_t state;
|
||||||
alpm_list_t *packages; /* list of (pmpkg_t *) */
|
alpm_list_t *add; /* list of (pmpkg_t *) */
|
||||||
|
alpm_list_t *remove; /* list of (pmpkg_t *) */
|
||||||
alpm_list_t *skip_add; /* list of (char *) */
|
alpm_list_t *skip_add; /* list of (char *) */
|
||||||
alpm_list_t *skip_remove; /* list of (char *) */
|
alpm_list_t *skip_remove; /* list of (char *) */
|
||||||
alpm_trans_cb_event cb_event;
|
alpm_trans_cb_event cb_event;
|
||||||
@@ -69,12 +69,9 @@ do { \
|
|||||||
|
|
||||||
pmtrans_t *_alpm_trans_new(void);
|
pmtrans_t *_alpm_trans_new(void);
|
||||||
void _alpm_trans_free(pmtrans_t *trans);
|
void _alpm_trans_free(pmtrans_t *trans);
|
||||||
int _alpm_trans_init(pmtrans_t *trans, pmtranstype_t type, pmtransflag_t flags,
|
int _alpm_trans_init(pmtrans_t *trans, pmtransflag_t flags,
|
||||||
alpm_trans_cb_event event, alpm_trans_cb_conv conv,
|
alpm_trans_cb_event event, alpm_trans_cb_conv conv,
|
||||||
alpm_trans_cb_progress progress);
|
alpm_trans_cb_progress progress);
|
||||||
int _alpm_trans_addtarget(pmtrans_t *trans, char *target);
|
|
||||||
int _alpm_trans_prepare(pmtrans_t *trans, alpm_list_t **data);
|
|
||||||
int _alpm_trans_commit(pmtrans_t *trans, alpm_list_t **data);
|
|
||||||
int _alpm_runscriptlet(const char *root, const char *installfn,
|
int _alpm_runscriptlet(const char *root, const char *installfn,
|
||||||
const char *script, const char *ver,
|
const char *script, const char *ver,
|
||||||
const char *oldver, pmtrans_t *trans);
|
const char *oldver, pmtrans_t *trans);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* util.c
|
* util.c
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -175,7 +175,7 @@ char *_alpm_strtrim(char *str)
|
|||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
while(isspace((int)*pch)) {
|
while(isspace((unsigned char)*pch)) {
|
||||||
pch++;
|
pch++;
|
||||||
}
|
}
|
||||||
if(pch != str) {
|
if(pch != str) {
|
||||||
@@ -188,7 +188,7 @@ char *_alpm_strtrim(char *str)
|
|||||||
}
|
}
|
||||||
|
|
||||||
pch = (str + (strlen(str) - 1));
|
pch = (str + (strlen(str) - 1));
|
||||||
while(isspace((int)*pch)) {
|
while(isspace((unsigned char)*pch)) {
|
||||||
pch--;
|
pch--;
|
||||||
}
|
}
|
||||||
*++pch = '\0';
|
*++pch = '\0';
|
||||||
@@ -196,57 +196,11 @@ char *_alpm_strtrim(char *str)
|
|||||||
return(str);
|
return(str);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Helper function for _alpm_strreplace */
|
|
||||||
static void _strnadd(char **str, const char *append, unsigned int count)
|
|
||||||
{
|
|
||||||
if(*str) {
|
|
||||||
*str = realloc(*str, strlen(*str) + count + 1);
|
|
||||||
} else {
|
|
||||||
*str = calloc(count + 1, sizeof(char));
|
|
||||||
}
|
|
||||||
|
|
||||||
strncat(*str, append, count);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Replace all occurances of 'needle' with 'replace' in 'str', returning
|
|
||||||
* a new string (must be free'd) */
|
|
||||||
char *_alpm_strreplace(const char *str, const char *needle, const char *replace)
|
|
||||||
{
|
|
||||||
const char *p, *q;
|
|
||||||
p = q = str;
|
|
||||||
|
|
||||||
char *newstr = NULL;
|
|
||||||
unsigned int needlesz = strlen(needle),
|
|
||||||
replacesz = strlen(replace);
|
|
||||||
|
|
||||||
while (1) {
|
|
||||||
q = strstr(p, needle);
|
|
||||||
if(!q) { /* not found */
|
|
||||||
if(*p) {
|
|
||||||
/* add the rest of 'p' */
|
|
||||||
_strnadd(&newstr, p, strlen(p));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
} else { /* found match */
|
|
||||||
if(q > p){
|
|
||||||
/* add chars between this occurance and last occurance, if any */
|
|
||||||
_strnadd(&newstr, p, q - p);
|
|
||||||
}
|
|
||||||
_strnadd(&newstr, replace, replacesz);
|
|
||||||
p = q + needlesz;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return newstr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Create a lock file */
|
/* Create a lock file */
|
||||||
int _alpm_lckmk()
|
int _alpm_lckmk()
|
||||||
{
|
{
|
||||||
int fd;
|
int fd;
|
||||||
pid_t pid;
|
char *dir, *ptr;
|
||||||
char *dir, *ptr, *spid = NULL;
|
|
||||||
const char *file = alpm_option_get_lockfile();
|
const char *file = alpm_option_get_lockfile();
|
||||||
|
|
||||||
/* create the dir of the lockfile first */
|
/* create the dir of the lockfile first */
|
||||||
@@ -258,16 +212,15 @@ int _alpm_lckmk()
|
|||||||
_alpm_makepath(dir);
|
_alpm_makepath(dir);
|
||||||
FREE(dir);
|
FREE(dir);
|
||||||
|
|
||||||
while((fd = open(file, O_WRONLY | O_CREAT | O_EXCL, 0000)) == -1
|
do {
|
||||||
&& errno == EINTR);
|
fd = open(file, O_WRONLY | O_CREAT | O_EXCL, 0000);
|
||||||
|
} while (fd == -1 && errno == EINTR);
|
||||||
if(fd > 0) {
|
if(fd > 0) {
|
||||||
pid = getpid();
|
FILE *f = fdopen(fd, "w");
|
||||||
size_t len = snprintf(spid, 0, "%ld\n", (long)pid) + 1;
|
fprintf(f, "%ld\n", (long)getpid());
|
||||||
spid = malloc(len);
|
fflush(f);
|
||||||
snprintf(spid, len, "%ld\n", (long)pid);
|
|
||||||
while(write(fd, (void *)spid, len) == -1 && errno == EINTR);
|
|
||||||
fsync(fd);
|
fsync(fd);
|
||||||
free(spid);
|
fclose(f);
|
||||||
return(fd);
|
return(fd);
|
||||||
}
|
}
|
||||||
return(-1);
|
return(-1);
|
||||||
@@ -286,14 +239,38 @@ int _alpm_lckrm()
|
|||||||
/* Compression functions */
|
/* Compression functions */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Unpack a specific file or all files in an archive.
|
* @brief Unpack a specific file in an archive.
|
||||||
*
|
*
|
||||||
* @param archive the archive to unpack
|
* @param archive the archive to unpack
|
||||||
* @param prefix where to extract the files
|
* @param prefix where to extract the files
|
||||||
* @param fn a file within the archive to unpack or NULL for all
|
* @param fn a file within the archive to unpack
|
||||||
* @return 0 on success, 1 on failure
|
* @return 0 on success, 1 on failure
|
||||||
*/
|
*/
|
||||||
int _alpm_unpack(const char *archive, const char *prefix, const char *fn)
|
int _alpm_unpack_single(const char *archive, const char *prefix, const char *fn)
|
||||||
|
{
|
||||||
|
alpm_list_t *list = NULL;
|
||||||
|
int ret = 0;
|
||||||
|
if(fn == NULL) {
|
||||||
|
return(1);
|
||||||
|
}
|
||||||
|
list = alpm_list_add(list, (void *)fn);
|
||||||
|
ret = _alpm_unpack(archive, prefix, list, 1);
|
||||||
|
alpm_list_free(list);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Unpack a list of files in an archive.
|
||||||
|
*
|
||||||
|
* @param archive the archive to unpack
|
||||||
|
* @param prefix where to extract the files
|
||||||
|
* @param list a list of files within the archive to unpack or
|
||||||
|
* NULL for all
|
||||||
|
* @param breakfirst break after the first entry found
|
||||||
|
*
|
||||||
|
* @return 0 on success, 1 on failure
|
||||||
|
*/
|
||||||
|
int _alpm_unpack(const char *archive, const char *prefix, alpm_list_t *list, int breakfirst)
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
mode_t oldmask;
|
mode_t oldmask;
|
||||||
@@ -339,21 +316,31 @@ int _alpm_unpack(const char *archive, const char *prefix, const char *fn)
|
|||||||
|
|
||||||
st = archive_entry_stat(entry);
|
st = archive_entry_stat(entry);
|
||||||
entryname = archive_entry_pathname(entry);
|
entryname = archive_entry_pathname(entry);
|
||||||
|
|
||||||
if(S_ISREG(st->st_mode)) {
|
if(S_ISREG(st->st_mode)) {
|
||||||
archive_entry_set_perm(entry, 0644);
|
archive_entry_set_perm(entry, 0644);
|
||||||
} else if(S_ISDIR(st->st_mode)) {
|
} else if(S_ISDIR(st->st_mode)) {
|
||||||
archive_entry_set_perm(entry, 0755);
|
archive_entry_set_perm(entry, 0755);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If a specific file was requested skip entries that don't match. */
|
/* If specific files were requested, skip entries that don't match. */
|
||||||
if (fn && strcmp(fn, entryname)) {
|
if(list) {
|
||||||
_alpm_log(PM_LOG_DEBUG, "skipping: %s\n", entryname);
|
char *prefix = strdup(entryname);
|
||||||
if (archive_read_data_skip(_archive) != ARCHIVE_OK) {
|
char *p = strstr(prefix,"/");
|
||||||
ret = 1;
|
if(p) {
|
||||||
goto cleanup;
|
*(p+1) = '\0';
|
||||||
|
}
|
||||||
|
char *found = alpm_list_find_str(list, prefix);
|
||||||
|
free(prefix);
|
||||||
|
if(!found) {
|
||||||
|
if (archive_read_data_skip(_archive) != ARCHIVE_OK) {
|
||||||
|
ret = 1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
} else {
|
||||||
|
_alpm_log(PM_LOG_DEBUG, "extracting: %s\n", entryname);
|
||||||
}
|
}
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Extract the archive entry. */
|
/* Extract the archive entry. */
|
||||||
@@ -369,7 +356,7 @@ int _alpm_unpack(const char *archive, const char *prefix, const char *fn)
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(fn) {
|
if(breakfirst) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -404,7 +391,8 @@ int _alpm_rmrf(const char *path)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if((dirp = opendir(path)) == (DIR *)-1) {
|
dirp = opendir(path);
|
||||||
|
if(!dirp) {
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
|
for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
|
||||||
@@ -425,8 +413,7 @@ int _alpm_rmrf(const char *path)
|
|||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int _alpm_logaction(unsigned short usesyslog, FILE *f,
|
int _alpm_logaction(int usesyslog, FILE *f, const char *fmt, va_list args)
|
||||||
const char *fmt, va_list args)
|
|
||||||
{
|
{
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
|
||||||
@@ -509,7 +496,7 @@ int _alpm_run_chroot(const char *root, const char *cmd)
|
|||||||
umask(0022);
|
umask(0022);
|
||||||
pipe = popen(cmd, "r");
|
pipe = popen(cmd, "r");
|
||||||
if(!pipe) {
|
if(!pipe) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("call to popen failed (%s)"),
|
_alpm_log(PM_LOG_ERROR, _("call to popen failed (%s)\n"),
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@@ -526,7 +513,9 @@ int _alpm_run_chroot(const char *root, const char *cmd)
|
|||||||
/* this code runs for the parent only (wait on the child) */
|
/* this code runs for the parent only (wait on the child) */
|
||||||
pid_t retpid;
|
pid_t retpid;
|
||||||
int status;
|
int status;
|
||||||
while((retpid = waitpid(pid, &status, 0)) == -1 && errno == EINTR);
|
do {
|
||||||
|
retpid = waitpid(pid, &status, 0);
|
||||||
|
} while(retpid == -1 && errno == EINTR);
|
||||||
if(retpid == -1) {
|
if(retpid == -1) {
|
||||||
_alpm_log(PM_LOG_ERROR, _("call to waitpid failed (%s)\n"),
|
_alpm_log(PM_LOG_ERROR, _("call to waitpid failed (%s)\n"),
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
@@ -562,7 +551,7 @@ int _alpm_ldconfig(const char *root)
|
|||||||
if(access(line, F_OK) == 0) {
|
if(access(line, F_OK) == 0) {
|
||||||
snprintf(line, PATH_MAX, "%ssbin/ldconfig", root);
|
snprintf(line, PATH_MAX, "%ssbin/ldconfig", root);
|
||||||
if(access(line, X_OK) == 0) {
|
if(access(line, X_OK) == 0) {
|
||||||
_alpm_run_chroot(root, "ldconfig");
|
_alpm_run_chroot(root, "/sbin/ldconfig");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* util.h
|
* util.h
|
||||||
*
|
*
|
||||||
* Copyright (c) 2006-2009 Pacman Development Team <pacman-dev@archlinux.org>
|
* Copyright (c) 2006-2010 Pacman Development Team <pacman-dev@archlinux.org>
|
||||||
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
* Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
|
||||||
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
* Copyright (c) 2005 by Aurelien Foret <orelien@chez.com>
|
||||||
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
* Copyright (c) 2005 by Christian Hamar <krics@linuxforum.hu>
|
||||||
@@ -26,6 +26,8 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
|
#include "alpm_list.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
@@ -60,12 +62,12 @@ int _alpm_makepath(const char *path);
|
|||||||
int _alpm_makepath_mode(const char *path, mode_t mode);
|
int _alpm_makepath_mode(const char *path, mode_t mode);
|
||||||
int _alpm_copyfile(const char *src, const char *dest);
|
int _alpm_copyfile(const char *src, const char *dest);
|
||||||
char *_alpm_strtrim(char *str);
|
char *_alpm_strtrim(char *str);
|
||||||
char *_alpm_strreplace(const char *str, const char *needle, const char *replace);
|
|
||||||
int _alpm_lckmk();
|
int _alpm_lckmk();
|
||||||
int _alpm_lckrm();
|
int _alpm_lckrm();
|
||||||
int _alpm_unpack(const char *archive, const char *prefix, const char *fn);
|
int _alpm_unpack_single(const char *archive, const char *prefix, const char *fn);
|
||||||
|
int _alpm_unpack(const char *archive, const char *prefix, alpm_list_t *list, int breakfirst);
|
||||||
int _alpm_rmrf(const char *path);
|
int _alpm_rmrf(const char *path);
|
||||||
int _alpm_logaction(unsigned short usesyslog, FILE *f, const char *fmt, va_list args);
|
int _alpm_logaction(int usesyslog, FILE *f, const char *fmt, va_list args);
|
||||||
int _alpm_run_chroot(const char *root, const char *cmd);
|
int _alpm_run_chroot(const char *root, const char *cmd);
|
||||||
int _alpm_ldconfig(const char *root);
|
int _alpm_ldconfig(const char *root);
|
||||||
int _alpm_str_cmp(const void *s1, const void *s2);
|
int _alpm_str_cmp(const void *s1, const void *s2);
|
||||||
|
|||||||
195
lib/libalpm/version.c
Normal file
195
lib/libalpm/version.c
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2006-2010 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
|
||||||
|
* 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 "config.h"
|
||||||
|
|
||||||
|
#include <string.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
/* libalpm */
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
/** 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.
|
||||||
|
*
|
||||||
|
* This function has been adopted from the rpmvercmp function located
|
||||||
|
* at lib/rpmvercmp.c, and was most recently updated against rpm
|
||||||
|
* version 4.4.2.3. Small modifications have been made to make it more
|
||||||
|
* consistent with the libalpm coding style.
|
||||||
|
*
|
||||||
|
* 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 SYMEXPORT alpm_pkg_vercmp(const char *a, const char *b)
|
||||||
|
{
|
||||||
|
char oldch1, oldch2;
|
||||||
|
char *str1, *str2;
|
||||||
|
char *ptr1, *ptr2;
|
||||||
|
char *one, *two;
|
||||||
|
int rc;
|
||||||
|
int isnum;
|
||||||
|
int ret = 0;
|
||||||
|
|
||||||
|
/* libalpm added code. ensure our strings are not null */
|
||||||
|
if(!a) {
|
||||||
|
if(!b) return(0);
|
||||||
|
return(-1);
|
||||||
|
}
|
||||||
|
if(!b) return(1);
|
||||||
|
|
||||||
|
/* easy comparison to see if versions are identical */
|
||||||
|
if(strcmp(a, b) == 0) return(0);
|
||||||
|
|
||||||
|
str1 = strdup(a);
|
||||||
|
str2 = strdup(b);
|
||||||
|
|
||||||
|
one = str1;
|
||||||
|
two = str2;
|
||||||
|
|
||||||
|
/* loop through each version segment of str1 and str2 and compare them */
|
||||||
|
while(*one && *two) {
|
||||||
|
while(*one && !isalnum((int)*one)) one++;
|
||||||
|
while(*two && !isalnum((int)*two)) two++;
|
||||||
|
|
||||||
|
/* If we ran to the end of either, we are finished with the loop */
|
||||||
|
if(!(*one && *two)) break;
|
||||||
|
|
||||||
|
ptr1 = one;
|
||||||
|
ptr2 = two;
|
||||||
|
|
||||||
|
/* grab first completely alpha or completely numeric segment */
|
||||||
|
/* leave one and two pointing to the start of the alpha or numeric */
|
||||||
|
/* segment and walk ptr1 and ptr2 to end of segment */
|
||||||
|
if(isdigit((int)*ptr1)) {
|
||||||
|
while(*ptr1 && isdigit((int)*ptr1)) ptr1++;
|
||||||
|
while(*ptr2 && isdigit((int)*ptr2)) ptr2++;
|
||||||
|
isnum = 1;
|
||||||
|
} else {
|
||||||
|
while(*ptr1 && isalpha((int)*ptr1)) ptr1++;
|
||||||
|
while(*ptr2 && isalpha((int)*ptr2)) ptr2++;
|
||||||
|
isnum = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* save character at the end of the alpha or numeric segment */
|
||||||
|
/* so that they can be restored after the comparison */
|
||||||
|
oldch1 = *ptr1;
|
||||||
|
*ptr1 = '\0';
|
||||||
|
oldch2 = *ptr2;
|
||||||
|
*ptr2 = '\0';
|
||||||
|
|
||||||
|
/* this cannot happen, as we previously tested to make sure that */
|
||||||
|
/* the first string has a non-null segment */
|
||||||
|
if (one == ptr1) {
|
||||||
|
ret = -1; /* arbitrary */
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* take care of the case where the two version segments are */
|
||||||
|
/* different types: one numeric, the other alpha (i.e. empty) */
|
||||||
|
/* numeric segments are always newer than alpha segments */
|
||||||
|
/* XXX See patch #60884 (and details) from bugzilla #50977. */
|
||||||
|
if (two == ptr2) {
|
||||||
|
ret = isnum ? 1 : -1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isnum) {
|
||||||
|
/* this used to be done by converting the digit segments */
|
||||||
|
/* to ints using atoi() - it's changed because long */
|
||||||
|
/* digit segments can overflow an int - this should fix that. */
|
||||||
|
|
||||||
|
/* throw away any leading zeros - it's a number, right? */
|
||||||
|
while (*one == '0') one++;
|
||||||
|
while (*two == '0') two++;
|
||||||
|
|
||||||
|
/* whichever number has more digits wins */
|
||||||
|
if (strlen(one) > strlen(two)) {
|
||||||
|
ret = 1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
if (strlen(two) > strlen(one)) {
|
||||||
|
ret = -1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* strcmp will return which one is greater - even if the two */
|
||||||
|
/* segments are alpha or if they are numeric. don't return */
|
||||||
|
/* if they are equal because there might be more segments to */
|
||||||
|
/* compare */
|
||||||
|
rc = strcmp(one, two);
|
||||||
|
if (rc) {
|
||||||
|
ret = rc < 1 ? -1 : 1;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* restore character that was replaced by null above */
|
||||||
|
*ptr1 = oldch1;
|
||||||
|
one = ptr1;
|
||||||
|
*ptr2 = oldch2;
|
||||||
|
two = ptr2;
|
||||||
|
|
||||||
|
/* libalpm added code. check if version strings have hit the pkgrel
|
||||||
|
* portion. depending on which strings have hit, take correct action.
|
||||||
|
* this is all based on the premise that we only have one dash in
|
||||||
|
* the version string, and it separates pkgver from pkgrel. */
|
||||||
|
if(*ptr1 == '-' && *ptr2 == '-') {
|
||||||
|
/* no-op, continue comparing since we are equivalent throughout */
|
||||||
|
} else if(*ptr1 == '-') {
|
||||||
|
/* ptr1 has hit the pkgrel and ptr2 has not. continue version
|
||||||
|
* comparison after stripping the pkgrel from ptr1. */
|
||||||
|
*ptr1 = '\0';
|
||||||
|
} else if(*ptr2 == '-') {
|
||||||
|
/* ptr2 has hit the pkgrel and ptr1 has not. continue version
|
||||||
|
* comparison after stripping the pkgrel from ptr2. */
|
||||||
|
*ptr2 = '\0';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* this catches the case where all numeric and alpha segments have */
|
||||||
|
/* compared identically but the segment separating characters were */
|
||||||
|
/* different */
|
||||||
|
if ((!*one) && (!*two)) {
|
||||||
|
ret = 0;
|
||||||
|
goto cleanup;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* the final showdown. we never want a remaining alpha string to
|
||||||
|
* beat an empty string. the logic is a bit weird, but:
|
||||||
|
* - if one is empty and two is not an alpha, two is newer.
|
||||||
|
* - if one is an alpha, two is newer.
|
||||||
|
* - otherwise one is newer.
|
||||||
|
* */
|
||||||
|
if ( ( !*one && !isalpha((int)*two) )
|
||||||
|
|| isalpha((int)*one) ) {
|
||||||
|
ret = -1;
|
||||||
|
} else {
|
||||||
|
ret = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
free(str1);
|
||||||
|
free(str2);
|
||||||
|
return(ret);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set ts=2 sw=2 noet: */
|
||||||
@@ -1,16 +1,22 @@
|
|||||||
# Set of available languages.
|
# Set of available languages.
|
||||||
|
ca
|
||||||
cs
|
cs
|
||||||
de
|
de
|
||||||
|
el
|
||||||
en_GB
|
en_GB
|
||||||
es
|
es
|
||||||
fr
|
fr
|
||||||
hu
|
hu
|
||||||
it
|
it
|
||||||
kk
|
kk
|
||||||
|
nb
|
||||||
pl
|
pl
|
||||||
|
pt
|
||||||
pt_BR
|
pt_BR
|
||||||
ro
|
ro
|
||||||
ru
|
ru
|
||||||
|
sk
|
||||||
|
sv
|
||||||
tr
|
tr
|
||||||
uk
|
uk
|
||||||
zh_CN
|
zh_CN
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user