www-client/links: reduce USE=X dependency to the minimum requirement

links checks for the X11 headers at configure time, and builds against
them. It doesn't use any Xext content, and doesn't need to depend on it.

Separately, it does require xorg-proto at build time, similar to many
other packages. However it declared no dependency on it at all. The
dependency could be transitively satisfied by other software using
xorg-proto if built from source without binpkgs, but best not to rely on
that!

Signed-off-by: Eli Schwartz <eschwartz93@gmail.com>
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Eli Schwartz
2024-01-16 15:45:34 -05:00
committed by Sam James
parent efb53a26f4
commit 84298741b1

View File

@@ -0,0 +1,186 @@
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit autotools desktop toolchain-funcs xdg-utils
DESCRIPTION="A fast and lightweight web browser running in both graphics and text mode"
HOMEPAGE="http://links.twibright.com/"
SRC_URI="http://${PN}.twibright.com/download/${P}.tar.bz2
X? ( https://dashboard.snapcraft.io/site_media/appmedia/2018/07/links-graphics-xlinks-logo-pic.png )"
LICENSE="GPL-2"
SLOT="2"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
IUSE="avif brotli bzip2 fbcon freetype gpm jpeg libevent livecd lzip lzma selinux ssl suid svga tiff webp X zlib zstd"
GRAPHICS_DEPEND="media-libs/libpng:="
RDEPEND="
dev-libs/libbsd
avif? (
media-libs/libavif:=
)
brotli? (
app-arch/brotli:=
)
bzip2? (
app-arch/bzip2
)
fbcon? (
${GRAPHICS_DEPEND}
)
freetype? (
media-libs/fontconfig
media-libs/freetype
)
gpm? (
sys-libs/gpm
)
jpeg? (
media-libs/libjpeg-turbo:=
)
libevent? (
dev-libs/libevent:=
)
livecd? (
${GRAPHICS_DEPEND}
sys-libs/gpm
media-libs/libjpeg-turbo:=
)
lzip? (
app-arch/lzlib
)
lzma? (
app-arch/xz-utils
)
ssl? (
dev-libs/openssl:=
)
svga? (
${GRAPHICS_DEPEND}
media-libs/svgalib
)
tiff? (
media-libs/tiff:=
)
webp? (
media-libs/libwebp:=
)
X? (
${GRAPHICS_DEPEND}
x11-libs/libX11
)
zlib? (
sys-libs/zlib
)
zstd? (
app-arch/zstd:=
)"
DEPEND="${RDEPEND}
fbcon? ( virtual/os-headers )
livecd? ( virtual/os-headers )
X? ( x11-base/xorg-proto )
"
BDEPEND="virtual/pkgconfig"
IDEPEND="X? ( dev-util/desktop-file-utils )"
RDEPEND+=" selinux? ( sec-policy/selinux-links )"
REQUIRED_USE="!livecd? ( fbcon? ( gpm ) )
svga? ( suid )"
DOCS=( AUTHORS BRAILLE_HOWTO ChangeLog KEYS NEWS README SITES )
PATCHES=( "${FILESDIR}/links-2.29-fix-zstd-only-build.patch" )
src_prepare() {
use X && xdg_environment_reset
pushd intl > /dev/null || die
./gen-intl || die
./synclang || die
popd > /dev/null || die
# error: conditional "am__fastdepCXX" was never defined (for eautoreconf)
sed -i \
-e '/AC_PROG_CXX/s:dnl ::' \
-e 's:AM_CONFIG_HEADER:AC_CONFIG_HEADERS:' \
configure.in || die #467020
# Upstream configure produced by broken autoconf-2.13. This also fixes
# toolchain detection.
mv configure.in configure.ac || die
default
eautoreconf #131440 and #103483#c23
}
src_configure() {
local myconf
if use livecd; then
export ac_cv_lib_gpm_Gpm_Open=yes
myconf+=' --with-fb --with-libjpeg'
else
export ac_cv_lib_gpm_Gpm_Open=$(usex gpm)
fi
if use X || use fbcon || use svga || use livecd; then
myconf+=' --enable-graphics'
fi
tc-export PKG_CONFIG
econf \
--without-directfb \
--without-librsvg \
--with-ipv6 \
$(use_with avif libavif) \
$(use_with brotli) \
$(use_with bzip2) \
$(use_with fbcon fb) \
$(use_with freetype) \
$(use_with jpeg libjpeg) \
$(use_with libevent) \
$(use_with lzip) \
$(use_with lzma) \
$(use_with ssl) \
$(use_with svga svgalib) \
$(use_with tiff libtiff) \
$(use_with webp libwebp) \
$(use_with X x) \
$(use_with zlib) \
$(use_with zstd) \
${myconf}
}
src_install() {
HTML_DOCS="doc/links_cal/*"
default
if use X; then
newicon "${DISTDIR}"/links-graphics-xlinks-logo-pic.png links.png
make_desktop_entry 'links -g %u' Links links 'Network;WebBrowser'
local d="${ED}"/usr/share/applications
echo 'MimeType=x-scheme-handler/http;' >> "${d}"/*.desktop || die
if use ssl; then
sed -i -e 's:x-scheme-handler/http;:&x-scheme-handler/https;:' \
"${d}"/*.desktop || die
fi
fi
use suid && fperms 4755 /usr/bin/links
}
pkg_postinst() {
use X && xdg_desktop_database_update
}
pkg_postrm() {
use X && xdg_desktop_database_update
}