app-arch/zip: Sync with Gentoo

It's from Gentoo commit df5eeb6269ea4ab0a4a701da76ada8e5a0628061.
This commit is contained in:
Krzesimir Nowak 2023-03-21 14:43:55 +01:00
parent f029407c03
commit 23c8f0bb19
3 changed files with 293 additions and 66 deletions

View File

@ -0,0 +1,219 @@
https://bugs.gentoo.org/869203
See also OE's variant: https://cgit.openembedded.org/openembedded-core/commit/?id=f898db2607ba3837f81292af92bc8cb605b96cb3
--- a/unix/configure
+++ b/unix/configure
@@ -32,7 +32,7 @@ CFLAGS_BZ=''
echo 'Check C compiler type (optimization options)'
# Sun C?
cat > conftest.c << _EOF_
-int main()
+int main(void)
{
#ifndef __SUNPRO_C
bad code
@@ -47,7 +47,7 @@ if test $? -eq 0; then
else
# Tru64 DEC/Compaq/HP C?
cat > conftest.c << _EOF_
-int main()
+int main(void)
{
#ifndef __DECC
bad code
@@ -62,7 +62,7 @@ _EOF_
else
# HP-UX HP C?
cat > conftest.c << _EOF_
-int main()
+int main(void)
{
#ifdef __GNUC__
bad code
@@ -88,7 +88,7 @@ _EOF_
else
# GNU C?
cat > conftest.c << _EOF_
-int main()
+int main(void)
{
#ifndef __GNUC__
bad code
@@ -197,7 +197,7 @@ else
echo " Check if OS already has bzip2 library installed"
cat > conftest.c << _EOF_
#include "bzlib.h"
-int main()
+int main(void)
{
bz_stream strm;
BZ2_bzCompressEnd(&strm);
@@ -260,7 +260,7 @@ rm -f _match.s _match.o _crc_i386.s _crc_i386.o
echo Check for ANSI options
cat > conftest.c << _EOF_
-int main()
+int main(void)
{
#ifndef __STDC__
forget it
@@ -288,7 +288,7 @@ $CC $CFLAGS -c conftest.c > /dev/null 2>/dev/null
echo Check the handling of const
cat > conftest.c << _EOF_
typedef int charset[2];
-int main()
+int main(void)
{
const charset x;
const char *foo;
@@ -303,7 +303,7 @@ echo Check for time_t
cat > conftest.c << _EOF_
#include <sys/types.h>
#include <time.h>
-int main()
+int main(void)
{
time_t t;
return 0;
@@ -315,8 +315,9 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
echo Check for size_t
cat > conftest.c << _EOF_
+#include <stddef.h>
#include <sys/types.h>
-int main()
+int main(void)
{
size_t s;
return 0;
@@ -329,7 +330,7 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
echo Check for off_t
cat > conftest.c << _EOF_
#include <sys/types.h>
-int main()
+int main(void)
{
off_t s;
return 0;
@@ -353,7 +354,7 @@ cat > conftest.c << _EOF_
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
-int main()
+int main(void)
{
struct stat s;
@@ -409,7 +410,7 @@ cat > conftest.c << _EOF_
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
-int main()
+int main(void)
{
off_t offset;
struct stat s;
@@ -453,7 +454,7 @@ echo Check for wide char support
cat > conftest.c << _EOF_
#include <stdlib.h>
#include <stdio.h>
-int main()
+int main(void)
{
int wsize;
wchar_t *wide_string;
@@ -489,7 +490,7 @@ fi
echo Check for gcc no-builtin flag
# -fno-builtin since version 2
cat > conftest.c << _EOF_
-int main()
+int main(void)
{
#if __GNUC__ >= 2
return 0;
@@ -508,14 +509,14 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
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(void){ 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(void){ char memset(); return memset(); }" > conftest.c
$CC -o conftest conftest.c >/dev/null 2>/dev/null
[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DZMEM"
@@ -523,7 +524,7 @@ $CC -o conftest conftest.c >/dev/null 2>/dev/null
echo Check for memmove
cat > conftest.c << _EOF_
#include <string.h>
-int main() { int a; int b = 0; memmove( &a, &b, sizeof( a)); return a; }
+int main(void) { int a; int b = 0; memmove( &a, &b, sizeof( a)); return a; }
_EOF_
$CC -o conftest conftest.c >/dev/null 2>/dev/null
[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNEED_MEMMOVE"
@@ -532,7 +533,7 @@ $CC -o conftest conftest.c >/dev/null 2>/dev/null
echo Check for strerror
cat > conftest.c << _EOF_
#include <string.h>
-int main() { strerror( 0); return 0; }
+int main(void) { strerror(0); return 0; }
_EOF_
$CC -o conftest conftest.c >/dev/null 2>/dev/null
[ $? -ne 0 ] && CFLAGS="${CFLAGS} -DNEED_STRERROR"
@@ -540,7 +541,7 @@ $CC -o conftest conftest.c >/dev/null 2>/dev/null
echo Check for errno declaration
cat > conftest.c << _EOF_
#include <errno.h>
-main()
+int main(void)
{
errno = 0;
return 0;
@@ -552,7 +553,7 @@ $CC $CFLAGS -c conftest.c >/dev/null 2>/dev/null
echo Check for directory libraries
cat > conftest.c << _EOF_
-int main() { return closedir(opendir(".")); }
+int main(void) { char closedir(); char opendir(); return closedir(opendir()); }
_EOF_
$CC -o conftest conftest.c >/dev/null 2>/dev/null
@@ -574,7 +575,7 @@ fi
# Dynix/ptx 1.3 needed this
echo Check for readlink
-echo "int main(){ return readlink(); }" > conftest.c
+echo "int main(void){ 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
@@ -617,7 +618,7 @@ CFLAGS="${CFLAGS} ${OPT}"
echo Check for valloc
cat > conftest.c << _EOF_
-main()
+int main(void)
{
#ifdef MMAP
valloc();
@@ -652,12 +653,12 @@ elif [ -f /xenix ]; then
fi
elif uname -X >/dev/null 2>/dev/null; then
# SCO shared library check
- echo "int main() { return 0;}" > conftest.c
+ echo "int main(void) { return 0;}" > conftest.c
$CC -o conftest conftest.c -lc_s -nointl >/dev/null 2> /dev/null
[ $? -eq 0 ] && LFLAGS2="-lc_s -nointl"
else
SYSTEM=`uname -s 2>/dev/null` || SYSTEM="unknown"
- echo "int main() { return 0;}" > conftest.c
+ echo "int main(void) { return 0;}" > conftest.c
case $SYSTEM in
OSF1|ULTRIX)
echo Check for -Olimit option

View File

@ -1,66 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
inherit 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"
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"
S="${WORKDIR}/${MY_P}"
PATCHES=(
"${FILESDIR}/${P}"-no-crypt.patch #238398
"${FILESDIR}/${P}"-pic.patch
"${FILESDIR}/${P}"-exec-stack.patch #122849
"${FILESDIR}/${P}"-build.patch #200995
"${FILESDIR}/${P}"-zipnote-freeze.patch #322047
"${FILESDIR}/${P}"-format-security.patch #512414
)
src_prepare() {
default
use natspec && eapply "${FILESDIR}/${PN}"-3.0-natspec.patch #275244
}
src_configure() {
append-cppflags \
-DLARGE_FILE_SUPPORT \
-DUIDGID_NOT_16BIT \
-D$(usex bzip2 '' NO)BZIP2_SUPPORT \
-D$(usex crypt '' NO)CRYPT \
-D$(usex unicode '' NO)UNICODE_SUPPORT
# Third arg disables bzip2 logic as we handle it ourselves above.
sh ./unix/configure "$(tc-getCC)" "-I. -DUNIX ${CFLAGS} ${CPPFLAGS}" "${T}" || die
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
}

View File

@ -0,0 +1,74 @@
# 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="https://infozip.sourceforge.net/Zip.html"
SRC_URI="mirror://sourceforge/infozip/${MY_P}.zip"
S="${WORKDIR}"/${MY_P}
LICENSE="Info-ZIP"
SLOT="0"
KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~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() {
# Needed for Clang 16
append-flags -std=gnu89
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
}