guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

branch master updated: gnu: git-annex: Add support for v4 of S3 support.


From: guix-commits
Subject: branch master updated: gnu: git-annex: Add support for v4 of S3 support.
Date: Mon, 11 May 2020 07:36:17 -0400

This is an automated email from the git hooks/post-receive script.

efraim pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new 5de2246  gnu: git-annex: Add support for v4 of S3 support.
5de2246 is described below

commit 5de2246f408743c1a253e0fa7dfe902ec2a05355
Author: Efraim Flashner <address@hidden>
AuthorDate: Mon May 11 14:34:38 2020 +0300

    gnu: git-annex: Add support for v4 of S3 support.
    
    * gnu/packages/haskell-apps.scm (git-annex)[source]: Add patch.
    * gnu/packages/patches/git-annex-S3v4.patch: New file.
    * gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                              |  1 +
 gnu/packages/haskell-apps.scm             |  4 +-
 gnu/packages/patches/git-annex-S3v4.patch | 77 +++++++++++++++++++++++++++++++
 3 files changed, 81 insertions(+), 1 deletion(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index e73f1c7..fb2e90b 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -974,6 +974,7 @@ dist_patch_DATA =                                           
\
   %D%/packages/patches/ghostscript-no-header-id.patch          \
   %D%/packages/patches/ghostscript-no-header-uuid.patch                \
   %D%/packages/patches/ghostscript-no-header-creationdate.patch \
+  %D%/packages/patches/git-annex-S3v4.patch                    \
   %D%/packages/patches/glib-tests-timer.patch                  \
   %D%/packages/patches/glibc-CVE-2015-5180.patch               \
   %D%/packages/patches/glibc-CVE-2015-7547.patch               \
diff --git a/gnu/packages/haskell-apps.scm b/gnu/packages/haskell-apps.scm
index 4785eba..13c8bbc 100644
--- a/gnu/packages/haskell-apps.scm
+++ b/gnu/packages/haskell-apps.scm
@@ -11,7 +11,7 @@
 ;;; Copyright © 2015 Paul van der Walt <address@hidden>
 ;;; Copyright © 2019 Kyle Meyer <address@hidden>
 ;;; Copyright © 2015 John Soo <address@hidden>
-;;; Copyright © 2019 Efraim Flashner <address@hidden>
+;;; Copyright © 2019, 2020 Efraim Flashner <address@hidden>
 ;;; Copyright © 2019 Alex Griffin <address@hidden>
 ;;; Copyright © 2020 Alexandru-Sergiu Marton <address@hidden>
 ;;; Copyright © 2020 Brian Leung <address@hidden>
@@ -37,6 +37,7 @@
   #:use-module (guix packages)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix build-system haskell)
+  #:use-module (gnu packages)
   #:use-module (gnu packages base)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages gl)
@@ -347,6 +348,7 @@ to @code{cabal repl}).")
        (method url-fetch)
        (uri (string-append "https://hackage.haskell.org/package/";
                            "git-annex/git-annex-" version ".tar.gz"))
+       (patches (search-patches "git-annex-S3v4.patch"))
        (sha256
         (base32 "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl"))))
     (build-system haskell-build-system)
diff --git a/gnu/packages/patches/git-annex-S3v4.patch 
b/gnu/packages/patches/git-annex-S3v4.patch
new file mode 100644
index 0000000..9f7cea3
--- /dev/null
+++ b/gnu/packages/patches/git-annex-S3v4.patch
@@ -0,0 +1,77 @@
+From the upstream commit, with the changes to CHANGELOG and the docs
+folder removed.
+
+From 1532d67c3ecf452b8c86bcc5928525398755cd01 Mon Sep 17 00:00:00 2001
+From: Joey Hess <address@hidden>
+Date: Thu, 7 May 2020 13:18:11 -0400
+Subject: [PATCH] S3: Support signature=v4
+
+To use S3 Signature Version 4. Some S3 services seem to require v4, while
+others may only support v2, which remains the default.
+
+I'm also not sure if v4 works correctly in all cases, there is this
+upstream bug report: https://github.com/aristidb/aws/issues/262
+I've only tested it against the default S3 endpoint.
+---
+ CHANGELOG                                     |  3 +++
+ Remote/S3.hs                                  | 23 ++++++++++++++++++-
+ ..._3bbdf23c8a4a480f4f6b8e8a2f8ddecd._comment | 13 +++++++++++
+ ..._854390b9a781da82ecb85ad85eecad04._comment | 13 +++++++++++
+ doc/special_remotes/S3.mdwn                   |  4 ++++
+ ..._cf57e8dbd9fdc7c487565b61808b6bb2._comment | 10 ++++++++
+ 6 files changed, 65 insertions(+), 1 deletion(-)
+ create mode 100644 
doc/bugs/S3_special_remote_support_for_DigitalOcean_Spaces/comment_2_3bbdf23c8a4a480f4f6b8e8a2f8ddecd._comment
+ create mode 100644 
doc/forum/backblaze_s3/comment_1_854390b9a781da82ecb85ad85eecad04._comment
+ create mode 100644 
doc/special_remotes/S3/comment_34_cf57e8dbd9fdc7c487565b61808b6bb2._comment
+
+diff --git a/Remote/S3.hs b/Remote/S3.hs
+index cb345d1f8..e3ea492f2 100644
+--- a/Remote/S3.hs
++++ b/Remote/S3.hs
+@@ -99,6 +99,8 @@ remote = specialRemoteType $ RemoteType
+                               (FieldDesc "port to connect to")
+                       , optionalStringParser requeststyleField
+                               (FieldDesc "for path-style requests, set to 
\"path\"")
++                      , signatureVersionParser signatureField
++                              (FieldDesc "S3 signature version")
+                       , optionalStringParser mungekeysField HiddenField
+                       , optionalStringParser AWS.s3credsField HiddenField
+                       ]
+@@ -148,6 +150,22 @@ protocolField = Accepted "protocol"
+ requeststyleField :: RemoteConfigField
+ requeststyleField = Accepted "requeststyle"
+ 
++signatureField :: RemoteConfigField
++signatureField = Accepted "signature"
++
++newtype SignatureVersion = SignatureVersion Int
++
++signatureVersionParser :: RemoteConfigField -> FieldDesc -> 
RemoteConfigFieldParser
++signatureVersionParser f fd =
++      genParser go f defver fd
++              (Just (ValueDesc "v2 or v4"))
++  where
++      go "v2" = Just (SignatureVersion 2)
++      go "v4" = Just (SignatureVersion 4)
++      go _ = Nothing
++
++      defver = SignatureVersion 2
++
+ portField :: RemoteConfigField
+ portField = Accepted "port"
+ 
+@@ -877,7 +895,10 @@ s3Configuration c = cfg
+               Nothing
+                       | port == 443 -> AWS.HTTPS
+                       | otherwise -> AWS.HTTP
+-      cfg = S3.s3 proto endpoint False
++      cfg = case getRemoteConfigValue signatureField c of
++              Just (SignatureVersion 4) -> 
++                      S3.s3v4 proto endpoint False S3.SignWithEffort
++              _ -> S3.s3 proto endpoint False
+ 
+ data S3Info = S3Info
+       { bucket :: S3.Bucket
+-- 
+2.26.2
+



reply via email to

[Prev in Thread] Current Thread [Next in Thread]