sys-apps/file: Sync with Gentoo

It's from Gentoo commit 26eb5b45518d15e61fe83c7da08afb749be9f6e6.
This commit is contained in:
Flatcar Buildbot 2023-08-07 07:14:11 +00:00 committed by Krzesimir Nowak
parent ca0546aa82
commit 1dfcb5b68b
7 changed files with 466 additions and 3 deletions

View File

@ -1,2 +1,4 @@
DIST file-5.44.tar.gz 1186437 BLAKE2B a90ccae738a95315d75a0aaee7bbff3624425cc9267daf18ba9147b7c9b9ebfb31288b54c63a73e4695eca0e876f206e40bcb81c422f1bf572b976e753b25a42 SHA512 26c3b9c7a6950649d0b2de896bfeca54289febe4cd487c0f91aa6ff1857fa49f9077f8738a17b86100125668a31dae05b586615c564f78da47ac20a1e4a74f63 DIST file-5.44.tar.gz 1186437 BLAKE2B a90ccae738a95315d75a0aaee7bbff3624425cc9267daf18ba9147b7c9b9ebfb31288b54c63a73e4695eca0e876f206e40bcb81c422f1bf572b976e753b25a42 SHA512 26c3b9c7a6950649d0b2de896bfeca54289febe4cd487c0f91aa6ff1857fa49f9077f8738a17b86100125668a31dae05b586615c564f78da47ac20a1e4a74f63
DIST file-5.44.tar.gz.asc 195 BLAKE2B a0905d42fec0fa052d75fb5b267c6ae223176451c0f1d3346006d4b760c3d858f2dcda5f0a30c6aa4b09b5afee427b75bc4debd5033d978f39dc1da01d3e1bd1 SHA512 1a4dc39283f4859581441aa35b3ed72b323c4e05ca0960d17126d1b9ec18465c695c0545e24f09f8437a60ab52e582be67b6cbbc656bbb676de00148c3644d23 DIST file-5.44.tar.gz.asc 195 BLAKE2B a0905d42fec0fa052d75fb5b267c6ae223176451c0f1d3346006d4b760c3d858f2dcda5f0a30c6aa4b09b5afee427b75bc4debd5033d978f39dc1da01d3e1bd1 SHA512 1a4dc39283f4859581441aa35b3ed72b323c4e05ca0960d17126d1b9ec18465c695c0545e24f09f8437a60ab52e582be67b6cbbc656bbb676de00148c3644d23
DIST file-5.45.tar.gz 1246503 BLAKE2B 30fc77c091e6624f2e9a950f4c6fe69ea6aa46d4a8ad9f20d49320a3675617c5bfbc9ff1ebba5eeb2cf4435c38d71b47b8beeb5146c9f55fe3bac11fe65e89bd SHA512 12611a59ff766c22a55db4b4a9f80f95a0a2e916a1d8593612c6ead32c247102a8fdc23693c6bf81bda9b604d951a62c0051e91580b1b79e190a3504c0efc20a
DIST file-5.45.tar.gz.asc 163 BLAKE2B 1405080c63412e9c66bfe06086ecee28b276b77cc2ddacb20cfd370c539a0d983812fd29dcf7a33bad69d6490cd439ef8d1219bfaf3928fb835a38da85013af3 SHA512 56bf131b2f35e896788be19b4d8cd1c7ec942c794fb584d5e589375d22fbccebdd04c03e779fafc0c10840586dc41e64251b3de1767ae9ab95f5d3300f9af254

View File

@ -0,0 +1,180 @@
# Copyright 1999-2023 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..11} )
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="${BROOT}"/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 ~ia64 ~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}] )
python? (
${PYTHON_DEPS}
dev-python/setuptools[${PYTHON_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? ( !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.43-portage-sandbox.patch" #889046
"${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
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
}
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,175 @@
# Copyright 1999-2023 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..11} )
inherit distutils-r1 libtool 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="${BROOT}"/usr/share/openpgp-keys/file.asc
inherit 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 ~ia64 ~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}] )
python? (
${PYTHON_DEPS}
dev-python/setuptools[${PYTHON_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? ( !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.43-portage-sandbox.patch" #889046
)
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
}
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

@ -18,7 +18,7 @@ else
SRC_URI="ftp://ftp.astron.com/pub/file/${P}.tar.gz" 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 )" SRC_URI+=" verify-sig? ( ftp://ftp.astron.com/pub/file/${P}.tar.gz.asc )"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~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 )" BDEPEND="verify-sig? ( sec-keys/openpgp-keys-file )"
fi fi
@ -72,11 +72,11 @@ src_prepare() {
elibtoolize elibtoolize
fi fi
# Don't let python README kill main README, bug ##60043 # Don't let python README kill main README, bug #60043
mv python/README.md python/README.python.md || die mv python/README.md python/README.python.md || die
# bug #662090 # bug #662090
sed 's@README.md@README.python.md@' -i python/setup.py || die sed -i 's@README.md@README.python.md@' python/setup.py || die
} }
multilib_src_configure() { multilib_src_configure() {

View File

@ -0,0 +1,29 @@
https://github.com/file/file/commit/8dc5513908381a14981b16a85d59ba054bf4df52
From 8dc5513908381a14981b16a85d59ba054bf4df52 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Mon, 31 Jul 2023 15:56:12 +0000
Subject: [PATCH] Check if we support _TIME_BITS. (Werner Fink)
--- a/configure.ac
+++ b/configure.ac
@@ -152,6 +152,18 @@ AC_TYPE_UINT64_T
AC_TYPE_INT64_T
AC_TYPE_INTPTR_T
AC_TYPE_UINTPTR_T
+m4_ifdef([AC_SYS_YEAR2038], [AC_SYS_YEAR2038], [
+# GNU libc only allows setting _TIME_BITS when FILE_OFFSET_BITS is also set.
+# GNU libc defines __TIMESIZE on systems where _TIME_BITS can be set.
+AS_IF([test X"$ac_cv_sys_file_offset_bits" = X"64"], [
+ AC_CHECK_DECL(__TIMESIZE, [
+ AC_DEFINE([_TIME_BITS], [64], [Number of bits in a timestamp, on hosts where this is settable.])
+ ], [], [
+AC_INCLUDES_DEFAULT
+#include <time.h>
+ ])
+ ])
+])
AC_FUNC_MMAP
AC_FUNC_FORK
AC_FUNC_MBRTOWC

View File

@ -0,0 +1,34 @@
https://mailman.astron.com/pipermail/file/2023-July/001206.html
https://github.com/file/file/commit/218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1
From 218fdf813fd5ccecbb8887a1b62509cd1c6dd3a1 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Fri, 28 Jul 2023 14:38:25 +0000
Subject: [PATCH] deal with 32 bit time_t
--- a/src/file.h
+++ b/src/file.h
@@ -27,7 +27,7 @@
*/
/*
* file.h - definitions for file(1) program
- * @(#)$File: file.h,v 1.247 2023/07/27 19:40:22 christos Exp $
+ * @(#)$File: file.h,v 1.248 2023/07/28 14:38:25 christos Exp $
*/
#ifndef __file_h__
@@ -159,9 +159,11 @@
/*
* Dec 31, 23:59:59 9999
* we need to make sure that we don't exceed 9999 because some libc
- * implementations like muslc crash otherwise
+ * implementations like muslc crash otherwise. If you are unlucky
+ * to be running on a system with a 32 bit time_t, then it is even less.
*/
-#define MAX_CTIME CAST(time_t, 0x3afff487cfULL)
+#define MAX_CTIME \
+ CAST(time_t, sizeof(time_t) > 4 ? 0x3afff487cfULL : 0x7fffffffULL)
#define FILE_BADSIZE CAST(size_t, ~0ul)
#define MAXDESC 64 /* max len of text description/MIME type */

View File

@ -0,0 +1,43 @@
https://bugs.gentoo.org/908401
https://bugs.astron.com/view.php?id=457
https://github.com/file/file/commit/1fc9175166fc5c5117838a1dcfb309b7c595eb56
From 1fc9175166fc5c5117838a1dcfb309b7c595eb56 Mon Sep 17 00:00:00 2001
From: Christos Zoulas <christos@zoulas.com>
Date: Sun, 30 Jul 2023 16:31:47 +0000
Subject: [PATCH] Comment out weak magic
--- a/magic/Magdir/printer
+++ b/magic/Magdir/printer
@@ -1,6 +1,6 @@
#------------------------------------------------------------------------------
-# $File: printer,v 1.34 2023/06/16 19:27:12 christos Exp $
+# $File: printer,v 1.35 2023/07/30 16:31:47 christos Exp $
# printer: file(1) magic for printer-formatted files
#
@@ -230,8 +230,9 @@
0 string PS4
>0 use hpgl
# la.hp
-0 string BP
->0 use hpgl
+# Too weak
+#0 string BP
+#>0 use hpgl
# miter.hp
# Plot Absolute x,y{,x,y{...}}; x and y in range between -32767 and 32768 like: PA4000,3000;
0 string PA
@@ -241,8 +242,9 @@
#>2 regex \^([-]{0,1}[0-9]{1,5}) COORDINATE=%s
>>0 use hpgl
# pw.hpg number of pens x
-0 string NP
->0 use hpgl
+# Too weak
+#0 string NP
+#>0 use hpgl
# win_1.hp
#0 string \003INCA WHAT_IS_THAT
#>0 use hpgl