sys-apps/file: Sync with Gentoo

It's from Gentoo commit 7c36474a31c26d3759c7c44e8c238b7700315295.
This commit is contained in:
Flatcar Buildbot 2025-01-13 07:09:55 +00:00 committed by Krzesimir Nowak
parent 43cee31781
commit 90179ded81
7 changed files with 654 additions and 12 deletions

View File

@ -1,2 +1,4 @@
DIST file-5.45.tar.gz 1246503 BLAKE2B 30fc77c091e6624f2e9a950f4c6fe69ea6aa46d4a8ad9f20d49320a3675617c5bfbc9ff1ebba5eeb2cf4435c38d71b47b8beeb5146c9f55fe3bac11fe65e89bd SHA512 12611a59ff766c22a55db4b4a9f80f95a0a2e916a1d8593612c6ead32c247102a8fdc23693c6bf81bda9b604d951a62c0051e91580b1b79e190a3504c0efc20a
DIST file-5.45.tar.gz.asc 163 BLAKE2B 1405080c63412e9c66bfe06086ecee28b276b77cc2ddacb20cfd370c539a0d983812fd29dcf7a33bad69d6490cd439ef8d1219bfaf3928fb835a38da85013af3 SHA512 56bf131b2f35e896788be19b4d8cd1c7ec942c794fb584d5e589375d22fbccebdd04c03e779fafc0c10840586dc41e64251b3de1767ae9ab95f5d3300f9af254
DIST file-5.46.tar.gz 1312892 BLAKE2B 2b1df136f01c253cc490b483c644403da0674692ef97ef9e1239878328cfb8ce2bc418c14626145719c69acab00d56b63b5340a2b56c276c996b1e6ad1bfe9b6 SHA512 a6cb7325c49fd4af159b7555bdd38149e48a5097207acbe5e36deb5b7493ad6ea94d703da6e0edece5bb32959581741f4213707e5cb0528cd46d75a97a5242dc
DIST file-5.46.tar.gz.asc 195 BLAKE2B 7a2a65f10cbfe921ae633a9bee3a56a98b8e3100b8cbfe4b4871ce3960f28e62bb9e7425f5c1bfe9b126f43d7dd4ddcb36220f07f979072a8ef5fe62c14b5ef8 SHA512 93f99b468bbda29eab6e37fdee1f1806a10b18206a85c68e888e967678cfd128bb9c34bc9835a699e447623ddf0e2ea041039a682f7be1db2ab37935fd4aafa0

View File

@ -0,0 +1,188 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_OPTIONAL=1
PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 toolchain-funcs multilib-minimal
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/glensc/file.git"
inherit autotools git-r3
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc
inherit libtool verify-sig
SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz"
SRC_URI+=" verify-sig? ( ftp://ftp.astron.com/pub/file/${P}.tar.gz.asc )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )"
fi
DESCRIPTION="Identify a file's format by scanning binary data for patterns"
HOMEPAGE="https://www.darwinsys.com/file/"
LICENSE="BSD-2"
SLOT="0"
IUSE="bzip2 lzip lzma python seccomp static-libs zlib zstd"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
DEPEND="
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
lzip? ( app-arch/lzlib )
lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
"
RDEPEND="
${DEPEND}
python? (
${PYTHON_DEPS}
!dev-python/python-magic
)
seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
"
BDEPEND+="
python? (
${PYTHON_DEPS}
${DISTUTILS_DEPS}
)
"
# https://bugs.gentoo.org/898676
QA_CONFIG_IMPL_DECL_SKIP=( makedev )
PATCHES=(
"${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet
"${FILESDIR}/file-5.45-seccomp-sandbox.patch"
"${FILESDIR}/file-5.46-zip.patch"
)
src_prepare() {
default
if [[ ${PV} == 9999 ]] ; then
eautoreconf
else
elibtoolize
fi
# Don't let python README kill main README, bug #60043
mv python/README.md python/README.python.md || die
# bug #662090
sed -i 's@README.md@README.python.md@' python/setup.py || die
}
multilib_src_configure() {
local myeconfargs=(
--enable-fsect-man5
$(use_enable bzip2 bzlib)
$(multilib_native_use_enable lzip lzlib)
$(use_enable lzma xzlib)
$(use_enable seccomp libseccomp)
$(use_enable static-libs static)
$(use_enable zlib)
$(use_enable zstd zstdlib)
)
econf "${myeconfargs[@]}"
}
build_src_configure() {
local myeconfargs=(
--disable-shared
--disable-libseccomp
--disable-bzlib
--disable-xzlib
--disable-zlib
)
econf_build "${myeconfargs[@]}"
}
need_build_file() {
# When cross-compiling, we need to build up our own file
# because people often don't keep matching host/target
# file versions, bug #362941
tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}"
}
src_configure() {
local ECONF_SOURCE="${S}"
if need_build_file ; then
mkdir -p "${WORKDIR}"/build || die
cd "${WORKDIR}"/build || die
build_src_configure
fi
multilib-minimal_src_configure
}
multilib_src_compile() {
if multilib_is_native_abi ; then
emake
else
# bug #586444
emake -C src magic.h
emake -C src libmagic.la
fi
}
src_compile() {
if need_build_file ; then
# bug #586444
emake -C "${WORKDIR}"/build/src magic.h
emake -C "${WORKDIR}"/build/src file
local -x PATH="${WORKDIR}/build/src:${PATH}"
fi
multilib-minimal_src_compile
if use python ; then
cd python || die
distutils-r1_src_compile
fi
}
src_test() {
multilib-minimal_src_test
if use python ; then
cd python || die
distutils-r1_src_test
fi
}
python_test() {
eunittest
}
multilib_src_install() {
if multilib_is_native_abi ; then
default
else
emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}"
fi
}
multilib_src_install_all() {
dodoc ChangeLog MAINT # README
# Required for `file -C`
insinto /usr/share/misc/magic
doins -r magic/Magdir/*
if use python ; then
cd python || die
distutils-r1_src_install
fi
find "${ED}" -type f -name "*.la" -delete || die
}

View File

@ -0,0 +1,189 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_OPTIONAL=1
PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 toolchain-funcs multilib-minimal
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/glensc/file.git"
inherit autotools git-r3
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc
inherit libtool verify-sig
SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz"
SRC_URI+=" verify-sig? ( ftp://ftp.astron.com/pub/file/${P}.tar.gz.asc )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )"
fi
DESCRIPTION="Identify a file's format by scanning binary data for patterns"
HOMEPAGE="https://www.darwinsys.com/file/"
LICENSE="BSD-2"
SLOT="0"
IUSE="bzip2 lzip lzma python seccomp static-libs zlib zstd"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
DEPEND="
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
lzip? ( app-arch/lzlib )
lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
"
RDEPEND="
${DEPEND}
python? (
${PYTHON_DEPS}
!dev-python/python-magic
)
seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
"
BDEPEND+="
python? (
${PYTHON_DEPS}
${DISTUTILS_DEPS}
)
"
# https://bugs.gentoo.org/898676
QA_CONFIG_IMPL_DECL_SKIP=( makedev )
PATCHES=(
"${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet
"${FILESDIR}/file-5.45-seccomp-sandbox.patch"
"${FILESDIR}/file-5.46-zip.patch"
"${FILESDIR}/file-5.46-buffer-overflow.patch"
)
src_prepare() {
default
if [[ ${PV} == 9999 ]] ; then
eautoreconf
else
elibtoolize
fi
# Don't let python README kill main README, bug #60043
mv python/README.md python/README.python.md || die
# bug #662090
sed -i 's@README.md@README.python.md@' python/setup.py || die
}
multilib_src_configure() {
local myeconfargs=(
--enable-fsect-man5
$(use_enable bzip2 bzlib)
$(multilib_native_use_enable lzip lzlib)
$(use_enable lzma xzlib)
$(use_enable seccomp libseccomp)
$(use_enable static-libs static)
$(use_enable zlib)
$(use_enable zstd zstdlib)
)
econf "${myeconfargs[@]}"
}
build_src_configure() {
local myeconfargs=(
--disable-shared
--disable-libseccomp
--disable-bzlib
--disable-xzlib
--disable-zlib
)
econf_build "${myeconfargs[@]}"
}
need_build_file() {
# When cross-compiling, we need to build up our own file
# because people often don't keep matching host/target
# file versions, bug #362941
tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}"
}
src_configure() {
local ECONF_SOURCE="${S}"
if need_build_file ; then
mkdir -p "${WORKDIR}"/build || die
cd "${WORKDIR}"/build || die
build_src_configure
fi
multilib-minimal_src_configure
}
multilib_src_compile() {
if multilib_is_native_abi ; then
emake
else
# bug #586444
emake -C src magic.h
emake -C src libmagic.la
fi
}
src_compile() {
if need_build_file ; then
# bug #586444
emake -C "${WORKDIR}"/build/src magic.h
emake -C "${WORKDIR}"/build/src file
local -x PATH="${WORKDIR}/build/src:${PATH}"
fi
multilib-minimal_src_compile
if use python ; then
cd python || die
distutils-r1_src_compile
fi
}
src_test() {
multilib-minimal_src_test
if use python ; then
cd python || die
distutils-r1_src_test
fi
}
python_test() {
eunittest
}
multilib_src_install() {
if multilib_is_native_abi ; then
default
else
emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}"
fi
}
multilib_src_install_all() {
dodoc ChangeLog MAINT # README
# Required for `file -C`
insinto /usr/share/misc/magic
doins -r magic/Magdir/*
if use python ; then
cd python || die
distutils-r1_src_install
fi
find "${ED}" -type f -name "*.la" -delete || die
}

View File

@ -0,0 +1,189 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
DISTUTILS_OPTIONAL=1
PYTHON_COMPAT=( python3_{10..13} )
inherit distutils-r1 toolchain-funcs multilib-minimal
if [[ ${PV} == 9999 ]] ; then
EGIT_REPO_URI="https://github.com/glensc/file.git"
inherit autotools git-r3
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc
inherit autotools verify-sig
SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz"
SRC_URI+=" verify-sig? ( ftp://ftp.astron.com/pub/file/${P}.tar.gz.asc )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )"
fi
DESCRIPTION="Identify a file's format by scanning binary data for patterns"
HOMEPAGE="https://www.darwinsys.com/file/"
LICENSE="BSD-2"
SLOT="0"
IUSE="bzip2 lzip lzma python seccomp static-libs zlib zstd"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
DEPEND="
bzip2? ( app-arch/bzip2[${MULTILIB_USEDEP}] )
lzip? ( app-arch/lzlib )
lzma? ( app-arch/xz-utils[${MULTILIB_USEDEP}] )
seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
zlib? ( >=sys-libs/zlib-1.2.8-r1[${MULTILIB_USEDEP}] )
zstd? ( app-arch/zstd:=[${MULTILIB_USEDEP}] )
"
RDEPEND="
${DEPEND}
python? (
${PYTHON_DEPS}
!dev-python/python-magic
)
seccomp? ( >=sys-libs/libseccomp-2.5.4[${MULTILIB_USEDEP}] )
"
BDEPEND+="
python? (
${PYTHON_DEPS}
${DISTUTILS_DEPS}
)
"
# https://bugs.gentoo.org/898676
QA_CONFIG_IMPL_DECL_SKIP=( makedev )
PATCHES=(
"${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet
"${FILESDIR}/file-5.45-seccomp-sandbox.patch"
)
src_prepare() {
default
#if [[ ${PV} == 9999 ]] ; then
# eautoreconf
#else
# elibtoolize
#fi
# Just for file-5.45-32-bit-time_t-deux.patch, drop in 5.46
eautoreconf
# Don't let python README kill main README, bug #60043
mv python/README.md python/README.python.md || die
# bug #662090
sed -i 's@README.md@README.python.md@' python/setup.py || die
}
multilib_src_configure() {
local myeconfargs=(
--enable-fsect-man5
$(use_enable bzip2 bzlib)
$(multilib_native_use_enable lzip lzlib)
$(use_enable lzma xzlib)
$(use_enable seccomp libseccomp)
$(use_enable static-libs static)
$(use_enable zlib)
$(use_enable zstd zstdlib)
)
econf "${myeconfargs[@]}"
}
build_src_configure() {
local myeconfargs=(
--disable-shared
--disable-libseccomp
--disable-bzlib
--disable-xzlib
--disable-zlib
)
econf_build "${myeconfargs[@]}"
}
need_build_file() {
# When cross-compiling, we need to build up our own file
# because people often don't keep matching host/target
# file versions, bug #362941
tc-is-cross-compiler && ! has_version -b "~${CATEGORY}/${P}"
}
src_configure() {
local ECONF_SOURCE="${S}"
if need_build_file ; then
mkdir -p "${WORKDIR}"/build || die
cd "${WORKDIR}"/build || die
build_src_configure
fi
multilib-minimal_src_configure
}
multilib_src_compile() {
if multilib_is_native_abi ; then
emake
else
# bug #586444
emake -C src magic.h
emake -C src libmagic.la
fi
}
src_compile() {
if need_build_file ; then
# bug #586444
emake -C "${WORKDIR}"/build/src magic.h
emake -C "${WORKDIR}"/build/src file
local -x PATH="${WORKDIR}/build/src:${PATH}"
fi
multilib-minimal_src_compile
if use python ; then
cd python || die
distutils-r1_src_compile
fi
}
src_test() {
multilib-minimal_src_test
if use python ; then
cd python || die
distutils-r1_src_test
fi
}
python_test() {
eunittest
}
multilib_src_install() {
if multilib_is_native_abi ; then
default
else
emake -C src install-{nodist_includeHEADERS,libLTLIBRARIES} DESTDIR="${D}"
fi
}
multilib_src_install_all() {
dodoc ChangeLog MAINT # README
# Required for `file -C`
insinto /usr/share/misc/magic
doins -r magic/Magdir/*
if use python ; then
cd python || die
distutils-r1_src_install
fi
find "${ED}" -type f -name "*.la" -delete || die
}

View File

@ -14,11 +14,11 @@ if [[ ${PV} == 9999 ]] ; then
inherit autotools git-r3
else
VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/file.asc
inherit autotools verify-sig
inherit libtool verify-sig
SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz"
SRC_URI+=" verify-sig? ( ftp://ftp.astron.com/pub/file/${P}.tar.gz.asc )"
KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )"
fi
@ -60,21 +60,16 @@ QA_CONFIG_IMPL_DECL_SKIP=( makedev )
PATCHES=(
"${FILESDIR}/file-5.43-seccomp-fstatat64-musl.patch" #789336, not upstream yet
"${FILESDIR}/file-5.45-seccomp-sandbox.patch"
"${FILESDIR}/${P}-32-bit-time_t.patch"
"${FILESDIR}/${P}-32-bit-time_t-deux.patch"
"${FILESDIR}/${P}-weak-magic-shell.patch" #908401
)
src_prepare() {
default
#if [[ ${PV} == 9999 ]] ; then
# eautoreconf
#else
# elibtoolize
#fi
# Just for file-5.45-32-bit-time_t-deux.patch, drop in 5.46
if [[ ${PV} == 9999 ]] ; then
eautoreconf
else
elibtoolize
fi
# Don't let python README kill main README, bug #60043
mv python/README.md python/README.python.md || die

View File

@ -0,0 +1,22 @@
https://gitlab.alpinelinux.org/alpine/aports/-/issues/16797
https://gitlab.alpinelinux.org/alpine/aports/-/commit/5482d8c22c7c560b285ed1df1f691242fc4d5782
https://bugs.astron.com/view.php?id=579
https://github.com/file/file/commit/b3384a1fbfa1fee99986e5750ab8e700de4f24ad
From b3384a1fbfa1fee99986e5750ab8e700de4f24ad Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Thu, 5 Dec 2024 18:35:40 +0000
Subject: [PATCH] PR/579: net147: Fix stack overrun.
--- a/src/readelf.c
+++ b/src/readelf.c
@@ -1726,7 +1726,7 @@ dophn_exec(struct magic_set *ms, int clazz, int swap, int fd, off_t off,
Elf64_Phdr ph64;
const char *linking_style;
unsigned char nbuf[NBUFSIZE];
- char interp[128];
+ char interp[NBUFSIZE];
ssize_t bufsize;
size_t offset, align, need = 0;
int pie = 0, dynamic = 0;

View File

@ -0,0 +1,57 @@
https://bugs.gentoo.org/946957
https://bugs.astron.com/view.php?id=571
https://github.com/file/file/commit/60b2032b96fc185b37fb0f2152e834efb2edad6e
From 60b2032b96fc185b37fb0f2152e834efb2edad6e Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Thu, 5 Dec 2024 19:41:12 +0000
Subject: [PATCH] PR/571: jschleus: Some zip files are misclassified as data
---
magic/Magdir/archive | 25 +++++++++++++++----------
1 file changed, 15 insertions(+), 10 deletions(-)
diff --git a/magic/Magdir/archive b/magic/Magdir/archive
index e6ff4570a..e560523cb 100644
--- a/magic/Magdir/archive
+++ b/magic/Magdir/archive
@@ -1795,6 +1795,17 @@
!:ext zip/cbz
+# Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
+# Next line excludes specialized formats:
+0 name zipgeneric
+>4 beshort x Zip archive data, at least
+!:mime application/zip
+>4 use zipversion
+>4 beshort x to extract
+>8 beshort x \b, compression method=
+>8 use zipcompression
+>0x161 string WINZIP \b, WinZIP self-extracting
+
0 string PK\003\004
!:strength +1
# IOS/IPadOS IPA file (Zip archive)
@@ -2132,17 +2143,11 @@
>>>>>>(-6.l) search/9000 kmp.json Keyman Compiled Package File
!:mime application/vnd.keyman.kmp+zip
!:ext kmp
+>>>>>+4 default x
+>>>>>>0 use zipgeneric
-# Generic zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
-# Next line excludes specialized formats:
>>>>+4 default x
->>>>>4 beshort x Zip archive data, at least
-!:mime application/zip
->>>>>4 use zipversion
->>>>>4 beshort x to extract
->>>>>8 beshort x \b, compression method=
->>>>>8 use zipcompression
->>>>>0x161 string WINZIP \b, WinZIP self-extracting
+>>>>>0 use zipgeneric
# Zip archives (Greg Roelofs, c/o zip-bugs@wkuvx1.wku.edu)
0 string PK\005\006 Zip archive data (empty)