Bug#878599: [PATCH] Ship git-libsecret

2023-03-21 Thread M Hickford
The difficulty of installing git-credential-libsecret on Debian and
Ubuntu was recently discussed on the Git mailing list
https://lore.kernel.org/git/y2rdw7rd8mgtf...@tapette.crustytoothpaste.net/

Any chance to take another look at
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=878599#39 ?

Other distros name the package git-credential-libsecret matching the binary name
https://pkgs.org/search/?q=git-credential-libsecret . This is easiest
for users. If Debian chooses a different package name, it would be
helpful to specify `Provides: git-credential-libsecret`
https://www.debian.org/doc/debian-policy/ch-relationships.html#virtual-packages-provides



Bug#878599: [PATCH] Ship git-libsecret

2022-10-07 Thread Vit Kabele
Hello,

this thread seems to be stale, but I'd still like to have the libsecret
credential helper present in Debian repository.

I tested the submitted patch and did some adjustments so that the
package actually builds. I did it against 2.20 because I was not able to
find git branch for current stable 2.30.2, but when I tried on the
downloaded 2.30.2 sources, the patch applied with one minimal change.

I will be happy to modify to the last stable if you point me to it.
(The debian-stable branch points to 2.20).

I also tested the resulting 2.30 package on my Bullseye machine and it
installs and works fine (it's just not listed in `git help -a`, but I'm
not sure that it should be).

Can we ressurect the discussion and progress with this topic?

Best regards,
Vit Kabele

-- >8 --

Create a new package git-libsecret that builds the libsecret
compatible git credentials helper as a new package.

Signed-off-by: Ville Skyttä 
Co-authored-by: Vit Kabele 
---
 debian/control   | 22 +++---
 debian/git-libsecret.install |  1 +
 debian/rules |  5 +
 3 files changed, 25 insertions(+), 3 deletions(-)
 create mode 100644 debian/git-libsecret.install

diff --git a/debian/control b/debian/control
index e6be01c90a..716bda9e5f 100644
--- a/debian/control
+++ b/debian/control
@@ -5,7 +5,7 @@ Maintainer: Gerrit Pape 
 Uploaders: Jonathan Nieder , Anders Kaseorg 

 Build-Depends: libz-dev, gettext,
  libpcre2-dev | libpcre3-dev,
- libcurl4-gnutls-dev, libexpat1-dev,
+ libcurl4-gnutls-dev, libexpat1-dev, libsecret-1-dev,
  subversion, libsvn-perl, libyaml-perl,
  tcl, python,
  libhttp-date-perl | libtime-parsedate-perl,
@@ -33,7 +33,7 @@ Pre-Depends: ${misc:Pre-Depends}
 Recommends: ca-certificates, patch, less, ssh-client
 Suggests: gettext-base, git-daemon-run | git-daemon-sysvinit,
  git-doc, git-el, git-email, git-gui, gitk, gitweb,
- git-cvs, git-mediawiki, git-svn
+ git-cvs, git-mediawiki, git-svn, git-libsecret
 Replaces: gitweb (<< 1:1.7.4~rc1),
  git-core (<< 1:1.7.0.4-1.)
 Breaks: bash-completion (<< 1:1.90-1), gitweb (<< 1:1.7.4~rc1),
@@ -323,12 +323,28 @@ Description: fast, scalable, distributed revision control 
system (web interface)
  If libcgi-fast-perl is installed, gitweb can also be run over FastCGI
  (and served by nginx, for example).
 
+Package: git-libsecret
+Architecture: all
+Multi-Arch: foreign
+Depends: ${misc:Depends}, git (>> ${source:Upstream-Version}), git (<< 
${source:Upstream-Version}-.)
+Description: fast, scalable, distributed revision control system (libsecret 
credential helper)
+ Git is popular version control system designed to handle very large
+ projects with speed and efficiency; it is used for many high profile
+ open source projects, most notably the Linux kernel.
+ .
+ Git falls in the category of distributed source code management tools.
+ Every Git working directory is a full-fledged repository with full
+ revision tracking capabilities, not dependent on network access or a
+ central server.
+ .
+ This package provides a helper for storing credentials using libsecret.
+
 Package: git-all
 Architecture: all
 Multi-Arch: foreign
 Depends: ${misc:Depends}, git (>> ${source:Upstream-Version}), git (<< 
${source:Upstream-Version}-.),
  git-doc, git-el, git-cvs, git-mediawiki, git-svn,
- git-email, git-gui, gitk, gitweb
+ git-email, git-gui, gitk, gitweb, git-libsecret
 Recommends: git-daemon-run | git-daemon-sysvinit
 Description: fast, scalable, distributed revision control system (all 
subpackages)
  Git is popular version control system designed to handle very large
diff --git a/debian/git-libsecret.install b/debian/git-libsecret.install
new file mode 100644
index 00..d61ca822bc
--- /dev/null
+++ b/debian/git-libsecret.install
@@ -0,0 +1 @@
+debian/tmp/usr/lib/git-core/git-credential-libsecret* usr/lib/git-core
diff --git a/debian/rules b/debian/rules
index d5d81608d8..5febe17ac0 100755
--- a/debian/rules
+++ b/debian/rules
@@ -63,6 +63,7 @@ build-stamp:
 override_dh_auto_build-arch: build-stamp
$(MAKE) -C contrib/subtree all $(OPTS)
ln -s contrib/subtree/git-subtree
+   $(MAKE) -C contrib/credential/libsecret all $(OPTS)
 
 override_dh_auto_test-arch:
test -z '$(TEST)' || \
@@ -90,6 +91,7 @@ override_dh_auto_clean:
$(MAKE) -C contrib/subtree clean $(OPTS)
$(MAKE) clean $(OPTS)
rm -f git-subtree
+   $(MAKE) -C contrib/credential/libsecret clean $(OPTS)
 
 override_dh_clean:
dh_clean -Xmailinfo.c.orig
@@ -98,6 +100,9 @@ override_dh_auto_install-arch:
# git
DESTDIR='$(GIT)' $(MAKE) install $(OPTS)
DESTDIR='$(GIT)' $(MAKE) -C contrib/subtree install $(OPTS)
+   install -d -m0755 '$(TMP)'/usr/lib/git-core/
+   install -m0755 contrib/credential/libsecret/git-credential-libsecret \
+'$(TMP)'/usr/lib/git-core/
install -d -m0755 '$(GIT)'/var/lib/git
rm -rf '$(GIT)'/usr/share/man
# don't include arch, cvs, p4,