commit: 12919888891b53765d58cbe9b3aede62a4687175 Author: Alfred Wingate <parona <AT> protonmail <DOT> com> AuthorDate: Thu Sep 7 00:23:12 2023 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Sep 24 22:07:28 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=12919888
app-arch/patool: add 1.12_p20230424 Closes: https://bugs.gentoo.org/795528 Closes: https://bugs.gentoo.org/909864 Signed-off-by: Alfred Wingate <parona <AT> protonmail.com> Closes: https://github.com/gentoo/gentoo/pull/32661 Signed-off-by: Sam James <sam <AT> gentoo.org> app-arch/patool/Manifest | 1 + ...atool-1.12_p20230424-disable-file-sandbox.patch | 28 +++++ ...p20230424-map-vnd.android.package-archive.patch | 30 +++++ app-arch/patool/patool-1.12_p20230424.ebuild | 126 +++++++++++++++++++++ 4 files changed, 185 insertions(+) diff --git a/app-arch/patool/Manifest b/app-arch/patool/Manifest index cdc0a89ce575..a4da6050d14d 100644 --- a/app-arch/patool/Manifest +++ b/app-arch/patool/Manifest @@ -1 +1,2 @@ DIST patool-1.12.tar.gz 69146 BLAKE2B e97f64b4ba41860c1f7e506f63f249adeb02974b71bf83eb1673ae1fd93b8f9b698818cb57f961b3d3a5d4e445c5e7a3a349db54e1eb11a8fc165ad07722ace9 SHA512 b8c67526ce79448de703b03ca9b363c0e04cfe56bfc6168bcb96202f95022b6bbcaa92be86a85ee9608070206acd09382b0dfd08a2f805c5e8e5683c7c3f18cc +DIST patool-1.12_p20230424.gh.tar.gz 1990425 BLAKE2B dd0ae58fd26ef1849c26cb681839536b0499d666faf48cb7028adc12840055d72e70a85db99c615c79b076671f16e1371ee5ddbb24228248cd3c1b0daf2dc496 SHA512 c2974bad22ab57aca3aab32e51aeac0c2a2aa3ffee41241d3220151206b8a5d709ec72ea1b4a73a218c03b9fad64297ecd2ab44cc20da5f4d0e4a3ecd5589d43 diff --git a/app-arch/patool/files/patool-1.12_p20230424-disable-file-sandbox.patch b/app-arch/patool/files/patool-1.12_p20230424-disable-file-sandbox.patch new file mode 100644 index 000000000000..daf48adef41a --- /dev/null +++ b/app-arch/patool/files/patool-1.12_p20230424-disable-file-sandbox.patch @@ -0,0 +1,28 @@ +https://github.com/wummel/patool/pull/131 +https://github.com/wummel/patool/issues/75 + +From abe06b7d8fbcd177d44f8eb8e3ac195badc70d25 Mon Sep 17 00:00:00 2001 +From: Alfred Wingate <par...@protonmail.com> +Date: Thu, 7 Sep 2023 01:12:26 +0300 +Subject: [PATCH] Disable sandbox for file(1) to allow correct output for + compressed tar's + +* Otherwise file(1) will refuse with + "Fork-is-required-to-uncompress--but-disabled" + +Closes: https://github.com/wummel/patool/issues/75 +Signed-off-by: Alfred Wingate <par...@protonmail.com> +--- a/patoolib/util.py ++++ b/patoolib/util.py +@@ -240,7 +240,7 @@ def guess_mime_file (filename): + encoding = None + if mime in Mime2Encoding: + # try to look inside compressed archives +- cmd = [file_prog, "--brief", "--mime", "--uncompress", filename] ++ cmd = [file_prog, "--brief", "--mime", "--uncompress", "--no-sandbox", filename] + try: + outparts = backtick(cmd).strip().split(";") + mime2 = outparts[0].split(" ", 1)[0] +-- +2.42.0 + diff --git a/app-arch/patool/files/patool-1.12_p20230424-map-vnd.android.package-archive.patch b/app-arch/patool/files/patool-1.12_p20230424-map-vnd.android.package-archive.patch new file mode 100644 index 000000000000..a525ff2d0e46 --- /dev/null +++ b/app-arch/patool/files/patool-1.12_p20230424-map-vnd.android.package-archive.patch @@ -0,0 +1,30 @@ +https://github.com/wummel/patool/pull/130 + +From e8a1eea1d273b278a1b6f5029d2e21cb18bc9ffd Mon Sep 17 00:00:00 2001 +From: Theodore Ni <3806110+t...@users.noreply.github.com> +Date: Sat, 26 Aug 2023 23:42:15 -0700 +Subject: [PATCH] Map application/vnd.android.package-archive to zip + +This was added to file 5.45 in https://github.com/file/file/commit/b29519e7dc572d85f757314d3bfc7461ceb7709c +and the test .apk file is sometimes detected with that mime type. +--- a/patoolib/__init__.py ++++ b/patoolib/__init__.py +@@ -84,6 +84,7 @@ + 'application/x-xz': 'xz', + 'application/x-zip-compressed': 'zip', + 'application/x-zoo': 'zoo', ++ 'application/vnd.android.package-archive': 'zip', + 'application/zip': 'zip', + 'application/zpaq': 'zpaq', + "application/zstd": "zstd", +--- a/tests/test_mime.py ++++ b/tests/test_mime.py +@@ -137,7 +137,7 @@ def test_mime_file (self): + self.mime_test_file("t.chm.foo", "application/x-chm") + self.mime_test_file("t.iso", "application/x-iso9660-image") + self.mime_test_file("t.epub", "application/zip") +- self.mime_test_file("t.apk", ("application/zip", "application/java-archive", "application/jar")) ++ self.mime_test_file("t.apk", ("application/zip", "application/java-archive", "application/jar", "application/vnd.android.package-archive")) + self.mime_test_file("t.zpaq", "application/zpaq") + self.mime_test_file("t.zpaq.foo", "application/zpaq") + diff --git a/app-arch/patool/patool-1.12_p20230424.ebuild b/app-arch/patool/patool-1.12_p20230424.ebuild new file mode 100644 index 000000000000..d18bd326dd15 --- /dev/null +++ b/app-arch/patool/patool-1.12_p20230424.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{10..12} ) + +inherit distutils-r1 + +DESCRIPTION="Portable archive file manager" +HOMEPAGE="https://wummel.github.io/patool/" +COMMIT="ab64562c8cdac34dfd69fcb6e30c8c0014282d11" +SRC_URI="https://github.com/wummel/patool/archive/${COMMIT}.tar.gz -> ${P}.gh.tar.gz" +S="${WORKDIR}/${PN}-${COMMIT}" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +BDEPEND=" + test? ( + app-arch/arj + app-arch/bzip2 + app-arch/cabextract + app-arch/cpio + app-arch/dpkg + app-arch/gzip + app-arch/lbzip2 + app-arch/lcab + app-arch/lha + app-arch/libarchive + app-arch/lrzip + app-arch/lzip + app-arch/lzop + app-arch/ncompress + app-arch/p7zip[rar] + app-arch/pbzip2 + app-arch/pdlzip + app-arch/pigz + app-arch/rpm + app-arch/sharutils + app-arch/tar + app-arch/unace + app-arch/unadf + app-arch/unzip + app-arch/xdms + app-arch/xz-utils + app-arch/zip + app-arch/zpaq + app-arch/zstd + app-cdr/cdrtools + dev-libs/chmlib + media-libs/flac + media-sound/shorten + sys-apps/diffutils + sys-apps/file + sys-apps/grep + !elibc_musl? ( app-arch/rar ) + !x86? ( app-arch/clzip ) + ) +" +# Test dependencies which are packaged but can't be tested for various reasons. +# app-arch/arc +# app-arch/zoo +# app-arch/zopfli +# media-sound/mac + +# app-arch/rar is masked on musl +# app-arch/clzip is unkeyworded on x86 + +# Unpackaged testable dependencies +# archmage +# genisoimage +# lhasa +# nomarch +# pdzip2 +# py_{bz2,echo,gzip,tarfile,zipfile} +# rpm2cpio +# rzip +# star +# unalz +# uncompress.real + +PATCHES=( + "${FILESDIR}/patool-1.12_p20230424-disable-file-sandbox.patch" + "${FILESDIR}/patool-1.12_p20230424-map-vnd.android.package-archive.patch" +) + +distutils_enable_tests pytest + +src_install() { + distutils-r1_src_install + + newdoc doc/README.txt README.md + doman doc/patool.1 +} + +python_test() { + local EPYTEST_IGNORE=( + # zoo emits a non-zero exit status on a possibly false consistency check + # Zoo: WARNING: Archive header failed consistency check. + "tests/archives/test_zoo.py" + # Doesn't accept long arguments, such as those that files in ${S} would have. + # Too long argument: /var/tmp/portage/app-arch/patool-1.12_p20230424/work/patool-ab64562c8cdac34dfd69fcb6e30c8c0014282d11/tests/data/p.arc.foo + "tests/archives/test_arc.py" + # Error: 1002 (invalid input file) + "tests/archives/test_mac.py" + # AttributeError: module 'patoolib.programs.zopfli' has no attribute 'extract_gzip' + "tests/archives/test_zopfli.py" + ) + + if use elibc_musl; then + EPYTEST_IGNORE+=( + "tests/archives/test_rar.py" + ) + fi + + if use x86; then + EPYTEST_IGNORE+=( + "tests/archives/test_clzip.py" + ) + fi + + epytest +}