Sync from SUSE:SLFO:Main suseconnect-ng revision 14471ac52b7bf0d7986c0d954ecff3b2

This commit is contained in:
Adrian Schröter 2024-05-04 00:57:01 +02:00
commit 9f1392ba3c
7 changed files with 750 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -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

39
_service Normal file
View File

@ -0,0 +1,39 @@
<services>
<!-- The copy of this file in the OBS package needs to be manually updated
from the one in git repo.
Parameter definitions:
https://github.com/openSUSE/obs-service-tar_scm/blob/master/tar_scm.service.in
-->
<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">main</param>
<param name="version">_auto_</param>
<param name="match-tag">v*</param>
<param name="versionrewrite-pattern">v(\d+\.\d+\.\d+)</param>
<param name="versionrewrite-replacement">\1</param>
<param name="versionformat">@PARENT_TAG@</param>
<param name="filename">suseconnect-ng</param>
<param name="changesgenerate">enable</param>
<param name="package-meta">no</param>
<param name="exclude">vendor</param>
</service>
<service name="recompress" mode="manual">
<param name="file">*.tar</param>
<param name="compression">xz</param>
</service>
<service name="extract_file" mode="manual">
<param name="archive">suseconnect-ng*.tar.xz</param>
<param name="files">suseconnect-ng-*/suseconnect-ng.spec</param>
<param name="files">suseconnect-ng-*/suseconnect-ng.changes</param>
<param name="files">suseconnect-ng-*/suseconnect-ng-rpmlintrc</param>
</service>
<service name="set_version" mode="manual">
<param name="file">suseconnect-ng.spec</param>
</service>
<!--
<service name="go_modules" mode="disabled">
</service>
-->
</services>

4
_servicedata Normal file
View File

@ -0,0 +1,4 @@
<servicedata>
<service name="tar_scm">
<param name="url">https://github.com/SUSE/connect-ng.git</param>
<param name="changesrevision">aa46faa190124664fa45c5c04667c8e1736b48b8</param></service></servicedata>

BIN
suseconnect-ng-1.8.0.tar.xz (Stored with Git LFS) Normal file

Binary file not shown.

1
suseconnect-ng-rpmlintrc Normal file
View File

@ -0,0 +1 @@
addFilter("unstripped-binary-or-object /usr/bin/suseconnect")

444
suseconnect-ng.changes Normal file
View File

@ -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 <fschnizlein@suse.com>
- Update to version 1.7.0
* Allow SUSEConnect on read write transactional systems (bsc#1219425)
-------------------------------------------------------------------
Tue Jan 18 16:00 UTC 2024 - Thomas Schmidt <tschmidt@suse.com>
- 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 <msabate@suse.com>
- 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 <msabate@suse.com>
- 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 <jzerebecki@suse.com>
- Initial package of suseconnect-ng

236
suseconnect-ng.spec Normal file
View File

@ -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<SP4
%if (0%{?sle_version} > 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