Control: reassign -1 src:subunit
Control: severity -1 important
Control: tags -1 - pending

On Tue, Mar 01, 2016 at 12:59:01AM +0100, Samuel Thibault wrote:
> check build-depends on subunit, and subunit build-depends on check. It
> happens that check has a disable flag against that build, but subunit
> doesn't. The attached patch thus adds a stage1 profile to the check
> package, thus allowing to build a version of check that can then be used
> to build subunit, which can then be used to build the full unstaged
> check.

The description of the problem is correct. I don't agree with the
solution though. While check has a flag to drop subunit support, doing
so produces a different package. That's bad and we would like to avoid
doing that. Indeed, we deprecated stage1 profiles and want to get rid of
them.

While subunit doesn't have such a flag, it can easily be added, because
subunit only uses check for testing. Thus we can perform an untested
(DEB_BUILD_OPTIONS=nocheck) build of subunit to break the cycle.
Reproducible builds can verify that the content is exactly the same as
with running tests.

I therefore repurpose this bug as a bug against subunit. Solving it
there is technically superior. Please consider applying the attached
patch.

Helmut
diff --minimal -Nru subunit-1.3.0/debian/changelog 
subunit-1.3.0/debian/changelog
--- subunit-1.3.0/debian/changelog      2019-03-28 20:17:34.000000000 +0100
+++ subunit-1.3.0/debian/changelog      2019-05-08 16:01:48.000000000 +0200
@@ -1,3 +1,10 @@
+subunit (1.3.0-2.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Allow DEB_BUILD_OPTIONS=nocheck to drop Build-Depends: check. (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Wed, 08 May 2019 16:01:48 +0200
+
 subunit (1.3.0-2) experimental; urgency=medium
 
   [ Ondřej Nový ]
diff --minimal -Nru subunit-1.3.0/debian/control subunit-1.3.0/debian/control
--- subunit-1.3.0/debian/control        2019-03-28 20:17:34.000000000 +0100
+++ subunit-1.3.0/debian/control        2019-05-08 16:01:48.000000000 +0200
@@ -8,7 +8,7 @@
 Build-Depends:
  autoconf,
  automake,
- check,
+ check <!nocheck>,
  debhelper (>= 10),
  dh-python,
  libcppunit-dev,
diff --minimal -Nru subunit-1.3.0/debian/patches/nocheck.patch 
subunit-1.3.0/debian/patches/nocheck.patch
--- subunit-1.3.0/debian/patches/nocheck.patch  1970-01-01 01:00:00.000000000 
+0100
+++ subunit-1.3.0/debian/patches/nocheck.patch  2019-05-08 16:01:48.000000000 
+0200
@@ -0,0 +1,48 @@
+--- subunit-1.3.0.orig/Makefile.am
++++ subunit-1.3.0/Makefile.am
+@@ -93,8 +93,10 @@
+       c/include/subunit/child.h \
+       c++/SubunitTestProgressListener.h
+ 
++if ENABLE_CHECK
+ check_PROGRAMS = \
+       c/tests/test_child
++endif
+ 
+ libsubunit_la_SOURCES = \
+       c/lib/child.c \
+@@ -104,9 +106,11 @@
+       c++/SubunitTestProgressListener.cpp \
+       c++/SubunitTestProgressListener.h
+ 
++if ENABLE_CHECK
+ tests_LDADD = @CHECK_LIBS@ $(top_builddir)/libsubunit.la
+ c_tests_test_child_CFLAGS = -I$(top_srcdir)/c/include $(SUBUNIT_CFLAGS) 
@CHECK_CFLAGS@
+ c_tests_test_child_LDADD = $(tests_LDADD)
++endif
+ 
+ 
+ all-local: perl/Makefile
+--- subunit-1.3.0.orig/configure.ac
++++ subunit-1.3.0/configure.ac
+@@ -8,6 +8,9 @@
+ AC_CONFIG_SRCDIR([c/lib/child.c])
+ AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
+ AC_CONFIG_MACRO_DIR([m4])
++AC_ARG_ENABLE([check],[running building and runnings tests with check],
++      [enable_check=$enableval],[enable_check=yes])
++AM_CONDITIONAL([ENABLE_CHECK],[test "$enable_check" = yes])
+ [SUBUNIT_MAJOR_VERSION]=SUBUNIT_MAJOR_VERSION
+ [SUBUNIT_MINOR_VERSION]=SUBUNIT_MINOR_VERSION
+ [SUBUNIT_MICRO_VERSION]=SUBUNIT_MICRO_VERSION
+@@ -61,7 +64,9 @@
+ 
+ # Easier memory management.
+ # C unit testing.
+-PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
++AS_IF([test "$enable_check" = yes],[
++      PKG_CHECK_MODULES([CHECK], [check >= 0.9.4])
++])
+ # C++ unit testing.
+ PKG_CHECK_MODULES([CPPUNIT], [cppunit])
+ 
diff --minimal -Nru subunit-1.3.0/debian/patches/series 
subunit-1.3.0/debian/patches/series
--- subunit-1.3.0/debian/patches/series 2019-03-28 20:17:34.000000000 +0100
+++ subunit-1.3.0/debian/patches/series 2019-05-08 16:01:48.000000000 +0200
@@ -0,0 +1 @@
+nocheck.patch
diff --minimal -Nru subunit-1.3.0/debian/rules subunit-1.3.0/debian/rules
--- subunit-1.3.0/debian/rules  2019-03-28 20:17:34.000000000 +0100
+++ subunit-1.3.0/debian/rules  2019-05-08 16:01:48.000000000 +0200
@@ -59,6 +59,9 @@
                py-compile
        rm -rf m4
 
+override_dh_auto_configure:
+       dh_auto_configure -- --$(if $(filter 
nocheck,$(DEB_BUILD_OPTIONS)),dis,en)able-check
+
 override_dh_auto_test:
 ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
        dh_auto_test || true

Reply via email to