diff --git a/_servicedata b/_servicedata
index bbe41df..2647081 100644
--- a/_servicedata
+++ b/_servicedata
@@ -1,4 +1,4 @@
https://github.com/SUSE/connect-ng.git
- 19e761bb2dee186b48f7f9318bdbaba8a6e6ad4d
\ No newline at end of file
+ 64b80e975c8dc30cdcfc9d42787e4cae229e0a3c
\ No newline at end of file
diff --git a/connect-ng-0.0.3~git9.19e761b.tar.xz b/connect-ng-0.0.3~git9.19e761b.tar.xz
deleted file mode 100644
index 90cd66c..0000000
--- a/connect-ng-0.0.3~git9.19e761b.tar.xz
+++ /dev/null
@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:188260d43c9eb0c28a792a9bfa178314026718796685deceaeff6ab7acd48592
-size 385912
diff --git a/connect-ng-0.0.4~git0.64b80e9.tar.xz b/connect-ng-0.0.4~git0.64b80e9.tar.xz
new file mode 100644
index 0000000..afbc6a7
--- /dev/null
+++ b/connect-ng-0.0.4~git0.64b80e9.tar.xz
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:b70c71eedc3cb4aa3b55f0b8b7683144c0d90fa9891a7e21adf57b8fb70b17f1
+size 593064
diff --git a/suseconnect-ng.changes b/suseconnect-ng.changes
index 2070cce..9808586 100644
--- a/suseconnect-ng.changes
+++ b/suseconnect-ng.changes
@@ -1,3 +1,115 @@
+-------------------------------------------------------------------
+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
diff --git a/suseconnect-ng.spec b/suseconnect-ng.spec
index f0b8df2..7710b38 100644
--- a/suseconnect-ng.spec
+++ b/suseconnect-ng.spec
@@ -20,7 +20,7 @@
%global import_path %{provider_prefix}
Name: suseconnect-ng
-Version: 0.0.3~git9.19e761b
+Version: 0.0.4~git0.64b80e9
Release: 0
URL: https://github.com/SUSE/connect-ng
License: LGPL-2.1-or-later
@@ -30,11 +30,14 @@ Source: connect-ng-%{version}.tar.xz
Source1: %name-rpmlintrc
BuildRequires: go >= 1.16
BuildRequires: golang-packaging
+BuildRequires: ruby-devel
BuildRequires: zypper
-Obsoletes: SUSEConnect
-Provides: SUSEConnect
-Obsoletes: zypper-migration-plugin
-Provides: zypper-migration-plugin
+Obsoletes: SUSEConnect < 0.3.99
+Provides: SUSEConnect = 0.3.99
+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%{?fedora} || 0%{?rhel} || 0%{?centos_version}
Requires: ca-certificates
%else
@@ -67,6 +70,25 @@ replaced SUSEConnect.
%{go_nostrip}
%{go_provides}
+%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
+Requires: rubygem(ffi)
+
+%description -n suseconnect-ruby-bindings
+This package provides bindings needed to use libsuseconnect from Ruby scripts.
+
%prep
%setup -q -n connect-ng-%{version}
@@ -77,30 +99,34 @@ echo %{version} > internal/connect/version.txt
find %_builddir/..
go list all
%gobuild suseconnect
-# only to test that it compiles, nothing from it is installed for now
-make -C %_builddir/go/src/github.com/SUSE/connect-ng build-so-example
+mkdir -p %_builddir/go/lib
+go build -v -buildmode=c-shared -o %_builddir/go/lib/libsuseconnect.so %import_path/libsuseconnect
find %_builddir/..
%install
%goinstall
ln -s suseconnect %buildroot/%_bindir/SUSEConnect
-mkdir -p %buildroot/%_sbindir %buildroot/usr/lib/zypper/commands
-ln -s ../bin/suseconnect %buildroot/%_sbindir/SUSEConnect
+install -d -m0755 %buildroot/%_sbindir %buildroot/usr/lib/zypper/commands
+ln -s %_bindir/suseconnect %buildroot/%_sbindir/SUSEConnect
ln -s %_bindir/suseconnect %buildroot/usr/lib/zypper/commands/zypper-migration
-#TODO package ruby module
-#cp /home/abuild/rpmbuild/BUILD/go/src/github.com/SUSE/connect-ng/ext/libsuseconnect.so %_libdir/libsuseconnect.so
+ln -s %_bindir/suseconnect %buildroot/usr/lib/zypper/commands/zypper-search-packages
+install -D -m0755 %_builddir/go/lib/libsuseconnect.so %buildroot/%_libdir/libsuseconnect.so
+install -d -m0755 %buildroot/%_libdir/ruby/vendor_ruby/%rb_ver
+cp -r %_builddir/go/src/%import_path/yast/lib/* %buildroot/%_libdir/ruby/vendor_ruby/%rb_ver
#TODO man pages not yet available in source, these are the names frome the ruby version
#/usr/share/man/man5/SUSEConnect.5.gz
#/usr/share/man/man8/SUSEConnect.8.gz
#/usr/share/man/man8/zypper-migration.8.gz
+#/usr/share/man/man8/zypper-search-packages.8.gz
find %_builddir/..
# we currently do not ship the source for any go module
rm -rf %buildroot/usr/share/go
%check
-%gotest github.com/SUSE/connect-ng/internal/connect
-make -C %_builddir/go/src/github.com/SUSE/connect-ng gofmt
+%gotest -v %import_path/internal/connect
+%gotest -v %import_path/suseconnect
+make -C %_builddir/go/src/%import_path gofmt
%files
%license LICENSE LICENSE.LGPL
@@ -110,4 +136,12 @@ make -C %_builddir/go/src/github.com/SUSE/connect-ng gofmt
%_sbindir/SUSEConnect
/usr/lib/zypper/commands
+%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