|
#!/bin/bash |
|
|
|
set -xe |
|
|
|
exec 2> >(tee ocaml-bundle.log) |
|
exec 1>&2 |
|
|
|
# shutdown -h -P +60 & |
|
|
|
wget https://github.com/ocaml/opam/releases/download/2.0.2/opam-2.0.2-x86_64-linux -O /usr/local/bin/opam |
|
chmod +x /usr/local/bin/opam |
|
which opam || export PATH=/usr/local/bin:$PATH |
|
|
|
apt-get update |
|
apt-get install -y build-essential rsync git libpcre3-dev libncurses-dev pkg-config m4 unzip aspcud autoconf bubblewrap |
|
|
|
COMP_VERSION=4.07.0 |
|
opam init --root=/usr/local/opam --comp=${COMP_VERSION} -y |
|
eval `opam env --root=/usr/local/opam --set-root` |
|
opam repository add -k git janestreet https://github.com/janestreet/opam-repository.git |
|
opam install -y core async ocaml_plugin utop patdiff incremental dune |
|
|
|
cat > /usr/local/opam/${COMP_VERSION}/bin/git-patdiff-wrapper <<"EOF" |
|
#!/bin/sh |
|
patdiff "$2" -alt-old "$1 $4" "$5" -alt-new "$1 $7" || true |
|
EOF |
|
chmod +x /usr/local/opam/${COMP_VERSION}/bin/git-patdiff-wrapper |
|
|
|
|
|
cp /usr/local/opam/${COMP_VERSION}/bin/{git-patdiff-wrapper,patdiff} . |
|
|
|
|
|
mkdir build-ocaml-bundle |
|
mkdir -p build-ocaml-bundle/{DEBIAN,usr/local{,/bin},etc/{profile.d,sudoers.d}} |
|
|
|
mv /usr/local/bin/opam build-ocaml-bundle/usr/local/bin/ |
|
mv /usr/local/opam build-ocaml-bundle/usr/local/ |
|
rm -rf build-ocaml-bundle/usr/local/opam/{log,repo/default/packages,state.cache} |
|
|
|
mkdir build-patdiff |
|
mkdir -p build-patdiff/{DEBIAN,usr/bin} |
|
|
|
cp {git-patdiff-wrapper,patdiff} build-patdiff/usr/bin/ |
|
|
|
|
|
cat > build-ocaml-bundle/DEBIAN/control <<EOF |
|
Package: ocaml-bundle |
|
Version: 1 |
|
Architecture: amd64 |
|
Maintainer: Daniel Richman <[email protected]> |
|
Depends: build-essential, libpcre3-dev |
|
Recommends: rsync, git, unzip, aspcud |
|
Provides: ocaml-bundle |
|
Section: ocaml |
|
Priority: optional |
|
Homepage: https://gist.github.com/danielrichman/b5e75e6672c76374ad2d |
|
Description: OCaml Bundle |
|
. |
|
Description TBA |
|
EOF |
|
ln -s /usr/local/opam/opam-init/init.sh build-ocaml-bundle/etc/profile.d/ocaml-bundle.sh |
|
echo 'Defaults env_keep+=OPAMROOT' > build-ocaml-bundle/etc/sudoers.d/ocaml-bundle |
|
|
|
cat > build-patdiff/DEBIAN/control <<EOF |
|
Package: patdiff |
|
Version: 1 |
|
Architecture: amd64 |
|
Maintainer: Daniel Richman <[email protected]> |
|
Depends: libpcre3 |
|
Provides: patdiff |
|
Section: vcs |
|
Priority: optional |
|
Homepage: https://github.com/janestreet/patdiff |
|
Description: Jane Street's patdiff |
|
. |
|
Description TBA |
|
EOF |
|
|
|
|
|
# xz seems to be substantially better here(!) |
|
dpkg-deb -Z xz --build build-ocaml-bundle ocaml-bundle.deb |
|
dpkg-deb -Z xz --build build-patdiff patdiff.deb |
|
|
|
rm -rf build-ocaml-bundle build-patdiff |