guix-patches
[Top][All Lists]
Advanced

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

[bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.


From: Kei Kebreau
Subject: [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
Date: Sat, 16 Jun 2018 16:35:19 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Pierre Neidhardt <address@hidden> writes:

> Kei Kebreau <address@hidden> 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?

Attachment: 0001-gnu-encfs-Update-to-1.9.5.patch
Description: Text document

Attachment: signature.asc
Description: PGP signature


reply via email to

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