Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package suseconnect-ng for openSUSE:Factory checked in at 2026-04-04 19:05:27 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/suseconnect-ng (Old) and /work/SRC/openSUSE:Factory/.suseconnect-ng.new.21863 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suseconnect-ng" Sat Apr 4 19:05:27 2026 rev:33 rq:1344349 version:1.21.1 Changes: -------- --- /work/SRC/openSUSE:Factory/suseconnect-ng/suseconnect-ng.changes 2026-03-28 20:12:29.239283993 +0100 +++ /work/SRC/openSUSE:Factory/.suseconnect-ng.new.21863/suseconnect-ng.changes 2026-04-04 19:06:53.699839909 +0200 @@ -1,0 +2,8 @@ +Wed Apr 1 16:43:26 UTC 2026 - Fergal Mc Carthy <[email protected]> + +- Update version to 1.21.1: + - Fix nil token handling (bsc#1261155) + - Switch to using go1.24-openssl as the default Go version to + install to support building the package (jsc#SCC-585). + +------------------------------------------------------------------- Old: ---- suseconnect-ng-1.21.0.tar.xz New: ---- suseconnect-ng-1.21.1.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ suseconnect-ng.spec ++++++ --- /var/tmp/diff_new_pack.Y0k0S5/_old 2026-04-04 19:06:54.507873039 +0200 +++ /var/tmp/diff_new_pack.Y0k0S5/_new 2026-04-04 19:06:54.507873039 +0200 @@ -19,7 +19,7 @@ %global project github.com/SUSE/connect-ng Name: suseconnect-ng -Version: 1.21.0 +Version: 1.21.1 Release: 0 URL: https://github.com/SUSE/connect-ng License: LGPL-3.0-or-later @@ -30,11 +30,11 @@ Source2: vendor.tar.xz # Build against latest golang in Tumbleweed and -# go1.21-openssl on all other distributions +# go1.24-openssl on all other distributions %if 0%{?suse_version} == 1699 BuildRequires: golang(API) %else -BuildRequires: go1.21-openssl +BuildRequires: go1.24-openssl %endif BuildRequires: ruby-devel ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Y0k0S5/_old 2026-04-04 19:06:54.547874679 +0200 +++ /var/tmp/diff_new_pack.Y0k0S5/_new 2026-04-04 19:06:54.563875335 +0200 @@ -2,7 +2,7 @@ <service name="tar_scm" mode="manual"> <param name="scm">git</param> <param name="url">https://github.com/SUSE/connect-ng.git</param> - <param name="revision">v1.21.0</param> + <param name="revision">v1.21.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param> <param name="versionrewrite-replacement">\1</param> ++++++ suseconnect-ng-1.21.0.tar.xz -> suseconnect-ng-1.21.1.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/.github/workflows/features.yml new/suseconnect-ng-1.21.1/.github/workflows/features.yml --- old/suseconnect-ng-1.21.0/.github/workflows/features.yml 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/.github/workflows/features.yml 2026-04-01 20:21:33.000000000 +0200 @@ -28,7 +28,7 @@ feature-tests: runs-on: ubuntu-latest container: - image: registry.suse.com/bci/golang:1.21-openssl + image: registry.suse.com/bci/golang:1.24-openssl options: --user root --privileged steps: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/.github/workflows/lint-unit.yml new/suseconnect-ng-1.21.1/.github/workflows/lint-unit.yml --- old/suseconnect-ng-1.21.0/.github/workflows/lint-unit.yml 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/.github/workflows/lint-unit.yml 2026-04-01 20:21:33.000000000 +0200 @@ -23,7 +23,7 @@ unit-tests: runs-on: ubuntu-latest container: - image: registry.suse.com/bci/golang:1.21-openssl + image: registry.suse.com/bci/golang:1.24-openssl steps: - uses: actions/checkout@v4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/Makefile new/suseconnect-ng-1.21.1/Makefile --- old/suseconnect-ng-1.21.0/Makefile 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/Makefile 2026-04-01 20:21:33.000000000 +0200 @@ -8,7 +8,7 @@ BINFLAGS = -buildmode=pie SOFLAGS = -buildmode=c-shared -CONTAINER = registry.suse.com/bci/golang:1.21-openssl +CONTAINER = registry.suse.com/bci/golang:1.24-openssl CRM = docker run --rm -it --privileged ENVFILE = .env WORKDIR = /usr/src/connect-ng diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/README.md new/suseconnect-ng-1.21.1/README.md --- old/suseconnect-ng-1.21.0/README.md 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/README.md 2026-04-01 20:21:33.000000000 +0200 @@ -26,7 +26,7 @@ ### Build in container If you don't have a go compiler installed, you can run the build in a container: ``` -docker run --rm -v $(pwd):/connect registry.suse.com/bci/golang:1.21-openssl sh -c "git config --global --add safe.directory /connect; cd /connect; make build" +docker run --rm -v $(pwd):/connect registry.suse.com/bci/golang:1.24-openssl sh -c "git config --global --add safe.directory /connect; cd /connect; make build" ``` This will create a `out/suseconnect` binary on the host. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/build/ci/README.md new/suseconnect-ng-1.21.1/build/ci/README.md --- old/suseconnect-ng-1.21.0/build/ci/README.md 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/build/ci/README.md 2026-04-01 20:21:33.000000000 +0200 @@ -40,7 +40,7 @@ We use the official SUSE Golang container, providing all we need to run the tests: ``` -export IMAGE="registry.suse.com/bci/golang:1.21-openssl" +export IMAGE="registry.suse.com/bci/golang:1.24-openssl" # Run the required container: $ docker run --rm -it --env-file .env -v $(pwd):/usr/src/connect-ng $IMAGE diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/build/packaging/suseconnect-ng.changes new/suseconnect-ng-1.21.1/build/packaging/suseconnect-ng.changes --- old/suseconnect-ng-1.21.0/build/packaging/suseconnect-ng.changes 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/build/packaging/suseconnect-ng.changes 2026-04-01 20:21:33.000000000 +0200 @@ -1,4 +1,12 @@ ------------------------------------------------------------------- +Wed Apr 1 16:43:26 UTC 2026 - Fergal Mc Carthy <[email protected]> + +- Update version to 1.21.1: + - Fix nil token handling (bsc#1261155) + - Switch to using go1.24-openssl as the default Go version to + install to support building the package (jsc#SCC-585). + +------------------------------------------------------------------- Thu Mar 12 18:53:13 UTC 2026 - Felix Schnizlein <[email protected]> - Update version to 1.21: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/build/packaging/suseconnect-ng.spec new/suseconnect-ng-1.21.1/build/packaging/suseconnect-ng.spec --- old/suseconnect-ng-1.21.0/build/packaging/suseconnect-ng.spec 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/build/packaging/suseconnect-ng.spec 2026-04-01 20:21:33.000000000 +0200 @@ -19,7 +19,7 @@ %global project github.com/SUSE/connect-ng Name: suseconnect-ng -Version: 1.21.0 +Version: 1.21.1 Release: 0 URL: https://github.com/SUSE/connect-ng License: LGPL-3.0-or-later @@ -30,11 +30,11 @@ Source2: vendor.tar.xz # Build against latest golang in Tumbleweed and -# go1.21-openssl on all other distributions +# go1.24-openssl on all other distributions %if 0%{?suse_version} == 1699 BuildRequires: golang(API) %else -BuildRequires: go1.21-openssl +BuildRequires: go1.24-openssl %endif BuildRequires: ruby-devel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/features/README.md new/suseconnect-ng-1.21.1/features/README.md --- old/suseconnect-ng-1.21.0/features/README.md 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/features/README.md 2026-04-01 20:21:33.000000000 +0200 @@ -18,7 +18,7 @@ ``` # Make sure your .env is populated! $ cp .env-example .env - $ docker run --rm --privileged --env-file .env -ti -v $(pwd):/connect registry.suse.com/bci/golang:1.21-openssl + $ docker run --rm --privileged --env-file .env -ti -v $(pwd):/connect registry.suse.com/bci/golang:1.24-openssl > git config --global --add safe.directory /connect > cd /connect > make build diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/features/helpers/api.go new/suseconnect-ng-1.21.1/features/helpers/api.go --- old/suseconnect-ng-1.21.0/features/helpers/api.go 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/features/helpers/api.go 2026-04-01 20:21:33.000000000 +0200 @@ -27,14 +27,20 @@ } } -func (api *ValidationAPI) FetchCredentials() { +func (api *ValidationAPI) GetCredentials() credentials.Credentials { creds, readErr := credentials.ReadCredentials(credentials.SystemCredentialsPath("/")) if readErr != nil { assert.FailNow(api.t, "Can not read credentials while I should be able: %s", readErr) - return + return creds } + return creds + +} + +func (api *ValidationAPI) FetchCredentials() { + creds := api.GetCredentials() conn := connection.New(connection.DefaultOptions("connect-integration-tests", "0.0.0", "us"), &creds) api.conn = conn diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/features/suseconnect/extensions_test.go new/suseconnect-ng-1.21.1/features/suseconnect/extensions_test.go --- old/suseconnect-ng-1.21.0/features/suseconnect/extensions_test.go 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/features/suseconnect/extensions_test.go 2026-04-01 20:21:33.000000000 +0200 @@ -7,6 +7,7 @@ "github.com/SUSE/connect-ng/features/helpers" "github.com/SUSE/connect-ng/pkg/registration" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestExtensions(t *testing.T) { @@ -122,6 +123,7 @@ func testActivateExtensionWithoutRegcode(t *testing.T) { assert := assert.New(t) + api := helpers.NewValidationAPI(t) zypp := helpers.NewZypper(t) _, version, arch := zypp.BaseProduct() @@ -130,8 +132,10 @@ cli := helpers.NewRunner(t, "suseconnect -p %s", extension) cli.Run() + creds := api.GetCredentials() assert.Contains(cli.Stdout(), "Error: Registration server returned 'Please provide a Registration Code for this product'") assert.Equal(67, cli.ExitCode()) + assert.NotEqual("", creds.SystemToken, "Failed extension activation should not clear saved system token") } func testActivateAndDeactivateExtensionWithRegcode(t *testing.T) { @@ -158,17 +162,49 @@ func testActivateLeafModule(t *testing.T) { assert := assert.New(t) + require := require.New(t) zypp := helpers.NewZypper(t) - _, version, arch := zypp.BaseProduct() + identifier, version, arch := zypp.BaseProduct() + api := helpers.NewValidationAPI(t) + // Assume we are already registered + api.FetchCredentials() // Pick a module which is depended on another module which is not yet activated - // HPC requires Web and Scripting module - extension := fmt.Sprintf("%s/%s/%s", "sle-module-hpc", version, arch) + // HPC requires Web and Scripting module in SLE 15 + // NOTE: This test may not be viable in a SLE 16 based test environment + targetModule := "sle-module-hpc" + dependentModule := "sle-module-web-scripting" + extension := fmt.Sprintf("%s/%s/%s", targetModule, version, arch) + + // determine friendly names for the target and dependent modules + targetFriendlyName := "" + dependentFriendlyName := "" + tree := api.ProductTree(identifier, version, arch) + tree.TraverseExtensions(func(ext registration.Product) (bool, error) { + switch ext.Identifier { + case targetModule: + targetFriendlyName = ext.FriendlyName + case dependentModule: + dependentFriendlyName = ext.FriendlyName + } + if targetFriendlyName != "" && dependentFriendlyName != "" { + return false, nil + } + return true, nil + }) + + // ensure test fails immediately if unable to determine the friendly names of + // the target and dependent modules + require.NotEmpty(targetFriendlyName, "Failed to determine friendly name for %q extension", targetModule) + require.NotEmpty(dependentFriendlyName, "Failed to determine friendly name for %q extension", targetModule) + + // construct expected error message for failure using discovered friendly names + expectedError := fmt.Sprintf("Error: Registration server returned 'The product you are attempting to activate (%s) requires one of these products to be activated first: %s'", targetFriendlyName, dependentFriendlyName) cli := helpers.NewRunner(t, "suseconnect -p %s", extension) cli.Run() - assert.Contains(cli.Stdout(), "Error: Registration server returned 'The product you are attempting to activate (HPC Module 15 SP6 x86_64) requires one of these products to be activated first: Web and Scripting Module 15 SP6 x86_64'") + assert.Contains(cli.Stdout(), expectedError) assert.Equal(67, cli.ExitCode()) } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suseconnect-ng-1.21.0/internal/credentials/credentials.go new/suseconnect-ng-1.21.1/internal/credentials/credentials.go --- old/suseconnect-ng-1.21.0/internal/credentials/credentials.go 2026-03-24 11:41:17.000000000 +0100 +++ new/suseconnect-ng-1.21.1/internal/credentials/credentials.go 2026-04-01 20:21:33.000000000 +0200 @@ -8,6 +8,7 @@ "os" "path/filepath" "regexp" + "strings" "github.com/SUSE/connect-ng/internal/util" ) @@ -47,7 +48,13 @@ // Writes into the configuration the given system token and updates the value of // this instance. Needed to implement the Credentials interface from `pkg/`. +// Do not update system token if token is empty. func (c *Credentials) UpdateToken(token string) error { + token = strings.TrimSpace(token) + if token == "" { + util.Debug.Printf("Skipping null token\n") + return nil + } c.SystemToken = token util.Debug.Printf("Token has been updated to `%s`\n", c.Username) ++++++ vendor.tar.xz ++++++ ++++ 3806 lines of diff (skipped)
