From: Nick Bowler Date: Sat, 17 Feb 2024 19:18:10 +0000 (-0500) Subject: app-emulation/wine-vanilla-4.0.4: Adapt mpg123 dependency. X-Git-Url: https://git.draconx.ca/gitweb/gentoo-fixes.git/commitdiff_plain/HEAD?hp=2609aa0189016b1d51bd0f08a2b041fe15429922 app-emulation/wine-vanilla-4.0.4: Adapt mpg123 dependency. Gentoo has split this into multiple packages. We should only need the decoder libraries, I think, in media-sound/mpg123-base. --- diff --git a/app-emulation/wine-vanilla/Manifest b/app-emulation/wine-vanilla/Manifest new file mode 100644 index 0000000..9407c5a --- /dev/null +++ b/app-emulation/wine-vanilla/Manifest @@ -0,0 +1,4 @@ +AUX 4.0.4-configure-fixes.patch 523 BLAKE2B 8cb555cdf763b734dcf27c6f6892867f597de5481ce69f975df17844518842b9f8f6f0190f8b3690eb4b7f5978f6daa508525eebb07d8349e84f314969c16d90 SHA512 5d67d43d7bcfe6497826ac1f8e2d8f1ac63bc724c31a44caa6cb91d9f5a1004be5a56d0d6f03891c9acb2530fb7f14503f7cc950ff650ebdad31868ee6b1c7b6 +DIST gentoo-wine-patches-20180120.tar.xz 58672 BLAKE2B 84d621075b65475cec41a06429680b518d7eafb938cefd903f3f8aa71ea3049ac9d8de05af48f9f4f4a1b9172c7ef17784540413e410eb8ec11e8ec4a63858c6 SHA512 5b354a409c7a2b77499aaa593b9248a1d15d755e3687b095755faacc30068bfcdbdd5c2a2a78617cb1a78c46d2931162bd69ec3379b035d81494bea7108263c2 +DIST wine-4.0.4.tar.xz 21686868 BLAKE2B 3ba9afef38a33e53eb1979aa4e7bbb120370692a8480e7bc15fc6959fb326c0c1f2151bb96355220e534858c0be56e1c35813e5e31b8a85db89c701466edac21 SHA512 21780b3c846bfa7a54572fe78939d7a2579a2b96654fc578e8e70d20b50262b4bfb43a0431f4089264cf8f83202c2fc67dd6a4c89257e951b64e7c91ee3bdf4e +EBUILD wine-vanilla-4.0.4-r2.ebuild 17945 BLAKE2B 14856ae26a71d12128d1f23840c9f995bed33846cd3662aad0a9d114996c38544e4a9c341f39202217238ad2f62fbfb0dfb50f043c8aa8c66961184c069dc4d7 SHA512 f81c26ed094f18385f1aefc1ff63315edf0a946f7ee7eb63f18023a04658640c4f2ed64f3056ffcdfc55bec289562d5ffbde638a56680b9261cbdc5f4e6a32a4 diff --git a/app-emulation/wine-vanilla/files/4.0.4-configure-fixes.patch b/app-emulation/wine-vanilla/files/4.0.4-configure-fixes.patch new file mode 100644 index 0000000..8c8a931 --- /dev/null +++ b/app-emulation/wine-vanilla/files/4.0.4-configure-fixes.patch @@ -0,0 +1,13 @@ +diff --git a/aclocal.m4 b/aclocal.m4 +index 25ac678..1d41d6a 100644 +--- a/aclocal.m4 ++++ b/aclocal.m4 +@@ -28,7 +28,7 @@ dnl Like AC_CHECK_TOOL but without the broken fallback to non-prefixed name + dnl + AC_DEFUN([WINE_CHECK_HOST_TOOL], + [AS_VAR_SET_IF([ac_tool_prefix], +- AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4])) ++ [AC_CHECK_PROG([$1],[${ac_tool_prefix}$2],[${ac_tool_prefix}$2],,[$4])]) + AS_VAR_IF([ac_cv_prog_$1],[], + [AS_VAR_IF([cross_compiling],[yes],[], + [AS_UNSET([ac_cv_prog_$1]) diff --git a/app-emulation/wine-vanilla/wine-vanilla-4.0.4-r2.ebuild b/app-emulation/wine-vanilla/wine-vanilla-4.0.4-r2.ebuild new file mode 100644 index 0000000..6b227bd --- /dev/null +++ b/app-emulation/wine-vanilla/wine-vanilla-4.0.4-r2.ebuild @@ -0,0 +1,551 @@ +# This ebuild is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Apply patch to build successfully with Autoconf 2.71 (2021-11) +# * Build with -fcommon to get compatible behaviour from GCC 10 (2022-04) +# * Port to EAPI 8 for compatibility with current eclasses (2022-12) +# * Update media-sound/mpg123 -> media-sound/mpg123-base (2024-02) + +EAPI=8 + +PLOCALES="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru si sk sl sr_RS@cyrillic sr_RS@latin sv ta te th tr uk wa zh_CN zh_TW" +PLOCALE_BACKUP="en" + +inherit autotools estack flag-o-matic multilib multilib-minimal pax-utils plocale toolchain-funcs virtualx wrapper xdg-utils + +MY_PN="${PN%%-*}" +MY_P="${MY_PN}-${PV}" + +if [[ ${PV} == "9999" ]] ; then + EGIT_REPO_URI="https://source.winehq.org/git/wine.git" + EGIT_BRANCH="master" + inherit git-r3 + SRC_URI="" + #KEYWORDS="" +else + MAJOR_V=$(ver_cut 1) + MINOR_V=$(ver_cut 2) + SRC_URI="https://dl.winehq.org/wine/source/${MAJOR_V}.${MINOR_V}/${MY_P}.tar.xz" + KEYWORDS="-* ~amd64 ~x86" +fi +S="${WORKDIR}/${MY_P}" + +GWP_V="20180120" +PATCHDIR="${WORKDIR}/gentoo-wine-patches" + +DESCRIPTION="Free implementation of Windows(tm) on Unix, without external patchsets" +HOMEPAGE="https://www.winehq.org/" +SRC_URI="${SRC_URI} + https://dev.gentoo.org/~np-hardass/distfiles/wine/gentoo-wine-patches-${GWP_V}.tar.xz +" + +LICENSE="LGPL-2.1" +SLOT="${PV}" +IUSE="+abi_x86_32 +abi_x86_64 +alsa capi cups custom-cflags dos elibc_glibc +fontconfig +gecko gphoto2 gsm gssapi gstreamer +jpeg kerberos kernel_FreeBSD +lcms ldap +mono mp3 ncurses netapi nls odbc openal opencl +opengl osmesa oss +perl pcap +png prelink pulseaudio +realtime +run-exes samba scanner sdl selinux +ssl test +threads +truetype udev +udisks v4l vkd3d vulkan +X +xcomposite xinerama +xml" +REQUIRED_USE="|| ( abi_x86_32 abi_x86_64 ) + X? ( truetype ) + elibc_glibc? ( threads ) + osmesa? ( opengl ) + test? ( abi_x86_32 ) + vkd3d? ( vulkan )" # osmesa-opengl #286560 # X-truetype #551124 + +# FIXME: the test suite is unsuitable for us; many tests require net access +# or fail due to Xvfb's opengl limitations. +RESTRICT="test" + +BDEPEND="virtual/pkgconfig + sys-devel/bison + sys-devel/flex" + +COMMON_DEPEND=" + X? ( + x11-libs/libXcursor[${MULTILIB_USEDEP}] + x11-libs/libXext[${MULTILIB_USEDEP}] + x11-libs/libXfixes[${MULTILIB_USEDEP}] + x11-libs/libXrandr[${MULTILIB_USEDEP}] + x11-libs/libXi[${MULTILIB_USEDEP}] + x11-libs/libXxf86vm[${MULTILIB_USEDEP}] + ) + alsa? ( media-libs/alsa-lib[${MULTILIB_USEDEP}] ) + capi? ( net-libs/libcapi[${MULTILIB_USEDEP}] ) + cups? ( net-print/cups:=[${MULTILIB_USEDEP}] ) + fontconfig? ( media-libs/fontconfig:=[${MULTILIB_USEDEP}] ) + gphoto2? ( media-libs/libgphoto2:=[${MULTILIB_USEDEP}] ) + gsm? ( media-sound/gsm:=[${MULTILIB_USEDEP}] ) + gssapi? ( virtual/krb5[${MULTILIB_USEDEP}] ) + gstreamer? ( + media-libs/gstreamer:1.0[${MULTILIB_USEDEP}] + media-plugins/gst-plugins-meta:1.0[${MULTILIB_USEDEP}] + ) + jpeg? ( virtual/jpeg:0=[${MULTILIB_USEDEP}] ) + kerberos? ( virtual/krb5[${MULTILIB_USEDEP}] ) + lcms? ( media-libs/lcms:2=[${MULTILIB_USEDEP}] ) + ldap? ( net-nds/openldap:=[${MULTILIB_USEDEP}] ) + mp3? ( + || ( + >=media-sound/mpg123-base-1.5.0[${MULTILIB_USEDEP}] + >=media-sound/mpg123-1.5.0[${MULTILIB_USEDEP}] + ) + ) + ncurses? ( >=sys-libs/ncurses-5.2:0=[${MULTILIB_USEDEP}] ) + netapi? ( net-fs/samba[netapi(+),${MULTILIB_USEDEP}] ) + nls? ( sys-devel/gettext[${MULTILIB_USEDEP}] ) + odbc? ( dev-db/unixODBC:=[${MULTILIB_USEDEP}] ) + openal? ( media-libs/openal:=[${MULTILIB_USEDEP}] ) + opencl? ( virtual/opencl[${MULTILIB_USEDEP}] ) + opengl? ( + virtual/glu[${MULTILIB_USEDEP}] + virtual/opengl[${MULTILIB_USEDEP}] + ) + osmesa? ( >=media-libs/mesa-13[osmesa,${MULTILIB_USEDEP}] ) + pcap? ( net-libs/libpcap[${MULTILIB_USEDEP}] ) + png? ( media-libs/libpng:0=[${MULTILIB_USEDEP}] ) + pulseaudio? ( media-sound/pulseaudio[${MULTILIB_USEDEP}] ) + scanner? ( media-gfx/sane-backends:=[${MULTILIB_USEDEP}] ) + sdl? ( media-libs/libsdl2:=[haptic,joystick,${MULTILIB_USEDEP}] ) + ssl? ( net-libs/gnutls:=[${MULTILIB_USEDEP}] ) + truetype? ( >=media-libs/freetype-2.0.0[${MULTILIB_USEDEP}] ) + udev? ( virtual/libudev:=[${MULTILIB_USEDEP}] ) + udisks? ( sys-apps/dbus[${MULTILIB_USEDEP}] ) + v4l? ( media-libs/libv4l[${MULTILIB_USEDEP}] ) + vkd3d? ( app-emulation/vkd3d[${MULTILIB_USEDEP}] ) + vulkan? ( media-libs/vulkan-loader[${MULTILIB_USEDEP}] ) + xcomposite? ( x11-libs/libXcomposite[${MULTILIB_USEDEP}] ) + xinerama? ( x11-libs/libXinerama[${MULTILIB_USEDEP}] ) + xml? ( + dev-libs/libxml2[${MULTILIB_USEDEP}] + dev-libs/libxslt[${MULTILIB_USEDEP}] + )" + +RDEPEND="${COMMON_DEPEND} + app-emulation/wine-desktop-common + >app-eselect/eselect-wine-0.3 + !app-emulation/wine:0 + dos? ( >=games-emulation/dosbox-0.74_p20160629 ) + gecko? ( app-emulation/wine-gecko:2.47[abi_x86_32?,abi_x86_64?] ) + mono? ( app-emulation/wine-mono:4.7.5 ) + perl? ( + dev-lang/perl + dev-perl/XML-Simple + ) + pulseaudio? ( + realtime? ( sys-auth/rtkit ) + ) + samba? ( >=net-fs/samba-3.0.25[winbind] ) + selinux? ( sec-policy/selinux-wine ) + udisks? ( sys-fs/udisks:2 )" + +# tools/make_requests requires perl +DEPEND="${COMMON_DEPEND} + >=sys-kernel/linux-headers-2.6 + X? ( x11-base/xorg-proto ) + prelink? ( sys-devel/prelink ) + xinerama? ( x11-base/xorg-proto )" + +# These use a non-standard "Wine" category, which is provided by +# /etc/xdg/applications-merged/wine.menu +QA_DESKTOP_FILE="usr/share/applications/wine-browsedrive.desktop +usr/share/applications/wine-notepad.desktop +usr/share/applications/wine-uninstaller.desktop +usr/share/applications/wine-winecfg.desktop" + +PATCHES=( + "$FILESDIR/$PV-configure-fixes.patch" + "${PATCHDIR}/patches/${MY_PN}-1.5.26-winegcc.patch" #260726 + "${PATCHDIR}/patches/${MY_PN}-1.9.5-multilib-portage.patch" #395615 + "${PATCHDIR}/patches/${MY_PN}-1.6-memset-O3.patch" #480508 + "${PATCHDIR}/patches/${MY_PN}-2.0-multislot-apploader.patch" #310611 +) +PATCHES_BIN=() + +# https://bugs.gentoo.org/show_bug.cgi?id=635222 +if [[ ${#PATCHES_BIN[@]} -ge 1 ]] || [[ ${PV} == 9999 ]]; then + DEPEND+=" dev-util/patchbin" +fi + +wine_compiler_check() { + [[ ${MERGE_TYPE} = "binary" ]] && return 0 + + # GCC-specific bugs + if tc-is-gcc; then + # bug #549768 + if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) -le 2 ]]; then + ebegin "Checking for gcc-5 ms_abi compiler bug" + $(tc-getCC) -O2 "${PATCHDIR}/files/pr66838.c" -o "${T}"/pr66838 || die + # Run in subshell to prevent "Aborted" message + ( "${T}"/pr66838 || false ) >/dev/null 2>&1 + if ! eend $?; then + eerror "64-bit wine cannot be built with gcc-5.1 or initial patchset of 5.2.0" + eerror "due to compiler bugs; please re-emerge the latest gcc-5.2.x ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/549768" + eerror + return 1 + fi + fi + # bug #574044 + if use abi_x86_64 && [[ $(gcc-major-version) = 5 && $(gcc-minor-version) = 3 ]]; then + ebegin "Checking for gcc-5-3 stack realignment compiler bug" + # Compile in subshell to prevent "Aborted" message + ( $(tc-getCC) -O2 -mincoming-stack-boundary=3 "${PATCHDIR}/files/pr69140.c" -o "${T}"/pr69140 ) >/dev/null 2>&1 + if ! eend $?; then + eerror "Wine cannot be built with this version of gcc-5.3" + eerror "due to compiler bugs; please re-emerge the latest gcc-5.3.x ebuild," + eerror "or use gcc-config to select a different compiler version." + eerror "See https://bugs.gentoo.org/574044" + eerror + return 1 + fi + fi + fi + + # Ensure compiler support + if use abi_x86_64; then + ebegin "Checking for 64-bit compiler with builtin_ms_va_list support" + # Compile in subshell to prevent "Aborted" message + ( $(tc-getCC) -O2 "${PATCHDIR}/files/builtin_ms_va_list.c" -o "${T}"/builtin_ms_va_list >/dev/null 2>&1) + if ! eend $?; then + eerror "This version of $(tc-getCC) does not support builtin_ms_va_list, can't enable 64-bit wine" + eerror + eerror "You need gcc-4.4+ or clang 3.8+ to build 64-bit wine" + eerror + return 1 + fi + fi +} + +wine_build_environment_check() { + [[ ${MERGE_TYPE} = "binary" ]] && return 0 + + if use abi_x86_64; then + if tc-is-gcc && [[ $(gcc-major-version) -lt 4 || ( $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 4 ) ]]; then + eerror "You need gcc-4.4+ to compile 64-bit wine" + die + elif tc-is-clang && [[ $(clang-major-version) -lt 3 || ( $(clang-major-version) -eq 3 && $(clang-minor-version) -lt 8 ) ]]; then + eerror "You need clang-3.8+ to compile 64-bit wine" + die + fi + fi + if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -le 3 ]]; then + ewarn "GCC-5.0-5.3 suffered from compiler bugs and are no longer supported by" + ewarn "Gentoo's Toolchain Team. If your ebuild fails the compiler checks in" + ewarn "the configure phase, either update your compiler or switch to <5.0 || >=5.4" + fi + if tc-is-gcc && [[ $(gcc-major-version) -eq 5 && $(gcc-minor-version) -eq 4 ]]; then + if has "-march=i686" ${CFLAGS} && ! has "-mtune=generic" ${CFLAGS}; then + ewarn "Compilation can hang with CFLAGS=\"-march=i686\". You can temporarily work" + ewarn "around this by adding \"-mtune=generic\" to your CFLAGS for wine." + ewarn "See package.env in man 5 portage for more information on how to do this." + ewarn "See https://bugs.gentoo.org/show_bug.cgi?id=613128 for more details" + fi + fi + + if use abi_x86_32 && use opencl && [[ "$(eselect opencl show 2> /dev/null)" == "intel" ]]; then + eerror "You cannot build wine with USE=opencl because intel-ocl-sdk is 64-bit only." + eerror "See https://bugs.gentoo.org/487864 for more details." + eerror + return 1 + fi +} + +wine_env_vcs_vars() { + local pn_live_var="${PN//[-+]/_}_LIVE_COMMIT" + local pn_live_val="${pn_live_var}" + eval pn_live_val='$'${pn_live_val} + if [[ ! -z ${EGIT_COMMIT} ]]; then + eerror "Commits must now be specified using the environmental variables" + eerror "EGIT_OVERRIDE_COMMIT_WINE" + eerror + return 1 + fi +} + +pkg_pretend() { + wine_build_environment_check || die + + # Verify OSS support + if use oss && ! use kernel_FreeBSD; then + if ! has_version ">=media-sound/oss-4"; then + eerror "You cannot build wine with USE=oss without having support from a" + eerror "FreeBSD kernel or >=media-sound/oss-4 (only available through external repos)" + eerror + die + fi + fi +} + +pkg_setup() { + wine_build_environment_check || die + wine_env_vcs_vars || die + + WINE_VARIANT="${PN#wine}-${PV}" + WINE_VARIANT="${WINE_VARIANT#-}" + + MY_PREFIX="${EPREFIX}/usr/lib/wine-${WINE_VARIANT}" + MY_DATAROOTDIR="${EPREFIX}/usr/share/wine-${WINE_VARIANT}" + MY_DATADIR="${MY_DATAROOTDIR}" + MY_DOCDIR="${EPREFIX}/usr/share/doc/${PF}" + MY_INCLUDEDIR="${EPREFIX}/usr/include/wine-${WINE_VARIANT}" + MY_LIBEXECDIR="${EPREFIX}/usr/libexec/wine-${WINE_VARIANT}" + MY_LOCALSTATEDIR="${EPREFIX}/var/wine-${WINE_VARIANT}" + MY_MANDIR="${MY_DATADIR}/man" +} + +src_unpack() { + if [[ ${PV} == "9999" ]] ; then + EGIT_CHECKOUT_DIR="${S}" git-r3_src_unpack + fi + + default + + plocale_find_changes "${S}/po" "" ".po" +} + +src_prepare() { + + eapply_bin(){ + local patch + for patch in ${PATCHES_BIN[@]}; do + patchbin --nogit < "${patch}" || die + done + } + + local md5="$(md5sum server/protocol.def)" + + default + eapply_bin + eautoreconf + + # Modification of the server protocol requires regenerating the server requests + if [[ "$(md5sum server/protocol.def)" != "${md5}" ]]; then + einfo "server/protocol.def was patched; running tools/make_requests" + tools/make_requests || die #432348 + fi + sed -i '/^UPDATE_DESKTOP_DATABASE/s:=.*:=true:' tools/Makefile.in || die + if ! use run-exes; then + sed -i '/^MimeType/d' loader/wine.desktop || die #117785 + fi + + # Edit wine.desktop to work for specific variant + sed -e "/^Exec=/s/wine /wine-${WINE_VARIANT} /" -i loader/wine.desktop || die + + # hi-res default icon, #472990, https://bugs.winehq.org/show_bug.cgi?id=24652 + cp "${PATCHDIR}/files/oic_winlogo.ico" dlls/user32/resources/ || die + + plocale_get_locales > po/LINGUAS || die # otherwise wine doesn't respect LINGUAS + + # Fix manpage generation for locales #469418 and abi_x86_64 #617864 + + # Duplicate manpages input files for wine64 + local f + for f in loader/*.man.in; do + cp ${f} ${f/wine/wine64} || die + done + # Add wine64 manpages to Makefile + if use abi_x86_64; then + sed -i "/wine.man.in/i \ + \\\twine64.man.in \\\\" loader/Makefile.in || die + sed -i -E 's/(.*wine)(.*\.UTF-8\.man\.in.*)/&\ +\164\2/' loader/Makefile.in || die + fi + + rm_man_file(){ + local file="${1}" + loc=${2} + sed -i "/${loc}\.UTF-8\.man\.in/d" "${file}" || die + } + + while read f; do + plocale_for_each_disabled_locale rm_man_file "${f}" + done < <(find -name "Makefile.in" -exec grep -q "UTF-8.man.in" "{}" \; -print) +} + +src_configure() { + wine_compiler_check || die + + export LDCONFIG=/bin/true + use custom-cflags || strip-flags + append-flags -fcommon + + multilib-minimal_src_configure +} + +multilib_src_configure() { + local myconf=( + --prefix="${MY_PREFIX}" + --datarootdir="${MY_DATAROOTDIR}" + --datadir="${MY_DATADIR}" + --docdir="${MY_DOCDIR}" + --includedir="${MY_INCLUDEDIR}" + --libdir="${EPREFIX}/usr/$(get_libdir)/wine-${WINE_VARIANT}" + --libexecdir="${MY_LIBEXECDIR}" + --localstatedir="${MY_LOCALSTATEDIR}" + --mandir="${MY_MANDIR}" + --sysconfdir=/etc/wine + $(use_with alsa) + $(use_with capi) + $(use_with lcms cms) + $(use_with cups) + $(use_with ncurses curses) + $(use_with udisks dbus) + $(use_with fontconfig) + $(use_with ssl gnutls) + $(use_enable gecko mshtml) + $(use_with gphoto2 gphoto) + $(use_with gsm) + $(use_with gssapi) + $(use_with gstreamer) + --without-hal + $(use_with jpeg) + $(use_with kerberos krb5) + $(use_with ldap) + $(use_enable mono mscoree) + $(use_with mp3 mpg123) + $(use_with netapi) + $(use_with nls gettext) + $(use_with openal) + $(use_with opencl) + $(use_with opengl) + $(use_with osmesa) + $(use_with oss) + $(use_with pcap) + $(use_with png) + $(use_with pulseaudio pulse) + $(use_with threads pthread) + $(use_with scanner sane) + $(use_with sdl) + $(use_enable test tests) + $(use_with truetype freetype) + $(use_with udev) + $(use_with v4l) + $(use_with vkd3d) + $(use_with vulkan) + $(use_with X x) + $(use_with X xfixes) + $(use_with xcomposite) + $(use_with xinerama) + $(use_with xml) + $(use_with xml xslt) + ) + + local PKG_CONFIG AR RANLIB + # Avoid crossdev's i686-pc-linux-gnu-pkg-config if building wine32 on amd64; #472038 + # set AR and RANLIB to make QA scripts happy; #483342 + tc-export PKG_CONFIG AR RANLIB + + if use amd64; then + if [[ ${ABI} == amd64 ]]; then + myconf+=( --enable-win64 ) + else + myconf+=( --disable-win64 ) + fi + + # Note: using --with-wine64 results in problems with multilib.eclass + # CC/LD hackery. We're using separate tools instead. + fi + + ECONF_SOURCE=${S} \ + econf "${myconf[@]}" + emake depend +} + +multilib_src_test() { + # FIXME: win32-only; wine64 tests fail with "could not find the Wine loader" + if [[ ${ABI} == x86 ]]; then + if [[ $(id -u) == 0 ]]; then + ewarn "Skipping tests since they cannot be run under the root user." + ewarn "To run the test ${MY_PN} suite, add userpriv to FEATURES in make.conf" + return + fi + + WINEPREFIX="${T}/.wine-${ABI}" \ + Xemake test + fi +} + +multilib_src_install_all() { + local DOCS=( ANNOUNCE AUTHORS README ) + add_locale_docs() { + local locale_doc="documentation/README.$1" + [[ ! -e ${locale_doc} ]] || DOCS+=( ${locale_doc} ) + } + plocale_for_each_locale add_locale_docs + + einstalldocs + find "${ED}" -name *.la -delete || die + + if ! use perl ; then # winedump calls function_grep.pl, and winemaker is a perl script + rm "${D%/}${MY_PREFIX}"/bin/{wine{dump,maker},function_grep.pl} \ + "${D%/}${MY_MANDIR}"/man1/wine{dump,maker}.1 || die + fi + + # Remove wineconsole if neither backend is installed #551124 + if ! use X && ! use ncurses; then + rm "${D%/}${MY_PREFIX}"/bin/wineconsole* || die + rm "${D%/}${MY_MANDIR}"/man1/wineconsole* || die + rm_wineconsole() { + rm "${D%/}${MY_PREFIX}/$(get_libdir)"/wine/{,fakedlls/}wineconsole.exe* || die + } + multilib_foreach_abi rm_wineconsole + fi + + use abi_x86_32 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine{,-preloader} #255055 + use abi_x86_64 && pax-mark psmr "${D%/}${MY_PREFIX}"/bin/wine64{,-preloader} + + if use abi_x86_64 && ! use abi_x86_32; then + dosym wine64 "${MY_PREFIX}"/bin/wine # 404331 + dosym wine64-preloader "${MY_PREFIX}"/bin/wine-preloader + fi + + # Failglob for binloops, shouldn't be necessary, but including to stay safe + eshopts_push -s failglob #615218 + # Make wrappers for binaries for handling multiple variants + # Note: wrappers instead of symlinks because some are shell which use basename + local b + for b in "${D%/}${MY_PREFIX}"/bin/*; do + make_wrapper "${b##*/}-${WINE_VARIANT}" "${MY_PREFIX}/bin/${b##*/}" + done + eshopts_pop +} + +pkg_postinst() { + eselect wine register ${P} + if [[ ${PN} == "wine-vanilla" ]]; then + eselect wine register --vanilla ${P} || die + fi + + eselect wine update --all --if-unset || die + + xdg_desktop_database_update + + if ! use gecko; then + ewarn "Without Wine Gecko, wine prefixes will not have a default" + ewarn "implementation of iexplore. Many older windows applications" + ewarn "rely upon the existence of an iexplore implementation, so" + ewarn "you will likely need to install an external one, like via winetricks" + fi + if ! use mono; then + ewarn "Without Wine Mono, wine prefixes will not have a default" + ewarn "implementation of .NET. Many windows applications rely upon" + ewarn "the existence of a .NET implementation, so you will likely need" + ewarn "to install an external one, like via winetricks" + fi +} + +pkg_prerm() { + eselect wine deregister ${P} + if [[ ${PN} == "wine-vanilla" ]]; then + eselect wine deregister --vanilla ${P} || die + fi + + eselect wine update --all --if-unset || die +} + +pkg_postrm() { + xdg_desktop_database_update +} diff --git a/dev-python/pycairo/Manifest b/dev-python/pycairo/Manifest index e9f8ccf..ffb988b 100644 --- a/dev-python/pycairo/Manifest +++ b/dev-python/pycairo/Manifest @@ -1,4 +1,4 @@ AUX pycairo-1.18.2-no-setuptools.patch 390 BLAKE2B 2e96d663534447de9aadd2a688dd6277a35ff2f9f3ea3f8a9bd060d4fffca36c565ac0ba4dff2b1fe470ac55cace671b7875a387d85fcaf307a289727f922190 SHA512 31775030b33a756a5075b793f5a4b6c3998f42b6a98f612aa991a2c8ed72263363aaf2dcf43bbd2357adb8897f372e3cd88526fe1b14f3ed645cde53386127f0 AUX pycairo-1.19.1-py39.patch 890 BLAKE2B 8ee84005e17fd485f568213e751dd30bcb904806d4016088d0c6882958ce7edeba2517f3ab4b8139a8f923e3baec435bc9a21cf3546b60f4459c5cc9ad7a54d6 SHA512 607d6f2cf6bcaec394b755f452d3c4bc0f6edb39bea185a18258c1ee0db11a99d84c7605dbe9db83906518d41baf065b2b8d9261db3736f8a737a2a8f7dff266 DIST pycairo-1.18.2.tar.gz 200462 BLAKE2B 1f755dc90fe3ee50aa68273a0816752312f144831ff857709e1a4695a58646ffe6be518733480ed37231c213a11d4e5aaf8dfd1cfa68104873bc7d4192435b89 SHA512 279ea80413ba55d493d51455685da09afa1f5c45e2930c3fca3e417a8afe6645a0d8131201f79482de59e5ec56cfef62eac65ed88fe88866bfcc06503dcc59e0 -EBUILD pycairo-1.18.2-r3.ebuild 1714 BLAKE2B d86b6b31c5d4d84b5342f732759ed173bdd30210db792751948573ddaca2a87af67015b8640e46912fe30f0cfd8397d7a3bb222e4ca9e49e9644bb7cf9448be1 SHA512 ca1dc55c53fe187970064c84ccdfe024c21ffba3dd76052ab00dc1c1f9e9c7145411e77ca9b6f953f3ee905244685af08405ce63486c54c42d3c2685d1853d2b +EBUILD pycairo-1.18.2-r6.ebuild 1757 BLAKE2B 0fb036e6a75a406c2727ee8bed057c97640e115e6b959413642f07d33a3a934f5179a6a3b6b8aa41924541f81802c3b3c83eb573144b6e5d6e4998641fafec2e SHA512 ed791996e0b35df6ee743f46a5ee8d41b427858634511505030547d53e749572a57a5bfdcd5507ddbee8eff0c10acf75482d24080583f9f72db9230c2aa07d10 diff --git a/dev-python/pycairo/pycairo-1.18.2-r3.ebuild b/dev-python/pycairo/pycairo-1.18.2-r6.ebuild similarity index 68% rename from dev-python/pycairo/pycairo-1.18.2-r3.ebuild rename to dev-python/pycairo/pycairo-1.18.2-r6.ebuild index a9338d3..b6ad641 100644 --- a/dev-python/pycairo/pycairo-1.18.2-r3.ebuild +++ b/dev-python/pycairo/pycairo-1.18.2-r6.ebuild @@ -1,4 +1,4 @@ -# Copyright © 2020-2021 Nick Bowler +# Copyright © 2020-2023 Nick Bowler # # License GPLv2+: GNU General Public License version 2 or any later version. # This is free software: you are free to change and redistribute it. @@ -9,16 +9,15 @@ # # Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Resurrect python2 version installable alongside newer version (2020-11) +# * Avoid python eclasses as there is no more python2 support (2022-12) +# * Fix deps against newer cairo ebuilds w/o "svg" USE flag (2023-01) EAPI=7 -_PYTHON_ALLOW_PY27=1 -PYTHON_COMPAT=( python2_7 ) -PYTHON_REQ_USE="threads(+)" -DISTUTILS_USE_SETUPTOOLS=no - -inherit distutils-r1 - DESCRIPTION="Python bindings for the cairo library" HOMEPAGE="https://www.cairographics.org/pycairo/ https://github.com/pygobject/pycairo" SRC_URI="https://github.com/pygobject/${PN}/releases/download/v${PV}/${P}.tar.gz" @@ -31,30 +30,27 @@ IUSE="examples" # Strong block on old pycairo w/ python2 support because the merge will # otherwise not work properly due to replacing a directory with a file. -RDEPEND=">=x11-libs/cairo-1.13.1[svg] +DEPEND=">=x11-libs/cairo-1.13.1[svg(+)] !!dev-python/pycairo:0[python_targets_python2_7]" -DEPEND=$RDEPEND +RDEPEND="$DEPEND + dev-lang/python:2.7[threads(+)]" +BDEPEND="dev-lang/python:2.7" PATCHES=( "$FILESDIR/$P-no-setuptools.patch" "$FILESDIR/$PN-1.19.1-py39.patch" ) -distutils_enable_tests setup.py - -python_test() { - einfo "Skipping tests on Python 2 to unblock deps" +src_compile () { + python2.7 setup.py build || die } -python_install() { - distutils-r1_python_install \ - install_pkgconfig --pkgconfigdir="${EPREFIX}/usr/$(get_libdir)/pkgconfig" -} +src_install () { + default -python_install_all() { if use examples; then dodoc -r examples fi - distutils-r1_python_install_all + python2.7 setup.py install --skip-build --root="$D" || die } diff --git a/dev-python/pygobject/Manifest b/dev-python/pygobject/Manifest index e52e9d6..2a547a4 100644 --- a/dev-python/pygobject/Manifest +++ b/dev-python/pygobject/Manifest @@ -8,4 +8,4 @@ AUX pygobject-2.28.6-python-byte-compile.patch 539 BLAKE2B b2d64ab0ad8943948c7bf AUX pygobject-2.28.6-set_qdata.patch 847 BLAKE2B 696aa6c48ee900db738f8a92265a625a3ab7b59afece84157bf0b9abd0aca5ae68b7ac8cc627a47a5b1a688029d592abcc38e403543a4144e055bcdac68285e4 SHA512 19025af51a8387061276ec9d6c8eb0ecadb5124bba2c4ab3755ab653df467896d19c366d80ce9313fd46e43b493b7c536f780014cf18a6ac47f4b1d2ad4bedb4 AUX pygobject-2.28.6-tests-no-introspection.patch 1257 BLAKE2B 7ff0587b4b40a1519927f8837b5487847ad0d0aa25f57dbaa4b10eaed2eff79f52d6581ca29f1688ebdbe71db231aba56de06c3aa8b246fdd1799320d9a15cc3 SHA512 7d57cb9bbd0b16f4fb0ed9d5eca310c47daf86b89daefa41fb0cf5dd470a6f6a31d0dad31dd261332c039d39bd778f9de8de7260c5856f1b718f72b9aabc01b4 DIST pygobject-2.28.6.tar.xz 747248 BLAKE2B 5f92794034b2d0559a623db4a7d273a7dc3f099cae87ede91b17e81acac085a9298c6b81b45b4b8540b6a75ced97e474a993437dbfcfc2133d3321d6a979b541 SHA512 37544ea2377258758169b25a2969d5ee1c9ffb9b6e63e05bc7a0471a49ac9169c51ec587d4489172c7d256f53df878a81c1992a08059aa7e43dbbb69f799545c -EBUILD pygobject-2.28.6-r57.ebuild 3815 BLAKE2B 13bdd3340133165e52ccb240be031a7c0734ded439b0a0fa8f37dfd70c9769d9db04f240fbd2dc5921ab30a504f50862f749164e13de037bd721ebb45da3f7cd SHA512 98644b9e87663905975455384609196c1e9026a54644a748487683d9dfbf202f29ac29ea289ba38d987796e38e4496e011b6b7cdaa702fc37e9210d176bbe0a4 +EBUILD pygobject-2.28.6-r59.ebuild 2859 BLAKE2B 6de822503f961d5ee6cb8b8139b13308c13e179f51b6d811d44f65affac57d985ae3805520ec7e51abb5d375377fc40b1700f8d630fc76dd66713e20a535f0cb SHA512 9ed57cbd24cb251c0369779df82899398126f82c5c47c2ca15823e87d564d6f994eeecbb2206fad6404058e70052780732261e41c2ea36ea7f4e55626308e461 diff --git a/dev-python/pygobject/pygobject-2.28.6-r57.ebuild b/dev-python/pygobject/pygobject-2.28.6-r59.ebuild similarity index 55% rename from dev-python/pygobject/pygobject-2.28.6-r57.ebuild rename to dev-python/pygobject/pygobject-2.28.6-r59.ebuild index 78e9cfe..4b2aeef 100644 --- a/dev-python/pygobject/pygobject-2.28.6-r57.ebuild +++ b/dev-python/pygobject/pygobject-2.28.6-r59.ebuild @@ -1,43 +1,40 @@ -# Copyright © 2020-2021 Nick Bowler -# -# License GPLv2+: GNU General Public License version 2 or any later version. -# This is free software: you are free to change and redistribute it. -# There is NO WARRANTY, to the extent permitted by law. -# -# This is a modified version of the original ebuild from Gentoo GNU/Linux, -# covered by the following copyright and permission notice: +# This ebuild is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: # # Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Resurrect python2 version installable alongside newer version (2020-11) +# * Avoid python eclasses as there is no more python2 support (2022-12) +# * Drop unused eutils inherit (2023-09) EAPI=7 GNOME2_LA_PUNT=yes GNOME2_EAUTORECONF=yes -_PYTHON_ALLOW_PY27=1 -PYTHON_COMPAT=( python2_7 ) +inherit autotools virtualx gnome2 -inherit autotools eutils gnome2 python-r1 virtualx - -DESCRIPTION="GLib's GObject library bindings for Python" +DESCRIPTION="GLib's GObject library bindings for Python 2" HOMEPAGE="http://www.pygtk.org/" LICENSE="LGPL-2.1+" SLOT="2" KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 s390 sparc x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris" IUSE="examples libffi test" -RESTRICT="!test? ( test )" -REQUIRED_USE=$PYTHON_REQUIRED_USE + +# Tests seem to require network access which can't work. +RESTRICT="test" BDEPEND="virtual/pkgconfig dev-util/gtk-doc-am" RDEPEND=">=dev-libs/glib-2.24.0:2 - dev-lang/python-exec:2 libffi? ( dev-libs/libffi:= ) !=dev-libs/glib-2.8:2 >=x11-libs/pango-1.16 >=dev-libs/atk-1.12 >=x11-libs/gtk+-2.24:2 - >=dev-python/pycairo-1.0.2:2[$PYTHON_USEDEP] - >=dev-python/pygobject-2.26.8-r53:2[$PYTHON_USEDEP] + >=dev-python/pycairo-1.0.2:2[python_targets_python2_7(+)] + >=dev-python/pygobject-2.26.8-r53:2[python_targets_python2_7(+)] >=gnome-base/libglade-2.5:2.0" -DEPEND=$RDEPEND -BDEPEND="virtual/pkgconfig +RDEPEND="$DEPEND + dev-lang/python:2.7" +BDEPEND="dev-lang/python:2.7 + virtual/pkgconfig doc? ( dev-libs/libxslt >=app-text/docbook-xsl-stylesheets-1.70.1 )" @@ -70,27 +72,19 @@ src_prepare() { -i configure.ac || die #466968 AT_M4DIR="m4" eautoreconf - - prepare_pygtk() { - mkdir -p "${BUILD_DIR}" || die - } - python_foreach_impl prepare_pygtk } src_configure() { use hppa && append-flags -ffunction-sections - configure_pygtk() { - ECONF_SOURCE="${S}" gnome2_src_configure \ - $(use_enable doc docs) \ - --disable-numpy \ - --with-glade \ - --enable-thread - } - python_foreach_impl run_in_build_dir configure_pygtk -} - -src_compile() { - python_foreach_impl run_in_build_dir gnome2_src_compile + myconf=( + $(use_enable doc docs) + --disable-numpy + --with-glade + --enable-thread + PYTHON=python2.7 + ) + + gnome2_src_configure "${myconf[@]}" } src_test() { @@ -98,11 +92,7 @@ src_test() { gnome2_environment_reset unset DBUS_SESSION_BUS_ADDRESS - testing() { - cd tests - virtx emake check-local - } - python_foreach_impl run_in_build_dir testing + cd tests && virtx emake check-local } src_install() { @@ -113,6 +103,6 @@ src_install() { dodoc -r examples fi - python_foreach_impl run_in_build_dir gnome2_src_install + gnome2_src_install find "${D}" -name '*.la' -type f -delete || die } diff --git a/dev-python/python-musicbrainz-ngs/Manifest b/dev-python/python-musicbrainz-ngs/Manifest deleted file mode 100644 index d0c7e25..0000000 --- a/dev-python/python-musicbrainz-ngs/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -AUX python-musicbrainz-ngs-0.6-fix-test-submit.patch 993 BLAKE2B 3347bd841f0f1b23477f387275ad8e6d40fcffc434150e93c0d57c9291c239639018c28e519032ee2cb251371343d0f3ce6c070b960d4ca8bd1dc5b5b480511f SHA512 ed5b6b674edddcc1d6047bfd97ffdbc1bd4ae3b83e61100b0389cabad84014dce894857faf5555824f245eacaea7541ee18424f630881698b8f2bebceabf8b78 -DIST python-musicbrainzngs-0.6.tar.gz 110948 BLAKE2B 9528d966565f7c927a98d311dcbb6db73a84614efa3eb071fe944b29b655526f9dd6e8a4a217428883d30b93c18e45c3d752d321d3c0689e5af00423b5fd7faa SHA512 901729f736b207f2f086e3d44a3515d405f6621706ad9c7ca07dd304349e048c5790bb16b054393651808bac4905ceb9493dd66d9fb17a1612692427c0bd3bd4 -EBUILD python-musicbrainz-ngs-0.6.ebuild 1556 BLAKE2B 6061a0f7e82a645955c422199a19eb298f680b502d305bf628f1a1885bafb60f91264bad96d69cf1099c56ea253f87775c88cee7fc5e6673eb958de17426ed1d SHA512 aaea28dedc01871f2c7ba6efcd00fe2f58159d1738602bf10f8fe61618e1f6432f2fd80dc290ca29959dd87c2c86e3da4d30863997e0a096792955f058abaa54 diff --git a/dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.6-fix-test-submit.patch b/dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.6-fix-test-submit.patch deleted file mode 100644 index 4881936..0000000 --- a/dev-python/python-musicbrainz-ngs/files/python-musicbrainz-ngs-0.6-fix-test-submit.patch +++ /dev/null @@ -1,32 +0,0 @@ -diff --git a/test/test_submit.py b/test/test_submit.py -index bce5362..2d13811 100644 ---- a/test/test_submit.py -+++ b/test/test_submit.py -@@ -1,13 +1,23 @@ - import unittest --import os --import sys --sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))) -- - import musicbrainzngs - from musicbrainzngs import musicbrainz - from test import _common - -+ - class SubmitTest(unittest.TestCase): -+ -+ def setUp(self): -+ self.orig_opener = musicbrainzngs.compat.build_opener -+ musicbrainz.set_useragent("test_client", "1.0") -+ musicbrainz.auth("user", "password") -+ -+ def tearDown(self): -+ musicbrainzngs.compat.build_opener = self.orig_opener -+ musicbrainz._useragent = "" -+ musicbrainz._client = "" -+ musicbrainz.user = "" -+ musicbrainz.password = "" -+ - def test_submit_tags(self): - self.opener = _common.FakeOpener("") - musicbrainzngs.compat.build_opener = lambda *args: self.opener diff --git a/dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.6.ebuild b/dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.6.ebuild deleted file mode 100644 index f9a26cd..0000000 --- a/dev-python/python-musicbrainz-ngs/python-musicbrainz-ngs-0.6.ebuild +++ /dev/null @@ -1,61 +0,0 @@ -# Copyright © 2020 Nick Bowler -# License GPLv2+: GNU General Public License version 2 or any later version. -# This is free software: you are free to change and redistribute it. -# There is NO WARRANTY, to the extent permitted by law. -# -# This is a modified version of the original ebuild from Gentoo GNU/Linux, -# covered by the following copyright and permission notice: -# -# Copyright 2019-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python2_7 python3_{6,7} ) - -inherit distutils-r1 - -MY_PN=${PN%-ngs}ngs -MY_P=$MY_PN-$PV - -DESCRIPTION="Python bindings for the MusicBrainz NGS and the Cover Art Archive webservices" -HOMEPAGE="https://github.com/alastair/python-musicbrainzngs" -SRC_URI="https://github.com/alastair/$MY_PN/archive/v$PV.tar.gz -> $MY_P.tar.gz" - -LICENSE="BSD-2 ISC" -SLOT="0" -KEYWORDS="amd64 x86" -IUSE="doc examples test" -RESTRICT="!test? ( test )" - -S=$WORKDIR/$MY_P - -PATCHES="$FILESDIR/$PN-0.6-fix-test-submit.patch" - -DEPEND="dev-python/setuptools[$PYTHON_USEDEP] - doc? ( dev-python/sphinx[$PYTHON_USEDEP] )" - -python_prepare_all() { - # Prevent un-needed d'loading - sed -e "s/^ *'sphinx.ext.intersphinx'//" -i docs/conf.py || die - distutils-r1_python_prepare_all -} - -python_compile_all() { - use doc && emake -C docs html -} - -python_test() { - esetup.py test --verbosity=2 -} - -python_install_all() { - use doc && local HTML_DOCS=( docs/_build/html/. ) - - if use examples; then - dodoc -r examples - docompress -x "/usr/share/doc/$PF/examples" - fi - - distutils-r1_python_install_all -} diff --git a/eclass/mozconfig-v6.52.eclass b/eclass/mozconfig-v6.52.eclass new file mode 100644 index 0000000..fe2cb69 --- /dev/null +++ b/eclass/mozconfig-v6.52.eclass @@ -0,0 +1,396 @@ +# This eclass is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Update libffi dependency (2022-12) +# * Update to EAPI 8 (2023-04) +# +# @ECLASS: mozconfig-v6.52.eclass +# @MAINTAINER: +# mozilla team +# @SUPPORTED_EAPIS: 7 8 +# @BLURB: the new mozilla common configuration eclass for FF33 and newer, v6 +# @DESCRIPTION: +# This eclass is used in mozilla ebuilds (firefox, thunderbird, seamonkey) +# to provide a single common place for the common mozilla engine compoments. +# +# The eclass provides all common dependencies as well as common use flags. +# +# Some use flags which may be optional in particular mozilla packages can be +# supported through setting eclass variables. +# +# This eclass inherits mozconfig helper functions as defined in mozcoreconf-v3, +# and so ebuilds inheriting this eclass do not need to inherit that. + +case ${EAPI} in + 0|1|2|3|4|5|6) + die "EAPI=${EAPI} not supported" + ;; +esac + +inherit flag-o-matic toolchain-funcs mozcoreconf-v5 + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_WIFI +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild needs to provide +# optional necko-wifi support via IUSE="wifi". Currently this would include +# ebuilds for firefox, and potentially seamonkey. +# +# Leave the variable UNSET if necko-wifi support should not be available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_JIT +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild needs to provide +# deterministic jit support via IUSE="jit". The upstream default will be used +# otherwise, which is generally to enable jit unless support for the platform +# is missing. +# +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK3 +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild can provide +# optional gtk3 support via IUSE="force-gtk3". Currently this would include +# thunderbird and seamonkey in the future, once support is ready for testing. +# +# Leave the variable UNSET if gtk3 support should not be optionally available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. +# If gtk+:3 is to be the standard toolkit, do not use this and instead use +# MOZCONFIG_OPTIONAL_GTK2ONLY. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_GTK2ONLY +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild can provide +# optional gtk2-only support via IUSE="gtk2". +# +# Note that this option conflicts directly with MOZCONFIG_OPTIONAL_GTK3, both +# variables cannot be set at the same time and this variable will be ignored if +# MOZCONFIG_OPTIONAL_GTK3 is set. +# +# Leave the variable UNSET if gtk2-only support should not be available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# @ECLASS-VARIABLE: MOZCONFIG_OPTIONAL_QT5 +# @DEFAULT_UNSET +# @DESCRIPTION: +# Set this variable before the inherit line, when an ebuild can provide +# optional qt5 support via IUSE="qt5". Currently this would include +# ebuilds for firefox, but thunderbird and seamonkey could follow in the future. +# +# Leave the variable UNSET if qt5 support should not be available. +# Set the variable to "enabled" if the use flag should be enabled by default. +# Set the variable to any value if the use flag should exist but not be default-enabled. + +# use-flags common among all mozilla ebuilds +IUSE="${IUSE} dbus debug +jemalloc neon pulseaudio selinux startup-notification system-cairo + system-harfbuzz system-icu system-jpeg system-libevent system-sqlite system-libvpx" + +# some notes on deps: +# gtk:2 minimum is technically 2.10 but gio support (enabled by default) needs 2.14 +# media-libs/mesa needs to be 10.2 or above due to a bug with flash+vdpau + +RDEPEND=">=app-text/hunspell-1.2:= + dev-libs/atk + dev-libs/expat + >=x11-libs/cairo-1.10[X] + >=x11-libs/gtk+-2.18:2 + x11-libs/gdk-pixbuf + >=x11-libs/pango-1.22.0 + >=media-libs/libpng-1.6.25:0=[apng] + >=media-libs/mesa-10.2:* + media-libs/fontconfig + >=media-libs/freetype-2.4.10 + kernel_linux? ( !pulseaudio? ( media-libs/alsa-lib ) ) + pulseaudio? ( || ( media-sound/pulseaudio + >=media-sound/apulse-0.1.9 ) ) + virtual/freedesktop-icon-theme + dbus? ( >=sys-apps/dbus-0.60 + >=dev-libs/dbus-glib-0.72 ) + startup-notification? ( >=x11-libs/startup-notification-0.8 ) + >=dev-libs/glib-2.26:2 + >=sys-libs/zlib-1.2.3 + >=dev-libs/libffi-3.0.10:= + media-video/ffmpeg + x11-libs/libX11 + x11-libs/libXcomposite + x11-libs/libXdamage + x11-libs/libXext + x11-libs/libXfixes + x11-libs/libXrender + x11-libs/libXt + system-cairo? ( >=x11-libs/cairo-1.12[X,xcb(+)] >=x11-libs/pixman-0.19.2 ) + system-icu? ( >=dev-libs/icu-58.1:= ) + system-jpeg? ( >=media-libs/libjpeg-turbo-1.2.1 ) + system-libevent? ( >=dev-libs/libevent-2.0:0=[threads] ) + system-sqlite? ( >=dev-db/sqlite-3.17.0:3[secure-delete,debug=] ) + system-libvpx? ( >=media-libs/libvpx-1.5.0:0=[postproc] ) + system-harfbuzz? ( >=media-libs/harfbuzz-1.3.3:0= >=media-gfx/graphite2-1.3.8 ) +" + +if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then + MOZCONFIG_OPTIONAL_GTK2ONLY= + if [[ ${MOZCONFIG_OPTIONAL_GTK3} = "enabled" ]]; then + IUSE+=" +force-gtk3" + else + IUSE+=" force-gtk3" + fi + RDEPEND+=" force-gtk3? ( >=x11-libs/gtk+-3.4.0:3 )" +elif [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then + if [[ ${MOZCONFIG_OPTIONAL_GTK2ONLY} = "enabled" ]]; then + IUSE+=" +gtk2" + else + IUSE+=" gtk2" + fi + RDEPEND+=" !gtk2? ( >=x11-libs/gtk+-3.4.0:3 )" +fi +if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]]; then + if [[ ${MOZCONFIG_OPTIONAL_WIFI} = "enabled" ]]; then + IUSE+=" +wifi" + else + IUSE+=" wifi" + fi + RDEPEND+=" + wifi? ( + kernel_linux? ( >=sys-apps/dbus-0.60 + >=dev-libs/dbus-glib-0.72 + net-misc/networkmanager ) + )" +fi + +BEPEND="app-arch/zip + app-arch/unzip + sys-apps/findutils" + +DEPEND="$RDEPEND + pulseaudio? ( media-libs/libpulse )" + +RDEPEND+=" + pulseaudio? ( || ( media-libs/libpulse + >=media-sound/apulse-0.1.9 ) ) + selinux? ( sec-policy/selinux-mozilla )" + +# @FUNCTION: mozconfig_config +# @DESCRIPTION: +# Set common configure options for mozilla packages. +# Call this within src_configure() phase, after mozconfig_init +# +# Example: +# +# inherit mozconfig-v6.46 +# +# src_configure() { +# mozconfig_init +# mozconfig_config +# # ... misc ebuild-unique settings via calls to +# # ... mozconfig_{annotate,use_with,use_enable} +# mozconfig_final +# } + +mozconfig_config() { + # Migrated from mozcoreconf-2 + mozconfig_annotate 'system_libs' \ + --with-system-zlib \ + --with-system-bz2 + + if has bindist ${IUSE}; then + mozconfig_use_enable !bindist official-branding + if [[ ${PN} == firefox ]] && use bindist ; then + mozconfig_annotate '' --with-branding=browser/branding/aurora + fi + fi + + # Enable position independent executables + mozconfig_annotate 'enabled by Gentoo' --enable-pie + mozconfig_use_enable debug + mozconfig_use_enable debug tests + + if ! use debug ; then + mozconfig_annotate 'disabled by Gentoo' --disable-debug-symbols + else + mozconfig_annotate 'enabled by Gentoo' --enable-debug-symbols + fi + + mozconfig_use_enable startup-notification + + if [[ -n ${MOZCONFIG_OPTIONAL_WIFI} ]] ; then + # wifi pulls in dbus so manage both here + mozconfig_use_enable wifi necko-wifi + if use kernel_linux && use wifi && ! use dbus; then + echo "Enabling dbus support due to wifi request" + mozconfig_annotate 'dbus required by necko-wifi on linux' --enable-dbus + else + mozconfig_use_enable dbus + fi + else + mozconfig_use_enable dbus + mozconfig_annotate 'disabled' --disable-necko-wifi + fi + + if [[ -n ${MOZCONFIG_OPTIONAL_JIT} ]]; then + mozconfig_use_enable jit ion + fi + + # These are enabled by default in all mozilla applications + mozconfig_annotate '' --with-system-nspr --with-nspr-prefix="${SYSROOT}${EPREFIX}"/usr + mozconfig_annotate '' --with-system-nss --with-nss-prefix="${SYSROOT}${EPREFIX}"/usr + mozconfig_annotate '' --x-includes="${SYSROOT}${EPREFIX}"/usr/include --x-libraries="${SYSROOT}${EPREFIX}"/usr/$(get_libdir) + if use system-libevent; then + mozconfig_annotate '' --with-system-libevent="${SYSROOT}${EPREFIX}"/usr + fi + mozconfig_annotate '' --prefix="${EPREFIX}"/usr + mozconfig_annotate '' --libdir="${EPREFIX}"/usr/$(get_libdir) + mozconfig_annotate 'Gentoo default' --enable-system-hunspell + mozconfig_annotate '' --disable-gnomeui + mozconfig_annotate '' --enable-gio + mozconfig_annotate '' --disable-crashreporter + mozconfig_annotate 'Gentoo default' --with-system-png + mozconfig_annotate '' --enable-system-ffi + mozconfig_annotate 'Gentoo default to honor system linker' --disable-gold + mozconfig_annotate '' --disable-gconf + mozconfig_annotate '' --with-intl-api + + # skia has no support for big-endian platforms + if [[ $(tc-endian) == "big" ]]; then + mozconfig_annotate 'big endian target' --disable-skia + else + mozconfig_annotate '' --enable-skia + fi + + # default toolkit is cairo-gtk2, optional use flags can change this + local toolkit="cairo-gtk2" + local toolkit_comment="" + if [[ -n ${MOZCONFIG_OPTIONAL_GTK3} ]]; then + if use force-gtk3; then + toolkit="cairo-gtk3" + toolkit_comment="force-gtk3 use flag" + fi + fi + if [[ -n ${MOZCONFIG_OPTIONAL_GTK2ONLY} ]]; then + if ! use gtk2 ; then + toolkit="cairo-gtk3" + else + toolkit_comment="gtk2 use flag" + fi + fi + if [[ -n ${MOZCONFIG_OPTIONAL_QT5} ]]; then + if use qt5; then + toolkit="cairo-qt" + toolkit_comment="qt5 use flag" + # need to specify these vars because the qt5 versions are not found otherwise, + # and setting --with-qtdir overrides the pkg-config include dirs + local i + for i in qmake moc rcc; do + echo "export HOST_${i^^}=\"$(qt5_get_bindir)/${i}\"" \ + >> "${S}"/.mozconfig || die + done + echo 'unset QTDIR' >> "${S}"/.mozconfig || die + mozconfig_annotate '+qt5' --disable-gio + fi + fi + mozconfig_annotate "${toolkit_comment}" --enable-default-toolkit=${toolkit} + + # Use jemalloc unless libc is not glibc >= 2.4 + # at this time the minimum glibc in the tree is 2.9 so we should be safe. + if use elibc_glibc && use jemalloc; then + # We must force-enable jemalloc 4 via .mozconfig + echo "export MOZ_JEMALLOC4=1" >> "${S}"/.mozconfig || die + mozconfig_annotate '' --enable-replace-malloc + fi + + # Instead of the standard --build= and --host=, mozilla uses --host instead + # of --build, and --target intstead of --host. + # Note, mozilla also has --build but it does not do what you think it does. + # Set both --target and --host as mozilla uses python to guess values otherwise + mozconfig_annotate '' --target="${CHOST}" + mozconfig_annotate '' --host="${CBUILD:-${CHOST}}" + + mozconfig_use_enable pulseaudio + # force the deprecated alsa sound code if pulseaudio is disabled + if use kernel_linux && ! use pulseaudio ; then + mozconfig_annotate '-pulseaudio' --enable-alsa + fi + + mozconfig_use_enable system-cairo + mozconfig_use_enable system-sqlite + mozconfig_use_with system-jpeg + mozconfig_use_with system-icu + mozconfig_use_with system-libvpx + mozconfig_use_with system-harfbuzz + mozconfig_use_with system-harfbuzz system-graphite2 + + # Modifications to better support ARM, bug 553364 + if use neon ; then + mozconfig_annotate '' --with-fpu=neon + mozconfig_annotate '' --with-thumb=yes + mozconfig_annotate '' --with-thumb-interwork=no + fi + if [[ ${CHOST} == armv* ]] ; then + mozconfig_annotate '' --with-float-abi=hard + if ! use system-libvpx ; then + sed -i -e "s|softfp|hard|" \ + "${S}"/media/libvpx/moz.build + fi + fi +} + +# @FUNCTION: mozconfig_install_prefs +# @DESCRIPTION: +# Set preferences into the prefs.js file specified as a parameter to +# the function. This sets both some common prefs to all mozilla +# packages, and any prefs that may relate to the use flags administered +# by mozconfig_config(). +# +# Call this within src_install() phase, after copying the template +# prefs file (if any) from ${FILESDIR} +# +# Example: +# +# inherit mozconfig-v6.46 +# +# src_install() { +# cp "${FILESDIR}"/gentoo-default-prefs.js \ +# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ +# || die +# +# mozconfig_install_prefs \ +# "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" +# +# ... +# } + +mozconfig_install_prefs() { + local prefs_file="${1}" + + einfo "Adding prefs from mozconfig to ${prefs_file}" + + # set dictionary path, to use system hunspell + echo "pref(\"spellchecker.dictionary_path\", \"${EPREFIX}/usr/share/myspell\");" \ + >>"${prefs_file}" || die + + # force the graphite pref if system-harfbuzz is enabled, since the pref cant disable it + if use system-harfbuzz ; then + echo "sticky_pref(\"gfx.font_rendering.graphite.enabled\",true);" \ + >>"${prefs_file}" || die + fi + + # force cairo as the canvas renderer on platforms without skia support + if [[ $(tc-endian) == "big" ]] ; then + echo "sticky_pref(\"gfx.canvas.azure.backends\",\"cairo\");" \ + >>"${prefs_file}" || die + echo "sticky_pref(\"gfx.content.azure.backends\",\"cairo\");" \ + >>"${prefs_file}" || die + fi +} diff --git a/eclass/mozcoreconf-v5.eclass b/eclass/mozcoreconf-v5.eclass new file mode 100644 index 0000000..feb7b1a --- /dev/null +++ b/eclass/mozcoreconf-v5.eclass @@ -0,0 +1,277 @@ +# This eclass is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Avoid python eclasses which no longer support python2 (2022-12) +# * Remove versionator inherit which seems unused (2023-04) +# * Update to EAPI 8 (2023-04) +# +# @DEAD +# @ECLASS: mozcoreconf-v5.eclass +# @MAINTAINER: +# Mozilla team +# @BLURB: core options and configuration functions for mozilla +# @DESCRIPTION: +# +# inherit mozconfig-v6.* or above for mozilla configuration support + +# @ECLASS_VARIABLE: MOZILLA_FIVE_HOME +# @DESCRIPTION: +# This is an eclass-generated variable that defines the rpath that the mozilla +# product will be installed in. Read-only + +if [[ ! ${_MOZCORECONF} ]]; then + +inherit multilib toolchain-funcs flag-o-matic + +IUSE="${IUSE} custom-cflags custom-optimization" + +BDEPEND="dev-lang/python:2.7[ncurses,sqlite,ssl,threads(+)] + virtual/pkgconfig" + +# @FUNCTION: mozconfig_annotate +# @DESCRIPTION: +# add an annotated line to .mozconfig +# +# Example: +# mozconfig_annotate "building on ultrasparc" --enable-js-ultrasparc +# => ac_add_options --enable-js-ultrasparc # building on ultrasparc +mozconfig_annotate() { + declare reason=$1 x ; shift + [[ $# -gt 0 ]] || die "mozconfig_annotate missing flags for ${reason}\!" + for x in ${*}; do + echo "ac_add_options ${x} # ${reason}" >>.mozconfig + done +} + +# @FUNCTION: mozconfig_use_enable +# @DESCRIPTION: +# add a line to .mozconfig based on a USE-flag +# +# Example: +# mozconfig_use_enable truetype freetype2 +# => ac_add_options --enable-freetype2 # +truetype +mozconfig_use_enable() { + declare flag=$(use_enable "$@") + mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}" +} + +# @FUNCTION: mozconfig_use_with +# @DESCRIPTION: +# add a line to .mozconfig based on a USE-flag +# +# Example: +# mozconfig_use_with kerberos gss-api /usr/$(get_libdir) +# => ac_add_options --with-gss-api=/usr/lib # +kerberos +mozconfig_use_with() { + declare flag=$(use_with "$@") + mozconfig_annotate "$(use $1 && echo +$1 || echo -$1)" "${flag}" +} + +# @FUNCTION: mozconfig_use_extension +# @DESCRIPTION: +# enable or disable an extension based on a USE-flag +# +# Example: +# mozconfig_use_extension gnome gnomevfs +# => ac_add_options --enable-extensions=gnomevfs +mozconfig_use_extension() { + declare minus=$(use $1 || echo -) + mozconfig_annotate "${minus:-+}$1" --enable-extensions=${minus}${2} +} + +moz_pkgsetup() { + # Ensure we use C locale when building + export LANG="C" + export LC_ALL="C" + export LC_MESSAGES="C" + export LC_CTYPE="C" + + # Ensure we use correct toolchain + export HOST_CC="$(tc-getBUILD_CC)" + export HOST_CXX="$(tc-getBUILD_CXX)" + tc-export CC CXX LD PKG_CONFIG + + # Ensure that we have a sane build enviroment + export MOZILLA_CLIENT=1 + export BUILD_OPT=1 + export NO_STATIC_LIB=1 + export USE_PTHREADS=1 + export ALDFLAGS=${LDFLAGS} + # ensure MOZCONFIG is not defined + unset MOZCONFIG + + # set MOZILLA_FIVE_HOME + export MOZILLA_FIVE_HOME="/usr/$(get_libdir)/${PN}" + + # nested configure scripts in mozilla products generate unrecognized options + # false positives when toplevel configure passes downwards. + export QA_CONFIGURE_OPTIONS=".*" + + export PYTHON=python2.7 +} + +# @FUNCTION: mozconfig_init +# @DESCRIPTION: +# Initialize mozilla configuration and populate with core settings. +# This should be called in src_configure before any other mozconfig_* functions. +mozconfig_init() { + declare enable_optimize pango_version myext x + declare XUL=$([[ ${PN} == xulrunner ]] && echo true || echo false) + declare FF=$([[ ${PN} == firefox ]] && echo true || echo false) + declare SM=$([[ ${PN} == seamonkey ]] && echo true || echo false) + declare TB=$([[ ${PN} == thunderbird ]] && echo true || echo false) + declare WF=$([[ ${PN} == waterfox* ]] && echo true || echo false) + + #################################### + # + # Setup the initial .mozconfig + # See http://www.mozilla.org/build/configure-build.html + # + #################################### + + case ${PN} in + *xulrunner) + cp xulrunner/config/mozconfig .mozconfig \ + || die "cp xulrunner/config/mozconfig failed" ;; + *firefox|waterfox*) + cp browser/config/mozconfig .mozconfig \ + || die "cp browser/config/mozconfig failed" ;; + seamonkey) + # Must create the initial mozconfig to enable application + : >.mozconfig || die "initial mozconfig creation failed" + mozconfig_annotate "" --enable-application=suite ;; + *thunderbird) + # Must create the initial mozconfig to enable application + : >.mozconfig || die "initial mozconfig creation failed" + mozconfig_annotate "" --enable-application=mail ;; + esac + + #################################### + # + # CFLAGS setup and ARCH support + # + #################################### + + # Set optimization level + mozconfig_annotate "Workaround known breakage" --enable-optimize=-O2 + + if [[ ${ARCH} == hppa ]]; then + mozconfig_annotate "more than -O0 causes a segfault on hppa" --enable-optimize=-O0 + elif [[ ${ARCH} == x86 ]]; then + mozconfig_annotate "less then -O2 causes a segfault on x86" --enable-optimize=-O2 + elif use custom-optimization || [[ ${ARCH} =~ (alpha|ia64) ]]; then + # Set optimization level based on CFLAGS + if is-flag -O0; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O0 + elif [[ ${ARCH} == ppc ]] && has_version '>=sys-libs/glibc-2.8'; then + mozconfig_annotate "more than -O1 segfaults on ppc with glibc-2.8" --enable-optimize=-O1 + elif is-flag -O4; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O4 + elif is-flag -O3; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O3 + elif is-flag -O1; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-O1 + elif is-flag -Os; then + mozconfig_annotate "from CFLAGS" --enable-optimize=-Os + else + mozconfig_annotate "Gentoo's default optimization" --enable-optimize=-O2 + fi + else + # Enable Mozilla's default + mozconfig_annotate "mozilla default" --enable-optimize + fi + + # Strip optimization so it does not end up in compile string + filter-flags '-O*' + + # Strip over-aggressive CFLAGS + use custom-cflags || strip-flags + + # Additional ARCH support + case "${ARCH}" in + arm) + # Reduce the memory requirements for linking + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + ;; + alpha) + # Historically we have needed to add -fPIC manually for 64-bit. + # Additionally, alpha should *always* build with -mieee for correct math + # operation + append-flags -fPIC -mieee + ;; + ia64) + # Historically we have needed to add this manually for 64-bit + append-flags -fPIC + ;; + ppc64) + append-flags -fPIC -mminimal-toc + # Reduce the memory requirements for linking + append-ldflags -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + ;; + esac + + # We need to append flags for >= gcc-6 support + append-cxxflags -fno-delete-null-pointer-checks -fno-lifetime-dse -fno-schedule-insns2 + + # Use the MOZILLA_FIVE_HOME for the rpath + append-ldflags -Wl,-rpath="${MOZILLA_FIVE_HOME}",--enable-new-dtags + # Set MOZILLA_FIVE_HOME in mozconfig + mozconfig_annotate '' --with-default-mozilla-five-home=${MOZILLA_FIVE_HOME} + + #################################### + # + # mozconfig setup + # + #################################### + + mozconfig_annotate disable_update_strip \ + --disable-updater \ + --disable-strip \ + --disable-install-strip + + # jemalloc won't build with older glibc + ! has_version ">=sys-libs/glibc-2.4" && mozconfig_annotate "we have old glibc" --disable-jemalloc +} + +# @FUNCTION: mozconfig_final +# @DESCRIPTION: +# Apply EXTRA_ECONF values to .mozconfig +# Display a table describing all configuration options paired +# with reasons, then clean up extensions list. +# This should be called in src_configure at the end of all other mozconfig_* functions. +mozconfig_final() { + declare ac opt hash reason + + # Apply EXTRA_ECONF entries to .mozconfig + if [[ -n ${EXTRA_ECONF} ]]; then + IFS=\! read -a ac <<<${EXTRA_ECONF// --/\!} + for opt in "${ac[@]}"; do + mozconfig_annotate "EXTRA_ECONF" --${opt#--} + done + fi + + echo + echo "==========================================================" + echo "Building ${PF} with the following configuration" + grep ^ac_add_options .mozconfig | while read ac opt hash reason; do + [[ -z ${hash} || ${hash} == \# ]] \ + || die "error reading mozconfig: ${ac} ${opt} ${hash} ${reason}" + printf " %-30s %s\n" "${opt}" "${reason:-mozilla.org default}" + done + echo "==========================================================" + echo + + # Resolve multiple --enable-extensions down to one + declare exts=$(sed -n 's/^ac_add_options --enable-extensions=\([^ ]*\).*/\1/p' \ + .mozconfig | xargs) + sed -i '/^ac_add_options --enable-extensions/d' .mozconfig + echo "ac_add_options --enable-extensions=${exts// /,}" >> .mozconfig +} + +_MOZCORECONF=1 +fi diff --git a/media-fonts/urw-fonts/Manifest b/media-fonts/urw-fonts/Manifest new file mode 100644 index 0000000..0420237 --- /dev/null +++ b/media-fonts/urw-fonts/Manifest @@ -0,0 +1,2 @@ +DIST urw-fonts-2.4-9.fc13.src.rpm 3198315 BLAKE2B 9f4c026af2ee6b472454be43b4e1d11616770cb63841fe022762f18a7c71abc37e442102a3d54b880a6a34117442cf45b2d65133ef9cca564e55a26ac1179824 SHA512 cd8c9eb9e56480e70129c14cc744b944fe51fc616b8b5da46b7251520c84486c6c4354afdd7517569ba7874255c00b755aace076dc2cf1a1d8bdd30e41322d4b +EBUILD urw-fonts-2.4.9.ebuild 1888 BLAKE2B 82ee73a1701d792c325b45f93dfec63a05ee1c0d524fafa267917d4830a9c94757a18b54722b7b05437e7cd57ed3783723cf4805d49c610a6aac70ec946fe464 SHA512 da2d97c4d1642c41e011dc452058e5fd43d04a07cae6d4c76d3c46737840387245de67e504772c1da76a03c5599e1fb1a4b11717d49810c4e85d2ad8c7b19eee diff --git a/media-fonts/urw-fonts/urw-fonts-2.4.9.ebuild b/media-fonts/urw-fonts/urw-fonts-2.4.9.ebuild new file mode 100644 index 0000000..7ee816d --- /dev/null +++ b/media-fonts/urw-fonts/urw-fonts-2.4.9.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +# At some point URW++ released fonts under GPL license. After that they were took +# and improved by Valek Filippov and this work was somehow related with AFPL... +# At least it can be found on their svn server: +# http://svn.ghostscript.com/ghostscript/trunk/urw-fonts/ + +# Also, some time ago, sources where published on sf.net: +# https://sourceforge.net/projects/gs-fonts/files/ +# At this point this package was published on a nuber of other sites +# (gimp.org/cups.org) and media-fonts/gnu-gs-fonts-std was added to the tree. +# But nobody use that old releases any mover and everybody syncs with +# svn.ghostscript.com. The most recent tag there is: +# http://svn.ghostscript.com/ghostscript/tags/urw-fonts-1.0.7pre44/ + +# But note that version we have is different from upstream tag. This happened +# because we started to use redhat versions and followed their versioning. It's +# hard to say why they use such strange version since they also sync with +# svn.ghostscript.com. Redhat's ChangeLog states: +# Tue Jan 8 23:00:00 2008 Than Ngo 2.4-2 +# - update to 1.0.7pre44 + +inherit estack rpm font + +MY_PV=$(ver_rs 2 -) + +DESCRIPTION="free good quality fonts gpl'd by URW++" +HOMEPAGE="http://www.urwpp.de/" +SRC_URI="mirror://gentoo/${PN}-${MY_PV}.fc13.src.rpm" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +RDEPEND=" + !media-fonts/gnu-gs-fonts-std + !media-fonts/gnu-gs-fonts-other" + +S="${WORKDIR}" + +DOCS="ChangeLog README*" +FONT_S="${S}" +FONT_SUFFIX="afm pfb pfm" + +pkg_postinst() { + font_pkg_postinst + + elog "If you upgraded from ${PN}-2.1-r2 some fonts will look a bit" + elog "different. Take a look at bug #208990 if interested." +} diff --git a/media-plugins/gimp-resynthesizer/Manifest b/media-plugins/gimp-resynthesizer/Manifest deleted file mode 100644 index b458af3..0000000 --- a/media-plugins/gimp-resynthesizer/Manifest +++ /dev/null @@ -1,3 +0,0 @@ -DIST gimp-resynthesizer-2.0.3.tar.gz 11097693 BLAKE2B 51e064ed1a5d31dc3162a27b76c8b68d7652e3efdf2acad1844f4c76b47a6485b4e43788993c344a7154cddd8d2ac1ebda7c24f871ea8d6af332b1f15759f396 SHA512 de18fa41f5c3feaeff3365cc57b49f404f20439c6f84b212bc5cc76ee21f34566b8d093bebef1e6f27dbe3df6a23570dc091d23044a0967957ec0e97a16fa7c4 -EBUILD gimp-resynthesizer-2.0.3-r5.ebuild 1123 BLAKE2B 56bf4315af558cb323faa5880cd8cbaf7c9617e98b471fe3c4e969f2cbc13d90c8311e0e6a1472f94cf7445718d3445da3c99997476b32510b60789447804faf SHA512 121153223ea1ffc8119a88c5299ada94dec6c1ca51dd2b8704c1bc3ab3ba111aa73c713240395472cf4d3b65ab3bdb7669a2303f98e5e3d7423380eeb2724e43 -MISC metadata.xml 651 BLAKE2B fce88379f37caa26affce3b55ab152952ab8ca7578b5f2cc19daf93228ec11211c32e278b194c2f9d55ed330c4de94abfdfdf0b99f2612bb85e1bf5187f431f9 SHA512 ee4c49df50d6e834d27093eaf2c6639749b625402003fd3a2575ad514a73cb0e71a3a0d8dbed807660ad0011a4fa6fac7c5d7e0899bcd137cc43749197f93501 diff --git a/media-plugins/gimp-resynthesizer/gimp-resynthesizer-2.0.3-r5.ebuild b/media-plugins/gimp-resynthesizer/gimp-resynthesizer-2.0.3-r5.ebuild deleted file mode 100644 index 90fafb8..0000000 --- a/media-plugins/gimp-resynthesizer/gimp-resynthesizer-2.0.3-r5.ebuild +++ /dev/null @@ -1,44 +0,0 @@ -# Copyright © 2020-2021 Nick Bowler -# -# License GPLv2+: GNU General Public License version 2 or any later version. -# This is free software: you are free to change and redistribute it. -# There is NO WARRANTY, to the extent permitted by law. -# -# This is a modified version of the original ebuild from Gentoo GNU/Linux, -# covered by the following copyright and permission notice: -# -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -_PYTHON_ALLOW_PY27=1 -PYTHON_COMPAT=( python2_7 ) - -inherit autotools python-single-r1 - -MY_PN=${PN#gimp-} -MY_P=$MY_PN-$PV - -DESCRIPTION="Suite of GIMP plugins for texture synthesis" -HOMEPAGE="https://github.com/bootchk/resynthesizer" -SRC_URI="https://github.com/bootchk/$MY_PN/archive/v$PV.tar.gz -> $P.tar.gz" - -LICENSE="GPL-3" -SLOT="0" -KEYWORDS="~amd64 ~x86" - -BDEPEND="virtual/pkgconfig" -DEPEND="$PYTHON_DEPS - || ( - media-plugins/gimp-python[$PYTHON_SINGLE_USEDEP] - media-gfx/gimp[python(-),$PYTHON_SINGLE_USEDEP] )" -RDEPEND=$DEPEND -REQUIRED_USE=$PYTHON_REQUIRED_USE - -S=$WORKDIR/$MY_P - -src_prepare() { - default - eautoreconf -} diff --git a/media-plugins/gimp-resynthesizer/metadata.xml b/media-plugins/gimp-resynthesizer/metadata.xml deleted file mode 100644 index 9a606d4..0000000 --- a/media-plugins/gimp-resynthesizer/metadata.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - This is a suite of GIMP plugins known as the 'Resynthesizer'. - The most commonly used is 'Heal selection' but all use the plugin - whose full interface is found at 'Filters>Map>Resynthesize.' - - - - bootch@nc.rr.com - Lloyd Konneker - - bootchk/resynthesizer - https://github.com/bootchk/resynthesizer/issues - - diff --git a/media-sound/apulse/Manifest b/media-sound/apulse/Manifest new file mode 100644 index 0000000..290cc01 --- /dev/null +++ b/media-sound/apulse/Manifest @@ -0,0 +1,6 @@ +AUX apulse 488 BLAKE2B 20231c1041e1658e993ecc5f0dbd37f1d7e718aa5095b0bcb18b6c78639da5da29d5aa72fe77c774598d199e8284cceaab9fdb9aa07cf734957fb1c2d8d617c0 SHA512 2b1ebb3d574af2469f50a42e324b3367b5e08d3de00076620ce2133226d544ab2507e6d752ff3ed427319978ab5e1a0e73189368666a5c7f5ed61f1294417228 +AUX check-key-before-remove.patch 1888 BLAKE2B d8bee7f8acac213396d18d44740703746653a57d300c8d86967e83c24b73aca7d8ba5e91e38d7c3683d40c2a520cacb29210e2c1d739bf4b0403199beb9bda81 SHA512 e7edf75cdddc94a433ce387853cc59cfa40ef7fbdc955357141f42133bf9bde4e6528078d75c7d58001ab07dcaf209b0437a92445d770f6cd08f9b919e97caa4 +AUX man.patch 1054 BLAKE2B 37228832250f1c1e06edf79d00a4a4d7d5433f2d9b28ebb10eacb54bcfb7478d9ef64459e87f7f43a94be0b194eba024cde60175fc324ef6dad7a4ef9e2c1db3 SHA512 c2b05dd8c42f79994ae3be5df5ac495e95bfbc14355423faa75b23863418bad4bbc33524e2b86abc9e346678256c1ff454c160ebb5e09f48d466ef99cdfa407c +AUX sdk.patch 4357 BLAKE2B ad43209ebf78f1f8937bfde54c88034a9c0f426caf62da5aa70b6171e29546af97c374765bed081cdf13827add3d02e5cdb6b30adccaae03318c102dba4cff65 SHA512 f1f743d049c120f3c8d6d1387577b53e9637881d9d5e007c55b4e42feca21b170ee24146c5fb0cc050c3eb1c26659dc6363e673710ae08c76f2844306a1ca01d +DIST apulse-0.1.13.tar.gz 117369 BLAKE2B 8cf527daf21420a72e46968a3b07ab61029f404a2b6574ac1f08dd40528f3e6e4baf7e38f5914b0c89252e16eec5e8f3722be51e5a61b6a71c683e994740b4bf SHA512 366385ae2304f7ff697ba70951d0753a5b1630310922e3763fd0813a73e0b4088b715135295aa2fa9111b8edcf91d82849dc31346b292b2e9db598bcdd47b007 +EBUILD apulse-0.1.13-r2.ebuild 1880 BLAKE2B 689292db6b86fbb62ddc5a2b84afd15933b96632c3ac19cb46cbe9d473fa66486895abccd794fa4b915cd7afc0057ca54eb511cf4cfb8114ed255d941c19f0b8 SHA512 c95060daeb354d3019b9c77cb8e7f69b451b401a60b3068705f0081581e98933b4ce781a1625f6960ef1b7476a5d85844c94b0c86deba5a3270a63df486481f9 diff --git a/media-sound/apulse/apulse-0.1.13-r2.ebuild b/media-sound/apulse/apulse-0.1.13-r2.ebuild new file mode 100644 index 0000000..76f3591 --- /dev/null +++ b/media-sound/apulse/apulse-0.1.13-r2.ebuild @@ -0,0 +1,77 @@ +# This is a modified version of the original ebuild from Gentoo GNU/Linux, +# covered by the following copyright and permission notice: +# +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications include: +# +# * Removed pointless alsa-plugins blocker (2022-04) + +EAPI=7 + +CMAKE_ECLASS=cmake +inherit cmake-multilib multiprocessing + +DESCRIPTION="PulseAudio emulation for ALSA" +HOMEPAGE="https://github.com/i-rinat/apulse" +SRC_URI="https://github.com/i-rinat/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="MIT LGPL-2.1" +SLOT="0" +KEYWORDS="amd64 ~ppc64 x86" + +IUSE="debug sdk test" +RESTRICT="!test? ( test )" + +DEPEND="dev-libs/glib:2[${MULTILIB_USEDEP}] + media-libs/alsa-lib[${MULTILIB_USEDEP}] + sdk? ( !media-libs/libpulse !media-sound/pulseaudio ) " +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}/sdk.patch" + "${FILESDIR}/check-key-before-remove.patch" + "${FILESDIR}/man.patch" +) + +src_prepare() { + cmake_src_prepare + + if ! use sdk; then + # Ensure all relevant libdirs are added, to support all ABIs + DIRS= + _add_dir() { DIRS="${EPREFIX}/usr/$(get_libdir)/apulse${DIRS:+:${DIRS}}"; } + multilib_foreach_abi _add_dir + sed -e "s#@@DIRS@@#${DIRS}#g" "${FILESDIR}"/apulse > "${T}"/apulse || die + fi +} + +multilib_src_configure() { + local mycmakeargs=( + "-DINSTALL_SDK=$(usex sdk)" + "-DLOG_TO_STDERR=$(usex debug)" + "-DWITH_TRACE=$(usex debug)" + ) + cmake_src_configure +} + +multilib_src_test() { + _test() { + pushd tests || die + cmake -S "${S}/tests" -B . || die + emake test_ringbuffer + ctest -j "$(makeopts_jobs)" --test-load "$(makeopts_loadavg)" || die + popd || die + } + multilib_foreach_abi _test +} + +multilib_src_install_all() { + if ! use sdk; then + _install_wrapper() { newbin "${BUILD_DIR}/apulse" "${CHOST}-apulse"; } + multilib_foreach_abi _install_wrapper + dobin "${T}/apulse" + fi + einstalldocs +} diff --git a/media-sound/apulse/files/apulse b/media-sound/apulse/files/apulse new file mode 100755 index 0000000..32633b2 --- /dev/null +++ b/media-sound/apulse/files/apulse @@ -0,0 +1,14 @@ +#!/bin/sh +# Author: Daniel Campbell +# License: Creative Commons Public Domain Dedication (CC0 1.0) +# + +# apulse needs at least one argument +if [ $# -lt 1 ]; then + echo "Usage: apulse [options]" + exit +fi + +# Set library path for the application so it'll use apulse. DIRS is +# replaced by the ebuild to include the correct paths +LD_LIBRARY_PATH=@@DIRS@@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} exec "$@" diff --git a/media-sound/apulse/files/check-key-before-remove.patch b/media-sound/apulse/files/check-key-before-remove.patch new file mode 100644 index 0000000..28fe0fc --- /dev/null +++ b/media-sound/apulse/files/check-key-before-remove.patch @@ -0,0 +1,54 @@ +From bf146f0d711ce3e48cdc8ba772039d843d590b47 Mon Sep 17 00:00:00 2001 +From: "Miouyouyou (Myy)" +Date: Sun, 20 Oct 2019 05:09:29 +0200 +Subject: [PATCH] stream: Check the key before invoking g_hash_table_remove + +Turns out that I hit a bug where pa_stream_unref would +call g_hash_table_remove with a NULL key. + +Thanks for the lightweight and smooth error handling from +Glib, g_hash_table_remove generated an ABORT call, crashing +some Unity3D games I was trying to start. +Now, you also CANNOT call g_hash_table_lookup with a NULL +key. That also generate a crash... Ugh... + +So, yeah, we first check that the key is not 0, then check +if the key is actually inside the Hash table and THEN remove +it. + +Note, here's my ~/.asoundrc, just in case : +defaults.pcm.!card Audio +defaults.ctl.!card Audio + +Audio being : +card 3: Audio [DigiHug USB Audio], device 0: USB Audio [USB Audio] + Subdevices: 0/1 + Subdevice #0: subdevice #0 +card 3: Audio [DigiHug USB Audio], device 1: USB Audio [USB Audio #1] + Subdevices: 1/1 + Subdevice #0: subdevice #0 + +I'm using a FiiO device for sound output. + +Signed-off-by: Miouyouyou (Myy) +--- + src/apulse-stream.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/apulse-stream.c b/src/apulse-stream.c +index 84b18bb..1de4885 100644 +--- a/src/apulse-stream.c ++++ b/src/apulse-stream.c +@@ -1019,7 +1019,11 @@ pa_stream_unref(pa_stream *s) + + s->ref_cnt--; + if (s->ref_cnt == 0) { +- g_hash_table_remove(s->c->streams_ht, GINT_TO_POINTER(s->idx)); ++ GHashTable * __restrict const streams_ht = ++ s->c->streams_ht; ++ void const * key = GINT_TO_POINTER(s->idx); ++ if (key && g_hash_table_lookup(streams_ht, key)) ++ g_hash_table_remove(streams_ht, key); + ringbuffer_free(s->rb); + free(s->peek_buffer); + free(s->write_buffer); diff --git a/media-sound/apulse/files/man.patch b/media-sound/apulse/files/man.patch new file mode 100644 index 0000000..a26e32d --- /dev/null +++ b/media-sound/apulse/files/man.patch @@ -0,0 +1,30 @@ +From 2c2bf366599d957837acbdf54eb300526fc125a1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=89rico=20Rolim?= +Date: Tue, 5 May 2020 14:24:52 -0300 +Subject: [PATCH] Add ENVIRONMENT to man-page. + +--- + man/apulse.1 | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +diff --git a/man/apulse.1 b/man/apulse.1 +index cd67cf3..df75c60 100644 +--- a/man/apulse.1 ++++ b/man/apulse.1 +@@ -36,6 +36,16 @@ compatibility layer between OSS programs and \fBALSA\fR, \fBapulse\fR was + designed to be compatibility layer between PulseAudio applications and + \fBALSA\fR. + ++.SH ENVIRONMENT ++ ++The following environment variables can be used to configure the devices used ++by \fBapulse\fR. Try \fIhw:0,0\fR, \fIplughw:0,0\fR and the like. ++Refer to the ALSA user guide for a full list of device names. ++ ++\fIAPULSE_CAPTURE_DEVICE\fR: Can be used to configure the capture device. ++ ++\fIAPULSE_PLAYBACK_DEVICE\fR: Can be used to configure the playback device. ++ + .SH RETURN VALUE + + \fBapulse\fR is a simple shell wrapper script that calls \fBexec\fR on the diff --git a/media-sound/apulse/files/sdk.patch b/media-sound/apulse/files/sdk.patch new file mode 100644 index 0000000..bc12090 --- /dev/null +++ b/media-sound/apulse/files/sdk.patch @@ -0,0 +1,103 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 072f3b1..5fe6bcd 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,5 +1,6 @@ + project(apulse) + cmake_minimum_required (VERSION 2.8) ++include(GNUInstallDirs) + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -fPIC -fvisibility=hidden") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration") +@@ -28,6 +29,8 @@ else() + include_directories(${PA_INCLUDE_DIRECTORIES}) + endif() + ++set(INSTALL_SDK 0 CACHE BOOLEAN "Install SDK files to build applications with apulse (Pulse Audio headers and pkg-config files) instead of system ones") ++ + link_directories(${REQ_LIBRARY_DIRS}) + + add_library(trace-helper STATIC +@@ -72,12 +75,30 @@ target_link_libraries(pulse-simple ${SYMBOLMAP} trace-helper ${REQ_LIBRARIES}) + + add_subdirectory(tests) + +-set(APULSEPATH "${CMAKE_INSTALL_PREFIX}/lib/apulse" CACHE PATH "library installation directory") +-set(APULSE_SEARCH_PATHS "${APULSEPATH}" CACHE PATH "directory list for LD_LIBRARY_PATH") +-configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/apulse.template" +- "${CMAKE_CURRENT_BINARY_DIR}/apulse" @ONLY) ++if (${INSTALL_SDK}) ++ set(APULSEPATH "${CMAKE_INSTALL_LIBDIR}" CACHE PATH "library installation directory") ++ ++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/libpulse.pc.in" ++ "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libpulse.pc" @ONLY) ++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/libpulse-simple.pc.in" ++ "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libpulse-simple.pc" @ONLY) ++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/pkgconfig/libpulse-mainloop-glib.pc.in" ++ "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig/libpulse-mainloop-glib.pc" @ONLY) ++else() ++ set(APULSEPATH "${CMAKE_INSTALL_LIBDIR}/apulse" CACHE PATH "library installation directory") ++ set(APULSE_SEARCH_PATHS "${CMAKE_INSTALL_PREFIX}/${APULSEPATH}" CACHE PATH "directory list for LD_LIBRARY_PATH") ++ ++ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/apulse.template" ++ "${CMAKE_CURRENT_BINARY_DIR}/apulse" @ONLY) ++endif() + +-install(FILES "${CMAKE_CURRENT_BINARY_DIR}/apulse" DESTINATION bin +- PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) + install(TARGETS pulse-simple pulse pulse-mainloop-glib DESTINATION "${APULSEPATH}") +-install(FILES "${CMAKE_SOURCE_DIR}/man/apulse.1" DESTINATION share/man/man1) ++ ++if (${INSTALL_SDK}) ++ install(DIRECTORY "${CMAKE_SOURCE_DIR}/3rdparty/pulseaudio-headers/pulse" DESTINATION include) ++ install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/pkgconfig" DESTINATION "${CMAKE_INSTALL_LIBDIR}") ++else() ++ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/apulse" DESTINATION bin ++ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE) ++ install(FILES "${CMAKE_SOURCE_DIR}/man/apulse.1" DESTINATION share/man/man1) ++endif() +diff --git a/pkgconfig/libpulse-mainloop-glib.pc.in b/pkgconfig/libpulse-mainloop-glib.pc.in +new file mode 100644 +index 0000000..957e3b2 +--- /dev/null ++++ b/pkgconfig/libpulse-mainloop-glib.pc.in +@@ -0,0 +1,9 @@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++ ++Name: libpulse-mainloop-glib ++Description: PulseAudio GLib 2.0 Main Loop Wrapper (apulse) ++Version: 5.0 ++Libs: -L${libdir} -lpulse-mainloop-glib -pthread ++Cflags: -I${includedir} ++Requires: glib-2.0 +diff --git a/pkgconfig/libpulse-simple.pc.in b/pkgconfig/libpulse-simple.pc.in +new file mode 100644 +index 0000000..57d917f +--- /dev/null ++++ b/pkgconfig/libpulse-simple.pc.in +@@ -0,0 +1,9 @@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++ ++Name: libpulse-simple ++Description: PulseAudio Simplified Synchronous Client Interface (apulse) ++Version: 5.0 ++Libs: -L${libdir} -lpulse-simple -pthread ++Cflags: -I${includedir} ++Requires: glib-2.0 +diff --git a/pkgconfig/libpulse.pc.in b/pkgconfig/libpulse.pc.in +new file mode 100644 +index 0000000..edcbbd8 +--- /dev/null ++++ b/pkgconfig/libpulse.pc.in +@@ -0,0 +1,9 @@ ++libdir=@CMAKE_INSTALL_FULL_LIBDIR@ ++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ ++ ++Name: libpulse ++Description: PulseAudio Client Interface (apulse) ++Version: 5.0 ++Libs: -L${libdir} -lpulse -pthread ++Cflags: -I${includedir} ++Requires: glib-2.0 alsa diff --git a/media-sound/picard/Manifest b/media-sound/picard/Manifest deleted file mode 100644 index eebc80c..0000000 --- a/media-sound/picard/Manifest +++ /dev/null @@ -1,2 +0,0 @@ -DIST picard-2.4.2.tar.gz 4096438 BLAKE2B a44e82ac1a0ad776eb371309ad13f0a5e9afe4a0fe8b898dbbcb71ac554da3ff7cf4a2d88a8e476c811dfeb515ca7371ca8effb326b9285e6c53ebeac6795c15 SHA512 17f6015dd06a1282e6dc216726a74cc7bf2a54a5694e09e2d7ae6f1b4c85f2f60f3de1218d952fa2c4e088b3330d1fd12e4b41cf819d7c3d2d96278532338e15 -EBUILD picard-2.4.2.ebuild 1625 BLAKE2B 7c2be47b06fa47bb929ca77a14223bc4a0b36d3bf4ada6cc0fda6225403ea7e1e34d1374e13899e762f86ad0133ca8ab9fdba7ba9187d17f8c2cf38349707d27 SHA512 078d4118194374548acbc6316a7d5b654af07e35edd3a8c0a20b37f6c8867f4dbfb3613cd15a8b1ef6bbd3e5e8d3721441eed882de1fc796c0c907a216a677e9 diff --git a/media-sound/picard/picard-2.4.2.ebuild b/media-sound/picard/picard-2.4.2.ebuild deleted file mode 100644 index 513e8f9..0000000 --- a/media-sound/picard/picard-2.4.2.ebuild +++ /dev/null @@ -1,70 +0,0 @@ -# Copyright 1999-2020 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -PYTHON_COMPAT=( python3_{7,8,9} ) -DISTUTILS_SINGLE_IMPL=1 -DISABLE_AUTOFORMATTING=true -inherit distutils-r1 xdg - -if [[ ${PV} = *9999* ]]; then - EGIT_REPO_URI="https://github.com/metabrainz/picard" - inherit git-r3 -else - SRC_URI="https://musicbrainz.osuosl.org/pub/musicbrainz/${PN}/${P}.tar.gz" - KEYWORDS="amd64 x86" - S="${WORKDIR}/${PN}-release-${PV}" -fi - -DESCRIPTION="Cross-platform music tagger" -HOMEPAGE="https://picard.musicbrainz.org" - -LICENSE="GPL-2+" -SLOT="0" -IUSE="discid fingerprints nls" - -BDEPEND=" - nls? ( dev-qt/linguist-tools:5 ) -" -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/PyQt5[declarative,gui,network,widgets,${PYTHON_MULTI_USEDEP}] - dev-python/python-dateutil[${PYTHON_MULTI_USEDEP}] - media-libs/mutagen[${PYTHON_MULTI_USEDEP}] - discid? ( dev-python/python-discid[${PYTHON_MULTI_USEDEP}] ) - ') - dev-qt/qtgui:5 - fingerprints? ( media-libs/chromaprint[tools] ) -" - -RESTRICT="test" # doesn't work with ebuilds - -python_compile() { - local build_args=( - --disable-autoupdate - ) - if ! use nls; then - build_args+=( --disable-locales ) - fi - distutils-r1_python_compile ${build_args[@]} -} - -python_install() { - local install_args=( - --disable-autoupdate - --skip-build - ) - if ! use nls; then - install_args+=( --disable-locales ) - fi - distutils-r1_python_install ${install_args[@]} -} - -python_install_all() { - distutils-r1_python_install_all - - elog "If you are upgrading Picard and it does not start, try removing" - elog "Picard's settings:" - elog " rm ~/.config/MusicBrainz/Picard.conf" -} diff --git a/net-nntp/pan/Manifest b/net-nntp/pan/Manifest new file mode 100644 index 0000000..f7e29de --- /dev/null +++ b/net-nntp/pan/Manifest @@ -0,0 +1,2 @@ +DIST pan-0.149.tar.bz2 2328015 BLAKE2B 6c40c215a63f14bc0a9585c0476f5c92c96c0547de67767b353ec79c0999a1ad3a9e3fd23740ae25f29c32ce51ac3d48995aac622997f16ccd06ab842ed9a653 SHA512 2e558f53bbc0c9ae907c566fe8efd56ed2ef0edeffa23f922b63c956f16096c2ad1ea0bd43c31f82ee096899550bf47cb7011f354a6941a1d53cb6c6eaa5e5a6 +EBUILD pan-0.149.ebuild 1389 BLAKE2B 3b01b468928056c3bf14a80fce8c2829720efc74fbeefec1adf73a864fc079a765df9bb3b843f476d4615b636abc18a7ddd1460345cbdf9bf571cf5064152d05 SHA512 dfc2ddcf3c7600a9175713bcc7b0961358ee4ff3aaec43fc9a640e89c537b0f94a279443f653fa10a4d0e6ae3536da82e1c2aeb534261d356eefb5d912f5523f diff --git a/net-nntp/pan/pan-0.149.ebuild b/net-nntp/pan/pan-0.149.ebuild new file mode 100644 index 0000000..2915a7a --- /dev/null +++ b/net-nntp/pan/pan-0.149.ebuild @@ -0,0 +1,53 @@ +# This ebuild is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Update for gmime-3 support in newer pan (2022-06) + +EAPI=6 +inherit gnome2 + +DESCRIPTION="A newsreader for GNOME" +HOMEPAGE="http://pan.rebelbase.com/" +SRC_URI="http://pan.rebelbase.com/download/releases/${PV}/source/${P}.tar.bz2" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~alpha amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86" +IUSE="dbus gnome-keyring libnotify spell ssl" + +RDEPEND=" + >=dev-libs/glib-2.26:2 + dev-libs/gmime:3.0 + >=sys-libs/zlib-1.2.0 + >=x11-libs/gtk+-2.16:2 + gnome-keyring? ( >=gnome-base/libgnome-keyring-3.2 ) + libnotify? ( >=x11-libs/libnotify-0.4.1:0= ) + spell? ( + >=app-text/enchant-1.6:0/0 + >=app-text/gtkspell-2.0.7:2 ) + ssl? ( >=net-libs/gnutls-3:0= ) +" +DEPEND="${RDEPEND} + app-text/yelp-tools + >=sys-devel/gettext-0.19.7 + virtual/pkgconfig +" + +src_configure() { + # Wait for webkitgtk4 support + # gtk3 support is still not ready (follow what Fedora does) + gnome2_src_configure \ + --with-yelp-tools \ + --without-gtk3 \ + --without-webkit \ + $(use_with dbus) \ + $(use_enable gnome-keyring gkr) \ + $(use_with spell gtkspell) \ + $(use_enable libnotify) \ + $(use_with ssl gnutls) +} diff --git a/sys-apps/man/Manifest b/sys-apps/man/Manifest index 73a41e5..7816a7c 100644 --- a/sys-apps/man/Manifest +++ b/sys-apps/man/Manifest @@ -12,4 +12,4 @@ AUX man-1.6g-fbsd.patch 366 BLAKE2B 882b3b3048e3dcb4f64f38e94d7603ae577038dce663 AUX man-1.6g-nonportable-echo.patch 607 BLAKE2B c04845b50fc1f7e962ff40e6173e14293c83b675c1db87de9f9a442ac8fdb4a27fe75d6d83a587da611f7fee214a79e4a449bd3d5f00afa6925798068674fb64 SHA512 ddbbe14755a0ccea627a734c37428485a5f310ab916a230707b45ed503e629518cc7ea81aa5097b0bd403f2fa6e1305dce246c01e791987f5f11901b1d100b6e AUX man-1.6g-xz.patch 1848 BLAKE2B 6a0855eda72386a0f48e715e9ba620b3473b3aa854c42fabd93bc02b7c9cd44fbd07f2608257fe953bdfa9b02e8fa35876d651ba5aab99937fe42325fcfb7b69 SHA512 6a883fa800a6d3b11c76a70e1a31c0736d380271c9f21315863ddaca9529e3d613b587724287fb94bab2b0d97215f6ccb3f1438a5c5e339e5a2edf872c92515c DIST man-1.6g.tar.gz 256906 BLAKE2B f13e21400aecd41a5f001b37bf3c6f9fd8463ff627f761cfd0a6846c7b8dac48a6dc87ff2cf4786b55800a558141cffcc0d66420943e46f708292f5653b42d51 SHA512 c786fa2201aed92293e5590dc3ad5d550cf14e5059fa274ef7719af86ee4c892e747576495b6dc0a09286e73e2f0f0caf860216e0c8032d9ef13e5d26853048b -EBUILD man-1.6g-r2.ebuild 3930 BLAKE2B e6af0c063cce75b40ac6ab16581586304fb28ca0f0c53ed04ad52fe980c902ab484be01bbc947a558782402297c2e32e1d3fb9fb55101ed875cf65e94c6c4003 SHA512 e3cd0c582bfeb01155bed8ffaf52f095a522f65bfcd15e92dc4484df41b021b57fd5e915c2dc380a2ae02dd026e421d737b932b30fc50eb9629fc685f8d44075 +EBUILD man-1.6g-r3.ebuild 4155 BLAKE2B 22fb00df938c79208486fa99e2fe99a21784a48a4d44a39ff15ab2026d7281b3848ec712f6173fc40367601ea75c1189b6fc64f4088be17b4269262b6aea578b SHA512 aa6ee1a335d10aaadd7f983f5e9539077bef154e85953af5fb2ddb1bc4a1b95f0328542a86384a7bd23526cce147fedca388e045fa510d413583b48d07e2f7aa diff --git a/sys-apps/man/man-1.6g-r2.ebuild b/sys-apps/man/man-1.6g-r3.ebuild similarity index 89% rename from sys-apps/man/man-1.6g-r2.ebuild rename to sys-apps/man/man-1.6g-r3.ebuild index d457494..853c4af 100644 --- a/sys-apps/man/man-1.6g-r2.ebuild +++ b/sys-apps/man/man-1.6g-r3.ebuild @@ -1,4 +1,4 @@ -# Copyright © 2018 Nick Bowler +# Copyright © 2018-2019, 2022 Nick Bowler # License GPLv2+: GNU General Public License version 2 or any later version. # This is free software: you are free to change and distribute it. # There is NO WARRANTY, to the extent permitted by law. @@ -8,10 +8,17 @@ # # Copyright 1999-2018 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Fix nonportable "echo" usage (2018-10) +# * Convert to EAPI 6 patch application (2019-03) +# * Improve /etc/cron.daily/makewhatis installation (2019-03) +# * Convert from user.eclass to GLEP 81 user/group packages (2022-12) EAPI="6" -inherit eutils prefix toolchain-funcs user +inherit eutils prefix toolchain-funcs DESCRIPTION="Standard commands to read man pages" HOMEPAGE="http://primates.ximian.com/~flucifredi/man/" @@ -27,12 +34,9 @@ RDEPEND="|| ( >=sys-apps/groff-1.19.2-r1 app-doc/heirloom-doctools ) !sys-apps/man-db ! +Date: Fri, 24 Aug 2018 11:11:57 -0700 +Subject: [PATCH 1/2] Fix error when TERM is unset or improperly set + +--- + blessings/__init__.py | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/blessings/__init__.py b/blessings/__init__.py +index 98b75c3..3872b5f 100644 +--- a/python/blessings/blessings/__init__.py ++++ b/python/blessings/blessings/__init__.py +@@ -94,8 +94,13 @@ def __init__(self, kind=None, stream=None, force_styling=False): + # init sequences to the stream if it has a file descriptor, and + # send them to stdout as a fallback, since they have to go + # somewhere. +- setupterm(kind or environ.get('TERM', 'unknown'), +- self._init_descriptor) ++ try: ++ setupterm(kind or environ.get('TERM', 'dumb') or 'dumb', ++ self._init_descriptor) ++ except: ++ # There was an error setting up the terminal, either curses is ++ # not supported or TERM is incorrectly set. Fall back to dumb. ++ self._does_styling = False + + self.stream = stream + + +From d885df78c6f931abf3259343aaaa897e16c8cba1 Mon Sep 17 00:00:00 2001 +From: Jay Kamat +Date: Sat, 1 Sep 2018 13:20:32 -0700 +Subject: [PATCH 2/2] Explicitly catch curses.error + +--- + blessings/__init__.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/blessings/__init__.py b/blessings/__init__.py +index 3872b5f..fdceb09 100644 +--- a/python/blessings/blessings/__init__.py ++++ b/python/blessings/blessings/__init__.py +@@ -97,7 +97,7 @@ def __init__(self, kind=None, stream=None, force_styling=False): + try: + setupterm(kind or environ.get('TERM', 'dumb'), + self._init_descriptor) +- except: ++ except curses.error: + # There was an error setting up the terminal, either curses is + # not supported or TERM is incorrectly set. Fall back to dumb. + self._does_styling = False diff --git a/www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch b/www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch new file mode 100644 index 0000000..8026f62 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-fix-idb-name-conflict.patch @@ -0,0 +1,226 @@ +diff --git a/dom/indexedDB/ActorsParent.cpp b/dom/indexedDB/ActorsParent.cpp +index 1118ece64..ac8e28828 100644 +--- a/dom/indexedDB/ActorsParent.cpp ++++ b/dom/indexedDB/ActorsParent.cpp +@@ -11529,7 +11529,7 @@ AutoSavepoint::~AutoSavepoint() + MOZ_ASSERT(mDEBUGTransaction->GetMode() == IDBTransaction::READ_WRITE || + mDEBUGTransaction->GetMode() == + IDBTransaction::READ_WRITE_FLUSH || +- mDEBUGTransaction->GetMode() == IDBTransaction::CLEANUP || ++ mDEBUGTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mDEBUGTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + if (NS_FAILED(mConnection->RollbackSavepoint())) { +@@ -11545,7 +11545,7 @@ AutoSavepoint::Start(const TransactionBase* aTransaction) + MOZ_ASSERT(aTransaction); + MOZ_ASSERT(aTransaction->GetMode() == IDBTransaction::READ_WRITE || + aTransaction->GetMode() == IDBTransaction::READ_WRITE_FLUSH || +- aTransaction->GetMode() == IDBTransaction::CLEANUP || ++ aTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + aTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + DatabaseConnection* connection = aTransaction->GetDatabase()->GetConnection(); +@@ -14692,7 +14692,7 @@ Database::AllocPBackgroundIDBTransactionParent( + if (NS_WARN_IF(aMode != IDBTransaction::READ_ONLY && + aMode != IDBTransaction::READ_WRITE && + aMode != IDBTransaction::READ_WRITE_FLUSH && +- aMode != IDBTransaction::CLEANUP)) { ++ aMode != IDBTransaction::IDB_MODE_CLEANUP)) { + ASSERT_UNLESS_FUZZING(); + return nullptr; + } +@@ -14701,7 +14701,7 @@ Database::AllocPBackgroundIDBTransactionParent( + // has write access. + if (NS_WARN_IF((aMode == IDBTransaction::READ_WRITE || + aMode == IDBTransaction::READ_WRITE_FLUSH || +- aMode == IDBTransaction::CLEANUP) && ++ aMode == IDBTransaction::IDB_MODE_CLEANUP) && + mPrincipalInfo.type() == PrincipalInfo::TSystemPrincipalInfo && + !mChromeWriteAccessAllowed)) { + return nullptr; +@@ -14767,7 +14767,7 @@ Database::RecvPBackgroundIDBTransactionConstructor( + MOZ_ASSERT(aMode == IDBTransaction::READ_ONLY || + aMode == IDBTransaction::READ_WRITE || + aMode == IDBTransaction::READ_WRITE_FLUSH || +- aMode == IDBTransaction::CLEANUP); ++ aMode == IDBTransaction::IDB_MODE_CLEANUP); + MOZ_ASSERT(!mClosed); + + if (IsInvalidated()) { +@@ -14926,7 +14926,7 @@ StartTransactionOp::DoDatabaseWork(DatabaseConnection* aConnection) + + Transaction()->SetActiveOnConnectionThread(); + +- if (Transaction()->GetMode() == IDBTransaction::CLEANUP) { ++ if (Transaction()->GetMode() == IDBTransaction::IDB_MODE_CLEANUP) { + nsresult rv = aConnection->DisableQuotaChecks(); + if (NS_WARN_IF(NS_FAILED(rv))) { + return rv; +@@ -15245,7 +15245,7 @@ TransactionBase::VerifyRequestParams(const RequestParams& aParams) const + case RequestParams::TObjectStoreDeleteParams: { + if (NS_WARN_IF(mMode != IDBTransaction::READ_WRITE && + mMode != IDBTransaction::READ_WRITE_FLUSH && +- mMode != IDBTransaction::CLEANUP && ++ mMode != IDBTransaction::IDB_MODE_CLEANUP && + mMode != IDBTransaction::VERSION_CHANGE)) { + ASSERT_UNLESS_FUZZING(); + return false; +@@ -15269,7 +15269,7 @@ TransactionBase::VerifyRequestParams(const RequestParams& aParams) const + case RequestParams::TObjectStoreClearParams: { + if (NS_WARN_IF(mMode != IDBTransaction::READ_WRITE && + mMode != IDBTransaction::READ_WRITE_FLUSH && +- mMode != IDBTransaction::CLEANUP && ++ mMode != IDBTransaction::IDB_MODE_CLEANUP && + mMode != IDBTransaction::VERSION_CHANGE)) { + ASSERT_UNLESS_FUZZING(); + return false; +@@ -23959,7 +23959,7 @@ CommitOp::WriteAutoIncrementCounts() + mTransaction->AssertIsOnConnectionThread(); + MOZ_ASSERT(mTransaction->GetMode() == IDBTransaction::READ_WRITE || + mTransaction->GetMode() == IDBTransaction::READ_WRITE_FLUSH || +- mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + const nsTArray>& metadataArray = +@@ -24027,7 +24027,7 @@ CommitOp::CommitOrRollbackAutoIncrementCounts() + mTransaction->AssertIsOnConnectionThread(); + MOZ_ASSERT(mTransaction->GetMode() == IDBTransaction::READ_WRITE || + mTransaction->GetMode() == IDBTransaction::READ_WRITE_FLUSH || +- mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mTransaction->GetMode() == IDBTransaction::VERSION_CHANGE); + + nsTArray>& metadataArray = +@@ -24161,7 +24161,7 @@ CommitOp::Run() + + connection->FinishWriteTransaction(); + +- if (mTransaction->GetMode() == IDBTransaction::CLEANUP) { ++ if (mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP) { + connection->DoIdleProcessing(/* aNeedsCheckpoint */ true); + + connection->EnableQuotaChecks(); +diff --git a/dom/indexedDB/IDBCursor.cpp b/dom/indexedDB/IDBCursor.cpp +index e5d8913f9..4ef7e8c7c 100644 +--- a/dom/indexedDB/IDBCursor.cpp ++++ b/dom/indexedDB/IDBCursor.cpp +@@ -696,7 +696,7 @@ IDBCursor::Update(JSContext* aCx, JS::Handle aValue, + return nullptr; + } + +- if (mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ if (mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + IsSourceDeleted() || + !mHaveValue || + mType == Type_ObjectStoreKey || +diff --git a/dom/indexedDB/IDBDatabase.cpp b/dom/indexedDB/IDBDatabase.cpp +index 5592e7f93..49f18093d 100644 +--- a/dom/indexedDB/IDBDatabase.cpp ++++ b/dom/indexedDB/IDBDatabase.cpp +@@ -668,7 +668,7 @@ IDBDatabase::Transaction(JSContext* aCx, + break; + case IDBTransactionMode::Readwrite: + if (mQuotaExceeded) { +- mode = IDBTransaction::CLEANUP; ++ mode = IDBTransaction::IDB_MODE_CLEANUP; + mQuotaExceeded = false; + } else { + mode = IDBTransaction::READ_WRITE; +@@ -678,7 +678,7 @@ IDBDatabase::Transaction(JSContext* aCx, + mode = IDBTransaction::READ_WRITE_FLUSH; + break; + case IDBTransactionMode::Cleanup: +- mode = IDBTransaction::CLEANUP; ++ mode = IDBTransaction::IDB_MODE_CLEANUP; + mQuotaExceeded = false; + break; + case IDBTransactionMode::Versionchange: +@@ -713,7 +713,7 @@ IDBDatabase::Transaction(JSContext* aCx, + + transaction->SetBackgroundActor(actor); + +- if (mode == IDBTransaction::CLEANUP) { ++ if (mode == IDBTransaction::IDB_MODE_CLEANUP) { + ExpireFileActors(/* aExpireAll */ true); + } + +@@ -863,7 +863,7 @@ IDBDatabase::AbortTransactions(bool aShouldWarn) + // We warn for any transactions that could have written data. + case IDBTransaction::READ_WRITE: + case IDBTransaction::READ_WRITE_FLUSH: +- case IDBTransaction::CLEANUP: ++ case IDBTransaction::IDB_MODE_CLEANUP: + case IDBTransaction::VERSION_CHANGE: + transactionsThatNeedWarning.AppendElement(transaction); + break; +diff --git a/dom/indexedDB/IDBObjectStore.cpp b/dom/indexedDB/IDBObjectStore.cpp +index c28979c87..4694746cc 100644 +--- a/dom/indexedDB/IDBObjectStore.cpp ++++ b/dom/indexedDB/IDBObjectStore.cpp +@@ -1406,7 +1406,7 @@ IDBObjectStore::AddOrPut(JSContext* aCx, + MOZ_ASSERT(aCx); + MOZ_ASSERT_IF(aFromCursor, aOverwrite); + +- if (mTransaction->GetMode() == IDBTransaction::CLEANUP || ++ if (mTransaction->GetMode() == IDBTransaction::IDB_MODE_CLEANUP || + mDeletedSpec) { + aRv.Throw(NS_ERROR_DOM_INDEXEDDB_NOT_ALLOWED_ERR); + return nullptr; +diff --git a/dom/indexedDB/IDBTransaction.cpp b/dom/indexedDB/IDBTransaction.cpp +index a50489898..ef9d02414 100644 +--- a/dom/indexedDB/IDBTransaction.cpp ++++ b/dom/indexedDB/IDBTransaction.cpp +@@ -216,7 +216,7 @@ IDBTransaction::Create(JSContext* aCx, IDBDatabase* aDatabase, + MOZ_ASSERT(aMode == READ_ONLY || + aMode == READ_WRITE || + aMode == READ_WRITE_FLUSH || +- aMode == CLEANUP); ++ aMode == IDB_MODE_CLEANUP); + + RefPtr transaction = + new IDBTransaction(aDatabase, aObjectStoreNames, aMode); +@@ -871,7 +871,7 @@ IDBTransaction::GetMode(ErrorResult& aRv) const + case READ_WRITE_FLUSH: + return IDBTransactionMode::Readwriteflush; + +- case CLEANUP: ++ case IDB_MODE_CLEANUP: + return IDBTransactionMode::Cleanup; + + case VERSION_CHANGE: +diff --git a/dom/indexedDB/IDBTransaction.h b/dom/indexedDB/IDBTransaction.h +index 1c3e8be99..4fc189902 100644 +--- a/dom/indexedDB/IDBTransaction.h ++++ b/dom/indexedDB/IDBTransaction.h +@@ -59,7 +59,7 @@ public: + READ_ONLY = 0, + READ_WRITE, + READ_WRITE_FLUSH, +- CLEANUP, ++ IDB_MODE_CLEANUP, + VERSION_CHANGE, + + // Only needed for IPC serialization helper, should never be used in code. +@@ -189,7 +189,7 @@ public: + AssertIsOnOwningThread(); + return mMode == READ_WRITE || + mMode == READ_WRITE_FLUSH || +- mMode == CLEANUP || ++ mMode == IDB_MODE_CLEANUP || + mMode == VERSION_CHANGE; + } + +diff --git a/dom/indexedDB/ProfilerHelpers.h b/dom/indexedDB/ProfilerHelpers.h +index 63fdafcce..b9192d5d6 100644 +--- a/dom/indexedDB/ProfilerHelpers.h ++++ b/dom/indexedDB/ProfilerHelpers.h +@@ -129,7 +129,7 @@ public: + case IDBTransaction::READ_WRITE_FLUSH: + AppendLiteral("\"readwriteflush\""); + break; +- case IDBTransaction::CLEANUP: ++ case IDBTransaction::IDB_MODE_CLEANUP: + AppendLiteral("\"cleanup\""); + break; + case IDBTransaction::VERSION_CHANGE: diff --git a/www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch b/www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch new file mode 100644 index 0000000..7f57d32 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-fix-missing-includes.patch @@ -0,0 +1,37 @@ +diff --git a/gfx/2d/BaseRect.h b/gfx/2d/BaseRect.h +index 57d01ba09..b1eed9ddb 100644 +--- a/gfx/2d/BaseRect.h ++++ b/gfx/2d/BaseRect.h +@@ -9,6 +9,7 @@ + #include + #include + #include ++#include + + #include "mozilla/Assertions.h" + #include "mozilla/FloatingPoint.h" +diff --git a/gfx/2d/Matrix.h b/gfx/2d/Matrix.h +index 22a01ca10..e221ba3d2 100644 +--- a/gfx/2d/Matrix.h ++++ b/gfx/2d/Matrix.h +@@ -13,6 +13,7 @@ + #include "Quaternion.h" + #include + #include ++#include + #include "mozilla/Attributes.h" + #include "mozilla/DebugOnly.h" + #include "mozilla/FloatingPoint.h" +diff --git a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +index 941e635b1..3668a5047 100644 +--- a/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc ++++ b/media/webrtc/trunk/webrtc/modules/audio_coding/codecs/opus/audio_encoder_opus.cc +@@ -8,6 +8,8 @@ + * be found in the AUTHORS file in the root of the source tree. + */ + ++#include ++ + #include "webrtc/modules/audio_coding/codecs/opus/interface/audio_encoder_opus.h" + + #include "webrtc/base/checks.h" diff --git a/www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch b/www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch new file mode 100644 index 0000000..ac62839 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-fix-thebes-templates.patch @@ -0,0 +1,183 @@ +diff --git a/gfx/thebes/gfxFont.cpp b/gfx/thebes/gfxFont.cpp +index d0b747fff..9ec629285 100644 +--- a/gfx/thebes/gfxFont.cpp ++++ b/gfx/thebes/gfxFont.cpp +@@ -2535,85 +2535,6 @@ IsBoundarySpace(char16_t aChar, char16_t aNextChar) + return 0; + } + +-#ifdef __GNUC__ +-#define GFX_MAYBE_UNUSED __attribute__((unused)) +-#else +-#define GFX_MAYBE_UNUSED +-#endif +- +-template +-gfxShapedWord* +-gfxFont::GetShapedWord(DrawTarget *aDrawTarget, +- const T *aText, +- uint32_t aLength, +- uint32_t aHash, +- Script aRunScript, +- bool aVertical, +- int32_t aAppUnitsPerDevUnit, +- uint32_t aFlags, +- gfxTextPerfMetrics *aTextPerf GFX_MAYBE_UNUSED) +-{ +- // if the cache is getting too big, flush it and start over +- uint32_t wordCacheMaxEntries = +- gfxPlatform::GetPlatform()->WordCacheMaxEntries(); +- if (mWordCache->Count() > wordCacheMaxEntries) { +- NS_WARNING("flushing shaped-word cache"); +- ClearCachedWords(); +- } +- +- // if there's a cached entry for this word, just return it +- CacheHashKey key(aText, aLength, aHash, +- aRunScript, +- aAppUnitsPerDevUnit, +- aFlags); +- +- CacheHashEntry *entry = mWordCache->PutEntry(key); +- if (!entry) { +- NS_WARNING("failed to create word cache entry - expect missing text"); +- return nullptr; +- } +- gfxShapedWord* sw = entry->mShapedWord.get(); +- +- bool isContent = !mStyle.systemFont; +- +- if (sw) { +- sw->ResetAge(); +- Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_HITS_CONTENT : +- Telemetry::WORD_CACHE_HITS_CHROME), +- aLength); +-#ifndef RELEASE_OR_BETA +- if (aTextPerf) { +- aTextPerf->current.wordCacheHit++; +- } +-#endif +- return sw; +- } +- +- Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_MISSES_CONTENT : +- Telemetry::WORD_CACHE_MISSES_CHROME), +- aLength); +-#ifndef RELEASE_OR_BETA +- if (aTextPerf) { +- aTextPerf->current.wordCacheMiss++; +- } +-#endif +- +- sw = gfxShapedWord::Create(aText, aLength, aRunScript, aAppUnitsPerDevUnit, +- aFlags); +- entry->mShapedWord.reset(sw); +- if (!sw) { +- NS_WARNING("failed to create gfxShapedWord - expect missing text"); +- return nullptr; +- } +- +- DebugOnly ok = +- ShapeText(aDrawTarget, aText, 0, aLength, aRunScript, aVertical, sw); +- +- NS_WARNING_ASSERTION(ok, "failed to shape word - expect garbled text"); +- +- return sw; +-} +- + bool + gfxFont::CacheHashEntry::KeyEquals(const KeyTypePointer aKey) const + { +diff --git a/gfx/thebes/gfxFont.h b/gfx/thebes/gfxFont.h +index ead0b7666..c38d06675 100644 +--- a/gfx/thebes/gfxFont.h ++++ b/gfx/thebes/gfxFont.h +@@ -2220,4 +2220,88 @@ struct EmphasisMarkDrawParams { + bool isVertical; + }; + ++#include "mozilla/Telemetry.h" ++#include "mozilla/DebugOnly.h" ++ ++#ifdef __GNUC__ ++#define GFX_MAYBE_UNUSED __attribute__((unused)) ++#else ++#define GFX_MAYBE_UNUSED ++#endif ++ ++template ++gfxShapedWord* ++gfxFont::GetShapedWord(DrawTarget *aDrawTarget, ++ const T *aText, ++ uint32_t aLength, ++ uint32_t aHash, ++ Script aRunScript, ++ bool aVertical, ++ int32_t aAppUnitsPerDevUnit, ++ uint32_t aFlags, ++ gfxTextPerfMetrics *aTextPerf GFX_MAYBE_UNUSED) ++{ ++ using namespace mozilla; ++ ++ // if the cache is getting too big, flush it and start over ++ uint32_t wordCacheMaxEntries = ++ gfxPlatform::GetPlatform()->WordCacheMaxEntries(); ++ if (mWordCache->Count() > wordCacheMaxEntries) { ++ NS_WARNING("flushing shaped-word cache"); ++ ClearCachedWords(); ++ } ++ ++ // if there's a cached entry for this word, just return it ++ CacheHashKey key(aText, aLength, aHash, ++ aRunScript, ++ aAppUnitsPerDevUnit, ++ aFlags); ++ ++ CacheHashEntry *entry = mWordCache->PutEntry(key); ++ if (!entry) { ++ NS_WARNING("failed to create word cache entry - expect missing text"); ++ return nullptr; ++ } ++ gfxShapedWord* sw = entry->mShapedWord.get(); ++ ++ bool isContent = !mStyle.systemFont; ++ ++ if (sw) { ++ sw->ResetAge(); ++ Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_HITS_CONTENT : ++ Telemetry::WORD_CACHE_HITS_CHROME), ++ aLength); ++#ifndef RELEASE_OR_BETA ++ if (aTextPerf) { ++ aTextPerf->current.wordCacheHit++; ++ } ++#endif ++ return sw; ++ } ++ ++ Telemetry::Accumulate((isContent ? Telemetry::WORD_CACHE_MISSES_CONTENT : ++ Telemetry::WORD_CACHE_MISSES_CHROME), ++ aLength); ++#ifndef RELEASE_OR_BETA ++ if (aTextPerf) { ++ aTextPerf->current.wordCacheMiss++; ++ } ++#endif ++ ++ sw = gfxShapedWord::Create(aText, aLength, aRunScript, aAppUnitsPerDevUnit, ++ aFlags); ++ entry->mShapedWord.reset(sw); ++ if (!sw) { ++ NS_WARNING("failed to create gfxShapedWord - expect missing text"); ++ return nullptr; ++ } ++ ++ DebugOnly ok = ++ ShapeText(aDrawTarget, aText, 0, aLength, aRunScript, aVertical, sw); ++ ++ NS_WARNING_ASSERTION(ok, "failed to shape word - expect garbled text"); ++ ++ return sw; ++} ++ + #endif diff --git a/www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch b/www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch new file mode 100644 index 0000000..caa1141 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-glibc-2.30.patch @@ -0,0 +1,13 @@ +diff --git a/tools/profiler/core/platform.h b/tools/profiler/core/platform.h +index 2e736d97c..8f9c2ede3 100644 +--- a/tools/profiler/core/platform.h ++++ b/tools/profiler/core/platform.h +@@ -61,7 +61,7 @@ + + // We need a definition of gettid(), but Linux libc implementations don't + // provide a wrapper for it (except for Bionic) +-#if defined(__linux__) ++#if defined(__linux__) && __GLIBC__ <= 2 && __GLIBC_MINOR__ < 30 + #include + #if !defined(__BIONIC__) + #include diff --git a/www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch b/www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch new file mode 100644 index 0000000..774e903 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-glibc-2.36.patch @@ -0,0 +1,61 @@ +diff --git a/ipc/chromium/src/third_party/libevent/evutil_rand.c b/ipc/chromium/src/third_party/libevent/evutil_rand.c +index 3bab23121..c1e8a98ef 100644 +--- a/ipc/chromium/src/third_party/libevent/evutil_rand.c ++++ b/ipc/chromium/src/third_party/libevent/evutil_rand.c +@@ -39,7 +39,7 @@ + #include "util-internal.h" + #include "evthread-internal.h" + +-#ifdef _EVENT_HAVE_ARC4RANDOM ++#if _EVENT_HAVE_ARC4RANDOM + #include + #include + int +@@ -58,7 +58,7 @@ evutil_secure_rng_global_setup_locks_(const int enable_locks) + static void + ev_arc4random_buf(void *buf, size_t n) + { +-#if defined(_EVENT_HAVE_ARC4RANDOM_BUF) && !(defined(__APPLE__) || defined(__ANDROID__)) ++#if _EVENT_HAVE_ARC4RANDOM_BUF && !(defined(__APPLE__) || defined(__ANDROID__)) + arc4random_buf(buf, n); + #else + unsigned char *b = buf; +@@ -139,7 +139,7 @@ evutil_secure_rng_get_bytes(void *buf, size_t n) + ev_arc4random_buf(buf, n); + } + +-#if !defined(__OpenBSD__) && !defined(ANDROID) ++#if 0 + void + evutil_secure_rng_add_bytes(const char *buf, size_t n) + { +diff --git a/ipc/chromium/src/third_party/libevent/include/event2/util.h b/ipc/chromium/src/third_party/libevent/include/event2/util.h +index 42a28adcb..ed6b6207f 100644 +--- a/ipc/chromium/src/third_party/libevent/include/event2/util.h ++++ b/ipc/chromium/src/third_party/libevent/include/event2/util.h +@@ -672,7 +672,7 @@ void evutil_secure_rng_get_bytes(void *buf, size_t n); + */ + int evutil_secure_rng_init(void); + +-#if !defined(__OpenBSD__) && !defined(ANDROID) ++#if 0 + /** Seed the random number generator with extra random bytes. + + You should almost never need to call this function; it should be +diff --git a/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h b/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h +index 56ebd3aba..21717abed 100644 +--- a/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h ++++ b/ipc/chromium/src/third_party/libevent/linux/event2/event-config.h +@@ -24,10 +24,10 @@ + /* #undef _EVENT_DISABLE_THREAD_SUPPORT */ + + /* Define to 1 if you have the `arc4random' function. */ +-/* #undef _EVENT_HAVE_ARC4RANDOM */ ++#define _EVENT_HAVE_ARC4RANDOM (__GLIBC__ >= 2 && __GLIBC_MINOR__ >= 36) + + /* Define to 1 if you have the `arc4random_buf' function. */ +-/* #undef _EVENT_HAVE_ARC4RANDOM_BUF */ ++#define _EVENT_HAVE_ARC4RANDOM_BUF _EVENT_HAVE_ARC4RANDOM + + /* Define to 1 if you have the header file. */ + #define _EVENT_HAVE_ARPA_INET_H 1 diff --git a/www-client/firefox/files/firefox-52.9.0-less-werror.patch b/www-client/firefox/files/firefox-52.9.0-less-werror.patch new file mode 100644 index 0000000..7e624e3 --- /dev/null +++ b/www-client/firefox/files/firefox-52.9.0-less-werror.patch @@ -0,0 +1,13 @@ +diff --git a/js/src/moz.build b/js/src/moz.build +index 1162cb70c..595ea9842 100644 +--- a/js/src/moz.build ++++ b/js/src/moz.build +@@ -785,7 +785,7 @@ if CONFIG['JS_HAS_CTYPES']: + DEFINES['FFI_BUILDING'] = True + + if CONFIG['GNU_CXX']: +- CXXFLAGS += ['-Wno-shadow', '-Werror=format'] ++ CXXFLAGS += ['-Wno-shadow'] + + # Suppress warnings in third-party code. + if CONFIG['CLANG_CXX']: diff --git a/www-client/firefox/files/gentoo-default-prefs.js-1 b/www-client/firefox/files/gentoo-default-prefs.js-1 new file mode 100644 index 0000000..22a51ff --- /dev/null +++ b/www-client/firefox/files/gentoo-default-prefs.js-1 @@ -0,0 +1,17 @@ +pref("app.update.enabled", false); +pref("app.update.autoInstallEnabled", false); +pref("browser.display.use_system_colors", true); +pref("browser.link.open_external", 3); +pref("general.smoothScroll", true); +pref("general.autoScroll", false); +pref("browser.tabs.tabMinWidth", 15); +pref("browser.backspace_action", 0); +pref("browser.urlbar.hideGoButton", true); +pref("accessibility.typeaheadfind", true); +pref("browser.shell.checkDefaultBrowser", false); +pref("browser.EULA.override", true); +pref("general.useragent.vendor", "Gentoo"); +pref("intl.locale.matchOS", true); +pref("general.useragent.locale", "chrome://global/locale/intl.properties"); +pref("extensions.autoDisableScopes", 0); +pref("layout.css.dpi", 0); diff --git a/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 b/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 new file mode 100644 index 0000000..0cb92b0 --- /dev/null +++ b/www-client/firefox/files/gentoo-hwaccel-prefs.js-1 @@ -0,0 +1,2 @@ +pref("layers.acceleration.force-enabled", true); +pref("webgl.force-enabled", true); diff --git a/www-client/firefox/files/icon/firefox.desktop b/www-client/firefox/files/icon/firefox.desktop new file mode 100644 index 0000000..1affce8 --- /dev/null +++ b/www-client/firefox/files/icon/firefox.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=@NAME@ +Comment=Web Browser +Exec=firefox %u +Icon=@ICON@ +Terminal=false +Type=Application +MimeType=text/html;text/xml;application/xhtml+xml;application/vnd.mozilla.xul+xml;text/mml;x-scheme-handler/http;x-scheme-handler/https; +Categories=Network;WebBrowser; + diff --git a/www-client/firefox/firefox-52.9.0-r3.ebuild b/www-client/firefox/firefox-52.9.0-r3.ebuild new file mode 100644 index 0000000..5c08255 --- /dev/null +++ b/www-client/firefox/firefox-52.9.0-r3.ebuild @@ -0,0 +1,424 @@ +# This ebuild is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: +# +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Apply patches to build on modern systems (2022-12) +# * Update to EAPI 8 (2023-04) + +EAPI=8 +VIRTUALX_REQUIRED="pgo" +WANT_AUTOCONF="2.1" +MOZ_ESR=1 + +# This list can be updated with scripts/get_langs.sh from the mozilla overlay +MOZ_LANGS=( ach af an ar as ast az bg bn-BD bn-IN br bs ca cak cs cy da de dsb +el en en-GB en-US en-ZA eo es-AR es-CL es-ES es-MX et eu fa ff fi fr fy-NL ga-IE +gd gl gn gu-IN he hi-IN hr hsb hu hy-AM id is it ja ka kab kk km kn ko lij lt lv +mai mk ml mr ms nb-NO nl nn-NO or pa-IN pl pt-BR pt-PT rm ro ru si sk sl son sq +sr sv-SE ta te th tr uk uz vi xh zh-CN zh-TW ) + +# Convert the ebuild version to the upstream mozilla version, used by mozlinguas +MOZ_PV="${PV/_alpha/a}" # Handle alpha for SRC_URI +MOZ_PV="${MOZ_PV/_beta/b}" # Handle beta for SRC_URI +MOZ_PV="${MOZ_PV/_rc/rc}" # Handle rc for SRC_URI + +if [[ ${MOZ_ESR} == 1 ]]; then + # ESR releases have slightly different version numbers + MOZ_PV="${MOZ_PV}esr" +fi + +# Patch version +PATCH="${PN}-52.5-patches-02" +MOZ_HTTP_URI="https://archive.mozilla.org/pub/${PN}/releases" + +MOZCONFIG_OPTIONAL_GTK2ONLY=1 +MOZCONFIG_OPTIONAL_WIFI=1 + +inherit check-reqs flag-o-matic toolchain-funcs desktop mozconfig-v6.52 pax-utils xdg-utils autotools virtualx mozlinguas-v2 + +DESCRIPTION="Firefox Web Browser" +HOMEPAGE="https://www.mozilla.org/firefox" + +KEYWORDS="~alpha amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 x86 ~amd64-linux ~x86-linux" + +SLOT="0" +LICENSE="MPL-2.0 GPL-2 LGPL-2.1" +IUSE="bindist eme-free +gmp-autoupdate hardened hwaccel jack pgo rust selinux test" +RESTRICT="!bindist? ( bindist ) !test? ( test )" + +PATCH_URIS=( https://dev.gentoo.org/~{anarchy,axs,polynomial-c}/mozilla/patchsets/${PATCH}.tar.xz ) +SRC_URI="${SRC_URI} + ${MOZ_HTTP_URI}/${MOZ_PV}/source/firefox-${MOZ_PV}.source.tar.xz + ${PATCH_URIS[@]}" + +ASM_DEPEND=">=dev-lang/yasm-1.1" + +RDEPEND=" + jack? ( virtual/jack ) + >=dev-libs/nss-3.28.3 + >=dev-libs/nspr-4.13.1 + selinux? ( sec-policy/selinux-mozilla )" + +DEPEND="${RDEPEND} + pgo? ( >=sys-devel/gcc-4.5 ) + rust? ( virtual/rust ) + amd64? ( ${ASM_DEPEND} virtual/opengl ) + x86? ( ${ASM_DEPEND} virtual/opengl )" + +S="${WORKDIR}/firefox-${MOZ_PV}" + +QA_PRESTRIPPED="usr/lib*/${PN}/firefox" + +BUILD_OBJ_DIR="${S}/ff" + +# allow GMP_PLUGIN_LIST to be set in an eclass or +# overridden in the enviromnent (advanced hackers only) +if [[ -z $GMP_PLUGIN_LIST ]]; then + GMP_PLUGIN_LIST=( gmp-gmpopenh264 gmp-widevinecdm ) +fi + +pkg_setup() { + moz_pkgsetup + + # Avoid PGO profiling problems due to enviroment leakage + # These should *always* be cleaned up anyway + unset DBUS_SESSION_BUS_ADDRESS \ + DISPLAY \ + ORBIT_SOCKETDIR \ + SESSION_MANAGER \ + XDG_SESSION_COOKIE \ + XAUTHORITY + + if ! use bindist; then + einfo + elog "You are enabling official branding. You may not redistribute this build" + elog "to any users on your network or the internet. Doing so puts yourself into" + elog "a legal problem with Mozilla Foundation" + elog "You can disable it by emerging ${PN} _with_ the bindist USE-flag" + fi + + if use pgo; then + einfo + ewarn "You will do a double build for profile guided optimization." + ewarn "This will result in your build taking at least twice as long as before." + fi + + if use rust; then + einfo + ewarn "This is very experimental, should only be used by those developing firefox." + fi +} + +pkg_pretend() { + # Ensure we have enough disk space to compile + if use pgo || use debug || use test ; then + CHECKREQS_DISK_BUILD="8G" + else + CHECKREQS_DISK_BUILD="4G" + fi + check-reqs_pkg_setup +} + +src_unpack() { + unpack ${A} + + # Unpack language packs + mozlinguas_src_unpack +} + +src_prepare() { + xdg_environment_reset + + # Apply our patches + rm -f "${WORKDIR}"/firefox/2007_fix_nvidia_latest.patch + eapply "${WORKDIR}/firefox" + + eapply "${FILESDIR}"/${P}-blessings-TERM.patch # 654316 + eapply "${FILESDIR}"/${P}-fix-missing-includes.patch + eapply "${FILESDIR}"/${P}-fix-idb-name-conflict.patch + eapply "${FILESDIR}"/${P}-glibc-2.30.patch + eapply "${FILESDIR}"/${P}-glibc-2.36.patch + eapply "${FILESDIR}"/${P}-less-werror.patch + eapply "${FILESDIR}"/${P}-fix-thebes-templates.patch + + # Enable gnomebreakpad + if use debug ; then + sed -i -e "s:GNOME_DISABLE_CRASH_DIALOG=1:GNOME_DISABLE_CRASH_DIALOG=0:g" \ + "${S}"/build/unix/run-mozilla.sh || die "sed failed!" + fi + + # Drop -Wl,--as-needed related manipulation for ia64 as it causes ld sefgaults, bug #582432 + if use ia64 ; then + sed -i \ + -e '/^OS_LIBS += no_as_needed/d' \ + -e '/^OS_LIBS += as_needed/d' \ + "${S}"/widget/gtk/mozgtk/gtk2/moz.build \ + "${S}"/widget/gtk/mozgtk/gtk3/moz.build \ + || die "sed failed to drop --as-needed for ia64" + fi + + # Ensure that our plugins dir is enabled as default + sed -i -e "s:/usr/lib/mozilla/plugins:/usr/lib/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 32bit!" + sed -i -e "s:/usr/lib64/mozilla/plugins:/usr/lib64/nsbrowser/plugins:" \ + "${S}"/xpcom/io/nsAppFileLocationProvider.cpp || die "sed failed to replace plugin path for 64bit!" + + # Fix sandbox violations during make clean, bug 372817 + sed -e "s:\(/no-such-file\):${T}\1:g" \ + -i "${S}"/config/rules.mk \ + -i "${S}"/nsprpub/configure{.in,} \ + || die + + # Don't exit with error when some libs are missing which we have in + # system. + sed '/^MOZ_PKG_FATAL_WARNINGS/s@= 1@= 0@' \ + -i "${S}"/browser/installer/Makefile.in || die + + # Don't error out when there's no files to be removed: + sed 's@\(xargs rm\)$@\1 -f@' \ + -i "${S}"/toolkit/mozapps/installer/packager.mk || die + + # Keep codebase the same even if not using official branding + sed '/^MOZ_DEV_EDITION=1/d' \ + -i "${S}"/browser/branding/aurora/configure.sh || die + + # Allow user to apply any additional patches without modifing ebuild + eapply_user + + # Autotools configure is now called old-configure.in + # This works because there is still a configure.in that happens to be for the + # shell wrapper configure script + eautoreconf old-configure.in + + # Must run autoconf in js/src + cd "${S}"/js/src || die + eautoconf old-configure.in + + # Need to update jemalloc's configure + cd "${S}"/memory/jemalloc/src || die + WANT_AUTOCONF= eautoconf +} + +src_configure() { + MEXTENSIONS="default" + # Google API keys (see http://www.chromium.org/developers/how-tos/api-keys) + # Note: These are for Gentoo Linux use ONLY. For your own distribution, please + # get your own set of keys. + _google_api_key=AIzaSyDEAOvatFo0eTgsV_ZlEzx0ObmepsMzfAc + + #################################### + # + # mozconfig, CFLAGS and CXXFLAGS setup + # + #################################### + + mozconfig_init + mozconfig_config + + # enable JACK, bug 600002 + mozconfig_use_enable jack + + use eme-free && mozconfig_annotate '+eme-free' --disable-eme + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + # Add full relro support for hardened + use hardened && append-ldflags "-Wl,-z,relro,-z,now" + + # Only available on mozilla-overlay for experimentation -- Removed in Gentoo repo per bug 571180 + #use egl && mozconfig_annotate 'Enable EGL as GL provider' --with-gl-provider=EGL + + # Setup api key for location services + echo -n "${_google_api_key}" > "${S}"/google-api-key + mozconfig_annotate '' --with-google-api-keyfile="${S}/google-api-key" + + mozconfig_annotate '' --enable-extensions="${MEXTENSIONS}" + + mozconfig_use_enable rust + + # Allow for a proper pgo build + if use pgo; then + echo "mk_add_options PROFILE_GEN_SCRIPT='EXTRA_TEST_ARGS=10 \$(MAKE) -C \$(MOZ_OBJDIR) pgo-profile-run'" >> "${S}"/.mozconfig + fi + + echo "mk_add_options MOZ_OBJDIR=${BUILD_OBJ_DIR}" >> "${S}"/.mozconfig + echo "mk_add_options XARGS=/usr/bin/xargs" >> "${S}"/.mozconfig + + # Finalize and report settings + mozconfig_final + + if [[ $(gcc-major-version) -lt 4 ]]; then + append-cxxflags -fno-stack-protector +# else +# append-cxxflags -fpermissive + fi + + # workaround for funky/broken upstream configure... + SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + emake -f client.mk configure +} + +src_compile() { + if use pgo; then + addpredict /root + addpredict /etc/gconf + + # Firefox tries to use dri stuff when it's run, see bug 380283 + shopt -s nullglob + cards=$(echo -n /dev/dri/card* | sed 's/ /:/g') + if test -z "${cards}"; then + cards=$(echo -n /dev/ati/card* /dev/nvidiactl* | sed 's/ /:/g') + if test -n "${cards}"; then + # Binary drivers seem to cause access violations anyway, so + # let's use indirect rendering so that the device files aren't + # touched at all. See bug 394715. + export LIBGL_ALWAYS_INDIRECT=1 + fi + fi + shopt -u nullglob + [[ -n "${cards}" ]] && addpredict "${cards}" + + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + virtx emake -f client.mk profiledbuild + else + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + emake -f client.mk realbuild + fi + +} + +src_install() { + cd "${BUILD_OBJ_DIR}" || die + + # Pax mark xpcshell for hardened support, only used for startupcache creation. + pax-mark m "${BUILD_OBJ_DIR}"/dist/bin/xpcshell + + # Add our default prefs for firefox + cp "${FILESDIR}"/gentoo-default-prefs.js-1 \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + + mozconfig_install_prefs \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" + + # Augment this with hwaccel prefs + if use hwaccel ; then + cat "${FILESDIR}"/gentoo-hwaccel-prefs.js-1 >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + fi + + echo "pref(\"extensions.autoDisableScopes\", 3);" >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + + local plugin + use gmp-autoupdate || use eme-free || for plugin in "${GMP_PLUGIN_LIST[@]}" ; do + echo "pref(\"media.${plugin}.autoupdate\", false);" >> \ + "${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" \ + || die + done + + MOZ_MAKE_FLAGS="${MAKEOPTS}" SHELL="${SHELL:-${EPREFIX}/bin/bash}" \ + emake DESTDIR="${D}" install + + # Install language packs + mozlinguas_src_install + + local size sizes icon_path icon name + if use bindist; then + sizes="16 32 48" + icon_path="${S}/browser/branding/aurora" + # Firefox's new rapid release cycle means no more codenames + # Let's just stick with this one... + icon="aurora" + name="Aurora" + + # Override preferences to set the MOZ_DEV_EDITION defaults, since we + # don't define MOZ_DEV_EDITION to avoid profile debaucles. + # (source: browser/app/profile/firefox.js) + cat >>"${BUILD_OBJ_DIR}/dist/bin/browser/defaults/preferences/all-gentoo.js" <> "${ED}/usr/share/applications/${PN}.desktop" \ + || die + fi + + # Required in order to use plugins and even run firefox on hardened. + pax-mark m "${ED}"${MOZILLA_FIVE_HOME}/{firefox,firefox-bin,plugin-container} +} + +pkg_preinst() { + # if the apulse libs are available in MOZILLA_FIVE_HOME then apulse + # doesn't need to be forced into the LD_LIBRARY_PATH + if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then + einfo "APULSE found - Generating library symlinks for sound support" + local lib + pushd "${ED}"${MOZILLA_FIVE_HOME} &>/dev/null || die + for lib in ../apulse/libpulse{.so{,.0},-simple.so{,.0}} ; do + # a quickpkg rolled by hand will grab symlinks as part of the package, + # so we need to avoid creating them if they already exist. + if ! [ -L ${lib##*/} ]; then + ln -s "${lib}" ${lib##*/} || die + fi + done + popd &>/dev/null || die + fi +} + +pkg_postinst() { + # Update mimedb for the new .desktop file + xdg_desktop_database_update + xdg_icon_cache_update + + if ! use gmp-autoupdate && ! use eme-free ; then + elog "USE='-gmp-autoupdate' has disabled the following plugins from updating or" + elog "installing into new profiles:" + local plugin + for plugin in "${GMP_PLUGIN_LIST[@]}"; do elog "\t ${plugin}" ; done + fi + + if use pulseaudio && has_version ">=media-sound/apulse-0.1.9" ; then + elog "Apulse was detected at merge time on this system and so it will always be" + elog "used for sound. If you wish to use pulseaudio instead please unmerge" + elog "media-sound/apulse." + fi +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update +} diff --git a/x11-base/xorg-x11/Manifest b/x11-base/xorg-x11/Manifest index d230665..67412ab 100644 --- a/x11-base/xorg-x11/Manifest +++ b/x11-base/xorg-x11/Manifest @@ -1,2 +1,2 @@ -EBUILD xorg-x11-7.4-r3.ebuild 3797 BLAKE2B d87d8f37f7440d5171695c698a723c34bc85c24ec9565f112733e3b8de064d54fd7d94238957daca7f7f066c228dc68cbe4669c54029f79aae31c7e3e9d1db2a SHA512 1a8c057764d50bbe7ca90d2a6915409157a17d79c7e43a446421099a2803255293b57f00e92b9970044f26f9ca90f0ced1b76d01fcc0d7fb1d8e3541878db258 +EBUILD xorg-x11-7.4-r5.ebuild 3748 BLAKE2B 21741a7c0e40cbe6670bb16b2ccfe2086220cbf1fd0a0fc3719d3f7cc82961e677d77e39f42136408b9014e00cc4f2853fab5f456d6711bc0f8e04b096c5dfc7 SHA512 53e1b43b0191cd19b59d2ab42c691e7c6062021c1233f3fb961cf3fa22359453fd51175b0602d3be0e727cc2108c7c17c926fb47ec6ba1e77a4543bdcebd4c9f MISC metadata.xml 233 BLAKE2B 275dfed53b44f8c976a9b718cfbdb421c28ad80097e632173f27a3400ce32f2eaf7f686929b486626b9aa23afa40cd49f61b975a3876a8e61e1577c3c1db9405 SHA512 a06995e9f52455988091f273b40be5bbfa56c864d45f5fe73f731f0aaa9a317804305bd87c36eaa39ffd6b6d096c1fc54559221a0e11fa56ac2f01e0b959e12e diff --git a/x11-base/xorg-x11/xorg-x11-7.4-r3.ebuild b/x11-base/xorg-x11/xorg-x11-7.4-r5.ebuild similarity index 88% rename from x11-base/xorg-x11/xorg-x11-7.4-r3.ebuild rename to x11-base/xorg-x11/xorg-x11-7.4-r5.ebuild index d9a447f..2e36863 100644 --- a/x11-base/xorg-x11/xorg-x11-7.4-r3.ebuild +++ b/x11-base/xorg-x11/xorg-x11-7.4-r5.ebuild @@ -1,13 +1,14 @@ -# Copyright © 2014,2017-2018,2020 Nick Bowler -# License GPLv2+: GNU General Public License version 2 or any later version. -# This is free software: you are free to change and redistribute it. -# There is NO WARRANTY, to the extent permitted by law. -# -# This a modified version of the original ebuild from Gentoo GNU/Linux, -# covered by the following copyright and permission notice: +# This ebuild is a modified version of the work originally distributed with +# Gentoo GNU/Linux, covered by the following copyright and permission notice: # # Copyright 1999-2020 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# +# The modifications are: +# +# * Add bh-fonts USE flag to avoid installing nonfree B&H fonts (2014-09) +# * Remove dependency on unsupported bitstreem-speedo fonts (2023-05) +# * Remove dependency on xf86dga application (2023-07) EAPI=6 @@ -43,7 +44,6 @@ RDEPEND="${RDEPEND} x11-apps/xdpyinfo x11-apps/xdriinfo x11-apps/xev - x11-apps/xf86dga x11-apps/xgamma x11-apps/xhost x11-apps/xinput @@ -99,7 +99,6 @@ RDEPEND="${RDEPEND} ) media-fonts/font-bitstream-100dpi media-fonts/font-bitstream-75dpi - media-fonts/font-bitstream-speedo media-fonts/font-bitstream-type1 media-fonts/font-cronyx-cyrillic media-fonts/font-cursor-misc diff --git a/x11-wm/fvwm/Manifest b/x11-wm/fvwm/Manifest index 3606e76..93e5453 100644 --- a/x11-wm/fvwm/Manifest +++ b/x11-wm/fvwm/Manifest @@ -1,10 +1,10 @@ AUX README.translucency 3723 BLAKE2B aae37e9dbdf8f7b730b6947d55f0e286c1269d5cacc9ce6d2481562b054c2fa9010acf6ee0d6c994ea3cee64d3df99ef6d08dfa8c6b58706bc9bb8b477095e1b SHA512 a64ef5147e52e07d4cec8a2f3ebd1340827d0139031ef7ddaf27fc144fcc58858c3ec40eee854034423f853b2c7bdd813f66236c8a9679977084f4a2176a8ffa -AUX fvwm-2.5.27-translucent-menus.diff 15765 BLAKE2B 85623d5d671d97842ffe819ddfa1045b91ef76101ccf8cc6fdf4854c1675b397715977efafb174e340c487bafed12677a1cacb83e201424a9fed43bdfa7f8475 SHA512 92f78b624ea2bfddb88f825f40930a0a7e4bb1d284276e62985f189cd5b72ee8a92131f7d2a91efdbf508fc8ef002f5b4168188b12b0e23e28fb1ebec471969d -AUX fvwm-2.6.5-ar.patch 1077 BLAKE2B ebd3226a706087c7e7f7935a9862c59e628551e19be66d110441075839484b6bb26667104090258267b3e484c6fc0b0650349488902d216f3cf841c23e45b59e SHA512 fc66ee5c79b96860705d72b18aab3f8c8f8ad84fead47c4f8f944474a6bfbe0569ee08aa51e8a4d7982541eecd5c302499f99ebf8568f4b4fb1c9e2369233e45 -AUX fvwm-2.6.5-mouse-buttons.patch 519 BLAKE2B 23b31933e9dcc456d73be15573226017fc213da59156040136ff447b208b45691fca00b5d16cdaf57ab8411e2834d759b3bb7e53550b13ec72de4b7f70486abb SHA512 d28a9724697859ca7beac1cc2813c12413654e1c0749297c34fb0ef8bbf97369ac8039d2a82ec673d885b39e1544259b70cecf292639caa9ff99c1b42d34c196 -AUX fvwm-2.6.8-perl528.patch 515 BLAKE2B 44df7b8aef71d85c3aefefb40ab45b9e6227ef6a13aaab60cec8956db669013b4ee4dc869216972e1a443d1f69e6550e7f80dc81cdf8b7642d6c49ae46793b2a SHA512 ab35b8aef3c6d8a07f1e03290c209736ee892729d98fece3d0134fd9994f8c57bdd5703492b405a6eb52cfcd67cd9cd72c16bc25a729a46560eb6e21f2d7918f +AUX fvwm-2.5.27-translucent-menus.diff 15793 BLAKE2B 4f650c0de57d97d7c4cf6ba00728acf482f9e819e4594d540411fb790211a3e2343090ddacaffe8d25eb17f11ca80d2e7046f99c4d40bb857120d3b46551dfc3 SHA512 90427feb28cf19d9e5b92705e41d80371a7c8874fe47b5a94cf4a3f64c297536f0070ea27f749c854a5fa7b32479be48f59e6cfb8559a85f2d489c79b9bc3de6 +AUX fvwm-2.6.5-ar.patch 1077 BLAKE2B 521f2f8bdde469a158b617949f9cbc6dca2530fee377871927d0d91d1bf531e067f3e5d6aecb025512e274b1759ee3522eea639888cc2fd53737e27c3fb54f2d SHA512 fbac194b9fafafbeb1b833d842d25fd6983c041d69a4484f3d7fb75063f4ec400b55f0a5a328113cdaa93e40159552d5920e36b6885fbcd6e76549befc9135b4 +AUX fvwm-2.6.5-mouse-buttons.patch 523 BLAKE2B 3d30cdf5d9137d1d67f2795bb06256d7658bd9fe3cec6d2f1f9c3979f8dd0facd939b9bd9fef9030fbc8e3c0fcd18439563355521f7ad93f0c65d9e6844789d6 SHA512 4481397f6941f61e6962347411ab3adc66f1d3c3d443fb166840673ae404c874e8ea0c60b7df6e112d3972f3beeff94c91bd3431a7db4b62c65046ae544109e3 +AUX fvwm-2.6.8-perl528.patch 519 BLAKE2B 2e1e0e59a10dbe52275c6ef1d73e41813fba0c8e7fb6446999235b926f86fb893b3689964635b7f40599e06c67dd36984a962ec805fc4f8f5ee44dc241137cfb SHA512 8b6c960bf1ce92548288ce11e5c29e95bd60cb67505dd8051adf849c42f80a6baeaa30e3b3d67c0554d41082e7ef472bac6c6ea4c4a3ec979525a18481b18797 AUX fvwm-2.6.9-bundled-manpage.patch 340 BLAKE2B 5a63e18490342637ce1e692333db2faa19a175ab27516f02374cd29dff030b52e906e52d6eb0bd2914cd7105caf0c23ccc73a2cd0b743efec157e9db8bda5ad0 SHA512 de4cc81da91416f4183f61ec205b91650336d532194ea285298ea629610a1567bb1f6a6f95eda4003e247a110d3d2f2d5236cdfa795c636715f03813a0e1f9db AUX fvwm-2.6.9-respect-docdir.patch 455 BLAKE2B d4272d43e010a8a4456965033dff2c88a9965c6fa2c89040fa49855cd8fb7e84bf6a1fdb634359ac9f667501b29a23bf8dc052107119f53f5b9468eac2d43498 SHA512 ff17efd2f1c5e2e252ce78d6647617430582f5dad946ef6672f2893fbc383991d93725709631df671c9f10546d8f3d7fe7c634fadebfac70f1d63cc1c9f1df99 AUX fvwm-2.6.9-respect-htmldir.patch 655 BLAKE2B 3199958847a2dee691fdecc3148f630ff4c13c74845053bf4e3d566712ef6791c34a02d091c8d2966458b19ef5f1ff16b25ed7eb93cbea2ab2ee026ae177a6e0 SHA512 a20b734342d2bd6dc3e1392852dc7fc20c0f1aaa0f7aa494f0da988c41b2f6f0d8cee8811de5d56afe67715d84fa72a072ffae1206f56425ab3c9763d9ce7fdc DIST fvwm-2.6.9.tar.gz 3942859 BLAKE2B 8faf2d420d96049ab0528a6c6a5dc6ed8ee9449f8e533b9ad9bb526faea86030684fc0aa8ed0d307cb64575457676611298adf582b1249c37a3db35a72b43bf1 SHA512 a9c2214ad19edd17da81446a6d4250284cc50b59b53c233212f2a9354c01143dbb870521392752f272f00af50bee2dd8f0b6bf6176b0d4b3075694d2a61a623e -EBUILD fvwm-2.6.9.ebuild 4673 BLAKE2B 470385ab61dbadc9f7f2bea1f561e77e67ab4333912857f77f59f21d2ca38f4d7d447f686ddeece1576b7e5895fdce906ae55173ec87515e6a9e4891f2ce5f05 SHA512 c065d284de98f0521447804c88a0c1a88bdf731f72a5f6295e02c8e809675ae3ecd7aa0c7e4fd98b0766de66f40d455927d20a5f5477adafc23b4e8972f01ca7 +EBUILD fvwm-2.6.9.ebuild 4787 BLAKE2B 542457d8ca2fdf758eb2c1ff704e6e9358db90d95d0b30797f9161b4370d2e2f98c0a55bf5cb01122fc71b3d45b4567cbac8e87a5112b891ca8d827ced760f5a SHA512 84ab1dd8c5981fec343ec0846ee5cd2a6b3221fb044ee0911e7c14deb1b606227305e08ca809002a83f8bfb9c9d346106dbf854153d71d20456c465baba0ff92 diff --git a/x11-wm/fvwm/files/fvwm-2.5.27-translucent-menus.diff b/x11-wm/fvwm/files/fvwm-2.5.27-translucent-menus.diff index 1c49f69..f3019e6 100644 --- a/x11-wm/fvwm/files/fvwm-2.5.27-translucent-menus.diff +++ b/x11-wm/fvwm/files/fvwm-2.5.27-translucent-menus.diff @@ -3,8 +3,8 @@ Index: fvwm/colorset.c RCS file: /home/cvs/fvwm/fvwm/fvwm/colorset.c,v retrieving revision 1.52 diff -u -r1.52 colorset.c ---- fvwm/colorset.c 27 Jan 2007 11:33:15 -0000 1.52 -+++ fvwm/colorset.c 5 Feb 2007 19:15:51 -0000 +--- a/fvwm/colorset.c 27 Jan 2007 11:33:15 -0000 1.52 ++++ b/fvwm/colorset.c 5 Feb 2007 19:15:51 -0000 @@ -164,6 +164,8 @@ "NoIconTint", "IconAlpha", @@ -123,8 +123,8 @@ Index: fvwm/menuroot.h RCS file: /home/cvs/fvwm/fvwm/fvwm/menuroot.h,v retrieving revision 1.3 diff -u -r1.3 menuroot.h ---- fvwm/menuroot.h 13 Jan 2007 15:07:14 -0000 1.3 -+++ fvwm/menuroot.h 5 Feb 2007 19:17:37 -0000 +--- a/fvwm/menuroot.h 13 Jan 2007 15:07:14 -0000 1.3 ++++ b/fvwm/menuroot.h 5 Feb 2007 19:17:37 -0000 @@ -146,6 +146,9 @@ int d_npixels; } stored_pixels; @@ -140,8 +140,8 @@ Index: fvwm/menus.c RCS file: /home/cvs/fvwm/fvwm/fvwm/menus.c,v retrieving revision 1.409 diff -u -r1.409 menus.c ---- fvwm/menus.c 27 Jan 2007 11:51:15 -0000 1.409 -+++ fvwm/menus.c 5 Feb 2007 19:17:50 -0000 +--- a/fvwm/menus.c 27 Jan 2007 11:51:15 -0000 1.409 ++++ b/fvwm/menus.c 5 Feb 2007 19:17:50 -0000 @@ -75,6 +75,19 @@ /* ---------------------------- local macros ------------------------------- */ @@ -442,8 +442,8 @@ Index: fvwm/menus.h RCS file: /home/cvs/fvwm/fvwm/fvwm/menus.h,v retrieving revision 1.111 diff -u -r1.111 menus.h ---- fvwm/menus.h 27 Jan 2007 11:51:15 -0000 1.111 -+++ fvwm/menus.h 5 Feb 2007 19:17:50 -0000 +--- a/fvwm/menus.h 27 Jan 2007 11:51:15 -0000 1.111 ++++ b/fvwm/menus.h 5 Feb 2007 19:17:50 -0000 @@ -15,6 +15,9 @@ #define IS_MENU_RETURN(x) \ ((x)==MENU_DONE || (x)==MENU_ABORTED || (x)==MENU_SUBMENU_TORN_OFF) @@ -459,8 +459,8 @@ Index: libs/Colorset.h RCS file: /home/cvs/fvwm/fvwm/libs/Colorset.h,v retrieving revision 1.38 diff -u -r1.38 Colorset.h ---- libs/Colorset.h 10 Jan 2007 00:34:27 -0000 1.38 -+++ libs/Colorset.h 5 Feb 2007 19:19:00 -0000 +--- a/libs/Colorset.h 10 Jan 2007 00:34:27 -0000 1.38 ++++ b/libs/Colorset.h 5 Feb 2007 19:19:00 -0000 @@ -51,6 +51,10 @@ Bool dither; Bool allows_buffered_transparency; @@ -497,8 +497,8 @@ Index: libs/PictureGraphics.c RCS file: /home/cvs/fvwm/fvwm/libs/PictureGraphics.c,v retrieving revision 1.29 diff -u -r1.29 PictureGraphics.c ---- libs/PictureGraphics.c 27 Jan 2007 11:33:16 -0000 1.29 -+++ libs/PictureGraphics.c 5 Feb 2007 19:19:49 -0000 +--- a/libs/PictureGraphics.c 27 Jan 2007 11:33:16 -0000 1.29 ++++ b/libs/PictureGraphics.c 5 Feb 2007 19:19:49 -0000 @@ -1340,7 +1340,7 @@ } } @@ -513,8 +513,8 @@ Index: libs/PictureGraphics.h RCS file: /home/cvs/fvwm/fvwm/libs/PictureGraphics.h,v retrieving revision 1.13 diff -u -r1.13 PictureGraphics.h ---- libs/PictureGraphics.h 9 May 2006 20:46:29 -0000 1.13 -+++ libs/PictureGraphics.h 5 Feb 2007 19:19:49 -0000 +--- a/libs/PictureGraphics.h 9 May 2006 20:46:29 -0000 1.13 ++++ b/libs/PictureGraphics.h 5 Feb 2007 19:19:49 -0000 @@ -122,7 +122,9 @@ Display *dpy, Window win, Pixel tint, int tint_percent, Drawable dest, Bool dest_is_a_window, GC gc, GC mono_gc, GC alpha_gc, diff --git a/x11-wm/fvwm/files/fvwm-2.6.5-ar.patch b/x11-wm/fvwm/files/fvwm-2.6.5-ar.patch index b1d6200..df3f39c 100644 --- a/x11-wm/fvwm/files/fvwm-2.6.5-ar.patch +++ b/x11-wm/fvwm/files/fvwm-2.6.5-ar.patch @@ -1,5 +1,5 @@ ---- configure.ac 2012-04-20 12:58:29.000000000 +0200 -+++ configure_new.ac 2013-07-21 18:26:17.513904607 +0200 +--- a/configure.ac 2012-04-20 12:58:29.000000000 +0200 ++++ b/configure.ac 2013-07-21 18:26:17.513904607 +0200 @@ -209,6 +209,10 @@ # optional libraries. AC_PROG_CC @@ -11,8 +11,8 @@ # added -Wall for gcc, what about for others? if test "x$GCC" = "xyes"; then ---- libs/Makefile.in 2012-04-20 13:03:55.000000000 +0200 -+++ libs/Makefile_new.in 2013-07-21 18:27:17.443992505 +0200 +--- a/libs/Makefile.in 2012-04-20 13:03:55.000000000 +0200 ++++ b/libs/Makefile.in 2013-07-21 18:27:17.443992505 +0200 @@ -48,7 +48,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = @@ -22,8 +22,8 @@ ARFLAGS = cru libfvwm_a_AR = $(AR) $(ARFLAGS) libfvwm_a_DEPENDENCIES = @LIBOBJS@ @ALLOCA@ ---- modules/FvwmScript/Widgets/Makefile.in 2012-04-20 13:03:56.000000000 +0200 -+++ modules/FvwmScript/Widgets/Makefile_new.in 2013-07-21 18:27:23.844001892 +0200 +--- a/modules/FvwmScript/Widgets/Makefile.in 2012-04-20 13:03:56.000000000 +0200 ++++ b/modules/FvwmScript/Widgets/Makefile.in 2013-07-21 18:27:23.844001892 +0200 @@ -46,7 +46,7 @@ CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = diff --git a/x11-wm/fvwm/files/fvwm-2.6.5-mouse-buttons.patch b/x11-wm/fvwm/files/fvwm-2.6.5-mouse-buttons.patch index 7eaa3e2..0c46690 100644 --- a/x11-wm/fvwm/files/fvwm-2.6.5-mouse-buttons.patch +++ b/x11-wm/fvwm/files/fvwm-2.6.5-mouse-buttons.patch @@ -1,5 +1,5 @@ ---- libs/defaults.h 2011-08-15 18:25:40.000000000 +0200 -+++ libs/defaults.h 2012-04-12 21:13:47.000000000 +0200 +--- a/libs/defaults.h 2011-08-15 18:25:40.000000000 +0200 ++++ b/libs/defaults.h 2012-04-12 21:13:47.000000000 +0200 @@ -25,7 +25,7 @@ /* The "extended" buttons do not provide the full functionality because X has * no bit mask value for them. Things like dragging windows don't work with diff --git a/x11-wm/fvwm/files/fvwm-2.6.8-perl528.patch b/x11-wm/fvwm/files/fvwm-2.6.8-perl528.patch index 5735fb1..5555560 100644 --- a/x11-wm/fvwm/files/fvwm-2.6.8-perl528.patch +++ b/x11-wm/fvwm/files/fvwm-2.6.8-perl528.patch @@ -1,5 +1,5 @@ ---- modules/FvwmPerl/FvwmPerl.in 2018-04-28 07:46:28.000000000 -0400 -+++ modules/FvwmPerl/FvwmPerl.in 2019-01-06 20:44:59.035950968 -0500 +--- a/modules/FvwmPerl/FvwmPerl.in 2018-04-28 07:46:28.000000000 -0400 ++++ b/modules/FvwmPerl/FvwmPerl.in 2019-01-06 20:44:59.035950968 -0500 @@ -319,11 +319,11 @@ $FVWM_DATADIR = $FVWM_DATADIR || $module->site_data_dir; $FVWM_USERDIR = $FVWM_USERDIR || $module->user_data_dir; diff --git a/x11-wm/fvwm/fvwm-2.6.9.ebuild b/x11-wm/fvwm/fvwm-2.6.9.ebuild index 2f03c11..0ad1fcc 100644 --- a/x11-wm/fvwm/fvwm-2.6.9.ebuild +++ b/x11-wm/fvwm/fvwm-2.6.9.ebuild @@ -1,4 +1,4 @@ -# Copyright © 2021 Nick Bowler +# Copyright © 2021-2022 Nick Bowler # License GPLv2+: GNU General Public License version 2 or any later version. # This is free software: you are free to change and redistribute it. # There is NO WARRANTY, to the extent permitted by law. @@ -6,19 +6,25 @@ # This is a modified version of the original ebuild from Gentoo GNU/Linux, # covered by the following copyright and permission notice: # -# Copyright 1999-2020 Gentoo Authors +# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 +# +# The modifications include: +# +# * patch build system to install bundled manpage (2021-02) +# * fix prefixed installation in src_install (2021-02) +# * convert patches to -p1 (2022-06) EAPI=7 inherit autotools flag-o-matic desktop DESCRIPTION="An extremely powerful ICCCM-compliant multiple virtual desktop window manager" -HOMEPAGE="http://www.fvwm.org/" +HOMEPAGE="https://www.fvwm.org/" SRC_URI="https://github.com/fvwmorg/fvwm/releases/download/${PV}/${P}.tar.gz" -LICENSE="GPL-2 FVWM" +LICENSE="GPL-2+ FVWM" SLOT="0" -KEYWORDS="~alpha amd64 ~arm ~ia64 ppc ~ppc64 ~sparc x86" +KEYWORDS="~alpha amd64 ~arm ~ia64 ppc ~ppc64 ~riscv ~sparc x86" IUSE="bidi debug doc netpbm nls perl png readline rplay stroke svg tk truetype +vanilla xinerama lock" COMMON_DEPEND=" @@ -53,6 +59,7 @@ COMMON_DEPEND=" " RDEPEND="${COMMON_DEPEND} dev-lang/perl + sys-apps/debianutils perl? ( tk? ( dev-lang/tk dev-perl/Tk @@ -61,8 +68,7 @@ RDEPEND="${COMMON_DEPEND} ) rplay? ( media-sound/rplay ) lock? ( x11-misc/xlockmore ) - userland_GNU? ( sys-apps/debianutils ) - !x86-fbsd? ( netpbm? ( media-libs/netpbm ) ) + netpbm? ( media-libs/netpbm ) " DEPEND="${COMMON_DEPEND} virtual/pkgconfig @@ -70,25 +76,21 @@ DEPEND="${COMMON_DEPEND} doc? ( dev-libs/libxslt ) " -PATCHES=( +PATCHES=( + "$FILESDIR/$PN-2.6.5-ar.patch" #474528 + "$FILESDIR/$PN-2.6.8-perl528.patch" # Fix for Perl 5.28 "$FILESDIR/$PN-2.6.9-respect-docdir.patch" "$FILESDIR/$PN-2.6.9-respect-htmldir.patch" "$FILESDIR/$PN-2.6.9-bundled-manpage.patch" ) - src_prepare() { - if ! use vanilla; then + use vanilla || PATCHES+=( # Enables fast translucent menus; patch from fvwm-user mailing list. - eapply -p0 "${FILESDIR}/${PN}-2.5.27-translucent-menus.diff" + "$FILESDIR/$PN-2.5.27-translucent-menus.diff" # Allow more mouse buttons, bug #411811 - eapply -p0 "${FILESDIR}/${PN}-2.6.5-mouse-buttons.patch" - fi - - eapply -p0 "${FILESDIR}/${PN}-2.6.5-ar.patch" #474528 - - # Fix for Perl 5.28 - eapply -p0 "${FILESDIR}/${PN}-2.6.8-perl528.patch" + "$FILESDIR/$PN-2.6.5-mouse-buttons.patch" + ) default eautoreconf