android.scm 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. ;;; This file is part of guix-bavier.git
  2. ;;; Copyright © 2020 Eric Bavier <bavier@posteo.net>
  3. ;;; License: GPLv3+
  4. (define-module (bavier packages android)
  5. #:use-module (guix packages)
  6. #:use-module (guix git-download)
  7. #:use-module (guix bzr-download)
  8. #:use-module (guix build-system cmake)
  9. #:use-module (bavier packages systemd)
  10. #:use-module (gnu packages)
  11. #:use-module (gnu packages bash)
  12. #:use-module (gnu packages boost)
  13. #:use-module (gnu packages check)
  14. #:use-module (gnu packages gcc)
  15. #:use-module (gnu packages gl)
  16. #:use-module (gnu packages glib)
  17. #:use-module (gnu packages linux)
  18. #:use-module (gnu packages maths)
  19. #:use-module (gnu packages pkg-config)
  20. #:use-module (gnu packages protobuf)
  21. #:use-module (gnu packages python)
  22. #:use-module (gnu packages sdl)
  23. #:use-module (gnu packages virtualization)
  24. #:use-module (gnu packages xml)
  25. #:use-module ((guix licenses) #:prefix license:))
  26. (define-public properties-cpp
  27. (let ((bzr-revision "17"))
  28. (package
  29. (name "properties-cpp")
  30. (version "0.0.1")
  31. (source (origin
  32. (method bzr-fetch)
  33. (uri (bzr-reference
  34. (url "lp:properties-cpp")
  35. (revision bzr-revision)))
  36. (file-name (string-append name "-" version "-checkout"))
  37. (sha256
  38. (base32
  39. "1dj3imffbl8fqf3nsymcgv92k0h5mp0df4xnxbr6zrjqafi7h89a"))
  40. (patches (search-patches
  41. "bavier/patches/properties-cpp-findgtest.patch"))))
  42. (build-system cmake-build-system)
  43. (inputs
  44. `(("gtest/gmock" ,googletest)))
  45. (arguments
  46. `(#:configure-flags (list
  47. "-DCMAKE_BUILD_TYPE=Release"
  48. (string-append "-DGTEST_INSTALL_DIR="
  49. (assoc-ref %build-inputs "gtest/gmock")
  50. "/include")
  51. (string-append "-DGMOCK_INSTALL_DIR="
  52. (assoc-ref %build-inputs "gtest/gmock")
  53. "/include"))))
  54. (home-page "https://launchpad.net/properties-cpp")
  55. (synopsis "Properties and signals library for C++")
  56. (description "process-cpp is a simple header-only implementation of
  57. properties and signals. It is meant to be used for developing low-level system
  58. services. Its main features include:
  59. @itemize
  60. @item Thread-safe signal invocation and observer mgmt.
  61. @item The ability to dispatch signal invocations via arbitrary event loops.
  62. @item Typed properties with an in-place update mechanism that avoids unneccessary deep copies.
  63. @item Well tested and documented.
  64. @end itemize")
  65. (license license:gpl3))))
  66. (define-public anbox
  67. (let ((commit "bfbb2b1a20f79cc7bcaac539538c8ef441310ed5") ; Latest as of Fri 18 Sep 2020 01:30:51 AM UTC
  68. (revision "1"))
  69. (package
  70. (name "anbox")
  71. (version (git-version "0" revision commit))
  72. (source (origin
  73. (method git-fetch)
  74. (uri (git-reference
  75. (url "https://github.com/anbox/anbox.git")
  76. (commit commit)
  77. (recursive? #t))) ; For external/sdbus-cpp and external/cpu_features
  78. (file-name (git-file-name name version))
  79. (sha256
  80. (base32
  81. "1dnimvzaqynjcsp7bp1nkrfg5rmm57lzpcyp797dksa9qibb1vkq"))
  82. (patches (search-patches
  83. "bavier/patches/anbox-backward-cpp-binutils-2.34.patch"))))
  84. (build-system cmake-build-system)
  85. (native-inputs
  86. `(("pkg-config" ,pkg-config)
  87. ("python2" ,python-2)))
  88. (inputs
  89. `(("dbus" ,dbus)
  90. ("boost" ,boost)
  91. ("expat" ,expat)
  92. ("glm" ,glm)
  93. ("googletest" ,googletest)
  94. ("libcap" ,libcap)
  95. ("libiberty" ,libiberty)
  96. ("libsystemd" ,systemd)
  97. ("mesa" ,mesa)
  98. ("sdl2" ,(sdl-union (list sdl2 sdl2-image)))
  99. ("properties-cpp" ,properties-cpp)
  100. ("protobuf" ,protobuf)
  101. ("lxc" ,lxc)))
  102. (arguments
  103. `(#:configure-flags
  104. (list (string-append "-DANBOX_VERSION=" ,version)
  105. "-DWerror:BOOL=OFF")
  106. #:phases
  107. (modify-phases %standard-phases
  108. (add-after 'unpack 'patch-tests
  109. (lambda _
  110. (substitute* "external/android-emugl/shared/emugl/common/CMakeLists.txt"
  111. ((".*unittest.*") ""))
  112. #t)))))
  113. (home-page "https://anbox.io/")
  114. (synopsis "Android in a box")
  115. (description "Anbox uses Linux namespaces (user, pid, uts, net, mount, ipc)
  116. to run a full Android system in a container and provide Android applications
  117. on any GNU/Linux-based platform.")
  118. (license (list license:gpl3+
  119. license:sgifreeb2.0
  120. license:asl2.0
  121. license:x11
  122. ;; external/process-cpp-minimal:
  123. license:gpl3
  124. ;; external/sdbus-cpp
  125. license:lgpl2.1+
  126. ;; external/cpu_features
  127. license:asl2.0)))))