From 8186dc11a90dbc310acaad7ee867ee995adbd6ed Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Sun, 13 Jan 2008 11:08:59 +0100 Subject: Ensure correct dir permissions in the database. Fix for FS#9176. A previous commit (6e8daa553bbd5) already forced all database files to 644. Now the directories are also forced to 755. Additionally, repo-add now sets the umask to 022, just like makepkg does, to fix the problem at its root. Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- lib/libalpm/util.c | 2 ++ scripts/repo-add.sh.in | 3 +++ 2 files changed, 5 insertions(+) diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index d09b9b14..5959482d 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -399,6 +399,8 @@ int _alpm_unpack(const char *archive, const char *prefix, const char *fn) if(S_ISREG(st->st_mode)) { archive_entry_set_mode(entry, 0644); + } else if(S_ISDIR(st->st_mode)) { + archive_entry_set_mode(entry, 0755); } if (fn && strcmp(fn, entryname)) { diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index 98191b62..c7aa11a2 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -28,6 +28,9 @@ confdir='@sysconfdir@' FORCE=0 REPO_DB_FILE="" +# ensure we have a sane umask set +umask 0022 + msg() { local mesg=$1; shift printf "==> ${mesg}\n" "$@" >&1 -- cgit v1.2.3-70-g09d2 From 549c2878f965e5b6cb001ff3c8c5e3122becf8e1 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 13 Jan 2008 14:14:34 -0600 Subject: Disallow a NULL section in _parseconfig If we allow _parseconfig to continue processing when section is not defined, then we have the potential to segfault during strcmp calls. This is no good. For some reason, we had existing logic that tested this case but only if it was processing and 'Include' directive. Expand the check to check for a NULL section in all cases, and print an error message if this is the case. Reported here: http://bbs.archlinux.org/viewtopic.php?id=42235 Signed-off-by: Dan McGee --- src/pacman/pacman.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pacman/pacman.c b/src/pacman/pacman.c index 1aa29682..27130254 100644 --- a/src/pacman/pacman.c +++ b/src/pacman/pacman.c @@ -606,8 +606,8 @@ static int _parseconfig(const char *file, const char *givensection, * 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"), + if(section == NULL) { + pm_printf(PM_LOG_ERROR, _("config file %s, line %d: All directives must belong to a section.\n"), file, linenum); return(1); } -- cgit v1.2.3-70-g09d2 From 801a26805663b0a79bf619a0fec853293806969b Mon Sep 17 00:00:00 2001 From: Jaroslaw Swierczynski Date: Sun, 13 Jan 2008 15:06:25 +0100 Subject: FS#9183 : force correct permissions on tmp/. [Xav: removed unneeded makepath_internal function, and fixed the permission value : 1777 -> 01777] Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- lib/libalpm/trans.c | 2 +- lib/libalpm/util.c | 9 +++++++-- lib/libalpm/util.h | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/libalpm/trans.c b/lib/libalpm/trans.c index 292c7160..ecc40a0f 100644 --- a/lib/libalpm/trans.c +++ b/lib/libalpm/trans.c @@ -487,7 +487,7 @@ int _alpm_runscriptlet(const char *root, const char *installfn, /* creates a directory in $root/tmp/ for copying/extracting the scriptlet */ snprintf(tmpdir, PATH_MAX, "%stmp/", root); if(stat(tmpdir, &buf)) { - _alpm_makepath(tmpdir); + _alpm_makepath_mode(tmpdir, 01777); } snprintf(tmpdir, PATH_MAX, "%stmp/alpm_XXXXXX", root); if(mkdtemp(tmpdir) == NULL) { diff --git a/lib/libalpm/util.c b/lib/libalpm/util.c index 5959482d..e1413a25 100644 --- a/lib/libalpm/util.c +++ b/lib/libalpm/util.c @@ -178,8 +178,13 @@ char* strsep(char** str, const char* delims) } #endif -/* does the same thing as 'mkdir -p' */ int _alpm_makepath(const char *path) +{ + return(_alpm_makepath_mode(path, 0755)); +} + +/* does the same thing as 'mkdir -p' */ +int _alpm_makepath_mode(const char *path, mode_t mode) { char *orig, *str, *ptr; char full[PATH_MAX] = ""; @@ -196,7 +201,7 @@ int _alpm_makepath(const char *path) strcat(full, "/"); strcat(full, ptr); if(stat(full, &buf)) { - if(mkdir(full, 0755)) { + if(mkdir(full, mode)) { FREE(orig); umask(oldmask); _alpm_log(PM_LOG_ERROR, _("failed to make path '%s' : %s\n"), diff --git a/lib/libalpm/util.h b/lib/libalpm/util.h index 3ffe6328..e9e0af1f 100644 --- a/lib/libalpm/util.h +++ b/lib/libalpm/util.h @@ -50,6 +50,7 @@ #define ASSERT(cond, action) do { if(!(cond)) { action; } } while(0) int _alpm_makepath(const char *path); +int _alpm_makepath_mode(const char *path, mode_t mode); int _alpm_copyfile(const char *src, const char *dest); char *_alpm_strtrim(char *str); char *_alpm_strreplace(const char *str, const char *needle, const char *replace); -- cgit v1.2.3-70-g09d2 From 916e226b7839e38d9245ecbef396eb5ba5b6a224 Mon Sep 17 00:00:00 2001 From: Scott Horowitz Date: Sun, 13 Jan 2008 17:39:06 -0600 Subject: makepkg: Introduce --holdver option to prevent bumped pkgrel This allows us to keep the --forcever option internal to makepkg. Fixes FS#9194. Signed-off-by: Dan McGee --- scripts/makepkg.sh.in | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 45b625d4..9cb12194 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -57,6 +57,7 @@ REPKG=0 LOGGING=0 SOURCEONLY=0 IGNOREARCH=0 +HOLDVER=0 # Forces the pkgver of the current PKGBUILD. Used by the fakeroot call # when dealing with svn/cvs/etc PKGBUILDs. @@ -979,6 +980,10 @@ install_package() { devel_check() { newpkgver="" + # Only update pkgver if --holdver is not set + if [ "$HOLDVER" = "1" ]; then + return + fi if [ "$FORCE_VER" = "" ]; then # Check if this is a svn/cvs/etc PKGBUILD; set $newpkgver if so. # This will only be used on the first call to makepkg; subsequent @@ -1069,6 +1074,7 @@ usage() { echo "$(gettext " -R, --repackage Repackage contents of pkg/ without building")" echo "$(gettext " -s, --syncdeps Install missing dependencies with pacman")" echo "$(gettext " --asroot Allow makepkg to run as root user")" + echo "$(gettext " --holdver Prevent automatic version bumping for development PKGBUILDs")" echo "$(gettext " --source Do not build package; generate a source-only tarball")" echo echo "$(gettext "These options can be passed to pacman:")" @@ -1116,8 +1122,8 @@ SRCDEST=${SRCDEST:-$startdir} #default to $startdir if undefined # Parse Command Line Options. OPT_SHORT="AbcCdefFghiLmop:rRsSV" -OPT_LONG="ignorearch,asroot,builddeps,clean,cleancache,nodeps,noextract,force,geninteg,help,install,log" -OPT_LONG="$OPT_LONG,nocolor,nobuild,rmdeps,repackage,source,syncdeps,usesudo,version,forcever:" +OPT_LONG="ignorearch,asroot,builddeps,clean,cleancache,nodeps,noextract,force,forcever,geninteg,help,holdver" +OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,source,syncdeps,usesudo,version" # Pacman Options OPT_LONG="$OPT_LONG,noconfirm,noprogressbar" OPT_TEMP="$(getopt -o "$OPT_SHORT" -l "$OPT_LONG" -n "$(basename "$0")" -- "$@" || echo 'GETOPT GO BANG!')" @@ -1143,8 +1149,11 @@ while true; do -d|--nodeps) NODEPS=1 ;; -e|--noextract) NOEXTRACT=1 ;; -f|--force) FORCE=1 ;; + #hidden opt used by fakeroot call for svn/cvs/etc PKGBUILDs to set pkgver + --forcever) shift; FORCE_VER=$1;; -F) INFAKEROOT=1 ;; -g|--geninteg) GENINTEG=1 ;; + --holdver) HOLDVER=1 ;; -i|--install) INSTALL=1 ;; -L|--log) LOGGING=1 ;; -m|--nocolor) USE_COLOR='n' ;; @@ -1155,9 +1164,6 @@ while true; do --source) SOURCEONLY=1 ;; -s|--syncdeps) DEP_BIN=1 ;; - # Hidden option used by fakeroot call for svn/cvs/etc PKGBUILDs to set the pkgver - --forcever) shift; FORCE_VER=$1;; - # BEGIN DEPRECATED -S|--usesudo) warning "$(gettext "Sudo is used by default now. The --usesudo option is deprecated!")" ;; @@ -1172,6 +1178,13 @@ while true; do shift done +if [ "$HOLDVER" = "1" -a "$FORCE_VER" != "" ]; then + # The extra '--' is here to prevent gettext from thinking --holdver is + # an option + error "$(gettext -- "--holdver and --forcever cannot both be specified")" + exit 1 +fi + if [ "$CLEANCACHE" = "1" ]; then #fix flyspray feature request #5223 if [ -n "$SRCDEST" -a "$SRCDEST" != "$startdir" ]; then @@ -1311,11 +1324,15 @@ if [ "$install" -a ! -f "$install" ]; then exit 1 fi +# We need to run devel_update regardless of whether we are in the fakeroot +# build process so that if the user runs makepkg --forcever manually, we +# 1) output the correct pkgver, and 2) use the correct filename when +# checking if the package file already exists - fixes FS #9194 devel_check +devel_update if [ -f "$PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}${PKGEXT}" \ - -a "$FORCE" = "0" -a "$GENINTEG" = "0" -a "$SOURCEONLY" = "0" \ - -a "$FORCE_VER" = "" ]; then + -a "$FORCE" = "0" -a "$GENINTEG" = "0" -a "$SOURCEONLY" = "0" ]; then if [ "$INSTALL" = "1" ]; then warning "$(gettext "A package has already been built, installing existing package...")" install_package @@ -1332,7 +1349,6 @@ if [ "$INFAKEROOT" = "1" ]; then if [ "$REPKG" = "1" ]; then warning "$(gettext "Skipping build.")" else - devel_update run_build tidy_install fi -- cgit v1.2.3-70-g09d2 From e93b0a2f37a41e8ba38f7ae7aa6f4ec7c5b8664d Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 13 Jan 2008 17:41:35 -0600 Subject: doc: update makepkg options Add documentation for --holdver (from Scott) and --forcever (saying this is an internal option that should not be used by most end users), and re-alphabetize the --asroot option. Signed-off-by: Dan McGee --- doc/makepkg.8.txt | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/doc/makepkg.8.txt b/doc/makepkg.8.txt index 689556d4..8f166a55 100644 --- a/doc/makepkg.8.txt +++ b/doc/makepkg.8.txt @@ -30,6 +30,11 @@ to use. Options ------- +*\--asroot*:: + Allow makepkg to run as root. This is for security purposes as it is + normally dangerous to do so. This will also disable use of fakeroot and + sudo. + *-A, \--ignorearch*:: Ignore a missing or incomplete arch field in the build script. This is for rebuilding packages from source when the PKGBUILD may be slightly @@ -68,6 +73,11 @@ Options default to the current directory. This allows the built package to be overwritten. +*-forcever*:: + This is a hidden option that should *not* be used unless you really know + what you are doing. makepkg uses this internally when calling itself to + set the new development pkgver of the package. + *-g, \--geninteg*:: For each source file in the source array of PKGBUILD, download the file if required and generate integrity checks. The integrity checks @@ -78,6 +88,11 @@ Options *-h, \--help*:: Output syntax and command line options. +*\--holdver*:: + Useful when building development versions of packages. Prevents makepkg + from automatically bumping the pkgver to the latest revision number in + the package's development tree. + *-i, \--install*:: Install or upgrade the package after a successful build using linkman:pacman[8]. @@ -108,11 +123,6 @@ Options dependencies are not found, pacman will try to resolve them. If successful, the missing packages will be downloaded and installed. -*\--asroot*:: - Allow makepkg to run as root. This is for security purposes as it is - normally dangerous to do so. This will also disable use of fakeroot and - sudo. - *\--source*:: Do not actually build the package, but build a source-only tarball. This is useful for passing a single tarball to another program such as a -- cgit v1.2.3-70-g09d2 From 6ee95afe7e9ac1b0ecdc517948ecdcc3b69ccf68 Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Sun, 13 Jan 2008 22:43:53 +0100 Subject: doc: update documentation for --recursive and --cascade This addresses some of the issues in FS#9192. Attempt to clarify the -Rc and -Rs options in the man page. Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- doc/pacman.8.txt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt index 0da83a67..33c0794c 100644 --- a/doc/pacman.8.txt +++ b/doc/pacman.8.txt @@ -207,7 +207,8 @@ Remove Options[[RO]] -------------------- *-c, \--cascade*:: Remove all target packages, as well as all packages that depend on one - or more target packages. This operation is recursive. + or more target packages. This operation is recursive, and must be used + with care since it can remove many potentially needed packages. *-k, \--keep*:: Removes the database entry only. Leaves all files in place. @@ -218,10 +219,11 @@ Remove Options[[RO]] file should be renamed with a ``.pacsave'' extension. *-s, \--recursive*:: - Remove each target specified including all dependencies, provided that - (A) they are not required by other packages; and (B) they were not - explicitly installed by the user. This option is analogous to a - backwards '\--sync' operation. + Remove each target specified including all of their dependencies, provided + that (A) they are not required by other packages; and (B) they were not + explicitly installed by the user. This operation is recursive and analogous + to a backwards '\--sync' operation, and helps keep a clean system without + orphans. Sync Options[[SO]] -- cgit v1.2.3-70-g09d2 From ffff09412627f991e2d1f0bdfdf7ca13f3d589c0 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 13 Jan 2008 19:15:59 -0600 Subject: makepkg: Oops! Lost the colon after forcever in opts parsing I screwed this up here: 916e226b7839e38d9245ecbef396eb5ba5b6a224 Signed-off-by: Dan McGee --- scripts/makepkg.sh.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index 9cb12194..219e2d17 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -1122,7 +1122,7 @@ SRCDEST=${SRCDEST:-$startdir} #default to $startdir if undefined # Parse Command Line Options. OPT_SHORT="AbcCdefFghiLmop:rRsSV" -OPT_LONG="ignorearch,asroot,builddeps,clean,cleancache,nodeps,noextract,force,forcever,geninteg,help,holdver" +OPT_LONG="ignorearch,asroot,builddeps,clean,cleancache,nodeps,noextract,force,forcever:,geninteg,help,holdver" OPT_LONG="$OPT_LONG,install,log,nocolor,nobuild,rmdeps,repackage,source,syncdeps,usesudo,version" # Pacman Options OPT_LONG="$OPT_LONG,noconfirm,noprogressbar" -- cgit v1.2.3-70-g09d2 From fd86c62db856cea7cdd8edac2e721543dd1ebf04 Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Sun, 13 Jan 2008 23:26:31 -0600 Subject: Fix typos in code comments Signed-off-by: Dan McGee --- scripts/repo-add.sh.in | 8 ++++---- scripts/repo-remove.sh.in | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in index c7aa11a2..c37a12fa 100644 --- a/scripts/repo-add.sh.in +++ b/scripts/repo-add.sh.in @@ -80,7 +80,7 @@ test_repo_db_file () { return 0 # YES fi else - return 0 # YES - No database file is also aloud. + return 0 # YES - No database file is also allowed fi return 1 # NO @@ -141,7 +141,7 @@ db_write_entry() startdir local OLDIFS="$IFS" - # IFS (field seperator) is only the newline character + # IFS (field separator) is only the newline character IFS=" " @@ -288,7 +288,7 @@ gstmpdir=$(mktemp -d /tmp/repo-add.XXXXXXXXXX) || (\ exit 1) success=0 -# parse arguements +# parse arguments for arg in "$@"; do if [ "$arg" == "--force" -o "$arg" == "-f" ]; then FORCE=1 @@ -318,7 +318,7 @@ for arg in "$@"; do fi done -# if all operations were a success, rezip database +# if all operations were a success, re-zip database if [ $success -eq 1 ]; then msg "$(gettext "Creating updated database file %s")" "$REPO_DB_FILE" pushd "$gstmpdir" 2>&1 >/dev/null diff --git a/scripts/repo-remove.sh.in b/scripts/repo-remove.sh.in index 6335c00f..05bec390 100644 --- a/scripts/repo-remove.sh.in +++ b/scripts/repo-remove.sh.in @@ -132,7 +132,7 @@ gstmpdir=$(mktemp -d /tmp/repo-remove.XXXXXXXXXX) || (\ exit 1) success=0 -# parse arguements +# parse arguments for arg in "$@"; do if [ -z "$REPO_DB_FILE" ]; then REPO_DB_FILE=$(readlink -f "$arg") @@ -154,7 +154,7 @@ for arg in "$@"; do fi done -# if all operations were a success, rezip database +# if all operations were a success, re-zip database if [ $success -eq 1 ]; then msg "$(gettext "Creating updated database file '%s'...")" "$REPO_DB_FILE" pushd "$gstmpdir" 2>&1 >/dev/null -- cgit v1.2.3-70-g09d2 From 307f4d73015ee9fda6ae8c76d8bad14c3a48fb6d Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Tue, 15 Jan 2008 00:48:31 +0100 Subject: Revert "Fix case where pacman asks for confirmation when it should not" yesno function already handles noconfirm. No need to do it twice. This reverts commit dffa0654f2eae1c427a74c647d22f0bbd201ccf7. --- src/pacman/remove.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/pacman/remove.c b/src/pacman/remove.c index fde5c737..56837fa2 100644 --- a/src/pacman/remove.c +++ b/src/pacman/remove.c @@ -155,8 +155,7 @@ int pacman_remove(alpm_list_t *targets) list_display(_("Targets:"), lst); FREELIST(lst); /* get confirmation */ - if(!config->noconfirm - && yesno(_("\nDo you want to remove these packages? [Y/n] ")) == 0) { + if(yesno(_("\nDo you want to remove these packages? [Y/n] ")) == 0) { remove_cleanup(); FREELIST(finaltargs); return(1); -- cgit v1.2.3-70-g09d2 From 223a0ce89d0abbf3a0e4a33c1a96c2e9cbd096cc Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Tue, 15 Jan 2008 00:22:11 +0100 Subject: New polish mirror. FS#9213. Signed-off-by: Chantry Xavier --- etc/pacman.d/mirrorlist.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/etc/pacman.d/mirrorlist.in b/etc/pacman.d/mirrorlist.in index fd2e41ce..c9c4e9fe 100644 --- a/etc/pacman.d/mirrorlist.in +++ b/etc/pacman.d/mirrorlist.in @@ -55,6 +55,8 @@ Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/@CARCH@ # - Poland Server = ftp://ftp.icm.edu.pl/pub/Linux/sunsite/distributions/archlinux/$repo/os/@CARCH@ Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/@CARCH@ +Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ +Server = ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ # - Portugal Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/@CARCH@ # - Romania -- cgit v1.2.3-70-g09d2 From 1dca8b630937450ba66351f53c5ce3e59f14732c Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Mon, 14 Jan 2008 20:02:01 +0100 Subject: Rename provision related pactests to provision*.py. Also add 3 new pactests to cover both the -U and -S operations for versioned provisions. Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- pactest/tests/add043.py | 15 --------------- pactest/tests/add044.py | 15 --------------- pactest/tests/add045.py | 15 --------------- pactest/tests/provision001.py | 10 ++++++++++ pactest/tests/provision002.py | 15 +++++++++++++++ pactest/tests/provision010.py | 15 +++++++++++++++ pactest/tests/provision011.py | 15 +++++++++++++++ pactest/tests/provision012.py | 15 +++++++++++++++ pactest/tests/provision020.py | 15 +++++++++++++++ pactest/tests/provision021.py | 15 +++++++++++++++ pactest/tests/provision022.py | 15 +++++++++++++++ pactest/tests/sync500.py | 10 ---------- pactest/tests/sync501.py | 15 --------------- 13 files changed, 115 insertions(+), 70 deletions(-) delete mode 100644 pactest/tests/add043.py delete mode 100644 pactest/tests/add044.py delete mode 100644 pactest/tests/add045.py create mode 100644 pactest/tests/provision001.py create mode 100644 pactest/tests/provision002.py create mode 100644 pactest/tests/provision010.py create mode 100644 pactest/tests/provision011.py create mode 100644 pactest/tests/provision012.py create mode 100644 pactest/tests/provision020.py create mode 100644 pactest/tests/provision021.py create mode 100644 pactest/tests/provision022.py delete mode 100644 pactest/tests/sync500.py delete mode 100644 pactest/tests/sync501.py diff --git a/pactest/tests/add043.py b/pactest/tests/add043.py deleted file mode 100644 index 18f732ee..00000000 --- a/pactest/tests/add043.py +++ /dev/null @@ -1,15 +0,0 @@ -self.description = "provision>=1.0-2 dependency" - -p = pmpkg("pkg1", "1.0-2") -p.depends = ["provision>=1.0-2"] -self.addpkg(p) - -lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision"] -self.addpkg2db("local", lp) - -self.args = "-A %s" % p.filename() - -self.addrule("PACMAN_RETCODE=1") -self.addrule("!PKG_EXIST=pkg1") -self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/add044.py b/pactest/tests/add044.py deleted file mode 100644 index cbc82e9d..00000000 --- a/pactest/tests/add044.py +++ /dev/null @@ -1,15 +0,0 @@ -self.description = "provision>=1.0-2 dependency (2)" - -p = pmpkg("pkg1", "1.0-2") -p.depends = ["provision>=1.0-2"] -self.addpkg(p) - -lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision 1.0-2"] -self.addpkg2db("local", lp) - -self.args = "-A %s" % p.filename() - -self.addrule("PACMAN_RETCODE=0") -self.addrule("PKG_EXIST=pkg1") -self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/add045.py b/pactest/tests/add045.py deleted file mode 100644 index b53e0906..00000000 --- a/pactest/tests/add045.py +++ /dev/null @@ -1,15 +0,0 @@ -self.description = "provision>=1.0-2 dependency (3)" - -p = pmpkg("pkg1", "1.0-2") -p.depends = ["provision>=1.0-2"] -self.addpkg(p) - -lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision 1.0-1"] -self.addpkg2db("local", lp) - -self.args = "-A %s" % p.filename() - -self.addrule("PACMAN_RETCODE=1") -self.addrule("!PKG_EXIST=pkg1") -self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/provision001.py b/pactest/tests/provision001.py new file mode 100644 index 00000000..36364c16 --- /dev/null +++ b/pactest/tests/provision001.py @@ -0,0 +1,10 @@ +self.description = "-S provision" + +sp = pmpkg("pkg1") +sp.provides = ["provision 1.0-1"] +self.addpkg2db("sync", sp) + +self.args = "-S provision" + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") diff --git a/pactest/tests/provision002.py b/pactest/tests/provision002.py new file mode 100644 index 00000000..fa5f3688 --- /dev/null +++ b/pactest/tests/provision002.py @@ -0,0 +1,15 @@ +self.description = "-S provision" + +sp = pmpkg("pkg1") +sp.provides = ["provision 1.0-1"] +self.addpkg2db("sync", sp) + +sp = pmpkg("pkg2") +sp.provides = ["provision 1.0-1"] +self.addpkg2db("sync", sp) + +self.args = "-S provision" + +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("!PKG_EXIST=pkg2") diff --git a/pactest/tests/provision010.py b/pactest/tests/provision010.py new file mode 100644 index 00000000..711a7319 --- /dev/null +++ b/pactest/tests/provision010.py @@ -0,0 +1,15 @@ +self.description = "provision>=1.0-2 dependency" + +p = pmpkg("pkg1", "1.0-2") +p.depends = ["provision>=1.0-2"] +self.addpkg(p) + +lp = pmpkg("pkg2", "1.0-2") +lp.provides = ["provision"] +self.addpkg2db("local", lp) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/provision011.py b/pactest/tests/provision011.py new file mode 100644 index 00000000..7fd5e6b4 --- /dev/null +++ b/pactest/tests/provision011.py @@ -0,0 +1,15 @@ +self.description = "provision>=1.0-2 dependency (2)" + +p = pmpkg("pkg1", "1.0-2") +p.depends = ["provision>=1.0-2"] +self.addpkg(p) + +lp = pmpkg("pkg2", "1.0-2") +lp.provides = ["provision 1.0-2"] +self.addpkg2db("local", lp) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/provision012.py b/pactest/tests/provision012.py new file mode 100644 index 00000000..11cdad4e --- /dev/null +++ b/pactest/tests/provision012.py @@ -0,0 +1,15 @@ +self.description = "provision>=1.0-2 dependency (3)" + +p = pmpkg("pkg1", "1.0-2") +p.depends = ["provision>=1.0-2"] +self.addpkg(p) + +lp = pmpkg("pkg2", "1.0-2") +lp.provides = ["provision 1.0-1"] +self.addpkg2db("local", lp) + +self.args = "-U %s" % p.filename() + +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/provision020.py b/pactest/tests/provision020.py new file mode 100644 index 00000000..7cb0a01b --- /dev/null +++ b/pactest/tests/provision020.py @@ -0,0 +1,15 @@ +self.description = "provision>=1.0-2 dependency" + +p = pmpkg("pkg1", "1.0-2") +p.depends = ["provision>=1.0-2"] +self.addpkg2db("sync", p) + +lp = pmpkg("pkg2", "1.0-2") +lp.provides = ["provision"] +self.addpkg2db("local", lp) + +self.args = "-S %s" % p.name + +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/provision021.py b/pactest/tests/provision021.py new file mode 100644 index 00000000..4b06a1a7 --- /dev/null +++ b/pactest/tests/provision021.py @@ -0,0 +1,15 @@ +self.description = "provision>=1.0-2 dependency (2)" + +p = pmpkg("pkg1", "1.0-2") +p.depends = ["provision>=1.0-2"] +self.addpkg2db("sync", p) + +lp = pmpkg("pkg2", "1.0-2") +lp.provides = ["provision 1.0-2"] +self.addpkg2db("local", lp) + +self.args = "-S %s" % p.name + +self.addrule("PACMAN_RETCODE=0") +self.addrule("PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/provision022.py b/pactest/tests/provision022.py new file mode 100644 index 00000000..d7f06913 --- /dev/null +++ b/pactest/tests/provision022.py @@ -0,0 +1,15 @@ +self.description = "provision>=1.0-2 dependency (3)" + +p = pmpkg("pkg1", "1.0-2") +p.depends = ["provision>=1.0-2"] +self.addpkg2db("sync", p) + +lp = pmpkg("pkg2", "1.0-2") +lp.provides = ["provision 1.0-1"] +self.addpkg2db("local", lp) + +self.args = "-S %s" % p.name + +self.addrule("PACMAN_RETCODE=1") +self.addrule("!PKG_EXIST=pkg1") +self.addrule("PKG_EXIST=pkg2") diff --git a/pactest/tests/sync500.py b/pactest/tests/sync500.py deleted file mode 100644 index 36364c16..00000000 --- a/pactest/tests/sync500.py +++ /dev/null @@ -1,10 +0,0 @@ -self.description = "-S provision" - -sp = pmpkg("pkg1") -sp.provides = ["provision 1.0-1"] -self.addpkg2db("sync", sp) - -self.args = "-S provision" - -self.addrule("PACMAN_RETCODE=0") -self.addrule("PKG_EXIST=pkg1") diff --git a/pactest/tests/sync501.py b/pactest/tests/sync501.py deleted file mode 100644 index fa5f3688..00000000 --- a/pactest/tests/sync501.py +++ /dev/null @@ -1,15 +0,0 @@ -self.description = "-S provision" - -sp = pmpkg("pkg1") -sp.provides = ["provision 1.0-1"] -self.addpkg2db("sync", sp) - -sp = pmpkg("pkg2") -sp.provides = ["provision 1.0-1"] -self.addpkg2db("sync", sp) - -self.args = "-S provision" - -self.addrule("PACMAN_RETCODE=1") -self.addrule("!PKG_EXIST=pkg1") -self.addrule("!PKG_EXIST=pkg2") -- cgit v1.2.3-70-g09d2 From 6eee9e987a2dc6eba183f61fb596b7e0b8cc1645 Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Tue, 15 Jan 2008 00:15:30 +0100 Subject: Update cachedir documentation (FS#9204). Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- doc/pacman.8.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt index 33c0794c..c47af65e 100644 --- a/doc/pacman.8.txt +++ b/doc/pacman.8.txt @@ -120,9 +120,9 @@ Options *\--cachedir* <'dir'>:: Specify an alternative package cache location (a typical default is ``/var/cache/pacman/pkg''). Multiple cache directories can be specified, - and they are tried in the order they are passed to pacman. *NOTE*: if - specified, this is an absolute path and the root path is not automatically - prepended. This behavior changed in pacman 3.1.0. + and they are tried in the order they are passed to pacman. *NOTE*: this + is an absolute path, the root path is not automatically prepended. This + behavior changed in pacman 3.1.0. *\--config* <'file'>:: Specify an alternate configuration file. -- cgit v1.2.3-70-g09d2 From 0c5b68877b107f4844f29eb77a9ea5bf7b73fe01 Mon Sep 17 00:00:00 2001 From: Chantry Xavier Date: Mon, 14 Jan 2008 20:28:29 +0100 Subject: Change the versioned provision format. Change the 'provname provver' format to 'provname=provver'. In .PKGINFO, the provisions are copied from the PKGBUILD without quotes. So the provision version was actually handled as a different provision... See FS#9171. Dan: Unfortunately we have to change our original specification for versioned provisions with this patch, but it ends up being the simpler and cleaner solution in the long run, and if there is any time to change it the time is now before many packages have been built. Keeping the ' ' based format would have required us to do special parsing in repo-add, as well as being susceptible to users not using quotes in their provides array. Hopefully this will resolve the issues we had with our initial plan. Sorry for the confusion. Acked-by: Nagy Gabor Signed-off-by: Chantry Xavier Signed-off-by: Dan McGee --- doc/PKGBUILD.5.txt | 5 +++-- lib/libalpm/db.c | 2 +- lib/libalpm/deps.c | 4 ++-- pactest/tests/provision001.py | 2 +- pactest/tests/provision002.py | 4 ++-- pactest/tests/provision011.py | 2 +- pactest/tests/provision012.py | 2 +- pactest/tests/provision021.py | 2 +- pactest/tests/provision022.py | 2 +- 9 files changed, 13 insertions(+), 12 deletions(-) diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt index 3ef9d04e..ac394729 100644 --- a/doc/PKGBUILD.5.txt +++ b/doc/PKGBUILD.5.txt @@ -145,8 +145,9 @@ Options and Directives a package to provide dependencies other than its own package name. For example, the dcron package can provide 'cron', which allows packages to depend on 'cron' rather than 'dcron OR fcron'. - Versioned provisions are also possible. For example, dcron can provide - 'cron 2.0' to satisfy the 'cron>=2.0' dependency of other packages. + Versioned provisions are also possible, in the 'name=version' format. + For example, dcron can provide 'cron=2.0' to satisfy the 'cron>=2.0' + dependency of other packages. *replaces (array)*:: An array of packages that this package should replace, and can be used diff --git a/lib/libalpm/db.c b/lib/libalpm/db.c index d8e770b8..1485c34a 100644 --- a/lib/libalpm/db.c +++ b/lib/libalpm/db.c @@ -650,7 +650,7 @@ int _alpm_prov_cmp(const void *provision, const void *needle) char *tmpptr; char *provname = strdup(provision); int retval = 0; - tmpptr = strchr(provname, ' '); + tmpptr = strchr(provname, '='); if(tmpptr != NULL) { /* provision-version */ *tmpptr='\0'; diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c index 8c302b69..ec52083e 100644 --- a/lib/libalpm/deps.c +++ b/lib/libalpm/deps.c @@ -336,10 +336,10 @@ int SYMEXPORT alpm_depcmp(pmpkg_t *pkg, pmdepend_t *dep) satisfy = (strcmp(pkgname, dep->name) == 0 && dep_vercmp(pkgversion, dep->mod, dep->version)); - /* check provisions, format : "name version" */ + /* check provisions, format : "name=version" */ for(i = alpm_pkg_get_provides(pkg); i && !satisfy; i = i->next) { char *provname = strdup(i->data); - char *provver = strchr(provname, ' '); + char *provver = strchr(provname, '='); if(provver == NULL) { /* no provision version */ satisfy = (dep->mod == PM_DEP_MOD_ANY diff --git a/pactest/tests/provision001.py b/pactest/tests/provision001.py index 36364c16..37e3d935 100644 --- a/pactest/tests/provision001.py +++ b/pactest/tests/provision001.py @@ -1,7 +1,7 @@ self.description = "-S provision" sp = pmpkg("pkg1") -sp.provides = ["provision 1.0-1"] +sp.provides = ["provision=1.0-1"] self.addpkg2db("sync", sp) self.args = "-S provision" diff --git a/pactest/tests/provision002.py b/pactest/tests/provision002.py index fa5f3688..32bc4b8d 100644 --- a/pactest/tests/provision002.py +++ b/pactest/tests/provision002.py @@ -1,11 +1,11 @@ self.description = "-S provision" sp = pmpkg("pkg1") -sp.provides = ["provision 1.0-1"] +sp.provides = ["provision=1.0-1"] self.addpkg2db("sync", sp) sp = pmpkg("pkg2") -sp.provides = ["provision 1.0-1"] +sp.provides = ["provision=1.0-1"] self.addpkg2db("sync", sp) self.args = "-S provision" diff --git a/pactest/tests/provision011.py b/pactest/tests/provision011.py index 7fd5e6b4..96aac300 100644 --- a/pactest/tests/provision011.py +++ b/pactest/tests/provision011.py @@ -5,7 +5,7 @@ p.depends = ["provision>=1.0-2"] self.addpkg(p) lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision 1.0-2"] +lp.provides = ["provision=1.0-2"] self.addpkg2db("local", lp) self.args = "-U %s" % p.filename() diff --git a/pactest/tests/provision012.py b/pactest/tests/provision012.py index 11cdad4e..f7ed2216 100644 --- a/pactest/tests/provision012.py +++ b/pactest/tests/provision012.py @@ -5,7 +5,7 @@ p.depends = ["provision>=1.0-2"] self.addpkg(p) lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision 1.0-1"] +lp.provides = ["provision=1.0-1"] self.addpkg2db("local", lp) self.args = "-U %s" % p.filename() diff --git a/pactest/tests/provision021.py b/pactest/tests/provision021.py index 4b06a1a7..a98e1f33 100644 --- a/pactest/tests/provision021.py +++ b/pactest/tests/provision021.py @@ -5,7 +5,7 @@ p.depends = ["provision>=1.0-2"] self.addpkg2db("sync", p) lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision 1.0-2"] +lp.provides = ["provision=1.0-2"] self.addpkg2db("local", lp) self.args = "-S %s" % p.name diff --git a/pactest/tests/provision022.py b/pactest/tests/provision022.py index d7f06913..4883d428 100644 --- a/pactest/tests/provision022.py +++ b/pactest/tests/provision022.py @@ -5,7 +5,7 @@ p.depends = ["provision>=1.0-2"] self.addpkg2db("sync", p) lp = pmpkg("pkg2", "1.0-2") -lp.provides = ["provision 1.0-1"] +lp.provides = ["provision=1.0-1"] self.addpkg2db("local", lp) self.args = "-S %s" % p.name -- cgit v1.2.3-70-g09d2 From 9a18e0dbefd010f4505433cbf7a4d6bb40c548da Mon Sep 17 00:00:00 2001 From: Travis Willard Date: Mon, 14 Jan 2008 19:42:15 -0500 Subject: Clean up pacman.conf.in This patch cleans up the Arch-specific pacman.conf (to be provided in the pacman Archlinux package) in an attempt to reduce the number of PEBKAC errors seen enabling default-disabled repos. Signed-off-by: Travis Willard Signed-off-by: Dan McGee --- etc/pacman.conf.in | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/etc/pacman.conf.in b/etc/pacman.conf.in index a072db13..26cb3399 100644 --- a/etc/pacman.conf.in +++ b/etc/pacman.conf.in @@ -24,6 +24,18 @@ HoldPkg = pacman glibc # - repositories listed first will take precedence when packages # have identical names, regardless of version number # +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# Testing is disabled by default. To enable, uncomment the following +# two lines. You can add preferred servers immediately after the header, +# and they will be used before the default mirrors. #[testing] #Include = @sysconfdir@/pacman.d/mirrorlist @@ -39,8 +51,10 @@ Include = @sysconfdir@/pacman.d/mirrorlist # Add your preferred servers here, they will be used first Include = @sysconfdir@/pacman.d/mirrorlist +# Unstable is disabled by default. To enable, uncomment the following +# two lines. You can add preferred servers immediately after the header, +# and they will be used before the default mirrors. #[unstable] -# Add your preferred servers here, they will be used first #Include = @sysconfdir@/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for -- cgit v1.2.3-70-g09d2 From a0ac72b42219fbcf17dd7cf2ee992b71a6a1375a Mon Sep 17 00:00:00 2001 From: Dan McGee Date: Mon, 7 Jan 2008 17:21:28 -0600 Subject: etc: remove Arch-specific mirrorlist from repo We shouldn't have the stock config be Arch specific for a few reasons: * Although it is our package, others should be able to use it * Keeping the mirrorlist coupled to the pacman package makes it hard to push updates to users without releasing a new copy of the pacman source Signed-off-by: Dan McGee --- etc/Makefile.am | 2 -- etc/pacman.conf.in | 32 +++++------------ etc/pacman.d/.gitignore | 1 - etc/pacman.d/Makefile.am | 17 --------- etc/pacman.d/mirrorlist.in | 86 ---------------------------------------------- 5 files changed, 9 insertions(+), 129 deletions(-) delete mode 100644 etc/pacman.d/.gitignore delete mode 100644 etc/pacman.d/Makefile.am delete mode 100644 etc/pacman.d/mirrorlist.in diff --git a/etc/Makefile.am b/etc/Makefile.am index 6fa7d98c..b4f4972e 100644 --- a/etc/Makefile.am +++ b/etc/Makefile.am @@ -1,5 +1,3 @@ -SUBDIRS = pacman.d - dist_sysconf_DATA = makepkg.conf pacman.conf EXTRA_DIST = makepkg.conf.in pacman.conf.in diff --git a/etc/pacman.conf.in b/etc/pacman.conf.in index 26cb3399..351d23f4 100644 --- a/etc/pacman.conf.in +++ b/etc/pacman.conf.in @@ -1,7 +1,7 @@ # # @sysconfdir@/pacman.conf # -# See the pacman manpage for option directives +# See the pacman.conf(5) manpage for option and repository directives # # GENERAL OPTIONS @@ -23,6 +23,7 @@ HoldPkg = pacman glibc # - local/custom mirrors can be added here or in separate files # - repositories listed first will take precedence when packages # have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo # # Repository entries are of the format: # [repo-name] @@ -33,28 +34,13 @@ HoldPkg = pacman glibc # uncommented to enable the repo. # -# Testing is disabled by default. To enable, uncomment the following -# two lines. You can add preferred servers immediately after the header, -# and they will be used before the default mirrors. -#[testing] -#Include = @sysconfdir@/pacman.d/mirrorlist - -[core] -# Add your preferred servers here, they will be used first -Include = @sysconfdir@/pacman.d/mirrorlist - -[extra] -# Add your preferred servers here, they will be used first -Include = @sysconfdir@/pacman.d/mirrorlist - -[community] -# Add your preferred servers here, they will be used first -Include = @sysconfdir@/pacman.d/mirrorlist - -# Unstable is disabled by default. To enable, uncomment the following -# two lines. You can add preferred servers immediately after the header, -# and they will be used before the default mirrors. -#[unstable] +# An example of a disabled remote package repository with multiple servers +# available. To enable, uncomment the following lines. You can add preferred +# servers immediately after the header and they will be used before the +# default mirrors. +#[core] +#Server = ftp://ftp.example.com/foobar/$repo/os/i686/ +# The file referenced here should contain a list of 'Server = ' lines. #Include = @sysconfdir@/pacman.d/mirrorlist # An example of a custom package repository. See the pacman manpage for diff --git a/etc/pacman.d/.gitignore b/etc/pacman.d/.gitignore deleted file mode 100644 index b47959b7..00000000 --- a/etc/pacman.d/.gitignore +++ /dev/null @@ -1 +0,0 @@ -mirrorlist diff --git a/etc/pacman.d/Makefile.am b/etc/pacman.d/Makefile.am deleted file mode 100644 index e1f33c76..00000000 --- a/etc/pacman.d/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ -pkgsysconfdir = ${sysconfdir}/pacman.d -dist_pkgsysconf_DATA = mirrorlist -EXTRA_DIST = mirrorlist.in -# -# Files that should be removed, but which Automake does not know. -MOSTLYCLEANFILES = $(dist_pkgsysconf_DATA) - -$(dist_pkgsysconf_DATA): Makefile - rm -f $@ $@.tmp - sed \ - -e 's|@CARCH[@]|$(CARCH)|g' \ - $(srcdir)/mirrorlist.in >$@.tmp - mv $@.tmp $@ - -mirrorlist: $(srcdir)/mirrorlist.in - -# vim:set ts=2 sw=2 noet: diff --git a/etc/pacman.d/mirrorlist.in b/etc/pacman.d/mirrorlist.in deleted file mode 100644 index c9c4e9fe..00000000 --- a/etc/pacman.d/mirrorlist.in +++ /dev/null @@ -1,86 +0,0 @@ -# -# $repo: Arch Linux @REPO@ repository -# - -# United States -Server = ftp://ftp.archlinux.org/$repo/os/@CARCH@ -Server = ftp://ftp.nethat.com/pub/linux/archlinux/$repo/os/@CARCH@ -Server = ftp://locke.suu.edu/linux/dist/archlinux/$repo/os/@CARCH@ -Server = ftp://mirrors.unixheads.org/archlinux/$repo/os/@CARCH@ -Server = ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/archlinux/$repo/os/@CARCH@ -Server = ftp://mirror.cs.vt.edu/pub/ArchLinux/$repo/os/@CARCH@ -Server = http://mirrors.easynews.com/linux/archlinux/$repo/os/@CARCH@ -Server = ftp://ftp.ibiblio.org/pub/linux/distributions/archlinux/$repo/os/@CARCH@ -Server = http://holmes.umflint.edu/archlinux/$repo/os/@CARCH@ - -# South America -# - Brazil -Server = http://archlinux.c3sl.ufpr.br/$repo/os/@CARCH@ -Server = ftp://archlinux.c3sl.ufpr.br/archlinux/$repo/os/@CARCH@ - -# Europe -# - Austria -Server = ftp://gd.tuwien.ac.at/opsys/linux/archlinux/$repo/os/@CARCH@ -# - Belgium -Server = ftp://ftp.belnet.be/mirror/archlinux.org/$repo/os/@CARCH@ -# - Czech Republic -Server = ftp://ftp.sh.cvut.cz/MIRRORS/arch/$repo/os/@CARCH@ -# - Estonia -Server = ftp://ftp.estpak.ee/pub/archlinux/$repo/os/@CARCH@ -# - Finland -Server = ftp://ftp.sixnix.net/pub/archlinux/$repo/os/@CARCH@ -# - France -Server = ftp://mir1.archlinuxfr.org/archlinux/$repo/os/@CARCH@ -Server = ftp://mir2.archlinuxfr.org/archlinux/$repo/os/@CARCH@ -Server = ftp://distrib-coffee.ipsl.jussieu.fr/pub/linux/archlinux/$repo/os/@CARCH@ -Server = http://mir.archlinux.fr/$repo/os/@CARCH@ -Server = ftp://ftp.free.fr/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ -# - Germany -Server = ftp://ftp.tu-chemnitz.de/pub/linux/sunsite.unc-mirror/distributions/archlinux/$repo/os/@CARCH@ -Server = ftp://ftp.hosteurope.de/mirror/ftp.archlinux.org/$repo/os/@CARCH@ -Server = ftp://ftp.archlinuxppc.org/i686/$repo/os/@CARCH@ -# - Great Britain -Server = http://www.mirrorservice.org/sites/ftp.archlinux.org/$repo/os/@CARCH@ -# - Greece -Server = ftp://ftp.ntua.gr/pub/linux/archlinux/$repo/os/@CARCH@ -# - Hungary -Server = ftp://ftp.mfa.kfki.hu/pub/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ -# - Ireland -Server = ftp://ftp.heanet.ie/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ -# - Italy -Server = ftp://mi.mirror.garr.it/mirrors/archlinux/$repo/os/@CARCH@ -# - Netherlands -Server = ftp://ftp.nluug.nl/pub/metalab/distributions/archlinux/$repo/os/@CARCH@ -Server = ftp://ftp.surfnet.nl/pub/os/Linux/distr/archlinux/$repo/os/@CARCH@ -# - Poland -Server = ftp://ftp.icm.edu.pl/pub/Linux/sunsite/distributions/archlinux/$repo/os/@CARCH@ -Server = ftp://mirror.icis.pcz.pl/archlinux/$repo/os/@CARCH@ -Server = http://piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ -Server = ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.archlinux.org/$repo/os/@CARCH@ -# - Portugal -Server = ftp://cesium.di.uminho.pt/pub/archlinux/$repo/os/@CARCH@ -# - Romania -Server = ftp://ftp.iasi.roedu.net/mirrors/archlinux.org/$repo/os/@CARCH@ -# - Russia -Server = ftp://archlinux.org.ru/pub/archlinux/$repo/os/@CARCH@ -Server = ftp://mirror.yandex.ru/archlinux/$repo/os/@CARCH@ -Server = http://archlinux.freeside.ru/$repo/os/@CARCH@ -# - Sweden -Server = ftp://ftp.ds.hj.se/pub/os/linux/archlinux/$repo/os/@CARCH@ -Server = ftp://ftp.gigabit.nu/$repo/os/@CARCH@ -# - Switzerland -Server = ftp://archlinux.puzzle.ch/$repo/os/@CARCH@ -# - Turkey -Server = http://server.elsistech.com/archlinux/$repo/os/@CARCH@ -# - Ukraine -Server = ftp://hell.org.ua/archlinux/$repo/os/@CARCH@ -Server = ftp://ftp.linux.kiev.ua/pub/Linux/ArchLinux/$repo/os/@CARCH@ - -# Asia -# - Israel -Server = http://mirror.isoc.org.il/pub/archlinux/$repo/os/@CARCH@ - -# Australia -Server = ftp://mirror.pacific.net.au/linux/archlinux/$repo/os/@CARCH@ -Server = ftp://mirror.aarnet.edu.au/pub/archlinux/$repo/os/@CARCH@ - -- cgit v1.2.3-70-g09d2