unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Tanguy Le Carrour <tanguy@bioneland.org>
To: Jack Hill <jackhill@jackhill.us>
Cc: Guix <guix-devel@gnu.org>
Subject: Re: Packaging "single file"
Date: Tue, 5 Nov 2019 14:04:21 +0100	[thread overview]
Message-ID: <20191105130421.vpycyhng5uont7zu@rafflesia> (raw)
In-Reply-To: <alpine.DEB.2.20.1911041731240.11560@marsh.hcoop.net>

Hi Jack!


Le 11/04, Jack Hill a écrit :
> On Mon, 4 Nov 2019, Tanguy Le Carrour wrote:
> > I intended to ask this question later, but now that ungoogled-chromium
> > has been superseded by icecat, I find myself stuck!
> > 
> > Is it possible to package a single file? The "file" being a bash script or
> > a binary. Is there a package definition I can look into for an example?
> 
> I've had a need to package a bash wrapper around scp, and the module with it
> is below. It it, I use the trivial-build-system, and replaced occurrences of
> commands the script calls with full store paths.
> 
> Does this help?

It's a perfect example! Thanks! I'll do the same for rofi-pass!


> Where are you getting stuck?

I'm stuck with my UI tests! :-(

I was relying on `chromedriver` (packaged with ungoogled-chromium), but now
that it's been deprecated… I'm stuck! ^_^'

`geckodriver` is not packaged with icecat. This is why I wanted to a)
download it or b) package it.

The problem is that a) the version I download does not work (a problem
specific to Guix System, I guess, that would be solved by packaging…
another wild guess) and b) it's a bit of work to package.

But, all of sudden, I wonder if `geckodriver` could not be part of
icecat, like `chromedriver` was part of ungoogled-chromium?!
 

> (define-module (guix-at-duke packages utils)
>   #:use-module (gnu packages bash)
>   #:use-module (gnu packages ssh)
>   #:use-module (guix build-system trivial)
>   #:use-module (guix download)
>   #:use-module ((guix licenses) #:prefix license:)
>   #:use-module (guix packages))
> 
> (define-public duo-scp
>   (package
>    (name "duo-scp")
>    (version "0")
>    (source
>     (origin
>      (method url-fetch)
>      (uri "https://gitlab.oit.duke.edu/snippets/82/raw")
>      (sha256
>       (base32 "1mrf5451cj8010iq76866dli1hxa31rk8i993arf9dfyzws26v2b"))
>      (file-name name)))
>    (build-system trivial-build-system)
>    (arguments
>     `(#:modules ((guix build utils))
>       #:builder
>       (begin
> 	(use-modules (guix build utils))
> 	(let ((source (assoc-ref %build-inputs "source"))
> 	      (ssh (assoc-ref %build-inputs "openssh"))
> 	      (bash (assoc-ref %build-inputs "bash"))
> 	      (script "duo-scp")
> 	      (out (assoc-ref %outputs "out")))
> 	  (copy-file source script)
> 	  (substitute* script
> 		       (("/bin/bash") (string-append bash "/bin/bash"))
> 		       (("scp") (string-append ssh "/bin/scp")))
> 	  (chmod script #o555)
> 	  (install-file script (string-append out "/bin"))))))
>    (inputs
>     `(("bash" ,bash)
>       ("openssh" ,openssh)))
>    (home-page "https://gitlab.oit.duke.edu/snippets/82/raw")
>    (synopsis "User Duo Passcode with scp and login_duo")
>    (description "Wrapper script for scp that prompts for a passcode
> before calling scp.  This allows the user to supply a passcode from e.g. a Yubikey
> to avoid getting a Duo push or phone call when talking to an ssh server that uses
> the login_duo script for multifactor.")
>    (license license:cc0)))


Thanks again for the snippet!

-- 
Tanguy

  reply	other threads:[~2019-11-05 13:04 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-04 15:04 Packaging "single file" Tanguy Le Carrour
2019-11-04 22:37 ` Jack Hill
2019-11-05 13:04   ` Tanguy Le Carrour [this message]
2019-11-05 15:31     ` Jack Hill
2019-11-06  8:12     ` Make geckodriver part of Icecat package [Was: Packaging "single file"] Tanguy Le Carrour
2019-11-13  8:16       ` Tanguy Le Carrour

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191105130421.vpycyhng5uont7zu@rafflesia \
    --to=tanguy@bioneland.org \
    --cc=guix-devel@gnu.org \
    --cc=jackhill@jackhill.us \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).