summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
Diffstat (limited to 'gnu')
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/android.scm32
-rw-r--r--gnu/packages/patches/libziparchive-add-includes.patch10
3 files changed, 42 insertions, 1 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 0e1d686a6c..5acc9fb136 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -805,6 +805,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/jq-CVE-2015-8863.patch			\
   %D%/packages/patches/kdbusaddons-kinit-file-name.patch	\
   %D%/packages/patches/khmer-use-libraries.patch                \
+  %D%/packages/patches/libziparchive-add-includes.patch		\
   %D%/packages/patches/kiki-level-selection-crash.patch		\
   %D%/packages/patches/kiki-makefile.patch			\
   %D%/packages/patches/kiki-missing-includes.patch		\
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index ec32a5cfdf..ea225fa900 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -33,6 +33,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages python)
   #:use-module (gnu packages ssh)
@@ -99,7 +100,8 @@ use their packages mostly unmodified in our Android NDK build system.")
     (patches
      (search-patches "libbase-use-own-logging.patch"
                      "libbase-fix-includes.patch"
-                     "adb-add-libraries.patch"))))
+                     "adb-add-libraries.patch"
+                     "libziparchive-add-includes.patch"))))
 
 (define liblog
   (package
@@ -193,6 +195,34 @@ various Android core host applications.")
 various Android core host applications.")
     (license license:asl2.0)))
 
+(define-public android-libziparchive
+  (package
+    (name "android-libziparchive")
+    (version (android-platform-version))
+    (source (android-platform-system-core version))
+    (build-system android-ndk-build-system)
+    (arguments
+     `(#:tests? #f ; TODO.
+       #:make-flags '("CFLAGS=-Wno-error"
+                      "CXXFLAGS=-fpermissive -Wno-error -std=gnu++11")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'enter-source
+           (lambda _ (chdir "libziparchive") #t))
+         (add-after 'install 'install-headers
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (copy-recursively "../include/ziparchive"
+                                 (string-append out "/include/ziparchive"))
+               #t))))))
+    (inputs
+     `(("zlib" ,zlib)))
+    (home-page "https://developer.android.com/")
+    (synopsis "Android platform ZIP library")
+    (description "@code{android-libziparchive} is a library in common use by the
+various Android core host applications.")
+    (license license:asl2.0)))
+
 (define-public adb
   (package
     (name "adb")
diff --git a/gnu/packages/patches/libziparchive-add-includes.patch b/gnu/packages/patches/libziparchive-add-includes.patch
new file mode 100644
index 0000000000..41137105a0
--- /dev/null
+++ b/gnu/packages/patches/libziparchive-add-includes.patch
@@ -0,0 +1,10 @@
+--- a/libziparchive/zip_writer.cc	2018-04-25 22:33:05.472674164 +0200
++++ b/libziparchive/zip_writer.cc	2018-04-25 22:33:21.296519518 +0200
+@@ -22,6 +22,7 @@
+ 
+ #include <sys/param.h>
+ 
++#include <cstring>
+ #include <cassert>
+ #include <cstdio>
+ #include <memory>