summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-arch')
-rw-r--r--app-arch/zip/files/zip-3.0-clang-15-configure-tests.patch52
-rw-r--r--app-arch/zip/zip-3.0-r5.ebuild71
2 files changed, 123 insertions, 0 deletions
diff --git a/app-arch/zip/files/zip-3.0-clang-15-configure-tests.patch b/app-arch/zip/files/zip-3.0-clang-15-configure-tests.patch
new file mode 100644
index 000000000000..89a059a053c3
--- /dev/null
+++ b/app-arch/zip/files/zip-3.0-clang-15-configure-tests.patch
@@ -0,0 +1,52 @@
+https://bugs.gentoo.org/869203
+
+--- a/unix/configure
++++ b/unix/configure
+@@ -507,18 +507,18 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/
+ # add NO_'function_name' to flags if missing
+
+ for func in rmdir strchr strrchr rename mktemp mktime mkstemp
+ do
+ echo Check for $func
+- echo "int main(){ $func(); return 0; }" > conftest.c
++ echo "char $func(); int main(){ return $func(); }" > conftest.c
+ $CC $BFLAG -o conftest conftest.c >/dev/null 2>/dev/null
+ [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_`echo $func | tr '[a-z]' '[A-Z]'`"
+ done
+
+
+ echo Check for memset
+-echo "int main(){ char k; memset(&k,0,0); return 0; }" > conftest.c
++echo "int main(){ char memset(); return memset(); }" > conftest.c
+ $CC -o conftest conftest.c >/dev/null 2>/dev/null
+ [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
+
+
+ echo Check for memmove
+@@ -551,11 +551,11 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/
+ [ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNO_ERRNO"
+
+
+ echo Check for directory libraries
+ cat > conftest.c << _EOF_
+-int main() { return closedir(opendir(".")); }
++int main() { char closedir(); char opendir(); return closedir(opendir()); }
+ _EOF_
+
+ $CC -o conftest conftest.c >/dev/null 2>/dev/null
+ if [ $? -ne 0 ]; then
+ OPT=""
+@@ -573,11 +573,11 @@ fi
+
+
+ # Dynix/ptx 1.3 needed this
+
+ echo Check for readlink
+-echo "int main(){ return readlink(); }" > conftest.c
++echo "int main(){ char readlink(); return readlink(); }" > conftest.c
+ $CC -o conftest conftest.c >/dev/null 2>/dev/null
+ if [ $? -ne 0 ]; then
+ $CC -o conftest conftest.c -lseq >/dev/null 2>/dev/null
+ [ $? -eq 0 ] && LFLAGS2="${LFLAGS2} -lseq"
+ fi
+
diff --git a/app-arch/zip/zip-3.0-r5.ebuild b/app-arch/zip/zip-3.0-r5.ebuild
new file mode 100644
index 000000000000..09244c8b2bb6
--- /dev/null
+++ b/app-arch/zip/zip-3.0-r5.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo toolchain-funcs flag-o-matic
+
+MY_P="${PN}${PV//.}"
+DESCRIPTION="Info ZIP (encryption support)"
+HOMEPAGE="http://www.info-zip.org/"
+SRC_URI="mirror://sourceforge/infozip/${MY_P}.zip"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="Info-ZIP"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux"
+IUSE="bzip2 crypt natspec unicode"
+
+DEPEND="${RDEPEND}"
+RDEPEND="bzip2? ( app-arch/bzip2 )
+ natspec? ( dev-libs/libnatspec )"
+BDEPEND="app-arch/unzip"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-no-crypt.patch # bug #238398
+ "${FILESDIR}"/${P}-pic.patch
+ "${FILESDIR}"/${P}-exec-stack.patch # bug #122849
+ "${FILESDIR}"/${P}-build.patch # bug #200995
+ "${FILESDIR}"/${P}-zipnote-freeze.patch # bug #322047
+ "${FILESDIR}"/${P}-format-security.patch # bug #512414
+ "${FILESDIR}"/${P}-clang-15-configure-tests.patch
+)
+
+src_prepare() {
+ # bug #275244
+ use natspec && PATCHES+=( "${FILESDIR}"/${PN}-3.0-natspec.patch )
+ default
+}
+
+src_configure() {
+ append-cppflags \
+ -DLARGE_FILE_SUPPORT \
+ -DUIDGID_NOT_16BIT \
+ -D$(usev !bzip2 'NO')BZIP2_SUPPORT \
+ -D$(usev !crypt 'NO')CRYPT \
+ -D$(usev !unicode 'NO')UNICODE_SUPPORT
+
+ # - We use 'sh' because: 1. lacks +x bit, easier; 2. it tries to load bashdb
+ # - Third arg disables bzip2 logic as we handle it ourselves above.
+ edo sh ./unix/configure "$(tc-getCC)" "-I. -DUNIX ${CFLAGS} ${CPPFLAGS}" "${T}"
+
+ if use bzip2 ; then
+ sed -i -e "s:LFLAGS2=:&'-lbz2 ':" flags || die
+ fi
+}
+
+src_compile() {
+ emake \
+ CPP="$(tc-getCPP)" \
+ -f unix/Makefile generic
+}
+
+src_install() {
+ dobin zip zipnote zipsplit
+ doman man/zip{,note,split}.1
+ if use crypt ; then
+ dobin zipcloak
+ doman man/zipcloak.1
+ fi
+ dodoc BUGS CHANGES README* TODO WHATSNEW WHERE proginfo/*.txt
+}