[mingw-zlib: 7/25] - use buildsystem from native zlib package - add mingw32-minizip package

Kalev Lember kalev at fedoraproject.org
Tue Mar 6 21:32:50 UTC 2012


commit 2a1975b7960312f26aa2a1ca8dc5845f597da030
Author: sailer <sailer at fedoraproject.org>
Date:   Fri May 1 20:17:32 2009 +0000

    - use buildsystem from native zlib package
    - add mingw32-minizip package

 mingw32-zlib.spec          |   76 ++++++++++++++++++++---------
 minizip-1.2.3-malloc.patch |   15 ++++++
 zlib-1.2.3-autotools.patch |  115 ++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 183 insertions(+), 23 deletions(-)
---
diff --git a/mingw32-zlib.spec b/mingw32-zlib.spec
index 5fcc2f2..974f644 100644
--- a/mingw32-zlib.spec
+++ b/mingw32-zlib.spec
@@ -6,27 +6,25 @@
 
 Name:           mingw32-zlib
 Version:        1.2.3
-Release:        15%{?dist}
+Release:        16%{?dist}
 Summary:        MinGW Windows zlib compression library
 
 License:        zlib
 Group:          Development/Libraries
 URL:            http://www.zlib.net/
 Source0:        http://www.zlib.net/zlib-%{version}.tar.gz
+Patch3:         zlib-1.2.3-autotools.patch
+Patch6:         minizip-1.2.3-malloc.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 BuildArch:      noarch
 
-# From Fedora native package, none is applicable to us.
-#Patch3:        zlib-1.2.3-autotools.patch
-#Patch4:        minizip-1.2.3-autotools.patch
-#Patch5:        zlib-1.2.3-minizip.patch
-
 # MinGW-specific patches.
 Patch100:       zlib-win32.patch
 
 BuildRequires:  mingw32-filesystem >= 49
 BuildRequires:  mingw32-gcc
 BuildRequires:  mingw32-binutils
+BuildRequires:  perl
 
 
 %description
@@ -40,14 +38,29 @@ Requires: mingw32-zlib = %{version}-%{release}
 %description static
 The mingw32-zlib-static package contains static library for mingw32-zlib development.
 
+%package -n mingw32-minizip
+Summary: Minizip manipulates files from a .zip archive
+Group:          Development/Libraries
+Requires: mingw32-zlib = %{version}-%{release}
+
+%description -n  mingw32-minizip
+MinGW Minizip manipulates files from a .zip archive.
+
 
 %prep
 %setup -q -n zlib-1.2.3
-
 %patch100 -p1
-
+cp -r . x || :
+%patch3 -p1 -b .atools
+# patch cannot create an empty dir
+mkdir m4
+%patch6 -p1 -b .mal
+iconv -f windows-1252 -t utf-8 <ChangeLog >ChangeLog.tmp
+mv ChangeLog.tmp ChangeLog
+cp Makefile Makefile.old
 
 %build
+pushd x
 CC=%{_mingw32_cc} \
 CFLAGS="%{_mingw32_cflags}" \
 RANLIB=%{_mingw32_ranlib} \
@@ -61,28 +74,30 @@ make -f win32/Makefile.gcc \
   DLLWRAP=i686-pc-mingw32-dllwrap \
   STRIP=%{_mingw32_strip} \
   all
+popd
+
+autoreconf --install;
+%{_mingw32_configure}
+make %{?_smp_mflags} libz.la
+perl -i -pe 's,libz-1.dll,zlib1.dll,' libz.la
+rm -f libz.dll.a
+cp x/libzdll.a libz.dll.a
+cp x/zlib1.dll .
+rm -f .libs/libz.dll.a
+cp x/libzdll.a .libs/libz.dll.a
+cp x/zlib1.dll .libs/
+make %{?_smp_mflags}
 
 
 %install
 rm -rf $RPM_BUILD_ROOT
 
-mkdir -p $RPM_BUILD_ROOT%{_mingw32_bindir}
-mkdir -p $RPM_BUILD_ROOT%{_mingw32_includedir}
-mkdir -p $RPM_BUILD_ROOT%{_mingw32_libdir}
-
-make -f win32/Makefile.gcc \
-     INCLUDE_PATH=$RPM_BUILD_ROOT%{_mingw32_includedir} \
-     LIBRARY_PATH=$RPM_BUILD_ROOT%{_mingw32_libdir} \
-     BINARY_PATH=$RPM_BUILD_ROOT%{_mingw32_bindir} \
-     install
-
-# .dll.a file is misnamed for some reason - fix that.
-mv $RPM_BUILD_ROOT%{_mingw32_libdir}/libzdll.a \
-   $RPM_BUILD_ROOT%{_mingw32_libdir}/libz.dll.a
+make install DESTDIR=$RPM_BUILD_ROOT
 
-# Do NOT remove static library.
-# rm $RPM_BUILD_ROOT%{_mingw32_libdir}/libz.a
+rm -rf $RPM_BUILD_ROOT/%{_mingw32_mandir}
 
+rm -f $RPM_BUILD_ROOT/%{_mingw32_bindir}/libz-1.dll
+install x/zlib1.dll $RPM_BUILD_ROOT/%{_mingw32_bindir}/
 
 %clean
 rm -rf $RPM_BUILD_ROOT
@@ -94,6 +109,7 @@ rm -rf $RPM_BUILD_ROOT
 %{_mingw32_includedir}/zlib.h
 %{_mingw32_libdir}/libz.dll.a
 %{_mingw32_bindir}/zlib1.dll
+%{_mingw32_libdir}/libz.la
 
 
 %files static
@@ -101,7 +117,21 @@ rm -rf $RPM_BUILD_ROOT
 %{_mingw32_libdir}/libz.a
 
 
+%files -n mingw32-minizip
+%defattr(-,root,root,-)
+%doc contrib/minizip/ChangeLogUnzip
+%{_mingw32_libdir}/libminizip.dll.a
+%{_mingw32_libdir}/libminizip.la
+%{_mingw32_bindir}/libminizip-1.dll
+%dir %{_mingw32_includedir}/minizip
+%{_mingw32_includedir}/minizip/*.h
+%{_mingw32_libdir}/pkgconfig/minizip.pc
+
+
 %changelog
+* Thu Apr 30 2009 Thomas Sailer <t.sailer at alumni.ethz.ch> - 1.2.3-16
+- use autotools build system from native package
+
 * Mon Mar  3 2009 W. Pilorz <wpilorz at gmail.com> - 1.2.3-15
 - Add static subpackage.
 
diff --git a/minizip-1.2.3-malloc.patch b/minizip-1.2.3-malloc.patch
new file mode 100644
index 0000000..1f4c3fd
--- /dev/null
+++ b/minizip-1.2.3-malloc.patch
@@ -0,0 +1,15 @@
+diff -up zlib-1.2.3/contrib/minizip/miniunz.c.pom zlib-1.2.3/contrib/minizip/miniunz.c
+--- zlib-1.2.3/contrib/minizip/miniunz.c.pom	2005-07-12 20:08:40.000000000 +0200
++++ zlib-1.2.3/contrib/minizip/miniunz.c	2008-12-01 11:12:23.000000000 +0100
+@@ -112,6 +112,11 @@ int makedir (newdir)
+     return 0;
+ 
+   buffer = (char*)malloc(len+1);
++  if (buffer==NULL)
++  {
++    printf("Error allocating memory\n");
++    return UNZ_INTERNALERROR;
++  }                          
+   strcpy(buffer,newdir);
+ 
+   if (buffer[len-1] == '/') {
diff --git a/zlib-1.2.3-autotools.patch b/zlib-1.2.3-autotools.patch
new file mode 100644
index 0000000..d52427a
--- /dev/null
+++ b/zlib-1.2.3-autotools.patch
@@ -0,0 +1,115 @@
+diff -urN zlib-1.2.3.orig/Makefile.am zlib-1.2.3.kasal/Makefile.am
+--- zlib-1.2.3.orig/Makefile.am	1970-01-01 01:00:00.000000000 +0100
++++ zlib-1.2.3.kasal/Makefile.am	2009-03-17 17:58:36.000000000 +0100
+@@ -0,0 +1,67 @@
++ACLOCAL_AMFLAGS = -I m4 --install
++
++lib_LTLIBRARIES = libz.la
++
++libz_la_SOURCES = \
++	adler32.c \
++	compress.c \
++	crc32.c \
++	crc32.h \
++	gzio.c \
++	uncompr.c \
++	deflate.c \
++	deflate.h \
++	trees.c \
++	trees.h \
++	zutil.c \
++	zutil.h \
++	inflate.c \
++	inflate.h \
++	infback.c \
++	inftrees.c \
++	inftrees.h \
++	inffast.c \
++	inffast.h \
++	infflate.h
++
++# Use -version-number to match the file name used before autoconfiscation.
++libz_la_LDFLAGS = -version-number 1:2:3 -no-undefined
++
++include_HEADERS = zlib.h
++nodist_include_HEADERS = zconf.h
++
++dist_man_MANS = zlib.3
++
++## libminizip:
++
++lib_LTLIBRARIES += libminizip.la
++
++libminizip_la_SOURCES = \
++	contrib/minizip/ioapi.c \
++	contrib/minizip/mztools.c \
++	contrib/minizip/unzip.c \
++	contrib/minizip/zip.c
++
++# do not build the static version of libminizip
++libminizip_la_CFLAGS = -shared
++libminizip_la_LDFLAGS = -version-info 1:0:0 -no-undefined
++libminizip_la_LIBADD = libz.la
++
++minizip_includedir = $(includedir)/minizip
++minizip_include_HEADERS = \
++	contrib/minizip/crypt.h \
++	contrib/minizip/ioapi.h \
++	contrib/minizip/mztools.h \
++	contrib/minizip/unzip.h \
++	contrib/minizip/zip.h
++
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = minizip.pc
++
++EXTRA_PROGRAMS = miniunzip minizip
++
++miniunzip_SOURCES = contrib/minizip/miniunz.c
++miniunzip_LDADD = libminizip.la
++
++minizip_SOURCES = contrib/minizip/minizip.c
++minizip_LDADD = libminizip.la
+diff -urN zlib-1.2.3.orig/configure.ac zlib-1.2.3.kasal/configure.ac
+--- zlib-1.2.3.orig/configure.ac	1970-01-01 01:00:00.000000000 +0100
++++ zlib-1.2.3.kasal/configure.ac	2009-03-17 17:28:41.000000000 +0100
+@@ -0,0 +1,13 @@
++#                                               -*- Autoconf -*-
++# Process this file with autoconf to produce a configure script.
++
++AC_INIT([zlib], [1.2.3], [bugzilla.redhat.com])
++AC_CONFIG_SRCDIR([minigzip.c])
++AC_CONFIG_MACRO_DIR([m4])
++AM_INIT_AUTOMAKE([foreign])
++LT_INIT
++
++AC_SUBST([HAVE_UNISTD_H], [0])
++AC_CHECK_HEADER([unistd.h], [HAVE_UNISTD_H=1], [])
++AC_CONFIG_FILES([Makefile minizip.pc zconf.h:zconf.in.h])
++AC_OUTPUT
+diff -urN zlib-1.2.3.orig/minizip.pc.in zlib-1.2.3.kasal/minizip.pc.in
+--- zlib-1.2.3.orig/minizip.pc.in	1970-01-01 01:00:00.000000000 +0100
++++ zlib-1.2.3.kasal/minizip.pc.in	2009-01-07 15:49:34.000000000 +0100
+@@ -0,0 +1,11 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@/minizip
++
++Name: minizip
++Description: Minizip zip file manipulation library
++Requires:
++Version: @PACKAGE_VERSION@
++Libs: -L${libdir} -lminizip -lz
++Cflags: -I${includedir}
+diff -urN zlib-1.2.3.orig/zconf.in.h zlib-1.2.3.kasal/zconf.in.h
+--- zlib-1.2.3.orig/zconf.in.h	2005-05-28 08:40:35.000000000 +0200
++++ zlib-1.2.3.kasal/zconf.in.h	2009-03-17 17:17:11.000000000 +0100
+@@ -284,7 +284,7 @@
+    typedef Byte       *voidp;
+ #endif
+ 
+-#if 0           /* HAVE_UNISTD_H -- this line is updated by ./configure */
++#if @HAVE_UNISTD_H@           /* HAVE_UNISTD_H -- this line is updated by ./configure */
+ #  include <sys/types.h> /* for off_t */
+ #  include <unistd.h>    /* for SEEK_* and off_t */
+ #  ifdef VMS


More information about the mingw mailing list