Control: clone -1 -2 Control: retitle -2 support building ghc without building haddock Control: block -1 by -2
On Tue, Jan 31, 2017 at 09:20:46AM +0100, John Paul Adrian Glaubitz wrote: > Setting "--target" allows enabling cross-compiling, adding > --enable-unregisterised is important for architectures not > having native code generation support. Disabling the documentation > is required by GHC itself. Trying to build the documentation > when cross-compiling causes an error message. I'm not entirely sold on the idea that we cannot cross build haddock. What about using the haddock from the ghc:native package to build the documentation? But then maybe I understand too little of the requirements here. In any case, disabling haddock should not be a thing that just happens for cross compilation. We want cross builds to be reproducible (when compared against native builds). So disabling haddock should be a concious choice (even if cross building without disabling haddock doesn't work). Also building ghc without haddock should produce a package that doesn't list haddock under Provides. This calls for a build profile. So I went ahead and split out this part of your patch into a patch that adds a pkg.ghc.nohaddock build profile. It's not clear to me whether some Build-Depends should become droppable under the profile. I hope that this makes sense and that the resulting profile is useful for cross compiling ghc. Do you agree? Helmut
diff --minimal -Nru ghc-8.0.1/debian/changelog ghc-8.0.1/debian/changelog --- ghc-8.0.1/debian/changelog 2016-12-17 03:44:45.000000000 +0100 +++ ghc-8.0.1/debian/changelog 2017-01-31 15:39:43.000000000 +0100 @@ -1,3 +1,10 @@ +ghc (8.0.1-17.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Add pkg.ghc.nohaddock build profile for disabling haddock (Closes: #-1). + + -- Helmut Grohne <hel...@subdivi.de> Tue, 31 Jan 2017 15:39:43 +0100 + ghc (8.0.1-17) unstable; urgency=medium * Add upstream patch "Add relocation type R_X86_64_REX_GOTPCRELX". diff --minimal -Nru ghc-8.0.1/debian/control ghc-8.0.1/debian/control --- ghc-8.0.1/debian/control 2016-10-28 07:42:05.000000000 +0200 +++ ghc-8.0.1/debian/control 2017-01-31 15:39:43.000000000 +0100 @@ -49,8 +49,8 @@ ${ghci}, ${provided-devs}, ${haskell:Provides}, - haddock, - ghc-haddock, + haddock <!pkg.ghc.nohaddock>, + ghc-haddock <!pkg.ghc.nohaddock>, ${haddock:Provides} Replaces: ghc6 (<< 7), ghc-dynamic (<< 7.8), ghc-haddock (<< 7.10) Conflicts: ghc6 (<< 7), ghc-dynamic (<< 7.8), ${conflicting-devs} @@ -94,6 +94,7 @@ Breaks: libghc-terminfo-doc (<< 0.3.2.5-4), libghc-transformers-doc (<< 0.3.0.0-6), libghc-xhtml-doc (<< 3000.2.1-5) Depends: ${haddock:Depends}, ${misc:Depends}, perl, libjs-mathjax Pre-Depends: dpkg (>= 1.16.1) +Build-Profiles: <!pkg.ghc.nohaddoc> Description: Documentation for the Glasgow Haskell Compilation system The Glorious Glasgow Haskell Compilation system (GHC) is a compiler for Haskell. diff --minimal -Nru ghc-8.0.1/debian/rules ghc-8.0.1/debian/rules --- ghc-8.0.1/debian/rules 2016-11-14 17:07:27.000000000 +0100 +++ ghc-8.0.1/debian/rules 2017-01-31 15:39:43.000000000 +0100 @@ -35,7 +35,6 @@ GHC=$(firstword $(shell bash -c "type -p ghc")) EXTRA_CONFIGURE_FLAGS=--with-ghc="$(GHC)" -BUILD_HADDOCK_DOCS=YES DEB_HOOGLE_TXT_DIR = /usr/lib/ghc-doc/hoogle/ ifeq (x32,$(DEB_HOST_ARCH)) @@ -48,9 +47,13 @@ override_dh_auto_configure: dh_autoreconf perl -- boot echo "SRC_HC_OPTS += -lffi -optl-pthread" >> mk/build.mk +ifeq ($(filter pkg.ghc.nohaddock,$(DEB_BUILD_PROFILES)),) echo "HADDOCK_DOCS := YES" >> mk/build.mk echo "EXTRA_HADDOCK_OPTS += --mathjax=file:///usr/share/javascript/mathjax/MathJax.js" >> mk/build.mk echo "XSLTPROC_OPTS += --nonet" >> mk/build.mk +else + echo "HADDOCK_DOCS := NO" >> mk/build.mk +endif ifneq (,$(findstring $(DEB_HOST_ARCH), arm64 armel armhf)) echo "SRC_HC_OPTS += -optl-B/usr/bin/ld.gold" >> mk/build.mk endif @@ -161,11 +164,11 @@ if test -e debian/tmp/usr/bin/ghci-$(ProjectVersion); then \ echo 'ghci=ghc-ghci' >> debian/ghc.substvars ; fi +ifeq ($(filter pkg.ghc.nohaddock,$(DEB_BUILD_PROFILES)),) # Add haddock substvars echo "haddock:Depends=haddock-interface-$$(debian/tmp/usr/lib/ghc/bin/haddock --interface-version)" >> debian/ghc-doc.substvars echo "haddock:Provides=haddock-interface-$$(debian/tmp/usr/lib/ghc/bin/haddock --interface-version)" >> debian/ghc.substvars -ifeq (YES,$(BUILD_HADDOCK_DOCS)) mkdir -p debian/tmp/usr/lib/ghc-doc cp debian/gen_contents_index debian/tmp/usr/lib/ghc-doc/ chmod +x debian/tmp/usr/lib/ghc-doc/gen_contents_index @@ -191,8 +194,10 @@ echo ".so man1/ghc-pkg.1" > debian/ghc-pkg-$(ProjectVersion).1 echo debian/*.1 > debian/ghc.manpages +ifeq ($(filter pkg.ghc.nohaddock,$(DEB_BUILD_PROFILES)),) cp debian/haddock.man debian/haddock.1 echo debian/haddock.1 >> debian/ghc.manpages +endif # #################### # Now all the files are sorted, create the package filelists @@ -207,16 +212,17 @@ # ghc-prof find debian/tmp/usr/lib $(FILES) $(PROF_FILE) > debian/ghc-prof.install echo debian/tmp/usr/share/lintian/overrides/ghc-prof >> debian/ghc-prof.install +ifeq ($(filter pkg.ghc.nohaddock,$(DEB_BUILD_PROFILES)),) # ghc-doc -ifeq (YES,$(BUILD_HADDOCK_DOCS)) mkdir -p debian/tmp/$(DEB_HOOGLE_TXT_DIR) cat debian/ghc-doc.links.in > debian/ghc-doc.links find debian/tmp/usr/share/doc/ghc-doc/html/libraries/*/ -name "*.txt" \ -printf "%p $(DEB_HOOGLE_TXT_DIR)/%f\n" >> debian/ghc-doc.links find debian/tmp/usr/share/doc/ghc-doc $(FILES) > debian/ghc-doc.install find debian/tmp/usr/lib/ghc-doc $(FILES) >> debian/ghc-doc.install + sed -i s,^debian/tmp,, debian/*.links endif - sed -i s,^debian/tmp,, debian/*.install debian/*.links + sed -i s,^debian/tmp,, debian/*.install rm -f debian/ghc.links echo "/var/lib/ghc/package.conf.d /usr/lib/ghc/package.conf.d" >> debian/ghc.links