unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
@ 2018-06-06  9:47 Pierre Neidhardt
  2018-06-14 14:53 ` Kei Kebreau
  0 siblings, 1 reply; 9+ messages in thread
From: Pierre Neidhardt @ 2018-06-06  9:47 UTC (permalink / raw)
  To: 31733

* gnu/packages/crypto.scm (encfs): Update to 1.9.5.
---
 gnu/packages/crypto.scm | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index f96fe0490..4707355f3 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -216,7 +216,7 @@ communication.")
 (define-public encfs
   (package
     (name "encfs")
-    (version "1.9.1")
+    (version "1.9.5")
     (source
      (origin
        (method url-fetch)
@@ -225,7 +225,7 @@ communication.")
                        version "/encfs-" version ".tar.gz"))
        (sha256
         (base32
-         "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
+         "0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
        (modules '((guix build utils)))
        ;; Remove bundled dependencies in favour of proper inputs.
        (snippet '(for-each delete-file-recursively
@@ -244,7 +244,12 @@ communication.")
        ("openssl" ,openssl)
        ("tinyxml2" ,tinyxml2)))
     (arguments
-     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")))
+     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'make-unittests
+           (lambda _
+             (zero? (system* "make" "unittests")))))))
     (home-page "https://vgough.github.io/encfs")
     (synopsis "Encrypted virtual file system")
     (description
-- 
2.17.0

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-06  9:47 [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5 Pierre Neidhardt
@ 2018-06-14 14:53 ` Kei Kebreau
  2018-06-14 15:04   ` Kei Kebreau
  0 siblings, 1 reply; 9+ messages in thread
From: Kei Kebreau @ 2018-06-14 14:53 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31733

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

Hi Pierre,

> * gnu/packages/crypto.scm (encfs): Update to 1.9.5.

Don't forget to mention the new 'make-unittests' phase!

> ---
>  gnu/packages/crypto.scm | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
> index f96fe0490..4707355f3 100644
> --- a/gnu/packages/crypto.scm
> +++ b/gnu/packages/crypto.scm
> @@ -216,7 +216,7 @@ communication.")
>  (define-public encfs
>    (package
>      (name "encfs")
> -    (version "1.9.1")
> +    (version "1.9.5")
>      (source
>       (origin
>         (method url-fetch)
> @@ -225,7 +225,7 @@ communication.")
>                         version "/encfs-" version ".tar.gz"))
>         (sha256
>          (base32
> -         "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
> +         "0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
>         (modules '((guix build utils)))
>         ;; Remove bundled dependencies in favour of proper inputs.
>         (snippet '(for-each delete-file-recursively
> @@ -244,7 +244,12 @@ communication.")
>         ("openssl" ,openssl)
>         ("tinyxml2" ,tinyxml2)))
>      (arguments
> -     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")))
> +     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-before 'check 'make-unittests
> +           (lambda _
> +             (zero? (system* "make" "unittests")))))))

Any particular reason you decided to use '(zero? (system* ...))' rather
than '(invoke ...)' for this phase? I tried it with 'invoke' and it
worked fine.

>      (home-page "https://vgough.github.io/encfs")
>      (synopsis "Encrypted virtual file system")
>      (description

Other than the above, this patch looks good! :)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-14 14:53 ` Kei Kebreau
@ 2018-06-14 15:04   ` Kei Kebreau
  2018-06-16 14:04     ` Pierre Neidhardt
  0 siblings, 1 reply; 9+ messages in thread
From: Kei Kebreau @ 2018-06-14 15:04 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31733

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

Kei Kebreau <kkebreau@posteo.net> writes:

> Hi Pierre,
>
>> * gnu/packages/crypto.scm (encfs): Update to 1.9.5.
>
> Don't forget to mention the new 'make-unittests' phase!
>
>> ---
>>  gnu/packages/crypto.scm | 11 ++++++++---
>>  1 file changed, 8 insertions(+), 3 deletions(-)
>>
>> diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
>> index f96fe0490..4707355f3 100644
>> --- a/gnu/packages/crypto.scm
>> +++ b/gnu/packages/crypto.scm
>> @@ -216,7 +216,7 @@ communication.")
>>  (define-public encfs
>>    (package
>>      (name "encfs")
>> -    (version "1.9.1")
>> +    (version "1.9.5")
>>      (source
>>       (origin
>>         (method url-fetch)
>> @@ -225,7 +225,7 @@ communication.")
>>                         version "/encfs-" version ".tar.gz"))
>>         (sha256
>>          (base32
>> -         "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
>> +         "0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
>>         (modules '((guix build utils)))
>>         ;; Remove bundled dependencies in favour of proper inputs.
>>         (snippet '(for-each delete-file-recursively
>> @@ -244,7 +244,12 @@ communication.")
>>         ("openssl" ,openssl)
>>         ("tinyxml2" ,tinyxml2)))
>>      (arguments
>> -     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")))
>> +     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
>> +       #:phases
>> +       (modify-phases %standard-phases
>> +         (add-before 'check 'make-unittests
>> +           (lambda _
>> +             (zero? (system* "make" "unittests")))))))
>
> Any particular reason you decided to use '(zero? (system* ...))' rather
> than '(invoke ...)' for this phase? I tried it with 'invoke' and it
> worked fine.
>
>>      (home-page "https://vgough.github.io/encfs")
>>      (synopsis "Encrypted virtual file system")
>>      (description
>
> Other than the above, this patch looks good! :)

Also, do note that the snippet needs to be updated, as bundled libraries
(now including googletest) have moved to the "vendor" subdirectory. Once
you remove the "vendor" subdirectory, you may have to add 'googletest'
from '(gnu packages check)' to the native-inputs.

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-14 15:04   ` Kei Kebreau
@ 2018-06-16 14:04     ` Pierre Neidhardt
  2018-06-16 15:23       ` Kei Kebreau
  0 siblings, 1 reply; 9+ messages in thread
From: Pierre Neidhardt @ 2018-06-16 14:04 UTC (permalink / raw)
  To: Kei Kebreau; +Cc: 31733

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


>> Any particular reason you decided to use '(zero? (system* ...))' rather
>> than '(invoke ...)' for this phase? I tried it with 'invoke' and it
>> worked fine.

I did not know about `invoke' :)
I just found its definition in guix/build/utils.scm.

> Also, do note that the snippet needs to be updated, as bundled libraries
> (now including googletest) have moved to the "vendor" subdirectory. Once
> you remove the "vendor" subdirectory, you may have to add 'googletest'
> from '(gnu packages check)' to the native-inputs.

So the vender directory has 3 dependencies:

- tinyxml which is already used externally, so it's safe to remove the
  embedded version.

- easyloggingpp which is not packaged in Guix I believe.  We need to
  package it first before we can remove it.

- 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.

All things considered, why not sticking to the vendored libraries?

What do you think?

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-16 14:04     ` Pierre Neidhardt
@ 2018-06-16 15:23       ` Kei Kebreau
  2018-06-16 15:44         ` Pierre Neidhardt
  0 siblings, 1 reply; 9+ messages in thread
From: Kei Kebreau @ 2018-06-16 15:23 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31733

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

Pierre Neidhardt <ambrevar@gmail.com> writes:

>>> Any particular reason you decided to use '(zero? (system* ...))' rather
>>> than '(invoke ...)' for this phase? I tried it with 'invoke' and it
>>> worked fine.
>
> I did not know about `invoke' :)
> I just found its definition in guix/build/utils.scm.
>

Well now you know! :)

>> Also, do note that the snippet needs to be updated, as bundled libraries
>> (now including googletest) have moved to the "vendor" subdirectory. Once
>> you remove the "vendor" subdirectory, you may have to add 'googletest'
>> from '(gnu packages check)' to the native-inputs.
>
> So the vender directory has 3 dependencies:
>
> - tinyxml which is already used externally, so it's safe to remove the
>   embedded version.
>
> - easyloggingpp which is not packaged in Guix I believe.  We need to
>   package it first before we can remove it.
>

Observation agrees with both of these.

> - 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?

> All things considered, why not sticking to the vendored libraries?
>

We try to unbundle third-party software in our packages in order to ease
the burden of security maintenance and avoid duplication of work in
general. There are probably other reasons that I can't remember right
now, too.

> What do you think?

This sounds actionable to me!

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-16 15:23       ` Kei Kebreau
@ 2018-06-16 15:44         ` Pierre Neidhardt
  2018-06-16 20:35           ` Kei Kebreau
  0 siblings, 1 reply; 9+ messages in thread
From: Pierre Neidhardt @ 2018-06-16 15:44 UTC (permalink / raw)
  To: Kei Kebreau; +Cc: 31733

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


Kei Kebreau <kkebreau@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!

-- 
Pierre Neidhardt

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-16 15:44         ` Pierre Neidhardt
@ 2018-06-16 20:35           ` Kei Kebreau
  2018-06-17 17:11             ` Pierre Neidhardt
  0 siblings, 1 reply; 9+ messages in thread
From: Kei Kebreau @ 2018-06-16 20:35 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31733


[-- Attachment #1.1: Type: text/plain, Size: 2491 bytes --]

Pierre Neidhardt <ambrevar@gmail.com> writes:

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


[-- Attachment #1.2: 0001-gnu-encfs-Update-to-1.9.5.patch --]
[-- Type: text/plain, Size: 3060 bytes --]

From 52ce45f9ee4961207b14e7b3a2835a1db78501fd Mon Sep 17 00:00:00 2001
From: Pierre Neidhardt <ambrevar@gmail.com>
Date: Wed, 6 Jun 2018 11:47:30 +0200
Subject: [PATCH] gnu: encfs: Update to 1.9.5.

* gnu/packages/crypto.scm (encfs): Update to 1.9.5.

Signed-off-by: Kei Kebreau <kkebreau@posteo.net>
---
 gnu/packages/crypto.scm | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index 105760afa..338db04f5 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -32,6 +32,7 @@
   #:use-module (gnu packages attr)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages cryptsetup)
   #:use-module (gnu packages databases)
@@ -217,7 +218,7 @@ communication.")
 (define-public encfs
   (package
     (name "encfs")
-    (version "1.9.1")
+    (version "1.9.5")
     (source
      (origin
        (method url-fetch)
@@ -226,13 +227,13 @@ communication.")
                        version "/encfs-" version ".tar.gz"))
        (sha256
         (base32
-         "1906254dg5hwljh0h4gyrw09ms3b57dlhjfzhfzffv50yzpkl837"))
+         "0qzxavvv20577bxvly8s7d3y7bqasqclc2mllp0ddfncjm9z02a7"))
        (modules '((guix build utils)))
        ;; Remove bundled dependencies in favour of proper inputs.
        (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))))
     (build-system cmake-build-system)
     (native-inputs
@@ -240,6 +241,7 @@ communication.")
 
        ;; Test dependencies.
        ("expect" ,expect)
+       ("googletest-source" ,(package-source googletest))
        ("perl" ,perl)))
     (inputs
      `(("attr" ,attr)
@@ -247,7 +249,18 @@ communication.")
        ("openssl" ,openssl)
        ("tinyxml2" ,tinyxml2)))
     (arguments
-     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")))
+     `(#:configure-flags (list "-DUSE_INTERNAL_TINYXML=OFF")
+       #: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")))
+         (add-before 'check 'make-unittests
+           (lambda _
+             (invoke "make" "unittests"))))))
     (home-page "https://vgough.github.io/encfs")
     (synopsis "Encrypted virtual file system")
     (description
-- 
2.17.1


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

* [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-16 20:35           ` Kei Kebreau
@ 2018-06-17 17:11             ` Pierre Neidhardt
  2018-06-18  2:01               ` bug#31733: " Kei Kebreau
  0 siblings, 1 reply; 9+ messages in thread
From: Pierre Neidhardt @ 2018-06-17 17:11 UTC (permalink / raw)
  To: Kei Kebreau; +Cc: 31733

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


This last patch looks good to me.
Can we merge it?

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 487 bytes --]

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

* bug#31733: [PATCH] gnu: encfs: Update to 1.9.5.
  2018-06-17 17:11             ` Pierre Neidhardt
@ 2018-06-18  2:01               ` Kei Kebreau
  0 siblings, 0 replies; 9+ messages in thread
From: Kei Kebreau @ 2018-06-18  2:01 UTC (permalink / raw)
  To: Pierre Neidhardt; +Cc: 31733-done

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

Pierre Neidhardt <ambrevar@gmail.com> writes:

> This last patch looks good to me.
> Can we merge it?

Sorry for the delay! I went ahead and pushed the change. As more
dependencies are unbundled, we may update the package definition.

Thanks,
Kei

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

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

end of thread, other threads:[~2018-06-18  2:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-06  9:47 [bug#31733] [PATCH] gnu: encfs: Update to 1.9.5 Pierre Neidhardt
2018-06-14 14:53 ` Kei Kebreau
2018-06-14 15:04   ` Kei Kebreau
2018-06-16 14:04     ` Pierre Neidhardt
2018-06-16 15:23       ` Kei Kebreau
2018-06-16 15:44         ` Pierre Neidhardt
2018-06-16 20:35           ` Kei Kebreau
2018-06-17 17:11             ` Pierre Neidhardt
2018-06-18  2:01               ` bug#31733: " Kei Kebreau

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).