Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Thomas Danckaert

From: Leo Famulari 
Subject: Re: Advice about GuixSD on Serveraptor?
Date: Tue, 21 Mar 2017 16:53:35 -0400


On Tue, Mar 21, 2017 at 04:46:20PM -0400, Leo Famulari wrote:
So what I'm doing here is trying to provide Serveraptor with a 
GuixSD

image that they'd offer to users.

People could regenerate the image themselves, but it would be 
difficult

to verify that it matches what is offered by Serveraptor.


And to clarify my previous question: Should this QEMU image be 
created
by me, or should it be created by a Guix maintainer as part of the 
Guix

release process?


Hi,

to add my 2 cents: I think it would be fine if you provided the 
image, if you are confident that it works.


When GuixSD becomes widely available on various hosting providers, 
the Guix maintainers cannot provide all those images (or guarantee 
their correctness) anyway (I imagine that typically an employee of 
such a service would create the image?).  Even now, when you provide 
an image to Serveraptor, you have no way to verify if Serveraptor 
provides the same image to their users (I think?).


Once Serveraptor provides the image you created (or any other GuixSD 
image) to its users, the responsibility lies with them.  
Serveraptor's users will have to trust Serveraptor (and, if they use 
your image, Serveraptor has to trust you, but it sounds like they 
already do :-) ).


Thomas



Re: Introducing ‘guix pack’

2017-03-22 Thread Federico Beffa
Andy Wingo  writes:

> On Mon 20 Mar 2017 15:14, l...@gnu.org (Ludovic Courtès) writes:
>
>> Federico Beffa  skribis:
>>
>>> If you provide an archive such as
>>> 'guile-2.2.0-pack-x86_64-linux-gnu.tar.lz' reachable from the main
>>> project page (especially without any warning about its intended
>>> purpose), I bet that many peoples will install it and keep it.  If more
>>> projects follow this example, we land to the above scenario where "rm
>>> -rf /gnu" is not practical at all.
>
> Replying to Federico: These are the same considerations as with Guix
> fwiw, unless you remove old profiles and "guix gc".

There is a very big difference.  The Guix binary installation pack
does include the 'guix' command which allows you to remove stuff from
the store.  Any other pack not including 'guix' does not.

Suppose that Guix pack bundles become popular and compare them to,
say, Mac style archives.  Let's go through Ludovic's analysis:

1. Composability: With Mac bundles you extract the archive in a
   directory.  With Guix packs it's essentially the same.
   
   i. Sharing of store items: What are the chances that two
   independent projects will generate packs from the same git checkout
   (or guix pull)?  Pretty low.  Therefore the amount of sharing
   between different packs will be pretty negligible.

   ii. Adding a program. Mac style: you just extract it.  With Guix
   pack it's essentially the same, but it creates a manually
   unmanageable network of links which entangle all packs.

   iii. Remove an item: Mac style: delete a directory.  With Guix pack
   the choice is: delete everything or keep everything.  That is, you
   keep obsolete programs/libraries with security holes on your system
   ready for exploitation and unnecessarily filling your disk, or
   ... start from scratch.  Is this composability?

2. Security: Mac style bundles are problematic, but at least you can
   easily delete old stuff and replace them with updated versions.
   Guix packs are worse: delete everything or keep it all.

3. Reproducibility: As long as you carefully take note from which git
   checkout you generate a Guix pack, Guix packs seems to be superior.
   Oh, don't you also depend on upsteam published archives of every
   single package in Guix?  They sometimes disappear or are replaced
   in place with different archives and so, after some time, your
   carefully noted git checkout will not build anymore.

4. Experimentation: Guix is great for that, but packs?  Are they
   useful for testing on other GNU/Linux systems?  Maybe.  But aren't
   all Guix packages built in isolated environments anyway?  So, do
   you really need packs to test on other systems?  Maybe, but
   probably not.

Don't get me wrong, I find that Guix proper has many great features,
but pack is not one of them.  

I find very disturbing when peoples advertise things hiding half of
the story to make them appear better than what they really are.

Fede



Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Ricardo Wurmus

Leo Famulari  writes:

> On Tue, Mar 21, 2017 at 04:46:20PM -0400, Leo Famulari wrote:
>> So what I'm doing here is trying to provide Serveraptor with a GuixSD
>> image that they'd offer to users.
>>
>> People could regenerate the image themselves, but it would be difficult
>> to verify that it matches what is offered by Serveraptor.
>
> And to clarify my previous question: Should this QEMU image be created
> by me, or should it be created by a Guix maintainer as part of the Guix
> release process?

I’m not sure.  I guess it would be better for users if it was signed by
a maintainer key, but on the other hand I don’t know if we can commit to
publishing QEMU images with every release.

Could we build an image with Hydra instead and just provide the latest
build to Serveraptor?  How would updates to the image be handled?  Do
they offer some sort of API to upload new images or is this a process
that depends on humans making decisions?

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net




Re: [GSoC] Development of Cuirass.

2017-03-22 Thread Ricardo Wurmus

Hi Mathieu,

> A majority of people in this community seems to adhere to political
> ideas related to feminism and LGBT causes and are very vocal about it.
> While I respect people having such conviction, the fact that those
> ideas/values are repeatedly presented as if every one should adhere to
> them is not welcoming for those who disagree.
>
> As a consequence I would rather spend my time working on Free Software
> projects that I consider more tolerant.

I find it sad that we have different interpretations of what it means
for projects to be tolerant, and I’m disappointed to see you leave like
that.  Like Ludo said: there’s nothing for any of us to lose in trying
what we can to make this project more welcoming than what is sadly the
norm in many software project.

A practical question: Will you continue to work on and maintain Cuirass
at your notabug repository or should someone here take over maintenance
of this project?  I was about to work on some patches and would like to
know if you decided to abandon Cuirass.

Thank you for you past contributions.

--
Ricardo

GPG: BCA6 89B6 3655 3801 C3C6  2150 197A 5888 235F ACAC
https://elephly.net




Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Leo Famulari
On Tue, Mar 21, 2017 at 09:06:09PM +, ng0 wrote:
> IN-Berlin wants a raw image (they have read our documentation).
> The way their system works is that you sent
> them your ssh pubkey, they initialize a basic Debian system depending on
> the size you chose, and you can login once you get the hostname etc.
> They have an out-of-band consoleserver where the ssh key is placed
> aswell for the machine.
> I don't work with this non-profit organization, but having a way to
> define ssh pubkeys in the system config would be super useful for this.
> Right now I'm about to create my own system and just sent it to them as
> soon as I feel up to it.
> If they could simply create the system in their infrastructure, that
> would be an incredible speedup and reproducible.
> I don't know much about the out of band consoleserver, I have to ask
> if that's somehow relevant or if it simply needs some initrd settings to
> expose it to the server.

Interesting! I'll probably take a look at this when I got some free
time.


signature.asc
Description: PGP signature


Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Leo Famulari
On Wed, Mar 22, 2017 at 08:36:19AM +0100, Thomas Danckaert wrote:

[...]

> the image?).  Even now, when you provide an image to Serveraptor, you have
> no way to verify if Serveraptor provides the same image to their users (I
> think?).

The "best" idea I had was to use a tool like mtree to hash every file on
the filesystem, and then compare it to the booted system. "Best" because
I think it's impractical :)


signature.asc
Description: PGP signature


Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Leo Famulari
On Wed, Mar 22, 2017 at 01:04:46PM +0100, Ricardo Wurmus wrote:
> Leo Famulari  writes:
> > And to clarify my previous question: Should this QEMU image be created
> > by me, or should it be created by a Guix maintainer as part of the Guix
> > release process?
> 
> I’m not sure.  I guess it would be better for users if it was signed by
> a maintainer key, but on the other hand I don’t know if we can commit to
> publishing QEMU images with every release.

Okay.

> Could we build an image with Hydra instead and just provide the latest
> build to Serveraptor?  How would updates to the image be handled?  Do
> they offer some sort of API to upload new images or is this a process
> that depends on humans making decisions?

It's not a bad idea to build it on Hydra. Hydra already builds a
usb-image / disk-image job [0], so we could add a qemu-image job, too.

I think that updates to the image would have to be handled manually. One
of us could send them a link to the new image and they'd make it
available to their users.

My expectation is that Serveraptor would offer our latest release, and
users would be expected to update their systems, as on bare-metal.

[0]
https://hydra.gnu.org/job/gnu/core-updates/usb-image.x86_64-linux



Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread Leo Famulari
On Wed, Mar 22, 2017 at 01:20:53PM -0400, Leo Famulari wrote:
> It's not a bad idea to build it on Hydra. Hydra already builds a
> usb-image / disk-image job [0], so we could add a qemu-image job, too.

Actually, we used to build a qemu-image on Hydra, but we removed because
it was troublesome and unused.

https://git.savannah.gnu.org/cgit/guix.git/commit/?id=a3a27745013f3e5a287de3bf0187b2f72beb6965

Maybe we should try again :)


signature.asc
Description: PGP signature


Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread ng0
Leo Famulari transcribed 2.0K bytes:
> On Tue, Mar 21, 2017 at 09:06:09PM +, ng0 wrote:
> > IN-Berlin wants a raw image (they have read our documentation).
> > The way their system works is that you sent
> > them your ssh pubkey, they initialize a basic Debian system depending on
> > the size you chose, and you can login once you get the hostname etc.
> > They have an out-of-band consoleserver where the ssh key is placed
> > aswell for the machine.
> > I don't work with this non-profit organization, but having a way to
> > define ssh pubkeys in the system config would be super useful for this.
> > Right now I'm about to create my own system and just sent it to them as
> > soon as I feel up to it.
> > If they could simply create the system in their infrastructure, that
> > would be an incredible speedup and reproducible.
> > I don't know much about the out of band consoleserver, I have to ask
> > if that's somehow relevant or if it simply needs some initrd settings to
> > expose it to the server.
> 
> Interesting! I'll probably take a look at this when I got some free
> time.

I'll write an email to IN-Berlin asking about the consoleserver this
week.
If it's nothing special, we could provide this bare image, and people
could download it as the GuixSD with ssh + whatever is needed for it to
work out in server context as a start.




Re: Continuing the work on the recipes related to GNU Ring

2017-03-22 Thread Adonay Felipe Nogueira
Today, I bring you some good and bad news! :)

* The good news

I'm attaching an improved version of my previous set of recipes.

This should allow *GuixSD* users to use GNU Ring straight away.

However, both Guix users (in foreign distributions) and GuixSD users,
must be advised that this is a work-in-progress, and there are still
untested parts, or parts that were overlooked due to my lack of
experience as developer and all things related to "ld"-stuff and with
other build and developer tools and practices.

If you really want to help out, even if just for testing, please read
on.

* The bad news

After installing at least ring-client-gnome, Guix now suggests the user
to add a custom XDG_DATA_DIRS variable to his "~/.profile" file. For
Guix users in foreign distributions, this might cause an unwanted log-in
loop, described in Guix bug #26202
([[http://lists.gnu.org/archive/html/bug-guix/2017-03/msg00200.html]] or
[[https://debbugs.gnu.org/cgi/bugreport.cgi?bug=26202]]).

* What was not tested

- Everything, including integration with GNOME Evolution data server
  (for contact list and management), both for GNOME Evolution comming
  from Guix, from GuixSD, or from a foreign distribution (because I
  don't use GNOME Evolution, although it comes by default in Trisquel
  7).

* What might need improvement

- Convince Ring to send their patches to their respective upstreams! :D

- Talk to Ring project to see if so much customization is really
  needed. Perhaps they have patches and "rules.mak" files only so that
  their work "gets lighter", but that might not be a requirement.

- For some reason, the Ring daemon (that is provided by "libring"
  package) doesn't come installed with Ring GNOME client (provided by
  "ring-client-gnome").

- Even after installed, the Ring daemon is actually located at
  "${HOME}/.guix-profile/lib/ring/dring". I guess this deosn't sound
  right for an executable.

- Look in the source code of the newly added packages for things I have
  missed, that might need to be corrected, like bundled stuff, or paths
  that should be pointing to store references.

- See section "What was not tested".

- Split the Ring tarball (ring[something].tar.gz) into useful separated
  ones.

  - Or find a way to get each part separatedly from their git
repositories, making sure that we are indeed getting the code
corresponding to beta 2.

- For more things to do, read the attached package definitions file.

* Notes for package maintainers

- All the packages are either new or heavily modified to follow patches
  and "rules.mak" files present inside
  "ring[something].tar.gz/ring-project/daemon/contrib/src".

- The only packages that are upgrades to existing ones (but still
  heavily modified) are argon2 and opendht.

* Notes for testers

- When installing:

  - Disable grafts (use `--no-grafts` option), otherwise you might be
getting the original argon2 and opendht recipes.

  - Install "libring" and "ring-client-gnome".

- After installing:

  - If Guix tells you to change XDG_DATA_DIRS in your "~/.profile",
don't do it, instead copy what is suggested to be done, and write it
as a comment (prefixed with "#") to that file, and see the links I
referenced so far. You'll still need what was suggested by Guix, so
commenting it is an useful way to save it for later.

- Before using (each time):

  - In a new terminal, do:

1. Take the line Guix suggested, and paste it (remove the "#" prefix,
   of course), and press Return (or Enter) to use it as command.

2. Now run: ".guix-profile/lib/ring/dring" -p

- This will start the Ring daemon in persistent mode, and make the
  current terminal busy (unresponsible, ignoring almost all
  input). It'll only exit if you press Ctrl + C (or force it to
  terminate.

4. Do step 1 again in another terminal.

5. Finally, in this other terminal, run "gnome-ring" client.

-- 
- [[https://libreplanet.org/wiki/User:Adfeno]]
- Palestrante e consultor sobre /software/ livre (não confundir com
  gratis).
- "WhatsApp"? Ele não é livre, por isso não uso. Iguais a ele prefiro
  Ring, ou Tox. Quer outras formas de contato? Adicione o vCard que
  está no endereço acima aos teus contatos.
- Pretende me enviar arquivos .doc, .ppt, .cdr, ou .mp3? OK, eu
  aceito, mas não repasso. Entrego apenas em formatos favoráveis ao
  /software/ livre. Favor entrar em contato em caso de dúvida.
- "People said I should accept the world. Bullshit! I don't accept the
  world."
 --- Richard Stallman


ring.scm
Description: Binary data


Re: Continuing the work on the recipes related to GNU Ring

2017-03-22 Thread Leo Famulari
On Wed, Mar 22, 2017 at 04:20:02PM -0300, Adonay Felipe Nogueira wrote:
> * Notes for testers
> 
> - When installing:
> 
>   - Disable grafts (use `--no-grafts` option), otherwise you might be
> getting the original argon2 and opendht recipes.

Can you clarify this? Not using grafts will mean that testers will lack
a large number of security fixes applied to the Ring dependency graph.


signature.asc
Description: PGP signature


Re: Continuing the work on the recipes related to GNU Ring

2017-03-22 Thread Adonay Felipe Nogueira
Oh... So perhaps I misunderstood what "grafts" mean.

The first time I tested my custom argon2 and opendht recipes, they where
built so quickly that I thought it was using the "old" recipes.

Please ignore my suggestion for using `--no-grafts`. :)



Re: Advice about GuixSD on Serveraptor?

2017-03-22 Thread ng0
ng0 transcribed 1.3K bytes:
> Leo Famulari transcribed 2.0K bytes:
> > On Tue, Mar 21, 2017 at 09:06:09PM +, ng0 wrote:
> > > IN-Berlin wants a raw image (they have read our documentation).
> > > The way their system works is that you sent
> > > them your ssh pubkey, they initialize a basic Debian system depending on
> > > the size you chose, and you can login once you get the hostname etc.
> > > They have an out-of-band consoleserver where the ssh key is placed
> > > aswell for the machine.
> > > I don't work with this non-profit organization, but having a way to
> > > define ssh pubkeys in the system config would be super useful for this.
> > > Right now I'm about to create my own system and just sent it to them as
> > > soon as I feel up to it.
> > > If they could simply create the system in their infrastructure, that
> > > would be an incredible speedup and reproducible.
> > > I don't know much about the out of band consoleserver, I have to ask
> > > if that's somehow relevant or if it simply needs some initrd settings to
> > > expose it to the server.
> > 
> > Interesting! I'll probably take a look at this when I got some free
> > time.
> 
> I'll write an email to IN-Berlin asking about the consoleserver this
> week.
> If it's nothing special, we could provide this bare image, and people
> could download it as the GuixSD with ssh + whatever is needed for it to
> work out in server context as a start.
> 
I just realized the last sentence is not good.
Correction:
If IN-Berlin uses (or needs) nothing special for the consoleserver to
make use of the virtual servers within IN-Berlin infrastructure, I think
it would be best if we (as Guix) could provide an extended bare image
for servers which would include ssh-daemon on default port with password
login enabled, where the password is not empty. That's a workaround I
can imagine to be generic enough for all use cases.
For the one of IN-Berlin and maybe similar hosters who use ssh pubkeys,
it would be great to document for them how to recreate this image in
easy steps and insert the clients ssh pubkey for the root account (or an
named user) on the system.

What do you think about this?




[PATCH] gnu: ustr: Fix build with GCC 5.

2017-03-22 Thread rennes

Hello,
This patch allows to compile the 'ustr' package with gcc-5.
The 'ustr' project hasn't been active since 2008, then I've taken the 
Debian project patch.


The patch is for core-updates branch!.From 9d78ea64c037d2eea10d81093a3f8caae8d6d2e5 Mon Sep 17 00:00:00 2001
From: rennes 
Date: Wed, 22 Mar 2017 14:41:40 -0600
Subject: [PATCH] gnu: ustr: Fix build with GCC 5.

* gnu/packages/patches/ustr-fix-build-with-gcc-5.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/textutils.scm (ustr)[source]: Add patch.
---
 gnu/local.mk   |   1 +
 .../patches/ustr-fix-build-with-gcc-5.patch| 881 +
 gnu/packages/textutils.scm |   4 +-
 3 files changed, 885 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/ustr-fix-build-with-gcc-5.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 4d85f15a0..f6c71f4c1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -960,6 +960,7 @@ dist_patch_DATA =		\
   %D%/packages/patches/unzip-initialize-symlink-flag.patch	\
   %D%/packages/patches/unzip-overflow-long-fsize.patch		\
   %D%/packages/patches/unzip-remove-build-date.patch		\
+  %D%/packages/patches/ustr-fix-build-with-gcc-5.patch		\
   %D%/packages/patches/util-linux-tests.patch			\
   %D%/packages/patches/util-linux-CVE-2017-2616.patch		\
   %D%/packages/patches/upower-builddir.patch			\
diff --git a/gnu/packages/patches/ustr-fix-build-with-gcc-5.patch b/gnu/packages/patches/ustr-fix-build-with-gcc-5.patch
new file mode 100644
index 0..0bb22d8dd
--- /dev/null
+++ b/gnu/packages/patches/ustr-fix-build-with-gcc-5.patch
@@ -0,0 +1,881 @@
+This patch allows to compile the 'ustr' package with gcc-5.
+
+The 'ustr' project hasn't been active since 2008.
+
+The patch was made by the Debian project:
+https://packages.debian.org/stretch/libustr-1.0-1
+
+From: Václav Ovsík 
+Subject: [PATCH] fixes/gnu-inline
+
+This patch adds `__attribute__ ((gnu_inline))' into prototype macros
+before `inline' to force GNU89 behaviour of inline functions
+in C99 mode.
+See http://www.gnu.org/software/gcc/gcc-5/porting_to.html
+
+Signed-off-by: Václav Ovsík 
+
+---
+ ustr-b-dbg-code.c   | 8 
+ ustr-b-opt-code.c   | 8 
+ ustr-cmp-dbg-code.c | 8 
+ ustr-cmp-opt-code.c | 8 
+ ustr-compiler.h | 4 ++--
+ ustr-fmt-dbg-code.c | 8 
+ ustr-fmt-opt-code.c | 8 
+ ustr-ins-dbg-code.c | 8 
+ ustr-ins-opt-code.c | 8 
+ ustr-io-dbg-code.c  | 8 
+ ustr-io-opt-code.c  | 8 
+ ustr-main-dbg-code.c| 2 +-
+ ustr-main-opt-code.c| 2 +-
+ ustr-parse-dbg-code.c   | 8 
+ ustr-parse-opt-code.c   | 8 
+ ustr-pool-dbg-code.c| 8 
+ ustr-pool-opt-code.c| 8 
+ ustr-replace-dbg-code.c | 8 
+ ustr-replace-opt-code.c | 8 
+ ustr-sc-dbg-code.c  | 8 
+ ustr-sc-opt-code.c  | 8 
+ ustr-set-dbg-code.c | 8 
+ ustr-set-opt-code.c | 8 
+ ustr-split-dbg-code.c   | 8 
+ ustr-split-opt-code.c   | 8 
+ ustr-spn-dbg-code.c | 8 
+ ustr-spn-opt-code.c | 8 
+ ustr-srch-dbg-code.c| 8 
+ ustr-srch-opt-code.c| 8 
+ ustr-sub-dbg-code.c | 8 
+ ustr-sub-opt-code.c | 8 
+ ustr-utf8-dbg-code.c| 8 
+ ustr-utf8-opt-code.c| 8 
+ 33 files changed, 124 insertions(+), 124 deletions(-)
+
+diff --git a/ustr-b-dbg-code.c b/ustr-b-dbg-code.c
+index 4a7fdac..60e383e 100644
+--- a/ustr-b-dbg-code.c
 b/ustr-b-dbg-code.c
+@@ -3,11 +3,11 @@
+ #include "ustr-conf-debug.h"
+ #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
+ #define USTR_CONF_e_PROTO  extern
+-#define USTR_CONF_i_PROTO  extern inline
++#define USTR_CONF_i_PROTO  extern  __attribute__ ((gnu_inline)) inline
+ #define USTR_CONF_E_PROTO  extern
+-#define USTR_CONF_I_PROTO  extern inline
++#define USTR_CONF_I_PROTO  extern  __attribute__ ((gnu_inline)) inline
+ #define USTR_CONF_EI_PROTO extern
+-#define USTR_CONF_II_PROTO extern inline
++#define USTR_CONF_II_PROTO extern  __attribute__ ((gnu_inline)) inline
+ #include "ustr-main.h"
+ #undef  USTR_CONF_INCLUDE_CODEONLY_HEADERS
+ #define USTR_CONF_INCLUDE_CODEONLY_HEADERS 1
+@@ -16,5 +16,5 @@
+ #undef  USTR_CONF_I_PROTO
+ #define USTR_CONF_I_PROTO
+ #undef  USTR_CONF_II_PROTO
+-#define USTR_CONF_II_PROTO inline
++#define USTR_CONF_II_PROTO  __attribute__ ((gnu_inline)) inline
+ #include "ustr-b.h"
+diff --git a/ustr-b-opt-code.c b/ustr-b-opt-code.c
+index 45e9e87..4011898 100644
+--- a/ustr-b-opt-code.c
 b/ustr-b-opt-code.c
+@@ -3,11 +3,11 @@
+ #include "ustr-conf.h"
+ #define USTR_CONF_USE_DYNAMIC_CONF USTR_CONF_HAVE_DYNAMIC_CONF
+ #define USTR_CONF_e_PROTO  extern
+-#define USTR_CONF_i_PROTO  extern inline
++#define USTR_CONF_i_PROTO  extern  __attribute__ ((gnu_inline)) inline
+ #define USTR_CONF_E_PROT