diff options
Diffstat (limited to 'dev-libs/foma')
-rw-r--r-- | dev-libs/foma/Manifest | 3 | ||||
-rw-r--r-- | dev-libs/foma/files/foma-0.10.0_p20220612-fix-incompatible-function-pointer-types.patch | 71 | ||||
-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() { |