Send patches - preferably formatted by git format-patch - to patches at archlinux32 dot org.
summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/pacman/.gitignore2
-rw-r--r--src/pacman/Makefile.am44
-rw-r--r--src/pacman/add.c205
-rw-r--r--src/pacman/add.h30
-rw-r--r--src/pacman/callback.c552
-rw-r--r--src/pacman/callback.h (renamed from src/pacman/trans.h)29
-rw-r--r--src/pacman/conf.c54
-rw-r--r--src/pacman/conf.h50
-rw-r--r--src/pacman/deptest.c35
-rw-r--r--src/pacman/deptest.h30
-rw-r--r--src/pacman/downloadprog.c167
-rw-r--r--src/pacman/downloadprog.h28
-rw-r--r--src/pacman/log.c201
-rw-r--r--src/pacman/log.h55
-rw-r--r--src/pacman/package.c172
-rw-r--r--src/pacman/package.h8
-rw-r--r--src/pacman/pacman.c787
-rw-r--r--src/pacman/pacman.h (renamed from src/pacman/upgrade.h)27
-rw-r--r--src/pacman/po/.gitignore6
-rw-r--r--src/pacman/po/LINGUAS10
-rw-r--r--src/pacman/po/Makefile.in.in355
-rw-r--r--src/pacman/po/Makevars25
-rw-r--r--src/pacman/po/POTFILES.in16
-rw-r--r--src/pacman/po/de.po1084
-rw-r--r--src/pacman/po/en_GB.po1084
-rw-r--r--src/pacman/po/es.po1124
-rw-r--r--src/pacman/po/fr.po1459
-rw-r--r--src/pacman/po/hu.po1078
-rw-r--r--src/pacman/po/it.po1109
-rw-r--r--src/pacman/po/pacman.pot1031
-rw-r--r--src/pacman/po/pl_PL.po1093
-rw-r--r--src/pacman/po/pt_BR.po1109
-rw-r--r--src/pacman/po/remove-potcdate.sin19
-rw-r--r--src/pacman/po/ru_RU.po1090
-rw-r--r--src/pacman/query.c545
-rw-r--r--src/pacman/query.h30
-rw-r--r--src/pacman/remove.c136
-rw-r--r--src/pacman/remove.h30
-rw-r--r--src/pacman/sync.c686
-rw-r--r--src/pacman/sync.h30
-rw-r--r--src/pacman/trans.c383
-rw-r--r--src/pacman/upgrade.c45
-rw-r--r--src/pacman/util.c437
-rw-r--r--src/pacman/util.h60
-rw-r--r--src/util/.gitignore3
-rw-r--r--src/util/Makefile.am20
-rw-r--r--src/util/testdb.c154
-rw-r--r--src/util/testpkg.c30
-rw-r--r--src/util/vercmp.c52
49 files changed, 2763 insertions, 14046 deletions
diff --git a/src/pacman/.gitignore b/src/pacman/.gitignore
index f8247c5e..3b2600fd 100644
--- a/src/pacman/.gitignore
+++ b/src/pacman/.gitignore
@@ -1,6 +1,4 @@
.deps
.libs
-Makefile
-Makefile.in
pacman
pacman.static
diff --git a/src/pacman/Makefile.am b/src/pacman/Makefile.am
index 82ec4d6b..0395432e 100644
--- a/src/pacman/Makefile.am
+++ b/src/pacman/Makefile.am
@@ -1,36 +1,42 @@
-SUBDIRS = po
+# paths set at make time
+conffile = ${sysconfdir}/pacman.conf
+dbpath = ${localstatedir}/lib/pacman/
+cachedir = ${localstatedir}/cache/pacman/pkg/
+logfile = ${localstatedir}/log/pacman.log
bin_PROGRAMS = pacman
-if LINKSTATIC
+if INCLUDE_PACMAN_STATIC
bin_PROGRAMS += pacman.static
endif
-localedir = $(datadir)/locale
-DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
+DEFS = -DLOCALEDIR=\"@localedir@\" \
+ -DCONFFILE=\"$(conffile)\" \
+ -DROOTDIR=\"$(ROOTDIR)\" \
+ -DDBPATH=\"$(dbpath)\" \
+ -DCACHEDIR=\"$(cachedir)\" \
+ -DLOGFILE=\"$(logfile)\" \
+ @DEFS@
INCLUDES = -I$(top_srcdir)/lib/libalpm
-AM_CFLAGS = -D_GNU_SOURCE
+AM_CFLAGS = -pedantic -D_GNU_SOURCE
pacman_SOURCES = \
- add.h add.c \
+ add.c \
conf.h conf.c \
- deptest.h deptest.c \
- downloadprog.h downloadprog.c \
- log.h log.c \
+ deptest.c \
package.h package.c \
- pacman.c \
- query.h query.c \
- remove.h remove.c \
- sync.h sync.c \
- trans.h trans.c \
- upgrade.h upgrade.c \
+ pacman.h pacman.c \
+ query.c \
+ remove.c \
+ sync.c \
+ callback.h callback.c \
util.h util.c
-pacman_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la \
- -ldownload
+pacman_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
pacman_static_SOURCES = $(pacman_SOURCES)
pacman_static_LDFLAGS = $(LDFLAGS) -all-static
-pacman_static_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la \
- -ldownload
+pacman_static_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+
+# vim:set ts=2 sw=2 noet:
diff --git a/src/pacman/add.c b/src/pacman/add.c
index 2adf8681..e04707f2 100644
--- a/src/pacman/add.c
+++ b/src/pacman/add.c
@@ -1,8 +1,8 @@
/*
* add.c
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -24,33 +24,65 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <libintl.h>
#include <alpm.h>
#include <alpm_list.h>
/* pacman */
-#include "add.h"
-#include "log.h"
-#include "downloadprog.h"
-#include "trans.h"
+#include "pacman.h"
+#include "callback.h"
#include "conf.h"
#include "util.h"
-extern config_t *config;
+/* Free the current transaction and print an error if unsuccessful */
+static int add_cleanup(void)
+{
+ int ret = alpm_trans_release();
+ if(ret != 0) {
+ pm_printf(PM_LOG_ERROR, _("failed to release transaction (%s)\n"),
+ alpm_strerrorlast());
+ ret = 1;
+ }
+ return(ret);
+}
+
+/**
+ * @brief Upgrade a specified list of packages.
+ *
+ * @param targets a list of packages (as strings) to upgrade
+ *
+ * @return 0 on success, 1 on failure
+ */
+int pacman_upgrade(alpm_list_t *targets)
+{
+ /* this is basically just a remove-then-add process. pacman_add() will */
+ /* handle it */
+ config->upgrade = 1;
+ return(pacman_add(targets));
+}
+
+/**
+ * @brief Add a specified list of packages which cannot already be installed.
+ *
+ * @param targets a list of packages (as strings) to add
+ *
+ * @return 0 on success, 1 on failure
+ */
int pacman_add(alpm_list_t *targets)
{
- alpm_list_t *i = targets, *data = NULL;
+ alpm_list_t *i, *data = NULL;
+ pmtranstype_t transtype = PM_TRANS_TYPE_ADD;
int retval = 0;
if(targets == NULL) {
- return(0);
+ pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return(1);
}
/* Check for URL targets and process them
*/
- while(i) {
+ for(i = targets; i; i = alpm_list_next(i)) {
if(strstr(i->data, "://")) {
char *str = alpm_fetch_pkgurl(i->data);
if(str == NULL) {
@@ -60,126 +92,103 @@ int pacman_add(alpm_list_t *targets)
i->data = str;
}
}
- i = i->next;
}
- /* Step 1: create a new transaction
- */
- if(alpm_trans_init((config->upgrade == 0) ? PM_TRANS_TYPE_ADD : PM_TRANS_TYPE_UPGRADE,
- config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) {
- ERR(NL, "%s\n", alpm_strerror(pm_errno));
+ /* Step 1: create a new transaction */
+ if(config->upgrade == 1) {
+ /* if upgrade flag was set, change this to an upgrade transaction */
+ transtype = PM_TRANS_TYPE_UPGRADE;
+ }
+
+ if(alpm_trans_init(transtype, config->flags, cb_trans_evt,
+ cb_trans_conv, cb_trans_progress) == -1) {
+ /* TODO: error messages should be in the front end, not the back */
+ fprintf(stderr, _("error: %s\n"), alpm_strerrorlast());
if(pm_errno == PM_ERR_HANDLE_LOCK) {
- MSG(NL, _(" if you're sure a package manager is not already running,\n"
- " you can remove %s%s\n"), alpm_option_get_root(), PM_LOCK);
+ /* TODO this and the 2 other places should probably be on stderr */
+ printf(_(" if you're sure a package manager is not already\n"
+ " running, you can remove %s.\n"), alpm_option_get_lockfile());
}
return(1);
}
- /* and add targets to it */
- MSG(NL, _("loading package data... "));
- for(i = targets; i; i = i->next) {
- if(alpm_trans_addtarget(i->data) == -1) {
- MSG(NL, "\n");
- ERR(NL, _("failed to add target '%s' (%s)"), (char *)i->data, alpm_strerror(pm_errno));
- retval = 1;
- goto cleanup;
+ /* add targets to the created transaction */
+ printf(_("loading package data... "));
+ for(i = targets; i; i = alpm_list_next(i)) {
+ char *targ = alpm_list_getdata(i);
+ if(alpm_trans_addtarget(targ) == -1) {
+ fprintf(stderr, _("error: failed to add target '%s' (%s)"), targ,
+ alpm_strerrorlast());
+ add_cleanup();
+ return(1);
}
}
- MSG(CL, _("done.\n"));
+ printf(_("done.\n"));
- /* Step 2: "compute" the transaction based on targets and flags
- */
+ /* Step 2: "compute" the transaction based on targets and flags */
+ /* TODO: No, compute nothing. This is stupid. */
if(alpm_trans_prepare(&data) == -1) {
- long long *pkgsize, *freespace;
-
- ERR(NL, _("failed to prepare transaction (%s)\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to prepare transaction (%s)\n"),
+ alpm_strerrorlast());
switch(pm_errno) {
case PM_ERR_UNSATISFIED_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
pmdepmissing_t *miss = alpm_list_getdata(i);
-
+ pmdepend_t *dep = alpm_miss_get_dep(miss);
+ char *depstring = alpm_dep_get_string(dep);
+
/* TODO indicate if the error was a virtual package or not:
* :: %s: requires %s, provided by %s
*/
- MSG(NL, _(":: %s: requires %s"), alpm_dep_get_target(miss),
- alpm_dep_get_name(miss));
- switch(alpm_dep_get_mod(miss)) {
- case PM_DEP_MOD_ANY:
- break;
- case PM_DEP_MOD_EQ:
- MSG(CL, "=%s", alpm_dep_get_version(miss));
- break;
- case PM_DEP_MOD_GE:
- MSG(CL, ">=%s", alpm_dep_get_version(miss));
- break;
- case PM_DEP_MOD_LE:
- MSG(CL, "<=%s", alpm_dep_get_version(miss));
- break;
- }
- MSG(CL, "\n");
+ printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
+ depstring);
+ free(depstring);
}
- break;
+ break;
case PM_ERR_CONFLICTING_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
- pmdepmissing_t *miss = alpm_list_getdata(i);
- MSG(NL, _(":: %s: conflicts with %s"),
- alpm_dep_get_target(miss), alpm_dep_get_name(miss));
+ pmconflict_t *conflict = alpm_list_getdata(i);
+ printf(_(":: %s: conflicts with %s"),
+ alpm_conflict_get_package1(conflict), alpm_conflict_get_package2(conflict));
}
- break;
+ break;
case PM_ERR_FILE_CONFLICTS:
for(i = data; i; i = alpm_list_next(i)) {
- pmconflict_t *conflict = alpm_list_getdata(i);
- switch(alpm_conflict_get_type(conflict)) {
- case PM_CONFLICT_TYPE_TARGET:
- MSG(NL, _("%s exists in both '%s' and '%s'\n"),
- alpm_conflict_get_file(conflict),
- alpm_conflict_get_target(conflict),
- alpm_conflict_get_ctarget(conflict));
+ pmfileconflict_t *conflict = alpm_list_getdata(i);
+ switch(alpm_fileconflict_get_type(conflict)) {
+ case PM_FILECONFLICT_TARGET:
+ printf(_("%s exists in both '%s' and '%s'\n"),
+ alpm_fileconflict_get_file(conflict),
+ alpm_fileconflict_get_target(conflict),
+ alpm_fileconflict_get_ctarget(conflict));
break;
- case PM_CONFLICT_TYPE_FILE:
- MSG(NL, _("%s: %s exists in filesystem\n"),
- alpm_conflict_get_target(conflict),
- alpm_conflict_get_file(conflict));
+ case PM_FILECONFLICT_FILESYSTEM:
+ printf(_("%s: %s exists in filesystem\n"),
+ alpm_fileconflict_get_target(conflict),
+ alpm_fileconflict_get_file(conflict));
break;
}
}
- MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
- break;
- /* TODO This is gross... we should not return these values in the same list we
- * would get conflicts and such with... it's just silly
- */
- case PM_ERR_DISK_FULL:
- i = data;
- pkgsize = alpm_list_getdata(i);
- i = alpm_list_next(i);
- freespace = alpm_list_getdata(i);
- MSG(NL, _(":: %.1f MB required, have %.1f MB"),
- (double)(*pkgsize / (1024.0*1024.0)), (double)(*freespace / (1024.0*1024.0)));
- break;
+ printf(_("\nerrors occurred, no packages were upgraded.\n"));
+ break;
default:
- break;
+ break;
}
- retval=1;
- goto cleanup;
+ add_cleanup();
+ alpm_list_free_inner(data, free);
+ alpm_list_free(data);
+ return(1);
}
+ alpm_list_free(data);
- /* Step 3: actually perform the installation
- */
+ /* Step 3: perform the installation */
if(alpm_trans_commit(NULL) == -1) {
- ERR(NL, _("failed to commit transaction (%s)\n"), alpm_strerror(pm_errno));
- retval=1;
- goto cleanup;
- }
-
-cleanup:
- if(data) {
- alpm_list_free(data);
- }
- if(alpm_trans_release() == -1) {
- ERR(NL, _("failed to release transaction (%s)\n"), alpm_strerror(pm_errno));
- retval=1;
+ fprintf(stderr, _("error: failed to commit transaction (%s)\n"), alpm_strerrorlast());
+ add_cleanup();
+ return(1);
}
+ retval = add_cleanup();
return(retval);
}
diff --git a/src/pacman/add.h b/src/pacman/add.h
deleted file mode 100644
index 61a956c5..00000000
--- a/src/pacman/add.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * add.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_ADD_H
-#define _PM_ADD_H
-
-#include <alpm_list.h>
-
-int pacman_add(alpm_list_t *targets);
-
-#endif /* _PM_ADD_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/callback.c b/src/pacman/callback.c
new file mode 100644
index 00000000..6129d8d7
--- /dev/null
+++ b/src/pacman/callback.c
@@ -0,0 +1,552 @@
+/*
+ * callback.c
+ *
+ * Copyright (c) 2002-2007 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * USA.
+ */
+
+#include "config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/time.h>
+#include <unistd.h>
+#include <dirent.h>
+#include <wchar.h>
+
+#include <alpm.h>
+
+/* pacman */
+#include "callback.h"
+#include "util.h"
+#include "conf.h"
+
+/* TODO this should not have to be defined twice- trans.c & log.c */
+#define LOG_STR_LEN 256
+#define FILENAME_TRIM_LEN 23
+
+/* download progress bar */
+static float rate_last;
+static int xfered_last;
+static struct timeval initial_time;
+
+/* transaction progress bar ? */
+static int prevpercent=0; /* for less progressbar output */
+
+/* Silly little helper function, determines if the caller needs a visual update
+ * since the last time this function was called.
+ * This is made for the two progress bar functions, to prevent flicker
+ *
+ * first_call indicates if this is the first time it is called, for
+ * initialization purposes */
+static float get_update_timediff(int first_call)
+{
+ float retval = 0.0;
+ static struct timeval last_time = {0, 0};
+
+ /* on first call, simply set the last time and return */
+ if(first_call) {
+ gettimeofday(&last_time, NULL);
+ } else {
+ struct timeval this_time;
+ float diff_sec, diff_usec;
+
+ gettimeofday(&this_time, NULL);
+ diff_sec = this_time.tv_sec - last_time.tv_sec;
+ diff_usec = this_time.tv_usec - last_time.tv_usec;
+
+ retval = diff_sec + (diff_usec / 1000000.0);
+
+ /* return 0 and do not update last_time if interval was too short */
+ if(retval < UPDATE_SPEED_SEC) {
+ retval = 0.0;
+ } else {
+ last_time = this_time;
+ /* printf("\nupdate retval: %f\n", retval); DEBUG*/
+ }
+ }
+
+ return(retval);
+}
+
+/* refactored from cb_trans_progress */
+static void fill_progress(const int graph_percent, const int display_percent,
+ const int proglen)
+{
+ const unsigned int hashlen = proglen - 8;
+ const unsigned int hash = graph_percent * hashlen / 100;
+ static unsigned int lasthash = 0, mouth = 0;
+ unsigned int i;
+
+ /* printf("\ndebug: proglen: %i\n", proglen); DEBUG*/
+
+ if(graph_percent == 0) {
+ lasthash = 0;
+ mouth = 0;
+ }
+
+ /* magic numbers, how I loathe thee */
+ if(proglen > 8) {
+ printf(" [");
+ for(i = hashlen; i > 1; --i) {
+ /* if special progress bar enabled */
+ if(config->chomp) {
+ if(i > hashlen - hash) {
+ printf("-");
+ } else if(i == hashlen - hash) {
+ if(lasthash == hash) {
+ if(mouth) {
+ printf("\033[1;33mC\033[m");
+ } else {
+ printf("\033[1;33mc\033[m");
+ }
+ } else {
+ lasthash = hash;
+ mouth = mouth == 1 ? 0 : 1;
+ if(mouth) {
+ printf("\033[1;33mC\033[m");
+ } else {
+ printf("\033[1;33mc\033[m");
+ }
+ }
+ } else if(i%3 == 0) {
+ printf("\033[0;37mo\033[m");
+ } else {
+ printf("\033[0;37m \033[m");
+ }
+ } /* else regular progress bar */
+ else if(i > hashlen - hash) {
+ printf("#");
+ } else {
+ printf("-");
+ }
+ }
+ printf("]");
+ }
+ /* print percent after progress bar */
+ if(proglen > 5) {
+ printf(" %3d%%", display_percent);
+ }
+
+ if(graph_percent == 100) {
+ printf("\n");
+ } else {
+ printf("\r");
+ }
+ fflush(stdout);
+}
+
+
+
+/* callback to handle messages/notifications from libalpm transactions */
+void cb_trans_evt(pmtransevt_t event, void *data1, void *data2)
+{
+ char str[LOG_STR_LEN] = "";
+
+ switch(event) {
+ case PM_TRANS_EVT_CHECKDEPS_START:
+ printf(_("checking dependencies...\n"));
+ break;
+ case PM_TRANS_EVT_FILECONFLICTS_START:
+ if(config->noprogressbar) {
+ printf(_("checking for file conflicts...\n"));
+ }
+ break;
+ case PM_TRANS_EVT_RESOLVEDEPS_START:
+ printf(_("resolving dependencies...\n"));
+ break;
+ case PM_TRANS_EVT_INTERCONFLICTS_START:
+ printf(_("looking for inter-conflicts...\n"));
+ break;
+ case PM_TRANS_EVT_ADD_START:
+ if(config->noprogressbar) {
+ printf(_("installing %s...\n"), alpm_pkg_get_name(data1));
+ }
+ break;
+ case PM_TRANS_EVT_ADD_DONE:
+ snprintf(str, LOG_STR_LEN, "installed %s (%s)\n",
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_version(data1));
+ alpm_logaction(str);
+ break;
+ case PM_TRANS_EVT_REMOVE_START:
+ if(config->noprogressbar) {
+ printf(_("removing %s...\n"), alpm_pkg_get_name(data1));
+ }
+ break;
+ case PM_TRANS_EVT_REMOVE_DONE:
+ snprintf(str, LOG_STR_LEN, "removed %s (%s)\n",
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_version(data1));
+ alpm_logaction(str);
+ break;
+ case PM_TRANS_EVT_UPGRADE_START:
+ if(config->noprogressbar) {
+ printf(_("upgrading %s...\n"), alpm_pkg_get_name(data1));
+ }
+ break;
+ case PM_TRANS_EVT_UPGRADE_DONE:
+ snprintf(str, LOG_STR_LEN, "upgraded %s (%s -> %s)\n",
+ (char *)alpm_pkg_get_name(data1),
+ (char *)alpm_pkg_get_version(data2),
+ (char *)alpm_pkg_get_version(data1));
+ alpm_logaction(str);
+ break;
+ case PM_TRANS_EVT_INTEGRITY_START:
+ printf(_("checking package integrity...\n"));
+ break;
+ case PM_TRANS_EVT_DELTA_INTEGRITY_START:
+ printf(_("checking delta integrity...\n"));
+ break;
+ case PM_TRANS_EVT_DELTA_PATCHES_START:
+ printf(_("applying deltas...\n"));
+ break;
+ case PM_TRANS_EVT_DELTA_PATCH_START:
+ printf(_("generating %s with %s... "), (char *)data1, (char *)data2);
+ break;
+ case PM_TRANS_EVT_DELTA_PATCH_DONE:
+ printf(_("success!\n"));
+ break;
+ case PM_TRANS_EVT_DELTA_PATCH_FAILED:
+ printf(_("failed.\n"));
+ break;
+ case PM_TRANS_EVT_SCRIPTLET_INFO:
+ printf("%s", (char*)data1);
+ break;
+ case PM_TRANS_EVT_PRINTURI:
+ printf("%s/%s\n", (char*)data1, (char*)data2);
+ break;
+ case PM_TRANS_EVT_RETRIEVE_START:
+ printf(_(":: Retrieving packages from %s...\n"), (char*)data1);
+ break;
+ /* all the simple done events, with fallthrough for each */
+ case PM_TRANS_EVT_FILECONFLICTS_DONE:
+ case PM_TRANS_EVT_EXTRACT_DONE:
+ case PM_TRANS_EVT_CHECKDEPS_DONE:
+ case PM_TRANS_EVT_RESOLVEDEPS_DONE:
+ case PM_TRANS_EVT_INTERCONFLICTS_DONE:
+ case PM_TRANS_EVT_INTEGRITY_DONE:
+ case PM_TRANS_EVT_DELTA_INTEGRITY_DONE:
+ case PM_TRANS_EVT_DELTA_PATCHES_DONE:
+ /* nothing */
+ break;
+ }
+ fflush(stdout);
+}
+
+/* callback to handle questions from libalpm transactions (yes/no) */
+/* TODO this is one of the worst ever functions written. void *data ? wtf */
+void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
+ void *data3, int *response)
+{
+ char str[LOG_STR_LEN] = "";
+
+ switch(event) {
+ case PM_TRANS_CONV_INSTALL_IGNOREPKG:
+ if(data2) {
+ /* TODO we take this route based on data2 being not null? WTF */
+ snprintf(str, LOG_STR_LEN, _(":: %s requires installing %s from IgnorePkg/IgnoreGroup. Install anyway? [Y/n] "),
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_name(data2));
+ *response = yesno(str);
+ } else {
+ snprintf(str, LOG_STR_LEN, _(":: %s is in IgnorePkg/IgnoreGroup. Install anyway? [Y/n] "),
+ alpm_pkg_get_name(data1));
+ *response = yesno(str);
+ }
+ break;
+ case PM_TRANS_CONV_REMOVE_HOLDPKG:
+ snprintf(str, LOG_STR_LEN, _(":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "),
+ alpm_pkg_get_name(data1));
+ *response = yesno(str);
+ break;
+ case PM_TRANS_CONV_REPLACE_PKG:
+ snprintf(str, LOG_STR_LEN, _(":: Replace %s with %s/%s? [Y/n] "),
+ alpm_pkg_get_name(data1),
+ (char *)data3,
+ alpm_pkg_get_name(data2));
+ *response = yesno(str);
+ break;
+ case PM_TRANS_CONV_CONFLICT_PKG:
+ snprintf(str, LOG_STR_LEN, _(":: %s conflicts with %s. Remove %s? [Y/n] "),
+ (char *)data1,
+ (char *)data2,
+ (char *)data2);
+ *response = yesno(str);
+ break;
+ case PM_TRANS_CONV_LOCAL_NEWER:
+ if(!config->op_s_downloadonly) {
+ snprintf(str, LOG_STR_LEN, _(":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "),
+ alpm_pkg_get_name(data1),
+ alpm_pkg_get_version(data1));
+ *response = yesno(str);
+ } else {
+ *response = 1;
+ }
+ break;
+ case PM_TRANS_CONV_CORRUPTED_PKG:
+ if(!config->noconfirm) {
+ snprintf(str, LOG_STR_LEN, _(":: File %s is corrupted. Do you want to delete it? [Y/n] "),
+ (char *)data1);
+ *response = yesno(str);
+ } else {
+ *response = 1;
+ }
+ break;
+ }
+}
+
+/* callback to handle display of transaction progress */
+void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
+ int howmany, int remain)
+{
+ float timediff;
+
+ /* size of line to allocate for text printing (e.g. not progressbar) */
+ const int infolen = 50;
+ int tmp, digits, oprlen, textlen, pkglen;
+ char *opr = NULL;
+ wchar_t *wcopr = NULL;
+
+ if(config->noprogressbar) {
+ return;
+ }
+
+ if(percent == 0) {
+ timediff = get_update_timediff(1);
+ } else {
+ timediff = get_update_timediff(0);
+ }
+
+ if(percent > 0 && percent < 100 && !timediff) {
+ /* only update the progress bar when
+ * a) we first start
+ * b) we end the progress
+ * c) it has been long enough since the last call
+ */
+ return;
+ }
+
+ /* if no pkgname, percent is too high or unchanged, then return */
+ if(!pkgname || percent == prevpercent) {
+ return;
+ }
+
+ prevpercent=percent;
+ /* set text of message to display */
+ switch (event) {
+ case PM_TRANS_PROGRESS_ADD_START:
+ opr = _("installing");
+ break;
+ case PM_TRANS_PROGRESS_UPGRADE_START:
+ opr = _("upgrading");
+ break;
+ case PM_TRANS_PROGRESS_REMOVE_START:
+ opr = _("removing");
+ break;
+ case PM_TRANS_PROGRESS_CONFLICTS_START:
+ opr = _("checking for file conflicts");
+ break;
+ }
+ /* convert above strings to wide chars */
+ oprlen = strlen(opr);
+ wcopr = calloc(oprlen, sizeof(wchar_t));
+ if(!wcopr) {
+ fprintf(stderr, "malloc failure: could not allocate %zd bytes\n",
+ strlen(opr) * sizeof(wchar_t));
+ return;
+ }
+ oprlen = mbstowcs(wcopr, opr, oprlen);
+
+ /* find # of digits in package counts to scale output */
+ digits = 1;
+ tmp = howmany;
+ while((tmp /= 10)) {
+ ++digits;
+ }
+
+ /* determine room left for non-digits text [not ( 1/12) part] */
+ textlen = infolen - 3 - (2 * digits);
+ /* room left for package name */
+ pkglen = textlen - oprlen - 1;
+
+ switch (event) {
+ case PM_TRANS_PROGRESS_ADD_START:
+ case PM_TRANS_PROGRESS_UPGRADE_START:
+ case PM_TRANS_PROGRESS_REMOVE_START:
+ /* old way of doing it, but ISO C does not recognize it
+ printf("(%2$*1$d/%3$*1$d) %4$s %6$-*5$.*5$s", digits, remain, howmany,
+ opr, pkglen, pkgname);*/
+ printf("(%*d/%*d) %s %-*.*s", digits, remain, digits, howmany,
+ opr, pkglen, pkglen, pkgname);
+ break;
+ case PM_TRANS_PROGRESS_CONFLICTS_START:
+ /* old way of doing it, but ISO C does not recognize it
+ printf("(%2$*1$d/%3$*1$d) %5$-*4$s", digits, remain, howmany,
+ textlen, opr);*/
+ printf("(%*d/%*d) %-*s", digits, remain, digits, howmany,
+ textlen, opr);
+ break;
+ }
+
+ free(wcopr);
+
+ /* call refactored fill progress function */
+ fill_progress(percent, percent, getcols() - infolen);
+}
+
+/* callback to handle display of download progress */
+void cb_dl_progress(const char *filename, int file_xfered, int file_total,
+ int list_xfered, int list_total)
+{
+ const int infolen = 50;
+ char *fname, *p;
+
+ float rate = 0.0, timediff = 0.0, f_xfered = 0.0;
+ unsigned int eta_h = 0, eta_m = 0, eta_s = 0;
+ int graph_percent = 0, display_percent = 0;
+ char rate_size = 'K', xfered_size = 'K';
+ int xfered = 0, total = 0;
+
+ /* Need this variable when TotalDownload is set to know if we should
+ * reset xfered_last and rate_last. */
+ static int has_init = 0;
+
+ if(config->noprogressbar) {
+ return;
+ }
+
+ /* Choose how to display the amount downloaded, rate, ETA, and
+ * percentage depending on the TotalDownload option. */
+ if (config->totaldownload && list_total > 0) {
+ xfered = list_xfered;
+ total = list_total;
+ } else {
+ xfered = file_xfered;
+ total = file_total;
+ }
+
+ /* this is basically a switch on file_xferred: 0, file_total, and
+ * anything else */
+ if(file_xfered == 0) {
+ /* set default starting values, but only once for TotalDownload */
+ if (!(config->totaldownload && list_total > 0) ||
+ (config->totaldownload && list_total > 0 && !has_init)) {
+ gettimeofday(&initial_time, NULL);
+ timediff = get_update_timediff(1);
+ xfered_last = 0;
+ rate_last = 0.0;
+ has_init = 1;
+ }
+ rate = 0.0;
+ eta_s = 0;
+ } else if(file_xfered == file_total) {
+ /* compute final values */
+ struct timeval current_time;
+ float diff_sec, diff_usec;
+
+ gettimeofday(&current_time, NULL);
+ diff_sec = current_time.tv_sec - initial_time.tv_sec;
+ diff_usec = current_time.tv_usec - initial_time.tv_usec;
+ timediff = diff_sec + (diff_usec / 1000000.0);
+ rate = xfered / (timediff * 1024.0);
+
+ /* round elapsed time to the nearest second */
+ eta_s = (int)(timediff + 0.5);
+ } else {
+ /* compute current average values */
+ timediff = get_update_timediff(0);
+
+ if(timediff < UPDATE_SPEED_SEC) {
+ /* return if the calling interval was too short */
+ return;
+ }
+ rate = (xfered - xfered_last) / (timediff * 1024.0);
+ /* average rate to reduce jumpiness */
+ rate = (rate + 2*rate_last) / 3;
+ eta_s = (total - xfered) / (rate * 1024.0);
+ rate_last = rate;
+ xfered_last = xfered;
+ }
+
+ /* fix up time for display */
+ eta_h = eta_s / 3600;
+ eta_s -= eta_h * 3600;
+ eta_m = eta_s / 60;
+ eta_s -= eta_m * 60;
+
+ fname = strdup(filename);
+ /* strip package or DB extension for cleaner look */
+ if((p = strstr(fname, PKGEXT)) || (p = strstr(fname, DBEXT))) {
+ *p = '\0';
+ }
+ if(strlen(fname) > FILENAME_TRIM_LEN) {
+ strcpy(fname + FILENAME_TRIM_LEN -3,"...");
+ }
+
+ /* Awesome formatting for progress bar. We need a mess of Kb->Mb->Gb stuff
+ * here. We'll use limit of 2048 for each until we get some empirical */
+ /* rate_size = 'K'; was set above */
+ if(rate > 2048.0) {
+ rate /= 1024.0;
+ rate_size = 'M';
+ if(rate > 2048.0) {
+ rate /= 1024.0;
+ rate_size = 'G';
+ /* we should not go higher than this for a few years (9999.9 Gb/s?)*/
+ }
+ }
+
+ f_xfered = xfered / 1024.0; /* convert to K by default */
+ /* xfered_size = 'K'; was set above */
+ if(f_xfered > 2048.0) {
+ f_xfered /= 1024.0;
+ xfered_size = 'M';
+ if(f_xfered > 2048.0) {
+ f_xfered /= 1024.0;
+ xfered_size = 'G';
+ /* I should seriously hope that archlinux packages never break
+ * the 9999.9GB mark... we'd have more serious problems than the progress
+ * bar in pacman */
+ }
+ }
+
+ printf(" %-*s %6.1f%c %#6.1f%c/s %02u:%02u:%02u", FILENAME_TRIM_LEN, fname,
+ f_xfered, xfered_size, rate, rate_size, eta_h, eta_m, eta_s);
+
+ free(fname);
+
+ /* The progress bar is based on the file percent regardless of the
+ * TotalDownload option. */
+ graph_percent = (int)((float)file_xfered) / ((float)file_total) * 100;
+ display_percent = (int)((float)xfered) / ((float)total) * 100;
+ fill_progress(graph_percent, display_percent, getcols() - infolen);
+ return;
+}
+
+/* Callback to handle notifications from the library */
+void cb_log(pmloglevel_t level, char *fmt, va_list args)
+{
+ if(!strlen(fmt)) {
+ return;
+ }
+
+ pm_vfprintf(stdout, level, fmt, args);
+}
+
+/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/trans.h b/src/pacman/callback.h
index 0c0f9e01..59d8a45b 100644
--- a/src/pacman/trans.h
+++ b/src/pacman/callback.h
@@ -1,8 +1,8 @@
/*
- * trans.h
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ * callback.h
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,25 +15,32 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
-#ifndef _PM_TRANS_H
-#define _PM_TRANS_H
+#ifndef _PM_CALLBACK_H
+#define _PM_CALLBACK_H
#include <alpm.h>
-/* callback to handle messages/notifications from pacman transactions */
+/* callback to handle messages/notifications from libalpm transactions */
void cb_trans_evt(pmtransevt_t event, void *data1, void *data2);
-/* callback to handle questions from pacman transactions (yes/no) */
+/* callback to handle questions from libalpm transactions (yes/no) */
void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
void *data3, int *response);
-/* callback to handle display of the progress bar for transactions */
+/* callback to handle display of transaction progress */
void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
int howmany, int remain);
-#endif /* _PM_TRANS_H */
+/* callback to handle display of download progress */
+void cb_dl_progress(const char *filename, int file_xfered, int file_total,
+ int list_xfered, int list_total);
+
+/* callback to handle messages/notifications from pacman library */
+void cb_log(pmloglevel_t level, char *fmt, va_list args);
+
+#endif /* _PM_CALLBACK_H */
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/conf.c b/src/pacman/conf.c
index a770fd47..743f8330 100644
--- a/src/pacman/conf.c
+++ b/src/pacman/conf.c
@@ -1,8 +1,8 @@
/*
* conf.c
- *
+ *
* 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -23,38 +23,46 @@
#include <stdlib.h>
#include <stdio.h>
-#include <string.h>
-#include <limits.h>
-#include <libintl.h>
-
-#include <alpm.h>
+#include <string.h> /* strdup */
/* pacman */
#include "conf.h"
-#include "util.h"
-#include "log.h"
-#include "sync.h"
-#include "downloadprog.h"
-config_t *config_new()
-{
- config_t *config;
+/* global config variable */
+config_t *config = NULL;
- MALLOC(config, sizeof(config_t));
-
- memset(config, 0, sizeof(config_t));
+config_t *config_new(void)
+{
+ config_t *newconfig = calloc(1, sizeof(config_t));
+ if(!newconfig) {
+ fprintf(stderr, "malloc failure: could not allocate %zd bytes\n",
+ sizeof(config_t));
+ return(NULL);
+ }
+ /* defaults which may get overridden later */
+ newconfig->op = PM_OP_MAIN;
+ newconfig->logmask = PM_LOG_ERROR | PM_LOG_WARNING;
+ /* CONFFILE is defined at compile-time */
+ newconfig->configfile = strdup(CONFFILE);
+ newconfig->rootdir = NULL;
+ newconfig->dbpath = NULL;
+ newconfig->logfile = NULL;
- return(config);
+ return(newconfig);
}
-int config_free(config_t *config)
+int config_free(config_t *oldconfig)
{
- if(config == NULL) {
+ if(oldconfig == NULL) {
return(-1);
}
- FREE(config->configfile);
- free(config);
+ free(oldconfig->configfile);
+ free(oldconfig->rootdir);
+ free(oldconfig->dbpath);
+ free(oldconfig->logfile);
+ free(oldconfig);
+ oldconfig = NULL;
return(0);
}
diff --git a/src/pacman/conf.h b/src/pacman/conf.h
index 05ef0b4c..989fa2c8 100644
--- a/src/pacman/conf.h
+++ b/src/pacman/conf.h
@@ -1,8 +1,8 @@
/*
* conf.h
- *
+ *
* 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef _PM_CONF_H
@@ -24,25 +24,36 @@
#include <alpm.h>
typedef struct __config_t {
- /* command line options */
- char *configfile;
unsigned short op;
+ unsigned short quiet;
unsigned short verbose;
unsigned short version;
unsigned short help;
unsigned short upgrade;
unsigned short noconfirm;
unsigned short noprogressbar;
- unsigned short op_d_resolve;
+ unsigned short logmask;
+ /* unfortunately, we have to keep track of paths both here and in the library
+ * because they can come from both the command line or config file, and we
+ * need to ensure we get the order of preference right. */
+ char *configfile;
+ char *rootdir;
+ char *dbpath;
+ char *logfile;
+ /* TODO how to handle cachedirs? */
+
unsigned short op_q_isfile;
unsigned short op_q_info;
unsigned short op_q_list;
unsigned short op_q_foreign;
unsigned short op_q_orphans;
+ unsigned short op_q_deps;
+ unsigned short op_q_explicit;
unsigned short op_q_owns;
unsigned short op_q_search;
unsigned short op_q_changelog;
unsigned short op_q_upgrade;
+
unsigned short op_s_clean;
unsigned short op_s_dependsonly;
unsigned short op_s_downloadonly;
@@ -50,16 +61,35 @@ typedef struct __config_t {
unsigned short op_s_sync;
unsigned short op_s_search;
unsigned short op_s_upgrade;
+
unsigned short group;
pmtransflag_t flags;
- unsigned short noask;
- unsigned int ask;
+
+ /* conf file options */
+ unsigned short chomp; /* I Love Candy! */
+ unsigned short usecolor; /* enable colorful output */
+ unsigned short showsize; /* show individual package sizes */
+ unsigned short totaldownload; /* When downloading, display the amount
+ downloaded, rate, ETA, and percent
+ downloaded of the total download list */
} config_t;
-#define FREECONF(p) do { if(p) { config_free(p); p = NULL; } } while(0)
+/* Operations */
+enum {
+ PM_OP_MAIN = 1,
+ PM_OP_ADD,
+ PM_OP_REMOVE,
+ PM_OP_UPGRADE,
+ PM_OP_QUERY,
+ PM_OP_SYNC,
+ PM_OP_DEPTEST
+};
+
+/* global config variable */
+extern config_t *config;
config_t *config_new(void);
-int config_free(config_t *config);
+int config_free(config_t *oldconfig);
#endif /* _PM_CONF_H */
diff --git a/src/pacman/deptest.c b/src/pacman/deptest.c
index 1ae7ceb5..32fb3d08 100644
--- a/src/pacman/deptest.c
+++ b/src/pacman/deptest.c
@@ -1,8 +1,8 @@
/*
* deptest.c
- *
+ *
* 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -24,20 +24,16 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <libintl.h>
#include <alpm.h>
#include <alpm_list.h>
/* pacman */
-#include "deptest.h"
+#include "pacman.h"
#include "util.h"
#include "conf.h"
-#include "log.h"
-#include "sync.h"
-
-extern config_t *config;
+/* TODO: This should use _alpm_checkdeps() */
int pacman_deptest(alpm_list_t *targets)
{
int retval = 0;
@@ -46,7 +42,7 @@ int pacman_deptest(alpm_list_t *targets)
if(targets == NULL) {
return(0);
}
-
+
for(i = targets; i; i = alpm_list_next(i)) {
int found = 0;
pmpkg_t *pkg;
@@ -55,20 +51,16 @@ int pacman_deptest(alpm_list_t *targets)
alpm_list_t *j, *provides;
target = alpm_list_getdata(i);
-
- /* splitdep modifies the string... we'll compensate for now */
- char *saved_target = NULL;
- saved_target = calloc(strlen(target)+1, sizeof(char));
- strncpy(saved_target, target, strlen(target));
-
dep = alpm_splitdep(target);
- pkg = alpm_db_get_pkg(alpm_option_get_localdb(), target);
+ pkg = alpm_db_get_pkg(alpm_option_get_localdb(),
+ alpm_dep_get_name(dep));
if(pkg && alpm_depcmp(pkg, dep)) {
found = 1;
} else {
/* not found, can we find anything that provides this in the local DB? */
- provides = alpm_db_whatprovides(alpm_option_get_localdb(), target);
+ provides = alpm_db_whatprovides(alpm_option_get_localdb(),
+ alpm_dep_get_name(dep));
for(j = provides; j; j = alpm_list_next(j)) {
pmpkg_t *pkg;
pkg = alpm_list_getdata(j);
@@ -78,13 +70,14 @@ int pacman_deptest(alpm_list_t *targets)
break;
}
}
+ alpm_list_free(provides);
}
if(!found) {
- MSG(NL, "%s", saved_target);
- retval = 1;
+ printf("%s\n", target);
+ retval = 127;
}
- free(saved_target);
+ free(dep);
}
return(retval);
}
diff --git a/src/pacman/deptest.h b/src/pacman/deptest.h
deleted file mode 100644
index ee30e437..00000000
--- a/src/pacman/deptest.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * deptest.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_DEPTEST_H
-#define _PM_DEPTEST_H
-
-#include <alpm_list.h>
-
-int pacman_deptest(alpm_list_t *targets);
-
-#endif /* _PM_DEPTEST_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/downloadprog.c b/src/pacman/downloadprog.c
deleted file mode 100644
index 6ce8e2f5..00000000
--- a/src/pacman/downloadprog.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * downloadprog.c
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-
-#include "config.h"
-
-#include <limits.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <time.h>
-#include <sys/time.h>
-#include <libintl.h>
-#include <math.h>
-
-#include <alpm.h>
-
-/* pacman */
-#include "downloadprog.h"
-#include "util.h"
-#include "log.h"
-#include "conf.h"
-
-/* progress bar */
-static float rate_last;
-static int xfered_last;
-static struct timeval initial_time;
-
-/* pacman options */
-extern config_t *config;
-
-#define FILENAME_TRIM_LEN 23
-
-void log_progress(const char *filename, int xfered, int total)
-{
- const int infolen = 50;
- char *fname, *p;
-
- float rate = 0.0, timediff = 0.0, f_xfered = 0.0;
- unsigned int eta_h = 0, eta_m = 0, eta_s = 0;
- int percent;
- char rate_size = 'K', xfered_size = 'K';
-
- if(config->noprogressbar) {
- return;
- }
-
- /* XXX: big fat hack: due to the fact that we switch out printf/pm_fprintf,
- * not everything honors our 'neednl' newline hackery. This forces a newline
- * if we need one before drawing the progress bar */
- MSG(NL,NULL);
-
- /* this is basically a switch on xferred: 0, total, and anything else */
- if(xfered == 0) {
- /* set default starting values */
- gettimeofday(&initial_time, NULL);
- xfered_last = 0;
- rate_last = 0.0;
- timediff = get_update_timediff(1);
- rate = 0.0;
- eta_s = 0;
- set_output_padding(1); /* we need padding from pm_fprintf output */
- } else if(xfered == total) {
- /* compute final values */
- struct timeval current_time;
- float diff_sec, diff_usec;
-
- gettimeofday(&current_time, NULL);
- diff_sec = current_time.tv_sec - initial_time.tv_sec;
- diff_usec = current_time.tv_usec - initial_time.tv_usec;
- timediff = diff_sec + (diff_usec / 1000000.0);
- rate = (float)total / (timediff * 1024.0);
-
- /* round elapsed time to the nearest second */
- eta_s = (int)floorf(timediff + 0.5);
-
- set_output_padding(0); /* shut off padding */
- } else {
- /* compute current average values */
- timediff = get_update_timediff(0);
-
- if(timediff < UPDATE_SPEED_SEC) {
- /* return if the calling interval was too short */
- return;
- }
- rate = (float)(xfered - xfered_last) / (timediff * 1024.0);
- /* average rate to reduce jumpiness */
- rate = (float)(rate + 2*rate_last) / 3;
- eta_s = (unsigned int)(total - xfered) / (rate * 1024.0);
- rate_last = rate;
- xfered_last = xfered;
- }
-
- percent = (int)((float)xfered) / ((float)total) * 100;
-
- /* fix up time for display */
- eta_h = eta_s / 3600;
- eta_s -= eta_h * 3600;
- eta_m = eta_s / 60;
- eta_s -= eta_m * 60;
-
- fname = strdup(filename);
- /* strip extension if it's there
- * NOTE: in the case of package files, only the pkgname is sent now */
- if((p = strstr(fname, PM_EXT_PKG)) || (p = strstr(fname, PM_EXT_DB))) {
- *p = '\0';
- }
- if(strlen(fname) > FILENAME_TRIM_LEN) {
- strcpy(fname + FILENAME_TRIM_LEN -3,"...");
- }
-
- /* Awesome formatting for progress bar. We need a mess of Kb->Mb->Gb stuff
- * here. We'll use limit of 2048 for each until we get some empirical */
- /* rate_size = 'K'; was set above */
- if(rate > 2048.0) {
- rate /= 1024.0;
- rate_size = 'M';
- if(rate > 2048.0) {
- rate /= 1024.0;
- rate_size = 'G';
- /* we should not go higher than this for a few years (9999.9 Gb/s?)*/
- }
- }
-
- f_xfered = (float) xfered / 1024.0; /* convert to K by default */
- /* xfered_size = 'K'; was set above */
- if(f_xfered > 2048.0) {
- f_xfered /= 1024.0;
- xfered_size = 'M';
- if(f_xfered > 2048.0) {
- f_xfered /= 1024.0;
- xfered_size = 'G';
- /* I should seriously hope that archlinux packages never break
- * the 9999.9GB mark... we'd have more serious problems than the progress
- * bar in pacman */
- }
- }
-
- printf(" %-*s %6.1f%c %#6.1f%c/s %02u:%02u:%02u", FILENAME_TRIM_LEN, fname,
- f_xfered, xfered_size, rate, rate_size, eta_h, eta_m, eta_s);
-
- free(fname);
-
- fill_progress(percent, getcols() - infolen);
- return;
-}
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/downloadprog.h b/src/pacman/downloadprog.h
deleted file mode 100644
index e79fcc51..00000000
--- a/src/pacman/downloadprog.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * downloadprog.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_DOWNLOADPROG_H
-#define _PM_DOWNLOADPROG_H
-
-void log_progress(const char *filename, int xfered, int total);
-
-#endif /* _PM_DOWNLOADPROG_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/log.c b/src/pacman/log.c
deleted file mode 100644
index ca83df0b..00000000
--- a/src/pacman/log.c
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * log.c
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdarg.h>
-#include <ctype.h>
-#include <time.h>
-#include <libintl.h>
-
-#include <alpm.h>
-
-/* pacman */
-#include "log.h"
-#include "conf.h"
-#include "util.h"
-
-#define LOG_STR_LEN 256
-
-extern config_t *config;
-
-static int neednl = 0; /* for cleaner message output */
-static int needpad = 0; /* pad blanks to terminal width */
-
-/* simple helper for needpad */
-void set_output_padding(int on)
-{
- needpad = on;
-}
-
-/* Callback to handle notifications from the library
- */
-void cb_log(unsigned short level, char *msg)
-{
- char str[LOG_STR_LEN] = "";
-
- if(!strlen(msg)) {
- return;
- }
-
- switch(level) {
- case PM_LOG_DEBUG:
- sprintf(str, _("debug"));
- break;
- case PM_LOG_ERROR:
- sprintf(str, _("error"));
- break;
- case PM_LOG_WARNING:
- sprintf(str, _("warning"));
- break;
- case PM_LOG_FUNCTION:
- /* TODO we should increase the indent level when this occurs so we can see
- * program flow easier. It'll be fun
- */
- sprintf(str, _("function"));
- break;
- default:
- sprintf(str, "???");
- break;
- }
-
-#ifdef PACMAN_DEBUG
- /* If debug is on, we'll timestamp the output */
- if(alpm_option_get_logmask() & PM_LOG_DEBUG) {
- time_t t;
- struct tm *tmp;
- char timestr[10] = {0};
-
- t = time(NULL);
- tmp = localtime(&t);
- strftime(timestr, 9, "%H:%M:%S", tmp);
- timestr[8] = '\0';
-
- MSG(NL, "[%s] %s: %s", timestr, str, msg);
- } else {
- MSG(NL, "%s: %s", str, msg);
- }
-#else
- MSG(NL, "%s: %s", str, msg);
-#endif
-}
-
-/* Wrapper to fprintf() that allows to choose if we want the output
- * to be appended on the current line, or written to a new one
- */
-void pm_fprintf(FILE *file, unsigned short line, char *fmt, ...)
-{
- va_list args;
-
- char str[LOG_STR_LEN];
- int len = 0;
-
- if(neednl == 1 && line == NL) {
- fprintf(file, "\n");
- neednl = 0;
- }
-
- if(!fmt) {
- return;
- }
-
- va_start(args, fmt);
- vsnprintf(str, LOG_STR_LEN, fmt, args);
- va_end(args);
-
- len = strlen(str);
-
- if(needpad == 1 && str[len-1] == '\n') {
- /* we want this removed so we can pad */
- str[len-1] = ' ';
- neednl = 1;
- }
-
- fprintf(file, str);
-
- if(needpad == 1) {
- int i, cols = getcols();
- for(i=len; i < cols; ++i) {
- fprintf(file, " ");
- }
- if(neednl == 1 && line == NL) {
- fprintf(file, "\n");
- neednl = 0;
- }
- }
- fflush(file);
- neednl = (str[strlen(str)-1] == '\n') ? 0 : 1;
-}
-
-/* Check verbosity option and, if set, print the
- * string to stdout
- */
-void vprint(char *fmt, ...)
-{
- va_list args;
-
- char str[LOG_STR_LEN];
-
- if(config->verbose > 0) {
- va_start(args, fmt);
- vsnprintf(str, LOG_STR_LEN, fmt, args);
- va_end(args);
- pm_fprintf(stdout, NL, str);
- }
-}
-
-/* presents a prompt and gets a Y/N answer
- */
-int yesno(char *fmt, ...)
-{
- char str[LOG_STR_LEN];
- char response[32];
- va_list args;
-
- if(config->noconfirm) {
- return(1);
- }
-
- va_start(args, fmt);
- vsnprintf(str, LOG_STR_LEN, fmt, args);
- va_end(args);
-
- /* Use stderr so questions are always displayed when redirecting output */
- pm_fprintf(stderr, NL, str); \
-
- if(fgets(response, 32, stdin)) {
- if(strlen(response) != 0) {
- strtrim(response);
- }
-
- /* User hits 'enter', forcing a newline here */
- neednl = 0;
-
- if(!strcasecmp(response, _("Y")) || !strcasecmp(response, _("YES")) || strlen(response) == 0) {
- return(1);
- }
- }
- return(0);
-}
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/log.h b/src/pacman/log.h
deleted file mode 100644
index 1205e8e6..00000000
--- a/src/pacman/log.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * log.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_LOG_H
-#define _PM_LOG_H
-
-#include <stdio.h>
-
-/* TODO these are illegal in ISO C, thus the reason -pedantic was never used
- * as a compile flag for the pacman side of things (named variadic macros) */
-#define MSG(line, fmt, args...) pm_fprintf(stdout, line, fmt, ##args)
-#define ERR(line, fmt, args...) do { \
- pm_fprintf(stderr, line, _("error: ")); \
- pm_fprintf(stderr, CL, fmt, ##args); \
-} while(0)
-#define WARN(line, fmt, args...) do { \
- pm_fprintf(stderr, line, _("warning: ")); \
- pm_fprintf(stderr, CL, fmt, ##args); \
-} while(0)
-
-enum {
- NL, /* new line */
- CL /* current line */
-};
-
-void set_output_padding(int on);
-
-/* callback to handle messages/notifications from pacman library */
-void cb_log(unsigned short level, char *msg);
-
-void pm_fprintf(FILE *file, unsigned short line, char *fmt, ...);
-void vprint(char *fmt, ...);
-
-int yesno(char *fmt, ...);
-
-#endif /* _PM_LOG_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/package.c b/src/pacman/package.c
index 5c27b665..ac3f8207 100644
--- a/src/pacman/package.c
+++ b/src/pacman/package.c
@@ -1,8 +1,8 @@
/*
* package.c
- *
+ *
* 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -26,25 +26,28 @@
#include <string.h>
#include <limits.h>
#include <sys/stat.h>
-#include <libintl.h>
#include <alpm.h>
#include <alpm_list.h>
/* pacman */
#include "package.h"
-#include "log.h"
#include "util.h"
-/* Display the content of an installed package
+/* Display the content of a package
*
- * level: <1 - omits N/A info for file query (-Qp)
- * 1 - normal level
- * >1 - extra information (backup files)
+ * level: <0 - sync package [-Si]
+ * =0 - file query [-Qip]
+ * 1 - localdb query, normal level [-Qi]
+ * >1 - localdb query, extra information (backup files) [-Qii]
*/
void dump_pkg_full(pmpkg_t *pkg, int level)
{
- const char *bdate, *type, *idate, *reason, *descheader;
+ const char *reason, *descheader;
+ time_t bdate, idate;
+ char bdatestr[50] = "", idatestr[50] = "";
+ const alpm_list_t *i;
+ alpm_list_t *requiredby = NULL, *depstrings = NULL;
if(pkg == NULL) {
return;
@@ -52,8 +55,13 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
/* set variables here, do all output below */
bdate = alpm_pkg_get_builddate(pkg);
- type = alpm_pkg_get_buildtype(pkg);
+ if(bdate) {
+ strftime(bdatestr, 50, "%c", localtime(&bdate));
+ }
idate = alpm_pkg_get_installdate(pkg);
+ if(idate) {
+ strftime(idatestr, 50, "%c", localtime(&idate));
+ }
switch((long)alpm_pkg_get_reason(pkg)) {
case PM_PKG_REASON_EXPLICIT:
@@ -67,86 +75,89 @@ void dump_pkg_full(pmpkg_t *pkg, int level)
break;
}
+ /* turn depends list into a text list */
+ for(i = alpm_pkg_get_depends(pkg); i; i = alpm_list_next(i)) {
+ pmdepend_t *dep = (pmdepend_t*)alpm_list_getdata(i);
+ depstrings = alpm_list_add(depstrings, alpm_dep_get_string(dep));
+ }
+
+ if(level>0) {
+ /* compute this here so we don't get a puase in the middle of output */
+ requiredby = alpm_pkg_compute_requiredby(pkg);
+ }
+
descheader = _("Description : ");
/* actual output */
- printf(_("Name : %s\n"), (char *)alpm_pkg_get_name(pkg));
- printf(_("Version : %s\n"), (char *)alpm_pkg_get_version(pkg));
- printf(_("URL : %s\n"), (char *)alpm_pkg_get_url(pkg));
- list_display(_("License :"), alpm_pkg_get_licenses(pkg));
+ if(level == 0) {
+ string_display(_("Filename :"), alpm_pkg_get_filename(pkg));
+ }
+ string_display(_("Name :"), alpm_pkg_get_name(pkg));
+ string_display(_("Version :"), alpm_pkg_get_version(pkg));
+ string_display(_("URL :"), alpm_pkg_get_url(pkg));
+ list_display(_("Licenses :"), alpm_pkg_get_licenses(pkg));
list_display(_("Groups :"), alpm_pkg_get_groups(pkg));
list_display(_("Provides :"), alpm_pkg_get_provides(pkg));
- list_display(_("Depends On :"), alpm_pkg_get_depends(pkg));
- list_display(_("Removes :"), alpm_pkg_get_removes(pkg));
+ list_display(_("Depends On :"), depstrings);
+ list_display(_("Optional Deps :"), alpm_pkg_get_optdepends(pkg));
/* Only applicable if installed */
if(level > 0) {
- list_display(_("Required By :"), alpm_pkg_get_requiredby(pkg));
+ list_display(_("Required By :"), requiredby);
+ FREELIST(requiredby);
}
list_display(_("Conflicts With :"), alpm_pkg_get_conflicts(pkg));
- printf(_("Installed Size : %6.2f K\n"), (float)alpm_pkg_get_size(pkg) / 1024.0);
- printf(_("Packager : %s\n"), (char *)alpm_pkg_get_packager(pkg));
- printf(_("Architecture : %s\n"), (char *)alpm_pkg_get_arch(pkg));
- printf(_("Build Date : %s %s\n"), bdate, strlen(bdate) ? "UTC" : "");
- printf(_("Build Type : %s\n"), strlen(type) ? type : _("Unknown"));
+ list_display(_("Replaces :"), alpm_pkg_get_replaces(pkg));
+ if(level < 0) {
+ printf(_("Download Size : %6.2f K\n"),
+ (float)alpm_pkg_get_size(pkg) / 1024.0);
+ }
+ if(level == 0) {
+ printf(_("Compressed Size: %6.2f K\n"),
+ (float)alpm_pkg_get_size(pkg) / 1024.0);
+ }
+
+ printf(_("Installed Size : %6.2f K\n"),
+ (float)alpm_pkg_get_isize(pkg) / 1024.0);
+ string_display(_("Packager :"), alpm_pkg_get_packager(pkg));
+ string_display(_("Architecture :"), alpm_pkg_get_arch(pkg));
+ string_display(_("Build Date :"), bdatestr);
if(level > 0) {
- printf(_("Install Date : %s %s\n"), idate, strlen(idate) ? "UTC" : "");
- printf(_("Install Reason : %s\n"), reason);
+ string_display(_("Install Date :"), idatestr);
+ string_display(_("Install Reason :"), reason);
+ }
+ if(level >= 0) {
+ string_display(_("Install Script :"),
+ alpm_pkg_has_scriptlet(pkg) ? _("Yes") : _("No"));
+ }
+
+ /* MD5 Sum for sync package */
+ if(level < 0) {
+ string_display(_("MD5 Sum :"), alpm_pkg_get_md5sum(pkg));
}
- printf(_("Install Script : %s\n"),
- alpm_pkg_has_scriptlet(pkg) ? _("Yes") : _("No"));
/* printed using a variable to make i18n safe */
printf("%s", descheader);
indentprint(alpm_pkg_get_desc(pkg), mbstowcs(NULL, descheader, 0));
- printf("\n");
+ printf("\n\n");
/* Print additional package info if info flag passed more than once */
if(level > 1) {
- /* call new backup function */
- printf("\n");
dump_pkg_backups(pkg);
+ printf("\n");
}
- printf("\n");
+
+ FREELIST(depstrings);
}
/* Display the content of a sync package
*/
void dump_pkg_sync(pmpkg_t *pkg, const char *treename)
{
- char *descheader, *md5sum, *sha1sum;
if(pkg == NULL) {
return;
}
-
- descheader = _("Description : ");
-
- md5sum = (char *)alpm_pkg_get_md5sum(pkg);
- sha1sum = (char *)alpm_pkg_get_sha1sum(pkg);
-
- printf(_("Repository : %s\n"), treename);
- printf(_("Name : %s\n"), (char *)alpm_pkg_get_name(pkg));
- printf(_("Version : %s\n"), (char *)alpm_pkg_get_version(pkg));
- list_display(_("Groups :"), alpm_pkg_get_groups(pkg));
- list_display(_("Provides :"), alpm_pkg_get_provides(pkg));
- list_display(_("Depends On :"), alpm_pkg_get_depends(pkg));
- list_display(_("Removes :"), alpm_pkg_get_removes(pkg));
- list_display(_("Conflicts With :"), alpm_pkg_get_conflicts(pkg));
- list_display(_("Replaces :"), alpm_pkg_get_replaces(pkg));
- printf(_("Download Size : %6.2f K\n"), (float)alpm_pkg_get_size(pkg) / 1024.0);
- printf(_("Installed Size : %6.2f K\n"), (float)alpm_pkg_get_isize(pkg) / 1024.0);
-
- /* printed using a variable to make i18n safe */
- printf("%s", descheader);
- indentprint(alpm_pkg_get_desc(pkg), mbstowcs(NULL, descheader, 0));
- printf("\n");
-
- if (md5sum != NULL && md5sum[0] != '\0') {
- printf(_("MD5 Sum : %s"), md5sum);
- }
- if (sha1sum != NULL && sha1sum[0] != '\0') {
- printf(_("SHA1 Sum : %s"), sha1sum);
- }
- printf("\n");
+ string_display(_("Repository :"), treename);
+ dump_pkg_full(pkg, -1);
}
/* Display list of backup files and their modification states
@@ -164,7 +175,7 @@ void dump_pkg_backups(pmpkg_t *pkg)
char *str = strdup(alpm_list_getdata(i));
char *ptr = index(str, '\t');
if(ptr == NULL) {
- FREE(str);
+ free(str);
continue;
}
*ptr = '\0';
@@ -172,48 +183,39 @@ void dump_pkg_backups(pmpkg_t *pkg)
snprintf(path, PATH_MAX-1, "%s%s", root, str);
/* if we find the file, calculate checksums, otherwise it is missing */
if(!stat(path, &buf)) {
- char *sum;
char *md5sum = alpm_get_md5sum(path);
- char *sha1sum = alpm_get_sha1sum(path);
- if(md5sum == NULL || sha1sum == NULL) {
- ERR(NL, _("error calculating checksums for %s\n"), path);
- FREE(str);
+ if(md5sum == NULL) {
+ fprintf(stderr, _("error: could not calculate checksums for %s\n"),
+ path);
+ free(str);
continue;
}
- /* TODO Is this a good way to check type of backup stored?
- * We aren't storing it anywhere in the database. */
- if (strlen(ptr) == 32) {
- sum = md5sum;
- } else { /*if (strlen(ptr) == 40) */
- sum = sha1sum;
- }
+
/* if checksums don't match, file has been modified */
- if (strcmp(sum, ptr)) {
+ if (strcmp(md5sum, ptr)) {
printf(_("MODIFIED\t%s\n"), path);
} else {
printf(_("Not Modified\t%s\n"), path);
}
- FREE(md5sum);
- FREE(sha1sum);
+ free(md5sum);
} else {
printf(_("MISSING\t\t%s\n"), path);
}
- FREE(str);
+ free(str);
}
} else {
/* package had no backup files */
printf(_("(none)\n"));
}
}
-
+
/* List all files contained in a package
*/
void dump_pkg_files(pmpkg_t *pkg)
{
const char *pkgname, *root, *filestr;
alpm_list_t *i, *pkgfiles;
- struct stat buf;
char path[PATH_MAX];
pkgname = alpm_pkg_get_name(pkg);
@@ -224,11 +226,7 @@ void dump_pkg_files(pmpkg_t *pkg)
filestr = (char*)alpm_list_getdata(i);
/* build a path so we can stat the filename */
snprintf(path, PATH_MAX-1, "%s%s", root, filestr);
- if(!stat(path, &buf) && S_ISDIR(buf.st_mode)) {
- /* if we stat it and it is a dir, don't print */
- } else {
- fprintf(stdout, "%s %s\n", pkgname, path);
- }
+ fprintf(stdout, "%s %s\n", pkgname, path);
}
fflush(stdout);
@@ -243,7 +241,7 @@ void dump_pkg_changelog(char *clfile, const char *pkgname)
if((fp = fopen(clfile, "r")) == NULL)
{
- ERR(NL, _("No changelog available for '%s'.\n"), pkgname);
+ fprintf(stderr, _("error: no changelog available for '%s'.\n"), pkgname);
return;
}
else
diff --git a/src/pacman/package.h b/src/pacman/package.h
index 965ecee5..0e4bb0fa 100644
--- a/src/pacman/package.h
+++ b/src/pacman/package.h
@@ -1,8 +1,8 @@
/*
* package.h
- *
+ *
* 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef _PM_PACKAGE_H
@@ -30,8 +30,6 @@ void dump_pkg_backups(pmpkg_t *pkg);
void dump_pkg_files(pmpkg_t *pkg);
void dump_pkg_changelog(char *clfile, const char *pkgname);
-#define FREEPKG(p) { alpm_pkg_free(p); p = NULL; }
-
#endif /* _PM_PACKAGE_H */
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c
index 5adafb14..77527531 100644
--- a/src/pacman/pacman.c
+++ b/src/pacman/pacman.c
@@ -1,8 +1,8 @@
/*
* pacman.c
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,127 +15,108 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "config.h"
-#include <stdlib.h>
+#include <stdlib.h> /* atoi */
#include <stdio.h>
#include <limits.h>
#include <getopt.h>
#include <string.h>
#include <signal.h>
-#include <sys/types.h>
-#include <sys/stat.h>
#include <unistd.h>
-#include <libintl.h>
-#include <locale.h>
-#if defined(__APPLE__)
-#include <malloc/malloc.h>
-#elif defined(__OpenBSD__) || defined(__APPLE__)
-#include <sys/malloc.h>
-#elif defined(CYGWIN)
-#include <libgen.h> /* basename */
-#else
-#include <mcheck.h> /* debug */
+#include <sys/types.h>
+#include <sys/utsname.h> /* uname */
+#include <locale.h> /* setlocale */
+#include <time.h> /* time_t */
+#if defined(PACMAN_DEBUG) && defined(HAVE_MCHECK_H)
+#include <mcheck.h> /* debug tracing (mtrace) */
#endif
-#include <time.h>
+/* alpm */
#include <alpm.h>
#include <alpm_list.h>
/* pacman */
+#include "pacman.h"
#include "util.h"
-#include "log.h"
-#include "downloadprog.h"
+#include "callback.h"
#include "conf.h"
#include "package.h"
-#include "add.h"
-#include "remove.h"
-#include "upgrade.h"
-#include "query.h"
-#include "sync.h"
-#include "deptest.h"
-
-#if defined(__OpenBSD__) || defined(__APPLE__)
-#define BSD
-#endif
-
-/* Operations */
-enum {
- PM_OP_MAIN = 1,
- PM_OP_ADD,
- PM_OP_REMOVE,
- PM_OP_UPGRADE,
- PM_OP_QUERY,
- PM_OP_SYNC,
- PM_OP_DEPTEST
-};
-
-config_t *config;
pmdb_t *db_local;
/* list of targets specified on command line */
static alpm_list_t *pm_targets;
-/* Display usage/syntax for the specified operation.
- * op: the operation code requested
- * myname: basename(argv[0])
+/** Display usage/syntax for the specified operation.
+ * @param op the operation code requested
+ * @param myname basename(argv[0])
*/
-static void usage(int op, char *myname)
+static void usage(int op, const char * const myname)
{
+ /* prefetch some strings for usage below, which moves a lot of calls
+ * out of gettext. */
+ char const * const str_opt = _("options");
+ char const * const str_file = _("file");
+ char const * const str_pkg = _("package");
+ char const * const str_usg = _("usage");
+ char const * const str_opr = _("operation");
+
if(op == PM_OP_MAIN) {
- printf(_("usage: %s {-h --help}\n"), myname);
- printf(_(" %s {-V --version}\n"), myname);
- printf(_(" %s {-A --add} [options] <file>\n"), myname);
- printf(_(" %s {-F --freshen} [options] <file>\n"), myname);
- printf(_(" %s {-Q --query} [options] [package]\n"), myname);
- printf(_(" %s {-R --remove} [options] <package>\n"), myname);
- printf(_(" %s {-S --sync} [options] [package]\n"), myname);
- printf(_(" %s {-U --upgrade} [options] <file>\n"), myname);
+ printf("%s: %s <%s> [...]\n", str_usg, myname, str_opr);
+ printf("%s:\n", str_opt);
+ printf(" %s {-h --help}\n", myname);
+ printf(" %s {-V --version}\n", myname);
+ printf(" %s {-A --add} [%s] <%s>\n", myname, str_opt, str_file);
+ printf(" %s {-Q --query} [%s] [%s]\n", myname, str_opt, str_pkg);
+ printf(" %s {-R --remove} [%s] <%s>\n", myname, str_opt, str_pkg);
+ printf(" %s {-S --sync} [%s] [%s]\n", myname, str_opt, str_pkg);
+ printf(" %s {-U --upgrade} [%s] <%s>\n", myname, str_opt, str_file);
printf(_("\nuse '%s --help' with other options for more syntax\n"), myname);
} else {
if(op == PM_OP_ADD) {
- printf(_("usage: %s {-A --add} [options] <file>\n"), myname);
- printf(_("options:\n"));
+ printf("%s: %s {-A --add} [%s] <%s>\n", str_usg, myname, str_opt, str_file);
+ printf("%s:\n", str_opt);
+ printf(_(" --asdeps install packages as non-explicitly installed\n"));
printf(_(" -d, --nodeps skip dependency checks\n"));
printf(_(" -f, --force force install, overwrite conflicting files\n"));
} else if(op == PM_OP_REMOVE) {
- printf(_("usage: %s {-R --remove} [options] <package>\n"), myname);
- printf(_("options:\n"));
+ printf("%s: %s {-R --remove} [%s] <%s>\n", str_usg, myname, str_opt, str_pkg);
+ printf("%s:\n", str_opt);
printf(_(" -c, --cascade remove packages and all packages that depend on them\n"));
printf(_(" -d, --nodeps skip dependency checks\n"));
printf(_(" -k, --dbonly only remove database entry, do not remove files\n"));
printf(_(" -n, --nosave remove configuration files as well\n"));
printf(_(" -s, --recursive remove dependencies also (that won't break packages)\n"));
} else if(op == PM_OP_UPGRADE) {
- if(config->flags & PM_TRANS_FLAG_FRESHEN) {
- printf(_("usage: %s {-F --freshen} [options] <file>\n"), myname);
- } else {
- printf(_("usage: %s {-U --upgrade} [options] <file>\n"), myname);
- }
- printf(_("options:\n"));
+ printf("%s: %s {-U --upgrade} [%s] <%s>\n", str_usg, myname, str_opt, str_file);
+ printf("%s:\n", str_opt);
+ printf(_(" --asdeps install packages as non-explicitly installed\n"));
printf(_(" -d, --nodeps skip dependency checks\n"));
printf(_(" -f, --force force install, overwrite conflicting files\n"));
} else if(op == PM_OP_QUERY) {
- printf(_("usage: %s {-Q --query} [options] [package]\n"), myname);
- printf(_("options:\n"));
+ printf("%s: %s {-Q --query} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
+ printf("%s:\n", str_opt);
printf(_(" -c, --changelog view the changelog of a package\n"));
- printf(_(" -e, --orphans list all packages installed as dependencies but no longer\n"));
- printf(_(" required by any package\n"));
+ printf(_(" -d, --deps list all packages installed as dependencies\n"));
+ printf(_(" -e, --explicit list all packages explicitly installed\n"));
printf(_(" -g, --groups view all members of a package group\n"));
- printf(_(" -i, --info view package information\n"));
+ printf(_(" -i, --info view package information (-ii for backup files)\n"));
printf(_(" -l, --list list the contents of the queried package\n"));
printf(_(" -m, --foreign list installed packages not found in sync db(s)\n"));
printf(_(" -o, --owns <file> query the package that owns <file>\n"));
printf(_(" -p, --file <package> query a package file instead of the database\n"));
printf(_(" -s, --search <regex> search locally-installed packages for matching strings\n"));
+ printf(_(" -t, --orphans list all packages not required by any package\n"));
printf(_(" -u, --upgrades list all packages that can be upgraded\n"));
+ printf(_(" -q --quiet show less information for query and search\n"));
} else if(op == PM_OP_SYNC) {
- printf(_("usage: %s {-S --sync} [options] [package]\n"), myname);
- printf(_("options:\n"));
+ printf("%s: %s {-S --sync} [%s] [%s]\n", str_usg, myname, str_opt, str_pkg);
+ printf("%s:\n", str_opt);
+ printf(_(" --asdeps install packages as non-explicitly installed\n"));
printf(_(" -c, --clean remove old packages from cache directory (-cc for all)\n"));
printf(_(" -d, --nodeps skip dependency checks\n"));
printf(_(" -e, --dependsonly install dependencies only\n"));
@@ -148,13 +129,17 @@ static void usage(int op, char *myname)
printf(_(" -u, --sysupgrade upgrade all packages that are out of date\n"));
printf(_(" -w, --downloadonly download packages but do not install/upgrade anything\n"));
printf(_(" -y, --refresh download fresh package databases from the server\n"));
+ printf(_(" --needed only install outdated or not yet installed packages\n"));
printf(_(" --ignore <pkg> ignore a package upgrade (can be used more than once)\n"));
+ printf(_(" --ignoregroup <grp>\n"
+ " ignore a group upgrade (can be used more than once)\n"));
+ printf(_(" -q --quiet show less information for query and search\n"));
}
printf(_(" --config <path> set an alternate configuration file\n"));
+ printf(_(" --logfile <path> set an alternate log file\n"));
printf(_(" --noconfirm do not ask for any confirmation\n"));
- printf(_(" --ask <number> pre-specify answers for questions (see manpage)\n"));
printf(_(" --noprogressbar do not show a progress bar when downloading files\n"));
- printf(_(" --noscriptlet do not execute the install scriptlet if there is any\n"));
+ printf(_(" --noscriptlet do not execute the install scriptlet if one exists\n"));
printf(_(" -v, --verbose be verbose\n"));
printf(_(" -r, --root <path> set an alternate installation root\n"));
printf(_(" -b, --dbpath <path> set an alternate database location\n"));
@@ -162,56 +147,148 @@ static void usage(int op, char *myname)
}
}
-/* Version
+/** Output pacman version and copyright.
*/
-static void version()
+static void version(void)
{
printf("\n");
printf(" .--. Pacman v%s - libalpm v%s\n", PACKAGE_VERSION, LIB_VERSION);
printf("/ _.-' .-. .-. .-. Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>\n");
printf("\\ '-. '-' '-' '-'\n");
- printf(" '--' \n");
- printf(_(" This program may be freely redistributed under\n"));
- printf(_(" the terms of the GNU General Public License\n"));
+ printf(" '--'\n");
+ printf(_(" This program may be freely redistributed under\n"
+ " the terms of the GNU General Public License\n"));
printf("\n");
}
+/** Sets up gettext localization. Safe to call multiple times.
+ */
+/* Inspired by the monotone function localize_monotone. */
+#if defined(ENABLE_NLS)
+static void localize(void)
+{
+ static int init = 0;
+ if (!init) {
+ setlocale(LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ init = 1;
+ }
+}
+#endif
+
+/** Set user agent environment variable.
+ */
+static void setuseragent(void)
+{
+ const char *pacman = "Pacman/" PACKAGE_VERSION;
+ const char *libalpm = "libalpm/" LIB_VERSION;
+ char agent[101];
+ struct utsname un;
+
+ uname(&un);
+ snprintf(agent, 100, "%s (%s %s %s; %s) %s", pacman, un.sysname,
+ un.machine, un.release, setlocale(LC_MESSAGES, NULL), libalpm);
+ setenv("HTTP_USER_AGENT", agent, 0);
+}
+
+/** Catches thrown signals. Performs necessary cleanup to ensure database is
+ * in a consistant state.
+ * @param signum the thrown signal
+ */
static void cleanup(int signum)
{
if(signum==SIGSEGV)
{
- fprintf(stderr, "Internal pacman error: Segmentation fault\n"
- "Please submit a full bug report, with the given package if appropriate.\n");
+ /* write a log message and write to stderr */
+ pm_printf(PM_LOG_ERROR, "segmentation fault\n");
+ pm_fprintf(stderr, PM_LOG_ERROR, "Internal pacman error: Segmentation fault.\n"
+ "Please submit a full bug report with --debug if appropriate.\n");
exit(signum);
- } else if((signum == SIGINT) && (alpm_trans_release() == -1)
- && (pm_errno == PM_ERR_TRANS_COMMITING)) {
- return;
- }
- if(signum != 0) {
- /* TODO why is this here? */
- fprintf(stderr, "\n");
+ } else if((signum == SIGINT)) {
+ if(alpm_trans_interrupt() == 0) {
+ /* a transaction is being interrupted, don't exit pacman yet. */
+ return;
+ } else {
+ /* no commiting transaction, we can release it now and then exit pacman */
+ alpm_trans_release();
+ }
}
/* free alpm library resources */
if(alpm_release() == -1) {
- ERR(NL, "%s\n", alpm_strerror(pm_errno));
+ pm_printf(PM_LOG_ERROR, alpm_strerrorlast());
}
/* free memory */
FREELIST(pm_targets);
- FREECONF(config);
-
- /* This fixes up any missing newlines (neednl) */
- MSG(NL, "");
+ if(config) {
+ config_free(config);
+ config = NULL;
+ }
exit(signum);
}
-/* Parse command-line arguments for each operation
- * argc: argc
- * argv: argv
- *
- * Returns: 0 on success, 1 on error
+/** Sets all libalpm required paths in one go. Called after the command line and
+ * inital config file parsing. Once this is complete, we can see if any paths were
+ * defined. If a rootdir was defined and nothing else, we want all of our paths to
+ * live under the rootdir that was specified. Safe to call multiple times (will only
+ * do anything the first time).
+ */
+static void setlibpaths(void)
+{
+ static int init = 0;
+ if (!init) {
+ int ret = 0;
+
+ pm_printf(PM_LOG_DEBUG, "setlibpaths() called\n");
+ if(config->rootdir) {
+ char path[PATH_MAX];
+ ret = alpm_option_set_root(config->rootdir);
+ if(ret != 0) {
+ pm_printf(PM_LOG_ERROR, _("problem setting rootdir '%s' (%s)\n"),
+ config->rootdir, alpm_strerrorlast());
+ cleanup(ret);
+ }
+ if(!config->dbpath) {
+ snprintf(path, PATH_MAX, "%s%s", alpm_option_get_root(), DBPATH);
+ config->dbpath = strdup(path);
+ }
+ if(!config->logfile) {
+ snprintf(path, PATH_MAX, "%s%s", alpm_option_get_root(), LOGFILE);
+ ret = alpm_option_set_dbpath(path);
+ config->logfile = strdup(path);
+ }
+ }
+ if(config->dbpath) {
+ ret = alpm_option_set_dbpath(config->dbpath);
+ if(ret != 0) {
+ pm_printf(PM_LOG_ERROR, _("problem setting dbpath '%s' (%s)\n"),
+ config->dbpath, alpm_strerrorlast());
+ cleanup(ret);
+ }
+ }
+ if(config->logfile) {
+ ret = alpm_option_set_logfile(config->logfile);
+ if(ret != 0) {
+ pm_printf(PM_LOG_ERROR, _("problem setting logfile '%s' (%s)\n"),
+ config->logfile, alpm_strerrorlast());
+ cleanup(ret);
+ }
+ }
+
+ /* add a default cachedir if one wasn't specified */
+ if(alpm_option_get_cachedirs() == NULL) {
+ alpm_option_add_cachedir(CACHEDIR);
+ }
+ }
+}
+
+/** Parse command-line arguments for each operation.
+ * @param argc argc
+ * @param argv argv
+ * @return 0 on success, 1 on error
*/
static int parseargs(int argc, char *argv[])
{
@@ -220,7 +297,6 @@ static int parseargs(int argc, char *argv[])
static struct option opts[] =
{
{"add", no_argument, 0, 'A'},
- {"freshen", no_argument, 0, 'F'},
{"query", no_argument, 0, 'Q'},
{"remove", no_argument, 0, 'R'},
{"sync", no_argument, 0, 'S'},
@@ -232,22 +308,25 @@ static int parseargs(int argc, char *argv[])
{"changelog", no_argument, 0, 'c'},
{"clean", no_argument, 0, 'c'},
{"nodeps", no_argument, 0, 'd'},
+ {"deps", no_argument, 0, 'd'},
{"dependsonly",no_argument, 0, 'e'},
- {"orphans", no_argument, 0, 'e'},
+ {"explicit", no_argument, 0, 'e'},
{"force", no_argument, 0, 'f'},
{"groups", no_argument, 0, 'g'},
{"help", no_argument, 0, 'h'},
{"info", no_argument, 0, 'i'},
{"dbonly", no_argument, 0, 'k'},
{"list", no_argument, 0, 'l'},
- {"nosave", no_argument, 0, 'n'},
{"foreign", no_argument, 0, 'm'},
+ {"nosave", no_argument, 0, 'n'},
{"owns", no_argument, 0, 'o'},
{"file", no_argument, 0, 'p'},
{"print-uris", no_argument, 0, 'p'},
+ {"quiet", no_argument, 0, 'q'},
{"root", required_argument, 0, 'r'},
{"recursive", no_argument, 0, 's'},
{"search", no_argument, 0, 's'},
+ {"orphans", no_argument, 0, 't'},
{"upgrades", no_argument, 0, 'u'},
{"sysupgrade", no_argument, 0, 'u'},
{"verbose", no_argument, 0, 'v'},
@@ -257,16 +336,19 @@ static int parseargs(int argc, char *argv[])
{"config", required_argument, 0, 1001},
{"ignore", required_argument, 0, 1002},
{"debug", optional_argument, 0, 1003},
- {"noprogressbar", no_argument, 0, 1004},
+ {"noprogressbar", no_argument, 0, 1004},
{"noscriptlet", no_argument, 0, 1005},
- {"ask", required_argument, 0, 1006},
{"cachedir", required_argument, 0, 1007},
+ {"asdeps", no_argument, 0, 1008},
+ {"logfile", required_argument, 0, 1009},
+ {"ignoregroup", required_argument, 0, 1010},
+ {"needed", no_argument, 0, 1011},
{0, 0, 0, 0}
};
- struct stat st;
- unsigned short logmask;
- while((opt = getopt_long(argc, argv, "ARUFQSTr:b:vkhscVfmnoldepiuwyg", opts, &option_index))) {
+ while((opt = getopt_long(argc, argv, "ARUFQSTr:b:vkhscVfmnoldepqituwygz", opts, &option_index))) {
+ alpm_list_t *list = NULL, *item = NULL; /* lists for splitting strings */
+
if(opt < 0) {
break;
}
@@ -277,51 +359,62 @@ static int parseargs(int argc, char *argv[])
if(config->configfile) {
free(config->configfile);
}
- #if defined(__OpenBSD__) || defined(__APPLE__)
- config->configfile = strdup(optarg);
- #else
config->configfile = strndup(optarg, PATH_MAX);
- #endif
break;
- case 1002: alpm_option_add_ignorepkg(strdup(optarg)); break;
+ case 1002:
+ list = strsplit(optarg, ',');
+ for(item = list; item; item = alpm_list_next(item)) {
+ alpm_option_add_ignorepkg((char *)alpm_list_getdata(item));
+ }
+ FREELIST(list);
+ break;
case 1003:
/* debug levels are made more 'human readable' than using a raw logmask
- * here, we will ALWAYS set error and warning for now, though perhaps a
+ * here, error and warning are set in config_new, though perhaps a
* --quiet option will remove these later */
- logmask = PM_LOG_ERROR | PM_LOG_WARNING;
-
if(optarg) {
unsigned short debug = atoi(optarg);
switch(debug) {
- case 3: logmask |= PM_LOG_FUNCTION; /* fall through */
- case 2: logmask |= PM_LOG_DOWNLOAD; /*fall through */
- case 1: logmask |= PM_LOG_DEBUG; break;
+ case 2:
+ config->logmask |= PM_LOG_FUNCTION; /* fall through */
+ case 1:
+ config->logmask |= PM_LOG_DEBUG;
+ break;
default:
- ERR(NL, _("'%s' is not a valid debug level"), optarg);
+ pm_printf(PM_LOG_ERROR, _("'%s' is not a valid debug level\n"),
+ optarg);
return(1);
}
} else {
- logmask |= PM_LOG_DEBUG;
+ config->logmask |= PM_LOG_DEBUG;
}
/* progress bars get wonky with debug on, shut them off */
config->noprogressbar = 1;
- alpm_option_set_logmask(logmask);
break;
case 1004: config->noprogressbar = 1; break;
case 1005: config->flags |= PM_TRANS_FLAG_NOSCRIPTLET; break;
- case 1006: config->noask = 1; config->ask = atoi(optarg); break;
case 1007:
- if(stat(optarg, &st) == -1 || !S_ISDIR(st.st_mode)) {
- ERR(NL, _("'%s' is not a valid cache directory\n"), optarg);
+ if(alpm_option_add_cachedir(optarg) != 0) {
+ pm_printf(PM_LOG_ERROR, _("problem adding cachedir '%s' (%s)\n"),
+ optarg, alpm_strerrorlast());
return(1);
}
- alpm_option_set_cachedir(optarg);
break;
- case 'A': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_ADD); break;
- case 'F':
- config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_UPGRADE);
- config->flags |= PM_TRANS_FLAG_FRESHEN;
+ case 1008:
+ config->flags |= PM_TRANS_FLAG_ALLDEPS;
+ break;
+ case 1009:
+ config->logfile = strdup(optarg);
break;
+ case 1010:
+ list = strsplit(optarg, ',');
+ for(item = list; item; item = alpm_list_next(item)) {
+ alpm_option_add_ignoregrp((char *)alpm_list_getdata(item));
+ }
+ FREELIST(list);
+ break;
+ case 1011: config->flags |= PM_TRANS_FLAG_NEEDED; break;
+ case 'A': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_ADD); break;
case 'Q': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_QUERY); break;
case 'R': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_REMOVE); break;
case 'S': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_SYNC); break;
@@ -329,20 +422,19 @@ static int parseargs(int argc, char *argv[])
case 'U': config->op = (config->op != PM_OP_MAIN ? 0 : PM_OP_UPGRADE); break;
case 'V': config->version = 1; break;
case 'b':
- if(stat(optarg, &st) == -1 || !S_ISDIR(st.st_mode)) {
- ERR(NL, _("'%s' is not a valid db path\n"), optarg);
- return(1);
- }
- alpm_option_set_dbpath(optarg);
+ config->dbpath = strdup(optarg);
break;
case 'c':
(config->op_s_clean)++;
config->flags |= PM_TRANS_FLAG_CASCADE;
config->op_q_changelog = 1;
break;
- case 'd': config->flags |= PM_TRANS_FLAG_NODEPS; break;
+ case 'd':
+ config->op_q_deps = 1;
+ config->flags |= PM_TRANS_FLAG_NODEPS;
+ break;
case 'e':
- config->op_q_orphans = 1;
+ config->op_q_explicit = 1;
config->flags |= PM_TRANS_FLAG_DEPENDSONLY;
break;
case 'f': config->flags |= PM_TRANS_FLAG_FORCE; break;
@@ -358,18 +450,20 @@ static int parseargs(int argc, char *argv[])
config->op_q_isfile = 1;
config->flags |= PM_TRANS_FLAG_PRINTURIS;
break;
+ case 'q':
+ config->quiet = 1;
+ break;
case 'r':
- if(stat(optarg, &st) == -1 || !S_ISDIR(st.st_mode)) {
- ERR(NL, _("'%s' is not a valid root path\n"), optarg);
- return(1);
- }
- alpm_option_set_root(optarg);
+ config->rootdir = strdup(optarg);
break;
case 's':
config->op_s_search = 1;
config->op_q_search = 1;
config->flags |= PM_TRANS_FLAG_RECURSE;
break;
+ case 't':
+ config->op_q_orphans = 1;
+ break;
case 'u':
config->op_s_upgrade = 1;
config->op_q_upgrade = 1;
@@ -387,12 +481,12 @@ static int parseargs(int argc, char *argv[])
}
if(config->op == 0) {
- ERR(NL, _("only one operation may be used at a time\n"));
+ pm_printf(PM_LOG_ERROR, _("only one operation may be used at a time\n"));
return(1);
}
if(config->help) {
- usage(config->op, basename(argv[0]));
+ usage(config->op, mbasename(argv[0]));
return(2);
}
if(config->version) {
@@ -409,143 +503,380 @@ static int parseargs(int argc, char *argv[])
return(0);
}
+/** Add repeating options such as NoExtract, NoUpgrade, etc to libalpm
+ * settings. Refactored out of the parseconfig code since all of them did
+ * the exact same thing and duplicated code.
+ * @param ptr a pointer to the start of the multiple options
+ * @param option the string (friendly) name of the option, used for messages
+ * @param optionfunc a function pointer to an alpm_option_add_* function
+ */
+static void setrepeatingoption(const char *ptr, const char *option,
+ void (*optionfunc)(const char*))
+{
+ char *p = (char*)ptr;
+ char *q;
+
+ while((q = strchr(p, ' '))) {
+ *q = '\0';
+ (*optionfunc)(p);
+ pm_printf(PM_LOG_DEBUG, "config: %s: %s\n", option, p);
+ p = q;
+ p++;
+ }
+ (*optionfunc)(p);
+ pm_printf(PM_LOG_DEBUG, "config: %s: %s\n", option, p);
+}
+
+/* The real parseconfig. Called with a null section argument by the publicly
+ * visible parseconfig so we can recall from within ourself on an include */
+static int _parseconfig(const char *file, const char *givensection,
+ pmdb_t * const givendb)
+{
+ FILE *fp = NULL;
+ char line[PATH_MAX+1];
+ int linenum = 0;
+ char *ptr, *section = NULL;
+ pmdb_t *db = NULL;
+
+ pm_printf(PM_LOG_DEBUG, "config: attempting to read file %s\n", file);
+ fp = fopen(file, "r");
+ if(fp == NULL) {
+ pm_printf(PM_LOG_ERROR, _("config file %s could not be read.\n"), file);
+ return(1);
+ }
+
+ /* if we are passed a section, use it as our starting point */
+ if(givensection != NULL) {
+ section = strdup(givensection);
+ }
+ /* if we are passed a db, use it as our starting point */
+ if(givendb != NULL) {
+ db = givendb;
+ }
+
+ while(fgets(line, PATH_MAX, fp)) {
+ linenum++;
+ strtrim(line);
+
+ /* ignore whole line and end of line comments */
+ if(strlen(line) == 0 || line[0] == '#') {
+ continue;
+ }
+ if((ptr = strchr(line, '#'))) {
+ *ptr = '\0';
+ }
+
+ if(line[0] == '[' && line[strlen(line)-1] == ']') {
+ /* new config section, skip the '[' */
+ ptr = line;
+ ptr++;
+ if(section) {
+ free(section);
+ }
+ section = strdup(ptr);
+ section[strlen(section)-1] = '\0';
+ pm_printf(PM_LOG_DEBUG, "config: new section '%s'\n", section);
+ if(!strlen(section)) {
+ pm_printf(PM_LOG_ERROR, _("config file %s, line %d: bad section name.\n"),
+ file, linenum);
+ return(1);
+ }
+ /* if we are not looking at the options section, register a db and also
+ * ensure we have set all of our library paths as the library is too stupid
+ * at the moment to do lazy opening of the databases */
+ if(strcmp(section, "options") != 0) {
+ setlibpaths();
+ db = alpm_db_register_sync(section);
+ }
+ } else {
+ /* directive */
+ char *key, *upperkey;
+ /* strsep modifies the 'line' string: 'key \0 ptr' */
+ key = line;
+ ptr = line;
+ strsep(&ptr, "=");
+ strtrim(key);
+ strtrim(ptr);
+
+ if(key == NULL) {
+ pm_printf(PM_LOG_ERROR, _("config file %s, line %d: syntax error in config file- missing key.\n"),
+ file, linenum);
+ return(1);
+ }
+ /* For each directive, compare to the uppercase and camelcase string.
+ * This prevents issues with certain locales where characters don't
+ * follow the toupper() rules we may expect, e.g. tr_TR where i != I.
+ */
+ upperkey = strtoupper(strdup(key));
+ if(section == NULL && (strcmp(key, "Include") == 0 || strcmp(upperkey, "INCLUDE") == 0)) {
+ pm_printf(PM_LOG_ERROR, _("config file %s, line %d: 'Include' directive must belong to a section.\n"),
+ file, linenum);
+ return(1);
+ }
+ if(ptr == NULL && strcmp(section, "options") == 0) {
+ /* directives without settings, all in [options] */
+ if(strcmp(key, "NoPassiveFTP") == 0 || strcmp(upperkey, "NOPASSIVEFTP") == 0) {
+ alpm_option_set_nopassiveftp(1);
+ pm_printf(PM_LOG_DEBUG, "config: nopassiveftp\n");
+ } else if(strcmp(key, "UseSyslog") == 0 || strcmp(upperkey, "USESYSLOG") == 0) {
+ alpm_option_set_usesyslog(1);
+ pm_printf(PM_LOG_DEBUG, "config: usesyslog\n");
+ } else if(strcmp(key, "ILoveCandy") == 0 || strcmp(upperkey, "ILOVECANDY") == 0) {
+ config->chomp = 1;
+ pm_printf(PM_LOG_DEBUG, "config: chomp\n");
+ } else if(strcmp(key, "UseColor") == 0 || strcmp(upperkey, "USECOLOR") == 0) {
+ config->usecolor = 1;
+ pm_printf(PM_LOG_DEBUG, "config: usecolor\n");
+ } else if(strcmp(key, "ShowSize") == 0 || strcmp(upperkey, "SHOWSIZE") == 0) {
+ config->showsize = 1;
+ pm_printf(PM_LOG_DEBUG, "config: showsize\n");
+ } else if(strcmp(key, "UseDelta") == 0 || strcmp(upperkey, "USEDELTA") == 0) {
+ alpm_option_set_usedelta(1);
+ pm_printf(PM_LOG_DEBUG, "config: usedelta\n");
+ } else if(strcmp(key, "TotalDownload") == 0 || strcmp(upperkey, "TOTALDOWNLOAD") == 0) {
+ config->totaldownload = 1;
+ pm_printf(PM_LOG_DEBUG, "config: totaldownload\n");
+ } else {
+ pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"),
+ file, linenum, key);
+ return(1);
+ }
+ } else {
+ /* directives with settings */
+ if(strcmp(key, "Include") == 0 || strcmp(upperkey, "INCLUDE") == 0) {
+ int ret;
+ pm_printf(PM_LOG_DEBUG, "config: including %s\n", ptr);
+ ret = _parseconfig(ptr, section, db);
+ if(ret != 0) {
+ return(ret);
+ }
+ } else if(strcmp(section, "options") == 0) {
+ if(strcmp(key, "NoUpgrade") == 0
+ || strcmp(upperkey, "NOUPGRADE") == 0) {
+ setrepeatingoption(ptr, "NoUpgrade", alpm_option_add_noupgrade);
+ } else if(strcmp(key, "NoExtract") == 0
+ || strcmp(upperkey, "NOEXTRACT") == 0) {
+ setrepeatingoption(ptr, "NoExtract", alpm_option_add_noextract);
+ } else if(strcmp(key, "IgnorePkg") == 0
+ || strcmp(upperkey, "IGNOREPKG") == 0) {
+ setrepeatingoption(ptr, "IgnorePkg", alpm_option_add_ignorepkg);
+ } else if(strcmp(key, "IgnoreGroup") == 0
+ || strcmp(upperkey, "IGNOREGROUP") == 0) {
+ setrepeatingoption(ptr, "IgnoreGroup", alpm_option_add_ignoregrp);
+ } else if(strcmp(key, "HoldPkg") == 0
+ || strcmp(upperkey, "HOLDPKG") == 0) {
+ setrepeatingoption(ptr, "HoldPkg", alpm_option_add_holdpkg);
+ } else if(strcmp(key, "DBPath") == 0 || strcmp(upperkey, "DBPATH") == 0) {
+ /* don't overwrite a path specified on the command line */
+ if(!config->dbpath) {
+ config->dbpath = strdup(ptr);
+ pm_printf(PM_LOG_DEBUG, "config: dbpath: %s\n", ptr);
+ }
+ } else if(strcmp(key, "CacheDir") == 0 || strcmp(upperkey, "CACHEDIR") == 0) {
+ if(alpm_option_add_cachedir(ptr) != 0) {
+ pm_printf(PM_LOG_ERROR, _("problem adding cachedir '%s' (%s)\n"),
+ ptr, alpm_strerrorlast());
+ return(1);
+ }
+ pm_printf(PM_LOG_DEBUG, "config: cachedir: %s\n", ptr);
+ } else if(strcmp(key, "RootDir") == 0 || strcmp(upperkey, "ROOTDIR") == 0) {
+ /* don't overwrite a path specified on the command line */
+ if(!config->rootdir) {
+ config->rootdir = strdup(ptr);
+ pm_printf(PM_LOG_DEBUG, "config: rootdir: %s\n", ptr);
+ }
+ } else if (strcmp(key, "LogFile") == 0 || strcmp(upperkey, "LOGFILE") == 0) {
+ if(!config->logfile) {
+ config->logfile = strdup(ptr);
+ pm_printf(PM_LOG_DEBUG, "config: logfile: %s\n", ptr);
+ }
+ } else if (strcmp(key, "XferCommand") == 0 || strcmp(upperkey, "XFERCOMMAND") == 0) {
+ alpm_option_set_xfercommand(ptr);
+ pm_printf(PM_LOG_DEBUG, "config: xfercommand: %s\n", ptr);
+ } else if (strcmp(key, "UpgradeDelay") == 0 || strcmp(upperkey, "UPGRADEDELAY") == 0) {
+ /* The config value is in days, we use seconds */
+ time_t ud = atol(ptr) * 60 * 60 *24;
+ alpm_option_set_upgradedelay(ud);
+ pm_printf(PM_LOG_DEBUG, "config: upgradedelay: %d\n", (int)ud);
+ } else {
+ pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"),
+ file, linenum, key);
+ return(1);
+ }
+ } else if(strcmp(key, "Server") == 0 || strcmp(upperkey, "SERVER") == 0) {
+ /* let's attempt a replacement for the current repo */
+ char *server = strreplace(ptr, "$repo", section);
+
+ if(alpm_db_setserver(db, server) != 0) {
+ /* pm_errno is set by alpm_db_setserver */
+ return(1);
+ }
+
+ free(server);
+ } else {
+ pm_printf(PM_LOG_ERROR, _("config file %s, line %d: directive '%s' not recognized.\n"),
+ file, linenum, key);
+ return(1);
+ }
+ }
+ free(upperkey);
+ }
+ }
+ fclose(fp);
+ if(section){
+ free(section);
+ }
+
+ /* call setlibpaths here to ensure we have called it at least once */
+ setlibpaths();
+ pm_printf(PM_LOG_DEBUG, "config: finished parsing %s\n", file);
+ return(0);
+}
+
+/** Parse a configuration file.
+ * @param file path to the config file.
+ * @return 0 on success, non-zero on error
+ */
+int parseconfig(const char *file)
+{
+ /* call the real parseconfig function with a null section & db argument */
+ return(_parseconfig(file, NULL, NULL));
+}
+
+/** Main function.
+ * @param argc argc
+ * @param argv argv
+ * @return A return code indicating success, failure, etc.
+ */
int main(int argc, char *argv[])
{
int ret = 0;
- char *lang = NULL;
-#ifndef CYGWIN
- uid_t myuid;
+#if defined(HAVE_GETEUID)
+ /* geteuid undefined in CYGWIN */
+ uid_t myuid = geteuid();
#endif
-#if defined(PACMAN_DEBUG) && !defined(CYGWIN) && !defined(BSD)
+#if defined(PACMAN_DEBUG) && defined(HAVE_MCHECK_H)
/*setenv("MALLOC_TRACE","pacman.mtrace", 0);*/
mtrace();
#endif
+
/* set signal handlers */
signal(SIGINT, cleanup);
signal(SIGTERM, cleanup);
signal(SIGSEGV, cleanup);
/* i18n init */
- lang = setlocale(LC_ALL, "");
- /* if setlocale returns null, the locale was invalid- override it */
- if (lang == NULL) {
- lang = "C";
- setlocale(LC_ALL, "C");
- setenv("LC_ALL", lang, 1);
- MSG(NL, _("warning: current locale is invalid; using default \"C\" locale"));
- }
+#if defined(ENABLE_NLS)
+ localize();
+#endif
- /* workaround for tr_TR */
- if(lang && !strcmp(lang, "tr_TR")) {
- setlocale(LC_CTYPE, "C");
- }
- bindtextdomain("pacman", "/usr/share/locale");
- textdomain("pacman");
+ /* set user agent for downloading */
+ setuseragent();
/* init config data */
config = config_new();
- config->op = PM_OP_MAIN;
+
/* disable progressbar if the output is redirected */
if(!isatty(1)) {
config->noprogressbar = 1;
}
- /* initialize pm library */
+ /* initialize library */
if(alpm_initialize() == -1) {
- ERR(NL, _("failed to initialize alpm library (%s)\n"), alpm_strerror(pm_errno));
- cleanup(1);
+ pm_printf(PM_LOG_ERROR, _("failed to initialize alpm library (%s)\n"),
+ alpm_strerrorlast());
+ cleanup(EXIT_FAILURE);
}
+ /* Setup logging as soon as possible, to print out maximum debugging info */
+ alpm_option_set_logcb(cb_log);
+ alpm_option_set_dlcb(cb_dl_progress);
+ /* define paths to reasonable defaults */
+ alpm_option_set_root(ROOTDIR);
+ alpm_option_set_dbpath(DBPATH);
+ alpm_option_set_logfile(LOGFILE);
+
+ /* Priority of options:
+ * 1. command line
+ * 2. config file
+ * 3. compiled-in defaults
+ * However, we have to parse the command line first because a config file
+ * location can be specified here, so we need to make sure we prefer these
+ * options over the config file coming second.
+ */
+
/* parse the command line */
ret = parseargs(argc, argv);
if(ret != 0) {
- config_free(config);
- exit(ret);
+ cleanup(ret);
}
-#ifndef CYGWIN
- /* see if we're root or not */
- myuid = geteuid();
-#ifndef FAKEROOT
- if(!myuid && getenv("FAKEROOTKEY")) {
- /* fakeroot doesn't count, we're non-root */
- myuid = 99;
+ /* parse the config file */
+ ret = parseconfig(config->configfile);
+ if(ret != 0) {
+ cleanup(ret);
}
-#endif
+#if defined(HAVE_GETEUID)
/* check if we have sufficient permission for the requested operation */
- if(myuid > 0) {
- if(config->op != PM_OP_MAIN && config->op != PM_OP_QUERY && config->op != PM_OP_DEPTEST) {
- if((config->op == PM_OP_SYNC && !config->op_s_sync &&
- (config->op_s_search || config->group || config->op_q_list || config->op_q_info
- || config->flags & PM_TRANS_FLAG_PRINTURIS))
- || (config->op == PM_OP_DEPTEST && config->op_d_resolve)
- || (strcmp(alpm_option_get_root(), PM_ROOT) != 0)) {
- /* special case: PM_OP_SYNC can be used w/ config->op_s_search by any user */
- /* special case: ignore root user check if -r is specified, fall back on
- * normal FS checking */
- } else {
- ERR(NL, _("you cannot perform this operation unless you are root.\n"));
- config_free(config);
- exit(EXIT_FAILURE);
- }
- }
+ if(myuid > 0 && needs_transaction()) {
+ pm_printf(PM_LOG_ERROR, _("you cannot perform this operation unless you are root.\n"));
+ cleanup(EXIT_FAILURE);
}
#endif
- /* Setup logging as soon as possible, to print out maximum debugging info */
- alpm_option_set_logcb(cb_log);
-
- if(config->configfile == NULL) {
- config->configfile = strdup(PACCONF);
- }
-
- if(alpm_parse_config(config->configfile, NULL, "") != 0) {
- ERR(NL, _("failed to parse config (%s)\n"), alpm_strerror(pm_errno));
- cleanup(1);
- }
-
- /* set library parameters */
- alpm_option_set_dlcb(log_progress);
-
if(config->verbose > 0) {
- printf("Root : %s\n", alpm_option_get_root());
- printf("DBPath : %s\n", alpm_option_get_dbpath());
- printf("CacheDir : %s\n", alpm_option_get_cachedir());
- list_display(_("Targets :"), pm_targets);
+ alpm_list_t *i;
+ printf("Root : %s\n", alpm_option_get_root());
+ printf("Conf File : %s\n", config->configfile);
+ printf("DB Path : %s\n", alpm_option_get_dbpath());
+ printf("Cache Dirs: ");
+ for(i = alpm_option_get_cachedirs(); i; i = alpm_list_next(i)) {
+ printf("%s ", (char*)alpm_list_getdata(i));
+ }
+ printf("\n");
+ printf("Lock File : %s\n", alpm_option_get_lockfile());
+ printf("Log File : %s\n", alpm_option_get_logfile());
+ list_display("Targets :", pm_targets);
}
/* Opening local database */
- db_local = alpm_db_register("local");
+ db_local = alpm_db_register_local();
if(db_local == NULL) {
- ERR(NL, _("could not register 'local' database (%s)\n"), alpm_strerror(pm_errno));
- cleanup(1);
- }
-
- if(alpm_list_count(pm_targets) == 0 && !(config->op == PM_OP_QUERY || (config->op == PM_OP_SYNC
- && (config->op_s_sync || config->op_s_upgrade || config->op_s_clean || config->group
- || config->op_q_list)))) {
- ERR(NL, _("no targets specified (use -h for help)\n"));
- cleanup(1);
+ pm_printf(PM_LOG_ERROR, _("could not register 'local' database (%s)\n"),
+ alpm_strerrorlast());
+ cleanup(EXIT_FAILURE);
}
/* start the requested operation */
switch(config->op) {
- case PM_OP_ADD: ret = pacman_add(pm_targets); break;
- case PM_OP_REMOVE: ret = pacman_remove(pm_targets); break;
- case PM_OP_UPGRADE: ret = pacman_upgrade(pm_targets); break;
- case PM_OP_QUERY: ret = pacman_query(pm_targets); break;
- case PM_OP_SYNC: ret = pacman_sync(pm_targets); break;
- case PM_OP_DEPTEST: ret = pacman_deptest(pm_targets); break;
+ case PM_OP_ADD:
+ ret = pacman_add(pm_targets);
+ break;
+ case PM_OP_REMOVE:
+ ret = pacman_remove(pm_targets);
+ break;
+ case PM_OP_UPGRADE:
+ ret = pacman_upgrade(pm_targets);
+ break;
+ case PM_OP_QUERY:
+ ret = pacman_query(pm_targets);
+ break;
+ case PM_OP_SYNC:
+ ret = pacman_sync(pm_targets);
+ break;
+ case PM_OP_DEPTEST:
+ ret = pacman_deptest(pm_targets);
+ break;
default:
- ERR(NL, _("no operation specified (use -h for help)\n"));
- ret = 1;
+ pm_printf(PM_LOG_ERROR, _("no operation specified (use -h for help)\n"));
+ ret = EXIT_FAILURE;
}
cleanup(ret);
/* not reached */
- return(0);
+ return(EXIT_SUCCESS);
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/upgrade.h b/src/pacman/pacman.h
index d26930f0..fbd419d7 100644
--- a/src/pacman/upgrade.h
+++ b/src/pacman/pacman.h
@@ -1,8 +1,8 @@
/*
- * upgrade.h
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ * pacman.h
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,16 +15,27 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
-#ifndef _PM_UPGRADE_H
-#define _PM_UPGRADE_H
+#ifndef _PM_PACMAN_H
+#define _PM_PACMAN_H
#include <alpm_list.h>
+/* add.c, this should merge with upgrade.c */
+int pacman_add(alpm_list_t *targets);
int pacman_upgrade(alpm_list_t *targets);
+/* sync.c */
+int pacman_sync(alpm_list_t *targets);
+/* query.c */
+int pacman_query(alpm_list_t *targets);
+/* remove.c */
+int pacman_remove(alpm_list_t *targets);
+
+/* deptest.c */
+int pacman_deptest(alpm_list_t *targets);
-#endif /* _PM_UPGRADE_H */
+#endif /* _PM_PACMAN_H */
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/po/.gitignore b/src/pacman/po/.gitignore
deleted file mode 100644
index 50a7b2a4..00000000
--- a/src/pacman/po/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-Makefile
-Makefile.in
-*.gmo
-POTFILES
-stamp-po
-remove-potcdate.sed
diff --git a/src/pacman/po/LINGUAS b/src/pacman/po/LINGUAS
deleted file mode 100644
index 8c249f79..00000000
--- a/src/pacman/po/LINGUAS
+++ /dev/null
@@ -1,10 +0,0 @@
-# Set of available languages.
-de
-en_GB
-es
-fr
-hu
-it
-pl_PL
-pt_BR
-ru_RU
diff --git a/src/pacman/po/Makefile.in.in b/src/pacman/po/Makefile.in.in
deleted file mode 100644
index 6f2e2e94..00000000
--- a/src/pacman/po/Makefile.in.in
+++ /dev/null
@@ -1,355 +0,0 @@
-# Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2003 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
-#
-# This file can be copied and used freely without restrictions. It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
-#
-# Origin: gettext-0.13
-
-PACKAGE = @PACKAGE@
-VERSION = @VERSION@
-
-SHELL = /bin/sh
-@SET_MAKE@
-
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
-VPATH = @srcdir@
-
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-datadir = @datadir@
-datarootdir = @datarootdir@
-localedir = $(datadir)/locale
-gettextsrcdir = $(datadir)/gettext/po
-
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-mkinstalldirs = @INSTALL@ -d
-
-GMSGFMT = @GMSGFMT@
-MSGFMT = @MSGFMT@
-XGETTEXT = @XGETTEXT@
-MSGMERGE = msgmerge
-MSGMERGE_UPDATE = @MSGMERGE@ --update
-MSGINIT = msginit
-MSGCONV = msgconv
-MSGFILTER = msgfilter
-
-POFILES = @POFILES@
-GMOFILES = @GMOFILES@
-UPDATEPOFILES = @UPDATEPOFILES@
-DUMMYPOFILES = @DUMMYPOFILES@
-DISTFILES.common = Makefile.in.in remove-potcdate.sin \
-$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
-DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
-$(POFILES) $(GMOFILES) \
-$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
-
-POTFILES = \
-
-CATALOGS = @CATALOGS@
-
-# Makevars gets inserted here. (Don't remove this line!)
-
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-update
-
-.po.mo:
- @echo "$(MSGFMT) -c -o $@ $<"; \
- $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
-
-.po.gmo:
- @lang=`echo $* | sed -e 's,.*/,,'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
- cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
-
-.sin.sed:
- sed -e '/^#/d' $< > t-$@
- mv t-$@ $@
-
-
-all: all-@USE_NLS@
-
-all-yes: stamp-po
-all-no:
-
-# stamp-po is a timestamp denoting the last time at which the CATALOGS have
-# been loosely updated. Its purpose is that when a developer or translator
-# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
-# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
-# invocations of "make" will do nothing. This timestamp would not be necessary
-# if updating the $(CATALOGS) would always touch them; however, the rule for
-# $(POFILES) has been designed to not touch files that don't need to be
-# changed.
-stamp-po: $(srcdir)/$(DOMAIN).pot
- test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
- @echo "touch stamp-po"
- @echo timestamp > stamp-poT
- @mv stamp-poT stamp-po
-
-# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
-# otherwise packages like GCC can not be built if only parts of the source
-# have been downloaded.
-
-# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
-# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
-$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
- $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
- --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
- --files-from=$(srcdir)/POTFILES.in \
- --copyright-holder='$(COPYRIGHT_HOLDER)' \
- --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
- test ! -f $(DOMAIN).po || { \
- if test -f $(srcdir)/$(DOMAIN).pot; then \
- sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
- sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
- if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
- rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
- else \
- rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
- mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
- fi; \
- else \
- mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
- fi; \
- }
-
-# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
-# every "make" invocation, only create it when it is missing.
-# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
-$(srcdir)/$(DOMAIN).pot:
- $(MAKE) $(DOMAIN).pot-update
-
-# This target rebuilds a PO file if $(DOMAIN).pot has changed.
-# Note that a PO file is not touched if it doesn't need to be changed.
-$(POFILES): $(srcdir)/$(DOMAIN).pot
- @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
- cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot
-
-
-install: install-exec install-data
-install-exec:
-install-data: install-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext-tools"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- for file in $(DISTFILES.common) Makevars.template; do \
- $(INSTALL_DATA) $(srcdir)/$$file \
- $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- for file in Makevars; do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-install-data-no: all
-install-data-yes: all
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
- $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
- echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
- cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
- fi; \
- done; \
- done
-
-install-strip: install
-
-installdirs: installdirs-exec installdirs-data
-installdirs-exec:
-installdirs-data: installdirs-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext-tools"; then \
- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
- else \
- : ; \
- fi
-installdirs-data-no:
-installdirs-data-yes:
- $(mkinstalldirs) $(DESTDIR)$(datadir)
- @catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- dir=$(localedir)/$$lang/LC_MESSAGES; \
- $(mkinstalldirs) $(DESTDIR)$$dir; \
- for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
- if test -n "$$lc"; then \
- if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
- link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
- mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
- for file in *; do \
- if test -f $$file; then \
- ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
- fi; \
- done); \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
- else \
- if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
- :; \
- else \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
- mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
- fi; \
- fi; \
- fi; \
- done; \
- done
-
-# Define this as empty until I found a useful application.
-installcheck:
-
-uninstall: uninstall-exec uninstall-data
-uninstall-exec:
-uninstall-data: uninstall-data-@USE_NLS@
- if test "$(PACKAGE)" = "gettext-tools"; then \
- for file in $(DISTFILES.common) Makevars.template; do \
- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
- done; \
- else \
- : ; \
- fi
-uninstall-data-no:
-uninstall-data-yes:
- catalogs='$(CATALOGS)'; \
- for cat in $$catalogs; do \
- cat=`basename $$cat`; \
- lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
- for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
- rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
- done; \
- done
-
-check: all
-
-info dvi ps pdf html tags TAGS ctags CTAGS ID:
-
-mostlyclean:
- rm -f remove-potcdate.sed
- rm -f stamp-poT
- rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
- rm -fr *.o
-
-clean: mostlyclean
-
-distclean: clean
- rm -f Makefile Makefile.in POTFILES *.mo
-
-maintainer-clean: distclean
- @echo "This command is intended for maintainers to use;"
- @echo "it deletes files that may require special tools to rebuild."
- rm -f stamp-po $(GMOFILES)
-
-distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
-dist distdir:
- $(MAKE) update-po
- @$(MAKE) dist2
-# This is a separate target because 'update-po' must be executed before.
-dist2: $(DISTFILES)
- dists="$(DISTFILES)"; \
- if test "$(PACKAGE)" = "gettext-tools"; then \
- dists="$$dists Makevars.template"; \
- fi; \
- if test -f $(srcdir)/ChangeLog; then \
- dists="$$dists ChangeLog"; \
- fi; \
- for i in 0 1 2 3 4 5 6 7 8 9; do \
- if test -f $(srcdir)/ChangeLog.$$i; then \
- dists="$$dists ChangeLog.$$i"; \
- fi; \
- done; \
- if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
- for file in $$dists; do \
- if test -f $$file; then \
- cp -p $$file $(distdir); \
- else \
- cp -p $(srcdir)/$$file $(distdir); \
- fi; \
- done
-
-update-po: Makefile
- $(MAKE) $(DOMAIN).pot-update
- test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
- $(MAKE) update-gmo
-
-# General rule for updating PO files.
-
-.nop.po-update:
- @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
- if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
- tmpdir=`pwd`; \
- echo "$$lang:"; \
- test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
- echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
- cd $(srcdir); \
- if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
- if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
- rm -f $$tmpdir/$$lang.new.po; \
- else \
- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
- :; \
- else \
- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
- exit 1; \
- fi; \
- fi; \
- else \
- echo "msgmerge for $$lang.po failed!" 1>&2; \
- rm -f $$tmpdir/$$lang.new.po; \
- fi
-
-$(DUMMYPOFILES):
-
-update-gmo: Makefile $(GMOFILES)
- @:
-
-Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
- cd $(top_builddir) \
- && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
- $(SHELL) ./config.status
-
-force:
-
-# Tell versions [3.59,3.63) of GNU make not to export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/pacman/po/Makevars b/src/pacman/po/Makevars
deleted file mode 100644
index dd4e84b4..00000000
--- a/src/pacman/po/Makevars
+++ /dev/null
@@ -1,25 +0,0 @@
-# Makefile variables for PO directory in any package using GNU gettext.
-
-# Usually the message domain is the same as the package name.
-DOMAIN = pacman
-
-# These two variables depend on the location of this directory.
-subdir = po
-top_builddir = ../../../
-
-# These options get passed to xgettext.
-XGETTEXT_OPTIONS = \
- --keyword=_ --flag=_:1:pass-c-format \
- --keyword=N_ --flag=N_:1:pass-c-format
-
-# This is the copyright holder that gets inserted into the header of the
-# $(DOMAIN).pot file.
-COPYRIGHT_HOLDER = Judd Vinet <jvinet@zeroflux.org>
-
-# This is the email address or URL to which the translators shall report
-# bugs in the untranslated strings.
-MSGID_BUGS_ADDRESS = pacman-dev@archlinux.org
-
-# This is the list of locale categories, beyond LC_MESSAGES, for which the
-# message catalogs shall be used. It is usually empty.
-EXTRA_LOCALE_CATEGORIES =
diff --git a/src/pacman/po/POTFILES.in b/src/pacman/po/POTFILES.in
deleted file mode 100644
index fb86a51e..00000000
--- a/src/pacman/po/POTFILES.in
+++ /dev/null
@@ -1,16 +0,0 @@
-# List of source files with translatable strings
-
-src/pacman/add.c
-src/pacman/conf.c
-src/pacman/deptest.c
-src/pacman/downloadprog.c
-src/pacman/log.c
-src/pacman/log.h
-src/pacman/package.c
-src/pacman/pacman.c
-src/pacman/query.c
-src/pacman/remove.c
-src/pacman/sync.c
-src/pacman/trans.c
-src/pacman/upgrade.c
-src/pacman/util.c
diff --git a/src/pacman/po/de.po b/src/pacman/po/de.po
deleted file mode 100644
index 1ac7f934..00000000
--- a/src/pacman/po/de.po
+++ /dev/null
@@ -1,1084 +0,0 @@
-# translation of de.po to German
-# German translations for pacman package.
-# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-#
-# Marcus Habermehl <bmh1980@frugalware.org>, 2006.
-# Pierre Schmitz <pierre@archlinux.de>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: de\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-05-09 17:38+0200\n"
-"Last-Translator: Pierre Schmitz <pierre@archlinux.de>\n"
-"Language-Team: German <archlinux.de>\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);X-Generator: KBabel 1.11.4\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" Wenn Sie sicher sind, dass nicht bereits ein Paketmanager\n"
-" gestartet ist, können Sie %s%s entfernen\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "Lade Paketdaten ... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "Konnte Paket '%s' nicht hinzufügen (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "Fertig.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "Konnte Vorgang nicht vorbereiten (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: Benötigt %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: Steht im Konflikt mit %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s existiert in '%s' und '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s existiert im Dateisystem\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"Fehler aufgetreten, keine Pakete wurden aktualisiert.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f MB werden benötigt, %.1f MB stehen zur Verfügung"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "Konnte den Vorgang (%s) nicht durchführen\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "Konnte den Vorgang (%s) nicht freigeben\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "Fehlersuche"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "Fehler"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "Warnung"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "Funktion"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "J"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "JA"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "Fehler: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "Warnung: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Ausdrücklich installiert"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "Installiert als Abhängigkeit für ein anderes Paket"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Beschreibung : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Name : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Version : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Lizenz :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Gruppen :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Stellt bereit :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Hängt ab von :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Entfernt :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Benötigt von :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Konflikt mit :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Installationsgröße : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Packer : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Architektur : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Erstellt am : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Bauart : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Installiert am : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Installationsgrund : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Installations-Skript : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Ja"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "Nein"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repositorium : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Ersetzt :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Download-Größe : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "MD5-Summe : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "SHA1-Summe : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Sicherungs-Dateien:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "Fehler beim Berechnen der Prüfsummen für %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MODIFIZIERT\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Nicht modifiziert\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "FEHLEND\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(Nichts)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "Kein Änderungsprotokoll für '%s' verfügbar.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "Verwendung: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [Optionen] <Datei>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [Optionen] <Datei>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [Optionen] [Paket]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [Optionen] <Paket>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [Optionen] [Paket]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [Optionen] <Datei>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"Benutzen Sie '%s --help' mit anderen Optionen für mehr Informationen\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "Verwendung: %s {-A -add} [Optionen] <Datei>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "Optionen:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps Überspringt die Abhängigkeitsprüfung\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force Installation erzwingen, Dateikonflikte überschreiben\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "Verwendung: %s {-R --remove} [Optionen] <Paket>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-" -c, --cascade Entfernt Pakete und alle, die von ihnen abhängen\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly Nur Datenbankeintrag entfernen, keine Dateien "
-"entfernen\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave Auch Konfigurationsdateien entfernen\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive Auch Abhängigkeiten entfernen (beschädigt keine "
-"Pakete)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "Verwendung: %s {-F --freshen} [Optionen] <Datei>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "Verwendung: %s {-U --upgrade} [Optionen] <Datei>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "Verwendung: %s {-Q --query} [Optionen] [Pakete]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog Das Änderungsprotokoll des Paketes anzeigen\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans Zeigt alle Pakete, die als Abhängigkeiten "
-"installiert\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr " wurden, aber nicht mehr benötigt werden\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr " -g, --groups Zeigt alle Mitglieder einer Paket-Gruppe an\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info Zeigt Paketinformationen an\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list Zeigt den Inhalt des abgefragten Paketes an\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign Zeigt alle Pakete an, die nicht in den Sync-db(s)\n"
-" gefunden wurden\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr " -o, --owns <Datei> Fragt das Paket ab, dass <Datei> enthält\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <Paket> Fragt die Paketdatei <Paket> anstatt der Datenbank "
-"ab\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> Durchsucht lokal installierte Pakete nach einem Wort\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr " -u, --upgrades Zeigt alle aktualisierbaren Pakete an\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "Benutzung: %s {-S --sync} [Optionen] [Paket]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean Entfernt alte Pakete aus dem Paketpuffer(-cc für "
-"alle)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly Nur Abhängigkeiten installieren\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr ""
-" -l, --list <repo> Zeigt eine Liste aller Pakete eines Repositoriums an\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris URIs der angegebenen Pakete und deren Abhängigkeiten\n"
-" ausgeben\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> Durchsucht entfernte Repositorien nach einem Wort\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr " -u, --sysupgrade Aktualisiert alle veralteten Pakete\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly Lädt Pakete herunter, ohne etwas zu installieren "
-"oder\n"
-" aktualisieren\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr " -y, --refresh Lädt frische Paketdatenbank vom Server\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <pkg> Ignoriert ein neues Paket (kann mehrfach genutzt\n"
-" werden)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr " --config <Pfad> Setzt eine alternative Konfigurationsdatei\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm Niemals nach einer Bestätigung fragen\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <Nummer> Antworten für Fragen vorherbestimmen (Siehe manpage)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar Keine Fortschrittsanzeige anzeigen, wenn Dateien\n"
-" heruntergeladen werden\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet Installationskript nicht ausführen, falls vorhanden\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose Sei gesprächig\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-" -r, --root <Pfad> Setzt ein alternatives Wurzelverzeichnis zur\n"
-" Installation\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr " -b, --dbpath <Pfad> Setzt einen anderen Ort für die Datenbank\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr " -b, --dbpath <Pfad> Setzt einen anderen Ort für den Paketpuffer\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr " Dieses Programm ist frei verfügbar unter\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr " den Bedingungen der GNU General Public License\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' ist kein gültiger Debug-Level"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' ist kein gültiges Paketpuffer-Verzeichnis\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' ist kein gültiger db-Pfad\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' ist kein gültiger root-Pfad\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "Es ist nur eine Operation zur selben Zeit erlaubt\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr ""
-"Warnung: Die Standard-Ortseinstellung ist ungültig; verwende Standard-\"C\"-"
-"Ortseinstellung"
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "Konnte alpm-Bibliothek nicht initialisieren (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "Sie benötigen root-Rechte, um diese Operation ausführen zu können\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "Konnte Konfiguration (%s) nicht lesen\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Pakete :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "Kein Zugriff auf die lokale Datenbank (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "Keine Pakete angegeben (benutzen Sie -h für Hilfe)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "Keine Operation angegeben (benutzen Sie -h für Hilfe)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "Es wurde keine Datei für --owns angegeben\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "Fehler beim Lesen der Datei '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "Konnte den Besitzer eines Verzeichnisses nicht ermitteln"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "Konnte den wahren Pfad für '%s' nicht ermitteln: %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s ist in %s %s enthalten\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Kein Paket enthält %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "Keine brauchbaren Paket-Repositorien konfiguriert.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Suche nach aktualisierbaren Paketen..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "Keine Aktualisierungen gefunden"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "Gruppe \"%s\" wurde nicht gefunden\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "Es wurde kein Paket für --file angegeben\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "Konnte Paket '%s' nicht laden (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "Paket \"%s\" nicht gefunden\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: Gruppe %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Gesamten Inhalt entfernen? [J/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: %s aus Gruppe %s entfernen? [J/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "Konnte den Vorgang (%s) nicht starten\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "Konnte Paket '%s' nicht hinzufügen (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s wird benötigt von %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Pakete:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Möchten Sie all diese Pakete entfernen? [J/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Möchten Sie alte Pakete aus dem Puffer entfernen? [J/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "Entferne alte Pakete aus dem Puffer... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "Konnte nicht auf Puffer-Verzeichnis zugreifen\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Wollen Sie alle Pakete aus dem Puffer entfernen? [J/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "Entferne alle Pakete aus dem Puffer... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "Konnte Puffer-Verzeichnis nicht entfernen\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "Konnte neues Puffer-Verzeichnis nicht erstellen\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "Konnte %s nicht synchronisieren: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "Konnte %s nicht aktualisieren (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s ist aktuell\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "Repositorium '%s' wurde nicht gefunden.\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "Paket '%s' wurde nicht in Repositorium '%s' gefunden.\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "Paket '%s' wurde nicht gefunden.\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "Repositorium \"%s\" wurde nicht gefunden.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Synchronisiere Paketdatenbanken...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "Synchronisiere Paketlisten"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "Konnte keine Datenbank synchronisieren"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Starte komplette Systemaktualisierung...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "Starte komplette Systemaktualisierung"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman hat eine neuere Version von \"pacman\" gefunden.\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: Es wird empfohlen, zuerst pacman zu aktualisieren und\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: danach Ihre Eingabe mit der neueren Version zu wiederholen.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Zuerst pacman aktualisieren? [J/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: Gesamten Inhalt installieren? [J/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: %s aus Gruppe %s installieren? [J/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': nicht in Synchronisations-Datenbank gefunden\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "Benötigt"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " Lokale Datenbank ist aktuell\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Beginne Download ...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Download fortsetzen? [J/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Beginne Aktualisierungsprozess...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Installation fortsetzen? [J/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "Prüfe Abhängigkeiten... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "Prüfe auf Dateikonflikte... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "Räume auf... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "Löse Abhängigkeiten auf... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "Suche nach Zwischen-Konflikten... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "Installiere %s... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "%s (%s) installiert"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "Entferne %s... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "%s (%s) entfernt"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "Aktualisiere %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "%s (%s -> %s) aktualisiert"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "Prüfe Paketintegrität... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "fehlgeschlagen.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Empfange Pakete von %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ":: %1$s benötigt %2$s aus IgnorePkg. %2$s installieren? [J/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s ist in IgnorePkg. Trotzdem installieren? [J/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s ist als ein HoldPkg gekennzeichnet. Trotzdem entfernen? [J/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: %s durch %s/%s ersetzen? [J/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s steht im Konflikt mit %s. %s entfernen? [J/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: Lokale Version ist neuer. Trotzdem aktualisieren? [J/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: Lokale Version ist aktuell. Trotzdem aktualisieren? [J/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: Archiv %s ist beschädigt. Möchten Sie es löschen? [J/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "Installiere"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "Aktualisiere"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "Entferne"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "Pruefe auf Dateikonflikte"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "Nichts\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Entfernen:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Gesamtgröße der zu entfernenden Pakete : %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Gesamte Paketgröße: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Gesamtgröße der installierten Pakete : %.2f MB\n"
diff --git a/src/pacman/po/en_GB.po b/src/pacman/po/en_GB.po
deleted file mode 100644
index 153fed83..00000000
--- a/src/pacman/po/en_GB.po
+++ /dev/null
@@ -1,1084 +0,0 @@
-# English (British) translations for Pacman package manager package.
-# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-# Jeff Bailes <thepizzaking@gmail.com>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Pacman package manager 3.0.0\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-03-07 21:16+1100\n"
-"Last-Translator: Jeff Bailes <thepizzaking@gmail.com>\n"
-"Language-Team: English <en_gb@li.org>\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"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "loading package data... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "failed to add target '%s' (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "done.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "failed to prepare transaction (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: requires %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: conflicts with %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s exists in both '%s' and '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s exists in filesystem\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f MB required, have %.1f MB"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "failed to commit transaction (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "failed to release transaction (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "debug"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "error"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "warning"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "function"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "Y"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "YES"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "error: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "warning: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Explicitly installed"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "Installed as a dependency for another package"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "Unknown"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Description : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Name : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Version : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licence :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Groups :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Provides :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Depends On :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Removes :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Required By :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Conflicts With :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Installed Size : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Packager : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Architecture : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Build Date : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Build Type : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Install Date : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Install Reason : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Install Script : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Yes"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "No"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repository : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Replaces :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Download Size : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "MD5 Sum : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "SHA1 Sum : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Backup Files:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "error calculating checksums for %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MODIFIED\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Not Modified\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "MISSING\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(none)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "No changelog available for '%s'.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "usage: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [options] <file>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [options] <file>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [options] [package]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [options] <package>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [options] [package]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [options] <file>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "usage: %s {-A --add} [options] <file>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "options:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps skip dependency checks\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr " -f, --force force install, overwrite conflicting files\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "usage: %s {-R --remove} [options] <package>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave remove configuration files as well\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "usage: %s {-F --freshen} [options] <file>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "usage: %s {-U --upgrade} [options] <file>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "usage: %s {-Q --query} [options] [package]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog view the changelog of a package\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr " required by any package\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr " -g, --groups view all members of a package group\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info view package information\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list list the contents of the queried package\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-"(s)\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr " -o, --owns <file> query the package that owns <file>\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr " -p, --file <package> query a package file instead of the database\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr " -u, --upgrades list all packages that can be upgraded\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "usage: %s {-S --sync} [options] [package]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly install dependencies only\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr ""
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr " -u, --sysupgrade upgrade all packages that are out of date\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr ""
-" -y, --refresh download fresh package databases from the server\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr " --config <path> set an alternate configuration file\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm do not ask for any confirmation\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose be verbose\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr " -r, --root <path> set an alternate installation root\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr " -b, --dbpath <path> set an alternate database location\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr " --cachedir <dir> set an alternate package cache location\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" This program may be freely redistributed under\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr " the terms of the GNU General Public License\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' is not a valid debug level"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' is not a valid cache directory\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' is not a valid db path\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' is not a valid root path\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "only one operation may be used at a time\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr "warning: current locale is invalid; using default \"C\" locale"
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "failed to initialise alpm library (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "you cannot perform this operation unless you are root.\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "failed to parse config (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Targets :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "could not register 'local' database (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "no targets specified (use -h for help)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "no operation specified (use -h for help)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "no file was specified for --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "failed to read file '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr ""
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr ""
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s is owned by %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "No package owns %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "no usable package repositories configured.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Checking for package upgrades..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "no upgrades found"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "group \"%s\" was not found\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "no package file was specified for --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "failed to load package '%s' (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "package \"%s\" not found\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: group %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Remove whole content? [Y/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Remove %s from group %s? [Y/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "failed to init transaction (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "failed to add target '%s' (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s is required by %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Targets:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Do you want to remove old packages from cache? [Y/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "removing old packages from cache... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "could not access cache directory\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Do you want to remove all packages from cache? [Y/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "removing all packages from cache... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "could not remove cache directory\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "could not create new cache directory\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "failed to synchronise %s: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "failed to update %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s is up to date\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "repository '%s' does not exist\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "package '%s' was not found in repository '%s'\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "package '%s' was not found\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "repository \"%s\" was not found.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Synchronising package databases...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "synchronising package lists"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "failed to synchronise any databases"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Starting full system upgrade...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "starting full system upgrade"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: It is recommended that you allow pacman to upgrade itself\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: first, then you can re-run the operation with the newer version.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Upgrade pacman first? [Y/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: Install whole content? [Y/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: Install %s from group %s? [Y/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': not found in sync db\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "requires"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " local database is up to date\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Beginning download...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Proceed with download? [Y/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Beginning upgrade process...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Proceed with installation? [Y/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "checking dependencies... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "checking for file conflicts... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "cleaning up... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "resolving dependencies... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "looking for inter-conflicts... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "installing %s... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "installed %s (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "removing %s... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "removed %s (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "upgrading %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "upgraded %s (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "checking package integrity... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "failed.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Retrieving packages from %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Replace %s with %s/%s? [Y/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s conflicts with %s. Remove %s? [Y/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "installing"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "upgrading"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "removing"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "checking for file conflicts"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "None\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Remove:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Total Package Size: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Total Installed Size: %.2f MB\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "requires: %s"
-
-#~ msgid "'%s': %s\n"
-#~ msgstr "'%s': %s\n"
-
-#~ msgid "Installed Size : %ld K\n"
-#~ msgstr "Installed Size : %ld K\n"
-
-#~ msgid "is required by"
-#~ msgstr "is required by"
diff --git a/src/pacman/po/es.po b/src/pacman/po/es.po
deleted file mode 100644
index 3ee3f6e3..00000000
--- a/src/pacman/po/es.po
+++ /dev/null
@@ -1,1124 +0,0 @@
-# translation of es.fix.po to
-# Spanish translation for pacman package.
-# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-#
-# Juan Pablo González Tognarelli <lord_jotape@yahoo.com.ar>, 2007.
-# Juan Pablo González Tognarelli <jotapesan@gmail.com>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: es.fix\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-04-29 11:20-0400\n"
-"Last-Translator: Juan Pablo González Tognarelli <jotapesan@gmail.com>\n"
-"Language-Team: <es@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-Country: CHILE\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" Si está seguro que no se está ejecutando pacman,\n"
-" puede eliminar %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "Cargando información del paquete..."
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "fallo al procesar '%s' (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "Hecho.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "fallo al preparar operación (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: necesita %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: tiene conflictos con %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s existe en '%s' y '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s existe en el sistema de archivos\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-#, fuzzy
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr "ocurrieron errores, los paquetes no fueron actualizados\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ""
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, fuzzy, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "no se pudo iniciar la operación (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, fuzzy, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "fallo al preparar operación (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr ""
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr ""
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr ""
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr ""
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr ""
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr ""
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr ""
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr ""
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr ""
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr ""
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr ""
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr ""
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, fuzzy, c-format
-msgid "Name : %s\n"
-msgstr "Nombre : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Versión : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licencia :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Grupos :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Provee :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Depende De :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Elimina :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Requerido por :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Conflictos con :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Tamaño instalado : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Empaquetador : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Arquitectura : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Fecha de compilación : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Tipo de compilación : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Fecha de instalación : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Tipo de instalación : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Script de instalación: %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Si"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "No"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repositorio : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Reemplaza :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Tamaño de la descarga : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "Hash MD5 Sum : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "Hash SHA1 : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Archivos de respaldo:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "error calculando la verificación para %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MODIFICADOt%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "No Modificado\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "FALTANTE\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(nada)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "No hay registro de cambios para '%s'.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr ""
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr ""
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:93
-#, fuzzy, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:94
-#, fuzzy, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:95
-#, fuzzy, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:96
-#, fuzzy, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:97
-#, fuzzy, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"digite '%s --help' con otra opción para ayuda más específica\n"
-
-#: src/pacman/pacman.c:101
-#, fuzzy, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, fuzzy, c-format
-msgid "options:\n"
-msgstr "opciones"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps se salta la verificación de dependencias \n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force fuerza la instalación, sobreescribiendo los archivos "
-"en conflicto\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-" -c, --cascade quita paquetes, junto a todos los que dependan de "
-"estos\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly sólo quita la referencia en la base de datos. No "
-"elimina archivos\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave quita también los archivos de configuración\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive quita también las dependencias (que no quiebren a "
-"otros paquetes)\n"
-
-#: src/pacman/pacman.c:115
-#, fuzzy, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:117
-#, fuzzy, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:123
-#, fuzzy, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog muestra el registro de cambios de un paquete\n"
-
-#: src/pacman/pacman.c:126
-#, fuzzy, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans lista todos los paquetes instalados como "
-"dependencias, que ya no lo son\n"
-" requerido por cualquier paquete\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr ""
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr ""
-" -g, --groups muestra todos los elementos del grupo de paquetes \n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info ver la información del paquete\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr ""
-" -l, --list lista los archivos contenidos en los paquetes "
-"consultados\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign lista paquetes instalados no encontrados en las "
-"listas de paquetes\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr ""
-" -o, --owns <file> consulta el paquete que contiene el archivo "
-"indicado\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <paquete> consulta un archivo de paquetes en lugar de la base "
-"de datos\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <busca> busca paquetes instalados localmente que coincidan "
-"con la cadena\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-" -u, --upgrades muestra todos los paquetes que pueden ser "
-"actualizados\n"
-
-#: src/pacman/pacman.c:137
-#, fuzzy, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "uso: %s {-R --remove} [opciones] <paquete>\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean elimina paquetes antiguos del directorio de la cache "
-"(-cc para todos los paquetes)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly instala sólo dependencias\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr " -l, --list <repo> ve una lista de paquetes en un repositorio\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris muestra las URIs (nombres de paquetes) para los "
-"archivos indicados y sus dependencias\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <busca> busca en los repositorios remotos por coincidencias "
-"de la cadena especificada.\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr ""
-" -u, --sysupgrade actualiza todos los paquetes que no están al día\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly sólo descarga los paquetes, sin instalar/actualizar "
-"nada\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr ""
-" -y, --refresh descarga bases de datos actualizadas desde el "
-"servidor\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <pkg> ignora una actualización de paquete (puede ser usado "
-"más de una vez)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr " --config <ruta> define un archivo de configuración alterno\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm no solicita confirmación alguna\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <número> pre-define respuestas para preguntas (ver el manual)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar no muestra la barra de progreso cuando descarga "
-"archivos\n"
-
-#: src/pacman/pacman.c:157
-#, fuzzy, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet no ejecuta el script de instalación si existe alguno\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose mostrar todo\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr " -r, --root <path> define una raiz alterna para la instalación\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr ""
-" -b, --dbpath <path> define una localización alternativa de la base de "
-"datos\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr ""
-" --cachedir <dir> define una ruta alternativa para la localización de "
-"los archivos\n"
-
-#: src/pacman/pacman.c:174
-#, fuzzy, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" Este programa puede ser libremente distribuido bajo\n"
-" los términos de la licencia GNU General Public "
-"License\n"
-
-#: src/pacman/pacman.c:175
-#, fuzzy, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr ""
-" Este programa puede ser libremente distribuido bajo\n"
-" los términos de la licencia GNU General Public "
-"License\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' no es un nivel de depuración válido"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' no es un directorio de cache válido\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "%s' no es una ruta de base de datos válida\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' no es una ruta de raíz válida\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "sólo una operación puede utilizarse a la vez\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr ""
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "falló al iniciar la libreria alpm (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "no puede realizar esta operación, a menos que sea root.\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "falló al analizar la configuración (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Objetivos : "
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "no se pudo registrar la base de datos 'local' (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "no se especificaron objetivos (use -h para ayuda)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "no se especificó una operación (utilice -h para ayuda)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "no se indico un archivo para --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "no se pudo leer el archivo '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "no se pudo determinar el propietario de un directorio"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "no se pudo determinar la ruta verdadera para '%s': %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s es propiedad de %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Ningún paquete posee %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "no se encontraron repositorios útiles configurados.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Verificando actualizaciones de paquetes..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "no se encontraron actualizaciones"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "el grupo \"%s\" no fue encontrado\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "no se especificó un archivo de paquetes para --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "error al cargar el paquete '%s' (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "el paquete \"%s\" no fue encontrado\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: grupo %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " ¿Quitar todo el contenido? [Y/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: ¿Quitar %s del grupo %s? [Y/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "no se pudo iniciar la operación (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "fallo al procesar '%s' (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s es requerido por %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "A instalar:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"¿Quiere eliminar estos paquetes? [Y/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Desea quitar los paquetes antiguos de la cache? [Y/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "quitando paquetes antiguos de la cache..."
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "no se pudo acceder al directorio de la cache de paquetes\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Desea borrar todos los paquetes de la cache? [Y/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "quitando todos los paquetes de la cache... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "no se pudo eliminar el directorio de la cache\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "no se pudo crear el nuevo directorio de la cache\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "falló al sincronizar %s: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "falló al actualizar %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s esta actualizado\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "el repositorio '%s' no existe\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "el paquete '%s' no fue encontrado en el repositorio '%s'\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "El paquete '%s' no fue encontrado\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "el repositorio \"%s\" no fue encontrado.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Sincronizando las bases de datos de paquetes...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "sincronizando la lista de paquetes"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "falló al sincronizar cualquier base de datos."
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: iniciando actualización completa del sistema...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "iniciando la actualización completa del sistema"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman ha detectado una nueva versión del paquete \"pacman\".\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: es recomendado que permita a pacman actualizarse a si mismo\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ""
-":: primero, después puedes volver a ejecutar la operación con la nueva "
-"versión.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: ¿Actualizar pacman primero? [Y/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: ¿Instalar el todo el contenido? [Y/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: ¿Instalar %s del grupo %s? [Y/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': no encontrado en la lista de paquetes\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "necesita"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " el sistema está actualizado\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Empezando la descarga...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "¿Continuar con la descarga? [Y/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Empezando proceso de actualización...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "¿Continuar con la instalación? [Y/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "comprobando dependencias... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "verificando si existen conflictos entre archivos... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "limpiando..."
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "resolviendo dependencias... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "verificando conflictos... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "instalando %s..."
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "instalado %s (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "quitando %s..."
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "eliminado %s (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "actualizando %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "actualizado %s (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "Verificando la integridad de los paquetes... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "falló.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Descargando paquetes desde %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ""
-":: %1$s requiere %2$s que en los paquetes a ignorar (IgnorePkg). ¿Instalar %2"
-"$s? [Y/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s esta en la lista a ignorar. ¿Instalar de todas formas? [Y/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ""
-":: %s esta indicado como paquete a mantener. ¿Quitar de todas formas? [Y/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: ¿Reemplazar %s con %s/%s? [Y/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s provoca conflictos con %s. ¿Quitar %s? [Y/n]"
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: la versión local es mas reciente. ¿Actualizar de todas formas? [Y/"
-"n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: la versión local esta actualizada. ¿Actualizar de todas formas? [Y/"
-"n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: El Archivo %s esta corrupto. Desea borrarlo? [Y/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "instalando"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "actualizando"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "quitando"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "verificando conflictos entre archivos"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "Nada\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Se quitará:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Tamaño total eliminado: %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Tamaño total de paquetes: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Tamaño total instalado: %.2f MB\n"
-
-#~ msgid "file"
-#~ msgstr "archivo"
-
-#~ msgid "package"
-#~ msgstr "paquete"
-
-#~ msgid "usage"
-#~ msgstr "uso"
-
-#~ msgid "operation"
-#~ msgstr "operación"
diff --git a/src/pacman/po/fr.po b/src/pacman/po/fr.po
deleted file mode 100644
index 85efa2a0..00000000
--- a/src/pacman/po/fr.po
+++ /dev/null
@@ -1,1459 +0,0 @@
-# French translations for Pacman package manager package.
-# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-# Enda <enda@netou.com>, 2006
-#
-# This is a revision of pacman's French translation by nam <37ii11@altern.org>
-# on the basis of the work of solsTiCe d'hiver <solstice.dhiver@laposte.net>
-msgid ""
-msgstr ""
-"Project-Id-Version: pacman\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-04-20 15:02+0100\n"
-"Last-Translator: nam <37ii11@altern.org>\n"
-"Language-Team: solsTiCe d'Hiver <solstice.dhiver@laposte.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: FRANCE\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" Si vous êtes sûr que le gestionnaire de paquet n'est pas déjà\n"
-" en cours de fonctionnement, vous pouvez supprimer %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "Chargement des données du paquet... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "l'ajout de la cible '%s' (%s) a échoué"
-
-# "fait" est incompréhensible
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "terminé.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "la préparation de la transaction a échoué (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: requiert %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: est en conflit avec %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s est présent à la fois dans '%s' et '%s'\n"
-
-# id.
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s est déjà présent dans le système de fichiers\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"Des erreurs se sont produites, aucun paquet n'a été mis à jour.\n"
-
-# improbable (mais pas impossible) que seul 1 Mo soit disponible; par défaut, le pluriel est meilleur. A disposition remplace disponible pour éviter le problème.
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f Mo nécessaires, %.1f Mo à disposition"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "la validation de la transaction a échoué (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "la libération de la transaction a échoué (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "Débogage"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "Erreur"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "Avertissement"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "Fonction"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "O"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "OUI"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "Erreur: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "Avertissement: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Explicitement installé"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "Installé comme dépendance d'un autre paquet"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "Inconnu"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Description : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Nom : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Version : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licence :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Groupes :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Fournit :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Dépend de :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Supprime :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Requis par :"
-
-# Plus compréhensible...
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Incompatible avec :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Taille (installé) : %6.2f K\n"
-
-# qu'en dites-vous?
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Paqueteur : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Architecture : %s\n"
-
-# En français, "construire" un programme n'a pas beaucoup de sens, on le compile
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Compilé le : %s %s\n"
-
-# En français, "construire" un programme n'a pas beaucoup de sens, on le compile
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Type de compilation : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Installé le : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Motif d'installation : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Script d'installation : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Oui"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "Non"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Dépôt : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Remplace :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "A télécharger : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "somme MD5 : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "somme SHA1 : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Fichiers de sauvegarde:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "erreur lors du calcul des sommes de contrôle pour %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MODIFIÉ\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Non modifié\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "MANQUANT:\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(Aucun)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "Changelog: non disponible pour '%s'.\n"
-
-# "Utilisation" pour "usage", suggéré par nano, excellement traduit
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "Utilisation: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [options] <fichier>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [options] <fichier>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [options] [package]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [options] <package>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [options] [package]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [options] <fichier>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"Utilisez '%s --help' avec d'autres options pour une syntaxe plus détaillée.\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "Utilisation: %s {-A --add} [options] <fichier>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "Options:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps ne vérifie pas les dépendances\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force force l'installation, en écrasant les fichiers en "
-"conflit\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "Utilisation: %s {-R --remove} [options] <paquet>\n"
-
-# .
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-" -c, --cascade supprime les paquets ainsi que tous ceux qui en "
-"dépendent\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly supprime uniquement les entrées dans la base de "
-"données, et non les fichiers\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr ""
-" -n, --nosave supprime également les fichiers de configuration\n"
-
-# Formule modifiée, sens préservé!
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive supprime également les paquets qui ne dépendent "
-"que de celui-ci\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "Utilisation: %s {-F --freshen} [options] <fichier>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "Utilisation: %s {-U --upgrade} [options] <fichier>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "Utilisation: %s {-Q --query} [options] [package]\n"
-
-# pour être cohérent
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog affiche le Changelog du paquet\n"
-
-# id.
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans liste tous les paquets qui ont été installés "
-"comme des dépendances\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr ""
-" et qui ne sont plus requis par aucun paquet\n"
-
-# id.
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr ""
-" -g, --groups affiche tous les éléments d'un groupe de paquet\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr ""
-" -i, --info affiche les informations concernant un paquet\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list liste le contenu du paquet interrogé\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign liste les paquets non trouvés dans la ou les "
-"bases de données de synchronisation\n"
-
-# il ne peut y en avoir qu'un seul...
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr ""
-" -o, --owns <fichier> recherche le paquet contenant le fichier "
-"<fichier>\n"
-
-# pour être cohérent...
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <paquet> interroge le fichier <paquet> au lieu de la base "
-"de données\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> recherche la chaîne correspondante dans les "
-"paquets installés localement\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-" -u, --sysupgrade liste tous les paquets pouvant être mis à jour\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "Utilisation: %s {-S --sync} [options] [paquet]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean supprime les paquets obsolètes du répertoire de "
-"cache (-cc pour tous)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly n'installe que les dépendances\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr ""
-" -l, --list <repo> donne une liste de tous les paquets d'un dépôt\n"
-
-# plus clair
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris affiche les URIs pour les paquets donnés et pour "
-"leurs dépendances\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> recherche la chaîne correspondante dans les "
-"dépôts distants\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr " -u, --sysupgrade met à jour tous les paquets obsolètes\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly ne fait que télécharger les paquets, sans rien "
-"installer ni mettre à jour\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr ""
-" -y, --refresh télécharge les dernières bases de données depuis "
-"le serveur\n"
-
-# moins fidèle, mais plus précis (je changerais l'anglais aussi ici)
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <paquet> ignore un paquet lors de la mise à jour (peut "
-"être utilisé plus d'une fois)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr ""
-" --config <chemin> impose un fichier de configuration alternatif\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm ne demande aucune confirmation\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <nombre> spécifie à l'avance la réponses à certaines "
-"questions (voir la page de manuel)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar n'affiche pas la barre de progression pendant le "
-"téléchargement\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet n'exécute pas le script d'installation, si le "
-"paquet en contient\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose affiche plus de détails\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-" -r, --root <chemin> impose un répertoire d'installation alternatif\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr ""
-" -b, --dbpath <chemin> impose un emplacement alternatif pour les bases "
-"de données\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr " --cachedir <dir> impose un répertoire cache alternatif\n"
-
-# traduction officielle de la GPL
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr " Ce programme peut être librement diffusé sous\n"
-
-# id.
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr ""
-" les termes de la Licence publique générale GNU (GNU "
-"GPL)\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' n'est pas un niveau de débogage valide"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' n'est pas un répertoire de cache valide\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' n'est pas un chemin valide vers la base de données\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' n'est pas un chemin racine valide\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "une seule opération peut être effectuée à la fois\n"
-
-# localisation est la traduction officielle
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr ""
-"Avertissement: la localisation courante n'est pas valide; la localisation "
-"par défaut \"C\" sera utilisée."
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "l'initialisation de la librairie alpm a échoué (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "vous ne pouvez effectuer cette opération à moins d'être root.\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "la lecture de la configuration a échoué (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Cibles :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "l'enregistrement de la base de données 'local' a échoué (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "aucune cible spécifiée (utiliser -h pour obtenir de l'aide)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "aucune opération spécifiée (utiliser -h pour obtenir de l'aide)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "aucun fichier spécifié pour --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "échec de lecture du fichier '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "ne peut déterminer le propriétaire d'un répertoire"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "ne peut déterminer le vrai chemin pour '%s': %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s appartient à %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Aucun paquet ne contient %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "aucun dépôt de paquets utilisable n'a été défini.\n"
-
-# le sens est plus clair
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Vérification des mises à jour disponibles... "
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "pas de mises à jour trouvées"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "Le groupe \"%s\" n'a pas été trouvé\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "aucun fichier du paquet spécifié pour --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "le chargement du paquet '%s' (%s) a échoué\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "paquet \"%s\" introuvable\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: Groupe %s:\n"
-
-# pour être cohérent
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Supprimer tout le contenu? [O/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Supprimer %s du groupe %s? [O/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "l'initialisation de la transaction a échoué (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "l'ajout de la cible '%s' (%s) a échoué\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s est requis par %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Cibles:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Voulez-vous désinstaller ces paquets? [O/n] "
-
-# pour être cohérent
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Voulez vous supprimer du cache les paquets obsolètes? [O/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "Suppression du cache des paquets obsolètes... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "l'accès au répertoire du cache a échoué\n"
-
-# id.
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Voulez-vous supprimer du cache tous les paquets? [O/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "Suppression du cache de tous les paquets... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "la suppression du répertoire de cache a échoué\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "la création du nouveau répertoire de cache a échoué\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "la synchronisation %s: %s a échoué\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "la mise à jour de %s (%s) a échoué\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s est à jour;\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "le dépôt '%s' n'a pas été trouvé\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "le paquet '%s' n'a pas été trouvé dans le dépôt '%s'\n"
-
-# pour être cohérent
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "le paquet \"%s\" n'a pas été trouvé.\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "le dépôt \"%s\" n'a pas été trouvé.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Synchronisation des bases de données de paquets...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "Synchronisation des listes de paquets"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "la synchronisation a échoué"
-
-# un processus ne démarre pas (les véhiculent démarrent), il débute
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Début de la mise à jour complète du système...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "Début de la mise à jour complète du système"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman a détecté une version plus récente du paquet \"pacman\".\n"
-
-# moins littéral, mais plus explicite
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: Il est recommandé de mettre d'abord pacman à jour\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: puis de relancer l'opération avec la nouvelle version.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Mettre à jour pacman d'abord? [O/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: Installer tout le contenu? [O/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: Installer %s du groupe %s? [O/n] "
-
-# pour être cohérent
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': non trouvé dans la base de données de synchronisation\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "requiert"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr "La base de données locale est à jour.\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Début du téléchargement...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Procéder au téléchargement? [O/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Début du processus de mise à jour...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Procéder à l'installation? [O/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "Vérification des dépendances... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "Recherche des conflits de fichiers... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "Nettoyage... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "Résolution des dépendances... "
-
-# la formulation anglaise non plus n'est pas claire...
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "Recherche des conflits possibles entre paquets... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "Installation de %s... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "%s installé (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "Désinstallation de %s... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "%s désinstallé (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "Mise à jour de %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "%s mis à jour (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "Analyse de l'intégrité des paquets... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "Échec.\n"
-
-# pas du tout littéral, mais plus compréhensible
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Récupération des paquets du dépôt %s...\n"
-
-# plus clair
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ""
-":: %1$s requiert %2$s, défini comme paquet à ignorer (IgnorePkg). Installer %"
-"2$s tout de même? [O/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ""
-":: %s est défini comme paquet à ignorer (IgnorePkg). L'installer tout de "
-"même? [O/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ""
-":: %s est indiqué comme paquet à conserver (HoldPkg). Le supprimer tout de "
-"même? [O/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Remplacer %s avec %s/%s? [O/n] "
-
-# pour être cohérent
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s est en conflit avec %s. Supprimer %s? [O/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: la version locale est plus récente. Mettre à jour tout de même? [O/"
-"n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: la version locale est à jour. Mettre à jour tout de même? [O/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: L'archive %s est corrompue. Voulez vous l'effacer? [O/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "Installation"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "Mise à jour"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "Désinstallation"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "Analyse des conflits entre fichiers"
-
-# bon, on peut discuter là dessus; mais pacman -Qi avec tous ses "aucun" est vraiment trop laid... je le préfère comme ça
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "--\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Suppression:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Taille totale des paquets supprimés: %.2f Mo\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Taille totale des paquets: %.2f Mo\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Taille totale des paquets installés: %.2f Mo\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "requiert: %s"
-
-#~ msgid "'%s': %s\n"
-#~ msgstr "'%s': %s\n"
-
-#~ msgid "is required by"
-#~ msgstr "est requit par"
-
-#, fuzzy
-#~ msgid "Installed Size : %ld K\n"
-#~ msgstr "Taille d'installation : %ld K\n"
-
-#~ msgid "memory allocation failure\n"
-#~ msgstr "erreur d'allocation mémoire\n"
-
-#~ msgid "add target %s\n"
-#~ msgstr "ajout de la cible %s\n"
-
-#~ msgid "could not add target (%s)\n"
-#~ msgstr "n'a pas pu ajouter la cible (%s)\n"
-
-#~ msgid "conflict: %s"
-#~ msgstr "conflit: %s"
-
-#~ msgid "could not release transaction (%s)"
-#~ msgstr "n'a pas pu libérer la transaction (%s)"
-
-#~ msgid "Size : %ld\n"
-#~ msgstr "Taille : %ld\n"
-
-#~ msgid "Reason : "
-#~ msgstr "Raison : "
-
-#~ msgid "Unknown\n"
-#~ msgstr "Inconnu\n"
-
-#~ msgid "NOT "
-#~ msgstr "N'EST PAS"
-
-#~ msgid "Name : %s\n"
-#~ msgstr "Nom : %s\n"
-
-#~ msgid "Groups :"
-#~ msgstr "Groupes :"
-
-#~ msgid "Provides :"
-#~ msgstr "Forunit :"
-
-#~ msgid "Depends On :"
-#~ msgstr "Depend De :"
-
-#~ msgid "Removes :"
-#~ msgstr "Supprimer :"
-
-#~ msgid "Conflicts With :"
-#~ msgstr "Conflits Avec :"
-
-#~ msgid "Size (compressed) : %ld\n"
-#~ msgstr "Taille (compressé) : %ld\n"
-
-#~ msgid "Size (uncompressed):%ld\n"
-#~ msgstr "Taille (décompressé):%ld\n"
-
-#~ msgid " looking in the database\n"
-#~ msgstr " rechercher dans la base de données\n"
-
-#~ msgid "bad root path"
-#~ msgstr "mauvais répertoire racine"
-
-#~ msgid "failed to set option LOGMASK (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGMASK (%s)\n"
-
-#~ msgid "failed to set option LOGCB (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGCB (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLCB (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGCB (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLFNM (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGFILE (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLOFFSET (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGFILE (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLT0 (%s)\n"
-#~ msgstr "échec d'affectation de l'option DBPATH (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLT (%s)\n"
-#~ msgstr "échec d'affectation de l'option DBPATH (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLRATE (%s)\n"
-#~ msgstr "échec d'affectation de l'option DBPATH (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLXFERED1 (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGFILE (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLETA_H (%s)\n"
-#~ msgstr "échec d'affectation de l'option DBPATH (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLETA_M (%s)\n"
-#~ msgstr "échec d'affectation de l'option DBPATH (%s)\n"
-
-#, fuzzy
-#~ msgid "failed to set option DLETA_S (%s)\n"
-#~ msgstr "échec d'affectation de l'option LOGMASK (%s)\n"
-
-#~ msgid "failed to set option IGNOREPKG (%s)\n"
-#~ msgstr "échec d'affectation de l'option IGNOREPKG (%s)\n"
-
-#~ msgid "%s is not a file.\n"
-#~ msgstr "%s n'est pas un fichier.\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Targets:"
-#~ msgstr ""
-#~ "\n"
-#~ "Cibles:"
-
-#~ msgid ":: Starting local database upgrade...\n"
-#~ msgstr ":: Démarrage de la mise à jour de base de données locale...\n"
-
-#~ msgid "could not add target '%s': %s\n"
-#~ msgstr "n'a pas pu ajouter la cible '%s': %s\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "Targets: "
-#~ msgstr ""
-#~ "\n"
-#~ "Cibles: "
-
-#~ msgid ""
-#~ "\n"
-#~ "Total Uncompressed Package Size: %.1f MB\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Taille Totale du Paquet Décompressé: %.1f MB\n"
-
-#~ msgid "Proceed with upgrade? [Y/n] "
-#~ msgstr "Procéder aux mises à jour? [O/n] "
-
-#~ msgid "failed to allocated %d bytes\n"
-#~ msgstr "échec lors de l'allocation de %d bytes\n"
-
-#~ msgid "config: new section '%s'\n"
-#~ msgstr "config: nouvelle section '%s'\n"
-
-#~ msgid "config: line %d: bad section name\n"
-#~ msgstr "config: ligne %d: mauvais nom de section\n"
-
-#~ msgid ""
-#~ "config: line %d: '%s' is reserved and cannot be used as a package tree\n"
-#~ msgstr ""
-#~ "config: ligne %d: '%s' est réservé et ne peut être utilisé comme "
-#~ "arborescence de paquet\n"
-
-#~ msgid "config: line %d: syntax error\n"
-#~ msgstr "config: ligne %d: erreur de syntaxe\n"
-
-#~ msgid "config: line %d: all directives must belong to a section\n"
-#~ msgstr ""
-#~ "config: ligne %d: toutes les instructions doivent être relatives à la "
-#~ "section\n"
-
-#~ msgid "failed to set option USESYSLOG (%s)\n"
-#~ msgstr "échec d'affection de l'option USESYSLOG (%s)\n"
-
-#~ msgid "config: including %s\n"
-#~ msgstr "config: inclusion de %s\n"
-
-#~ msgid "failed to set option NOUPGRADE (%s)\n"
-#~ msgstr "échec d'affectation de l'option NOUPGRADE (%s)\n"
-
-#~ msgid "failed to set option NOEXTRACT (%s)\n"
-#~ msgstr "échec d'affectation de l'option NOEXTRACT (%s)\n"
-
-#~ msgid "config: log file: %s\n"
-#~ msgstr "config: fichier de log: %s\n"
-
-#~ msgid "failed to set option UPGRADEDELAY (%s)\n"
-#~ msgstr "échec d'affectation de l'option UPGRADEDELAY (%s)\n"
-
-#~ msgid ""
-#~ "Warning: UpgradeDelay is very high.\n"
-#~ "If a package is updated often it will never be upgraded.\n"
-#~ "Manually update such packages or use a lower value to avoid this "
-#~ "problem.\n"
-#~ msgstr ""
-#~ "Avertissement: UpgradeDelay est très élevé.\n"
-#~ "Si un paquet est mis à jour souvent, ces mise à jour ne seront jamais "
-#~ "appliquée.\n"
-#~ "Mettez à jour ces paquets manuellement ou utilisez une valeur plus basse "
-#~ "pour résoudre ce problème.\n"
-
-#~ msgid "config: line %d: bad server location\n"
-#~ msgstr "config: ligne %d: mauvais adressage de serveur\n"
-
-#~ msgid "could not allocate %d bytes\n"
-#~ msgstr "n'a pas pu allouer %d bytes\n"
-
-#~ msgid "config: line %d: protocol %s is not supported\n"
-#~ msgstr "config: ligne %d: le protocole %s n'est pas supporté\n"
-
-#~ msgid "connecting to %s:21\n"
-#~ msgstr "connexion à %s:21\n"
-
-#~ msgid "cannot connect to %s\n"
-#~ msgstr "n'a pas pu se connecter à %s\n"
-
-#~ msgid "anonymous login failed\n"
-#~ msgstr "la connexion en utilisateur anonyme à échouée\n"
-
-#~ msgid "could not cwd to %s: %s\n"
-#~ msgstr "n'a pas pu exécuter cwd pour %s: %s\n"
-
-#~ msgid "failed to set passive mode\n"
-#~ msgstr "échec d'application mode passif\n"
-
-#~ msgid "FTP passive mode not set\n"
-#~ msgstr "mode FTP passif non défini\n"
-
-#~ msgid "connecting to %s\n"
-#~ msgstr "connexion à %s\n"
-
-#~ msgid "connecting to %s:%u\n"
-#~ msgstr "connexion à %s:%u\n"
-
-#~ msgid "could not chdir to %s\n"
-#~ msgstr "n'a pas pu exécuter chdir vers %s\n"
-
-#~ msgid "running command: %s\n"
-#~ msgstr "exécution de la commande: %s\n"
-
-#~ msgid "running XferCommand: fork failed!\n"
-#~ msgstr "exécution de XferCommand: échec du fork!\n"
-
-#~ msgid "XferCommand command returned non-zero status code (%d)\n"
-#~ msgstr ""
-#~ "la commande XferCommand à retourné un code de statut différent de zéro (%"
-#~ "d)\n"
-
-#~ msgid "failed to get filesize for %s\n"
-#~ msgstr "échec de récupération de la taille de fichier pour %s\n"
-
-#~ msgid "failed to get mtime for %s\n"
-#~ msgstr "échec de récupération de la date de modification pour %s\n"
-
-#~ msgid "mtimes are identical, skipping %s\n"
-#~ msgstr "le dates de modifications sont identiques, ignoré %s\n"
-
-#~ msgid "failed to resume download -- restarting\n"
-#~ msgstr "échec de reprise du téléchargement -- redémarrage\n"
-
-#~ msgid ""
-#~ "\n"
-#~ "failed downloading %s from %s: %s\n"
-#~ msgstr ""
-#~ "\n"
-#~ "échec du téléchargement de %s depuis %s: %s\n"
-
-#~ msgid "copying %s to %s/%s\n"
-#~ msgstr "copie %s vers %s/%s\n"
-
-#~ msgid "failed copying %s\n"
-#~ msgstr "échec de copie de %s\n"
-
-#~ msgid " %s is already in the current directory\n"
-#~ msgstr " %s est déjà dans le répertoire courant\n"
-
-#~ msgid "failed to download %s\n"
-#~ msgstr "échec lors du téléchargement de %s\n"
-
-#~ msgid "failed to set option CACHEDIR (%s)\n"
-#~ msgstr "échec d'affectation de l'option CACHEDIR (%s)\n"
-
-#~ msgid "failed to get lastupdate time for %s (no big deal)\n"
-#~ msgstr ""
-#~ "échec d'obtention de la dernière mise à jour pour %s (ce n'est pas un "
-#~ "gros problème)\n"
-
-#~ msgid "sync: new mtime for %s: %s\n"
-#~ msgstr "sync: nouvelle valeur mtime pour %s: %s\n"
-
-#~ msgid "%s-%s-%s%s is already in the cache\n"
-#~ msgstr "%s-%s-%s%s est déjà en cache\n"
-
-#~ msgid "no %s cache exists. creating...\n"
-#~ msgstr "aucun cache %s existant. Création...\n"
-
-#~ msgid "warning: no %s cache exists. creating..."
-#~ msgstr "avertissement: aucun cache %s existant, création..."
-
-#~ msgid "couldn't create package cache, using /tmp instead\n"
-#~ msgstr ""
-#~ "n'a pas pu créer le cache de paquets, utilisation de /tmp à la place\n"
-
-#~ msgid "warning: couldn't create package cache, using /tmp instead"
-#~ msgstr ""
-#~ "avertissement: n'a pas pu créer le cache de paquets, utilisation de /tmp "
-#~ "à la place"
-
-#~ msgid "failed to retrieve some files from %s\n"
-#~ msgstr "échec de récupération de certains fichiers depuis %s\n"
diff --git a/src/pacman/po/hu.po b/src/pacman/po/hu.po
deleted file mode 100644
index 5dc52696..00000000
--- a/src/pacman/po/hu.po
+++ /dev/null
@@ -1,1078 +0,0 @@
-# Hungarian translations for pacman package.
-# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-# Miklos Vajna <vmiklos@frugalware.org>, 2006.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: hu\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2006-09-03 13:52+0200\n"
-"Last-Translator: Nagy Gabor <ngaba@petra.hos.u-szeged.hu>\n"
-"Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=ISO-8859-2\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=1; plural=0;\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" ha biztos, hogy nem fut egy csomagkezelõ, abban az esetben\n"
-" eltávolíthatja a %s%s fájlt\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "csomag adatainak betöltése... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "nem sikerült a(z) '%s' célt hozzáadni a tranzakcióhoz (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "kész.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "nem sikerült elõkészíteni a tranzakciót (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: igényli a következõt: %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: ütközik a következõvel: %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s létezik ebben: '%s' és ebben: '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s létezik a fájlrendszerben\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"hibák léptek fel, nem frissült csomag.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f MB szükséges, %.1f MB áll rendelkezésre"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "nem sikerült végrehajtani a tranzakciót (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "nem sikerült lezárni a tranzakciót (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "hibakeresés"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "hiba"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "figyelmeztetés"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "függvény"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "I"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "IGEN"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "hiba: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "figyelmeztetés: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Kézzel telepítve"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "Egy másik csomag függõségeként lett telepítve"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "Ismeretlen"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Leírás : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Név : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Verzió : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licenc :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Csoportok :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Szolgáltatja :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Függ :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Eltávolítja :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Igényli :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Ütközik :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Helyfoglalás : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Csomagoló : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Architektúra : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Fordítás ideje : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Fordítás Típusa : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Telepítés ideje : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Telepítés oka : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Telepítõ szkript: %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Igen"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "Nem"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repó : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Lecseréli :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Tömörített méret: %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "MD5 Sum : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "SHA1 Sum : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Backup fájlok:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "hiba a(z) %s ellenõrzõ összegének számítása közben\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MÓDOSÍTVA\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Nem módosítva\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "HIÁNYZIK\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(nincs)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "Nem áll rendelkezésre változási napló a(z) '%s' csomaghoz.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "használat: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [opciók] <fájl>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [opciók] <fájl>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [opciók] [csomag]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [opciók] <csomag>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [opciók] [csomag]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [opciók] <fájl>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"használja a '%s --help'-et más opciókkal további szintaxishoz\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "használat: %s {-A --add} [opciók] <fájl>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "opciók:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps függõségi ellenõrzések kihagyása\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force a telepítés erõltetése, ütközõ fájlok felülírása\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "használat: %s {-R --remove} [opciók] <csomag>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-" -c, --cascade a csomagok és az õket igénylõ csomagok eltávolítása\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly csak az adatbázis-bejegyzést törölje, a fájlokat ne\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave a beállítási fájlokat is törölje\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive a függõségeket is távolítsa el (melyeknél ez "
-"biztonságos)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "használat: %s {-F --freshen} [opciók] <fájl>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "használat: %s {-U --upgrade} [opciók] <fájl>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "használat: %s {-Q --query} [opciók] [csomag]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog a változások naplójának megtekintése\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans azon csomagok listázása, amelyek függõségként "
-"kerültek\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr ""
-" telepítésre, de most már nem igényli õket más csomag\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr " -g, --groups egy csoport összes tagjának megtekintése\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info csomaginformációk megtekintése\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list a lekérdezett csomag tartalmának listázása\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign a távoli repókban nem talált telepített csomagok "
-"listája\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr " -o, --owns <fájl> a <fájl>-t tartalmazó csomag lekérdezése\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <csomag> a <csomag> csomagfájl lekérdezése az adatbázis "
-"helyett\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr " -s, --search <regex> keresés a telepített csomagok között\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr " -u, --upgrades az összes frissíthetõ csomag listázása\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "használat: %s {-S --sync} [opciók] [csomag]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean a régi csomagok törlése a gyorsítótárkönyvtárból\n"
-" (használja a '-cc'-t az összeshez)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly csak a függõségek telepítése\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr " -l, --list <repó> egy repó csomagjainak listázása\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris listázza az adott csomagok és függõségeik URI-jait\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr " -s, --search <regex> keresés a távoli csomagadatbázisokban\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr " -u, --sysupgrade az összes elavult csomag frissítése\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr " -w, --downloadonly csak letöltés, de semmit nem telepít/frissít\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr " -y, --refresh friss csomagadatbázis letöltése a szerverrõl\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <csom.> csomagfrissítés mellõzése (többször is használható)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr " --config <útv.> alternatív konfigurációs fájl használata\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm ne kérjen soha megerõsítést\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <szám> elõre megadja a válaszokat kérdésekre (ld. man "
-"oldal)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar ne mutasson folyamatsávot a fájlok letöltése közben\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet ne futtassa le a telepítési szkriptet, ha van olyan\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose legyen bõbeszédû\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-" -r, --root <útvonal> alternatív telepítési gyökérkönyvtár beállítása\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr " -b, --dbpath <útv.> alternatív adatbáziskönyvtár beállítása\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr ""
-" --cachedir <kvt> alternatív csomaggyorsítótár-könyvtár beállítása\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" Ezt a programot bárki a General Public License-ben\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr " foglaltak alapján szabadon terjesztheti\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "a(z) '%s' nem érvényes hibakeresési szint"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "a '%s' nem érvényes gyorsítótárkönyvtár\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "a '%s' nem érvényes adatbázis útvonal\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "a '%s' nem érvényes gyökérkönyvtár útvonal\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "csak egy mûvelet hajtható végre egyszerre\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr ""
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "nem sikerült inicializálni az alpm könyvtárat (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "ez a mûvelet csak rendszergazdaként hajtható végre.\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "nem sikerült értelmezni a beállítási fájlt (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Célok :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "nem sikerült regisztrálni a 'local' adatbázist (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "nincs megadva egyetlen cél se (használja a '-h'-t segítségért)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "nincs megadva egyetlen mûvelet se (használja a '-h'-t segítségért)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "nincs megadva fájl a --owns számára\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "nem sikerült olvasni a '%s' fájlt: %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "nem sikerült egy könyvtár tulajdonosát megállapítani"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "nem állapítható meg a valódi útvonal a(z) '%s' számára: %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "a %s fájlt a %s %s tartalmazza\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Egyik csomag sem tartalmazza a következõt: %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "egyetlen használható csomagrepó sincs beállítva.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Frissítések keresése... "
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "nem találtam frissítést"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "a(z) \"%s\" csoport nem található\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "nincs megadva csomagfájl a --file számára\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "nem sikerült betölteni a(z) '%s' csomagot (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "a(z) \"%s\" csomag nem található\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: %s csoport:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Eltávolítja a teljes tartalmat? [I/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Eltávolítja %s-t a(z) %s csoportból? [I/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "nem sikerült inicializálni a tranzakciót (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "nem sikerült a(z) '%s' célt hozzáadni a tranzakcióhoz (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s-t igényli: %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Célok:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"El kívánja távolítani ezeket a csomagokat? [I/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "El kívánja távolítani a régi csomagokat a gyorsítótárból? [I/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "a régi csomagok eltávolítása a gyorsítótárból... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "nem sikerült elérni a gyorsítótár könyvtárát\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "El kíván távolítani minden csomagot a gyorsítótárból? [I/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "az összes csomag eltávolítása a gyorsítótárból... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "nem sikerült törölni a gyorsítótár könyvtárát\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "nem sikerült létrehozni az új gyorsítótár könyvtárát\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "nem sikerült szinkronizálni %s-t: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "nem sikerült frissíteni a következõt: %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " a(z) %s naprakész\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "a(z) '%s' repó nem létezik\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "a(z) '%s' csomag nem található a(z) '%s' repóban\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "a(z) '%s' csomag nem található\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "a(z) \"%s\" repó nem található.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: A csomagadatbázisok szinkronizálása...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "a csomaglisták szinkronizálása"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "nem sikerült szinkronizálni valamelyik adatbázist"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Teljes rendszerfrissítés indítása...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "teljes rendszerfrissítés indítása"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: a pacman egy újabb verzióját észlelte a \"pacman\" csomagnak.\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: Ajánlott, hogy engedje, hogy a pacman elõbb saját magát\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: frissítse, majd újra futtathatja a mûveletet az újabb verzióval.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Elõször csak a pacman frissítése? [I/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: A teljes tartalom telepítése? [I/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: Telepíti %s-t a(z) %s csoportból? [I/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': nem található a távoli adatbázisban\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "igényli a következõt:"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " a helyi adatbázis naprakész\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"A letöltés megkezdése...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Kezdõdhet a letöltés? [I/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"A frissítési folyamat megkezdése...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Kezdõdhet a telepítés? [I/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "függõségek vizsgálata... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "fájlütközések vizsgálata... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "takarítás... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "függõségek feloldása... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "belsõ ütközések keresése... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "%s telepítése... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "%s telepítve (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "%s eltávolítása... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "%s eltávolítva (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "%s frissítése... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "%s frissítve (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "csomagok integritásának ellenõrzése... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "sikertelen.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Csomagok letöltése a(z) %s repóból...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ":: %1$s igényli %2$s-t az IgnorePkg-bõl. Telepíti %2$s-t? [I/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s az IgnorePkg része. Mégis telepíti? [I/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s HoldPkgnak lett jelölve. Biztosan eltávolítja? [I/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Lecseréli %s-t erre: %s/%s? [I/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s ütközik a következõvel: %s. Eltávolítja a %s-t? [I/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: a helyi verzió újabb. Mégis frissíti? [I/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: a helyi verzió naprakész. Mégis frissíti? [I/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: %s sérült. Kívánja törölni? [I/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "telepítés:"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "frissítés:"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "eltávolítás:"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "fájlütközések vizsgálata"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "Nincs\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Eltávolítás:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Teljes eltávolított méret: %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Teljes csomagméret: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Teljes telepített méret: %.2f MB\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "igényli a következõt: %s"
-
-#~ msgid "'%s': %s\n"
-#~ msgstr "'%s': %s\n"
diff --git a/src/pacman/po/it.po b/src/pacman/po/it.po
deleted file mode 100644
index f6cef831..00000000
--- a/src/pacman/po/it.po
+++ /dev/null
@@ -1,1109 +0,0 @@
-# Italian translations for Pacman package manager package.
-# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-# Giovanni 'voidnull' Scafora <linuxmania@gmail.com>, 2007.
-# Alessio 'mOLOk' Bolognino <themolok@gmail.com>, 2007.
-# Lorenzo '^zanDarK' Masini <lorenxo86@gmail.com>, 2007.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Pacman package manager 3.0.0\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-03-31 04:00+0100\n"
-"Last-Translator: Giovanni Scafora <linuxmania@gmail.com>\n"
-"Language-Team: Arch Linux Italian Team <linuxmania@gmail.com>\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"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" Se il gestore dei pacchetti non è già in funzione,\n"
-" è possibile rimuovere %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "caricamento dei dati in corso... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "impossibile aggiungere il pacchetto '%s' (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "fatto.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "preparazione non riuscita (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: richiede %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: va in conflitto con %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s è già presente in '%s' e in '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s è già presente nel filesystem\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"si sono verificati degli errori, nessun pacchetto è stato aggiornato.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f MB richiesti, spazio a disposizione %.1f MB"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "impossibile eseguire l'operazione richiesta (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "impossibile annullare l'operazione richiesta (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "debug"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "errore"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "attenzione"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "funzione"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "Y"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "SI"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "errore: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "attenzione: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Installato esplicitamente"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "Installato come dipendenza di un altro pacchetto"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "Sconosciuto"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Descrizione : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Nome : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Versione : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licenza :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Gruppi :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Fornisce :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Dipende da :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Rimuove :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Richiesto da :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Conflitto con :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Kb richiesti : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Autore : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Architettura : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Creato il : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Tipo : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Installato il : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Motivo : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Script install : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Si"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "No"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repository : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Sostituisce :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Dimensione pkg : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "Somma MD5 : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "Somma SHA1 : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "File di backup:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "si è verificato un errore durante il calcolo dei checksum di %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MODIFICATO\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Non modificato\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "MANCANTE\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(nessuno)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "Nessun changelog disponibile per '%s'.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "uso: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [opzioni] <file>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [opzioni] <file>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [opzioni] [pacchetto]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [opzioni] <pacchetto>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [opzioni] [pacchetto]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [opzioni] <file>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"usare '%s --help' con le altre opzioni per ottenere maggiori informazioni\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "uso: %s {-A --add} [opzioni] <file>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "opzioni:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps ignora i controlli sulle dipendenze\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force forza l'installazione e sovrascrive i file in "
-"conflitto\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "uso: %s {-R --remove} [opzioni] <pacchetto>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr " -c, --cascade rimuove i pacchetti con tutte le dipendenze\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly rimuove solo la voce nel database, non rimuove i "
-"file\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave rimuove anche i file di configurazione\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive rimuove anche le dipendenze (non richieste altrove)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "uso: %s {-F --freshen} [opzioni] <file>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "uso: %s {-U --upgrade} [opzioni] <file>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "uso: %s {-Q --query} [opzioni] [pacchetto]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog mostra il changelog di un pacchetto\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans elenca i pacchetti installati che erano dipendenze\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr " ma non più richiesti da alcun pacchetto\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr ""
-" -g, --groups visualizza tutti i membri di un gruppo di pacchetti\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info visualizza le informazioni sul pacchetto\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list elenca i file contenuti nel pacchetto\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign elenca tutti i pacchetti non trovati nei database\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr ""
-" -o, --owns <file> visualizza il pacchetto che contiene il <file>\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file interroga il file di pacchetto invece del database\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> cerca nei pacchetti installati le stringhe "
-"corrispondenti\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-" -u, --upgrades elenca tutti i pacchetti che possono essere "
-"aggiornati\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "uso: %s {-S --sync} [opzioni] [pacchetto]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean rimuove i vecchi pacchetti dalla cache (usare -cc "
-"per\n"
-" rimuoverli tutti)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly installa solo le dipendenze\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr ""
-" -l, --list <repo> visualizza la lista dei pacchetti di un repository\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris stampa gli URI dei pacchetti e le loro dipendenze\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> cerca le stringhe corrispondenti nei repository "
-"remoti\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr ""
-" -u, --sysupgrade aggiorna tutti i pacchetti installati nel sistema\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly scarica i pacchetti senza installarli/aggiornarli\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr ""
-" -y, --refresh scarica dal server i database aggiornati dei "
-"pacchetti\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr " --ignore <pkg> ignora l'aggiornamento di un pacchetto\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr " --config <path> imposta un file di configurazione alternativo\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm non chiede alcuna conferma\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <numero> specifica in anticipo le risposte alle domande\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr " --noprogressbar non visualizza la barra di avanzamento\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr " --noscriptlet non esegue un eventuale script di install\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose mostra maggiori informazioni\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-" -r, --root <path> imposta una root alternativa per l'installazione\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr ""
-" -b, --dbpath <path> imposta un percorso alternativo per il database\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr " --cachedir <dir> imposta un percorso alternativo per la cache\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" This program may be freely redistributed under\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr " the terms of the GNU General Public License\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' non è un livello di debug valido"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' non è una directory di cache valida\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' non è un path del database valido\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' non è un path di root valido\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "è consentito eseguire solo un'operazione per volta\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr "attenzione: locale non valido, sarà utilizzato il locale \"C\""
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "impossibile inizializzare la libreria alpm (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "operazione possibile solo come root.\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "impossibile analizzare la configurazione (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Pacchetti :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "impossibile registrare il database 'local' (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "nessun pacchetto specificato (usare -h per un aiuto)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "nessuna operazione specificata (usare -h per un aiuto)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "nessun file specificato per --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "impossibile leggere il file '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "impossibile determinare il proprietario di una directory"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "impossibile determinare la posizione reale di '%s': %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s è contenuto in %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Nessun pacchetto contiene %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "non è stato configurato nessun repository di pacchetti valido.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Controllo degli aggiornamenti dei pacchetti in corso..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "nessun aggiornamento trovato"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "gruppo \"%s\" non trovato\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "nessun file di pacchetto specificato per --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "impossibile caricare il pacchetto '%s' (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "pacchetto \"%s\" non trovato\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: gruppo %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Rimuovere l'intero contenuto? [Y/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Rimuovere %s dal gruppo %s? [Y/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "inizializzazione non riuscita (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "impossibile aggiungere il pacchetto '%s' (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s è richiesto da %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Pacchetti:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Rimuovere questi pacchetti? [Y/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Rimuovere i vecchi pacchetti dalla cache? [Y/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "rimozione dei vecchi pacchetti dalla cache in corso... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "impossibile accedere alla directory di cache\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Rimuovere tutti i pacchetti dalla cache? [Y/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "rimozione di tutti i pacchetti dalla cache in corso... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "impossibile rimuovere la directory di cache\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "impossibile creare una nuova directory di cache\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "impossibile sincronizzare %s: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "impossibile aggiornare %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s è aggiornato\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "impossibile trovare il repository '%s'\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "impossibile trovare il pacchetto '%s' nel repository '%s'\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "impossibile trovare il pacchetto '%s'\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "impossibile trovare il repository \"%s\".\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Sincronizzazione dei database in corso...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "sincronizzazione della lista dei pacchetti in corso"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "impossibile sincronizzare i database"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Aggiornamento del sistema in corso...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "aggiornamento del sistema in corso"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman ha rilevato una versione più recente di \"pacman\".\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: Si consiglia di consentire a pacman di aggiornarsi\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: prima e poi riavviare l'operazione con la versione più recente.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Aggiornare pacman adesso? [Y/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: Installare l'intero contenuto? [Y/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: Installare %s dal gruppo %s? [Y/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': non trovato nel database\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "richiede"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " Il database locale è aggiornato\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Download in corso...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Procedere con il download? [Y/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Aggiornamento in corso...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Procedere con l'installazione? [Y/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "controllo delle dipendenze in corso... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "controllo dei conflitti in corso... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "pulizia in corso... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "risoluzione delle dipendenze in corso... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "ricerca dei conflitti incrociati in corso... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "installazione di %s in corso... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "%s installato (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "rimozione di %s in corso... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "%s rimosso (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "aggiornamento di %s in corso... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "%s aggiornato (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "controllo dell'integrità dei pacchetti in corso... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "non riuscito.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Recupero dei pacchetti da %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ":: %1$s richiede %2$s da IgnorePkg. Installare %2$s? [Y/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s è in IgnorePkg. Installare ugualmente? [Y/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s è presente in HoldPkg. Rimuovere ugualmente? [Y/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Sostituire %s con %s/%s? [Y/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s va in conflitto con %s. Rimuovere %s? [Y/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: la versione installata è più recente. Aggiornare ugualmente? [Y/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: la versione installata è aggiornata. Aggiornare ugualmente? [Y/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: L'archivio %s è corrotto. Eliminarlo? [Y/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "installazione in corso di "
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "aggiornamento in corso di"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "rimozione in corso di"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "controllo dei conflitti in corso"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "Nessuno\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Rimuovere:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Dimensione totale dei pacchetti rimossi: %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Dimensione totale dei pacchetti: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Dimensione totale dei pacchetti installati: %.2f MB\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "richiede: %s"
-
-#~ msgid "'%s': %s\n"
-#~ msgstr "'%s': %s\n"
-
-#~ msgid "is required by"
-#~ msgstr "è richiesto da"
-
-#~ msgid "Installed Size : %ld K\n"
-#~ msgstr "Dimensione : %ld K\n"
-
-#~ msgid "memory allocation failure\n"
-#~ msgstr "allocazione della memoria non riuscita\n"
-
-#~ msgid "add target %s\n"
-#~ msgstr "aggiungere il pacchetto %s\n"
-
-#~ msgid "could not add target (%s)\n"
-#~ msgstr "impossibile aggiungere il pacchetto (%s)\n"
-
-#~ msgid "conflict: %s"
-#~ msgstr "conflitto: %s"
-
-#~ msgid "could not release transaction (%s)"
-#~ msgstr "impossibile annullare l'operazione richiesta (%s)"
diff --git a/src/pacman/po/pacman.pot b/src/pacman/po/pacman.pot
deleted file mode 100644
index f7b7f1c3..00000000
--- a/src/pacman/po/pacman.pot
+++ /dev/null
@@ -1,1031 +0,0 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-#, fuzzy
-msgid ""
-msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
-"Content-Transfer-Encoding: 8bit\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr ""
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr ""
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr ""
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr ""
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ""
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ""
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr ""
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr ""
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ""
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr ""
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr ""
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr ""
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr ""
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr ""
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr ""
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr ""
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr ""
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr ""
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr ""
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr ""
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr ""
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr ""
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr ""
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr ""
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr ""
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr ""
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr ""
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr ""
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr ""
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr ""
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr ""
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr ""
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr ""
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr ""
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr ""
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr ""
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr ""
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr ""
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr ""
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr ""
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr ""
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr ""
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr ""
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr ""
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr ""
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr ""
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr ""
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr ""
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr ""
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr ""
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr ""
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr ""
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr ""
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr ""
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr ""
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr ""
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr ""
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr ""
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr ""
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr ""
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr ""
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr ""
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr ""
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr ""
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr ""
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr ""
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr ""
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr ""
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr ""
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr ""
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr ""
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr ""
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr ""
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr ""
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr ""
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr ""
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr ""
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr ""
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr ""
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr ""
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr ""
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr ""
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr ""
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr ""
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr ""
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr ""
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr ""
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr ""
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr ""
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr ""
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr ""
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr ""
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr ""
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr ""
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr ""
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ""
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr ""
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ""
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr ""
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr ""
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ""
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr ""
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr ""
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr ""
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr ""
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr ""
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr ""
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr ""
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr ""
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr ""
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr ""
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr ""
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr ""
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr ""
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ""
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr ""
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr ""
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ""
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr ""
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ""
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ""
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr ""
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr ""
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr ""
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr ""
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr ""
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr ""
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr ""
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr ""
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr ""
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr ""
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr ""
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr ""
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr ""
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr ""
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr ""
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr ""
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr ""
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr ""
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ""
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ""
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr ""
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr ""
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr ""
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr ""
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr ""
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr ""
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr ""
diff --git a/src/pacman/po/pl_PL.po b/src/pacman/po/pl_PL.po
deleted file mode 100644
index a8f33c36..00000000
--- a/src/pacman/po/pl_PL.po
+++ /dev/null
@@ -1,1093 +0,0 @@
-# Polish translations for Pacman package manager package
-# Polskie tłumaczenia dla pakietu Pacman package manager.
-# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-#
-# Mateusz Jędrasik <m.jedrasik@gmail.com>, 2007.
-# Jaroslaw Swierczynski <swiergot@gmail.com>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: Pacman package manager 3.0.1\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-05-08 00:32+0200\n"
-"Last-Translator: Mateusz Jędrasik <m.jedrasik@gmail.com>\n"
-"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%"
-"100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: KBabel 1.11.4\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-"\tjeśli jesteś pewien, że menedżer pakietów nie jest już\n"
-"\turuchomiony, możesz usunąć %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "Å‚adowanie informacji o pakietach... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "nie udało się dodać celu '%s' (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "gotowe.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "nie udało się przygotować transakcji (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: wymaga %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: konfliktuje z %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s znajduje siÄ™ w '%s' i w '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s znajduje się w systemie plików\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"wystąpiły błędy, nie zaktualizowano żadnych pakietów.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f MB wymagane, dostępnych %.1f MB"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "nie udało się dokonać transakcji (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "nie udało się wyswobodzić transaction (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "debug"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "błąd"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "ostrzeżenie"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "funkcja"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "T"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "TAK"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "błąd: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "ostrzeżenie: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "zainstalowano na żądanie"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "zainstalowano jako zależność"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "nieznany"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Opis : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Nazwa : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Wersja : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licencja :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Grupy :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Dostarcza :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Zależy od :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Usuwa :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Wymag. przez :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Konflikty : "
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Zajmuje : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "PakujÄ…cy : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Architektura : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Data budowy : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Typ budowy : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Data inst. : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Powód inst. : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Skrypt inst. : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Tak"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "Nie"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repozytorium : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Zastępuje :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Do pobrania : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "Suma MD5 : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "Suma SHA1 : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Kopie zapas. :\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "błąd kalkulowania sum kontrolnych dla %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "ZMIENIONE\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Nie zmienione\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "BRAKUJÄ„CE\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(brak)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "Dziennik zmian dla '%s' nie jest dostępny.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "składnia: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [opcje] <plik>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [opcje] <plik>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [opcje] [pakiet]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [opcje] <pakiet>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [opcje] [pakiet]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [opcje] <plik>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"użyj '%s --help' z innymi opcjami dla dalszych składni\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "składnia: %s {-A --add} [opcje] <plik>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "opcje:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps pomija sprawdzanie zależności\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force wymusza instalacjÄ™, nadpisujÄ…c konfliktujÄ…ce pliki\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "składnia: %s {-R --remove} [opcje] <pakiet>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr ""
-" -c, --cascade usuwa pakiet i wszystkie pakiety od niego zależne\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly usuwa jedynie wpis w bazie danych, nie usuwa plików\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave usuwa także pliki konfiguracyjne\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive usuwa także zależności (nie wymagane przez inne "
-"pakiety)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "składnia: %s {-F --freshen} [opcje] <plik>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "składnia: %s {-U --upgrade} [opcje] <plik>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "składnia: %s {-Q --query} [opcje] [pakiet]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog wyświetla dziennik zmian dla pakietu\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr " -e, --orphans pokazuje wszystkie pakiety zainstalowane jako\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr ""
-" zależności, ale nie wymagane już przez żaden pakiet\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr " -g, --groups wyświetla zawartość grupy pakietów\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info wyświetla informację o pakiecie\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list pokazuje zawartość wybranego pakietu\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign pokazuje zainstalowane pakiety nie znalezione w "
-"bazach\n"
-" synchronizacji\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr " -o, --owns <plik> pokazuje pakiet zawierajÄ…cy <plik>\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <pakiet> pokazuje informacje z pliku pakietu zamiast bazy "
-"danych\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> przeszukuje lokalnie zainstalowane pakiety według\n"
-" pasujących łańcuchów znaków\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-" -u, --upgrades pokazuje wszystkie pakiety, które można uaktualnić\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "składnia: %s {-S --sync} [opcje] [pakiet]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean usuwa stare pakiety z katalogu pamięci podręcznej\n"
-" (-cc usuwa wszystkie)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly instaluje tylko zależności\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr " -l, --list <repo> pokazuje listę pakietów w repozytorium\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris wyświetla adresy URI dla danych pakietów oraz ich\n"
-" zależności\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> przeszukuje zdalne repozytoria według pasujących\n"
-" łańcuchów znaków\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr " -u, --sysupgrade uaktualnia wszystkie niektualne pakiety\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly tylko pobiera pakiety bez instalacji/uaktualniania\n"
-" czegokolwiek\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr " -y, --refresh pobiera świeże bazy danych pakietów z serwera\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <pkt> ignoruje uaktualnienie pakietu (można użyć więcej "
-"niż\n"
-" raz)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr " --config <ścżk> ustawia alternatywny plik konfiguracji\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr ""
-" --noconfirm nie pyta o potwierdzenie ze strony użytkownika\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <numer> pozwala z góry udzielić odpowiedzi na pytania\n"
-" (zobacz stronę podręcznika)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar wyłącza pasek postępu podczas pobierania plików\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet nie wykonuje skryptu instalacyjnego jeśli takowy "
-"istnieje\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose włącza tryb wypisywania szczegółów\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr " -r, --root <ścżk> ustawia alternatywne drzewo instalacji\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr " -b, --dbpath <ścżk> ustawia alternatywną lokalizację bazy danych\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr ""
-" --cachedir <kat> ustawia alternatywną lokalizację pamięci podręcznej\n"
-" pakietów\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" Ten program może być swobodnie rozpowszechniany na\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr ""
-" zasadach Powszechnej Licencji Publicznej GNU (GPL)\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' nie jest poprawnym poziomem odpluskwiania"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' nie jest poprawnym katalogiem pamięci podręcznej\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' nie jest poprawną ścieżką db (bazy danych)\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' nie jest poprawną ścieżką docelową\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "tylko jedna operacja może być użyta na raz\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr "ostrzeżenie: ustawione locale jest niewłaściwe; używanie locale \"C\""
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "nie udało się zinicjalizować biblioteki alpm (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "tą operację wykonać można jedynie jako root.\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "nie udało się przeczytać pliku konfiguracji (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Cele :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "nie udało się zarejestrować 'lokalnej' bazy danych (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "nie podano żadnych celów (użyj -h aby otrzymać pomoc)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "nie podano żadnej operacji (użyj -h aby otrzymać pomoc)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "nie podano pliku dla --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "nie udało się odczytać pliku '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "nie można ustalić właściciela katalogu"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "nie można ustalić pełnej ścieżki dla '%s': %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s jest własnością %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Żaden pakiet nie jest właścicielem %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "nie skonfigurowano używalnych repozytoriów.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Sprawdzanie możliwych aktualizacji..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "żadnych aktualizacji nie znaleziono"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "grupa \"%s\" nie została znaleziona\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "nie podano pliku pakietu dla --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "nie udało się załadować pakietu '%s' (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "pakiet \"%s\" nie został odnaleziony\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: grupa %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Usunąć całą zawartość [T/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Usunąć %s z grupy %s? [T/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "nie udało się zainicjować transakcji (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "nie udało się dodać celu '%s' (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s jest wymagane przez %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Cele:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Czy chcesz usunąć te pakiety? [T/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Czy chcesz usunąć stare pakiety z pamięci podręcznej? [T/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "usuwanie starych pakietów z pamięci podręcznej... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "brak dostępu do katalogu pamięci podręcznej\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Czy chcesz usunąć wszystkie pakiety z pamięci podręcznej? [T/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "usuwanie wszystkich pakietów z pamięci podręcznej... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "nie udało się usunąć katalogu pamięci podręcznej\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "nie udało się utworzyć nowego katalogu pamięci podręcznej\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "nie udało się zsynchronizować %s: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "nie udało się zaktualizować %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s jest już w najnowszej wersji\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "repozytorium '%s' nie istnieje\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "pakiet '%s' nie został odnaleziony w repozytorium '%s'\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "pakiet '%s' nie został odnaleziony\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "repozytorium \"%s\" nie zostało znalezione.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Synchronizowanie baz danych z pakietami...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "synchronizowanie list pakietów"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "nie udało się zsynchronizować żadnych baz danych"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Rozpoczynanie pełnej aktualizacji systemu...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "rozpoczynanie pełnej aktualizacji systemu"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman wykrył nowszą wersję pakietu \"pacman\".\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: Rekomendowane jest ażeby pozwolić pacman'owi zaktualizować się\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: najpierw, po czym uruchomić ponownie operację z nowszą wersją.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Zaktualizować pacman'a najpierw? [T/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: Zainstalować całą zawartość? [T/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: Zainstalować %s z grupy %s? [T/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': nie znaleziono w bazie danych synchronizacji\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "wymaga"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " lokalna baza pakietów jest już w najnowszej wersji\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Rozpoczynanie pobierania...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Kontynuować pobieranie? [T/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Rozpoczynanie procesu aktualizacji...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Kontynuować instalację? [T/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "sprawdzanie zależności... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "sprawdzanie konfliktów w systemie plików... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "czyszczenie... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "rozwiązywanie zależności... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "szukanie konfliktów międzypakietowych... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "instalowanie %s... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "zainstalowano %s (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "usuwanie %s... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "usunięto %s (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "aktualizowanie %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "zaktualizowano %s (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "sprawdzanie spójności pakietów... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "nieudane.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Pobieranie pakietów z %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ":: %1$s wymaga %2$s z IgnorePkg. Zainstalować %2$s? [T/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s jest w IgnorePkg. Zainstalować mimo to? [T/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s jest oznaczony jako HoldPkg. Usunąć mimo to? [T/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Zastąpić %s przez %s/%s? [T/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s konfliktuje z %s. Usunąć %s? [T/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: lokalna wersja jest nowsza. Aktualizować pomimo to? [T/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: lokalny pakiet jest już w najnowszej wersji. Aktualizować mimo to? "
-"[T/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: Archiwum %s jest uszkodzone. Czy chcesz je usunąć? [T/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "instalowanie"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "aktualizowanie"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "usuwanie"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "sprawdzanie konfliktów plików"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "brak\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Usunąć:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Całkowity rozmiar usunięć: %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Całkowity rozmiar pakietów: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Całkowity rozmiar po instalacji: %.2f MB\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "wymaga: %s"
diff --git a/src/pacman/po/pt_BR.po b/src/pacman/po/pt_BR.po
deleted file mode 100644
index e8f53785..00000000
--- a/src/pacman/po/pt_BR.po
+++ /dev/null
@@ -1,1109 +0,0 @@
-# translation of pt_BR.po to Português do Brasil
-# Brazilian Portuguese translations for Pacman package manager package.
-# Copyright (C) 2002-2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package manager package.
-#
-# Douglas Soares de Andrade <douglas@archlinux-br.org>, 2007.
-# Hugo Doria <hugodoria@archlinux-br.org>, 2007.
-# Lincoln de Sousa <lincoln@archlinux-br.org>, 2007.
-# Leandro Inácio <leandro@archlinux-br.org>, 2007.
-msgid ""
-msgstr ""
-"Project-Id-Version: pt_BR\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-03-22 13:52-0300\n"
-"Last-Translator: Douglas Soares de Andrade <douglas@archlinux-br.org>\n"
-"Language-Team: Archlinux-br <contato@archlinux-br.org>\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: KBabel 1.11.4\n"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" caso tenha certeza que nenhum gerenciador de pacotes está rodando,\n"
-" você pode remover %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "carregando informações do pacote... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "falha com o parametro'%s' (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "concluído.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "falha ao preparar transação (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: requer %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: conflita com %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s existe em '%s' e em '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s existe no sistema de arquivos\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"ocorreram alguns erros, portanto, nenhum pacote foi atualizado.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: %.1f MB requerido, possui %.1f MB"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "falha ao terminar a transação (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "falha ao liberar a transação (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "depurar"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "erro"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "aviso"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "função"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "S"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "SIM"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "erro: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "aviso: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Explicitamente Instalado"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "Instalado como dependência de outro pacote"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "Descrição : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Nome : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "Versão : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Licença :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Grupos :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "Provê :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "Depende de :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "Remove :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "Requerido Por :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Conflita Com :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Tamanho Instalado : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Empacotador : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Arquitetura : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Compilado em : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Tipo da compilação : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Data da Instalação : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Razão da instalação : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Script de Instalação : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Sim"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "Não"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Repositório : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "Substitui :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Tamanho do Download : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "Soma MD5 : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "Soma SHA1 : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Arquivos de Backup:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "erro ao calcular as somas de verificação para %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "MODIFICADO\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Não modificado\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "NÃO ENCONTRADO\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(Nenhum)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "changelog não disponível para '%s'.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "modo de usar: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [opções] <arquivo>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [opções] <arquivo>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [opções] [pacote]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [opções] <pacote>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [opções] [pacote]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [opções] <arquivo>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"use '%s --help' com outras opções para mais sintaxes\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "uso: %s {-A --add} [opções] <arquivo>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "opções:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps ignora a verificação de dependências\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force forçar instalação, sobrescrever arquivos "
-"conflitantes\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "uso: %s {-R --remove} [opções] <pacote>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr " -c, --cascade remove pacotes e suas dependências\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly remove apenas a entrada na base de dados, mas não "
-"remove os arquivos\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave remove os arquivos de configuração\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive remove também as dependências (aquelas que não vão "
-"quebrar outros pacotes)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "uso: %s {-F --freshen} [opções] <arquivo>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "uso: %s {-U --upgrade} [opções] <arquivo>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "usor: %s {-Q --query} [opções] [pacote]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog visualiza o changelog de um pacote\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans lista todos os pacotes instalados como "
-"dependências, mas que não são mais\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr " requeridos por outros pacotes\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr ""
-" -g, --groups visualiza todos os membros de um grupos de pacotes\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info visualiza informações do pacote\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list lista o conteúdo do pacote pesquisado\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign lista todos os pacotes que não foram encontrados na"
-"(s) base(s) de dados de pacotes\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr " -o, --owns <arquivo> pesquisa o pacote que contém <arquivo>\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <pacote> pesquisa o arquivo de pacote <pacote> ao invés da "
-"base de dados\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> busca em arquivos localmente instalados por textos "
-"coincidentes\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-" -u, --upgrades lista todos os pacotes que podem ser atualizados\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "uso: %s {-S --sync} [opções] [pacote]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean remove pacotes antigos do diretório de cache (use -"
-"cc para remover todos os pacotes)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly instala apenas as dependências \n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr ""
-" -l, --list <repo> visualizar uma lista dos pacotes em um repositório\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris imprime as URIs dos pacotes e suas dependências\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> procura em repositórios remotos por textos "
-"coincidentes\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr ""
-" -u, --sysupgrade atualiza todos os pacotes que estão desatualizados "
-"no sistema\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly baixa os pacotes mas não instala/atualiza nenhum "
-"pacote\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr " -y, --refresh atualizar a base de dados de pacotes\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <pkg> ignora a atualização de um pacote (pode ser usado "
-"mais de uma vez)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr ""
-" --config <caminho> define um arquivo de configuração alternativo\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm não pede nenhuma confirmação\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <número> pré-especificar respostas para as perguntas (veja a "
-"manpage)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr ""
-" --noprogressbar não mostra a barra de progresso enquanto baixa os "
-"arquivos\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet não executar o scriptlet de instalação se o mesmo "
-"existir\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose informações adicionais\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-" -r, --root <caminho> define um diretório de instalação alternativo\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr ""
-" -b, --dbpath <caminho> define uma localização diferente para a base de "
-"dados\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr " --cachedir <dir> define um diretório de cache alternativo\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" Este programa pode ser distribuído livremente sob\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr ""
-" os termos da Licença GPL - General Public License\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' não é um nível de depuração válido"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' não é um diretório de cache válido\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' não é um caminho de base de dados válido\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "'%s' não é uma caminho válido\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "só uma operação pode ser usada de cada vez\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr "aviso: o locale atual é inválido; usando o locale padrão \"C\""
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "falha ao iniciar biblioteca alpm (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr "você não pode realizar esta operação a menos que você seja root\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "falha ao interpretar configuração (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Pacotes :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "não foi possível registar a base de dados local (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "nenhum arquivo definido (use -h para obter ajuda)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "nenhuma operação definida (use -h para obter ajuda)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "nenhum arquivo especificado para --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "falha ao ler o arquivo '%s' %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "não é possível determinar o dono de um diretório"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "não é possível determinar o caminho de '%s': %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s pertence a %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Nenhum pacote possui %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "nenhum repositório de pacotes configurado.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Buscando atualizações de pacotes..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "nenhuma atualização encontrada"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "grupo \"%s\" não encontrado\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "nenhum pacote foi especificado para a opção --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "falha ao carregar o pacote '%s' (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "pacote \"%s\" não encontrado\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: grupo %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Remover todo o conteúdo? [S/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Remover %s do grupo %s? [S/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "falha ao iniciar transação (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "falha com o parametro '%s' (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s é necessário para %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Pacotes:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Você deseja remover estes pacotes? [S/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Deseja remover os pacotes antigos do cache? [S/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "removendo pacotes antigos do cache... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "não foi possível acessar o diretório de cache\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Você deseja remover todos os pacotes do diretório de cache? [S/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "removendo todos os pacotes do diretório de cache... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "não foi possível remover o diretório de cache\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "não foi possível criar o novo diretório de cache\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "falha ao sincronizar %s: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "falha ao atualizar %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s está atualizado\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "repositório '%s' não existe\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "pacote '%s' não foi encontrado no repositório '%s'\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "pacote '%s' não foi encontrado.\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "repositório \"%s\" não foi encontrado.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Sincronizando a base de dados de pacotes...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "sincronizando as listas de pacotes"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "falha ao sincronizar algumas bases de dados"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Iniciando atualização do sistema...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "iniciando atualização de todo o sistema"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman detectou uma nova versão do pacote \"pacman\".\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: É recomendado que você permita que o pacman se atualize\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ""
-":: primeiro, em seguida você pode executar a operação novamente com a nova "
-"versão.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Atualizar o pacman primeiro? [S/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: Instalar todo o conteúdo? [S/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: Instalar %s do grupo %s? [S/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': não foi encontrado na base de dados de pacotes\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "requer"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr "Base de dados de pacotes está atualizada.\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Iniciando download...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "Continuar o download? [S/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Iniciando processo de atualização...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "Continuar a instalação? [S/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "verificando dependências... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "verificando conflitos de arquivos... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "finalizando..."
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "resolvendo dependências... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "procurando por conflitos internos... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "instalando %s... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "%s instalado (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "removendo %s... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "%s removido (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "atualizando %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "%s atualizado (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "verificando a integridade do pacote... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "falhou.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Obtendo pacotes do repositório %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ""
-":: %1$s requer %2$s, mas ele está em IgnorePkg. Instalar %2$s assim mesmo? "
-"[S/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ""
-"::O pacote %s está na lista de pacotes ignorados (IgnorePkg). Instalar assim "
-"mesmo? [S/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s é designado como um HoldPkg Remover assim mesmo? [S/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Substituir %s com %s/%s? [S/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s conflita com %s. Remover %s? [S/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: a versão local é mais recente. Deseja atualizar mesmo assim? [S/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ""
-":: %s-%s: a versão local está atualizada. Deseja atualizar mesmo assim? [S/"
-"n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: Arquivo %s está corrompido. Você gostaria de apagá-lo? [S/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "instalando"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "atualizando"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "removendo"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "verificando conflitos de arquivo"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "Nenhum\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Remover:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Tamanho total dos pacotes a serem removidos: %.2f MB\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Tamanho total dos pacotes a serem baixados: %.2f MB\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Tamanho total da instalação: %.2f MB\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "requer: %s"
-
-#~ msgid "'%s': %s\n"
-#~ msgstr "'%s': %s\n"
diff --git a/src/pacman/po/remove-potcdate.sin b/src/pacman/po/remove-potcdate.sin
deleted file mode 100644
index 2436c49e..00000000
--- a/src/pacman/po/remove-potcdate.sin
+++ /dev/null
@@ -1,19 +0,0 @@
-# Sed script that remove the POT-Creation-Date line in the header entry
-# from a POT file.
-#
-# The distinction between the first and the following occurrences of the
-# pattern is achieved by looking at the hold space.
-/^"POT-Creation-Date: .*"$/{
-x
-# Test if the hold space is empty.
-s/P/P/
-ta
-# Yes it was empty. First occurrence. Remove the line.
-g
-d
-bb
-:a
-# The hold space was nonempty. Following occurrences. Do nothing.
-x
-:b
-}
diff --git a/src/pacman/po/ru_RU.po b/src/pacman/po/ru_RU.po
deleted file mode 100644
index c25fef02..00000000
--- a/src/pacman/po/ru_RU.po
+++ /dev/null
@@ -1,1090 +0,0 @@
-# Pacman Russian Translation
-# Copyright (C) 2007 Judd Vinet <jvinet@zeroflux.org>
-# This file is distributed under the same license as the Pacman package.
-# Vladimir Bayrakovskiy <4rayven@gmail.com>, 2007
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Pacman package manager 3.0.0\n"
-"Report-Msgid-Bugs-To: pacman-dev@archlinux.org\n"
-"POT-Creation-Date: 2007-04-28 04:02-0400\n"
-"PO-Revision-Date: 2007-03-07 11:45-0500\n"
-"Last-Translator: Vladimir Bayrakovskiy <4rayven@gmail.com>\n"
-"Language-Team: Russian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\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"
-
-#: src/pacman/add.c:72 src/pacman/remove.c:82 src/pacman/sync.c:482
-#: src/pacman/sync.c:531
-#, c-format
-msgid ""
-" if you're sure a package manager is not already running,\n"
-" you can remove %s%s\n"
-msgstr ""
-" еÑли Ð’Ñ‹ уверены, что pacman уже не запущен, можете\n"
-" удалить %s%s\n"
-
-#: src/pacman/add.c:79
-msgid "loading package data... "
-msgstr "чтение информации о пакете... "
-
-#: src/pacman/add.c:83
-#, c-format
-msgid "failed to add target '%s' (%s)"
-msgstr "не удалоÑÑŒ добавить цель '%s' (%s)"
-
-#: src/pacman/add.c:88 src/pacman/sync.c:196 src/pacman/trans.c:73
-#: src/pacman/trans.c:80 src/pacman/trans.c:91 src/pacman/trans.c:105
-#: src/pacman/trans.c:119 src/pacman/trans.c:131 src/pacman/trans.c:142
-msgid "done.\n"
-msgstr "готово.\n"
-
-#: src/pacman/add.c:95 src/pacman/remove.c:101 src/pacman/sync.c:616
-#, c-format
-msgid "failed to prepare transaction (%s)\n"
-msgstr "не удалоÑÑŒ подготовить операцию (%s)\n"
-
-#: src/pacman/add.c:104
-#, c-format
-msgid ":: %s: requires %s"
-msgstr ":: %s: требует %s"
-
-#: src/pacman/add.c:125 src/pacman/sync.c:643
-#, c-format
-msgid ":: %s: conflicts with %s"
-msgstr ":: %s: конфликтует Ñ %s"
-
-#: src/pacman/add.c:134 src/pacman/sync.c:707
-#, c-format
-msgid "%s exists in both '%s' and '%s'\n"
-msgstr "%s ÑодержитÑÑ Ð² '%s' и в '%s'\n"
-
-#: src/pacman/add.c:140 src/pacman/sync.c:713
-#, c-format
-msgid "%s: %s exists in filesystem\n"
-msgstr "%s: %s уже еÑÑ‚ÑŒ на диÑке\n"
-
-#: src/pacman/add.c:146 src/pacman/sync.c:719 src/pacman/sync.c:725
-msgid ""
-"\n"
-"errors occurred, no packages were upgraded.\n"
-msgstr ""
-"\n"
-"произошли ошибки, пакеты не были обновлены.\n"
-
-#: src/pacman/add.c:156 src/pacman/sync.c:650
-#, c-format
-msgid ":: %.1f MB required, have %.1f MB"
-msgstr ":: требуетÑÑ %.1f MB, доÑтупно %.1f MB"
-
-#: src/pacman/add.c:169 src/pacman/remove.c:141 src/pacman/sync.c:700
-#, c-format
-msgid "failed to commit transaction (%s)\n"
-msgstr "не удалоÑÑŒ завершить операцию (%s)\n"
-
-#: src/pacman/add.c:179 src/pacman/remove.c:151 src/pacman/sync.c:524
-#: src/pacman/sync.c:741
-#, c-format
-msgid "failed to release transaction (%s)\n"
-msgstr "не удалоÑÑŒ продолжить операцию (%s)\n"
-
-#: src/pacman/log.c:63
-#, c-format
-msgid "debug"
-msgstr "отладка"
-
-#: src/pacman/log.c:66
-#, c-format
-msgid "error"
-msgstr "ошибка"
-
-#: src/pacman/log.c:69
-#, c-format
-msgid "warning"
-msgstr "предупреждение"
-
-#: src/pacman/log.c:75
-#, c-format
-msgid "function"
-msgstr "функциÑ"
-
-#: src/pacman/log.c:194
-msgid "Y"
-msgstr "Y"
-
-#: src/pacman/log.c:194
-msgid "YES"
-msgstr "YES"
-
-#: src/pacman/log.h:30
-msgid "error: "
-msgstr "ошибка: "
-
-#: src/pacman/log.h:34
-msgid "warning: "
-msgstr "предупреждение: "
-
-#: src/pacman/package.c:60
-msgid "Explicitly installed"
-msgstr "Явно уÑтановлен"
-
-#: src/pacman/package.c:63
-msgid "Installed as a dependency for another package"
-msgstr "УÑтановлен как завиÑимоÑÑ‚ÑŒ другого пакета"
-
-#: src/pacman/package.c:66 src/pacman/package.c:90
-msgid "Unknown"
-msgstr "ÐеизвеÑтно"
-
-#: src/pacman/package.c:70 src/pacman/package.c:121
-msgid "Description : "
-msgstr "ОпиÑание : "
-
-#: src/pacman/package.c:73 src/pacman/package.c:127
-#, c-format
-msgid "Name : %s\n"
-msgstr "Ðазвание : %s\n"
-
-#: src/pacman/package.c:74 src/pacman/package.c:128
-#, c-format
-msgid "Version : %s\n"
-msgstr "ВерÑÐ¸Ñ : %s\n"
-
-#: src/pacman/package.c:75
-#, c-format
-msgid "URL : %s\n"
-msgstr "URL : %s\n"
-
-#: src/pacman/package.c:76
-msgid "License :"
-msgstr "Ð›Ð¸Ñ†ÐµÐ½Ð·Ð¸Ñ :"
-
-#: src/pacman/package.c:77 src/pacman/package.c:129
-msgid "Groups :"
-msgstr "Группы :"
-
-#: src/pacman/package.c:78 src/pacman/package.c:130
-msgid "Provides :"
-msgstr "ПредоÑтавлÑет :"
-
-#: src/pacman/package.c:79 src/pacman/package.c:131
-msgid "Depends On :"
-msgstr "ЗавиÑит от :"
-
-#: src/pacman/package.c:80 src/pacman/package.c:132
-msgid "Removes :"
-msgstr "УдалÑет :"
-
-#: src/pacman/package.c:83
-msgid "Required By :"
-msgstr "ТребуетÑÑ Ð¿Ð°ÐºÐµÑ‚Ð°Ð¼Ð¸ :"
-
-#: src/pacman/package.c:85 src/pacman/package.c:133
-msgid "Conflicts With :"
-msgstr "Конфликтует Ñ :"
-
-#: src/pacman/package.c:86 src/pacman/package.c:136
-#, c-format
-msgid "Installed Size : %6.2f K\n"
-msgstr "Размер уÑтановленного : %6.2f K\n"
-
-#: src/pacman/package.c:87
-#, c-format
-msgid "Packager : %s\n"
-msgstr "Сборщик : %s\n"
-
-#: src/pacman/package.c:88
-#, c-format
-msgid "Architecture : %s\n"
-msgstr "Ðрхитектура : %s\n"
-
-#: src/pacman/package.c:89
-#, c-format
-msgid "Build Date : %s %s\n"
-msgstr "Дата Ñборки : %s %s\n"
-
-#: src/pacman/package.c:90
-#, c-format
-msgid "Build Type : %s\n"
-msgstr "Тип Ñборки : %s\n"
-
-#: src/pacman/package.c:92
-#, c-format
-msgid "Install Date : %s %s\n"
-msgstr "Дата уÑтановки : %s %s\n"
-
-#: src/pacman/package.c:93
-#, c-format
-msgid "Install Reason : %s\n"
-msgstr "Причина уÑтановки : %s\n"
-
-#: src/pacman/package.c:95
-#, c-format
-msgid "Install Script : %s\n"
-msgstr "Скрипт при уÑтановке : %s\n"
-
-#: src/pacman/package.c:96
-msgid "Yes"
-msgstr "Yes"
-
-#: src/pacman/package.c:96
-msgid "No"
-msgstr "No"
-
-#: src/pacman/package.c:126
-#, c-format
-msgid "Repository : %s\n"
-msgstr "Репозиторий : %s\n"
-
-#: src/pacman/package.c:134
-msgid "Replaces :"
-msgstr "ЗаменÑет :"
-
-#: src/pacman/package.c:135
-#, c-format
-msgid "Download Size : %6.2f K\n"
-msgstr "Размер при закачке : %6.2f K\n"
-
-#: src/pacman/package.c:144
-#, c-format
-msgid "MD5 Sum : %s"
-msgstr "Сумма MD5 : %s"
-
-#: src/pacman/package.c:147
-#, c-format
-msgid "SHA1 Sum : %s"
-msgstr "Сумма SHA1 : %s"
-
-#: src/pacman/package.c:158
-#, c-format
-msgid "Backup Files:\n"
-msgstr "Создаёт резервные копии файлов:\n"
-
-#: src/pacman/package.c:180
-#, c-format
-msgid "error calculating checksums for %s\n"
-msgstr "ошибка при вычиÑлении контрольной Ñуммы Ð´Ð»Ñ %s\n"
-
-#: src/pacman/package.c:193
-#, c-format
-msgid "MODIFIED\t%s\n"
-msgstr "ИЗМЕÐÐÐ\t%s\n"
-
-#: src/pacman/package.c:195
-#, c-format
-msgid "Not Modified\t%s\n"
-msgstr "Ðе Изменён\t%s\n"
-
-#: src/pacman/package.c:200
-#, c-format
-msgid "MISSING\t\t%s\n"
-msgstr "ÐЕ ÐÐЙДЕÐ\t\t%s\n"
-
-#: src/pacman/package.c:206
-#, c-format
-msgid "(none)\n"
-msgstr "(пуÑто)\n"
-
-#: src/pacman/package.c:246
-#, c-format
-msgid "No changelog available for '%s'.\n"
-msgstr "СпиÑок изменений недоÑтупен Ð´Ð»Ñ Ð¿Ð°ÐºÐµÑ‚Ð° '%s'.\n"
-
-#: src/pacman/pacman.c:90
-#, c-format
-msgid "usage: %s {-h --help}\n"
-msgstr "иÑпользование: %s {-h --help}\n"
-
-#: src/pacman/pacman.c:91
-#, c-format
-msgid " %s {-V --version}\n"
-msgstr " %s {-V --version}\n"
-
-#: src/pacman/pacman.c:92
-#, c-format
-msgid " %s {-A --add} [options] <file>\n"
-msgstr " %s {-A --add} [параметры] <файл>\n"
-
-#: src/pacman/pacman.c:93
-#, c-format
-msgid " %s {-F --freshen} [options] <file>\n"
-msgstr " %s {-F --freshen} [параметры] <файл>\n"
-
-#: src/pacman/pacman.c:94
-#, c-format
-msgid " %s {-Q --query} [options] [package]\n"
-msgstr " %s {-Q --query} [параметры] [пакет]\n"
-
-#: src/pacman/pacman.c:95
-#, c-format
-msgid " %s {-R --remove} [options] <package>\n"
-msgstr " %s {-R --remove} [параметры] <пакет>\n"
-
-#: src/pacman/pacman.c:96
-#, c-format
-msgid " %s {-S --sync} [options] [package]\n"
-msgstr " %s {-S --sync} [параметры] [пакет]\n"
-
-#: src/pacman/pacman.c:97
-#, c-format
-msgid " %s {-U --upgrade} [options] <file>\n"
-msgstr " %s {-U --upgrade} [параметры] <файл>\n"
-
-#: src/pacman/pacman.c:98
-#, c-format
-msgid ""
-"\n"
-"use '%s --help' with other options for more syntax\n"
-msgstr ""
-"\n"
-"иÑпользуйте '%s --help' вмеÑте Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ опциÑми Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ подробной "
-"информации\n"
-
-#: src/pacman/pacman.c:101
-#, c-format
-msgid "usage: %s {-A --add} [options] <file>\n"
-msgstr "иÑпользование: %s {-A --add} [параметры] <файл>\n"
-
-#: src/pacman/pacman.c:102 src/pacman/pacman.c:107 src/pacman/pacman.c:119
-#: src/pacman/pacman.c:124 src/pacman/pacman.c:138
-#, c-format
-msgid "options:\n"
-msgstr "параметры:\n"
-
-#: src/pacman/pacman.c:103 src/pacman/pacman.c:109 src/pacman/pacman.c:120
-#: src/pacman/pacman.c:140
-#, c-format
-msgid " -d, --nodeps skip dependency checks\n"
-msgstr " -d, --nodeps не проверÑÑ‚ÑŒ завиÑимоÑти\n"
-
-#: src/pacman/pacman.c:104 src/pacman/pacman.c:121 src/pacman/pacman.c:142
-#, c-format
-msgid " -f, --force force install, overwrite conflicting files\n"
-msgstr ""
-" -f, --force Ð¿Ñ€Ð¸Ð½ÑƒÐ´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ ÑƒÑтановка, перезапиÑывать "
-"конфликтующие файлы\n"
-
-#: src/pacman/pacman.c:106
-#, c-format
-msgid "usage: %s {-R --remove} [options] <package>\n"
-msgstr "иÑпользование: %s {-R --remove} [параметры] <пакет>\n"
-
-#: src/pacman/pacman.c:108
-#, c-format
-msgid ""
-" -c, --cascade remove packages and all packages that depend on them\n"
-msgstr " -c, --cascade удалить пакет и вÑе завиÑÑщие от него пакеты\n"
-
-#: src/pacman/pacman.c:110
-#, c-format
-msgid ""
-" -k, --dbonly only remove database entry, do not remove files\n"
-msgstr ""
-" -k, --dbonly Ñтереть только запиÑÑŒ в базе данных, файлы не "
-"удалÑÑ‚ÑŒ\n"
-
-#: src/pacman/pacman.c:111
-#, c-format
-msgid " -n, --nosave remove configuration files as well\n"
-msgstr " -n, --nosave удалить в том чиÑле и конфигурационные файлы\n"
-
-#: src/pacman/pacman.c:112
-#, c-format
-msgid ""
-" -s, --recursive remove dependencies also (that won't break packages)\n"
-msgstr ""
-" -s, --recursive удалить вмеÑте Ñ Ð·Ð°Ð²Ð¸ÑимоÑÑ‚Ñми (которые не повредÑÑ‚ "
-"другие пакеты)\n"
-
-#: src/pacman/pacman.c:115
-#, c-format
-msgid "usage: %s {-F --freshen} [options] <file>\n"
-msgstr "иÑпользование: %s {-F --freshen} [параметры] <файл>\n"
-
-#: src/pacman/pacman.c:117
-#, c-format
-msgid "usage: %s {-U --upgrade} [options] <file>\n"
-msgstr "иÑпользование: %s {-U --upgrade} [параметры] <файл>\n"
-
-#: src/pacman/pacman.c:123
-#, c-format
-msgid "usage: %s {-Q --query} [options] [package]\n"
-msgstr "иÑпользование: %s {-Q --query} [параметры] [пакет]\n"
-
-#: src/pacman/pacman.c:125
-#, c-format
-msgid " -c, --changelog view the changelog of a package\n"
-msgstr " -c, --changelog показать ÑпиÑок изменений пакета\n"
-
-#: src/pacman/pacman.c:126
-#, c-format
-msgid ""
-" -e, --orphans list all packages installed as dependencies but no "
-"longer\n"
-msgstr ""
-" -e, --orphans показать пакеты, уÑтановленные как завиÑимоÑти,\n"
-
-#: src/pacman/pacman.c:127
-#, c-format
-msgid " required by any package\n"
-msgstr " но более не требующиеÑÑ Ð´Ñ€ÑƒÐ³Ð¸Ð¼ пакетам\n"
-
-#: src/pacman/pacman.c:128 src/pacman/pacman.c:143
-#, c-format
-msgid " -g, --groups view all members of a package group\n"
-msgstr " -g, --groups показать вÑе пакеты данной группы\n"
-
-#: src/pacman/pacman.c:129 src/pacman/pacman.c:144
-#, c-format
-msgid " -i, --info view package information\n"
-msgstr " -i, --info показать информацию о пакете\n"
-
-#: src/pacman/pacman.c:130
-#, c-format
-msgid " -l, --list list the contents of the queried package\n"
-msgstr " -l, --list показать Ñодержимое запрашиваемого пакета\n"
-
-#: src/pacman/pacman.c:131
-#, c-format
-msgid ""
-" -m, --foreign list installed packages not found in sync db(s)\n"
-msgstr ""
-" -m, --foreign показать вÑе пакеты не найденные в базе(ах) данных\n"
-
-#: src/pacman/pacman.c:132
-#, c-format
-msgid " -o, --owns <file> query the package that owns <file>\n"
-msgstr " -o, --owns <файл> найти пакет Ñодержащий <файл>\n"
-
-#: src/pacman/pacman.c:133
-#, c-format
-msgid " -p, --file <package> query a package file instead of the database\n"
-msgstr ""
-" -p, --file <пакет> извлечь информацию из файла пакета <пакет>, а не из "
-"базы данных\n"
-
-#: src/pacman/pacman.c:134
-#, c-format
-msgid ""
-" -s, --search <regex> search locally-installed packages for matching "
-"strings\n"
-msgstr ""
-" -s, --search <regex> иÑкать указанную Ñтроку в локально уÑтановленных "
-"пакетах\n"
-
-#: src/pacman/pacman.c:135
-#, c-format
-msgid " -u, --upgrades list all packages that can be upgraded\n"
-msgstr ""
-" -u, --upgrades показать ÑпиÑок вÑех пакетов, которые могут быть "
-"обновлены\n"
-
-#: src/pacman/pacman.c:137
-#, c-format
-msgid "usage: %s {-S --sync} [options] [package]\n"
-msgstr "иÑпользование: %s {-S --sync} [параметры] [пакет]\n"
-
-#: src/pacman/pacman.c:139
-#, c-format
-msgid ""
-" -c, --clean remove old packages from cache directory (-cc for "
-"all)\n"
-msgstr ""
-" -c, --clean удалить Ñтарые пакеты из кÑша (-cc чтобы удалить вÑе "
-"пакеты из кÑша)\n"
-
-#: src/pacman/pacman.c:141
-#, c-format
-msgid " -e, --dependsonly install dependencies only\n"
-msgstr " -e, --dependsonly уÑтановить только завиÑимоÑти\n"
-
-#: src/pacman/pacman.c:145
-#, c-format
-msgid " -l, --list <repo> view a list of packages in a repo\n"
-msgstr " -l, --list <repo> показать вÑе пакеты данного репозиториÑ\n"
-
-#: src/pacman/pacman.c:146
-#, c-format
-msgid ""
-" -p, --print-uris print out URIs for given packages and their "
-"dependencies\n"
-msgstr ""
-" -p, --print-uris напечатать ÑÑылки Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸ указанных пакетов и их "
-"завиÑимоÑтей\n"
-
-#: src/pacman/pacman.c:147
-#, c-format
-msgid ""
-" -s, --search <regex> search remote repositories for matching strings\n"
-msgstr ""
-" -s, --search <regex> иÑкать указанную Ñтроку в репозиториÑÑ… на удаленных "
-"Ñерверах\n"
-
-#: src/pacman/pacman.c:148
-#, c-format
-msgid " -u, --sysupgrade upgrade all packages that are out of date\n"
-msgstr " -u, --sysupgrade обновить вÑе уÑтаревшие пакеты\n"
-
-#: src/pacman/pacman.c:149
-#, c-format
-msgid ""
-" -w, --downloadonly download packages but do not install/upgrade "
-"anything\n"
-msgstr ""
-" -w, --downloadonly загрузить пакеты Ñ Ñервера, но не уÑтанавливать\n"
-
-#: src/pacman/pacman.c:150
-#, c-format
-msgid ""
-" -y, --refresh download fresh package databases from the server\n"
-msgstr ""
-" -y, --refresh загрузить Ñвежие базы данных пакетов Ñ Ñервера\n"
-
-#: src/pacman/pacman.c:151
-#, c-format
-msgid ""
-" --ignore <pkg> ignore a package upgrade (can be used more than "
-"once)\n"
-msgstr ""
-" --ignore <пакет> игнорировать пакет при обновлении (может быть "
-"иÑпользовано неоднократно)\n"
-
-#: src/pacman/pacman.c:153
-#, c-format
-msgid " --config <path> set an alternate configuration file\n"
-msgstr ""
-" --config <путь> иÑпользовать альтернативный конфигурационный файл\n"
-
-#: src/pacman/pacman.c:154
-#, c-format
-msgid " --noconfirm do not ask for any confirmation\n"
-msgstr " --noconfirm не Ñпрашивать подтверждениÑ\n"
-
-#: src/pacman/pacman.c:155
-#, c-format
-msgid ""
-" --ask <number> pre-specify answers for questions (see manpage)\n"
-msgstr ""
-" --ask <чиÑло> заранее подготовленные ответы на вопроÑÑ‹ (Ñмотрите "
-"man-Ñтраницу)\n"
-
-#: src/pacman/pacman.c:156
-#, c-format
-msgid ""
-" --noprogressbar do not show a progress bar when downloading files\n"
-msgstr " --noprogressbar не отображать прогреÑÑ Ð¿Ñ€Ð¸ Ñкачивании файлов\n"
-
-#: src/pacman/pacman.c:157
-#, c-format
-msgid ""
-" --noscriptlet do not execute the install scriptlet if there is any\n"
-msgstr ""
-" --noscriptlet не запуÑкать уÑтановочные Ñкрипты, еÑли они еÑÑ‚ÑŒ\n"
-
-#: src/pacman/pacman.c:158
-#, c-format
-msgid " -v, --verbose be verbose\n"
-msgstr " -v, --verbose выводить больше информации\n"
-
-#: src/pacman/pacman.c:159
-#, c-format
-msgid " -r, --root <path> set an alternate installation root\n"
-msgstr ""
-" -r, --root <путь> указать альтернативную корневую директорию Ð´Ð»Ñ "
-"уÑтановки\n"
-
-#: src/pacman/pacman.c:160
-#, c-format
-msgid " -b, --dbpath <path> set an alternate database location\n"
-msgstr ""
-" -b, --dbpath <путь> указать альтернативное раÑположение базы данных\n"
-
-#: src/pacman/pacman.c:161
-#, c-format
-msgid " --cachedir <dir> set an alternate package cache location\n"
-msgstr " --cachedir <dir> указать альтернативное раÑположение кÑша\n"
-
-#: src/pacman/pacman.c:174
-#, c-format
-msgid " This program may be freely redistributed under\n"
-msgstr ""
-" This program may be freely redistributed under\n"
-
-#: src/pacman/pacman.c:175
-#, c-format
-msgid " the terms of the GNU General Public License\n"
-msgstr " the terms of the GNU General Public License\n"
-
-#: src/pacman/pacman.c:300
-#, c-format
-msgid "'%s' is not a valid debug level"
-msgstr "'%s' - неверный уровень отладки"
-
-#: src/pacman/pacman.c:315
-#, c-format
-msgid "'%s' is not a valid cache directory\n"
-msgstr "'%s' неправильно указан путь к кÑш-директории\n"
-
-#: src/pacman/pacman.c:333
-#, c-format
-msgid "'%s' is not a valid db path\n"
-msgstr "'%s' неправильно указан путь к базе данных\n"
-
-#: src/pacman/pacman.c:363
-#, c-format
-msgid "'%s' is not a valid root path\n"
-msgstr "некорректный корневой каталог: '%s'\n"
-
-#: src/pacman/pacman.c:390
-msgid "only one operation may be used at a time\n"
-msgstr "одновременно может выполнÑÑ‚ÑŒÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ одна операциÑ\n"
-
-#: src/pacman/pacman.c:436
-msgid "warning: current locale is invalid; using default \"C\" locale"
-msgstr "warning: current locale is invalid; using default \"C\" locale"
-
-#: src/pacman/pacman.c:456
-#, c-format
-msgid "failed to initialize alpm library (%s)\n"
-msgstr "не удалоÑÑŒ инициализировать библиотеку alpm (%s)\n"
-
-#: src/pacman/pacman.c:489
-msgid "you cannot perform this operation unless you are root.\n"
-msgstr ""
-"Ð’Ñ‹ не можете выполнить Ñту операцию не ÑвлÑÑÑÑŒ Ñуперпользователем (root).\n"
-
-#: src/pacman/pacman.c:505
-#, c-format
-msgid "failed to parse config (%s)\n"
-msgstr "не удалоÑÑŒ обработать конфигурационный файл (%s)\n"
-
-#: src/pacman/pacman.c:516
-msgid "Targets :"
-msgstr "Цели :"
-
-#: src/pacman/pacman.c:522
-#, c-format
-msgid "could not register 'local' database (%s)\n"
-msgstr "не могу зарегиÑтрировать локальную базу данных (%s)\n"
-
-#: src/pacman/pacman.c:529
-msgid "no targets specified (use -h for help)\n"
-msgstr "не задано целей (Ð´Ð»Ñ Ñправки иÑпользуйте -h)\n"
-
-#: src/pacman/pacman.c:542
-msgid "no operation specified (use -h for help)\n"
-msgstr "не задана Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ñ (Ð´Ð»Ñ Ñправки иÑпользуйте -h)\n"
-
-#: src/pacman/query.c:90
-msgid "no file was specified for --owns\n"
-msgstr "не был указан файл Ð´Ð»Ñ --owns\n"
-
-#: src/pacman/query.c:95
-#, c-format
-msgid "failed to read file '%s': %s"
-msgstr "не удалоÑÑŒ прочитать файл '%s': %s"
-
-#: src/pacman/query.c:100
-msgid "cannot determine ownership of a directory"
-msgstr "не удалоÑÑŒ определить владельца каталога"
-
-#: src/pacman/query.c:105
-#, c-format
-msgid "cannot determine real path for '%s': %s"
-msgstr "не удалоÑÑŒ определить наÑтоÑщий путь Ð´Ð»Ñ '%s': %s"
-
-#: src/pacman/query.c:119
-#, c-format
-msgid "%s is owned by %s %s\n"
-msgstr "%s принадлежит %s %s\n"
-
-#: src/pacman/query.c:127
-#, c-format
-msgid "No package owns %s\n"
-msgstr "Ðи один пакет не Ñодержит %s\n"
-
-#: src/pacman/query.c:170 src/pacman/sync.c:453
-msgid "no usable package repositories configured.\n"
-msgstr "ни один репозиторий не Ñконфигурирован должным образом.\n"
-
-#: src/pacman/query.c:176
-msgid "Checking for package upgrades..."
-msgstr "Проверка обновлений..."
-
-#: src/pacman/query.c:183
-msgid "no upgrades found"
-msgstr "обновлений не найдено"
-
-#: src/pacman/query.c:221
-#, c-format
-msgid "group \"%s\" was not found\n"
-msgstr "группа \"%s\" не найдена\n"
-
-#: src/pacman/query.c:232
-msgid "no package file was specified for --file\n"
-msgstr "не указан файл пакета Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° --file\n"
-
-#: src/pacman/query.c:236
-#, c-format
-msgid "failed to load package '%s' (%s)\n"
-msgstr "не удалоÑÑŒ загрузить пакет '%s' (%s)\n"
-
-#: src/pacman/query.c:273 src/pacman/query.c:305
-#, c-format
-msgid "package \"%s\" not found\n"
-msgstr "пакет \"%s\" не найден\n"
-
-#: src/pacman/remove.c:61 src/pacman/sync.c:568
-#, c-format
-msgid ":: group %s:\n"
-msgstr ":: группа %s:\n"
-
-#: src/pacman/remove.c:63
-msgid " Remove whole content? [Y/n] "
-msgstr " Удалить вÑе Ñодержимое? [Y/n] "
-
-#: src/pacman/remove.c:67
-#, c-format
-msgid ":: Remove %s from group %s? [Y/n] "
-msgstr ":: Удалить %s из группы %s? [Y/n] "
-
-#: src/pacman/remove.c:80 src/pacman/sync.c:480 src/pacman/sync.c:529
-#, c-format
-msgid "failed to init transaction (%s)\n"
-msgstr "не удалоÑÑŒ начать операцию (%s)\n"
-
-#: src/pacman/remove.c:92
-#, c-format
-msgid "failed to add target '%s' (%s)\n"
-msgstr "ну удалоÑÑŒ добавить цель '%s' (%s)\n"
-
-#: src/pacman/remove.c:106
-#, c-format
-msgid ":: %s is required by %s\n"
-msgstr ":: %s необходим Ð´Ð»Ñ %s\n"
-
-#: src/pacman/remove.c:128 src/pacman/util.c:324
-msgid "Targets:"
-msgstr "Цели:"
-
-#: src/pacman/remove.c:131
-msgid ""
-"\n"
-"Do you want to remove these packages? [Y/n] "
-msgstr ""
-"\n"
-"Хотите удалить Ñти пакеты? [Y/n] "
-
-#: src/pacman/sync.c:115
-msgid "Do you want to remove old packages from cache? [Y/n] "
-msgstr "Хотите удалить Ñтарые пакеты из кÑша? [Y/n] "
-
-#: src/pacman/sync.c:117
-msgid "removing old packages from cache... "
-msgstr "удалÑÑŽ Ñтарые пакеты из кÑша... "
-
-#: src/pacman/sync.c:120
-msgid "could not access cache directory\n"
-msgstr "нет доÑтупа к кÑш-директории\n"
-
-#: src/pacman/sync.c:181
-msgid "Do you want to remove all packages from cache? [Y/n] "
-msgstr "Хотите удалить вÑе пакеты из кÑша? [Y/n] "
-
-#: src/pacman/sync.c:183
-msgid "removing all packages from cache... "
-msgstr "удалÑÑŽ вÑе пакеты из кÑша... "
-
-#: src/pacman/sync.c:186
-msgid "could not remove cache directory\n"
-msgstr "не могу удалить кÑш-директорию\n"
-
-#: src/pacman/sync.c:191
-msgid "could not create new cache directory\n"
-msgstr "не могу Ñоздать новую директорию Ð´Ð»Ñ ÐºÑша\n"
-
-#: src/pacman/sync.c:218
-#, c-format
-msgid "failed to synchronize %s: %s\n"
-msgstr "не удалоÑÑŒ Ñинхронизировать %s: %s\n"
-
-#: src/pacman/sync.c:220
-#, c-format
-msgid "failed to update %s (%s)\n"
-msgstr "не удалоÑÑŒ обновить %s (%s)\n"
-
-#: src/pacman/sync.c:223
-#, c-format
-msgid " %s is up to date\n"
-msgstr " %s не уÑтарел\n"
-
-#: src/pacman/sync.c:345
-#, c-format
-msgid "repository '%s' does not exist\n"
-msgstr "репозиторий '%s' не ÑущеÑтвует\n"
-
-#: src/pacman/sync.c:361
-#, c-format
-msgid "package '%s' was not found in repository '%s'\n"
-msgstr "пакет '%s' не найден в репозитории '%s'\n"
-
-#: src/pacman/sync.c:381
-#, c-format
-msgid "package '%s' was not found\n"
-msgstr "пакет '%s' не найден\n"
-
-#: src/pacman/sync.c:418
-#, c-format
-msgid "repository \"%s\" was not found.\n"
-msgstr "репозиторий \"%s\" не найден.\n"
-
-#: src/pacman/sync.c:490
-msgid ":: Synchronizing package databases...\n"
-msgstr ":: Синхронизирую базу данных пакетов...\n"
-
-#: src/pacman/sync.c:491
-msgid "synchronizing package lists"
-msgstr "Ñинхронизирую ÑпиÑки пакетов"
-
-#: src/pacman/sync.c:493
-msgid "failed to synchronize any databases"
-msgstr "не удалоÑÑŒ Ñинхронизировать ни одну базу данных"
-
-#: src/pacman/sync.c:499
-msgid ":: Starting full system upgrade...\n"
-msgstr ":: Ðачинаю полное обновление ÑиÑтемы...\n"
-
-#: src/pacman/sync.c:500
-msgid "starting full system upgrade"
-msgstr "начинаю полное обновление ÑиÑтемы"
-
-#: src/pacman/sync.c:518
-msgid ""
-"\n"
-":: pacman has detected a newer version of the \"pacman\" package.\n"
-msgstr ""
-"\n"
-":: pacman обнаружил более новую верÑию пакета \"pacman\".\n"
-
-#: src/pacman/sync.c:519
-msgid ":: It is recommended that you allow pacman to upgrade itself\n"
-msgstr ":: Рекомендуем Вам Ñначала позволить pacman'у обновить ÑÐµÐ±Ñ Ñамого,\n"
-
-#: src/pacman/sync.c:520
-msgid ":: first, then you can re-run the operation with the newer version.\n"
-msgstr ":: поÑле чего перезапуÑтить операцию Ñ Ð¸Ñпользованием новой верÑии.\n"
-
-#: src/pacman/sync.c:522
-msgid ":: Upgrade pacman first? [Y/n] "
-msgstr ":: Обновить pacman в первую очередь? [Y/n] "
-
-#: src/pacman/sync.c:537
-#, c-format
-msgid "pacman: %s\n"
-msgstr "pacman: %s\n"
-
-#: src/pacman/sync.c:572
-msgid ":: Install whole content? [Y/n] "
-msgstr ":: УÑтановить в полном объеме? [Y/n] "
-
-#: src/pacman/sync.c:579
-#, c-format
-msgid ":: Install %s from group %s? [Y/n] "
-msgstr ":: УÑтановить %s из группы %s? [Y/n] "
-
-#: src/pacman/sync.c:603
-#, c-format
-msgid "'%s': not found in sync db\n"
-msgstr "'%s': не найдено в базе пакетов\n"
-
-#: src/pacman/sync.c:621
-msgid "requires"
-msgstr "требует"
-
-#: src/pacman/sync.c:663
-msgid " local database is up to date\n"
-msgstr " Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð±Ð°Ð·Ð° данных не уÑтарела\n"
-
-#: src/pacman/sync.c:672
-msgid ""
-"\n"
-"Beginning download...\n"
-msgstr ""
-"\n"
-"Ðачинаю загрузку...\n"
-
-#: src/pacman/sync.c:676
-msgid "Proceed with download? [Y/n] "
-msgstr "ПриÑтупить к загрузке? [Y/n] "
-
-#: src/pacman/sync.c:684
-msgid ""
-"\n"
-"Beginning upgrade process...\n"
-msgstr ""
-"\n"
-"Ðачинаю процеÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ...\n"
-
-#: src/pacman/sync.c:688
-msgid "Proceed with installation? [Y/n] "
-msgstr "ПриÑтупить к уÑтановке? [Y/n] "
-
-#: src/pacman/trans.c:55
-msgid "checking dependencies... "
-msgstr "проверÑÑŽ завиÑимоÑти... "
-
-#: src/pacman/trans.c:59
-msgid "checking for file conflicts... "
-msgstr "проверÑÑŽ возможные конфликты файлов... "
-
-#: src/pacman/trans.c:63
-msgid "cleaning up... "
-msgstr "убираем за Ñобой... "
-
-#: src/pacman/trans.c:66
-msgid "resolving dependencies... "
-msgstr "разрешаю завиÑимоÑти... "
-
-#: src/pacman/trans.c:69
-msgid "looking for inter-conflicts... "
-msgstr "проверÑÑŽ на взаимную неÑовмеÑтимоÑÑ‚ÑŒ... "
-
-#: src/pacman/trans.c:86
-#, c-format
-msgid "installing %s... "
-msgstr "уÑтанавливаю %s... "
-
-#: src/pacman/trans.c:93
-#, c-format
-msgid "installed %s (%s)"
-msgstr "уÑтановлено %s (%s)"
-
-#: src/pacman/trans.c:100
-#, c-format
-msgid "removing %s... "
-msgstr "удалÑÑŽ %s... "
-
-#: src/pacman/trans.c:107
-#, c-format
-msgid "removed %s (%s)"
-msgstr "удалено %s (%s)"
-
-#: src/pacman/trans.c:114
-#, c-format
-msgid "upgrading %s... "
-msgstr "обновлÑÑŽ %s... "
-
-#: src/pacman/trans.c:121
-#, c-format
-msgid "upgraded %s (%s -> %s)"
-msgstr "обновлено %s (%s -> %s)"
-
-#: src/pacman/trans.c:128
-msgid "checking package integrity... "
-msgstr "проверÑÑŽ целоÑтноÑÑ‚ÑŒ пакета... "
-
-#: src/pacman/trans.c:144
-msgid "failed.\n"
-msgstr "провал.\n"
-
-#: src/pacman/trans.c:151
-#, c-format
-msgid ":: Retrieving packages from %s...\n"
-msgstr ":: Получение пакетов Ñ %s...\n"
-
-#: src/pacman/trans.c:172
-#, c-format
-msgid ":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "
-msgstr ":: %1$s требует %2$s из IgnorePkg. УÑтановить %2$s? [Y/n] "
-
-#: src/pacman/trans.c:177
-#, c-format
-msgid ":: %s is in IgnorePkg. Install anyway? [Y/n] "
-msgstr ":: %s указан в IgnorePkg. Ð’ÑÑ‘ равно уÑтановить? [Y/n] "
-
-#: src/pacman/trans.c:190
-#, c-format
-msgid ":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "
-msgstr ":: %s указан в HoldPkg. Ð’ÑÑ‘ равно удалить? [Y/n] "
-
-#: src/pacman/trans.c:203
-#, c-format
-msgid ":: Replace %s with %s/%s? [Y/n] "
-msgstr ":: Заменить %s на %s/%s? [Y/n] "
-
-#: src/pacman/trans.c:218
-#, c-format
-msgid ":: %s conflicts with %s. Remove %s? [Y/n] "
-msgstr ":: %s конфликтует Ñ %s. Удалить %s? [Y/n] "
-
-#: src/pacman/trans.c:234
-#, c-format
-msgid ":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð½Ð¾Ð²ÐµÐµ. Ð’ÑÑ‘ равно обновить? [Y/n] "
-
-#: src/pacman/trans.c:252
-#, c-format
-msgid ":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "
-msgstr ":: %s-%s: уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ Ð½Ðµ уÑтарела. Ð’ÑÑ‘ равно обновить? [Y/n] "
-
-#: src/pacman/trans.c:270
-#, c-format
-msgid ":: Archive %s is corrupted. Do you want to delete it? [Y/n] "
-msgstr ":: Ðрхив %s поврежден. Хотите его удалить? [Y/n] "
-
-#: src/pacman/trans.c:326
-msgid "installing"
-msgstr "уÑтановка"
-
-#: src/pacman/trans.c:329
-msgid "upgrading"
-msgstr "обновление"
-
-#: src/pacman/trans.c:332
-msgid "removing"
-msgstr "удаление"
-
-#: src/pacman/trans.c:335
-msgid "checking for file conflicts"
-msgstr "проверÑÑŽ возможные конфликты файлов"
-
-#: src/pacman/util.c:259
-#, c-format
-msgid "None\n"
-msgstr "Ðе указано\n"
-
-#: src/pacman/util.c:311
-msgid "Remove:"
-msgstr "Удалить:"
-
-#: src/pacman/util.c:319
-#, c-format
-msgid ""
-"\n"
-"Total Removed Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Итого удалено: %.2f МБ\n"
-
-#: src/pacman/util.c:330
-#, c-format
-msgid ""
-"\n"
-"Total Package Size: %.2f MB\n"
-msgstr ""
-"\n"
-"Суммарный размер пакетов: %.2f МБ\n"
-
-#: src/pacman/util.c:337
-#, c-format
-msgid "Total Installed Size: %.2f MB\n"
-msgstr "Итого уÑтановлено: %.2f МБ\n"
-
-#~ msgid "requires: %s"
-#~ msgstr "требуетÑÑ: %s"
-
-#~ msgid "'%s': %s\n"
-#~ msgstr "'%s': %s\n"
diff --git a/src/pacman/query.c b/src/pacman/query.c
index a6ebddb0..8a8765b6 100644
--- a/src/pacman/query.c
+++ b/src/pacman/query.c
@@ -1,8 +1,8 @@
/*
* query.c
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -26,7 +26,6 @@
#include <limits.h>
#include <string.h>
#include <sys/stat.h>
-#include <libintl.h>
#include <errno.h>
#include <unistd.h>
@@ -34,302 +33,392 @@
#include <alpm_list.h>
/* pacman */
-#include "query.h"
+#include "pacman.h"
#include "package.h"
-#include "log.h"
#include "conf.h"
-#include "sync.h"
#include "util.h"
-extern config_t *config;
extern pmdb_t *db_local;
static char *resolve_path(const char* file)
{
- char *copy, *p, *str = NULL;
+ char *str = NULL;
- if(!(copy = strdup(file))) {
+ str = calloc(PATH_MAX+1, sizeof(char));
+ if(!str) {
return(NULL);
}
- if((p = strrchr(copy, '/')) == NULL) {
- return(copy);
- } else {
- *p = '\0'; ++p;
+ if(!realpath(file, str)) {
+ free(str);
+ return(NULL);
+ }
+
+ return(str);
+}
+
+static int query_fileowner(alpm_list_t *targets)
+{
+ int ret = 0;
+ alpm_list_t *t;
- str = calloc(PATH_MAX+1, sizeof(char));
- if(!str) {
- /* null hmmm.... */
- return(NULL);
+ /* This code is here for safety only */
+ if(targets == NULL) {
+ fprintf(stderr, _("error: no file was specified for --owns\n"));
+ return(1);
+ }
+
+ for(t = targets; t; t = alpm_list_next(t)) {
+ int found = 0;
+ char *filename = alpm_list_getdata(t);
+ char *bname;
+ char *rpath;
+ struct stat buf;
+ alpm_list_t *i, *j;
+
+ if(stat(filename, &buf) == -1) {
+ fprintf(stderr, _("error: failed to read file '%s': %s\n"),
+ filename, strerror(errno));
+ ret++;
+ continue;
}
- if(!realpath(copy, str)) {
- return(NULL);
+ if(S_ISDIR(buf.st_mode)) {
+ fprintf(stderr, _("error: cannot determine ownership of a directory\n"));
+ ret++;
+ continue;
}
- str[strlen(str)] = '/';
- strcat(str, p);
+ bname = mbasename(filename);
+
+ if(!(rpath = resolve_path(filename))) {
+ fprintf(stderr, _("error: cannot determine real path for '%s': %s\n"),
+ filename, strerror(errno));
+ ret++;
+ continue;
+ }
+
+ for(i = alpm_db_getpkgcache(db_local); i && !found; i = alpm_list_next(i)) {
+ pmpkg_t *info = alpm_list_getdata(i);
+
+ for(j = alpm_pkg_get_files(info); j && !found; j = alpm_list_next(j)) {
+ char path[PATH_MAX], *ppath;
+ snprintf(path, PATH_MAX, "%s%s",
+ alpm_option_get_root(), (const char *)alpm_list_getdata(j));
+
+ /* avoid the costly resolve_path usage if the basenames don't match */
+ if(strcmp(mbasename(path), bname) != 0) {
+ continue;
+ }
+
+ ppath = resolve_path(path);
+
+ if(ppath && strcmp(ppath, rpath) == 0) {
+ printf(_("%s is owned by %s %s\n"), rpath,
+ alpm_pkg_get_name(info), alpm_pkg_get_version(info));
+ found = 1;
+ }
+ free(ppath);
+ }
+ }
+ if(!found) {
+ fprintf(stderr, _("error: No package owns %s\n"), filename);
+ ret++;
+ }
+ free(rpath);
}
- free(copy);
- return(str);
+ return ret;
}
-
-static void query_fileowner(pmdb_t *db, char *filename)
+/* search the local database for a matching package */
+static int query_search(alpm_list_t *targets)
{
- struct stat buf;
- int gotcha = 0;
- char *rpath;
- alpm_list_t *i, *j;
+ alpm_list_t *i, *searchlist;
+ int freelist;
- if(db == NULL) {
- return;
+ /* if we have a targets list, search for packages matching it */
+ if(targets) {
+ searchlist = alpm_db_search(db_local, targets);
+ freelist = 1;
+ } else {
+ searchlist = alpm_db_getpkgcache(db_local);
+ freelist = 0;
}
- if(filename == NULL || strlen(filename) == 0) {
- ERR(NL, _("no file was specified for --owns\n"));
- return;
+ if(searchlist == NULL) {
+ return(1);
}
- if(stat(filename, &buf) == -1) {
- ERR(NL, _("failed to read file '%s': %s"), filename, strerror(errno));
- return;
- }
-
- if(S_ISDIR(buf.st_mode)) {
- ERR(NL, _("cannot determine ownership of a directory"));
- return;
- }
+ for(i = searchlist; i; i = alpm_list_next(i)) {
+ char *group = NULL;
+ alpm_list_t *grp;
+ pmpkg_t *pkg = alpm_list_getdata(i);
- if(!(rpath = resolve_path(filename))) {
- ERR(NL, _("cannot determine real path for '%s': %s"), filename, strerror(errno));
- return;
- }
+ if (!config->quiet) {
+ printf("local/%s %s", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
+ } else {
+ printf("%s", alpm_pkg_get_name(pkg));
+ }
- for(i = alpm_db_getpkgcache(db); i && !gotcha; i = alpm_list_next(i)) {
- pmpkg_t *info = alpm_list_getdata(i);
+ /* print the package size with the output if ShowSize option set */
+ if(config->showsize) {
+ /* Convert byte size to MB */
+ double mbsize = (double)alpm_pkg_get_size(pkg) / (1024.0 * 1024.0);
- for(j = alpm_pkg_get_files(info); j && !gotcha; j = alpm_list_next(j)) {
- char path[PATH_MAX], *ppath;
- snprintf(path, PATH_MAX, "%s%s", alpm_option_get_root(), (const char *)alpm_list_getdata(j));
+ printf(" [%.2f MB]", mbsize);
+ }
- ppath = resolve_path(path);
- if(ppath && strcmp(ppath, rpath) == 0) {
- printf(_("%s is owned by %s %s\n"), filename, alpm_pkg_get_name(info), alpm_pkg_get_version(info));
- gotcha = 1;
+ if (!config->quiet) {
+ if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
+ group = alpm_list_getdata(grp);
+ printf(" (%s)", (char *)alpm_list_getdata(grp));
}
- free(ppath);
+ /* we need a newline and initial indent first */
+ printf("\n ");
+ indentprint(alpm_pkg_get_desc(pkg), 4);
}
- }
- if(!gotcha) {
- ERR(NL, _("No package owns %s\n"), filename);
+ printf("\n");
}
- free(rpath);
+ /* we only want to free if the list was a search list */
+ if(freelist) {
+ alpm_list_free(searchlist);
+ }
+ return(0);
}
-int pacman_query(alpm_list_t *targets)
+static int query_group(alpm_list_t *targets)
{
- alpm_list_t *sync_dbs = NULL, *i, *j, *k;
- pmpkg_t *info = NULL;
+ alpm_list_t *i, *j;
char *package = NULL;
- int done = 0;
-
- if(config->op_q_search) {
- alpm_list_t *ret = alpm_db_search(db_local, targets);
- if(ret == NULL) {
- return(0);
+ int ret = 0;
+ if(targets == NULL) {
+ for(j = alpm_db_getgrpcache(db_local); j; j = alpm_list_next(j)) {
+ pmgrp_t *grp = alpm_list_getdata(j);
+ const alpm_list_t *p, *pkgnames;
+ const char *grpname;
+
+ grpname = alpm_grp_get_name(grp);
+ pkgnames = alpm_grp_get_pkgs(grp);
+
+ for(p = pkgnames; p; p = alpm_list_next(p)) {
+ printf("%s %s\n", grpname, (char *)alpm_list_getdata(p));
+ }
}
- for(i = ret; i; i = alpm_list_next(i)) {
- char *group = NULL;
- alpm_list_t *grp;
- pmpkg_t *pkg = alpm_list_getdata(i);
-
- printf("local/%s %s", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
-
- if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
- group = alpm_list_getdata(grp);
- printf(" (%s)\n ", (char *)alpm_list_getdata(grp));
+ } else {
+ for(i = targets; i; i = alpm_list_next(i)) {
+ pmgrp_t *grp;
+ package = alpm_list_getdata(i);
+ grp = alpm_db_readgrp(db_local, package);
+ if(grp) {
+ const alpm_list_t *p, *pkgnames = alpm_grp_get_pkgs(grp);
+ for(p = pkgnames; p; p = alpm_list_next(p)) {
+ printf("%s %s\n", package, (char *)alpm_list_getdata(p));
+ }
} else {
- printf("\n ");
+ fprintf(stderr, _("error: group \"%s\" was not found\n"), package);
+ ret++;
}
-
- indentprint(alpm_pkg_get_desc(pkg), 4);
- printf("\n");
}
- alpm_list_free(ret);
+ }
+ return ret;
+}
+
+static int query_upgrades(void)
+{
+ alpm_list_t *syncpkgs = NULL;
+ printf(_("Checking for package upgrades... \n"));
+
+ alpm_list_t *syncdbs = alpm_option_get_syncdbs();
+ if(alpm_sync_sysupgrade(db_local, syncdbs, &syncpkgs) == -1) {
+ return(-1);
+ }
+ if(syncpkgs) {
+ display_targets(syncpkgs, db_local);
return(0);
}
- if(config->op_q_foreign) {
- sync_dbs = alpm_option_get_syncdbs();
+ printf(_("no upgrades found.\n"));
+ return(1);
+}
- if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
- ERR(NL, _("no usable package repositories configured.\n"));
- return(1);
+static int is_foreign(pmpkg_t *pkg)
+{
+ const char *pkgname = alpm_pkg_get_name(pkg);
+ alpm_list_t *j;
+ alpm_list_t *sync_dbs = alpm_option_get_syncdbs();
+
+ int match = 0;
+ for(j = sync_dbs; j; j = alpm_list_next(j)) {
+ pmdb_t *db = alpm_list_getdata(j);
+ pmpkg_t *findpkg = alpm_db_get_pkg(db, pkgname);
+ if(findpkg) {
+ match = 1;
+ break;
}
}
+ if(match == 0) {
+ return(1);
+ }
+ return(0);
+}
+
+static int is_orphan(pmpkg_t *pkg)
+{
+ alpm_list_t *requiredby = alpm_pkg_compute_requiredby(pkg);
+ if(requiredby == NULL) {
+ return(1);
+ }
+ FREELIST(requiredby);
+ return(0);
+}
- if(config->op_q_upgrade) {
- MSG(NL, _("Checking for package upgrades..."));
- alpm_list_t *syncpkgs;
+static int filter(pmpkg_t *pkg)
+{
+ /* check if this package was explicitly installed */
+ if(config->op_q_explicit &&
+ alpm_pkg_get_reason(pkg) != PM_PKG_REASON_EXPLICIT) {
+ return(0);
+ }
+ /* check if this package was installed as a dependency */
+ if(config->op_q_deps &&
+ alpm_pkg_get_reason(pkg) != PM_PKG_REASON_DEPEND) {
+ return(0);
+ }
+ /* check if this pkg isn't in a sync DB */
+ if(config->op_q_foreign && !is_foreign(pkg)) {
+ return(0);
+ }
+ /* check if this pkg is orphaned */
+ if(config->op_q_orphans && !is_orphan(pkg)) {
+ return(0);
+ }
+ return(1);
+}
- if((syncpkgs = alpm_get_upgrades()) != NULL) {
- display_targets(syncpkgs);
- return(0);
+static void display(pmpkg_t *pkg)
+{
+ if(config->op_q_info) {
+ if(config->op_q_isfile) {
+ /* omit info that isn't applicable for a file package */
+ dump_pkg_full(pkg, 0);
} else {
- MSG(NL, _("no upgrades found"));
- return(1);
+ dump_pkg_full(pkg, config->op_q_info);
}
}
-
- for(i = targets; !done; i = (i ? alpm_list_next(i) : NULL)) {
- if(targets == NULL) {
- done = 1;
+ if(config->op_q_list) {
+ dump_pkg_files(pkg);
+ }
+ if(config->op_q_changelog) {
+ char changelog[PATH_MAX];
+ /* TODO should be done in the backend- no raw DB stuff up front */
+ snprintf(changelog, PATH_MAX, "%s/%s/%s-%s/changelog",
+ alpm_option_get_dbpath(),
+ alpm_db_get_name(db_local),
+ alpm_pkg_get_name(pkg),
+ alpm_pkg_get_version(pkg));
+ dump_pkg_changelog(changelog, alpm_pkg_get_name(pkg));
+ }
+ if(!config->op_q_info && !config->op_q_list && !config->op_q_changelog) {
+ if (!config->quiet) {
+ printf("%s %s\n", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
} else {
- if(alpm_list_next(i) == NULL) {
- done = 1;
- }
- package = alpm_list_getdata(i);
+ printf("%s\n", alpm_pkg_get_name(pkg));
}
+ }
+}
+
+int pacman_query(alpm_list_t *targets)
+{
+ int ret = 0;
+ alpm_list_t *i;
- /* looking for groups */
- if(config->group) {
- if(targets == NULL) {
- for(j = alpm_db_getgrpcache(db_local); j; j = alpm_list_next(j)) {
- pmgrp_t *grp = alpm_list_getdata(j);
- alpm_list_t *p, *pkgnames;
- const char *grpname;
+ /* First: operations that do not require targets */
- grpname = alpm_grp_get_name(grp);
- pkgnames = alpm_grp_get_pkgs(grp);
+ /* search for a package */
+ if(config->op_q_search) {
+ ret = query_search(targets);
+ return(ret);
+ }
- for(p = pkgnames; p; p = alpm_list_next(p)) {
- MSG(NL, "%s %s\n", grpname, (char *)alpm_list_getdata(p));
- }
- }
- } else {
- pmgrp_t *grp = alpm_db_readgrp(db_local, package);
- if(grp) {
- alpm_list_t *p, *pkgnames = alpm_grp_get_pkgs(grp);
- for(p = pkgnames; p; p = alpm_list_next(p)) {
- MSG(NL, "%s %s\n", package, (char *)alpm_list_getdata(p));
- }
- } else {
- ERR(NL, _("group \"%s\" was not found\n"), package);
- /* do not return on query operations - let's just carry on */
- /*return(2);*/
- }
+ /* check for package upgrades */
+ if(config->op_q_upgrade) {
+ ret = query_upgrades();
+ return(ret);
+ }
+
+ /* looking for groups */
+ if(config->group) {
+ ret = query_group(targets);
+ return(ret);
+ }
+
+ if(config->op_q_foreign) {
+ /* ensure we have at least one valid sync db set up */
+ alpm_list_t *sync_dbs = alpm_option_get_syncdbs();
+ if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
+ pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n"));
+ return(-1);
+ }
+ }
+
+ /* operations on all packages in the local DB
+ * valid: no-op (plain -Q), list, info
+ * invalid: isfile, owns */
+ if(targets == NULL) {
+ if(config->op_q_isfile || config->op_q_owns) {
+ pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return(1);
+ }
+
+ for(i = alpm_db_getpkgcache(db_local); i; i = alpm_list_next(i)) {
+ pmpkg_t *pkg = alpm_list_getdata(i);
+ if(filter(pkg)) {
+ display(pkg);
}
- continue;
}
+ return(0);
+ }
+
+ /* Second: operations that require target(s) */
+
+ /* determine the owner of a file */
+ if(config->op_q_owns) {
+ ret = query_fileowner(targets);
+ return(ret);
+ }
+
+ /* operations on named packages in the local DB
+ * valid: no-op (plain -Q), list, info */
+ for(i = targets; i; i = alpm_list_next(i)) {
+ char *strname = alpm_list_getdata(i);
+ pmpkg_t *pkg = NULL;
- /* output info for a .tar.gz package */
if(config->op_q_isfile) {
- if(package == NULL) {
- ERR(NL, _("no package file was specified for --file\n"));
- return(1);
- }
- if(alpm_pkg_load(package, &info) == -1) {
- ERR(NL, _("failed to load package '%s' (%s)\n"), package, alpm_strerror(pm_errno));
- return(1);
- }
- if(config->op_q_info) {
- dump_pkg_full(info, config->op_q_info);
- }
- if(config->op_q_list) {
- dump_pkg_files(info);
- }
- if(!config->op_q_info && !config->op_q_list) {
- MSG(NL, "%s %s\n", alpm_pkg_get_name(info),
- alpm_pkg_get_version(info));
- }
- FREEPKG(info);
- continue;
+ alpm_pkg_load(strname, 1, &pkg);
+ } else {
+ pkg = alpm_db_get_pkg(db_local, strname);
}
- /* determine the owner of a file */
- if(config->op_q_owns) {
- query_fileowner(db_local, package);
+ if(pkg == NULL) {
+ fprintf(stderr, _("error: package \"%s\" not found\n"), strname);
+ ret++;
continue;
}
- /* find packages in the db */
- if(package == NULL) {
- /* no target */
- for(i = alpm_db_getpkgcache(db_local); i; i = alpm_list_next(i)) {
- pmpkg_t *tmpp = alpm_list_getdata(i);
- const char *pkgname, *pkgver;
-
- pkgname = alpm_pkg_get_name(tmpp);
- pkgver = alpm_pkg_get_version(tmpp);
-
- if(config->op_q_list || config->op_q_orphans || config->op_q_foreign) {
- info = alpm_db_get_pkg(db_local, (char *)pkgname);
- if(info == NULL) {
- /* something weird happened */
- ERR(NL, _("package \"%s\" not found\n"), pkgname);
- continue;
- }
- }
- if(config->op_q_foreign) {
- int match = 0;
- for(j = sync_dbs; j; j = alpm_list_next(j)) {
- pmdb_t *db = (pmdb_t *)alpm_list_getdata(j);
- for(k = alpm_db_getpkgcache(db); k; k = alpm_list_next(k)) {
- pmpkg_t *pkg = alpm_list_getdata(k);
- if(strcmp(alpm_pkg_get_name(pkg), alpm_pkg_get_name(info)) == 0) {
- match = 1;
- }
- }
- }
- if(match==0) {
- MSG(NL, "%s %s\n", pkgname, pkgver);
- }
- } else if(config->op_q_list) {
- dump_pkg_files(info);
- } else if(config->op_q_orphans) {
- if(alpm_pkg_get_requiredby(info) == NULL
- && (long)alpm_pkg_get_reason(info) == PM_PKG_REASON_DEPEND) {
- MSG(NL, "%s %s\n", pkgname, pkgver);
- }
- } else {
- MSG(NL, "%s %s\n", pkgname, pkgver);
- }
- }
- } else {
- info = alpm_db_get_pkg(db_local, package);
- if(info == NULL) {
- ERR(NL, _("package \"%s\" not found\n"), package);
- continue;
- }
+ if(filter(pkg)) {
+ display(pkg);
+ }
- /* find a target */
- if(config->op_q_info) {
- dump_pkg_full(info, config->op_q_info);
- }
- if(config->op_q_list) {
- dump_pkg_files(info);
- }
- if(!config->op_q_info && !config->op_q_list) {
- MSG(NL, "%s %s\n", alpm_pkg_get_name(info),
- alpm_pkg_get_version(info));
- }
- if(config->op_q_changelog) {
- char changelog[PATH_MAX];
- snprintf(changelog, PATH_MAX, "%s%s/%s/%s-%s/changelog",
- alpm_option_get_root(), alpm_option_get_dbpath(),
- alpm_db_get_name(db_local),
- alpm_pkg_get_name(info),
- alpm_pkg_get_version(info));
- dump_pkg_changelog(changelog, alpm_pkg_get_name(info));
- }
+ if(config->op_q_isfile) {
+ alpm_pkg_free(pkg);
+ pkg = NULL;
}
}
- return(0);
+ return(ret);
}
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/query.h b/src/pacman/query.h
deleted file mode 100644
index fa55c732..00000000
--- a/src/pacman/query.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * query.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_QUERY_H
-#define _PM_QUERY_H
-
-#include <alpm_list.h>
-
-int pacman_query(alpm_list_t *targets);
-
-#endif /* _PM_QUERY_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/remove.c b/src/pacman/remove.c
index 9989f8e5..1028d9e8 100644
--- a/src/pacman/remove.c
+++ b/src/pacman/remove.c
@@ -1,8 +1,8 @@
/*
* remove.c
- *
+ *
* 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -24,46 +24,63 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#include <libintl.h>
#include <alpm.h>
#include <alpm_list.h>
/* pacman */
-#include "remove.h"
+#include "pacman.h"
#include "util.h"
-#include "log.h"
-#include "trans.h"
+#include "callback.h"
#include "conf.h"
-extern config_t *config;
-
extern pmdb_t *db_local;
+/* Free the current transaction and print an error if unsuccessful */
+static int remove_cleanup(void)
+{
+ int ret = alpm_trans_release();
+ if(ret != 0) {
+ pm_printf(PM_LOG_ERROR, _("failed to release transaction (%s)\n"),
+ alpm_strerrorlast());
+ ret = 1;
+ }
+
+ return(ret);
+}
+
+/**
+ * @brief Remove a specified list of packages.
+ *
+ * @param targets a list of packages (as strings) to remove from the system
+ *
+ * @return 0 on success, 1 on failure
+ */
int pacman_remove(alpm_list_t *targets)
{
- alpm_list_t *data = NULL, *i, *j, *finaltargs = NULL;
+ alpm_list_t *i, *data = NULL, *finaltargs = NULL;
int retval = 0;
if(targets == NULL) {
- return(0);
+ pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return(1);
}
- /* If the target is a group, ask if its packages should be removed
+ /* If the target is a group, ask if its packages should be removed
* (the library can't remove groups for now)
*/
for(i = targets; i; i = alpm_list_next(i)) {
pmgrp_t *grp = alpm_db_readgrp(db_local, alpm_list_getdata(i));
if(grp) {
int all;
- alpm_list_t *pkgnames = alpm_grp_get_pkgs(grp);
+ const alpm_list_t *p, *pkgnames = alpm_grp_get_pkgs(grp);
- MSG(NL, _(":: group %s:\n"), alpm_grp_get_name(grp));
+ printf(_(":: group %s:\n"), alpm_grp_get_name(grp));
list_display(" ", pkgnames);
all = yesno(_(" Remove whole content? [Y/n] "));
- for(j = pkgnames; j; j = alpm_list_next(j)) {
- char *pkg = alpm_list_getdata(j);
+ for(p = pkgnames; p; p = alpm_list_next(p)) {
+ char *pkg = alpm_list_getdata(p);
if(all || yesno(_(":: Remove %s from group %s? [Y/n] "), pkg, (char *)alpm_list_getdata(i))) {
finaltargs = alpm_list_add(finaltargs, strdup(pkg));
}
@@ -74,84 +91,93 @@ int pacman_remove(alpm_list_t *targets)
}
}
- /* Step 1: create a new transaction
- */
- if(alpm_trans_init(PM_TRANS_TYPE_REMOVE, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) {
- ERR(NL, _("failed to init transaction (%s)\n"), alpm_strerror(pm_errno));
+ /* Step 1: create a new transaction */
+ if(alpm_trans_init(PM_TRANS_TYPE_REMOVE, config->flags,
+ cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) {
+ fprintf(stderr, _("error: failed to init transaction (%s)\n"),
+ alpm_strerrorlast());
if(pm_errno == PM_ERR_HANDLE_LOCK) {
- MSG(NL, _(" if you're sure a package manager is not already running,\n"
- " you can remove %s%s\n"), alpm_option_get_root(), PM_LOCK);
+ printf(_(" if you're sure a package manager is not already\n"
+ " running, you can remove %s.\n"), alpm_option_get_lockfile());
}
FREELIST(finaltargs);
return(1);
}
- /* and add targets to it */
+
+ /* add targets to the created transaction */
+ printf(_("loading package data... "));
for(i = finaltargs; i; i = alpm_list_next(i)) {
char *targ = alpm_list_getdata(i);
if(alpm_trans_addtarget(targ) == -1) {
- ERR(NL, _("failed to add target '%s' (%s)\n"), targ, alpm_strerror(pm_errno));
- retval = 1;
- goto cleanup;
+ printf("failed.\n");
+ fprintf(stderr, _("error: failed to add target '%s' (%s)\n"), targ,
+ alpm_strerrorlast());
+ remove_cleanup();
+ FREELIST(finaltargs);
+ return(1);
}
}
+ printf(_("done.\n"));
- /* Step 2: prepare the transaction based on its type, targets and flags
- */
+ /* Step 2: prepare the transaction based on its type, targets and flags */
if(alpm_trans_prepare(&data) == -1) {
- ERR(NL, _("failed to prepare transaction (%s)\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to prepare transaction (%s)\n"),
+ alpm_strerrorlast());
switch(pm_errno) {
case PM_ERR_UNSATISFIED_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
pmdepmissing_t *miss = alpm_list_getdata(i);
- MSG(NL, _(":: %s is required by %s\n"), alpm_dep_get_target(miss),
- alpm_dep_get_name(miss));
+ pmdepend_t *dep = alpm_miss_get_dep(miss);
+ char *depstring = alpm_dep_get_string(dep);
+ printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
+ depstring);
+ free(depstring);
}
+ alpm_list_free_inner(data, free);
alpm_list_free(data);
- break;
+ break;
default:
- break;
+ break;
}
- retval = 1;
- goto cleanup;
+ remove_cleanup();
+ FREELIST(finaltargs);
+ return(1);
}
- /* Warn user in case of dangerous operation
- */
- if(config->flags & PM_TRANS_FLAG_RECURSE || config->flags & PM_TRANS_FLAG_CASCADE) {
+ /* Warn user in case of dangerous operation */
+ if(config->flags & PM_TRANS_FLAG_RECURSE ||
+ config->flags & PM_TRANS_FLAG_CASCADE) {
/* list transaction targets */
alpm_list_t *lst = NULL;
+ /* create a new list of package names only */
for(i = alpm_trans_get_pkgs(); i; i = alpm_list_next(i)) {
pmpkg_t *pkg = alpm_list_getdata(i);
lst = alpm_list_add(lst, strdup(alpm_pkg_get_name(pkg)));
}
- MSG(NL, "\n");
+ printf("\n");
list_display(_("Targets:"), lst);
FREELIST(lst);
/* get confirmation */
if(yesno(_("\nDo you want to remove these packages? [Y/n] ")) == 0) {
- retval = 1;
- goto cleanup;
+ remove_cleanup();
+ FREELIST(finaltargs);
+ return(1);
}
- MSG(NL, "\n");
+ printf("\n");
}
- /* Step 3: actually perform the removal
- */
+ /* Step 3: actually perform the removal */
if(alpm_trans_commit(NULL) == -1) {
- ERR(NL, _("failed to commit transaction (%s)\n"), alpm_strerror(pm_errno));
- retval = 1;
- goto cleanup;
+ fprintf(stderr, _("error: failed to commit transaction (%s)\n"),
+ alpm_strerrorlast());
+ remove_cleanup();
+ FREELIST(finaltargs);
+ return(1);
}
- /* Step 4: release transaction resources
- */
-cleanup:
+ /* Step 4: release transaction resources */
+ retval = remove_cleanup();
FREELIST(finaltargs);
- if(alpm_trans_release() == -1) {
- ERR(NL, _("failed to release transaction (%s)\n"), alpm_strerror(pm_errno));
- retval = 1;
- }
-
return(retval);
}
diff --git a/src/pacman/remove.h b/src/pacman/remove.h
deleted file mode 100644
index 33a2d20d..00000000
--- a/src/pacman/remove.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * remove.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_REMOVE_H
-#define _PM_REMOVE_H
-
-#include <alpm_list.h>
-
-int pacman_remove(alpm_list_t *targets);
-
-#endif /* _PM_REMOVE_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/sync.c b/src/pacman/sync.c
index ca95fe63..77939623 100644
--- a/src/pacman/sync.c
+++ b/src/pacman/sync.c
@@ -1,8 +1,8 @@
/*
* sync.c
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,7 +15,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
@@ -24,16 +24,9 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include <sys/stat.h>
-#if defined(__APPLE__) || defined(__OpenBSD__)
-#include <sys/syslimits.h>
-#endif
+#include <limits.h>
#include <unistd.h>
#include <dirent.h>
-#include <libintl.h>
-#ifdef CYGWIN
-#include <limits.h> /* PATH_MAX */
-#endif
#include <alpm.h>
#include <alpm_list.h>
@@ -42,158 +35,163 @@
* remove it from Makefile.am on the pacman side */
/* pacman */
-#include "sync.h"
+#include "pacman.h"
#include "util.h"
-#include "log.h"
-#include "downloadprog.h"
#include "package.h"
-#include "trans.h"
+#include "callback.h"
#include "conf.h"
-extern config_t *config;
+extern pmdb_t *db_local;
-/* splits package name into its respective parts */
-static int split_pkgname(char *target, char *name, char *version)
-{
- char tmp[512];
- char *p, *q;
+static int sync_cleandb(const char *dbpath) {
+ DIR *dir;
+ struct dirent *ent;
- if(target == NULL) {
- return(-1);
+ dir = opendir(dbpath);
+ if(dir == NULL) {
+ fprintf(stderr, _("error: could not access database directory\n"));
+ return(1);
}
- /* trim path name (if any) */
- if((p = strrchr(target, '/')) == NULL) {
- p = target;
- } else {
- p++;
- }
- strncpy(tmp, p, 512);
- /* trim file extension (if any) */
- if((p = strstr(tmp, PM_EXT_PKG))) {
- *p = '\0';
- }
- /* trim architecture */
- if((p = alpm_pkg_name_hasarch(tmp))) {
- *p = '\0';
- }
+ rewinddir(dir);
+ /* step through the directory one file at a time */
+ while((ent = readdir(dir)) != NULL) {
+ char path[PATH_MAX];
+ alpm_list_t *syncdbs = NULL, *i;
+ int found = 0;
+ char *dname = ent->d_name;
+
+ if(!strcmp(dname, ".") || !strcmp(dname, "..")) {
+ continue;
+ }
+ /* skip the local and sync directories */
+ if(!strcmp(dname, "sync") || !strcmp(dname, "local")) {
+ continue;
+ }
+ syncdbs = alpm_option_get_syncdbs();
+ for(i = syncdbs; i && !found; i = alpm_list_next(i)) {
+ pmdb_t *db = alpm_list_getdata(i);
+ found = !strcmp(dname, alpm_db_get_name(db));
+ }
+
+ /* We have a directory that doesn't match any syncdb.
+ * Ask the user if he wants to remove it. */
+ if(!found) {
+ /* build the full path */
+ snprintf(path, PATH_MAX, "%s%s", dbpath, ent->d_name);
+
+ if(!yesno(_("Do you want to remove %s? [Y/n] "), path)) {
+ continue;
+ }
- p = tmp + strlen(tmp);
+ if(rmrf(path)) {
+ fprintf(stderr, _("error: could not remove repository directory\n"));
+ return(1);
+ }
+ }
- for(q = --p; *q && *q != '-'; q--);
- if(*q != '-' || q == tmp) {
- return(-1);
}
- for(p = --q; *p && *p != '-'; p--);
- if(*p != '-' || p == tmp) {
- return(-1);
+ return(0);
+}
+
+static int sync_cleandb_all(void) {
+ const char *dbpath = alpm_option_get_dbpath();
+ char newdbpath[PATH_MAX];
+
+ printf(_("Database directory: %s\n"), dbpath);
+ if(!yesno(_("Do you want to remove unused repositories? [Y/n] "))) {
+ return(0);
}
- strncpy(version, p+1, 64);
- *p = '\0';
+ /* The sync dbs were previously put in dbpath, but are now in dbpath/sync,
+ * so we will clean both directories */
+ sync_cleandb(dbpath);
- strncpy(name, tmp, 256);
+ sprintf(newdbpath, "%s%s", dbpath, "sync/");
+ sync_cleandb(newdbpath);
+ printf(_("Database directory cleaned up\n"));
return(0);
}
static int sync_cleancache(int level)
{
- const char *root, *cachedir;
- char dirpath[PATH_MAX];
-
- root = alpm_option_get_root();
- cachedir = alpm_option_get_cachedir();
-
- snprintf(dirpath, PATH_MAX, "%s%s", root, cachedir);
+ /* TODO for now, just mess with the first cache directory */
+ alpm_list_t* cachedirs = alpm_option_get_cachedirs();
+ const char *cachedir = alpm_list_getdata(cachedirs);
if(level == 1) {
- /* incomplete cleanup: we keep latest packages and partial downloads */
+ /* incomplete cleanup */
DIR *dir;
struct dirent *ent;
- alpm_list_t *cache = NULL, *clean = NULL, *i, *j;
-
- if(!yesno(_("Do you want to remove old packages from cache? [Y/n] ")))
+ /* Let's vastly improve the way this is done. Before, we went by package
+ * name. Instead, let's only keep packages we have installed. Open up each
+ * package and see if it has an entry in the local DB; if not, delete it.
+ */
+ printf(_("Cache directory: %s\n"), cachedir);
+ if(!yesno(_("Do you want to remove uninstalled packages from cache? [Y/n] "))) {
return(0);
- MSG(NL, _("removing old packages from cache... "));
- dir = opendir(dirpath);
+ }
+ printf(_("removing old packages from cache... "));
+
+ dir = opendir(cachedir);
if(dir == NULL) {
- ERR(NL, _("could not access cache directory\n"));
+ fprintf(stderr, _("error: could not access cache directory\n"));
return(1);
}
+
rewinddir(dir);
+ /* step through the directory one file at a time */
while((ent = readdir(dir)) != NULL) {
+ char path[PATH_MAX];
+ pmpkg_t *localpkg = NULL, *dbpkg = NULL;
+
if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) {
continue;
}
- cache = alpm_list_add(cache, strdup(ent->d_name));
- }
- closedir(dir);
-
- for(i = cache; i; i = alpm_list_next(i)) {
- char *str = alpm_list_getdata(i);
- char name[256], version[64];
+ /* build the full filepath */
+ snprintf(path, PATH_MAX, "%s/%s", cachedir, ent->d_name);
- if(strstr(str, PM_EXT_PKG) == NULL) {
- clean = alpm_list_add(clean, strdup(str));
- continue;
- }
- /* we keep partially downloaded files */
- if(strstr(str, PM_EXT_PKG ".part")) {
- continue;
- }
- if(split_pkgname(str, name, version) != 0) {
- clean = alpm_list_add(clean, strdup(str));
+ /* attempt to load the package, skip file on failures as we may have
+ * files here that aren't valid packages. we also don't need a full
+ * load of the package, just the metadata. */
+ if(alpm_pkg_load(path, 0, &localpkg) != 0 || localpkg == NULL) {
continue;
}
- for(j = alpm_list_next(i); j; j = alpm_list_next(j)) {
- char *s = alpm_list_getdata(j);
- char n[256], v[64];
-
- if(strstr(s, PM_EXT_PKG) == NULL) {
- continue;
- }
- if(strstr(s, PM_EXT_PKG ".part")) {
- continue;
- }
- if(split_pkgname(s, n, v) != 0) {
- continue;
- }
- /* TODO Do not remove the currently installed version EITHER */
- if(!strcmp(name, n)) {
- char *ptr = (alpm_pkg_vercmp(version, v) < 0) ? str : s;
- if(!alpm_list_find_str(clean, ptr)) {
- clean = alpm_list_add(clean, strdup(ptr));
- }
- }
+ /* check if this package is in the local DB */
+ dbpkg = alpm_db_get_pkg(db_local, alpm_pkg_get_name(localpkg));
+ if(dbpkg == NULL) {
+ /* delete package, not present in local DB */
+ unlink(path);
+ } else if(alpm_pkg_vercmp(alpm_pkg_get_version(localpkg),
+ alpm_pkg_get_version(dbpkg)) != 0) {
+ /* delete package, it was found but version differs */
+ unlink(path);
}
+ /* else version was the same, so keep the package */
+ /* free the local file package */
+ alpm_pkg_free(localpkg);
}
- FREELIST(cache);
-
- for(i = clean; i; i = alpm_list_next(i)) {
- char path[PATH_MAX];
-
- snprintf(path, PATH_MAX, "%s/%s", dirpath, (char *)alpm_list_getdata(i));
- unlink(path);
- }
- FREELIST(clean);
+ printf(_("done.\n"));
} else {
/* full cleanup */
- if(!yesno(_("Do you want to remove all packages from cache? [Y/n] ")))
+ printf(_("Cache directory: %s\n"), cachedir);
+ if(!yesno(_("Do you want to remove ALL packages from cache? [Y/n] "))) {
return(0);
- MSG(NL, _("removing all packages from cache... "));
+ }
+ printf(_("removing all packages from cache... "));
- if(rmrf(dirpath)) {
- ERR(NL, _("could not remove cache directory\n"));
+ if(rmrf(cachedir)) {
+ fprintf(stderr, _("error: could not remove cache directory\n"));
return(1);
}
- if(makepath(dirpath)) {
- ERR(NL, _("could not create new cache directory\n"));
+ if(makepath(cachedir)) {
+ fprintf(stderr, _("error: could not create new cache directory\n"));
return(1);
}
+ printf(_("done.\n"));
}
- MSG(CL, _("done.\n"));
return(0);
}
@@ -215,12 +213,14 @@ static int sync_synctree(int level, alpm_list_t *syncs)
* Yes. This will be here until we add a nice pacman "pm_errstr" or
* something, OR add all libdownload error codes into the pm_error enum
*/
- ERR(NL, _("failed to synchronize %s: %s\n"), alpm_db_get_name(db), downloadLastErrString);
+ fprintf(stderr, _("error: failed to synchronize %s: %s\n"),
+ alpm_db_get_name(db), downloadLastErrString);
} else {
- ERR(NL, _("failed to update %s (%s)\n"), alpm_db_get_name(db), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to update %s (%s)\n"),
+ alpm_db_get_name(db), alpm_strerrorlast());
}
} else if(ret == 1) {
- MSG(NL, _(" %s is up to date\n"), alpm_db_get_name(db));
+ printf(_(" %s is up to date\n"), alpm_db_get_name(db));
success++;
} else {
success++;
@@ -234,48 +234,68 @@ static int sync_synctree(int level, alpm_list_t *syncs)
return(success > 0);
}
+/* search the sync dbs for a matching package */
static int sync_search(alpm_list_t *syncs, alpm_list_t *targets)
{
alpm_list_t *i, *j, *ret;
+ int freelist;
+ int found = 0;
for(i = syncs; i; i = alpm_list_next(i)) {
- pmdb_t *db = (pmdb_t *)alpm_list_getdata(i);
+ pmdb_t *db = alpm_list_getdata(i);
+ /* if we have a targets list, search for packages matching it */
if(targets) {
ret = alpm_db_search(db, targets);
- if(ret == NULL) {
- continue;
- }
- for(j = ret; j; j = alpm_list_next(j)) {
- char *group = NULL;
- alpm_list_t *grp;
- pmpkg_t *pkg = alpm_list_getdata(j);
+ freelist = 1;
+ } else {
+ ret = alpm_db_getpkgcache(db);
+ freelist = 0;
+ }
+ if(ret == NULL) {
+ continue;
+ } else {
+ found = 1;
+ }
+ for(j = ret; j; j = alpm_list_next(j)) {
+ /* print repo/name (group) info about each package in our list */
+ char *group = NULL;
+ alpm_list_t *grp;
+ pmpkg_t *pkg = alpm_list_getdata(j);
+ if (!config->quiet) {
printf("%s/%s %s", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
- alpm_pkg_get_version(pkg));
+ alpm_pkg_get_version(pkg));
+ } else {
+ printf("%s", alpm_pkg_get_name(pkg));
+ }
+
+ /* print the package size with the output if ShowSize option set */
+ if(config->showsize) {
+ /* Convert byte size to MB */
+ double mbsize = alpm_pkg_get_size(pkg) / (1024.0 * 1024.0);
+
+ printf(" [%.2f MB]", mbsize);
+ }
+ if (!config->quiet) {
if((grp = alpm_pkg_get_groups(pkg)) != NULL) {
- group = alpm_list_getdata(grp);
- printf(" (%s)\n ", (char *)alpm_list_getdata(grp));
- } else {
- printf("\n ");
+ group = alpm_list_getdata(grp);
+ printf(" (%s)", (char *)alpm_list_getdata(grp));
}
-
- indentprint(alpm_pkg_get_desc(pkg), 4);
- printf("\n");
- }
- alpm_list_free(ret);
- } else {
- for(j = alpm_db_getpkgcache(db); j; j = alpm_list_next(j)) {
- pmpkg_t *pkg = alpm_list_getdata(j);
- MSG(NL, "%s/%s %s\n ", alpm_db_get_name(db), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
+ /* we need a newline and initial indent first */
+ printf("\n ");
indentprint(alpm_pkg_get_desc(pkg), 4);
- MSG(NL, "\n");
}
+ printf("\n");
+ }
+ /* we only want to free if the list was a search list */
+ if(freelist) {
+ alpm_list_free(ret);
}
}
- return(0);
+ return(!found);
}
static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
@@ -291,7 +311,7 @@ static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
if(grp) {
/* TODO this should be a lot cleaner, why two outputs? */
- MSG(NL, "%s\n", (char *)alpm_grp_get_name(grp));
+ printf("%s\n", (char *)alpm_grp_get_name(grp));
list_display(" ", alpm_grp_get_pkgs(grp));
}
}
@@ -303,7 +323,7 @@ static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
for(j = alpm_db_getgrpcache(db); j; j = alpm_list_next(j)) {
pmgrp_t *grp = alpm_list_getdata(j);
- MSG(NL, "%s\n", (char *)alpm_grp_get_name(grp));
+ printf("%s\n", (char *)alpm_grp_get_name(grp));
if(grp && level > 1) {
list_display(" ", alpm_grp_get_pkgs(grp));
}
@@ -317,6 +337,7 @@ static int sync_group(int level, alpm_list_t *syncs, alpm_list_t *targets)
static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
{
alpm_list_t *i, *j, *k;
+ int ret = 0;
if(targets) {
for(i = targets; i; i = alpm_list_next(i)) {
@@ -340,29 +361,29 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
}
db = NULL;
}
-
+
if(!db) {
- ERR(NL, _("repository '%s' does not exist\n"), repo);
+ fprintf(stderr, _("error: repository '%s' does not exist\n"), repo);
return(1);
}
-
+
for(k = alpm_db_getpkgcache(db); k; k = alpm_list_next(k)) {
pmpkg_t *pkg = alpm_list_getdata(k);
if(strcmp(alpm_pkg_get_name(pkg), pkgstr) == 0) {
dump_pkg_sync(pkg, alpm_db_get_name(db));
- MSG(NL, "\n");
foundpkg = 1;
break;
}
}
-
+
if(!foundpkg) {
- ERR(NL, _("package '%s' was not found in repository '%s'\n"), pkgstr, repo);
+ fprintf(stderr, _("error: package '%s' was not found in repository '%s'\n"), pkgstr, repo);
+ ret++;
}
} else {
pkgstr = target;
-
+
for(j = syncs; j; j = alpm_list_next(j)) {
pmdb_t *db = alpm_list_getdata(j);
@@ -371,29 +392,28 @@ static int sync_info(alpm_list_t *syncs, alpm_list_t *targets)
if(strcmp(alpm_pkg_get_name(pkg), pkgstr) == 0) {
dump_pkg_sync(pkg, alpm_db_get_name(db));
- MSG(NL, "\n");
foundpkg = 1;
break;
}
}
}
if(!foundpkg) {
- ERR(NL, _("package '%s' was not found\n"), pkgstr);
+ fprintf(stderr, _("error: package '%s' was not found\n"), pkgstr);
+ ret++;
}
}
}
} else {
for(i = syncs; i; i = alpm_list_next(i)) {
pmdb_t *db = alpm_list_getdata(i);
-
+
for(j = alpm_db_getpkgcache(db); j; j = alpm_list_next(j)) {
dump_pkg_sync(alpm_list_getdata(j), alpm_db_get_name(db));
- MSG(NL, "\n");
}
}
}
- return(0);
+ return(ret);
}
static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
@@ -415,7 +435,7 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
}
if(db == NULL) {
- ERR(NL, _("repository \"%s\" was not found.\n"),repo);
+ fprintf(stderr, _("error: repository \"%s\" was not found.\n"),repo);
alpm_list_free(ls);
return(1);
}
@@ -431,7 +451,12 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
for(j = alpm_db_getpkgcache(db); j; j = alpm_list_next(j)) {
pmpkg_t *pkg = alpm_list_getdata(j);
- MSG(NL, "%s %s %s\n", alpm_db_get_name(db), alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
+ if (!config->quiet) {
+ printf("%s %s %s\n", alpm_db_get_name(db), alpm_pkg_get_name(pkg),
+ alpm_pkg_get_version(pkg));
+ } else {
+ printf("%s\n", alpm_pkg_get_name(pkg));
+ }
}
}
@@ -442,99 +467,82 @@ static int sync_list(alpm_list_t *syncs, alpm_list_t *targets)
return(0);
}
-int pacman_sync(alpm_list_t *targets)
+int sync_trans(alpm_list_t *targets, int sync_only)
{
- int confirm = 0;
int retval = 0;
- alpm_list_t *packages, *data = NULL, *i, *j, *k, *sync_dbs;
-
- sync_dbs = alpm_option_get_syncdbs();
- if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
- ERR(NL, _("no usable package repositories configured.\n"));
- return(1);
- }
-
- if(config->op_s_clean) {
- return(sync_cleancache(config->op_s_clean));
- }
-
- if(config->op_s_search) {
- return(sync_search(sync_dbs, targets));
- }
-
- if(config->group) {
- return(sync_group(config->group, sync_dbs, targets));
- }
-
- if(config->op_s_info) {
- return(sync_info(sync_dbs, targets));
- }
-
- if(config->op_q_list) {
- return(sync_list(sync_dbs, targets));
- }
-
- /* Step 1: create a new transaction...
- */
- if(alpm_trans_init(PM_TRANS_TYPE_SYNC, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) {
- ERR(NL, _("failed to init transaction (%s)\n"), alpm_strerror(pm_errno));
+ alpm_list_t *data = NULL;
+ alpm_list_t *sync_dbs = alpm_option_get_syncdbs();
+
+ /* Step 1: create a new transaction... */
+ if(alpm_trans_init(PM_TRANS_TYPE_SYNC, config->flags, cb_trans_evt,
+ cb_trans_conv, cb_trans_progress) == -1) {
+ fprintf(stderr, _("error: failed to init transaction (%s)\n"),
+ alpm_strerrorlast());
if(pm_errno == PM_ERR_HANDLE_LOCK) {
- MSG(NL, _(" if you're sure a package manager is not already running,\n"
- " you can remove %s%s\n"), alpm_option_get_root(), PM_LOCK);
+ printf(_(" if you're sure a package manager is not already\n"
+ " running, you can remove %s.\n"), alpm_option_get_lockfile());
}
return(1);
}
if(config->op_s_sync) {
/* grab a fresh package list */
- MSG(NL, _(":: Synchronizing package databases...\n"));
- alpm_logaction(_("synchronizing package lists"));
+ printf(_(":: Synchronizing package databases...\n"));
+ alpm_logaction("synchronizing package lists\n");
if(!sync_synctree(config->op_s_sync, sync_dbs)) {
- ERR(NL, _("failed to synchronize any databases"));
- return(1);
+ fprintf(stderr, _("error: failed to synchronize any databases\n"));
+ retval = 1;
+ goto cleanup;
+ }
+ if(sync_only) {
+ goto cleanup;
}
}
if(config->op_s_upgrade) {
- MSG(NL, _(":: Starting full system upgrade...\n"));
- alpm_logaction(_("starting full system upgrade"));
+ alpm_list_t *pkgs, *i;
+
+ printf(_(":: Starting full system upgrade...\n"));
+ alpm_logaction("starting full system upgrade\n");
if(alpm_trans_sysupgrade() == -1) {
- ERR(NL, "%s\n", alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: %s\n"), alpm_strerrorlast());
retval = 1;
goto cleanup;
}
- /* check if pacman itself is one of the packages to upgrade. If so, we
- * we should upgrade ourselves first and then re-exec as the new version.
- *
+ /* check if pacman itself is one of the packages to upgrade.
* this can prevent some of the "syntax error" problems users can have
* when sysupgrade'ing with an older version of pacman.
*/
- data = alpm_trans_get_pkgs();
- for(i = data; i; i = alpm_list_next(i)) {
+ pkgs = alpm_trans_get_pkgs();
+ for(i = pkgs; i; i = alpm_list_next(i)) {
pmsyncpkg_t *sync = alpm_list_getdata(i);
pmpkg_t *spkg = alpm_sync_get_pkg(sync);
- if(strcmp("pacman", alpm_pkg_get_name(spkg)) == 0 && alpm_list_count(data) > 1) {
- MSG(NL, _("\n:: pacman has detected a newer version of the \"pacman\" package.\n"));
- MSG(NL, _(":: It is recommended that you allow pacman to upgrade itself\n"));
- MSG(NL, _(":: first, then you can re-run the operation with the newer version.\n"));
- MSG(NL, "::\n");
- if(yesno(_(":: Upgrade pacman first? [Y/n] "))) {
+ /* TODO pacman name should probably not be hardcoded. In addition, we
+ * have problems on an -Syu if pacman has to pull in deps, so recommend
+ * an '-S pacman' operation */
+ if(strcmp("pacman", alpm_pkg_get_name(spkg)) == 0) {
+ printf("\n");
+ printf(_(":: pacman has detected a newer version of itself.\n"
+ ":: It is recommended that you upgrade pacman by itself\n"
+ ":: using 'pacman -S pacman', and then rerun the current\n"
+ ":: operation. If you wish to continue the operation and\n"
+ ":: not upgrade pacman separately, answer no.\n"));
+ if(yesno(_(":: Cancel current operation? [Y/n] "))) {
if(alpm_trans_release() == -1) {
- ERR(NL, _("failed to release transaction (%s)\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to release transaction (%s)\n"),
+ alpm_strerrorlast());
retval = 1;
goto cleanup;
}
- if(alpm_trans_init(PM_TRANS_TYPE_SYNC, config->flags, cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) {
- ERR(NL, _("failed to init transaction (%s)\n"), alpm_strerror(pm_errno));
- if(pm_errno == PM_ERR_HANDLE_LOCK) {
- MSG(NL, _(" if you're sure a package manager is not already running,\n"
- " you can remove %s%s\n"), alpm_option_get_root(), PM_LOCK);
- }
+ if(alpm_trans_init(PM_TRANS_TYPE_SYNC, config->flags,
+ cb_trans_evt, cb_trans_conv, cb_trans_progress) == -1) {
+ fprintf(stderr, _("error: failed to init transaction (%s)\n"),
+ alpm_strerrorlast());
return(1);
}
if(alpm_trans_addtarget("pacman") == -1) {
- ERR(NL, _("pacman: %s\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: pacman: %s\n"), alpm_strerrorlast());
retval = 1;
goto cleanup;
}
@@ -543,31 +551,39 @@ int pacman_sync(alpm_list_t *targets)
}
}
} else {
+ alpm_list_t *i;
+
/* process targets */
for(i = targets; i; i = alpm_list_next(i)) {
char *targ = alpm_list_getdata(i);
if(alpm_trans_addtarget(targ) == -1) {
pmgrp_t *grp = NULL;
int found=0;
+ alpm_list_t *j;
+
if(pm_errno == PM_ERR_TRANS_DUP_TARGET) {
/* just ignore duplicate targets */
continue;
}
if(pm_errno != PM_ERR_PKG_NOT_FOUND) {
- ERR(NL, "'%s': %s\n", (char *)i->data, alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: '%s': %s\n"),
+ (char *)i->data, alpm_strerrorlast());
retval = 1;
goto cleanup;
}
/* target not found: check if it's a group */
-
- for(j = alpm_option_get_syncdbs(); j; j = alpm_list_next(j)) {
+
+ for(j = sync_dbs; j; j = alpm_list_next(j)) {
pmdb_t *db = alpm_list_getdata(j);
grp = alpm_db_readgrp(db, targ);
if(grp) {
+ alpm_list_t *k;
+
found++;
- MSG(NL, _(":: group %s:\n"), targ);
+ printf(_(":: group %s:\n"), targ);
/* remove dupe entries in case a package exists in multiple repos */
- alpm_list_t *pkgs = alpm_list_remove_dupes(alpm_grp_get_pkgs(grp));
+ const alpm_list_t *grppkgs = alpm_grp_get_pkgs(grp);
+ alpm_list_t *pkgs = alpm_list_remove_dupes(grppkgs);
list_display(" ", pkgs);
if(yesno(_(":: Install whole content? [Y/n] "))) {
for(k = pkgs; k; k = alpm_list_next(k)) {
@@ -585,108 +601,70 @@ int pacman_sync(alpm_list_t *targets)
}
}
if(!found) {
- /* targ not found in sync db, searching for providers... */
- const char *pname = NULL;
- for(j = alpm_option_get_syncdbs(); j; j = alpm_list_next(j)) {
- pmdb_t *db = alpm_list_getdata(j);
- alpm_list_t *prov = alpm_db_whatprovides(db, targ);
- if(prov) {
- pmpkg_t *pkg = alpm_list_getdata(prov);
- pname = alpm_pkg_get_name(pkg);
- break;
- }
- }
- if(pname != NULL) {
- /* targ is provided by pname */
- targets = alpm_list_add(targets, strdup(pname));
- } else {
- ERR(NL, _("'%s': not found in sync db\n"), targ);
- retval = 1;
- goto cleanup;
- }
+ fprintf(stderr, _("error: '%s': not found in sync db\n"), targ);
+ retval = 1;
+ goto cleanup;
}
}
}
}
- /* Step 2: "compute" the transaction based on targets and flags
- */
+ /* Step 2: "compute" the transaction based on targets and flags */
if(alpm_trans_prepare(&data) == -1) {
- long long *pkgsize, *freespace;
- ERR(NL, _("failed to prepare transaction (%s)\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to prepare transaction (%s)\n"),
+ alpm_strerrorlast());
switch(pm_errno) {
+ alpm_list_t *i;
case PM_ERR_UNSATISFIED_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
pmdepmissing_t *miss = alpm_list_getdata(i);
- MSG(NL, ":: %s %s %s", alpm_dep_get_target(miss), _("requires"),
- alpm_dep_get_name(miss));
- switch(alpm_dep_get_mod(miss)) {
- case PM_DEP_MOD_ANY:
- break;
- case PM_DEP_MOD_EQ:
- MSG(CL, "=%s", alpm_dep_get_version(miss));
- break;
- case PM_DEP_MOD_GE:
- MSG(CL, ">=%s", alpm_dep_get_version(miss));
- break;
- case PM_DEP_MOD_LE:
- MSG(CL, "<=%s", alpm_dep_get_version(miss));
- break;
- }
- MSG(CL, "\n");
+ pmdepend_t *dep = alpm_miss_get_dep(miss);
+ char *depstring = alpm_dep_get_string(dep);
+ printf(_(":: %s: requires %s\n"), alpm_miss_get_target(miss),
+ depstring);
+ free(depstring);
}
- break;
+ break;
case PM_ERR_CONFLICTING_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
- pmdepmissing_t *miss = alpm_list_getdata(i);
-
- MSG(NL, _(":: %s: conflicts with %s"),
- alpm_dep_get_target(miss), alpm_dep_get_name(miss));
+ pmconflict_t *conflict = alpm_list_getdata(i);
+ printf(_(":: %s: conflicts with %s\n"),
+ alpm_conflict_get_package1(conflict), alpm_conflict_get_package2(conflict));
}
- break;
- case PM_ERR_DISK_FULL:
- pkgsize = alpm_list_getdata(data);
- freespace = alpm_list_getdata(alpm_list_next(data));
- MSG(NL, _(":: %.1f MB required, have %.1f MB"),
- (double)(*pkgsize / 1048576.0), (double)(*freespace / 1048576.0));
- break;
+ break;
default:
- break;
+ break;
}
retval = 1;
goto cleanup;
}
- packages = alpm_trans_get_pkgs();
+ alpm_list_t *packages = alpm_trans_get_pkgs();
if(packages == NULL) {
/* nothing to do: just exit without complaining */
- MSG(NL, _(" local database is up to date\n"));
+ printf(_(" local database is up to date\n"));
goto cleanup;
}
if(!(alpm_trans_get_flags() & PM_TRANS_FLAG_PRINTURIS)) {
- display_targets(packages);
+ int confirm;
+
+ display_targets(packages, db_local);
+ printf("\n");
if(config->op_s_downloadonly) {
if(config->noconfirm) {
- MSG(NL, _("\nBeginning download...\n"));
+ printf(_("Beginning download...\n"));
confirm = 1;
} else {
- MSG(NL, "\n");
confirm = yesno(_("Proceed with download? [Y/n] "));
}
} else {
- /* don't get any confirmation if we're called from makepkg */
- if(config->op_d_resolve) {
+ if(config->noconfirm) {
+ printf(_("Beginning upgrade process...\n"));
confirm = 1;
} else {
- if(config->noconfirm) {
- MSG(NL, _("\nBeginning upgrade process...\n"));
- confirm = 1;
- } else {
- MSG(NL, "\n");
- confirm = yesno(_("Proceed with installation? [Y/n] "));
- }
+ confirm = yesno(_("Proceed with installation? [Y/n] "));
}
}
if(!confirm) {
@@ -694,55 +672,115 @@ int pacman_sync(alpm_list_t *targets)
}
}/* else 'print uris' requested. We're done at this point */
- /* Step 3: actually perform the installation
- */
+ /* Step 3: actually perform the installation */
if(alpm_trans_commit(&data) == -1) {
- ERR(NL, _("failed to commit transaction (%s)\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to commit transaction (%s)\n"),
+ alpm_strerrorlast());
switch(pm_errno) {
- case PM_ERR_FILE_CONFLICTS:
- for(i = data; i; i = alpm_list_next(i)) {
- pmconflict_t *conflict = alpm_list_getdata(i);
- switch(alpm_conflict_get_type(conflict)) {
- case PM_CONFLICT_TYPE_TARGET:
- MSG(NL, _("%s exists in both '%s' and '%s'\n"),
- alpm_conflict_get_file(conflict),
- alpm_conflict_get_target(conflict),
- alpm_conflict_get_ctarget(conflict));
- break;
- case PM_CONFLICT_TYPE_FILE:
- MSG(NL, _("%s: %s exists in filesystem\n"),
- alpm_conflict_get_target(conflict),
- alpm_conflict_get_file(conflict));
- break;
+ alpm_list_t *i;
+ case PM_ERR_FILE_CONFLICTS:
+ for(i = data; i; i = alpm_list_next(i)) {
+ pmfileconflict_t *conflict = alpm_list_getdata(i);
+ switch(alpm_fileconflict_get_type(conflict)) {
+ case PM_FILECONFLICT_TARGET:
+ printf(_("%s exists in both '%s' and '%s'\n"),
+ alpm_fileconflict_get_file(conflict),
+ alpm_fileconflict_get_target(conflict),
+ alpm_fileconflict_get_ctarget(conflict));
+ break;
+ case PM_FILECONFLICT_FILESYSTEM:
+ printf(_("%s: %s exists in filesystem\n"),
+ alpm_fileconflict_get_target(conflict),
+ alpm_fileconflict_get_file(conflict));
+ break;
+ }
}
- }
- MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
- break;
- case PM_ERR_PKG_CORRUPTED:
- for(i = data; i; i = alpm_list_next(i)) {
- MSG(NL, "%s", (char*)alpm_list_getdata(i));
- }
- MSG(NL, _("\nerrors occurred, no packages were upgraded.\n"));
- break;
- default:
- break;
+ break;
+ case PM_ERR_PKG_CORRUPTED:
+ for(i = data; i; i = alpm_list_next(i)) {
+ printf("%s", (char*)alpm_list_getdata(i));
+ }
+ break;
+ default:
+ break;
}
+ /* TODO: stderr? */
+ printf(_("Errors occurred, no packages were upgraded.\n"));
retval = 1;
goto cleanup;
}
- /* Step 4: release transaction resources
- */
+ /* Step 4: release transaction resources */
cleanup:
if(data) {
+ alpm_list_free_inner(data, free);
alpm_list_free(data);
}
if(alpm_trans_release() == -1) {
- ERR(NL, _("failed to release transaction (%s)\n"), alpm_strerror(pm_errno));
+ fprintf(stderr, _("error: failed to release transaction (%s)\n"),
+ alpm_strerrorlast());
retval = 1;
}
return(retval);
}
+int pacman_sync(alpm_list_t *targets)
+{
+ alpm_list_t *sync_dbs = NULL;
+ int sync_only = 0;
+
+ /* clean the cache */
+ if(config->op_s_clean) {
+ int ret = sync_cleancache(config->op_s_clean);
+ ret += sync_cleandb_all();
+ return(ret);
+ }
+
+ /* ensure we have at least one valid sync db set up */
+ sync_dbs = alpm_option_get_syncdbs();
+ if(sync_dbs == NULL || alpm_list_count(sync_dbs) == 0) {
+ pm_printf(PM_LOG_ERROR, _("no usable package repositories configured.\n"));
+ return(1);
+ }
+
+ if(config->op_s_search || config->group
+ || config->op_s_info || config->op_q_list) {
+ sync_only = 1;
+ } else if(targets == NULL && !(config->op_s_sync || config->op_s_upgrade)) {
+ /* don't proceed here unless we have an operation that doesn't require
+ * a target list */
+ pm_printf(PM_LOG_ERROR, _("no targets specified (use -h for help)\n"));
+ return(1);
+ }
+
+ if(needs_transaction()) {
+ if(sync_trans(targets, sync_only) == 1) {
+ return(1);
+ }
+ }
+
+ /* search for a package */
+ if(config->op_s_search) {
+ return(sync_search(sync_dbs, targets));
+ }
+
+ /* look for groups */
+ if(config->group) {
+ return(sync_group(config->group, sync_dbs, targets));
+ }
+
+ /* get package info */
+ if(config->op_s_info) {
+ return(sync_info(sync_dbs, targets));
+ }
+
+ /* get a listing of files in sync DBs */
+ if(config->op_q_list) {
+ return(sync_list(sync_dbs, targets));
+ }
+
+ return(0);
+}
+
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/sync.h b/src/pacman/sync.h
deleted file mode 100644
index 7175577f..00000000
--- a/src/pacman/sync.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * sync.h
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-#ifndef _PM_SYNC_H
-#define _PM_SYNC_H
-
-#include <alpm_list.h>
-
-int pacman_sync(alpm_list_t *targets);
-
-#endif /* _PM_SYNC_H */
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/trans.c b/src/pacman/trans.c
deleted file mode 100644
index 7f5c61c8..00000000
--- a/src/pacman/trans.c
+++ /dev/null
@@ -1,383 +0,0 @@
-/*
- * trans.c
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-
-#include "config.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <dirent.h>
-#include <libintl.h>
-#include <wchar.h>
-
-#include <alpm.h>
-
-/* pacman */
-#include "trans.h"
-#include "util.h"
-#include "log.h"
-#include "conf.h"
-
-#define LOG_STR_LEN 256
-
-extern config_t *config;
-
-static int prevpercent=0; /* for less progressbar output */
-
-/* Callback to handle transaction events
- */
-void cb_trans_evt(pmtransevt_t event, void *data1, void *data2)
-{
- char str[LOG_STR_LEN] = "";
-
- switch(event) {
- case PM_TRANS_EVT_CHECKDEPS_START:
- MSG(NL, _("checking dependencies... "));
- break;
- case PM_TRANS_EVT_FILECONFLICTS_START:
- if(config->noprogressbar) {
- MSG(NL, _("checking for file conflicts... "));
- }
- break;
- case PM_TRANS_EVT_CLEANUP_START:
- MSG(NL, _("cleaning up... "));
- break;
- case PM_TRANS_EVT_RESOLVEDEPS_START:
- MSG(NL, _("resolving dependencies... "));
- break;
- case PM_TRANS_EVT_INTERCONFLICTS_START:
- MSG(NL, _("looking for inter-conflicts... "));
- break;
- case PM_TRANS_EVT_FILECONFLICTS_DONE:
- if(config->noprogressbar) {
- MSG(CL, _("done.\n"));
- }
- break;
- case PM_TRANS_EVT_CHECKDEPS_DONE:
- case PM_TRANS_EVT_CLEANUP_DONE:
- case PM_TRANS_EVT_RESOLVEDEPS_DONE:
- case PM_TRANS_EVT_INTERCONFLICTS_DONE:
- MSG(CL, _("done.\n"));
- break;
- case PM_TRANS_EVT_EXTRACT_DONE:
- break;
- case PM_TRANS_EVT_ADD_START:
- if(config->noprogressbar) {
- MSG(NL, _("installing %s... "), alpm_pkg_get_name(data1));
- }
- break;
- case PM_TRANS_EVT_ADD_DONE:
- if(config->noprogressbar) {
- MSG(CL, _("done.\n"));
- }
- snprintf(str, LOG_STR_LEN, _("installed %s (%s)"),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_version(data1));
- alpm_logaction(str);
- break;
- case PM_TRANS_EVT_REMOVE_START:
- if(config->noprogressbar) {
- MSG(NL, _("removing %s... "), alpm_pkg_get_name(data1));
- }
- break;
- case PM_TRANS_EVT_REMOVE_DONE:
- if(config->noprogressbar) {
- MSG(CL, _("done.\n"));
- }
- snprintf(str, LOG_STR_LEN, _("removed %s (%s)"),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_version(data1));
- alpm_logaction(str);
- break;
- case PM_TRANS_EVT_UPGRADE_START:
- if(config->noprogressbar) {
- MSG(NL, _("upgrading %s... "), alpm_pkg_get_name(data1));
- }
- break;
- case PM_TRANS_EVT_UPGRADE_DONE:
- if(config->noprogressbar) {
- MSG(CL, _("done.\n"));
- }
- snprintf(str, LOG_STR_LEN, _("upgraded %s (%s -> %s)"),
- (char *)alpm_pkg_get_name(data1),
- (char *)alpm_pkg_get_version(data2),
- (char *)alpm_pkg_get_version(data1));
- alpm_logaction(str);
- break;
- case PM_TRANS_EVT_INTEGRITY_START:
- MSG(NL, _("checking package integrity... "));
- break;
- case PM_TRANS_EVT_INTEGRITY_DONE:
- MSG(CL, _("done.\n"));
- break;
- case PM_TRANS_EVT_SCRIPTLET_INFO:
- MSG(NL, "%s\n", (char*)data1);
- break;
- case PM_TRANS_EVT_SCRIPTLET_START:
- MSG(NL, (char*)data1);
- MSG(CL, "...");
- break;
- case PM_TRANS_EVT_SCRIPTLET_DONE:
- if(!(long)data1) {
- MSG(CL, _("done.\n"));
- } else {
- MSG(CL, _("failed.\n"));
- }
- break;
- case PM_TRANS_EVT_PRINTURI:
- MSG(NL, "%s/%s\n", (char*)data1, (char*)data2);
- break;
- case PM_TRANS_EVT_RETRIEVE_START:
- MSG(NL, _(":: Retrieving packages from %s...\n"), (char*)data1);
- fflush(stdout);
- break;
- }
-}
-
-void cb_trans_conv(pmtransconv_t event, void *data1, void *data2,
- void *data3, int *response)
-{
- char str[LOG_STR_LEN] = "";
-
- switch(event) {
- case PM_TRANS_CONV_INSTALL_IGNOREPKG:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_INSTALL_IGNOREPKG) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else if(data2) {
- /* TODO we take this route based on data2 being not null? WTF */
- snprintf(str, LOG_STR_LEN, _(":: %1$s requires %2$s from IgnorePkg. Install %2$s? [Y/n] "),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_name(data2));
- *response = yesno(str);
- } else {
- snprintf(str, LOG_STR_LEN, _(":: %s is in IgnorePkg. Install anyway? [Y/n] "),
- alpm_pkg_get_name(data1));
- *response = yesno(str);
- }
- break;
- case PM_TRANS_CONV_REMOVE_HOLDPKG:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_REMOVE_HOLDPKG) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else {
- snprintf(str, LOG_STR_LEN, _(":: %s is designated as a HoldPkg. Remove anyway? [Y/n] "),
- alpm_pkg_get_name(data1));
- *response = yesno(str);
- }
- break;
- case PM_TRANS_CONV_REPLACE_PKG:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_REPLACE_PKG) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else {
- snprintf(str, LOG_STR_LEN, _(":: Replace %s with %s/%s? [Y/n] "),
- alpm_pkg_get_name(data1),
- (char *)data3,
- alpm_pkg_get_name(data2));
- *response = yesno(str);
- }
- break;
- case PM_TRANS_CONV_CONFLICT_PKG:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_CONFLICT_PKG) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else {
- snprintf(str, LOG_STR_LEN, _(":: %s conflicts with %s. Remove %s? [Y/n] "),
- (char *)data1,
- (char *)data2,
- (char *)data2);
- *response = yesno(str);
- }
- break;
- case PM_TRANS_CONV_LOCAL_NEWER:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_LOCAL_NEWER) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else {
- if(!config->op_s_downloadonly) {
- snprintf(str, LOG_STR_LEN, _(":: %s-%s: local version is newer. Upgrade anyway? [Y/n] "),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_version(data1));
- *response = yesno(str);
- } else {
- *response = 1;
- }
- }
- break;
- case PM_TRANS_CONV_LOCAL_UPTODATE:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_LOCAL_UPTODATE) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else {
- if(!config->op_s_downloadonly) {
- snprintf(str, LOG_STR_LEN, _(":: %s-%s: local version is up to date. Upgrade anyway? [Y/n] "),
- alpm_pkg_get_name(data1),
- alpm_pkg_get_version(data1));
- *response = yesno(str);
- } else {
- *response = 1;
- }
- }
- break;
- case PM_TRANS_CONV_CORRUPTED_PKG:
- if(config->noask) {
- if(config->ask & PM_TRANS_CONV_CORRUPTED_PKG) {
- *response = 1;
- } else {
- *response = 0;
- }
- } else {
- if(!config->noconfirm) {
- snprintf(str, LOG_STR_LEN, _(":: Archive %s is corrupted. Do you want to delete it? [Y/n] "),
- (char *)data1);
- *response = yesno(str);
- } else {
- *response = 1;
- }
- }
- break;
- }
-}
-
-void cb_trans_progress(pmtransprog_t event, const char *pkgname, int percent,
- int howmany, int remain)
-{
- float timediff;
-
- /* size of line to allocate for text printing (e.g. not progressbar) */
- const int infolen = 50;
- int tmp, digits, oprlen, textlen, pkglen;
- char *opr = NULL;
- wchar_t *wcopr = NULL;
-
- if(config->noprogressbar) {
- return;
- }
-
- /* XXX: big fat hack: due to the fact that we switch out printf/pm_fprintf,
- * not everything honors our 'neednl' newline hackery. This forces a newline
- * if we need one before drawing the progress bar */
- MSG(NL,NULL);
-
- if(percent == 0) {
- set_output_padding(1); /* turn on output padding with ' ' */
- timediff = get_update_timediff(1);
- } else {
- timediff = get_update_timediff(0);
- }
-
- if(percent > 0 && percent < 100 && !timediff) {
- /* only update the progress bar when
- * a) we first start
- * b) we end the progress
- * c) it has been long enough since the last call
- */
- return;
- }
-
- /* if no pkgname, percent is too high or unchanged, then return */
- if(!pkgname || percent == prevpercent) {
- return;
- }
-
- prevpercent=percent;
- /* set text of message to display */
- switch (event) {
- case PM_TRANS_PROGRESS_ADD_START:
- opr = _("installing");
- break;
- case PM_TRANS_PROGRESS_UPGRADE_START:
- opr = _("upgrading");
- break;
- case PM_TRANS_PROGRESS_REMOVE_START:
- opr = _("removing");
- break;
- case PM_TRANS_PROGRESS_CONFLICTS_START:
- opr = _("checking for file conflicts");
- break;
- }
- /* convert above strings to wide chars */
- oprlen = strlen(opr);
- wcopr = (wchar_t*)calloc(oprlen, sizeof(wchar_t));
- if(!wcopr) {
- fprintf(stderr, "malloc failure: could not allocate %d bytes\n",
- strlen(opr) * sizeof(wchar_t));
- }
- oprlen = mbstowcs(wcopr, opr, oprlen);
-
- /* find # of digits in package counts to scale output */
- digits = 1;
- tmp = howmany;
- while((tmp /= 10)) {
- ++digits;
- }
-
- /* determine room left for non-digits text [not ( 1/12) part] */
- textlen = infolen - 3 - (2 * digits);
- /* room left for package name */
- pkglen = textlen - oprlen - 1;
-
- switch (event) {
- case PM_TRANS_PROGRESS_ADD_START:
- case PM_TRANS_PROGRESS_UPGRADE_START:
- case PM_TRANS_PROGRESS_REMOVE_START:
- printf("(%2$*1$d/%3$*1$d) %4$s %6$-*5$.*5$s", digits, remain, howmany,
- opr, pkglen, pkgname);
- break;
- case PM_TRANS_PROGRESS_CONFLICTS_START:
- printf("(%2$*1$d/%3$*1$d) %5$-*4$s", digits, remain, howmany,
- textlen, opr);
- break;
- }
-
- free(wcopr);
-
- /* call refactored fill progress function */
- fill_progress(percent, getcols() - infolen);
-
- if(percent >= 100) {
- set_output_padding(0); /* restore padding */
- }
-
-}
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c
deleted file mode 100644
index a4c94bb7..00000000
--- a/src/pacman/upgrade.c
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * upgrade.c
- *
- * 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
- * USA.
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-
-#include <alpm.h>
-#include <alpm_list.h>
-
-/* pacman */
-#include "upgrade.h"
-#include "add.h"
-#include "conf.h"
-
-extern config_t *config;
-
-int pacman_upgrade(alpm_list_t *targets)
-{
- /* this is basically just a remove-then-add process. pacman_add() will */
- /* handle it */
- config->upgrade = 1;
- return(pacman_add(targets));
-}
-
-
-/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/util.c b/src/pacman/util.c
index 9c79cf5f..89313c83 100644
--- a/src/pacman/util.c
+++ b/src/pacman/util.c
@@ -1,8 +1,8 @@
/*
* util.c
- *
+ *
* 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
@@ -15,32 +15,27 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "config.h"
-#if defined(__APPLE__) || defined(__OpenBSD__)
-#include <sys/syslimits.h>
-#include <sys/stat.h>
-#endif
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/time.h>
+#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
+#include <stdarg.h>
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#include <ctype.h>
#include <dirent.h>
#include <unistd.h>
-#include <libintl.h>
-#ifdef CYGWIN
-#include <limits.h> /* PATH_MAX */
-#endif
+#include <limits.h>
#include <alpm.h>
#include <alpm_list.h>
@@ -48,9 +43,21 @@
/* pacman */
#include "util.h"
#include "conf.h"
-#include "log.h"
-extern config_t *config;
+int needs_transaction()
+{
+ if(config->op != PM_OP_MAIN && config->op != PM_OP_QUERY && config->op != PM_OP_DEPTEST) {
+ if((config->op == PM_OP_SYNC && !config->op_s_sync &&
+ (config->op_s_search || config->group || config->op_q_list || config->op_q_info))
+ || config->op == PM_OP_DEPTEST) {
+ /* special case: PM_OP_SYNC can be used w/ config->op_s_search by any user */
+ return(0);
+ } else {
+ return(1);
+ }
+ }
+ return(0);
+}
/* gets the current screen column width */
int getcols()
@@ -86,10 +93,10 @@ int getcols()
}
/* does the same thing as 'mkdir -p' */
-int makepath(char *path)
+int makepath(const char *path)
{
char *orig, *str, *ptr;
- char full[PATH_MAX] = "";
+ char full[PATH_MAX+1] = "";
mode_t oldmask;
oldmask = umask(0000);
@@ -100,6 +107,7 @@ int makepath(char *path)
if(strlen(ptr)) {
struct stat buf;
+ /* TODO we should use strncat */
strcat(full, "/");
strcat(full, ptr);
if(stat(full, &buf)) {
@@ -117,7 +125,7 @@ int makepath(char *path)
}
/* does the same thing as 'rm -rf' */
-int rmrf(char *path)
+int rmrf(const char *path)
{
int errflag = 0;
struct dirent *dp;
@@ -159,6 +167,28 @@ int rmrf(char *path)
}
}
+/** Parse the basename of a program from a path.
+* Grabbed from the uClibc source.
+* @param path path to parse basename from
+*
+* @return everything following the final '/'
+*/
+char *mbasename(const char *path)
+{
+ const char *s;
+ const char *p;
+
+ p = s = path;
+
+ while (*s) {
+ if (*s++ == '/') {
+ p = s;
+ }
+ }
+
+ return (char *)p;
+}
+
/* output a string, but wrap words properly with a specified indentation
*/
void indentprint(const char *str, int indent)
@@ -169,12 +199,12 @@ void indentprint(const char *str, int indent)
while(*p) {
if(*p == ' ') {
const char *next = NULL;
- unsigned int len;
+ int len;
p++;
if(p == NULL || *p == ' ') continue;
next = strchr(p, ' ');
if(next == NULL) {
- next = p + strlen(p);
+ next = p + mbstowcs(NULL, p, 0);
}
len = next - p;
if(len > (getcols() - cidx - 1)) {
@@ -214,34 +244,133 @@ char *strtoupper(char *str)
char *strtrim(char *str)
{
char *pch = str;
+
+ if(str == NULL || *str == '\0') {
+ /* string is empty, so we're done. */
+ return(str);
+ }
+
while(isspace(*pch)) {
pch++;
}
if(pch != str) {
memmove(str, pch, (strlen(pch) + 1));
}
-
- pch = (char *)(str + (strlen(str) - 1));
+
+ /* check if there wasn't anything but whitespace in the string. */
+ if(*str == '\0') {
+ return(str);
+ }
+
+ pch = (str + (strlen(str) - 1));
while(isspace(*pch)) {
pch--;
}
*++pch = '\0';
- return str;
+ return(str);
+}
+
+/* Helper function for strreplace */
+static void _strnadd(char **str, const char *append, unsigned int count)
+{
+ if(*str) {
+ *str = realloc(*str, strlen(*str) + count + 1);
+ } else {
+ *str = calloc(sizeof(char), count + 1);
+ }
+
+ strncat(*str, append, count);
+}
+
+/* Replace all occurances of 'needle' with 'replace' in 'str', returning
+ * a new string (must be free'd) */
+char *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;
+}
+
+/** Splits a string into a list of strings using the chosen character as
+ * a delimiter.
+ *
+ * @param str the string to split
+ * @param splitchar the character to split at
+ *
+ * @return a list containing the duplicated strings
+ */
+alpm_list_t *strsplit(const char *str, const char splitchar)
+{
+ alpm_list_t *list = NULL;
+ const char *prev = str;
+ char *dup = NULL;
+
+ while((str = strchr(str, splitchar))) {
+ dup = strndup(prev, str - prev);
+ if(dup == NULL) {
+ return(NULL);
+ }
+ list = alpm_list_add(list, dup);
+
+ str++;
+ prev = str;
+ }
+
+ dup = strdup(prev);
+ if(dup == NULL) {
+ return(NULL);
+ }
+ list = alpm_list_add(list, strdup(prev));
+
+ return(list);
}
-void list_display(const char *title, alpm_list_t *list)
+void string_display(const char *title, const char *string)
{
- alpm_list_t *i;
+ printf("%s ", title);
+ if(string == NULL || string[0] == '\0') {
+ printf(_("None\n"));
+ } else {
+ printf("%s\n", string);
+ }
+}
+
+void list_display(const char *title, const alpm_list_t *list)
+{
+ const alpm_list_t *i;
int cols, len;
- len = strlen(title);
+ len = mbstowcs(NULL, title, 0);
printf("%s ", title);
if(list) {
for(i = list, cols = len; i; i = alpm_list_next(i)) {
char *str = alpm_list_getdata(i);
- int s = strlen(str) + 2;
+ int s = mbstowcs(NULL, str, 0) + 2;
int maxcols = getcols();
if(s + cols >= maxcols) {
int i;
@@ -264,14 +393,15 @@ void list_display(const char *title, alpm_list_t *list)
* `pkgs` should be a list of pmsyncpkg_t's,
* retrieved from a transaction object
*/
-void display_targets(alpm_list_t *syncpkgs)
+/* TODO move to output.c? or just combine util and output */
+void display_targets(const alpm_list_t *syncpkgs, pmdb_t *db_local)
{
char *str;
- alpm_list_t *i, *j;
+ const alpm_list_t *i, *j;
alpm_list_t *targets = NULL, *to_remove = NULL;
/* TODO these are some messy variable names */
- unsigned long size = 0, isize = 0, rsize = 0;
- double mbsize = 0.0, mbisize = 0.0, mbrsize = 0.0;
+ unsigned long isize = 0, rsize = 0, dispsize = 0, dlsize = 0;
+ double mbisize = 0.0, mbrsize = 0.0, mbdispsize = 0.0, mbdlsize = 0.0;
for(i = syncpkgs; i; i = alpm_list_next(i)) {
pmsyncpkg_t *sync = alpm_list_getdata(i);
@@ -282,7 +412,7 @@ void display_targets(alpm_list_t *syncpkgs)
* installed. */
if(alpm_sync_get_type(sync) == PM_SYNC_TYPE_REPLACE) {
alpm_list_t *to_replace = alpm_sync_get_data(sync);
-
+
for(j = to_replace; j; j = alpm_list_next(j)) {
pmpkg_t *rp = alpm_list_getdata(j);
const char *name = alpm_pkg_get_name(rp);
@@ -294,153 +424,178 @@ void display_targets(alpm_list_t *syncpkgs)
}
}
- size += alpm_pkg_get_size(pkg);
+ dispsize = alpm_pkg_get_size(pkg);
+ dlsize += alpm_pkg_download_size(pkg, db_local);
isize += alpm_pkg_get_isize(pkg);
- asprintf(&str, "%s-%s", alpm_pkg_get_name(pkg), alpm_pkg_get_version(pkg));
+ /* print the package size with the output if ShowSize option set */
+ if(config->showsize) {
+ /* Convert byte size to MB */
+ mbdispsize = dispsize / (1024.0 * 1024.0);
+
+ asprintf(&str, "%s-%s [%.2f MB]", alpm_pkg_get_name(pkg),
+ alpm_pkg_get_version(pkg), mbdispsize);
+ } else {
+ asprintf(&str, "%s-%s", alpm_pkg_get_name(pkg),
+ alpm_pkg_get_version(pkg));
+ }
targets = alpm_list_add(targets, str);
}
/* Convert byte sizes to MB */
- mbsize = (double)(size) / (1024.0 * 1024.0);
- mbisize = (double)(isize) / (1024.0 * 1024.0);
- mbrsize = (double)(rsize) / (1024.0 * 1024.0);
+ mbisize = isize / (1024.0 * 1024.0);
+ mbrsize = rsize / (1024.0 * 1024.0);
+ mbdlsize = dlsize / (1024.0 * 1024.0);
+
+ /* start displaying information */
+ printf("\n");
if(to_remove) {
- MSG(NL, "\n"); /* TODO ugly hack. printing a single NL should be easy */
list_display(_("Remove:"), to_remove);
+ printf("\n");
FREELIST(to_remove);
-
- if(mbrsize > 0) {
- /* round up if size is really small */
- if(mbrsize < 0.1) {
- mbrsize = 0.1;
- }
- MSG(NL, _("\nTotal Removed Size: %.2f MB\n"), mbrsize);
- }
+
+ printf(_("Total Removed Size: %.2f MB\n"), mbrsize);
+ printf("\n");
}
- MSG(NL, "\n"); /* TODO ugly hack. printing a single NL should be easy */
list_display(_("Targets:"), targets);
+ printf("\n");
- /* round up if size is really small */
- if(mbsize < 0.1) {
- mbsize = 0.1;
- }
- MSG(NL, _("\nTotal Package Size: %.2f MB\n"), mbsize);
-
- if(mbisize > mbsize) {
- /*round up if size is really small */
- if(mbisize < 0.1) {
- mbisize = 0.1;
- }
- MSG(NL, _("Total Installed Size: %.2f MB\n"), mbisize);
+ printf(_("Total Download Size: %.2f MB\n"), mbdlsize);
+
+ /* TODO because all pkgs don't include isize, this is a crude hack */
+ if(mbisize > mbdlsize) {
+ printf(_("Total Installed Size: %.2f MB\n"), mbisize);
}
FREELIST(targets);
}
-/* Silly little helper function, determines if the caller needs a visual update
- * since the last time this function was called.
- * This is made for the two progress bar functions, to prevent flicker
- *
- * first_call indicates if this is the first time it is called, for
- * initialization purposes */
-float get_update_timediff(int first_call)
+/* presents a prompt and gets a Y/N answer */
+/* TODO there must be a better way */
+int yesno(char *fmt, ...)
{
- float retval = 0.0;
- static struct timeval last_time = {0};
+ char response[32];
+ va_list args;
- /* on first call, simply set the last time and return */
- if(first_call) {
- gettimeofday(&last_time, NULL);
- } else {
- struct timeval this_time;
- float diff_sec, diff_usec;
+ if(config->noconfirm) {
+ return(1);
+ }
- gettimeofday(&this_time, NULL);
- diff_sec = this_time.tv_sec - last_time.tv_sec;
- diff_usec = this_time.tv_usec - last_time.tv_usec;
+ va_start(args, fmt);
+ /* Use stderr so questions are always displayed when redirecting output */
+ vfprintf(stderr, fmt, args);
+ va_end(args);
- retval = diff_sec + (diff_usec / 1000000.0);
+ if(fgets(response, 32, stdin)) {
+ if(strlen(response) != 0) {
+ strtrim(response);
+ }
- /* return 0 and do not update last_time if interval was too short */
- if(retval < UPDATE_SPEED_SEC) {
- retval = 0.0;
- } else {
- last_time = this_time;
- /* printf("\nupdate retval: %f\n", retval); DEBUG*/
+ if(!strcasecmp(response, _("Y")) || !strcasecmp(response, _("YES")) || strlen(response) == 0) {
+ return(1);
}
}
-
- return(retval);
+ return(0);
}
-/* refactored from cb_trans_progress */
-void fill_progress(const int percent, const int proglen)
+int pm_printf(pmloglevel_t level, const char *format, ...)
{
- const unsigned short chomp = alpm_option_get_chomp();
- const unsigned int hashlen = proglen - 8;
- const unsigned int hash = percent * hashlen / 100;
- static unsigned int lasthash = 0, mouth = 0;
- unsigned int i;
+ int ret;
+ va_list args;
- /* printf("\ndebug: proglen: %i\n", proglen); DEBUG*/
+ /* print the message using va_arg list */
+ va_start(args, format);
+ ret = pm_vfprintf(stdout, level, format, args);
+ va_end(args);
- if(percent == 0) {
- lasthash = 0;
- mouth = 0;
- }
+ return(ret);
+}
- /* magic numbers, how I loathe thee */
- if(proglen > 8) {
- printf(" [");
- for(i = hashlen; i > 1; --i) {
- /* if special progress bar enabled */
- if(chomp) {
- if(i > hashlen - hash) {
- printf("-");
- } else if(i == hashlen - hash) {
- if(lasthash == hash) {
- if(mouth) {
- printf("\033[1;33mC\033[m");
- } else {
- printf("\033[1;33mc\033[m");
- }
- } else {
- lasthash = hash;
- mouth = mouth == 1 ? 0 : 1;
- if(mouth) {
- printf("\033[1;33mC\033[m");
- } else {
- printf("\033[1;33mc\033[m");
- }
- }
- } else if(i%3 == 0) {
- printf("\033[0;37mo\033[m");
- } else {
- printf("\033[0;37m \033[m");
- }
- } /* else regular progress bar */
- else if(i > hashlen - hash) {
- printf("#");
- } else {
- printf("-");
- }
- }
- printf("]");
+int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...)
+{
+ int ret;
+ va_list args;
+
+ /* print the message using va_arg list */
+ va_start(args, format);
+ ret = pm_vfprintf(stream, level, format, args);
+ va_end(args);
+
+ return(ret);
+}
+
+int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args)
+{
+ int ret = 0;
+
+ /* if current logmask does not overlap with level, do not print msg */
+ if(!(config->logmask & level)) {
+ return ret;
}
- /* print percent after progress bar */
- if(proglen > 5) {
- printf(" %3d%%", percent);
+
+#if defined(PACMAN_DEBUG)
+ /* If debug is on, we'll timestamp the output */
+ if(config->logmask & PM_LOG_DEBUG) {
+ time_t t;
+ struct tm *tmp;
+ char timestr[10] = {0};
+
+ t = time(NULL);
+ tmp = localtime(&t);
+ strftime(timestr, 9, "%H:%M:%S", tmp);
+ timestr[8] = '\0';
+
+ printf("[%s] ", timestr);
}
+#endif
- if(percent == 100) {
- printf("\n");
- } else {
- printf("\r");
+ /* print a prefix to the message */
+ switch(level) {
+ case PM_LOG_DEBUG:
+ fprintf(stream, _("debug: "));
+ break;
+ case PM_LOG_ERROR:
+ fprintf(stream, _("error: "));
+ break;
+ case PM_LOG_WARNING:
+ fprintf(stream, _("warning: "));
+ break;
+ case PM_LOG_FUNCTION:
+ /* TODO we should increase the indent level when this occurs so we can see
+ * program flow easier. It'll be fun */
+ fprintf(stream, _("function: "));
+ break;
+ default:
+ break;
}
- fflush(stdout);
+
+ /* print the message using va_arg list */
+ ret = vfprintf(stream, format, args);
+ return(ret);
+}
+
+#ifndef HAVE_STRNDUP
+/* A quick and dirty implementation derived from glibc */
+static size_t strnlen(const char *s, size_t max)
+{
+ register const char *p;
+ for(p = s; *p && max--; ++p);
+ return(p - s);
}
+char *strndup(const char *s, size_t n)
+{
+ size_t len = strnlen(s, n);
+ char *new = (char *) malloc(len + 1);
+
+ if (new == NULL)
+ return NULL;
+
+ new[len] = '\0';
+ return (char *) memcpy(new, s, len);
+}
+#endif
+
/* vim: set ts=2 sw=2 noet: */
diff --git a/src/pacman/util.h b/src/pacman/util.h
index 6eba38fe..0295d7e5 100644
--- a/src/pacman/util.h
+++ b/src/pacman/util.h
@@ -1,8 +1,8 @@
/*
* util.h
- *
- * Copyright (c) 2002-2006 by Judd Vinet <jvinet@zeroflux.org>
- *
+ *
+ * Copyright (c) 2002-2007 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
@@ -15,52 +15,50 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#ifndef _PM_UTIL_H
#define _PM_UTIL_H
#include <stdlib.h>
+#include <stdarg.h>
#include <string.h>
-#include <libintl.h>
#include <alpm_list.h>
-#define MALLOC(p, b) do { \
- if((b) > 0) { \
- p = malloc(b); \
- if (!(p)) { \
- fprintf(stderr, "malloc failure: could not allocate %d bytes\n", (int)b); \
- exit(EXIT_FAILURE); \
- } \
- } else { \
- p = NULL; \
- } \
-} while(0)
-
-#define FREE(p) do { if (p) { free(p); (p) = NULL; }} while(0)
-
-#define STRNCPY(s1, s2, len) do { \
- strncpy(s1, s2, (len)-1); \
- s1[(len)-1] = 0; \
-} while(0)
+#ifdef ENABLE_NLS
+#include <libintl.h> /* here so it doesn't need to be included elsewhere */
+/* define _() as shortcut for gettext() */
+#define _(str) gettext(str)
+#else
+#define _(str) str
+#endif
/* update speed for the fill_progress based functions */
#define UPDATE_SPEED_SEC 0.2f
-#define _(str) gettext(str)
+int needs_transaction();
int getcols();
-int makepath(char *path);
-int rmrf(char *path);
+int makepath(const char *path);
+int rmrf(const char *path);
+char *mbasename(const char *path);
void indentprint(const char *str, int indent);
char *strtoupper(char *str);
char *strtrim(char *str);
-int reg_match(char *string, char *pattern);
-void list_display(const char *title, alpm_list_t *list);
-void display_targets(alpm_list_t *syncpkgs);
-float get_update_timediff(int first_call);
-void fill_progress(const int percent, const int proglen);
+char *strreplace(const char *str, const char *needle, const char *replace);
+alpm_list_t *strsplit(const char *str, const char splitchar);
+void string_display(const char *title, const char *string);
+void list_display(const char *title, const alpm_list_t *list);
+void display_targets(const alpm_list_t *syncpkgs, pmdb_t *db_local);
+int yesno(char *fmt, ...);
+int pm_printf(pmloglevel_t level, const char *format, ...) __attribute__((format(printf,2,3)));
+int pm_fprintf(FILE *stream, pmloglevel_t level, const char *format, ...) __attribute__((format(printf,3,4)));
+int pm_vfprintf(FILE *stream, pmloglevel_t level, const char *format, va_list args) __attribute__((format(printf,3,0)));
+
+#ifndef HAVE_STRNDUP
+char *strndup(const char *s, size_t n);
+#endif
#endif /* _PM_UTIL_H */
diff --git a/src/util/.gitignore b/src/util/.gitignore
index 8bfb0085..36688806 100644
--- a/src/util/.gitignore
+++ b/src/util/.gitignore
@@ -1,6 +1,5 @@
.deps
.libs
-Makefile
-Makefile.in
vercmp
testpkg
+testdb
diff --git a/src/util/Makefile.am b/src/util/Makefile.am
index e79e726d..97a0ffa1 100644
--- a/src/util/Makefile.am
+++ b/src/util/Makefile.am
@@ -1,9 +1,27 @@
-bin_PROGRAMS = vercmp testpkg
+# paths set at make time
+conffile = ${sysconfdir}/pacman.conf
+dbpath = ${localstatedir}/lib/pacman/
+cachedir = ${localstatedir}/cache/pacman/pkg/
+bin_PROGRAMS = vercmp testpkg testdb
+
+DEFS = -DLOCALEDIR=\"@localedir@\" \
+ -DCONFFILE=\"$(conffile)\" \
+ -DROOTDIR=\"$(ROOTDIR)\" \
+ -DDBPATH=\"$(dbpath)\" \
+ -DCACHEDIR=\"$(cachedir)\" \
+ @DEFS@
INCLUDES = -I$(top_srcdir)/lib/libalpm
+AM_CFLAGS = -pedantic -D_GNU_SOURCE
+
vercmp_SOURCES = vercmp.c
vercmp_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
testpkg_SOURCES = testpkg.c
testpkg_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+
+testdb_SOURCES = testdb.c
+testdb_LDADD = $(top_builddir)/lib/libalpm/.libs/libalpm.la
+
+# vim:set ts=2 sw=2 noet:
diff --git a/src/util/testdb.c b/src/util/testdb.c
new file mode 100644
index 00000000..31b4ff0d
--- /dev/null
+++ b/src/util/testdb.c
@@ -0,0 +1,154 @@
+/*
+ * testdb.c : Test a pacman local database for validity
+ *
+ * Copyright (c) 2007 by Aaron Griffin <aaronmgriffin@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * USA.
+ */
+
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <limits.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <dirent.h>
+#include <libgen.h>
+
+#include <alpm.h>
+#include <alpm_list.h>
+
+#define BASENAME "testdb"
+
+int str_cmp(const void *s1, const void *s2)
+{
+ return(strcmp(s1, s2));
+}
+
+static void cleanup(int signum) {
+ if(alpm_release() == -1) {
+ fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast());
+ }
+
+ exit(signum);
+}
+
+void output_cb(pmloglevel_t level, char *fmt, va_list args)
+{
+ if(strlen(fmt)) {
+ switch(level) {
+ case PM_LOG_ERROR: printf("error: "); break;
+ case PM_LOG_WARNING: printf("warning: "); break;
+ default: return;
+ }
+ vprintf(fmt, args);
+ printf("\n");
+ }
+}
+
+static int db_test(char *dbpath)
+{
+ struct dirent *ent;
+ char path[PATH_MAX];
+ struct stat buf;
+ int ret = 0;
+
+ DIR *dir;
+
+ if(!(dir = opendir(dbpath))) {
+ fprintf(stderr, "error : %s : %s\n", dbpath, strerror(errno));
+ return(1);
+ }
+
+ while ((ent = readdir(dir)) != NULL) {
+ if(!strcmp(ent->d_name, ".") || !strcmp(ent->d_name, "..")) {
+ continue;
+ }
+ /* check for desc, depends, and files */
+ snprintf(path, PATH_MAX, "%s/%s/desc", dbpath, ent->d_name);
+ if(stat(path, &buf)) {
+ printf("%s: description file is missing\n", ent->d_name);
+ ret++;
+ }
+ snprintf(path, PATH_MAX, "%s/%s/depends", dbpath, ent->d_name);
+ if(stat(path, &buf)) {
+ printf("%s: dependency file is missing\n", ent->d_name);
+ ret++;
+ }
+ snprintf(path, PATH_MAX, "%s/%s/files", dbpath, ent->d_name);
+ if(stat(path, &buf)) {
+ printf("%s: file list is missing\n", ent->d_name);
+ ret++;
+ }
+ }
+ return(ret);
+}
+
+int main(int argc, char **argv)
+{
+ int retval = 0; /* default = false */
+ pmdb_t *db = NULL;
+ char *dbpath;
+ char localdbpath[PATH_MAX];
+ alpm_list_t *i;
+
+ if(argc == 1) {
+ dbpath = DBPATH;
+ } else if(argc == 3 && strcmp(argv[1], "-b") == 0) {
+ dbpath = argv[2];
+ } else {
+ fprintf(stderr, "usage: %s -b <pacman db>\n", BASENAME);
+ return(1);
+ }
+
+ snprintf(localdbpath, PATH_MAX, "%s/local", dbpath);
+ retval = db_test(localdbpath);
+ if(retval) {
+ return(retval);
+ }
+
+ if(alpm_initialize() == -1) {
+ fprintf(stderr, "cannot initialize alpm: %s\n", alpm_strerrorlast());
+ return(1);
+ }
+
+ /* let us get log messages from libalpm */
+ alpm_option_set_logcb(output_cb);
+
+ alpm_option_set_dbpath(dbpath);
+
+ db = alpm_db_register_local();
+ if(db == NULL) {
+ fprintf(stderr, "error: could not register 'local' database (%s)\n",
+ alpm_strerrorlast());
+ cleanup(EXIT_FAILURE);
+ }
+
+ /* check dependencies */
+ alpm_list_t *data;
+ data = alpm_checkdeps(db, 0, alpm_db_getpkgcache(db), NULL);
+ for(i = data; i; i = alpm_list_next(i)) {
+ pmdepmissing_t *miss = alpm_list_getdata(i);
+ pmdepend_t *dep = alpm_miss_get_dep(miss);
+ char *depstring = alpm_dep_get_string(dep);
+ printf("missing dependency for %s : %s\n", alpm_miss_get_target(miss),
+ depstring);
+ free(depstring);
+ }
+
+ cleanup(retval);
+}
diff --git a/src/util/testpkg.c b/src/util/testpkg.c
index a64e6b34..d724bb8a 100644
--- a/src/util/testpkg.c
+++ b/src/util/testpkg.c
@@ -2,7 +2,7 @@
* testpkg.c : Test a pacman package for validity
*
* Copyright (c) 2007 by Aaron Griffin <aaronmgriffin@gmail.com>
- *
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -15,27 +15,29 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "config.h"
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <libgen.h>
+#include <stdio.h> /* printf */
+#include <stdarg.h> /* va_list */
+#include <string.h> /* strlen */
#include <alpm.h>
-void output_cb(unsigned short level, char *msg)
+#define BASENAME "testpkg"
+
+static void output_cb(pmloglevel_t level, char *fmt, va_list args)
{
- if(strlen(msg)) {
+ if(strlen(fmt)) {
switch(level) {
case PM_LOG_ERROR: printf("error: "); break;
case PM_LOG_WARNING: printf("warning: "); break;
+ default: break;
}
- puts(msg);
+ vprintf(fmt, args);
}
}
@@ -45,27 +47,27 @@ int main(int argc, char **argv)
pmpkg_t *pkg = NULL;
if(argc != 2) {
- fprintf(stderr, "usage: %s <package file>\n", basename(argv[0]));
+ fprintf(stderr, "usage: %s <package file>\n", BASENAME);
return(1);
}
if(alpm_initialize() == -1) {
- fprintf(stderr, "cannot initilize alpm: %s\n", alpm_strerror(pm_errno));
+ fprintf(stderr, "cannot initilize alpm: %s\n", alpm_strerrorlast());
return(1);
}
/* let us get log messages from libalpm */
alpm_option_set_logcb(output_cb);
- if(alpm_pkg_load(argv[1], &pkg) == -1 || pkg == NULL) {
+ if(alpm_pkg_load(argv[1], 1, &pkg) == -1 || pkg == NULL) {
retval = 1;
} else {
alpm_pkg_free(pkg);
retval = 0;
}
-
+
if(alpm_release() == -1) {
- fprintf(stderr, "error releasing alpm: %s\n", alpm_strerror(pm_errno));
+ fprintf(stderr, "error releasing alpm: %s\n", alpm_strerrorlast());
}
return(retval);
diff --git a/src/util/vercmp.c b/src/util/vercmp.c
index cc951988..29ab121d 100644
--- a/src/util/vercmp.c
+++ b/src/util/vercmp.c
@@ -1,8 +1,8 @@
/*
* vercmp.c
- *
+ *
* Copyright (c) 2002-2005 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
@@ -15,40 +15,58 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "config.h"
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <limits.h>
-/* TODO this is probably not the best way to do this */
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif
+#include <stdio.h> /* printf */
+#include <string.h> /* strncpy */
#include <alpm.h>
+#define BASENAME "vercmp"
+
+#define MAX_LEN 255
+
+static void usage()
+{
+ fprintf(stderr, "usage: %s <ver1> <ver2>\n\n", BASENAME);
+ fprintf(stderr, "return values:\n");
+ fprintf(stderr, " < 0 : if ver1 < ver2\n");
+ fprintf(stderr, " 0 : if ver1 == ver2\n");
+ fprintf(stderr, " > 0 : if ver1 > ver2\n");
+}
+
int main(int argc, char *argv[])
{
- char s1[255] = "";
- char s2[255] = "";
+ char s1[MAX_LEN] = "";
+ char s2[MAX_LEN] = "";
int ret;
+ if(argc == 1) {
+ usage();
+ return(2);
+ }
+ if(argc > 1 &&
+ (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0
+ || strcmp(argv[1], "--usage") == 0)) {
+ usage();
+ return(0);
+ }
if(argc > 1) {
- strncpy(s1, argv[1], 255);
+ strncpy(s1, argv[1], MAX_LEN);
+ s1[MAX_LEN -1] = '\0';
}
if(argc > 2) {
- strncpy(s2, argv[2], 255);
+ strncpy(s2, argv[2], MAX_LEN);
+ s2[MAX_LEN -1] = '\0';
} else {
printf("0\n");
return(0);
}
-
+
ret = alpm_pkg_vercmp(s1, s2);
printf("%d\n", ret);
return(ret);