[UNSTABLE][PATCH] UBUNTU: [Packaging] drop useless linux-doc

Dimitri John Ledkov dimitri.ledkov at canonical.com
Tue Dec 5 22:25:07 UTC 2023


Sometime between bionic and focal, linux-doc build became
broken. Meaning it has stopped producing sphinx html build, and was
only doing compressed installation of the Restructured Text
documentation. But such compressed restructured text is not readable,
navigatable or searchable by any edoc readers.

Separately, our tree doesn't actually contain any Ubuntu-delta
specific documentation, meaning the upstream linux/linux-next docs
that are published at https://kernel.org/doc/html/ are directly
applicable to the Ubuntu kernel. And provide a much nicer experience
in terms of searching, rendering, reading.

If we do have any significant Documentation delta, we are better off
linking to correct upstream documentation, and publishing delta-only
Documentation on our public instance of read-the-docs. Or point users
at our source package and/or git repo to read Documentation/ from
there.

Droping this build doesn't save any significant build-time (as it was
already practically doing nothing). But it does save a lot of
disk-space due to reduced build-dependencies on the full TeX Live
installation. In minimal noble chroot, build dependencies installation
goes dow from requiring 1,269 MB to just 542 MB. Thus significantly
reducing the size of all our chroots (locally on developer machines,
during launchpad builds, during outside of launchpad builds).

Manpages (generated using asciidoc & rst2man) are preserved and are
still produced. As those are genuinely useful, and are republished to
manpages.ubuntu.com as well.

Signed-off-by: Dimitri John Ledkov <dimitri.ledkov at canonical.com>
Acked-by: Magali Lemes <magali.lemes.do.sacramento at canonical.com>

---
 debian.master/control.d/flavour-control.stub |  2 +-
 debian.master/control.d/linux-doc.stub       | 12 ---------
 debian.master/control.stub.in                | 12 ---------
 debian.master/rules.d/i386.mk                |  1 -
 debian.master/rules.d/riscv64.mk             |  1 -
 debian/rules                                 |  6 -----
 debian/rules.d/0-common-vars.mk              | 17 ------------
 debian/rules.d/1-maintainer.mk               |  3 ---
 debian/rules.d/2-binary-arch.mk              |  8 ------
 debian/rules.d/3-binary-indep.mk             | 28 ++------------------
 10 files changed, 3 insertions(+), 87 deletions(-)
 delete mode 100644 debian.master/control.d/linux-doc.stub

diff --git a/debian.master/control.d/flavour-control.stub b/debian.master/control.d/flavour-control.stub
index 67b3a877202a..a7ba586e6909 100644
--- a/debian.master/control.d/flavour-control.stub
+++ b/debian.master/control.d/flavour-control.stub
@@ -31,7 +31,7 @@ Depends: ${misc:Depends}, ${shlibs:Depends}, kmod, linux-base (>= 4.5ubuntu1~16.
 Recommends: BOOTLOADER, initramfs-tools | linux-initramfs-tool
 Breaks: flash-kernel (<< 3.90ubuntu2) [arm64 armhf], s390-tools (<< 2.3.0-0ubuntu3) [s390x]
 Conflicts: linux-image=SIGN-PEER-PKG=-PKGVER-ABINUM-FLAVOUR
-Suggests: fdutils, linux-doc | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR, linux-modules-extra-PKGVER-ABINUM-FLAVOUR
+Suggests: fdutils, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR, linux-modules-extra-PKGVER-ABINUM-FLAVOUR
 Description: Linux kernel image for version PKGVER on DESC
  This package contains the=SIGN-ME-TXT= Linux kernel image for version PKGVER on
  DESC.
diff --git a/debian.master/control.d/linux-doc.stub b/debian.master/control.d/linux-doc.stub
deleted file mode 100644
index a0e04473286d..000000000000
--- a/debian.master/control.d/linux-doc.stub
+++ /dev/null
@@ -1,12 +0,0 @@
-Package: linux-doc
-Build-Profiles: <!stage1>
-Architecture: all
-Section: doc
-Priority: optional
-Depends: ${misc:Depends}
-Description: Linux kernel specific documentation for version PKGVER
- This package provides the various documents in the PKGVER kernel
- Documentation/ subdirectory.  These document kernel subsystems, APIs, device
- drivers, and so on.  See
- /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is
- contained in each file.
diff --git a/debian.master/control.stub.in b/debian.master/control.stub.in
index 5dc9ed39f849..0a1f830cbf79 100644
--- a/debian.master/control.stub.in
+++ b/debian.master/control.stub.in
@@ -43,22 +43,10 @@ Build-Depends:
  libstdc++-dev,
 Build-Depends-Indep:
  xmlto <!stage1>,
- docbook-utils <!stage1>,
- ghostscript <!stage1>,
- fig2dev <!stage1>,
  bzip2 <!stage1>,
  sharutils <!stage1>,
  asciidoc <!stage1>,
- python3-sphinx <!stage1>,
- python3-sphinx-rtd-theme <!stage1>,
- fontconfig <!stage1>,
  python3-docutils <!stage1>,
- imagemagick <!stage1>,
- graphviz <!stage1>,
- dvipng <!stage1>,
- fonts-noto-cjk <!stage1>,
- latexmk <!stage1>,
- librsvg2-bin <!stage1>,
 Vcs-Git: git://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/=SERIES=
 XS-Testsuite: autopkgtest
 #XS-Testsuite-Depends: gcc-4.7 binutils
diff --git a/debian.master/rules.d/i386.mk b/debian.master/rules.d/i386.mk
index a9327adb7052..bdeb8bd9ba10 100644
--- a/debian.master/rules.d/i386.mk
+++ b/debian.master/rules.d/i386.mk
@@ -12,6 +12,5 @@ do_tools	= false
 do_tools_common	= false
 do_extras_package = false
 do_source_package = false
-do_doc_package	= false
 do_flavour_header_package = false
 do_common_headers_indep = false
diff --git a/debian.master/rules.d/riscv64.mk b/debian.master/rules.d/riscv64.mk
index 2fa468ae8c1e..6a936c98d1f4 100644
--- a/debian.master/rules.d/riscv64.mk
+++ b/debian.master/rules.d/riscv64.mk
@@ -14,6 +14,5 @@ do_tools	= false
 do_tools_common	= false
 do_extras_package = false
 do_source_package = false
-do_doc_package	= false
 do_flavour_header_package = false
 do_common_headers_indep = false
diff --git a/debian/rules b/debian/rules
index 396c853fbe85..138640d42dbb 100755
--- a/debian/rules
+++ b/debian/rules
@@ -79,7 +79,6 @@ ifneq ($(DEB_BUILD_PROFILE),)
 endif
 ifneq ($(filter stage1,$(DEB_BUILD_PROFILES)),)
     do_tools=false
-    do_doc_package=false
     do_source_package=false
     do_flavour_image_package=false
     do_flavour_header_package=false
@@ -178,11 +177,6 @@ ifneq (,$(wildcard $(DEBIAN)/control.d/linux-libc-dev.stub))
 	control_files += $(DEBIAN)/control.d/linux-libc-dev.stub
 endif
 endif
-ifeq ($(do_doc_package),true)
-ifneq (,$(wildcard $(DEBIAN)/control.d/linux-doc.stub))
-	control_files += $(DEBIAN)/control.d/linux-doc.stub
-endif
-endif
 
 # Calculate Ubuntu Compatible Signing levels
 UBUNTU_COMPATIBLE_SIGNING=$(shell grep -qx ' *Subject: C = GB, ST = Isle of Man, O = Canonical Ltd., OU = Secure Boot, CN = Canonical Ltd. Secure Boot Signing (2021 v3)' debian/canonical-revoked-certs.pem && echo ubuntu/4 pro/3)
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
index 2110020d03fa..ade7674b1111 100644
--- a/debian/rules.d/0-common-vars.mk
+++ b/debian/rules.d/0-common-vars.mk
@@ -111,23 +111,6 @@ rust_pkg_name=$(src_pkg_name)-lib-rust-$(abi_release)
 indep_hdrs_pkg_name=$(src_pkg_name)-headers-$(abi_release)
 indep_lib_rust_pkg_name=$(src_pkg_name)-lib-rust-$(abi_release)
 
-#
-# The generation of content in the doc package depends on
-# 'do_doc_package_content=true'. There are usually build errors during the development
-# cycle, so its OK to leave 'do_doc_package_content=false' until those build
-# failures get sorted out. Finally, the doc package doesn't really need to be built
-# for developer testing (its kind of slow), so only do it if on a buildd.
-ifneq ($(filter --,$(variants)),)
-do_doc_package=true
-else
-do_doc_package=false
-endif
-do_doc_package_content=false
-ifeq ($(do_full_build),false)
-do_doc_package_content=false
-endif
-doc_pkg_name=$(src_pkg_name)-doc
-
 #
 # Similarly with the linux-source package, you need not build it as a developer. Its
 # somewhat I/O intensive and utterly useless.
diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
index a5ea2241be79..9882dac7aa13 100644
--- a/debian/rules.d/1-maintainer.mk
+++ b/debian/rules.d/1-maintainer.mk
@@ -48,7 +48,6 @@ printenv:
 	@echo "bin_pkg_name              = $(bin_pkg_name)"
 	@echo "hdr_pkg_name              = $(hdrs_pkg_name)"
 	@echo "rust_pkg_name             = $(rust_pkg_name)"
-	@echo "doc_pkg_name              = $(doc_pkg_name)"
 	@echo "ubuntu_selftests          = $(ubuntu_selftests)"
 	@echo "arch                      = $(arch)"
 	@echo "kmake                     = $(kmake)"
@@ -69,8 +68,6 @@ printenv:
 	@echo "do_mainline_build         = $(do_mainline_build)"
 	@echo "do_dbgsym_package         = $(do_dbgsym_package)"
 	@echo "do_dtbs                   = $(do_dtbs)"
-	@echo "do_doc_package            = $(do_doc_package)"
-	@echo "do_doc_package_content    = $(do_doc_package_content)"
 	@echo "do_source_package         = $(do_source_package)"
 	@echo "do_source_package_content = $(do_source_package_content)"
 	@echo "do_extras_package         = $(do_extras_package)"
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
index cbd5e1f06504..aaea57aacc48 100644
--- a/debian/rules.d/2-binary-arch.mk
+++ b/debian/rules.d/2-binary-arch.mk
@@ -243,14 +243,6 @@ endif
 	  ) \
 	)
 
-	# Install the full changelog.
-ifeq ($(do_doc_package),true)
-	install -d $(bindoc)
-	cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \
-		gzip -9 >$(bindoc)/changelog.Debian.old.gz
-	chmod 644 $(bindoc)/changelog.Debian.old.gz
-endif
-
 ifeq ($(do_dbgsym_package),true)
 	# Debug image is simple
 	install -m644 -D $(builddir)/build-$*/vmlinux \
diff --git a/debian/rules.d/3-binary-indep.mk b/debian/rules.d/3-binary-indep.mk
index d64df69aabd0..6e459a09d4e8 100644
--- a/debian/rules.d/3-binary-indep.mk
+++ b/debian/rules.d/3-binary-indep.mk
@@ -4,7 +4,7 @@ build-indep:
 
 # The binary-indep dependency chain is:
 #
-# install-headers <- install-doc <- install-source <- install-tools <- install-indep <- binary-indep
+# install-headers <- install-source <- install-tools <- install-indep <- binary-indep
 # install-headers <- binary-headers
 #
 indep_hdrpkg = $(indep_hdrs_pkg_name)
@@ -31,30 +31,6 @@ ifeq ($(do_flavour_header_package),true)
 endif
 	@touch $@
 
-docpkg = $(doc_pkg_name)
-docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
-.PHONY: install-doc
-install-doc: $(stampdir)/stamp-prepare-indep
-	@echo Debug: $@
-ifeq ($(do_doc_package),true)
-	dh_testdir
-	dh_testroot
-
-	install -d $(docdir)
-ifeq ($(do_doc_package_content),true)
-	# First the html docs. We skip these for autobuilds
-	install -d $(docdir)/$(doc_pkg_name)-tmp
-	$(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs
-	install -d $(docdir)/html
-	rsync -aL $(docdir)/$(doc_pkg_name)-tmp/Documentation/output/ \
-		$(docdir)/html/
-	rm -rf $(docdir)/$(doc_pkg_name)-tmp
-endif
-	# Copy the rest
-	cp -a Documentation/* $(docdir)
-	find $(docdir) -name .gitignore | xargs rm -f
-endif
-
 srcpkg = linux-source-$(release)
 srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
 balldir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)/$(srcpkg)
@@ -182,7 +158,7 @@ $(stampdir)/stamp-prepare-indep:
 	@touch $@
 
 .PHONY: install-indep
-install-indep: $(stampdir)/stamp-install-headers install-doc install-source install-tools
+install-indep: $(stampdir)/stamp-install-headers install-source install-tools
 	@echo Debug: $@
 
 # This is just to make it easy to call manually. Normally done in



More information about the kernel-team mailing list