[Frugalware-darcs] pacman: new package name format for fpm packages: pkgname-pkgver-pkgrel-arch

VMiklos vmiklos at frugalware.org
Mon Dec 26 10:59:28 CET 2005


[new package name format for fpm packages: pkgname-pkgver-pkgrel-arch
VMiklos <vmiklos at frugalware.org>**20051210130500
 so the -arch suffix is added
 NOTE: under PM_DBPATH we still use the old format
] {
hunk ./doc/makepkg.8.in 42
+archs=('i686')
hunk ./doc/makepkg.8.in 62
-which will be of the form \fI$pkgname-$pkgver-$pkgrel.fpm\fP.  The fourth
+which will be of the form \fI$pkgname-$pkgver-$pkgrel-$arch.fpm\fP.  The fourth
hunk ./doc/makepkg.8.in 115
-something like name-version-release.fpm.  Done!
+something like name-version-release-arch.fpm.  Done!
hunk ./doc/makepkg.8.in 288
+.TP
+.B archs \fI(array)\fP
+This array defines on which architectures the given package is avalibable.
+If it's not available, that will mean that gensync will skip it when generating
+package databases.
+
hunk ./doc/makepkg.8.in 357
-\fBmakepkg\fP will not build a package if a \fIpkgname-pkgver-pkgrel.fpm\fP
+\fBmakepkg\fP will not build a package if a \fIpkgname-pkgver-pkgrel-arch.fpm\fP
hunk ./lib/libalpm/add.c 116
-	if(pkg_splitname(name, pkgname, pkgver) == -1) {
+	if(pkg_splitname(name, pkgname, pkgver, PM_PKG_WITH_ARCH) == -1) {
hunk ./lib/libalpm/alpm.h 159
+
+/* package name formats */
+#define PM_PKG_WITHOUT_ARCH 0 /* pkgname-pkgver-pkgrel, used under PM_DBPATH */
+#define PM_PKG_WITH_ARCH    1 /* ie, pkgname-pkgver-pkgrel-arch, used under PM_CACHEDIR */
hunk ./lib/libalpm/db.c 270
-		if(pkg_splitname(name, info->name, info->version) == -1) {
+		if(pkg_splitname(name, info->name, info->version, PM_PKG_WITHOUT_ARCH) == -1) {
hunk ./lib/libalpm/package.c 417
-int pkg_splitname(char *target, char *name, char *version)
+int pkg_splitname(char *target, char *name, char *version, int *witharch)
hunk ./lib/libalpm/package.c 437
+	if(witharch) {
+		/* trim architecture */
+		if((p = strrchr(tmp, '-'))) {
+			*p = 0;
+		}
+	}
hunk ./lib/libalpm/package.h 96
-int pkg_splitname(char *target, char *name, char *version);
+int pkg_splitname(char *target, char *name, char *version, int *witharch);
hunk ./lib/libalpm/sync.c 551
-		snprintf(str, PATH_MAX, "%s%s/%s-%s" PM_EXT_PKG, handle->root, handle->cachedir, spkg->name, spkg->version);
+		snprintf(str, PATH_MAX, "%s%s/%s-%s-%s" PM_EXT_PKG, handle->root, handle->cachedir, spkg->name, spkg->version, spkg->arch);
hunk ./scripts/gensync 25
+[ -z "$arch" ] && arch=`arch`
+CARCH="$arch"
+
hunk ./scripts/gensync 60
-		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/gensync 62
-		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/gensync 91
+	echo "%ARCH%" >>desc
+	echo "$arch" >>desc
+	echo "" >>desc
hunk ./scripts/gensync 147
+in_array()
+{
+	needle=$1
+	shift 1
+	# backward compatibility: if array() undefined, it's available for all archs
+	[ -z "$1" ] && return 0
+	for i in $*
+	do
+		[ "$i" == "$needle" ] && return 0
+	done
+	return 1
+}
+
hunk ./scripts/gensync 185
-	unset nobuild
+	unset nobuild archs
hunk ./scripts/gensync 187
-	[ "$nobuild" ] && continue
+	if ! in_array $arch ${archs[@]} || [ "$nobuild" ]; then
+		continue
+	fi
hunk ./scripts/gensync 191
-		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/gensync 193
-		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/makepkg 372
-if [ -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.fpm -a "$FORCE" = "0" -a "$GENMD5" = "0" ]; then
+if [ -f $PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.fpm -a "$FORCE" = "0" -a "$GENMD5" = "0" ]; then
hunk ./scripts/makepkg 375
-		pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.fpm
+		pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.fpm
hunk ./scripts/makepkg 765
-	cmd="tar czvf $PKGDEST/$pkgname-$pkgver-$pkgrel.fpm .PKGINFO .FILELIST .INSTALL *"
+	cmd="tar czvf $PKGDEST/$pkgname-$pkgver-$pkgrel-$CARCH.fpm .PKGINFO .FILELIST .INSTALL *"
hunk ./scripts/makepkg 767
-	cmd="tar czvf $PKGDEST/$pkgname-$pkgver-$pkgrel.fpm .PKGINFO .FILELIST *"
+	cmd="tar czvf $PKGDEST/$pkgname-$pkgver-$pkgrel-$CARCH.fpm .PKGINFO .FILELIST *"
hunk ./scripts/makepkg 815
-	pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}.fpm
+	pacman --upgrade $PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.fpm
hunk ./scripts/updatesync 26
+[ -z "$arch" ] && arch=`arch`
+CARCH="$arch"
+
hunk ./scripts/updatesync 63
-		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/updatesync 65
-		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/updatesync 94
+	echo "%ARCH%" >>desc
+	echo "$arch" >>desc
+	echo "" >>desc
hunk ./scripts/updatesync 216
-		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$pkgdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./scripts/updatesync 218
-		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel.fpm"
+		pkgfile="$destdir/$pkgname-$pkgver-$pkgrel-$arch.fpm"
hunk ./src/pacman/package.c 182
+	}
+	/* trim architecture */
+	if((p = strrchr(tmp, '-'))) {
+		*p = 0;
hunk ./src/pacman/sync.c 610
-				char *pkgname, *pkgver;
+				char *pkgname, *pkgver, *pkgarch;
hunk ./src/pacman/sync.c 614
+				pkgarch = alpm_pkg_getinfo(spkg, PM_PKG_ARCH);
hunk ./src/pacman/sync.c 618
-					snprintf(path, PATH_MAX, "%s-%s" PM_EXT_PKG, pkgname, pkgver);
+					snprintf(path, PATH_MAX, "%s-%s-%s" PM_EXT_PKG, pkgname, pkgver, pkgarch);
hunk ./src/pacman/sync.c 626
-					snprintf(path, PATH_MAX, "%s/%s-%s" PM_EXT_PKG, ldir, pkgname, pkgver);
+					snprintf(path, PATH_MAX, "%s/%s-%s-%s" PM_EXT_PKG, ldir, pkgname, pkgver, pkgarch);
hunk ./src/pacman/sync.c 629
-						snprintf(path, PATH_MAX, "%s-%s" PM_EXT_PKG, pkgname, pkgver);
+						snprintf(path, PATH_MAX, "%s-%s-%s" PM_EXT_PKG, pkgname, pkgver, pkgarch);
hunk ./src/pacman/sync.c 632
-						vprint(" %s-%s" PM_EXT_PKG " is already in the cache\n", pkgname, pkgver);
+						vprint(" %s-%s-%s" PM_EXT_PKG " is already in the cache\n", pkgname, pkgver, pkgarch);
hunk ./src/pacman/sync.c 678
-		snprintf(pkgname, PATH_MAX, "%s-%s" PM_EXT_PKG,
+		snprintf(pkgname, PATH_MAX, "%s-%s.%s" PM_EXT_PKG,
hunk ./src/pacman/sync.c 680
-		                            (char *)alpm_pkg_getinfo(spkg, PM_PKG_VERSION));
+		                            (char *)alpm_pkg_getinfo(spkg, PM_PKG_VERSION),
+		                            (char *)alpm_pkg_getinfo(spkg, PM_PKG_ARCH));
}


More information about the Frugalware-darcs mailing list