tags 507231 patch thanks Hi,
Upstream has a few bugs in their make dependencies (see fix_upstream_deps.diff) Also, the debian makefiles have the same problem spread all over; the following check: test -d somedir || mkdir somedir is not reentrant. Directory names are shared a lot between rules, so they will collide sometimes. This is fixed by adding -p (see debian_reentrancy.diff). Manoj, since this looks like a makefile framework that could be being used in other packages, it'd be nice if you'd also apply the same fix to those. Thanks! -- Robert Millan The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and how) you may access your data; but nobody's threatening your freedom: we still allow you to remove your data and not access it at all."
diff -ur -x Makefile.in flex-2.5.35/tests/test-bison-nr/Makefile.am flex-2.5.35.new/tests/test-bison-nr/Makefile.am --- flex-2.5.35/tests/test-bison-nr/Makefile.am 2006-11-09 21:14:46.000000000 +0100 +++ flex-2.5.35.new/tests/test-bison-nr/Makefile.am 2008-11-29 21:23:48.000000000 +0100 @@ -34,7 +34,7 @@ testname = test-bison-nr -scanner.c: $(srcdir)/scanner.l +scanner.c scanner.h: $(srcdir)/scanner.l $(FLEX) $< parser.c: $(srcdir)/parser.y @@ -50,4 +50,5 @@ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $< parser.h: parser.c -scanner.c main.o: parser.h +scanner.o: parser.h +main.o: parser.h scanner.h diff -ur -x Makefile.in flex-2.5.35/tests/test-bison-yylloc/Makefile.am flex-2.5.35.new/tests/test-bison-yylloc/Makefile.am --- flex-2.5.35/tests/test-bison-yylloc/Makefile.am 2006-11-09 21:14:46.000000000 +0100 +++ flex-2.5.35.new/tests/test-bison-yylloc/Makefile.am 2008-11-29 21:23:57.000000000 +0100 @@ -34,7 +34,7 @@ testname = test-bison-yylloc -scanner.c: $(srcdir)/scanner.l +scanner.c scanner.h: $(srcdir)/scanner.l $(FLEX) $< parser.c: $(srcdir)/parser.y @@ -50,4 +50,5 @@ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $< parser.h: parser.c -scanner.c main.o: parser.h +scanner.o: parser.h +main.o: parser.h scanner.h diff -ur -x Makefile.in flex-2.5.35/tests/test-bison-yylval/Makefile.am flex-2.5.35.new/tests/test-bison-yylval/Makefile.am --- flex-2.5.35/tests/test-bison-yylval/Makefile.am 2006-11-09 21:14:46.000000000 +0100 +++ flex-2.5.35.new/tests/test-bison-yylval/Makefile.am 2008-11-29 21:06:39.000000000 +0100 @@ -34,7 +34,7 @@ testname = test-bison-yylval -scanner.c: $(srcdir)/scanner.l +scanner.c scanner.h: $(srcdir)/scanner.l $(FLEX) $< parser.c: $(srcdir)/parser.y @@ -50,4 +50,4 @@ $(CC) -c -o $@ $(AM_CPPFLAGS) $(CPPFLAGS) $(CFLAGS) $< parser.h: parser.c -main.o: parser.h +main.o: parser.h scanner.h
diff -ur -x Makefile.in flex-2.5.35/debian/common/targets.mk flex-2.5.35.new/debian/common/targets.mk --- flex-2.5.35/debian/common/targets.mk 2008-11-29 21:26:12.000000000 +0100 +++ flex-2.5.35.new/debian/common/targets.mk 2008-11-29 21:14:05.000000000 +0100 @@ -84,20 +84,20 @@ # Just a dummy target to make sure that the stamp directory exists debian/stamp/dummy-config-common: $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Configuration tasks common to arch and arch indep packages go here debian/stamp/pre-config-common: debian/stamp/dummy-config-common $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Do not add dependencies to this rule debian/stamp/do-pre-config-common: debian/stamp/dummy-config-common $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/pre-config-common @echo done > $@ @@ -105,13 +105,13 @@ debian/stamp/pre-config-arch: debian/stamp/do-pre-config-common $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Do not add dependencies to this rule debian/stamp/do-pre-config-arch: debian/stamp/do-pre-config-common $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/pre-config-arch @echo done > $@ @@ -119,13 +119,13 @@ debian/stamp/pre-config-indep: debian/stamp/do-pre-config-common $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Do not add dependencies to this rule debian/stamp/do-pre-config-indep: debian/stamp/do-pre-config-common $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/pre-config-indep @echo done > $@ @@ -138,29 +138,29 @@ $(patsubst %,debian/stamp/CONFIG/%,$(DEB_INDEP_PACKAGES)) : debian/stamp/CONFIG/% : debian/stamp/do-pre-config-indep $(REASON) $(checkdir) - @test -d debian/stamp/CONFIG || mkdir debian/stamp/CONFIG + @test -d debian/stamp/CONFIG || mkdir -p debian/stamp/CONFIG @echo done > $@ # Do not add dependencies to this rule debian/stamp/dep-configure-arch: debian/stamp/do-pre-config-arch $(patsubst %,debian/stamp/CONFIG/%,$(DEB_ARCH_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Do not add dependencies to this rule debian/stamp/dep-configure-indep: debian/stamp/do-pre-config-indep $(patsubst %,debian/stamp/CONFIG/%,$(DEB_INDEP_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-configure-arch: debian/stamp/do-pre-config-arch $(REASON) - @test -d debian/stamp/CONFIG || mkdir debian/stamp/CONFIG + @test -d debian/stamp/CONFIG || mkdir -p debian/stamp/CONFIG $(MAKE) -f debian/rules debian/stamp/dep-configure-arch @echo done > $@ debian/stamp/do-configure-indep: debian/stamp/do-pre-config-indep $(REASON) - @test -d debian/stamp/CONFIG || mkdir debian/stamp/CONFIG + @test -d debian/stamp/CONFIG || mkdir -p debian/stamp/CONFIG $(MAKE) -f debian/rules debian/stamp/dep-configure-indep @echo done > $@ @@ -181,19 +181,19 @@ debian/stamp/pre-build-common: $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Arch specific and arch independent tasks go here debian/stamp/pre-build-arch: debian/stamp/do-configure-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-pre-build-arch: debian/stamp/do-configure-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @test -e debian/stamp/pre-build-common || $(MAKE) -f debian/rules debian/stamp/pre-build-common $(MAKE) -f debian/rules debian/stamp/pre-build-arch @echo done > $@ @@ -201,12 +201,12 @@ debian/stamp/pre-build-indep: debian/stamp/do-configure-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-pre-build-indep: debian/stamp/do-configure-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @test -e debian/stamp/pre-build-common || $(MAKE) -f debian/rules debian/stamp/pre-build-common $(MAKE) -f debian/rules debian/stamp/pre-build-indep @echo done > $@ @@ -230,12 +230,12 @@ # package target dependencies are run. debian/stamp/dep-build-arch: debian/stamp/do-pre-build-arch $(patsubst %,debian/stamp/BUILD/%,$(DEB_ARCH_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/dep-build-indep: debian/stamp/do-pre-build-indep $(patsubst %,debian/stamp/BUILD/%,$(DEB_INDEP_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-build-arch: debian/stamp/do-pre-build-arch @@ -262,21 +262,21 @@ # Work here debian/stamp/post-build-arch: debian/stamp/do-build-arch $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-post-build-arch: debian/stamp/do-build-arch $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/post-build-arch @echo done > $@ debian/stamp/post-build-indep: debian/stamp/do-build-indep $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-post-build-indep: debian/stamp/do-build-indep $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/post-build-indep @echo done > $@ @@ -289,19 +289,19 @@ debian/stamp/pre-inst-common: $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Arch specific and arch independent tasks go here debian/stamp/pre-inst-arch: debian/stamp/do-post-build-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-pre-inst-arch: debian/stamp/do-post-build-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @test -e debian/stamp/INST-common || $(MAKE) -f debian/rules debian/stamp/pre-inst-common $(MAKE) -f debian/rules debian/stamp/pre-inst-arch @echo done > $@ @@ -309,12 +309,12 @@ debian/stamp/pre-inst-indep: debian/stamp/do-post-build-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-pre-inst-indep: debian/stamp/do-post-build-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @test -e debian/stamp/INST-common || $(MAKE) -f debian/rules debian/stamp/pre-inst-common $(MAKE) -f debian/rules debian/stamp/pre-inst-indep @echo done > $@ @@ -324,12 +324,12 @@ $(patsubst %,debian/stamp/INST/%,$(DEB_ARCH_PACKAGES)) : debian/stamp/INST/% : debian/stamp/do-pre-inst-arch $(REASON) $(checkdir) - @test -d debian/stamp/INST || mkdir debian/stamp/INST + @test -d debian/stamp/INST || mkdir -p debian/stamp/INST @echo done > $@ $(patsubst %,debian/stamp/INST/%,$(DEB_INDEP_PACKAGES)) : debian/stamp/INST/% : debian/stamp/do-pre-inst-indep $(REASON) $(checkdir) - @test -d debian/stamp/INST || mkdir debian/stamp/INST + @test -d debian/stamp/INST || mkdir -p debian/stamp/INST @echo done > $@ # These do targeta make sure all the per package configuration is @@ -338,25 +338,25 @@ # package target dependencies are run. debian/stamp/dep-install-arch: debian/stamp/do-pre-inst-arch $(patsubst %,debian/stamp/INST/%,$(DEB_ARCH_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/dep-install-indep: debian/stamp/do-pre-inst-indep $(patsubst %,debian/stamp/INST/%,$(DEB_INDEP_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-install-arch: debian/stamp/do-pre-inst-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/dep-install-arch @echo done > $@ debian/stamp/do-install-indep: debian/stamp/do-pre-inst-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/dep-install-indep @echo done > $@ @@ -380,19 +380,19 @@ debian/stamp/pre-bin-common: $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ # Arch specific and arch independent tasks go here debian/stamp/pre-bin-arch: debian/stamp/do-install-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-pre-bin-arch: debian/stamp/do-install-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @test -e debian/stamp/BIN-common || $(MAKE) -f debian/rules debian/stamp/pre-bin-common $(MAKE) -f debian/rules debian/stamp/pre-bin-arch @echo done > $@ @@ -400,12 +400,12 @@ debian/stamp/pre-bin-indep: debian/stamp/do-install-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-pre-bin-indep: debian/stamp/do-install-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @test -e debian/stamp/BIN-common || $(MAKE) -f debian/rules debian/stamp/pre-bin-common $(MAKE) -f debian/rules debian/stamp/pre-bin-indep @echo done > $@ @@ -414,13 +414,13 @@ $(patsubst %,debian/stamp/BIN/%,$(DEB_ARCH_PACKAGES)) : debian/stamp/BIN/% : debian/stamp/do-pre-bin-arch $(REASON) $(checkdir) - @test -d debian/stamp/BIN || mkdir debian/stamp/BIN + @test -d debian/stamp/BIN || mkdir -p debian/stamp/BIN @echo done > $@ $(patsubst %,debian/stamp/BIN/%,$(DEB_INDEP_PACKAGES)) : debian/stamp/BIN/% : debian/stamp/do-pre-bin-indep $(REASON) $(checkdir) - @test -d debian/stamp/BIN || mkdir debian/stamp/BIN + @test -d debian/stamp/BIN || mkdir -p debian/stamp/BIN @echo done > $@ # These do targeta make sure all the per package work is done, but is @@ -429,24 +429,24 @@ # target dependencies are run. debian/stamp/dep-binary-arch: debian/stamp/pre-bin-arch $(patsubst %,debian/stamp/BIN/%,$(DEB_ARCH_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/dep-binary-indep: debian/stamp/pre-bin-indep $(patsubst %,debian/stamp/BIN/%,$(DEB_INDEP_PACKAGES)) $(REASON) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp @echo done > $@ debian/stamp/do-binary-arch: debian/stamp/do-pre-bin-arch $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/dep-binary-arch @echo done > $@ debian/stamp/do-binary-indep: debian/stamp/do-pre-bin-indep $(REASON) $(checkdir) - @test -d debian/stamp || mkdir debian/stamp + @test -d debian/stamp || mkdir -p debian/stamp $(MAKE) -f debian/rules debian/stamp/dep-binary-indep @echo done > $@ # required diff -ur -x Makefile.in flex-2.5.35/debian/local.mk flex-2.5.35.new/debian/local.mk --- flex-2.5.35/debian/local.mk 2008-11-29 21:26:12.000000000 +0100 +++ flex-2.5.35.new/debian/local.mk 2008-11-29 21:21:04.000000000 +0100 @@ -42,7 +42,7 @@ debian/stamp/conf/flex: $(checkdir) $(REASON) - @test -d debian/stamp/conf || mkdir debian/stamp/conf + @test -d debian/stamp/conf || mkdir -p debian/stamp/conf if ! which flex >/dev/null 2>&1; then \ if [ -e debian/scan.l.md5sum ] && \ [ "`md5sum scan.l`" = "`cat debian/scan.l.md5sum`" ]; then \ @@ -60,7 +60,7 @@ $(checkdir) $(REASON) $(CHECKPO) - @test -d debian/stamp/build || mkdir debian/stamp/build + @test -d debian/stamp/build || mkdir -p debian/stamp/build bash -n debian/doc.postinst bash -n debian/doc.prerm bash -n debian/postinst @@ -75,7 +75,7 @@ debian/stamp/build/flex-doc: $(checkdir) $(REASON) - @test -d debian/stamp/build || mkdir debian/stamp/build + @test -d debian/stamp/build || mkdir -p debian/stamp/build $(MAKE) -C doc flex.info flex.html @echo done > $@ @@ -96,7 +96,7 @@ $(install_file) doc/flex.html/* $(DOCDIR)/html/ ln -s NEWS.gz $(DOCDIR)/changelog.gz $(install_file) debian/docentry $(DOCBASEDIR)/$(package) - @test -d debian/stamp/install || mkdir debian/stamp/install + @test -d debian/stamp/install || mkdir -p debian/stamp/install @echo done > $@ debian/stamp/install/flex: @@ -155,7 +155,7 @@ ln -s flex.1.gz $(MAN1DIR)/flex++.1.gz ln -s flex $(BINDIR)/lex ln -s libfl.a $(LIBDIR)/libl.a - @test -d debian/stamp/install || mkdir debian/stamp/install + @test -d debian/stamp/install || mkdir -p debian/stamp/install @echo done > $@ debian/stamp/binary/flex-doc: @@ -171,7 +171,7 @@ chown -R root:root $(TMPTOP) chmod -R u+w,go=rX $(TMPTOP) dpkg --build $(TMPTOP) .. - @test -d debian/stamp/binary || mkdir debian/stamp/binary + @test -d debian/stamp/binary || mkdir -p debian/stamp/binary @echo done > $@ debian/stamp/binary/flex: @@ -191,5 +191,5 @@ chown -R root:root $(TMPTOP) chmod -R u+w,go=rX $(TMPTOP) dpkg --build $(TMPTOP) .. - @test -d debian/stamp/binary || mkdir debian/stamp/binary + @test -d debian/stamp/binary || mkdir -p debian/stamp/binary @echo done > $@