From: Jaft <jaft.r@outlook.com>
To: "52238@debbugs.gnu.org" <52238@debbugs.gnu.org>,
Liliana Marie Prikler <liliana.prikler@gmail.com>
Subject: [bug#52238] [PATCH] gnu: Add MEGA SDK
Date: Mon, 20 Dec 2021 01:58:08 +0000 (UTC) [thread overview]
Message-ID: <DM6PR19MB2460B6C6C5A1E4B1E98CDEAE997B9@DM6PR19MB2460.namprd19.prod.outlook.com> (raw)
In-Reply-To: <7ccce938f59f1c712e13a30601591a516d466338.camel@gmail.com>
[-- 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)
next prev parent reply other threads:[~2021-12-20 2:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[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 [this message]
2021-12-20 20:08 ` Liliana Marie Prikler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DM6PR19MB2460B6C6C5A1E4B1E98CDEAE997B9@DM6PR19MB2460.namprd19.prod.outlook.com \
--to=jaft.r@outlook.com \
--cc=52238@debbugs.gnu.org \
--cc=liliana.prikler@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.