wok-current rev 897
module-init-tools: use lzlib to load modules compressed with gzip or lzma
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Thu Jun 12 11:53:31 2008 +0000 (2008-06-12) |
parents | 13768ad7e79e |
children | 5f88af4f7f75 |
files | module-init-tools/receipt module-init-tools/stuff/lzlib.u |
line diff
1.1 --- a/module-init-tools/receipt Thu Jun 12 11:51:08 2008 +0000 1.2 +++ b/module-init-tools/receipt Thu Jun 12 11:53:31 2008 +0000 1.3 @@ -5,15 +5,17 @@ 1.4 CATEGORY="base-system" 1.5 SHORT_DESC="Kernel modules manipulation tools." 1.6 MAINTAINER="pascal.bellard@slitaz.org" 1.7 -DEPENDS="zlib" 1.8 +DEPENDS="zlib lzlib" 1.9 TARBALL="$PACKAGE-$VERSION.tar.gz" 1.10 WEB_SITE="http://ftp.kernel.org/pub/linux/utils/kernel/module-init-tools/" 1.11 WGET_URL="${WEB_SITE}$TARBALL" 1.12 +BUILD_DEPENDS="zlib-dev lzlib-dev lzlib" 1.13 1.14 # Rules to configure and make the package. 1.15 compile_rules() 1.16 { 1.17 cd $src 1.18 + patch -p1 < ../stuff/lzlib.u 1.19 ./configure --enable-zlib --prefix=/usr \ 1.20 --sbindir=/sbin --bindir=/bin --sysconfdir=/etc \ 1.21 --infodir=/usr/share/info --mandir=/usr/share/man \
2.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 2.2 +++ b/module-init-tools/stuff/lzlib.u Thu Jun 12 11:53:31 2008 +0000 2.3 @@ -0,0 +1,83 @@ 2.4 +--- module-init-tools-3.2/zlibsupport.c 2.5 ++++ module-init-tools-3.2/zlibsupport.c 2.6 +@@ -16,58 +16,33 @@ 2.7 + #include "testing.h" 2.8 + 2.9 + #ifdef CONFIG_USE_ZLIB 2.10 +-#include <zlib.h> 2.11 ++#include <lzlib.h> 2.12 + 2.13 +-void *grab_contents(gzFile *gzfd, unsigned long *size) 2.14 +-{ 2.15 +- unsigned int max = 16384; 2.16 +- void *buffer = malloc(max); 2.17 +- int ret; 2.18 +- 2.19 +- if (!buffer) 2.20 +- return NULL; 2.21 +- 2.22 +- *size = 0; 2.23 +- while ((ret = gzread(gzfd, buffer + *size, max - *size)) > 0) { 2.24 +- *size += ret; 2.25 +- if (*size == max) { 2.26 +- buffer = realloc(buffer, max *= 2); 2.27 +- if (!buffer) 2.28 +- return NULL; 2.29 +- } 2.30 +- } 2.31 +- if (ret < 0) { 2.32 +- free(buffer); 2.33 +- buffer = NULL; 2.34 +- } 2.35 +- return buffer; 2.36 +-} 2.37 +- 2.38 + void *grab_fd(int fd, unsigned long *size) 2.39 + { 2.40 +- gzFile gzfd; 2.41 ++ lzFile lzfd; 2.42 + 2.43 +- gzfd = gzdopen(fd, "rb"); 2.44 +- if (!gzfd) 2.45 ++ lzfd = lzdopen(fd, "rb"); 2.46 ++ if (!lzfd) 2.47 + return NULL; 2.48 + 2.49 +- /* gzclose(gzfd) would close fd, which would drop locks. 2.50 ++ /* lzclose(lzfd) would close fd, which would drop locks. 2.51 + Don't blame zlib: POSIX locking semantics are so horribly 2.52 + broken that they should be ripped out. */ 2.53 +- return grab_contents(gzfd, size); 2.54 ++ return lzgrab(lzfd, size); 2.55 + } 2.56 + 2.57 + /* gzopen handles uncompressed files transparently. */ 2.58 + void *grab_file(const char *filename, unsigned long *size) 2.59 + { 2.60 +- gzFile gzfd; 2.61 ++ lzFile lzfd; 2.62 + void *buffer; 2.63 + 2.64 +- gzfd = gzopen(filename, "rb"); 2.65 +- if (!gzfd) 2.66 ++ lzfd = lzopen(filename, "rb"); 2.67 ++ if (!lzfd) 2.68 + return NULL; 2.69 +- buffer = grab_contents(gzfd, size); 2.70 +- gzclose(gzfd); 2.71 ++ buffer = lzgrab(lzfd, size); 2.72 ++ lzclose(lzfd); 2.73 + return buffer; 2.74 + } 2.75 + 2.76 +--- module-init-tools-3.2/configure 2.77 ++++ module-init-tools-3.2/configure 2.78 +@@ -1741,7 +1741,7 @@ 2.79 + #define CONFIG_USE_ZLIB 1 2.80 + _ACEOF 2.81 + 2.82 +- zlib_flags="-Wl,-Bstatic -lz -Wl,-Bdynamic" 2.83 ++ zlib_flags="-Wl,-Bdynamic -lz -llz" 2.84 + fi 2.85 + fi; 2.86 +