Re: 01/06: gnu: llvm, clang: Update to 6.0.0.

2018-04-07 Thread Mark H Weaver
Hi Marius,

mba...@fastmail.com (Marius Bakke) writes:

> mbakke pushed a commit to branch master
> in repository guix.
>
> commit 9bdbabe963e48bcac11c053a38d990873ca48dca
> Author: Marius Bakke 
> Date:   Sat Mar 31 22:04:44 2018 +0200
>
> gnu: llvm, clang: Update to 6.0.0.

Thanks for this, but ...

> +  ;; Link to libclang_rt files from clang-runtime.
> +  ;; This substitution needed slight adjustment in 
> 3.8.
> +  (if (< 3.8 (string->number ,(version-major+minor
> +   (package-version
> +clang-runtime
> +  (substitute* "lib/Driver/Tools.cpp"
> +(("TC\\.getDriver\\(\\)\\.ResourceDir")
> + (string-append "\"" compiler-rt "\"")))
> +  (substitute* "lib/Driver/ToolChain.cpp"
> +(("getDriver\\(\\)\\.ResourceDir")
> + (string-append "\"" compiler-rt "\""

The version comparison code above is incorrect.  This code will judge
version 3.10 to be older than 3.8.

'string->number' is never a sensible procedure to apply to version
numbers with more than one component, because it is not injective, let
alone order-preserving.  For example, "3.1" and "3.10" map to the same
number 3.1, although they are different versions.

I suggest that you use 'version-compare', 'version>?', or 'version>=?'
from (guix utils).  Note that these are not available to build-side
code, so the entire 'if' should be lifted to client-side code, which is
better anyway.  Maybe something like this (untested):

;; Link to libclang_rt files from clang-runtime.
;; This substitution needed slight adjustment in 3.8.
,(let ((runtime-version (version-major+minor
 (package-version
  clang-runtime
   (if (version>? runtime-version "3.8")
   '(substitute* "lib/Driver/Tools.cpp"
  (("TC\\.getDriver\\(\\)\\.ResourceDir")
   (string-append "\"" compiler-rt "\"")))
   '(substitute* "lib/Driver/ToolChain.cpp"
  (("getDriver\\(\\)\\.ResourceDir")
   (string-append "\"" compiler-rt "\"")

What do you think?

  Mark



Re: Python applications that are also libraries

2018-04-07 Thread Hartmut Goebel
Am 06.04.2018 um 14:12 schrieb Ricardo Wurmus:
> The point here is that in the library case inputs must be propagated,
> whereas in the case where only the executables are used the inputs don’t
> have to be propagated.
>
> Separating them in two outputs doesn’t address this problem as far as I
> can see.
Using the venv-based wrapper I describe in


Re: a blog post

2018-04-07 Thread Hartmut Goebel
Am 06.04.2018 um 10:58 schrieb Catonano:
> It's about Guix, Guile and Free Software in general. From my very own
> point of view

Quote:

[org.mode…] as far as I understand some Google employees worked on it.

Does one become blessed and enlightened by getting employed by Gugle? Is
Gugle a magic guild?

Sorry, can't stand this google devoutness.

-- 
Regards
Hartmut Goebel

| Hartmut Goebel  | h.goe...@crazy-compilers.com   |
| www.crazy-compilers.com | compilers which you thought are impossible |




Re: a blog post

2018-04-07 Thread Tobias Geerinckx-Rice

On 2018-04-07 11:53, Hartmut Goebel wrote:

Am 06.04.2018 um 10:58 schrieb Catonano:

It's about Guix, Guile and Free Software in general. From my very own
point of view


Quote:

[org.mode…] as far as I understand some Google employees worked on 
it.


Does one become blessed and enlightened by getting employed by Gugle? 
Is

Gugle a magic guild?


Who knows? Who cares?

I wonder why you think this an appropriate reply to a blog post that 
clearly implies neither, and how it will influence people still 
considering writing about Guix.


Kind regards,

T G-R

Sent from a Web browser. Excuse or enjoy my brevity.



Re: a blog post

2018-04-07 Thread Catonano
2018-04-07 11:53 GMT+02:00 Hartmut Goebel :

> Am 06.04.2018 um 10:58 schrieb Catonano:
> > It's about Guix, Guile and Free Software in general. From my very own
> > point of view
>
> Quote:
>
> [org.mode…] as far as I understand some Google employees worked on it.
>
> Does one become blessed and enlightened by getting employed by Gugle? Is
> Gugle a magic guild?
>
> Sorry, can't stand this google devoutness.
>

Hartmut,

it's not devoutness

What I was trying to convey is that org-mode reached a wide community, it
entered places where the common attitude towards the gpl is of prudence, to
say at least.

I was not referring to a technological success but rather to a
communitarian (political ?) one.

Guile is light years far away from such a success, sadly.

That said, I also expect the average Google engineer to be quite competent.
But admittedly that's not by direct experience

That's all ☺


[PATCHES] gnu: linux-libre: Update to 4.16

2018-04-07 Thread Mark H Weaver
Hello Guix,

Here are preliminary patches to update to linux-libre-4.16.  It works
well on my x86_64 GuixSD system on the 'core-updates' branch, but it's
not convenient for me to test it on 'master'.

I would be grateful to hear reports of testing this on 'master', and
also on 'armhf' systems.

One more thing: I had to add 'flex' and 'bison' as native-inputs because
the build system in 4.16 now concludes that they need to be re-run for
some reason.  This could perhaps be avoided by adding a phase to touch
the generated files, but I didn't try it.

I think I'd prefer to add a phase to *delete* the generated files and
therefore _always_ run flex and bison, so that we are using source code
instead of trusting generated code from upstream.

What do you think?

Anyway, here are the patches.  Test reports encouraged.

  Mark


>From 56c4a6c1b07de98fca003911ec85736fef61fcc6 Mon Sep 17 00:00:00 2001
From: Mark H Weaver 
Date: Sat, 7 Apr 2018 02:19:34 -0400
Subject: [PATCH 1/2] gnu: linux-libre: Add flex and bison to native-inputs.

* gnu/packages/linux.scm (make-linux-libre)[native-inputs]: Add flex and
bison.
---
 gnu/packages/linux.scm | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index ebf463f94..33661e8f5 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -284,6 +284,8 @@ for ARCH and optionally VARIANT, or #f if there is no such configuration."
("bc" ,bc)
("openssl" ,openssl)
("kmod" ,kmod)
+   ("flex" ,flex)
+   ("bison" ,bison)
;; On x86, build with GCC-7 for full retpoline support.
;; FIXME: Remove this when our default compiler has retpoline support.
,@(match (system->linux-architecture
-- 
2.16.3

>From 9a7c61cc1f559d7c6ce6f0b5066b791a74491d5c Mon Sep 17 00:00:00 2001
From: Mark H Weaver 
Date: Sat, 7 Apr 2018 01:37:45 -0400
Subject: [PATCH 2/2] gnu: linux-libre: Update to 4.16.

* gnu/packages/linux.scm (%linux-libre-version): Update to 4.16.
(%linux-libre-hash): Update hash.
* gnu/packages/aux-files/linux-libre/4.15-arm.conf,
gnu/packages/aux-files/linux-libre/4.15-i686.conf,
gnu/packages/aux-files/linux-libre/4.15-x86_64.conf: Delete files.
* gnu/packages/aux-files/linux-libre/4.16-arm.conf,
gnu/packages/aux-files/linux-libre/4.16-i686.conf,
gnu/packages/aux-files/linux-libre/4.16-x86_64.conf: New files.
* Makefile.am (AUX_FILES): Update accordingly.
---
 Makefile.am|   6 +-
 .../linux-libre/{4.15-arm.conf => 4.16-arm.conf}   | 181 ++-
 .../linux-libre/{4.15-i686.conf => 4.16-i686.conf} | 252 +
 .../{4.15-x86_64.conf => 4.16-x86_64.conf} | 250 
 gnu/packages/linux.scm |   4 +-
 5 files changed, 438 insertions(+), 255 deletions(-)
 rename gnu/packages/aux-files/linux-libre/{4.15-arm.conf => 4.16-arm.conf} (98%)
 rename gnu/packages/aux-files/linux-libre/{4.15-i686.conf => 4.16-i686.conf} (98%)
 rename gnu/packages/aux-files/linux-libre/{4.15-x86_64.conf => 4.16-x86_64.conf} (98%)

diff --git a/Makefile.am b/Makefile.am
index e647f270d..b56f7b3bc 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -256,9 +256,9 @@ dist_noinst_DATA = guix/tests.scm guix/tests/http.scm
 # Auxiliary files for packages.
 AUX_FILES =		\
   gnu/packages/aux-files/emacs/guix-emacs.el		\
-  gnu/packages/aux-files/linux-libre/4.15-arm.conf	\
-  gnu/packages/aux-files/linux-libre/4.15-i686.conf	\
-  gnu/packages/aux-files/linux-libre/4.15-x86_64.conf	\
+  gnu/packages/aux-files/linux-libre/4.16-arm.conf	\
+  gnu/packages/aux-files/linux-libre/4.16-i686.conf	\
+  gnu/packages/aux-files/linux-libre/4.16-x86_64.conf	\
   gnu/packages/aux-files/linux-libre/4.14-arm.conf	\
   gnu/packages/aux-files/linux-libre/4.14-i686.conf	\
   gnu/packages/aux-files/linux-libre/4.14-x86_64.conf	\
diff --git a/gnu/packages/aux-files/linux-libre/4.15-arm.conf b/gnu/packages/aux-files/linux-libre/4.16-arm.conf
similarity index 98%
rename from gnu/packages/aux-files/linux-libre/4.15-arm.conf
rename to gnu/packages/aux-files/linux-libre/4.16-arm.conf
index ec1971472..484242917 100644
--- a/gnu/packages/aux-files/linux-libre/4.15-arm.conf
+++ b/gnu/packages/aux-files/linux-libre/4.16-arm.conf
@@ -1,6 +1,6 @@
 #
 # Automatically generated file; DO NOT EDIT.
-# Linux/arm 4.15.0-gnu Kernel Configuration
+# Linux/arm 4.16.0-gnu Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_ARM_HAS_SG_CHAIN=y
@@ -25,7 +25,6 @@ CONFIG_FIQ=y
 CONFIG_ARM_PATCH_PHYS_VIRT=y
 CONFIG_GENERIC_BUG=y
 CONFIG_PGTABLE_LEVELS=2
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 CONFIG_IRQ_WORK=y
 CONFIG_BUILDTIME_EXTABLE_SORT=y
 
@@ -75,7 +74,6 @@ CONFIG_IRQ_DOMAIN_HIERARCHY=y
 CONFIG_GENERIC_MSI_IRQ=y
 CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
 CONFIG_HANDLE_DOMAIN_IRQ=y
-# CONFIG_IRQ_DOMAIN_DEBUG is not set
 CONFIG_IRQ_FORCED_THREADING=y
 CONFIG_SPARSE_IRQ=y
 # CONFIG_GENERIC_IRQ_DEBUGFS is not set
@@ -245,6 +243,7 @@ CONFIG_HAVE_D

Re: [PATCHES] gnu: linux-libre: Update to 4.16

2018-04-07 Thread Leo Famulari
On Sat, Apr 07, 2018 at 02:36:04PM -0400, Mark H Weaver wrote:
> One more thing: I had to add 'flex' and 'bison' as native-inputs because
> the build system in 4.16 now concludes that they need to be re-run for
> some reason.  This could perhaps be avoided by adding a phase to touch
> the generated files, but I didn't try it.

I noticed this too while building 4.16 with Debian's tooling (`make
bindeb-pkg`).

> Anyway, here are the patches.  Test reports encouraged.

Thanks, I'm testing this on x86_64 (it's what I have access to).

I noticed this warning at the beginning of the build phase:

--
starting phase `build'
scripts/kconfig/conf  --silentoldconfig Kconfig
Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, 
libelf-devel or elfutils-libelf-devel"
--

The warning goes away when elfutils is available in the build
environment.


signature.asc
Description: PGP signature


Re: [PATCHES] gnu: linux-libre: Update to 4.16

2018-04-07 Thread Mark H Weaver
Leo Famulari  writes:

> On Sat, Apr 07, 2018 at 02:36:04PM -0400, Mark H Weaver wrote:
>> One more thing: I had to add 'flex' and 'bison' as native-inputs because
>> the build system in 4.16 now concludes that they need to be re-run for
>> some reason.  This could perhaps be avoided by adding a phase to touch
>> the generated files, but I didn't try it.
>
> I noticed this too while building 4.16 with Debian's tooling (`make
> bindeb-pkg`).

That's interesting.  I guess the timestamps in your unpacked source
directory were probably not zeroed, so I guess that timestamps are not
the issue here.

>> Anyway, here are the patches.  Test reports encouraged.
>
> Thanks, I'm testing this on x86_64 (it's what I have access to).
>
> I noticed this warning at the beginning of the build phase:
>
> --
> starting phase `build'
> scripts/kconfig/conf  --silentoldconfig Kconfig
> Makefile:976: "Cannot use CONFIG_STACK_VALIDATION=y, please install 
> libelf-dev, libelf-devel or elfutils-libelf-devel"
> --
>
> The warning goes away when elfutils is available in the build
> environment.

Ah, good catch!  I've now added to my queue another patch which adds
elfutils to native-inputs in 'make-linux-libre'.  I'll push it to master
along with the 4.16 update after a bit more testing.

 Thanks,
   Mark