From 1bcc1293e6d4ec0a881d1e2317a70cfaca03235c Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Thu, 22 Jan 2026 11:28:14 -0300 Subject: [PATCH 01/10] revert: Revert changes in github workflow, versions and build scripts Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- .github/workflows/xcat_test.yml | 14 -------------- Release | 2 +- Version | 2 +- makerpm | 2 +- 4 files changed, 3 insertions(+), 17 deletions(-) diff --git a/.github/workflows/xcat_test.yml b/.github/workflows/xcat_test.yml index 095b731ca..a5022db46 100644 --- a/.github/workflows/xcat_test.yml +++ b/.github/workflows/xcat_test.yml @@ -10,17 +10,3 @@ jobs: run: sudo apt-get install -y fakeroot reprepro devscripts debhelper libcapture-tiny-perl libjson-perl libsoap-lite-perl libdbi-perl libcgi-pm-perl quilt openssh-server dpkg looptools genometools software-properties-common - name: Run tests run: perl github_action_xcat_test.pl - - # Note: github_action_xcat_test.pl is debian dependent, we - # need to generalize it before running on EL - # xcat_pr_test_el10: - # runs-on: ubuntu-latest - # container: - # image: rockylinux/rockylinux:10 - # timeout-minutes: 60 - # steps: - # - uses: actions/checkout@v4 - # - name: Install dependencies - # run: dnf install -y fakeroot perl-Capture-Tiny perl-JSON perl-SOAP-Lite perl-DBI perl-CGI quilt openssh looptools - # - name: Run tests - # run: perl github_action_xcat_test.pl diff --git a/Release b/Release index b9551fd7e..a33a0ed75 100644 --- a/Release +++ b/Release @@ -1 +1 @@ -RC1 +snap000000000000 diff --git a/Version b/Version index 4a36342fc..d76bd2ba3 100644 --- a/Version +++ b/Version @@ -1 +1 @@ -3.0.0 +2.17.0 diff --git a/makerpm b/makerpm index 0e0fe5d85..c65a02da3 100755 --- a/makerpm +++ b/makerpm @@ -269,7 +269,7 @@ else # linux echo "Error: rpmbuild does not appear to be installed or working." exit 2 fi - RPMROOT="/root/rpmbuild" + RPMROOT=`rpmbuild --eval '%_topdir' xCATsn/xCATsn.spec` if [ $? -gt 0 ]; then echo "Error: Could not determine rpmbuild's root directory." exit 2 From 3a1d458df7b1394b1ba12cee1b3d08c56da34487 Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Thu, 22 Jan 2026 11:30:37 -0300 Subject: [PATCH 02/10] fix: Remove -extension from openssl req call in setup-server-cert.sh Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> See: https://github.com/openssl/openssl/issues/22966#issuecomment-1858396738 --- xCAT-server/share/xcat/scripts/setup-server-cert.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xCAT-server/share/xcat/scripts/setup-server-cert.sh b/xCAT-server/share/xcat/scripts/setup-server-cert.sh index 684c15187..75b45e3dd 100755 --- a/xCAT-server/share/xcat/scripts/setup-server-cert.sh +++ b/xCAT-server/share/xcat/scripts/setup-server-cert.sh @@ -25,7 +25,7 @@ mkdir -p $XCATDIR/cert cd $XCATDIR/cert sed -i "s/#XCATCASAN#/DNS.1 = `hostname --long`\nDNS.2 = `hostname --short`/g" $XCATCADIR/openssl.cnf openssl genrsa -out server-key.pem 2048 -openssl req -config $XCATCADIR/openssl.cnf -new -key server-key.pem -out server-req.pem -extensions server -subj "/CN=$CNA" +openssl req -config $XCATCADIR/openssl.cnf -new -key server-key.pem -out server-req.pem -subj "/CN=$CNA" cp server-req.pem $XCATDIR/ca/`hostname`.csr cd - cd $XCATDIR/ca From 9ce1120356b52c4ea6ca8ccc7f88da5e54ae9ccb Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Thu, 22 Jan 2026 11:57:29 -0300 Subject: [PATCH 03/10] revert: Revert xCAT.spec adding genesis dependencies again Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- xCAT/xCAT.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xCAT/xCAT.spec b/xCAT/xCAT.spec index 3a891bc1e..c0508a257 100644 --- a/xCAT/xCAT.spec +++ b/xCAT/xCAT.spec @@ -40,6 +40,8 @@ Requires: xCAT-server = 4:%{version}-%{release} %if %nots390x Requires: xCAT-probe = 4:%{version}-%{release} +Requires: xCAT-genesis-scripts-x86_64 = 1:%{version}-%{release} +Requires: xCAT-genesis-scripts-ppc64 = 1:%{version}-%{release} %endif Requires: rsync From 8bbf4246fb3bf9131a51976a72a4496360e2a331 Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Thu, 22 Jan 2026 12:15:14 -0300 Subject: [PATCH 04/10] revert: Revert README.md to upstream version Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- README.md | 42 +++++++++++++++++++++++++++--------------- 1 file changed, 27 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 3c6fab2fd..33aa9bf21 100644 --- a/README.md +++ b/README.md @@ -2,34 +2,45 @@ xCAT is a toolkit for deployment and administration of clusters of all sizes. -# xCAT sunset was only a quick eclipse +# Sunsetting xCAT and transitioning to Confluent -Since the news regarding the sunsetting of xCAT, we as a company, decided to continue the development providing fixes and patches for xCAT, including new OS releases while there's still interest available on the xCAT community for the product. +Dear xCAT Community, -We do believe that xCAT still have place in multiple systems, not only older ones but also new ones, and to affirm this belief, we are already delivering, as sign of commitment with the project: +As noted in our previous updates and during the informal BoF sessions at SC’23 and SC’24, the consortium has been focused on both completing the final work for xCAT and preparing for the transition to its successor. -* Enterprise Linux 10 support. -* Removal of `xcat-dep` repository hard dependency. -* Lots of quick fixes. +As committed, we delivered Enterprise Linux 9 (EL9) support in the xCAT 2.17 release. This represents the final planned enablement for xCAT. -xCAT3 is a forked release from the latest xCAT2 with some improvements and should be considered as a drop in replacement for existing xCAT installations. +xCAT is now officially being sunsetted. The consortium will not provide support beyond existing platforms, and Enterprise Linux 10 (EL10) will not be supported. Active development and all new feature work have transitioned fully to **Confluent**, which we recognise as the official successor to xCAT. -Repositories with binary packages, available at this moment only for Enteprise Linux 10, are available for installation: -https://mirror.versatushpc.com.br/opencattus/xcat3 +While xCAT will remain in maintenance mode, with community pull requests still welcome and reviewed, there will be no new features or support for future operating systems. -We want also to thank for all the efforts made by the xCAT Consortium in the last years working to keep the product alive. +In summary: -The continued development of this project is delivered as-is and free of charge by [VersatusHPC](https://versatushpc.com.br). +- xCAT has delivered its final milestone with EL9 support. +- No EL10 or future OS enablement will be added. +- Community contributions are still accepted and reviewed. +- All development effort is now focused on **Confluent**, the successor to xCAT. + +We want to sincerely thank the community for the years of contributions, support, and participation in shaping xCAT. We now look forward to continuing that journey with you in the **Confluent community**, where the future of open, vendor-agnostic cluster management will continue to grow. + +For more information on **Confluent** and how to get started, please visit the **Confluent**: [Project Page](https://github.com/xcat2/confluent), [Documentation](https://xcat2.github.io/confluent-docs/) or [Confluent vs xCAT comparison](https://xcat2.github.io/confluent-docs/miscellaneous/confluentvxcat/). + +With thanks, + +The xCAT Consortium # Documentation -Older xCAT documentation is hosted on Read The Docs: https://xcat-docs.readthedocs.io +xCAT Documentation is hosted on Read The Docs: https://xcat-docs.readthedocs.io ## Status -xCAT3 is being rebuilt and in beta phase. We expect to deliver a General Availability release until the end of 2025. +| xCAT Version | Build Status | +|---|---| +| Latest (master branch) | [![Documentation Status](https://readthedocs.org/projects/xcat-docs/badge/?version=latest)](https://xcat-docs.readthedocs.io/en/latest/) | +| Stable (latest release) | [![Documentation Status](https://readthedocs.org/projects/xcat-docs/badge/?version=stable)](https://xcat-docs.readthedocs.io/en/stable/) | -Looking for [legacy versions](https://readthedocs.org/projects/xcat-docs/versions/)? +Looking for [older versions](https://readthedocs.org/projects/xcat-docs/versions/)? # Open Source License @@ -37,4 +48,5 @@ xCAT is made available under the EPL license: https://opensource.org/licenses/ec # Developers -Want to help? Check out the original [developers guide](http://xcat-docs.readthedocs.io/en/latest/developers). For now similar rules applies. +Want to help? Check out the [developers guide](http://xcat-docs.readthedocs.io/en/latest/developers)! + From c638ec3d35f17d7deb90490e99cb48b864f675d7 Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Thu, 22 Jan 2026 12:27:43 -0300 Subject: [PATCH 05/10] fix: Fix version format in Version Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- Version | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Version b/Version index d76bd2ba3..cf8690732 100644 --- a/Version +++ b/Version @@ -1 +1 @@ -2.17.0 +2.18.0 From 971df49d6ecd3ebe98102a8a698e55cf48ee652a Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Fri, 23 Jan 2026 11:22:48 -0300 Subject: [PATCH 06/10] fix: Fix CI build. * WIP in github_action_xcat_test.pl * Fix typo in build-ubunturepo.sh Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- build-ubunturepo | 2 +- github_action_xcat_test.pl | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/build-ubunturepo b/build-ubunturepo index 5dd48d424..6132e6720 100755 --- a/build-ubunturepo +++ b/build-ubunturepo @@ -89,7 +89,7 @@ if [ "$SETUP" = "1" ];then apt-get -y install $REPREPO $DEVSCRIPTS $DEBHELPER $QUILT - echo "Finised setup for xcat-dep build. Rerun this script with SETUP=0 LOCAL_KEY=1 flags" + echo "Finished setup for xcat-dep build. Rerun this script with SETUP=0 LOCAL_KEY=1 flags" exit 1 fi diff --git a/github_action_xcat_test.pl b/github_action_xcat_test.pl index e0b53e273..47e2e10ab 100644 --- a/github_action_xcat_test.pl +++ b/github_action_xcat_test.pl @@ -281,6 +281,7 @@ sub build_xcat_core{ my $cmd = "sudo ./build-ubunturepo -c UP=0 BUILDALL=1 GPGSIGN=0"; @output = runcmd("$cmd"); + print join "", map { "build-ubunturepo.out: $_\n" } @output; if($::RUNCMD_RC){ my $lastline = $output[-1]; $lastline =~ s/[\r\n\t\\"']*//g; From ed076c92439c4da32c7bf31592b3877b0bb17671 Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Mon, 26 Jan 2026 10:37:30 -0300 Subject: [PATCH 07/10] fix: Revert cosmetic changes Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- github_action_xcat_test.pl | 1 - perl-xCAT/xCAT/Utils.pm | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/github_action_xcat_test.pl b/github_action_xcat_test.pl index 47e2e10ab..e0b53e273 100644 --- a/github_action_xcat_test.pl +++ b/github_action_xcat_test.pl @@ -281,7 +281,6 @@ sub build_xcat_core{ my $cmd = "sudo ./build-ubunturepo -c UP=0 BUILDALL=1 GPGSIGN=0"; @output = runcmd("$cmd"); - print join "", map { "build-ubunturepo.out: $_\n" } @output; if($::RUNCMD_RC){ my $lastline = $output[-1]; $lastline =~ s/[\r\n\t\\"']*//g; diff --git a/perl-xCAT/xCAT/Utils.pm b/perl-xCAT/xCAT/Utils.pm index 248e9fa66..2aabdebbf 100644 --- a/perl-xCAT/xCAT/Utils.pm +++ b/perl-xCAT/xCAT/Utils.pm @@ -2228,7 +2228,7 @@ sub CheckVersion Example: my $os=(xCAT::Utils->osver{ ...} Comments: - type=all does not return platform for backward compatibility reasons + none =cut From a8d80ad82033fd955ccd8a4ffb2463a641a8cb6e Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Mon, 26 Jan 2026 11:30:44 -0300 Subject: [PATCH 08/10] debug: Echo build-ubunturepo output during the build Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- github_action_xcat_test.pl | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/github_action_xcat_test.pl b/github_action_xcat_test.pl index e0b53e273..c2d56d737 100644 --- a/github_action_xcat_test.pl +++ b/github_action_xcat_test.pl @@ -53,6 +53,23 @@ sub runcmd } +#-------------------------------------------------------- +# Fuction name: echocmd +# Description: run a command after 'cmd' label in one case +# the output is echoed to the terminal +# Attributes: +# Return code: +# $::RUNCMD_RC : the return code of command +#-------------------------------------------------------- +sub echocmd +{ + my ($cmd) = @_; + $::RUNCMD_RC = 0; + system($cmd); + $::RUNCMD_RC = $? >> 8; + undef; +} + #-------------------------------------------------------- # Fuction name: get_files_recursive # Description: Search all file in one directory recursively @@ -279,11 +296,16 @@ sub send_back_comment{ sub build_xcat_core{ my @output; - my $cmd = "sudo ./build-ubunturepo -c UP=0 BUILDALL=1 GPGSIGN=0"; - @output = runcmd("$cmd"); + my $dest = $ENV{RUNNER_WORKSPACE}; + my $cmd = <<"EOF"; +find . -name changelog.dch -delete; + +set -x +sudo DEBEMAIL="\$DEBEMAIL" DEBFULLNAME="\$DEBFULLNAME" \\ + ./build-ubunturepo -c UP=0 BUILDALL=1 GPGSIGN=0 DEST="$dest" +EOF + echocmd("$cmd"); if($::RUNCMD_RC){ - my $lastline = $output[-1]; - $lastline =~ s/[\r\n\t\\"']*//g; print "[build_xcat_core] $cmd ....[Failed]\n"; $check_result_str .= "> **BUILD ERROR**, Please click ``Details`` label in ``Merge pull request`` box for detailed information"; print $check_result_str; @@ -311,11 +333,12 @@ sub install_xcat{ "sudo echo \"deb [arch=ppc64el allow-insecure=yes] http://xcat.org/files/xcat/repos/apt/devel/xcat-dep bionic main\" >> /etc/apt/sources.list", "sudo wget -q -O - \"http://xcat.org/files/xcat/repos/apt/apt.key\" | sudo apt-key add -", "sudo apt-get -qq --allow-insecure-repositories update"); - chdir $ENV{RUNNER_WORKSPACE};; + chdir "$ENV{RUNNER_WORKSPACE}/debsfeat/prepare-merge-upstream/xcat-core"; + my $cwd = Cwd::cwd(); my @output; foreach my $cmd (@cmds){ - print "[install_xcat] running $cmd\n"; + print "[install_xcat] running $cmd at $cwd\n"; @output = runcmd("$cmd"); if($::RUNCMD_RC){ print RED "[install_xcat] $cmd. ...[Failed]\n"; From 32acf9af04c81285feff5782095b2e89faa0cf34 Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Mon, 26 Jan 2026 12:57:58 -0300 Subject: [PATCH 09/10] revert: Revert changes in github_action_xcat_test.pl - And Cosmetic change in Utils.pm Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- github_action_xcat_test.pl | 35 ++++++----------------------------- perl-xCAT/xCAT/Utils.pm | 2 +- 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/github_action_xcat_test.pl b/github_action_xcat_test.pl index c2d56d737..e0b53e273 100644 --- a/github_action_xcat_test.pl +++ b/github_action_xcat_test.pl @@ -53,23 +53,6 @@ sub runcmd } -#-------------------------------------------------------- -# Fuction name: echocmd -# Description: run a command after 'cmd' label in one case -# the output is echoed to the terminal -# Attributes: -# Return code: -# $::RUNCMD_RC : the return code of command -#-------------------------------------------------------- -sub echocmd -{ - my ($cmd) = @_; - $::RUNCMD_RC = 0; - system($cmd); - $::RUNCMD_RC = $? >> 8; - undef; -} - #-------------------------------------------------------- # Fuction name: get_files_recursive # Description: Search all file in one directory recursively @@ -296,16 +279,11 @@ sub send_back_comment{ sub build_xcat_core{ my @output; - my $dest = $ENV{RUNNER_WORKSPACE}; - my $cmd = <<"EOF"; -find . -name changelog.dch -delete; - -set -x -sudo DEBEMAIL="\$DEBEMAIL" DEBFULLNAME="\$DEBFULLNAME" \\ - ./build-ubunturepo -c UP=0 BUILDALL=1 GPGSIGN=0 DEST="$dest" -EOF - echocmd("$cmd"); + my $cmd = "sudo ./build-ubunturepo -c UP=0 BUILDALL=1 GPGSIGN=0"; + @output = runcmd("$cmd"); if($::RUNCMD_RC){ + my $lastline = $output[-1]; + $lastline =~ s/[\r\n\t\\"']*//g; print "[build_xcat_core] $cmd ....[Failed]\n"; $check_result_str .= "> **BUILD ERROR**, Please click ``Details`` label in ``Merge pull request`` box for detailed information"; print $check_result_str; @@ -333,12 +311,11 @@ sub install_xcat{ "sudo echo \"deb [arch=ppc64el allow-insecure=yes] http://xcat.org/files/xcat/repos/apt/devel/xcat-dep bionic main\" >> /etc/apt/sources.list", "sudo wget -q -O - \"http://xcat.org/files/xcat/repos/apt/apt.key\" | sudo apt-key add -", "sudo apt-get -qq --allow-insecure-repositories update"); - chdir "$ENV{RUNNER_WORKSPACE}/debsfeat/prepare-merge-upstream/xcat-core"; - my $cwd = Cwd::cwd(); + chdir $ENV{RUNNER_WORKSPACE};; my @output; foreach my $cmd (@cmds){ - print "[install_xcat] running $cmd at $cwd\n"; + print "[install_xcat] running $cmd\n"; @output = runcmd("$cmd"); if($::RUNCMD_RC){ print RED "[install_xcat] $cmd. ...[Failed]\n"; diff --git a/perl-xCAT/xCAT/Utils.pm b/perl-xCAT/xCAT/Utils.pm index 2aabdebbf..27854bfef 100644 --- a/perl-xCAT/xCAT/Utils.pm +++ b/perl-xCAT/xCAT/Utils.pm @@ -2228,7 +2228,7 @@ sub CheckVersion Example: my $os=(xCAT::Utils->osver{ ...} Comments: - none + none =cut From 048d82768e1cf7370bb5a4e6a024129963d6d225 Mon Sep 17 00:00:00 2001 From: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> Date: Mon, 26 Jan 2026 13:01:21 -0300 Subject: [PATCH 10/10] doc: Add comments to /etc/init.d/xcatd changes Signed-off-by: Daniel Hilst Selli <392820+dhilst@users.noreply.github.com> --- xCAT-server/etc/init.d/xcatd | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xCAT-server/etc/init.d/xcatd b/xCAT-server/etc/init.d/xcatd index 0f40a5fee..27aa99d35 100755 --- a/xCAT-server/etc/init.d/xcatd +++ b/xCAT-server/etc/init.d/xcatd @@ -54,7 +54,7 @@ MStatus() } if [ -f /etc/init.d/functions ]; then - #echo RH + # EL8- . /etc/init.d/functions START_DAEMON=daemon STATUS=MStatus @@ -62,6 +62,7 @@ if [ -f /etc/init.d/functions ]; then LOG_FAILURE=RHFailure LOG_WARNING=passed elif [ -f /etc/rc.d/init.d/functions ]; then + # EL9+ . /etc/rc.d/init.d/functions START_DAEMON=daemon STATUS=MStatus