debian/0000755000000000000000000000000011557034105007167 5ustar debian/compat0000644000000000000000000000000211556314764010400 0ustar 7 debian/rules.old0000755000000000000000000000410611556310714011027 0ustar #!/usr/bin/make -f # -*- makefile -*- # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 # These are used for cross-compiling and for saving the configure script # from having to guess our platform (since we know it already) DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) config.status: configure dh_testdir # Add here commands to configure the package. ifneq "$(wildcard /usr/share/misc/config.sub)" "" cp -f /usr/share/misc/config.sub config.sub endif ifneq "$(wildcard /usr/share/misc/config.guess)" "" cp -f /usr/share/misc/config.guess config.guess endif CFLAGS="$(CFLAGS)" ./configure --host=$(DEB_HOST_GNU_TYPE) \ --build=$(DEB_BUILD_GNU_TYPE) --prefix=/usr \ --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info build: build-stamp build-stamp: config.status dh_testdir # Add here commands to compile the package. $(MAKE) touch build-stamp clean: dh_testdir dh_testroot rm -f build-stamp # Add here commands to clean up after the build process. [ ! -f Makefile ] || $(MAKE) distclean rm -f config.guess config.sub dh_clean install: build dh_testdir dh_testroot dh_clean -k dh_installdirs # Add here commands to install the package into debian/dynamite. $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp # Fix manpage sed -i -e 's,manual page for dynamite,PKWARE Data Compression decompressor,' \ debian/tmp/usr/share/man/man1/dynamite.1 # Build architecture-independent files here. binary-indep: build install # We have nothing to do by default. # Build architecture-dependent files here. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs ChangeLog dh_installdocs dh_installexamples dh_install --list-missing dh_installman dh_link dh_strip dh_compress dh_fixperms dh_makeshlibs --version-info dh_installdeb dh_shlibdeps -L libdynamite0 -l debian/libdynamite0/usr/lib dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install debian/control0000644000000000000000000000270611556316017010603 0ustar Source: dynamite Section: utils Priority: optional Maintainer: Evgeni Golov Build-Depends: debhelper (>= 7), libtool (>= 1.4), autoconf, automake, dh-autoreconf Build-Conflicts: autoconf2.13, automake1.4 Standards-Version: 3.9.2 Homepage: http://sourceforge.net/projects/synce Package: dynamite Section: utils Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: PKWARE Data Compression decompressor Dynamite is a tool and library for decompressing data compressed with PKWARE Data Compression Library and it was created from the specification provided by a post in the comp.compression newsgroup. Package: libdynamite0 Section: libs Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Replaces: libdynamite Conflicts: libdynamite Description: PKWARE Data Compression decompressor library The dynamite library is needed by tools to be capable of squeezing out juicy .cab files from self-extracting installation programs created by the Setup Factory installation program. Package: libdynamite-dev Section: libdevel Architecture: any Depends: libdynamite0 (= ${binary:Version}), ${misc:Depends} Description: PKWARE Data Compression decompressor library - development files The dynamite library is needed by tools to be capable of squeezing out juicy .cab files from self-extracting installation programs created by the Setup Factory installation program. . This package contains development files for libdynamite. debian/libdynamite0.install0000644000000000000000000000011411556310714013136 0ustar debian/tmp/usr/lib/libdynamite.so.0 debian/tmp/usr/lib/libdynamite.so.0.0.0 debian/changelog0000644000000000000000000000451311556316032011045 0ustar dynamite (0.1.1-2) unstable; urgency=low * Change my email-adress. * Switch to 3.0 (quilt) format. * Switch to dh rules.tiny. * Add 01_0.1.2-from-svn-r4010.patch to pull in SVN updates until 0.1.2 is released. Use dh-autoreconf for rebuilding configure. Closes: #608867 * Drop .la file, even if dependency_libs was empty. Closes: #621196 * Standards-Version: 3.9.2 * Add ${misc:Depends} to all packages, thanks lintian. * Improve descriptions. -- Evgeni Golov Thu, 28 Apr 2011 18:55:45 +0200 dynamite (0.1.1-1) unstable; urgency=low * New maintainer. (Closes: #469793) * New upstream release. * Acknowledge NMU, thanks Margarita Manterola! (Closes: #259294) * debian/rules: + Don't ignore make clean errors. + Remove unused debhelper calls. + Don't set CFLAGS and INSTALL_PROGRAM. + Install upstream changelog. * Use upstream manpage. * Remove unused .dirs files. * debian/control: + Use ${binary:Version} instead of ${Source-Version}. + Standards-Version: 3.7.3, no changes needed. + Add a Homepage field. + Build-depend on automake, not automake 1.7. + Build-conflict with automake1.4 and autoconf2.13. * Updated watch file. * Use the machine-readable format for debian/copyright. -- Evgeni Golov Fri, 09 May 2008 08:23:14 +0200 dynamite (0.1-4.1) unstable; urgency=low * Non-maintainer upload to fix segfaulting when no parameters are passed. Thanks to Kari Pahula for the patch (Closes: #259294). -- Margarita Manterola Sat, 5 Aug 2006 21:51:40 -0300 dynamite (0.1-4) unstable; urgency=low * Update Maintainer email to voc@debian.org * Update to standard version 3.6.2 * Update watch file * Changed packagename libdynamite -> libdynamite0 -- Volker Christian Tue, 13 Sep 2005 19:46:48 +0200 dynamite (0.1-3) unstable; urgency=low * Added a watch file * Added --version-info to dh_makeshlibs -- Volker Christian Sun, 29 Aug 2004 11:21:03 +0200 dynamite (0.1-2) unstable; urgency=low * Manual page updated. -- Volker Christian Fri, 10 Jun 2004 20:15:20 +0200 dynamite (0.1-1) unstable; urgency=low * Initial Release. -- Volker Christian Fri, 18 Jun 2004 22:50:57 +0200 debian/copyright0000644000000000000000000000272211556310714011127 0ustar Original-Source: http://sourceforge.net/project/showfiles.php?group_id=30550&package_id=157356 Files: * Copyright: © 2002-2003 David Eriksson License: MIT Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: . The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. . THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Files: debian/* Copyright: © 2004-2005 Volker Christian , 2008 Evgeni Golov License: GPL-any On Debian systems, the complete text of the GNU General Public License can be found in `/usr/share/common-licenses/GPL'. debian/patches/0000755000000000000000000000000011556312603010617 5ustar debian/patches/01_0.1.2-from-svn-r4010.patch0000644000000000000000000001465611556314562015131 0ustar --- a/LICENSE (revision 3441) +++ b/LICENSE (revision 4010) @@ -1,3 +1,5 @@ +id-shr-extract.c is Copyright (C) 2007 Hans de Goede + Copyright (c) 2003 David Eriksson Permission is hereby granted, free of charge, to any person obtaining a copy of --- a/lib/libdynamite.c (revision 3441) +++ b/lib/libdynamite.c (revision 4010) @@ -78,11 +78,17 @@ case 1: /* encoded literal representation, not (yet) supported, fall through */ dynamite->status = DYNAMITE_NOT_IMPLEMENTED; +#if DEBUG + fprintf(stderr, "Encoded literal representation not yet supported.\n"); +#endif goto exit; default: /* not compressed with this algorithm! */ dynamite->status = DYNAMITE_BAD_FORMAT; +#if DEBUG + fprintf(stderr, "Unknown format: %i\n", header[0]); +#endif goto exit; } @@ -100,6 +106,9 @@ default: /* not compressed with this algorithm! */ dynamite->status = DYNAMITE_BAD_FORMAT; +#if DEBUG + fprintf(stderr, "Unknown dictionary bits: %i\n", dynamite->dictionary_bits); +#endif goto exit; } --- a/ChangeLog (revision 3441) +++ b/ChangeLog (revision 4010) @@ -1,3 +1,13 @@ +2011-03-23 David Eriksson + + * VERSION: Upped the version number. + + * src/id-shr-extract.c: Added submitted code to extract ID Softwhare .SHR files. + +2008-05-11 Mark Ellis + + * man patch fix, thanks to Evgeni Golov + 2008-05-06 Jonny Lamb * VERSION: Upped the version number. --- a/src/id-shr-extract.c (revision 0) +++ b/src/id-shr-extract.c (revision 4010) @@ -0,0 +1,158 @@ +/* utility to extract the .SHR installer data files of early ID software + shareware games + + Copyright (C) 2007 Hans de Goede +*/ + +#include +#include +#include +#include +#include + +struct cookie_s { + char *in_buffer; + size_t in_buffer_remaining; + int in_buffer_index; + size_t in_buffer_size; + FILE* out_file; +}; + +size_t reader(void* buffer, size_t size, void* cookie) +{ + struct cookie_s *c = cookie; + if (size > c->in_buffer_remaining) + size = c->in_buffer_remaining; + + memcpy (buffer, c->in_buffer + c->in_buffer_index, size); + + c->in_buffer_index += size; + c->in_buffer_remaining -= size; + + return size; +} + +size_t writer(void* buffer, size_t size, void* cookie) +{ + struct cookie_s *c = cookie; + return fwrite(buffer, 1, size, c->out_file); +} + +int main(int argc, char *argv[]) +{ + struct cookie_s cookie; + FILE *in_file; + char filename[16]; + unsigned char buf[4]; + size_t i, compressed_size; + + if (argc != 2) { + fprintf(stderr, "%s: Usage: %s %d\n", argv[0], argv[0], argc); + return 1; + } + + in_file = fopen(argv[1], "r"); + if (!in_file) { + fprintf(stderr, "error opening: %s", argv[1]); + perror(NULL); + return 1; + } + + /* skip first 0x3A bytes header */ + if (fseek(in_file, 0x3A, SEEK_CUR)) { + perror("error skipping initial file header"); + return 1; + } + + cookie.in_buffer = malloc(65536); + if (!cookie.in_buffer) { + fprintf(stderr, "Error: out of memory\n"); + return 1; + } + cookie.in_buffer_size = 65536; + + while (1) + { + /* get the name of the file */ + if (fread(filename, 1, sizeof(filename), in_file) != sizeof(filename)) { + if (feof(in_file)) { + free(cookie.in_buffer); + fclose(in_file); + return 0; /* done */ + } + perror("error getting output filename from file"); + return 1; + } + + /* verify the filename and convert to lower case */ + for (i = 0 ; i < sizeof(filename); i++) { + if (filename[i] == 0) + break; /* done */ + if (!isprint(filename[i])) { + fprintf(stderr, "error invalid output filename\n"); + return 1; + } + filename[i] = tolower(filename[i]); + } + if (i == sizeof(filename)) { + fprintf(stderr, "error too long output filename\n"); + return 1; + } + + /* seek to compressed size */ + if (fseek(in_file, 0x88 - sizeof(filename), SEEK_CUR)) { + perror("error skipping file header before file size"); + return 1; + } + + if (fread(buf, 1, 4, in_file) != 4) { + perror("error reading file size"); + return 1; + } + compressed_size = (buf[3] << 24) | (buf[2] << 16) | (buf[1] << 8) | buf[0]; + if (compressed_size > cookie.in_buffer_size) { + cookie.in_buffer = realloc(cookie.in_buffer, compressed_size); + if (!cookie.in_buffer) { + fprintf(stderr, "Error: out of memory\n"); + return 1; + } + cookie.in_buffer_size = compressed_size; + } + + /* seek to begin of compressed data */ + if (fseek(in_file, 0x1C, SEEK_CUR)) { + perror("error skipping file header before file size"); + return 1; + } + + /* read compressed data */ + if (fread(cookie.in_buffer, 1, compressed_size, in_file) != + compressed_size) { + perror("error reading compressed data"); + return 1; + } + + cookie.in_buffer_index = 0; + cookie.in_buffer_remaining = compressed_size; + + cookie.out_file = fopen(filename, "w"); + if (!cookie.out_file) { + fprintf(stderr, "Error creating: %s for writing", filename); + perror(NULL); + return 1; + } + + printf("decompressing: %s, compressed size: %d\n", filename, + compressed_size); + + if ((i = dynamite_explode(reader, writer, &cookie))) { + fprintf(stderr, "Error: %d while decompressing\n", i); + return i; + } + + fclose(cookie.out_file); + } + + /* never reached */ + return 0; +} --- a/src/Makefile.am (revision 3441) +++ b/src/Makefile.am (revision 4010) @@ -1,10 +1,12 @@ INCLUDES = -I../lib LDADD = ../lib/libdynamite.la -bin_PROGRAMS = dynamite +bin_PROGRAMS = dynamite id-shr-extract dynamite_SOURCES = dynamite.c +id_shr_extract_SOURCES = id-shr-extract.c + noinst_PROGRAMS = queen_extract queen_extract_SOURCES = queen_extract.c --- a/man/dynamite.1 (revision 3441) +++ b/man/dynamite.1 (revision 4010) @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.33. .TH DYNAMITE "1" "June 2004" "dynamite" "User Commands" .SH NAME -dynamite \- manual page for dynamite +dynamite \- PKWARE Data Compression decompressor .SH SYNOPSIS dynamite [input_offset] .SH DESCRIPTION debian/patches/series0000644000000000000000000000003611556312603012033 0ustar 01_0.1.2-from-svn-r4010.patch debian/source/0000755000000000000000000000000011556314174010475 5ustar debian/source/format0000644000000000000000000000001411556314174011703 0ustar 3.0 (quilt) debian/rules0000755000000000000000000000005711556314515010256 0ustar #!/usr/bin/make -f %: dh $@ --with autoreconf debian/libdynamite-dev.install0000644000000000000000000000022411556313652013640 0ustar debian/tmp/usr/lib/libdynamite.a debian/tmp/usr/lib/libdynamite.so debian/tmp/usr/lib/pkgconfig/libdynamite.pc debian/tmp/usr/include/libdynamite.h debian/libdynamite0.dirs0000644000000000000000000000001011556310714012424 0ustar usr/lib debian/dynamite.install0000644000000000000000000000006511556315000012365 0ustar debian/tmp/usr/bin/* debian/tmp/usr/share/man/man1/* debian/watch0000644000000000000000000000007111556310714010220 0ustar version=3 http://sf.net/synce/ libdynamite-(.+)\.tar\.gz