uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,140 @@
{ fetchurl
, lib
, stdenv
, meson
, ninja
, pkg-config
, gnome
, gtk3
, atk
, gobject-introspection
, spidermonkey_91
, pango
, cairo
, readline
, glib
, libxml2
, dbus
, gdk-pixbuf
, harfbuzz
, makeWrapper
, which
, xvfb-run
, nixosTests
}:
let
testDeps = [
gobject-introspection # for Gio and cairo typelibs
gtk3 atk pango.out gdk-pixbuf harfbuzz
];
in stdenv.mkDerivation rec {
pname = "gjs";
version = "1.72.0";
outputs = [ "out" "dev" "installedTests" ];
src = fetchurl {
url = "mirror://gnome/sources/gjs/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "sha256-PvDK9xbjkg3WH3dI9tVuR2zA/Bg1GtBUjn3xoKub3K0=";
};
patches = [
# Hard-code various paths
./fix-paths.patch
# Allow installing installed tests to a separate output.
./installed-tests-path.patch
];
nativeBuildInputs = [
meson
ninja
pkg-config
makeWrapper
which # for locale detection
libxml2 # for xml-stripblanks
];
buildInputs = [
gobject-introspection
cairo
readline
spidermonkey_91
dbus # for dbus-run-session
];
checkInputs = [
xvfb-run
] ++ testDeps;
propagatedBuildInputs = [
glib
];
mesonFlags = [
"-Dprofiler=disabled"
"-Dinstalled_test_prefix=${placeholder "installedTests"}"
];
doCheck = true;
postPatch = ''
patchShebangs build/choose-tests-locale.sh
substituteInPlace installed-tests/debugger-test.sh --subst-var-by gjsConsole $out/bin/gjs-console
'';
preCheck = ''
# Our gobject-introspection patches make the shared library paths absolute
# in the GIR files. When running tests, the library is not yet installed,
# though, so we need to replace the absolute path with a local one during build.
# We are using a symlink that will be overridden during installation.
mkdir -p $out/lib $installedTests/libexec/installed-tests/gjs
ln -s $PWD/libgjs.so.0 $out/lib/libgjs.so.0
ln -s $PWD/installed-tests/js/libgimarshallingtests.so $installedTests/libexec/installed-tests/gjs/libgimarshallingtests.so
ln -s $PWD/installed-tests/js/libgjstesttools/libgjstesttools.so $installedTests/libexec/installed-tests/gjs/libgjstesttools.so
ln -s $PWD/installed-tests/js/libregress.so $installedTests/libexec/installed-tests/gjs/libregress.so
ln -s $PWD/installed-tests/js/libwarnlib.so $installedTests/libexec/installed-tests/gjs/libwarnlib.so
'';
postInstall = ''
# TODO: make the glib setup hook handle moving the schemas in other outputs.
installedTestsSchemaDatadir="$installedTests/share/gsettings-schemas/${pname}-${version}"
mkdir -p "$installedTestsSchemaDatadir"
mv "$installedTests/share/glib-2.0" "$installedTestsSchemaDatadir"
'';
postFixup = ''
wrapProgram "$installedTests/libexec/installed-tests/gjs/minijasmine" \
--prefix XDG_DATA_DIRS : "$installedTestsSchemaDatadir" \
--prefix GI_TYPELIB_PATH : "${lib.makeSearchPath "lib/girepository-1.0" testDeps}"
'';
checkPhase = ''
runHook preCheck
xvfb-run -s '-screen 0 800x600x24' \
meson test --print-errorlogs
runHook postCheck
'';
separateDebugInfo = stdenv.isLinux;
passthru = {
tests = {
installed-tests = nixosTests.installed-tests.gjs;
};
updateScript = gnome.updateScript {
packageName = "gjs";
versionPolicy = "odd-unstable";
};
};
meta = with lib; {
description = "JavaScript bindings for GNOME";
homepage = "https://gitlab.gnome.org/GNOME/gjs/blob/master/doc/Home.md";
license = licenses.lgpl2Plus;
maintainers = teams.gnome.members;
platforms = platforms.linux;
};
}

View file

@ -0,0 +1,13 @@
diff --git a/installed-tests/debugger-test.sh b/installed-tests/debugger-test.sh
index 0d118490..54c5507e 100755
--- a/installed-tests/debugger-test.sh
+++ b/installed-tests/debugger-test.sh
@@ -3,7 +3,7 @@
if test "$GJS_USE_UNINSTALLED_FILES" = "1"; then
gjs="$TOP_BUILDDIR/gjs-console"
else
- gjs=gjs-console
+ gjs=@gjsConsole@
fi
echo 1..1

View file

@ -0,0 +1,37 @@
diff --git a/installed-tests/meson.build b/installed-tests/meson.build
index 04c7910f..9647908c 100644
--- a/installed-tests/meson.build
+++ b/installed-tests/meson.build
@@ -1,7 +1,7 @@
### Installed tests ############################################################
-installed_tests_execdir = get_option('prefix') / get_option('libexecdir') / 'installed-tests' / meson.project_name()
-installed_tests_metadir = abs_datadir / 'installed-tests' / meson.project_name()
+installed_tests_execdir = get_option('installed_test_prefix') / 'libexec' / 'installed-tests' / meson.project_name()
+installed_tests_metadir = get_option('installed_test_prefix') / 'share' / 'installed-tests' / meson.project_name()
# Simple shell script tests #
diff --git a/meson.build b/meson.build
index 9ab29475..42ffe07f 100644
--- a/meson.build
+++ b/meson.build
@@ -557,7 +557,7 @@ install_data('installed-tests/extra/lsan.supp',
install_dir: get_option('datadir') / api_name / 'lsan')
if get_option('installed_tests')
- schemadir = abs_datadir / 'glib-2.0' / 'schemas'
+ schemadir = get_option('installed_test_prefix') / 'share' / 'glib-2.0' / 'schemas'
install_data('installed-tests/js/org.gnome.GjsTest.gschema.xml', install_dir: schemadir)
meson.add_install_script('build/compile-gschemas.py', schemadir)
endif
diff --git a/meson_options.txt b/meson_options.txt
index 825ba77a..21f0323c 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -25,3 +25,5 @@ option('skip_gtk_tests', type: 'boolean', value: false,
description: 'Skip tests that need a display connection')
option('verbose_logs', type: 'boolean', value: false,
description: 'Enable extra log messages that may decrease performance (not allowed in release builds)')
+option('installed_test_prefix', type: 'string', value: '',
+ description: 'Prefix for installed tests')