[pacman-dev] [PATCH] Fix compilation without gpgme

Dan McGee dpmcgee at gmail.com
Thu Jan 9 10:55:00 EST 2014


On Thu, Jan 2, 2014 at 4:07 PM, Allan McRae <allan at archlinux.org> wrote:

> On 03/01/14 04:37, Dan McGee wrote:
> > Two issues have snuck in that prevent the compile from working.
> >
> > Signed-off-by: Dan McGee <dan at archlinux.org>
> > ---
> >
> > This and the rest of the patches available on my 'random-fixes' branch.
> >
>
>
>
> >  lib/libalpm/sync.c   | 2 +-
> >  src/pacman/package.c | 8 +++++---
> >  2 files changed, 6 insertions(+), 4 deletions(-)
> >
> > diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
> > index e358585..9531fa2 100644
> > --- a/lib/libalpm/sync.c
> > +++ b/lib/libalpm/sync.c
> > @@ -1225,7 +1225,7 @@ int _alpm_sync_commit(alpm_handle_t *handle,
> alpm_list_t **data)
> >               return -1;
> >       }
> >
> > -#if HAVE_LIBGPGME
> > +#ifdef HAVE_LIBGPGME
>
> I not that #if and #ifdef are both used in many places.
>
I think you want to stick with one of two approaches:

* #if defined(HAVE_LIBGPGME)
* #ifdef HAVE_LIBGPGME

We seem to use both of these; however we don't use the `#if <symbol>`
approach anywhere outside of signing.c. I agree that all of them in
signing.c should be brought into compliance, not sure why I only changed
one.


>
> $ git grep "#if HAVE_"
> lib/libalpm/signing.c:#if HAVE_LIBGPGME
> lib/libalpm/signing.c:#if HAVE_LIBGPGME
> lib/libalpm/signing.c:#if HAVE_LIBGPGME
> lib/libalpm/sync.c:#if HAVE_LIBGPGME
> m4/acinclude.m4:#if HAVE_SYS_UCRED_H
>
> Should all these change?
>
commit 87ffc648b7bce35d shows that we use #ifdef and not #if in sync.c; are
we looking at different codebases?


> >       /* make sure all required signatures are in keyring */
> >       if(check_keyring(handle)) {
> >               return -1;
> > diff --git a/src/pacman/package.c b/src/pacman/package.c
> > index 52219ff..c44696b 100644
> > --- a/src/pacman/package.c
> > +++ b/src/pacman/package.c
> > @@ -193,6 +193,10 @@ void dump_pkg_full(alpm_pkg_t *pkg, int extra)
> >       }
> >
> >       if(from == ALPM_PKG_FROM_SYNCDB && extra) {
> > +             string_display(_("MD5 Sum        :"),
> alpm_pkg_get_md5sum(pkg), cols);
> > +             string_display(_("SHA-256 Sum    :"),
> alpm_pkg_get_sha256sum(pkg), cols);
> > +
> > +#ifdef HAVE_LIBGPGME
>
>
> I went for the approach of exposing alpm_decode_signature even if GPGME
> is unavailable, because it does not require any GPGME functions and it
> could still be useful for a frontend:
> https://patchwork.archlinux.org/patch/1790/
>
> I like your approach, that makes more sense and means frontend code
doesn't have to know how the backend library was built.


> >               const char *base64_sig = alpm_pkg_get_base64_sig(pkg);
> >               alpm_list_t *keys = NULL;
> >               if(base64_sig) {
> > @@ -204,10 +208,8 @@ void dump_pkg_full(alpm_pkg_t *pkg, int extra)
> >               } else {
> >                       keys = alpm_list_add(keys, _("None"));
> >               }
> > -
> > -             string_display(_("MD5 Sum        :"),
> alpm_pkg_get_md5sum(pkg), cols);
> > -             string_display(_("SHA-256 Sum    :"),
> alpm_pkg_get_sha256sum(pkg), cols);
> >               list_display(_("Signatures     :"), keys, cols);
> > +#endif
> >       } else {
> >               list_display(_("Validated By   :"), validation, cols);
> >       }
> >
>
>
> Given the overlap in our changes and thoughts here, do you want me to
bother resubmitting this? I can go back and review your patches if that
makes more sense, let me know.

-Dan


More information about the pacman-dev mailing list