unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#28285] Add heimdall
@ 2017-08-29 21:58 Julien Lepiller
  2017-08-30  8:13 ` Jonathan Brielmaier
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Julien Lepiller @ 2017-08-29 21:58 UTC (permalink / raw)
  To: 28285

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

Hi,

this patch adds heimdall, a tool I just used to flash replicant on my
smartphone :)

[-- Attachment #2: 0001-gnu-Add-heimdall.patch --]
[-- Type: text/x-patch, Size: 2960 bytes --]

From 415b94e8fc61fba9353094a3eceb22bb2a6563b6 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 29 Aug 2017 23:54:16 +0200
Subject: [PATCH] gnu: Add heimdall.

* gnu/packages/android.scm (heimdall): New variable.
---
 gnu/packages/android.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/android.scm b/gnu/packages/android.scm
index be3f50add..93c3281dd 100644
--- a/gnu/packages/android.scm
+++ b/gnu/packages/android.scm
@@ -23,12 +23,16 @@
 (define-module (gnu packages android)
   #:use-module (guix packages)
   #:use-module (guix git-download)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages libusb)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages ssh)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages tls))
@@ -399,3 +403,39 @@ parts of the development workflow.  Repo is not meant to replace Git, only to
 make it easier to work with Git.  The repo command is an executable Python
 script that you can put anywhere in your path.")
     (license license:asl2.0)))
+
+(define-public heimdall
+  (package
+    (name "heimdall")
+    (version "1.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/Benjamin-Dobell/Heimdall"
+                                  "/archive/v" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y7gwg3lipyp2zcysm2vid1qg5nwin9bxbvgzs28lz2rya4fz6sq"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (copy-file "bin/heimdall" (string-append bin "/heimdall"))
+               (copy-file "bin/heimdall-frontend"
+                          (string-append bin "/heimdall-frontend"))))))))
+    (inputs
+     `(("libusb" ,libusb)
+       ("qt" ,qt)
+       ("zlib" ,zlib)))
+    (home-page "http://glassechidna.com.au/heimdall/")
+    (synopsis "Flash firmware onto Samsung mobile devices")
+    (description "Heimdall is a tool suite used to flash firmware (aka ROMs)
+onto Samsung mobile devices.  Heimdall connects to a mobile device over USB and
+interacts with low-level software running on the device, known as Loke.  Loke
+and Heimdall communicate via the custom Samsung-developed protocol typically
+referred to as the 'Odin 3 protocol'.")
+    (license license:expat)))
-- 
2.14.1


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

* [bug#28285] Add heimdall
  2017-08-29 21:58 [bug#28285] Add heimdall Julien Lepiller
@ 2017-08-30  8:13 ` Jonathan Brielmaier
  2017-08-30 19:25 ` Marius Bakke
  2017-09-08 12:41 ` Danny Milosavljevic
  2 siblings, 0 replies; 6+ messages in thread
From: Jonathan Brielmaier @ 2017-08-30  8:13 UTC (permalink / raw)
  To: 28285

Maybe we could do it in "flashing-tools.scm".

Am 29.08.2017 um 23:58 schrieb Julien Lepiller:
> Hi,
> 
> this patch adds heimdall, a tool I just used to flash replicant on my
> smartphone :)
> 

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

* [bug#28285] Add heimdall
  2017-08-29 21:58 [bug#28285] Add heimdall Julien Lepiller
  2017-08-30  8:13 ` Jonathan Brielmaier
@ 2017-08-30 19:25 ` Marius Bakke
  2017-09-03 16:53   ` Julien Lepiller
  2017-09-08 12:41 ` Danny Milosavljevic
  2 siblings, 1 reply; 6+ messages in thread
From: Marius Bakke @ 2017-08-30 19:25 UTC (permalink / raw)
  To: Julien Lepiller, 28285

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

Julien Lepiller <julien@lepiller.eu> writes:

> Hi,
>
> this patch adds heimdall, a tool I just used to flash replicant on my
> smartphone :)

Cool!

> * gnu/packages/android.scm (heimdall): New variable.

I agree with Jonathan that 'flashing-tools.scm' is better suited.

[...]

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +               (mkdir-p bin)
> +               (copy-file "bin/heimdall" (string-append bin "/heimdall"))
> +               (copy-file "bin/heimdall-frontend"
> +                          (string-append bin "/heimdall-frontend"))))))))

(copy-file ...) has an unspecified return value[0], so please add a #t
at the end of this phase for determinism.

> +    (inputs
> +     `(("libusb" ,libusb)
> +       ("qt" ,qt)

Can you try to use the modular qt packages here (qtbase and friends),
instead of the 'qt' monolith?  The latter is not well maintained and
will be removed eventually.

> +       ("zlib" ,zlib)))
> +    (home-page "http://glassechidna.com.au/heimdall/")
> +    (synopsis "Flash firmware onto Samsung mobile devices")
> +    (description "Heimdall is a tool suite used to flash firmware (aka ROMs)
> +onto Samsung mobile devices.  Heimdall connects to a mobile device over USB and
> +interacts with low-level software running on the device, known as Loke.  Loke
> +and Heimdall communicate via the custom Samsung-developed protocol typically
> +referred to as the 'Odin 3 protocol'.")

`guix lint` should complain about the single quotes, no?  Escaped double
quotes are okay, though.

LGTM with these cosmetic changes.

[0] https://www.gnu.org/software/guile/manual/guile.html#File-System

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

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

* [bug#28285] Add heimdall
  2017-08-30 19:25 ` Marius Bakke
@ 2017-09-03 16:53   ` Julien Lepiller
  2017-09-04 14:22     ` Ludovic Courtès
  0 siblings, 1 reply; 6+ messages in thread
From: Julien Lepiller @ 2017-09-03 16:53 UTC (permalink / raw)
  To: 28285

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

Le Wed, 30 Aug 2017 21:25:51 +0200,
Marius Bakke <mbakke@fastmail.com> a écrit :

> Julien Lepiller <julien@lepiller.eu> writes:
> 
> > Hi,
> >
> > this patch adds heimdall, a tool I just used to flash replicant on
> > my smartphone :)  
> 
> Cool!
> 
> > * gnu/packages/android.scm (heimdall): New variable.  
> 
> I agree with Jonathan that 'flashing-tools.scm' is better suited.
> 
> [...]
Ok.

> 
> > +         (replace 'install
> > +           (lambda* (#:key outputs #:allow-other-keys)
> > +             (let ((bin (string-append (assoc-ref outputs "out")
> > "/bin")))
> > +               (mkdir-p bin)
> > +               (copy-file "bin/heimdall" (string-append bin
> > "/heimdall"))
> > +               (copy-file "bin/heimdall-frontend"
> > +                          (string-append bin
> > "/heimdall-frontend"))))))))  
> 
> (copy-file ...) has an unspecified return value[0], so please add a #t
> at the end of this phase for determinism.
Done.

> 
> > +    (inputs
> > +     `(("libusb" ,libusb)
> > +       ("qt" ,qt)  
> 
> Can you try to use the modular qt packages here (qtbase and friends),
> instead of the 'qt' monolith?  The latter is not well maintained and
> will be removed eventually.
only qtbase is needed it seems. Done.

> 
> > +       ("zlib" ,zlib)))
> > +    (home-page "http://glassechidna.com.au/heimdall/")
> > +    (synopsis "Flash firmware onto Samsung mobile devices")
> > +    (description "Heimdall is a tool suite used to flash firmware
> > (aka ROMs) +onto Samsung mobile devices.  Heimdall connects to a
> > mobile device over USB and +interacts with low-level software
> > running on the device, known as Loke.  Loke +and Heimdall
> > communicate via the custom Samsung-developed protocol typically
> > +referred to as the 'Odin 3 protocol'.")  
> 
> `guix lint` should complain about the single quotes, no?  Escaped
> double quotes are okay, though.
It doesn't. I'm not sure what you mean with escaped double quotes. \"
or \\\"?

> 
> LGTM with these cosmetic changes.
I had to change the import of licenses and license field of all
packages because heimdall depends on zlib, which is also a license
name. Should I mention that in the commit message too? Should it be in
a separate commit?

> 
> [0] https://www.gnu.org/software/guile/manual/guile.html#File-System


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-gnu-Add-heimdall.patch --]
[-- Type: text/x-patch, Size: 5857 bytes --]

From 77a0831ce91b61eca537d197e9c15720b3b6cf7e Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Tue, 29 Aug 2017 23:54:16 +0200
Subject: [PATCH] gnu: Add heimdall.

* gnu/packages/flashing-tools.scm (heimdall): New variable.
---
 gnu/packages/flashing-tools.scm | 58 +++++++++++++++++++++++++++++++++++------
 1 file changed, 50 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 127fc795a..ac19696ca 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -5,6 +5,7 @@
 ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2017 Jonathan Brielmaier <jonathan.brielmaier@web.de>
+;;; Copyright © 2017 Julien Lepiller <julien@lepiller.eu>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -22,19 +23,22 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages flashing-tools)
-  #:use-module (guix licenses)
+  #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix packages)
   #:use-module (gnu packages)
+  #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages pciutils)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages admin))
 
@@ -81,7 +85,7 @@ verifying and erasing flash chips.  It is designed to flash
 BIOS/EFI/coreboot/firmware/optionROM images on mainboards,
 network/graphics/storage controller cards, and various other
 programmer devices.")
-    (license gpl2)))
+    (license license:gpl2)))
 
 (define-public 0xffff
   (package
@@ -112,7 +116,7 @@ programmer devices.")
 for FIASCO images.  It supports generating, unpacking, editing and
 flashing of FIASCO images for Maemo devices.  Use it with care.  It can
 brick your device.")
-    (license gpl3+)))
+    (license license:gpl3+)))
 
 (define-public avrdude
   (package
@@ -140,7 +144,7 @@ brick your device.")
      "AVRDUDE is a utility to download/upload/manipulate the ROM and
 EEPROM contents of AVR microcontrollers using the in-system programming
 technique (ISP).")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public dfu-programmer
   (package
@@ -166,7 +170,7 @@ technique (ISP).")
      "Dfu-programmer is a multi-platform command-line programmer for
 Atmel (8051, AVR, XMEGA & AVR32) chips with a USB bootloader supporting
 ISP.")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public dfu-util
   (package
@@ -193,7 +197,7 @@ ranges from small devices like micro-controller boards up to mobile phones.
 With dfu-util you are able to download firmware to your device or upload
 firmware from it.")
     (home-page "http://dfu-util.sourceforge.net/")
-    (license gpl2+)))
+    (license license:gpl2+)))
 
 (define-public teensy-loader-cli
   ;; The repo does not tag versions nor does it use releases, but a commit
@@ -244,7 +248,7 @@ HalfKay bootloader is running, so you can upload new programs and run them.
 You need to add the udev rules to make the Teensy update available for
 non-root users.")
       (home-page "https://www.pjrc.com/teensy/loader_cli.html")
-      (license gpl3))))
+      (license license:gpl3))))
 
 (define-public rkflashtool
   (let ((commit "094bd6410cb016e487e2ccb1050c59eeac2e6dd1")
@@ -278,4 +282,42 @@ non-root users.")
       (description "Allows flashing of Rockchip based embedded linux devices.
 The list of currently supported devices is: RK2818, RK2918, RK2928, RK3026,
 RK3036, RK3066, RK312X, RK3168, RK3188, RK3288, RK3368.")
-      (license bsd-2))))
+      (license license:bsd-2))))
+
+(define-public heimdall
+  (package
+    (name "heimdall")
+    (version "1.4.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/Benjamin-Dobell/Heimdall"
+                                  "/archive/v" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1y7gwg3lipyp2zcysm2vid1qg5nwin9bxbvgzs28lz2rya4fz6sq"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f; no tests
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
+               (mkdir-p bin)
+               (copy-file "bin/heimdall" (string-append bin "/heimdall"))
+               (copy-file "bin/heimdall-frontend"
+                          (string-append bin "/heimdall-frontend"))
+               #t))))))
+    (inputs
+     `(("libusb" ,libusb)
+       ("qtbase" ,qtbase)
+       ("zlib" ,zlib)))
+    (home-page "http://glassechidna.com.au/heimdall/")
+    (synopsis "Flash firmware onto Samsung mobile devices")
+    (description "Heimdall is a tool suite used to flash firmware (aka ROMs)
+onto Samsung mobile devices.  Heimdall connects to a mobile device over USB and
+interacts with low-level software running on the device, known as Loke.  Loke
+and Heimdall communicate via the custom Samsung-developed protocol typically
+referred to as the \"Odin 3 protocol\".")
+    (license license:expat)))
-- 
2.14.1


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

* [bug#28285] Add heimdall
  2017-09-03 16:53   ` Julien Lepiller
@ 2017-09-04 14:22     ` Ludovic Courtès
  0 siblings, 0 replies; 6+ messages in thread
From: Ludovic Courtès @ 2017-09-04 14:22 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 28285

Hello,

Julien Lepiller <julien@lepiller.eu> skribis:

> I had to change the import of licenses and license field of all
> packages because heimdall depends on zlib, which is also a license
> name. Should I mention that in the commit message too? Should it be in
> a separate commit?

IMO it’s marginely better as a separate commit, but no big deal.

> From 77a0831ce91b61eca537d197e9c15720b3b6cf7e Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien@lepiller.eu>
> Date: Tue, 29 Aug 2017 23:54:16 +0200
> Subject: [PATCH] gnu: Add heimdall.
>
> * gnu/packages/flashing-tools.scm (heimdall): New variable.

[...]

> +         (replace 'install
> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let ((bin (string-append (assoc-ref outputs "out") "/bin")))
> +               (mkdir-p bin)
> +               (copy-file "bin/heimdall" (string-append bin "/heimdall"))
> +               (copy-file "bin/heimdall-frontend"
> +                          (string-append bin "/heimdall-frontend"))

You can write these as:

  (install-file "bin/heimdall" bin)
  …

and also remove (mkdir-p bin).

OK with these changes!

Ludo’.

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

* [bug#28285] Add heimdall
  2017-08-29 21:58 [bug#28285] Add heimdall Julien Lepiller
  2017-08-30  8:13 ` Jonathan Brielmaier
  2017-08-30 19:25 ` Marius Bakke
@ 2017-09-08 12:41 ` Danny Milosavljevic
  2 siblings, 0 replies; 6+ messages in thread
From: Danny Milosavljevic @ 2017-09-08 12:41 UTC (permalink / raw)
  To: Julien Lepiller; +Cc: 28285

Hi Julien,

On Tue, 29 Aug 2017 23:58:29 +0200
Julien Lepiller <julien@lepiller.eu> wrote:

> this patch adds heimdall, a tool I just used to flash replicant on my
> smartphone :)

There are udev rules in ./heimdall/60-heimdall.rules which we might want to install too.

And there's a libpit.a - not sure whether it makes sense to install it (whether it has public API).

Thoughts?

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

end of thread, other threads:[~2017-09-08 12:42 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-29 21:58 [bug#28285] Add heimdall Julien Lepiller
2017-08-30  8:13 ` Jonathan Brielmaier
2017-08-30 19:25 ` Marius Bakke
2017-09-03 16:53   ` Julien Lepiller
2017-09-04 14:22     ` Ludovic Courtès
2017-09-08 12:41 ` Danny Milosavljevic

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