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,79 @@
{ lib, buildGraalvmNativeImage, fetchurl, writeScript }:
buildGraalvmNativeImage rec {
pname = "babashka";
version = "0.8.2";
src = fetchurl {
url = "https://github.com/babashka/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
sha256 = "sha256-rdA/pV2EGYPs1UuuTq4dIuce3i8haJOyyyTDAWpOeR8=";
};
executable = "bb";
extraNativeImageBuildArgs = [
"-H:+ReportExceptionStackTraces"
"--no-fallback"
"--native-image-info"
];
installCheckPhase = ''
$out/bin/bb --version | grep '${version}'
$out/bin/bb '(+ 1 2)' | grep '3'
$out/bin/bb '(vec (dedupe *input*))' <<< '[1 1 1 1 2]' | grep '[1 2]'
'';
passthru.updateScript = writeScript "update-babashka" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts jq
set -euo pipefail
readonly latest_version="$(curl \
''${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
-s "https://api.github.com/repos/babashka/babashka/releases/latest" \
| jq -r '.tag_name')"
# v0.6.2 -> 0.6.2
update-source-version babashka "''${latest_version/v/}"
'';
meta = with lib; {
description = "A Clojure babushka for the grey areas of Bash";
longDescription = ''
The main idea behind babashka is to leverage Clojure in places where you
would be using bash otherwise.
As one user described it:
Im quite at home in Bash most of the time, but theres a substantial
grey area of things that are too complicated to be simple in bash, but
too simple to be worth writing a clj/s script for. Babashka really
seems to hit the sweet spot for those cases.
Goals:
- Low latency Clojure scripting alternative to JVM Clojure.
- Easy installation: grab the self-contained binary and run. No JVM needed.
- Familiarity and portability:
- Scripts should be compatible with JVM Clojure as much as possible
- Scripts should be platform-independent as much as possible. Babashka
offers support for linux, macOS and Windows.
- Allow interop with commonly used classes like java.io.File and System
- Multi-threading support (pmap, future, core.async)
- Batteries included (tools.cli, cheshire, ...)
- Library support via popular tools like the clojure CLI
'';
homepage = "https://github.com/babashka/babashka";
changelog = "https://github.com/babashka/babashka/blob/v${version}/CHANGELOG.md";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.epl10;
maintainers = with maintainers; [
bandresen
bhougland
DerGuteMoritz
jlesquembre
thiagokokada
];
};
}

View file

@ -0,0 +1,30 @@
{ lib, stdenv, fetchurl, jre, makeWrapper }:
stdenv.mkDerivation rec {
pname = "clooj";
version = "0.4.4";
jar = fetchurl {
# mirrored as original mediafire.com source does not work without user interaction
url = "https://archive.org/download/clooj-${version}-standalone/clooj-${version}-standalone.jar";
sha256 = "0hbc29bg2a86rm3sx9kvj7h7db9j0kbnrb706wsfiyk3zi3bavnd";
};
nativeBuildInputs = [ makeWrapper ];
dontUnpack = true;
installPhase = ''
mkdir -p $out/share/java
ln -s $jar $out/share/java/clooj.jar
makeWrapper ${jre}/bin/java $out/bin/clooj --add-flags "-jar $out/share/java/clooj.jar"
'';
meta = {
description = "A lightweight IDE for Clojure";
homepage = "https://github.com/arthuredelstein/clooj";
sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
license = lib.licenses.bsd3;
platforms = lib.platforms.all;
};
}

View file

@ -0,0 +1,101 @@
{ lib, stdenv, fetchurl, installShellFiles, jdk, rlwrap, makeWrapper, writeScript }:
stdenv.mkDerivation rec {
pname = "clojure";
version = "1.11.1.1113";
src = fetchurl {
# https://clojure.org/releases/tools
url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
sha256 = "sha256-DJVKVqBx8zueA5+KuQX4NypaYBoNFKMuDM8jDqdgaiI=";
};
nativeBuildInputs = [
installShellFiles
makeWrapper
];
# See https://github.com/clojure/brew-install/blob/1.10.3/src/main/resources/clojure/install/linux-install.sh
installPhase =
let
binPath = lib.makeBinPath [ rlwrap jdk ];
in
''
runHook preInstall
clojure_lib_dir=$out
bin_dir=$out/bin
echo "Installing libs into $clojure_lib_dir"
install -Dm644 deps.edn "$clojure_lib_dir/deps.edn"
install -Dm644 example-deps.edn "$clojure_lib_dir/example-deps.edn"
install -Dm644 tools.edn "$clojure_lib_dir/tools.edn"
install -Dm644 exec.jar "$clojure_lib_dir/libexec/exec.jar"
install -Dm644 clojure-tools-${version}.jar "$clojure_lib_dir/libexec/clojure-tools-${version}.jar"
echo "Installing clojure and clj into $bin_dir"
substituteInPlace clojure --replace PREFIX $out
substituteInPlace clj --replace BINDIR $bin_dir
install -Dm755 clojure "$bin_dir/clojure"
install -Dm755 clj "$bin_dir/clj"
wrapProgram $bin_dir/clojure --prefix PATH : $out/bin:${binPath}
wrapProgram $bin_dir/clj --prefix PATH : $out/bin:${binPath}
installManPage clj.1 clojure.1
runHook postInstall
'';
doInstallCheck = true;
installCheckPhase = ''
CLJ_CONFIG=$TMPDIR CLJ_CACHE=$TMPDIR/.clj_cache $out/bin/clojure \
-Spath \
-Sverbose \
-Scp $out/libexec/clojure-tools-${version}.jar
'';
passthru.updateScript = writeScript "update-clojure" ''
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl common-updater-scripts jq
set -euo pipefail
# `jq -r '.[0].name'` results in `v0.0`
readonly latest_version="$(curl \
''${GITHUB_TOKEN:+"-u \":$GITHUB_TOKEN\""} \
-s "https://api.github.com/repos/clojure/brew-install/tags" \
| jq -r '.[1].name')"
update-source-version clojure "$latest_version"
'';
meta = with lib; {
description = "A Lisp dialect for the JVM";
homepage = "https://clojure.org/";
sourceProvenance = with sourceTypes; [ binaryBytecode ];
license = licenses.epl10;
longDescription = ''
Clojure is a dynamic programming language that targets the Java
Virtual Machine. It is designed to be a general-purpose language,
combining the approachability and interactive development of a
scripting language with an efficient and robust infrastructure for
multithreaded programming. Clojure is a compiled language - it
compiles directly to JVM bytecode, yet remains completely
dynamic. Every feature supported by Clojure is supported at
runtime. Clojure provides easy access to the Java frameworks, with
optional type hints and type inference, to ensure that calls to Java
can avoid reflection.
Clojure is a dialect of Lisp, and shares with Lisp the code-as-data
philosophy and a powerful macro system. Clojure is predominantly a
functional programming language, and features a rich set of immutable,
persistent data structures. When mutable state is needed, Clojure
offers a software transactional memory system and reactive Agent
system that ensure clean, correct, multithreaded designs.
'';
maintainers = with maintainers; [ jlesquembre thiagokokada ];
platforms = platforms.unix;
};
}

View file

@ -0,0 +1,83 @@
{ lib
, stdenv
, fetchurl
, babashka
, cacert
, clojure
, git
, jdk
, obb
, fetchFromGitHub
, makeWrapper
, runCommand }:
stdenv.mkDerivation rec {
pname = "obb";
version = "0.0.2";
src = fetchFromGitHub {
owner = "babashka";
repo = pname;
rev = "v${version}";
sha256 = "1Gxh4IMtytQCuPS+BWOc5AgjEBxa43ebYfDsxLSPeY0=";
};
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ babashka cacert git jdk ];
configurePhase = ''
runHook preConfigure
mkdir -p .m2
substituteInPlace deps.edn --replace ':paths' ':mvn/local-repo "./.m2" :paths'
substituteInPlace bb.edn --replace ':paths' ':mvn/local-repo "./.m2" :paths'
echo deps.edn
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
export DEPS_CLJ_TOOLS_DIR=${clojure}
export DEPS_CLJ_TOOLS_VERSION=${clojure.version}
mkdir -p .gitlibs
mkdir -p .cpcache
export GITLIBS=.gitlibs
export CLJ_CACHE=.cpcache
bb build
runHook postBuild
'';
installPhase = ''
runHook preInstall
mkdir -p $out/bin
ln -s /usr/bin/osascript $out/bin/osascript
install -Dm755 "out/bin/obb" "$out/bin/obb"
wrapProgram $out/bin/obb --prefix PATH : $out/bin
runHook postInstall
'';
passthru.tests = {
simple = runCommand "${pname}-test" {} ''
[ $(${obb}/bin/obb -e '(+ 1 2)') = '3' ]
touch $out
'';
};
meta = with lib; {
description = "Ad-hoc ClojureScript scripting of Mac applications via Apple's Open Scripting Architecture";
homepage = "https://github.com/babashka/obb";
license = licenses.epl10;
maintainers = with maintainers; [
willcohen
];
platforms = platforms.darwin;
};
}