diff --git a/debian/NEWS b/debian/NEWS new file mode 100644 index 0000000..736c3f8 --- /dev/null +++ b/debian/NEWS @@ -0,0 +1,30 @@ +p7zip (15.09+dfsg-3) experimental; urgency=low + + The p7zip-full package now depends on p7zip package in order + to have the p7zip wrapper script available for all users of + the packages. + + The p7zip wrapper script was enhanced to support more options. + + HTML documentation is now installed by the p7zip-full package only. + + -- Robert Luberda Sun, 06 Mar 2016 16:58:28 +0100 + +p7zip (4.37.dfsg-1) unstable; urgency=low + + * New upstream release + - introduces 7zr, a light version of 7za + * debian/control: + - now p7zip only provides 7zr (Closes: #343513) + - p7zip recommends p7zip-full, much more similar to the old p7zip + - p7zip-full conflicts and replaces old p7zip versions + * debian/patches: + - 01_add_help_switch.dpatch: applies on new upstream version + - 01_main_help.dpatch: removed from diff.gz; correct the result of "7z -h" + - 01_makefile.dpatch: removed from diff.gz; remove non-free targets like Rar2.9 + - 02_man.dpatch: removed from diff.gz; adds 7zr.1 and other corrections + * debian/copyright: correct copyright according to d-d-a suggestions + * debian/rules: + - move all dh_installed stuff to debian/p7zip{,-full}.install + + -- Mohammed Adnène Trojette Tue, 11 Apr 2006 14:50:16 +0200 diff --git a/debian/README.Debian b/debian/README.Debian new file mode 100644 index 0000000..1f6e03f --- /dev/null +++ b/debian/README.Debian @@ -0,0 +1,42 @@ +Notes about Debian 7-Zip packages. +---------------------------------- + +The Debian 7-Zip suite consists of the three following packages: + +1. p7zip package, which is the smallest one and includes: + + - 7zr command, which provides support for compressing and + decompressing archives in 7-Zip, LZMA and XZ formats only. + + *Note*: the 7zr command cannot be used neither on archives + protected by passwords, nor on archives that use the PPMD + compression method. However both are supported by 7za and 7z + commands from the p7zip-full package. + + - p7zip script which is a gzip-like wrapper on 7zr or 7za + commands. + +2. p7zip-full package that depends on the above p7zip package + and consists of: + + - 7za command which is standalone command line version of 7-Zip. + It supports more archive formats than 7zr. + + - 7z command which is the full featured command line version of + 7-Zip. 7z uses other modules from 7-Zip package, so it handles + more archive formats, but might be a bit slower than 7za. + Modules are installed in /usr/lib/p7zip. + + - Small additional documentation in the HTML format. + +3. Non-free p7zip-rar package that contains non-free (due to the terms + of the UnRAR license) Rar.so module for the 7z command. + +Note concerning directory exclusion. +------------------------------------ + + - Directory exclusion only works when an exclude list file is provided + and if directories to exclude are listed as relative paths of the + location 7z or 7za is run from. + + - Using absolute directories *won't* work, as noted in #296665. diff --git a/debian/README.source b/debian/README.source new file mode 100644 index 0000000..31eb2b6 --- /dev/null +++ b/debian/README.source @@ -0,0 +1,10 @@ +The upstream tarball is repacked in order to remove non-free rar +code (and a few pre-compiled binary files lintian complains about). + +List of removed files can be found in the `Files-Excluded' header +of debian/copyright. + +The uscan(1) command can be used to download and repack new versions +of upstream tarballs. + + -- Robert Luberda Sun, 14 Feb 2016 00:35:16 +0100 diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..d7632c4 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,583 @@ +p7zip (16.02+dfsg-3) unstable; urgency=medium + + * Remove `-pie' from hardening options (closes: #859442). + + -- Robert Luberda Mon, 10 Apr 2017 23:29:04 +0200 + +p7zip (16.02+dfsg-2) unstable; urgency=medium + + * Apply upstream patch to fix nullptr dereference (CVE-2016-9296) + (closes: #844344). + + -- Robert Luberda Sat, 19 Nov 2016 08:52:29 +0100 + +p7zip (16.02+dfsg-1) unstable; urgency=low + + * New upstream version. + * Remove no longer needed patches introduced in the previous upload. + + -- Robert Luberda Mon, 15 Aug 2016 12:52:33 +0200 + +p7zip (15.14.1+dfsg-2) unstable; urgency=high + + * Fix the heap buffer overflow in HFS handler (CVE-2016-2334) and + out of bounds read in UDF handler (CVS-2016-2335) using patches from + https://sourceforge.net/p/p7zip/discussion/383043/thread/9d0fb86b/ + (closes: #824160). + + -- Robert Luberda Sun, 15 May 2016 11:35:38 +0200 + +p7zip (15.14.1+dfsg-1) unstable; urgency=low + + * New upstream version. + * Add CPP/ANDROID/Lzham/obj/* that contains some pre-compiled object + files to Files-Excluded in debian/copyright. + * Remove no longer needed patches: CVE-2015-1038.patch, 06-s390.patch, + 07-endian-detection.patch, 08-mips.patch, and refresh other patches. + * Standards-Version: 3.9.8. + + -- Robert Luberda Sat, 16 Apr 2016 22:46:11 +0200 + +p7zip (15.09+dfsg-4) unstable; urgency=low + + * Upload to unstable. + * Mention in README.Debian that p7zip-full is needed for 7z archives + compressed with PPMD method (closes: #693509). + * Replace `7z' with `7zr' in the short description of p7zip to make + in consistent with the description of p7zip-full (closes: #636664). + * Switch Vcs-Git to https, and Vcs-Browser to cgit. + + -- Robert Luberda Sun, 13 Mar 2016 09:54:38 +0100 + +p7zip (15.09+dfsg-3) experimental; urgency=low + + * Refactor and enhance the p7zip wrapper script: + + update the p7zip script to the version from the contrib directory; + + make it call either 7za or 7zr command, whichever one is available; + + remove `if [ "$?" != 0 ]' statements, as they won't work with `set -e'; + + use the standard error for reporting; + + implement the --stdout, --force, --keep options (closes: #656340, + LP: #220646, #259239) + + update p7zip(1) man page to shortly describe new options and give more + details about the script's behavior. + + * Make p7zip-full package depend on p7zip package to have the p7zip command + available for the users of p7zip-full (LP: #1156460): + + add necessary Depends, Breaks and Replaces; + + convert /u/s/d/p7zip-full into a symlink to /u/s/d/p7zip; + + install the html documentation into p7zip-full only and update + 02-man.patch to mention that. + + * Add 09-man-update.patch in order to: + + update man pages based on the current usage output of the commands; + + remove references to the -p{Password} option from the 7zr(1), as the + command does not support it (LP: #558609); + + mention in 7z(1) that 7z might be slower than 7za (closes: #636667); + + reword "the highest compression ratio" phrase to make it referring + to the 7z format instead of the 7z programs (closes: #636179). + * Reword the packages' descriptions and p7zip(1) man page similarly. + + * Do not install documentation from fm sub-directory (which describes + Windows GUI not available in Debian); skip license.htm as well (to make + lintian happy). + * Add 10-drop-fm-doc.patch to remove from the html documentation references + to files mentioned in the previous entry. Also strip in the documentation + the .exe extension from 7z commands (LP: #181402). + * No longer install ChangeLog.gz to changelog.gz symlink. + * Replace duplicated style.css files with symlinks. + * Register html documentation in the doc-base system. + * Add 11-README-no-instructions.patch to remove build instructions from the + README file. + * Acknowledge the 9.20.1~dfsg.1-4.1 NMU (closes: #788734). + * Close Ubuntu's 'newer version available' report (LP: #1414569). + * Bump Standards-Version to 3.9.7. + * Add lintian override for a spelling typo in a word used as a proper name. + * Update README.Debian and add a NEWS entry for the dependency changes. + + -- Robert Luberda Sun, 06 Mar 2016 16:58:28 +0100 + +p7zip (15.09+dfsg-2) experimental; urgency=low + + * Hopefully fix FTBFS on various architectures: + + add 07-endian-detection.patch to detect byte ordering via macros + defined in . + + add 08-mips.patch to rename a variable called `mips', as it clashed + with a name of preprocessor macro defined on mips and mipsel. + + -- Robert Luberda Mon, 15 Feb 2016 22:53:55 +0100 + +p7zip (15.09+dfsg-1) experimental; urgency=low + + * New upstream version (closes: #778289, LP: #1414569). + * Update patches for the new version: + + remove most of 01-makefile.patch, especially remove the parts related + to multiarch libwgtk2.8-dev, which is no longer used by this package; + + fix grammar error (closes: #706005) and update location of html + documentation in 02-man.patch; do the same for debian/p7zip*.docs + + drop 04-no-strip-by-default.patch; patch empty OPTFLAGS in debian/rules + instead; + + replace CVE-2015-1038.patch with Fedora's version taken from their + p7zip-15.09-10.fc24.src.rpm package; + + add 06-s390.patch from Fedora to fix build on s390. + * Update 03-include-linux-makefile.patch to include arch-specific makefile + on amd64 (closes: #713964) and i386 archs. Both makefiles have compilation + of assembler sources enabled, so add build dependency on yasm on those + architectures. + * Use DEP-5 format for debian/copyright, and add Files-Excluded header + into it. + * Update debian/watch to allow uscan to repack upstream tarballs. + * Provide README.source with reasons of repacking (closes: #705595). + + -- Robert Luberda Sun, 14 Feb 2016 01:11:20 +0100 + +p7zip (9.20.1~dfsg.1-5) unstable; urgency=medium + + * Adopting package (closes: #812125). + * Switch to the `3.0 (quilt)' source format. + * Bump debhelper compatibility level to v9 and use minimised debian/rules. + * Refresh patches with gbp pq import/export. Removed 03_respect-umask.diff + as it was never applied. + * Add 03-include-linux-makefile.patch to have makefile.machine include + makefile.linux_any_cpu_gcc_4.X instead of playing with the makefiles + in debian/rules. + * Add 05-hardening-flags.patch to support $(CPPFLAGS) and not to override + $(CXXFLAGS) and $(CFLAGS). This enables hardening builds (closes: #682167). + * debian/control: + + remove conflicts & replaces added in 4.39.dfsg.1-1 (10 years ago); + + add Vcs-Git and Vcs-Browser fields; + + bump Standards-Version to 3.9.6. + + -- Robert Luberda Sun, 31 Jan 2016 12:20:37 +0100 + +p7zip (9.20.1~dfsg.1-4.2) unstable; urgency=medium + + * Non-maintainer upload. + * Delay creation of symlinks to prevent arbitrary file writes (CVE-2015-1038) + (Closes: #774660) + + -- Ben Hutchings Sun, 31 May 2015 23:45:58 +0100 + +p7zip (9.20.1~dfsg.1-4.1) unstable; urgency=low + + * Non-maintainer upload. + * Stop building unpackaged 7zG binary and eliminate dependency on + libwxgtk2.8-dev. (Closes: #748639) + + -- Olly Betts Mon, 19 May 2014 17:39:26 +1200 + +p7zip (9.20.1~dfsg.1-4) unstable; urgency=low + + * Acknowledge NMU. Thanks to Gregor Herrmann. + * debian/control: bump Standards-Version to 3.9.2. + * debian/rules: add build-* targets. + + -- Mohammed Adnène Trojette Sun, 08 Jan 2012 14:17:13 +0100 + +p7zip (9.20.1~dfsg.1-3.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix "p7zip FTBFS with multiarch libwxgtk2.8-dev": fix from peter green: + adjust 01_makefile.patch to the multiarched libwxgtk2.8-dev, and add + appropriate build dependencies. + (Closes: #652446) + + -- gregor herrmann Sat, 31 Dec 2011 16:09:00 +0100 + +p7zip (9.20.1~dfsg.1-3) unstable; urgency=low + + * debian/patches: + + fix 7zr.1 and 7za.1 ambiguous sentence. (Closes: #636174) + * debian/control: + + fix p7zip-full's description + - wrong reference to p7zip. (Closes: #636186) + - capitalise Nautilus, uppercase GUI. (Closes: #636172) + - missing comma. (Closes: #636178) + + fix p7zip's description accordingly. + + -- Mohammed Adnène Trojette Wed, 03 Aug 2011 12:43:08 +0200 + +p7zip (9.20.1~dfsg.1-2) unstable; urgency=low + + * Upload to unstable. + + -- Mohammed Adnène Trojette Tue, 28 Jun 2011 17:05:01 +0200 + +p7zip (9.20.1~dfsg.1-1) experimental; urgency=low + + * New upstream release (Closes: #620619) + * debian/control + + bump Standards-Version to 3.9.1. + + update and improve description. (Closes: #545871, #612770) + * manpages + + add supported formats. (Closes: #570427) + + -- Mohammed Adnène Trojette Fri, 01 Apr 2011 21:20:22 +0200 + +p7zip (9.04~dfsg.1-1) unstable; urgency=low + + * New upstream release. + * Bump Standards-Version to 3.8.2. + + -- Mohammed Adnène Trojette Sat, 27 Jun 2009 16:20:41 +0200 + +p7zip (4.65~dfsg.1-1) unstable; urgency=low + + * New upstream release. + * Remove wx2.8 Build-Depends added by mistakes (7zG is not yet + intended to be built). + * Use dh_clean without -k. + + -- Mohammed Adnène Trojette Sat, 14 Feb 2009 20:12:27 +0100 + +p7zip (4.61~dfsg.1-1) experimental; urgency=low + + * New upstream release: + + use BCJ /BCJ2 filters for executables. (Closes: #506657) + + -- Mohammed Adnène Trojette Thu, 04 Dec 2008 23:34:59 +0100 + +p7zip (4.58~dfsg.1-1) unstable; urgency=low + + * New upstream release. + * debian/control: + + bump Standards-Version to 3.8.0. + + bump build-dependency on debhelper 7. + * debian/compat: set compatibility level to 7. + * Don't use hyphen as a minus in man pages. + + -- Mohammed Adnène Trojette Sat, 21 Jun 2008 15:29:00 +0200 + +p7zip (4.57~dfsg.1-1) unstable; urgency=low + + * New upstream release. + * debian/control: + + add Homepage field. + + bump Standards-Version to 3.7.3. + + tighten description to tell about /usr/bin/p7zip. + * debian/copyright converted to Unicode encoding. + * debian/patches: + + 03_fix_FTBFS_GNU-kFreeBSD.diff: removed, included upstream. + + 02_man.patch: refreshed and fixed link to DOCS. (Closes: #452084) + * Don't install /usr/share/p7zip/ which is empty. + * Install 7zr to /usr/lib/p7zip and use a wrapper to call it so as + to have -sfx option working. + + -- Mohammed Adnène Trojette Fri, 21 Dec 2007 16:41:17 +0100 + +p7zip (4.55~dfsg.1-2) unstable; urgency=low + + * Bump debhelper compatibility to 5. + * Our Makefile is called makefile. (Closes: #442697) + + -- Mohammed Adnène Trojette Sun, 16 Sep 2007 23:19:51 +0200 + +p7zip (4.55~dfsg.1-1) unstable; urgency=low + + * New upstream release. + + -- Mohammed Adnène Trojette Fri, 14 Sep 2007 22:42:17 +0200 + +p7zip (4.53~dfsg.1-1) unstable; urgency=low + + * New upstream release + + -- Mohammed Adnène Trojette Tue, 11 Sep 2007 16:39:29 +0200 + +p7zip (4.51~dfsg.1-2) unstable; urgency=low + + * Our clean rule is clean, not distclean! + * 04_no_strip_by_default.diff: don't strip binaries by default. + (Closes: #437736) + * Don't install License.txt. + + -- Mohammed Adnène Trojette Tue, 14 Aug 2007 22:35:09 +0200 + +p7zip (4.51~dfsg.1-1) unstable; urgency=low + + * New upstream release + * Fix FTBFS on GNU/kFreeBSD (Closes: #430357) + + patch courtesy from Petr Salinger. + * Suggest p7zip-full instead of Recommend-ing it. (Closes: #435592) + * Install 7za to /usr/lib/p7zip and use a wrapper to call it so as + to have -sfx option working. (Closes: #435556) + * Fix lintian warnings: + + don't hide clean target errors. + + don't install DOCS/License.txt. + + -- Mohammed Adnène Trojette Sat, 04 Aug 2007 21:27:22 +0200 + +p7zip (4.47~dfsg.1-1) unstable; urgency=low + + * New upstream version: + + refresh patches. + + -- Mohammed Adnène Trojette Fri, 08 Jun 2007 10:33:32 +0200 + +p7zip (4.45~dfsg.1-2) unstable; urgency=low + + * Install 7zCon.sfx so enable SFX archives too. + + -- Mohammed Adnène Trojette Sat, 28 Apr 2007 01:31:22 +0200 + +p7zip (4.45~dfsg.1-1) unstable; urgency=low + + * New upstream version: + + (new -b command to benchmark). + + if -t is not specified, try to autodetect format using file extension. + + all the Codecs are now linked in 7z.so and no more stored in Codecs/. + * Add AES code license to debian/copyright. + * Suggests: p7zip-rar. + * Refresh 01_makefile.patch. + * Update debian/rules with new makefile name. + * p7zip-full.install: bin/Formats no longer exists. + + -- Mohammed Adnène Trojette Sat, 21 Apr 2007 23:00:15 +0200 + +p7zip (4.44~dfsg.1-2) unstable; urgency=low + + * Correct path to HTML documentation in manpage. (Closes: #411491) + * 03_respect-umask.diff: + + new patch from Joshua Rodman + + not applied currently + + don't always create world-writable directories. (Ref: #413829) + + -- Mohammed Adnène Trojette Tue, 10 Apr 2007 00:28:08 +0200 + +p7zip (4.44~dfsg.1-1) experimental; urgency=low + + * New upstream version. + * Refresh patches and escape hyphens in manpages. + + -- Mohammed Adnène Trojette Sat, 27 Jan 2007 01:30:00 +0100 + +p7zip (4.43~dfsg.1-2) unstable; urgency=low + + * Improve description wording. (Closes: #391066, #404081, #404092) + * Correct manpages: 02_man.patch and debian/p7zip.1 + + replace {DEST_SHARE_DOC} with /usr/share/doc/p7zip. + (Closes: #404096) + + improve "SEE ALSO" section by adding references to other tools and by + ordering them alphabetically (Closes: #403968) + + correct title and NAME. (Closes: #404095) + + -- Mohammed Adnène Trojette Tue, 26 Dec 2006 20:13:19 +0100 + +p7zip (4.43~dfsg.1-1) unstable; urgency=low + + * New upstream release. + * Refresh debian/patches. + + -- Mohammed Adnène Trojette Mon, 25 Sep 2006 00:14:37 +0200 + +p7zip (4.42.dfsg.1-3) unstable; urgency=low + + * Include improvements to Robert Millan's wrapper script. (Closes: #379397) + * Correct watch file to use . + + -- Mohammed Adnène Trojette Tue, 19 Sep 2006 02:15:01 +0200 + +p7zip (4.42.dfsg.1-2) unstable; urgency=low + + * Backup makefile.machine before replacing it and restore it after build. + * Put ${file} between quotes for the case the filename contains spaces. + * Pop all patches first in clean target so that it does not fail. + + Thanks Ingo Saitz for pointing these. + + -- Mohammed Adnène Trojette Thu, 29 Jun 2006 00:01:56 +0200 + +p7zip (4.42.dfsg.1-1) unstable; urgency=low + + * New upstream version (Closes: #369284) + * Switch to quilt patch management + + changes to debian/rules + + build-depend on quilt + * debian/script/p7zip: correct typo on file extension + * [asac@debian.org] - removed version from Recommends of p7zip-full + + -- Mohammed Adnène Trojette Sun, 4 Jun 2006 10:43:06 +0200 + +p7zip (4.39.dfsg.1-3) unstable; urgency=low + + * debian/rules: 7z is in /usr/lib/p7zip, not /usr/lib/p7zip-full. + + -- Mohammed Adnène Trojette Mon, 29 May 2006 18:29:25 +0200 + +p7zip (4.39.dfsg.1-2) unstable; urgency=low + + * Bump Standards-Version to 3.7.2 (no changes needed) + * Remove link to p7zip-rar from debian/p7zip.1 + + -- Mohammed Adnène Trojette Mon, 1 May 2006 02:34:52 +0200 + +p7zip (4.39.dfsg.1-1) unstable; urgency=low + + * New upstream release + - introduces 7zr, a light version of 7za + * debian/control: + - now p7zip only provides 7zr (Closes: #343513) + - p7zip recommends p7zip-full, much more similar to the old p7zip + - p7zip-full conflicts and replaces old p7zip versions + * debian/patches: + - 01_makefile.dpatch: removed from diff.gz; remove non-free targets like Rar2.9 + - 02_man.dpatch: removed from diff.gz; adds 7zr.1 and other corrections + * debian/copyright: correct copyright according to d-d-a suggestions + * debian/rules: + - move all dh_installed stuff to debian/p7zip{,-full}.install + + -- Mohammed Adnène Trojette Tue, 11 Apr 2006 14:50:16 +0200 + +p7zip (4.33.dfsg-1) unstable; urgency=low + + * New upstream release + * Move p7zip from /usr/share to /usr/bin + - modify debian/install + - write debian/p7zip.1 + * debian/README.Debian: document directory exclusion + * patches/01_add_help_switch: 7z --help works now (Closes: #353235) + + -- Mohammed Adnène Trojette Fri, 10 Feb 2006 20:54:59 +0100 + +p7zip (4.30.dfsg-1) unstable; urgency=low + + * New upstream release + + -- Mohammed Adnène Trojette Sun, 27 Nov 2005 12:44:34 +0100 + +p7zip (4.29.dfsg-3) unstable; urgency=low + + * Drop p7zip-rar suggestion + - debian/control + * Add a link to a p7zip-rar package not in Debian + - debian/README.Debian + - 7z.1 manpage + + -- Mohammed Adnène Trojette Sun, 20 Nov 2005 10:53:52 +0100 + +p7zip (4.29.dfsg-2) unstable; urgency=low + + * Precise the use of -so switch in manual pages + and -h output (Closes: #323932) + * Add a gzip-like CLI wrapper script to /usr/share/p7zip + thanks to Robert Millan (Closes: #334106) + + -- Mohammed Adnène Trojette Mon, 17 Oct 2005 13:06:26 +0000 + +p7zip (4.29.dfsg-1) unstable; urgency=low + + * New upstream release + + -- Mohammed Adnène Trojette Sat, 8 Oct 2005 00:18:00 +0200 + +p7zip (4.27.dfsg-1) unstable; urgency=low + + * New upstream release (Closes: #330828) + - "echo foo | 7z a dummy -si -so" no more segfaults + but causes an error (Closes: #324449) + * In -w[path], path is optionnal. + - corrected manual pages (Closes: #325736) + - corrected --help output + * Add a link in manual pages to a list of methods (Closes: #325737) + * Correct FSF address + + -- Mohammed Adnène Trojette Fri, 30 Sep 2005 10:29:42 +0000 + +p7zip (4.20-2) unstable; urgency=low + + * Bump Standards-Version to 3.6.2 + * Recompile against new gcc and g++ versions + * Included patch for GNU/kFreeBSD provided by + Robert Millan [applied by asac@debian.org] + (Closes: 322195) + + -- Mohammed Adnène Trojette Thu, 11 Aug 2005 01:45:00 +0200 + +p7zip (4.20-1) unstable; urgency=low + + * New upstream release + - compile with -fPIC flag + * Update to manpages and -h output (Closes: #311993) + + -- Mohammed Adnène Trojette Tue, 7 Jun 2005 23:01:29 +0200 + +p7zip (4.18-2) unstable; urgency=low + + * debian/rules: compile p7zip with -fPIC. Closes: #309734 + + -- Mohammed Adnène Trojette Wed, 18 May 2005 12:08:00 +0200 + +p7zip (4.18-1) unstable; urgency=low + + * First upload to unstable: + - many thanks to my sponsor Alexander Sack (asac@debian.org) + * New upstream release. Closes: #306912 + - fixes some symlinks issues (Closes: #295643) + - preserve unix file attributes (Closes: #297329) + - libs are no more called dll but so + * debian/7z*.1: removed to use upstream manpages + * debian/rules: Call 7z with exec + * debian/README.Debian: update due to upstream changes + + -- Mohammed Adnène Trojette Fri, 12 May 2005 23:46:00 +0200 + +p7zip (4.14.01-1) experimental; urgency=low + + * New upstream release. Closes: #293788 + + -- Mohammed Adnène Trojette Sat, 5 Feb 2005 22:22:22 +0200 + +p7zip (4.14-2) experimental; urgency=low + + * Corrected copyright + * debian/rules : corrected shell script in /usr/bin. Closes: #292321 + + -- Mohammed Adnène Trojette Sun, 23 Jan 2005 21:44:35 +0200 + +p7zip (4.14-1) experimental; urgency=low + + * New upstream release + + -- Mohammed Adnène Trojette Fri, 1 Jan 2005 21:23:35 +0200 + + +p7zip (4.13-2) experimental; urgency=low + + * Codecs are back to their initial dll name. Closes: #286673, Closes: #290613 + + -- Mohammed Adnène Trojette Tue, 21 Dec 2004 21:18:45 +0200 + +p7zip (4.13-1) experimental; urgency=low + + * New upstream release + + -- Mohammed Adnène Trojette Thu, 16 Dec 2004 21:18:45 +0200 + +p7zip (4.12-2) experimental; urgency=low + + * Now, 7z and its codecs are also compiled (7za 7z, zip, gzip, bzip2 and tar + formats) + * Added some docs (Manual in html) + * Added a mention to LZMA compression algorithm. Closes: #284703 + + -- Mohammed Adnène Trojette Thu, 12 Dec 2004 14:22:54 +0200 + +p7zip (4.12-1) experimental; urgency=low + + * New upstream release + * At last, p7zip is in Debian. Closes: #265329 + + -- Mohammed Adnène Trojette Thu, 18 Nov 2004 23:29:54 +0200 + +p7zip (4.10-1) experimental; urgency=low + + * New upstream release + * Now both big and little endian computers are supported + + -- Mohammed Adnène Trojette Sat, 30 Oct 2004 21:14:50 +0200 + +p7zip (0.90-1) unstable; urgency=low + + * Initial Release. + + -- Mohammed Adnène Trojette Sun, 15 Aug 2004 20:49:27 +0200 + diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..ec63514 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +9 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..0263088 --- /dev/null +++ b/debian/control @@ -0,0 +1,60 @@ +Source: p7zip +Section: utils +Priority: optional +Maintainer: Robert Luberda +Build-Depends: debhelper (>= 9), yasm [amd64], yasm [i386] +Standards-Version: 3.9.8 +Homepage: http://p7zip.sourceforge.net/ +Vcs-Git: https://anonscm.debian.org/git/users/robert/p7zip.git +Vcs-Browser: https://anonscm.debian.org/cgit/users/robert/p7zip.git + +Package: p7zip +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends} +Suggests: p7zip-full +Pre-Depends: ${misc:Pre-Depends} +Description: 7zr file archiver with high compression ratio + p7zip is the Unix command-line port of 7-Zip, a file archiver that + handles the 7z format which features very high compression ratios. + . + p7zip provides: + - /usr/bin/7zr + a standalone minimal version of the 7-zip tool that only handles + 7z, LZMA and XZ archives. 7z compression is 30-50% better than ZIP + compression. + - /usr/bin/p7zip + a gzip-like wrapper around 7zr. + . + p7zip can be used with popular compression interfaces (such as File + Roller or Nautilus). + . + Another package, p7zip-full, provides 7z and 7za which support more + compression formats. + +Package: p7zip-full +Architecture: any +Depends: p7zip (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends} +Suggests: p7zip-rar +Breaks: p7zip (<< 15.09+dfsg-3~) +Replaces: p7zip (<< 15.09+dfsg-3~) +Pre-Depends: ${misc:Pre-Depends} +Description: 7z and 7za file archivers with high compression ratio + p7zip is the Unix command-line port of 7-Zip, a file archiver that + handles the 7z format which features very high compression ratios. + . + p7zip-full provides utilities to pack and unpack 7z archives within + a shell or using a GUI (such as Ark, File Roller or Nautilus). + . + Installing p7zip-full allows File Roller to use the very efficient 7z + compression format for packing and unpacking files and directories. + Additionally, it provides the 7z and 7za commands. + . + List of supported formats: + - Packing / unpacking: 7z, ZIP, GZIP, BZIP2, XZ and TAR + - Unpacking only: APM, ARJ, CAB, CHM, CPIO, CramFS, DEB, DMG, FAT, + HFS, ISO, LZH, LZMA, LZMA2, MBR, MSI, MSLZ, NSIS, NTFS, RAR (only + if non-free p7zip-rar package is installed), RPM, SquashFS, UDF, + VHD, WIM, XAR and Z. + . + The dependent package, p7zip, provides 7zr, a light version of 7za, + and p7zip, a gzip-like wrapper around 7zr. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..03b0110 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,39 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: Igor Pavlov +Source: https://sourceforge.net/projects/p7zip/ +Files-Excluded: CPP/7zip/Compress/Rar* + DOC/unRarLicense.txt + CPP/ANDROID/Lzham/obj/* + C/*.o + Utils/CPUTest/PipeLen/MemLat + +Files: * +Copyright: 1999-2015, Igor Pavlov +License: LGPL-2.1+ + +Files: contrib/* +Copyright: 2004, Sergiy Niskorodov (sgh at mail dot zp dot ua) +License: GPL-2+ + +Files: debian/* +Copyright: 2016, Robert Luberda + 2004-2012, Mohammed Adnè Trojette +License: GPL-2+ + +License: GPL-2+ + 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 + the Free Software Foundation; version 2 dated June, 1991, or (at + your option) any later version. + . + On Debian systems, the complete text of version 2 of the GNU General + Public License can be found in '/usr/share/common-licenses/GPL-2'. + +License: LGPL-2.1+ + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as published by the + Free Software Foundation; version 2.1 of the License, or (at + your option) any later version. + . + On Debian systems, the complete text of version 2.1 of the GNU Lesser + General Public License can be found in `/usr/share/common-licenses/LGPL-2.1'. diff --git a/debian/p7zip-full.doc-base b/debian/p7zip-full.doc-base new file mode 100644 index 0000000..0dfb67a --- /dev/null +++ b/debian/p7zip-full.doc-base @@ -0,0 +1,17 @@ +Document: p7zip-full +Title: 7-Zip Manual +Author: Igor Pavlov +Abstract: 7-Zip is a file archiver with a high compression ratio format + . + The program supports 7z (that implements LZMA compression algorithm), + LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package + is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem + images and DEB formats. + . + Compression ratio in the new 7z format is 30-50% better than ratio + in ZIP format. +Section: File Management + +Format: HTML +Index: /usr/share/doc/p7zip/DOC/MANUAL/start.htm +Files: /usr/share/doc/p7zip/DOC/MANUAL/* diff --git a/debian/p7zip-full.docs b/debian/p7zip-full.docs new file mode 100644 index 0000000..e3545be --- /dev/null +++ b/debian/p7zip-full.docs @@ -0,0 +1,3 @@ +README +TODO +DOC/ diff --git a/debian/p7zip-full.install b/debian/p7zip-full.install new file mode 100644 index 0000000..168c945 --- /dev/null +++ b/debian/p7zip-full.install @@ -0,0 +1,7 @@ +bin/7z usr/lib/p7zip +bin/7zCon.sfx usr/lib/p7zip +bin/7za usr/lib/p7zip +bin/7z.so usr/lib/p7zip + +debian/scripts/7z usr/bin +debian/scripts/7za usr/bin diff --git a/debian/p7zip-full.links b/debian/p7zip-full.links new file mode 100755 index 0000000..9b4fbf6 --- /dev/null +++ b/debian/p7zip-full.links @@ -0,0 +1,24 @@ +#!/bin/sh + +# The script generates list of style.css locations pairs for dh_link program, to have +# duplicated files converted into symlinks to make lintian happy. +# Example output: +# usr/share/doc/p7zip-full/DOC/MANUAL/style.css usr/share/doc/p7zip-full/DOC/MANUAL/cmdline/style.css + +set -e +readonly pkg=p7zip-full +readonly file=style.css +readonly maindir="usr/share/doc/$pkg/DOC/MANUAL" + +unset CDPATH +cd debian/$pkg >/dev/null +[ -e "$maindir/$file" ] || { echo "$maindir/$file does not exist" >&2; exit 1; } + +for dir in $(find "$maindir" -mindepth 1 -type d -print); do + set -- "$maindir/$file" "$dir/$file" + + # Sanity check: fail if the file is not a duplicate + [ ! -e "$2" ] || cmp -s "$@" || { echo "$@ are different" >&2; exit 1;} + + echo "$@" +done diff --git a/debian/p7zip-full.lintian-overrides b/debian/p7zip-full.lintian-overrides new file mode 100644 index 0000000..f6bb2fa --- /dev/null +++ b/debian/p7zip-full.lintian-overrides @@ -0,0 +1,3 @@ +# Synopsys is vendor name, used in +# Archive/ElfHandler.cpp: { 195, "Synopsys ARCompact V2" }, +p7zip-full: spelling-error-in-binary usr/lib/p7zip/7z.so Synopsys Synopsis diff --git a/debian/p7zip-full.maintscript b/debian/p7zip-full.maintscript new file mode 100644 index 0000000..f22ce40 --- /dev/null +++ b/debian/p7zip-full.maintscript @@ -0,0 +1 @@ +dir_to_symlink /usr/share/doc/p7zip-full /usr/share/doc/p7zip 15.09+dfsg-3~ diff --git a/debian/p7zip-full.manpages b/debian/p7zip-full.manpages new file mode 100644 index 0000000..2d17aa4 --- /dev/null +++ b/debian/p7zip-full.manpages @@ -0,0 +1,2 @@ +man1/7z.1 +man1/7za.1 diff --git a/debian/p7zip.1 b/debian/p7zip.1 new file mode 100644 index 0000000..12d7057 --- /dev/null +++ b/debian/p7zip.1 @@ -0,0 +1,79 @@ +.TH p7zip 1 "March 6th, 2016" "7-Zip" +.SH NAME +p7zip \- Wrapper on 7-Zip file archiver with high compression ratio +.SH SYNOPSIS +.B p7zip +.RB [ \-c | \-\-stdout | \-\-to\-stdout ] +.RB [ \-d | \-\-decompress | \-\-uncompress ] +.RB [ \-f | \-\-force ] +.RB [ \-h | \-\-help ] +.RB [ \-k | \-\-keep ] +.RB [ \-\- ] +.RI [ "file ..." ] +.SH DESCRIPTION +7-Zip is a file archiver supporting 7z (that implements LZMA compression algorithm +featuring very high compression ratio), LZMA2, XZ, ZIP, Zip64, CAB, +RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, +most filesystem images and DEB formats. +Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. +.PP +.B p7zip +is a gzip-like CLI wrapper script for 7-Zip, and handles only the 7z format (the native +format of 7-Zip), internally executing either +.BR 7za (1) +or +.BR 7zr (1) +command. +.PP +With no switches passed in the command line, each given +.I file +argument is compressed into +.IR file.7z , +and then removed. +.PP +With the +.B \-d +switch each passed +.I file +needs to end with the +.I .7z +extension and is decompressed. After the +decompression the original +.I file +is removed unless it contained more than one archived file. +.PP +When used without any +.I file +argument, +.BR p7zip +reads data from the standard input and compresses (or decompresses in case of +.BR \-d ) +it into the standard output. +.SH SWITCHES +.TP +.BR \-c ", " \-\-stdout ", " \-\-to\-stdout +Write output on standard output. +.TP +.BR \-d ", " \-\-decompress ", " \-\-uncompress +Decompress file. +.TP +.BR \-f ", " \-\-force +Skip some checks and force compression or decompression. +.TP +.BR \-h ", " \--help +Print usage. +.TP +.BR \-k ", " \-\-keep +Do not delete input file. +.TP +.B \-\- +Treat all subsequent arguments as file names, even if they start with a dash. +.SH "SEE ALSO" +.BR 7z (1), +.BR 7za (1), +.BR 7zr (1), +.BR bzip2 (1), +.BR gzip (1), +.BR zip (1) +.SH AUTHOR +Written for Debian by Mohammed Adnene Trojette. Updated by Robert Luberda. diff --git a/debian/p7zip.install b/debian/p7zip.install new file mode 100644 index 0000000..18441c0 --- /dev/null +++ b/debian/p7zip.install @@ -0,0 +1,3 @@ +bin/7zr usr/lib/p7zip +debian/scripts/p7zip usr/bin +debian/scripts/7zr usr/bin diff --git a/debian/p7zip.manpages b/debian/p7zip.manpages new file mode 100644 index 0000000..2e32491 --- /dev/null +++ b/debian/p7zip.manpages @@ -0,0 +1,2 @@ +debian/p7zip.1 +man1/7zr.1 diff --git a/debian/patches/01-makefile.patch b/debian/patches/01-makefile.patch new file mode 100644 index 0000000..66c0b49 --- /dev/null +++ b/debian/patches/01-makefile.patch @@ -0,0 +1,28 @@ +From: =?utf-8?q?Mohammed_Adn=C3=A8_Trojette?= +Date: Sun, 4 Jun 2006 10:43:06 +0200 +Subject: Makefiles cleanup + +--- + makefile | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/makefile b/makefile +index 745c8ed..a936f03 100644 +--- a/makefile ++++ b/makefile +@@ -42,7 +42,6 @@ sfx: common + common7z:common + $(MKDIR) bin/Codecs + $(MAKE) -C CPP/7zip/Bundles/Format7zFree all +- $(MAKE) -C CPP/7zip/Compress/Rar all + + lzham:common + $(MKDIR) bin/Codecs +@@ -67,7 +66,6 @@ clean_C: + $(MAKE) -C CPP/7zip/UI/FileManager clean + $(MAKE) -C CPP/7zip/UI/GUI clean + $(MAKE) -C CPP/7zip/Bundles/Format7zFree clean +- $(MAKE) -C CPP/7zip/Compress/Rar clean + $(MAKE) -C CPP/7zip/Compress/Lzham clean + $(MAKE) -C CPP/7zip/Bundles/LzmaCon clean2 + $(MAKE) -C CPP/7zip/Bundles/AloneGCOV clean diff --git a/debian/patches/02-man.patch b/debian/patches/02-man.patch new file mode 100644 index 0000000..a433899 --- /dev/null +++ b/debian/patches/02-man.patch @@ -0,0 +1,120 @@ +From: =?utf-8?q?Mohammed_Adn=C3=A8_Trojette?= +Date: Sun, 4 Jun 2006 10:43:06 +0200 +Subject: Man pages fixes + +--- + man1/7z.1 | 6 +++--- + man1/7za.1 | 8 ++++---- + man1/7zr.1 | 12 ++++++------ + 3 files changed, 13 insertions(+), 13 deletions(-) + +diff --git a/man1/7z.1 b/man1/7z.1 +index cdb3c7c..d2b7378 100644 +--- a/man1/7z.1 ++++ b/man1/7z.1 +@@ -10,7 +10,7 @@ + .BR ... + .PP + .SH DESCRIPTION +-7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. ++7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. + .TP + 7z uses plugins to handle archives. + .PP +@@ -55,7 +55,7 @@ Include filenames + don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln \-s .. ldir') + .TP + .B \-m{Parameters} +-Set Compression Method (see {DEST_SHARE_DOC}/MANUAL/switches/method.htm for a list of methods) ++Set Compression Method (see /usr/share/doc/p7zip-full/DOC/MANUAL/cmdline/switches/method.htm for a list of methods) + .TP + .B \-mhe=on|off + 7z format only : enables or disables archive header encryption (Default : off) +@@ -168,7 +168,7 @@ add all files from directory "a_directory" to the archive "archive.7z" (with dat + 7za(1), 7zr(1), bzip2(1), gzip(1), zip(1) + .PP + .SH "HTML Documentation" +-{DEST_SHARE_DOC}/MANUAL/index.htm ++/usr/share/doc/p7zip-full/DOC/MANUAL/start.htm + .SH AUTHOR + .TP + Written for Debian by Mohammed Adnene Trojette. +diff --git a/man1/7za.1 b/man1/7za.1 +index 15f0fe4..ae5730b 100644 +--- a/man1/7za.1 ++++ b/man1/7za.1 +@@ -10,9 +10,9 @@ + .BR ... + .PP + .SH DESCRIPTION +-7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. ++7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. + .TP +-7za is a stand-alone executable. 7za handles less archive formats than 7z, but does not need any others. ++7za is a stand-alone executable. 7za handles fewer archive formats than 7z. + .PP + .SH FUNCTION LETTERS + .TP +@@ -55,7 +55,7 @@ Include filenames + don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln \-s .. ldir') + .TP + .B \-m{Parameters} +-Set Compression Method (see {DEST_SHARE_DOC}/MANUAL/switches/method.htm for a list of methods) ++Set Compression Method (see /usr/share/doc/p7zip-full/DOC/MANUAL/cmdline/switches/method.htm for a list of methods) + .TP + .B \-mhe=on|off + 7z format only : enables or disables archive header encryption (Default : off) +@@ -168,7 +168,7 @@ add all files from directory "a_directory" to the archive "archive.7z" (with dat + 7z(1), 7zr(1), bzip2(1), gzip(1), zip(1) + .PP + .SH "HTML Documentation" +-{DEST_SHARE_DOC}/MANUAL/index.htm ++/usr/share/doc/p7zip-full/DOC/MANUAL/start.htm + .SH AUTHOR + .TP + Written for Debian by Mohammed Adnene Trojette. +diff --git a/man1/7zr.1 b/man1/7zr.1 +index f81d61c..fb2dcfd 100644 +--- a/man1/7zr.1 ++++ b/man1/7zr.1 +@@ -10,9 +10,9 @@ + .BR ... + .PP + .SH DESCRIPTION +-7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), ZIP, CAB, ARJ, GZIP, BZIP2, TAR, CPIO, RPM and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. ++7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. + .TP +-7zr is a stand-alone executable. 7zr handles less archive formats than 7z, but does not need any others. 7zr is a "light-version" of 7za that only handles 7z archives. ++7zr is a stand-alone executable. 7zr handles fewer archive formats than 7z. 7zr is a "light-version" of 7za that only handles 7z archives. + .PP + .SH FUNCTION LETTERS + .TP +@@ -55,7 +55,7 @@ Include filenames + don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln \-s .. ldir') + .TP + .B \-m{Parameters} +-Set Compression Method (see {DEST_SHARE_DOC}/MANUAL/switches/method.htm for a list of methods) ++Set Compression Method (see /usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm from the p7zip-full package for a list of methods) + .TP + .B \-mhe=on|off + 7z format only : enables or disables archive header encryption (Default : off) +@@ -117,8 +117,8 @@ DO NOT USE the 7-zip format for backup purpose on Linux/Unix because : + + .LP + On Linux/Unix, in order to backup directories you must use tar : +- \- to backup a directory : tar cf - directory | 7zr a -si directory.tar.7z +- \- to restore your backup : 7zr x -so directory.tar.7z | tar xf - ++ \- to backup a directory : tar cf \- directory | 7zr a \-si directory.tar.7z ++ \- to restore your backup : 7zr x \-so directory.tar.7z | tar xf \- + + If you want to send files and directories (not the owner of file) + to others Unix/MacOS/Windows users, you can use the 7-zip format. +@@ -165,7 +165,7 @@ add all files from directory "a_directory" to the archive "archive.7z" (with dat + 7z(1), 7za(1), bzip2(1), gzip(1), zip(1) + .PP + .SH "HTML Documentation" +-{DEST_SHARE_DOC}/MANUAL/index.htm ++/usr/share/doc/p7zip/DOC/MANUAL/start.htm (avabilable when the p7zip-full package is installed) + .SH AUTHOR + .TP + Written for Debian by Mohammed Adnene Trojette. diff --git a/debian/patches/03-include-linux-makefile.patch b/debian/patches/03-include-linux-makefile.patch new file mode 100644 index 0000000..48f4652 --- /dev/null +++ b/debian/patches/03-include-linux-makefile.patch @@ -0,0 +1,82 @@ +From: Robert Luberda +Date: Fri, 22 Jan 2016 11:16:14 +0100 +Subject: Include linux makefile + +Include appropriate makefile from makefile.machine + - makefile.linux_x86_asm_gcc_4.X on i386; + - makefile.linux_amd64_asm on amd64; + - makefile.linux_any_cpu_gcc_4.X otherwise. + +Update makefile.linux_amd64_asm to have the same visibility +flags as the *gcc_4.X makefiles. + +Update makefile.linux_x86_asm_gcc_4.X to use yasm instead +of nasm. +--- + makefile.linux_amd64_asm | 3 +++ + makefile.linux_x86_asm_gcc_4.X | 2 +- + makefile.machine | 20 ++++++++++++++++++++ + 3 files changed, 24 insertions(+), 1 deletion(-) + +diff --git a/makefile.linux_amd64_asm b/makefile.linux_amd64_asm +index 075c6a8..223559d 100644 +--- a/makefile.linux_amd64_asm ++++ b/makefile.linux_amd64_asm +@@ -11,6 +11,9 @@ ALLFLAGS=-m64 ${OPTFLAGS} -pipe \ + -D_7ZIP_ASM \ + $(LOCAL_FLAGS) + ++ALLFLAGS_CPP=-DENV_HAVE_GCCVISIBILITYPATCH -fvisibility=hidden -fvisibility-inlines-hidden ++ ++ + CXX=g++ + CC=gcc + CC_SHARED=-fPIC +diff --git a/makefile.linux_x86_asm_gcc_4.X b/makefile.linux_x86_asm_gcc_4.X +index 1ac339b..3b86ccc 100644 +--- a/makefile.linux_x86_asm_gcc_4.X ++++ b/makefile.linux_x86_asm_gcc_4.X +@@ -18,7 +18,7 @@ CXX=g++ + CC=gcc + CC_SHARED=-fPIC + LINK_SHARED=-fPIC -shared +-ASM=nasm -f elf ++ASM=yasm -f elf + + PRE_COMPILED_HEADER=StdAfx.h.gch + +diff --git a/makefile.machine b/makefile.machine +index 9e34c34..715e900 100644 +--- a/makefile.machine ++++ b/makefile.machine +@@ -1,6 +1,25 @@ + # + # makefile for Linux (x86, PPC, alpha ...) + # ++ifeq (1,1) # In debian always include the approrpiate makefile ++ ++ ifndef DEBIAN_P7ZIP_MAKEFILE ++ ++ ifeq (i386,$(DEB_HOST_ARCH)) ++ export DEBIAN_P7ZIP_MAKEFILE := makefile.linux_x86_asm_gcc_4.X ++ else ++ ifeq (amd64.64,$(DEB_HOST_ARCH).$(DEB_HOST_ARCH_BITS)) ++ export DEBIAN_P7ZIP_MAKEFILE := makefile.linux_amd64_asm ++ else ++ export DEBIAN_P7ZIP_MAKEFILE := makefile.linux_any_cpu_gcc_4.X # default ++ endif ++ endif ++ ++ endif ++ ++ include $(dir $(lastword $(MAKEFILE_LIST)))/$(DEBIAN_P7ZIP_MAKEFILE) ++ ++else + + OPTFLAGS=-O -s + +@@ -21,3 +40,4 @@ LOCAL_LIBS_DLL=$(LOCAL_LIBS) -ldl + OBJ_CRC32=$(OBJ_CRC32_C) + OBJ_AES= + ++endif diff --git a/debian/patches/05-hardening-flags.patch b/debian/patches/05-hardening-flags.patch new file mode 100644 index 0000000..aa42431 --- /dev/null +++ b/debian/patches/05-hardening-flags.patch @@ -0,0 +1,33 @@ +From: Robert Luberda +Date: Fri, 22 Jan 2016 00:53:09 +0100 +Subject: Hardening flags + +Add support for $(CPPFLAGS) and do not override $(CXXFLAGS) +and $(CFLAGS) + +Bug-Debian: https://bugs.debian.org/#682167 +--- + makefile.glb | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/makefile.glb b/makefile.glb +index fb001d5..e10ae03 100644 +--- a/makefile.glb ++++ b/makefile.glb +@@ -1,14 +1,14 @@ + + RM=rm -f + +-CFLAGS=-c -I. \ ++CFLAGS+=$(CPPFLAGS) -c -I. \ + -I../../../../C \ + -I../../../../CPP/myWindows \ + -I../../../../CPP/include_windows \ + -I../../../../CPP \ + $(ALLFLAGS) $(ALLFLAGS_C) + +-CXXFLAGS=-c -I. \ ++CXXFLAGS+=$(CPPFLAGS) -c -I. \ + -I../../../../C \ + -I../../../../CPP/myWindows \ + -I../../../../CPP/include_windows \ diff --git a/debian/patches/09-man-update.patch b/debian/patches/09-man-update.patch new file mode 100644 index 0000000..4e3dd98 --- /dev/null +++ b/debian/patches/09-man-update.patch @@ -0,0 +1,838 @@ +From: Robert Luberda +Date: Sun, 6 Mar 2016 12:52:49 +0100 +Subject: Update man pages + +Update 7z, 7za and 7zr man pages based on the usage output printed +by the commands. + +Remove reference to -p{Password} option from the 7zr(1) page, as the +command does not support it (LP: 558609) + +Mention in 7z(1) that the 7z command might be slower than 7za (closes: #636667). + +Replace "the highest compression ratio" with "high" or "very high" +and make sure the phrase refers to the 7z format, not to the archive +program itself (closes: #636179) + +Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/p7zip/+bug/558609 +Bug-Debian: https://bugs.debian.org/636179 +Bug-Debian: https://bugs.debian.org/636667 +--- + man1/7z.1 | 188 ++++++++++++++++++++++++++++++++++++++++++++--------------- + man1/7za.1 | 185 ++++++++++++++++++++++++++++++++++++++++++++-------------- + man1/7zr.1 | 192 +++++++++++++++++++++++++++++++++++++++++++++---------------- + 3 files changed, 426 insertions(+), 139 deletions(-) + +diff --git a/man1/7z.1 b/man1/7z.1 +index d2b7378..72e262b 100644 +--- a/man1/7z.1 ++++ b/man1/7z.1 +@@ -1,97 +1,187 @@ +-.TH 7z 1 "September 1 2006" "Mohammed Adnene Trojette" ++.TH 7z 1 "March 6th, 2016" "7-Zip" + .SH NAME +-7z \- A file archiver with highest compression ratio ++7z \- A file archiver with high compression ratio format + .SH SYNOPSIS + .B 7z +-.BR [adeltux] +-.BR [\-] +-.BR [SWITCH] +-.BR +-.BR ... ++.B ++.RB [ "... ]" ++.B ++.RB [ "... ]" ++.RB [ <@listfiles> "... ]" + .PP + .SH DESCRIPTION +-7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. +-.TP +-7z uses plugins to handle archives. ++7-Zip is a file archiver supporting 7z (that implements LZMA compression algorithm ++featuring very high compression ratio), LZMA2, XZ, ZIP, Zip64, CAB, ++RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, ++most filesystem images and DEB formats. ++Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. + .PP +-.SH FUNCTION LETTERS ++.B 7z ++uses plugins to handle archives, so it might be slightly slower than ++.BR 7za (1) ++but can handle more archive formats. ++.SH COMMANDS + .TP + .B a +-Add ++Add files to archive ++.TP ++.B b ++Benchmark + .TP + .B d +-Delete ++Delete files from archive + .TP + .B e +-Extract ++Extract files from archive (without using directory names) ++.TP ++.B h ++Calculate hash values for files ++.TP ++.B i ++Show information about supported formats + .TP + .B l +-List ++List contents of archive ++.TP ++.B rn ++Rename files in archive + .TP + .B t +-Test ++Test integrity of archive + .TP + .B u +-Update ++Update files to archive + .TP + .B x +-eXtract with full paths ++eXtract files with full paths + .PP + .SH SWITCHES + .TP +-.B \-ai[r[\-|0]]{@listfile|!wildcard} ++.B \-\- ++Stop switches parsing ++.TP ++.B \-ai[r[-|0]]{@listfile|!wildcard} + Include archives + .TP +-.B \-ax[r[\-|0]]{@listfile|!wildcard} +-eXclude archives ++.B \-ax[r[-|0]]{@listfile|!wildcard} ++Exclude archives ++.TP ++.B \-ao{a|s|t|u} ++Set Overwrite mode ++.TP ++.B \-an ++Disable archive_name field ++.TP ++.B -bb[0-3] ++Set output log level + .TP + .B \-bd +-Disable percentage indicator ++Disable progress indicator ++.TP ++.B \-bs{o|e|p}{0|1|2} ++Set output stream for output/error/progress line ++.TP ++.B \-bt ++Show execution time statistics + .TP + .B \-i[r[\-|0]]{@listfile|!wildcard} + Include filenames + .TP +-.B \-l +-don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln \-s .. ldir') +-.TP + .B \-m{Parameters} +-Set Compression Method (see /usr/share/doc/p7zip-full/DOC/MANUAL/cmdline/switches/method.htm for a list of methods) +-.TP +-.B \-mhe=on|off +-7z format only : enables or disables archive header encryption (Default : off) ++Set Compression Method (see /usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm from the p7zip-full package for a list of methods) + .TP + .B \-o{Directory} + Set Output directory + .TP + .B \-p{Password} +-Set Password ++Set Password (NOTE: this flag does not work with 7z, + .TP + .B \-r[\-|0] + Recurse subdirectories (CAUTION: this flag does not do what you think, avoid using it) + .TP ++.B \-sa{a|e|s} ++Set archive name mode ++.TP ++.B \-scc{UTF\-8|WIN|DOS} ++Set charset for for console input/output ++.TP ++.B \-scs{UTF\-8|UTF\-16LE|UTF\-16BE|WIN|DOS|{id}} ++Set charset for list files ++.TP ++.B \-scrc[CRC32|CRC64|SHA1|SHA256|*] ++Set hash function for x, e, h commands ++.TP ++.B \-sdel ++Delete files after compression ++.TP ++.B \-seml[.] ++Send archive by email ++.TP + .B \-sfx[{name}] + Create SFX archive + .TP +-.B \-si +-Read data from StdIn (eg: tar cf \- directory | 7z a \-si directory.tar.7z) ++.B \-si[{name}] ++Read data from stdin (e.g. tar cf \- directory | 7z a \-si directory.tar.7z) + .TP +-.B \-so +-Write data to StdOut (eg: % echo foo | 7z a dummy \-tgzip \-si \-so > /dev/null) ++.B \-slp ++Set Large Pages mode + .TP + .B \-slt +-Sets technical mode for l (list) command ++Show technical information for l (List) command ++.TP ++.B \-snh ++Store hard links as links ++.TP ++.B \-snl ++Store symbolic links as links ++.TP ++.B \-sni ++Store NT security information ++.TP ++.B \-sns[\-] ++Store NTFS alternate streams ++.TP ++.B \-sfx[{name}] ++Create SFX archive ++.TP ++.B \-so ++Write data to stdout (e.g. 7z x \-so directory.tar.7z | tar xf \-) ++.TP ++.B \-spd ++Disable wildcard matching for file names ++.TP ++.B \-spe ++Eliminate duplication of root folder for extract command ++.TP ++.B \-spf ++Use fully qualified file paths ++.TP ++.B \-ssc[\-] ++Set sensitive case mode ++.TP ++.B \-ssw ++Compress shared files ++.TP ++.B \-stl ++Set archive timestamp from the most recently modified file ++.TP ++.B \-stm{HexMask} ++Set CPU thread affinity mask (hexadecimal number) ++.TP ++.B \-stx{Type} ++Exclude archive type + .TP + .B \-t{Type} +-Type of archive (7z, zip, gzip, bzip2 or tar. 7z format is default) ++Set type of archive ++.TP ++.B \-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] ++Update options + .TP + .B \-v{Size}[b|k|m|g] + Create volumes + .TP +-.B \-u[\-][p#][q#][r#][x#][y#][z#][!newArchiveName] +-Update options +-.TP + .B \-w[path] +-Set Working directory ++Set working directory. Empty path means a temporary directory + .TP + .B \-x[r[\-|0]]]{@listfile|!wildcard} + Exclude filenames +@@ -105,7 +195,8 @@ Assume Yes on all queries + .IP 0 + Normal (no errors or warnings detected) + .IP 1 +-Warning (Non fatal error(s)). For example, some files cannot be read during compressing. So they were not compressed ++Warning (Non fatal error(s)). For example, some files cannot be read during compressing, ++so they were not compressed + .IP 2 + Fatal error + .IP 7 +@@ -120,13 +211,13 @@ DO NOT USE the 7-zip format for backup purpose on Linux/Unix because : + + .LP + On Linux/Unix, in order to backup directories you must use tar : +- \- to backup a directory : tar cf \- directory | 7za a \-si directory.tar.7z +- \- to restore your backup : 7za x \-so directory.tar.7z | tar xf \- ++ \- to backup a directory : tar cf \- directory | 7z a \-si directory.tar.7z ++ \- to restore your backup : 7z x \-so directory.tar.7z | tar xf \- + + If you want to send files and directories (not the owner of file) + to others Unix/MacOS/Windows users, you can use the 7-zip format. + +- example : 7za a directory.7z directory ++ example : 7z a directory.7z directory + + .LP + Do not use "\-r" because this flag does not do what you think. +@@ -165,10 +256,15 @@ add all files from directory "dir1" to SFX archive archive.exe (Remark : SFX arc + 7z a \-mhe=on \-pmy_password archive.7z a_directory + add all files from directory "a_directory" to the archive "archive.7z" (with data and header archive encryption on) + .SH "SEE ALSO" +-7za(1), 7zr(1), bzip2(1), gzip(1), zip(1) ++.BR 7zr (1), ++.BR 7za (1), ++.BR p7zip (1), ++.BR bzip2 (1), ++.BR gzip (1), ++.BR zip(1), + .PP + .SH "HTML Documentation" + /usr/share/doc/p7zip-full/DOC/MANUAL/start.htm + .SH AUTHOR + .TP +-Written for Debian by Mohammed Adnene Trojette. ++Written for Debian by Mohammed Adnene Trojette. Updated by Robert Luberda. +diff --git a/man1/7za.1 b/man1/7za.1 +index ae5730b..218e245 100644 +--- a/man1/7za.1 ++++ b/man1/7za.1 +@@ -1,99 +1,190 @@ +-.TH 7za 1 "September 1 2006" "Mohammed Adnene Trojette" ++.TH 7za 1 "March 6th, 2016" "7-Zip" + .SH NAME +-7za \- A file archiver with highest compression ratio ++7za \- A file archiver with high compression ratio format + .SH SYNOPSIS + .B 7za +-.BR [adeltux] +-.BR [-] +-.BR [SWITCH] +-.BR +-.BR ... ++.B ++.RB [ "... ]" ++.B ++.RB [ "... ]" ++.RB [ <@listfiles> "... ]" + .PP + .SH DESCRIPTION +-7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. +-.TP +-7za is a stand-alone executable. 7za handles fewer archive formats than 7z. ++7-Zip is a file archiver supporting 7z (that implements LZMA compression algorithm ++featuring very high compression ratio), LZMA2, XZ, ZIP, Zip64, CAB, ++RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, ++most filesystem images and DEB formats. ++Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. + .PP +-.SH FUNCTION LETTERS ++.B 7za ++is a stand-alone executable. ++.B 7za ++handles fewer archive formats than ++.BR 7z (1). ++.SH COMMANDS + .TP + .B a +-Add ++Add files to archive ++.TP ++.B b ++Benchmark + .TP + .B d +-Delete ++Delete files from archive + .TP + .B e +-Extract ++Extract files from archive (without using directory names) ++.TP ++.B h ++Calculate hash values for files ++.TP ++.B i ++Show information about supported formats + .TP + .B l +-List ++List contents of archive ++.TP ++.B rn ++Rename files in archive + .TP + .B t +-Test ++Test integrity of archive + .TP + .B u +-Update ++Update files to archive + .TP + .B x +-eXtract with full paths ++eXtract files with full paths + .PP + .SH SWITCHES + .TP ++.B \-\- ++Stop switches parsing ++.TP + .B \-ai[r[-|0]]{@listfile|!wildcard} + Include archives + .TP + .B \-ax[r[-|0]]{@listfile|!wildcard} +-eXclude archives ++Exclude archives ++.TP ++.B \-ao{a|s|t|u} ++Set Overwrite mode ++.TP ++.B \-an ++Disable archive_name field ++.TP ++.B -bb[0-3] ++Set output log level + .TP + .B \-bd +-Disable percentage indicator ++Disable progress indicator + .TP +-.B \-i[r[-|0]]{@listfile|!wildcard} +-Include filenames ++.B \-bs{o|e|p}{0|1|2} ++Set output stream for output/error/progress line + .TP +-.B \-l +-don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln \-s .. ldir') ++.B \-bt ++Show execution time statistics + .TP +-.B \-m{Parameters} +-Set Compression Method (see /usr/share/doc/p7zip-full/DOC/MANUAL/cmdline/switches/method.htm for a list of methods) ++.B \-i[r[\-|0]]{@listfile|!wildcard} ++Include filenames + .TP +-.B \-mhe=on|off +-7z format only : enables or disables archive header encryption (Default : off) ++.B \-m{Parameters} ++Set Compression Method (see /usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm from the p7zip-full package for a list of methods) + .TP + .B \-o{Directory} + Set Output directory + .TP + .B \-p{Password} +-Set Password ++Set Password (NOTE: this flag does not work with 7za, + .TP +-.B \-r[-|0] ++.B \-r[\-|0] + Recurse subdirectories (CAUTION: this flag does not do what you think, avoid using it) + .TP ++.B \-sa{a|e|s} ++Set archive name mode ++.TP ++.B \-scc{UTF\-8|WIN|DOS} ++Set charset for for console input/output ++.TP ++.B \-scs{UTF\-8|UTF\-16LE|UTF\-16BE|WIN|DOS|{id}} ++Set charset for list files ++.TP ++.B \-scrc[CRC32|CRC64|SHA1|SHA256|*] ++Set hash function for x, e, h commands ++.TP ++.B \-sdel ++Delete files after compression ++.TP ++.B \-seml[.] ++Send archive by email ++.TP + .B \-sfx[{name}] + Create SFX archive + .TP +-.B \-si +-Read data from StdIn (eg: tar cf \- directory | 7za a \-si directory.tar.7z) ++.B \-si[{name}] ++Read data from stdin (e.g. tar cf \- directory | 7za a \-si directory.tar.7z) + .TP +-.B \-so +-Write data to StdOut (eg: % echo foo | 7z a dummy \-tgzip \-si \-so > /dev/null) ++.B \-slp ++Set Large Pages mode + .TP + .B \-slt +-Sets technical mode for l (list) command ++Show technical information for l (List) command + .TP +-.B \-t{Type} +-Type of archive (7z, zip, gzip, bzip2 or tar. 7z format is default) ++.B \-snh ++Store hard links as links + .TP +-.B \-v{Size}[b|k|m|g] +-Create volumes ++.B \-snl ++Store symbolic links as links ++.TP ++.B \-sni ++Store NT security information ++.TP ++.B \-sns[\-] ++Store NTFS alternate streams ++.TP ++.B \-sfx[{name}] ++Create SFX archive ++.TP ++.B \-so ++Write data to stdout (e.g. 7za x \-so directory.tar.7z | tar xf \-) ++.TP ++.B \-spd ++Disable wildcard matching for file names ++.TP ++.B \-spe ++Eliminate duplication of root folder for extract command ++.TP ++.B \-spf ++Use fully qualified file paths ++.TP ++.B \-ssc[\-] ++Set sensitive case mode ++.TP ++.B \-ssw ++Compress shared files ++.TP ++.B \-stl ++Set archive timestamp from the most recently modified file ++.TP ++.B \-stm{HexMask} ++Set CPU thread affinity mask (hexadecimal number) ++.TP ++.B \-stx{Type} ++Exclude archive type ++.TP ++.B \-t{Type} ++Set type of archive + .TP + .B \-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] + Update options + .TP ++.B \-v{Size}[b|k|m|g] ++Create volumes ++.TP + .B \-w[path] +-Set Working directory ++Set working directory. Empty path means a temporary directory + .TP +-.B \-x[r[-|0]]]{@listfile|!wildcard} ++.B \-x[r[\-|0]]]{@listfile|!wildcard} + Exclude filenames + .TP + .B \-y +@@ -105,7 +196,8 @@ Assume Yes on all queries + .IP 0 + Normal (no errors or warnings detected) + .IP 1 +-Warning (Non fatal error(s)). For example, some files cannot be read during compressing. So they were not compressed ++Warning (Non fatal error(s)). For example, some files cannot be read during compressing, ++so they were not compressed + .IP 2 + Fatal error + .IP 7 +@@ -165,10 +257,15 @@ add all files from directory "dir1" to SFX archive archive.exe (Remark : SFX arc + 7za a \-mhe=on \-pmy_password archive.7z a_directory + add all files from directory "a_directory" to the archive "archive.7z" (with data and header archive encryption on) + .SH "SEE ALSO" +-7z(1), 7zr(1), bzip2(1), gzip(1), zip(1) ++.BR 7zr (1), ++.BR 7z (1), ++.BR p7zip (1), ++.BR bzip2 (1), ++.BR gzip (1), ++.BR zip(1), + .PP + .SH "HTML Documentation" + /usr/share/doc/p7zip-full/DOC/MANUAL/start.htm + .SH AUTHOR + .TP +-Written for Debian by Mohammed Adnene Trojette. ++Written for Debian by Mohammed Adnene Trojette. Updated by Robert Luberda. +diff --git a/man1/7zr.1 b/man1/7zr.1 +index fb2dcfd..494efc9 100644 +--- a/man1/7zr.1 ++++ b/man1/7zr.1 +@@ -1,99 +1,192 @@ +-.TH 7zr 1 "September 1 2006" "Mohammed Adnene Trojette" ++.TH 7zr 1 "March 6th, 2016" "7-Zip" + .SH NAME +-7zr \- A file archiver with highest compression ratio ++7zr \- A file archiver with high compression ratio format + .SH SYNOPSIS + .B 7zr +-.BR [adeltux] +-.BR [-] +-.BR [SWITCH] +-.BR +-.BR ... ++.B ++.RB [ "... ]" ++.B ++.RB [ "... ]" ++.RB [ <@listfiles> "... ]" + .PP + .SH DESCRIPTION +-7-Zip is a file archiver with the highest compression ratio. The program supports 7z (that implements LZMA compression algorithm), LZMA2, XZ, ZIP, Zip64, CAB, RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, most filesystem images and DEB formats. Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. +-.TP +-7zr is a stand-alone executable. 7zr handles fewer archive formats than 7z. 7zr is a "light-version" of 7za that only handles 7z archives. ++7-Zip is a file archiver supporting 7z (that implements LZMA compression algorithm ++featuring very high compression ratio), LZMA2, XZ, ZIP, Zip64, CAB, ++RAR (if the non-free p7zip-rar package is installed), ARJ, GZIP, BZIP2, TAR, CPIO, RPM, ISO, ++most filesystem images and DEB formats. ++Compression ratio in the new 7z format is 30-50% better than ratio in ZIP format. + .PP +-.SH FUNCTION LETTERS ++.B 7zr ++is a stand-alone executable. ++.B 7zr ++is a "light-version" of ++.BR 7za (1). ++.B 7zr ++handles password-less archives in the 7z, LZMA2, and XZ formats only. ++.SH COMMANDS + .TP + .B a +-Add ++Add files to archive ++.TP ++.B b ++Benchmark + .TP + .B d +-Delete ++Delete files from archive + .TP + .B e +-Extract ++Extract files from archive (without using directory names) ++.TP ++.B h ++Calculate hash values for files ++.TP ++.B i ++Show information about supported formats + .TP + .B l +-List ++List contents of archive ++.TP ++.B rn ++Rename files in archive + .TP + .B t +-Test ++Test integrity of archive + .TP + .B u +-Update ++Update files to archive + .TP + .B x +-eXtract with full paths ++eXtract files with full paths + .PP + .SH SWITCHES + .TP ++.B \-\- ++Stop switches parsing ++.TP + .B \-ai[r[-|0]]{@listfile|!wildcard} + Include archives + .TP + .B \-ax[r[-|0]]{@listfile|!wildcard} +-eXclude archives ++Exclude archives ++.TP ++.B \-ao{a|s|t|u} ++Set Overwrite mode ++.TP ++.B \-an ++Disable archive_name field ++.TP ++.B -bb[0-3] ++Set output log level + .TP + .B \-bd +-Disable percentage indicator ++Disable progress indicator + .TP +-.B \-i[r[-|0]]{@listfile|!wildcard} +-Include filenames ++.B \-bs{o|e|p}{0|1|2} ++Set output stream for output/error/progress line ++.TP ++.B \-bt ++Show execution time statistics + .TP +-.B \-l +-don't store symlinks; store the files/directories they point to (CAUTION : the scanning stage can never end because of recursive symlinks like 'ln \-s .. ldir') ++.B \-i[r[\-|0]]{@listfile|!wildcard} ++Include filenames + .TP + .B \-m{Parameters} + Set Compression Method (see /usr/share/doc/p7zip/DOC/MANUAL/cmdline/switches/method.htm from the p7zip-full package for a list of methods) + .TP +-.B \-mhe=on|off +-7z format only : enables or disables archive header encryption (Default : off) +-.TP + .B \-o{Directory} + Set Output directory + .TP +-.B \-p{Password} +-Set Password +-.TP +-.B \-r[-|0] ++.B \-r[\-|0] + Recurse subdirectories (CAUTION: this flag does not do what you think, avoid using it) + .TP ++.B \-sa{a|e|s} ++Set archive name mode ++.TP ++.B \-scc{UTF\-8|WIN|DOS} ++Set charset for for console input/output ++.TP ++.B \-scs{UTF\-8|UTF\-16LE|UTF\-16BE|WIN|DOS|{id}} ++Set charset for list files ++.TP ++.B \-scrc[CRC32|CRC64|SHA1|SHA256|*] ++Set hash function for x, e, h commands ++.TP ++.B \-sdel ++Delete files after compression ++.TP ++.B \-seml[.] ++Send archive by email ++.TP + .B \-sfx[{name}] + Create SFX archive + .TP +-.B \-si +-Read data from StdIn (eg: tar cf \- directory | 7zr a \-si directory.tar.7z) ++.B \-si[{name}] ++Read data from stdin (e.g. tar cf \- directory | 7zr a \-si directory.tar.7z) + .TP +-.B \-so +-Write data to StdOut (eg: 7zr x \-so directory.tar.7z | tar xf \-) ++.B \-slp ++Set Large Pages mode + .TP + .B \-slt +-Sets technical mode for l (list) command ++Show technical information for l (List) command + .TP +-.B \-v{Size}[b|k|m|g] +-Create volumes ++.B \-snh ++Store hard links as links ++.TP ++.B \-snl ++Store symbolic links as links ++.TP ++.B \-sni ++Store NT security information ++.TP ++.B \-sns[\-] ++Store NTFS alternate streams ++.TP ++.B \-sfx[{name}] ++Create SFX archive ++.TP ++.B \-so ++Write data to stdout (e.g. 7zr x \-so directory.tar.7z | tar xf \-) ++.TP ++.B \-spd ++Disable wildcard matching for file names ++.TP ++.B \-spe ++Eliminate duplication of root folder for extract command ++.TP ++.B \-spf ++Use fully qualified file paths ++.TP ++.B \-ssc[\-] ++Set sensitive case mode ++.TP ++.B \-ssw ++Compress shared files ++.TP ++.B \-stl ++Set archive timestamp from the most recently modified file ++.TP ++.B \-stm{HexMask} ++Set CPU thread affinity mask (hexadecimal number) ++.TP ++.B \-stx{Type} ++Exclude archive type ++.TP ++.B \-t{Type} ++Set type of archive + .TP + .B \-u[-][p#][q#][r#][x#][y#][z#][!newArchiveName] + Update options + .TP ++.B \-v{Size}[b|k|m|g] ++Create volumes ++.TP + .B \-w[path] +-Set Working directory ++Set working directory. Empty path means a temporary directory + .TP +-.B \-x[r[-|0]]]{@listfile|!wildcard} ++.B \-x[r[\-|0]]]{@listfile|!wildcard} + Exclude filenames + .TP +-.B \-y ++.B \-y + Assume Yes on all queries + .PP + .SH DIAGNOSTICS +@@ -102,7 +195,8 @@ Assume Yes on all queries + .IP 0 + Normal (no errors or warnings detected) + .IP 1 +-Warning (Non fatal error(s)). For example, some files cannot be read during compressing. So they were not compressed ++Warning (Non fatal error(s)). For example, some files cannot be read during compressing, ++so they were not compressed + .IP 2 + Fatal error + .IP 7 +@@ -156,16 +250,16 @@ solid archive = on + .B + 7zr a \-sfx archive.exe dir1 + add all files from directory "dir1" to SFX archive archive.exe (Remark : SFX archive MUST end with ".exe") +-.SH EXAMPLE 3 +-.TP +-.B +-7zr a \-mhe=on \-pmy_password archive.7z a_directory +-add all files from directory "a_directory" to the archive "archive.7z" (with data and header archive encryption on) + .SH "SEE ALSO" +-7z(1), 7za(1), bzip2(1), gzip(1), zip(1) ++.BR 7za (1), ++.BR 7z (1), ++.BR p7zip (1), ++.BR bzip2 (1), ++.BR gzip (1), ++.BR zip(1), + .PP + .SH "HTML Documentation" + /usr/share/doc/p7zip/DOC/MANUAL/start.htm (avabilable when the p7zip-full package is installed) + .SH AUTHOR + .TP +-Written for Debian by Mohammed Adnene Trojette. ++Written for Debian by Mohammed Adnene Trojette. Updated by Robert Luberda. diff --git a/debian/patches/10-drop-fm-doc.patch b/debian/patches/10-drop-fm-doc.patch new file mode 100644 index 0000000..aadf9cb --- /dev/null +++ b/debian/patches/10-drop-fm-doc.patch @@ -0,0 +1,96 @@ +From: Robert Luberda +Date: Sun, 6 Mar 2016 13:16:16 +0100 +Subject: Remove references to fm/ dir and license.htm + +Remove references to fm/* which describes Windows GUI, which +is not available in this package. + +Replace references to license.htm with references to copyright. + +Drop .exe extension from 7z commands (LP: #181402). + +Bugs-Ubuntu https://bugs.launchpad.net/ubuntu/+source/p7zip/+bug/181402 +--- + DOC/MANUAL/cmdline/index.htm | 10 +++++----- + DOC/MANUAL/cmdline/switches/sfx.htm | 2 +- + DOC/MANUAL/general/index.htm | 3 +-- + DOC/MANUAL/start.htm | 3 +-- + 4 files changed, 8 insertions(+), 10 deletions(-) + +diff --git a/DOC/MANUAL/cmdline/index.htm b/DOC/MANUAL/cmdline/index.htm +index c3515a3..129c479 100644 +--- a/DOC/MANUAL/cmdline/index.htm ++++ b/DOC/MANUAL/cmdline/index.htm +@@ -11,12 +11,12 @@ +

Command Line Version User's Guide

+ + +-

7z.exe is the command line version of 7-Zip. 7z.exe uses 7z.dll +-from the 7-Zip package. 7z.dll is used by the 7-Zip File Manager also. ++

7z is the command line version of 7-Zip. 7z uses 7z.so ++from the 7-Zip package. + +-

7za.exe (a = alone) is a standalone version of 7-Zip. +-7za.exe supports only 7z, lzma, cab, zip, gzip, bzip2, Z and tar formats. +-7za.exe doesn't use external modules. ++

7za (a = alone) is a standalone version of 7-Zip. ++7za supports only 7z, lzma, cab, zip, gzip, bzip2, Z and tar formats. ++7za doesn't use external modules. + +

    +
  • Command Line syntax
  • +diff --git a/DOC/MANUAL/cmdline/switches/sfx.htm b/DOC/MANUAL/cmdline/switches/sfx.htm +index bed2f33..e93a284 100644 +--- a/DOC/MANUAL/cmdline/switches/sfx.htm ++++ b/DOC/MANUAL/cmdline/switches/sfx.htm +@@ -22,7 +22,7 @@ +
    {SFX_Module}
    +
    +

    Specifies the SFX module that will be combined with the archive. +- This module must be placed in the same directory as the 7z.exe. ++ This module must be placed in the same directory as the 7z. + If {SFX_Module} is not assigned, 7-Zip will use standard console + SFX module 7zCon.sfx.

    + +diff --git a/DOC/MANUAL/general/index.htm b/DOC/MANUAL/general/index.htm +index 2e304a4..4c5e55a 100644 +--- a/DOC/MANUAL/general/index.htm ++++ b/DOC/MANUAL/general/index.htm +@@ -13,7 +13,6 @@ +

    The main features of 7-Zip

    + +
      +-
    • Powerful file manager
    • +
    • High compression ratio and high speed
    • +
    • Big number of supported archive formats
    • +
    • Additional command line version
    • +@@ -21,7 +20,7 @@ + +

      See Also

      + + + +diff --git a/DOC/MANUAL/start.htm b/DOC/MANUAL/start.htm +index e4f96b4..e767c49 100644 +--- a/DOC/MANUAL/start.htm ++++ b/DOC/MANUAL/start.htm +@@ -17,7 +17,6 @@ + + + +@@ -25,7 +24,7 @@ + + + +
      diff --git a/debian/patches/11-README-no-instructions.patch b/debian/patches/11-README-no-instructions.patch new file mode 100644 index 0000000..d095a2f --- /dev/null +++ b/debian/patches/11-README-no-instructions.patch @@ -0,0 +1,189 @@ +From: Robert Luberda +Date: Sun, 6 Mar 2016 14:29:38 +0100 +Subject: Remove build instructions from README file + +--- + README | 163 +---------------------------------------------------------------- + 1 file changed, 1 insertion(+), 162 deletions(-) + +diff --git a/README b/README +index b76407f..6d3bd3f 100644 +--- a/README ++++ b/README +@@ -35,167 +35,6 @@ CAUTION : + do not use "directory/*" because of ".*" files + (example : "directory/*" does not match "directory/.profile") + +-BUILD : +-------- +- +- If you have downloaded the "bin" package, +- use directly the program bin/7za. (tested on Debian 3, Ubuntu 14.10) +- As the program is statically linked, its should run on many x86 or amd64 linux. +- +- If you have downloaded the "source" package, +- +- According to your OS, copy makefile.linux, +- makefile.freebsd, makefile.cygwin, ... +- over makefile.machine +- +- Example : building 7za, 7z (with its plugins), 7zr and Client7z and passing the internal tests +- cp makefile.linux_x86_asm_gcc_4 makefile.linux +- make all_test +- +- +- If you want to make a parallel build on a 4 cpu machine : make -j 4 TARGET +- +- If you have trouble, try : make -f makefile.oldmake TARGET +- +- make depend : to rebuild the makefile.depend +- make clean : to clean all directories +- make : to build bin/7za +- make sfx : to build bin/7zCon.sfx (7za can now create SFX archive) +- make 7z : to build bin/7z and its plugins : +- - "bin/7z.so" (GNU LGPL + AES code license) +- - "bin/Codecs/Rar.so" (GNU LGPL + unRAR restriction) +- make 7zr : to build bin/7zr +- make all : to build bin/7za and bin/7zCon.sfx +- make all2 : to build bin/7za, bin/7z (with its plugins) and bin/7zCon.sfx +- make all3 : to build bin/7za, bin/7z (with its plugins), bin/7zr and bin/7zCon.sfx +- make test : to test bin/7za (extracting, archiving, password ...) +- make test_7z : to test bin/7z (extracting, archiving, password ...) +- make test_7zr : to test bin/7zr (extracting, archiving, ...) +- +- make 7zG : to build bin/7zG and its plugins : +- - "bin/7z.so" (GNU LGPL + AES code license) +- - "bin/Codecs/Rar.so" (GNU LGPL + unRAR restriction) +- make test_7zG : to test bin/7zG (extracting, archiving, ...) +- +- +- this procedure has been tested on : +- - x86 CPU : +- Linux - Debian 3.0 Stable +- Linux - Ubuntu 14.10 +- Linux - Ubuntu 15.10 +- MacOS 10.6.6 +- +- - AMD64 CPU : +- Linux - Ubuntu 14.10 +- Linux - Ubuntu 15.10 +- MacOS 10.6.6 +- +- - powerpc CPU : +- MacOS X 10.4 (ppc) +- +- - arm : +- Android (Galaxy Note 3) +- +- Some older versions of p7zip were tested : +- - x86 CPU : +- DOS - (built with DJGPP, see http://blairdude.googlepages.com/p7zip ) +- Linux - Redhat 9.0 Standart +- Linux - Fedora 2 (Redhat) (gcc 3.3.3 and gcc-3.4.1 with +- stack-smashing protector from www.trl.ibm.com/projects/security/ssp/) +- Linux - Mandrake 10.0 Official +- Linux - Ubuntu 8.04 +- FreeBSD 5.2.1 (gcc 3.3.3) +- MacOS 10.4.8 +- NetBSD +- CYGWIN_NT-5.1 1.5.9(0.112/4/2) 2004-03-18 23:05 i686 Cygwin +- Solaris 9 (x86) with gcc 3.3.2 +- Solaris 10 (x86) +- +- - alpha CPU : +- Linux - Debian 3.0 (alpha) with gcc 2.95.4 +- +- - AMD64 CPU : +- Linux - SuSE 8 ES (AMD64 Opteron) with gcc 3.2.2 +- Linux - Fedora 4 (AMD64 Turion) with gcc 4.0.1 +- Linux - Ubuntu 8.10 +- +- - Itanium CPU : +- HP-UX B.11.31 U ia64 with aCC (HP C/aC++ B3910B A.06.14 [Feb 22 2007]) +- +- - s390x CPU : +- Linux - SUSE Enterprise Linux 10 - with gcc 4.1.2 +- ( only the 32bits built works, the 64bits built does not pass the tests ) +- +- - sparc CPU : +- Solaris 9 (sparc) with gcc 3.3.2 +- +- - sparc CPU : +- Solaris 8 (sparc) with gcc 2.95.2 +- +- +- - powerpc CPU : +- MacOS X 10.1/darwin 5.5 with gcc 932.1 (gcc 2.95.2) +- MacOS X 10.3 with XCode 1.5 +- +- - openpower CPU : +- Linux openpower-linux1 2.6.5-7.97-pseries64 (ppc64) with gcc 3.3.3 +- +- - IBM : +- AIX 5.3 with gcc 4.1.0 +- +- - Tru64 : +- OSF 5.1 with gcc 3.4.2 +- +- - PA-RISC : +- HP-UX 11.11 with aCC (HP ANSI C++ B3910B A.03.73) +- HP-UX 11.11 with gcc 3.4.2 (7za and 7zr : OK, 7z : failed because of a buggy gcc for HP-UX, +- plugins don't work because C++ constructors are not called !) +- +- +-BUILD with cmake +----------------- +- You can only build 7za. +- +- cd CPP/7zip/CMAKE +- +- ./generate.sh (or ./generate_xcode.sh for MacOSX) +- +- In CPP/7zip, you now have directories like : +- - P7ZIP.codeblocks/ +- - P7ZIP.EclipseCDT4/ +- - P7ZIP.Unix/ +- (or P7ZIP.Xcode/ for MacOSX) +- +- +- For the target "Unix Makefiles" : +- - cd CPP/7zip/P7ZIP.Unix +- - make +- +- Remark : these targets use only C/C++ code. To build targets with ASM code you must read the previous paragraph. +- +- For others target, use the IDE (CodeBlocks, KDevelop3, Eclipse CDT4) +- +-INSTALL : +---------- +- +- method 1 +- -------- +- - edit install.sh to change DEST_HOME +- - ./install.sh : to install +- Remark : you must be "root" to install 7za in the directory "/usr/local" +- +- method 2 +- -------- +- - 7za is a stand-alone program, you can put this program where you want. +- example : cp bin/7za /usr/local/bin/7za +- +- - 7z needs its plugins. You must copy the file 7z, 7z.so +- and the directory Codecs in the same destination directory. +- +- - if you want to be able to create SFX archive, copy bin/7zCon.sfx +- to the directory where 7za or 7z can be found. +- +- + USAGE: + ------ + Remark : you can replace 7za with 7z. +@@ -324,7 +163,7 @@ hugetlbfs (large pages) : + + LICENSE : + --------- +- please read DOC/License.txt. ++ please read copyright file. + + LIMITATIONS from 7-zip : + ------------------------ diff --git a/debian/patches/12-CVE-2016-9296.patch b/debian/patches/12-CVE-2016-9296.patch new file mode 100644 index 0000000..42245c9 --- /dev/null +++ b/debian/patches/12-CVE-2016-9296.patch @@ -0,0 +1,23 @@ +From: Robert Luberda +Date: Sat, 19 Nov 2016 08:48:08 +0100 +Subject: Fix nullptr dereference (CVE-2016-9296) + +Patch taken from https://sourceforge.net/p/p7zip/bugs/185/ +--- + CPP/7zip/Archive/7z/7zIn.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/CPP/7zip/Archive/7z/7zIn.cpp b/CPP/7zip/Archive/7z/7zIn.cpp +index b0c6b98..7c6dde2 100644 +--- a/CPP/7zip/Archive/7z/7zIn.cpp ++++ b/CPP/7zip/Archive/7z/7zIn.cpp +@@ -1097,7 +1097,8 @@ HRESULT CInArchive::ReadAndDecodePackedStreams( + if (CrcCalc(data, unpackSize) != folders.FolderCRCs.Vals[i]) + ThrowIncorrect(); + } +- HeadersSize += folders.PackPositions[folders.NumPackStreams]; ++ if (folders.PackPositions) ++ HeadersSize += folders.PackPositions[folders.NumPackStreams]; + return S_OK; + } + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..3d40242 --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,8 @@ +01-makefile.patch +02-man.patch +03-include-linux-makefile.patch +05-hardening-flags.patch +09-man-update.patch +10-drop-fm-doc.patch +11-README-no-instructions.patch +12-CVE-2016-9296.patch diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..2e94b52 --- /dev/null +++ b/debian/rules @@ -0,0 +1,37 @@ +#!/usr/bin/make -f + +DH_AUTO_OPTIONS := -v -Smakefile --parallel +stampfile := debian/build-stamp + +export DEB_BUILD_MAINT_OPTIONS=hardening=+all + +include /usr/share/dpkg/architecture.mk + +ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) + CC := $(DEB_HOST_GNU_TYPE)-gcc + CXX := $(DEB_HOST_GNU_TYPE)-g++ +else + CC := gcc + CXX := g++ +endif + +%: + dh ${@} + +override_dh_auto_clean: + # Make sure patches are applied otherwise `make clean' fails + # on trying to clean the removed Rar directory (see #769520). + dpkg-source --before-build $(CURDIR) + dh_auto_clean $(DH_AUTO_OPTIONS) + rm -rf bin/ $(stampfile) + +override_dh_auto_build: $(stampfile) + +$(stampfile): + dh_auto_build $(DH_AUTO_OPTIONS) -- CC=$(CC) CXX=$(CXX) OPTFLAGS= all3 + touch "$@" + +override_dh_auto_install: + +override_dh_installdocs: + dh_installdocs --link-doc=p7zip -Xcopying.txt -XLicense.txt -Xlicense.htm -Xfm diff --git a/debian/scripts/7z b/debian/scripts/7z new file mode 100755 index 0000000..399d3b4 --- /dev/null +++ b/debian/scripts/7z @@ -0,0 +1,2 @@ +#! /bin/sh +exec /usr/lib/p7zip/7z "$@" diff --git a/debian/scripts/7za b/debian/scripts/7za new file mode 100755 index 0000000..9761bcc --- /dev/null +++ b/debian/scripts/7za @@ -0,0 +1,2 @@ +#! /bin/sh +exec /usr/lib/p7zip/7za "$@" diff --git a/debian/scripts/7zr b/debian/scripts/7zr new file mode 100755 index 0000000..3831dde --- /dev/null +++ b/debian/scripts/7zr @@ -0,0 +1,2 @@ +#! /bin/sh +exec /usr/lib/p7zip/7zr "$@" diff --git a/debian/scripts/p7zip b/debian/scripts/p7zip new file mode 100755 index 0000000..c998b3f --- /dev/null +++ b/debian/scripts/p7zip @@ -0,0 +1,225 @@ +#!/bin/sh +# gzip-like CLI wrapper for p7zip +# version 3.0 +# +# History +# 2.0 : +# - support for -filename, "file name" +# - p7zip file1 file2 ... +# 3.0 : (robert@debian.org, March 2016) +# - use 7za or 7zr, whichever one is available +# - refactor the script for better readability +# - remove `"$?" != 0 ' checks that do not work with `set -e' +# - use stderr for error reporting +# - add support for -c, -f, -k options + +set -e + +# detect 7z program to use +prg7z="`which 7za 2>/dev/null`" || \ + prg7z="`which 7zr 2>/dev/null`" || \ + { echo "$0: cannot find neither 7za nor 7zr command" >&2; exit 1; } + +# global options +f_compress=true +f_keep=false +f_force=false +f_tostdout=false + +usage() +{ + echo "Usage: $0 [options] [--] [ name ... ]" + echo "" + echo "Options:" + echo " -c --stdout --to-stdout output data to stdout" + echo " -d --decompress --uncompress decompress file" + echo " -f --force do not ask questions" + echo " -k --keep keep original file" + echo " -h --help print this help" + echo " -- treat subsequent arguments as file" + echo " names, even if they start with a dash" + echo "" + exit 0 +} + +has_7z_suffix() +{ + case "$1" in + *.7z) + return 0 + ;; + *) + return 1 + ;; + esac; +} + +make_tmp_file() +{ + P7ZIPTMP="${TMP:-/tmp}" + mktemp "${P7ZIPTMP}/p7zip.XXXXXXXX" +} + +check_not_a_tty() +{ + if ! ${f_force} && ${f_compress} && tty <&1 >/dev/null ; then + echo "$0: compressed data not written to a terminal." >&2 + echo "For help, type: $0 -h" >&2 + exit 1 + fi +} + +compress_file() +{ + file="$1" + + if ! ${f_force} && has_7z_suffix "${file}"; then + echo "$0: $file already has the 7z suffix" >&2 + exit 1 + fi + + # compress to stdout via temporary file + if ${f_tostdout}; then + check_not_a_tty + tmp="`make_tmp_file`" + trap "rm -f -- ${tmp}" 0 + rm -f -- "${tmp}" + "${prg7z}" a -si -- "${tmp}" < "${file}" >/dev/null && cat "${tmp}" || \ + { echo "$0: failed to compress data to temporary file" >&2; exit 1; } + rm -f -- "${tmp}" + return 0 + fi + + # compress to a file + if ! ${f_force} && [ -e "${file}.7z" ]; then + echo "$0: destination file ${file}.7z already exists" >&2 + exit 1 + fi + + rm -f -- "${file}.7z" + flags="" + ${f_keep} || flags="$flags -sdel" + ! ${f_force} || flags="$flags -y" + "${prg7z}" a $flags -- "${file}.7z" "${file}" || { rm -f -- "${file}.7z"; exit 1; } +} + + +decompress_file() +{ + file="$1" + + has_7z_suffix "${file}" || { echo "$0: ${file}: unknown suffix" >&2; exit 1; } + + # decompress to stdout + if ${f_tostdout}; then + # The following `| cat' pipe shouldn't be needed, however it is here to + # trick 7z not to complain about writing data to terminal. + "${prg7z}" x -so -- "${file}" | cat || exit 1 + return 0; + fi + + flags="" + ! ${f_force} || flags="$flags -y" + "${prg7z}" x $flags -- "${file}" || exit 1 + + # remove original file unless the archive contains more than one file + if ! ${f_keep} && "${prg7z}" l -- "${file}" 2>/dev/null | grep -q '^1 file,' 2>/dev/null; then + rm -f -- "${file}" + fi +} + +process_file() +{ + file="$1" + + # check if file exists and is readable + [ -r "${file}" ] || { echo "$0: cannot read ${file}" >&2; exit 1; } + + if ${f_compress}; then + compress_file "${file}" + else + decompress_file "${file}" + fi +} + +process_stdin() +{ + check_not_a_tty + + tmp="`make_tmp_file`" + trap "rm -f -- ${tmp}" 0 + + if ${f_compress}; then + + rm -f -- "${tmp}" + "${prg7z}" a -si -- "${tmp}" >/dev/null && cat -- "${tmp}" || exit 1 + + else # decompress + + cat > "${tmp}" + # The following `| cat' pipe shouldn't be needed, however it is here to + # trick 7z not to complain about writing data to terminal. + "${prg7z}" x -so -- "${tmp}" | cat || exit 1 + fi + + rm -f -- "${tmp}" +} + + +## MAIN + + +# files and flags +while [ "$#" != "0" ] ; do + case "$1" in + -c|--stdout|--to-stdout) + f_tostdout=true + ;; + -d|--decompress|--uncompress) + f_compress=false # decompressing + ;; + -f|--force) + f_force=true + ;; + -h|--help) + usage + ;; + -k|--keep) + keep=true + ;; + --) + shift + break + ;; + -*) + echo "$0: ignoring unknown option $1" >&2 + ;; + *) + break + ;; + esac + shift +done + + +# make sure they're present, before we screw up +for i in mktemp rm cat tty grep; do + if ! which $i >/dev/null ; then + echo "$0: $i: command not found" >&2 + exit 1 + fi +done + +if [ "$#" = 0 ]; then + # compressing/decompressing using standard I/O + process_stdin + exit 0 +fi + +# only files now +while [ "$#" != "0" ] ; do + process_file "$1" + shift +done + +exit 0 diff --git a/debian/source/format b/debian/source/format new file mode 100644 index 0000000..163aaf8 --- /dev/null +++ b/debian/source/format @@ -0,0 +1 @@ +3.0 (quilt) diff --git a/debian/source/options b/debian/source/options new file mode 100644 index 0000000..3ad332e --- /dev/null +++ b/debian/source/options @@ -0,0 +1,2 @@ +diff-ignore +tar-ignore diff --git a/debian/watch b/debian/watch new file mode 100644 index 0000000..e8f8e65 --- /dev/null +++ b/debian/watch @@ -0,0 +1,4 @@ +version=4 + +opts="compression=xz,dversionmangle=s/\+dfsg\d*$//,repack,repacksuffix=+dfsg" \ + http://qa.debian.org/watch/sf.php/p7zip/p7zip_(.*)_src_all.tar.bz2 debian uupdate