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
276
pkgs/stdenv/freebsd/default.nix
Normal file
276
pkgs/stdenv/freebsd/default.nix
Normal file
|
|
@ -0,0 +1,276 @@
|
|||
{ lib
|
||||
, localSystem, crossSystem, config, overlays, crossOverlays ? []
|
||||
}:
|
||||
|
||||
assert crossSystem == localSystem;
|
||||
let inherit (localSystem) system;
|
||||
fetchURL = import <nix/fetchurl.nix>;
|
||||
trivialBuilder = (import ./trivial-builder.nix);
|
||||
make = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "make";
|
||||
ver = "4.3";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz";
|
||||
sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
];
|
||||
};
|
||||
bash = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "bash";
|
||||
ver = "4.4.18";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz";
|
||||
sha256 = "08vz660768mnnax7n8d4d85jxafwdmsxsi7fh0hzvmafbvn9wkb0";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
];
|
||||
};
|
||||
coreutils = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "coreutils";
|
||||
ver = "8.31";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "1zg9m79x1i2nifj4kb0waf9x3i5h6ydkypkjnbsb9rnwis8rqypz";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
"--without-gmp"
|
||||
"--without-libpth-prefix"
|
||||
];
|
||||
};
|
||||
findutils = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "findutils";
|
||||
ver = "4.7.0";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
"--without-gmp"
|
||||
"--without-libpth-prefix"
|
||||
];
|
||||
};
|
||||
diffutils = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "diffutils";
|
||||
ver = "3.7";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "09isrg0isjinv8c535nxsi1s86wfdfzml80dbw41dj9x3hiad9xk";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
"--without-libsigsegv-prefix"
|
||||
];
|
||||
};
|
||||
grep = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "grep";
|
||||
ver = "3.4";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "1yy33kiwrxrwj2nxa4fg15bvmwyghqbs8qwkdvy5phm784f7brjq";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
"--disable-perl-regexp"
|
||||
"--without-libsegsegv-prefix"
|
||||
];
|
||||
};
|
||||
patch = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "patch";
|
||||
ver = "2.7.6";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "1zfqy4rdcy279vwn2z1kbv19dcfw25d2aqy9nzvdkq5bjzd0nqdc";
|
||||
};
|
||||
gawk = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "gawk";
|
||||
ver = "5.0.1";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "15570p7g2x54asvr2fsc56sxzmm08fbk4mzpcs5n92fp9vq8cklf";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--disable-mpfr"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
"--without-libsegsegv-prefix"
|
||||
];
|
||||
};
|
||||
cpio = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "cpio";
|
||||
ver = "2.13";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.gz";
|
||||
sha256 = "126vyg4a8wcdwh6npgvxy6gq433bzgz3ph37hmjpycc4r7cp0x78";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
];
|
||||
};
|
||||
sed = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "sed";
|
||||
ver = "4.8";
|
||||
url = "https://ftp.gnu.org/gnu/${name}/${name}-${ver}.tar.xz";
|
||||
sha256 = "0cznxw73fzv1n3nj2zsq6nf73rvsbxndp444xkpahdqvlzz0r6zp";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--without-libintl-prefix"
|
||||
"--without-libiconv-prefix"
|
||||
];
|
||||
};
|
||||
cacert = fetchURL rec {
|
||||
url = "https://curl.haxx.se/ca/cacert-2020-01-01.pem";
|
||||
sha256 = "07q808n307gzaga93abpf6an7c3rd35p18psdc1dd83lspgp1xxd";
|
||||
executable = false;
|
||||
};
|
||||
curl = trivialBuilder rec {
|
||||
inherit (localSystem) system;
|
||||
name = "curl";
|
||||
ver = "7.68.0";
|
||||
url = "https://curl.haxx.se/download/${name}-${ver}.tar.xz";
|
||||
sha256 = "0nh3j90w6b97wqcgxjfq55qhkz9s38955fbhwzv2fsi7483j895p";
|
||||
configureArgs = [ "--disable-nls"
|
||||
"--disable-ares"
|
||||
"--disable-debug"
|
||||
"--disable-ldap"
|
||||
"--disable-ldaps"
|
||||
"--disable-rtsp"
|
||||
"--disable-dict"
|
||||
"--disable-telnet"
|
||||
"--disable-tftp"
|
||||
"--disable-pop3"
|
||||
"--disable-imap"
|
||||
"--disable-smb"
|
||||
"--disable-smtp"
|
||||
"--disable-gopher"
|
||||
"--disable-manual"
|
||||
"--disable-verbose"
|
||||
"--disable-sspi"
|
||||
"--disable-tls-srp"
|
||||
"--disable-unix-sockets"
|
||||
"--without-brotli"
|
||||
"--without-gnutls"
|
||||
"--without-mbedtls"
|
||||
"--without-wolfssl"
|
||||
"--without-bearssl"
|
||||
"--without-libidn2"
|
||||
"--without-librtmp"
|
||||
"--without-nghttp2"
|
||||
"--with-ssl=/usr"
|
||||
"--with-ca-bundle=${cacert}"
|
||||
];
|
||||
};
|
||||
bashExe = "${bash}/bin/bash";
|
||||
in
|
||||
[
|
||||
|
||||
({}: {
|
||||
__raw = true;
|
||||
|
||||
bootstrapTools = derivation ({
|
||||
inherit system;
|
||||
inherit make bash coreutils findutils
|
||||
diffutils grep patch gawk cpio sed
|
||||
curl;
|
||||
|
||||
name = "trivial-bootstrap-tools";
|
||||
builder = bashExe;
|
||||
args = [ ./trivial-bootstrap.sh ];
|
||||
buildInputs = [ make ];
|
||||
mkdir = "/bin/mkdir";
|
||||
ln = "/bin/ln";
|
||||
} // lib.optionalAttrs config.contentAddressedByDefault {
|
||||
__contentAddressed = true;
|
||||
outputHashAlgo = "sha256";
|
||||
outputHashMode = "recursive";
|
||||
});
|
||||
})
|
||||
|
||||
({ bootstrapTools, ... }: rec {
|
||||
__raw = true;
|
||||
|
||||
inherit bootstrapTools;
|
||||
|
||||
fetchurl = import ../../build-support/fetchurl {
|
||||
inherit lib;
|
||||
stdenvNoCC = stdenv;
|
||||
curl = bootstrapTools;
|
||||
};
|
||||
|
||||
stdenv = import ../generic {
|
||||
name = "stdenv-freebsd-boot-1";
|
||||
buildPlatform = localSystem;
|
||||
hostPlatform = localSystem;
|
||||
targetPlatform = localSystem;
|
||||
inherit config;
|
||||
initialPath = [ "/" "/usr" ];
|
||||
shell = "${bootstrapTools}/bin/bash";
|
||||
fetchurlBoot = null;
|
||||
cc = null;
|
||||
overrides = self: super: {
|
||||
};
|
||||
};
|
||||
})
|
||||
|
||||
(prevStage: {
|
||||
__raw = true;
|
||||
|
||||
inherit (prevStage) bootstrapTools;
|
||||
|
||||
stdenv = import ../generic {
|
||||
name = "stdenv-freebsd-boot-0";
|
||||
inherit config;
|
||||
initialPath = [ prevStage.bootstrapTools ];
|
||||
inherit (prevStage.stdenv)
|
||||
buildPlatform hostPlatform targetPlatform
|
||||
shell;
|
||||
fetchurlBoot = prevStage.fetchurl;
|
||||
cc = null;
|
||||
};
|
||||
})
|
||||
|
||||
(prevStage: {
|
||||
inherit config overlays;
|
||||
stdenv = import ../generic rec {
|
||||
name = "stdenv-freebsd-boot-3";
|
||||
inherit config;
|
||||
|
||||
inherit (prevStage.stdenv)
|
||||
buildPlatform hostPlatform targetPlatform
|
||||
initialPath shell fetchurlBoot;
|
||||
|
||||
cc = lib.makeOverridable (import ../../build-support/cc-wrapper) {
|
||||
inherit lib;
|
||||
nativeTools = true;
|
||||
nativePrefix = "/usr";
|
||||
nativeLibc = true;
|
||||
stdenvNoCC = prevStage.stdenv;
|
||||
buildPackages = {
|
||||
inherit (prevStage) stdenv;
|
||||
};
|
||||
cc = {
|
||||
name = "clang-9.9.9";
|
||||
cc = "/usr";
|
||||
outPath = prevStage.bootstrapTools;
|
||||
};
|
||||
isClang = true;
|
||||
bintools = import ../../build-support/bintools-wrapper {
|
||||
inherit lib;
|
||||
stdenvNoCC = prevStage.stdenv;
|
||||
nativeTools = true;
|
||||
nativeLibc = true;
|
||||
propagateDoc = false;
|
||||
nativePrefix = "/usr";
|
||||
bintools = { name = "${name}-binutils";
|
||||
outPath = prevStage.bootstrapTools; };
|
||||
};
|
||||
};
|
||||
|
||||
preHook = "export NIX_NO_SELF_RPATH=1";
|
||||
};
|
||||
})
|
||||
|
||||
]
|
||||
118
pkgs/stdenv/freebsd/trivial-bootstrap.sh
Normal file
118
pkgs/stdenv/freebsd/trivial-bootstrap.sh
Normal file
|
|
@ -0,0 +1,118 @@
|
|||
set -e
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
echo Building the trivial bootstrap environment...
|
||||
#echo
|
||||
#echo Needed FreeBSD packages:
|
||||
#echo findutils gcpio gawk gnugrep coreutils bash gsed gtar gmake xar binutils gpatch lbzip2 diffutils
|
||||
|
||||
$mkdir -p $out/bin
|
||||
|
||||
ln () {
|
||||
if [ ! -z "${2:-}" ]; then
|
||||
if [ -f "$out/bin/$2" ]; then
|
||||
echo "$2 exists"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if test ! -f "$1"; then
|
||||
echo Target "$2" does not exist
|
||||
exit 1
|
||||
fi
|
||||
# TODO: check that destination directory exists
|
||||
if [ ! -z "${2:-}" ]; then
|
||||
$ln -s "$1" "$out/bin/$2"
|
||||
else
|
||||
$ln -s "$1" "$out/bin/"
|
||||
fi
|
||||
}
|
||||
|
||||
ln $bash/bin/bash
|
||||
ln $make/bin/make
|
||||
|
||||
ln /bin/sh
|
||||
|
||||
for i in b2sum base32 base64 basename basenc cat chcon chgrp chmod \
|
||||
chown chroot cksum comm cp csplit cut date dd df dir dircolors \
|
||||
dirname du echo env expand expr factor false fmt fold install \
|
||||
groups head hostid id join kill link ln logname ls md5sum mkdir \
|
||||
mkfifo mknod mktemp mv nice nl nohup nproc numfmt od paste pathchk \
|
||||
pinky pr printenv printf ptx pwd readlink realpath rm rmdir runcon \
|
||||
seq sha1sum sha224sum sha256sum sha384sum sha512sum shred shuf \
|
||||
sleep sort split stat stdbuf stty sum sync tac tee test timeout \
|
||||
touch tr true truncate tsort tty uname unexpand uniq unlink uptime \
|
||||
users vdir wc who whoami yes
|
||||
do
|
||||
ln "$coreutils/bin/$i" "$i"
|
||||
done
|
||||
|
||||
for i in find xargs; do
|
||||
ln "$findutils/bin/$i" "$i"
|
||||
done
|
||||
|
||||
for i in diff diff3 sdiff; do
|
||||
ln "$diffutils/bin/$i" "$i"
|
||||
done
|
||||
|
||||
for i in grep egrep fgrep; do
|
||||
ln "$grep/bin/$i" "$i"
|
||||
done
|
||||
|
||||
ln /usr/bin/locale
|
||||
|
||||
ln /usr/bin/more
|
||||
|
||||
ln /usr/bin/hexdump # for bitcoin
|
||||
|
||||
ln /usr/bin/bzip2
|
||||
ln /usr/bin/bunzip2
|
||||
ln /usr/bin/bzip2recover
|
||||
|
||||
ln /usr/bin/xz
|
||||
ln /usr/bin/unxz
|
||||
ln /usr/bin/lzma
|
||||
ln /usr/bin/unlzma
|
||||
|
||||
ln /bin/ps
|
||||
ln /bin/hostname
|
||||
ln /usr/bin/cmp
|
||||
ln $sed/bin/sed
|
||||
ln /usr/bin/tar tar
|
||||
ln $gawk/bin/gawk
|
||||
ln $gawk/bin/gawk awk
|
||||
ln $cpio/bin/cpio
|
||||
ln $curl/bin/curl curl
|
||||
ln /usr/bin/gzip
|
||||
ln /usr/bin/gunzip
|
||||
ln /usr/bin/tail tail # note that we are not using gtail!!!
|
||||
ln /usr/bin/less less
|
||||
ln $patch/bin/patch patch
|
||||
ln /usr/bin/which which
|
||||
|
||||
## binutils
|
||||
# pkg info -l binutils | grep usr/local/bin
|
||||
ln /usr/bin/addr2line
|
||||
ln /usr/bin/ar
|
||||
ln /usr/bin/as
|
||||
ln /usr/bin/c++filt
|
||||
#ln /usr/bin/dwp
|
||||
#ln /usr/bin/elfedit
|
||||
ln /usr/bin/gprof
|
||||
ln /usr/bin/ld
|
||||
#ln /usr/bin/ld.bfd
|
||||
#ln /usr/bin/ld.gold
|
||||
ln /usr/bin/nm
|
||||
ln /usr/bin/objcopy
|
||||
ln /usr/bin/objdump
|
||||
ln /usr/bin/ranlib
|
||||
ln /usr/bin/readelf
|
||||
ln /usr/bin/size
|
||||
ln /usr/bin/strings
|
||||
ln /usr/bin/strip
|
||||
|
||||
ln /usr/bin/cc
|
||||
ln /usr/bin/cpp
|
||||
ln /usr/bin/c++
|
||||
|
||||
#pkg info -l llvm37 | grep usr/local/bin
|
||||
13
pkgs/stdenv/freebsd/trivial-builder.nix
Normal file
13
pkgs/stdenv/freebsd/trivial-builder.nix
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{ system, name, ver, url, sha256, configureArgs ? [], executable ? false } :
|
||||
|
||||
let fetchURL = import <nix/fetchurl.nix>;
|
||||
|
||||
in derivation {
|
||||
inherit system configureArgs;
|
||||
name = "trivial-bootstrap-${name}-${ver}";
|
||||
dname = "${name}-${ver}";
|
||||
src = fetchURL {
|
||||
inherit url sha256 executable;
|
||||
};
|
||||
builder = ./trivial-builder.sh;
|
||||
}
|
||||
10
pkgs/stdenv/freebsd/trivial-builder.sh
Executable file
10
pkgs/stdenv/freebsd/trivial-builder.sh
Executable file
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
|
||||
export PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||
|
||||
tar -zxvf $src
|
||||
cd $dname
|
||||
mkdir -p $out/bin
|
||||
./configure --prefix=$out $configureArgs
|
||||
make
|
||||
make install
|
||||
Loading…
Add table
Add a link
Reference in a new issue