mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
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>
This commit is contained in:
parent
ab8ebf14fc
commit
62347d01d3
6 changed files with 340 additions and 0 deletions
17
system/acefile/README
Normal file
17
system/acefile/README
Normal file
|
@ -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).
|
107
system/acefile/acefile-unace.1
Normal file
107
system/acefile/acefile-unace.1
Normal file
|
@ -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.
|
||||
.
|
97
system/acefile/acefile-unace.rst
Normal file
97
system/acefile/acefile-unace.rst
Normal file
|
@ -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/
|
90
system/acefile/acefile.SlackBuild
Normal file
90
system/acefile/acefile.SlackBuild
Normal file
|
@ -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
|
10
system/acefile/acefile.info
Normal file
10
system/acefile/acefile.info
Normal file
|
@ -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"
|
19
system/acefile/slack-desc
Normal file
19
system/acefile/slack-desc
Normal file
|
@ -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:
|
Loading…
Reference in a new issue