dev-libs/stfl: Use correct flags from pkg-config for ncurses widechar

Closes: https://bugs.gentoo.org/895064

Signed-off-by: Violet Purcell <vimproved@inventati.org>
Closes: https://github.com/gentoo/gentoo/pull/31648
Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
Violet Purcell
2023-06-27 20:14:54 +00:00
committed by Sam James
parent 4d7bdf524c
commit 53868bd043
2 changed files with 155 additions and 0 deletions

View File

@@ -0,0 +1,26 @@
ncurses widechar functions are only available if the correct macros are
defined. Use CFLAGS and LDFLAGS from pkgconfig to ensure that widechar
functions are available.
From 9b71952bfb29e036b13c16d621febff76e84e3e4 Mon Sep 17 00:00:00 2001
From: Violet Purcell <vimproved@inventati.org>
Date: Tue, 11 Jul 2023 15:45:05 -0400
Subject: [PATCH] Use pkg-config for correct ncursesw CFLAGS and LDFLAGS
--- a/Makefile
+++ b/Makefile
@@ -21,8 +21,9 @@
include Makefile.cfg
export CC = gcc -pthread
-export CFLAGS += -I. -Wall -Os -ggdb -D_GNU_SOURCE -fPIC
-export LDLIBS += -lncursesw
+export PKG_CONFIG ?= pkg-config
+export CFLAGS += -I. -Wall -Os -ggdb -D_GNU_SOURCE -fPIC $(shell ${PKG_CONFIG} --cflags ncursesw)
+export LDLIBS += $(shell ${PKG_CONFIG} --libs ncursesw)
SONAME := libstfl.so.0
VERSION := 0.24
--
2.41.0

View File

@@ -0,0 +1,129 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{10..11} )
GENTOO_DEPEND_ON_PERL=no
inherit perl-module python-r1 toolchain-funcs
DESCRIPTION="A library which implements a curses-based widget set for text terminals"
HOMEPAGE="http://www.clifford.at/stfl/"
SRC_URI="http://www.clifford.at/${PN}/${P}.tar.gz"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
IUSE="examples perl python ruby static-libs"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
sys-libs/ncurses:=[unicode(+)]
perl? ( dev-lang/perl:= )
ruby? ( dev-lang/ruby:* )
python? ( ${PYTHON_DEPS} )
"
DEPEND="${RDEPEND}
perl? ( dev-lang/swig )
python? ( >=dev-lang/swig-1.3.40 )
ruby? ( dev-lang/swig )
"
BDEPEND="virtual/pkgconfig"
RESTRICT="test" # Upstream does not provide tests #730112
PATCHES=(
"${FILESDIR}/${PN}-0.21-python.patch"
"${FILESDIR}/${PN}-0.22-soname-symlink.patch"
"${FILESDIR}/${PN}-0.22-ruby-sharedlib.patch"
"${FILESDIR}/${PN}-0.22-pc-libdir.patch"
"${FILESDIR}/${PN}-0.24-ncurses-widechar.patch"
)
src_prepare() {
default_src_prepare
sed -i \
-e 's/-Os -ggdb//' \
-e 's/^\(all:.*\) example/\1/' \
-e 's/$(CC) -shared/$(CC) $(LDFLAGS) -shared/' \
-e 's/ -o $@ $(LDLIBS) $^/ $^ $(LDLIBS) -o $@/' \
-e 's/-lncursesw/-lncursesw -pthread/' \
-e 's/\<ar\>/$(AR)/' \
-e 's/\<ranlib\>/$(RANLIB)/' \
Makefile || die "sed failed"
if ! use static-libs ; then
sed -i -e "/install .* libstfl.a/d" Makefile || die
fi
if use perl ; then
echo "FOUND_PERL5=1" >> Makefile.cfg
else
echo "FOUND_PERL5=0" >> Makefile.cfg
fi
if use ruby ; then
echo "FOUND_RUBY=1" >> Makefile.cfg
else
echo "FOUND_RUBY=0" >> Makefile.cfg
fi
echo "FOUND_PYTHON=0" >> Makefile.cfg
}
src_configure() { :; }
src_compile() {
emake CC="$(tc-getCC)" AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)" PKG_CONFIG="$(tc-getPKG_CONFIG)"
if use python ; then
local BUILD_DIR="${S}/python"
python_copy_sources
# Based on code from python/Makefile.snippet.
building() {
pushd "${BUILD_DIR}" &>/dev/null || die
echo swig -python -threads stfl.i
swig -python -threads stfl.i || die
echo "$(tc-getCC)" ${CFLAGS} ${LDFLAGS} -shared -pthread -fPIC stfl_wrap.c -I$(python_get_includedir) -I.. ../libstfl.so.${PV} -lncursesw -o _stfl.so
"$(tc-getCC)" ${CFLAGS} ${LDFLAGS} -shared -pthread -fPIC stfl_wrap.c -I$(python_get_includedir) -I.. ../libstfl.so.${PV} -lncursesw -o _stfl.so || die
popd &>/dev/null || die
}
python_foreach_impl building
fi
}
src_install() {
emake prefix="/usr" DESTDIR="${D}" libdir="$(get_libdir)" install
if use python ; then
local BUILD_DIR="${S}/python"
installation() {
pushd "${BUILD_DIR}" &>/dev/null || die
python_domodule stfl.py _stfl.so
popd &>/dev/null || die
}
python_foreach_impl installation
fi
dodoc README
local exdir="/usr/share/doc/${PF}/examples"
if use examples ; then
insinto ${exdir}
doins example.{c,stfl}
insinto ${exdir}/python
doins python/example.py
if use perl ; then
insinto ${exdir}/perl
doins perl5/example.pl
fi
if use ruby ; then
insinto ${exdir}/ruby
doins ruby/example.rb
fi
fi
perl_delete_localpod
}