Package: src:zlib
Version: 1.2.6.dfsg-2
Severity: wishlist
Tags: patch

Hi Mark,

Matthias Klose is working on building the Python Windows distutils
installers using MinGW-w64, and doing this requires having zlib built
for Windows targets. Would it be at all possible for you to add this
to the existing zlib package? The attached patch contains the
necessary changes.

I know this is a slippery slope to set out on, as one could imagine
adding this kind of support to all kinds of libraries. I'd like to
avoid having to repackage zlib just for this though!

Thanks in advance,

Stephen


-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (500, 'testing'), (500, 'stable'), (200, 'unstable'), (1, 
'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.2.0-2-686-pae (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -urN zlib-1.2.6.dfsg.orig/debian/control zlib-1.2.6.dfsg/debian/control
--- zlib-1.2.6.dfsg.orig/debian/control	2012-02-24 00:28:23.000000000 +0100
+++ zlib-1.2.6.dfsg/debian/control	2012-05-04 01:48:53.000000000 +0200
@@ -5,6 +5,7 @@
 Standards-Version: 3.8.3
 Homepage: http://zlib.net/
 Build-Depends: debhelper (>= 8.1.3~), binutils (>= 2.18.1~cvs20080103-2) [mips mipsel], gcc-multilib [amd64 i386 kfreebsd-amd64 mips mipsel powerpc ppc64 s390 sparc], dpkg-dev (>= 1.16.0)
+Build-Depends-Indep: gcc-mingw-w64
 
 Package: zlib1g
 Architecture: any
@@ -120,3 +121,19 @@
  zlib is a library implementing the deflate compression method found
  in gzip and PKZIP.  This package includes the development support
  files for building n32 applications.
+
+Package: libz-mingw-w64-i686-dev
+Section: libdevel
+Architecture: all
+Description: compression library - Windows x86 development
+ zlib is a library implementing the deflate compression method found
+ in gzip and PKZIP.  This package include the development support
+ files for building Windows x86 applications using MinGW-w64.
+
+Package: libz-mingw-w64-x86-64-dev
+Section: libdevel
+Architecture: all
+Description: compression library - Windows x64 development
+ zlib is a library implementing the deflate compression method found
+ in gzip and PKZIP.  This package include the development support
+ files for building Windows x64 applications using MinGW-w64.
diff -urN zlib-1.2.6.dfsg.orig/debian/libz-mingw-w64-i686-dev.install zlib-1.2.6.dfsg/debian/libz-mingw-w64-i686-dev.install
--- zlib-1.2.6.dfsg.orig/debian/libz-mingw-w64-i686-dev.install	1970-01-01 01:00:00.000000000 +0100
+++ zlib-1.2.6.dfsg/debian/libz-mingw-w64-i686-dev.install	2012-05-04 01:41:16.000000000 +0200
@@ -0,0 +1,3 @@
+usr/i686-w64-mingw32/include/*
+usr/i686-w64-mingw32/lib/*
+usr/i686-w64-mingw32/lib/pkgconfig/*
diff -urN zlib-1.2.6.dfsg.orig/debian/libz-mingw-w64-x86-64-dev.install zlib-1.2.6.dfsg/debian/libz-mingw-w64-x86-64-dev.install
--- zlib-1.2.6.dfsg.orig/debian/libz-mingw-w64-x86-64-dev.install	1970-01-01 01:00:00.000000000 +0100
+++ zlib-1.2.6.dfsg/debian/libz-mingw-w64-x86-64-dev.install	2012-05-04 01:45:03.000000000 +0200
@@ -0,0 +1,3 @@
+usr/x86_64-w64-mingw32/include/*
+usr/x86_64-w64-mingw32/lib/*
+usr/x86_64-w64-mingw32/lib/pkgconfig/*
diff -urN zlib-1.2.6.dfsg.orig/debian/rules zlib-1.2.6.dfsg/debian/rules
--- zlib-1.2.6.dfsg.orig/debian/rules	2012-02-12 02:43:33.000000000 +0100
+++ zlib-1.2.6.dfsg/debian/rules	2012-05-04 01:48:01.000000000 +0200
@@ -105,7 +105,26 @@
 	    uname=GNU ./configure --shared --prefix=/usr --libdir=\$${prefix}/usr/lib32
 	touch $@
 
-build: build-stamp $(EXTRA_BUILD)
+configurew32-stamp:
+	dh_testdir
+
+	mkdir -p debian/w32
+	cp -r $(COPYLIST) win32 debian/w32
+	# No configuration required for Windows targets
+
+	touch $@
+
+configurew64-stamp:
+	dh_testdir
+
+	mkdir -p debian/w64
+	cp -r $(COPYLIST) win32 debian/w64
+	# No configuration required for Windows targets
+
+	touch $@
+
+build: build-arch build-indep
+build-arch: build-stamp $(EXTRA_BUILD)
 build-stamp: configure-stamp
 	dh_testdir
 
@@ -130,6 +149,18 @@
 	make -C debian/n32
 	touch $@
 
+build-indep: buildw32-stamp buildw64-stamp
+
+buildw32-stamp: configurew32-stamp
+	dh_testdir
+	$(MAKE) -C debian/w32 -fwin32/Makefile.gcc PREFIX=i686-w64-mingw32-
+	touch $@
+
+buildw64-stamp: configurew64-stamp
+	dh_testdir
+	$(MAKE) -C debian/w64 -fwin32/Makefile.gcc PREFIX=x86_64-w64-mingw32-
+	touch $@
+
 clean:
 	dh_testdir
 	dh_testroot
@@ -141,6 +172,8 @@
 	rm -rf debian/64 build64-stamp configure64-stamp
 	rm -rf debian/32 build32-stamp configure32-stamp
 	rm -rf debian/n32 buildn32-stamp configuren32-stamp
+	rm -rf debian/w32 buildw32-stamp configurew32-stamp
+	rm -rf debian/w64 buildw64-stamp configurew64-stamp
 	-mv Makefile.stash Makefile
 	-mv zlibdefs.h.stash zlibdefs.h
 
@@ -163,12 +196,33 @@
 installn32: install buildn32-stamp
 	$(MAKE) -C debian/n32 prefix=$(CURDIR)/debian/tmp install
 
+installw32: buildw32-stamp
+	$(MAKE) -C debian/w32 -f$(CURDIR)/win32/Makefile.gcc prefix=$(CURDIR)/debian/tmp/usr/i686-w64-mingw32 INCLUDE_PATH=$(CURDIR)/debian/tmp/usr/i686-w64-mingw32/include LIBRARY_PATH=$(CURDIR)/debian/tmp/usr/i686-w64-mingw32/lib BINARY_PATH=$(CURDIR)/debian/tmp/usr/i686-w64-mingw32/lib SHARED_MODE=1 install
+	sed -i 's|$(CURDIR)/debian/tmp||g' $(CURDIR)/debian/tmp/usr/i686-w64-mingw32/lib/pkgconfig/zlib.pc
+
+installw64: buildw64-stamp
+	$(MAKE) -C debian/w32 -f$(CURDIR)/win32/Makefile.gcc prefix=$(CURDIR)/debian/tmp/usr/x86_64-w64-mingw32 INCLUDE_PATH=$(CURDIR)/debian/tmp/usr/x86_64-w64-mingw32/include LIBRARY_PATH=$(CURDIR)/debian/tmp/usr/x86_64-w64-mingw32/lib BINARY_PATH=$(CURDIR)/debian/tmp/usr/x86_64-w64-mingw32/lib SHARED_MODE=1 install
+	sed -i 's|$(CURDIR)/debian/tmp||g' $(CURDIR)/debian/tmp/usr/x86_64-w64-mingw32/lib/pkgconfig/zlib.pc
+
 # Build architecture-independent files here.
-binary-indep: build install
-# We have nothing to do by default.
+binary-indep: build-indep installw32 installw64
+	dh_testdir -i
+	dh_testroot -i
+	dh_installchangelogs -i ChangeLog
+	dh_installdocs -i
+	dh_install -i --sourcedir=debian/tmp
+	dh_lintian -i
+	dh_link -i
+	dh_compress -i
+	dh_fixperms -i
+	dh_installdeb -i
+	dh_shlibdeps -i
+	dh_gencontrol -i
+	dh_md5sums -i
+	dh_builddeb -i
 
 # Build architecture-dependent files here.
-binary-arch: build install $(EXTRA_INSTALL)
+binary-arch: build-arch install $(EXTRA_INSTALL)
 	dh_testdir
 	dh_testroot
 	dh_installchangelogs -s ChangeLog

Reply via email to