diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:36 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-01-07 02:18:47 +0000 |
commit | 36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch) | |
tree | b3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/stdenv/freebsd | |
parent | 4e31070265257dc67d120c27e0f75c2344fdfa9a (diff) | |
parent | abf060725d7614bd3b9f96764262dfbc2f9c2199 (diff) | |
download | nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2 nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip |
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/stdenv/freebsd')
-rw-r--r-- | nixpkgs/pkgs/stdenv/freebsd/default.nix | 94 | ||||
-rw-r--r-- | nixpkgs/pkgs/stdenv/freebsd/trivial-bootstrap.sh | 204 |
2 files changed, 298 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/stdenv/freebsd/default.nix b/nixpkgs/pkgs/stdenv/freebsd/default.nix new file mode 100644 index 000000000000..dbb4a0564558 --- /dev/null +++ b/nixpkgs/pkgs/stdenv/freebsd/default.nix @@ -0,0 +1,94 @@ +{ lib +, localSystem, crossSystem, config, overlays +}: + +assert crossSystem == localSystem; +let inherit (localSystem) system; in + + +[ + + ({}: { + __raw = true; + + bootstrapTools = derivation { + inherit system; + + name = "trivial-bootstrap-tools"; + builder = "/usr/local/bin/bash"; + args = [ ./trivial-bootstrap.sh ]; + + mkdir = "/bin/mkdir"; + ln = "/bin/ln"; + }; + }) + + ({ 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; + + 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 { + name = "stdenv-freebsd-boot-3"; + inherit config; + + inherit (prevStage.stdenv) + buildPlatform hostPlatform targetPlatform + initialPath shell fetchurlBoot; + + cc = import ../../build-support/cc-wrapper { + nativeTools = true; + nativePrefix = "/usr"; + nativeLibc = true; + stdenvNoCC = prevStage.stdenv; + cc = { + name = "clang-9.9.9"; + cc = "/usr"; + outPath = "/usr"; + }; + isClang = true; + }; + + preHook = ''export NIX_NO_SELF_RPATH=1''; + }; + }) + +] diff --git a/nixpkgs/pkgs/stdenv/freebsd/trivial-bootstrap.sh b/nixpkgs/pkgs/stdenv/freebsd/trivial-bootstrap.sh new file mode 100644 index 000000000000..fbff4575e5a4 --- /dev/null +++ b/nixpkgs/pkgs/stdenv/freebsd/trivial-bootstrap.sh @@ -0,0 +1,204 @@ +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 /usr/local/bin/bash +ln /bin/sh + +ln /usr/local/bin/gmake make + +ln /usr/local/bin/lbzip2 + +ln /usr/local/bin/gdiff diff + +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/bzcat +ln /usr/bin/bzip2recover + +ln /usr/bin/xz +ln /usr/bin/unxz +ln /usr/bin/xzcat +ln /usr/bin/lzma +ln /usr/bin/unlzma +ln /usr/bin/lzcat + +ln /usr/local/bin/gcp cp +ln /usr/local/bin/gdd dd +ln /usr/local/bin/gmv mv +ln /usr/local/bin/grm rm +ln /usr/local/bin/gls ls +ln /bin/ps ps +ln /usr/local/bin/gcat cat +ln /usr/local/bin/gecho echo +ln /usr/local/bin/gexpr expr +ln /usr/local/bin/gtest test +ln /usr/local/bin/gdate date +ln /usr/local/bin/gchmod chmod +ln /usr/local/bin/grmdir rmdir +ln /usr/local/bin/gsleep sleep +ln /bin/hostname hostname + +ln /usr/local/bin/gid id +ln /usr/local/bin/god od +ln /usr/local/bin/gtr tr +ln /usr/local/bin/gwc wc +ln /usr/local/bin/gcut cut +ln /usr/bin/cmp cmp +ln /usr/local/bin/gsed sed +ln /usr/local/bin/gtar tar +ln /usr/local/bin/xar xar +ln /usr/local/bin/gawk awk +ln /usr/local/bin/genv env +ln /usr/local/bin/gtee tee +ln /usr/local/bin/gcomm comm +ln /usr/local/bin/gcpio cpio +ln /usr/local/bin/curl curl +ln /usr/local/bin/gfind find +ln /usr/local/bin/grep grep # other grep is in /usr/bin +ln /usr/bin/gzip +ln /usr/bin/gunzip +ln /usr/bin/zcat +ln /usr/local/bin/ghead head +ln /usr/bin/tail tail # note that we are not using gtail!!! +ln /usr/local/bin/guniq uniq +ln /usr/bin/less less +ln /usr/local/bin/gtrue true +# ln /usr/bin/diff diff # we are using gdiff (see above) +ln /usr/local/bin/egrep egrep +ln /usr/local/bin/fgrep fgrep +ln /usr/local/bin/gpatch patch +ln /usr/local/bin/guname uname +ln /usr/local/bin/gtouch touch +ln /usr/local/bin/gsplit split +ln /usr/local/bin/gxargs xargs +ln /usr/bin/which which +ln /usr/local/bin/ginstall install +ln /usr/local/bin/gbasename basename +ln /usr/local/bin/gdirname dirname +ln /usr/local/bin/greadlink readlink + +ln /usr/local/bin/gln ln +ln /usr/local/bin/gyes yes +ln /usr/local/bin/gwhoami whoami +ln /usr/local/bin/gvdir vdir +ln /usr/local/bin/gusers users +ln /usr/local/bin/guptime uptime +ln /usr/local/bin/gunlink unlink +ln /usr/local/bin/gtty tty +ln /usr/local/bin/gunexpand unexpand +ln /usr/local/bin/gtsort tsort +ln /usr/local/bin/gtruncate truncate +ln /usr/local/bin/gtimeout timeout +ln /usr/local/bin/gtac tac +ln /usr/local/bin/gsync sync +ln /usr/local/bin/gsum sum +ln /usr/local/bin/gstty stty +ln /usr/local/bin/gstdbuf stdbuf +ln /usr/local/bin/gsort sort +ln /usr/local/bin/gruncon runcon +ln /usr/local/bin/gseq seq +ln /usr/local/bin/gsha1sum sha1sum +ln /usr/local/bin/gsha224sum sha224sum +ln /usr/local/bin/gsha256sum sha256sum +ln /usr/local/bin/gsha384sum sha384sum +ln /usr/local/bin/gsha512sum sha512sum +ln /usr/local/bin/gshred shred +ln /usr/local/bin/gshuf shuf +ln /usr/local/bin/grealpath realpath +ln "/usr/local/bin/g[" "[" +ln /usr/local/bin/gbase64 base64 +ln /usr/local/bin/gchcon chcon +ln /usr/local/bin/gchgrp chgrp +ln /usr/local/bin/gchown chown +ln /usr/local/bin/gchroot chroot +ln /usr/local/bin/gcksum cksum +ln /usr/local/bin/gcsplit csplit +ln /usr/local/bin/gdf df +ln /usr/local/bin/gdircolors dircolors +ln /usr/local/bin/gdu du +ln /usr/local/bin/gexpand expand +ln /usr/local/bin/gfactor factor +ln /usr/local/bin/gfalse false +ln /usr/local/bin/gfmt fmt +ln /usr/local/bin/gfold fold +ln /usr/local/bin/ggroups groups +ln /usr/local/bin/ghostid hostid +ln /usr/local/bin/gjoin join +ln /usr/local/bin/gkill kill +ln /usr/local/bin/glink link +ln /usr/local/bin/glogname logname +ln /usr/local/bin/gmd5sum md5sum +ln /usr/local/bin/gmkdir mkdir +ln /usr/local/bin/gmkfifo mkfifo +ln /usr/local/bin/gmknod mknod +ln /usr/local/bin/gmktemp mktemp +ln /usr/local/bin/gnice nice +ln /usr/local/bin/gnl nl +ln /usr/local/bin/gnohup nohup +ln /usr/local/bin/gnproc nproc +ln /usr/local/bin/gnumfmt numfmt +ln /usr/local/bin/gnustat nustat +ln /usr/local/bin/gpaste paste +ln /usr/local/bin/gpathchk pathchk +ln /usr/local/bin/gpinky pinky +ln /usr/local/bin/gpr pr +ln /usr/local/bin/gprintenv printenv +ln /usr/local/bin/gprintf printf +ln /usr/local/bin/gptx ptx +ln /usr/local/bin/gpwd pwd + +# binutils +# pkg info -l binutils | grep usr/local/bin +ln /usr/local/bin/addr2line +ln /usr/local/bin/ar +ln /usr/local/bin/as +ln /usr/local/bin/c++filt +ln /usr/local/bin/dwp +ln /usr/local/bin/elfedit +ln /usr/local/bin/gprof +ln /usr/local/bin/ld +ln /usr/local/bin/ld.bfd +ln /usr/local/bin/ld.gold +ln /usr/local/bin/nm +ln /usr/local/bin/objcopy +ln /usr/local/bin/objdump +ln /usr/local/bin/ranlib +ln /usr/local/bin/readelf +ln /usr/local/bin/size +ln /usr/local/bin/strings +ln /usr/local/bin/strip + +#pkg info -l llvm37 | grep usr/local/bin |