diff --git a/conf/build.manifest b/conf/build.manifest index 2ec7a68..9588ade 100644 --- a/conf/build.manifest +++ b/conf/build.manifest @@ -1,5 +1,23 @@ { - "aptrepo":"", + "apt-repos":{ + "url":"http://apt.tn.ixsystems.com/apt-direct/debian/unstable/", + "distribution":"bullseye", + "components":"main non-free contrib", + "additional":[ + { + "url":"http://apt.tn.ixsystems.com/apt-direct/truenas/docker/", + "distribution":"buster", + "component":"stable", + "key":"keys/docker.gpg" + }, + { + "url":"http://apt.tn.ixsystems.com/apt-direct/truenas/gluster/", + "distribution":"bullseye", + "component":"main", + "key":"keys/gluster.gpg" + } + ] + }, "sources":[ { "name":"py-libzfs", diff --git a/keys/docker.gpg b/keys/docker.gpg new file mode 100644 index 0000000..a03b1d5 --- /dev/null +++ b/keys/docker.gpg @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBF1G4cIBEADjXyAuB79KSUYA8d8A7WlMoxEbx14E1XX73RvjSGrj7ix7m+jh +M2BosNh3Baa6dsIkJfPCPChwFYfeRhz7fy39h+7OLyc4t7rd13CgLO//lDJGcXKD +cWWMYqLj4nbS/4reEWvwWLQyvXDo27r+rDPcb85k4UY4Sy9IOQSG9vjnV9ZeWCGW +UC8qpHUKLd+fdPkUIW++YrHOkUas5IiVTdCeg9kZyfhTumTbzvnqULahLOak7uQd +yG9ZKSObl/NaHYv2dxXJmycmp8QXjzgtg3ZvMpMs4yKqUU9KF5Mo65f8LTggVk0R +N7otEb6/Cnf291HLPE7arGsPhSG9TWjNJvfcjqPDjt9CkcZStHz0jyUeUNRnHCKG +emJ9G9QKV3yakh+SVZP8IkpiW8ZDOjwP37yEwaqi1YTePf8ik/QeEWCWbY+ZCfH6 +7gKmgTnfTAmEDnlNb9opPM359tA9OVrfZQuWy+fpEKmbJRRTOMv46PEW8eH0e9H5 +3ny4nOUs75nvHGWDftlCfYqTLUmTpYxj2/+nHmxNGJ7tjTMgBHlo/Ap4bl+japMr +hJFydL+5YYcv9k8gY3S7l5KRae5BwIo+nM/8ReXlqpfiPjgGEsLEKn/0du7qbIWD +xd4HxGFda5ES9DZY7M5VOdBG08gTvCMckKbkz4kZyx7NisBNjWV88B65rwARAQAB +tEVUcnVlTkFTIENJIChTaWduaW5nIGtleSBmb3IgVHJ1ZU5BUyBDSSBqb2JzKSA8 +bm8tcmVwbHlAaXhzeXN0ZW1zLmNvbT6JAjgEEwEIACIFAl1G4cICGwMGCwkIBwMC +BhUIAgkKCwQWAgMBAh4BAheAAAoJEDGqxvMgmYqXRj4P/jTEMZoraTcu/py3U7By +uAUqBoXSAprW4gWe+AUaOKTzeU81v8giUg6mOGkjSz31Jik9E4/jpIwuETNI6NkE +W5wrI3fTHYF9vj8rUpFE4Szvv7OjTR9wuPFEzj2J/D3br2ofDaq4itF0nTFsvgtA +/WJ7+S2ZlmgeG+FlSU7Ed3KYUXkY3uFvAEDeWoCXaNKFkRa4dci5QsSnyZyU9Rs1 +jcAZpCLAU+eCVTP2+loIpZOfVBbrqDtMAPMuix2SWFkMejebqJKoVAzCESSVYqMu +8PzYpjLdVofiNfRKZVEzE4uLcA0DbzfjDr8HJCF5kYYgq0/ldOf91qlO8pJjmyv4 +pJvSyN1Mu0h5xzqzbw2CaJA9FXGvlkk9HMsd19HihYwvdrMGz0idmrWI2tDRk7u0 +Xtw7VQcwL+qLMHC8BH/UfgJEEep4OqqLgFX45NDwGYnc/YRxY5SRpI1pELMf64rS +irqMxWKYSZv/WqTFlzEGwK5G1BA8S+KO8m1FZV+FjqaibdB0rc1agvf8u6z+zSwW +UpPYBoxsqLkMJ84bDMdi7xzeAbmWMwxDl+ambAQ8qqd/pksIPSOAziZ1xhCo/EnQ +jDRzS2PSD7Sd+/fU/59B35aSxT0/hBq9OIWoQcfuwVZoBqwmH72KwcIRvT0lbR+A +Unh3a3kf6YGdL0mvjGy0QLmFuQINBF1G4cIBEADRrSynMVSf9ZlPgMwM/C1E7TRj +Kuix8LsNR04Jjt/nPe4q90ufBYuQ2saOyeJgzbvn+XwKrXH8r2V8AJ94k8WCAcIs +pihO037cF6j3HBiTq31QQpDawHRjjKP+HASm18vtNm1XZT7bc90yqPWB+8CUR3BD +rGrFx0yBOlP+gK45tlaHvwiLazSqegoWFdXq1CCsXpqyP/eIiiWSVtYEUFdpI5I5 +ZO1K7WjARzKLM0YV67D/PesLyf1DH1moponZFpN64cMcREzo3zKmNBNA+rontEMW +BEQZx6WxeYv00DzDs/kN5E4J8tR6Wrx8rUlJsd+Osv7Gsr31V9bewXNUICl7K8lL +5x/jK2L6GploQgeKOhVnKzKagqaSPtkCWIj90ORdevCUZAEZxqELfbjciXDsYgh+ +kcrU1iHKgu4CVmBWHsl0yK0FxGlK3JtM4bu8Y3TXys1FqHFts6l8rI4bkbn+qK4w +RgFpVo8piUPrs6conlROv5xMR/C2rmTW9Txcy0vePtPPGsyir1sb9kS8cV9T1GLE +logGL1RgX6JTjIMQbjw5TMQGF1G08Ttc79d+JWtqziXb8TKUAeKHjxhjTqBtdLOI +JCgkx9hnNQBRAukgRmv6T/m0iqexSp9/j4nqxYtgCGkDlrFAEN6eDfMARf4Y4geE +BAzUoKYMRKqd8IuNsQARAQABiQIfBBgBCAAJBQJdRuHCAhsMAAoJEDGqxvMgmYqX +tA0QAJMR9dyRDClD//fPx8JThXJBtTaZYW+g+cIhegHIkrt8r6X9y2T5QX1UbC/w +8vg59FAnKM0suFHHPIDpgptGfAf4l6+wCODbImFlDPv2LwydWO22VwHdiquDZYpR +sqXjuEU1sNrdUH5PPhG7Vng58UzL7VENCEcOvarABIxQhb2BHaU43xTYPHaNRytR +rbWioCOTZvDS6TeyMIx+93o9islvLxiwj7uj1A5pb7k/Qw2bfQgoHX9WPQodTdzl +mw6Efz9O39cRkoLKFp03Da9Nw07zJFA+oWjU1jmBHjHL4qZP+T/MHiN+jvRdrTVO +THd9sa0GG8Y6hq3hCWx+5qkhO1o2Q4p+LtfyTkxD4QPyZZe/kRqeNfz8dwaCcBxz ++Lwreg/tQp998qo55PTgLnviiOKOeNDI9DlGW0lGlI5lH6VFutfGyEarFTSSMPiw +YGbziN1zE3BNdddxeUkkPwLdmwq71/+bopXEMRWxjrCMA4sxuH3e7LCTZz/B/4BV +aymwVbRZL6JaQj9a7M3c4h7R28VncHnfRc5QayK3gW8SKVfuushJb9o6oDMfk9qH +C1yX8KhJ9iOmqu3knIVO6ODZH8E9/3bIwoSWJffz2CWku2skbLyEW3AaBZoQ0Fxp +xKhaRWGbTx7tJ0RvSdQyS5lTOCxckh60Jd5o4NwSJ8otraPs +=A8vo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/keys/gluster.gpg b/keys/gluster.gpg new file mode 100644 index 0000000..a03b1d5 --- /dev/null +++ b/keys/gluster.gpg @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=A8vo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/keys/truenas.gpg b/keys/truenas.gpg new file mode 100644 index 0000000..a03b1d5 --- /dev/null +++ b/keys/truenas.gpg @@ -0,0 +1,51 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=A8vo +-----END PGP PUBLIC KEY BLOCK----- diff --git a/scripts/build.sh b/scripts/build.sh index fe45765..16dac84 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -52,14 +52,35 @@ make_bootstrapdir() { mount -t tmpfs -o size=8G tmpfs ${TMPFS} # Bootstrap the debian base system - debootstrap bullseye ${CHROOT_BASEDIR} || exit_err "Failed debootstrap" + apt-key add keys/truenas.gpg 2>/dev/null >/dev/null || exit_err "Failed adding truenas.gpg apt-key" + aptrepo=$(jq -r '."apt-repos"."url"' $MANIFEST) + aptdist=$(jq -r '."apt-repos"."distribution"' $MANIFEST) + aptcomp=$(jq -r '."apt-repos"."components"' $MANIFEST) + debootstrap --keyring /etc/apt/trusted.gpg bullseye ${CHROOT_BASEDIR} $aptrepo || exit_err "Failed debootstrap" mount proc ${CHROOT_BASEDIR}/proc -t proc mount sysfs ${CHROOT_BASEDIR}/sys -t sysfs # Add extra packages for builds chroot ${CHROOT_BASEDIR} apt install -y build-essential dh-make devscripts fakeroot || exit_err "Failed chroot setup" - sed -i'' 's| main| main non-free contrib|g' ${CHROOT_BASEDIR}/etc/apt/sources.list || exit_err "Failed sed" + # Save the correct repo in sources.list + echo "deb $aptrepo $aptdist $aptcomp" > ${CHROOT_BASEDIR}/etc/apt/sources.list + + # Add additional repos + for k in $(jq -r '."apt-repos"."additional" | keys[]' ${MANIFEST} 2>/dev/null | tr -s '\n' ' ') + do + apturl=$(jq -r '."apt-repos"."additional"['$k']."url"' $MANIFEST) + aptdist=$(jq -r '."apt-repos"."additional"['$k']."distribution"' $MANIFEST) + aptcomp=$(jq -r '."apt-repos"."additional"['$k']."component"' $MANIFEST) + aptkey=$(jq -r '."apt-repos"."additional"['$k']."key"' $MANIFEST) + echo "Adding additional repo: $apturl" + cp $aptkey ${CHROOT_BASEDIR}/apt.key || exit_err "Failed copying repo apt key" + chroot ${CHROOT_BASEDIR} apt-key add /apt.key || exit_err "Failed adding apt-key" + rm ${CHROOT_BASEDIR}/apt.key + echo "deb $apturl $aptdist $aptcomp" >> ${CHROOT_BASEDIR}/etc/apt/sources.list + + done + cat ${CHROOT_BASEDIR}/etc/apt/sources.list chroot ${CHROOT_BASEDIR} apt update || exit_err "Failed apt update"