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:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
|
|
@ -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
|
||||
|
||||
218
pkgs/development/compilers/factor-lang/factor98.nix
Normal file
218
pkgs/development/compilers/factor-lang/factor98.nix
Normal 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;
|
||||
};
|
||||
}
|
||||
16
pkgs/development/compilers/factor-lang/scope.nix
Normal file
16
pkgs/development/compilers/factor-lang/scope.nix
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
@ -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' )
|
||||
Loading…
Add table
Add a link
Reference in a new issue