mirror of
https://anongit.gentoo.org/git/repo/gentoo.git
synced 2025-12-19 16:38:01 +00:00
Changes SLOT="0" -> SLOT="1" for ~dev-java/mockito-1.9.5. SLOT="0" will be used for new mockito-5.19.0. Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net> Part-of: https://github.com/gentoo/gentoo/pull/43824 Signed-off-by: Sam James <sam@gentoo.org>
233 lines
6.6 KiB
Bash
233 lines
6.6 KiB
Bash
# Copyright 1999-2025 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
JAVA_PKG_IUSE="doc source test"
|
|
JAVA_TESTING_FRAMEWORKS="junit-4"
|
|
|
|
inherit java-pkg-2 java-pkg-simple systemd toolchain-funcs verify-sig
|
|
|
|
DESCRIPTION="An encrypted network without censorship"
|
|
HOMEPAGE="https://www.hyphanet.org"
|
|
FEV="29"
|
|
SRC_URI="https://github.com/hyphanet/fred/releases/download/build0${PV#*p}/freenet-build0${PV#*p}-source.tar.bz2
|
|
https://github.com/hyphanet/seedrefs/archive/build01480.tar.gz -> seednodes-0.7.5_p1480.tar.gz
|
|
https://github.com/hyphanet/contrib/archive/v${FEV}.tar.gz -> freenet-ext-${FEV}.tar.gz
|
|
verify-sig? (
|
|
https://github.com/hyphanet/fred/releases/download/build0${PV#*p}/freenet-build0${PV#*p}-source.tar.bz2.sig
|
|
)"
|
|
S="${WORKDIR}/freenet-build0${PV#*p}"
|
|
|
|
LICENSE="GPL-2+ GPL-2 MIT BSD-2 Apache-2.0"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 ~arm64"
|
|
IUSE="+nss"
|
|
|
|
CP_DEPEND="
|
|
dev-java/bcprov:0
|
|
dev-java/commons-compress:0
|
|
>=dev-java/commons-io-2.19.0:0
|
|
dev-java/fec:0
|
|
dev-java/freenet-ext:29
|
|
dev-java/java-service-wrapper:0
|
|
dev-java/jbitcollider-core:0
|
|
>=dev-java/jna-5.17.0:0
|
|
>=dev-java/lzma-24.09:0
|
|
dev-java/lzmajio:0
|
|
dev-java/mersennetwister:0
|
|
dev-java/pebble:0
|
|
"
|
|
|
|
DEPEND="
|
|
dev-java/unbescape:0
|
|
>=virtual/jdk-1.8:*
|
|
${CP_DEPEND}
|
|
test? (
|
|
dev-java/hamcrest:0
|
|
dev-java/mockito:1
|
|
dev-java/objenesis:0
|
|
)
|
|
"
|
|
|
|
RDEPEND="
|
|
acct-user/freenet
|
|
acct-group/freenet
|
|
>=virtual/jre-1.8:*
|
|
${CP_DEPEND}
|
|
nss? ( dev-libs/nss )
|
|
"
|
|
|
|
BDEPEND="
|
|
app-arch/unzip
|
|
verify-sig? ( sec-keys/openpgp-keys-freenet )
|
|
"
|
|
|
|
DOCS=(
|
|
AUTHORS
|
|
CONTRIBUTING.md
|
|
NEWS.md
|
|
README.md
|
|
SECURITY.md
|
|
)
|
|
|
|
PATCHES=( "${FILESDIR}/freenet-0.7.5_p1503-ignore-failing-tests.patch" )
|
|
|
|
JAVA_CLASSPATH_EXTRA="java-service-wrapper,unbescape"
|
|
JAVA_RESOURCE_DIRS="res"
|
|
JAVA_SRC_DIR="src"
|
|
JAVA_TEST_GENTOO_CLASSPATH="hamcrest,junit-4,mockito-1,objenesis"
|
|
|
|
# Yes, both variables point to the same directory
|
|
# https://github.com/hyphanet/fred/blob/build01497/build.gradle#L169-L173
|
|
JAVA_TEST_RESOURCE_DIRS="test"
|
|
JAVA_TEST_SRC_DIR="test"
|
|
|
|
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/freenetproject.org.asc"
|
|
src_unpack() {
|
|
if use verify-sig; then
|
|
verify-sig_verify_detached \
|
|
"${DISTDIR}"/freenet-build0${PV#*p}-source.tar.bz2 \
|
|
"${DISTDIR}"/freenet-build0${PV#*p}-source.tar.bz2.sig
|
|
fi
|
|
unpack freenet-build0${PV#*p}-source.tar.bz2
|
|
unpack seednodes-0.7.5_p1480.tar.gz
|
|
|
|
# we need NativeThread.c
|
|
unpack freenet-ext-${FEV}.tar.gz
|
|
mkdir "${S}/NativeThread" || die "mkdir NativeThread"
|
|
mv "${WORKDIR}/contrib-${FEV}/NativeThread/NativeThread.c" \
|
|
"${S}/NativeThread" || die "move NativeThread.c"
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
java-pkg-2_src_prepare
|
|
|
|
# Could not get resource : freenet/l10n/freenet.l10n.pt-PT.properties
|
|
# https://github.com/hyphanet/fred/pull/500
|
|
mv src/freenet/l10n/freenet.l10n.pt{_,-}PT.properties || die
|
|
|
|
# java-pkg-simple wants resources in JAVA_RESOURCE_DIRS
|
|
mkdir res || die
|
|
pushd src > /dev/null || die
|
|
find -type f \
|
|
! -name '*.java' \
|
|
! -name 'package.html' \
|
|
! -path '*/simulator/readme.txt' \
|
|
| xargs cp --parent -t ../res || die
|
|
popd > /dev/null || die
|
|
|
|
mkdir "${JAVA_RESOURCE_DIRS}/META-INF" || die
|
|
cat > "${JAVA_RESOURCE_DIRS}/META-INF/MANIFEST.MF" <<- EOF || die
|
|
Add-opens: java.base/java.lang java.base/java.util java.base/java.io
|
|
EOF
|
|
|
|
cat "${WORKDIR}"/seedrefs-build01480/* > "${S}"/seednodes.fref
|
|
cp "${FILESDIR}"/freenet-0.7.5_p1497-wrapper.conf freenet-wrapper.conf || die
|
|
cp "${FILESDIR}"/run.sh-20090501 run.sh || die
|
|
|
|
sed -i -e "s:=/usr/lib:=/usr/$(get_libdir):g" \
|
|
freenet-wrapper.conf || die "sed failed"
|
|
|
|
echo "wrapper.java.classpath.1=/usr/share/freenet/lib/freenet.jar" >> freenet-wrapper.conf || die
|
|
if use nss; then
|
|
echo "wrapper.java.additional.11=-Dfreenet.jce.use.NSS=true" >> freenet-wrapper.conf || die
|
|
fi
|
|
}
|
|
|
|
src_compile() {
|
|
java-pkg-simple_src_compile
|
|
|
|
# Moved here because of using JAVA_GENTOO_CLASSPATH which is populated by java-pkg_gen-cp.
|
|
local i=2 pkg jars jar
|
|
local ifs_original=${IFS}
|
|
IFS=","
|
|
for pkg in ${JAVA_GENTOO_CLASSPATH} ; do
|
|
jars="$(java-pkg_getjars ${pkg})"
|
|
for jar in ${jars} ; do
|
|
echo "wrapper.java.classpath.$((i++))=${jar}" >> freenet-wrapper.conf || die
|
|
done
|
|
done
|
|
IFS=${ifs_original}
|
|
echo "wrapper.java.library.path.2=/usr/$(get_libdir)/java-service-wrapper" >> freenet-wrapper.conf || die
|
|
echo "wrapper.java.library.path.3=/usr/$(get_libdir)/jna" >> freenet-wrapper.conf || die
|
|
|
|
einfo "NativeThread"
|
|
cd NativeThread || die "cd NativeThread"
|
|
|
|
einfo "Generate header"
|
|
ejavac -h . -classpath ../target/classes:"$(java-pkg_getjars jna)" \
|
|
../src/freenet/support/io/NativeThread.java
|
|
|
|
mv {freenet_support_io_NativeThread_Linux,}NativeThread.h || die
|
|
|
|
"$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \
|
|
$(java-pkg_get-jni-cflags) -Ibuild/. \
|
|
-c -o libNativeThread.o NativeThread.c || die
|
|
|
|
"$(tc-getCC)" ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} \
|
|
-shared -Wl,-soname,libNativeThread.so \
|
|
-o libNativeThread.so libNativeThread.o || die
|
|
}
|
|
|
|
src_test() {
|
|
JAVA_TEST_EXTRA_ARGS=(
|
|
-Djava.library.path="${EPREFIX}/usr/$(get_libdir)/jna/"
|
|
-Djna.nosys=false
|
|
-Dnetworkaddress.cache.negative.ttl=0
|
|
-Dnetworkaddress.cache.ttl=0
|
|
# https://github.com/hyphanet/fred/blob/build01497/build.gradle#L194-L196
|
|
# "test.l10npath_main" reads from the JAR file.
|
|
-Dtest.l10npath_test="freenet/l10n/"
|
|
-Dtest.l10npath_main="freenet/l10n/"
|
|
--enable-native-access=ALL-UNNAMED
|
|
)
|
|
local vm_version="$(java-config -g PROVIDES_VERSION)"
|
|
if ver_test "${vm_version}" -ge 17; then
|
|
JAVA_TEST_EXTRA_ARGS+=(
|
|
--add-opens=java.base/java.{io,lang,util}=ALL-UNNAMED
|
|
)
|
|
fi
|
|
|
|
local JAVA_TEST_RUN_ONLY=$(find test -type f -name "*Test.java" -printf '%P\n')
|
|
JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//.java}"
|
|
JAVA_TEST_RUN_ONLY="${JAVA_TEST_RUN_ONLY//\//.}"
|
|
java-pkg-simple_src_test
|
|
}
|
|
|
|
src_install() {
|
|
java-pkg-simple_src_install
|
|
|
|
doinitd "${FILESDIR}"/freenet
|
|
|
|
systemd_dounit "${FILESDIR}"/freenet.service
|
|
|
|
insinto /etc
|
|
doins freenet-wrapper.conf
|
|
insinto /var/freenet
|
|
doins run.sh seednodes.fref
|
|
fperms +x /var/freenet/run.sh
|
|
|
|
cd NativeThread || die "cd NativeThread"
|
|
dolib.so libNativeThread.so
|
|
dosym libNativeThread.so /usr/$(get_libdir)/libnative.so
|
|
}
|
|
|
|
pkg_postinst() {
|
|
elog " "
|
|
elog "1. Start freenet with rc-service freenet start."
|
|
elog "2. Open localhost:8888 in your browser for the web interface."
|
|
#workaround for previously existing freenet user
|
|
[[ $(stat --format="%U" /var/freenet) == "freenet" ]] || chown \
|
|
freenet:freenet /var/freenet
|
|
}
|
|
|
|
pkg_postrm() {
|
|
if ! [[ -e /usr/share/freenet/lib/freenet.jar ]] ; then
|
|
elog " "
|
|
elog "If you dont want to use freenet any more"
|
|
elog "and dont want to keep your identity/other stuff"
|
|
elog "remember to do 'rm -rf /var/freenet' to remove everything"
|
|
fi
|
|
}
|