Package: ncurses
Version: 6.0+20161126-1
Severity: wishlist
Tags: patch

Dear Maintainer,

Please consider applying the attached patch to build 32bit packages on
s390x. This patch has been part of Ubuntu for over a year now [1].

The original patch [2] does not apply cleanly as it assumes x32 support
has also been added.

[1] https://launchpad.net/ubuntu/+source/ncurses/6.0+20151024-2ubuntu2
[2]
http://launchpadlibrarian.net/236280845/ncurses_6.0+20151024-2ubuntu1_6.0+20151024-2ubuntu2.diff.gz

Many thanks,
Tiago Daitx

-- System Information:
Debian Release: stretch/sid
  APT prefers xenial-updates
  APT policy: (500, 'xenial-updates'), (500, 'xenial-security'), (500, 
'xenial'), (400, 'xenial-proposed'), (100, 'xenial-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.8.0-34-generic (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru ncurses-6.0+20161126/debian/changelog ncurses-6.0+20161126/debian/changelog
--- ncurses-6.0+20161126/debian/changelog	2016-11-29 18:19:08.000000000 -0200
+++ ncurses-6.0+20161126/debian/changelog	2017-03-03 22:33:14.000000000 -0300
@@ -1,3 +1,9 @@
+ncurses (6.0+20161126-2) unstable; urgency=medium
+
+  * Build 32bit packages on s390x.
+
+ -- Dimitri John Ledkov <x...@ubuntu.com>  Thu, 04 Feb 2016 15:20:19 +0000
+
 ncurses (6.0+20161126-1) unstable; urgency=low
 
   * New upstream patchlevel.
diff -Nru ncurses-6.0+20161126/debian/control ncurses-6.0+20161126/debian/control
--- ncurses-6.0+20161126/debian/control	2016-11-28 15:50:38.000000000 -0200
+++ ncurses-6.0+20161126/debian/control	2016-11-30 02:13:08.000000000 -0200
@@ -1,7 +1,7 @@
 Maintainer: Craig Small <csm...@debian.org>
 Uploaders: Sven Joachim <svenj...@gmx.de>
 Build-Depends: debhelper (>= 9.20141010),
                dpkg-dev (>= 1.17.14),
-               g++-multilib [amd64 i386 powerpc ppc64 s390 sparc] <!nobiarch>,
+               g++-multilib [amd64 i386 powerpc ppc64 s390 s390x sparc] <!nobiarch>,
                libgpm-dev [linux-any],
                pkg-config,
                autotools-dev,
@@ -206,7 +208,7 @@
  architecture.
 
 Package: lib32ncurses5
-Architecture: amd64 ppc64
+Architecture: amd64 ppc64 s390x
 Priority: optional
 Depends: lib32tinfo5 (= ${binary:Version}),
          ${shlibs:Depends}, ${misc:Depends}
@@ -223,7 +225,7 @@
  architecture.
 
 Package: lib32ncurses5-dev
-Architecture: amd64 ppc64
+Architecture: amd64 ppc64 s390x
 Section: libdevel
 Priority: optional
 Depends: lib32tinfo5 (= ${binary:Version}), lib32ncurses5 (= ${binary:Version}),
@@ -242,7 +244,7 @@
  architecture.
 
 Package: lib32ncursesw5
-Architecture: amd64 ppc64
+Architecture: amd64 ppc64 s390x
 Priority: optional
 Depends: lib32tinfo5 (= ${binary:Version}),
          ${shlibs:Depends}, ${misc:Depends}
@@ -258,7 +260,7 @@
  architecture.
 
 Package: lib32ncursesw5-dev
-Architecture: amd64 ppc64
+Architecture: amd64 ppc64 s390x
 Section: libdevel
 Priority: optional
 Depends: lib32tinfo5 (= ${binary:Version}), lib32ncursesw5 (= ${binary:Version}),
@@ -293,7 +295,7 @@
  This package supports the 64-bit ABI variant of your system's architecture.
 
 Package: lib32tinfo5
-Architecture: amd64 ppc64
+Architecture: amd64 ppc64 s390x
 Priority: optional
 Depends: ${shlibs:Depends}, ${misc:Depends}
 Replaces: lib32ncurses5 (<< 5.9-3)
@@ -308,7 +310,7 @@
  This package supports the 32-bit ABI variant of your system's architecture.
 
 Package: lib32tinfo-dev
-Architecture: amd64 ppc64
+Architecture: amd64 ppc64 s390x
 Section: libdevel
 Priority: optional
 Depends: lib32tinfo5 (= ${binary:Version}),
diff -Nru ncurses-6.0+20161126/debian/rules ncurses-6.0+20161126/debian/rules
--- ncurses-6.0+20161126/debian/rules	2016-11-28 15:50:38.000000000 -0200
+++ ncurses-6.0+20161126/debian/rules	2017-03-03 22:22:57.000000000 -0300
@@ -47,6 +47,8 @@
 package-dbgti=libtinfo$(soname)-dbg
 package-term=ncurses-term
 package-examples=ncurses-examples
+
+m32_flag= -m32
 
 workdir=$(shell pwd)
 tempdir=debian/tmp
@@ -93,6 +105,14 @@
 build_64 = build-64
 endif
 
+ifeq ($(DEB_HOST_ARCH),s390x)
+build_32_target = s390-$(DEB_HOST_GNU_SYSTEM)
+build_32 = build-32 build-wide-32
+lib32 = /lib32
+usr_lib32 = /usr/lib32
+m32_flag = -m31
+endif
+
 ifeq ($(DEB_HOST_ARCH),sparc)
 build_64_target = sparc64-$(DEB_HOST_GNU_SYSTEM)
 build_64 = build-64
@@ -213,8 +235,8 @@
 
 	cf_cv_type_of_bool='unsigned char'; export cf_cv_type_of_bool; \
 	cf_cv_working_poll=yes; export cf_cv_working_poll; \
-	cd $(objdir-32) && CFLAGS="$(CFLAGS)" CC="$(HOST_CC) -m32" \
-		BUILD_CC="gcc" CXX="$(HOST_CXX) -m32" \
+	cd $(objdir-32) && CFLAGS="$(CFLAGS)" CC="$(HOST_CC) $(m32_flag)" \
+		BUILD_CC="gcc" CXX="$(HOST_CXX) $(m32_flag)" \
 		$(relsrcdir)/configure \
 		$(CONFARGS) \
 		--host=$(build_32_target) \
@@ -278,8 +315,8 @@
 
 	cf_cv_type_of_bool='unsigned char'; export cf_cv_type_of_bool; \
 	cf_cv_working_poll=yes; export cf_cv_working_poll; \
-	cd $(wobjdir-32) && CFLAGS="$(CFLAGS)" CC="$(HOST_CC) -m32" \
-		BUILD_CC="gcc" BUILD_CPPFLAGS="-D_GNU_SOURCE" CXX="$(HOST_CXX) -m32" \
+	cd $(wobjdir-32) && CFLAGS="$(CFLAGS)" CC="$(HOST_CC) $(m32_flag)" \
+		BUILD_CC="gcc" BUILD_CPPFLAGS="-D_GNU_SOURCE" CXX="$(HOST_CXX) $(m32_flag)" \
 		$(relsrcdir)/configure \
 		$(CONFARGS) \
 		--host=$(build_32_target) \
@@ -310,7 +363,7 @@
 	touch $@
 
 build-32: $(objdir-32)/config.status
-	cd $(objdir-32) && $(MAKE) CC="$(HOST_CC) -m32" CXX="$(HOST_CXX) -m32"
+	cd $(objdir-32) && $(MAKE) CC="$(HOST_CC) $(m32_flag)" CXX="$(HOST_CXX) $(m32_flag)"
 	touch $@
 
 build-64: $(objdir-64)/config.status
@@ -332,7 +389,7 @@
 	touch $@
 
 build-wide-32: $(wobjdir-32)/config.status
-	cd $(wobjdir-32) && $(MAKE) CC="$(HOST_CC) -m32" CXX="$(HOST_CXX) -m32"
+	cd $(wobjdir-32) && $(MAKE) CC="$(HOST_CC) $(m32_flag)" CXX="$(HOST_CXX) $(m32_flag)"
 	touch $@
 
 build-wide-debug: $(wobjdir-debug)/config.status

Reply via email to