Control: tags -1 +patch Hi there Andreas,
Le dimanche, 2 décembre 2018, 22.47:12 h CET Andreas Henriksson a écrit :
> Thanks for looking into trying to make foomatic-dbengine reproducible
> on merged-usr vs non-merged, unfortunately you seem to have missed
> *atleast* one variable that still makes your package non-reproducible.
Indeed I did; so embarassing.
> The new version 4.0.13-2 still has problems with gzip.
> This should be easily fixable by just passing GZIP=/bin/gzip to
> configure the same way as the others, but bear with me because there
> are several other semi-related issues that you might also want to
> fix while at it (even though they have absolutely no relation to
> usrmerge).
Great, thanks for the scrutiny!
> Here's a snippet from the diffoscope output by reproducible-builds:
>
> │ │ │ ├── ./usr/share/perl5/Foomatic/Defaults.pm
> │ │ │ │ @@ -70,12 +70,12 @@
> │ │ │ │ 'rlpr' => '/usr/bin/rlpr',
> │ │ │ │ 'smbclient' => '/usr/bin/smbclient',
> │ │ │ │ 'nprint' => '/usr/bin/nprint',
> │ │ │ │ 'ptal-connect' => '/usr/bin/ptal-connect',
> │ │ │ │ 'ptal-pipes' => '/var/run/ptal-printd',
> │ │ │ │ 'mtink-pipes' => '/var/mtink',
> │ │ │ │ 'cat' => '/bin/cat',
> │ │ │ │ - 'gzip' => '/bin/gzip',
> │ │ │ │ + 'gzip' => '/usr/bin/gzip',
> │ │ │ │ 'wget' =>
> '/usr/bin:/bin:/usr/local/bin:/usr/sbin:/sbin:/usr/local/sbin:/etc/sbin', │
> │ │ │ 'curl' =>
> '/usr/bin:/bin:/usr/local/bin:/usr/sbin:/sbin:/usr/local/sbin:/etc/sbin' │
> │ │ │ };
>
>
> Please notice the values for wget and curl!
>
> Here's a quoted snippet from the configure.ac file in the source:
> > AC_PATH_PROG(CAT,cat,CAT_NOT_FOUND,$BSB)
> > AC_PATH_PROG(GS,gs,GHOSTSCRIPT_NOT_FOUND,$BSB)
> > AC_PATH_PROG(A2PS,a2ps,A2PS_NOT_FOUND,$BSB)
> > AC_PATH_PROG(WGET,wget,$BSB)
>
> The $BSB should be the *fourth* argument. Now the search path is instead
> being used as the default value when wget is not found.
>
> > AC_PATH_PROG(CURL,curl,$BSB)
>
> Same as previous.
>
> > if test -z "$CURL" -a -z "$CURL" ; then
>
> One of these should likely be $WGET.
>
> > AC_MSG_ERROR("cannot find wget and curl. You need to install at
> > least o
> >
> > ne");
> > fi
> > AC_PATH_PROG(PRINTF,printf,$BSB)dnl
>
> Same problem as with WGET and CURL. The $BSB should be forth argument.
>
> The above mentioned things are ofcourse upstream bugs which you
> might want to discuss to get fixed upstream.
Indeed. The following patch should do it.
-- a/configure.ac
+++ b/configure.ac
@@ -116,12 +116,12 @@ fi
AC_PATH_PROG(CAT,cat,CAT_NOT_FOUND,$BSB)
AC_PATH_PROG(GS,gs,GHOSTSCRIPT_NOT_FOUND,$BSB)
AC_PATH_PROG(A2PS,a2ps,A2PS_NOT_FOUND,$BSB)
-AC_PATH_PROG(WGET,wget,$BSB)
-AC_PATH_PROG(CURL,curl,$BSB)
-if test -z "$CURL" -a -z "$CURL" ; then
+AC_PATH_PROG(WGET,wget,WGET_NOT_FOUND,$BSB)
+AC_PATH_PROG(CURL,curl,CURL_NOT_FOUND,$BSB)
+if test -z "$CURL" -a -z "$WGET" ; then
AC_MSG_ERROR("cannot find wget and curl. You need to install at least
one");
fi
-AC_PATH_PROG(PRINTF,printf,$BSB)dnl
+AC_PATH_PROG(PRINTF,printf,PRINTF_NOT_FOUND,$BSB)dnl
# disable ghostscript check
AC_MSG_CHECKING(Ghostscript check)
> Please also note that you most likely want to go over *all* AC_PROG_*
> and AC_PATH_PROG variables, see which ones gets embedded into shipped
> files (or just assume all of them), and pass all of those explicitly.
> If you don't do that then god forbid someone installed something in
> /usr/local which will instead be picked up.
I checked now that all the AC_* statements make sense. BUT… Setting all
binaries through their fullpaths really feels like something that should be
done through either automake globally, in debhelper (dh_auto_configure), or by
having our packaging wrappers (dpkg comes to mind) provide PATHS with the
expected binaries in the right places.
Worst case, diffoscope will come to help. :-)
> Hope this helps.
It does; thank you very much!
Cheers
OdyX
signature.asc
Description: This is a digitally signed message part.

