summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/packages/android.scm71
1 files changed, 68 insertions, 3 deletions
diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index 1acc7d454a..6e44369f72 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -105,6 +105,18 @@ use their packages mostly unmodified in our Android NDK build system.")
"adb-add-libraries.patch"
"libziparchive-add-includes.patch"))))
+(define (android-platform-system-extras version)
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://android.googlesource.com/platform/system/extras")
+ (commit (string-append "android-" version))))
+ (file-name (string-append "android-platform-system-extras-"
+ version "-checkout"))
+ (sha256
+ (base32
+ "18130c23ybqcpgjc5v6f8kdbv2xn39hyiaj17dzldjb9rlwzcyy9"))))
+
(define (android-platform-bionic version)
(origin
(method git-fetch)
@@ -434,14 +446,67 @@ that is safe to use for user space. It also includes
`(("openssl" ,openssl)))
(native-inputs
`(("android-bionic-uapi" ,android-bionic-uapi)
- ("core" ,(android-platform-system-core version))))
- (propagated-inputs
- `(("pcre" ,pcre)))
+ ("core" ,(android-platform-system-core version))
+ ;; pcre is inlined by our package.
+ ("pcre" ,pcre)))
(home-page "https://developer.android.com/")
(synopsis (package-synopsis libselinux))
(description (package-description libselinux))
(license (package-license libselinux))))
+(define-public android-ext4-utils
+ (package
+ (name "android-ext4-utils")
+ (version (android-platform-version))
+ (source (android-platform-system-extras version))
+ (build-system android-ndk-build-system)
+ (arguments
+ `(#:tests? #f ; TODO.
+ #:make-flags
+ (list (string-append "CPPFLAGS="
+ ;"-Wno-error "
+ "-I "
+ (assoc-ref %build-inputs "android-libselinux")
+ "/include "
+ "-I " (assoc-ref %build-inputs "android-libsparse")
+ "/include "
+ "-I " (assoc-ref %build-inputs "libcutils")
+ "/include "
+ "-I " (assoc-ref %build-inputs "liblog") "/include "
+ "-I ../core/include")
+ "CFLAGS=-Wno-error"
+ "install-libext4_utils_host.a"
+ (string-append "prefix=" (assoc-ref %outputs "out")))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'unpack-core
+ (lambda* (#:key inputs #:allow-other-keys)
+ (mkdir-p "core")
+ (with-directory-excursion "core"
+ (invoke "tar" "axf" (assoc-ref inputs "android-core")
+ "--strip-components=1"))
+ #t))
+ (add-after 'unpack-core 'enter-source
+ (lambda _ (chdir "ext4_utils") #t))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (copy-recursively "." (string-append out "/include")))
+ #t)))))
+ (inputs
+ `(("libcutils" ,libcutils)
+ ("liblog" ,liblog)
+ ("android-libselinux" ,android-libselinux)
+ ("android-libsparse" ,android-libsparse)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("android-core" ,(android-platform-system-core version))))
+ (home-page "https://developer.android.com/")
+ (synopsis "Android ext4 filesystem utils")
+ (description "@code{android-ext4-utils} is a library in common use by the
+Android core.")
+ (license license:asl2.0)))
+
(define-public android-udev-rules
(package
(name "android-udev-rules")