* [bug#45601] [PATCH 0/6] vlang 0.2 update @ 2021-01-01 19:23 Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via ` (5 more replies) 0 siblings, 6 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:23 UTC (permalink / raw) To: 45601 Hi Guix! The vlang compiler had its 0.2 release recently and I've been working on improving the quality of our package as well. This patch series has 4 exciting improvements: 1. The compiler is updated to 0.2, which already includes a number of changes to the build system to make things work better for Guix users. 2. Three vendored dependencies are factored out into their own Guix packages: tiny-bignu, cJSON, and wyhash. 3. A number of tests that were failing have been patched to succeed. The number of tests we skip is down to three. 4. The v tools now work out of the box, with some exceptions such as the REPL that rely on `cc`. I am continuing the work to move the last of the vendored dependencies into their own packages, get all the tests passing, and get us to a working v repl. But this series already gets us a lot closer to where I want to be. This patch series also relates to issues 43821 and 44978. Cheers, Ryan Ryan Prior (6): gnu: Add wyhash. gnu: vlang: Update to 0.2. gnu: vlang: Use system tiny-bignum. gnu: vlang: Use system cJSON. gnu: vlang: Use system wyhash. gnu: vlang: Fix v tools. gnu/local.mk | 1 + gnu/packages/datastructures.scm | 34 ++++- .../vlang-accommodate-timestamps.patch | 50 ++++++++ gnu/packages/vlang.scm | 119 ++++++++++++++---- 4 files changed, 178 insertions(+), 26 deletions(-) create mode 100644 gnu/packages/patches/vlang-accommodate-timestamps.patch -- 2.29.2 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 1/6] gnu: Add wyhash. 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via @ 2021-01-01 19:27 ` Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 2/6] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via ` (5 more replies) 2021-01-01 21:19 ` [bug#45601] [PATCH] " Ryan Prior via Guix-patches via ` (4 subsequent siblings) 5 siblings, 6 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:27 UTC (permalink / raw) To: 45601 * gnu/packages/datastructures.scm (wyhash): New variable. --- gnu/packages/datastructures.scm | 34 ++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/gnu/packages/datastructures.scm b/gnu/packages/datastructures.scm index 2911a0c550..49e363d09e 100644 --- a/gnu/packages/datastructures.scm +++ b/gnu/packages/datastructures.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2019, 2020 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2020 Mark H Weaver <mhw@netris.org> ;;; Copyright © 2020 Marius Bakke <marius@gnu.org> +;;; Copyright © 2020 Ryan Prior <rprior@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,7 +34,38 @@ #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (guix build-system gnu) - #:use-module (guix build-system meson)) + #:use-module (guix build-system meson) + #:use-module (guix build-system trivial)) + +(define-public wyhash + (package + (name "wyhash") + (version "5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wangyi-fudan/wyhash") + (commit (string-append "wyhash_v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03ljs5iw9zrm3bydwggjvpwrcwmsd75h3dv1j4am4hw3h22cjdjc")))) + (build-system trivial-build-system) ;; source-only package + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let ((dest (string-append (assoc-ref %outputs "out") "/include"))) + (mkdir-p dest) + (chdir (assoc-ref %build-inputs "source")) + (install-file "wyhash.h" dest)) + #t))) + (home-page "https://github.com/wangyi-fudan/wyhash") + (synopsis "Embeddable hash function and random number generator.") + (description "This package provides a portable hash function and random +number generator suitable for use in data structures. Provided by default in +Zig, V, and Nim programming language standard libraries.") + (license license:unlicense))) (define-public gdsl (package -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 2/6] gnu: vlang: Update to 0.2. 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via @ 2021-01-01 19:27 ` Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 3/6] gnu: vlang: Use system tiny-bignum Ryan Prior via Guix-patches via ` (4 subsequent siblings) 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:27 UTC (permalink / raw) To: 45601 - Moves the cc-patching logic out of check into an explicit "patch-cc" stage. - Adds "build-tools" stage to pre-build the included tools. - Sets native-search-paths. - Fixes many tests. --- gnu/packages/vlang.scm | 84 +++++++++++++++++++++++++++++++----------- 1 file changed, 62 insertions(+), 22 deletions(-) diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index e0b2e7bcfc..212862cb1d 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -20,9 +20,13 @@ (define-module (gnu packages vlang) #:use-module (gnu packages glib) + #:use-module (gnu packages linux) #:use-module (gnu packages node) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) + #:use-module (gnu packages javascript) #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) #:use-module (guix git-download) @@ -30,10 +34,21 @@ #:use-module (guix utils) #:use-module (guix packages)) +(define markdown-origin + (let ((markdown-version "1ccfbcba945b649b61738b9c0455d31cf99564b2")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vlang/markdown") + (commit markdown-version))) + (file-name (git-file-name "vlang-markdown" markdown-version)) + (sha256 + (base32 "0s982qiwy4s9y07x9fsy4yn642schplhp9hrw2libg2bx4sw43as"))))) + (define-public vlang (package (name "vlang") - (version "0.1.29") + (version "0.2") (source (origin (method git-fetch) @@ -42,7 +57,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1rqi7cah5nq8aggrib9xvdpfjxq20li91svv0w9yny6nn1ag7snx")))) + (base32 "1x2sf2j6xl11kjvv0i0anjqwsfb1la11xr7yhdnbix9808442wm2")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -61,42 +76,60 @@ (lambda _ (substitute* "Makefile" (("rm -rf") "true") - (("v self") (string-append "v -cc " ,(cc-for-target) " cmd/v"))) + (("--branch") "")))) + (add-before 'build 'patch-cc + (lambda _ + (let* ((bin "tmp/bin") + (gcc (which "gcc"))) + (mkdir-p bin) + (symlink gcc (string-append bin "/cc")) + (setenv "PATH" (string-append bin ":" (getenv "PATH")))) + #t)) + (add-after 'build 'build-tools + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (assoc-ref inputs "vmodules/markdown") "vmodules/markdown") + (setenv "VMODULES" (string-append (getcwd) "/vmodules")) + (invoke "./v" "build-tools" "-v") #t)) - (add-before 'check 'delete-failing-tests - ;; XXX As always, these should eventually be fixed and run. + (add-before 'check 'fix-or-delete-failing-tests (lambda _ + ;; The x64 tests copy .vv files into the test directory and then + ;; write to them, so we need to make them writeable. + (for-each (lambda (vv) (chmod vv #o644)) + (find-files "vlib/v/gen/x64/tests/" "\\.vv$")) + ;; The process test explicitly calls "/bin/sleep" and "/bin/date" + (substitute* "vlib/os/process_test.v" + (("/bin/sleep") (which "sleep")) + (("/bin/date") (which "date"))) + ;; The valgrind test can't find `cc' even though it's on PATH, so + ;; we pass it as an explicit argument. + (substitute* "vlib/v/tests/valgrind/valgrind_test.v" + (("\\$vexe") "$vexe -cc gcc")) (for-each delete-file - '("vlib/v/gen/x64/tests/x64_test.v" - "vlib/v/tests/repl/repl_test.v" - "vlib/v/tests/valgrind/valgrind_test.v" - "vlib/v/tests/valgrind/strings_and_arrays.vv" + '(;; XXX As always, these should eventually be fixed and run. + "vlib/vweb/tests/vweb_test.v" "vlib/v/tests/live_test.v" - "vlib/net/websocket/ws_test.v")) + "vlib/v/tests/repl/repl_test.v")) #t)) (replace 'check (lambda* (#:key tests? #:allow-other-keys) - (let* ((bin "tmp/bin") - (gcc (which "gcc"))) - (when tests? - (mkdir-p bin) - (symlink gcc (string-append bin "/cc")) - (setenv "PATH" (string-append bin ":" (getenv "PATH"))) - (invoke "./v" "test-fixed"))) + (when tests? + (invoke "./v" "test-fixed")) #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) - (tools (string-append bin "/cmd/tools")) + (cmd (string-append bin "/cmd")) (thirdparty (string-append bin "/thirdparty")) (vlib (string-append bin "/vlib")) + (vmodules (string-append bin "/vmodules")) (vmod (string-append bin "/v.mod"))) (mkdir-p bin) (copy-file "./v" (string-append bin "/v")) ;; v requires as of 0.1.27 that these other components are in the ;; same directory. In a future release we may be able to move ;; these into other output folders. - (copy-recursively "cmd/tools" tools) + (copy-recursively "cmd" cmd) (copy-recursively "thirdparty" thirdparty) (copy-recursively "vlib" vlib) (copy-file "v.mod" vmod)) @@ -107,7 +140,7 @@ `(("vc" ;; Versions are not consistently tagged, but the matching commit will ;; probably have ‘v0.x.y’ in the commit message. - ,(let ((vc-version "b01d0fcda4b55861baa4be82e307cca4834b1641")) + ,(let ((vc-version "047460a4ae5f4a1ba8c31dc50ec5e50ebe80b7f6")) ;; v bootstraps from generated c source code from a dedicated ;; repository. It's readable, as generated source goes, and not at all ;; obfuscated, and it's about 15kb. The original source written in @@ -121,13 +154,20 @@ (commit vc-version))) (file-name (git-file-name "vc" vc-version)) (sha256 - (base32 "052gp5q2k31r3lci3rx4k0vy0vjdjva64xvrbbihn8lgmw63lc9f"))))) + (base32 "1wlr9yzxz4bc7pbzbplzhjjr9sz5mwy2k2z5d3vwsnz56g245146"))))) + ("vmodules/markdown" ,markdown-origin) ;; For the tests. ("libx11" ,libx11) ("node" ,node) ("openssl" ,openssl) - ("sqlite" ,sqlite))) + ("ps" ,procps) + ("sqlite" ,sqlite) + ("valgrind" ,valgrind))) + (native-search-paths + (list (search-path-specification + (variable "VMODULES") + (files '("bin/"))))) (home-page "https://vlang.io/") (synopsis "Compiler for the V programming language") (description -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 3/6] gnu: vlang: Use system tiny-bignum. 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 2/6] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via @ 2021-01-01 19:27 ` Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 4/6] gnu: vlang: Use system cJSON Ryan Prior via Guix-patches via ` (3 subsequent siblings) 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:27 UTC (permalink / raw) To: 45601 * gnu/packages/vlang.scm (vlang): Update to use system tiny-bignum. --- gnu/packages/vlang.scm | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index 212862cb1d..a2f6e93945 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -21,6 +21,7 @@ (define-module (gnu packages vlang) #:use-module (gnu packages glib) #:use-module (gnu packages linux) + #:use-module (gnu packages maths) #:use-module (gnu packages node) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) @@ -57,7 +58,12 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1x2sf2j6xl11kjvv0i0anjqwsfb1la11xr7yhdnbix9808442wm2")))) + (base32 "1x2sf2j6xl11kjvv0i0anjqwsfb1la11xr7yhdnbix9808442wm2")) + (modules '((guix build utils))) + (snippet + '(begin + ;; Eventually remove the whole thirdparty directory. + (delete-file-recursively "thirdparty/bignum"))))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -72,11 +78,14 @@ #:phases (modify-phases %standard-phases (delete 'configure) - (add-before 'build 'patch-makefile - (lambda _ + (add-before 'build 'patch-files + (lambda* (#:key inputs #:allow-other-keys) (substitute* "Makefile" (("rm -rf") "true") - (("--branch") "")))) + (("--branch") "")) + (substitute* "vlib/math/big/big.v" + (("@VROOT/thirdparty/bignum") + (string-append (assoc-ref inputs "tiny-bignum") "/share"))))) (add-before 'build 'patch-cc (lambda _ (let* ((bin "tmp/bin") @@ -135,7 +144,8 @@ (copy-file "v.mod" vmod)) #t))))) (inputs - `(("glib" ,glib))) + `(("glib" ,glib) + ("tiny-bignum" ,tiny-bignum))) (native-inputs `(("vc" ;; Versions are not consistently tagged, but the matching commit will -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 4/6] gnu: vlang: Use system cJSON. 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 2/6] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 3/6] gnu: vlang: Use system tiny-bignum Ryan Prior via Guix-patches via @ 2021-01-01 19:27 ` Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 5/6] gnu: vlang: Use system wyhash Ryan Prior via Guix-patches via ` (2 subsequent siblings) 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:27 UTC (permalink / raw) To: 45601 * gnu/packages/vlang.scm (vlang): Use system cJSON. --- gnu/packages/vlang.scm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index a2f6e93945..db7438d7f7 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -63,7 +63,8 @@ (snippet '(begin ;; Eventually remove the whole thirdparty directory. - (delete-file-recursively "thirdparty/bignum"))))) + (delete-file-recursively "thirdparty/bignum") + (delete-file-recursively "thirdparty/cJSON"))))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -85,7 +86,10 @@ (("--branch") "")) (substitute* "vlib/math/big/big.v" (("@VROOT/thirdparty/bignum") - (string-append (assoc-ref inputs "tiny-bignum") "/share"))))) + (string-append (assoc-ref inputs "tiny-bignum") "/share"))) + (substitute* "vlib/json/json_primitives.v" + (("@VROOT/thirdparty/cJSON") + (assoc-ref inputs "cJSON"))))) (add-before 'build 'patch-cc (lambda _ (let* ((bin "tmp/bin") @@ -145,7 +149,8 @@ #t))))) (inputs `(("glib" ,glib) - ("tiny-bignum" ,tiny-bignum))) + ("tiny-bignum" ,tiny-bignum) + ("cJSON" ,(package-source cjson)))) (native-inputs `(("vc" ;; Versions are not consistently tagged, but the matching commit will -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 5/6] gnu: vlang: Use system wyhash. 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via ` (2 preceding siblings ...) 2021-01-01 19:27 ` [bug#45601] [PATCH 4/6] gnu: vlang: Use system cJSON Ryan Prior via Guix-patches via @ 2021-01-01 19:27 ` Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 6/6] gnu: vlang: Fix v tools Ryan Prior via Guix-patches via 2021-01-01 20:46 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Leo Famulari 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:27 UTC (permalink / raw) To: 45601 * gnu/packages/vlang.scm (vlang) Use system wyhash. --- gnu/packages/vlang.scm | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index db7438d7f7..92d178a3e1 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -19,6 +19,7 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages vlang) + #:use-module (gnu packages datastructures) #:use-module (gnu packages glib) #:use-module (gnu packages linux) #:use-module (gnu packages maths) @@ -63,8 +64,10 @@ (snippet '(begin ;; Eventually remove the whole thirdparty directory. - (delete-file-recursively "thirdparty/bignum") - (delete-file-recursively "thirdparty/cJSON"))))) + (for-each delete-file-recursively + '("thirdparty/bignum" + "thirdparty/cJSON" + "thirdparty/wyhash")))))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -89,7 +92,10 @@ (string-append (assoc-ref inputs "tiny-bignum") "/share"))) (substitute* "vlib/json/json_primitives.v" (("@VROOT/thirdparty/cJSON") - (assoc-ref inputs "cJSON"))))) + (assoc-ref inputs "cJSON"))) + (substitute* "vlib/hash/wyhash.c.v" + (("@VROOT/thirdparty/wyhash") + (string-append (assoc-ref inputs "wyhash") "/include"))))) (add-before 'build 'patch-cc (lambda _ (let* ((bin "tmp/bin") @@ -150,7 +156,8 @@ (inputs `(("glib" ,glib) ("tiny-bignum" ,tiny-bignum) - ("cJSON" ,(package-source cjson)))) + ("cJSON" ,(package-source cjson)) + ("wyhash" ,wyhash))) (native-inputs `(("vc" ;; Versions are not consistently tagged, but the matching commit will -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 6/6] gnu: vlang: Fix v tools. 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via ` (3 preceding siblings ...) 2021-01-01 19:27 ` [bug#45601] [PATCH 5/6] gnu: vlang: Use system wyhash Ryan Prior via Guix-patches via @ 2021-01-01 19:27 ` Ryan Prior via Guix-patches via 2021-01-01 20:46 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Leo Famulari 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 19:27 UTC (permalink / raw) To: 45601 --- gnu/local.mk | 1 + .../vlang-accommodate-timestamps.patch | 50 +++++++++++++++++++ gnu/packages/vlang.scm | 7 +++ 3 files changed, 58 insertions(+) create mode 100644 gnu/packages/patches/vlang-accommodate-timestamps.patch diff --git a/gnu/local.mk b/gnu/local.mk index 2402b1e349..168c499976 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1702,6 +1702,7 @@ dist_patch_DATA = \ %D%/packages/patches/vinagre-newer-freerdp.patch \ %D%/packages/patches/vinagre-newer-rdp-parameters.patch \ %D%/packages/patches/virglrenderer-CVE-2017-6386.patch \ + %D%/packages/patches/vlang-accommodate-timestamps.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9638+CVE-2014-9639.patch \ %D%/packages/patches/vorbis-tools-CVE-2014-9640.patch \ %D%/packages/patches/vorbis-tools-CVE-2015-6749.patch \ diff --git a/gnu/packages/patches/vlang-accommodate-timestamps.patch b/gnu/packages/patches/vlang-accommodate-timestamps.patch new file mode 100644 index 0000000000..02171ac6cf --- /dev/null +++ b/gnu/packages/patches/vlang-accommodate-timestamps.patch @@ -0,0 +1,50 @@ +From 64e7c548843c7938fcfa6b697108d28aa26f4d69 Mon Sep 17 00:00:00 2001 +From: Ryan Prior <rprior@protonmail.com> +Date: Thu, 31 Dec 2020 02:31:38 -0600 +Subject: [PATCH] v.util: accomodate reproducible build environments like guix, + by not recompiling cmd/tools when mtime < 1024 (#7702) + +--- + vlib/v/util/util.v | 16 ++++++++++++++-- + 1 file changed, 14 insertions(+), 2 deletions(-) + +diff --git a/vlib/v/util/util.v b/vlib/v/util/util.v +index 811b71585..1ed32bacf 100644 +--- a/vlib/v/util/util.v ++++ b/vlib/v/util/util.v +@@ -179,7 +179,10 @@ pub fn should_recompile_tool(vexe string, tool_source string) bool { + if !os.exists(tool_exe) { + should_compile = true + } else { +- if os.file_last_mod_unix(tool_exe) <= os.file_last_mod_unix(vexe) { ++ mtime_vexe := os.file_last_mod_unix(vexe) ++ mtime_tool_exe := os.file_last_mod_unix(tool_exe) ++ mtime_tool_source := os.file_last_mod_unix(tool_source) ++ if mtime_tool_exe <= mtime_vexe { + // v was recompiled, maybe after v up ... + // rebuild the tool too just in case + should_compile = true +@@ -192,10 +195,19 @@ pub fn should_recompile_tool(vexe string, tool_source string) bool { + should_compile = false + } + } +- if os.file_last_mod_unix(tool_exe) <= os.file_last_mod_unix(tool_source) { ++ if mtime_tool_exe <= mtime_tool_source { + // the user changed the source code of the tool, or git updated it: + should_compile = true + } ++ // GNU Guix and possibly other environments, have bit for bit reproducibility in mind, ++ // including filesystem attributes like modification times, so they set the modification ++ // times of executables to a small number like 0, 1 etc. In this case, we should not ++ // recompile even if other heuristics say that we should. Users in such environments, ++ // have to explicitly do: `v cmd/tools/vfmt.v`, and/or install v from source, and not ++ // use the system packaged one, if they desire to develop v itself. ++ if mtime_vexe < 1024 && mtime_tool_exe < 1024 { ++ should_compile = false ++ } + } + return should_compile + } +-- +2.29.2 + diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index 92d178a3e1..3bdbf36f9d 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -30,6 +30,7 @@ #:use-module (gnu packages version-control) #:use-module (gnu packages javascript) #:use-module (gnu packages xorg) + #:use-module (gnu packages) #:use-module (guix build-system gnu) #:use-module (guix git-download) #:use-module ((guix licenses) #:prefix license:) @@ -61,6 +62,12 @@ (sha256 (base32 "1x2sf2j6xl11kjvv0i0anjqwsfb1la11xr7yhdnbix9808442wm2")) (modules '((guix build utils))) + ;; This patch is already accepted upstream but is required for version + ;; 0.2. The package will build without it, but it will fail to run any v + ;; tools afterwards because of how Guix changes modified timestamps in + ;; the package files. + (patches (search-patches + "vlang-accommodate-timestamps.patch")) (snippet '(begin ;; Eventually remove the whole thirdparty directory. -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 1/6] gnu: Add wyhash. 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via ` (4 preceding siblings ...) 2021-01-01 19:27 ` [bug#45601] [PATCH 6/6] gnu: vlang: Fix v tools Ryan Prior via Guix-patches via @ 2021-01-01 20:46 ` Leo Famulari 5 siblings, 0 replies; 19+ messages in thread From: Leo Famulari @ 2021-01-01 20:46 UTC (permalink / raw) To: rprior, 45601 On Fri, Jan 01, 2021 at 07:27:19PM +0000, Ryan Prior via Guix-patches via wrote: > * gnu/packages/datastructures.scm (wyhash): New variable. Thanks! Can you move it to digest.scm and make it install the license file in "$out/share/doc/wyhash-5"? You can construct that path like this: (let* ((out ...) (doc (string-append out "/share/doc/" ,name "-" ,version)))) > + (arguments > + '(#:modules ((guix build utils)) The body of arguments will have to be quasiquoted for this to work. That is, ` instead of ' ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH] gnu: Add wyhash. 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via @ 2021-01-01 21:19 ` Ryan Prior via Guix-patches via 2021-01-04 2:07 ` Leo Famulari 2021-01-03 0:09 ` [bug#45601] [PATCH] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via ` (3 subsequent siblings) 5 siblings, 1 reply; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-01 21:19 UTC (permalink / raw) To: 45601 * gnu/packages/datastructures.scm (wyhash): New variable. --- gnu/packages/digest.scm | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/gnu/packages/digest.scm b/gnu/packages/digest.scm index a33e238362..0b7977c2a5 100644 --- a/gnu/packages/digest.scm +++ b/gnu/packages/digest.scm @@ -1,5 +1,6 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2017, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2021 Ryan Prior <rprior@protonmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -21,9 +22,45 @@ #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) #:use-module (guix utils) #:use-module (ice-9 match)) +(define-public wyhash + (package + (name "wyhash") + (version "5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/wangyi-fudan/wyhash") + (commit (string-append "wyhash_v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "03ljs5iw9zrm3bydwggjvpwrcwmsd75h3dv1j4am4hw3h22cjdjc")))) + (build-system trivial-build-system) ;; source-only package + (arguments + `(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((out (string-append (assoc-ref %outputs "out"))) + (src (string-append out "/include")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (mkdir-p src) + (mkdir-p doc) + (chdir (assoc-ref %build-inputs "source")) + (install-file "wyhash.h" src) + (install-file "LICENSE" doc) + (install-file "README.md" doc)) + #t))) + (home-page "https://github.com/wangyi-fudan/wyhash") + (synopsis "Embeddable hash function and random number generator.") + (description "This package provides a portable hash function and random +number generator suitable for use in data structures. Provided by default in +Zig, V, and Nim programming language standard libraries.") + (license license:unlicense))) + (define-public xxhash (package (name "xxhash") -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH] gnu: Add wyhash. 2021-01-01 21:19 ` [bug#45601] [PATCH] " Ryan Prior via Guix-patches via @ 2021-01-04 2:07 ` Leo Famulari 0 siblings, 0 replies; 19+ messages in thread From: Leo Famulari @ 2021-01-04 2:07 UTC (permalink / raw) To: 45601 On Fri, Jan 01, 2021 at 09:19:29PM +0000, Ryan Prior via Guix-patches via wrote: > * gnu/packages/datastructures.scm (wyhash): New variable. Thanks! Pushed as 4a829b2d55bc9b0ad5a335c8228a7d2371fa1d9a with the following changes... I corrected the commit message (changing "datastructures.scm" to "digest.scm"), tweaked the logic of the builder to be more idiomatic, and removed the period at the end of the synopsis (`guix lint` complained). > + #:builder > + (begin > + (use-modules (guix build utils)) > + (let* ((out (string-append (assoc-ref %outputs "out"))) > + (src (string-append out "/include")) > + (doc (string-append out "/share/doc/" ,name "-" ,version))) > + (mkdir-p src) > + (mkdir-p doc) > + (chdir (assoc-ref %build-inputs "source")) > + (install-file "wyhash.h" src) > + (install-file "LICENSE" doc) > + (install-file "README.md" doc)) > + #t))) Regarding the builder: 1) install-file does mkdir-p [0], so that can be omitted. 2) I think it's more clear to use "include" rather than "src" when binding the output's include directory 3) Using with-directory-excursion instead of chdir is more in tune with a functional coding style [1], in my opinion [0] https://git.savannah.gnu.org/cgit/guix.git/tree/guix/build/utils.scm?h=version-1.2.0#n310 [1] https://guix.gnu.org/manual/en/html_node/Programming-Paradigm.html ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH] gnu: vlang: Update to 0.2. 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via 2021-01-01 21:19 ` [bug#45601] [PATCH] " Ryan Prior via Guix-patches via @ 2021-01-03 0:09 ` Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 0/2] Another vlang dependency plucked out (re: bug#45601) Ryan Prior via Guix-patches via ` (2 subsequent siblings) 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-03 0:09 UTC (permalink / raw) To: 45601 - Moves the cc-patching logic out of check into an explicit "patch-cc" stage. - Adds "build-tools" stage to pre-build the included tools. - Sets native-search-paths. - Fixes many tests. --- gnu/packages/vlang.scm | 85 +++++++++++++++++++++++++++++++----------- 1 file changed, 63 insertions(+), 22 deletions(-) diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index e0b2e7bcfc..69c5598d0d 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -19,10 +19,15 @@ ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. (define-module (gnu packages vlang) + #:use-module (gnu packages digest) #:use-module (gnu packages glib) + #:use-module (gnu packages javascript) + #:use-module (gnu packages linux) #:use-module (gnu packages node) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) + #:use-module (gnu packages valgrind) + #:use-module (gnu packages version-control) #:use-module (gnu packages xorg) #:use-module (guix build-system gnu) #:use-module (guix git-download) @@ -30,10 +35,21 @@ #:use-module (guix utils) #:use-module (guix packages)) +(define markdown-origin + (let ((markdown-version "1ccfbcba945b649b61738b9c0455d31cf99564b2")) + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/vlang/markdown") + (commit markdown-version))) + (file-name (git-file-name "vlang-markdown" markdown-version)) + (sha256 + (base32 "0s982qiwy4s9y07x9fsy4yn642schplhp9hrw2libg2bx4sw43as"))))) + (define-public vlang (package (name "vlang") - (version "0.1.29") + (version "0.2") (source (origin (method git-fetch) @@ -42,7 +58,7 @@ (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1rqi7cah5nq8aggrib9xvdpfjxq20li91svv0w9yny6nn1ag7snx")))) + (base32 "1x2sf2j6xl11kjvv0i0anjqwsfb1la11xr7yhdnbix9808442wm2")))) (build-system gnu-build-system) (arguments `(#:make-flags @@ -61,42 +77,60 @@ (lambda _ (substitute* "Makefile" (("rm -rf") "true") - (("v self") (string-append "v -cc " ,(cc-for-target) " cmd/v"))) + (("--branch") "")))) + (add-before 'build 'patch-cc + (lambda _ + (let* ((bin "tmp/bin") + (gcc (which "gcc"))) + (mkdir-p bin) + (symlink gcc (string-append bin "/cc")) + (setenv "PATH" (string-append bin ":" (getenv "PATH")))) + #t)) + (add-after 'build 'build-tools + (lambda* (#:key inputs #:allow-other-keys) + (copy-recursively (assoc-ref inputs "vmodules/markdown") "vmodules/markdown") + (setenv "VMODULES" (string-append (getcwd) "/vmodules")) + (invoke "./v" "build-tools" "-v") #t)) - (add-before 'check 'delete-failing-tests - ;; XXX As always, these should eventually be fixed and run. + (add-before 'check 'fix-or-delete-failing-tests (lambda _ + ;; The x64 tests copy .vv files into the test directory and then + ;; write to them, so we need to make them writeable. + (for-each (lambda (vv) (chmod vv #o644)) + (find-files "vlib/v/gen/x64/tests/" "\\.vv$")) + ;; The process test explicitly calls "/bin/sleep" and "/bin/date" + (substitute* "vlib/os/process_test.v" + (("/bin/sleep") (which "sleep")) + (("/bin/date") (which "date"))) + ;; The valgrind test can't find `cc' even though it's on PATH, so + ;; we pass it as an explicit argument. + (substitute* "vlib/v/tests/valgrind/valgrind_test.v" + (("\\$vexe") "$vexe -cc gcc")) (for-each delete-file - '("vlib/v/gen/x64/tests/x64_test.v" - "vlib/v/tests/repl/repl_test.v" - "vlib/v/tests/valgrind/valgrind_test.v" - "vlib/v/tests/valgrind/strings_and_arrays.vv" + '(;; XXX As always, these should eventually be fixed and run. + "vlib/vweb/tests/vweb_test.v" "vlib/v/tests/live_test.v" - "vlib/net/websocket/ws_test.v")) + "vlib/v/tests/repl/repl_test.v")) #t)) (replace 'check (lambda* (#:key tests? #:allow-other-keys) - (let* ((bin "tmp/bin") - (gcc (which "gcc"))) - (when tests? - (mkdir-p bin) - (symlink gcc (string-append bin "/cc")) - (setenv "PATH" (string-append bin ":" (getenv "PATH"))) - (invoke "./v" "test-fixed"))) + (when tests? + (invoke "./v" "test-fixed")) #t)) (replace 'install (lambda* (#:key outputs #:allow-other-keys) (let* ((bin (string-append (assoc-ref outputs "out") "/bin")) - (tools (string-append bin "/cmd/tools")) + (cmd (string-append bin "/cmd")) (thirdparty (string-append bin "/thirdparty")) (vlib (string-append bin "/vlib")) + (vmodules (string-append bin "/vmodules")) (vmod (string-append bin "/v.mod"))) (mkdir-p bin) (copy-file "./v" (string-append bin "/v")) ;; v requires as of 0.1.27 that these other components are in the ;; same directory. In a future release we may be able to move ;; these into other output folders. - (copy-recursively "cmd/tools" tools) + (copy-recursively "cmd" cmd) (copy-recursively "thirdparty" thirdparty) (copy-recursively "vlib" vlib) (copy-file "v.mod" vmod)) @@ -107,7 +141,7 @@ `(("vc" ;; Versions are not consistently tagged, but the matching commit will ;; probably have ‘v0.x.y’ in the commit message. - ,(let ((vc-version "b01d0fcda4b55861baa4be82e307cca4834b1641")) + ,(let ((vc-version "047460a4ae5f4a1ba8c31dc50ec5e50ebe80b7f6")) ;; v bootstraps from generated c source code from a dedicated ;; repository. It's readable, as generated source goes, and not at all ;; obfuscated, and it's about 15kb. The original source written in @@ -121,13 +155,20 @@ (commit vc-version))) (file-name (git-file-name "vc" vc-version)) (sha256 - (base32 "052gp5q2k31r3lci3rx4k0vy0vjdjva64xvrbbihn8lgmw63lc9f"))))) + (base32 "1wlr9yzxz4bc7pbzbplzhjjr9sz5mwy2k2z5d3vwsnz56g245146"))))) + ("vmodules/markdown" ,markdown-origin) ;; For the tests. ("libx11" ,libx11) ("node" ,node) ("openssl" ,openssl) - ("sqlite" ,sqlite))) + ("ps" ,procps) + ("sqlite" ,sqlite) + ("valgrind" ,valgrind))) + (native-search-paths + (list (search-path-specification + (variable "VMODULES") + (files '("bin/"))))) (home-page "https://vlang.io/") (synopsis "Compiler for the V programming language") (description -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 0/2] Another vlang dependency plucked out (re: bug#45601) 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via ` (2 preceding siblings ...) 2021-01-03 0:09 ` [bug#45601] [PATCH] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via @ 2021-01-04 1:46 ` Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 1/2] gnu: Add picoev Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 2/2] gnu: vlang: Use system picoenv Ryan Prior via Guix-patches via 2021-01-04 2:57 ` [bug#45601] [PATCH] gnu: Add wyhash Ryan Prior via Guix-patches via 2021-01-04 3:07 ` [bug#45601] [PATCH 0/1] Updated picoev patch based on feedback Ryan Prior via Guix-patches via 5 siblings, 2 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-04 1:46 UTC (permalink / raw) To: 45601 Hey Guix! Here's a couple patches that extract yet another vendored dependnecy: picoev, a tiny portable networking event loop library. This furthers the work on vlang 0.2 in other patches of this series. Ryan Prior (2): gnu: Add picoev. gnu: vlang: Use system picoenv. gnu/packages/networking.scm | 51 +++++++++++++++++++++++++++++++++++++ gnu/packages/vlang.scm | 8 +++++- 2 files changed, 58 insertions(+), 1 deletion(-) -- 2.29.2 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 1/2] gnu: Add picoev. 2021-01-04 1:46 ` [bug#45601] [PATCH 0/2] Another vlang dependency plucked out (re: bug#45601) Ryan Prior via Guix-patches via @ 2021-01-04 1:46 ` Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 2/2] gnu: vlang: Use system picoenv Ryan Prior via Guix-patches via 1 sibling, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-04 1:46 UTC (permalink / raw) To: 45601 * gnu/packages/networking.scm (picoev): New variable. --- gnu/packages/networking.scm | 51 +++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index 8c9db0c6b4..42eb7b3c59 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1828,6 +1828,57 @@ passphrase can be recovered and the AP's wireless settings can be reconfigured.") (license license:gpl2+))) +(define-public picoev + (let ((commit "ff85d9ef578842a40f7c91d2544b7932cec74b9d") + (revision "0")) + (package + (name "picoev") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kazuho/picoev") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11ga0hyx6r229wvmds4gaq0ilrcb1j84gri7gxcnv7910yf1sv61")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests available + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + "LINUX_BUILD=1") + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (string-append (assoc-ref outputs "out"))) + (src (string-append out "/include")) + (lib (string-append out "/lib")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (mkdir-p src) + (mkdir-p lib) + (mkdir-p doc) + (for-each (cut install-file <> src) + '("picoev.h" + "picoev_epoll.c" + "picoev_kqueue.c" + "picoev_select.c")) + (install-file "libpicoev.so" lib) + (install-file "README.md" doc)) + #t))))) + (home-page "https://github.com/kazuho/picoev") + (synopsis "Tiny portable event loop library.") + (description + "This library provides a tiny event loop with a simple design, +supporting only @code{select(2)}, @code{epoll(2)}, and @code{kqueue(2)}.") + (license license:expat)))) + (define-public perl-danga-socket (package (name "perl-danga-socket") -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 2/2] gnu: vlang: Use system picoenv. 2021-01-04 1:46 ` [bug#45601] [PATCH 0/2] Another vlang dependency plucked out (re: bug#45601) Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 1/2] gnu: Add picoev Ryan Prior via Guix-patches via @ 2021-01-04 1:46 ` Ryan Prior via Guix-patches via 1 sibling, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-04 1:46 UTC (permalink / raw) To: 45601 * gnu/packages/vlang.scm (vlang): Use system picoenv. --- gnu/packages/vlang.scm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/gnu/packages/vlang.scm b/gnu/packages/vlang.scm index dd970e643a..c3f439fce6 100644 --- a/gnu/packages/vlang.scm +++ b/gnu/packages/vlang.scm @@ -24,6 +24,7 @@ #:use-module (gnu packages javascript) #:use-module (gnu packages linux) #:use-module (gnu packages maths) + #:use-module (gnu packages networking) #:use-module (gnu packages node) #:use-module (gnu packages sqlite) #:use-module (gnu packages tls) @@ -74,6 +75,7 @@ (for-each delete-file-recursively '("thirdparty/bignum" "thirdparty/cJSON" + "thirdparty/picoev" "thirdparty/wyhash")))))) (build-system gnu-build-system) (arguments @@ -102,7 +104,10 @@ (assoc-ref inputs "cJSON"))) (substitute* "vlib/hash/wyhash.c.v" (("@VROOT/thirdparty/wyhash") - (string-append (assoc-ref inputs "wyhash") "/include"))))) + (string-append (assoc-ref inputs "wyhash") "/include"))) + (substitute* "vlib/picoev/picoev.v" + (("@VROOT/thirdparty/picoev") + (string-append (assoc-ref inputs "picoev") "/include"))))) (add-before 'build 'patch-cc (lambda _ (let* ((bin "tmp/bin") @@ -164,6 +169,7 @@ `(("glib" ,glib) ("tiny-bignum" ,tiny-bignum) ("cJSON" ,(package-source cjson)) + ("picoev" ,picoev) ("wyhash" ,wyhash))) (native-inputs `(("vc" -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH] gnu: Add wyhash. 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via ` (3 preceding siblings ...) 2021-01-04 1:46 ` [bug#45601] [PATCH 0/2] Another vlang dependency plucked out (re: bug#45601) Ryan Prior via Guix-patches via @ 2021-01-04 2:57 ` Ryan Prior via Guix-patches via 2021-01-04 3:07 ` [bug#45601] [PATCH 0/1] Updated picoev patch based on feedback Ryan Prior via Guix-patches via 5 siblings, 0 replies; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-04 2:57 UTC (permalink / raw) To: 45601@debbugs.gnu.org, Leo Famulari [-- Attachment #1: Type: text/plain, Size: 422 bytes --] Thank you! Agreed on all points. I initially did call the variable `include' but Emacs scheme-mode highlighted it using a keyword face, which made me worry if I shouldn't choose something else in case include is some kind of reserved word. I didn't know about `with-directory-excursion' before but it's clearly preferable. I got the idea to use `chdir' from looking at other packages (it's used many hundreds of places.) [-- Attachment #2: Type: text/html, Size: 493 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 0/1] Updated picoev patch based on feedback 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via ` (4 preceding siblings ...) 2021-01-04 2:57 ` [bug#45601] [PATCH] gnu: Add wyhash Ryan Prior via Guix-patches via @ 2021-01-04 3:07 ` Ryan Prior via Guix-patches via 2021-01-04 3:07 ` [bug#45601] [PATCH 1/1] gnu: Add picoev Ryan Prior via Guix-patches via 5 siblings, 1 reply; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-04 3:07 UTC (permalink / raw) To: 45601 Based on Leo's feedback from the wyhash patch, I've updated the patch for picoev as well. Ryan Prior (1): gnu: Add picoev. gnu/packages/networking.scm | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) -- 2.29.2 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 1/1] gnu: Add picoev. 2021-01-04 3:07 ` [bug#45601] [PATCH 0/1] Updated picoev patch based on feedback Ryan Prior via Guix-patches via @ 2021-01-04 3:07 ` Ryan Prior via Guix-patches via 2021-02-05 13:30 ` Christopher Baines 0 siblings, 1 reply; 19+ messages in thread From: Ryan Prior via Guix-patches via @ 2021-01-04 3:07 UTC (permalink / raw) To: 45601 * gnu/packages/networking.scm (picoev): New variable. --- gnu/packages/networking.scm | 48 +++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm index fad917a7c0..1057014571 100644 --- a/gnu/packages/networking.scm +++ b/gnu/packages/networking.scm @@ -1827,6 +1827,54 @@ passphrase can be recovered and the AP's wireless settings can be reconfigured.") (license license:gpl2+))) +(define-public picoev + (let ((commit "ff85d9ef578842a40f7c91d2544b7932cec74b9d") + (revision "0")) + (package + (name "picoev") + (version (git-version "0.0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/kazuho/picoev") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "11ga0hyx6r229wvmds4gaq0ilrcb1j84gri7gxcnv7910yf1sv61")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; no tests available + #:make-flags (list (string-append "CC=" ,(cc-for-target)) + "LINUX_BUILD=1") + #:modules ((guix build gnu-build-system) + (guix build utils) + (srfi srfi-26)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (string-append (assoc-ref outputs "out"))) + (include (string-append out "/include")) + (lib (string-append out "/lib")) + (doc (string-append out "/share/doc/" ,name "-" ,version))) + (for-each (cut install-file <> include) + '("picoev.h" + "picoev_epoll.c" + "picoev_kqueue.c" + "picoev_select.c")) + (install-file "libpicoev.so" lib) + (install-file "README.md" doc)) + #t))))) + (home-page "https://github.com/kazuho/picoev") + (synopsis "Tiny portable event loop library") + (description + "This library provides a tiny event loop with a simple design, +supporting only @code{select(2)}, @code{epoll(2)}, and @code{kqueue(2)}.") + (license license:expat)))) + (define-public perl-danga-socket (package (name "perl-danga-socket") -- 2.29.2 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 1/1] gnu: Add picoev. 2021-01-04 3:07 ` [bug#45601] [PATCH 1/1] gnu: Add picoev Ryan Prior via Guix-patches via @ 2021-02-05 13:30 ` Christopher Baines 2024-06-10 16:19 ` Maxim Cournoyer 0 siblings, 1 reply; 19+ messages in thread From: Christopher Baines @ 2021-02-05 13:30 UTC (permalink / raw) To: Ryan Prior; +Cc: 45601 [-- Attachment #1: Type: text/plain, Size: 3173 bytes --] Ryan Prior via Guix-patches via <guix-patches@gnu.org> writes: > * gnu/packages/networking.scm (picoev): New variable. Hey, This look OK to me, although the license needs checking. Would you be able to send the entire series of patches tracked under #45601? I'm not quite sure what's current and superseded by looking through the various emails. > --- > gnu/packages/networking.scm | 48 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 48 insertions(+) > > diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm > index fad917a7c0..1057014571 100644 > --- a/gnu/packages/networking.scm > +++ b/gnu/packages/networking.scm > @@ -1827,6 +1827,54 @@ passphrase can be recovered and the AP's wireless settings can be > reconfigured.") > (license license:gpl2+))) > > +(define-public picoev > + (let ((commit "ff85d9ef578842a40f7c91d2544b7932cec74b9d") > + (revision "0")) > + (package > + (name "picoev") > + (version (git-version "0.0.0" revision commit)) > + (source > + (origin > + (method git-fetch) > + (uri (git-reference > + (url "https://github.com/kazuho/picoev") > + (commit commit))) > + (file-name (git-file-name name version)) > + (sha256 > + (base32 > + "11ga0hyx6r229wvmds4gaq0ilrcb1j84gri7gxcnv7910yf1sv61")))) > + (build-system gnu-build-system) > + (arguments > + `(#:tests? #f ; no tests available > + #:make-flags (list (string-append "CC=" ,(cc-for-target)) > + "LINUX_BUILD=1") > + #:modules ((guix build gnu-build-system) > + (guix build utils) > + (srfi srfi-26)) > + #:phases > + (modify-phases %standard-phases > + (delete 'configure) > + (replace 'install > + (lambda* (#:key outputs #:allow-other-keys) > + (let* ((out (string-append (assoc-ref outputs "out"))) > + (include (string-append out "/include")) > + (lib (string-append out "/lib")) > + (doc (string-append out "/share/doc/" ,name "-" ,version))) > + (for-each (cut install-file <> include) > + '("picoev.h" > + "picoev_epoll.c" > + "picoev_kqueue.c" > + "picoev_select.c")) > + (install-file "libpicoev.so" lib) > + (install-file "README.md" doc)) > + #t))))) > + (home-page "https://github.com/kazuho/picoev") > + (synopsis "Tiny portable event loop library") > + (description > + "This library provides a tiny event loop with a simple design, > +supporting only @code{select(2)}, @code{epoll(2)}, and @code{kqueue(2)}.") > + (license license:expat)))) Where did you get expat from? From looking at the files, that doesn't seem to be the case. > + > (define-public perl-danga-socket > (package > (name "perl-danga-socket") [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 987 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* [bug#45601] [PATCH 1/1] gnu: Add picoev. 2021-02-05 13:30 ` Christopher Baines @ 2024-06-10 16:19 ` Maxim Cournoyer 0 siblings, 0 replies; 19+ messages in thread From: Maxim Cournoyer @ 2024-06-10 16:19 UTC (permalink / raw) To: Ryan Prior, 45601; +Cc: Christopher Baines Hi Ryan, Christopher Baines <mail@cbaines.net> writes: > Ryan Prior via Guix-patches via <guix-patches@gnu.org> writes: > >> * gnu/packages/networking.scm (picoev): New variable. > > Hey, > > This look OK to me, although the license needs checking. > > Would you be able to send the entire series of patches tracked under > #45601? I'm not quite sure what's current and superseded by looking > through the various emails. Could you please reply to the feedback so far (for the whole series), and send a rebased series with proper GNU ChangeLog commit messages? vlang is now at 0.2.4. This is already 3 years old, so if you cannot do this for some reason I'm afraid I'll simply close it, which would be a waste; there seems to be some nice unbundling done here. Thanks for your contributions! -- Thanks, Maxim ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2024-06-10 16:26 UTC | newest] Thread overview: 19+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-01-01 19:23 [bug#45601] [PATCH 0/6] vlang 0.2 update Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 2/6] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 3/6] gnu: vlang: Use system tiny-bignum Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 4/6] gnu: vlang: Use system cJSON Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 5/6] gnu: vlang: Use system wyhash Ryan Prior via Guix-patches via 2021-01-01 19:27 ` [bug#45601] [PATCH 6/6] gnu: vlang: Fix v tools Ryan Prior via Guix-patches via 2021-01-01 20:46 ` [bug#45601] [PATCH 1/6] gnu: Add wyhash Leo Famulari 2021-01-01 21:19 ` [bug#45601] [PATCH] " Ryan Prior via Guix-patches via 2021-01-04 2:07 ` Leo Famulari 2021-01-03 0:09 ` [bug#45601] [PATCH] gnu: vlang: Update to 0.2 Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 0/2] Another vlang dependency plucked out (re: bug#45601) Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 1/2] gnu: Add picoev Ryan Prior via Guix-patches via 2021-01-04 1:46 ` [bug#45601] [PATCH 2/2] gnu: vlang: Use system picoenv Ryan Prior via Guix-patches via 2021-01-04 2:57 ` [bug#45601] [PATCH] gnu: Add wyhash Ryan Prior via Guix-patches via 2021-01-04 3:07 ` [bug#45601] [PATCH 0/1] Updated picoev patch based on feedback Ryan Prior via Guix-patches via 2021-01-04 3:07 ` [bug#45601] [PATCH 1/1] gnu: Add picoev Ryan Prior via Guix-patches via 2021-02-05 13:30 ` Christopher Baines 2024-06-10 16:19 ` Maxim Cournoyer
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).