diff options
author | Sam James <sam@gentoo.org> | 2022-09-10 03:15:40 +0100 |
---|---|---|
committer | Sam James <sam@gentoo.org> | 2022-09-10 03:15:53 +0100 |
commit | e20ac65e339e8fe52f62aa43b98a60ffd4dc16ed (patch) | |
tree | 7496d1fe976e5a503370b3b0d1dd02ee839636c5 | |
parent | app-i18n/ibus-table: new upstream release (diff) | |
download | gentoo-e20ac65e339e8fe52f62aa43b98a60ffd4dc16ed.tar.gz gentoo-e20ac65e339e8fe52f62aa43b98a60ffd4dc16ed.tar.bz2 gentoo-e20ac65e339e8fe52f62aa43b98a60ffd4dc16ed.zip |
app-arch/zip: fix build w/ Clang 15
Closes: https://bugs.gentoo.org/869203
Thanks-to: Nicholas Vinson <nvinson234@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r-- | app-arch/zip/files/zip-3.0-clang-15-configure-tests.patch | 52 | ||||
-rw-r--r-- | app-arch/zip/zip-3.0-r5.ebuild | 71 |
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 +} |