diff options
Diffstat (limited to 'net-irc/weechat/weechat-4.3.2.ebuild')
-rw-r--r-- | net-irc/weechat/weechat-4.3.2.ebuild | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/net-irc/weechat/weechat-4.3.2.ebuild b/net-irc/weechat/weechat-4.3.2.ebuild new file mode 100644 index 000000000000..ae190a67def6 --- /dev/null +++ b/net-irc/weechat/weechat-4.3.2.ebuild @@ -0,0 +1,190 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +LUA_COMPAT=( lua5-{1..4} ) +PYTHON_COMPAT=( python3_{10..13} ) + +inherit cmake lua-single python-single-r1 xdg + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/weechat/weechat.git" +else + inherit verify-sig + SRC_URI="https://weechat.org/files/src/${P}.tar.xz + verify-sig? ( https://weechat.org/files/src/${P}.tar.xz.asc )" + VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/weechat.org.asc + BDEPEND+="verify-sig? ( sec-keys/openpgp-keys-weechat )" + KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86 ~x64-macos" +fi + +DESCRIPTION="Portable and multi-interface IRC client" +HOMEPAGE="https://weechat.org/" + +LICENSE="GPL-3+" +SLOT="0/${PV}" + +NETWORKS="+irc" +PLUGINS="+alias +buflist +charset +exec +fifo +fset +logger +relay +scripts +spell +trigger +typing +xfer" +# dev-lang/v8 was dropped from Gentoo so we can't enable javascript support +# dev-lang/php eclass support is lacking, php plugins don't work. bug #705702 +SCRIPT_LANGS="guile lua +perl +python ruby tcl" +LANGS=" cs de es fr it ja pl ru" +IUSE="doc enchant man nls relay-api selinux test +zstd ${SCRIPT_LANGS} ${PLUGINS} ${INTERFACES} ${NETWORKS}" + +REQUIRED_USE=" + enchant? ( spell ) + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + test? ( nls ) + relay-api? ( relay ) +" + +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:12= ) + lua? ( ${LUA_DEPS} ) + nls? ( virtual/libintl ) + perl? ( + dev-lang/perl:= + virtual/libcrypt:= + ) + python? ( ${PYTHON_DEPS} ) + ruby? ( + || ( + dev-lang/ruby:3.3 + dev-lang/ruby:3.2 + dev-lang/ruby:3.1 + ) + ) + selinux? ( sec-policy/selinux-irc ) + spell? ( + enchant? ( app-text/enchant:* ) + !enchant? ( app-text/aspell ) + ) + tcl? ( >=dev-lang/tcl-8.4.15:0= ) + zstd? ( app-arch/zstd:= ) +" + +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.3-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 + local j + for i in $(grep -e 'set(.*en.*)$' doc/CMakeLists.txt \ + | sed -e 's/.*set(\(\w\+\).*/\1/'); do + for j in $(grep set.${i} doc/CMakeLists.txt \ + | sed -e "s/.*${i}\(.*\)).*/\1/" -e 's/ en//'); do + if ! has ${j} ${LINGUAS-${j}} ; then + sed -i \ + -e "s/\(set(${i}.*\) ${j}/\1/" \ + doc/CMakeLists.txt || die + fi + done + done + + # install docs in correct directory + sed -i "s#\${DATAROOTDIR}/doc/\${PROJECT_NAME}#\0-${PVR}/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="${EPREFIX}/usr/$(get_libdir)" + -DENABLE_JAVASCRIPT=OFF + -DENABLE_LARGEFILE=ON + -DENABLE_NCURSES=ON + -DENABLE_PHP=OFF + -DENABLE_ALIAS=$(usex alias) + -DENABLE_BUFLIST=$(usex buflist) + -DENABLE_CHARSET=$(usex charset) + # -DENABLE_DOC requires all plugins (except javascript). + # https://github.com/weechat/weechat/blob/v4.0.2/CMakeLists.txt#L144 + # Impossible since php was dropped in net-irc/weechat-3.5.r1.ebuild. bug #705702 + -DENABLE_DOC=OFF + -DENABLE_DOC_INCOMPLETE=$(usex doc) + -DENABLE_ENCHANT=$(usex enchant) + -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_PYTHON=$(usex python) + -DENABLE_RELAY=$(usex relay) + -DENABLE_CJSON=$(usex relay-api) + -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_TYPING=$(usex typing) + -DENABLE_XFER=$(usex xfer) + -DENABLE_ZSTD=$(usex zstd) + ) + 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 +} |