1
0
mirror of https://github.com/gryf/gryf-overlay.git synced 2025-12-25 07:32:30 +01:00

Added stfl library.

Since it will be removed from the portage, because of the breakage on
the latest python version, I've added "new" ebuild, which removes all
the bindings from it, just to not have to deal with it in the future.
The only application which is depending on this lib is newsboat, which
as far as I can tell, doesn't use the bindings.
This commit is contained in:
2020-04-20 13:08:55 +02:00
parent 2550d9e93b
commit 4f68a3a5fb
7 changed files with 274 additions and 0 deletions

7
dev-libs/stfl/Manifest Normal file
View File

@@ -0,0 +1,7 @@
AUX stfl-0.21-python.patch 1936 BLAKE2B fc0a8f02eaa30b900652304e34f383a6587769f4ac803f2ba9420197ef492430a88a6a6ec4863163cd948c9fd8c027b50a944796ea1c342f19ad9049c46dd1f9 SHA512 33da38bee278999ec3bcc770886183c3d7ac60ab3458568a7848bc83035104290423aee54a2a2da065b9a5da639af6fa242de9f23df0ff7fccbd024099af8472
AUX stfl-0.22-ruby-sharedlib.patch 735 BLAKE2B 6b2b9e835f57f62ff1e1ff871103bc0b1106329916fc1be75eb22e550c9ff8abd007bbc201c66e15ce16a4697c0bbe0850b56ff41f666dd7006028432b1f77e5 SHA512 73a1b7aa7147100ab2f06264303c0a30463deb8bd0ce9e4111737393d07c4fb06174c5022c1dae8c7fd2688d1b544a4ab8c8ee5495f46e2bbc33ce89a7e46de7
AUX stfl-0.22-soname-symlink.patch 444 BLAKE2B 9aa44343a18a8d7fb2f75a60ae94c30ef92b6f02190cefbefedacd9f8d5c877ac71b83c41b008bfd46a4d5ffe04f91f03f898e27ef098162d0b43f274ccff298 SHA512 e85c6f96edd8cd08d3408f976fff5f9fbcdc9892109233e78d932eb07502b00d3a0b52393542de8af5b2d26808b3574736f78b7ef9c7bdd0abffa3901fc55dab
DIST stfl-0.24.tar.gz 45585 BLAKE2B a601f373f19baa3a11fb823852ada19ab824828935240280c74ff442a1e5c4abdf0abe56e445869e43785df3940a8c7269bc16457436abbe5e2853f907071059 SHA512 95df4574b1bc32d795751156dc5b93afbca3ba241607a3a55210c89dda61b9a26ad574bb5f729a0158c9052235dbf63d6c58b38e7f1061d14ab7062af6150fa0
EBUILD stfl-0.24-r1.ebuild 1422 BLAKE2B 2b023a599eb4b78226e5d29e17e7a779c24a9c1a2a2087f2d864f19deaa65ee21de5170a49563fe794cb1d8366f37e469cd8705c62f568db35ebc1e784f6eb14 SHA512 6261c47e59b5d96928f9231500bf9b9974f35d3a4ca6086b1bd52eb461d8e1137f53ccc08b61c2ad5760df8070d9a7939322eb54f579678a85710d1937d7ba15
EBUILD stfl-0.24.ebuild 2926 BLAKE2B 0a0e48f66782d3fad17daf52a096b1fc27a92b52ec992863bd5066141617e3fe5a96fec4da35328df46cc0d0ab28fd8d922aaa36b55f87fbcbbe1ef0f77ecd5e SHA512 a3d835f176325706e2ca5e9a29d82af4ed596ee91f5ae536df9a37b1a4827d9e53f3b6fb4d8529def012b849d8dc795445dd7eb037da2eab774f1f3f87b4790c
MISC metadata.xml 835 BLAKE2B 9b1973c44652dcce024f65586aee64af73b7e565e3681e42dc429d58c769cc316720a6fc48baeabb9288499f9d24c42d5161cf3bdfe718265d0b203eded36c8f SHA512 7c326da342ebd368f624757f1aab37d158f752ebe45e52d85bec640c6f6cde7c5e473d9214e24e09d71b22f7790dcad22f339181b6bc7333f1187bd8ff3c6e3f

View File

@@ -0,0 +1,39 @@
diff -ur stfl-0.21.orig/Makefile stfl-0.21/Makefile
--- stfl-0.21.orig/Makefile 2009-06-19 10:30:52.000000000 -0700
+++ stfl-0.21/Makefile 2009-12-23 15:12:34.986593069 -0800
@@ -46,7 +46,7 @@
rm -f widgets/*.o spl/mod_stfl.so spl/example.db
cd perl5 && perl Makefile.PL && make clean && rm -f Makefile.old
rm -f perl5/stfl_wrap.c perl5/stfl.pm perl5/build_ok
- rm -f python/stfl.py python/stfl.pyc python/_stfl.so
+ rm -f python/stfl.py python/_stfl.so
rm -f python/stfl_wrap.c python/stfl_wrap.o
rm -f ruby/Makefile ruby/stfl_wrap.c ruby/stfl_wrap.o
rm -f ruby/stfl.so ruby/build_ok Makefile.deps_new
diff -ur stfl-0.21.orig/python/Makefile.snippet stfl-0.21/python/Makefile.snippet
--- stfl-0.21.orig/python/Makefile.snippet 2009-06-18 01:27:16.000000000 -0700
+++ stfl-0.21/python/Makefile.snippet 2009-12-23 15:14:54.237606055 -0800
@@ -21,20 +21,17 @@
PYTHON_VERSION = $(shell python -V 2>&1 | cut -f2 -d' ' | cut -f1-2 -d'.')
PYTHON_SITEARCH = $(shell python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")
-all: python/_stfl.so python/stfl.py python/stfl.pyc
+all: python/_stfl.so python/stfl.py
install: install_python
-python/_stfl.so python/stfl.py python/stfl.pyc: libstfl.a stfl.h python/stfl.i swig/*.i
+python/_stfl.so python/stfl.py: libstfl.a stfl.h python/stfl.i swig/*.i
cd python && swig -python -threads stfl.i
gcc -shared -pthread -fPIC python/stfl_wrap.c -I/usr/include/python$(PYTHON_VERSION) \
-I. libstfl.a -lncursesw -o python/_stfl.so
- cd python && python -c 'import stfl'
-install_python: python/_stfl.so python/stfl.py python/stfl.pyc
- mkdir -p $(DESTDIR)$(PYTHON_SITEARCH)/
+install_python: python/_stfl.so python/stfl.py
mkdir -p $(DESTDIR)$(PYTHON_SITEARCH)/lib-dynload/
cp python/_stfl.so $(DESTDIR)$(PYTHON_SITEARCH)/lib-dynload/
- cp python/stfl.pyc $(DESTDIR)$(PYTHON_SITEARCH)/
cp python/stfl.py $(DESTDIR)$(PYTHON_SITEARCH)/

View File

@@ -0,0 +1,14 @@
--- stfl-0.22/ruby/Makefile.snippet.orig
+++ stfl-0.22/ruby/Makefile.snippet
@@ -23,9 +23,9 @@
install: install_ruby
-ruby/build_ok: libstfl.a stfl.h ruby/stfl.i swig/*.i
+ruby/build_ok: libstfl.so.$(VERSION) stfl.h ruby/stfl.i swig/*.i
cd ruby && swig -ruby stfl.i && ruby extconf.rb
- $(MAKE) -C ruby clean && $(MAKE) -C ruby LIBS+="../libstfl.a -lncursesw" CFLAGS+="-pthread -I.." DLDFLAGS+="-pthread" DESTDIR=$(DESTDIR) prefix=$(prefix) sitedir=$(prefix)/$(libdir)/ruby
+ $(MAKE) -C ruby clean && $(MAKE) -C ruby LIBS+="../libstfl.so.$(VERSION) -lncursesw" CFLAGS+="-pthread -I.." DLDFLAGS+="-pthread" DESTDIR=$(DESTDIR) prefix=$(prefix) sitedir=$(prefix)/$(libdir)/ruby
touch ruby/build_ok
install_ruby: ruby/build_ok

View File

@@ -0,0 +1,10 @@
--- stfl-0.22/Makefile.orig
+++ stfl-0.22/Makefile
@@ -65,6 +65,7 @@
install -m 644 stfl.pc $(DESTDIR)$(prefix)/$(libdir)/pkgconfig/
install -m 644 libstfl.so.$(VERSION) $(DESTDIR)$(prefix)/$(libdir)
ln -fs libstfl.so.$(VERSION) $(DESTDIR)$(prefix)/$(libdir)/libstfl.so
+ ln -fs libstfl.so.$(VERSION) $(DESTDIR)$(prefix)/$(libdir)/$(SONAME)
stfl.pc: stfl.pc.in
sed 's,@VERSION@,$(VERSION),g' < $< | sed 's,@PREFIX@,$(prefix),g' > $@

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<longdescription lang="en">
STFL is a library which implements a curses-based widget set for text
terminals.
The STFL API can be used from C, SPL, Python, Perl and Ruby. Since the
API is only 14 simple function calls big and there are already generic
SWIG bindings it is very easy to port STFL to additional scripting
languages.
A special language (the Structured Terminal Forms Language) is used to
describe STFL GUIs. The language is designed to be easy and fast to
write so an application programmer does not need to spend ages fiddling
around with the GUI and can concentrate on the more interesting
programming tasks.
</longdescription>
</pkgmetadata>

View File

@@ -0,0 +1,66 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
inherit eutils multilib perl-module 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 ppc ~ppc64 x86"
IUSE="examples static-libs"
RDEPEND="
sys-libs/ncurses:0=[unicode]
"
DEPEND="${RDEPEND}"
src_prepare() {
default
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/' \
Makefile || die "sed failed"
if ! use static-libs ; then
sed -i -e "/install .* libstfl.a/d" Makefile || die
fi
epatch "${FILESDIR}"/${PN}-0.22-soname-symlink.patch
}
src_configure() { :; }
src_compile() {
emake CC="$(tc-getCC)"
}
src_install() {
emake prefix="/usr" DESTDIR="${D}" libdir="$(get_libdir)" install
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
}

View File

@@ -0,0 +1,118 @@
# Copyright 1999-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=5
PYTHON_COMPAT=( python3_6 )
GENTOO_DEPEND_ON_PERL=no
inherit eutils multilib 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 ppc ~ppc64 x86"
IUSE="examples perl python ruby static-libs"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
sys-libs/ncurses:0=[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 )
"
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/' \
Makefile || die "sed failed"
if ! use static-libs ; then
sed -i -e "/install .* libstfl.a/d" Makefile || die
fi
epatch "${FILESDIR}"/${PN}-0.21-python.patch
epatch "${FILESDIR}"/${PN}-0.22-soname-symlink.patch
epatch "${FILESDIR}"/${PN}-0.22-ruby-sharedlib.patch
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)"
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
}