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.master
parent
232f2d2634
commit
5de2246f40
|
@ -974,6 +974,7 @@ dist_patch_DATA = \
|
||||||
%D%/packages/patches/ghostscript-no-header-id.patch \
|
%D%/packages/patches/ghostscript-no-header-id.patch \
|
||||||
%D%/packages/patches/ghostscript-no-header-uuid.patch \
|
%D%/packages/patches/ghostscript-no-header-uuid.patch \
|
||||||
%D%/packages/patches/ghostscript-no-header-creationdate.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/glib-tests-timer.patch \
|
||||||
%D%/packages/patches/glibc-CVE-2015-5180.patch \
|
%D%/packages/patches/glibc-CVE-2015-5180.patch \
|
||||||
%D%/packages/patches/glibc-CVE-2015-7547.patch \
|
%D%/packages/patches/glibc-CVE-2015-7547.patch \
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
;;; Copyright © 2015 Paul van der Walt <paul@denknerd.org>
|
||||||
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
|
;;; Copyright © 2019 Kyle Meyer <kyle@kyleam.com>
|
||||||
;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
|
;;; Copyright © 2015 John Soo <jsoo1@asu.edu>
|
||||||
;;; Copyright © 2019 Efraim Flashner <efraim@flashner.co.il>
|
;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
|
||||||
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
;;; Copyright © 2019 Alex Griffin <a@ajgrf.com>
|
||||||
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
|
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@member.fsf.org>
|
||||||
;;; Copyright © 2020 Brian Leung <bkleung89@gmail.com>
|
;;; Copyright © 2020 Brian Leung <bkleung89@gmail.com>
|
||||||
|
@ -37,6 +37,7 @@
|
||||||
#:use-module (guix packages)
|
#:use-module (guix packages)
|
||||||
#:use-module ((guix licenses) #:prefix license:)
|
#:use-module ((guix licenses) #:prefix license:)
|
||||||
#:use-module (guix build-system haskell)
|
#:use-module (guix build-system haskell)
|
||||||
|
#:use-module (gnu packages)
|
||||||
#:use-module (gnu packages base)
|
#:use-module (gnu packages base)
|
||||||
#:use-module (gnu packages curl)
|
#:use-module (gnu packages curl)
|
||||||
#:use-module (gnu packages gl)
|
#:use-module (gnu packages gl)
|
||||||
|
@ -347,6 +348,7 @@ to @code{cabal repl}).")
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "https://hackage.haskell.org/package/"
|
(uri (string-append "https://hackage.haskell.org/package/"
|
||||||
"git-annex/git-annex-" version ".tar.gz"))
|
"git-annex/git-annex-" version ".tar.gz"))
|
||||||
|
(patches (search-patches "git-annex-S3v4.patch"))
|
||||||
(sha256
|
(sha256
|
||||||
(base32 "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl"))))
|
(base32 "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl"))))
|
||||||
(build-system haskell-build-system)
|
(build-system haskell-build-system)
|
||||||
|
|
|
@ -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 <joeyh@joeyh.name>
|
||||||
|
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
|
||||||
|
|
Reference in New Issue