[pacman-dev] [PATCH 2/2] repo-add: add makedpends information

Allan McRae allan at archlinux.org
Sat May 19 07:08:30 EDT 2012


On 19/05/12 21:01, Allan McRae wrote:
> This is useful for tools that automatically rebuild packages and
> thus require to generate a build order. These entries are skipped
> by pacman.
> 
> Signed-off-by: Allan McRae <allan at archlinux.org>
> ---
>  lib/libalpm/be_sync.c  |    3 +++
>  scripts/repo-add.sh.in |   27 +++++++++++++++------------
>  2 files changed, 18 insertions(+), 12 deletions(-)
> 
> diff --git a/lib/libalpm/be_sync.c b/lib/libalpm/be_sync.c
> index f18ba51..92ce456 100644
> --- a/lib/libalpm/be_sync.c
> +++ b/lib/libalpm/be_sync.c
> @@ -591,6 +591,9 @@ static int sync_db_read(alpm_db_t *db, struct archive *archive,
>  				READ_AND_SPLITDEP(pkg->depends);
>  			} else if(strcmp(line, "%OPTDEPENDS%") == 0) {
>  				READ_AND_SPLITDEP(pkg->optdepends);
> +			} else if(strcmp(line, "%MAKEDEPENDS%") == 0) {
> +				/* currently unused */
> +				READ_NEXT();

Of course more than one makedepend can be specified....

+			} else if(strcmp(line, "%MAKEDEPENDS%") == 0) {
+				/* currently unused */
+				while(1) {
+					READ_NEXT();
+					if(strlen(line) == 0) break;
+				}


Fixed on my working branch.


>  			} else if(strcmp(line, "%CONFLICTS%") == 0) {
>  				READ_AND_SPLITDEP(pkg->conflicts);
>  			} else if(strcmp(line, "%PROVIDES%") == 0) {
> diff --git a/scripts/repo-add.sh.in b/scripts/repo-add.sh.in
> index 006672a..ba9ba05 100644
> --- a/scripts/repo-add.sh.in
> +++ b/scripts/repo-add.sh.in
> @@ -256,7 +256,8 @@ verify_repo_extension() {
>  db_write_entry() {
>  	# blank out all variables
>  	local pkgfile=$1
> -	local -a _groups _licenses _replaces _depends _conflicts _provides _optdepends
> +	local -a _groups _licenses _replaces _depends _conflicts _provides \
> +		_optdepends _makedepends
>  	local pkgname pkgver pkgdesc csize size url arch builddate packager \
>  		md5sum sha256sum pgpsig pgpsigsize
>  
> @@ -269,13 +270,14 @@ db_write_entry() {
>  		# normalize whitespace with an extglob
>  		declare "$var=${val//+([[:space:]])/ }"
>  		case $var in
> -			group)     _groups+=("$group") ;;
> -			license)   _licenses+=("$license") ;;
> -			replaces)  _replaces+=("$replaces") ;;
> -			depend)    _depends+=("$depend") ;;
> -			conflict)  _conflicts+=("$conflict") ;;
> -			provides)  _provides+=("$provides") ;;
> -			optdepend) _optdepends+=("$optdepend") ;;
> +			group)      _groups+=("$group") ;;
> +			license)    _licenses+=("$license") ;;
> +			replaces)   _replaces+=("$replaces") ;;
> +			depend)     _depends+=("$depend") ;;
> +			conflict)   _conflicts+=("$conflict") ;;
> +			provides)   _provides+=("$provides") ;;
> +			optdepend)  _optdepends+=("$optdepend") ;;
> +			makedepend) _makedepends+=("$makedepend") ;;
>  		esac
>  	done< <(bsdtar -xOqf "$pkgfile" .PKGINFO)
>  
> @@ -358,10 +360,11 @@ db_write_entry() {
>  	# create depends entry
>  	msg2 "$(gettext "Creating '%s' db entry...")" 'depends'
>  	{
> -		format_entry "DEPENDS"    "${_depends[@]}"
> -		format_entry "CONFLICTS"  "${_conflicts[@]}"
> -		format_entry "PROVIDES"   "${_provides[@]}"
> -		format_entry "OPTDEPENDS" "${_optdepends[@]}"
> +		format_entry "DEPENDS"     "${_depends[@]}"
> +		format_entry "CONFLICTS"   "${_conflicts[@]}"
> +		format_entry "PROVIDES"    "${_provides[@]}"
> +		format_entry "OPTDEPENDS"  "${_optdepends[@]}"
> +		format_entry "MAKEDEPENDS" "${_makedepends[@]}"
>  	} >'depends'
>  
>  	popd >/dev/null



More information about the pacman-dev mailing list