mirror of
https://github.com/xcat2/xcat-core.git
synced 2026-09-09 22:46:43 +00:00
feat(build): build and publish the Ubuntu management node for riscv64
The xcat and xcatsn packages declared only amd64 and ppc64el, and the builder built and indexed only those two architectures, so a riscv64 management node had no package to install. Both packages are now built for riscv64, every release the repository serves declares the architecture, and the generated mklocalrepo.sh maps a riscv64 host to its own repository instead of amd64. Each package now carries its own architecture list: xCAT-genesis-scripts keeps the two it has control files for, because riscv64 Genesis ships as an OpenEmbedded package instead. Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
This commit is contained in:
@@ -147,16 +147,22 @@ use constant XCAT_PROBE_HELPERS => qw(
|
||||
ServiceNodeUtils.pm
|
||||
);
|
||||
|
||||
# Packages whose .deb carries a real architecture. Everything else in xcat-core is
|
||||
# Perl and ships as Architecture: all -- one binary serving every Ubuntu release and
|
||||
# every arch, which is why this build never needs a per-codename chroot.
|
||||
my %ARCH_PACKAGES = map { $_ => 1 } qw(xCAT xCATsn xCAT-genesis-scripts);
|
||||
# Packages whose .deb carries a real architecture, and the architectures each is built
|
||||
# for. Everything else in xcat-core is Perl and ships as Architecture: all -- one binary
|
||||
# serving every Ubuntu release and every arch, which is why this build never needs a
|
||||
# per-codename chroot. xCAT-genesis-scripts has no riscv64 control file: riscv64 Genesis
|
||||
# ships as an OpenEmbedded package.
|
||||
my %ARCH_PACKAGES = (
|
||||
'xCAT' => [qw(amd64 ppc64el riscv64)],
|
||||
'xCATsn' => [qw(amd64 ppc64el riscv64)],
|
||||
'xCAT-genesis-scripts' => [qw(amd64 ppc64el)],
|
||||
);
|
||||
|
||||
# Ubuntu releases predating ppc64el. Kept as data rather than an `if` in the caller so
|
||||
# the repo-assembly and the package-selection paths cannot disagree about it.
|
||||
my %NO_PPC64EL = map { $_ => 1 } qw(saucy);
|
||||
|
||||
my @DEB_ARCHES = qw(amd64 ppc64el);
|
||||
my @DEB_ARCHES = qw(amd64 ppc64el riscv64);
|
||||
|
||||
# The Ubuntu releases the apt repository serves by default. Single source of truth:
|
||||
# the builder, the repo assembly and the tests all read it here, so they cannot drift.
|
||||
@@ -323,8 +329,8 @@ sub stage_probe_helpers {
|
||||
# 'all' is a single arch-independent build; the three arch packages get one per arch.
|
||||
sub deb_package_arches {
|
||||
my ($package) = @_;
|
||||
return @DEB_ARCHES if $ARCH_PACKAGES{$package // ''};
|
||||
return ('all');
|
||||
my $arches = $ARCH_PACKAGES{ $package // '' };
|
||||
return $arches ? @{$arches} : ('all');
|
||||
}
|
||||
|
||||
# dist_arches: the architectures a release's apt repo declares.
|
||||
|
||||
+5
-5
@@ -317,11 +317,11 @@ sub write_repo_metadata {
|
||||
. /etc/lsb-release
|
||||
cd `dirname $0`
|
||||
host_arch=`uname -m`
|
||||
if [ "$host_arch" != "ppc64le" ];then
|
||||
host_arch="amd64"
|
||||
else
|
||||
host_arch="ppc64el"
|
||||
fi
|
||||
case "$host_arch" in
|
||||
ppc64le) host_arch="ppc64el" ;;
|
||||
riscv64) host_arch="riscv64" ;;
|
||||
*) host_arch="amd64" ;;
|
||||
esac
|
||||
echo deb [arch=$host_arch] file://"`pwd`" $DISTRIB_CODENAME main > /etc/apt/sources.list.d/xcat-core.list
|
||||
SCRIPT
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ Vcs-browser: https://github.com/xcat2/xcat-core.git
|
||||
Homepage: https://xcat.org/
|
||||
|
||||
Package: xcat
|
||||
Architecture: amd64 ppc64el
|
||||
Architecture: amd64 ppc64el riscv64
|
||||
Depends: ${perl:Depends}, goconserver(>= 0.3.3-snap000000000000), xcat-server (>= 2.13-snap000000000000), xcat-client (>= 2.13-snap000000000000), libdbd-sqlite3-perl, isc-dhcp-server | kea, bind9, apache2, nfs-kernel-server, libxml-parser-perl, rsync, tftpd-hpa, libnet-telnet-perl, chrony | ntp, xcat-genesis-scripts-amd64 (>= 2.13-snap000000000000)
|
||||
Recommends: net-tools, nmap, kea, tftp-hpa, ipmitool-xcat (>= 1.8.17-1), syslinux[any-amd64], libsys-virt-perl, syslinux-xcat, xnba-undi, elilo-xcat, util-linux-extra, xcat-buildkit (>= 2.13-snap000000000000), xcat-probe (>= 2.13-snap000000000000), xcat-genesis-openembedded-x86-64, xcat-genesis-openembedded-ppc64le, xcat-genesis-openembedded-riscv64, xcat-genesis-openembedded-s390x
|
||||
Suggests: yaboot-xcat
|
||||
|
||||
@@ -7,7 +7,7 @@ Standards-Version: 3.9.4
|
||||
Homepage: https://xcat.org/
|
||||
|
||||
Package: xcatsn
|
||||
Architecture: amd64 ppc64el
|
||||
Architecture: amd64 ppc64el riscv64
|
||||
Depends: ${perl:Depends}, goconserver (>=0.3.3-snap000000000000), xcat-server (>= 2.13-snap000000000000), xcat-client (>= 2.13-snap000000000000), libdbd-sqlite3-perl, libxml-parser-perl, tftpd-hpa, libnet-telnet-perl, isc-dhcp-server | kea, bind9, apache2, nfs-kernel-server, xcat-genesis-scripts-amd64 (>= 2.13-snap000000000000)
|
||||
Recommends: net-tools, nmap, kea, tftp-hpa, ipmitool-xcat (>= 1.8.17-1), syslinux[any-amd64], libsys-virt-perl, syslinux-xcat, xnba-undi, elilo-xcat, xcat-buildkit (>= 2.13-snap000000000000), xcat-probe (>= 2.13-snap000000000000), xcat-genesis-openembedded-x86-64, xcat-genesis-openembedded-ppc64le, xcat-genesis-openembedded-riscv64, xcat-genesis-openembedded-s390x
|
||||
Suggests: yaboot-xcat
|
||||
|
||||
Reference in New Issue
Block a user