summary refs log tree commit diff
diff options
context:
space:
mode:
authorYury G. Kudryashov <urkud.urkud@gmail.com>2012-08-31 12:01:57 +0400
committerYury G. Kudryashov <urkud.urkud@gmail.com>2012-08-31 12:03:25 +0400
commitc5f9ee33259fd94ef81c672e50a2f69999cb9a29 (patch)
tree103385a4069afe15e2e993b8049c91a01c233cc8
parent38d07f50183afbe49d1fcb953413c252807fd1b5 (diff)
downloadnixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.tar
nixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.tar.gz
nixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.tar.bz2
nixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.tar.lz
nixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.tar.xz
nixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.tar.zst
nixpkgs-c5f9ee33259fd94ef81c672e50a2f69999cb9a29.zip
Add libexttextcat (part of LibreOffice)
-rw-r--r--pkgs/development/libraries/libexttextcat/default.nix18
-rw-r--r--pkgs/development/libraries/libexttextcat/memory-leaks.patch37
-rw-r--r--pkgs/top-level/all-packages.nix2
3 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libexttextcat/default.nix b/pkgs/development/libraries/libexttextcat/default.nix
new file mode 100644
index 00000000000..a75fada7484
--- /dev/null
+++ b/pkgs/development/libraries/libexttextcat/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libexttextcat-3.3.1";
+
+  src = fetchurl {
+    url = "http://dev-www.libreoffice.org/src/libexttextcat/${name}.tar.xz";
+    sha256 = "1a7ablpipfbiyhl6wsraj5z8pj3qkqgnrms73wzsqhpbyww334h4";
+  };
+
+  patches = [ ./memory-leaks.patch ];
+
+  meta = {
+    description = "An N-Gram-Based Text Categorization library primarily intended for language guessing";
+    homepage = http://www.freedesktop.org/wiki/Software/libexttextcat;
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/libexttextcat/memory-leaks.patch b/pkgs/development/libraries/libexttextcat/memory-leaks.patch
new file mode 100644
index 00000000000..0be4ffdc93a
--- /dev/null
+++ b/pkgs/development/libraries/libexttextcat/memory-leaks.patch
@@ -0,0 +1,37 @@
+Combined upstream commits 980592386f23db8b0dc84c434805cb167d0cc091 and
+5ef4ad86ec934282cba891922ec2d13784da3354.
+diff -u b/src/textcat.c b/src/textcat.c
+--- b/src/textcat.c
++++ b/src/textcat.c
+@@ -212,8 +212,6 @@
+                                 sizeof(char) * (tmp_size + 1));
+             if (tmp == NULL)
+             {
+-                free(finger_print_file_name);
+-                finger_print_file_name_size = 0;
+                 goto BAILOUT;
+             }
+             else
+@@ -226,10 +224,7 @@
+         strcat(finger_print_file_name, segment[0]);
+ 
+         if (fp_Read(h->fprint[h->size], finger_print_file_name, 400) == 0)
+-        {
+-            textcat_Done(h);
+             goto BAILOUT;
+-        }
+         h->fprint_disable[h->size] = 0xF0;  /* 0xF0 is the code for enabled
+                                                languages, 0x0F is for disabled 
+                                              */
+@@ -242,9 +237,10 @@
+     return h;
+ 
+   BAILOUT:
++    free(finger_print_file_name);
+     fclose(fp);
++    textcat_Done(h);
+     return NULL;
+-
+ }
+ 
+ extern candidate_t *textcat_GetClassifyFullOutput(void *handle)
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 7a0b578eb58..9bc56479723 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4097,6 +4097,8 @@ let
     libmpeg2 = mpeg2dec;
   };
 
+  libexttextcat = callPackage ../development/libraries/libexttextcat {};
+
   libf2c = callPackage ../development/libraries/libf2c {};
 
   libfixposix = callPackage ../development/libraries/libfixposix {};