diff options
19 files changed, 428 insertions, 21 deletions
diff --git a/dev-libs/redland-bindings/metadata.xml b/dev-libs/redland-bindings/metadata.xml index b69a849fd57e..4b651c1ad2d6 100644 --- a/dev-libs/redland-bindings/metadata.xml +++ b/dev-libs/redland-bindings/metadata.xml @@ -5,4 +5,7 @@ <email>sound@gentoo.org</email> <name>Gentoo Sound project</name> </maintainer> +<upstream> + <remote-id type="github">dajobe/redland-bindings</remote-id> +</upstream> </pkgmetadata> diff --git a/dev-libs/redland/metadata.xml b/dev-libs/redland/metadata.xml index b69a849fd57e..a84fb6073cdf 100644 --- a/dev-libs/redland/metadata.xml +++ b/dev-libs/redland/metadata.xml @@ -5,4 +5,7 @@ <email>sound@gentoo.org</email> <name>Gentoo Sound project</name> </maintainer> +<upstream> + <remote-id type="github">dajobe/librdf</remote-id> +</upstream> </pkgmetadata> diff --git a/media-libs/raptor/raptor-2.0.16.ebuild b/media-libs/raptor/raptor-2.0.16.ebuild index 3d3903f710b5..4ec9436f793a 100644 --- a/media-libs/raptor/raptor-2.0.16.ebuild +++ b/media-libs/raptor/raptor-2.0.16.ebuild @@ -67,6 +67,8 @@ multilib_src_configure() { } multilib_src_test() { + # XXX: should be able to drop -j1 on next release (>2.0.16) + # https://github.com/dajobe/raptor/commit/f3aaf48b44a9ba7d01461245ca47649a82b3eb5f emake -j1 test } diff --git a/net-irc/ngircd/files/ngircd-26.1-configure-getaddrinfo.patch b/net-irc/ngircd/files/ngircd-26.1-configure-getaddrinfo.patch new file mode 100644 index 000000000000..3d6bff5bf54b --- /dev/null +++ b/net-irc/ngircd/files/ngircd-26.1-configure-getaddrinfo.patch @@ -0,0 +1,23 @@ +https://bugs.gentoo.org/946998 + +configure report getaddrinfo not works because of stricter compiler check: + configure:6303: x86_64-pc-linux-gnu-gcc -o conftest -g -O2 -pipe -W -Wall -Wpointer-arith -Wstrict-prototypes -fstack-protector -DSYSCONFDIR='"$(sysconfdir)"' -DDOCDIR='"$(docdir)"' conftest.c >&5 + conftest.c: In function 'main': + conftest.c:99:9: error: implicit declaration of function 'memset' [-Wimplicit-function-declaration] + +configure.ac still use de-ANSI-fication (which is only available in old +automake) in order to support old systems. So we can't patch configure.ac +and run eautoreconf. see https://github.com/ngircd/ngircd/issues/261 + +diff --git a/configure b/configure +index e4023a3..9337a85 100755 +--- a/configure ++++ b/configure +@@ -6283,6 +6283,7 @@ else + /* end confdefs.h. */ + + #include <stdio.h> ++#include <string.h> + #include <sys/types.h> + #include <sys/socket.h> + #include <netdb.h> diff --git a/net-irc/ngircd/metadata.xml b/net-irc/ngircd/metadata.xml index 00ce6e97b379..f37d7a115b23 100644 --- a/net-irc/ngircd/metadata.xml +++ b/net-irc/ngircd/metadata.xml @@ -1,7 +1,14 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <!-- maintainer-needed --> + <maintainer type="person" proxied="yes"> + <email>zhixu.liu@gmail.com</email> + <name>Z. Liu</name> + </maintainer> + <maintainer type="project" proxied="proxy"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> <use> <flag name="ident">Enables support for <pkg>net-libs/libident</pkg></flag> <flag name="irc-plus">Enables support for the IRC+ protocol (needs <pkg>virtual/libiconv</pkg>)</flag> diff --git a/net-irc/ngircd/ngircd-26.1-r6.ebuild b/net-irc/ngircd/ngircd-26.1-r6.ebuild new file mode 100644 index 000000000000..6d6e98e30b0c --- /dev/null +++ b/net-irc/ngircd/ngircd-26.1-r6.ebuild @@ -0,0 +1,130 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/alexbarton.asc +inherit tmpfiles systemd verify-sig + +DESCRIPTION="An IRC server written from scratch" +HOMEPAGE="https://ngircd.barton.de/" +SRC_URI="https://arthur.barton.de/pub/${PN}/${P}.tar.xz" +SRC_URI+=" verify-sig? ( https://arthur.barton.de/pub/${PN}/${P}.tar.xz.sig )" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="amd64 arm arm64 x86 ~x64-macos" +IUSE="debug gnutls ident +irc-plus +ipv6 pam +ssl strict-rfc tcpd test zlib" + +# Flaky test needs investigation (bug #719256) +RESTRICT="test" + +RDEPEND=" + acct-user/ngircd + irc-plus? ( virtual/libiconv ) + ident? ( net-libs/libident ) + pam? ( sys-libs/pam ) + ssl? ( + gnutls? ( net-libs/gnutls:= ) + !gnutls? ( + dev-libs/openssl:0= + ) + ) + tcpd? ( sys-apps/tcp-wrappers ) + zlib? ( sys-libs/zlib ) +" +DEPEND="${RDEPEND}" +BDEPEND=" + test? ( + dev-tcltk/expect + net-misc/netkit-telnetd + ) + verify-sig? ( >=sec-keys/openpgp-keys-alexbarton-20241211 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-26.1-systemd-unit.patch + "${FILESDIR}"/${PN}-26.1-configure-getaddrinfo.patch # XXX #946998 PLEASE CHECK PER RELEASE +) + +src_prepare() { + default + + if ! use prefix ; then + sed -i \ + -e "/;ServerUID = /s/65534/ngircd/" \ + -e "/;ServerGID = /s/65534/ngircd/" \ + doc/sample-ngircd.conf.tmpl || die + fi + + # Make pidfiles work out-of-the-box + sed -i \ + -e "/;PidFile = /s/;//" \ + -e "/;ServerUID = /s/;//" \ + -e "/;ServerGID = /s/;//" \ + doc/sample-ngircd.conf.tmpl || die + + # Note that if we need to use automake, we need a certain version (for now): + # https://github.com/ngircd/ngircd/issues/261 + # WANT_AUTOMAKE=1.11 + # eautomake +} + +src_configure() { + local myeconfargs=( + --sysconfdir="${EPREFIX}"/etc/${PN} + + $(use_enable debug sniffer) + $(use_enable debug) + $(use_enable irc-plus ircplus) + $(use_enable ipv6) + $(use_enable strict-rfc) + $(use_with irc-plus iconv) + $(use_with ident) + $(use_with pam) + $(use_with tcpd tcp-wrappers) + $(use_with zlib) + ) + + if use ssl ; then + if use gnutls ; then + myeconfargs+=( + $( use_with gnutls ) + ) + else + myeconfargs+=( + $( use_with !gnutls openssl ) + ) + fi + fi + + econf "${myeconfargs[@]}" +} + +src_install() { + default + + fowners root:ngircd /etc/ngircd/{,ngircd.conf} + fperms 0750 /etc/ngircd/ + fperms 0640 /etc/ngircd/ngircd.conf + + newinitd "${FILESDIR}"/ngircd.init-r2.d ngircd + newconfd "${FILESDIR}"/ngircd.conf.d ngircd + + systemd_dounit contrib/ngircd.{service,socket} + + dotmpfiles "${FILESDIR}"/ngircd.conf +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] && use pam ; then + elog "ngircd will use PAMIsOptionalPAM by default, please change this option." + elog "You may not be able to login until you change this." + fi + + if ! use irc-plus ; then + ewarn "server-login-test occasional failure had been reported. Upstream suggests" + ewarn "to enable ircplus by default. See Gentoo bug #719256. You have been warned." + fi + tmpfiles_process ngircd.conf +} diff --git a/sys-process/runit/files/1-2.1.2 b/sys-process/runit/files/1-r1 index 9761472ac739..9761472ac739 100644 --- a/sys-process/runit/files/1-2.1.2 +++ b/sys-process/runit/files/1-r1 diff --git a/sys-process/runit/files/1-r2 b/sys-process/runit/files/1-r2 new file mode 100644 index 000000000000..0ca4cc880e91 --- /dev/null +++ b/sys-process/runit/files/1-r2 @@ -0,0 +1,11 @@ +#!/bin/bash +# system one time tasks + +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +. /etc/runit/rc.sh + +run_rc_stage 1 + +touch /etc/runit/stopit +chmod 0 /etc/runit/stopit diff --git a/sys-process/runit/files/1.openrc.example b/sys-process/runit/files/1.openrc.example new file mode 100644 index 000000000000..816c33d26372 --- /dev/null +++ b/sys-process/runit/files/1.openrc.example @@ -0,0 +1,6 @@ +#!/bin/sh + +# example script in stage 1 using openrc, sys-apps/openrc must be installed + +RUNLEVEL=S /sbin/openrc sysinit +RUNLEVEL=S /sbin/openrc boot diff --git a/sys-process/runit/files/2-2.1.2 b/sys-process/runit/files/2-r1 index a63a1b2d269d..a63a1b2d269d 100644 --- a/sys-process/runit/files/2-2.1.2 +++ b/sys-process/runit/files/2-r1 diff --git a/sys-process/runit/files/3-2.1.2 b/sys-process/runit/files/3-r1 index 30e602cdae96..30e602cdae96 100644 --- a/sys-process/runit/files/3-2.1.2 +++ b/sys-process/runit/files/3-r1 diff --git a/sys-process/runit/files/3-r2 b/sys-process/runit/files/3-r2 new file mode 100644 index 000000000000..0b757c01fe22 --- /dev/null +++ b/sys-process/runit/files/3-r2 @@ -0,0 +1,15 @@ +#!/bin/bash +exec >/dev/console 2>&1 +PATH=/sbin:/usr/sbin:/bin:/usr/bin + +echo 'Waiting for getties to stop...' +sv -w 10 force-shutdown /etc/service/getty-* + +echo 'Waiting for services to stop...' +sv -w 300 force-shutdown /etc/service/* + +echo 'Shutdown...' + +. /etc/runit/rc.sh + +run_rc_stage 3 diff --git a/sys-process/runit/files/3.openrc.example b/sys-process/runit/files/3.openrc.example new file mode 100644 index 000000000000..2e4cb44f08ef --- /dev/null +++ b/sys-process/runit/files/3.openrc.example @@ -0,0 +1,7 @@ +#!/bin/sh + +# example script in stage 3 using openrc, sys-apps/openrc must be installed + +test -x /etc/runit/reboot && LAST=6 || LAST=0 +test -x /etc/runit/reboot && RC=reboot || RC=shutdown +RUNLEVEL=$LAST /sbin/openrc $RC diff --git a/sys-process/runit/files/rc.sh b/sys-process/runit/files/rc.sh new file mode 100644 index 000000000000..6e382ff9b712 --- /dev/null +++ b/sys-process/runit/files/rc.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +# run script(s) at /etc/runit/rc/, suffix must be .sh, prefix +# must be [1|3] which denote stage 1 or 3. +run_rc_stage() { + local prefix="${1}" + local prev_opt=$(shopt -p nullglob) + shopt -s nullglob + for file in /etc/runit/rc/"${prefix}".*.sh; do + if [[ ! -x "${file}" ]] || [[ ! -s "${file}" ]] ; then + continue + fi + . "${file}" + done + ${prev_opt} +} diff --git a/sys-process/runit/files/run.getty-2.1.2 b/sys-process/runit/files/run.getty index ab6f9543fe97..ab6f9543fe97 100644 --- a/sys-process/runit/files/run.getty-2.1.2 +++ b/sys-process/runit/files/run.getty diff --git a/sys-process/runit/metadata.xml b/sys-process/runit/metadata.xml index 73e765e89483..b959aa013a8b 100644 --- a/sys-process/runit/metadata.xml +++ b/sys-process/runit/metadata.xml @@ -12,4 +12,7 @@ <upstream> <remote-id type="github">clan/runit</remote-id> </upstream> + <use> + <flag name="scripts">Install boot scripts into /etc/runit/.</flag> + </use> </pkgmetadata> diff --git a/sys-process/runit/runit-2.1.2-r6.ebuild b/sys-process/runit/runit-2.1.2-r6.ebuild index 3cc37408a6ee..2e67b0119a0d 100644 --- a/sys-process/runit/runit-2.1.2-r6.ebuild +++ b/sys-process/runit/runit-2.1.2-r6.ebuild @@ -69,15 +69,15 @@ src_install() { exeinto /etc/runit doexe "${FILESDIR}"/ctrlaltdel - newexe "${FILESDIR}"/1-${PV} 1 - newexe "${FILESDIR}"/2-${PV} 2 - newexe "${FILESDIR}"/3-${PV} 3 + newexe "${FILESDIR}"/1-r1 1 + newexe "${FILESDIR}"/2-r1 2 + newexe "${FILESDIR}"/3-r1 3 dodir /etc/sv for tty in tty1 tty2 tty3 tty4 tty5 tty6; do exeinto /etc/sv/getty-$tty/ newexe "${FILESDIR}"/finish.getty finish - newexe "${FILESDIR}"/run.getty-${PV} run + newexe "${FILESDIR}"/run.getty run for script in finish run; do sed -i -e "s:TTY:${tty}:g" "${ED}"/etc/sv/getty-$tty/$script done diff --git a/sys-process/runit/runit-2.1.2-r7.ebuild b/sys-process/runit/runit-2.1.2-r7.ebuild new file mode 100644 index 000000000000..1ef4c5e2877d --- /dev/null +++ b/sys-process/runit/runit-2.1.2-r7.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit toolchain-funcs flag-o-matic + +DESCRIPTION="A UNIX init scheme with service supervision" +HOMEPAGE="https://smarden.org/runit/" +PATCH_VER=20240905 +SRC_URI=" + https://smarden.org/runit/${P}.tar.gz + https://github.com/clan/runit/releases/download/${PV}-r5/${P}-patches-${PATCH_VER}.tar.xz +" +S=${WORKDIR}/admin/${P}/src + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" +IUSE="+scripts split-usr static" + +src_unpack() { + unpack ${P}.tar.gz + unpack ${P}-patches-${PATCH_VER}.tar.xz +} + +src_prepare() { + default + + cd "${S}"/.. || die + eapply -p3 "${WORKDIR}"/patches + cd "${S}" || die + + # We either build everything or nothing static + sed -i -e 's:-static: :' Makefile || die + + # see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=726008 + [[ ${COMPILER} == "diet" ]] && + use ppc && + filter-flags "-mpowerpc-gpopt" +} + +src_configure() { + use static && append-ldflags -static + + append-flags -std=gnu17 # XXX https://bugs.gentoo.org/946137, workaround for gcc15 + echo "$(tc-getCC) ${CFLAGS}" > conf-cc || die + echo "$(tc-getCC) ${LDFLAGS}" > conf-ld || die + sed -i -e "s:ar cr:$(tc-getAR) cr:" print-ar.sh || die + sed -i -e "s:ranlib :$(tc-getRANLIB) :" print-ar.sh || die +} + +src_install() { + dobin $(<../package/commands) + dodir /sbin + mv "${ED}"/usr/bin/{runit-init,runit,utmpset} "${ED}"/sbin/ || die "dosbin" + if use split-usr ; then + dosym ../etc/runit/2 /sbin/runsvdir-start + else + dosym ../../etc/runit/2 /sbin/runsvdir-start + fi + + DOCS=( ../package/{CHANGES,README,THANKS,TODO} ) + HTML_DOCS=( ../doc/*.html ) + einstalldocs + doman ../man/*.[18] + + if use scripts ; then + exeinto /etc/runit + doexe "${FILESDIR}"/ctrlaltdel + newexe "${FILESDIR}"/1-r2 1 + newexe "${FILESDIR}"/2-r1 2 + newexe "${FILESDIR}"/3-r2 3 + doexe "${FILESDIR}"/rc.sh + insinto /etc/runit/rc + doins "${FILESDIR}"/1.openrc.example + doins "${FILESDIR}"/3.openrc.example + fi + + dodir /etc/sv + for tty in tty1 tty2 tty3 tty4 tty5 tty6; do + exeinto /etc/sv/getty-$tty/ + newexe "${FILESDIR}"/finish.getty finish + newexe "${FILESDIR}"/run.getty run + for script in finish run; do + sed -i -e "s:TTY:${tty}:g" "${ED}"/etc/sv/getty-$tty/$script + done + done + + # make sv command work + newenvd - 20runit <<- EOF + #/etc/env.d/20runit + SVDIR="/etc/service/" + EOF +} + +default_config() { + local sv="${EROOT}"/etc/sv + local service="${EROOT}"/etc/service + mkdir -p "${service}" || die + for x in tty1 tty2 tty3 tty4 tty5 tty6; do + ln -sf "${sv}"/getty-$x "${service}"/getty-$x || die + done + einfo "The links to services runit will supervise are installed" + einfo "in $service." + einfo "If you need multiple runlevels, please see the documentation" + einfo "for how to set them up." + einfo +} + +migrate_from_211() { + # Create /etc/service and /var/service if requested + if [[ -e "${T}"/make_var_service ]]; then + ln -sf "${EROOT}"/etc/runit/runsvdir/current "${EROOT}"/etc/service || die + ln -sf "${EROOT}"/etc/runit/runsvdir/current "${EROOT}"/var/service || die + fi + if [[ -d "${T}"/runsvdir ]]; then + cp -a "${T}"/runsvdir "${EROOT}"/etc/runit || die + fi + return 0 +} + +pkg_preinst() { + if has_version '<sys-process/runit-2.1.2'; then + pre_212=yes + fi +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]]; then + default_config + elif [[ -n ${pre_212} ]]; then + migrate_from_211 + fi + + if use scripts; then + ewarn "To make sure sv works correctly in your currently open" + ewarn "shells, please run the following command:" + ewarn + ewarn "source /etc/profile" + ewarn + ewarn "Currently, no task(s) will run in stage 1 & 3, you're on your own" + ewarn "to put script(s) into /etc/runit/rc/, please see /etc/runit/rc.sh" + ewarn "for name in different stages." + else + ewarn "This build with USE=\"-scripts\" doesn\'t include any boot scripts" + ewarn "into /etc/runit, you are on your own to put the scripts." + ewarn "Also, /sbin/runsvdir-start is a broken symlink to /etc/runit/2, you will" + ewarn "need to create script /etc/runit/2 before use it." + fi + + if [[ -L "${EROOT}"/var/service ]]; then + ewarn "Once this version of runit is active, please remove the" + ewarn "compatibility symbolic link at ${EROOT}/var/service" + ewarn "The correct path now is ${EROOT}/etc/service" + ewarn + fi + + if [[ -L "${EROOT}"/etc/runit/runsvdir/all ]]; then + ewarn "${EROOT}/etc/runit/runsvdir/all has moved to" + ewarn "${EROOT}/etc/sv." + ewarn "Any symbolic links under ${EROOT}/etc/runit/runsvdir" + ewarn "which point to services through ../all should be updated to" + ewarn "point to them through ${EROOT}/etc/sv." + ewarn "Once that is done, ${EROOT}/etc/runit/runsvdir/all should be" + ewarn "removed." + ewarn + fi +} diff --git a/sys-process/runit/runit-2.2.0.ebuild b/sys-process/runit/runit-2.2.0-r1.ebuild index 5f369e745738..5a77acc25416 100644 --- a/sys-process/runit/runit-2.2.0.ebuild +++ b/sys-process/runit/runit-2.2.0-r1.ebuild @@ -16,9 +16,7 @@ S=${WORKDIR}/admin/${P}/src LICENSE="BSD" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86" -IUSE="split-usr static" - -RDEPEND="sys-apps/openrc" +IUSE="+scripts split-usr static" src_prepare() { default @@ -45,8 +43,6 @@ src_configure() { } src_install() { - local ver_runit_cfg="2.1.2" # use files from 2.1.2 - dobin $(<../package/commands) dodir /sbin mv "${ED}"/usr/bin/{runit-init,runit,utmpset} "${ED}"/sbin/ || die "dosbin" @@ -61,17 +57,23 @@ src_install() { einstalldocs doman ../man/*.[18] - exeinto /etc/runit - doexe "${FILESDIR}"/ctrlaltdel - newexe "${FILESDIR}"/1-${ver_runit_cfg} 1 - newexe "${FILESDIR}"/2-${ver_runit_cfg} 2 - newexe "${FILESDIR}"/3-${ver_runit_cfg} 3 + if use scripts ; then + exeinto /etc/runit + doexe "${FILESDIR}"/ctrlaltdel + newexe "${FILESDIR}"/1-r2 1 + newexe "${FILESDIR}"/2-r1 2 + newexe "${FILESDIR}"/3-r2 3 + doexe "${FILESDIR}"/rc.sh + insinto /etc/runit/rc + doins "${FILESDIR}"/1.openrc.example + doins "${FILESDIR}"/3.openrc.example + fi dodir /etc/sv for tty in tty1 tty2 tty3 tty4 tty5 tty6; do exeinto /etc/sv/getty-$tty/ newexe "${FILESDIR}"/finish.getty finish - newexe "${FILESDIR}"/run.getty-${ver_runit_cfg} run + newexe "${FILESDIR}"/run.getty run for script in finish run; do sed -i -e "s:TTY:${tty}:g" "${ED}"/etc/sv/getty-$tty/$script done @@ -123,11 +125,21 @@ pkg_postinst() { migrate_from_211 fi - ewarn "To make sure sv works correctly in your currently open" - ewarn "shells, please run the following command:" - ewarn - ewarn "source /etc/profile" - ewarn + if use scripts; then + ewarn "To make sure sv works correctly in your currently open" + ewarn "shells, please run the following command:" + ewarn + ewarn "source /etc/profile" + ewarn + ewarn "Currently, no task(s) will run in stage 1 & 3, you're on your own" + ewarn "to put script(s) into /etc/runit/rc/, please see /etc/runit/rc.sh" + ewarn "for name in different stages." + else + ewarn "This build with USE=\"-scripts\" doesn\'t include any boot scripts" + ewarn "into /etc/runit, you are on your own to put the scripts." + ewarn "Also, /sbin/runsvdir-start is a broken symlink to /etc/runit/2, you will" + ewarn "need to create script /etc/runit/2 before use it." + fi if [[ -L "${EROOT}"/var/service ]]; then ewarn "Once this version of runit is active, please remove the" |