about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/ocaml-modules/camlzip
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/development/ocaml-modules/camlzip
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/development/ocaml-modules/camlzip')
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlzip/META6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlzip/default.nix67
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlzip/makefile_1_05.patch54
3 files changed, 127 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlzip/META b/nixpkgs/pkgs/development/ocaml-modules/camlzip/META
new file mode 100644
index 000000000000..44c5168ae518
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/camlzip/META
@@ -0,0 +1,6 @@
+version="@VERSION@"
+description="reading and writing ZIP, JAR and GZIP files"
+requires="unix"
+archive(byte)="zip.cma"
+archive(native)="zip.cmxa"
+linkopts = ""
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlzip/default.nix b/nixpkgs/pkgs/development/ocaml-modules/camlzip/default.nix
new file mode 100644
index 000000000000..c1490c3bf196
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/camlzip/default.nix
@@ -0,0 +1,67 @@
+{stdenv, fetchurl, zlib, ocaml, findlib}:
+
+let
+  param =
+    if stdenv.lib.versionAtLeast ocaml.version "4.02"
+    then {
+      version = "1.07";
+      url = "https://github.com/xavierleroy/camlzip/archive/rel107.tar.gz";
+      sha256 = "1pdz3zyiczm6c46zfgag2frwq3ljlq044p3a2y4wm2wb4pgz8k9g";
+      patches = [];
+      installTargets = "install-findlib";
+    } else {
+      version = "1.05";
+      download_id = "1037";
+      url = "http://forge.ocamlcore.org/frs/download.php/${param.download_id}/camlzip-${param.version}.tar.gz";
+      sha256 = "930b70c736ab5a7ed1b05220102310a0a2241564786657abe418e834a538d06b";
+      patches = [./makefile_1_05.patch];
+      installTargets = "install";
+    };
+in
+
+stdenv.mkDerivation {
+  name = "camlzip-${param.version}";
+
+  src = fetchurl {
+    inherit (param) url;
+    inherit (param) sha256;
+  };
+
+  buildInputs = [ocaml findlib];
+
+  propagatedBuildInputs = [zlib];
+
+  inherit (param) patches;
+
+  createFindlibDestdir = true;
+
+  postPatch = ''
+    substitute ${./META} META --subst-var-by VERSION "${param.version}"
+    substituteInPlace Makefile \
+      --subst-var-by ZLIB_LIBDIR "${zlib.out}/lib" \
+      --subst-var-by ZLIB_INCLUDE "${zlib.dev}/include"
+  '';
+
+  buildFlags = "all allopt";
+
+  inherit (param) installTargets;
+
+  postInstall = ''
+    ln -s $out/lib/ocaml/${ocaml.version}/site-lib/{,caml}zip
+  '';
+
+  meta = {
+    homepage = "http://cristal.inria.fr/~xleroy/software.html#camlzip";
+    description = "A library for handling ZIP and GZIP files in OCaml";
+    longDescription = ''
+      This Objective Caml library provides easy access to compressed files in
+      ZIP and GZIP format, as well as to Java JAR files.  It provides functions
+      for reading from and writing to compressed files in these formats.
+    '';
+    license = "LGPL+linking exceptions";
+    platforms = ocaml.meta.platforms or [];
+    maintainers = [
+      stdenv.lib.maintainers.z77z
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlzip/makefile_1_05.patch b/nixpkgs/pkgs/development/ocaml-modules/camlzip/makefile_1_05.patch
new file mode 100644
index 000000000000..87d0c8bec334
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/camlzip/makefile_1_05.patch
@@ -0,0 +1,54 @@
+diff -Nuar camlzip-1.04/Makefile camlzip-1.04.nixpkgs/Makefile
+--- camlzip-1.04/Makefile	2002-04-22 17:28:57.000000000 +0200
++++ camlzip-1.04.nixpkgs/Makefile	2010-12-12 18:30:49.000000000 +0100
+@@ -4,14 +4,10 @@
+ ZLIB_LIB=-lz
+ 
+ # The directory containing the Zlib library (libz.a or libz.so)
+-ZLIB_LIBDIR=/usr/local/lib
++ZLIB_LIBDIR=@ZLIB_LIBDIR@
+ 
+ # The directory containing the Zlib header file (zlib.h)
+-ZLIB_INCLUDE=/usr/local/include
+-
+-# Where to install the library.  By default: sub-directory 'zip' of
+-# OCaml's standard library directory.
+-INSTALLDIR=`$(OCAMLC) -where`/zip
++ZLIB_INCLUDE=@ZLIB_INCLUDE@
+ 
+ ### End of configuration section
+ 
+@@ -19,10 +15,13 @@
+ OCAMLOPT=ocamlopt
+ OCAMLDEP=ocamldep
+ OCAMLMKLIB=ocamlmklib
++OCAMLFIND=ocamlfind 
+ 
+ OBJS=zlib.cmo zip.cmo gzip.cmo
+ C_OBJS=zlibstubs.o
+ 
++LIBINSTALL_FILES = $(wildcard *.mli *.cmi *.cma *.cmxa *.a *.so)
++
+ all: libcamlzip.a zip.cma
+ 
+ allopt: libcamlzip.a zip.cmxa
+@@ -55,18 +54,7 @@
+ 	rm -f *.o *.a
+ 
+ install:
+-	mkdir -p $(INSTALLDIR)
+-	cp zip.cma zip.cmi gzip.cmi zip.mli gzip.mli libcamlzip.a $(INSTALLDIR)
+-	if test -f dllcamlzip.so; then \
+-	  cp dllcamlzip.so $(INSTALLDIR); \
+-          ldconf=`$(OCAMLC) -where`/ld.conf; \
+-          installdir=$(INSTALLDIR); \
+-          if test `grep -s -c $$installdir'$$' $$ldconf || :` = 0; \
+-          then echo $$installdir >> $$ldconf; fi \
+-        fi
+-
+-installopt:
+-	cp zip.cmxa zip.a zip.cmx gzip.cmx $(INSTALLDIR)
++	$(OCAMLFIND) install zip META $(LIBINSTALL_FILES)
+ 
+ depend:
+ 	gcc -MM -I$(ZLIB_INCLUDE) *.c > .depend