Control: severity -1 serious
Control: tags -1 + patch

This bug is constistently reproducible.  I'm not sure what has changed
between the time bc successfully built, and now, to regress the behavior
(there have been no changes to the make-dfsg package in this timeframe);
however, I also can't see how the existing package was ever expected to
build, when this definitely looks like a circular dependency that's being
hidden from make.  

The attached patch fixes the issue and I have uploaded it to Ubuntu to fix
the build failure there.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
[email protected]                                     [email protected]
diff -Nru bc-1.07.1/debian/patches/no-make-circular-dependencies.patch bc-1.07.1/debian/patches/no-make-circular-dependencies.patch
--- bc-1.07.1/debian/patches/no-make-circular-dependencies.patch	1969-12-31 16:00:00.000000000 -0800
+++ bc-1.07.1/debian/patches/no-make-circular-dependencies.patch	2018-03-21 19:47:50.000000000 -0700
@@ -0,0 +1,43 @@
+Description: fix circular dependency in makefile
+ The upstream makefile is unhelpfully relying on make to allow it to break
+ target dependency loops in a particular manner.  Instead, be explicit about
+ the relationship between the targets.
+Author: Steve Langasek <[email protected]>
+Last-Modified: 2018-03-21
+Bug-Debian: https://bugs.debian.org/889176
+
+Index: bc-1.07.1/bc/Makefile.am
+===================================================================
+--- bc-1.07.1.orig/bc/Makefile.am
++++ bc-1.07.1/bc/Makefile.am
+@@ -8,7 +8,7 @@
+              sbc.y
+ noinst_HEADERS = libmath.h
+ 
+-DISTCLEANFILES = sbc sbc.c sbc.h libmath.h
++DISTCLEANFILES = sbc sbc.c sbc.h libmath.h global_foo.c
+ 
+ MAINTAINERCLEANFILES = Makefile.in bc.c bc.h scan.c \
+ 	bc.y bcdefs.h const.h execute.c fix-libmath_h \
+@@ -28,16 +28,18 @@
+ 
+ scan.o: bc.h
+ global.o: libmath.h
++global_foo.c: global.c
++	cp -a global.c global_foo.c
+ 
+ fbcOBJ = main.o bc.o scan.o execute.o load.o storage.o util.o warranty.o
+ 
+ libmath.h: libmath.b $(fbcOBJ) $(LIBBC)
+ 	echo '{0}' > libmath.h
+-	$(MAKE) global.o
+-	$(LINK) -o fbc $(fbcOBJ) global.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS)
++	$(MAKE) global_foo.o
++	$(LINK) -o fbc $(fbcOBJ) global_foo.o $(LIBBC) $(LIBL) $(READLINELIB) $(LIBS)
+ 	./fbc -c $(srcdir)/libmath.b </dev/null >libmath.h
+ 	$(srcdir)/fix-libmath_h
+-	rm -f ./fbc ./global.o
++	rm -f ./fbc ./global_foo.o
+ 
+ sbcOBJ = main.o sbc.o scan.o execute.o global.o load.o storage.o util.o \
+          warranty.o
diff -Nru bc-1.07.1/debian/patches/series bc-1.07.1/debian/patches/series
--- bc-1.07.1/debian/patches/series	2017-07-24 12:05:43.000000000 -0700
+++ bc-1.07.1/debian/patches/series	2018-03-21 19:44:36.000000000 -0700
@@ -4,3 +4,4 @@
 05_notice_read_write_errors.diff
 06_read_dcrc.diff
 07_bc_man.diff
+no-make-circular-dependencies.patch

Attachment: signature.asc
Description: PGP signature

Reply via email to