forked from mirrors/nixpkgs
Merge pull request #238378 from Lurkki14/lurkki/omorfi
omorfi: init at 0.9.9
This commit is contained in:
commit
3ea8f62a71
|
@ -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";
|
||||
|
|
46
pkgs/development/libraries/hfst-ospell/default.nix
Normal file
46
pkgs/development/libraries/hfst-ospell/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
})
|
53
pkgs/development/libraries/hfst/default.nix
Normal file
53
pkgs/development/libraries/hfst/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
})
|
40
pkgs/development/libraries/libvoikko/default.nix
Normal file
40
pkgs/development/libraries/libvoikko/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
})
|
81
pkgs/development/libraries/omorfi/default.nix
Normal file
81
pkgs/development/libraries/omorfi/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
})
|
45
pkgs/development/python-modules/hfst/default.nix
Normal file
45
pkgs/development/python-modules/hfst/default.nix
Normal file
|
@ -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 ];
|
||||
};
|
||||
}
|
32
pkgs/development/python-modules/omorfi/default.nix
Normal file
32
pkgs/development/python-modules/omorfi/default.nix
Normal file
|
@ -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;
|
||||
};
|
||||
}
|
76
pkgs/development/python-modules/omorfi/importfix.patch
Normal file
76
pkgs/development/python-modules/omorfi/importfix.patch
Normal file
|
@ -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 { };
|
||||
|
|
Loading…
Reference in a new issue