diff mbox series

[bug#51024] gnu: veracrypt: New package

Message ID 20211005065418.29878-1-ryan@arctype.co
State New
Headers show
Series [bug#51024] gnu: veracrypt: New package | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Ryan Sundberg Oct. 5, 2021, 6:54 a.m. UTC
Adds a package for the Veracrypt disk encrption program

* gnu/packages/crypto.scm: Add veracrypt
---
 gnu/packages/crypto.scm | 49 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

Comments

M Oct. 5, 2021, 7:43 a.m. UTC | #1
Ryan Sundberg via Guix-patches via schreef op ma 04-10-2021 om 23:54 [-0700]:
> Adds a package for the Veracrypt disk encrption program
> 
> * gnu/packages/crypto.scm: Add veracrypt
> ---
>  gnu/packages/crypto.scm | 49 +++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 49 insertions(+)
> 
> diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
> index af1412c44e..42c9916582 100644
> --- a/gnu/packages/crypto.scm
> +++ b/gnu/packages/crypto.scm
> @@ -43,6 +43,7 @@
>    #:use-module (gnu packages admin)
>    #:use-module (gnu packages aidc)
>    #:use-module (gnu packages attr)
> +  #:use-module (gnu packages assembly)
>    #:use-module (gnu packages autotools)
>    #:use-module (gnu packages boost)
>    #:use-module (gnu packages check)
> @@ -80,6 +81,7 @@
>    #:use-module (gnu packages tcl)
>    #:use-module (gnu packages tls)
>    #:use-module (gnu packages version-control)
> +  #:use-module (gnu packages wxwidgets)
>    #:use-module (gnu packages xml)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
> @@ -1462,3 +1464,50 @@ via FUSE without root permissions.  It is similar to EncFS, but provides
>  additional security and privacy measures such as hiding file sizes and directory
>  structure.  However CryFS is not considered stable yet by the developers.")
>      (license license:lgpl3+)))
> +
> +(define-public veracrypt
> +  (package
> +    (name "veracrypt")
> +    (version "1.24")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append
> +             "https://www.veracrypt.fr/code/VeraCrypt/snapshot/VeraCrypt_"
> +             version ".tar.gz"))

On <https://veracrypt.fr/en/Home.html>, I see there's a version
VeraCrypt 1.24-Update8 with bug fixes.

> +       (sha256
> +        (base32 "0nn44x7ldkblgkndrd726nkil5bsdaki7j11xi21pr1gjrp7kq2g"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +      '(#:phases
> +        (modify-phases %standard-phases
> +          (delete 'configure)
> +          (add-before 'build 'build-env
> +            (lambda* (#:key outputs #:allow-other-keys)
> +              (chdir "src")
> +              (setenv "CC" "gcc")

I'm surprised (setenv "CC" "gcc") was necessary, because src/Makefile
sets "export CC ?= gcc".

Use (cc-for-target) instead of "gcc" to make veracrypt cross-compilable.
The makefile uses "g++" in some places, shis might need to be (g++-for-target)
instead.

The makefile adds -maes, -msse2 and -msse3 on i*86 and x86_64.  You might
want to check these are normally available on all i686 CPUs.

The makefile calls "uname -m" to determine the architecture that's it being
compiled for, while that command determines the architecture of the build
machine.

There's a bunch of files in src/Boot/EFI that look like binary files.
These need to be removed or built from source.


> +              (setenv "DESTDIR" (assoc-ref outputs "out"))
> +              #t))
> +          (add-after 'install 'fix-install
> +            (lambda* (#:key outputs version #:allow-other-keys)
> +              (let ((out (assoc-ref outputs "out")))
> +                (install-file (string-append out "/usr/bin/veracrypt") (string-append out "/bin"))
> +                (copy-recursively (string-append out "/usr/share/applications") (string-append out "/share/applications"))
> +                (copy-recursively (string-append out "/usr/share/pixmaps") (string-append out "/share/pixmaps"))
> +                (copy-recursively (string-append out "/usr/share/doc/veracrypt/HTML") (string-append out "/share/doc/veracrypt-1.24/HTML"))
> +                (delete-file-recursively (string-append out "/usr"))))))
> +        ; Veracrypt only has a test suite for Windows.
> +        #:tests? #f))
> +    (native-inputs
> +     `(("pkg-config" ,pkg-config)
> +       ("yasm" ,yasm)))
> +    (inputs
> +      `(("fuse" ,fuse)
> +        ("wxwidgets" ,wxwidgets)))
> +    (propagated-inputs
> +      `(("lvm2" ,lvm2)))
> +    (home-page "https://www.veracrypt.fr/")
> +    (synopsis "Disk encryption software")
> +    (description "VeraCrypt is a free open source disk encryption software
> +based on TrueCrypt 7.1a.")
> +    (license license:asl2.0)))

src/Boot/Bios.h has a line ‘ Copyright (c) 2008-2012 TrueCrypt Developers Association and which is governed
 by the TrueCrypt License 3.0.’
That license is non-free according to http://directory.fsf.org/wiki/License:TrueCrypt.
That line appears in other source files as well.


Greetings,
Maxime.
Steven Roose Sept. 5, 2023, 8:48 a.m. UTC | #2
Any update on this? I'm interested in this package..

I see VeraCrypt atm is at version 1.25.9, so this package definition is 
one version behind.
diff mbox series

Patch

diff --git a/gnu/packages/crypto.scm b/gnu/packages/crypto.scm
index af1412c44e..42c9916582 100644
--- a/gnu/packages/crypto.scm
+++ b/gnu/packages/crypto.scm
@@ -43,6 +43,7 @@ 
   #:use-module (gnu packages admin)
   #:use-module (gnu packages aidc)
   #:use-module (gnu packages attr)
+  #:use-module (gnu packages assembly)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
@@ -80,6 +81,7 @@ 
   #:use-module (gnu packages tcl)
   #:use-module (gnu packages tls)
   #:use-module (gnu packages version-control)
+  #:use-module (gnu packages wxwidgets)
   #:use-module (gnu packages xml)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
@@ -1462,3 +1464,50 @@  via FUSE without root permissions.  It is similar to EncFS, but provides
 additional security and privacy measures such as hiding file sizes and directory
 structure.  However CryFS is not considered stable yet by the developers.")
     (license license:lgpl3+)))
+
+(define-public veracrypt
+  (package
+    (name "veracrypt")
+    (version "1.24")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://www.veracrypt.fr/code/VeraCrypt/snapshot/VeraCrypt_"
+             version ".tar.gz"))
+       (sha256
+        (base32 "0nn44x7ldkblgkndrd726nkil5bsdaki7j11xi21pr1gjrp7kq2g"))))
+    (build-system gnu-build-system)
+    (arguments
+      '(#:phases
+        (modify-phases %standard-phases
+          (delete 'configure)
+          (add-before 'build 'build-env
+            (lambda* (#:key outputs #:allow-other-keys)
+              (chdir "src")
+              (setenv "CC" "gcc")
+              (setenv "DESTDIR" (assoc-ref outputs "out"))
+              #t))
+          (add-after 'install 'fix-install
+            (lambda* (#:key outputs version #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (install-file (string-append out "/usr/bin/veracrypt") (string-append out "/bin"))
+                (copy-recursively (string-append out "/usr/share/applications") (string-append out "/share/applications"))
+                (copy-recursively (string-append out "/usr/share/pixmaps") (string-append out "/share/pixmaps"))
+                (copy-recursively (string-append out "/usr/share/doc/veracrypt/HTML") (string-append out "/share/doc/veracrypt-1.24/HTML"))
+                (delete-file-recursively (string-append out "/usr"))))))
+        ; Veracrypt only has a test suite for Windows.
+        #:tests? #f))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("yasm" ,yasm)))
+    (inputs
+      `(("fuse" ,fuse)
+        ("wxwidgets" ,wxwidgets)))
+    (propagated-inputs
+      `(("lvm2" ,lvm2)))
+    (home-page "https://www.veracrypt.fr/")
+    (synopsis "Disk encryption software")
+    (description "VeraCrypt is a free open source disk encryption software
+based on TrueCrypt 7.1a.")
+    (license license:asl2.0)))