summaryrefslogtreecommitdiff
path: root/dev-libs/foma
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/foma')
-rw-r--r--dev-libs/foma/Manifest3
-rw-r--r--dev-libs/foma/files/foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch71
-rw-r--r--dev-libs/foma/foma-0.10.0_p20220612-r2.ebuild (renamed from dev-libs/foma/foma-0.10.0_p20220612-r1.ebuild)18
3 files changed, 85 insertions, 7 deletions
diff --git a/dev-libs/foma/Manifest b/dev-libs/foma/Manifest
index c25ba18ae1a7..c7aa4f70d7e6 100644
--- a/dev-libs/foma/Manifest
+++ b/dev-libs/foma/Manifest
@@ -1,5 +1,6 @@
AUX foma-0.10-0-fix-BOM_codes-initializer.patch 1428 BLAKE2B a1e8d95419b111e36bb9209727b2a88be8844bb21a7b24393fbae603e5fd9b8dbf75c7ba8addec0e041c43540e622a5e9119763c4ba6fca013fcb5d5fd182972 SHA512 28fff7e59c899c44a75da0731d6ac400250f8cc2ea179e41c0c9fce640c826aae5c3a09bc0366472a1fbb260b7cc4b7f4ead386a44982d09e3f123476b884a4b
AUX foma-0.10.0-gcc-13-fixes.patch 5887 BLAKE2B 95efb20aef3c440248a98cee4e9cb43ecf35480aa1509386841748c791d9f922ca9b2970d69fc6ac67e6a32e62c7a87ca86e578506a28bda51f73773a2cbe8b9 SHA512 b944104e1e971d79bfbbb682042db7acdcb147380fc94c5e1cd33b6b88ae6b2a2e1b3e44168b73f9fb6277c88dda2063daa64654e95acea3efe76de1246be3ce
+AUX foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch 2494 BLAKE2B 0e5e9e0446b1035d5d1213187fc15453b17912e982441ad353e6865646c843137384206577d3932550e0e90eb69f2d07c2b8e8b828b35c2d49513ab16cb8c9c2 SHA512 225b1cf88948c465cf0e841de5a3d1a57ea09a83328f826e860c371cc624ef5ff58d148df0589c889386c4840fcd16beff06f5eb9c6c3e5dddeba47a94356a16
DIST foma-0.10.0_p20220612.tar.gz 179778 BLAKE2B f96bf46404ead44725b609953a01a3966506af98d82e925e981cef65b3f0dc7ae3414ad96df911e380f1f565f9c11ea3f85e93fa5962cc52db5e451d2f39d37c SHA512 4539c937bd20f74dee5274126cc3a950873a87364d0fcbf02e674eca5ef049badb1b2774c2975ec7969f7f24ccffb7dd17842840e3a818b1503957374ceff048
-EBUILD foma-0.10.0_p20220612-r1.ebuild 879 BLAKE2B 42a4de2e3bd54c92c368b1f405fd9d42917de1afbff4a45252829ba9853c85b4c96b3a00661e75968ef9c926c65c244c363b294b0f01f338e793e5b8b7b2ee2c SHA512 52f4c084fde2426bc083e55d46c44fc40b510cb77871fd9653eeb1fa380da8947f1897bd976cda2013b4181361fa6b59dc546e021c984aa7c8dc56ef3b81a082
+EBUILD foma-0.10.0_p20220612-r2.ebuild 1056 BLAKE2B 3626c90a1fac1c6d74d6a29d95f883c5441ac071aacea011df1e1f57163e39480560c1d4c4f2cc658e9bb3044dd30be5dae421a62d4e24416073bb041afda466 SHA512 4cbb4f13ddf159ddc7a1ceaf92b5c0160e64686ed67fb80614271f3568b808d91b2085e46521c3a44da18d883647f11f5d47f052029f96072a97e56eb97c1edb
MISC metadata.xml 336 BLAKE2B 5f93087668fbab915127e19c39476f28eb04b03bf8be79693ce1eedff87591f4d1777f6c55df02c41db5531935c83579186cbe7ba3c0fa209cc049466f05d7e2 SHA512 001ef85af17a4171febd0fbc62e1ae1a3dfb352c0da141ddd2636af713f0e21159832695c72cfb3a87ff86ffd29057377b8fe33a211eb90a38a3c78840a913cd
diff --git a/dev-libs/foma/files/foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch b/dev-libs/foma/files/foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch
new file mode 100644
index 000000000000..ca6e3c3a8f76
--- /dev/null
+++ b/dev-libs/foma/files/foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch
@@ -0,0 +1,71 @@
+https://bugs.gentoo.org/930501
+
+--- a/foma/sigma.c
++++ b/foma/sigma.c
+@@ -338,8 +338,8 @@ struct ssort {
+ int number;
+ };
+
+-int ssortcmp(struct ssort *a, struct ssort *b) {
+- return(strcmp(a->symbol, b->symbol));
++int ssortcmp(const void *a, const void *b) {
++ return(strcmp(((struct ssort*) a)->symbol, ((struct ssort*)b)->symbol));
+ }
+
+ struct sigma *sigma_copy(struct sigma *sigma) {
+@@ -369,7 +369,6 @@ struct sigma *sigma_copy(struct sigma *sigma) {
+ /* and sorts the sigma based on the symbol string contents */
+
+ int sigma_sort(struct fsm *net) {
+- int(*comp)() = ssortcmp;
+ int size, i, max, *replacearray;
+ struct ssort *ssort;
+ struct sigma *sigma;
+@@ -387,7 +386,7 @@ int sigma_sort(struct fsm *net) {
+ }
+ }
+ max = i;
+- qsort(ssort, max, sizeof(struct ssort), comp);
++ qsort(ssort, max, sizeof(struct ssort), ssortcmp);
+ replacearray = malloc(sizeof(int)*(size+3));
+ for (i=0; i<max; i++)
+ replacearray[(ssort+i)->number] = i+3;
+--- a/foma/structures.c
++++ b/foma/structures.c
+@@ -46,20 +46,18 @@ void *fsm_get_option(unsigned long long option) {
+ return NULL;
+ }
+
+-int linesortcompin(struct fsm_state *a, struct fsm_state *b) {
+- return (a->in - b->in);
++int linesortcompin(const void *a, const void *b) {
++ return (((struct fsm_state*)a)->in - ((struct fsm_state*)b)->in);
+ }
+
+-int linesortcompout(struct fsm_state *a, struct fsm_state *b) {
+- return (a->out - b->out);
++int linesortcompout(const void *a, const void *b) {
++ return (((struct fsm_state*)a)->out - ((struct fsm_state*)b)->out);
+ }
+
+ void fsm_sort_arcs(struct fsm *net, int direction) {
+ /* direction 1 = in, direction = 2, out */
+ struct fsm_state *fsm;
+ int i, lasthead, numlines;
+- int(*scin)() = linesortcompin;
+- int(*scout)() = linesortcompout;
+ fsm = net->states;
+ for (i=0, numlines = 0, lasthead = 0 ; (fsm+i)->state_no != -1; i++) {
+ if ((fsm+i)->state_no != (fsm+i+1)->state_no || (fsm+i)->target == -1) {
+@@ -70,9 +68,9 @@ void fsm_sort_arcs(struct fsm *net, int direction) {
+ if (numlines > 1) {
+ /* Sort, set numlines = 0 */
+ if (direction == 1)
+- qsort(fsm+lasthead, numlines, sizeof(struct fsm_state), scin);
++ qsort(fsm+lasthead, numlines, sizeof(struct fsm_state), linesortcompin);
+ else
+- qsort(fsm+lasthead, numlines, sizeof(struct fsm_state), scout);
++ qsort(fsm+lasthead, numlines, sizeof(struct fsm_state), linesortcompout);
+ }
+ numlines = 0;
+ lasthead = i + 1;
diff --git a/dev-libs/foma/foma-0.10.0_p20220612-r1.ebuild b/dev-libs/foma/foma-0.10.0_p20220612-r2.ebuild
index ebeb755f4410..070bf16a2140 100644
--- a/dev-libs/foma/foma-0.10.0_p20220612-r1.ebuild
+++ b/dev-libs/foma/foma-0.10.0_p20220612-r2.ebuild
@@ -10,6 +10,7 @@ MY_COMMIT="9e8c3df573015a26c84e113ba710ef3d57c8e777"
DESCRIPTION="Multi-purpose finite-state toolkit"
HOMEPAGE="https://fomafst.github.io/ https://github.com/mhulden/foma"
SRC_URI="https://github.com/mhulden/foma/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/foma-${MY_COMMIT}"
LICENSE="Apache-2.0"
SLOT="0/0.10"
@@ -21,14 +22,19 @@ DEPEND="sys-libs/readline:=
sys-libs/zlib"
RDEPEND="${DEPEND}"
-S="${WORKDIR}/foma-${MY_COMMIT}/foma"
+CMAKE_USE_DIR="${WORKDIR}/foma-${MY_COMMIT}/foma"
-src_prepare() {
- cmake_src_prepare
+PATCHES=(
+ "${FILESDIR}"/foma-0.10.0-gcc-13-fixes.patch
+ "${FILESDIR}"/foma-0.10-0-fix-BOM_codes-initializer.patch
+ "${FILESDIR}"/foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch
+)
- cd "${WORKDIR}/foma-${MY_COMMIT}" || die
- eapply "${FILESDIR}"/foma-0.10.0-gcc-13-fixes.patch
- eapply "${FILESDIR}"/foma-0.10-0-fix-BOM_codes-initializer.patch
+src_test() {
+ local -x PATH="${BUILD_DIR}:${PATH}"
+ pushd foma/tests >/dev/null || die
+ ./run.sh || die
+ popd >/dev/null || die
}
src_install() {