unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: david larsson <david.larsson@selfhosted.xyz>
To: Maxime Devos <maximedevos@telenet.be>
Cc: 47704@debbugs.gnu.org
Subject: [bug#47704] [PATCH] services: mysql: Add extra-environment as configuration option.
Date: Sun, 11 Apr 2021 20:07:15 +0200	[thread overview]
Message-ID: <7d2d1250a3e87ac67c80897bffe0b82c@selfhosted.xyz> (raw)
In-Reply-To: <dbec1cbdca95fa8997f37ae8455b80b2bca25546.camel@telenet.be>

Hi Maxime!

On 2021-04-11 17:33, Maxime Devos wrote:
> Please corect the galera package to refer to the coreutils (ls, stat, 
> ...)
> by absolute file name instead, using something like
> 
> (add-after 'install
>   (substitute* "INSTALL-LOCATION/wsrep_sst_rsync"
>     (("\\bls\\b") (string-append (assoc-ref inputs "coreutils") 
> "/bin/ls"))
>     ...))
> 
> (Likewise for rsync, gawk, iproute ...)
> 
> Don't use (which "ls") instead of string-append + assoc-ref! (which 
> "ls") is
> incorrect when cross-compiling;
> 
> That way, people don't have to fiddle with PATH in their configuration 
> file.

I think you misundestood here - these rsync, gawk, iproute etc are 
executed as part of scripts in the mysqld/bin package output folder (see 
`ls -la $(dirname $(readlink -f $(which mysqld)))/` ) because the Galera 
add-on was (at least partially) merged into the regular mariadb sources, 
so the scripts where the binaries are needed are not from the galera 
package outputs but the mysql one. The galera package in guix master 
today only provides the #$galera "/lib/libgalera_smm.so file. I agree it 
would be nice to patch all the shell scripts in the $#mysql/bin folder 
but this would 1. require maintaining all the additional patching of 
those scripts as part of the mysql package and 2. since custom 
wsrep_sst_<X> shell scripts are possible and are usually added to 
/usr/bin/wsrep_sst_<X> those binaries will also require setting 
additional environment variables or the same type of patching (which 
would therefore "require" this patch to make it easier).

> If possible, consider writing a "system test" automatically testing
> some very basic functionality of mariadb + galera 
> (gnu/tests/databases.scm).

I would have liked to, but Im sorry - I do not have the time/skill for 
this for the time being. I hope the current patch is simple enough that 
an additional test is not currently needed.

>> I ran these commands to test:
>> guix pull --url=/home/user1/src/guix --profile=/tmp/guix.master
>> --disable-authentication --allow-downgrades ;
>> GUIX_PROFILE="/tmp/guix.master" ; . "$GUIX_PROFILE/etc/profile" ; guix
>> system reconfigure config.scm --fallback --allow-downgrades
>> 
>> ------------------------------------------------------------------
>> 
>> (extra-environment #~(list ...
>> 
>> "USER=mysql"
>> "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt"
>> "SSL_CERT_DIR=/run/current-system/profile/etc/ssl/certs"))
> 
> It seems extra-environment is still useful.  "USER=mysql" should 
> probably be
> added automatically, though (see my proposal below).

Yes, in particular for custom wsrep scripts. The "USER=mysql" may not be 
needed per se for the example snippet config I sent earlier as I did not 
make sure that the list of environment variables there were the minimal 
amount needed; I mainly hoped to provide a repeatable example of 
something to test with.

> Perhaps you could extend "mysql-configuration" with a "galera" field
> (with #f as default)?  Theoretical example:
> 
> (mysql-configuration
>   (port A-DIFFERENT-PORT)
>   ;; [...] other fields
>   (galera
>     (package my-version-of-galera) ; optional
>     (cluster-name "test_cluster")
>     (cluster-address "gcom://...")
>     (synchronization-method 'rsync)
>     (node-adress "redacted")
>     (node-name "librem13v3guixsd")))
> 
> .. and modify mysql-service-type to insert appropriate configuration 
> entries
> and perhaps add things to the PATH of the shepherd service as 
> appropriate.
> 
> Escape hatches like "extra-content" are useful, but this seems a bit
> neater.

This looks nice! I agree that something like what you show here is the 
better option, at the same time I don't have the time/skill to provide a 
patch with a well-featured interface to the galera options for the time 
being. The "escape hatch" would therefore be very useful for now, and 
less hassle to maintain - compare with for example the vpn service and 
the amount of emails in the lists regarding lack of options that could 
have easily been added via some g-expression strings. In general I don't 
see the harm in providing both "the escape hatch" way to add options to 
a configuration file and the guile interface which is otherwise nicer 
(IMO).

>> ------------------------------------------------------------------
>> 
>> Please someone also review [bug#47517] [PATCH] gnu: nginx: Enable 
>> stream
>> module
> 
> I'll take a look at it.

Thanks!

Best regards,
David




  reply	other threads:[~2021-04-11 18:08 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-11  8:44 [bug#47704] [PATCH] services: mysql: Add extra-environment as configuration option david larsson
2021-04-11 15:33 ` Maxime Devos
2021-04-11 18:07   ` david larsson [this message]
2021-04-11 20:44     ` Maxime Devos
2021-04-12 18:06       ` david larsson
2021-04-12 20:09         ` Maxime Devos
2021-04-13 16:58           ` bug#47704: " Leo Prikler
2021-04-13 22:29             ` [bug#47704] " Julien Lepiller
2021-04-13 22:38               ` Leo Prikler
2021-04-13 22:56                 ` Julien Lepiller
2021-04-19  9:59                   ` Leo Prikler
2021-04-27 18:15                     ` david larsson
2021-04-27 18:47                       ` Leo Prikler

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=7d2d1250a3e87ac67c80897bffe0b82c@selfhosted.xyz \
    --to=david.larsson@selfhosted.xyz \
    --cc=47704@debbugs.gnu.org \
    --cc=maximedevos@telenet.be \
    /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).