Bug#967177: mozjs NMU to fix build issues.

peter green plugwash at p10link.net
Sat Sep 19 19:26:25 BST 2020


tags 925781 +patch +pending
tags 967177 +patch +pending
thanks

I have decided to take the Ubuntu fixes for mozjs52 and turn them into a NMU. I also ran into some issues
with the clean target while preparing the NMU so I fixed those too.

mozjs52 has only one reverse-dependency: cjs which in turn has only one reverse dependency cinnamon, I have done a
"smoke test" on cinnamon with the new mozjs52 packages, but not being a cinnamon user or developer I don't know
what if any problems I should be looking for, so testing by someone familiar with the packages would be desirable.

I have uploaded the NMU to delayed/5, please tell me if you see any issues.
-------------- next part --------------
diff -Nru mozjs52-52.9.1/debian/changelog mozjs52-52.9.1/debian/changelog
--- mozjs52-52.9.1/debian/changelog	2018-08-01 08:22:02.000000000 +0100
+++ mozjs52-52.9.1/debian/changelog	2020-09-17 19:48:36.000000000 +0100
@@ -1,3 +1,14 @@
+mozjs52 (52.9.1-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Adopt ubuntu changes by Matthias Klose to fix build failures.
+    + Build using Python2 (Closes: 912941).
+    + Fix ftbfs with new warnings and -Werror in testcase (Closes: 925781).
+    + Build with -O2 on ppc64el, the embedded ICU ftbfs otherwise.
+  * Fix clean target.
+
+ -- Peter Michael Green <plugwash at debian.org>  Thu, 17 Sep 2020 18:48:36 +0000
+
 mozjs52 (52.9.1-1) unstable; urgency=medium
 
   * Team upload
diff -Nru mozjs52-52.9.1/debian/control mozjs52-52.9.1/debian/control
--- mozjs52-52.9.1/debian/control	2018-08-01 08:22:02.000000000 +0100
+++ mozjs52-52.9.1/debian/control	2020-09-17 19:48:36.000000000 +0100
@@ -17,7 +17,7 @@
                zlib1g-dev (>= 1:1.2.3),
                pkg-config,
                pkg-kde-tools,
-               python-dev,
+               python2-dev,
                zip
 Rules-Requires-Root: no
 Standards-Version: 4.1.5
diff -Nru mozjs52-52.9.1/debian/control.in mozjs52-52.9.1/debian/control.in
--- mozjs52-52.9.1/debian/control.in	2018-08-01 08:22:02.000000000 +0100
+++ mozjs52-52.9.1/debian/control.in	2020-09-17 19:44:32.000000000 +0100
@@ -13,7 +13,7 @@
                zlib1g-dev (>= 1:1.2.3),
                pkg-config,
                pkg-kde-tools,
-               python-dev,
+               python2-dev,
                zip
 Rules-Requires-Root: no
 Standards-Version: 4.1.5
diff -Nru mozjs52-52.9.1/debian/patches/ftbfs-fix.diff mozjs52-52.9.1/debian/patches/ftbfs-fix.diff
--- mozjs52-52.9.1/debian/patches/ftbfs-fix.diff	1970-01-01 01:00:00.000000000 +0100
+++ mozjs52-52.9.1/debian/patches/ftbfs-fix.diff	2020-09-17 19:44:32.000000000 +0100
@@ -0,0 +1,14 @@
+Index: b/js/src/jsapi-tests/testPrintf.cpp
+===================================================================
+--- a/js/src/jsapi-tests/testPrintf.cpp
++++ b/js/src/jsapi-tests/testPrintf.cpp
+@@ -55,7 +55,8 @@ BEGIN_TEST(testPrintf)
+     CHECK(print_one("27270", "%zu", (size_t) 27270));
+     CHECK(print_one("27270", "%" PRIuSIZE, (size_t) 27270));
+     CHECK(print_one("hello", "he%so", "ll"));
+-    CHECK(print_one("(null)", "%s", zero()));
++    // error: '%s' directive argument is null [-Werror=format-overflow=]
++    // CHECK(print_one("(null)", "%s", zero()));
+     CHECK(print_one("0", "%p", (char *) 0));
+     CHECK(print_one("h", "%c", 'h'));
+     CHECK(print_one("1.500000", "%f", 1.5f));
diff -Nru mozjs52-52.9.1/debian/patches/series mozjs52-52.9.1/debian/patches/series
--- mozjs52-52.9.1/debian/patches/series	2018-08-01 08:22:02.000000000 +0100
+++ mozjs52-52.9.1/debian/patches/series	2020-09-17 19:44:32.000000000 +0100
@@ -17,3 +17,4 @@
 sparc64-support.patch
 ia64-support.patch
 Add-disable-layoutex-when-running-ICU-configure.patch
+ftbfs-fix.diff
diff -Nru mozjs52-52.9.1/debian/rules mozjs52-52.9.1/debian/rules
--- mozjs52-52.9.1/debian/rules	2018-08-01 08:22:02.000000000 +0100
+++ mozjs52-52.9.1/debian/rules	2020-09-17 19:48:36.000000000 +0100
@@ -12,7 +12,7 @@
 # mozjs' build process does not seem to be compatible with other shells
 # like zsh
 export SHELL = /bin/sh
-export PYTHON = python
+export PYTHON = python2
 
 SRCDIR = $(CURDIR)/js/src
 CONFIGURE_FLAGS =
@@ -22,6 +22,9 @@
 ifneq (,$(findstring $(DEB_BUILD_ARCH),ia64))
 	DEB_CFLAGS_MAINT_APPEND += -G0 -fno-lifetime-dse -fno-delete-null-pointer-checks
 	DEB_CXXFLAGS_MAINT_APPEND += -G0 -fno-lifetime-dse -fno-delete-null-pointer-checks
+else ifneq (,$(findstring $(DEB_BUILD_ARCH),ppc64el))
+	DEB_CFLAGS_MAINT_APPEND += -O2
+	DEB_CXXFLAGS_MAINT_APPEND += -O2
 else
 	DEB_CFLAGS_MAINT_APPEND += -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks
 	DEB_CXXFLAGS_MAINT_APPEND += -fno-schedule-insns2 -fno-lifetime-dse -fno-delete-null-pointer-checks
@@ -53,6 +56,7 @@
 	dh $@ --sourcedirectory=$(SRCDIR) --with gnome,pkgkde-symbolshelper
 
 override_dh_clean:
+	-mv config/external/icu/data/icudt58l.dat.bak config/external/icu/data/icudt58l.dat
 	dh_clean
 	find $(CURDIR) -name \*.pyc -exec rm {} \;
 	find $(CURDIR)/js/src/ -type l -exec rm {} \;
@@ -63,6 +67,12 @@
 	rm -f $(CURDIR)/js/src/config.log
 	# rm -f $(CURDIR)/js/src/configure
 	rm -fr $(CURDIR)/intl/icu/source/autom4te.cache
+	rm -f python/psutil/psutil/*.*o
+	rm -rf python/psutil/build
+	rm -rf _virtualenv
+	rm -f js/src/all-tests.pkl
+	rm -f js/src/.cargo/config js/src/_build_manifests/install/_tests js/src/_build_manifests/install/dist_include js/src/_build_manifests/install/dist_private js/src/_build_manifests/install/dist_public js/src/_build_manifests/install/dist_sdk js/src/backend.FasterMakeBackend js/src/backend.FasterMakeBackend.in js/src/backend.RecursiveMakeBackend js/src/backend.RecursiveMakeBackend.in js/src/backend.mk js/src/binaries.json js/src/config/backend.mk js/src/config/doxygen.cfg js/src/config/emptyvars.mk js/src/config/external/fdlibm/backend.mk js/src/config/external/icu/backend.mk js/src/config/external/icu/common/backend.mk js/src/config/external/icu/data/backend.mk js/src/config/external/icu/i18n/backend.mk js/src/config/external/nspr/backend.mk js/src/config/external/zlib/backend.mk js/src/config/makefiles/test/Makefile js/src/config/tests/makefiles/autodeps/Makefile js/src/config/tests/src-simple/Makefile js/src/faster/Makefile js/src/faster/install_dist_bin js/src/ipc/ipdl/ipdlsrcs.mk js/src/js/src/Unified_cpp_js_src0.cpp js/src/js/src/Unified_cpp_js_src1.cpp js/src/js/src/Unified_cpp_js_src10.cpp js/src/js/src/Unified_cpp_js_src11.cpp js/src/js/src/Unified_cpp_js_src12.cpp js/src/js/src/Unified_cpp_js_src13.cpp js/src/js/src/Unified_cpp_js_src14.cpp js/src/js/src/Unified_cpp_js_src15.cpp js/src/js/src/Unified_cpp_js_src16.cpp js/src/js/src/Unified_cpp_js_src17.cpp js/src/js/src/Unified_cpp_js_src18.cpp js/src/js/src/Unified_cpp_js_src19.cpp js/src/js/src/Unified_cpp_js_src2.cpp js/src/js/src/Unified_cpp_js_src20.cpp js/src/js/src/Unified_cpp_js_src21.cpp js/src/js/src/Unified_cpp_js_src22.cpp js/src/js/src/Unified_cpp_js_src23.cpp js/src/js/src/Unified_cpp_js_src24.cpp js/src/js/src/Unified_cpp_js_src25.cpp js/src/js/src/Unified_cpp_js_src26.cpp js/src/js/src/Unified_cpp_js_src27.cpp js/src/js/src/Unified_cpp_js_src28.cpp js/src/js/src/Unified_cpp_js_src29.cpp js/src/js/src/Unified_cpp_js_src3.cpp js/src/js/src/Unified_cpp_js_src30.cpp js/src/js/src/Unified_cpp_js_src31.cpp js/src/js/src/Unified_cpp_js_src32.cpp js/src/js/src/Unified_cpp_js_src33.cpp js/src/js/src/Unified_cpp_js_src34.cpp js/src/js/src/Unified_cpp_js_src35.cpp js/src/js/src/Unified_cpp_js_src36.cpp js/src/js/src/Unified_cpp_js_src37.cpp js/src/js/src/Unified_cpp_js_src38.cpp js/src/js/src/Unified_cpp_js_src39.cpp js/src/js/src/Unified_cpp_js_src4.cpp js/src/js/src/Unified_cpp_js_src40.cpp js/src/js/src/Unified_cpp_js_src5.cpp js/src/js/src/Unified_cpp_js_src6.cpp js/src/js/src/Unified_cpp_js_src7.cpp js/src/js/src/Unified_cpp_js_src8.cpp js/src/js/src/Unified_cpp_js_src9.cpp js/src/js/src/gdb/Unified_cpp_js_src_gdb0.cpp js/src/js/src/js-config js/src/js/src/js.pc js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests0.cpp js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests1.cpp js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests2.cpp js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests3.cpp js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests4.cpp js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests5.cpp js/src/js/src/jsapi-tests/Unified_cpp_js_src_jsapi-tests6.cpp js/src/js/src/shell/Unified_cpp_js_src_shell0.cpp js/src/js/src/shell/shellmoduleloader.js js/src/memory/backend.mk js/src/memory/build/backend.mk js/src/memory/fallible/backend.mk js/src/memory/mozalloc/Unified_cpp_memory_mozalloc0.cpp js/src/memory/mozalloc/backend.mk js/src/memory/mozjemalloc/backend.mk js/src/mfbt/Unified_cpp_mfbt0.cpp js/src/mfbt/Unified_cpp_mfbt1.cpp js/src/mfbt/backend.mk js/src/mfbt/tests/backend.mk js/src/modules/fdlibm/backend.mk js/src/modules/fdlibm/src/backend.mk js/src/mozglue/backend.mk js/src/mozglue/build/backend.mk js/src/mozglue/misc/backend.mk js/src/mozinfo.json js/src/old-configure.vars js/src/python/backend.mk js/src/root-deps.mk js/src/root.mk js/src/taskcluster/backend.mk js/src/test-defaults.pkl js/src/test-installs.pkl
+	rm -rf js/src/js
 
 override_dh_autoreconf:
 	dh_autoreconf $(CURDIR)/debian/autogen.sh
@@ -73,9 +83,10 @@
 # The bundled copy of icu prefers clang, which we need to override to
 # use gcc because clang doesn't support our DEB_CFLAGS_MAINT_APPEND
 override_dh_auto_configure:
+	cp config/external/icu/data/icudt58l.dat config/external/icu/data/icudt58l.dat.bak
 	CC=$${CC:-$(DEB_HOST_GNU_TYPE)-gcc} \
 	CXX=$${CXX:-$(DEB_HOST_GNU_TYPE)-g++} \
-	VERBOSE=1 python intl/icu_sources_data.py "$(CURDIR)"
+	VERBOSE=1 python2 intl/icu_sources_data.py "$(CURDIR)"
 	cd $(SRCDIR) && $(SHELL) configure \
 		--host=$(DEB_HOST_GNU_TYPE) \
 		--target=$(DEB_BUILD_GNU_TYPE) \


More information about the pkg-gnome-maintainers mailing list