Fix gcc 14 build ncpfs

This commit is contained in:
Mario Fetka
2024-12-10 13:55:28 +01:00
parent 96ea326bd7
commit 5f902f1645
30 changed files with 3263 additions and 478 deletions

View File

@@ -2,6 +2,8 @@ AUX stfl-0.21-python.patch 1936 BLAKE2B fc0a8f02eaa30b900652304e34f383a6587769f4
AUX stfl-0.22-pc-libdir.patch 866 BLAKE2B bdbc18572fd5104ee04af672b9d493bb3271a8af7b383f5fb9042e8c44dbeaa760ed9c2c8f71192b891eeabae487ee096451ccdb8ae82a936e85331145c9bef6 SHA512 9ec288c174bb30060085c94f6703edb698f2e3806d872153cc58873ea838a84f9edbc07c6e5f8de4a6fd18f77ff1c1e4b1599ad598f3d0a4bba5b2c5bac73ad3
AUX stfl-0.22-ruby-sharedlib.patch 735 BLAKE2B 6b2b9e835f57f62ff1e1ff871103bc0b1106329916fc1be75eb22e550c9ff8abd007bbc201c66e15ce16a4697c0bbe0850b56ff41f666dd7006028432b1f77e5 SHA512 73a1b7aa7147100ab2f06264303c0a30463deb8bd0ce9e4111737393d07c4fb06174c5022c1dae8c7fd2688d1b544a4ab8c8ee5495f46e2bbc33ce89a7e46de7
AUX stfl-0.22-soname-symlink.patch 444 BLAKE2B 9aa44343a18a8d7fb2f75a60ae94c30ef92b6f02190cefbefedacd9f8d5c877ac71b83c41b008bfd46a4d5ffe04f91f03f898e27ef098162d0b43f274ccff298 SHA512 e85c6f96edd8cd08d3408f976fff5f9fbcdc9892109233e78d932eb07502b00d3a0b52393542de8af5b2d26808b3574736f78b7ef9c7bdd0abffa3901fc55dab
AUX stfl-0.24-ncurses-widechar.patch 828 BLAKE2B 5916f745b819fad0c6dedb882acfca4395eab60de656ec138988c756cddbe1109088279aef1a5b55e33931735426958a0f654a9ef3f567845960a8e17198a635 SHA512 897e32ad0d67e424ee66c1d572611f3707c665a6830b7c4560378bcb4ec4a9d2fc65eab7b2a827785bd724bf45f1eea9f20824e02ddb36e611c42b036d19c2aa
DIST stfl-0.24.tar.gz 45585 BLAKE2B a601f373f19baa3a11fb823852ada19ab824828935240280c74ff442a1e5c4abdf0abe56e445869e43785df3940a8c7269bc16457436abbe5e2853f907071059 SHA512 95df4574b1bc32d795751156dc5b93afbca3ba241607a3a55210c89dda61b9a26ad574bb5f729a0158c9052235dbf63d6c58b38e7f1061d14ab7062af6150fa0
EBUILD stfl-0.24-r4.ebuild 3145 BLAKE2B d20c8e4bd67ee8f9f20d9e470eb02b03e6c52e5a007c722402a5fe8604835bbebd92d66a95d33f874c2a2b5cab82027282391fa9494336b43ba2d11d9e2fbf3e SHA512 7a342581482d8b0c14f6266d7ea66e1f0c5c7f26547445966354809c4de569f1f7c9f263e61b4c243f1f697744be787c4b24f6e74f2bb06720891ccbb2ef51f9
EBUILD stfl-0.24-r5.ebuild 3256 BLAKE2B c17fe27fc8baff9f83b8f841f41c86c00a91effd3edcc7b9560df2a0716bd5dc8f8f163e5eeaf8655b7596f6598a41976b5800ce757653d628f3261dda7ee804 SHA512 e9ef5ef9b2acc66eb5c077a6d928807d6504742d7166a2187e6b72931ed24b12dd306b2f6dc2cfe8ffa960028c3254f55ce91ffa074765e5e7373fcfb31dd574
MISC metadata.xml 884 BLAKE2B d1ee81a475935527af118da278c54f34a773dff1165c39ea2013135b767dbfe96972623d83833501d0531df78547c5d6040990039674832e9f5f701f915d3924 SHA512 55dc2b480ea7b0929be1e74d60d06ddc33ce977885969fdda332a6cb390c219cc13c017c0a56ed3594c475dcb9586b2d433c65fa200675de421e1aa4b22c7ce5

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-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{10..12} )
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
}