all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#52238] [PATCH] gnu: Add MEGA SDK
       [not found] <1136809883.7440498.1638426746315.ref@mail.yahoo.com>
@ 2021-12-02  6:32 ` Jaft
  2021-12-06 19:52   ` Liliana Marie Prikler
  0 siblings, 1 reply; 8+ messages in thread
From: Jaft @ 2021-12-02  6:32 UTC (permalink / raw)
  To: 52238

* gnu/packages/mega.scm (mega-sdk):Add MEGA SDK

The SDK is a dependency of MEGAsync so I thought to make a new file since there's multiple packages that are MEGA related and then I discovered that the megacmd package exists; is it better for this to be placed in sync.scm, next to megacmd?

---
gnu/packages/mega.scm | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 74 insertions(+)
new file   gnu/packages/mega.scm
@@ -0,0 +1,74 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Wamm K. D. <jaft.r@outlook.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages mega)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix utils)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages crypto)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages adns)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages image)
+  #:use-module (gnu packages readline)
+  #:use-module (gnu packages crypto))
+
+(define-public mega-sdk
+  (let ([version "3.9.10"])
+    (package
+      (name "mega-sdk")
+      (version version)
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://github.com/meganz/sdk/")
+                      (commit (string-append "v" version))))
+                (file-name (git-file-name name version))
+                (sha256 (base32
+                          "08qw23rm4rrvlsbcixrncbi5x0qgqkpx74l5f1gq2rgll0ksx8ph"))
+                (modules '((guix build utils)))))
+      (build-system gnu-build-system)
+      (native-inputs `(("autoconf" ,autoconf)
+                       ("automake" ,automake)
+                       ("libtool" ,libtool)))
+      (inputs `(("crypto++" ,crypto++)
+                ("zlib" ,zlib)
+                ("sqlite" ,sqlite)
+                ("openssl" ,openssl)
+                ("c-ares" ,c-ares)
+                ("curl" ,curl)
+                ("freeimage" ,freeimage)
+                ("readline" ,readline)
+                ("libsodium" ,libsodium)))
+      (arguments `(#:tests? #f))
+      (home-page "https://mega.nz/sdk")
+      (synopsis "SDK for the MEGA service, offered by MEGA Limited")
+      (description "A low-level SDK for the MEGA service which powers the
+file-sharing site.  This package provides two executables:
+@itemize
+@item megacli: a command-line tool that allows usage of all SDK features
+@item megasimplesync: a command line tool that allows usage of the
+synchronization engine
+@end itemize")
+      (license license:bsd-2))))




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-02  6:32 ` [bug#52238] [PATCH] gnu: Add MEGA SDK Jaft
@ 2021-12-06 19:52   ` Liliana Marie Prikler
  2021-12-17 22:30     ` Jaft
  0 siblings, 1 reply; 8+ messages in thread
From: Liliana Marie Prikler @ 2021-12-06 19:52 UTC (permalink / raw)
  To: Jaft, 52238

Am Donnerstag, den 02.12.2021, 06:32 +0000 schrieb Jaft:
> * gnu/packages/mega.scm (mega-sdk):Add MEGA SDK
Should be "New variable."

> The SDK is a dependency of MEGAsync so I thought to make a new file
> since there's multiple packages that are MEGA related and then I
> discovered that the megacmd package exists; is it better for this to
> be placed in sync.scm, next to megacmd?
Sync is good.  If existing Mega packages use the SDK, try to unbundle
them.

> ---
I don't know if I told you that yet, but comments ought to go below
this line.

> +(define-public mega-sdk
> +=C2=A0 (let ([version "3.9.10"])
> +=C2=A0=C2=A0=C2=A0 (package
> +=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 (name "mega-sdk")
I hate you too, Outlook.

> +(define-public mega-sdk
> +  (let ([version "3.9.10"])
Guile is not Racket, we use uniform brackets.
> +    (package
> +      (name "mega-sdk")
> +      (version version)
There's no reason to let-bind version if you're just going to assign it
here anyway.
> +      (source (origin
> +                (method git-fetch)
> +                (uri (git-reference
> +                      (url "https://github.com/meganz/sdk/")
> +                      (commit (string-append "v" version))))
> +                (file-name (git-file-name name version))
> +                (sha256 (base32
> +                         
> "08qw23rm4rrvlsbcixrncbi5x0qgqkpx74l5f1gq2rgll0ksx8ph"))
> +                (modules '((guix build utils)))))
> +      (build-system gnu-build-system)
> +      (native-inputs `(("autoconf" ,autoconf)
> +                       ("automake" ,automake)
> +                       ("libtool" ,libtool)))
> +      (inputs `(("crypto++" ,crypto++)
> +                ("zlib" ,zlib)
> +                ("sqlite" ,sqlite)
> +                ("openssl" ,openssl)
> +                ("c-ares" ,c-ares)
> +                ("curl" ,curl)
> +                ("freeimage" ,freeimage)
> +                ("readline" ,readline)
> +                ("libsodium" ,libsodium)))
> +      (arguments `(#:tests? #f))
Never leave #:tests? #f uncommented.
> +      (home-page "https://mega.nz/sdk")
> +      (synopsis "SDK for the MEGA service, offered by MEGA Limited")
Sponsored by RAID: Shadow Legends.
> +      (description "A low-level SDK for the MEGA service which
> powers the
> +file-sharing site.  This package provides two executables:
> +@itemize
> +@item megacli: a command-line tool that allows usage of all SDK
> features
> +@item megasimplesync: a command line tool that allows usage of the
> +synchronization engine
> +@end itemize")
> +      (license license:bsd-2))))
Given the megacli command, what's the relation to existing MEGA
packages, particularly megacmd?

Cheers





^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-06 19:52   ` Liliana Marie Prikler
@ 2021-12-17 22:30     ` Jaft
  2021-12-17 23:22       ` Liliana Marie Prikler
  0 siblings, 1 reply; 8+ messages in thread
From: Jaft @ 2021-12-17 22:30 UTC (permalink / raw)
  To: 52238@debbugs.gnu.org, Liliana Marie Prikler

[-- Attachment #1: Type: text/plain, Size: 2158 bytes --]

> On Monday, December 6, 2021, 01:53:09 PM CST, Liliana Marie Prikler <liliana.prikler@gmail.com> wrote: 
>
>
>
>
>
> Am Donnerstag, den 02.12.2021, 06:32 +0000 schrieb Jaft:
> > * gnu/packages/mega.scm (mega-sdk):Add MEGA SDK
> Should be "New variable."

Which part should be "New variable"? "* gnu/packages/mega.scm (mega-sdk): New variable"? Or the whole line? "* New variable"?

> > The SDK is a dependency of MEGAsync so I thought to make a new file
> > since there's multiple packages that are MEGA related and then I
> > discovered that the megacmd package exists; is it better for this to
> > be placed in sync.scm, next to megacmd?
> Sync is good.  If existing Mega packages use the SDK, try to unbundle
> them.

Makes sense; megatools doesn't seem to rely on it but megacmd pulls from git recursively since the SDK repo.'s setup as a module for it so I've adjusted that definition to make use of the SDK, now.

> > ---
> I don't know if I told you that yet, but comments ought to go below
> this line.

Mmm, I think you did but I must've misunderstood as I thought you were saying the opposite; noted and I'll do it the other way, going forward.

> > +    (package
> > +      (name "mega-sdk")
> > +      (version version)
> There's no reason to let-bind version if you're just going to assign it
> here anyway.

It hadn't been clear to me that the macro functions in that fashion; I've removed the use of let.

> > +      (arguments `(#:tests? #f))
> Never leave #:tests? #f uncommented.

Makes sense; that's been revised.

> > +      (home-page "https://mega.nz/sdk")
> > +      (synopsis "SDK for the MEGA service, offered by MEGA Limited")
> Sponsored by RAID: Shadow Legends.

I don't understand what this is communicating.

> Given the megacli command, what's the relation to existing MEGA
> packages, particularly megacmd?
>
> Cheers

Noted above (and addressed in the new patch).

It seems like I'll likely have to make further changes but I've attached what I have for the patch, thus far, just to keep track of what changes have been made.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mega-sdk.patch --]
[-- Type: text/x-patch, Size: 2814 bytes --]

* gnu/packages/sync.scm (mega-sdk): Add MEGA SDK
---
gnu/packages/sync.scm | 44 ++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 42 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index ce815ed5c7..064e68c431 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -213,6 +213,46 @@ (define-public nextcloud-client
                    license:lgpl2.1+  ; qtokenizer
                    license:gpl2+))))
 
+(define-public mega-sdk
+  (package
+    (name "mega-sdk")
+    (version "3.9.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/meganz/sdk/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256 (base32
+                       "08qw23rm4rrvlsbcixrncbi5x0qgqkpx74l5f1gq2rgll0ksx8ph"))
+              (modules '((guix build utils)))))
+    (build-system gnu-build-system)
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("libtool" ,libtool)))
+    (inputs `(("c-ares" ,c-ares)
+              ("crypto++" ,crypto++)
+              ("curl" ,curl)
+              ("freeimage" ,freeimage)
+              ("libsodium" ,libsodium)
+              ("openssl" ,openssl)
+              ("readline" ,readline)
+              ("sqlite" ,sqlite)
+              ("zlib" ,zlib)))
+    ;; XXX: Disabling tests because they depend on libgtest.la from googletest,
+    ;; which is not installed for unclear reasons.
+    (arguments `(#:tests? #f))
+    (home-page "https://mega.nz/sdk")
+    (synopsis "SDK for the MEGA service, offered by MEGA Limited")
+    (description "A low-level SDK for the MEGA service which powers the
+file-sharing site.  This package provides two executables:
+@itemize
+@item megacli: a command-line tool that allows usage of all SDK features
+@item megasimplesync: a command line tool that allows usage of the
+synchronization engine
+@end itemize")
+    (license license:bsd-2)))
+
 (define-public megacmd
   (package
     (name "megacmd")
@@ -222,8 +262,7 @@ (define-public megacmd
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/meganz/MEGAcmd")
-              (commit (string-append version "_Linux"))
-              (recursive? #t)))
+              (commit (string-append version "_Linux"))))
         (sha256
          (base32
           "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"))
@@ -242,6 +281,7 @@ (define-public megacmd
        ("curl" ,curl)
        ("freeimage" ,freeimage)
        ("gtest" ,googletest)
+       ("mega-sdk" ,mega-sdk)
        ("openssl" ,openssl)
        ("pcre" ,pcre)
        ("readline" ,readline)

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-17 22:30     ` Jaft
@ 2021-12-17 23:22       ` Liliana Marie Prikler
  2021-12-18  5:14         ` Jaft
  0 siblings, 1 reply; 8+ messages in thread
From: Liliana Marie Prikler @ 2021-12-17 23:22 UTC (permalink / raw)
  To: Jaft, 52238@debbugs.gnu.org

Hi,

Am Freitag, dem 17.12.2021 um 22:30 +0000 schrieb Jaft:
> 
> >  > +      (home-page "https://mega.nz/sdk")
> >  > +      (synopsis "SDK for the MEGA service, offered by MEGA
> > Limited")
> >  Sponsored by RAID: Shadow Legends.
> 
> I don't understand what this is communicating.
The joke is that you make it sound like and advertisement.

> +    (native-inputs `(("autoconf" ,autoconf)
> +                     ("automake" ,automake)
> +                     ("libtool" ,libtool)))
> +    (inputs `(("c-ares" ,c-ares)
> +              ("crypto++" ,crypto++)
> +              ("curl" ,curl)
> +              ("freeimage" ,freeimage)
> +              ("libsodium" ,libsodium)
> +              ("openssl" ,openssl)
> +              ("readline" ,readline)
> +              ("sqlite" ,sqlite)
> +              ("zlib" ,zlib)))
Since core-update's been merged now, try to use new-style inputs.

> +    ;; XXX: Disabling tests because they depend on libgtest.la from
> googletest,
> +    ;; which is not installed for unclear reasons.
> +    (arguments `(#:tests? #f))
Unclear reasons including googletest not being present in the inputs? 
You probably want to swap out the .la dependency for a .so dependency.

>  (define-public megacmd
>    (package
>      (name "megacmd")
> @@ -222,8 +262,7 @@ (define-public megacmd
>          (method git-fetch)
>          (uri (git-reference
>                (url "https://github.com/meganz/MEGAcmd")
> -              (commit (string-append version "_Linux"))
> -              (recursive? #t)))
> +              (commit (string-append version "_Linux"))))
>          (sha256
>           (base32
>            "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"))
> @@ -242,6 +281,7 @@ (define-public megacmd
>         ("curl" ,curl)
>         ("freeimage" ,freeimage)
>         ("gtest" ,googletest)
> +       ("mega-sdk" ,mega-sdk)
>         ("openssl" ,openssl)
>         ("pcre" ,pcre)
>         ("readline" ,readline)
Pardon me if I was unclear, but this would be done in a separate
commit.  But thanks anyway for confirming that it'd be easily
swappable.

Cheers
> 




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-17 23:22       ` Liliana Marie Prikler
@ 2021-12-18  5:14         ` Jaft
  2021-12-18  7:47           ` Liliana Marie Prikler
  0 siblings, 1 reply; 8+ messages in thread
From: Jaft @ 2021-12-18  5:14 UTC (permalink / raw)
  To: 52238@debbugs.gnu.org, Liliana Marie Prikler

> > +    ;; XXX: Disabling tests because they depend on libgtest.la from
> > googletest,
> > +    ;; which is not installed for unclear reasons.
> > +    (arguments `(#:tests? #f))
> Unclear reasons including googletest not being present in the inputs? 
> You probably want to swap out the .la dependency for a .so dependency.

Hmm; I thought it was for the same reasons that tests had been disabled for megacmd but, taking another look at it, it seems I'm misremembering from the last time I worked on this.

It says it's failing because the MEGA_EMAIL and MEGA_PWD environment variables aren't set; from what I can tell, it uses those to test whether it can interact with a MEGA account appropriately. As that'd require requests to the internet, I'd expect the tests to fail in the end, still; is that a reasonable reason to disable them or should I try some other course of action?

> >  (define-public megacmd
> >    (package
> >      (name "megacmd")
> > @@ -222,8 +262,7 @@ (define-public megacmd
> >          (method git-fetch)
> >          (uri (git-reference
> >                (url "https://github.com/meganz/MEGAcmd")
> > -              (commit (string-append version "_Linux"))
> > -              (recursive? #t)))
> > +              (commit (string-append version "_Linux"))))
> >          (sha256
> >          (base32
> >            "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"))
> > @@ -242,6 +281,7 @@ (define-public megacmd
> >        ("curl" ,curl)
> >        ("freeimage" ,freeimage)
> >        ("gtest" ,googletest)
> > +      ("mega-sdk" ,mega-sdk)
> >        ("openssl" ,openssl)
> >        ("pcre" ,pcre)
> >        ("readline" ,readline)
> Pardon me if I was unclear, but this would be done in a separate
> commit.  But thanks anyway for confirming that it'd be easily
> swappable.

Gotcha; because I'm unsure, how should I do that? Should I just attach two separate patches? Or should I open a separate ticket for the megacmd update (with its own separate patch, of course)?




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-18  5:14         ` Jaft
@ 2021-12-18  7:47           ` Liliana Marie Prikler
  2021-12-20  1:58             ` Jaft
  0 siblings, 1 reply; 8+ messages in thread
From: Liliana Marie Prikler @ 2021-12-18  7:47 UTC (permalink / raw)
  To: Jaft, 52238@debbugs.gnu.org

Hi Jaft,

Am Samstag, dem 18.12.2021 um 05:14 +0000 schrieb Jaft:
> >  > +    ;; XXX: Disabling tests because they depend on libgtest.la
> > from
> >  > googletest,
> >  > +    ;; which is not installed for unclear reasons.
> >  > +    (arguments `(#:tests? #f))
> >  Unclear reasons including googletest not being present in the
> > inputs? 
> >  You probably want to swap out the .la dependency for a .so
> > dependency.
> 
> Hmm; I thought it was for the same reasons that tests had been
> disabled for megacmd but, taking another look at it, it seems I'm
> misremembering from the last time I worked on this.
> 
> It says it's failing because the MEGA_EMAIL and MEGA_PWD environment
> variables aren't set; from what I can tell, it uses those to test
> whether it can interact with a MEGA account appropriately. As that'd
> require requests to the internet, I'd expect the tests to fail in the
> end, still; is that a reasonable reason to disable them or should I
> try some other course of action?
If the entire suite requires internet access, then yeah, that's a good
case for #:tests? #f.  If it's just certain test cases/groups, then
we'd rather go for disabling those.

> >  >  (define-public megacmd
> >  >    (package
> >  >      (name "megacmd")
> >  > @@ -222,8 +262,7 @@ (define-public megacmd
> >  >          (method git-fetch)
> >  >          (uri (git-reference
> >  >                (url "https://github.com/meganz/MEGAcmd")
> >  > -              (commit (string-append version "_Linux"))
> >  > -              (recursive? #t)))
> >  > +              (commit (string-append version "_Linux"))))
> >  >          (sha256
> >  >          (base32
> >  >           
> > "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"))
> >  > @@ -242,6 +281,7 @@ (define-public megacmd
> >  >        ("curl" ,curl)
> >  >        ("freeimage" ,freeimage)
> >  >        ("gtest" ,googletest)
> >  > +      ("mega-sdk" ,mega-sdk)
> >  >        ("openssl" ,openssl)
> >  >        ("pcre" ,pcre)
> >  >        ("readline" ,readline)
> >  Pardon me if I was unclear, but this would be done in a separate
> >  commit.  But thanks anyway for confirming that it'd be easily
> >  swappable.
> 
> Gotcha; because I'm unsure, how should I do that? Should I just
> attach two separate patches? Or should I open a separate ticket for
> the megacmd update (with its own separate patch, of course)?
You can send two patches as attachments, that's completely fine with
me.  The typical Guix approach would however be to set up git send-
email and invoke it like 

  $ git send-email --to=BUGNUMBER@debugs.gnu.org [--cc=REVIEWER ...] \ 
                  [--in-reply-to=MSGID] [--reroll-count N] PATCH ...

That's probably a lot to take in at once, but once you get the hang out
of it, it's actually quite easy.  You can also use `git format-patch`
to prepare the emails with the arguments above and then send them by a
separate command.  In any case, they go to a singular BUGNUMBER, in
this case 52238.

Cheers




^ permalink raw reply	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-18  7:47           ` Liliana Marie Prikler
@ 2021-12-20  1:58             ` Jaft
  2021-12-20 20:08               ` Liliana Marie Prikler
  0 siblings, 1 reply; 8+ messages in thread
From: Jaft @ 2021-12-20  1:58 UTC (permalink / raw)
  To: 52238@debbugs.gnu.org, Liliana Marie Prikler

[-- Attachment #1: Type: text/plain, Size: 3978 bytes --]

> On Saturday, December 18, 2021, 01:47:47 AM CST, Liliana Marie Prikler <liliana.prikler@gmail.com> wrote: 
>
>
>
>
>
> Hi Jaft,
>
> Am Samstag, dem 18.12.2021 um 05:14 +0000 schrieb Jaft:
> > >  > +    ;; XXX: Disabling tests because they depend on libgtest.la
> > > from
> > >  > googletest,
> > >  > +    ;; which is not installed for unclear reasons.
> > >  > +    (arguments `(#:tests? #f))
> > >  Unclear reasons including googletest not being present in the
> > > inputs? 
> > >  You probably want to swap out the .la dependency for a .so
> > > dependency.
> > 
> > Hmm; I thought it was for the same reasons that tests had been
> > disabled for megacmd but, taking another look at it, it seems I'm
> > misremembering from the last time I worked on this.
> > 
> > It says it's failing because the MEGA_EMAIL and MEGA_PWD environment
> > variables aren't set; from what I can tell, it uses those to test
> > whether it can interact with a MEGA account appropriately. As that'd
> > require requests to the internet, I'd expect the tests to fail in the
> > end, still; is that a reasonable reason to disable them or should I
> > try some other course of action?
> If the entire suite requires internet access, then yeah, that's a good
> case for #:tests? #f.  If it's just certain test cases/groups, then
> we'd rather go for disabling those.

Makes sense; it seems like it's present in the integration and tool_purge_account tests while the third group of tests – unit – seems to not rely on those. I adjusted the files to remove those two sets of tests and things built alright.

> > >  >  (define-public megacmd
> > >  >    (package
> > >  >      (name "megacmd")
> > >  > @@ -222,8 +262,7 @@ (define-public megacmd
> > >  >          (method git-fetch)
> > >  >          (uri (git-reference
> > >  >                (url "https://github.com/meganz/MEGAcmd")
> > >  > -              (commit (string-append version "_Linux"))
> > >  > -              (recursive? #t)))
> > >  > +              (commit (string-append version "_Linux"))))
> > >  >          (sha256
> > >  >          (base32
> > >  >           
> > > "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"))
> > >  > @@ -242,6 +281,7 @@ (define-public megacmd
> > >  >        ("curl" ,curl)
> > >  >        ("freeimage" ,freeimage)
> > >  >        ("gtest" ,googletest)
> > >  > +      ("mega-sdk" ,mega-sdk)
> > >  >        ("openssl" ,openssl)
> > >  >        ("pcre" ,pcre)
> > >  >        ("readline" ,readline)
> > >  Pardon me if I was unclear, but this would be done in a separate
> > >  commit.  But thanks anyway for confirming that it'd be easily
> > >  swappable.
> > 
> > Gotcha; because I'm unsure, how should I do that? Should I just
> > attach two separate patches? Or should I open a separate ticket for
> > the megacmd update (with its own separate patch, of course)?
> You can send two patches as attachments, that's completely fine with
> me.  The typical Guix approach would however be to set up git send-
> email and invoke it like 
>
>   $ git send-email --to=BUGNUMBER@debugs.gnu.org [--cc=REVIEWER ...] \ 
>                   [--in-reply-to=MSGID] [--reroll-count N] PATCH ...
>
> That's probably a lot to take in at once, but once you get the hang out
> of it, it's actually quite easy.  You can also use `git format-patch`
> to prepare the emails with the arguments above and then send them by a
> separate command.  In any case, they go to a singular BUGNUMBER, in
> this case 52238.
>
> Cheers

Gotcha. This is really useful and helpful; thanks a ton for walking through it.

I've attached two patches, one for each package; the SDK one removes the troublesome tests so the rest can be ran.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: mega-sdk2.patch --]
[-- Type: text/x-patch, Size: 3360 bytes --]

* gnu/packages/sync.scm (mega-sdk): Add MEGA SDK
---
gnu/packages/sync.scm | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 62 insertions(+)
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index ce815ed5c7..f5eb88fa41 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -213,6 +213,68 @@ (define-public nextcloud-client
                    license:lgpl2.1+  ; qtokenizer
                    license:gpl2+))))
 
+(define-public mega-sdk
+  (package
+    (name "mega-sdk")
+    (version "3.9.10")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/meganz/sdk/")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256 (base32
+                       "08qw23rm4rrvlsbcixrncbi5x0qgqkpx74l5f1gq2rgll0ksx8ph"))
+              (modules '((guix build utils)))))
+    (build-system gnu-build-system)
+    (native-inputs `(("autoconf" ,autoconf)
+                     ("automake" ,automake)
+                     ("libtool" ,libtool)))
+    (inputs `(("c-ares" ,c-ares)
+              ("crypto++" ,crypto++)
+              ("curl" ,curl)
+              ("freeimage" ,freeimage)
+              ("libsodium" ,libsodium)
+              ("openssl" ,openssl)
+              ("readline" ,readline)
+              ("sqlite" ,sqlite)
+              ("zlib" ,zlib)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'bootstrap 'remove-tests-that-require-a-mega-account
+           (lambda _
+             (substitute* "tests/include.am"
+               (("TESTS = tests/test_unit .+") "TESTS = tests/test_unit")
+               ;; tool_purge_account related
+               (("tests_tool_purge_account_SOURCES = \\\\") "")
+               (("    tests/tool/purge_account\\.cpp") "")
+               (("tests_tool_purge_account_CXXFLAGS = .+") "")
+               (("tests_tool_purge_account_LDADD = .+") "")
+               ;; test_integration related
+               (("tests_test_integration_SOURCES = \\\\") "")
+               (("    tests/integration/main\\.cpp \\\\") "")
+               (("    tests/integration/SdkTest_test\\.cpp \\\\") "")
+               (("    tests/integration/Sync_test\\.cpp") "")
+               (("tests_test_integration_CXXFLAGS = .+") "")
+               (("tests_test_integration_LDADD = .+") ""))
+
+             (substitute* "contrib/QtCreator/MEGAtests/MEGAtests.pro"
+               (("SUBDIRS [+]= MEGAtest_integration") "")
+               (("SUBDIRS [+]= MEGAtest_purge_account") "")
+               (("    SUBDIRS [+]= MEGAtest_integration_fsevents_loader") "")
+               (("    MEGAtest_integration_fsevents_loader\\.depends = .+") "")))))))
+    (home-page "https://mega.nz/sdk")
+    (synopsis "SDK for the MEGA service, offered by MEGA Limited")
+    (description "A low-level SDK for the MEGA service which powers the
+file-sharing site.  This package provides two executables:
+@itemize
+@item megacli: a command-line tool that allows usage of all SDK features
+@item megasimplesync: a command line tool that allows usage of the
+synchronization engine
+@end itemize")
+    (license license:bsd-2)))
+
 (define-public megacmd
   (package
     (name "megacmd")

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #3: megacmd.patch --]
[-- Type: text/x-patch, Size: 934 bytes --]

* gnu/packages/sync.scm (megacmd): Use MEGA SDK
---
gnu/packages/sync.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gnu/packages/sync.scm b/gnu/packages/sync.scm
index ce815ed5c7..1c75c3ca53 100644
--- a/gnu/packages/sync.scm
+++ b/gnu/packages/sync.scm
@@ -222,8 +222,7 @@ (define-public megacmd
         (method git-fetch)
         (uri (git-reference
               (url "https://github.com/meganz/MEGAcmd")
-              (commit (string-append version "_Linux"))
-              (recursive? #t)))
+              (commit (string-append version "_Linux"))))
         (sha256
          (base32
           "004j8m3xs6slx03g2g6wzr97myl2v3zc09wxnfar5c62a625pd53"))
@@ -242,6 +241,7 @@ (define-public megacmd
        ("curl" ,curl)
        ("freeimage" ,freeimage)
        ("gtest" ,googletest)
+       ("mega-sdk" ,mega-sdk)
        ("openssl" ,openssl)
        ("pcre" ,pcre)
        ("readline" ,readline)

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [bug#52238] [PATCH] gnu: Add MEGA SDK
  2021-12-20  1:58             ` Jaft
@ 2021-12-20 20:08               ` Liliana Marie Prikler
  0 siblings, 0 replies; 8+ messages in thread
From: Liliana Marie Prikler @ 2021-12-20 20:08 UTC (permalink / raw)
  To: Jaft, 52238@debbugs.gnu.org

Hi,

Am Montag, dem 20.12.2021 um 01:58 +0000 schrieb Jaft:
> Makes sense; it seems like it's present in the integration and
> tool_purge_account tests while the third group of tests – unit –
> seems to not rely on those. I adjusted the files to remove those two
> sets of tests and things built alright.
LGTM, albeit somewhat overkill.  Wouldn't it suffice to simply set
TESTS and possibly dropping those extra subdirectories?
> Gotcha. This is really useful and helpful; thanks a ton for walking
> through it.
> 
> I've attached two patches, one for each package; the SDK one removes
> the troublesome tests so the rest can be ran.
By patch, I do mean patches in mbox format, not mere `git diff`s. 
Don't strip mail headers; those are important.

Cheers




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-12-20 20:19 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1136809883.7440498.1638426746315.ref@mail.yahoo.com>
2021-12-02  6:32 ` [bug#52238] [PATCH] gnu: Add MEGA SDK Jaft
2021-12-06 19:52   ` Liliana Marie Prikler
2021-12-17 22:30     ` Jaft
2021-12-17 23:22       ` Liliana Marie Prikler
2021-12-18  5:14         ` Jaft
2021-12-18  7:47           ` Liliana Marie Prikler
2021-12-20  1:58             ` Jaft
2021-12-20 20:08               ` Liliana Marie Prikler

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.