2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-09-05 04:27:55 +00:00
Commit Graph

16 Commits

Author SHA1 Message Date
Vinícius Ferrão 77c1694b03 refactor(utils): centralize executable lookup 2026-09-02 22:57:05 -03:00
Daniel Hilst 1160214ce3 refactor(build): merge the two BuildUtils modules into one
The rebase onto master left the repository with two modules named
BuildUtils.pm: the shared build helpers at the root, package BuildUtils, and
the target architecture parser at build-utils/lib/XCAT/BuildUtils.pm, package
XCAT::BuildUtils. buildrpms.pl loaded both, one through `@INC` and one through a
path require. A reader cannot tell which module a BuildUtils reference names,
and the test sandbox staged the wrong one.

Move the shared helpers into build-utils/lib/XCAT/BuildUtils.pm as
XCAT::BuildUtils, and export targetarch_from_target beside them. Both builders
and the four tests now put build-utils/lib on `@INC` and import from the one
module. targetarch_from_target keeps its behaviour: it returns the same
architecture as before for suffixed targets, empty and undefined input, mixed
case and every architecture token.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-02 13:51:41 -03:00
Daniel Hilst bd9c155f1a refactor(build): retire makerpm, buildcore.sh and buildlocal.sh
buildrpms.pl is what actually builds xcat-core now: every core CD pipeline calls
it (ci/{el,suse,ubuntu}/Jenkinsfile.core-*), and it reaches none of these
scripts. What is left of them is a second, diverging build path that nothing
runs -- buildcore.sh has no caller at all (its one mention in
Jenkinsfile.core-el-stable is a comment), makerpm's only caller is
buildlocal.sh, and buildlocal.sh has no caller.

That divergence broke master. #7774 added a source-only mode to these scripts
rather than to buildrpms.pl, giving makerpm an unguarded

    . "$(dirname "$0")/build-utils/source-only.sh"

at line 13, used on every build path (xcat_configure_rpm_build_mode,
xcat_announce_build), not only under SRCONLY. apache_config_sources.t stages
makerpm into a fixture that creates build-utils/ but copies only
sync-xcat-apache-configs into it, so makerpm died at line 13 and nothing reached
SOURCES/. Because prove -r xCAT-test/unit runs the whole suite, that reddened
xcat_pr_test on every open PR. It merged on a green run from 2026-08-27;
apache_config_sources.t landed 2026-08-30, and nothing rebuilt it in between.

Removed: makerpm, buildcore.sh, buildlocal.sh, build-utils/source-only.sh,
build-utils/buildcore-source-only.sh, and the tests that covered only them
(makerpm_source_only.t, buildcore_source_only.t). The makerpm half of
apache_config_sources.t goes with makerpm; its sync-xcat-apache-configs half
stays, because buildrpms.pl invokes that helper directly. The source-only
capability is preserved as buildrpms.pl --source-only, in the preceding commit.

build-ubunturepo is deliberately NOT touched. It is not a legacy script: both
Ubuntu core CD pipelines invoke it, github_action_xcat_test.pl:325 invokes it on
every PR, and it was last fixed this week. buildrpms.pl is RPM-only -- mock and
createrepo_c, no dpkg path -- so there is nothing to migrate it to. Giving
Debian builds an equivalent modern builder is separate work.

Verified: prove -r xCAT-test/unit before and after differs by exactly one file
-- apache_config_sources.t fails on upstream/master (4a0d9e0bb, tests 64-65) and
passes here. The other six failures are identical on both and are missing DB
modules on the machine that ran it. No remaining reference to any removed file
except the one comment in buildrpms.pl naming where its templates came from.

Signed-off-by: Daniel Hilst <392820+dhilst@users.noreply.github.com>
2026-09-02 12:39:43 -03:00
Vinícius Ferrão 63db0a82dd refactor(build): share RPM architecture sets 2026-09-01 10:50:24 -03:00
Vinícius Ferrão ef6897ec87 refactor(build): make target architecture parser reusable
Signed-off-by: Vinícius Ferrão <2031761+viniciusferrao@users.noreply.github.com>
2026-09-01 10:50:23 -03:00
Daniel Hilst 66fb895359 Merge pull request #7774 from VersatusHPC/feat/makerpm-source-only-build
feat(build): add a source-only build mode
2026-08-31 20:37:31 -03:00
Vinícius Ferrão 5b5fa69791 build(httpd): centralize Apache configuration sources 2026-08-30 18:52:44 -03:00
Vinícius Ferrão dafcd0f5e0 fix(build): leave binary metadata stale in source-only mode
Finalize and describe the binary repository only when binary artifacts were built. Source-only builds still publish and index their SRPMs without rewriting metadata for older binary RPMs.
2026-08-26 20:21:07 -03:00
Vinícius Ferrão 0eed22a866 fix(build): create each source RPM once
Source RPM output does not vary by binary target architecture, so source-only mode builds the first target instead of overwriting the same SRPM for every architecture.
2026-08-26 20:21:07 -03:00
Vinícius Ferrão 427a49d0ac fix(build): accept true for source-only mode 2026-08-26 19:33:35 -03:00
Vinícius Ferrão e3a8b440d1 feat(build): keep source-only builds from publishing binary artifacts 2026-08-26 17:03:22 -03:00
Vinícius Ferrão 8daeeb92ad feat(build): add a source-only mode to makerpm 2026-08-26 17:03:21 -03:00
Markus Hilger df64bf8feb Add missing shebang lines 2024-05-07 16:31:30 +02:00
ligc e63a398bfc update build scripts to allow non-root user to build xcat-core tarball locally 2015-05-26 04:20:46 -04:00
bp-sawyers 54e6c0386b Modify build scripts to have a non-verbose mode and keep track of build errors
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@11267 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2011-12-19 17:01:18 +00:00
bp-sawyers 8902fea1ca initial version of dep packaing script
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@2786 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
2009-02-20 16:06:26 +00:00