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,31 @@
From da8a4b9c1094a568f443c525ca1ce11f686be1bc Mon Sep 17 00:00:00 2001
From: timor <timor.dd@googlemail.com>
Date: Thu, 8 Aug 2019 14:13:09 +0200
Subject: [PATCH] adjust unit test for finding executables in path for NixOS
---
basis/io/standard-paths/unix/unix-tests.factor | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/basis/io/standard-paths/unix/unix-tests.factor b/basis/io/standard-paths/unix/unix-tests.factor
index 986c0564d2..f0772fdcc9 100644
--- a/basis/io/standard-paths/unix/unix-tests.factor
+++ b/basis/io/standard-paths/unix/unix-tests.factor
@@ -5,12 +5,12 @@ sequences tools.test ;
{ f } [ "" find-in-path ] unit-test
{ t } [
- "ls" find-in-path { "/bin/ls" "/usr/bin/ls" } member?
+ "ls" find-in-path not not
] unit-test
{ t } [
"/sbin:" "PATH" os-env append "PATH" [
"ps" find-in-path
- { "/bin/ps" "/sbin/ps" "/usr/bin/ps" } member?
+ not not
] with-os-env
] unit-test
--
2.19.2

View file

@ -0,0 +1,218 @@
{ lib
, stdenv
, cairo
, curl
, fetchurl
, freealut
, gdk-pixbuf
, git
, glib
, gnome2
, graphviz
, gtk2-x11
, interpreter
, libGL
, libGLU
, libogg
, librsvg
, libvorbis
, makeWrapper
, ncurses
, openal
, openssl
, pango
, pcre
, runCommand
, runtimeShell
, tzdata
, udis86
, unzip
, writeScriptBin
, zlib
}:
let
runtimeLibs = [
cairo
freealut
gdk-pixbuf
glib
gnome2.gtkglext
graphviz
gtk2-x11
libGL
libGLU
libogg
libvorbis
openal
openssl
pango
pcre
udis86
zlib
];
wrapFactorScript = { from, to ? false, runtimeLibs }: ''
# Set Gdk pixbuf loaders file to the one from the build dependencies here
unset GDK_PIXBUF_MODULE_FILE
# Defined in gdk-pixbuf setup hook
findGdkPixbufLoaders "${librsvg}"
${if to then "makeWrapper ${from} ${to}" else "wrapProgram ${from}"} \
--set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
--argv0 factor \
--prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:${lib.makeLibraryPath runtimeLibs} \
--prefix PATH : ${lib.makeBinPath [ graphviz ]}
'';
wrapFactor = runtimeLibs:
runCommand (lib.appendToName "with-libs" interpreter).name
{
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ gdk-pixbuf ];
passthru.runtimeLibs = runtimeLibs ++ interpreter.runtimeLibs;
}
(wrapFactorScript {
from = "${interpreter}/lib/factor/.factor.wrapped";
to = "$out/bin/factor";
runtimeLibs = (runtimeLibs ++ interpreter.runtimeLibs);
});
# Development helper for use in nix shell
wrapLocalFactor = writeScriptBin "wrapFactor" ''
#!${runtimeShell}
${wrapFactorScript { from = "./factor"; inherit runtimeLibs; }}
ln -sf factor.image .factor-wrapped.image
'';
rev = "7999e72aecc3c5bc4019d43dc4697f49678cc3b4";
version = "0.98";
in
stdenv.mkDerivation {
pname = "factor-lang";
inherit version;
src = fetchurl {
url = "https://downloads.factorcode.org/releases/${version}/factor-src-${version}.zip";
sha256 = "01ip9mbnar4sv60d2wcwfz62qaamdvbykxw3gbhzqa25z36vi3ri";
};
patches = [
./staging-command-line-0.98-pre.patch
./workdir-0.98-pre.patch
./adjust-paths-in-unit-tests.patch
];
nativeBuildInputs = [ git makeWrapper curl unzip wrapLocalFactor ];
buildInputs = runtimeLibs;
postPatch = ''
sed -ie '4i GIT_LABEL = heads/master-${rev}' GNUmakefile
# There is no ld.so.cache in NixOS so we patch out calls to that completely.
# This should work as long as no application code relies on `find-library*`
# to return a match, which currently is the case and also a justified assumption.
sed -ie "s#/sbin/ldconfig -p#cat $out/lib/factor/ld.so.cache#g" \
basis/alien/libraries/finder/linux/linux.factor
# Some other hard-coded paths to fix:
sed -i 's#/usr/share/zoneinfo/#${tzdata}/share/zoneinfo/#g' \
extra/tzinfo/tzinfo.factor
sed -i 's#/usr/share/terminfo#${ncurses.out}/share/terminfo#g' \
extra/terminfo/terminfo.factor
# De-memoize xdg-* functions, otherwise they break the image.
sed -ie 's/^MEMO:/:/' basis/xdg/xdg.factor
# update default paths in factor-listener.el for fuel mode
substituteInPlace misc/fuel/fuel-listener.el \
--replace '(defcustom fuel-factor-root-dir nil' "(defcustom fuel-factor-root-dir \"$out/lib/factor\""
'';
buildPhase = ''
runHook preBuild
# Necessary here, because ld.so.cache is needed in its final location during rebuild.
mkdir -p $out/bin $out/lib/factor
patchShebangs ./build.sh
# Factor uses XDG_CACHE_HOME for cache during compilation.
# We can't have that. So, set it to $TMPDIR/.cache
export XDG_CACHE_HOME=$TMPDIR/.cache && mkdir -p $XDG_CACHE_HOME
# There is no ld.so.cache in NixOS so we construct one
# out of known libraries. The side effect is that find-lib
# will work only on the known libraries. There does not seem
# to be a generic solution here.
find $(echo ${lib.makeLibraryPath runtimeLibs} | sed -e 's#:# #g') -name \*.so.\* > $TMPDIR/so.lst
(echo $(cat $TMPDIR/so.lst | wc -l) "libs found in cache \`/etc/ld.so.cache'";
for l in $(<$TMPDIR/so.lst); do
echo " $(basename $l) (libc6,x86-64) => $l";
done)> $out/lib/factor/ld.so.cache
make -j$NIX_BUILD_CORES linux-x86-64
./build.sh bootstrap
runHook postBuild
'';
# For now, the check phase runs, but should always return 0. This way the logs
# contain the test failures until all unit tests are fixed. Then, it should
# return 1 if any test failures have occured.
doCheck = false;
checkPhase = ''
runHook preCheck
set +e
./factor -e='USING: tools.test zealot.factor sequences namespaces formatting ;
zealot-core-vocabs "compiler" suffix [ test ] each :test-failures
test-failures get length "Number of failed Tests: %d\n" printf'
[ $? -eq 0 ] || {
mkdir -p "$out/nix-support"
touch "$out/nix-support/failed"
}
set -e
runHook postCheck
'';
installPhase = ''
runHook preInstall
cp -r factor factor.image LICENSE.txt README.md basis core extra misc $out/lib/factor
# Create a wrapper in bin/ and lib/factor/
${wrapFactorScript { from = "$out/lib/factor/factor"; inherit runtimeLibs; }}
mv $out/lib/factor/factor.image $out/lib/factor/.factor-wrapped.image
cp $out/lib/factor/factor $out/bin/
# Emacs fuel expects the image being named `factor.image` in the factor base dir
ln -s $out/lib/factor/.factor-wrapped.image $out/lib/factor/factor.image
# install fuel mode for emacs
mkdir -p $out/share/emacs/site-lisp
ln -s $out/lib/factor/misc/fuel/*.el $out/share/emacs/site-lisp/
runHook postInstall
'';
passthru = {
inherit runtimeLibs wrapFactorScript;
withLibs = wrapFactor;
};
meta = with lib; {
homepage = "https://factorcode.org/";
description = "A concatenative, stack-based programming language";
longDescription = ''
The Factor programming language is a concatenative, stack-based
programming language with high-level features including dynamic types,
extensible syntax, macros, and garbage collection. On a practical side,
Factor has a full-featured library, supports many different platforms, and
has been extensively documented.
The implementation is fully compiled for performance, while still
supporting interactive development. Factor applications are portable
between all common platforms. Factor can deploy stand-alone applications
on all platforms. Full source code for the Factor project is available
under a BSD license.
'';
license = licenses.bsd2;
maintainers = with maintainers; [ vrthra spacefrogg ];
platforms = lib.intersectLists platforms.x86_64 platforms.linux;
};
}

View file

@ -0,0 +1,16 @@
{ lib, pkgs
, overrides ? (self: super: {})}:
let
inside = (self:
let callPackage = pkgs.newScope self;
in rec {
interpreter = callPackage ./factor98.nix { inherit (pkgs) stdenv; };
# Convenience access for using the returned attribute the same way as the
# interpreter derivation. Takes a list of runtime libraries as its only
# argument.
inherit (self.interpreter) withLibs;
});
extensible-self = lib.makeExtensible (lib.extends overrides inside);
in extensible-self

View file

@ -0,0 +1,13 @@
diff --git a/basis/tools/deploy/backend/backend.factor b/basis/tools/deploy/backend/backend.factor
index ec86089dbe..b146168ec9 100644
--- a/basis/tools/deploy/backend/backend.factor
+++ b/basis/tools/deploy/backend/backend.factor
@@ -69,7 +69,7 @@ ERROR: can't-deploy-library-file library ;
[ staging-image-name "-output-image=" prepend , ]
[ " " join "-include=" prepend , ] bi
] [
- input-image-name "-i=" prepend ,
+ input-image-name resource-path "-i=" prepend ,
"-resource-path=" "" resource-path append ,
"-run=tools.deploy.restage" ,
] bi

View file

@ -0,0 +1,24 @@
diff --git a/core/io/pathnames/pathnames.factor b/core/io/pathnames/pathnames.factor
index 2d382e49d1..d4d9228d6c 100644
--- a/core/io/pathnames/pathnames.factor
+++ b/core/io/pathnames/pathnames.factor
@@ -144,7 +144,10 @@ GENERIC: vocab-path ( path -- newpath )
GENERIC: absolute-path ( path -- path' )
M: string absolute-path
- "resource:" ?head [
+ "resource:work" ?head [
+ trim-head-separators "/var/lib/factor" prepend-path
+ absolute-path ]
+ [ "resource:" ?head [
trim-head-separators resource-path
absolute-path
] [
@@ -158,6 +161,7 @@ M: string absolute-path
] [
current-directory get prepend-path
] if ] if
+ ] if
] if ;
M: object normalize-path ( path -- path' )