ZFS packages for Fedora, CentOS Stream & RHEL for the aarch64 architecture
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

69 lines
2.9 KiB

# Common code shared between build.sh and update.sh
# Prints the list of currently maintained Fedora versions (e.g. "42 43 44"),
# based on the Bodhi releases API.
function get_fedora_versions () {
curl -fsSL "https://bodhi.fedoraproject.org/releases/?exclude_archived=true&state=current" \
| jq -r '.releases[] | select(.id_prefix=="FEDORA") | .version' \
| grep -E '^[0-9]+$' | sort -n
}
# Prints the list of active CentOS Stream versions (e.g. "9 10"),
# based on the directory listing of the official mirror.
function get_centos_stream_versions () {
curl -fsSL "https://mirror.stream.centos.org/" \
| grep -oP '(?<=href=")[0-9]+-stream(?=/")' \
| sed 's/-stream//' | sort -n
}
# Prints the list of currently maintained Fedora and CentOS Stream versions (e.g. "centos-9 centos-10 fedora-42 fedora-43 fedora-44").
function get_all_remote_dists () {
local dists=()
for v in $(get_centos_stream_versions); do
dists+=("centos-$v")
done
for v in $(get_fedora_versions); do
dists+=("fedora-$v")
done
echo "${dists[@]}"
}
# Installs locally all source RPMs of a given distribution.
function install_all_srpm () {
local dist=$1
echo "Importing source RPMs of $dist..."
rpm -ivh "--define=_topdir $PWD/$dist" "$dist/SRPMS/"*.src.rpm
}
# Applies all patches for a given distribution.
function apply_patches () {
local dist=$1
for patch in "$dist/PATCHES"/*.patch; do
echo "Applying patch $(basename "$patch")..."
patch -d "$dist"* -p1 < "$patch"
done
}
# Downloads the libvirt and zfs source RPMs for a given Fedora distribution.
function download_sources_fedora () {
local dist=$1
local v="${dist#*-}"
echo "Downloading libvirt source for Fedora $v..."
dnf download --repofrompath=$dist,https://dl.fedoraproject.org/pub/fedora/linux/releases/$v/Everything/source/tree/ --repofrompath=$dist-updates,https://dl.fedoraproject.org/pub/fedora/linux/updates/$v/Everything/source/tree/ --repo="$dist" --repo="$dist-updates" --source libvirt --destdir $dist/SRPMS/
echo "Downloading zfs source for Fedora $v..."
if ! dnf download --repofrompath=zfs-$dist,http://download.zfsonlinux.org/fedora/$v/SRPMS/ --repo=zfs-$dist --source zfs zfs-dkms --destdir $dist/SRPMS/; then
echo "ZFS source RPM not found for Fedora $v, skipping..."
fi
}
# Downloads the libvirt and zfs source RPMs for a given CentOS Stream distribution.
function download_sources_centos_stream () {
local dist=$1
local v="${dist#*-}"
echo "Downloading libvirt source for CentOS Stream $v..."
dnf download --repofrompath=$dist,https://mirror.stream.centos.org/$v-stream/AppStream/source/tree/ --repo="$dist" --source libvirt --destdir $dist/SRPMS/
echo "Downloading zfs source for CentOS Stream $v..."
if ! dnf download --repofrompath=zfs-$dist,http://download.zfsonlinux.org/epel/$v/SRPMS/ --repo=zfs-$dist --source zfs zfs-dkms --destdir $dist/SRPMS/; then
echo "ZFS source RPM not found for CentOS Stream $v, skipping..."
fi
}