diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..05a41b8 --- /dev/null +++ b/Makefile @@ -0,0 +1,133 @@ +# +# Makefile for compiling libzio +# +# Author: Werner Fink, +# + +LARGE = $(shell getconf LFS_CFLAGS) +CFLAGS = $(RPM_OPT_FLAGS) -pipe -Wall -D_GNU_SOURCE -D_REENTRANT $(LARGE) +CC = gcc +MAJOR = 0 +MINOR = 93 +VERSION = $(MAJOR).$(MINOR) +SONAME = libzio.so.$(MAJOR) +LDMAP = -Wl,--version-script=zio.map + +prefix = /usr +libdir = $(prefix)/lib +datadir = $(prefix)/share +mandir = $(datadir)/man +incdir = $(prefix)/include + +FILES = README \ + COPYING \ + Makefile \ + zio.c \ + zioP.h \ + zio.h.in \ + testt.c \ + tests.c \ + lzw.h \ + unlzw.c \ + zio.map \ + fzopen.3.in + +### Includes and Defines (add further entries here): + +cc-include = $(shell $(CC) $(INCLUDES) -include $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1 && echo "-D$(2)") +cc-library = $(shell echo 'int main () { return 0; }' |$(CC) -l$(1:lib%=%) -o /dev/null -xc - > /dev/null 2>&1 && echo yes) +cc-function = $(shell echo 'extern void $(1)(void); int main () { $(1)(); return 0; }' |$(CC) -o /dev/null -xc - > /dev/null 2>&1 && echo "-D$(2)") + +CFLAGS += $(call cc-include,libio.h,HAVE_LIBIO_H) +CFLAGS += $(call cc-function,fopencookie,HAVE_FOPENCOOKIE) +CFLAGS += $(call cc-function,funopen,HAVE_FUNOPEN) + +CFLAGS += $(call cc-include,zlib.h,HAS_ZLIB_H) +CFLAGS += $(call cc-include,bzlib.h,HAS_BZLIB_H) +CFLAGS += $(call cc-include,lzmadec.h,HAS_LZMADEC_H) +CFLAGS += $(call cc-include,lzma.h,HAS_LZMA_H) + +LIBS = -lz +ifeq ($(call cc-library,libbz2),yes) + LIBS += -lbz2 +endif +ifeq ($(call cc-library,liblzma),yes) + LIBS += -llzma +else +ifeq ($(call cc-library,lzmadec),yes) + LIBS += -llzmadec +endif +endif + +all: shared static +noweak: CFLAGS += -DNO_WEAK +noweak: LINK += $(LIBS) +noweak: all +shared: libzio.so.$(VERSION) zio.map +static: libzio.a + +obj/zio.o: zio.c zioP.h zio.h + test -d obj/ || mkdir obj/ + $(CC) $(CFLAGS) -o $@ -c $< + +obs/zio.o: zio.c zioP.h zio.h + test -d obs/ || mkdir obs/ + $(CC) $(CFLAGS) -fPIC -o $@ -c $< + +obj/unlzw.o: unlzw.c lzw.h + test -d obj/ || mkdir obj/ + $(CC) $(CFLAGS) -funroll-loops -o $@ -c $< + +obs/unlzw.o: unlzw.c lzw.h + test -d obs/ || mkdir obs/ + $(CC) $(CFLAGS) -fPIC -o $@ -c $< + +libzio.a: obj/zio.o obj/unlzw.o + ar -rv $@ $^ + ranlib $@ + +libzio.so.$(VERSION): obs/zio.o obs/unlzw.o + gcc -shared -Wl,-soname,$(SONAME),-stats $(LDMAP) -o $@ $^ $(LINK) + +zioP.h: /usr/include/bzlib.h /usr/include/zlib.h +zio.h: zio.h.in /usr/include/stdio.h + sed 's/@@VERSION@@/$(VERSION)/' < $< > $@ +fzopen.3: fzopen.3.in + sed 's/@@VERSION@@/$(VERSION)/' < $< > $@ + +unlzw.c: lzw.h + +install: install-shared install-static install-data + +install-shared: libzio.so.$(VERSION) + mkdir -p $(DESTDIR)$(libdir) + install -m 0755 libzio.so.$(VERSION) $(DESTDIR)$(libdir)/ + ln -sf libzio.so.$(VERSION) $(DESTDIR)$(libdir)/libzio.so.$(MAJOR) + ln -sf libzio.so.$(MAJOR) $(DESTDIR)$(libdir)/libzio.so + +install-static: libzio.a + mkdir -p $(DESTDIR)$(libdir) + install -m 0644 libzio.a $(DESTDIR)$(libdir)/ + +install-data: zio.h fzopen.3 + mkdir -p $(DESTDIR)$(incdir) + mkdir -p $(DESTDIR)$(mandir)/man3 + install -m 0644 zio.h $(DESTDIR)$(incdir)/ + install -m 0644 fzopen.3 $(DESTDIR)$(mandir)/man3/ + +clean: + rm -f *.a *.so* testt tests zio.h + rm -rf obj/ obs/ + rm -f libzio-$(VERSION).tar.gz + +dest: clean + mkdir libzio-$(VERSION) + cp -p $(FILES) libzio-$(VERSION)/ + tar czf libzio-$(VERSION).tar.gz libzio-$(VERSION)/ + rm -rf libzio-$(VERSION)/ + +testt: testt.c libzio.a + $(CC) $(CFLAGS) -o $@ $^ $(LIBS) + +tests: tests.c libzio.a + $(CC) $(CFLAGS) -o $@ $^ $(LIBS) diff --git a/libzio-0.9.dif b/libzio-0.9.dif deleted file mode 100644 index 066aea2..0000000 --- a/libzio-0.9.dif +++ /dev/null @@ -1,127 +0,0 @@ ---- fzopen.3.in -+++ fzopen.3.in 2008-10-16 14:48:34.823680248 +0200 -@@ -1,6 +1,8 @@ -+'\" t -*- coding: UTF-8 -*- - .\" - .\" Copyright 2004 Werner Fink, 2004 SuSE LINUX AG, Germany. - .\" Copyright 2006 Werner Fink, 2006 SuSE Products GmbH, Germany. -+.\" Copyright 2008 Werner Fink, 2008 SuSE Products GmbH, Germany. - .\" - .\" This program is free software; you can redistribute it and/or modify - .\" it under the terms of the GNU General Public License as published by -@@ -100,12 +102,75 @@ only supports the suffixes - .IR .z " and ".gz - for gzipped files and - .I .bz2 --for bzip2ed files. -+for bzip2ed files. All supported formats can be found in -+the following table: -+.IP -+.TS H -+allbox; -+c l l l l l -+rb l l l l l. -+ fread fwrite fseek suffix library -+gzip yes yes yes .gz -lz -+ bzip2 yes yes no .bz2 -lbz2 -+LZW yes no no .Z builtin -+lzma yes no yes .lzma -llzmadec -+.TE -+.PP - .PP - On reading first the appropriate suffixes are checked - if not provided. If no file is found the magic - byte sequence at the beginning of the file is checked - to detect a gzip or bzip2 file. -+.PP -+.\" -+.SH CONFIGURATION -+With the help of -+.BR autoconf (1) -+and a few lines in the common file -+.B configure.in -+found in many source packages a programmer or maintainer -+can extend the automatic configuration to find the -+appropriate libraries together with the libzio: -+.PP -+.IP -+.nf -+AC_CHECK_HEADER(zlib.h,[ -+ for lib in z gz; do -+ AC_CHECK_LIB($lib, gzopen, [LIBS="$LIBS -l$lib"; break]) -+ done]) -+AC_CHECK_HEADER(bzlib.h,[ -+ for lib in bz2 bzip2; do -+ AC_CHECK_LIB($lib, BZ2_bzopen, [LIBS="$LIBS -l$lib"; break]) -+ done]) -+AC_CHECK_HEADER(lzmadec.h,[ -+ AC_CHECK_LIB(lzmadec, lzmadec_read, [LIBS="$LIBS -l$lib"]) -+ ]) -+AC_CHECK_HEADER(zio.h,[ -+ AC_CHECK_LIB(zio, fzopen, [LIBS="$LIBS -lzio" -+ AC_DEFINE(HAVE_ZIO)]) -+ ]) -+.fi -+.PP -+combined with two lines in the common file -+.B config.h.in -+like -+.PP -+.RS 1c -+.nf -+/* Define to 1 if you have libzio for opening compressed files */ -+#undef HAVE_ZIO -+.fi -+.RE -+.PP -+it is easy to use the -+.BR cpp (1) -+macro -+.I HAVE_ZIO -+for the usage of -+.B fzopen -+instead of -+.BR fopen (3). -+.PP - .\" - .SH RETURN VALUES - Upon successful completion -@@ -215,7 +280,7 @@ functions of the e.g. - .\" - .BR /usr/include/zio.h - .SH SEE ALSO --.BR fopen (8), -+.BR fopen (3), - .br - .BR gzip (1), - .br -@@ -229,7 +294,8 @@ functions of the e.g. - .br - .BR /usr/include/lzmadec.h . - .PP --Further informations about Programming Custom Streams -+Further informations about -+.B Programming Custom Streams - can be found by using the command - .IP - .B info libc 'Custom streams' -@@ -243,5 +309,8 @@ does not exist (yet). - .br - 2006 Werner Fink, - 2006 SuSE Products GmbH, Germany. -+.br -+2008 Werner Fink, -+2008 SuSE Products GmbH, Germany. - .SH AUTHOR - Werner Fink ---- zio.c -+++ zio.c 2008-09-24 17:50:43.000000000 +0200 -@@ -189,7 +189,7 @@ FILE * fzopen(const char * path, const c - what = 'Z'; - else if (strcmp(path + len - 4, ".bz2" ) == 0) - what = 'b'; -- else if (strcmp(path + len - 4, ".lzma") == 0) -+ else if (strcmp(path + len - 5, ".lzma") == 0) - what = 'l'; - - if (what == 'n' && *check == 'r') { diff --git a/libzio-0.9.tar.bz2 b/libzio-0.9.tar.bz2 deleted file mode 100644 index 52c4443..0000000 --- a/libzio-0.9.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c80e4ab5f128e549bedad7519a2482ed83438e0179ec2a37d4af3ecd464044ab -size 17813 diff --git a/libzio-0.93.tar.bz2 b/libzio-0.93.tar.bz2 new file mode 100644 index 0000000..14ac1ba --- /dev/null +++ b/libzio-0.93.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95ae2ba76dbfc9c03caa70cc52b5b1a522e41f811336bf7e6c5e16b2fc7e1b78 +size 20596 diff --git a/libzio.changes b/libzio.changes index 4dd0730..21cfe5f 100644 --- a/libzio.changes +++ b/libzio.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Feb 13 14:05:11 CET 2009 - werner@suse.de + +- Use liblzma from xz package if available +- Detect if funopen(3) can be used if no fopencookie(3) found + ------------------------------------------------------------------- Wed Jan 7 12:34:56 CET 2009 - olh@suse.de diff --git a/libzio.spec b/libzio.spec index bfa25e4..2377a2a 100644 --- a/libzio.spec +++ b/libzio.spec @@ -1,5 +1,5 @@ # -# spec file for package libzio (Version 0.9) +# spec file for package libzio (Version 0.93) # # Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany. # @@ -19,12 +19,11 @@ Name: libzio -BuildRequires: zlib-devel -%if %suse_version > 1020 -BuildRequires: libbz2-devel -%endif -%if %suse_version > 1030 +BuildRequires: libbz2-devel zlib-devel +%if %suse_version <= 1110 BuildRequires: lzma lzma-devel +%else +BuildRequires: xz xz-devel %endif License: GPL v2 or later Group: System/Libraries @@ -34,12 +33,11 @@ AutoReqProv: on Obsoletes: libzio-64bit %endif # -Version: 0.9 -Release: 5 +Version: 0.93 +Release: 1 Summary: A Library for Accessing Compressed Text Files BuildRoot: %{_tmppath}/%{name}-%{version}-build Source: libzio-%{version}.tar.bz2 -Patch: libzio-%{version}.dif %description Libzio provides a wrapper function for reading or writing gzip or bzip2 @@ -54,7 +52,7 @@ Authors: %package devel License: GPL v2 or later Summary: Libzio development files -Group: System/Libraries +Group: Development/Libraries/C and C++ Requires: libzio = %{version} AutoReqProv: on # bug437293 @@ -75,7 +73,6 @@ Authors: %prep %setup -q -%patch %build make @@ -83,10 +80,10 @@ make %check make testt make tests -%if %suse_version > 1030 +%if %suse_version <= 1110 for comp in gzip bzip2 lzma %else -for comp in gzip bzip2 +for comp in gzip bzip2 lzma xz %endif do $comp -c < fzopen.3.in > fzopen.test @@ -97,11 +94,9 @@ done %install make DESTDIR=$RPM_BUILD_ROOT install libdir=%{_libdir} mandir=%{_mandir} -%post -%run_ldconfig +%post -p /sbin/ldconfig -%postun -%run_ldconfig +%postun -p /sbin/ldconfig %files %defattr(-,root,root) @@ -117,6 +112,9 @@ make DESTDIR=$RPM_BUILD_ROOT install libdir=%{_libdir} mandir=%{_mandir} /usr/include/zio.h %changelog +* Fri Feb 13 2009 werner@suse.de +- Use liblzma from xz package if available +- Detect if funopen(3) can be used if no fopencookie(3) found * Wed Jan 07 2009 olh@suse.de - obsolete old -XXbit packages (bnc#437293) * Tue Nov 11 2008 ro@suse.de