From f29803d2d7380d9240738afe69821aa41d7724f7 Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Thu, 22 Jun 2017 15:40:17 +0100 Subject: [PATCH] Backport patches to fix reproducibility issues These patches make the documentation and linker script generation fully reproducible. Change-Id: Iec5a3578d54f810edd0a0bf1551cacf394e4af32 Signed-off-by: Luca Boccassi --- ...-excluding-.doctrees-when-installing-docs.patch | 30 ++++++++++++++++++++ ...t-list-of-shared-objects-in-linker-script.patch | 32 ++++++++++++++++++++++ ...ake-silent-flag-to-print-HTML-doc-version.patch | 31 +++++++++++++++++++++ debian/patches/series | 3 ++ 4 files changed, 96 insertions(+) create mode 100644 debian/patches/mk-fix-excluding-.doctrees-when-installing-docs.patch create mode 100644 debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch create mode 100644 debian/patches/mk-use-make-silent-flag-to-print-HTML-doc-version.patch diff --git a/debian/patches/mk-fix-excluding-.doctrees-when-installing-docs.patch b/debian/patches/mk-fix-excluding-.doctrees-when-installing-docs.patch new file mode 100644 index 00000000..b658d263 --- /dev/null +++ b/debian/patches/mk-fix-excluding-.doctrees-when-installing-docs.patch @@ -0,0 +1,30 @@ +Description: mk: fix excluding .doctrees when installing docs + +The --exclude parameter must be passed before the input directory to +tar, otherwise it's silently ignored and the .doctrees directory is +installed by make install-doc. + +Origin: http://dpdk.org/dev/patchwork/patch/25632/ +Forwarded: yes +Author: Luca Boccassi +Last-Update: 2017-06-22 +--- + mk/rte.sdkinstall.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk +index dbac2a277..4e97feff9 100644 +--- a/mk/rte.sdkinstall.mk ++++ b/mk/rte.sdkinstall.mk +@@ -162,7 +162,7 @@ install-sdk: + install-doc: + ifneq ($(wildcard $O/doc/html),) + $(Q)$(call rte_mkdir, $(DESTDIR)$(docdir)) +- $(Q)tar -cf - -C $O/doc html --exclude 'html/guides/.*' | \ ++ $(Q)tar -cf - -C $O/doc --exclude 'html/guides/.*' html | \ + tar -xf - -C $(DESTDIR)$(docdir) --strip-components=1 \ + --keep-newer-files + endif +-- +2.11.0 + diff --git a/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch b/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch new file mode 100644 index 00000000..52e6b5a5 --- /dev/null +++ b/debian/patches/mk-sort-list-of-shared-objects-in-linker-script.patch @@ -0,0 +1,32 @@ +Description: mk: sort list of shared objects in linker script + +The output of wildcard might not be stable and depend on the +filesystem and other factors. +This means the content libdpdk.so linker script might change between +builds from the same sources. +Run the list through sort to ensure reproducibility. + +Origin: http://dpdk.org/dev/patchwork/patch/25633/ +Forwarded: yes +Author: Luca Boccassi +Last-Update: 2017-06-22 +--- + mk/rte.combinedlib.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mk/rte.combinedlib.mk b/mk/rte.combinedlib.mk +index 449358b33..2ab7ee8a1 100644 +--- a/mk/rte.combinedlib.mk ++++ b/mk/rte.combinedlib.mk +@@ -42,7 +42,7 @@ endif + RTE_LIBNAME := dpdk + COMBINEDLIB := lib$(RTE_LIBNAME)$(EXT) + +-LIBS := $(filter-out $(COMBINEDLIB), $(notdir $(wildcard $(RTE_OUTPUT)/lib/*$(EXT)))) ++LIBS := $(filter-out $(COMBINEDLIB), $(sort $(notdir $(wildcard $(RTE_OUTPUT)/lib/*$(EXT))))) + + all: FORCE + $(Q)echo "GROUP ( $(LIBS) )" > $(RTE_OUTPUT)/lib/$(COMBINEDLIB) +-- +2.11.0 + diff --git a/debian/patches/mk-use-make-silent-flag-to-print-HTML-doc-version.patch b/debian/patches/mk-use-make-silent-flag-to-print-HTML-doc-version.patch new file mode 100644 index 00000000..c7bdfb4f --- /dev/null +++ b/debian/patches/mk-use-make-silent-flag-to-print-HTML-doc-version.patch @@ -0,0 +1,31 @@ +Description: mk: use make silent flag to print HTML doc version + +Depending on the environment, make might echo the command being ran. +In mk/rte.sdkdoc.mk make is used to print the DPDK version to be +piped to doxygen. This causes the following to be written: + +
DPDK + /usr/bin/make-f/build/dpdk-jYjqnr/dpdk-16.11.2/mk/rte.sdkconfig.mkshowversion +
+ +Use -s (--silent) to prevent echoing. + +Origin: http://dpdk.org/dev/patchwork/patch/25631/ +Forwarded: yes +Author: Luca Boccassi +Last-Update: 2017-06-22 +--- + mk/rte.sdkdoc.mk | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/mk/rte.sdkdoc.mk ++++ b/mk/rte.sdkdoc.mk +@@ -71,7 +71,7 @@ api-html: api-html-clean + $(Q)mkdir -p $(RTE_OUTPUT)/doc/html + $(Q)(cat $(RTE_SDK)/doc/api/doxy-api.conf && \ + printf 'PROJECT_NUMBER = ' && \ +- $(MAKE) -rR showversion && \ ++ $(MAKE) -rRs showversion && \ + echo OUTPUT_DIRECTORY = $(RTE_OUTPUT)/doc && \ + echo HTML_OUTPUT = html/api && \ + echo GENERATE_HTML = YES && \ diff --git a/debian/patches/series b/debian/patches/series index e57a6614..ad293f6e 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -10,3 +10,6 @@ nicvf-0007-net-thunderx-disable-PMD-for-old-compilers.patch nicvf-0009-config-set-cache-line-as-128B-for-generic-arm64.patch kni-fix-ethtool-build-with-kernel-4.11.patch igb_uio-switch-to-new-irq-function-for-MSI-X.patch +mk-use-make-silent-flag-to-print-HTML-doc-version.patch +mk-fix-excluding-.doctrees-when-installing-docs.patch +mk-sort-list-of-shared-objects-in-linker-script.patch -- 2.16.6