[PATCH] gnu: Add rset.

  • Open
  • quality assurance status badge
Details
2 participants
  • Sarah Morgensen
  • Stefan Reichör
Owner
unassigned
Submitted by
Stefan Reichör
Severity
normal
S
S
Stefan Reichör wrote on 11 May 2021 22:58
(address . guix-patches@gnu.org)(name . Stefan Reichör)(address . stefan@xsteve.at)
20210511205831.165732-1-stefan@xsteve.at
* gnu/packages/admin.scm (rset): New variable.
---
gnu/packages/admin.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

Toggle diff (48 lines)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index fdcbf28a6a..c17609c442 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -3371,6 +3371,41 @@ Intel DRM Driver.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:expat)))
+(define-public rset
+ (package
+ (name "rset")
+ (version "2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eradman/rset/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "150my3lvql3m6jn1c12x81jx990nqh5g02v6r9a5j51ds39shr39"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (invoke "./configure"))))
+ #:make-flags
+ (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
+ ,(string-append "CC=" (cc-for-target)))
+ #:tests? #f)) ; TODO: test target requires ruby, curl, uname
+ (home-page "http://scriptedconfiguration.org")
+ (synopsis "Configure systems using any scripting language")
+ (description
+ "rset(1) operates by staging files on a remote system, then executing
+instructions embedded in the pln(5) files. Any interpreter capable of running
+scripts read over a pipe may be specified. The bundled utilities rinstall(1)
+and rsub(1) provide an easy means of installing and modifying configuration
+files, and capabilities are added by writing utility scripts which are sent
+along with configuration data.")
+ (license license:isc)))
+
(define-public fabric
(package
(name "fabric")
--
2.25.1
S
S
Sarah Morgensen wrote on 7 Aug 2021 08:08
control message for bug #48369
(address . control@debbugs.gnu.org)
86tuk1g528.fsf@mgsn.dev
merge 48369 48364 48363 48362 48361 48360
quit
S
S
Sarah Morgensen wrote on 7 Aug 2021 08:44
(address . control@debbugs.gnu.org)
86sfzlg3ee.fsf@mgsn.dev
unmerge 48369
quit
S
S
Sarah Morgensen wrote on 9 Aug 2021 02:26
Re: bug#48369: [PATCH] gnu: Add rset.
(name . Stefan Reichör)(address . stefan@xsteve.at)(address . 48369@debbugs.gnu.org)
867dgvlaz1.fsf@mgsn.dev
Hello Stefan,

Thanks for the patch. Sorry it's taken so long for someone to take a
look at this! This utility certainly looks interesting.

I'm not a committer, but I tested out this patch. It doesn't apply on
master anymore, so I manually applied it and was able to build it.
However, it looks like it expects a number of utilities to be in
specific places, such as /usr/bin/install (which caused rinstall to
just... do nothing).

It could also be problematic if it's attempting to invoke such absolute
paths on a remote machine. I'm not sure exactly how rset works, though.

I was able to enable and pass tests with the modifications in the patch
attached below. I don't know rset itself though, so I don't know if
there might be other hardcoded things that need to be substituted. I
also bumped it to 2.2 and made a few minor tweaks to the description.

I noticed you didn't add a copyright line, but I wasn't sure whether the
omission was intentional, so I didn't add one for you. Go ahead and send
an updated patch to this bug number (48369@debbugs.gnu.org) if you'd
like to add one, or make any other changes :)

The following is after the modifications I've made:

* Package review checklist (WIP - comments welcome!)
A check indicates that I've verified the item.

1. [X] Package builds (guix build package)
[X] x86_64 [ ] aarch64 [ ] armhf [ ] powerpc64le
[ ] i686 [ ] i586 [ ] mips64le
2. [X] Build is reproducible (guix build --rounds=n package)
3. [X] Tests enabled (if available) or disabled with in-source comment
4. [X] No extraneous dependencies (guix size package)
5. [X] No unnecessary pre-built binaries/blobs
6. [X] Dependencies unvendored when available in Guix
7. [X] Cross-compile friendly (cc-for-target, patches with inputs)
8. [X] License matches source
9. [X] No problematic lints (guix lint package)
10. [X] Formatting follows guidelines
- [X] Lines wrap at 80 characters
- [X] Indentation passes etc/indent-code.el
- [X] Two spaces used between sentences

New packages:
11. [X] Source url is robust
* mirror:// used with url-fetch when possible
* No auto-generated archives from source repo (prefer cloning)
12. [X] Synopsis is short, descriptive, and meaningful to a wide audience
13. [X] Description is objective, takes 5-10 lines, uses full sentences,
and provides the information users need to decide whether the
software fits their needs.

Stefan Reichör <stefan@xsteve.at> writes:

Toggle quote (51 lines)
> * gnu/packages/admin.scm (rset): New variable.
> ---
> gnu/packages/admin.scm | 35 +++++++++++++++++++++++++++++++++++
> 1 file changed, 35 insertions(+)
>
> diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
> index fdcbf28a6a..c17609c442 100644
> --- a/gnu/packages/admin.scm
> +++ b/gnu/packages/admin.scm
> @@ -3371,6 +3371,41 @@ Intel DRM Driver.")
> (supported-systems '("i686-linux" "x86_64-linux"))
> (license license:expat)))
>
> +(define-public rset
> + (package
> + (name "rset")
> + (version "2.1")
> + (source
> + (origin
> + (method git-fetch)
> + (uri (git-reference
> + (url "https://github.com/eradman/rset/")
> + (commit version)))
> + (file-name (git-file-name name version))
> + (sha256
> + (base32 "150my3lvql3m6jn1c12x81jx990nqh5g02v6r9a5j51ds39shr39"))))
> + (build-system gnu-build-system)
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (replace 'configure
> + (lambda* (#:key outputs #:allow-other-keys)
> + (invoke "./configure"))))
> + #:make-flags
> + (list (string-append "PREFIX=" (assoc-ref %outputs "out"))
> + ,(string-append "CC=" (cc-for-target)))
> + #:tests? #f)) ; TODO: test target requires ruby, curl, uname
> + (home-page "http://scriptedconfiguration.org")
> + (synopsis "Configure systems using any scripting language")
> + (description
> + "rset(1) operates by staging files on a remote system, then executing
> +instructions embedded in the pln(5) files. Any interpreter capable of running
> +scripts read over a pipe may be specified. The bundled utilities rinstall(1)
> +and rsub(1) provide an easy means of installing and modifying configuration
> +files, and capabilities are added by writing utility scripts which are sent
> +along with configuration data.")
> + (license license:isc)))
> +
> (define-public fabric
> (package
> (name "fabric")
Subject: [PATCH] gnu: Add rset.

* gnu/packages/admin.scm (rset): New variable.
---
gnu/packages/admin.scm | 79 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 79 insertions(+)

Toggle diff (101 lines)
diff --git a/gnu/packages/admin.scm b/gnu/packages/admin.scm
index eda269f148..4bf17d57e5 100644
--- a/gnu/packages/admin.scm
+++ b/gnu/packages/admin.scm
@@ -142,6 +142,7 @@
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages web)
+ #:use-module (gnu packages wget)
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg))
@@ -3425,6 +3426,84 @@ Intel DRM Driver.")
(supported-systems '("i686-linux" "x86_64-linux"))
(license license:expat)))
+(define-public rset
+ (package
+ (name "rset")
+ (version "2.2")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/eradman/rset/")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0dk75an8axf4480lirwj1vyq1nd18kq5lwz6gdg6hgk3a4rwpv8j"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:make-flags (list (string-append "PREFIX=" %output)
+ (string-append "CC=" ,(cc-for-target)))
+ #:test-target "test"
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'patch-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "rutils.c"
+ (("/usr/bin/install")
+ (string-append (assoc-ref inputs "coreutils") "/bin/install")))
+ (substitute* "config.h"
+ (("(LOCAL_INTERPRETER \")/bin/sh" _ start)
+ (string-append start (assoc-ref inputs "bash") "/bin/sh")))
+ ;; Paths on Guix tend to be much longer, so increase buffer size.
+ (substitute* "input.h"
+ (("#define PLN_OPTION_SIZE 64")
+ "#define PLN_OPTION_SIZE 128"))))
+ (add-after 'patch-paths 'patch-tests
+ (lambda _
+ ;; Input files must be writable for pipe tests.
+ (for-each make-file-writable (find-files "tests/input"))
+ (substitute* (find-files "tests")
+ (("(#!|local_interpreter=)/bin/sh" _ start)
+ (string-append start (which "sh"))))
+ (substitute* '("tests/stubs/ssh" "tests/stubs/tar")
+ (("/bin/echo") (which "echo")))
+ (substitute* "tests/test_miniquark.rb"
+ ;; Make sure the test can see PATH.
+ ((":unsetenv_others=>true") ":unsetenv_others=>false"))
+ (substitute* '("tests/cmd_pipe_stdin.c" "tests/test_rset.rb")
+ (("/bin/cat") (which "cat"))
+ ;; /bin/cat is in a fixed-size buffer, so increase the size.
+ (("char \\*cmd_argv\\[16\\];") "char *cmd_argv[256];"))
+ (substitute* "tests/test_rset.rb"
+ (("output_size: 20") "output_size: 66")
+ (("strlen: 20") "strlen: 66")
+ (("/usr/bin/env ruby") (which "ruby"))
+ (("\"/bin/sh") (string-append "\"" (which "sh")))
+ ;; Make the sure the test can see our PATH.
+ (("\\{\"PATH\"=>\"/bin:/usr/bin\"\\}, ") ""))))
+ (replace 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; ./configure must be called with no arguments, or it fails.
+ (invoke "./configure"))))))
+ (inputs
+ `(("coreutils" ,coreutils)
+ ("bash" ,bash-minimal)))
+ (native-inputs
+ `(("ruby" ,ruby)
+ ("wget" ,wget)
+ ("inetutils" ,inetutils)))
+ (home-page "http://scriptedconfiguration.org")
+ (synopsis "Configure systems using any scripting language")
+ (description
+ "@command{rset} operates by staging files on a remote system, then
+executing instructions embedded in the @code{pln(5)} (Progressive Language
+Notation) files. Any interpreter capable of running scripts read over a pipe
+may be specified. The bundled utilities @command{rinstall} and @command{rsub}
+provide a means of installing and modifying configuration files, and
+capabilities are added by writing utility scripts which are sent along
+with configuration data.")
+ (license license:isc)))
+
(define-public neofetch
(package
(name "neofetch")

base-commit: c8e2be3b32fe784a9db52d8a1a12902ab12ae7cb
--
2.31.1
--
Sarah
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 48369@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 48369
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch