Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package keybase-client for openSUSE:Factory 
checked in at 2023-01-23 18:33:41
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/keybase-client (Old)
 and      /work/SRC/openSUSE:Factory/.keybase-client.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "keybase-client"

Mon Jan 23 18:33:41 2023 rev:22 rq:1060407 version:6.0.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/keybase-client/keybase-client.changes    
2022-06-27 11:25:31.690587686 +0200
+++ /work/SRC/openSUSE:Factory/.keybase-client.new.32243/keybase-client.changes 
2023-01-23 18:33:42.808786742 +0100
@@ -1,0 +2,14 @@
+Sat Jan 21 13:56:32 UTC 2023 - Matthias Bach <ma...@marix.org> - 6.0.2
+
+- Integrate KBFS packages previously build via own source package
+  * Upstream integrated these into the same source.
+  * Also includes adding kbfs-related patches
+    ensure-mount-dir-exists.patch and
+    ensure-service-stop-unmounts-filesystem.patch.
+- Upgrade Go version used for compilation to 1.19.
+- Use Systemd unit file from upstream source.
+- Replace deprecated tar_scm source service by obs_scm.
+- Drop the no longer required go_nostrip macro.
+- Drop unnessecary use of gofilelist macro.
+
+-------------------------------------------------------------------

Old:
----
  keybase.service

New:
----
  README.git.SUSE
  README.kbfs.SUSE
  README.tool.SUSE
  client.obsinfo
  ensure-mount-dir-exists.patch
  ensure-service-stop-unmounts-filesystem.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ keybase-client.spec ++++++
--- /var/tmp/diff_new_pack.3p4QMu/_old  2023-01-23 18:33:44.360797482 +0100
+++ /var/tmp/diff_new_pack.3p4QMu/_new  2023-01-23 18:33:44.364797509 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package keybase-client
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 # Copyright (c) 2021 Matthias Bach <ma...@marix.org>
 #
 # All modifications and additions to the file contributed by third parties
@@ -25,18 +25,21 @@
 Group:          Productivity/Security
 URL:            https://github.com/keybase/client/
 Source:         client-%{version}.tar.xz
-Source1:        README.SUSE
-Source2:        keybase.service
-Source3:        vendor-%{version}.tar.xz
+Source1:        vendor-%{version}.tar.xz
+Source2:        README.SUSE
+Source3:        README.kbfs.SUSE
+Source4:        README.git.SUSE
+Source5:        README.tool.SUSE
+Patch1:         ensure-mount-dir-exists.patch
+Patch2:         ensure-service-stop-unmounts-filesystem.patch
 BuildRequires:  fdupes
-BuildRequires:  go1.16
+BuildRequires:  go1.19
 BuildRequires:  golang-packaging
 BuildRequires:  gzip
 BuildRequires:  pkgconfig
 BuildRequires:  tar
 BuildRequires:  xz
 BuildRequires:  pkgconfig(systemd)
-%{go_nostrip}
 %{?systemd_ordering}
 %{go_provides}
 
@@ -47,23 +50,77 @@
 accounts like Twitter, Github, or a Homepage. In addition, it allows to look
 up keys for such accounts that people have created a proof for.
 
+%package -n kbfs
+Summary:        Encrypted remote storage based on Keybase identities
+Group:          Productivity/Security
+Requires:       keybase-client
+Supplements:    keybase-client
+
+%description -n kbfs
+The Keybase filesystem provides encrypted remote storage. Encryption is
+handled transparently based on Keybase accounts.
+
+In addition to plain file storage this also provides a possibility to
+host public files and store Git repositories.
+
+%package -n kbfs-git
+Summary:        Git remote helper for repositories stored on Keybase
+Group:          Productivity/Security
+Requires:       kbfs
+Requires:       keybase-client
+Supplements:    keybase-client
+
+%description -n kbfs-git
+
+A git remote helper that allows storing Git repositories using Keybase.
+Repositories can be completely private or bound to a team.
+Repositories using this remote helper use the scheme keybase://.
+
+%package -n kbfs-tool
+Summary:        Keybase Filesystem command line utility
+Group:          Productivity/Security
+Requires:       keybase-client
+Supplements:    keybase-client
+
+%description -n kbfs-tool
+
+A thin command line utility for interacting with the Keybase Filesystem
+without using a filesystem mountpoint.
+
 %prep
-%setup -q -n client-%{version}
-tar -xaf %{SOURCE3}
+%autosetup -p1 -n client-%{version}
+cd go
+tar -xaf %{SOURCE1}
 
 %build
+cd go
 %{goprep} github.com/keybase/client/go
 %{gobuild} -tags production keybase
+%{gobuild} -tags production kbfs/kbfsfuse
+%{gobuild} -tags production kbfs/kbfstool
+%{gobuild} -tags production kbfs/kbfsgit/git-remote-keybase
 
 %install
+cd go
 %{goinstall}
-%{gofilelist}
-install -D -m 644 -p %{SOURCE2} %{buildroot}%{_userunitdir}/keybase.service
-install -D -m 644 -p %{SOURCE1} %{buildroot}/%{_docdir}/%{name}/README.SUSE
+cd ..
+install -D -m 644 -p packaging/linux/systemd/keybase.service 
%{buildroot}%{_userunitdir}/keybase.service
+install -D -m 644 -p packaging/linux/systemd/kbfs.service 
%{buildroot}%{_userunitdir}/kbfs.service
+install -D -m 644 -p %{SOURCE2} %{buildroot}/%{_docdir}/%{name}/README.SUSE
+install -D -m 644 -p %{SOURCE3} %{buildroot}/%{_docdir}/kbfs/README.SUSE
+install -D -m 644 -p %{SOURCE4} %{buildroot}/%{_docdir}/kbfs-git/README.SUSE
+install -D -m 644 -p %{SOURCE5} %{buildroot}/%{_docdir}/kbfs-tool/README.SUSE
 %fdupes %{buildroot}/%{_prefix}
 
 %check
+cd go
 %{gotest} github.com/keybase/client/go/keybase
+%ifnarch i586 arm armv7hl # kbfs tests are flacky on 32-bit archs
+%{gotest} github.com/keybase/client/go/kbfs/test
+%{gotest} github.com/keybase/client/go/kbfs/test -tags fuse
+%endif
+%{gotest} github.com/keybase/client/go/kbfs/kbfstool
+%{gotest} github.com/keybase/client/go/kbfs/kbfsgit/git-remote-keybase
 
 %post
 %systemd_user_post keybase.service
@@ -71,11 +128,33 @@
 %preun
 %systemd_user_preun keybase.service
 
-%files -f file.lst
+%post -n kbfs
+%systemd_user_post kbfs.service
+
+%preun -n kbfs
+%systemd_user_preun kbfs.service
+
+%files
 %{_bindir}/keybase
 %{_userunitdir}/keybase.service
 %{_docdir}/%{name}
 %{_docdir}/%{name}/README.SUSE
-%license LICENSE
+%license go/LICENSE
+
+%files -n kbfs
+%{_bindir}/kbfsfuse
+%{_userunitdir}/kbfs.service
+%{_docdir}/kbfs
+%license go/kbfs/LICENSE
+
+%files -n kbfs-git
+%{_bindir}/git-remote-keybase
+%{_docdir}/kbfs-git
+%license go/kbfs/LICENSE
+
+%files -n kbfs-tool
+%{_bindir}/kbfstool
+%{_docdir}/kbfs-tool
+%license go/kbfs/LICENSE
 
 %changelog

++++++ README.git.SUSE ++++++
Using the Git Remote Helper for Keybase
=======================================

The remote helper will automatically be enabled in Git. However, it requires the
Keybase Filesystem to be mounted to work. See
/usr/share/doc/packages/kbfs/README.SUSE on how to mount the Keybase Filesystem.

Managing Git Repositories on Keybase
------------------------------------

Git repositories on Keybase can be managed using the `git` subcommand of the
Keybase command line client.

++++++ README.kbfs.SUSE ++++++
Using the Keybase Filesystem
============================

Using the Keybase Filesystem requires the following:

1. You need to be logged into a Keybase account. This can be done by running
   `keybase login`.
2. You need to start the `kbfs` service in your user session. To do this run
   `systemctl --user start kbfs`.

This package does not include the redirection service which enables accessing
the Keybase Filesystem via `/keybase`. The mounted Keybase Filesystem can be
found at `${XDG_RUNTIME_DIR}/keybase/kbfs`. On a standard installation with
only a single user this will be `/run/user/1000/keybase/kbfs`.

Making the Keybase Filesystem start automatically
-------------------------------------------------

To make the Keybase Filesystem start automatically on log-in, enable the `kbfs`
service:

    systemctl --user enable kbfs

++++++ README.tool.SUSE ++++++
Using the Keybase Filesystem Tool
=================================

The Keybase Filesystem tool requires a valid Keybase login session and the
Keybase service to be running. To log in to keybase run `keybase login`.
This will automatically start the Keybase service.

Logging in will typically only have to happen once. To only start the
service run `systemctl --user start keybase` or run any command using
the Keybase command line client.

++++++ _service ++++++
--- /var/tmp/diff_new_pack.3p4QMu/_old  2023-01-23 18:33:44.516798561 +0100
+++ /var/tmp/diff_new_pack.3p4QMu/_new  2023-01-23 18:33:44.520798589 +0100
@@ -1,15 +1,18 @@
 <services>
   <service mode="disabled" name="tar_scm">
-    <param name="url">https://github.com/keybase/client.git</param>
     <param name="scm">git</param>
-    <param name="subdir">go/</param>
-    <param name="revision">refs/tags/v6.0.2</param>
+    <param name="url">https://github.com/keybase/client.git</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
+    <param name="revision">refs/tags/v6.0.2</param>
     <param name="filename">client</param>
     <param name="changesgenerate">disable</param>
   </service>
-  <service mode="disabled" name="recompress">
+  <service name="tar" mode="disabled">
+    <param name="include">go</param>
+    <param name="include">packaging</param>
+  </service>
+  <service name="recompress" mode="disabled">
     <param name="file">*.tar</param>
     <param name="compression">xz</param>
   </service>

++++++ client-6.0.2.tar.xz ++++++
/work/SRC/openSUSE:Factory/keybase-client/client-6.0.2.tar.xz 
/work/SRC/openSUSE:Factory/.keybase-client.new.32243/client-6.0.2.tar.xz 
differ: char 26, line 1

++++++ client.obsinfo ++++++
name: client
version: 6.0.2
mtime: 1654883912
commit: a459abf326f830894cabf3dda556841a5fb3a461

++++++ ensure-mount-dir-exists.patch ++++++
From: Matthias Bach <ma...@marix.org>
Date: 2018-11-04 21:40:00 +0100
Subject: Ensure the default KBFS mount directoy is created on service start
References: https://github.com/keybase/kbfs/issues/1655
Upstream: never

This ensure that the default KBFS mount directory is create on service start.
Upstream does this using their `run_keybase` script which is not included in
this package.

This solution is much cleaner than upstreams. However, we cannot directly
upstream it due to the hack for Leap 15.0. In addition, upstream probably
wouldn't like the Systemd 235 requirement.

diff -rub kbfs-2.10.1o/packaging/linux/systemd/kbfs.service 
kbfs-2.10.1/packaging/linux/systemd/kbfs.service

--- a/packaging/linux/systemd/kbfs.service
+++ b/packaging/linux/systemd/kbfs.service
@@ -27,6 +27,11 @@ ExecStart=/usr/bin/kbfsfuse -debug -log-to-file
 ExecStop=-/bin/sh -c 'fusermount -uz "$(keybase config get -d -b mountdir)"'

 Restart=on-failure
+# Ensure the default mountdir exists
+RuntimeDirectory=keybase/kbfs
+RuntimeDirectoryMode=0700
+# Work around Systemd on Leap 15.0 being to old for RuntimeDirectory with deep 
directories (requires Systemd 235)
+ExecStartPre=/bin/sh -c 'mkdir -p "${XDG_RUNTIME_DIR}/keybase/kbfs"'

 [Install]
 WantedBy=default.target


++++++ ensure-service-stop-unmounts-filesystem.patch ++++++
From: Matthias Bach <ma...@marix.org>
Date: 2018-11-09 21:15:00 +0100
Subject: Ensure stopping the kbfs service also unmounts the filesystem
Upstream: never

Stopping the service will leave the filesystem in an unmounted but non-
working state. Explicitly unmounting it when stopping the service solves
this.

This patch can't be upstreamed in this form as it includes the hardcoded
mountpoint assumption which mirrors usptreams assumption, but they would
always have the mountdir config filled.

diff --git a/packaging/linux/systemd/kbfs.service 
b/packaging/linux/systemd/kbfs.service
--- a/packaging/linux/systemd/kbfs.service
+++ b/packaging/linux/systemd/kbfs.service
@@ -19,12 +19,12 @@ EnvironmentFile=-%h/.config/keybase/keybase.env
 # means that error codes from this command are ignored. Without this line,
 # `systemctl --user restart kbfs.service` will hit mount failures if there
 # are any running shells cd'd into a Keybase folder.
-ExecStartPre=-/bin/sh -c 'fusermount -uz "$(keybase config get -d -b 
mountdir)"'
+ExecStartPre=-/bin/sh -c 'SERVICE=$(keybase config get -d -b mountdir); 
fusermount -uz "${SERVICE:-%t/keybase/kbfs}"'

 ExecStart=/usr/bin/kbfsfuse -debug -log-to-file

 # This should have already occurred in the signal handler in kbfsfuse.
-ExecStop=-/bin/sh -c 'fusermount -uz "$(keybase config get -d -b mountdir)"'
+ExecStop=/bin/sh -c 'SERVICE=$(keybase config get -d -b mountdir); fusermount 
-uz "${SERVICE:-%t/keybase/kbfs}"'

 Restart=on-failure
 # Ensure the default mountdir exists

Reply via email to