GNU bug report logs - #31733
[PATCH] gnu: encfs: Update to 1.9.5.

Previous Next

Package: guix-patches;

Reported by: Pierre Neidhardt <ambrevar <at> gmail.com>

Date: Wed, 6 Jun 2018 09:48:02 UTC

Severity: normal

Tags: patch

Done: Kei Kebreau <kkebreau <at> posteo.net>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Kei Kebreau <kkebreau <at> posteo.net>
To: Pierre Neidhardt <ambrevar <at> gmail.com>
Cc: 31733 <at> debbugs.gnu.org
Subject: [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
Date: Sat, 16 Jun 2018 16:35:19 -0400
[Message part 1 (text/plain, inline)]
Pierre Neidhardt <ambrevar <at> gmail.com> writes:

> Kei Kebreau <kkebreau <at> posteo.net> writes:
>
>>> - googletest: this one does not have an option in CMakeList.txt to be
>>>   used externally.  So either we report upstream or we patch the
>>>   CMakeList.txt.
>>>
>>
>> I see that while CMakeLists.txt doesn't have an external option to
>> control this, it *does* look for googletest in the vendor
>> directory. Perhaps we can add our own googletest as a native input and
>> remove the bundled googletest and CMakeLists.txt's references to it in a
>> snippet?
>
> I have no experience at all with googletest.  Do you know how, when and
> why to use it?
> If so, could you help me with this process?  Thanks!

I don't have experience with it either, but I did find an interesting
way around the issue in the Guix code. (Usually if I have an issue
packaging something, I try "grepping" around the existing code to see if
someone has already solved a similar problem.) I've attached a patch
(based on yours) that covers the method:

[...]
        (snippet '(begin
                    (for-each delete-file-recursively
-                             (find-files "internal" "^tinyxml2-[0-9]"
-                                         #:directories? #t))
+                             '("vendor/github.com/leethomason/tinyxml2"
+                               "vendor/github.com/google/googletest"))
                    #t))))

Here I just remove the tinyxml2 and googletest directories as discussed.

[...]
        ;; Test dependencies.
        ("expect" ,expect)
+       ("googletest-source" ,(package-source googletest))
        ("perl" ,perl)))
     (inputs
      `(("attr" ,attr)

As seen in the definition for gnucash, the idea is to extract *our*
googletest source code in place of the bundled version. This seems to be
the easiest way to deal with replacing googletest in this case rather
than completely removing it.

[...]
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-googletest
+           (lambda* (#:key inputs #:allow-other-keys)
+             (mkdir-p "vendor/github.com/google/googletest")
+             (invoke "tar" "xvf" (assoc-ref inputs "googletest-source")
+                     "-C" "vendor/github.com/google/googletest"
+                     "--strip-components=1")))

This phase does the extracting bit.

As for the Easylogging++ and google/benchmark replacements, we'd have to
start by packaging them.

Did this help at all?

[0001-gnu-encfs-Update-to-1.9.5.patch (text/plain, attachment)]
[signature.asc (application/pgp-signature, inline)]

This bug report was last modified 6 years and 342 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.