Skip to content

Commit

Permalink
improve and expose the install script
Browse files Browse the repository at this point in the history
  • Loading branch information
Emilgardis committed Dec 27, 2023
1 parent 0df75af commit b9b0d63
Show file tree
Hide file tree
Showing 5 changed files with 42 additions and 9 deletions.
11 changes: 11 additions & 0 deletions .changes/1368.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
[
{
"type": "fixed",
"description": "use proper location for freebsd installs",
"issues": [1367]
},
{
"type": "added",
"description": "expose `/freebsd-install` to install freebsd packages"
}
]
2 changes: 2 additions & 0 deletions docker/Dockerfile.x86_64-unknown-freebsd
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ COPY freebsd-install.sh /
COPY freebsd-extras.sh /
RUN /freebsd-extras.sh

COPY freebsd-install /

ENV CROSS_TOOLCHAIN_PREFIX=x86_64-unknown-freebsd12-
ENV CROSS_SYSROOT=/usr/local/x86_64-unknown-freebsd12

Expand Down
3 changes: 0 additions & 3 deletions docker/freebsd-common.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
#!/usr/bin/env bash

set -x
set -euo pipefail

# shellcheck disable=SC1091
. freebsd-arch.sh

Expand Down
23 changes: 23 additions & 0 deletions docker/freebsd-install
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
#!/usr/bin/env bash

set -e

if [ -n "${CROSS_DEBUG}" ]; then
set -x
fi

# shellcheck disable=SC1091
. freebsd-common.sh
# shellcheck disable=SC1091
. freebsd-install.sh

case "${FREEBSD_ARCH}" in
arm64) # extras mirrors are under https://pkg.freebsd.org/
FREEBSD_ARCH=aarch64 # https://pkg.freebsd.org/FreeBSD:13:aarch64/
;;
esac

url=""
url=$(fetch_best_freebsd_mirror)
FREEBSD_MIRROR="${url}" setup_freebsd_packagesite
FREEBSD_MIRROR="${url}" install_freebsd_package "${@}"
12 changes: 6 additions & 6 deletions docker/freebsd-install.sh
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
#!/usr/bin/env bash

set -x
set -euo pipefail

# shellcheck disable=SC1091
. freebsd-common.sh

Expand Down Expand Up @@ -120,8 +117,10 @@ setup_freebsd_packagesite() {
fi
pkg_source=$(freebsd_package_source "${url}")

printf "Setting up packagesite from %s\n" ${pkg_source} >&2
mkdir -p "${FREEBSD_PACKAGEDIR}"
curl --retry 3 -sSfL "${pkg_source}/packagesite.txz" -O
printf "Unpacking packagesite\n" >&2
tar -C "${FREEBSD_PACKAGEDIR}" -xJf packagesite.txz

rm packagesite.txz
Expand All @@ -143,9 +142,10 @@ install_freebsd_package() {
pkg_source=$(freebsd_package_source "${url}")

td="$(mktemp -d)"
pushd "${td}"
pushd "${td}" > /dev/null

for name in "${@}"; do
printf "Installing package %s\n" ${name} >&2
path=$(jq -c '. | select ( .name == "'"${name}"'" ) | .repopath' "${FREEBSD_PACKAGESITE}")
if [[ -z "${path}" ]]; then
echo "Unable to find package ${name}" >&2
Expand All @@ -156,14 +156,14 @@ install_freebsd_package() {

mkdir "${td}"/package
curl --retry 3 -sSfL "${pkg_source}/${path}" -O
tar -C "${td}/package" -xJf "${pkg}"
[ -n "${CROSS_DEBUG-}" ] && tar -C "${td}/package" -xJf "${pkg}" || tar -C "${td}/package" -xJf "${pkg}" 2>/dev/null
cp -r "${td}/package"/* "${destdir}"/

rm "${td:?}/${pkg}"
rm -rf "${td:?}/package"
done

# clean up
popd
popd > /dev/null
rm -rf "${td:?}"
}

0 comments on commit b9b0d63

Please sign in to comment.