Patchwork Superseded packages

login
register
mail settings
Submitter Leo Famulari
Date Sept. 20, 2016, 9:18 p.m.
Message ID <20160920211833.GA3354@jasmine>
Download mbox | patch
Permalink /patch/15819/
State New
Headers show

Comments

Leo Famulari - Sept. 20, 2016, 9:18 p.m.
On Sun, Sep 11, 2016 at 10:39:08PM +0200, Ludovic Courtès wrote:
> > There are other incompatibilities, for example in the repository format.
> > Borg provides a `borg upgrade` tool that performs a one-way conversion
> > of Attic repos to Borg repos. Just creating an 'attic -> borg' alias
> > would not be enough; any automated backup scripts would still fail.
> 
> Then I don’t know.  Either we mark Attic as superseded by Borg anyway,
> or we need another mechanism to mark a package as “discouraged”?

I've attached a patch that marks Attic as superseded by Borg. I'd like
to put it on core-updates. That way, we can mention it in the release
notes of the next Guix release, and hopefully people will notice the
change.

WDYT?
From 374f81963d3ba4ec4a5e48c12848032ca8085aaf Mon Sep 17 00:00:00 2001
From: Leo Famulari <leo@famulari.name>
Date: Tue, 20 Sep 2016 16:59:59 -0400
Subject: [PATCH] gnu: attic: Superseded by borg.

* gnu/packages/backup.scm (attic): Superseded by borg.
* gnu/packages/python.scm (python-llfuse-0.41): Remove variable.
---
 gnu/packages/backup.scm | 47 +++++------------------------------------------
 gnu/packages/python.scm | 16 ----------------
 2 files changed, 5 insertions(+), 58 deletions(-)
Ludovic Courtès - Sept. 24, 2016, 2:14 a.m.
Leo Famulari <leo@famulari.name> skribis:

> On Sun, Sep 11, 2016 at 10:39:08PM +0200, Ludovic Courtès wrote:
>> > There are other incompatibilities, for example in the repository format.
>> > Borg provides a `borg upgrade` tool that performs a one-way conversion
>> > of Attic repos to Borg repos. Just creating an 'attic -> borg' alias
>> > would not be enough; any automated backup scripts would still fail.
>> 
>> Then I don’t know.  Either we mark Attic as superseded by Borg anyway,
>> or we need another mechanism to mark a package as “discouraged”?
>
> I've attached a patch that marks Attic as superseded by Borg. I'd like
> to put it on core-updates. That way, we can mention it in the release
> notes of the next Guix release, and hopefully people will notice the
> change.
>
> WDYT?

I think it could even go to ‘master’, but yes, we should mention it in
the next release notes.

> From 374f81963d3ba4ec4a5e48c12848032ca8085aaf Mon Sep 17 00:00:00 2001
> From: Leo Famulari <leo@famulari.name>
> Date: Tue, 20 Sep 2016 16:59:59 -0400
> Subject: [PATCH] gnu: attic: Superseded by borg.
>
> * gnu/packages/backup.scm (attic): Superseded by borg.
> * gnu/packages/python.scm (python-llfuse-0.41): Remove variable.

[...]

> +(define-public attic
> +  (package (inherit borg)
> +    (name "attic")
> +    (properties `((superseded . ,borg)))))

I was thinking that we could keep the ‘attic’ recipe as-is, only with
this extra ‘properties’ field.

That way, “guix package -u” and “guix package -i attic” would install
Borg, but people who insist could still run:

  guix package -e '(@ (gnu packages backup) attic)'

Thoughts?

Anyway, feel free to push whichever sounds best to you!

Thanks,
Ludo’.

Patch

diff --git a/gnu/packages/backup.scm b/gnu/packages/backup.scm
index dcab95f..c5908c8 100644
--- a/gnu/packages/backup.scm
+++ b/gnu/packages/backup.scm
@@ -321,48 +321,6 @@  to a remote location, and only the differences will be transmitted.  Finally,
 rdiff-backup is easy to use and settings have sensible defaults.")
     (license license:gpl2+)))
 
-(define-public attic
-  (package
-    (name "attic")
-    (version "0.16")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://pypi.python.org/packages/source/A/Attic/Attic-"
-                    version ".tar.gz"))
-              (sha256
-               (base32
-                "0b5skd36r4c0915lwpkqg5hxm49gls9pprs1b7hc40910wlcsl36"))))
-    (build-system python-build-system)
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-before
-          'build 'set-openssl-prefix
-          (lambda* (#:key inputs #:allow-other-keys)
-            (setenv "ATTIC_OPENSSL_PREFIX" (assoc-ref inputs "openssl"))
-            #t)))))
-    (inputs
-     `(("acl" ,acl)
-       ("openssl" ,openssl)
-       ("python-msgpack" ,python-msgpack)
-
-       ;; Attic is probably incompatible with llfuse > 0.41.
-       ;; These links are to discussions of llfuse compatibility from
-       ;; the borg project. Borg is a recent fork of attic, and attic
-       ;; has not been updated since the fork, so it's likely that
-       ;; llfuse compatibility requirements are still the same.
-       ;; https://github.com/borgbackup/borg/issues/642
-       ;; https://github.com/borgbackup/borg/issues/643
-       ("python-llfuse" ,python-llfuse-0.41)))
-    (synopsis "Deduplicating backup program")
-    (description "Attic is a deduplicating backup program.  The main goal of
-Attic is to provide an efficient and secure way to backup data.  The data
-deduplication technique used makes Attic suitable for daily backups since only
-changes are stored.")
-    (home-page "https://attic-backup.org/")
-    (license license:bsd-3)))
-
 (define-public libchop
   (package
     (name "libchop")
@@ -456,3 +414,8 @@  stored.  The authenticated encryption technique makes it suitable for backups
 to not fully trusted targets.  Borg is a fork of Attic.")
     (home-page "https://borgbackup.github.io/borgbackup/")
     (license license:bsd-3)))
+
+(define-public attic
+  (package (inherit borg)
+    (name "attic")
+    (properties `((superseded . ,borg)))))
diff --git a/gnu/packages/python.scm b/gnu/packages/python.scm
index f6ea28d..557e1d6 100644
--- a/gnu/packages/python.scm
+++ b/gnu/packages/python.scm
@@ -5516,22 +5516,6 @@  should be stored on various operating systems.")
                  (strip-python2-variant python-llfuse)))
     (propagated-inputs `(("python2-contextlib2" ,python2-contextlib2)))))
 
-;; For attic-0.16
-(define-public python-llfuse-0.41
-  (package (inherit python-llfuse)
-    (version "0.41.1")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append
-                    "https://bitbucket.org/nikratio/python-llfuse/downloads/"
-                    "llfuse-" version ".tar.bz2"))
-              (sha256
-               (base32
-                "1imlqw9b73086y97izr036f58pgc5akv4ihc2rrf8j5h75jbrlaa"))))
-    ;; Python-LLFUSE < 0.42 includes underscore.js, which is MIT (expat)
-    ;; licensed.  The rest of the package is licensed under LGPL2.0 or later.
-    (license (list license:expat license:lgpl2.0+))))
-
 (define-public python-msgpack
   (package
     (name "python-msgpack")