On Sat, Nov 04, 2017 at 07:49:20PM +0000, Stuart Henderson wrote:
> On 2017/11/04 20:38, Andreas Kusalananda Kähäri wrote:
> > On Sat, Nov 04, 2017 at 08:15:48PM +0100, Andreas Kusalananda Kähäri wrote:
> > > On Sat, Nov 04, 2017 at 07:23:01PM +0100, Marc Espie wrote:
> > > > On Sat, Nov 04, 2017 at 05:46:26PM +0100, Andreas Kusalananda Kähäri
> > > > wrote:
> > > > > Hi,
> > > > >
> > > > > I tried using dpb(1) with ccache today by adding USE_CCACHE=Yes and
> > > > > pointing CCACHE_DIR to a sensible location owned by _pbuild:
> > > > >
> > > > > USE_CCACHE= Yes
> > > > > CCACHE_DIR= /extra/ccache
> > > > >
> > > > > However, it seems as if this causes dpb to just quickly run though all
> > > > > the ports in my list without buiding anything, or even checking the
> > > > > port
> > > > > signatures.
> > > > >
> > > > > I'm running dpb like this:
> > > > >
> > > > > doas /usr/ports/infrastructure/bin/dpb -p4 -suUR -J0 -P
> > > > > "$HOME/packages.txt"
> > > > >
> > > > > Is it possible to enable ccache at all for dpb? I'm using dpb since
> > > > > it
> > > > > makes it easy to keep ports up to date on -current, and I'd really
> > > > > want
> > > > > to have the ability to run with ccache to speed up the rebuilding of
> > > > > some
> > > > > of the larger ports.
> > > >
> > > > I'm not going to go debug that from scratch.
> > > >
> > > > It's likely dpb produced at least some output, like some logs.
> > > > So there might be an indication of why it doesn't work.
> > > >
> > >
> > > Sorry, the summary log, which I don't fully uderstand, seems to say
> > > nothing is being built because of circular dependencies between ccache
> > > and xz(?):
> > >
> > > x11/dbus not built textproc/xmlto -> misc/gnugetopt ->
> > > devel/gettext-tools -> archivers/xz -> devel/ccache ->
> > > devel/autoconf/2.69 -> devel/help2man -> archivers/xz
> >
> > There's a dependency cycle in the build dependencies for ccache whek
> > USE_CCACHE is set to "Yes":
> >
> > $ make print-build-depends
> > This port requires package(s) "tsort: cycle in data
> > tsort: devel/autoconf/2.69
> > tsort: devel/ccache
> > tsort: cycle in data
> > tsort: devel/ccache
> > tsort: devel/metaauto
> > autoconf-2.69p2 ccache-3.3.4p0 metaauto-1.0p1 xz-5.2.3p0" to build.
> >
> >
> > My guess is that all of those port ought to have NO_CCACHE=Yes.
>
> This was just a mistake when bulk-fixing autoconf scripts wih nested
> functions shortly before 6.2.
>
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/devel/ccache/Makefile,v
> retrieving revision 1.39
> diff -u -p -r1.39 Makefile
> --- Makefile 25 Sep 2017 19:55:19 -0000 1.39
> +++ Makefile 4 Nov 2017 19:47:47 -0000
> @@ -17,9 +17,9 @@ WANTLIB += c m z
>
> MASTER_SITES = http://samba.org/ftp/ccache/
>
> -CONFIGURE_STYLE = autoconf
> -AUTOCONF_VERSION = 2.69
> +CONFIGURE_STYLE = gnu
>
> +# This port should not have dependencies.
> NO_CCACHE = Yes
>
> .include <bsd.port.mk>
> Index: patches/patch-configure
> ===================================================================
> RCS file: patches/patch-configure
> diff -N patches/patch-configure
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-configure 4 Nov 2017 19:47:47 -0000
> @@ -0,0 +1,18 @@
> +$OpenBSD$
> +
> +Index: configure
> +--- configure.orig
> ++++ configure
> +@@ -4544,10 +4544,11 @@ else
> + cat confdefs.h - <<_ACEOF >conftest.$ac_ext
> + /* end confdefs.h. */
> + #include <stdlib.h>
> ++ void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }
> + int
> + main ()
> + {
> +-void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }
> ++
> + ;
> + return 0;
> + }
> Index: patches/patch-configure_ac
> ===================================================================
> RCS file: patches/patch-configure_ac
> diff -N patches/patch-configure_ac
> --- patches/patch-configure_ac 25 Sep 2017 19:55:19 -0000 1.1
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,17 +0,0 @@
> -$OpenBSD: patch-configure_ac,v 1.1 2017/09/25 19:55:19 sthen Exp $
> -
> -Index: configure.ac
> ---- configure.ac.orig
> -+++ configure.ac
> -@@ -65,8 +65,9 @@ AC_CHECK_FUNCS(utimes)
> -
> - AC_CACHE_CHECK([for compar_fn_t in stdlib.h],ccache_cv_COMPAR_FN_T, [
> - AC_TRY_COMPILE(
> -- [#include <stdlib.h>],
> -- [void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }],
> -+ [#include <stdlib.h>
> -+ void test_fn(void) { qsort(NULL, 0, 0, (__compar_fn_t)NULL); }],
> -+ [],
> - ccache_cv_COMPAR_FN_T=yes,
> - ccache_cv_COMPAR_FN_T=no)])
> - if test x"$ccache_cv_COMPAR_FN_T" = x"yes"; then
Obvious okay espie@