Merge pull request #238378 from Lurkki14/lurkki/omorfi

omorfi: init at 0.9.9
This commit is contained in:
Pol Dellaiera 2023-07-26 12:14:59 +02:00 committed by GitHub
commit 3ea8f62a71
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 391 additions and 0 deletions

@ -9963,6 +9963,12 @@
githubId = 782440;
name = "Luna Nova";
};
lurkki = {
email = "jussi.kuokkanen@protonmail.com";
github = "Lurkki14";
githubId = 44469719;
name = "Jussi Kuokkanen";
};
lux = {
email = "lux@lux.name";
github = "luxzeitlos";

@ -0,0 +1,46 @@
{ lib
, stdenv
, autoreconfHook
, fetchFromGitHub
, icu
, libarchive
, pkg-config
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hfst-ospell";
version = "0.5.3";
src = fetchFromGitHub {
owner = "hfst";
repo = "hfst-ospell";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-16H1nbAIe+G71+TnlLG0WnH9LktZwmc0d0O+oYduH1k=";
};
buildInputs = [
icu
libarchive
];
nativeBuildInputs = [
autoreconfHook
pkg-config
];
# libxmlxx is listed as a dependency but Darwin build fails with it,
# might also be better in general since libxmlxx in Nixpkgs is 8 years old
# https://github.com/hfst/hfst-ospell/issues/48#issuecomment-546535653
configureFlags = [
"--without-libxmlpp"
"--without-tinyxml2"
];
meta = with lib; {
homepage = "https://github.com/hfst/hfst-ospell/";
description = "HFST spell checker library and command line tool ";
license = licenses.asl20;
maintainers = with maintainers; [ lurkki ];
platforms = platforms.unix;
};
})

@ -0,0 +1,53 @@
{ lib
, autoreconfHook
, bison
, flex
, foma
, fetchFromGitHub
, gettext
, icu
, stdenv
, swig
, pkg-config
, zlib
}:
stdenv.mkDerivation (finalAttrs: {
pname = "hfst";
version = "3.16.0";
src = fetchFromGitHub {
owner = "hfst";
repo = "hfst";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-2ST0s08Pcp+hTn7rUTgPE1QkH6PPWtiuFezXV3QW0kU=";
};
nativeBuildInputs = [
autoreconfHook
bison
flex
pkg-config
swig
];
buildInputs = [
foma
gettext
icu
zlib
];
configureFlags = [
"--enable-all-tools"
"--with-foma-upstream=true"
];
meta = with lib; {
description = "FST language processing library";
homepage = "https://github.com/hfst/hfst";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ lurkki ];
platforms = platforms.unix;
};
})

@ -0,0 +1,40 @@
{ stdenv
, lib
, autoreconfHook
, hfst-ospell
, fetchFromGitHub
, pkg-config
, python3
}:
stdenv.mkDerivation (finalAttrs: {
pname = "libvoikko";
version = "4.3.2";
src = fetchFromGitHub {
owner = "voikko";
repo = "corevoikko";
rev = "refs/tags/rel-libvoikko-${finalAttrs.version}";
hash = "sha256-0MIQ54dCxyAfdgYWmmTVF+Yfa15K2sjJyP1JNxwHP2M=";
};
sourceRoot = "${finalAttrs.src.name}/libvoikko";
nativeBuildInputs = [
autoreconfHook
pkg-config
python3
];
buildInputs = [
hfst-ospell
];
meta = with lib; {
homepage = "https://voikko.puimula.org/";
description = "Finnish language processing library";
license = licenses.lgpl21Plus;
maintainers = with maintainers; [ lurkki ];
platforms = platforms.unix;
};
})

@ -0,0 +1,81 @@
{ lib
, stdenv
, autoreconfHook
, cg3
, fetchFromGitHub
, hfst
, hfst-ospell
, icu
, libvoikko
, makeWrapper
, pkg-config
, python3
, zip
}:
stdenv.mkDerivation (finalAttrs: {
pname = "omorfi";
version = "0.9.9";
src = fetchFromGitHub {
owner = "flammie";
repo = "omorfi";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-UoqdwNWCNOPX6u1YBlnXUcB/fmcvcy/HXbYciVrMBOY=";
};
# Fix for omorfi-hyphenate.sh file not found error
postInstall = ''
ln -s $out/share/omorfi/{omorfi.hyphenate-rules.hfst,omorfi.hyphenate.hfst}
'';
nativeBuildInputs = [
autoreconfHook
cg3
makeWrapper
pkg-config
python3
zip
python3.pkgs.wrapPython
];
buildInputs = [
python3.pkgs.hfst
hfst-ospell
libvoikko
];
# Supplied pkg-config file doesn't properly expose these
propagatedBuildInputs = [
hfst
icu
];
# Wrap shell scripts so they find the Python scripts
# omorfi.bash inexplicably fails when wrapped
preFixup = ''
wrapPythonProgramsIn "$out/bin" "$out ${python3.pkgs.hfst}"
for i in "$out/bin"/*.{sh,bash}; do
if [ $(basename "$i") != "omorfi.bash" ]; then
wrapProgram "$i" --prefix "PATH" : "$out/bin/"
fi
done
'';
# Enable all features
configureFlags = [
"--enable-labeled-segments"
"--enable-lemmatiser"
"--enable-segmenter"
"--enable-hyphenator"
];
meta = with lib; {
description = "Analysis for Finnish text";
homepage = "https://github.com/flammie/omorfi";
license = licenses.gpl3;
maintainers = with maintainers; [ lurkki ];
# Darwin build fails due to hfst not being found
broken = stdenv.isDarwin;
};
})

@ -0,0 +1,45 @@
{ lib
, pkgs
, stdenv
, buildPythonPackage
, foma
, icu
, swig
}:
buildPythonPackage rec {
pname = "hfst";
inherit (pkgs.hfst) version src;
sourceRoot = "${src.name}/python";
postPatch = ''
# omorfi-python looks for 'hfst' Python package
sed -i 's/libhfst_swig/hfst/' setup.py;
'';
nativeBuildInputs = [
swig
];
buildInputs = [
icu
pkgs.hfst
];
setupPyBuildFlags = [
"--inplace"
];
# Find foma in Darwin tests
preCheck = lib.optionalString stdenv.isDarwin ''
export DYLD_LIBRARY_PATH="${foma}/lib"
'';
meta = with lib; {
description = "Python bindings for HFST";
homepage = "https://github.com/hfst/hfst";
license = licenses.gpl3;
maintainers = with maintainers; [ lurkki ];
};
}

@ -0,0 +1,32 @@
{ buildPythonPackage
, pkgs
, lib
, stdenv
, hfst
}:
buildPythonPackage rec {
pname = "omorfi";
inherit (pkgs.omorfi) src version;
sourceRoot = "${src.name}/src/python";
propagatedBuildInputs = [
hfst
];
# Fixes some improper import paths
patches = [ ./importfix.patch ];
# Apply patch relative to source/src
patchFlags = [ "-p3" ];
meta = with lib; {
description = "Python interface for Omorfi";
homepage = "https://github.com/flammie/omorfi";
license = licenses.gpl3;
maintainers = with maintainers; [ lurkki ];
# Ofborg build error (hfst not found?)
broken = stdenv.isDarwin;
};
}

@ -0,0 +1,76 @@
diff --git a/src/python/omorfi/entryguessing/gradation.py b/src/python/omorfi/entryguessing/gradation.py
index 7d3ed8cb..825d7ead 100755
--- a/src/python/omorfi/entryguessing/gradation.py
+++ b/src/python/omorfi/entryguessing/gradation.py
@@ -17,8 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from .omorfi.error_logging import fail_guess_because
-from .omorfi.string_mangling import replace_rightmost, replace_rightmosts
+from omorfi.error_logging import fail_guess_because
+from omorfi.string_manglers import replace_rightmost, replace_rightmosts
def gradation_make_morphophonemes(wordmap):
diff --git a/src/python/omorfi/entryguessing/guess_new_class.py b/src/python/omorfi/entryguessing/guess_new_class.py
index 1884716b..3a781bfc 100755
--- a/src/python/omorfi/entryguessing/guess_new_class.py
+++ b/src/python/omorfi/entryguessing/guess_new_class.py
@@ -17,8 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from .error_logging import fail_guess_because
-from .string_manglers import three_syllable
+from omorfi.error_logging import fail_guess_because
+from omorfi.string_manglers import three_syllable
def guess_new_class(wordmap):
diff --git a/src/python/omorfi/entryguessing/plurale_tantum.py b/src/python/omorfi/entryguessing/plurale_tantum.py
index a8af81fb..95fc4b7b 100755
--- a/src/python/omorfi/entryguessing/plurale_tantum.py
+++ b/src/python/omorfi/entryguessing/plurale_tantum.py
@@ -17,8 +17,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-from .error_logging import fail_guess_because
-from .omorfi.string_manglers import replace_rightmost, replace_rightmosts
+from omorfi.error_logging import fail_guess_because
+from omorfi.string_manglers import replace_rightmost, replace_rightmosts
def plurale_tantum_get_singular_stem(wordmap):
diff --git a/src/python/omorfi/formats/experimental_xml_formatter.py b/src/python/omorfi/formats/experimental_xml_formatter.py
index abccbff5..11b0f518 100755
--- a/src/python/omorfi/formats/experimental_xml_formatter.py
+++ b/src/python/omorfi/formats/experimental_xml_formatter.py
@@ -19,9 +19,9 @@
from xml.sax.saxutils import escape as xml_escape
-from ftb3_formatter import Ftb3Formatter
+from .ftb3_formatter import Ftb3Formatter
-from .settings import version_id_easter_egg
+from omorfi.settings import version_id_easter_egg
def make_xmlid(s):
diff --git a/src/python/omorfi/formats/lexc_formatter.py b/src/python/omorfi/formats/lexc_formatter.py
index 4ec616b7..b146129f 100755
--- a/src/python/omorfi/formats/lexc_formatter.py
+++ b/src/python/omorfi/formats/lexc_formatter.py
@@ -19,8 +19,8 @@
# functions for formatting the database data to lexc
-from .settings import deriv_boundary, morph_boundary, newword_boundary, optional_hyphen, stub_boundary, word_boundary
-from .string_manglers import lexc_escape
+from omorfi.settings import deriv_boundary, morph_boundary, newword_boundary, optional_hyphen, stub_boundary, word_boundary
+from omorfi.string_manglers import lexc_escape
def format_copyright_lexc():

@ -41577,6 +41577,14 @@ with pkgs;
charasay = callPackage ../tools/misc/charasay { };
libvoikko = callPackage ../development/libraries/libvoikko { };
hfst = callPackage ../development/libraries/hfst { };
omorfi = callPackage ../development/libraries/omorfi { };
hfst-ospell = callPackage ../development/libraries/hfst-ospell { };
waylyrics = callPackage ../applications/audio/waylyrics { };
gitrs = callPackage ../tools/misc/gitrs { };

@ -4718,6 +4718,8 @@ self: super: with self; {
hexdump = callPackage ../development/python-modules/hexdump { };
hfst = callPackage ../development/python-modules/hfst { };
hg-commitsigs = callPackage ../development/python-modules/hg-commitsigs { };
hg-evolve = callPackage ../development/python-modules/hg-evolve { };
@ -7282,6 +7284,8 @@ self: super: with self; {
omnilogic = callPackage ../development/python-modules/omnilogic { };
omorfi = callPackage ../development/python-modules/omorfi { };
omrdatasettools = callPackage ../development/python-modules/omrdatasettools { };
ondilo = callPackage ../development/python-modules/ondilo { };