commit 9f1392ba3ca8140aa841badc9e9d8ac721add42ec06f4a2ebf387c834b48f346 Author: Adrian Schröter Date: Sat May 4 00:57:01 2024 +0200 Sync from SUSE:SLFO:Main suseconnect-ng revision 14471ac52b7bf0d7986c0d954ecff3b2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..9b03811 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,23 @@ +## Default LFS +*.7z filter=lfs diff=lfs merge=lfs -text +*.bsp filter=lfs diff=lfs merge=lfs -text +*.bz2 filter=lfs diff=lfs merge=lfs -text +*.gem filter=lfs diff=lfs merge=lfs -text +*.gz filter=lfs diff=lfs merge=lfs -text +*.jar filter=lfs diff=lfs merge=lfs -text +*.lz filter=lfs diff=lfs merge=lfs -text +*.lzma filter=lfs diff=lfs merge=lfs -text +*.obscpio filter=lfs diff=lfs merge=lfs -text +*.oxt filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.png filter=lfs diff=lfs merge=lfs -text +*.rpm filter=lfs diff=lfs merge=lfs -text +*.tbz filter=lfs diff=lfs merge=lfs -text +*.tbz2 filter=lfs diff=lfs merge=lfs -text +*.tgz filter=lfs diff=lfs merge=lfs -text +*.ttf filter=lfs diff=lfs merge=lfs -text +*.txz filter=lfs diff=lfs merge=lfs -text +*.whl filter=lfs diff=lfs merge=lfs -text +*.xz filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.zst filter=lfs diff=lfs merge=lfs -text diff --git a/_service b/_service new file mode 100644 index 0000000..89b1649 --- /dev/null +++ b/_service @@ -0,0 +1,39 @@ + + + + git + https://github.com/SUSE/connect-ng.git + main + _auto_ + + v* + v(\d+\.\d+\.\d+) + \1 + @PARENT_TAG@ + suseconnect-ng + enable + no + vendor + + + *.tar + xz + + + suseconnect-ng*.tar.xz + suseconnect-ng-*/suseconnect-ng.spec + suseconnect-ng-*/suseconnect-ng.changes + suseconnect-ng-*/suseconnect-ng-rpmlintrc + + + suseconnect-ng.spec + + + diff --git a/_servicedata b/_servicedata new file mode 100644 index 0000000..170fc5d --- /dev/null +++ b/_servicedata @@ -0,0 +1,4 @@ + + + https://github.com/SUSE/connect-ng.git + aa46faa190124664fa45c5c04667c8e1736b48b8 \ No newline at end of file diff --git a/suseconnect-ng-1.8.0.tar.xz b/suseconnect-ng-1.8.0.tar.xz new file mode 100644 index 0000000..10105f0 --- /dev/null +++ b/suseconnect-ng-1.8.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b468054dd8298c539027d13f15c330f047c1214c341d46c71ba267cdbcec4cd2 +size 97976 diff --git a/suseconnect-ng-rpmlintrc b/suseconnect-ng-rpmlintrc new file mode 100644 index 0000000..d43b68d --- /dev/null +++ b/suseconnect-ng-rpmlintrc @@ -0,0 +1 @@ +addFilter("unstripped-binary-or-object /usr/bin/suseconnect") diff --git a/suseconnect-ng.changes b/suseconnect-ng.changes new file mode 100644 index 0000000..77c6766 --- /dev/null +++ b/suseconnect-ng.changes @@ -0,0 +1,444 @@ +------------------------------------------------------------------- +Wed Mar 13 12:37:29 UTC 2024 - José Gómez <1josegomezr@gmail.com> + +- Update to version 1.8.0 + * Allow "--rollback" flag to run on readonly filesystem (bsc#1220679) + +------------------------------------------------------------------- +Wed Feb 14 18:28 UTC 2024 - Felix Schnizlein + +- Update to version 1.7.0 + * Allow SUSEConnect on read write transactional systems (bsc#1219425) + +------------------------------------------------------------------- +Tue Jan 18 16:00 UTC 2024 - Thomas Schmidt + +- Update to version 1.6.0 + * Disable EULA display for addons (bsc#1218649 and bsc#1217961) + +------------------------------------------------------------------- +Tue Dec 22 08:57:50 UTC 2023 - Miquel Sabate Sola + +- Update to version 1.5.0 + * Configure docker credentials for registry authentication + * Feature: Support usage from Agama + Cockpit for ALP Micro system registration (bsc#1218364) + * Add --json output option + +------------------------------------------------------------------- +Tue Sep 26 08:57:50 UTC 2023 - Miquel Sabate Sola + +- Update to version 1.4.0 + * Added EULA display for addons (bsc#1170267) + * Fix zypper argument for auto-agreeing licenses (bsc#1214781) + * Enable building on SLE12 SP5 (jsc#PED-3179) + +------------------------------------------------------------------- +Thu Aug 3 12:11:07 UTC 2023 - tschmidt@suse.com + +- Update to version 1.3.0 + * Track .changes file in git + +------------------------------------------------------------------- +Mon Jul 10 09:51:29 UTC 2023 - tschmidt@suse.com + +- Update to version 1.2.0~git0.abd0fec: + * enhance docs for package testing + * Fixed `provides` to work with yast2-registration on SLE15 < SP4 (bsc#1212799) + * Improve error message if product set more than once + +------------------------------------------------------------------- +Wed Jun 07 06:11:07 UTC 2023 - msabate@suse.com + +- Update to version 1.1.0~git2.f42b4b2a060e: + * Keep keepalive timer states when replacing SUSEConnect (bsc#1211588) + +------------------------------------------------------------------- +Fri Mar 17 10:34:15 UTC 2023 - msabate@suse.com + +- Update to version 1.1.0~git0.e3c41e60892e: + * Bump to v1.1.0 + +------------------------------------------------------------------- +Tue Mar 14 10:10:09 UTC 2023 - msabate@suse.com + +- Update to version 1.0.0~git23.406b219ccc9e: + * Added MemTotal detection for HwInfo + * move 'ExcludeArch' out of the if block + +------------------------------------------------------------------- +Wed Mar 08 10:44:59 UTC 2023 - tschmidt@suse.com + +- Update to version 1.0.0~git19.b225bc3: + * Make keepalive on SUMA systems exit without error (bsc#1207876) + * Update README.md + * Add deactivate API to ruby bindings (bsc#1202705) + +------------------------------------------------------------------- +Tue Dec 13 12:57:16 UTC 2022 - tschmidt@suse.com + +- Update to version 1.0.0~git14.17a7901: + * Don't write system_token to service credentials files + * Allow non-root users to use --version + * Add: ExcludeArch: %ix86 s390 ppc64 to the .spec file, so we skip builds for unsupported architectures. + * Update Dockerfile.yast + * Use openssl go for SLE and Leap 15.5+ builds + * Fix keepalive feature notice during installation + * Fix requires for all rhel clone distributions like alma, rocky... + +------------------------------------------------------------------- +Tue Nov 08 13:05:59 UTC 2022 - msabate@suse.com + +- Update to version 1.0.0~git0.faee7c196dc1: + * Revert "packaging: 1.0.0 -> 1.0" + +------------------------------------------------------------------- +Tue Nov 08 12:59:32 UTC 2022 - msabate@suse.com + +- Update to version v1.0~git0.32cac3fb5047: + * packaging: 1.0.0 -> 1.0 + +------------------------------------------------------------------- +Fri Oct 28 07:40:26 UTC 2022 - msabate@suse.com + +- Update to version 1.0.0~git0.60e48564a714 (bsc#1204821): + * packaging: obsolete suseconnect < 1.0.0 + * packaging: don't end the summary with a dot + +------------------------------------------------------------------- +Fri Oct 07 10:31:53 UTC 2022 - jtomasiak@suse.com + +- Update to version 0.0.10~git2.ee561b8: + * Drop .git from tar + +------------------------------------------------------------------- +Thu Sep 15 07:31:03 UTC 2022 - jtomasiak@suse.com + +- Update to version 0.0.10~git0.5f84106: + * Fix System-Token support in ruby binding (bsc#1203341) + * Added the PACKAGE.md file + +------------------------------------------------------------------- +Mon Sep 12 15:21:04 UTC 2022 - msabate@suse.com + +- Update to version 0.0.9~git10.de887da7231f: + * Respect the PROXY_ENABLED environment variable + +------------------------------------------------------------------- +Wed Aug 31 10:38:59 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.9~git8.f9adb71: + * Use standard buildconditionals + * Strip the binaries (saves ~ 30%) + +------------------------------------------------------------------- +Fri Aug 05 13:33:05 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.9~git5.75890b6: + * Don't run keepalive on reboot + * Use system-wide proxy settings (bsc#1200994) + * Add customer information about keepalive calls + * Add timer for SUSEConnect --keepalive (bsc#1196076) + * Add --keepalive to manpage + * Added support for the System-Token header + * Add Keepalive command line option + * Print nested zypper errors (bsc#1200803) + * Fix migration json error with SMT (bsc#1198625) + * Add option to run local scc tests + * Switch to jenkins-hosted credentials + * Fix "VCS stamping" problem + * Add missing import + * Remove redundant code + add comment + +------------------------------------------------------------------- +Wed Apr 20 08:18:01 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.8~git2.368ea44: + * go1.18 compatibility: BuildRequires:git + +------------------------------------------------------------------- +Wed Apr 13 12:59:22 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.8~git0.16545bf: + * Allow reloading CA certs pool (bsc#1195220) + +------------------------------------------------------------------- +Thu Mar 24 12:09:50 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.7~git0.3ef988e: + * Fix product tree traversal (bsc#1197398) + * Revert "Remove self from LD_PRELOAD (bsc#1196326)" + * Remove self from LD_PRELOAD (bsc#1196326) + +------------------------------------------------------------------- +Tue Mar 01 14:09:34 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.6~git9.33e5847: + * Delegate free() calls back to Go (bsc#1195729) + * Pass "insecure" to zypper addservice + * Workaround system cert reloading after import (bsc#1195220) + * Extract setupHTTPClient for easier reuse + * Exit with code 64 on connection refused like Ruby + +------------------------------------------------------------------- +Wed Jan 26 09:09:30 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.6~git0.77933db: + * Add man pages + * Add note in DIFFERENCES.md about abbreviated flags + * Add -l as an alias for --list-extensions + * Add --clean as an alias for --cleanup (bsc#1195003) + * Suppress expected error log message in TLS test + * Add flag to import product repo keys (bsc#1174657) + +------------------------------------------------------------------- +Fri Jan 07 13:45:50 UTC 2022 - jan.suse@zerebecki.de + +- Update to version 0.0.5~git0.bbb5544: + * Switch from rubygem-ffi to fiddle + * Cleanup services during migration (bsc#1161891) + * Allow non-root users to see usage text + * Add option to not fail dup as much + * Move APIVersion declaration to file where it is used + * Add flag to enable/disable hwinfo test + * Add ARM cluster count to hwinfo and fix test + * Simplify parsing JSON error response + * Add --gpg-auto-import-keys for zypper ref + * Rename main.go to logging.go + * Fix typo + * Remove init() from the connect package + * Move CFG variable declaration to config.go + * Move AppName const to the file where it is used + * Use testing.Helper() in test helpers + * Add ppc64le support + * Disable UUID test + * Add test tools to BuildRequires + * Ignore UUID errors + * Run basic hwinfo sanity test on build service + * Update code comments to match shim behavior. + * Remove dependency on systemd + * Only run httputil DumpResponse when needed + +------------------------------------------------------------------- +Wed Dec 01 14:31:18 UTC 2021 - jan.suse@zerebecki.de + +- Update to version 0.0.4~git0.64b80e9: + * Makefile: also run tests under ./suseconnect + * Switch yast-test to upstream + * Removed examples leftover from the POC phase + * Add HA repo to get rubygem(ffi) before it's in the baseproduct + * Add versions and lib deps + * Post-review cleanup + * Package libsuseconnect and shim + * Align with yast-registration tests + * Fix SSLCertificate mixins + * Fix logger crash and restore mixin + * Removed TODO item handled separately + * Enable debug early + * Add package search for YaST's "Online Search" + * Clarify Repo fields + * Export UpdateSystem() + * Export SystemActivations() + * Add migration functions + * Fix handling of IsBase attribute + * Add missing JSONError + * Add list_installer_updates + * Add "update certificates" + * Add more specific errors + * Improved SSL error handling + * Init defaults for get_config() + * Improved debug logging + * Fix error scopes + * Fix ApiError interface + * Added DEFAULT_CREDENTIALS_DIR const + * get proxy credentials from curlrc + * Forward logs from Connect to YaST + * Separate Info logger + * Added more TODO items + * Simplify Config object init + * Map Repo and Config fields to JSON + * Add remaining fields listed in addon.rb + * Add product_type field to product + * First working yast part + * Add relative path support to credentials + * Add steps to test from yast + * Add yast create_credentials_file + * Add CreateCredentials() method + * Add yast credentials() + * Add yast announce_system - WIP + * Add MergeJSON method for Config + * Add readme for YaST integration + * Fix usage text + * Add missing -g argument + * Fix OBS CI, it now requires target + * Add manpage placeholder + * Simplify packageWanted() + * Add sorting and grouping options + * Add local repo search and duplicate removal + * Add basic online package search + * Update rpm spec for zypper-search-packages-plugin + * Add CLI for zypper search-packages plugin + * Optional base product in package search + * Use DefaultTransport defaults + client timeout + * Extract ReleaseType from zypper output + * Print failed command on zypper error like the Ruby + * Add package_search API wrapper + * Allow de-register/de-activate a single product + * Improve docstring for the Status struct + * Always show subscription information if available + * Refactor getStatuses() to ease testing + * Add SUMA/Uyuni check + * Fix status output order to follow zypper product xml + * Change GetExtensionsList() to reduce calls + * Add the subscription name to status output + * allow --instance-data together with --regcode + * Post-review cleanups + * Add selfupdate functionality + * Handle Leap -> SLES migration scenario + * Add offline migrations support + * Change parse error string and add block comment + * Add disabling of obsolete repos + * Add zypper repos listing + * Add interactive migration selection + * Allow loading Config from any path + * Remove dummy flag + * Add snapper support + * Add zypper backup/restore functions + * Use connect.StringSet + * Add --query option + * Add product and break-my-system options + * Add note on conflicting flags + * Check for flag contradictions + * Add echoing output of executed commands to console + * Move product printing out of checkProducts() + * Split --debug and --verbose + * Add zypper dist-upgrade part + * Split migration code + * Extract migration sorting + * Expose migration(Add|Remove)Service() functions + * Trap SIGINT/SIGTERM + * Add zypper.RefreshRepos() + * Expose client.upgradeProduct() + * Add --root parameter + * Add --migration N parameter + * Prepare available migrations + * Add API call to get online migration paths + * Add system products checking + * Add quiet logger for easier --quiet handling + * Add zypper migration plugin implementation. + * Export toTriplet and installReleasePackage + * Add basic string set implementation + * Remove quiet param from execute() and zypperRun() + * Simplify mocking of external commands + +------------------------------------------------------------------- +Fri Aug 27 22:46:39 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.3~git9.19e761b: + * Add zypper-migration-plugin to package + * Remove unused Error logger + * Add missing doc strings to exported vars and funcs + * Handle error after products sync api call + * Make the CI check gofmt + +------------------------------------------------------------------- +Tue Jul 27 09:02:36 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.3~git0.dacdd3b: + * Add gofmt target to Makefile + * Fix gofmt errors + * Add Requires that weren't explicit (bsc#1188646) + * Use custom UnmarshalJSON() for the Product struct + +------------------------------------------------------------------- +Fri Jul 23 10:53:35 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.2~git0.ebef3b7: + * Add --version + * Fix list-extensions printing "Not available" when using SCC + * Change --deregister to --de-register + +------------------------------------------------------------------- +Thu Jul 22 08:23:30 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.1~git33.b531281: + * Run integration tests + * Try to use localized error from server response + * Write usage help to stdout like the Ruby version + * Simplify list-extensions template + * Fix call to create UUID on s390 + * Provides and Obsoletes SUSEConnect + * Add extensions list tests + * Fix calls to s390 read_values + * Add build-s390 target to Makefile + * hwinfo: don't fail if dmidecode is missing + +------------------------------------------------------------------- +Mon Jul 19 10:01:54 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.1~git16.8a5d48c: + * Add extensions hints for readonly root fs + * Make the connect package an internal package + * Document debug output destination difference + * Add status value constants + * Add rollback CLI option + * Fix callHTTP() so connections are reused + * Fix list-extensions format + * Fix error from zypper refresh + +------------------------------------------------------------------- +Mon Jul 12 21:43:19 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.1~git0.a5f168a: + * Add JSONError and cleanup error handling + +------------------------------------------------------------------- +Fri Jul 09 14:06:07 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.0~git.c45760f: + * Add Conflicts:SUSEConnect due to same file name + * Document advantage of suseconnect-ng + * Make UpdateSystem() message text bold + * Add no_zypper_refs config file option + * Complete Register() and AnnounceSystem() + * Add registerProductTree() + * Add activateProduct() and registerProduct() + * Rename source modules to executable names + * Remove unnecessary content from package. + * Add proxy auth support + * Change order of usage help options to match the Ruby version + * Make requirement for go 1.16 explicit. + * Fix instance data file path + * Add zypper service commands needed for registration + * S390: set cpus, sockets, hypervisor and uuid hwinfo fields + * Implement the system update part of registration + * Add helper to build hwinfo struct + * Add functions to call and parse s390 read_values + * Add function to get the hostname + * Add function to get private IP address + * Add arch, hypervisor and uuid functions + * Add function to find cloud provider from dmidecode + * Add function to parse lscpu output + * Add announceSystem() api call + * Add deregistration functionality + * Add deactivateProduct() API call + * obs: use an in between branch + +------------------------------------------------------------------- +Fri Jul 02 12:24:46 UTC 2021 - jzerebecki@suse.com + +- Update to version 0.0.0~git.a083a1f: + * Add Product.IsEmpty() + * Add unit test for token auth + * Add obs workflow to be able to use it as CI + * add files to build rpm + * Add more zypper operations + * Unexport api functions + * Add --cleanup CLI action + * Add listing of installed services via zypper + * Change zypperRun args to take a slice of strings + * Fix printInformation() outputs + +------------------------------------------------------------------- +Fri Jun 25 17:45:10 UTC 2021 - Jan Zerebecki + +- Initial package of suseconnect-ng diff --git a/suseconnect-ng.spec b/suseconnect-ng.spec new file mode 100644 index 0000000..a02219d --- /dev/null +++ b/suseconnect-ng.spec @@ -0,0 +1,236 @@ +# +# spec file for package suseconnect-ng +# +# Copyright (c) 2024 SUSE LLC +# +# All modifications and additions to the file contributed by third parties +# remain the property of their copyright owners, unless otherwise agreed +# upon. The license for this file, and modifications and additions to the +# file, is the same license as for the pristine package itself (unless the +# license for the pristine package is not an Open Source License, in which +# case the license is the MIT License). An "Open Source License" is a +# license that conforms to the Open Source Definition (Version 1.9) +# published by the Open Source Initiative. + +# Please submit bugfixes or comments via https://bugs.opensuse.org/ +# + + +%global project github.com/SUSE/connect-ng + +Name: suseconnect-ng +Version: 1.8.0 +Release: 0 +URL: https://github.com/SUSE/connect-ng +License: LGPL-2.1-or-later +Summary: Utility to register a system with the SUSE Customer Center +Group: System/Management +Source: suseconnect-ng-%{version}.tar.xz +Source1: %{name}-rpmlintrc + +# Build against latest golang in Tumbleweed and +# go1.18-openssl on all other distributions +%if 0%{?suse_version} > 1600 +BuildRequires: golang(API) +%else +BuildRequires: go1.21-openssl +%endif + +BuildRequires: ruby-devel +BuildRequires: zypper + +ExcludeArch: %ix86 s390 ppc64 + +Obsoletes: SUSEConnect < 1.1.0 +Provides: SUSEConnect = %version +Obsoletes: zypper-migration-plugin < 0.99 +Provides: zypper-migration-plugin = 0.99 +Obsoletes: zypper-search-packages-plugin < 0.99 +Provides: zypper-search-packages-plugin = 0.99 + +%if 0%{?suse_version} +Requires: ca-certificates-mozilla +%else +Requires: ca-certificates +%endif + +Requires: coreutils +# ExclusiveArch from this package +%ifarch ia64 x86_64 %arm aarch64 +Requires: dmidecode +%endif +# ExclusiveArch from this package +%ifarch s390x +Requires: s390-tools +%endif +Requires: zypper +# lscpu is only used on those +%ifarch aarch64 +Requires: util-linux +%endif +Recommends: systemd + +%description +This package provides a command line tool for connecting a +client system to the SUSE Customer Center. It will connect the system to your +product subscriptions and enable the product repositories/services locally. +suseconnect-ng reduces the size of its runtime dependencies compared to the +replaced SUSEConnect. + +%package -n libsuseconnect +Summary: C interface to suseconnect-ng +Group: System/Management +# the CLI is not used by libsuseconnect but it has the same dependencies and it's easier to keep one list above +Requires: suseconnect-ng + +%description -n libsuseconnect +This package contains library which provides C interface to selected +suseconnect-ng functions. + +%package -n suseconnect-ruby-bindings +Summary: Ruby bindings for libsuseconnect library +Group: System/Management +Requires: libsuseconnect +# Adding the rubygem provides, to work as a drop-in replacement for Ruby SUSEConnect on SLE15 0 && 0%{?sle_version} < 150400) +Provides: rubygem(ruby:2.5.0:suse-connect) +%endif + +%description -n suseconnect-ruby-bindings +This package provides bindings needed to use libsuseconnect from Ruby scripts. + +%prep +%autosetup -p 1 -n %{name}-%{version} + +%build +# the binary +echo %{version} > internal/connect/version.txt +go build -v -ldflags "-s -w" -buildmode=pie -o bin/suseconnect %{project}/suseconnect + +# the library +mkdir -p %_builddir/go/lib +go build -v -ldflags "-s -w" -buildmode=c-shared -o lib/libsuseconnect.so %{project}/libsuseconnect + +%install +# Install binary + symlinks +install -D -m 0755 bin/suseconnect %{buildroot}/%{_bindir}/suseconnect +install -d -m 0755 %{buildroot}/%{_sbindir} %{buildroot}/usr/lib/zypper/commands +ln -s %{_bindir}/suseconnect %{buildroot}/%{_bindir}/SUSEConnect +ln -s %{_bindir}/suseconnect %{buildroot}/%{_sbindir}/SUSEConnect +ln -s %{_bindir}/suseconnect %{buildroot}/usr/lib/zypper/commands/zypper-migration +ln -s %{_bindir}/suseconnect %{buildroot}/usr/lib/zypper/commands/zypper-search-packages + +# Install library + ruby bindings +install -D -m 0755 lib/libsuseconnect.so %{buildroot}/%{_libdir}/libsuseconnect.so +install -d -m 0755 %{buildroot}/%{_libdir}/ruby/vendor_ruby/%{rb_ver} +cp -r yast/lib/* %{buildroot}/%{_libdir}/ruby/vendor_ruby/%{rb_ver} + +# Install metadata +install -D -m 644 man/SUSEConnect.5 %{buildroot}/%{_mandir}/man5/SUSEConnect.5 +install -D -m 644 man/SUSEConnect.8 %{buildroot}/%{_mandir}/man8/SUSEConnect.8 +install -D -m 644 man/zypper-migration.8 %{buildroot}/%{_mandir}/man8/zypper-migration.8 +install -D -m 644 man/zypper-search-packages.8 %{buildroot}/%{_mandir}/man8/zypper-search-packages.8 +install -D -m 644 SUSEConnect.example %{buildroot}%{_sysconfdir}/SUSEConnect.example + +# Install the SUSEConnect --keepalive timer and service. +install -D -m 644 suseconnect-keepalive.timer %{buildroot}/%{_unitdir}/suseconnect-keepalive.timer +install -D -m 644 suseconnect-keepalive.service %{buildroot}/%{_unitdir}/suseconnect-keepalive.service +ln -sf service %{buildroot}/%{_sbindir}/rcsuseconnect-keepalive + +# we currently do not ship the source for any go module +rm -rf %{buildroot}/usr/share/go + +%pre +%service_add_pre suseconnect-keepalive.service suseconnect-keepalive.timer + +# in pre blocks the old version is still installed. This way we can detect +# if --keepalive was already present before +kainfo=0 +helptext=$(test -x "$(type -p SUSEConnect)" && SUSEConnect --help) +if [ $? -eq 0 ]; then + echo "$helptext" | grep -q keepalive + kainfo=$? +fi + +if [ $kainfo -ne 0 ]; then + cat << EOF +Empowering you with enriched system visibility in the SUSE Customer Center + +SUSE is committed to helping provide better insights into the consumption of +SUSE subscriptions regardless of where they are running; physical or virtual, +on-prem or in the cloud. + +SUSE has been working on several improvements to the SUSE Customer Center (SCC), +RMT, and SUSE Manager to provide a clearer picture of your system landscape: + +- SUSE Manager v4.1+ now sends system information to SCC. +- SCC now captures which products are activated on systems that sit behind RMT + or SMT. +- This update will enable your system to "ping" SCC/RMT daily to + confirm the system's active status. This will help you identify or filter out + systems in SCC that are no longer running or decommissioned. As always, the + choice is yours, you can disable the daily ping by disabling the + suseconnect-keepalive systemd timer. + +We will continue improving our products to make it easier for you to view and +manage your subscription consumption. As always, we'd love to hear your feedback +about these improvements and any ideas you might have. +EOF +fi + +# If the keepalive timer exists on package install (not upgrade), then we are replacing SUSEConnect. +# Record the enabled and active statuses so they can be restored in posttrans macro. +if [ "$1" -eq 1 ]; then + /usr/bin/systemctl is-enabled suseconnect-keepalive.timer >/dev/null 2>&1 && touch /run/suseconnect-keepalive.timer.is-enabled || : + /usr/bin/systemctl is-active suseconnect-keepalive.timer >/dev/null 2>&1 && touch /run/suseconnect-keepalive.timer.is-active || : +fi + +%post +# Randomize schedule time for SLES12. SLES12 systemd does not support RandomizedDelaySec. +%if (0%{?sle_version} > 0 && 0%{?sle_version} < 150000) + TIMER_HOUR=$(( RANDOM % 24 )) + TIMER_MINUTE=$(( RANDOM % 60 )) + sed -i '/RandomizedDelaySec*/d' %{_unitdir}/suseconnect-keepalive.timer + sed -i "s/OnCalendar=daily/OnCalendar=*-*-* $TIMER_HOUR:$TIMER_MINUTE:00/" %{_unitdir}/suseconnect-keepalive.timer +%endif +%service_add_post suseconnect-keepalive.service suseconnect-keepalive.timer + +%preun +%service_del_preun suseconnect-keepalive.service suseconnect-keepalive.timer + +%postun +%service_del_postun suseconnect-keepalive.service suseconnect-keepalive.timer + +%posttrans +if [ -e /run/suseconnect-keepalive.timer.is-enabled ]; then + /usr/bin/systemctl enable suseconnect-keepalive.timer >/dev/null 2>&1 || : + rm /run/suseconnect-keepalive.timer.is-enabled ||: +fi +if [ -e /run/suseconnect-keepalive.timer.is-active ]; then + /usr/bin/systemctl start suseconnect-keepalive.timer >/dev/null 2>&1 || : + rm /run/suseconnect-keepalive.timer.is-active ||: +fi + +%files +%license LICENSE LICENSE.LGPL +%doc README.md +%{_bindir}/suseconnect +%{_bindir}/SUSEConnect +%{_sbindir}/SUSEConnect +%{_sbindir}/rcsuseconnect-keepalive +/usr/lib/zypper/commands +%{_mandir}/man8/* +%{_mandir}/man5/* +%{_unitdir}/suseconnect-keepalive.service +%{_unitdir}/suseconnect-keepalive.timer +%config %{_sysconfdir}/SUSEConnect.example + +%files -n libsuseconnect +%license LICENSE LICENSE.LGPL +%{_libdir}/libsuseconnect.so + +%files -n suseconnect-ruby-bindings +%doc yast/README.md +%{_libdir}/ruby/vendor_ruby/%rb_ver/suse + +%changelog