From f2c38a417f18b9096a0e8c1c940ee2cdb26e0e948ec9eca468f8bffd0dd6a8ab Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 17 May 2024 09:23:04 +0000 Subject: [PATCH 1/2] - Update to git snapshot 0.10.0+git22 (e0d8122) OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/foma?expand=0&rev=20 --- _service | 11 ++++++----- foma-0.10.0+git22.tar.xz | 3 +++ foma-0.10.0.tar.xz | 3 --- foma-gcc14.patch | 14 -------------- foma-harden-build.patch | 3 +++ foma.changes | 7 +++++++ foma.spec | 34 +++++++++++++++------------------- 7 files changed, 34 insertions(+), 41 deletions(-) create mode 100644 foma-0.10.0+git22.tar.xz delete mode 100644 foma-0.10.0.tar.xz delete mode 100644 foma-gcc14.patch diff --git a/_service b/_service index 87a68fe..16c8388 100644 --- a/_service +++ b/_service @@ -1,14 +1,15 @@ - + https://github.com/mhulden/foma git foma - dfe1ccb1055af99be0232a26520d247b5fe093bc - 0.10.0 + master + dfe1ccb1055af99be0232a26520d247b5fe093bc + 0.10.0+git@TAG_OFFSET@ - + *.tar xz - + diff --git a/foma-0.10.0+git22.tar.xz b/foma-0.10.0+git22.tar.xz new file mode 100644 index 0000000..a8c533a --- /dev/null +++ b/foma-0.10.0+git22.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8e60920ee539810ad990a07546924625750bed6857292337ddc02d2ffd5cc129 +size 141636 diff --git a/foma-0.10.0.tar.xz b/foma-0.10.0.tar.xz deleted file mode 100644 index 4921b2c..0000000 --- a/foma-0.10.0.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e4d39224396ad0af8b21d6c896f7af5ec54a939e8dcc67b55b23bf3a83bc4f2 -size 141524 diff --git a/foma-gcc14.patch b/foma-gcc14.patch deleted file mode 100644 index 9ebb560..0000000 --- a/foma-gcc14.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/foma/io.c b/foma/io.c -index b7bf69b..da1c57a 100644 ---- a/foma.orig/io.c -+++ a/foma/io.c -@@ -999,7 +999,7 @@ static BOM BOM_codes[] = { - { { 0x00, 0x00, 0xFE, 0xFF }, 4, "UTF-32BE" }, - { { 0xFF, 0xFE }, 2, "UTF16-LE" }, - { { 0xFE, 0xFF }, 2, "UTF16-BE" }, -- { NULL, 0, NULL }, -+ { { 0, } , 0, NULL }, - }; - - BOM *check_BOM(char *buffer) { - diff --git a/foma-harden-build.patch b/foma-harden-build.patch index ca6046e..caba9ba 100644 --- a/foma-harden-build.patch +++ b/foma-harden-build.patch @@ -1,3 +1,6 @@ +From: Tomáš Chvátal +Date: 2018-09-27 07:28:30+0000 + --- Makefile | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/foma.changes b/foma.changes index 18901fe..2ca53e5 100644 --- a/foma.changes +++ b/foma.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Fri May 17 06:34:16 UTC 2024 - Jan Engelhardt + +- Update to git snapshot 0.10.0+git22 (e0d8122) + * Build fixes for various compilers and C++ standard modes +- Drop foma-gcc14.patch (merged) + ------------------------------------------------------------------- Mon May 13 12:10:56 UTC 2024 - pgajdos@suse.com diff --git a/foma.spec b/foma.spec index 6eff4fe..3ba29e1 100644 --- a/foma.spec +++ b/foma.spec @@ -19,15 +19,13 @@ %{!?make_build:%global make_build make %{?_smp_mflags}} %define libname libfoma0 Name: foma -Version: 0.10.0 +Version: 0.10.0+git22 Release: 0 Summary: Finite-state compiler and C library License: Apache-2.0 URL: https://fomafst.github.io/ -Source0: foma-%{version}.tar.xz -Patch0: foma-harden-build.patch -# https://github.com/mhulden/foma/commit/9a99d2d41809422080606bb49531b38ce1e2111a -Patch1: foma-gcc14.patch +Source: foma-%version.tar.xz +Patch1: foma-harden-build.patch BuildRequires: bison BuildRequires: flex BuildRequires: ncurses-devel @@ -37,21 +35,20 @@ BuildRequires: pkgconfig(zlib) %description Foma is a compiler, programming language, and C library for constructing -finite-state automata and transducers for various uses. It has specific -support for many natural language processing applications such as producing -morphological analyzers. Although NLP applications are probably the main -use of foma, it is sufficiently generic to use for a large number of purposes. +finite-state automata and transducers for various uses. It has specific support +for many natural language processing applications such as producing +morphological analyzers. Although NLP applications are probably the main use of +foma, it is sufficiently generic to use for a large number of purposes. %package -n %{libname} Summary: Finite-state C library %description -n %{libname} The library contains efficient implementations of all classical -automata/transducer algorithms: determinization, minimization, -epsilon-removal, composition, boolean operations. Also, more -advanced construction methods are available: context restriction, -quotients, first-order regular logic, transducers from replacement -rules, etc. +automata/transducer algorithms: determinization, minimization, epsilon-removal, +composition, boolean operations. Also, more advanced construction methods are +available: context restriction, quotients, first-order regular logic, +transducers from replacement rules, etc. %package devel Summary: Finite-state C library development files and headers @@ -73,15 +70,14 @@ sed -i '/^FLOOKUPLDFLAGS/c\FLOOKUPLDFLAGS = libfoma.a -lz -fpic' Makefile %install %make_install \ - prefix=%{buildroot}%{_prefix} \ - libdir=%{buildroot}%{_libdir} -rm -rf %{buildroot}%{_libdir}/*.a + prefix="%{buildroot}/%{_prefix}" \ + libdir="%{buildroot}/%{_libdir}" +rm -Rf "%{buildroot}/%{_libdir}"/*.a # github.com/mhulden/foma/issues/127 perl -i -pe 's{\Q%{buildroot}\E}{}' "%{buildroot}/%{_libdir}/pkgconfig"/*.pc cat "%{buildroot}/%{_libdir}/pkgconfig"/*.pc -%post -n %{libname} -p /sbin/ldconfig -%postun -n %{libname} -p /sbin/ldconfig +%ldconfig_scriptlets -n %libname %files %{_bindir}/cgflookup From ed7457b30d650f18850b93c7e21571d1c78d93cb39a714b300f6e48e8ba2f88d Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Fri, 17 May 2024 11:23:57 +0000 Subject: [PATCH 2/2] switch to cmake OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/foma?expand=0&rev=21 --- foma-harden-build.patch | 37 ------------------------------------- foma.changes | 3 ++- foma.spec | 29 ++++++++++++----------------- 3 files changed, 14 insertions(+), 55 deletions(-) delete mode 100644 foma-harden-build.patch diff --git a/foma-harden-build.patch b/foma-harden-build.patch deleted file mode 100644 index caba9ba..0000000 --- a/foma-harden-build.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Tomáš Chvátal -Date: 2018-09-27 07:28:30+0000 - ---- - Makefile | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -Index: foma/Makefile -=================================================================== ---- a/foma.orig/Makefile -+++ a/foma/Makefile -@@ -23,13 +23,13 @@ LIBOBJS = int_stack.o define.o determini - all: libfoma foma flookup cgflookup - - foma: $(FOMAOBJS) $(LIBOBJS) -- $(CC) $(CFLAGS) $(FOMAOBJS) $(LIBOBJS) $(LDFLAGS) -o $@ -+ $(CC) $(CFLAGS) -pie -Wl,-z,now $(FOMAOBJS) $(LIBOBJS) $(LDFLAGS) -o $@ - - flookup: flookup.o libfoma -- $(CC) $(CFLAGS) flookup.o $(FLOOKUPLDFLAGS) -o $@ -+ $(CC) $(CFLAGS) -pie -Wl,-z,now flookup.o $(FLOOKUPLDFLAGS) -o $@ - - cgflookup: cgflookup.o libfoma -- $(CC) $(CFLAGS) cgflookup.o $(FLOOKUPLDFLAGS) -o $@ -+ $(CC) $(CFLAGS) -pie -Wl,-z,now cgflookup.o $(FLOOKUPLDFLAGS) -o $@ - - STATICLIB = libfoma.a - -@@ -72,7 +72,7 @@ libfoma: $(SHAREDLIBV) - $(SHAREDLIBV): $(LIBOBJS) - $(AR) $(ARFLAGS) $(STATICLIB) $(LIBOBJS) - $(RANLIB) $(STATICLIB) -- $(CC) $(CFLAGS) -shared -Wl,$(DFLAG),$(SHAREDLIBM) -o $(SHAREDLIBV) $(LIBOBJS) $(LDFLAGS) -+ $(CC) $(CFLAGS) -shared -Wl,-z,now,$(DFLAG),$(SHAREDLIBM) -o $(SHAREDLIBV) $(LIBOBJS) $(LDFLAGS) - - install: foma libfoma libfoma.pc - -@if [ ! -d $(exec_prefix) ]; then mkdir -p $(exec_prefix); fi diff --git a/foma.changes b/foma.changes index 2ca53e5..20bd429 100644 --- a/foma.changes +++ b/foma.changes @@ -3,7 +3,8 @@ Fri May 17 06:34:16 UTC 2024 - Jan Engelhardt - Update to git snapshot 0.10.0+git22 (e0d8122) * Build fixes for various compilers and C++ standard modes -- Drop foma-gcc14.patch (merged) +- Drop foma-gcc14.patch (merged), delete foma-harden-build.patch + (obsolete) ------------------------------------------------------------------- Mon May 13 12:10:56 UTC 2024 - pgajdos@suse.com diff --git a/foma.spec b/foma.spec index 3ba29e1..3113010 100644 --- a/foma.spec +++ b/foma.spec @@ -25,11 +25,11 @@ Summary: Finite-state compiler and C library License: Apache-2.0 URL: https://fomafst.github.io/ Source: foma-%version.tar.xz -Patch1: foma-harden-build.patch BuildRequires: bison +BuildRequires: cmake BuildRequires: flex BuildRequires: ncurses-devel -BuildRequires: pkgconfig +BuildRequires: pkg-config BuildRequires: readline-devel BuildRequires: pkgconfig(zlib) @@ -58,24 +58,19 @@ Requires: %{libname} = %{version} Finite-state C library development files and headers for %{name}. %prep -%autosetup -p2 -n %{name}-%{version}/%{name} - -sed -i '/^CFLAGS/c\CFLAGS = %{optflags} -fcommon -Wl,--as-needed -D_GNU_SOURCE -std=c99 -fvisibility=hidden -fPIC' Makefile -sed -i '/^LDFLAGS/c\LDFLAGS = -lreadline -lz -lreadline -fpic' Makefile -sed -i '/^FLOOKUPLDFLAGS/c\FLOOKUPLDFLAGS = libfoma.a -lz -fpic' Makefile +%autosetup -p1 %build -# hand written Makefile that gets to be quite PITA -%make_build -j1 +pushd foma/ +%cmake +%cmake_build +popd %install -%make_install \ - prefix="%{buildroot}/%{_prefix}" \ - libdir="%{buildroot}/%{_libdir}" -rm -Rf "%{buildroot}/%{_libdir}"/*.a -# github.com/mhulden/foma/issues/127 -perl -i -pe 's{\Q%{buildroot}\E}{}' "%{buildroot}/%{_libdir}/pkgconfig"/*.pc -cat "%{buildroot}/%{_libdir}/pkgconfig"/*.pc +pushd foma/ +%cmake_install +popd +find "%buildroot" -type f -name "*.a" -print -delete %ldconfig_scriptlets -n %libname @@ -91,7 +86,7 @@ cat "%{buildroot}/%{_libdir}/pkgconfig"/*.pc %{_libdir}/pkgconfig/libfoma.pc %files -n %{libname} -%license COPYING +%license foma/COPYING %{_libdir}/libfoma.so.* %changelog