Commit e46d41e3 authored by Jonas Heinrich's avatar Jonas Heinrich
Browse files

art-standalone: 0-unstable-2025-07-09 -> 0-unstable-2025-09-03

parent 5319f2d8
Loading
Loading
Loading
Loading
+0 −15
Original line number Diff line number Diff line
diff --git a/meson.build b/meson.build
index ad776069..ba8027c2 100644
--- a/meson.build
+++ b/meson.build
@@ -16,8 +16,8 @@ libdl_bio_dep = [
 libc_bio_dep = [
 	cc.find_library('c_bio')
 ]
-if fs.is_file('/usr' / get_option('libdir') / 'java/core-all_classes.jar')
-  bootclasspath_dir = '/usr' / get_option('libdir') / 'java'
+if fs.is_file('@artStandalonePackageDir@' / get_option('libdir') / 'java/core-all_classes.jar')
+  bootclasspath_dir = '@artStandalonePackageDir@' / get_option('libdir') / 'java'
 elif fs.is_file('/usr/local' / get_option('libdir') / 'java/core-all_classes.jar')
   bootclasspath_dir = '/usr/local' / get_option('libdir') / 'java'
 elif fs.is_file(get_option('prefix') / get_option('libdir') / 'java/core-all_classes.jar')
+3 −9
Original line number Diff line number Diff line
@@ -30,22 +30,16 @@

stdenv.mkDerivation {
  pname = "android-translation-layer";
  version = "0-unstable-2025-09-03";
  version = "0-unstable-2025-09-14";

  src = fetchFromGitLab {
    owner = "android_translation_layer";
    repo = "android_translation_layer";
    rev = "cf93a172b9238e6612b778c7ab76013acebf0ef8";
    hash = "sha256-nnwefW8802ctJRY0aqL+D6MK713eoiQ5K6oVnm5fUOQ=";
    rev = "9de91586994af5078decda17db92ce50c5673951";
    hash = "sha256-iRjP++WzLsV7oDGNdF3m9JJJS7zLrG5W46U3h39H5uk=";
  };

  patches = [
    # meson: use pkg-config from art-standalone instead of manual library search
    # See: https://gitlab.com/android_translation_layer/android_translation_layer/-/merge_requests/164
    (replaceVars ./configure-art-path.patch {
      artStandalonePackageDir = "${art-standalone}";
    })

    # Required gio-unix dependency is missing in meson.build
    ./add-gio-unix-dep.patch

+6 −9
Original line number Diff line number Diff line
@@ -23,28 +23,25 @@
}:
stdenv.mkDerivation (finalAttrs: {
  pname = "art-standalone";
  version = "0-unstable-2025-07-09";
  version = "0-unstable-2025-09-03";

  src = fetchFromGitLab {
    owner = "android_translation_layer";
    repo = "art_standalone";
    rev = "1eee3dce3ba6f324bb7a32a170b2da14889af39d";
    hash = "sha256-OAO0k/LkQ+MKqR4HkFXD18LSXQZNPogjjRot4UVoE5A=";
    rev = "10d60509c9073791f9eca1d2b8443d40a40edc05";
    hash = "sha256-Xg6s58jymma1sNb6P7pwWFpYq1O6GoynrgPeLZRD+rI=";
  };

  patches = [
    # Do not hardocde addr2line binary path
    ./no-hardcode-path-addr2line.patch

    # Add support for pkg-config
    # See: https://gitlab.com/android_translation_layer/art_standalone/-/merge_requests/37
    ./pkg-config-support.patch
  ];

  postPatch = ''
    chmod +x dalvik/dx/etc/{dx,dexmerger}
    patchShebangs .
    sed -i "s|/bin/bash|${runtimeShell}|" build/core/config.mk build/core/main.mk
    substituteInPlace build/core/config.mk build/core/main.mk \
      --replace-fail "/bin/bash" "${runtimeShell}"
  '';

  enableParallelBuilding = true;
@@ -102,7 +99,7 @@ stdenv.mkDerivation (finalAttrs: {
    homepage = "https://gitlab.com/android_translation_layer/art_standalone";
    # No license specified yet
    license = lib.licenses.unfree;
    platforms = lib.platforms.all;
    platforms = [ "x86_64-linux" ];
    maintainers = with lib.maintainers; [ onny ];
  };
})
+0 −45
Original line number Diff line number Diff line
diff --git a/Makefile b/Makefile
index 42df5b18..3321adae 100644
--- a/Makefile
+++ b/Makefile
@@ -32,6 +32,8 @@ ____dalvikvm_bin_64 := $(____TOPDIR)/out/host/linux-x86/bin/dalvikvm64
 __RPATH_BIN := \$${ORIGIN}/../$(____LIBDIR)/art/:\$${ORIGIN}/../$(____LIBDIR)/java/dex/art/natives
 __RPATH_LIB := \$${ORIGIN}
 
+__VERSION ?= 0.0.0
+
 # Jack compiler was google's first attempt at a solution for desugaring Java 8 and newer bytecode into bytecode compatible with older dex file formats.
 # Thankfully, google realized that this was a bad idea, and in a typical google fashion, axed the project.
 # They experimented with other approaches, but currently (2022) the way to do this is to use d8/r8 instead of dx;
@@ -112,6 +114,15 @@ install:
 # our stable C API for libandroidfw, used by ATL
 	install -Dt $(____INSTALL_INCLUDEDIR)/androidfw $(____TOPDIR)/libandroidfw/include/androidfw/androidfw_c_api.h
 
+	# install pkg-config file
+	mkdir -p $(____INSTALL_LIBDIR)/pkgconfig
+	sed -e 's|@prefix@|$(____PREFIX)|g' \
+	    -e 's|@libdir@|$(____LIBDIR)|g' \
+	    -e 's|@includedir@|$(____INCLUDEDIR)|g' \
+	    -e 's|@version@|$(__VERSION)|g' \
+	    art-standalone.pc.in > $(____INSTALL_LIBDIR)/pkgconfig/art-standalone.pc
+
+
 # TODO: figure out sharing dependencies and have this in a separate repo
 install_adbd:
 	install -Dt $(____INSTALL_BINDIR) $(____TOPDIR)/out/host/linux-x86/bin/adbd
diff --git a/art-standalone.pc.in b/art-standalone.pc.in
new file mode 100644
index 00000000..210cd031
--- /dev/null
+++ b/art-standalone.pc.in
@@ -0,0 +1,10 @@
+prefix=@prefix@
+exec_prefix=${prefix}
+libdir=${prefix}/@libdir@
+includedir=${prefix}/@includedir@
+
+Name: art-standalone
+Description: Android ART runtime (standalone build, minimal ATL deps)
+Version: @version@
+Libs: -L${libdir}/art -lart -lnativebridge -landroidfw
+Cflags: -I${includedir} -I${includedir}/androidfw