Message ID | 20210914105601.12562-1-thomas@thomaslabs.org |
---|---|
State | New |
Headers | show |
Series | [bug#50578] gnu: Add minipro | expand |
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 |
Hi Thomas, On 2021-09-14 11:56, Thomas Albers via Guix-patches via wrote: > --- > gnu/packages/electronics.scm | 66 ++++++++++++++++++++++++++++++++++++ > 1 file changed, 66 insertions(+) > > diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm > index 0e985c9750..e6abdc6562 100644 > --- a/gnu/packages/electronics.scm > +++ b/gnu/packages/electronics.scm > @@ -4,6 +4,7 @@ > ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> > ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> > ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> > +;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org> > ;;; > ;;; This file is part of GNU Guix. > ;;; > @@ -24,6 +25,7 @@ > #:use-module (guix utils) > #:use-module (guix packages) > #:use-module (guix download) > + #:use-module (guix git-download) > #:use-module ((guix licenses) #:prefix license:) > #:use-module (guix build-system gnu) > #:use-module (guix build-system cmake) > @@ -333,3 +335,67 @@ from ALSA, ESD, and COMEDI sources. This package currently does not include > support for ESD sources.") > (home-page "http://xoscope.sourceforge.net/") > (license license:gpl2+))) > + > +(define-public minipro > + ;; Information needed to fix Makefile > + (let* ((commit "0774b071361366c866ec97302ec02972379418b0") > + (commit-short (substring commit 0 8)) > + ;; git show -s --format="%ci" > + (date "2021-08-05 07:54:42 +0300") > + (revision "1")) > + (package > + (name "minipro") > + (version (git-version "0.5" revision commit)) [...] > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://gitlab.com/DavidGriffith/minipro.git") > + (commit commit))) > + (sha256 > + (base32 "174m2dwgpxwkm1yrf54p6k5skihgpcd1iblxivg2f6xbdrsz8b18")))) > + (native-inputs > + `(("pkg-config" ,pkg-config) > + ("which" ,which) > + ("sed" ,sed))) > + (inputs > + `(("libusb" ,libusb))) [...] > + (build-system gnu-build-system) > + (arguments > + `(#:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (delete 'check) > + (add-before 'build 'fix-makefile > + (lambda* (#:key outputs #:allow-other-keys) > + ;; Modify the makefile so that its 'PREFIX' variable points to > + ;; "out". > + ;; Also fix the folder to where the udev rules are installed and > + ;; some git related variables that minipro expects. > + (let ((out (assoc-ref outputs "out"))) > + (substitute* "Makefile" > + (("PREFIX \\?= .*") > + (string-append "PREFIX ?= " out "\n" )) > + (("UDEV_DIR=.*") > + (string-append "UDEV_DIR=" out "/lib/udev/\n")) > + (("GIT_BRANCH = .*") > + (string-append "GIT_BRANCH = \"master\"\n")) > + (("GIT_HASH = .*") > + (string-append "GIT_HASH = \"" ,commit "\"\n")) > + (("GIT_HASH_SHORT = .*") > + (string-append "GIT_HASH_SHORT = \"" ,commit-short "\"\n")) > + (("GIT_DATE = .*") > + (string-append "GIT_DATE = \"" ,date "\"\n")))) > + #t))))) Upstream has released 0.6 in the meantime, so these fixes will have to be checked if they're still needed. In case they are, this part will have to be rewritten with G-Expressions. The dependencies should be restyled as well. I know this a very late reply, but could you send a revised patch for this? (in case you're still maintaining it locally) Thanks, Bruno
Hi Bruno, yes, I am still maintaining a local copy of this package. I have a question regarding your observations though. Could you please reference some example in the guix source base, how one is supposed to rewrite the fixes as a G-Expression in this context? I am not familiar with this specific use. Also the manual does not show something similar AFAIK. Regards, Thomas Bruno Victal <mirai@makinata.eu> writes: > Hi Thomas, > > On 2021-09-14 11:56, Thomas Albers via Guix-patches via wrote: >> --- >> gnu/packages/electronics.scm | 66 ++++++++++++++++++++++++++++++++++++ >> 1 file changed, 66 insertions(+) >> >> diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm >> index 0e985c9750..e6abdc6562 100644 >> --- a/gnu/packages/electronics.scm >> +++ b/gnu/packages/electronics.scm >> @@ -4,6 +4,7 @@ >> ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> >> ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> >> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> >> +;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org> >> ;;; >> ;;; This file is part of GNU Guix. >> ;;; >> @@ -24,6 +25,7 @@ >> #:use-module (guix utils) >> #:use-module (guix packages) >> #:use-module (guix download) >> + #:use-module (guix git-download) >> #:use-module ((guix licenses) #:prefix license:) >> #:use-module (guix build-system gnu) >> #:use-module (guix build-system cmake) >> @@ -333,3 +335,67 @@ from ALSA, ESD, and COMEDI sources. This package currently does not include >> support for ESD sources.") >> (home-page "http://xoscope.sourceforge.net/") >> (license license:gpl2+))) >> + >> +(define-public minipro >> + ;; Information needed to fix Makefile >> + (let* ((commit "0774b071361366c866ec97302ec02972379418b0") >> + (commit-short (substring commit 0 8)) >> + ;; git show -s --format="%ci" >> + (date "2021-08-05 07:54:42 +0300") >> + (revision "1")) >> + (package >> + (name "minipro") >> + (version (git-version "0.5" revision commit)) > > [...] > >> + (source >> + (origin >> + (method git-fetch) >> + (uri (git-reference >> + (url "https://gitlab.com/DavidGriffith/minipro.git") >> + (commit commit))) >> + (sha256 >> + (base32 "174m2dwgpxwkm1yrf54p6k5skihgpcd1iblxivg2f6xbdrsz8b18")))) >> + (native-inputs >> + `(("pkg-config" ,pkg-config) >> + ("which" ,which) >> + ("sed" ,sed))) >> + (inputs >> + `(("libusb" ,libusb))) > > [...] > >> + (build-system gnu-build-system) >> + (arguments >> + `(#:phases >> + (modify-phases %standard-phases >> + (delete 'configure) >> + (delete 'check) >> + (add-before 'build 'fix-makefile >> + (lambda* (#:key outputs #:allow-other-keys) >> + ;; Modify the makefile so that its 'PREFIX' variable points to >> + ;; "out". >> + ;; Also fix the folder to where the udev rules are installed and >> + ;; some git related variables that minipro expects. >> + (let ((out (assoc-ref outputs "out"))) >> + (substitute* "Makefile" >> + (("PREFIX \\?= .*") >> + (string-append "PREFIX ?= " out "\n" )) >> + (("UDEV_DIR=.*") >> + (string-append "UDEV_DIR=" out "/lib/udev/\n")) >> + (("GIT_BRANCH = .*") >> + (string-append "GIT_BRANCH = \"master\"\n")) >> + (("GIT_HASH = .*") >> + (string-append "GIT_HASH = \"" ,commit "\"\n")) >> + (("GIT_HASH_SHORT = .*") >> + (string-append "GIT_HASH_SHORT = \"" ,commit-short "\"\n")) >> + (("GIT_DATE = .*") >> + (string-append "GIT_DATE = \"" ,date "\"\n")))) >> + #t))))) > > Upstream has released 0.6 in the meantime, so these fixes will have to be checked if > they're still needed. In case they are, this part will have to be rewritten with G-Expressions. > The dependencies should be restyled as well. > > > I know this a very late reply, but could you send a revised patch for this? (in case you're still maintaining it locally) > > Thanks, > Bruno
On 2023-04-01 16:41, Thomas Albers Raviola via Guix-patches via wrote: > Hi Bruno, > > yes, I am still maintaining a local copy of this package. > > I have a question regarding your observations though. Could you please > reference some example in the guix source base, how one is supposed to > rewrite the fixes as a G-Expression in this context? I've edited mympd, libavif, autokey, rng-tools, dropwatch and nvme-cli to use G-Expressions but you can also take a look at other packages for inspiration. Another source of inspiration is to grep for commits that perform conversion to G-Expressions. > I am not familiar with this specific use. Also the manual does not show > something similar AFAIK. Right, it's a bit unfortunate in this department at the moment. Cheers, Bruno
Hi Bruno, I have sent a new patch with the new dependencies and G-Expressions. The fix for the Makefile is still needed. I fail to see the purpose of G-Expressions over normal backticks for the build phases as no file-like or package is being used inside of them. I am missing something? Cheers, Thomas
On 2023-04-02 23:13, Thomas Albers Raviola via Guix-patches via wrote: > > I fail to see the purpose of G-Expressions over normal backticks for the > build phases as no file-like or package is being used inside of them. I > am missing something? They allow for a separation between host and build code. There's a post at <https://guix.gnu.org/blog/2021/the-big-change/> and a chapter in the manual which explains them in further detail. One bonus point is that for outputs, instead of writing: --8<---------------cut here---------------start------------->8--- #~(let ((out (assoc-ref %outputs "out"))) (list (string-append "VERSION=" #$version) (string-append "PREFIX=" out) --8<---------------cut here---------------end--------------->8--- you can directly write this without the assoc-ref machinery: --8<---------------cut here---------------start------------->8--- #~(list (string-append "VERSION=" #$version) (string-append "PREFIX=" #$output) --8<---------------cut here---------------end--------------->8--- HTH! Cheers, Bruno
Thanks, this does indeed help. I've send a last patch removing assoc-ref. Cheers, Thomas
diff --git a/gnu/packages/electronics.scm b/gnu/packages/electronics.scm index 0e985c9750..e6abdc6562 100644 --- a/gnu/packages/electronics.scm +++ b/gnu/packages/electronics.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2019 Clément Lassieur <clement@lassieur.org> ;;; Copyright © 2021 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2021 Leo Famulari <leo@famulari.name> +;;; Copyright © 2021 Thomas Albers Raviola <thomas@thomaslabs.org> ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (guix utils) #:use-module (guix packages) #:use-module (guix download) + #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) @@ -333,3 +335,67 @@ from ALSA, ESD, and COMEDI sources. This package currently does not include support for ESD sources.") (home-page "http://xoscope.sourceforge.net/") (license license:gpl2+))) + +(define-public minipro + ;; Information needed to fix Makefile + (let* ((commit "0774b071361366c866ec97302ec02972379418b0") + (commit-short (substring commit 0 8)) + ;; git show -s --format="%ci" + (date "2021-08-05 07:54:42 +0300") + (revision "1")) + (package + (name "minipro") + (version (git-version "0.5" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/DavidGriffith/minipro.git") + (commit commit))) + (sha256 + (base32 "174m2dwgpxwkm1yrf54p6k5skihgpcd1iblxivg2f6xbdrsz8b18")))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("which" ,which) + ("sed" ,sed))) + (inputs + `(("libusb" ,libusb))) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-before 'build 'fix-makefile + (lambda* (#:key outputs #:allow-other-keys) + ;; Modify the makefile so that its 'PREFIX' variable points to + ;; "out". + ;; Also fix the folder to where the udev rules are installed and + ;; some git related variables that minipro expects. + (let ((out (assoc-ref outputs "out"))) + (substitute* "Makefile" + (("PREFIX \\?= .*") + (string-append "PREFIX ?= " out "\n" )) + (("UDEV_DIR=.*") + (string-append "UDEV_DIR=" out "/lib/udev/\n")) + (("GIT_BRANCH = .*") + (string-append "GIT_BRANCH = \"master\"\n")) + (("GIT_HASH = .*") + (string-append "GIT_HASH = \"" ,commit "\"\n")) + (("GIT_HASH_SHORT = .*") + (string-append "GIT_HASH_SHORT = \"" ,commit-short "\"\n")) + (("GIT_DATE = .*") + (string-append "GIT_DATE = \"" ,date "\"\n")))) + #t))))) + (synopsis "Controls the TL866xx series of chip programmers") + (description "minipro is designed to program or read the contents of +chips supported by the TL866xx series of programmers. This includes many +microcontrollers, ROMs, EEPROMs and PLDs. + +To use this program without root privileges you must install the necessary udev +rules. This can be done by extending @code{udev-service-type} in your +@code{operating-system} configuration with this package. E.g.: +@code{(udev-rules-service 'minipro minipro #:groups '(\"plugdev\")}. +Additionally your user must be member of the @code{plugdev} group.") + (home-page "https://gitlab.com/DavidGriffith/minipro") + (license license:gpl3+))))