Hi,

it appears that sometimes, the textproc/groff build can fail during
the fake stage because make(1) thinks that some directories it has
to enter to install to the fake area are already "up to date", which
of course makes no sense during fake.  Jerome Ibanes <jibanes at
gmail dot com> has seen this on 6.0-release:

  ===>  Faking installation for groff-1.22.3p2
  [...]
  test -z "R I B BI DESC"  || for f in ""R I B BI DESC; do  rm -f 
/usr/ports/pobj/groff-1.22.3/fake-sparc64/usr/local/share/groff/1.22.3/font/devutf8/$f;
 if test - f $f; then  /usr/ports/pobj/groff-1.22.3/bin/install -c -m 644 $f 
/usr/ports/pobj/groff-1.22.3/fake-sparc64/usr/local/share/groff/1.22.3/font/devutf8/$f;
 else /usr/ports/pobj/groff-1.22.3/bin/install -c  -m 644 ./$f 
/usr/ports/pobj/groff-1.22.3/fake-sparc64/usr/local/share/groff/1.22.3/font/devutf8/$f;
 fi; done
  [...]
  `src/utils/afmtodit' is up to date.
  `font/devpdf' is up to date.
  [...]
  ===>  Building package for groff-1.22.3p2
  Create /usr/ports/packages/sparc64/all/groff-1.22.3p2.tgz
  [...]
  Error: /usr/ports/pobj/groff-1.22.3/fake-sparc64/usr/local/bin/afmtodit
         does not exist
  Error: /usr/ports/pobj/groff-1.22.3/fake-sparc64/usr/local/bin/chem
         does not exist
  [...]

Even though i did not manage to reproduce, from code inspection,
it is obvious that this may in principle happen:  $(ALLDIRS) are
marked .PHONY, but $(OTHERDIRS) are not.  So i'd like to commit the
following patch.  Jerome confirmed that it resolves the issue for
him.

Where this patch is needed, the package did not build at all, and
where it isn't, it doesn't change package content, so no bump is
needed.  The patch was regenerated with update-patches, so it
contains some trivial changes, too.

OK to commit?

Reporting upstream is not needed because in the -current version,
which will be the basis of the next upstream release, upstream
completely changed the build system, switching to automake.

Yours,
  Ingo


Index: patches/patch-Makefile_in
===================================================================
RCS file: /cvs/ports/textproc/groff/patches/patch-Makefile_in,v
retrieving revision 1.6
diff -u -p -r1.6 patch-Makefile_in
--- patches/patch-Makefile_in   7 Nov 2014 17:10:36 -0000       1.6
+++ patches/patch-Makefile_in   9 Sep 2016 09:31:25 -0000
@@ -1,8 +1,10 @@
 $OpenBSD: patch-Makefile_in,v 1.6 2014/11/07 17:10:36 schwarze Exp $
 chunk 1: Install preformatted manuals, not source pages (local change).
-chunk 2: src/devices/gropdf depends on arch/misc (to be submitted upstream).
+chunk 2: src/devices/gropdf depends on arch/misc.
+chunk 3: avoid bogus "is up to date" during fake.
+Regarding chunks 2 & 3, current upstream code is completely different now.
 --- Makefile.in.orig   Tue Nov  4 09:38:35 2014
-+++ Makefile.in        Fri Nov  7 17:30:00 2014
++++ Makefile.in        Thu Sep  8 22:27:19 2016
 @@ -253,15 +253,15 @@ manroot=$(mandir)
  
  # `man1ext' is the man section for user commands.
@@ -22,12 +24,21 @@ chunk 2: src/devices/gropdf depends on a
  
  # `dist' target is disallowed in some `configure' combinations.
  doc_dist_target_ok=@doc_dist_target_ok@
-@@ -895,6 +895,8 @@ $(GNULIBDIRS): FORCE
-           || eval $$srcdir/configure "$$args" --srcdir=$$srcdir; \
+@@ -896,6 +896,8 @@ $(GNULIBDIRS): FORCE
          $(MAKE) ACLOCAL=: AUTOCONF=: AUTOHEADER=: AUTOMAKE=: $(do) ;; \
        esac
-+
-+$(SHPROGDIRS): $(PROGDEPDIRS)
  
++$(SHPROGDIRS): $(PROGDEPDIRS)
++
  $(OTHERDIRS): $(PROGDEPDIRS) $(CCPROGDIRS) $(CPROGDIRS) $(SHPROGDIRS)
  
+ $(INCDIRS) $(PROGDEPDIRS) $(SHPROGDIRS) $(OTHERDIRS): FORCE
+@@ -964,7 +966,7 @@ dist:
+ # refer lookbib indxbib lkbib: libbib
+ # $(LIBDIRS) $(PROGDIRS): include
+ 
+-.PHONY: $(ALLDIRS) dot $(TARGETS) FORCE
++.PHONY: $(ALLDIRS) $(OTHERDIRS) dot $(TARGETS) FORCE
+ 
+ # Create a Makefile in $(subdir).  This is useful for development since it
+ # avoids running make recursively.

Reply via email to