diff options
author | B. Watson <urchlay@slackware.uk> | 2023-04-21 00:26:17 +0100 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2023-04-22 11:38:30 +0700 |
commit | 62347d01d359c1fbe47418ddd2b0f312c987c2cd (patch) | |
tree | 1e30435a37734b30ee35433cb7926f53dd87adb7 /system/acefile | |
parent | ab8ebf14fcbbce32ab1b08891c461c7c2b253fab (diff) |
system/acefile: Added (extract ACE 1.0 and 2.0 archives)
Signed-off-by: bedlam <dave@slackbuilds.org>
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system/acefile')
-rw-r--r-- | system/acefile/README | 17 | ||||
-rw-r--r-- | system/acefile/acefile-unace.1 | 107 | ||||
-rw-r--r-- | system/acefile/acefile-unace.rst | 97 | ||||
-rw-r--r-- | system/acefile/acefile.SlackBuild | 90 | ||||
-rw-r--r-- | system/acefile/acefile.info | 10 | ||||
-rw-r--r-- | system/acefile/slack-desc | 19 |
6 files changed, 340 insertions, 0 deletions
diff --git a/system/acefile/README b/system/acefile/README new file mode 100644 index 0000000000000..a214806300e35 --- /dev/null +++ b/system/acefile/README @@ -0,0 +1,17 @@ +acefile (extract ACE 1.0 and 2.0 archives) + +This single-file, pure python 3, no-dependencies implementation is +intended to be used as a library, but also provides a stand-alone +unace utility. As a mostly pure-python implementation, it is +significantly slower than native implementations, but more robust +against vulnerabilities. + +This implementation supports up to version 2.0 of the ACE archive +format, including the EXE, DELTA, PIC and SOUND modes of ACE 2.0, +password protected archives and multi-volume archives. It does not +support writing to archives. It is an implementation from scratch, +based on the 1998 document titled "Technical information of the +archiver ACE v1.2" by Marcel Lemke, using unace 2.5 and WinAce 2.69 by +Marcel Lemke as reference implementations. + +Unlike the standard unace, this is Free Software (BSD-licensed). diff --git a/system/acefile/acefile-unace.1 b/system/acefile/acefile-unace.1 new file mode 100644 index 0000000000000..ca29026b4d894 --- /dev/null +++ b/system/acefile/acefile-unace.1 @@ -0,0 +1,107 @@ +.\" Man page generated from reStructuredText. +. +. +.nr rst2man-indent-level 0 +. +.de1 rstReportMargin +\\$1 \\n[an-margin] +level \\n[rst2man-indent-level] +level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] +- +\\n[rst2man-indent0] +\\n[rst2man-indent1] +\\n[rst2man-indent2] +.. +.de1 INDENT +.\" .rstReportMargin pre: +. RS \\$1 +. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] +. nr rst2man-indent-level +1 +.\" .rstReportMargin post: +.. +.de UNINDENT +. RE +.\" indent \\n[an-margin] +.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] +.nr rst2man-indent-level -1 +.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] +.in \\n[rst2man-indent\\n[rst2man-indent-level]]u +.. +.TH "ACEFILE-UNACE" 1 "2023-04-18" "0.6.12" "SlackBuilds.org" +.SH NAME +acefile-unace \- extract/view/test ACE archives +.\" RST source for acefile-unace(1) man page. Convert with: +. +.\" rst2man.py acefile-unace.rst > acefile-unace.1 +. +.SH SYNOPSIS +.sp +\fBacefile\-unace\fP [\fB\-h\fP] [\fB\-V\fP] [\fB\-x\fP | \fB\-t\fP | \fB\-l\fP | +\fB\-\-extract\fP | \fB\-\-test\fP | \fB\-\-list\fP | \fB\-\-headers\fP] [\fB\-d\fP +\fIdirectory\fP] [\fB\-p\fP \fIpassword\fP] [\fB\-r\fP | \fB\-\-restore\fP] [\fB\-b\fP | +\fB\-batch\fP] [\fB\-\-debug\fP] \fBace\-file\fP [\fBfile(s)\fP] +.SH DESCRIPTION +.sp +\fBacefile\-unace\fP extracts, views, or tests \fBACE\fP archives, such +as those created by WinACE. It does not allow creating or writing to +archives. +.sp +\fBacefile\-unace\fP supports up to version 2.0 of the ACE archive +format, including the EXE, DELTA, PIC and SOUND modes of ACE 2.0, +password protected archives, and multi\-volume archives. +.sp +The \fBace\-file\fP argument is required. With no options, the default is to +extract all files within \fBace\-file\fP to the current directory. +.SH OPTIONS +.INDENT 0.0 +.TP +.B \-h\fP,\fB \-\-help +Show built\-in help message and exit. +.TP +.B \-V\fP,\fB \-\-version +Show version number and exit. +.TP +.B \-\-extract\fP,\fB \-x +Extract files in archive (default). +.TP +.B \-\-test\fP,\fB \-t +Test archive integrity. +.TP +.B \-\-list\fP,\fB \-l +List files in archive. +.TP +.B \-\-headers +Dump archive headers. +.TP +.BI \-d \ directory\fR,\fB \ \-\-basedir \ directory +Base directory for extraction (default: current directory). +.TP +.BI \-p \ password\fR,\fB \ \-\-password \ password +Password for decryption. +.TP +.B \-r\fP,\fB \-\-restore +Restore mtime/atime, attribs and ntsecurity on extraction. +.TP +.B \-b\fP,\fB \-\-batch +Suppress all interactive input. +.TP +.B \-v\fP,\fB \-\-verbose +Be more verbose. +.TP +.B \-\-debug +Show mode transitions and expose internal exceptions. +.UNINDENT +.SH COPYRIGHT +.sp +See the file /usr/doc/acefile\-unace\-0.6.12/LICENSE.md for license information. +.SH AUTHORS +.sp +\fBacefile\-unace\fP was written by Daniel Roethlisberger. +.sp +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. +.SH SEE ALSO +.sp +The acefile\-unace homepage: \fI\%https://pypi.org/project/acefile/\fP +.\" Generated by docutils manpage writer. +. diff --git a/system/acefile/acefile-unace.rst b/system/acefile/acefile-unace.rst new file mode 100644 index 0000000000000..83b4b68da1d23 --- /dev/null +++ b/system/acefile/acefile-unace.rst @@ -0,0 +1,97 @@ +.. RST source for acefile-unace(1) man page. Convert with: +.. rst2man.py acefile-unace.rst > acefile-unace.1 + +.. |version| replace:: 0.6.12 +.. |date| date:: + +============= +acefile-unace +============= + +------------------------------ +extract/view/test ACE archives +------------------------------ + +:Manual section: 1 +:Manual group: SlackBuilds.org +:Date: |date| +:Version: |version| + +SYNOPSIS +======== + +**acefile-unace** [**-h**] [**-V**] [**-x** | **-t** | **-l** | +**--extract** | **--test** | **--list** | **--headers**] [**-d** +*directory*] [**-p** *password*] [**-r** | **--restore**] [**-b** | +**-batch**] [**--debug**] **ace-file** [**file(s)**] + +DESCRIPTION +=========== + +**acefile-unace** extracts, views, or tests **ACE** archives, such +as those created by WinACE. It does not allow creating or writing to +archives. + +**acefile-unace** supports up to version 2.0 of the ACE archive +format, including the EXE, DELTA, PIC and SOUND modes of ACE 2.0, +password protected archives, and multi-volume archives. + +The **ace-file** argument is required. With no options, the default is to +extract all files within **ace-file** to the current directory. + +OPTIONS +======= + +-h, --help + Show built-in help message and exit. + +-V, --version + Show version number and exit. + +--extract, -x + Extract files in archive (default). + +--test, -t + Test archive integrity. + +--list, -l + List files in archive. + +--headers + Dump archive headers. + +-d directory, --basedir directory + Base directory for extraction (default: current directory). + +-p password, --password password + Password for decryption. + +-r, --restore + Restore mtime/atime, attribs and ntsecurity on extraction. + +-b, --batch + Suppress all interactive input. + +-v, --verbose + Be more verbose. + +--debug + Show mode transitions and expose internal exceptions. + +COPYRIGHT +========= + +See the file /usr/doc/acefile-unace-|version|/LICENSE.md for license information. + +AUTHORS +======= + +**acefile-unace** was written by Daniel Roethlisberger. + +This man page written for the SlackBuilds.org project +by B. Watson, and is licensed under the WTFPL. + +SEE ALSO +======== + +The acefile-unace homepage: https://pypi.org/project/acefile/ diff --git a/system/acefile/acefile.SlackBuild b/system/acefile/acefile.SlackBuild new file mode 100644 index 0000000000000..ddca4156db59d --- /dev/null +++ b/system/acefile/acefile.SlackBuild @@ -0,0 +1,90 @@ +#!/bin/bash + +# Slackware build script for acefile + +# Written by B. Watson (urchlay@slackware.uk) + +# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details. + +# Note: the only ACE archives I could actually find in the wild to +# test this with are the Windows and MS-DOS ACE self-extracting exes, +# found here: + +# https://web.archive.org/web/20170619234433/http://www.winace.com/files/wace269i.exe +# linked to from https://web.archive.org/web/20170619234433fw_/http://www.winace.com/news.html +# https://web.archive.org/web/2005if_/http://www.winace.com:80/files/ace26.exe + +# $ file wace269i.exe +# wace269i.exe: PE32 executable (GUI) Intel 80386, for MS Windows, Petite compressed, ACE self-extracting archive +# $ file ace26.exe +# ace26.exe: MS-DOS executable, LE executable for MS-DOS, PMODE/W DOS extender, UPX compressed, ACE self-extracting archive + +# acefile-unace extracts both of the exes just fine. + +# Also, I used dosbox to run the ms-dos ace.exe and created an .ace +# archive with 2 small images in it, and it worked fine, too. Although +# only if the files were small (probably a limitation of the shareware +# ms-dos ace). With large files, acefile-unace and regular unace +# both show CRC errors... but sometimes regular unace will segfault +# instead. + +# ...it seems to work just fine. As the README says, it's a bit slow to +# extract, but AFAICT the results are correct. + +cd $(dirname $0) ; CWD=$(pwd) + +PRGNAM=acefile +VERSION=${VERSION:-0.6.12} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} +PKGTYPE=${PKGTYPE:-tgz} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then + echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" + exit 0 +fi + +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +# No CFLAGS or LIBDIRSUFFIX needed here. It uses -O3 for the native code, +# and I don't see a way to change it. + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $PRGNAM-$VERSION +tar xvf $CWD/$PRGNAM-$VERSION.tar.gz +cd $PRGNAM-$VERSION +chown -R root:root . +find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \ + \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+ + +python3 setup.py install --root=$PKG +strip $PKG/usr/lib*/python*/site-packages/*.so + +# man page by SlackBuild author. +mkdir -p $PKG/usr/man/man1 +gzip -9c < $CWD/acefile-unace.1 > $PKG/usr/man/man1/acefile-unace.1.gz + +PKGDOC=$PKG/usr/doc/$PRGNAM-$VERSION +mkdir -p $PKGDOC +cp -a *.md $PKGDOC +cat $CWD/$PRGNAM.SlackBuild > $PKGDOC/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE diff --git a/system/acefile/acefile.info b/system/acefile/acefile.info new file mode 100644 index 0000000000000..e93d5ac306336 --- /dev/null +++ b/system/acefile/acefile.info @@ -0,0 +1,10 @@ +PRGNAM="acefile" +VERSION="0.6.12" +HOMEPAGE="https://pypi.org/project/acefile/" +DOWNLOAD="https://files.pythonhosted.org/packages/source/a/acefile/acefile-0.6.12.tar.gz" +MD5SUM="a1bb0e5e711e876c12833a305664917a" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="" +MAINTAINER="B. Watson" +EMAIL="urchlay@slackware.uk" diff --git a/system/acefile/slack-desc b/system/acefile/slack-desc new file mode 100644 index 0000000000000..5b196ae357c47 --- /dev/null +++ b/system/acefile/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +acefile: acefile (extract ACE 1.0 and 2.0 archives) +acefile: +acefile: This single-file, pure python 3, no-dependencies implementation is +acefile: intended to be used as a library, but also provides a stand-alone +acefile: unace utility. As a mostly pure-python implementation, it is +acefile: significantly slower than native implementations, but more robust +acefile: against vulnerabilities. +acefile: +acefile: +acefile: +acefile: |