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
deleted file mode 100644
index ca6046e..0000000
--- a/foma-harden-build.patch
+++ /dev/null
@@ -1,34 +0,0 @@
----
- 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 18901fe..20bd429 100644
--- a/foma.changes
+++ b/foma.changes
@@ -1,3 +1,11 @@
+-------------------------------------------------------------------
+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), 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 6eff4fe..3113010 100644
--- a/foma.spec
+++ b/foma.spec
@@ -19,39 +19,36 @@
%{!?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
BuildRequires: bison
+BuildRequires: cmake
BuildRequires: flex
BuildRequires: ncurses-devel
-BuildRequires: pkgconfig
+BuildRequires: pkg-config
BuildRequires: readline-devel
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
@@ -61,27 +58,21 @@ 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
-%post -n %{libname} -p /sbin/ldconfig
-%postun -n %{libname} -p /sbin/ldconfig
+%ldconfig_scriptlets -n %libname
%files
%{_bindir}/cgflookup
@@ -95,7 +86,7 @@ cat "%{buildroot}/%{_libdir}/pkgconfig"/*.pc
%{_libdir}/pkgconfig/libfoma.pc
%files -n %{libname}
-%license COPYING
+%license foma/COPYING
%{_libdir}/libfoma.so.*
%changelog