1c39662e63
Able to bootstrap stdenv on FreeBSD by compiling various dependencies using built-in FreeBSD tools so mostly works now Closes: https://github.com/NixOS/nixpkgs/pull/81459
118 lines
2.5 KiB
Bash
118 lines
2.5 KiB
Bash
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
|