[pacman-dev] [PATCH] PKGBUILD.5: have epoch directly following pkgver/pkgrel

Allan McRae allan at archlinux.org
Thu Mar 19 04:11:22 UTC 2015


These three fields should be grouped together.

Signed-off-by: Allan McRae <allan at archlinux.org>
---
 doc/PKGBUILD.5.txt     | 10 +++++-----
 scripts/repo-add.sh.in | 41 +++++++++++++++++++++++++++++++++++++----
 2 files changed, 42 insertions(+), 9 deletions(-)

diff --git a/doc/PKGBUILD.5.txt b/doc/PKGBUILD.5.txt
index a1d42fd..bc278f2 100644
--- a/doc/PKGBUILD.5.txt
+++ b/doc/PKGBUILD.5.txt
@@ -64,11 +64,6 @@ below).
 	software release and incremented for intermediate PKGBUILD updates. The
 	variable is not allowed to contain hyphens.
 
-*pkgdesc*::
-	This should be a brief description of the package and its functionality.
-	Try to keep the description to one line of text and to not use the package's
-	name.
-
 *epoch*::
 	Used to force the package to be seen as newer than any previous versions
 	with a lower epoch, even if the version number would normally not trigger
@@ -78,6 +73,11 @@ below).
 	version comparison logic. See linkman:pacman[8] for more information on
 	version comparisons.
 
+*pkgdesc*::
+	This should be a brief description of the package and its functionality.
+	Try to keep the description to one line of text and to not use the package's
+	name.
+
 *url*::
 	This field contains a URL that is associated with the software being
 	packaged. This is typically the project's web site.
diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
index c7923ec..013fce5 100644
--- a/scripts/repo-add.sh.in
+++ b/scripts/repo-add.sh.in
@@ -465,6 +465,27 @@ db_write_entry() {
 	return 0
 } # end db_write_entry
 
+db_write_source() {
+	# blank out all variables
+	local sourcefile=$1
+	local -a _licenses _source _noextract _md5sums _sha1sums _sha256sums \
+	_sha384sums, _sha512sums, _groups _arch _backup _depends _makedepends \
+	_checkdepends _optdepends _conflicts _provides _replaces _options
+	local pkgbase pkgver pkgrel pkgdesc epoch url install changelog \
+		md5sum sha256sum pgpsig pgpsigsize
+
+	# read info from the zipped package
+	local line var val
+	while read -r line; do
+		[[ ${line:0:1} = '#' ]] && continue
+		IFS=' =' read -r var val < <(printf '%s\n' "$line")
+
+
+	done< <(bsdtar -xOqf "$pkgfile" .PKGINFO)
+
+	return 0
+}
+
 # remove existing entries from the DB
 #   arg1 - package name
 db_remove_entry() {
@@ -484,6 +505,10 @@ db_remove_entry() {
 		local filesentry=$(echo "$pkgentry" | sed 's/\(.*\)\/db\//\1\/files\//')
 		rm -rf "$filesentry"
 
+		# remove entries in "files" database
+		local sourceentry=$(echo "$pkgentry" | sed 's/\(.*\)\/db\//\1\/sourceq\//')
+		rm -rf "$sourceentry"
+
 		pkgentry=$(find_pkgentry "$pkgname")
 	done
 	return $notfound
@@ -524,7 +549,7 @@ prepare_repo_db() {
 		exit 1
 	fi
 
-	for repo in "db" "files"; do
+	for repo in "db" "files" "source"; do
 		dbfile=${repodir}/$REPO_DB_PREFIX.$repo.$REPO_DB_SUFFIX
 
 		if [[ -f $dbfile ]]; then
@@ -579,6 +604,14 @@ add() {
 		fi
 	fi
 
+	if [[ $1 == *.db.tar* ]]; then
+		srcfile=$1
+		msg "$(gettext "Adding source package '%s'")" "$srcfile"
+		if db_write_source "$srcfile"; then
+			return 0
+		else
+			return 1
+
 	pkgfile=$1
 	if ! bsdtar -tqf "$pkgfile" .PKGINFO >/dev/null 2>&1; then
 		error "$(gettext "'%s' is not a package file, skipping")" "$pkgfile"
@@ -619,7 +652,7 @@ rotate_db() {
 
 	pushd $dirname >/dev/null
 
-	for repo in "db" "files"; do
+	for repo in "db" "files" "source"; do
 		filename=${REPO_DB_PREFIX}.${repo}.${REPO_DB_SUFFIX}
 		tempname=$dirname/.tmp.$filename
 
@@ -663,7 +696,7 @@ create_db() {
 	# $LOCKFILE is already guaranteed to be absolute so this is safe
 	dirname=${LOCKFILE%/*}
 
-	for repo in "db" "files"; do
+	for repo in "db" "files" "source"; do
 		filename=${REPO_DB_PREFIX}.${repo}.${REPO_DB_SUFFIX}
 		# this ensures we create it on the same filesystem, making moves atomic
 		tempname=$dirname/.tmp.$filename
@@ -734,7 +767,7 @@ tmpdir=$(mktemp -d "${TMPDIR:-/tmp}/repo-tools.XXXXXXXXXX") || (\
 	error "$(gettext "Cannot create temp directory for database building.")"; \
 	exit 1)
 
-for repo in "db" "files"; do
+for repo in "db" "files" "source"; do
 	mkdir "$tmpdir/$repo"
 done
 
-- 
2.3.3


More information about the pacman-dev mailing list