diff options
author | Marek Szuba <marecki@gentoo.org> | 2020-12-20 21:20:46 +0000 |
---|---|---|
committer | Marek Szuba <marecki@gentoo.org> | 2020-12-20 21:25:04 +0000 |
commit | 6c7badd7786ba4a87ea407be061329bfd7904f8b (patch) | |
tree | 436e48ebf05503be7faa78988a6f98c2ce339d4b /net-irc | |
parent | x11-plugins/wmmaiload: multiple build fixes (diff) | |
download | gentoo-6c7badd7786ba4a87ea407be061329bfd7904f8b.tar.gz gentoo-6c7badd7786ba4a87ea407be061329bfd7904f8b.tar.bz2 gentoo-6c7badd7786ba4a87ea407be061329bfd7904f8b.zip |
net-irc/weechat: migrate to lua-single.eclass
Both the latest release and the live ebuild.
Upstream build scripts use pkg-config to find Lua so there is no need
to pass Lua version to cmake + it might support LuaJIT. On the other hand,
they only fall back to unversioned module name having enumerated
supported versions so some patching is still necessary.
Both migrated ebuilds build, test and install fine for all supported Lua
implementations.
Closes: https://bugs.gentoo.org/752813
Signed-off-by: Marek Szuba <marecki@gentoo.org>
Diffstat (limited to 'net-irc')
-rw-r--r-- | net-irc/weechat/files/weechat-3.0-cmake_lua_version.patch | 9 | ||||
-rw-r--r-- | net-irc/weechat/weechat-3.0-r100.ebuild | 170 | ||||
-rw-r--r-- | net-irc/weechat/weechat-9999.ebuild | 11 |
3 files changed, 188 insertions, 2 deletions
diff --git a/net-irc/weechat/files/weechat-3.0-cmake_lua_version.patch b/net-irc/weechat/files/weechat-3.0-cmake_lua_version.patch new file mode 100644 index 000000000000..6ed16efbd064 --- /dev/null +++ b/net-irc/weechat/files/weechat-3.0-cmake_lua_version.patch @@ -0,0 +1,9 @@ +--- a/cmake/FindLua.cmake ++++ b/cmake/FindLua.cmake +@@ -35,5 +35,5 @@ + + find_package(PkgConfig) + if(PKG_CONFIG_FOUND) +- pkg_search_module(LUA lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua51 lua-5.0 lua5.0 lua50 lua) ++ pkg_search_module(LUA lua) + endif() diff --git a/net-irc/weechat/weechat-3.0-r100.ebuild b/net-irc/weechat/weechat-3.0-r100.ebuild new file mode 100644 index 000000000000..9612d0567f73 --- /dev/null +++ b/net-irc/weechat/weechat-3.0-r100.ebuild @@ -0,0 +1,170 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LUA_COMPAT=( lua5-{1..4} ) +PYTHON_COMPAT=( python3_{7..9} ) + +inherit cmake lua-single python-single-r1 xdg-utils + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/weechat/weechat.git" +else + SRC_URI="https://weechat.org/files/src/${P}.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86 ~x64-macos" +fi + +DESCRIPTION="Portable and multi-interface IRC client" +HOMEPAGE="https://weechat.org/" + +LICENSE="GPL-3" +SLOT="0" + +NETWORKS="+irc" +PLUGINS="+alias +buflist +charset +exec +fifo +fset +logger +relay +scripts +spell +trigger +xfer" +# dev-lang/v8 was dropped from Gentoo so we can't enable javascript support +SCRIPT_LANGS="guile lua +perl php +python ruby tcl" +LANGS=" cs de es fr it ja pl ru" +IUSE="doc man nls test ${SCRIPT_LANGS} ${PLUGINS} ${INTERFACES} ${NETWORKS}" + +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + test? ( nls ) +" + +RDEPEND=" + dev-libs/libgcrypt:0= + net-libs/gnutls:= + sys-libs/ncurses:0= + sys-libs/zlib:= + net-misc/curl[ssl] + charset? ( virtual/libiconv ) + guile? ( >=dev-scheme/guile-2.0 ) + lua? ( ${LUA_DEPS} ) + nls? ( virtual/libintl ) + perl? ( dev-lang/perl:= ) + php? ( >=dev-lang/php-7.0:*[embed] ) + python? ( ${PYTHON_DEPS} ) + ruby? ( || ( dev-lang/ruby:2.7 dev-lang/ruby:2.6 dev-lang/ruby:2.5 ) ) + spell? ( app-text/aspell ) + tcl? ( >=dev-lang/tcl-8.4.15:0= ) +" + +DEPEND="${RDEPEND} + test? ( dev-util/cpputest ) +" + +BDEPEND=" + virtual/pkgconfig + doc? ( >=dev-ruby/asciidoctor-1.5.4 ) + man? ( >=dev-ruby/asciidoctor-1.5.4 ) + nls? ( >=sys-devel/gettext-0.15 ) +" + +PATCHES=( + "${FILESDIR}"/${PN}-3.0-cmake_lua_version.patch +) + +DOCS="AUTHORS.adoc ChangeLog.adoc Contributing.adoc ReleaseNotes.adoc README.adoc" + +RESTRICT="!test? ( test )" + +pkg_setup() { + use lua && lua-single_pkg_setup + use python && python-single-r1_pkg_setup +} + +src_prepare() { + cmake_src_prepare + + # install only required translations + local i + for i in ${LANGS} ; do + if ! has ${i} ${LINGUAS-${i}} ; then + sed -i \ + -e "/${i}.po/d" \ + po/CMakeLists.txt || die + fi + done + + # install only required documentation ; en always + for i in $(grep add_subdirectory doc/CMakeLists.txt \ + | sed -e 's/.*add_subdirectory(\(..\)).*/\1/' -e '/en/d'); do + if ! has ${i} ${LINGUAS-${i}} ; then + sed -i \ + -e '/add_subdirectory('${i}')/d' \ + doc/CMakeLists.txt || die + fi + done + + # install docs in correct directory + sed -i "s#\${SHAREDIR}/doc/\${PROJECT_NAME}#\0-${PV}/html#" doc/*/CMakeLists.txt || die + + if [[ ${CHOST} == *-darwin* ]]; then + # fix linking error on Darwin + sed -i "s/+ get_config_var('LINKFORSHARED')//" \ + cmake/FindPython.cmake || die + # allow to find the plugins by default + sed -i 's/".so,.dll"/".bundle,.so,.dll"/' \ + src/core/wee-config.c || die + fi +} + +src_configure() { + local mycmakeargs=( + -DLIBDIR=/usr/$(get_libdir) + -DENABLE_JAVASCRIPT=OFF + -DENABLE_LARGEFILE=ON + -DENABLE_NCURSES=ON + -DENABLE_ALIAS=$(usex alias) + -DENABLE_BUFLIST=$(usex buflist) + -DENABLE_CHARSET=$(usex charset) + -DENABLE_DOC=$(usex doc) + -DENABLE_EXEC=$(usex exec) + -DENABLE_FIFO=$(usex fifo) + -DENABLE_FSET=$(usex fset) + -DENABLE_GUILE=$(usex guile) + -DENABLE_IRC=$(usex irc) + -DENABLE_LOGGER=$(usex logger) + -DENABLE_LUA=$(usex lua) + -DENABLE_MAN=$(usex man) + -DENABLE_NLS=$(usex nls) + -DENABLE_PERL=$(usex perl) + -DENABLE_PHP=$(usex php) + -DENABLE_PYTHON=$(usex python) + -DENABLE_RELAY=$(usex relay) + -DENABLE_RUBY=$(usex ruby) + -DENABLE_SCRIPT=$(usex scripts) + -DENABLE_SCRIPTS=$(usex scripts) + -DENABLE_SPELL=$(usex spell) + -DENABLE_TCL=$(usex tcl) + -DENABLE_TESTS=$(usex test) + -DENABLE_TRIGGER=$(usex trigger) + -DENABLE_XFER=$(usex xfer) + ) + cmake_src_configure +} + +src_test() { + if $(locale -a | grep -iq "en_US\.utf.*8"); then + cmake_src_test -V + else + eerror "en_US.UTF-8 locale is required to run ${PN}'s ${FUNCNAME}" + die "required locale missing" + fi +} + +pkg_postinst() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} + +pkg_postrm() { + xdg_desktop_database_update + xdg_icon_cache_update + xdg_mimeinfo_database_update +} diff --git a/net-irc/weechat/weechat-9999.ebuild b/net-irc/weechat/weechat-9999.ebuild index b33c433ae6d2..9612d0567f73 100644 --- a/net-irc/weechat/weechat-9999.ebuild +++ b/net-irc/weechat/weechat-9999.ebuild @@ -3,9 +3,10 @@ EAPI=7 +LUA_COMPAT=( lua5-{1..4} ) PYTHON_COMPAT=( python3_{7..9} ) -inherit cmake python-single-r1 xdg-utils +inherit cmake lua-single python-single-r1 xdg-utils if [[ ${PV} == "9999" ]] ; then inherit git-r3 @@ -29,6 +30,7 @@ LANGS=" cs de es fr it ja pl ru" IUSE="doc man nls test ${SCRIPT_LANGS} ${PLUGINS} ${INTERFACES} ${NETWORKS}" REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) python? ( ${PYTHON_REQUIRED_USE} ) test? ( nls ) " @@ -41,7 +43,7 @@ RDEPEND=" net-misc/curl[ssl] charset? ( virtual/libiconv ) guile? ( >=dev-scheme/guile-2.0 ) - lua? ( dev-lang/lua:0 ) + lua? ( ${LUA_DEPS} ) nls? ( virtual/libintl ) perl? ( dev-lang/perl:= ) php? ( >=dev-lang/php-7.0:*[embed] ) @@ -62,11 +64,16 @@ BDEPEND=" nls? ( >=sys-devel/gettext-0.15 ) " +PATCHES=( + "${FILESDIR}"/${PN}-3.0-cmake_lua_version.patch +) + DOCS="AUTHORS.adoc ChangeLog.adoc Contributing.adoc ReleaseNotes.adoc README.adoc" RESTRICT="!test? ( test )" pkg_setup() { + use lua && lua-single_pkg_setup use python && python-single-r1_pkg_setup } |