Bug#917778: supercat: make supercat reproducible adding debhelper

Juan Picca jumapico at gmail.com
Sun Dec 30 06:52:05 GMT 2018


Package: supercat
Version: 0.5.5-4.3
Severity: normal
Tags: patch
Usertags: fileordering locale umask

Dear Maintainer,

While working on the "reproducible builds" effort [1], we have noticed
that supercat could not be built reproducibly.

The attached patch (make-reproducible-adding-debhelper.patch) adds
debhelper to build the package, removing reproducibility issues.

Also, a second patch (fix-lintian-issues.patch) is added to fix some
lintian issues.

Regards,
JMPC

[1]: https://wiki.debian.org/ReproducibleBuilds
-------------- next part --------------
diff -urN supercat-0.5.5.old/debian/compat supercat-0.5.5/debian/compat
--- supercat-0.5.5.old/debian/compat	2016-08-02 03:45:06.000000000 +0000
+++ supercat-0.5.5/debian/compat	2018-12-28 13:59:14.374775078 +0000
@@ -1 +1 @@
-5
+11
diff -urN supercat-0.5.5.old/debian/control supercat-0.5.5/debian/control
--- supercat-0.5.5.old/debian/control	2016-08-02 16:45:18.000000000 +0000
+++ supercat-0.5.5/debian/control	2018-12-28 13:59:41.158359483 +0000
@@ -2,7 +2,7 @@
 Section: utils
 Priority: optional
 Maintainer: Kumar Appaiah <akumar at debian.org>
-Build-Depends: autotools-dev, quilt, autoconf, automake
+Build-Depends: debhelper (>= 11)
 Standards-Version: 3.8.3
 Homepage: http://supercat.nosredna.net/
 Vcs-Browser: http://git.debian.org/?p=users/akumar/supercat.git
diff -urN supercat-0.5.5.old/debian/rules supercat-0.5.5/debian/rules
--- supercat-0.5.5.old/debian/rules	2016-08-02 08:57:31.000000000 +0000
+++ supercat-0.5.5/debian/rules	2018-12-28 12:02:39.513188272 +0000
@@ -1,117 +1,4 @@
 #!/usr/bin/make -f
-# -*- makefile -*-
-
-export SOURCE_DATE_EPOCH = $(shell date -d "$$(dpkg-parsechangelog --count 1 -SDate)" +%s)
-
-# Package name
-PACKAGE_NAME = supercat
-
-# Install program
-INSTALL = install
-
-INSTALL_FILE    = $(INSTALL) -p    -o root -g root  -m  644
-INSTALL_PROGRAM = $(INSTALL) -p    -o root -g root  -m  755
-INSTALL_SCRIPT  = $(INSTALL) -p    -o root -g root  -m  755
-INSTALL_DIR     = $(INSTALL) -p -d -o root -g root  -m  755
-
-
-# The installation directory
-PACKAGE_DIR = debian/$(PACKAGE_NAME)
-
-CFLAGS=$(shell dpkg-buildflags --get CFLAGS)
-LDFLAGS=$(shell dpkg-buildflags --get LDFLAGS)
-
-ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
-CROSS= --build $(DEB_BUILD_GNU_TYPE) --host $(DEB_HOST_GNU_TYPE)
-else
-CROSS= --build $(DEB_BUILD_GNU_TYPE)
-endif
-
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-INSTALL_PROGRAM += -s
-endif
-
-configure:
-	cp -f configure.ac configure.ac.bak
-	autoupdate configure.ac
-	autoreconf --force --install --symlink --warnings=all
-	./configure $(CROSS) --prefix=/usr --mandir=\$${prefix}/share/man --infodir=\$${prefix}/share/info CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
-
-config.status: configure
-	$(checkdir)
-ifneq "$(wildcard /usr/share/misc/config.sub)" ""
-	cp -f /usr/share/misc/config.sub config.sub
-endif
-ifneq "$(wildcard /usr/share/misc/config.guess)" ""
-	cp -f /usr/share/misc/config.guess config.guess
-endif
-
-
-build: build-stamp
-
-build-stamp: config.status
-	$(checkdir)
-	$(MAKE)
-	touch $@
-
-clean: checkroot
-	$(checkdir)
-	rm -f build-stamp
-	[ ! -f Makefile ] || $(MAKE) distclean
-	rm -f config.sub config.guess config.log
-	rm -rf $(PACKAGE_DIR) debian/files debian/substvars
-	test -e configure.ac.bak && mv -f configure.ac.bak configure.ac || true
-	rm -f Makefile.in */Makefile.in aclocal.m4 config.h.in configure
-	rm -f compile install-sh missing depcomp
-	rm -rf autom4te.cache/
-
-install: checkroot build
-	$(checkdir)
-	$(MAKE) DESTDIR=$(CURDIR)/$(PACKAGE_DIR) install
-
-# Build architecture-independent files here.
-binary-indep: checkroot build install
-# We have nothing to do by default.
-
-# Build architecture-dependent files here.
-binary-arch: checkroot build install
-	$(checkdir)
-	$(INSTALL_DIR) $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/
-	for i in doc/spc.txt debian/README.Debian;do \
-		$(INSTALL_FILE) -m 644 $$i $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/; \
-	done;
-	$(INSTALL_FILE) -m 644 ChangeLog $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/changelog
-	$(INSTALL_FILE) -m 644 debian/changelog $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/changelog.Debian
-	for i in $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/changelog*;do \
-		gzip -9nv $$i; \
-	done;
-	$(INSTALL_FILE) -m 644 debian/copyright $(PACKAGE_DIR)/usr/share/doc/$(PACKAGE_NAME)/copyright
-	$(INSTALL_DIR) $(PACKAGE_DIR)/etc/$(PACKAGE_NAME)
-	$(INSTALL_DIR) $(PACKAGE_DIR)/usr/share/man/man1
-	$(INSTALL_FILE) -m 644 doc/spc.1 $(PACKAGE_DIR)/usr/share/man/man1
-	gzip -9nv $(PACKAGE_DIR)/usr/share/man/*/*
-# Strip binaries (including hack by policy wonks)
-ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
-	strip -R.note -R.comment $(PACKAGE_DIR)/usr/bin/*
-endif
-	dpkg-shlibdeps $(PACKAGE_DIR)/usr/bin/spc
-	$(INSTALL_DIR) $(PACKAGE_DIR)/DEBIAN
-	cd $(PACKAGE_DIR) && ls etc/$(PACKAGE_NAME)/*|sed 's|^|/|' > DEBIAN/conffiles
-	cd $(PACKAGE_DIR) && find * -type f ! -regex '^DEBIAN/.*' -print0 | xargs -r0 md5sum > DEBIAN/md5sums
-	dpkg-gencontrol -p$(PACKAGE_NAME) -P$(PACKAGE_DIR)
-	find $(PACKAGE_DIR) -newermt "@$$SOURCE_DATE_EPOCH" -print0 | \
-		xargs -0r touch --no-dereference --date="@$$SOURCE_DATE_EPOCH"
-	dpkg-deb --build $(PACKAGE_DIR) ..
-
-binary: binary-indep binary-arch
-
-define checkdir
-	test -f src/spc.h && test -f debian/rules
-endef
-
-checkroot:
-	$(checkdir)
-	test root = "`whoami`"
-
-
-.PHONY: build clean binary-indep binary-arch binary install
+#DH_VERBOSE = 1
+%:
+	dh $@
-------------- next part --------------
diff -urNa supercat-0.5.5.old/debian/changelog supercat-0.5.5/debian/changelog
--- supercat-0.5.5.old/debian/changelog	2016-08-02 13:46:35.000000000 -0300
+++ supercat-0.5.5/debian/changelog	2018-12-28 11:25:54.647136627 -0300
@@ -45,7 +45,7 @@
   * debian/rules:
     + Update to fix detecting cross building.
     + Set default CFLAGS to -g -O2.
-  
+
  -- Kumar Appaiah <akumar at debian.org>  Sun, 20 Apr 2008 15:30:27 +0530
 
 supercat (0.5.5-2) unstable; urgency=low
@@ -60,11 +60,11 @@
   * New upstream release.
   * debian/patches/manpage_fix.diff:
     + Updated for new release.
- 
+
  -- Kumar Appaiah <akumar at ee.iitm.ac.in>  Tue, 19 Feb 2008 07:15:53 +0530
 
 supercat (0.5.4-1) unstable; urgency=low
-    
+
   * New upstream release.
   * debian/patches:
     + Remove manpage_fix.diff, as it is merged with upstream.
@@ -80,5 +80,5 @@
   * Provide a sane, default spcrc.
   * Add debian/patches/manpage_fix.diff to clean up man page
     hyphen escapes.
-  
+
  -- Kumar Appaiah <akumar at ee.iitm.ac.in>  Tue, 13 Nov 2007 13:12:39 +0530
diff -urNa supercat-0.5.5.old/debian/control supercat-0.5.5/debian/control
--- supercat-0.5.5.old/debian/control	2018-12-28 10:59:41.158359483 -0300
+++ supercat-0.5.5/debian/control	2018-12-28 12:08:39.917996330 -0300
@@ -3,7 +3,7 @@
 Priority: optional
 Maintainer: Kumar Appaiah <akumar at debian.org>
 Build-Depends: debhelper (>= 11)
-Standards-Version: 3.8.3
+Standards-Version: 4.3.0
 Homepage: http://supercat.nosredna.net/
 Vcs-Browser: http://git.debian.org/?p=users/akumar/supercat.git
 Vcs-Git: git://git.debian.org/git/users/akumar/supercat.git
diff -urNa supercat-0.5.5.old/debian/copyright supercat-0.5.5/debian/copyright
--- supercat-0.5.5.old/debian/copyright	2016-08-02 00:45:06.000000000 -0300
+++ supercat-0.5.5/debian/copyright	2018-12-28 13:42:02.954360709 -0300
@@ -1,30 +1,19 @@
-This package was debianized by Kumar Appaiah <akumar at ee.iitm.ac.in> on
-Tue, 13 Nov 2007 13:12:39 +0530.
-
-It was downloaded from <http://supercat.nosredna.net/>
-
-Upstream Authors: Thomas Anderson <gentoofan23 at gmail.com>
-
-Copyright: Copyright © 2007, 2008 Thomas G. Anderson
-
-License:
-
-    This package is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 3 of the License, or
-    (at your option) any later version.
-
-    This package is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this package; if not, write to the Free Software
-    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
-
-On Debian systems, the complete text of the GNU General
-Public License can be found in `/usr/share/common-licenses/GPL'.
-
-The Debian packaging is (C) 2007, Kumar Appaiah <akumar at ee.iitm.ac.in> and
-is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: supercat
+Upstream-Contact: bug-spc at nosredna.net
+Source: http://supercat.nosredna.net/
+Comment:
+ This package was debianized by Kumar Appaiah <akumar at ee.iitm.ac.in> on
+ Tue, 13 Nov 2007 13:12:39 +0530.
+
+Files: *
+Copyright: 2007, 2008 Thomas G. Anderson
+License: GPL
+
+Files: debian/*
+Copyright: 2007 Kumar Appaiah <akumar at ee.iitm.ac.in>
+License: GPL
+
+License: GPL
+ Available as /usr/share/common-licenses/GPL in the Debian GNU/Linux
+ distribution or at https://www.gnu.org/licenses/gpl-3.0.html.


More information about the Reproducible-bugs mailing list