11TERMUX_PKG_HOMEPAGE=https://www.7-zip.org
22TERMUX_PKG_DESCRIPTION=" 7-Zip file archiver with a high compression ratio"
33TERMUX_PKG_LICENSE=" LGPL-2.1, BSD 3-Clause, BSD 2-Clause"
4- TERMUX_PKG_LICENSE_FILE=" DOC/License.txt, DOC/copying.txt"
4+ TERMUX_PKG_LICENSE_FILE="
5+ DOC/copying.txt
6+ DOC/License.txt
7+ DOC/unRarLicense.txt
8+ "
59TERMUX_PKG_MAINTAINER=" @termux"
610TERMUX_PKG_VERSION=" 26.02"
7- TERMUX_PKG_REVISION=1
11+ TERMUX_PKG_REVISION=2
812TERMUX_PKG_SRCURL=(
913 " https://www.7-zip.org/a/7z${TERMUX_PKG_VERSION// ./ } -src.tar.xz"
1014 " https://www.7-zip.org/a/7z${TERMUX_PKG_VERSION// ./ } -linux-arm.tar.xz" # for manual, arm is smallest
@@ -13,6 +17,7 @@ TERMUX_PKG_SHA256=(
1317 cf967c98bca02a4b8b16375f441825a8e141362f14be1969bbec8e1ca0bff9dd
1418 81b7f04b3528852fac10f5becf9f15870a5da4cb94fbcb8a138197eb937468bf
1519)
20+ TERMUX_PKG_BUILD_DEPENDS=" dos2unix"
1621TERMUX_PKG_AUTO_UPDATE=false
1722TERMUX_PKG_BUILD_IN_SRC=true
1823TERMUX_PKG_CONFLICTS=" p7zip"
@@ -27,29 +32,49 @@ termux_extract_src_archive() {
2732 tar -xf " $file " -C " $TERMUX_PKG_SRCDIR "
2833}
2934
30- termux_step_pre_configure () {
31- if [[ " $TERMUX_ARCH " == ' aarch64' ]]; then
32- CFLAGS+=' -march=armv8.1-a+crypto'
33- CXXFLAGS+=' -march=armv8.1-a+crypto'
35+ termux_step_post_get_source () {
36+ # convert CRLF to LF like in libpluto package
37+ if [[ " $TERMUX_ON_DEVICE_BUILD " == " false" ]]; then
38+ DOS2UNIX=" $TERMUX_PKG_TMPDIR /dos2unix"
39+ (
40+ . " $TERMUX_SCRIPTDIR /packages/dos2unix/build.sh"
41+ . " $TERMUX_SCRIPTDIR /scripts/build/get_source/termux_unpack_src_archive.sh"
42+ TERMUX_PKG_SRCDIR=" $DOS2UNIX " termux_step_get_source
43+ )
44+ pushd " $DOS2UNIX "
45+ make dos2unix
46+ popd # DOS2UNIX
47+ export PATH=" $DOS2UNIX :$PATH "
3448 fi
49+
50+ find " $TERMUX_PKG_SRCDIR " -type f -print0 | xargs -0 dos2unix
51+ }
52+
53+ termux_step_pre_configure () {
3554 # Remove executable perms from docs
3655 chmod -x DOC/* .txt
3756 # Remove -Werror to make build succeed
3857 sed -i -e ' s/-Werror//' CPP/7zip/7zip_gcc.mak
3958}
4059
4160termux_step_make () {
61+ local optim_args
62+ case " $TERMUX_ARCH " in
63+ x86_64) optim_args=' -f ../../cmpl_clang_x64.mak' ;;
64+ i686) optim_args=' -f ../../cmpl_clang_x86.mak' ;;
65+ arm) optim_args=' -f ../../cmpl_clang.mak PLATFORM=arm USE_ASM=1' ;;
66+ aarch64) optim_args=' -f ../../cmpl_clang_arm64.mak' ;;
67+ esac
68+
4269 # from https://git.alpinelinux.org/aports/tree/community/7zip/APKBUILD?id=b4601c88f608662c75422311b7ca3c26fab4b1f4
43- # TODO: enable asm
44- # DISABLE_RAR: RAR codec is non-free
4570 # -D_GNU_SOURCE: broken sched.h defines
4671 local bin
47- for bin in Bundles/{Alone,Alone2} UI/Console; do
72+ for bin in Bundles/{Format7zF, Alone,Alone7z, Alone2,SFXCon } UI/Console; do
4873 make -C " CPP/7zip/$bin " \
4974 CC=" $CC $CFLAGS $LDFLAGS -D_GNU_SOURCE" \
5075 CXX=" $CXX $CXXFLAGS $LDFLAGS -D_GNU_SOURCE" \
51- DISABLE_RAR=1 \
52- --file ../../cmpl_clang.mak \
76+ O=b/c \
77+ $optim_args \
5378 --jobs " $TERMUX_PKG_MAKE_PROCESSES "
5479 done
5580}
@@ -59,10 +84,17 @@ termux_step_make_install() {
5984 -t " $TERMUX_PREFIX " /bin \
6085 " $TERMUX_PKG_BUILDDIR " /CPP/7zip/UI/Console/b/c/7z \
6186 " $TERMUX_PKG_BUILDDIR " /CPP/7zip/Bundles/Alone/b/c/7za \
87+ " $TERMUX_PKG_BUILDDIR " /CPP/7zip/Bundles/Alone7z/b/c/7zr \
6288 " $TERMUX_PKG_BUILDDIR " /CPP/7zip/Bundles/Alone2/b/c/7zz
89+ install -Dm0755 \
90+ " $TERMUX_PKG_BUILDDIR " /CPP/7zip/Bundles/SFXCon/b/c/7zCon \
91+ " $TERMUX_PREFIX " /libexec/7zip/7zCon.sfx
92+ install -Dm0755 \
93+ -t " $TERMUX_PREFIX " /libexec/7zip \
94+ " $TERMUX_PKG_BUILDDIR " /CPP/7zip/Bundles/Format7zF/b/c/7z.so
6395 install -Dm0644 \
6496 -t " $TERMUX_PREFIX " /share/doc/" $TERMUX_PKG_NAME " \
65- " $TERMUX_PKG_BUILDDIR " /DOC/{7zC,7zFormat,copying,License, lzma,Methods,readme,src-history}.txt
97+ " $TERMUX_PKG_BUILDDIR " /DOC/{7zC,7zFormat,lzma,Methods,readme,src-history}.txt
6698 tar -C " $TERMUX_PREFIX " /share/doc/" $TERMUX_PKG_NAME " \
6799 -xvf " $TERMUX_PKG_CACHEDIR /$( basename " ${TERMUX_PKG_SRCURL[1]} " ) " MANUAL
68100 # Remove carriage returns from docs
0 commit comments