Bug#1034305: deja-dup: Enable support for restic backend

2023-04-12 Thread Jacob Greenleaf
Package: deja-dup
Version: 44.0-2
Severity: wishlist

Dear Maintainer,

The attached patch enables support for restic that is present in
upstream since version 43. 

*** debian/patches/Enable-support-for-restic-0.14.patch
From: Jacob Greenleaf 
Date: Wed, 12 Apr 2023 06:02:07 -0700
Subject: Enable support for restic 0.14+

Beginning with deja-dup 43, experimental support for restic as an
optional alternative to borg has been merged into upstream and can be
enabled with the enable_restic config flag. Beginning with deja-dup 44
if restic is used it must be 0.14+ (propagating the breaking change
made in restic 0.14 for repository version 2 for copmression).

This patch enables building with restic enabled to allow using
restic. Note that users also need to opt-in to use restic through a
new "Labs" tab, this flag merely enables the option for the user to do
so. As such, adds restic and rclone to Recommends. If the user hasn't
installed restic or rclone, they will be prompted to install them
using the existing packagekit integration.
---
 debian/control    | 2 +-
 debian/control.in | 2 +-
 debian/rules  | 1 +
 3 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/debian/control b/debian/control
index 14cde49..8b1ae24 100644
--- a/debian/control
+++ b/debian/control
@@ -34,7 +34,7 @@ Homepage: https://launchpad.net/deja-dup
 Package: deja-dup
 Architecture: any
 Depends: duplicity (>= 0.7.14), ${misc:Depends}, ${shlibs:Depends}
-Recommends: gvfs-backends, packagekit, policykit-1
+Recommends: gvfs-backends, packagekit, policykit-1, restic (>= 0.14),
rclone
 Suggests: python3-pydrive2
 Description: Backup utility
  Déjà Dup is a simple backup tool. It hides the complexity of backing
up the
diff --git a/debian/control.in b/debian/control.in
index 92493f4..14059f7 100644
--- a/debian/control.in
+++ b/debian/control.in
@@ -30,7 +30,7 @@ Homepage: https://launchpad.net/deja-dup
 Package: deja-dup
 Architecture: any
 Depends: duplicity (>= 0.7.14), ${misc:Depends}, ${shlibs:Depends}
-Recommends: gvfs-backends, packagekit, policykit-1
+Recommends: gvfs-backends, packagekit, policykit-1, restic (>= 0.14),
rclone
 Suggests: python3-pydrive2
 Description: Backup utility
  Déjà Dup is a simple backup tool. It hides the complexity of backing
up the
diff --git a/debian/rules b/debian/rules
index 020145d..8cc0cdc 100755
--- a/debian/rules
+++ b/debian/rules
@@ -10,5 +10,6 @@ override_dh_auto_configure:
dh_auto_configure -- \
   -Dgvfs_pkgs=gvfs-backends,python3-gi,gir1.2-
glib-2.0 \
   -Dpackagekit=enabled \
+  -Denable_restic=true \
   -Dpydrive_pkgs=python3-pydrive2 \
   -Drequests_oauthlib_pkgs=python3-requests-
oauthlib


-- System Information:
Debian Release: 12.0
  APT prefers bookworm-security
  APT policy: (500, 'bookworm-security'), (500, 'bookworm')
Architecture: amd64 (x86_64)

Kernel: Linux 6.1.0-7-amd64 (SMP w/24 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8),
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages deja-dup depends on:
ii  dconf-gsettings-backend [gsettings-backend]  0.40.0-4
ii  duplicity    0.8.22-1+b3
ii  libadwaita-1-0   1.2.2-1
ii  libc6    2.36-8
ii  libglib2.0-0 2.74.6-1
ii  libgpg-error0    1.46-1
ii  libgtk-4-1   4.8.3+ds-2
ii  libjson-glib-1.0-0   1.6.6-1
ii  libpackagekit-glib2-18   1.2.6-3
ii  libpango-1.0-0   1.50.12+ds-1
ii  libsecret-1-0    0.20.5-3
ii  libsoup-3.0-0    3.2.2-2

Versions of packages deja-dup recommends:
ii  gvfs-backends  1.50.3-1
ii  packagekit 1.2.6-3
ii  policykit-1    122-3

Versions of packages deja-dup suggests:
pn  python3-pydrive2  

-- no debconf information



signature.asc
Description: This is a digitally signed message part


Bug#1032521: myrepos: "unknown repository type" error registering git bare with packed refs

2023-03-08 Thread Jacob Greenleaf
Package: myrepos
Version: 1.20180726
Severity: normal

Dear Maintainer,

An error is returned when running "mr register" on a bare git
repository that has no refs/tags or refs/heads directory. 

$ git clone --bare --quiet https://github.com/beancount/beancount-mode.git
$ cd beancount-mode.git
$ rmdir refs/tags
$ mr register
mr register: unknown repository type

In my case my repositories are stored that way on disk, perhaps
because I'm using GitLab which seems to aggressively prefer
packed-refs [1] instead for example.

I checked the git reference documentation (gitrepository-layout [2],
etc.)  and was unable to find anything defining the directories under
refs/ as required instead of optional, but git seems to work fine with
an empty refs directory, lazily creating things under refs/ if they
are missing. However having a missing refs/ directory entirely is not
OK:

$ rm -rf refs
$ git log --oneline -1
fatal: not a git repository (or any of the parent directories): .git

A patch is attached that loosens the git_bare test (and vcsh) to not
require heads nor tags under refs, but instead simply require a refs
folder in addition to the other heuristics used for detecting a git
repository. 

This appears to have been added in
c20b454a225407e5c6b918cbb6e739b888b252ab when handling of git bare
repositories was separated out.

[1] https://git-scm.com/docs/git-pack-refs
[2] https://git-scm.com/docs/gitrepository-layout


*** 0001-Fix-detection-of-git-bare-repositories-with-no-tags-.patch
From: Jacob Greenleaf 
Origin: other
Date: Tue, 7 Mar 2023 19:35:41 -0800
Subject: [PATCH] Fix detection of git bare repositories with no tags or heads
 refs dirs

---
 mr | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/mr b/mr
index 056e749..26d9300 100755
--- a/mr
+++ b/mr
@@ -2501,11 +2501,11 @@ hg_test  = perl: -d "$ENV{MR_REPO}/.hg"
 darcs_test = perl: -d "$ENV{MR_REPO}/_darcs"
 fossil_test = perl: -f "$ENV{MR_REPO}/_FOSSIL_" || -f "$ENV{MR_REPO}/.fslckout"
 git_bare_test = perl:
-   -d "$ENV{MR_REPO}/refs/heads" && -d "$ENV{MR_REPO}/refs/tags" &&
+   -d "$ENV{MR_REPO}/refs" &&
-d "$ENV{MR_REPO}/objects" && -f "$ENV{MR_REPO}/config" &&
`GIT_CONFIG="$ENV{MR_REPO}"/config git config --get core.bare` =~ /true/
 vcsh_test = perl:
-   -d "$ENV{MR_REPO}/refs/heads" && -d "$ENV{MR_REPO}/refs/tags" &&
+   -d "$ENV{MR_REPO}/refs" &&
-d "$ENV{MR_REPO}/objects" && -f "$ENV{MR_REPO}/config" &&
`GIT_CONFIG="$ENV{MR_REPO}"/config git config --get vcsh.vcsh` =~ /true/
 veracity_test  = perl: -d "$ENV{MR_REPO}/.sgdrawer"
-- 
2.30.2


-- System Information:
Debian Release: 11.6
  APT prefers bullseye
  APT policy: (500, 'bullseye')
Architecture: amd64 (x86_64)

Kernel: Linux 5.10.0-21-amd64 (SMP w/4 CPU threads)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, 
TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages myrepos depends on:
ii  perl  5.32.1-4+deb11u2

Versions of packages myrepos recommends:
ii  libfile-homedir-perl  1.006-1
ii  libhtml-parser-perl   3.75-1+b1
ii  libio-pty-easy-perl   0.10-1.1
ii  libwww-perl   6.52-1

Versions of packages myrepos suggests:
pn  ack | ack-grep
pn  bzr   
ii  curl  7.74.0-1.3+deb11u7
pn  cvs   
pn  darcs 
pn  dgit  
pn  fossil
ii  git [git-core]1:2.30.2-1+deb11u2
pn  git-annex 
pn  git-big-picture   
pn  git-svn   
pn  gitk | tig
pn  kdesdk-scripts
ii  liburi-perl   5.08-1
pn  mercurial 
pn  perl-doc  
pn  stow  
pn  subversion
pn  subversion-tools  
pn  unison
pn  vcsh  
ii  xdg-utils 1.1.3-4.1

-- no debconf information