diff --git a/giflib-hash64.patch b/giflib-hash64.patch deleted file mode 100644 index e3d7379..0000000 --- a/giflib-hash64.patch +++ /dev/null @@ -1,96 +0,0 @@ ---- giflib-4.1.3/lib/gif_hash.c.64 2005-09-20 13:39:32.000000000 -0700 -+++ giflib-4.1.3/lib/gif_hash.c 2005-09-20 13:41:40.000000000 -0700 -@@ -45,7 +45,7 @@ - NumberOfMisses = 0; - #endif /* DEBUG_HIT_RATE */ - --static int KeyItem(unsigned long Item); -+static int KeyItem(unsigned int Item); - - /****************************************************************************** - * Initialize HashTable - allocate the memory needed and clear it. * -@@ -69,17 +69,17 @@ - ******************************************************************************/ - void _ClearHashTable(GifHashTableType *HashTable) - { -- memset(HashTable -> HTable, 0xFF, HT_SIZE * sizeof(long)); -+ memset(HashTable -> HTable, 0xFF, HT_SIZE * sizeof(int)); - } - - /****************************************************************************** - * Routine to insert a new Item into the HashTable. The data is assumed to be * - * new one. * - ******************************************************************************/ --void _InsertHashTable(GifHashTableType *HashTable, unsigned long Key, int Code) -+void _InsertHashTable(GifHashTableType *HashTable, unsigned int Key, int Code) - { - int HKey = KeyItem(Key); -- unsigned long *HTable = HashTable -> HTable; -+ unsigned int *HTable = HashTable -> HTable; - - #ifdef DEBUG_HIT_RATE - NumberOfTests++; -@@ -99,10 +99,10 @@ - * Routine to test if given Key exists in HashTable and if so returns its code * - * Returns the Code if key was found, -1 if not. * - ******************************************************************************/ --int _ExistsHashTable(GifHashTableType *HashTable, unsigned long Key) -+int _ExistsHashTable(GifHashTableType *HashTable, unsigned int Key) - { - int HKey = KeyItem(Key); -- unsigned long *HTable = HashTable -> HTable, HTKey; -+ unsigned int *HTable = HashTable -> HTable, HTKey; - - #ifdef DEBUG_HIT_RATE - NumberOfTests++; -@@ -127,7 +127,7 @@ - * Because the average hit ratio is only 2 (2 hash references per entry), * - * evaluating more complex keys (such as twin prime keys) does not worth it! * - ******************************************************************************/ --static int KeyItem(unsigned long Item) -+static int KeyItem(unsigned int Item) - { - return ((Item >> 12) ^ Item) & HT_KEY_MASK; - } ---- giflib-4.1.3/lib/gif_hash.h.64 2005-09-20 13:39:42.000000000 -0700 -+++ giflib-4.1.3/lib/gif_hash.h 2005-09-20 13:42:08.000000000 -0700 -@@ -25,12 +25,12 @@ - #define HT_PUT_CODE(l) (l & 0x0FFF) - - typedef struct GifHashTableType { -- unsigned long HTable[HT_SIZE]; -+ unsigned int HTable[HT_SIZE]; - } GifHashTableType; - - GifHashTableType *_InitHashTable(void); - void _ClearHashTable(GifHashTableType *HashTable); --void _InsertHashTable(GifHashTableType *HashTable, unsigned long Key, int Code); --int _ExistsHashTable(GifHashTableType *HashTable, unsigned long Key); -+void _InsertHashTable(GifHashTableType *HashTable, unsigned int Key, int Code); -+int _ExistsHashTable(GifHashTableType *HashTable, unsigned int Key); - - #endif /* _GIF_HASH_H_ */ ---- giflib-4.1.3/lib/egif_lib.c.64 2005-09-20 13:45:28.000000000 -0700 -+++ giflib-4.1.3/lib/egif_lib.c 2005-09-20 13:43:39.000000000 -0700 -@@ -188,6 +188,12 @@ - _GifError = E_GIF_ERR_NOT_ENOUGH_MEM; - return NULL; - } -+ if ((Private->HashTable = _InitHashTable()) == NULL) { -+ free(GifFile); -+ free(Private); -+ _GifError = E_GIF_ERR_NOT_ENOUGH_MEM; -+ return NULL; -+ } - - GifFile->Private = (VoidPtr) Private; - Private->FileHandle = 0; -@@ -832,7 +838,7 @@ - /* Form a new unique key to search hash table for the code combines - * CrntCode as Prefix string with Pixel as postfix char. - */ -- NewKey = (((unsigned long) CrntCode) << 8) + Pixel; -+ NewKey = (((unsigned int) CrntCode) << 8) + Pixel; - if ((NewCode = _ExistsHashTable(HashTable, NewKey)) >= 0) { - /* This Key is already there, or the string is old one, so - * simple take new code as our CrntCode: diff --git a/giflib.spec b/giflib.spec index 9f78615..4e7a778 100644 --- a/giflib.spec +++ b/giflib.spec @@ -1,80 +1,74 @@ -Summary: Library for manipulating GIF format image files -Name: giflib -Version: 4.1.6 -Release: 1%{?dist} -License: MIT -URL: http://www.sf.net/projects/giflib/ -Source0: http://download.sourceforge.net/sourceforge/giflib/%{name}-%{version}.tar.bz2 -Group: System Environment/Libraries -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: libX11-devel, libICE-devel, libSM-devel, libXt-devel - -Obsoletes: libungif <= %{version}-%{release} -Provides: libungif <= %{version}-%{release} +Summary: Library for manipulating GIF format image files +Name: giflib +Version: 4.1.6 +Release: 2%{?dist} +License: MIT +Group: System Environment/Libraries +URL: http://www.sourceforge.net/projects/%{name}/ +Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2 +BuildRequires: libX11-devel, libICE-devel, libSM-devel, libXt-devel +Provides: libungif = %{version}-%{release} +Obsoletes: libungif <= %{version}-%{release} +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description -The giflib package contains a shared library of functions for -loading and saving GIF format image files. It is API and ABI compatible -with libungif, the library which supported uncompressed GIFs while the -Unisys LZW patent was in effect. - -Install the giflib package if you need to write programs that use GIF files. -You should also install the giflib-utils package if you need some simple -utilities to manipulate GIFs. +The giflib package contains a shared library of functions for loading and +saving GIF format image files. It is API and ABI compatible with libungif, +the library which supported uncompressed GIFs while the Unisys LZW patent +was in effect. %package devel -Summary: Development tools for programs which will use the libungif library -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Provides: libungif-devel <= %{version}-%{release} -Obsoletes: libungif-devel <= %{version}-%{release} +Summary: Development tools for programs using the giflib library +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Provides: libungif-devel = %{version}-%{release} +Obsoletes: libungif-devel <= %{version}-%{release} %description devel -This package contains the static libraries, header files and -documentation necessary for development of programs that will use the -giflib library to load and save GIF format image files. - -You should install this package if you need to develop programs which -will use giflib library functions. You'll also need to install the -giflib package. +The giflib-devel package includes header files, libraries necessary for +developing programs which use the giflib library to load and save GIF format +image files. It contains the documentation of the giflib library, too. %package utils -Summary: Programs for manipulating GIF format image files -Group: Applications/Multimedia -Requires: %{name} = %{version}-%{release} -Obsoletes: libungif-progs <= %{version}-%{release} +Summary: Programs for manipulating GIF format image files +Group: Applications/Multimedia +Requires: %{name} = %{version}-%{release} +Provides: libungif-progs = %{version}-%{release} +Obsoletes: libungif-progs <= %{version}-%{release} %description utils -The giflib-utils package contains various programs for manipulating -GIF format image files. - -Install this package if you need to manipulate GIF format image files. -You'll also need to install the giflib package. +The giflib-utils package contains various programs for manipulating GIF +format image files. Install it if you need to manipulate GIF format image +files. %prep %setup -q -%{__sed} -i 's/\r//' doc/lzgif.txt %build %configure make %{?_smp_mflags} all -MAJOR=`echo '%{version}' | sed 's/\([0-9]\+\)\..*/\1/'` +# Handling of libungif compatibility +MAJOR=`echo '%{version}' | sed -e 's/\([0-9]\+\)\..*/\1/'` %{__cc} $RPM_OPT_FLAGS -shared -Wl,-soname,libungif.so.$MAJOR -Llib/.libs -lgif -o libungif.so.%{version} %install -rm -rf ${RPM_BUILD_ROOT} +rm -rf $RPM_BUILD_ROOT +make DESTDIR=$RPM_BUILD_ROOT INSTALL='install -p' install -make install DESTDIR=$RPM_BUILD_ROOT +# Handling of libungif compatibility +install -p -m 755 libungif.so.%{version} $RPM_BUILD_ROOT%{_libdir} +ln -sf libungif.so.%{version} $RPM_BUILD_ROOT%{_libdir}/libungif.so.4 +ln -sf libungif.so.4 $RPM_BUILD_ROOT%{_libdir}/libungif.so -install -m 0755 -p libungif.so.%{version} $RPM_BUILD_ROOT%{_libdir} -ln -sf libungif.so.%{version} ${RPM_BUILD_ROOT}%{_libdir}/libungif.so.4 -ln -sf libungif.so.4 ${RPM_BUILD_ROOT}%{_libdir}/libungif.so +# Don't install any static .a and libtool .la files +rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la} -rm -f $RPM_BUILD_ROOT%{_libdir}/*.la +# Remove makefile relics from documentation +rm -f doc/Makefile* %clean -rm -rf ${RPM_BUILD_ROOT} +rm -rf $RPM_BUILD_ROOT %post -p /sbin/ldconfig @@ -82,14 +76,12 @@ rm -rf ${RPM_BUILD_ROOT} %files %defattr(-,root,root,-) -%doc COPYING README NEWS ONEWS -%doc ChangeLog TODO BUGS AUTHORS +%doc AUTHORS ChangeLog COPYING NEWS README %{_libdir}/lib*.so.* %files devel %defattr(-,root,root,-) %doc doc/* util/giffiltr.c util/gifspnge.c -%{_libdir}/lib*.a %{_libdir}/lib*.so %{_includedir}/*.h @@ -98,6 +90,10 @@ rm -rf ${RPM_BUILD_ROOT} %{_bindir}/* %changelog +* Sat May 09 2009 Robert Scheck 4.1.6-2 +- Solved multilib problems with documentation (#465208, #474538) +- Removed static library from giflib-devel package (#225796 #c1) + * Mon Apr 13 2009 Tom "spot" Callaway - 4.1.6-1 - update to 4.1.6