[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