summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVirgil Dupras <vdupras@gentoo.org>2018-11-07 14:44:07 -0500
committerVirgil Dupras <vdupras@gentoo.org>2018-11-07 14:45:52 -0500
commit9eda6f0cb7caedb3b295c555d4f3557efe40e3c1 (patch)
tree0d3ba64396b86b6d7f306ae046c34e302f5cf9b3 /www-client/netsurf
parentdev-ruby/loofah: cleanup (diff)
downloadgentoo-9eda6f0cb7caedb3b295c555d4f3557efe40e3c1.tar.gz
gentoo-9eda6f0cb7caedb3b295c555d4f3557efe40e3c1.tar.bz2
gentoo-9eda6f0cb7caedb3b295c555d4f3557efe40e3c1.zip
www-client/netsurf: drop netsurf eclass
The netsurf project has tons of little single-purpose libraries that aren't used in any other project. That causes us to create many packages *and* maintain an eclass for a program that isn't the most popular (it had been completely broken for 3 months until a few weeks ago). In this commit, I take the worst offenders and bundle them directly in netsurf's ebuild. The long term goal is to eventually get rid of the netsurf eclass by reducing the number of packaged netsurf libs (and thus make the copy-paste of ebuild boilerplate less painful). Other changes: * Drop multilib. I really don't see the point of it and it adds needless complexity. * Drop fb.modes. This is related to directfb, which isn't supported in Gentoo any more. * Drop "linux" and "able" frontends. They aren't listed in libnsfb's supported frontends. * Allow more than one fb frontend to be selected. * Don't set NETSURF_FB_FRONTEND. It has no effect. Closes: https://bugs.gentoo.org/669714 Signed-off-by: Virgil Dupras <vdupras@gentoo.org> Package-Manager: Portage-2.3.51, Repoman-2.3.11
Diffstat (limited to 'www-client/netsurf')
-rw-r--r--www-client/netsurf/Manifest9
-rw-r--r--www-client/netsurf/netsurf-3.8-r1.ebuild219
2 files changed, 228 insertions, 0 deletions
diff --git a/www-client/netsurf/Manifest b/www-client/netsurf/Manifest
index b47aff4703c..f7edcc8bd8e 100644
--- a/www-client/netsurf/Manifest
+++ b/www-client/netsurf/Manifest
@@ -1,3 +1,12 @@
+DIST libcss-0.8.0-src.tar.gz 516474 BLAKE2B 937adc65f68fecece189e0f06cfd601ae2d76f0b4dcdbcb8a67f3f058c4355c19c12c088fb50ecf1e6bcd8436c867b1845b3da27bb44b5d1a009bd946bf5e53e SHA512 fb52920ce462f442dfafa7b0061fa465e6c04827d26186e8468855c2a40e8f34e6f0689d5eb58cb0b2ee0759d083fcff5c8c583e1d98693755003c352a22a4be
+DIST libnsbmp-0.1.5-src.tar.gz 463299 BLAKE2B a9aa4f682262c4bfb5007c623e3da324f9ce2ddb732737b8217def899e8507ae41589607a1e0b71b34190542981ad4286f64f87795f0043049626c101001fd85 SHA512 2998de98db05a04fb860fdea258961d66aebc78d58614054311ed4cafa2f265472ad19789ab1e343d39ca293e0a304baee4941bd04948d9cc7c39bdadb0756e6
+DIST libnsfb-0.2.0-src.tar.gz 82322 BLAKE2B d805478728015663b4bf9c8de018bda33dcd84a7ace7246c450a7c31cc3358f834ade21ac1df9f0ca0e4dcea1138369cc3cd9ac468ebb484cce139d4bc89441e SHA512 b90eca76c8dcb22e554e13b5bea4268e5c9fc6e4711bafa5acbed92cc83513c3a3965208b3956de250fb3013cc3db6a33922ded471fa7a24bde97f748d2212c5
+DIST libnsgif-0.2.1-src.tar.gz 268328 BLAKE2B ccebd1830db1caa016ebc0c1f2c421523963df16e38cdf85c5300d2a9a325dc9c52c89c79ccbddbc315535a20607458bbfedcde8df02b5e2977d383cd6603220 SHA512 29affce6de38574103a9777e741a44b448145d96ef63e4b86056f268c5d1389f6c5f25240a9f3ef2208fab229eabef2542f3d7ce7b37a0137071f204fbd736af
+DIST libnspsl-0.1.3-src.tar.gz 311065 BLAKE2B ef846482c677e98a9eae646597e893f4e94161a60482127a88440a3786d2f9e3c4458a823ac878c64bc7d1b00080653facc28f408d2a44b571835958966297af SHA512 da4069dee152d126d53e442c8ced1438707db1ccee779bd2abe752a8d1dc30e40036037674e220bb24adad49fe406633e0d07e5d29d209b9fb223107c0e89415
+DIST libnsutils-0.0.5-src.tar.gz 7653 BLAKE2B 4f7810f436f5ffd33084bc67095f3cb48a7744ef6f9ab0d632cd7b87467ff8bca54809de5a8ea837a00429c951d4e701909bd5f185e1c600a7323393017596cb SHA512 b9611db39adf11aa4e29387614bf55e241c075a223c687f5520e5b6808cc392c847be1a1d74559928e385a93886c4a67158504342384a1b200cf9ce13c00db50
+DIST librosprite-0.1.3-src.tar.gz 32816 BLAKE2B 553f5046eac8b7de5940e812103a545ee1d599bcc30d4fd6bb14449e0718364132e76e3992b224d0d2dd3c7582100fe6d9e4d433f245a89b23e3f15542329e0e SHA512 ab039ab12df7f527a86a76247bc5cb70ebe550591f81a1b987abef73fb3c6bd25c9a36afe17bd6717f4f33b1a133d847bb5acad53057aa3c406efe4ebcdc601b
+DIST libsvgtiny-0.1.7-src.tar.gz 760963 BLAKE2B badf14e656e10a178a6b692659265644b636cc103ec92f89026638700293028e0b06b5e051c420911fd6c319a94bab68328b1d9f42cec69dc7926c2d31aeec67 SHA512 c13352325d32b6f41159b09607b12a373517672e9e4da6d26cbca9a7fb1896b6e5730aee53adaa51f0b49c35f7dd9e9ece6b1f0187a7f5494b5cc223acbe64ad
DIST netsurf-3.8-src.tar.gz 3945752 BLAKE2B 0f4592e53e95cfedb3c34a16ce9df9baeeaed93afb3bac3d68dab1e3d80e67c0498111c123285f6e828d063574e0e5f0cc3aa337ffab066f2283d06d248a308a SHA512 6f4dfdc546cce3b85d32da0dd816adc9a39410ed42bc28f263f4a1db64b35a889a1784a4116715190e756988dd263976933cfac75c9dcd81af01954487ddcaf6
DIST netsurf-buildsystem-1.7.tar.gz 38597 BLAKE2B d0981ef282ac0d93d81a1a6a6bee1fc2a0151c962be6ce2900a67843ba8ebc67e00508cded2a7375f6bbe0d45572690f127872936a282de80eb08655ac571603 SHA512 f6a46ac25f41e695ec13d7b2b564250c4cc44a40a688904eb17aa4b547c2df0102cc0effb7a23a2ffa6b9178ae5cf452b63980caf26e06e479168c85803f1e58
DIST netsurf-fb.modes-example.gz 4586 BLAKE2B 89c76fde1ddc79e46f22d9f628f8d75ec57be2a29d31383550137e3b502aa4d8c0a733b755731c916d4d544679a4253323bc343528c5e2c4f145c3318ac1d86d SHA512 753a707dc428212803dd64250bb723a498fdc1c328fdac4df38be533eab3af45f727cdc6b7ced3faaa0e82db182c4eab140b8e81b0d3cfe2152252b89e6d2981
+DIST nsgenbind-0.6-src.tar.gz 106862 BLAKE2B 9b40ae6298921736f7d876ae664207eb71102adbe44f4072ea46b08b63cb5cf608df4c96f3ade1c8cca964d8d8b32d68aad25431f6fd455eb8392d8313faa9e9 SHA512 3083b48e48fcf8c7f32b09d040998470d5917469e020c4ccbfb8ffdb7d1252fd27dd02f590f5a2485c6984cdbc005ea87adf0db45077aee0a91f68037c542ffb
diff --git a/www-client/netsurf/netsurf-3.8-r1.ebuild b/www-client/netsurf/netsurf-3.8-r1.ebuild
new file mode 100644
index 00000000000..aa901f79def
--- /dev/null
+++ b/www-client/netsurf/netsurf-3.8-r1.ebuild
@@ -0,0 +1,219 @@
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit toolchain-funcs desktop
+
+NETSURF_BUILDSYSTEM=buildsystem-1.7
+
+# The netsurf project enthusiastically fragments its code in many little
+# libraries. It's all fine and dandy, until comes the time to package it. Very
+# few of those libraries are used anywhere else have their development process
+# very tightly coupled to netsurf's. Moreover, they all use netsurf's weird
+# build system. Packaging those libraries individually creates a lot of
+# overhead. We try to minimize that overhead by grouping the worst offenders
+# (in terms of "single-purposeness") in this ebuild. This is generally not the
+# Gentoo way, but doing otherwise makes netsurf's footprint in the Gentoo tree
+# disproportionally high in relation to the program's importance.
+NETSURF_LIBS_URL="http://download.netsurf-browser.org/libs/releases"
+NETSURF_LIBS=(
+ "libnsutils-0.0.5"
+ "libcss-0.8.0"
+ "libnsbmp-0.1.5 bmp"
+ "libnsfb-0.2.0 fbcon"
+ "libnsgif-0.2.1 gif"
+ "libnspsl-0.1.3 psl"
+ "librosprite-0.1.3 rosprite"
+ "libsvgtiny-0.1.7 svgtiny"
+ "nsgenbind-0.6 javascript"
+)
+NETSURF_STATIC_LIBS_TARGET="${WORKDIR}/inst"
+
+DESCRIPTION="a free, open source web browser"
+HOMEPAGE="http://www.netsurf-browser.org/"
+SRC_URI="http://download.netsurf-browser.org/netsurf/releases/source/${P}-src.tar.gz
+ ${NETSURF_LIBS_URL}/${NETSURF_BUILDSYSTEM}.tar.gz -> netsurf-${NETSURF_BUILDSYSTEM}.tar.gz"
+
+for netsurf_lib in "${NETSURF_LIBS[@]}"; do
+ netsurf_lib=( $netsurf_lib )
+ netsurf_lib_uri="${NETSURF_LIBS_URL}/${netsurf_lib[0]}-src.tar.gz"
+ if [[ -z "${netsurf_lib[1]}" ]]; then
+ SRC_URI+=" ${netsurf_lib_uri}"
+ else
+ SRC_URI+=" ${netsurf_lib[1]}? ( ${netsurf_lib_uri} )"
+ fi
+done
+
+LICENSE="GPL-2 MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc"
+IUSE="+bmp +duktape fbcon truetype +gif gtk gtk2 +javascript +jpeg +mng
+ pdf-writer +png +psl +rosprite +svg +svgtiny +webp
+ fbcon_frontend_sdl fbcon_frontend_vnc fbcon_frontend_x"
+
+REQUIRED_USE="|| ( fbcon gtk gtk2 )
+ fbcon? ( || ( fbcon_frontend_sdl fbcon_frontend_vnc fbcon_frontend_x ) )
+ duktape? ( javascript )"
+
+RDEPEND="
+ >=net-libs/libdom-0.3[xml]
+ >=dev-libs/libutf8proc-2.2
+ net-misc/curl
+ fbcon? (
+ truetype? ( media-fonts/dejavu >=media-libs/freetype-2.5.0.1 )
+ )
+ fbcon_frontend_sdl? ( >=media-libs/libsdl-1.2.15-r4 )
+ fbcon_frontend_vnc? ( >=net-libs/libvncserver-0.9.9-r2 )
+ fbcon_frontend_x? (
+ >=x11-libs/libxcb-1.9.1
+ >=x11-libs/xcb-util-0.3.9-r1
+ >=x11-libs/xcb-util-image-0.3.9-r1
+ >=x11-libs/xcb-util-keysyms-0.3.9-r1 )
+ gtk? ( dev-libs/glib:2 x11-libs/gtk+:3 )
+ gtk2? ( dev-libs/glib:2 x11-libs/gtk+:2 )
+ javascript? (
+ virtual/yacc
+ !duktape? ( dev-lang/spidermonkey:0= ) )
+ jpeg? ( >=virtual/jpeg-0-r2:0 )
+ mng? ( >=media-libs/libmng-1.0.10-r2 )
+ pdf-writer? ( media-libs/libharu )
+ png? ( >=media-libs/libpng-1.2.51:0 )
+ svg? ( !svgtiny? ( gnome-base/librsvg:2 ) )
+ webp? ( >=media-libs/libwebp-0.3.0 )"
+DEPEND="${RDEPEND}
+ dev-libs/check
+ dev-perl/HTML-Parser"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.8-CFLAGS.patch
+ "${FILESDIR}"/${PN}-3.6-conditionally-include-image-headers.patch
+ "${FILESDIR}"/${PN}-3.8-pdf-writer.patch
+)
+
+DOCS=( README docs/using-framebuffer.md
+ docs/ideas/{cache,css-engine,render-library}.txt )
+
+src_prepare() {
+ default
+ rm -r frontends/{amiga,atari,beos,monkey,riscos,windows} || die
+}
+
+netsurf_patch_build() {
+ sed -e "/^INSTALL_ITEMS/s: /lib: /$(get_libdir):g" \
+ -i Makefile || die
+ if [ -f ${PN}.pc.in ] ; then
+ sed -e "/^libdir/s:/lib:/$(get_libdir):g" \
+ -i ${PN}.pc.in || die
+ fi
+}
+
+src_configure() {
+ netsurf_base_makeconf=(
+ NSSHARED=${WORKDIR}/${NETSURF_BUILDSYSTEM}
+ Q=
+ CC="$(tc-getCC)"
+ LD="$(tc-getLD)"
+ HOST_CC="\$(CC)"
+ CCOPT=
+ CCNOOPT=
+ CCDBG=
+ LDDBG=
+ AR="$(tc-getAR)"
+ )
+
+ sed -e 's:/bin/which:which:' \
+ -i "${WORKDIR}/${NETSURF_BUILDSYSTEM}/makefiles/Makefile.tools" || die
+
+ local netsurf_lib
+ for netsurf_lib in "${NETSURF_LIBS[@]}"; do
+ netsurf_lib=( $netsurf_lib )
+ # if it's not there, its because its USE flag is not selected
+ if cd "${WORKDIR}/${netsurf_lib[0]}"; then
+ netsurf_patch_build
+ fi
+ done
+
+ cd "${S}" || die
+ netsurf_patch_build
+
+ PKG_CONFIG_PATH="${NETSURF_STATIC_LIBS_TARGET}/lib/pkgconfig"
+ PATH="${PATH}:${NETSURF_STATIC_LIBS_TARGET}/bin"
+ netsurf_libs_makeconf=(
+ "${netsurf_base_makeconf[@]}"
+ PREFIX="${NETSURF_STATIC_LIBS_TARGET}"
+ )
+ netsurf_makeconf=(
+ "${netsurf_base_makeconf[@]}"
+ PREFIX="${EROOT}"usr
+ LIBDIR="$(get_libdir)"
+ NETSURF_USE_BMP=$(usex bmp YES NO)
+ NETSURF_USE_GIF=$(usex gif YES NO)
+ NETSURF_USE_JPEG=$(usex jpeg YES NO)
+ NETSURF_USE_PNG=$(usex png YES NO)
+ NETSURF_USE_NSPSL=$(usex psl YES NO)
+ NETSURF_USE_MNG=$(usex mng YES NO)
+ NETSURF_USE_WEBP=$(usex webp YES NO)
+ NETSURF_USE_MOZJS=$(usex javascript $(usex duktape NO YES) NO)
+ NETSURF_USE_JS=NO
+ NETSURF_USE_DUKTAPE=$(usex javascript $(usex duktape YES NO) NO)
+ NETSURF_USE_HARU_PDF=$(usex pdf-writer YES NO)
+ NETSURF_USE_NSSVG=$(usex svg $(usex svgtiny YES NO) NO)
+ NETSURF_USE_RSVG=$(usex svg $(usex svgtiny NO YES) NO)
+ NETSURF_USE_ROSPRITE=$(usex rosprite YES NO)
+ PKG_CONFIG=$(tc-getPKG_CONFIG)
+ NETSURF_FB_FONTLIB=$(usex truetype freetype internal)
+ NETSURF_FB_FONTPATH=${EROOT}usr/share/fonts/dejavu
+ NETSURF_USE_VIDEO=NO
+ )
+}
+
+src_compile() {
+ local netsurf_lib
+ for netsurf_lib in "${NETSURF_LIBS[@]}"; do
+ netsurf_lib=( $netsurf_lib )
+ # if it's not there, its because its USE flag is not selected
+ if cd "${WORKDIR}/${netsurf_lib[0]}"; then
+ emake "${netsurf_libs_makeconf[@]}" install
+ fi
+ done
+
+ cd "${S}" || die
+ use fbcon && emake "${netsurf_makeconf[@]}" TARGET=framebuffer
+ use gtk2 && emake "${netsurf_makeconf[@]}" TARGET=gtk
+ use gtk && emake "${netsurf_makeconf[@]}" TARGET=gtk3
+}
+
+src_test() {
+ emake "${netsurf_makeconf[@]}" test
+}
+
+src_install() {
+ sed -e '1iexit;' \
+ -i "${WORKDIR}"/*/utils/git-testament.pl || die
+
+ if use fbcon ; then
+ emake "${netsurf_makeconf[@]}" DESTDIR="${D}" TARGET=framebuffer install
+ elog "framebuffer binary has been installed as netsurf-fb"
+ make_desktop_entry "${EROOT}"/usr/bin/netsurf-fb NetSurf-framebuffer netsurf "Network;WebBrowser"
+ fi
+ if use fbcon_frontend_sdl; then
+ elog "To be able to use netsurf without X, don't forget to enable the "
+ elog "proper USE flags in libsdl (fbcon). Also, make /dev/input/mice "
+ elog "readable to the account using netsurf-fb. Either use chmod a+r "
+ elog "/dev/input/mice (security!!!) or use a group."
+ fi
+ if use gtk2 ; then
+ emake "${netsurf_makeconf[@]}" DESTDIR="${D}" TARGET=gtk install
+ elog "netsurf gtk2 version has been installed as netsurf-gtk"
+ make_desktop_entry "${EROOT}"/usr/bin/netsurf-gtk NetSurf-gtk netsurf "Network;WebBrowser"
+ fi
+ if use gtk ; then
+ emake "${netsurf_makeconf[@]}" DESTDIR="${D}" TARGET=gtk3 install
+ elog "netsurf gtk3 version has been installed as netsurf-gtk3"
+ make_desktop_entry "${EROOT}"/usr/bin/netsurf-gtk3 NetSurf-gtk3 netsurf "Network;WebBrowser"
+ fi
+
+ insinto /usr/share/pixmaps
+ doins frontends/gtk/res/netsurf.xpm
+}