- Solved multilib problems with documentation (#465208, #474538)

- Removed static library from giflib-devel package (#225796 #c1)
This commit is contained in:
Robert Scheck 2009-05-09 21:45:18 +00:00
parent 0e624fa610
commit 5a479e0356
2 changed files with 50 additions and 150 deletions

View File

@ -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:

View File

@ -1,80 +1,74 @@
Summary: Library for manipulating GIF format image files Summary: Library for manipulating GIF format image files
Name: giflib Name: giflib
Version: 4.1.6 Version: 4.1.6
Release: 1%{?dist} Release: 2%{?dist}
License: MIT License: MIT
URL: http://www.sf.net/projects/giflib/ Group: System Environment/Libraries
Source0: http://download.sourceforge.net/sourceforge/giflib/%{name}-%{version}.tar.bz2 URL: http://www.sourceforge.net/projects/%{name}/
Group: System Environment/Libraries Source: http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: libX11-devel, libICE-devel, libSM-devel, libXt-devel
BuildRequires: libX11-devel, libICE-devel, libSM-devel, libXt-devel Provides: libungif = %{version}-%{release}
Obsoletes: libungif <= %{version}-%{release}
Obsoletes: libungif <= %{version}-%{release} BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Provides: libungif <= %{version}-%{release}
%description %description
The giflib package contains a shared library of functions for The giflib package contains a shared library of functions for loading and
loading and saving GIF format image files. It is API and ABI compatible saving GIF format image files. It is API and ABI compatible with libungif,
with libungif, the library which supported uncompressed GIFs while the the library which supported uncompressed GIFs while the Unisys LZW patent
Unisys LZW patent was in effect. 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.
%package devel %package devel
Summary: Development tools for programs which will use the libungif library Summary: Development tools for programs using the giflib library
Group: Development/Libraries Group: Development/Libraries
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Provides: libungif-devel <= %{version}-%{release} Provides: libungif-devel = %{version}-%{release}
Obsoletes: libungif-devel <= %{version}-%{release} Obsoletes: libungif-devel <= %{version}-%{release}
%description devel %description devel
This package contains the static libraries, header files and The giflib-devel package includes header files, libraries necessary for
documentation necessary for development of programs that will use the developing programs which use the giflib library to load and save GIF format
giflib library to load and save GIF format image files. image files. It contains the documentation of the giflib library, too.
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.
%package utils %package utils
Summary: Programs for manipulating GIF format image files Summary: Programs for manipulating GIF format image files
Group: Applications/Multimedia Group: Applications/Multimedia
Requires: %{name} = %{version}-%{release} Requires: %{name} = %{version}-%{release}
Obsoletes: libungif-progs <= %{version}-%{release} Provides: libungif-progs = %{version}-%{release}
Obsoletes: libungif-progs <= %{version}-%{release}
%description utils %description utils
The giflib-utils package contains various programs for manipulating The giflib-utils package contains various programs for manipulating GIF
GIF format image files. format image files. Install it if you need to manipulate 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.
%prep %prep
%setup -q %setup -q
%{__sed} -i 's/\r//' doc/lzgif.txt
%build %build
%configure %configure
make %{?_smp_mflags} all 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} %{__cc} $RPM_OPT_FLAGS -shared -Wl,-soname,libungif.so.$MAJOR -Llib/.libs -lgif -o libungif.so.%{version}
%install %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} # Don't install any static .a and libtool .la files
ln -sf libungif.so.%{version} ${RPM_BUILD_ROOT}%{_libdir}/libungif.so.4 rm -f $RPM_BUILD_ROOT%{_libdir}/*.{a,la}
ln -sf libungif.so.4 ${RPM_BUILD_ROOT}%{_libdir}/libungif.so
rm -f $RPM_BUILD_ROOT%{_libdir}/*.la # Remove makefile relics from documentation
rm -f doc/Makefile*
%clean %clean
rm -rf ${RPM_BUILD_ROOT} rm -rf $RPM_BUILD_ROOT
%post -p /sbin/ldconfig %post -p /sbin/ldconfig
@ -82,14 +76,12 @@ rm -rf ${RPM_BUILD_ROOT}
%files %files
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc COPYING README NEWS ONEWS %doc AUTHORS ChangeLog COPYING NEWS README
%doc ChangeLog TODO BUGS AUTHORS
%{_libdir}/lib*.so.* %{_libdir}/lib*.so.*
%files devel %files devel
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc doc/* util/giffiltr.c util/gifspnge.c %doc doc/* util/giffiltr.c util/gifspnge.c
%{_libdir}/lib*.a
%{_libdir}/lib*.so %{_libdir}/lib*.so
%{_includedir}/*.h %{_includedir}/*.h
@ -98,6 +90,10 @@ rm -rf ${RPM_BUILD_ROOT}
%{_bindir}/* %{_bindir}/*
%changelog %changelog
* Sat May 09 2009 Robert Scheck <robert@fedoraproject.org> 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 <tcallawa@redhat.com> - 4.1.6-1 * Mon Apr 13 2009 Tom "spot" Callaway <tcallawa@redhat.com> - 4.1.6-1
- update to 4.1.6 - update to 4.1.6