* (unknown),
@ 2014-02-04 15:12 John Darrington
2014-02-04 15:12 ` [PATCH 1/3] gnu: boost: New module John Darrington
` (2 more replies)
0 siblings, 3 replies; 44+ messages in thread
From: John Darrington @ 2014-02-04 15:12 UTC (permalink / raw)
To: guix-devel
In my opinion the changelog conventions are achronistic, unintuitive,
and bring benefit neither to developers nor users.
However thanks for showing me the correct format.
Updated patches follow
^ permalink raw reply [flat|nested] 44+ messages in thread
* [PATCH 1/3] gnu: boost: New module
2014-02-04 15:12 (unknown), John Darrington
@ 2014-02-04 15:12 ` John Darrington
2014-02-04 20:51 ` Ludovic Courtès
2014-02-04 15:12 ` [PATCH 2/3] gnu: inkscape: " John Darrington
2014-02-04 20:47 ` none Ludovic Courtès
2 siblings, 1 reply; 44+ messages in thread
From: John Darrington @ 2014-02-04 15:12 UTC (permalink / raw)
To: guix-devel; +Cc: John Darrington
* gnu/packages/boost.scm New file
* gnu-system.am (GNU_SYSTEM_MODULES): Add boost.scm
---
gnu-system.am | 1 +
gnu/packages/boost.scm | 88 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 89 insertions(+)
create mode 100644 gnu/packages/boost.scm
diff --git a/gnu-system.am b/gnu-system.am
index e87f671..43b9457 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -40,6 +40,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/bdb.scm \
gnu/packages/bdw-gc.scm \
gnu/packages/bison.scm \
+ gnu/packages/boost.scm \
gnu/packages/bootstrap.scm \
gnu/packages/cdrom.scm \
gnu/packages/cflow.scm \
diff --git a/gnu/packages/boost.scm b/gnu/packages/boost.scm
new file mode 100644
index 0000000..3275fe0
--- /dev/null
+++ b/gnu/packages/boost.scm
@@ -0,0 +1,88 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages boost)
+ #:use-module ((guix licenses)
+ #:renamer (symbol-prefix-proc 'license:))
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages tcsh)
+ #:use-module (gnu packages perl))
+
+(define-public boost
+ (package
+ (name "boost")
+ (version "1.55.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/boost/boost_"
+ (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version)
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "0lkv5dzssbl5fmh2nkaszi8x9qbj80pr4acf9i26sj3rvlih1w7z"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("perl" ,perl)
+ ("python" ,python-2)
+ ("tcsh" ,tcsh)))
+ (arguments
+ `(#:phases
+ (alist-replace
+ 'configure
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* '("libs/config/configure"
+ "libs/spirit/classic/phoenix/test/runtest.sh"
+ "tools/build/v2/doc/bjam.qbk"
+ "tools/build/v2/engine/execunix.c"
+ "tools/build/v2/engine/Jambase"
+ "tools/build/v2/engine/jambase.c")
+ (("/bin/sh") (which "sh")))
+
+ (setenv "SHELL" (which "sh"))
+ (setenv "CONFIG_SHELL" (which "sh"))
+
+ (zero? (system* "./bootstrap.sh"
+ (string-append "--prefix=" out)
+ "--with-toolset=gcc"))))
+ (alist-replace
+ 'build
+ (lambda _
+ (zero? (system* "./b2" "threading=multi" "link=shared")))
+
+ (alist-replace
+ 'check
+ (lambda _ #t)
+
+ (alist-replace
+ 'install
+ (lambda _
+ (zero? (system* "./b2" "install" "threading=multi" "link=shared")))
+ %standard-phases))))))
+
+ (home-page "http://boost.org")
+ (synopsis "Peer-reviewed portable C++ source libraries")
+ (description "A collection of libraries intended to be widely useful, and
+usable across a broad spectrum of applications.")
+ (license (license:x11-style "http://www.boost.org/LICENSE_1_0.txt"
+ "Some components have other similar licences."))))
--
1.7.10.4
^ permalink raw reply related [flat|nested] 44+ messages in thread
* [PATCH 2/3] gnu: inkscape: New module
2014-02-04 15:12 (unknown), John Darrington
2014-02-04 15:12 ` [PATCH 1/3] gnu: boost: New module John Darrington
@ 2014-02-04 15:12 ` John Darrington
2014-02-04 23:09 ` Ludovic Courtès
2014-02-04 20:47 ` none Ludovic Courtès
2 siblings, 1 reply; 44+ messages in thread
From: John Darrington @ 2014-02-04 15:12 UTC (permalink / raw)
To: guix-devel; +Cc: John Darrington
* gnu/packages/inkscape.scm: New file.
* gnu-system.am (GNU_SYSTEM_MODULES): Add inkscape.scm.
---
gnu-system.am | 2 +
gnu/packages/inkscape.scm | 79 +++++++++++++++++++++++
gnu/packages/patches/inkscape-stray-comma.patch | 13 ++++
3 files changed, 94 insertions(+)
create mode 100644 gnu/packages/inkscape.scm
create mode 100644 gnu/packages/patches/inkscape-stray-comma.patch
diff --git a/gnu-system.am b/gnu-system.am
index 43b9457..33b29c9 100644
--- a/gnu-system.am
+++ b/gnu-system.am
@@ -110,6 +110,7 @@ GNU_SYSTEM_MODULES = \
gnu/packages/idutils.scm \
gnu/packages/imagemagick.scm \
gnu/packages/indent.scm \
+ gnu/packages/inkscape.scm \
gnu/packages/irssi.scm \
gnu/packages/iso-codes.scm \
gnu/packages/kde.scm \
@@ -270,6 +271,7 @@ dist_patch_DATA = \
gnu/packages/patches/gtkglext-disable-disable-deprecated.patch \
gnu/packages/patches/gtkglext-remove-pangox-dependency.patch \
gnu/packages/patches/hop-bigloo-4.0b.patch \
+ gnu/packages/patches/inkscape-stray-comma.patch \
gnu/packages/patches/libevent-dns-tests.patch \
gnu/packages/patches/libffi-mips-n32-fix.patch \
gnu/packages/patches/liboop-mips64-deplibs-fix.patch \
diff --git a/gnu/packages/inkscape.scm b/gnu/packages/inkscape.scm
new file mode 100644
index 0000000..5837c32
--- /dev/null
+++ b/gnu/packages/inkscape.scm
@@ -0,0 +1,79 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2014 John Darrington <jmd@gnu.org>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages inkscape)
+ #:use-module ((guix licenses)
+ #:renamer (symbol-prefix-proc 'license:))
+ #:use-module (guix packages)
+ #:use-module (guix download)
+ #:use-module (guix build-system gnu)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages aspell)
+ #:use-module (gnu packages bdw-gc)
+ #:use-module (gnu packages boost)
+ #:use-module (gnu packages glib)
+ #:use-module (gnu packages gtk)
+ #:use-module (gnu packages maths)
+ #:use-module (gnu packages perl)
+ #:use-module (gnu packages pdf)
+ #:use-module (gnu packages popt)
+ #:use-module (gnu packages python)
+ #:use-module (gnu packages xml)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages libpng)
+ #:use-module (gnu packages pkg-config))
+
+(define-public inkscape
+ (package
+ (name "inkscape")
+ (version "0.48.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "mirror://sourceforge/inkscape/inkscape-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0nhxsgrgsx6zrgpkd1akxjvmdqjp8ccnsvlwxh62l0brg84fw6bf"))
+ (patches (list (search-patch "inkscape-stray-comma.patch")))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("aspell" ,aspell)
+ ("gtkmm" ,gtkmm-2)
+ ("gtk" ,gtk+-2)
+ ("gsl" ,gsl)
+ ("poppler" ,poppler)
+ ("libpng" ,libpng)
+ ("libxml2" ,libxml2)
+ ("libxslt" ,libxslt)
+ ("libgc" ,libgc)
+ ("freetype" ,freetype)
+ ("popt" ,popt)
+ ("python" ,python-2)
+ ("lcms" ,lcms)
+ ("boost" ,boost)))
+ (native-inputs
+ `(("intltool" ,intltool)
+ ("perl" ,perl)
+ ("pkg-config" ,pkg-config)))
+ (home-page "http://inkscape.org/")
+ (synopsis "vector graphics editor")
+ (description "Inkscape is a free vector graphics editor similar to
+proprietary competitors. What sets Inkscape apart is its use of Scalable
+Vector Graphics (SVG), an open XML-based W3C standard, as the native format.")
+ (license license:gpl2))) ;; Somewhat ambiguous whether v2 or v2+ is intended
diff --git a/gnu/packages/patches/inkscape-stray-comma.patch b/gnu/packages/patches/inkscape-stray-comma.patch
new file mode 100644
index 0000000..0b000d9
--- /dev/null
+++ b/gnu/packages/patches/inkscape-stray-comma.patch
@@ -0,0 +1,13 @@
+This is verbatim from Upstream: http://bazaar.launchpad.net/~inkscape.dev/inkscape/RELEASE_0_48_BRANCH/diff/9943
+--- a/src/widgets/desktop-widget.h 2011-06-06 06:43:00 +0000
++++ b/src/widgets/desktop-widget.h 2013-01-05 14:34:09 +0000
+@@ -239,7 +239,7 @@
+ private:
+ GtkWidget *tool_toolbox;
+ GtkWidget *aux_toolbox;
+- GtkWidget *commands_toolbox,;
++ GtkWidget *commands_toolbox;
+ GtkWidget *snap_toolbox;
+
+ static void init(SPDesktopWidget *widget);
+
--
1.7.10.4
^ permalink raw reply related [flat|nested] 44+ messages in thread
* Re: [PATCH 2/3] gnu: inkscape: New module
2014-02-04 15:12 ` [PATCH 2/3] gnu: inkscape: " John Darrington
@ 2014-02-04 23:09 ` Ludovic Courtès
2014-02-05 7:26 ` John Darrington
0 siblings, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2014-02-04 23:09 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel
John Darrington <jmd@gnu.org> skribis:
> * gnu/packages/inkscape.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add inkscape.scm.
Cool, applied (added the missing part of the log, for the patch.)
> + (synopsis "vector graphics editor")
I capitalized this.
> + (description "Inkscape is a free vector graphics editor similar to
> +proprietary competitors. What sets Inkscape apart is its use of Scalable
> +Vector Graphics (SVG), an open XML-based W3C standard, as the native format.")
I removed the “free” and the reference to proprietary competitors.
> + (license license:gpl2))) ;; Somewhat ambiguous whether v2 or v2+ is intended
It’s actually GPLv2+ since the source files do not specify the version.
Thank you!
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH 2/3] gnu: inkscape: New module
2014-02-04 23:09 ` Ludovic Courtès
@ 2014-02-05 7:26 ` John Darrington
2014-02-05 13:49 ` Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: John Darrington @ 2014-02-05 7:26 UTC (permalink / raw)
To: Ludovic Court??s; +Cc: guix-devel, John Darrington
On Wed, Feb 05, 2014 at 12:09:02AM +0100, Ludovic Court??s wrote:
> * gnu/packages/inkscape.scm: New file.
> * gnu-system.am (GNU_SYSTEM_MODULES): Add inkscape.scm.
Cool, applied (added the missing part of the log, for the patch.)
> + (synopsis "vector graphics editor")
I capitalized this.
Sorry for not noticising these.
> + (description "Inkscape is a free vector graphics editor similar to
> +proprietary competitors. What sets Inkscape apart is its use of Scalable
> +Vector Graphics (SVG), an open XML-based W3C standard, as the native format.")
I removed the ???free??? and the reference to proprietary competitors.
Fair enough. The blurb on the website mentions them by name. I decided to drop
the names. If you want to omit any mention altogether, I don't have any objection.
> + (license license:gpl2))) ;; Somewhat ambiguous whether v2 or v2+ is intended
It???s actually GPLv2+ since the source files do not specify the version.
It kind of does indirectly. It says "Under GPL - See the file COPYING" and
COPYING contains the text for v2. I thought it safer to assume v2 only.
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH 2/3] gnu: inkscape: New module
2014-02-05 7:26 ` John Darrington
@ 2014-02-05 13:49 ` Ludovic Courtès
2014-02-05 14:19 ` John Darrington
0 siblings, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2014-02-05 13:49 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel, John Darrington
John Darrington <john@darrington.wattle.id.au> skribis:
> On Wed, Feb 05, 2014 at 12:09:02AM +0100, Ludovic Court??s wrote:
[...]
> > + (description "Inkscape is a free vector graphics editor similar to
> > +proprietary competitors. What sets Inkscape apart is its use of Scalable
> > +Vector Graphics (SVG), an open XML-based W3C standard, as the native format.")
>
> I removed the ???free??? and the reference to proprietary competitors.
>
> Fair enough. The blurb on the website mentions them by name. I decided to drop
> the names. If you want to omit any mention altogether, I don't have any objection.
Yeah, what we agreed on long ago was to not mention “free” in
descriptions (or similar), because everything is free in the distro.
Also the GCS have long recommended against referring to non-free
software, and it clearly doesn’t bring much here (the situation may be
different for software that aims for interoperability with non-free
software, like LibreDWG or Octave.)
> > + (license license:gpl2))) ;; Somewhat ambiguous whether v2 or v2+ is intended
>
> It???s actually GPLv2+ since the source files do not specify the version.
>
> It kind of does indirectly. It says "Under GPL - See the file COPYING" and
> COPYING contains the text for v2. I thought it safer to assume v2 only.
GPLv2 reads:
If the Program does not specify a version number of this License, you
may choose any version ever published by the Free Software Foundation.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: [PATCH 2/3] gnu: inkscape: New module
2014-02-05 13:49 ` Ludovic Courtès
@ 2014-02-05 14:19 ` John Darrington
0 siblings, 0 replies; 44+ messages in thread
From: John Darrington @ 2014-02-05 14:19 UTC (permalink / raw)
To: Ludovic Court??s; +Cc: guix-devel, John Darrington
On Wed, Feb 05, 2014 at 02:49:17PM +0100, Ludovic Court??s wrote:
GPLv2 reads:
If the Program does not specify a version number of this License, you
may choose any version ever published by the Free Software Foundation.
Yes. I know. - And in this case, the program DOES (indirectly) specify a version
number, by refering to a file which contains a specific version. But if you want
to interpret this differently, I won't argue.
J'
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-04 15:12 (unknown), John Darrington
2014-02-04 15:12 ` [PATCH 1/3] gnu: boost: New module John Darrington
2014-02-04 15:12 ` [PATCH 2/3] gnu: inkscape: " John Darrington
@ 2014-02-04 20:47 ` Ludovic Courtès
2014-02-05 16:17 ` none Mark H Weaver
2 siblings, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2014-02-04 20:47 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel
John Darrington <jmd@gnu.org> skribis:
> In my opinion the changelog conventions are achronistic, unintuitive,
> and bring benefit neither to developers nor users.
Well, opinions may vary.
It benefits me when I review other people’s patches, because it helps me
understand the structure of the change. And it benefits me before I
commit something, because it forces me to review all of my patch, make
sure it’s consistent, make sure there’s no leftover, and giving me an
opportunity to add comments to code that appears non-obvious in
hindsight.
I think the rationale at
<http://www.gnu.org/prep/standards/standards.html#Change-Logs> still
holds.
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-04 20:47 ` none Ludovic Courtès
@ 2014-02-05 16:17 ` Mark H Weaver
2014-02-05 17:38 ` none John Darrington
0 siblings, 1 reply; 44+ messages in thread
From: Mark H Weaver @ 2014-02-05 16:17 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel, John Darrington
ludo@gnu.org (Ludovic Courtès) writes:
> John Darrington <jmd@gnu.org> skribis:
>
>> In my opinion the changelog conventions are achronistic, unintuitive,
>> and bring benefit neither to developers nor users.
>
> Well, opinions may vary.
>
> It benefits me when I review other people’s patches, because it helps me
> understand the structure of the change. And it benefits me before I
> commit something, because it forces me to review all of my patch, make
> sure it’s consistent, make sure there’s no leftover, and giving me an
> opportunity to add comments to code that appears non-obvious in
> hindsight.
I also find them very useful when digging through (possibly ancient)
commit history. Although all the information is in the actual patch,
when looking through many commits it is much more convenient to read a
summary of the changes. One summary line is not enough detail.
Of course, it's extra work to write these summaries, but IMO it's
worthwhile.
Mark
> I think the rationale at
> <http://www.gnu.org/prep/standards/standards.html#Change-Logs> still
> holds.
>
> Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-05 16:17 ` none Mark H Weaver
@ 2014-02-05 17:38 ` John Darrington
2014-02-05 18:35 ` none Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: John Darrington @ 2014-02-05 17:38 UTC (permalink / raw)
To: Mark H Weaver; +Cc: guix-devel, John Darrington
[-- Attachment #1: Type: text/plain, Size: 2159 bytes --]
On Wed, Feb 05, 2014 at 11:17:25AM -0500, Mark H Weaver wrote:
ludo@gnu.org (Ludovic Court??s) writes:
> John Darrington <jmd@gnu.org> skribis:
>
>> In my opinion the changelog conventions are achronistic, unintuitive,
>> and bring benefit neither to developers nor users.
>
> Well, opinions may vary.
>
> It benefits me when I review other people???s patches, because it helps me
> understand the structure of the change. And it benefits me before I
> commit something, because it forces me to review all of my patch, make
> sure it???s consistent, make sure there???s no leftover, and giving me an
> opportunity to add comments to code that appears non-obvious in
> hindsight.
I also find them very useful when digging through (possibly ancient)
commit history. Although all the information is in the actual patch,
when looking through many commits it is much more convenient to read a
summary of the changes. One summary line is not enough detail.
Of course, it's extra work to write these summaries, but IMO it's
worthwhile.
I don't object to the spending time of writing changelogs. I just think the
information that the GCS suggests is not helpful. It is not usefull to say
changed file foo.scm, because using git show that is obvious. There is even a
perl script out in the wild somewhere to generate exactly that. Typing it
in is redundant.
What would be useful (but in general) we don't put in the changelogs is WHY a
developer changed foo.scm Put yourself in the shoes of a person investigating a
problem in 3 years' time. He can see that developer fred did X. He doesn't
need fred to tell him that. What he needs is fred to explain his reasoning for
doing X not a statement that he has done it. That way he can make an informed
decision about which way to take the code now.
J'
--
PGP Public key ID: 1024D/2DE827B3
fingerprint = 8797 A26D 0854 2EAB 0285 A290 8A67 719C 2DE8 27B3
See http://sks-keyservers.net or any PGP keyserver for public key.
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-05 17:38 ` none John Darrington
@ 2014-02-05 18:35 ` Ludovic Courtès
0 siblings, 0 replies; 44+ messages in thread
From: Ludovic Courtès @ 2014-02-05 18:35 UTC (permalink / raw)
To: John Darrington; +Cc: guix-devel, John Darrington
John Darrington <john@darrington.wattle.id.au> skribis:
> I don't object to the spending time of writing changelogs. I just think the
> information that the GCS suggests is not helpful. It is not usefull to say
> changed file foo.scm, because using git show that is obvious. There is even a
> perl script out in the wild somewhere to generate exactly that. Typing it
> in is redundant.
>
> What would be useful (but in general) we don't put in the changelogs is WHY a
> developer changed foo.scm
I disagree. 90% of the time, if something needs explanation, then the
explanation belongs as comments in the code. Well, I’m just
paraphrasing the GCS.
If you would like to propose amendments to the GCS, please use
bug-standards@gnu.org.
(Though I would instead recommend keeping up the good packaging work. ;-))
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: Gnunet-0.10.0 recipe
@ 2014-02-11 22:17 Sree Harsha Totakura
2014-02-12 15:15 ` (unknown), Sree Harsha Totakura
0 siblings, 1 reply; 44+ messages in thread
From: Sree Harsha Totakura @ 2014-02-11 22:17 UTC (permalink / raw)
To: guix-devel
On 02/11/2014 09:49 PM, Andreas Enge wrote:
> PASS: test_quota_compliance_http_asymmetric
> Feb 11 20:42:17-420543 test_quota_compliance_https-18107 ERROR Peers got NOT connected
> FAIL: test_quota_compliance_https
> Feb 11 20:44:17-446106 test_quota_compliance_https_asymmetric-18138 ERROR Peers got NOT connected
> FAIL: test_quota_compliance_https_asymmetric
> ===================================
> 5 of 56 tests failed
>
> (So apparently, I missed four failures in the output...) Sree, does it pass
> all tests on your machine? We will also see what happens on hydra once it
> catches up.
The same tests fail for me. I guess these tests were not enabled
earlier when libmicrohttpd was not added to the inputs.
Sree
^ permalink raw reply [flat|nested] 44+ messages in thread
* (unknown),
2014-02-11 22:17 Gnunet-0.10.0 recipe Sree Harsha Totakura
@ 2014-02-12 15:15 ` Sree Harsha Totakura
2014-02-12 17:36 ` none Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: Sree Harsha Totakura @ 2014-02-12 15:15 UTC (permalink / raw)
To: guix-devel
The reason why the transport tests are failing is that gnurl is not being
built with HTTPS protocol support and these tests expect gnurl to have those.
The HTTPS support was not built into gnurl because pkg-config was not
available as native inputs during configure time.
This patch fixes the above problem and also appends an existing patch to fix
testcases to run them on local interfaces.
-
Sree
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-12 15:15 ` (unknown), Sree Harsha Totakura
@ 2014-02-12 17:36 ` Ludovic Courtès
2014-02-12 17:38 ` none Sree Harsha Totakura
2014-02-12 19:25 ` none Andreas Enge
0 siblings, 2 replies; 44+ messages in thread
From: Ludovic Courtès @ 2014-02-12 17:36 UTC (permalink / raw)
To: Sree Harsha Totakura; +Cc: guix-devel
Sree Harsha Totakura <sreeharsha@totakura.in> skribis:
> The reason why the transport tests are failing is that gnurl is not being
> built with HTTPS protocol support and these tests expect gnurl to have those.
> The HTTPS support was not built into gnurl because pkg-config was not
> available as native inputs during configure time.
OK, thanks for investigating!
It would be nice if GNUnet’s ‘configure’ script would check whether
gnurl has HTTPS support.
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-12 17:36 ` none Ludovic Courtès
@ 2014-02-12 17:38 ` Sree Harsha Totakura
2014-02-12 19:25 ` none Andreas Enge
1 sibling, 0 replies; 44+ messages in thread
From: Sree Harsha Totakura @ 2014-02-12 17:38 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
On 02/12/2014 06:36 PM, Ludovic Courtès wrote:
> It would be nice if GNUnet’s ‘configure’ script would check whether
> gnurl has HTTPS support.
It now does. :-)
Sree
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-12 17:36 ` none Ludovic Courtès
2014-02-12 17:38 ` none Sree Harsha Totakura
@ 2014-02-12 19:25 ` Andreas Enge
2014-02-12 20:30 ` none Ludovic Courtès
1 sibling, 1 reply; 44+ messages in thread
From: Andreas Enge @ 2014-02-12 19:25 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
On Wed, Feb 12, 2014 at 06:36:13PM +0100, Ludovic Courtès wrote:
> It would be nice if GNUnet’s ‘configure’ script would check whether
> gnurl has HTTPS support.
Concurred. Or maybe make pkg-config a mandatory input and stop when it
is not found. Ever so often I see a package that states "feature xyz
not available", when in reality it means "pkg-config not available".
I would say that either pkg-config has to be mandatory, or the feature xyz
needs to be tested in an alternative way if pkg-config is not found.
Andreas
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-12 19:25 ` none Andreas Enge
@ 2014-02-12 20:30 ` Ludovic Courtès
2014-02-12 20:53 ` none Andreas Enge
0 siblings, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2014-02-12 20:30 UTC (permalink / raw)
To: Andreas Enge; +Cc: guix-devel
Andreas Enge <andreas@enge.fr> skribis:
> On Wed, Feb 12, 2014 at 06:36:13PM +0100, Ludovic Courtès wrote:
>> It would be nice if GNUnet’s ‘configure’ script would check whether
>> gnurl has HTTPS support.
>
> Concurred. Or maybe make pkg-config a mandatory input and stop when it
> is not found. Ever so often I see a package that states "feature xyz
> not available", when in reality it means "pkg-config not available".
I think this is largely because the official PKG_CHECK_MODULES Autoconf
macro doesn’t fail by default when pkg-config is not found (which may or
may not be a good idea, depending on the package.)
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-02-12 20:30 ` none Ludovic Courtès
@ 2014-02-12 20:53 ` Andreas Enge
0 siblings, 0 replies; 44+ messages in thread
From: Andreas Enge @ 2014-02-12 20:53 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
On Wed, Feb 12, 2014 at 09:30:53PM +0100, Ludovic Courtès wrote:
> I think this is largely because the official PKG_CHECK_MODULES Autoconf
> macro doesn’t fail by default when pkg-config is not found (which may or
> may not be a good idea, depending on the package.)
Then it is the authors' responsibility to either let the configuration
fail, or to include tests that do not rely on pkg_config, in my opinion.
Andreas
^ permalink raw reply [flat|nested] 44+ messages in thread
* (unknown)
@ 2014-12-03 18:02 Tomas Cech
2014-12-04 23:04 ` none Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: Tomas Cech @ 2014-12-03 18:02 UTC (permalink / raw)
To: guix-devel
Hello,
I'd like to share with you some experiences with using Guix.
I tried to install Guix as alternative OS to my Gentoo and openSUSE
installations to give a try. I tried unsupported scenario -
installation on LVM volume and separate /boot partition until I was
told it is unsupported. Separate boot wasn't hard as I had to just
copy generated files so they are loaded. But eventually I gave up
preparing it manually or automating it and I had rather put another
Grub in the same partition and set up chainloading.
I met then two problems:
1] if you set device to partition (and not to disk) in your grub-configuration like this:
(bootloader (grub-configuration
(device "/dev/sda4")))
`guix system init' will fail on grub installation. By default Grub
tries to fit in the beginning of partition and fails if it can't fit
in. I asked about this behaviour on Grub mailing list and it seems
that there are two options:
a] add `--force' to command line and use block list for keeping information about position of Grub's core.img
b] use filesystem which allows embedding - BtrFS or ZFS
I verified both options (a] and then b] with BtrFS) and it no longer fails.
But,
ad a] - I don't feel safe passing `--force' to grub-install every
time. So if installation fails on this point and you'd like to use
your FS anyway, you can pass `--no-grub' to `guix system init' and
then rung grub-install manually.
ad b] - I don't feel safe using still experimental BtrFS.
2] current Grub version in Guix during boots generated this error:
error: symbol 'grub_term_highlight_color' not found
and started rescue shell.
It seems to be a bit mystic bug:
https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977
I used my Gentoo's version of Grub to fix it and then it worked.
I'm also interested in running chroot in Guix. This is something I
like about all Linux distribution I use - I can run Linux and at the
same time I prepare another Linux root filesystem for use. It seems
that chrooting into Guix may be tricky.
I prepared this script to be placed somewhere into Guix:
----------%<---------
#!/run/current-system/profile/bin/bash
export LIBRARY_PATH=LIBRARY_PATH=/root/.guix-profile/lib
export CPATH=/root/.guix-profile/include
export PATH=/run/setuid-programs:/run/current-system/profile/sbin:/root/.guix-profile/bin:/run/current-system/profile/bin
export INFOPATH=/root/.guix-profile/share/info:/run/current-system/profile/share/info
exec bash -i
----------%<--------
for i in dev proc sys; do mount -R /$i /guix_mountpoint/$i; done
chroot /guix_mountpoint/ /helper_script.sh
Ludovic said that `guix packages --search-paths' should generate similar path configuration so it may be the right way, but it didn't work for me.
And last thing I wanted to mention, you have kind community around Guix and Guile. It's really motivating!
Best regards,
Tomas Cech
Sleep_Walker
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-12-03 18:02 (unknown) Tomas Cech
@ 2014-12-04 23:04 ` Ludovic Courtès
2014-12-05 8:35 ` none Tomas Cech
0 siblings, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2014-12-04 23:04 UTC (permalink / raw)
To: Tomas Cech; +Cc: guix-devel
Tomas Cech <sleep_walker@suse.cz> skribis:
> I tried to install Guix as alternative OS to my Gentoo and openSUSE
> installations to give a try. I tried unsupported scenario -
> installation on LVM volume and separate /boot partition until I was
> told it is unsupported. Separate boot wasn't hard as I had to just
> copy generated files so they are loaded.
OK, but there’s still an open bug on that topic. :-)
http://bugs.gnu.org/19220
> 1] if you set device to partition (and not to disk) in your grub-configuration like this:
>
> (bootloader (grub-configuration
> (device "/dev/sda4")))
Why would you want to use a partition and not a disk? I didn’t know
this was even possible.
> `guix system init' will fail on grub installation. By default Grub
> tries to fit in the beginning of partition and fails if it can't fit
> in. I asked about this behaviour on Grub mailing list and it seems
> that there are two options:
>
> a] add `--force' to command line and use block list for keeping information about position of Grub's core.img
> b] use filesystem which allows embedding - BtrFS or ZFS
>
> I verified both options (a] and then b] with BtrFS) and it no longer fails.
>
> But,
> ad a] - I don't feel safe passing `--force' to grub-install every
> time. So if installation fails on this point and you'd like to use
> your FS anyway, you can pass `--no-grub' to `guix system init' and
> then rung grub-install manually.
>
> ad b] - I don't feel safe using still experimental BtrFS.
OK. I think the conclusion for Guix is to leave the defaults unchanged.
Perhaps we could add a ‘force?’ field to the ‘grub-configuration’ data
type to allow those who know what they doing to get the effect of
‘--force’. WDYT?
> 2] current Grub version in Guix during boots generated this error:
>
> error: symbol 'grub_term_highlight_color' not found
>
> and started rescue shell.
> It seems to be a bit mystic bug:
> https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977
Strange. I haven’t experienced it. Sounds like a .mod wasn’t found or
something like that? That could be a bug related to separate /boot.
> I'm also interested in running chroot in Guix. This is something I
> like about all Linux distribution I use - I can run Linux and at the
> same time I prepare another Linux root filesystem for use. It seems
> that chrooting into Guix may be tricky.
>
> I prepared this script to be placed somewhere into Guix:
>
> ----------%<---------
> #!/run/current-system/profile/bin/bash
>
> export LIBRARY_PATH=LIBRARY_PATH=/root/.guix-profile/lib
> export CPATH=/root/.guix-profile/include
> export PATH=/run/setuid-programs:/run/current-system/profile/sbin:/root/.guix-profile/bin:/run/current-system/profile/bin
> export INFOPATH=/root/.guix-profile/share/info:/run/current-system/profile/share/info
>
> exec bash -i
> ----------%<--------
>
> for i in dev proc sys; do mount -R /$i /guix_mountpoint/$i; done
> chroot /guix_mountpoint/ /helper_script.sh
I suppose this works, right?
> Ludovic said that `guix packages --search-paths' should generate similar path configuration so it may be the right way, but it didn't work for me.
I realize ‘guix package --search-paths’ wouldn’t suffice here. You may
want to source /etc/profile from within the chroot.
> And last thing I wanted to mention, you have kind community around Guix and Guile. It's really motivating!
Thanks for your feedback and for the kind words!
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-12-04 23:04 ` none Ludovic Courtès
@ 2014-12-05 8:35 ` Tomas Cech
2014-12-06 14:06 ` none Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: Tomas Cech @ 2014-12-05 8:35 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
At Fri, 05 Dec 2014 00:04:23 +0100,
Ludovic Courtès wrote:
>
> Tomas Cech <sleep_walker@suse.cz> skribis:
>
> > I tried to install Guix as alternative OS to my Gentoo and openSUSE
> > installations to give a try. I tried unsupported scenario -
> > installation on LVM volume and separate /boot partition until I was
> > told it is unsupported. Separate boot wasn't hard as I had to just
> > copy generated files so they are loaded.
>
> OK, but there’s still an open bug on that topic. :-)
> http://bugs.gnu.org/19220
Good, I'll give a try again.
> > 1] if you set device to partition (and not to disk) in your grub-configuration like this:
> >
> > (bootloader (grub-configuration
> > (device "/dev/sda4")))
>
> Why would you want to use a partition and not a disk? I didn’t know
> this was even possible.
Because this way I can separate Grub managed by Guix and Grub from my
Gentoo. As I'm playing with that on my notebook I need for work, this
way can reduce risks.
I'm not sure how Guix installer can manipulate with grub.cfg and I'd
like to always have some working system...
>
> > `guix system init' will fail on grub installation. By default Grub
> > tries to fit in the beginning of partition and fails if it can't fit
> > in. I asked about this behaviour on Grub mailing list and it seems
> > that there are two options:
> >
> > a] add `--force' to command line and use block list for keeping information about position of Grub's core.img
> > b] use filesystem which allows embedding - BtrFS or ZFS
> >
> > I verified both options (a] and then b] with BtrFS) and it no longer fails.
> >
> > But,
> > ad a] - I don't feel safe passing `--force' to grub-install every
> > time. So if installation fails on this point and you'd like to use
> > your FS anyway, you can pass `--no-grub' to `guix system init' and
> > then rung grub-install manually.
> >
> > ad b] - I don't feel safe using still experimental BtrFS.
>
> OK. I think the conclusion for Guix is to leave the defaults unchanged.
> Perhaps we could add a ‘force?’ field to the ‘grub-configuration’ data
> type to allow those who know what they doing to get the effect of
> ‘--force’. WDYT?
After some more mails with help-grub ML It seems that Grub can do even better -
it can load core.img right from Guix's filesystem or just read new
configuration (multiboot, resp. config - both shown here
http://www.gnu.org/software/grub/manual/grub.html#Multi_002dboot-manual-config
)... But these are just Grub chainloading Grub solutions...
From Guix perspective I don't think it is possible to do it
automatically. I think you can consider installation of Grub to
partiotion as something just for advanced users. With that in mind I
believe guix should refuse (with some warning) installing grub that
way. Advanced users can use `--no-grub' option which will prevent guix
from fail and do manually anything they desire. And in the
documentation I'd give some short notice about that with link to Grub
manual. IMHO information that "only ZFS and BtrFS can embed core.img
into boot sector" belongs there.
> > 2] current Grub version in Guix during boots generated this error:
> >
> > error: symbol 'grub_term_highlight_color' not found
> >
> > and started rescue shell.
> > It seems to be a bit mystic bug:
> > https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/1289977
>
> Strange. I haven’t experienced it. Sounds like a .mod wasn’t found or
> something like that? That could be a bug related to separate /boot.
Yes, sounds like something like that. Important for me is that the
same command with same configuration worked when I used version from
Gentoo so I don't think it's bug elsewhere but in Grub version.
> > I'm also interested in running chroot in Guix. This is something I
> > like about all Linux distribution I use - I can run Linux and at the
> > same time I prepare another Linux root filesystem for use. It seems
> > that chrooting into Guix may be tricky.
> >
> > I prepared this script to be placed somewhere into Guix:
> >
> > ----------%<---------
> > #!/run/current-system/profile/bin/bash
> >
> > export LIBRARY_PATH=LIBRARY_PATH=/root/.guix-profile/lib
> > export CPATH=/root/.guix-profile/include
> > export PATH=/run/setuid-programs:/run/current-system/profile/sbin:/root/.guix-profile/bin:/run/current-system/profile/bin
> > export INFOPATH=/root/.guix-profile/share/info:/run/current-system/profile/share/info
> >
> > exec bash -i
> > ----------%<--------
> >
> > for i in dev proc sys; do mount -R /$i /guix_mountpoint/$i; done
> > chroot /guix_mountpoint/ /helper_script.sh
>
> I suppose this works, right?
Yes :)
>
> > Ludovic said that `guix packages --search-paths' should generate similar path configuration so it may be the right way, but it didn't work for me.
>
> I realize ‘guix package --search-paths’ wouldn’t suffice here. You may
> want to source /etc/profile from within the chroot.
OK, I'll play with this to improve it.
S_W
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2014-12-05 8:35 ` none Tomas Cech
@ 2014-12-06 14:06 ` Ludovic Courtès
0 siblings, 0 replies; 44+ messages in thread
From: Ludovic Courtès @ 2014-12-06 14:06 UTC (permalink / raw)
To: Tomas Cech; +Cc: guix-devel
Tomas Cech <sleep_walker@suse.cz> skribis:
> At Fri, 05 Dec 2014 00:04:23 +0100,
[...]
>> > 1] if you set device to partition (and not to disk) in your grub-configuration like this:
>> >
>> > (bootloader (grub-configuration
>> > (device "/dev/sda4")))
>>
>> Why would you want to use a partition and not a disk? I didn’t know
>> this was even possible.
>
> Because this way I can separate Grub managed by Guix and Grub from my
> Gentoo. As I'm playing with that on my notebook I need for work, this
> way can reduce risks.
>
> I'm not sure how Guix installer can manipulate with grub.cfg and I'd
> like to always have some working system...
Another option for you would be to add a ‘menu-entry’ to the
‘grub-configuration’ form that would boot the other distro.
(grub-configuration
(device ...)
(menu-entries
(list (menu-entry
(label "Good ol' distro")
(linux "/path/to/kernel”)
(linux-arguments '("whatever"))
(initrd "/path/to/initrd")))))
> After some more mails with help-grub ML It seems that Grub can do even better -
> it can load core.img right from Guix's filesystem or just read new
> configuration (multiboot, resp. config - both shown here
> http://www.gnu.org/software/grub/manual/grub.html#Multi_002dboot-manual-config
> )... But these are just Grub chainloading Grub solutions...
>
> From Guix perspective I don't think it is possible to do it
> automatically. I think you can consider installation of Grub to
> partiotion as something just for advanced users. With that in mind I
> believe guix should refuse (with some warning) installing grub that
> way. Advanced users can use `--no-grub' option which will prevent guix
> from fail and do manually anything they desire. And in the
> documentation I'd give some short notice about that with link to Grub
> manual. IMHO information that "only ZFS and BtrFS can embed core.img
> into boot sector" belongs there.
OK, thanks for the info. I’m tempted to think the GRUB manual should be
the primary source for this sort of things.
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* (unknown),
@ 2015-03-25 22:49 Tomáš Čech
2015-03-26 21:22 ` none Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: Tomáš Čech @ 2015-03-25 22:49 UTC (permalink / raw)
To: guix-devel
I haven't seen any further reaction for 12 days so I hope you don't mind that
I resend it again.
^ permalink raw reply [flat|nested] 44+ messages in thread
* (unknown)
@ 2016-07-21 1:39 Unknown, Pjotr Prins
2016-07-21 12:51 ` none Ludovic Courtès
0 siblings, 1 reply; 44+ messages in thread
From: Unknown, Pjotr Prins @ 2016-07-21 1:39 UTC (permalink / raw)
To: guix-devel
From 5fd8f64794b27f59f6688177a7a9e532b5d57f01 Mon Sep 17 00:00:00 2001
Date: Tue, 19 Jul 2016 11:13:27 +0000
Subject: [PATCH] gnu: Add elixir.
To: guix-devel@gnu.org
From: Pjotr Prins <pjotr.public01@thebird.nl>
References: <578e47d0.i8Ovns6KhzHqzVNC%pjotr.public12@thebird.nl>
* gnu/packages/elixir.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
---
gnu/local.mk | 1 +
gnu/packages/elixir.scm | 91 ++++++++++++
.../patches/elixir-disable-failing-tests.patch | 108 +++++++++++++++
.../patches/elixir-disable-mix-tests.patch | 152 +++++++++++++++++++++
gnu/packages/ruby.scm | 1 -
5 files changed, 352 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/elixir.scm
create mode 100644 gnu/packages/patches/elixir-disable-failing-tests.patch
create mode 100644 gnu/packages/patches/elixir-disable-mix-tests.patch
diff --git a/gnu/local.mk b/gnu/local.mk
index 536ecef..7a9a820 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -104,6 +104,7 @@ GNU_SYSTEM_MODULES = \
%D%/packages/ebook.scm \
%D%/packages/ed.scm \
%D%/packages/elf.scm \
+ %D%/packages/elixir.scm \
%D%/packages/emacs.scm \
%D%/packages/enchant.scm \
%D%/packages/engineering.scm \
diff --git a/gnu/packages/elixir.scm b/gnu/packages/elixir.scm
new file mode 100644
index 0000000..c1bbab3
--- /dev/null
+++ b/gnu/packages/elixir.scm
@@ -0,0 +1,91 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2016 Pjotr Prins <pjotr.public12@thebird.nl>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages elixir)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module (guix packages)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages base) ; for patch
+ #:use-module (gnu packages erlang)
+ #:use-module (gnu packages version-control))
+
+(define-public elixir
+ (package
+ (name "elixir")
+ (version "1.3.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/elixir-lang/elixir/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0jsc6kl7f74yszcypdv3w3vhyc9qfqav8nwc41in082m0vpfy95y"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("patch" ,patch)
+ ("patch/elixir-disable-failing-tests"
+ ,(search-patch "elixir-disable-failing-tests.patch"))
+ ("patch/elixir-disable-mix-tests"
+ ,(search-patch "elixir-disable-mix-tests.patch"))))
+ (inputs
+ `(("erlang" ,erlang)
+ ("git" ,git)))
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (add-after 'unpack 'replace-git-path
+ (lambda _
+ (substitute* '("lib/elixir/lib/system.ex"
+ "lib/mix/lib/mix/scm/git.ex")
+ (("cmd\\('git") (string-append "cmd('" (which "git")))
+ (("cmd\\(\"git") (string-append "cmd(\"" (which "git"))))
+ #t))
+ (delete 'configure)
+ (add-before 'build 'rewrite-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (substitute* "bin/elixir"
+ (("ERL_EXEC=\"erl\"")
+ (string-append "ERL_EXEC=" (which "erl"))))))
+ (add-after 'build 'disable-breaking-elixir-tests
+ ;; when patching tests as part of source the build breaks, so we do
+ ;; it after the build phase
+ (lambda* (#:key inputs #:allow-other-keys)
+ (and
+ (zero? (system* "patch" "--force" "-p1" "-i"
+ (assoc-ref inputs "patch/elixir-disable-failing-tests")))
+ (zero? (system* "patch" "--force" "-p1" "-i"
+ (assoc-ref inputs "patch/elixir-disable-mix-tests")))
+ ;; Tests currently fail in these two files:
+ (delete-file "./lib/mix/test/mix/tasks/deps.git_test.exs")
+ (delete-file "./lib/mix/test/mix/shell_test.exs"))))
+ (replace 'check
+ (lambda _
+ (zero? (system* "make" "test"))))) ;; 3124 tests, 0 failures, 11 skipped
+ #:make-flags (list (string-append "PREFIX=" %output))))
+ (home-page "http://elixir-lang.org/")
+ (synopsis "The Elixir programming language")
+ (description "Elixir is a dynamic, functional language used to
+build scalable and maintainable applications. Elixir leverages the
+Erlang VM, known for running low-latency, distributed and
+fault-tolerant systems, while also being successfully used in web
+development and the embedded software domain.")
+ (license license:asl2.0)))
diff --git a/gnu/packages/patches/elixir-disable-failing-tests.patch b/gnu/packages/patches/elixir-disable-failing-tests.patch
new file mode 100644
index 0000000..802cb1e
--- /dev/null
+++ b/gnu/packages/patches/elixir-disable-failing-tests.patch
@@ -0,0 +1,108 @@
+diff --git a/lib/elixir/test/elixir/kernel/cli_test.exs b/lib/elixir/test/elixir/kernel/cli_test.exs
+index 3ffd56c..1232d19 100644
+--- a/lib/elixir/test/elixir/kernel/cli_test.exs
++++ b/lib/elixir/test/elixir/kernel/cli_test.exs
+@@ -39,6 +39,7 @@ end
+ defmodule Kernel.CLI.OptionParsingTest do
+ use ExUnit.Case, async: true
+
++ @tag :skip
+ test "properly parses paths" do
+ root = fixture_path("../../..") |> to_charlist
+ list = elixir('-pa "#{root}/*" -pz "#{root}/lib/*" -e "IO.inspect(:code.get_path, limit: :infinity)"')
+@@ -57,6 +58,7 @@ end
+ defmodule Kernel.CLI.AtExitTest do
+ use ExUnit.Case, async: true
+
++ @tag :skip
+ test "invokes at_exit callbacks" do
+ assert elixir(fixture_path("at_exit.exs") |> to_charlist) ==
+ 'goodbye cruel world with status 1\n'
+@@ -66,6 +68,7 @@ end
+ defmodule Kernel.CLI.ErrorTest do
+ use ExUnit.Case, async: true
+
++ @tag :skip
+ test "properly format errors" do
+ assert :string.str('** (throw) 1', elixir('-e "throw 1"')) == 0
+ assert :string.str('** (ErlangError) erlang error: 1', elixir('-e "error 1"')) == 0
+@@ -86,6 +89,7 @@ defmodule Kernel.CLI.CompileTest do
+ {:ok, [tmp_dir_path: tmp_dir_path, beam_file_path: beam_file_path, fixture: fixture]}
+ end
+
++ @tag :skip
+ test "compiles code", context do
+ assert elixirc('#{context[:fixture]} -o #{context[:tmp_dir_path]}') == ''
+ assert File.regular?(context[:beam_file_path])
+@@ -96,6 +100,7 @@ defmodule Kernel.CLI.CompileTest do
+ Code.delete_path context[:tmp_dir_path]
+ end
+
++ @tag :skip
+ test "fails on missing patterns", context do
+ output = elixirc('#{context[:fixture]} non_existing.ex -o #{context[:tmp_dir_path]}')
+ assert :string.str(output, 'non_existing.ex') > 0, "expected non_existing.ex to be mentioned"
+@@ -103,6 +108,7 @@ defmodule Kernel.CLI.CompileTest do
+ refute File.exists?(context[:beam_file_path]), "expected the sample to not be compiled"
+ end
+
++ @tag :skip
+ test "fails on missing write access to .beam file", context do
+ compilation_args = '#{context[:fixture]} -o #{context[:tmp_dir_path]}'
+
+diff --git a/lib/elixir/test/elixir/kernel/dialyzer_test.exs b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
+index 801d852..40fc5bc 100644
+--- a/lib/elixir/test/elixir/kernel/dialyzer_test.exs
++++ b/lib/elixir/test/elixir/kernel/dialyzer_test.exs
+@@ -60,16 +60,19 @@ defmodule Kernel.DialyzerTest do
+ assert_dialyze_no_warnings! context
+ end
+
++ @tag :skip
+ test "no warnings on rewrites", context do
+ copy_beam! context, Dialyzer.Rewrite
+ assert_dialyze_no_warnings! context
+ end
+
++ @tag :skip
+ test "no warnings on raise", context do
+ copy_beam! context, Dialyzer.Raise
+ assert_dialyze_no_warnings! context
+ end
+
++ @tag :skip
+ test "no warnings on macrocallback", context do
+ copy_beam! context, Dialyzer.Macrocallback
+ copy_beam! context, Dialyzer.Macrocallback.Impl
+diff --git a/lib/elixir/test/elixir/node_test.exs b/lib/elixir/test/elixir/node_test.exs
+index d1f1fe6..5c2d469 100644
+--- a/lib/elixir/test/elixir/node_test.exs
++++ b/lib/elixir/test/elixir/node_test.exs
+@@ -6,8 +6,10 @@ defmodule NodeTest do
+ doctest Node
+
+ test "start/3 and stop/0" do
+- assert Node.stop == {:error, :not_found}
+- assert {:ok, _} = Node.start(:hello, :shortnames, 15000)
+- assert Node.stop() == :ok
++ IO.puts "Skipping test because GNU Guix does not allow the HOME environment variable."
++
++ # assert Node.stop == {:error, :not_found}
++ # assert {:ok, _} = Node.start(:hello, :shortnames, 15000)
++ # assert Node.stop() == :ok
+ end
+ end
+diff --git a/lib/elixir/test/elixir/system_test.exs b/lib/elixir/test/elixir/system_test.exs
+index aafa559..0f9c178 100644
+--- a/lib/elixir/test/elixir/system_test.exs
++++ b/lib/elixir/test/elixir/system_test.exs
+@@ -53,7 +53,8 @@ defmodule SystemTest do
+ assert System.endianness in [:little, :big]
+ assert System.endianness == System.compiled_endianness
+ end
+-
++
++ @tag :skip
+ test "argv/0" do
+ list = elixir('-e "IO.inspect System.argv" -- -o opt arg1 arg2 --long-opt 10')
+ {args, _} = Code.eval_string list, []
diff --git a/gnu/packages/patches/elixir-disable-mix-tests.patch b/gnu/packages/patches/elixir-disable-mix-tests.patch
new file mode 100644
index 0000000..649a916
--- /dev/null
+++ b/gnu/packages/patches/elixir-disable-mix-tests.patch
@@ -0,0 +1,152 @@
+diff --git a/lib/mix/test/mix/dep_test.exs b/lib/mix/test/mix/dep_test.exs
+index fff3351..d6ed1b3 100644
+--- a/lib/mix/test/mix/dep_test.exs
++++ b/lib/mix/test/mix/dep_test.exs
+@@ -244,6 +244,7 @@ defmodule Mix.DepTest do
+ end
+ end
+
++ @tag :skip
+ test "remote converger" do
+ deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
+ {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo")}]
+@@ -301,6 +302,7 @@ defmodule Mix.DepTest do
+ end
+ end
+
++ @tag :skip
+ test "remote converger is not invoked if deps diverge" do
+ deps = [{:deps_repo, "0.1.0", path: "custom/deps_repo"},
+ {:git_repo, "0.2.0", git: MixTest.Case.fixture_path("git_repo"), only: :test}]
+diff --git a/lib/mix/test/mix/rebar_test.exs b/lib/mix/test/mix/rebar_test.exs
+index d2dd098..12cef15 100644
+--- a/lib/mix/test/mix/rebar_test.exs
++++ b/lib/mix/test/mix/rebar_test.exs
+@@ -120,6 +120,7 @@ defmodule Mix.RebarTest do
+ assert Enum.all?(deps, &(&1.manager == :rebar3))
+ end
+
++ @tag :skip
+ test "Rebar overrides" do
+ Mix.Project.push(RebarOverrideAsDep)
+
+@@ -150,6 +151,7 @@ defmodule Mix.RebarTest do
+ end
+ end
+
++ @tag :skip
+ test "get and compile dependencies for Rebar" do
+ Mix.Project.push(RebarAsDep)
+
+@@ -180,6 +182,7 @@ defmodule Mix.RebarTest do
+ end
+ end
+
++ @tag :skip
+ test "get and compile dependencies for rebar3" do
+ Mix.Project.push(Rebar3AsDep)
+
+diff --git a/lib/mix/test/mix/shell/io_test.exs b/lib/mix/test/mix/shell/io_test.exs
+index 9bfb6b4..d982ef3 100644
+--- a/lib/mix/test/mix/shell/io_test.exs
++++ b/lib/mix/test/mix/shell/io_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Shell.IOTest do
+ assert capture_io("", fn -> refute yes?("Ok?") end)
+ end
+
++ @tag :skip
+ test "runs a given command" do
+ assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == "hello\n"
+
+diff --git a/lib/mix/test/mix/shell/quiet_test.exs b/lib/mix/test/mix/shell/quiet_test.exs
+index 626429b..99fab35 100644
+--- a/lib/mix/test/mix/shell/quiet_test.exs
++++ b/lib/mix/test/mix/shell/quiet_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Shell.QuietTest do
+ assert capture_io("", fn -> refute yes?("Ok?") end)
+ end
+
++ @tag :skip
+ test "runs a given command" do
+ assert capture_io("", fn -> assert cmd("echo hello") == 0 end) == ""
+
+diff --git a/lib/mix/test/mix/tasks/cmd_test.exs b/lib/mix/test/mix/tasks/cmd_test.exs
+index db4bf06..4d441f7 100644
+--- a/lib/mix/test/mix/tasks/cmd_test.exs
++++ b/lib/mix/test/mix/tasks/cmd_test.exs
+@@ -3,6 +3,7 @@ Code.require_file "../../test_helper.exs", __DIR__
+ defmodule Mix.Tasks.CmdTest do
+ use MixTest.Case
+
++ @tag :skip
+ test "runs the command for each app" do
+ in_fixture "umbrella_dep/deps/umbrella", fn ->
+ Mix.Project.in_project(:umbrella, ".", fn _ ->
+diff --git a/lib/mix/test/mix/tasks/deps.tree_test.exs b/lib/mix/test/mix/tasks/deps.tree_test.exs
+index 4f09ff3..c371997 100644
+--- a/lib/mix/test/mix/tasks/deps.tree_test.exs
++++ b/lib/mix/test/mix/tasks/deps.tree_test.exs
+@@ -29,6 +29,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
+ end
+ end
+
++ @tag :skip
+ test "shows the dependency tree", context do
+ Mix.Project.push ConvergedDepsApp
+
+@@ -109,6 +110,7 @@ defmodule Mix.Tasks.Deps.TreeTest do
+ end
+ end
+
++ @tag :skip
+ test "shows the dependency tree in DOT graph format", context do
+ Mix.Project.push ConvergedDepsApp
+
+diff --git a/lib/mix/test/mix/tasks/deps_test.exs b/lib/mix/test/mix/tasks/deps_test.exs
+index b061777..cc45cf8 100644
+--- a/lib/mix/test/mix/tasks/deps_test.exs
++++ b/lib/mix/test/mix/tasks/deps_test.exs
+@@ -409,6 +409,7 @@ defmodule Mix.Tasks.DepsTest do
+ end
+ end
+
++ @tag :skip
+ test "fails on diverged dependencies by requirement" do
+ Mix.Project.push ConvergedDepsApp
+
+@@ -440,6 +441,7 @@ defmodule Mix.Tasks.DepsTest do
+ end
+ end
+
++ @tag :skip
+ test "fails on diverged dependencies even when optional" do
+ Mix.Project.push ConvergedDepsApp
+
+@@ -469,6 +471,7 @@ defmodule Mix.Tasks.DepsTest do
+ end
+ end
+
++ @tag :skip
+ test "works with converged dependencies" do
+ Mix.Project.push ConvergedDepsApp
+
+@@ -491,6 +494,7 @@ defmodule Mix.Tasks.DepsTest do
+ purge [GitRepo, GitRepo.Mixfile]
+ end
+
++ @tag :skip
+ test "works with overridden dependencies" do
+ Mix.Project.push OverriddenDepsApp
+
+diff --git a/lib/mix/test/mix/umbrella_test.exs b/lib/mix/test/mix/umbrella_test.exs
+index 69f9428..406668a 100644
+--- a/lib/mix/test/mix/umbrella_test.exs
++++ b/lib/mix/test/mix/umbrella_test.exs
+@@ -98,6 +98,7 @@ defmodule Mix.UmbrellaTest do
+ end
+ end
+
++ @tag :skip
+ test "loads umbrella child dependencies in all environments" do
+ in_fixture "umbrella_dep/deps/umbrella", fn ->
+ Mix.Project.in_project :umbrella, ".", fn _ ->
--
2.6.3
^ permalink raw reply related [flat|nested] 44+ messages in thread
* Re: none
2016-07-21 1:39 (unknown) Unknown, Pjotr Prins
@ 2016-07-21 12:51 ` Ludovic Courtès
2016-07-22 0:41 ` none Pjotr Prins
0 siblings, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2016-07-21 12:51 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel
Hi Pjotr,
Pjotr Prins <pjotr.public12@email> skribis:
> From 5fd8f64794b27f59f6688177a7a9e532b5d57f01 Mon Sep 17 00:00:00 2001
> Date: Tue, 19 Jul 2016 11:13:27 +0000
> Subject: [PATCH] gnu: Add elixir.
> To: guix-devel@gnu.org
> From: Pjotr Prins <pjotr.public01@thebird.nl>
> References: <578e47d0.i8Ovns6KhzHqzVNC%pjotr.public12@thebird.nl>
>
> * gnu/packages/elixir.scm: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
Thanks for the great work!
In
<https://github.com/pjotrp/guix-notes/blob/master/ELIXIR.org#the-gnu-guix-dance-of-getting-packages-accepted>,
you already identified exactly what we were going to say. :-)
Namely, why are patches applied in a build phase rather than in
‘origin’, why is such and such test disabled (one sentence is usually
enough), what happens if we set ‘HOME’ like Ben suggests, etc.
What should we do? :-)
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-21 12:51 ` none Ludovic Courtès
@ 2016-07-22 0:41 ` Pjotr Prins
2016-07-22 2:06 ` none Pjotr Prins
2016-07-22 8:15 ` none Roel Janssen
0 siblings, 2 replies; 44+ messages in thread
From: Pjotr Prins @ 2016-07-22 0:41 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: guix-devel
On Thu, Jul 21, 2016 at 02:51:38PM +0200, Ludovic Courtès wrote:
> In
> <https://github.com/pjotrp/guix-notes/blob/master/ELIXIR.org#the-gnu-guix-dance-of-getting-packages-accepted>,
> you already identified exactly what we were going to say. :-)
>
> Namely, why are patches applied in a build phase rather than in
> ‘origin’, why is such and such test disabled (one sentence is usually
> enough), what happens if we set ‘HOME’ like Ben suggests, etc.
>
> What should we do? :-)
I think I have covered that both in my writeup and in my response to
Ben. I think this work should be accepted as is.
I think this is probably the last package I am contributing to main line.
Never liked dancing that much ;)
But seriously, we should find other ways to encourage people. I wonder
how many packages are out there that never find their way into guix or
much too late. I wonder how much duplicate work is going on because of
our dance requirement. If it this hard *with* my experience in
packaging, how hard do you think it is for people *without*
experience. I know Dennis, for example, is sitting on a heap of opencl
packages which are incredibly useful to many people.
I believe we have to change our ways.
Pj.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 0:41 ` none Pjotr Prins
@ 2016-07-22 2:06 ` Pjotr Prins
2016-07-22 3:25 ` none Jookia
` (2 more replies)
2016-07-22 8:15 ` none Roel Janssen
1 sibling, 3 replies; 44+ messages in thread
From: Pjotr Prins @ 2016-07-22 2:06 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel
A provocation: because of purism GNU Guix takes an elitist approach.
I am thinking that we need another project because it appears to be
impossible to combine low threshold with GNU Guix goals.
How about Alt-Guix, a packaging effort without opinion. As long as a
package builds it gets accepted. This can act as an incubator for main
line. There will be no purist views on syntax, layout, license, github
etc. The whole idea is to build on each others shoulders and anything
that starts is a great contribution.
It would have accepted Erlang + Elixir packages half a year ago and
made it possible to get people interested in these much earlier. Maybe
they would have made it to main line already because more people got
involved and wanted that.
This is much closer to my idea of successful incremental FOSS
projects, i.e., welcome all comers. I think that is part of the appeal
of brew and conda. People need immediate gratification for work.
I understand the need for purism, and applaud the idea, but we are
throwing up too many barriers.
Because GNU Guix is an extreme, we can have the other extreme too. It
would make it easier to invite people, train people and find packages
now hiding behind GUIX_PACKAGE_PATHs.
Pj.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 2:06 ` none Pjotr Prins
@ 2016-07-22 3:25 ` Jookia
2016-07-22 3:48 ` none Leo Famulari
2016-07-22 4:48 ` none Tobias Geerinckx-Rice
2 siblings, 0 replies; 44+ messages in thread
From: Jookia @ 2016-07-22 3:25 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel
On Fri, Jul 22, 2016 at 04:06:56AM +0200, Pjotr Prins wrote:
> A provocation: because of purism GNU Guix takes an elitist approach.
>
> I am thinking that we need another project because it appears to be
> impossible to combine low threshold with GNU Guix goals.
>
> How about Alt-Guix, a packaging effort without opinion. As long as a
> package builds it gets accepted. This can act as an incubator for main
> line. There will be no purist views on syntax, layout, license, github
> etc. The whole idea is to build on each others shoulders and anything
> that starts is a great contribution.
>
> It would have accepted Erlang + Elixir packages half a year ago and
> made it possible to get people interested in these much earlier. Maybe
> they would have made it to main line already because more people got
> involved and wanted that.
>
> This is much closer to my idea of successful incremental FOSS
> projects, i.e., welcome all comers. I think that is part of the appeal
> of brew and conda. People need immediate gratification for work.
>
> I understand the need for purism, and applaud the idea, but we are
> throwing up too many barriers.
>
> Because GNU Guix is an extreme, we can have the other extreme too. It
> would make it easier to invite people, train people and find packages
> now hiding behind GUIX_PACKAGE_PATHs.
>
> Pj.
I've wanted to do something like this, but what about carrying non-package
patches? ie for bootloader support on ARM and better device-mapper support
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 2:06 ` none Pjotr Prins
2016-07-22 3:25 ` none Jookia
@ 2016-07-22 3:48 ` Leo Famulari
2016-07-22 4:48 ` none Tobias Geerinckx-Rice
2 siblings, 0 replies; 44+ messages in thread
From: Leo Famulari @ 2016-07-22 3:48 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel
On Fri, Jul 22, 2016 at 04:06:56AM +0200, Pjotr Prins wrote:
> A provocation: because of purism GNU Guix takes an elitist approach.
>
> I am thinking that we need another project because it appears to be
> impossible to combine low threshold with GNU Guix goals.
>
> How about Alt-Guix, a packaging effort without opinion. As long as a
> package builds it gets accepted. This can act as an incubator for main
> line. There will be no purist views on syntax, layout, license, github
> etc. The whole idea is to build on each others shoulders and anything
> that starts is a great contribution.
Personally, I'm sympathetic to the idea, although I'd rather see how far
we can improve our processes to make them as easy as possible without
sacrificing quality. But, if this does become a thing, I hope the
license will be compatible so that parts can be merged into GNU Guix
when they are ready.
Otherwise, the problem of duplication that you mentioned earlier will be
really bad.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 2:06 ` none Pjotr Prins
2016-07-22 3:25 ` none Jookia
2016-07-22 3:48 ` none Leo Famulari
@ 2016-07-22 4:48 ` Tobias Geerinckx-Rice
2016-07-22 11:07 ` none Pjotr Prins
2 siblings, 1 reply; 44+ messages in thread
From: Tobias Geerinckx-Rice @ 2016-07-22 4:48 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel, Guix-devel
Hiya, Pjotr,
On 2016-07-22 04:06, Pjotr Prins wrote:
> A provocation: because of purism GNU Guix takes an elitist approach.
I've honestly never felt any elitism coming from the Guix project.
Consistency, certainly. _Much_ more so than in most other free
software projects I know. I find it helps getting new users and/or
packagers started, and makes it easier and more pleasant to
contribute. It did for me and people I know.
Others are definitely having a very different experience. That's a
problem.
Discouraging proper code reviews won't do anything to solve that
problem, though.
> I am thinking that we need another project because it appears to be
> impossible to combine low threshold with GNU Guix goals.
>
> How about Alt-Guix, a packaging effort without opinion. As long as a
> package builds it gets accepted.
As long as it's not a fork in any way: yes please!
Sounds like a QA nightmare, but I'll gladly support anything that
will encourage and test some kind of decentralised repository
management in GNU Guix in the future. *mumbles some vague desires*
And knowing myself, I'd end up using it anyway for something shiny
or other.
Mandatory code reviews for Guix: still a good thing, though, and
not the problem.
> This can act as an incubator for main line. There will be no purist
> views on syntax, layout,
In the spirit of (friendly) provocation, I'd nitpick on the term
‘purist views’ and suggest the word ‘standards’ instead. ;-)
That's most likely the intention, and it's really how I experienced
it, during several months of more or less active Guix(SD) use and
lurking on this list, and it was a breath of fresh air. Maybe I'm
weird. I've been told.
But seriously: the code reviews? Most Free software projects don't
do nearly enough. Also, most Free software projects su^W should.
> license, github etc.
I've not seen any licence purism (yet) either. Anything Free, goes.
No?
I'm curious why GitHub's in that list. Sure, the upstream Guix
repository isn't going to move there any time soon. There's no
compelling reason to do so, and not relying on someone else's
good-will is always a good idea. Not relying on someone else's
proprietary secret SaaS is simply common sense. But I haven't
seen any purist elitism towards GitHub users. I'm one.
> I understand the need for purism, and applaud the idea, but we are
> throwing up too many barriers.
>
> Because GNU Guix is an extreme, ...
Wow. I don't see that. At all.
Sorry, that went on a bit longer than intended. I'm just wondering
what I missed, and hoping my experiences here won't hit a burn-out
threshold like it seems to do for some...
Kind regards,
T G-R
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 4:48 ` none Tobias Geerinckx-Rice
@ 2016-07-22 11:07 ` Pjotr Prins
2016-07-22 12:23 ` none Ricardo Wurmus
0 siblings, 1 reply; 44+ messages in thread
From: Pjotr Prins @ 2016-07-22 11:07 UTC (permalink / raw)
To: Tobias Geerinckx-Rice; +Cc: guix-devel, Guix-devel
On Fri, Jul 22, 2016 at 06:48:47AM +0200, Tobias Geerinckx-Rice wrote:
> In the spirit of (friendly) provocation, I'd nitpick on the term
> ‘purist views’ and suggest the word ‘standards’ instead. ;-)
Alright. I concede ;)
> But seriously: the code reviews? Most Free software projects don't
> do nearly enough. Also, most Free software projects su^W should.
The number of contributors is not going up as fast as it should. I
have been quite exasparated with every package I submitted. Does that
mean I should stop packaging? Note that I actually like packaging, but
I feel mentally blocked to submit to the ML... Should we really leave
it to those that are more inclined to do the dance?
> >license, github etc.
>
> I've not seen any licence purism (yet) either. Anything Free, goes.
> No?
Yes, but there are also non-free packages in our repo. They do not
have to go in GNU Guix. I am a great fan of the FSF and GNU. I think
GNU Guix is pure genius. I always choose free over non-free. But we
also have to be pragmatic.
> I'm curious why GitHub's in that list. Sure, the upstream Guix
> repository isn't going to move there any time soon. There's no
> compelling reason to do so, and not relying on someone else's
> good-will is always a good idea. Not relying on someone else's
> proprietary secret SaaS is simply common sense. But I haven't
> seen any purist elitism towards GitHub users. I'm one.
People don't like github because it is non-free.
> >I understand the need for purism, and applaud the idea, but we are
> >throwing up too many barriers.
> >
> >Because GNU Guix is an extreme, ...
>
> Wow. I don't see that. At all.
Everything FSF and/or GNU is pretty extreme ;). It is a good thing. I
buy into it when I can. Barriers are there. Everyone is different, we
have to cater for that.
> As long as it's not a fork in any way: yes please!
We should consider a separate project that is aligned with trunk. I
don't want to divert, but to add to both.
Yellow-band Guix? With a Judoka embracing the Guix logo ;). 'A Guix
package project without an opinion' would be my choice of a slogan.
Judo instead of dancing.
I am not looking forward to having a separate project, but I don't see
much of an alternative. There will be a fear that actualy
contributions to GNU Guix can go down - there is that risk - but my
aim is to get more acceptance and contributors and eventually we all
gain. I am not worried about QA. Work can be self correcting - we
see that a lot.
I had a mug that said 'Stop me before I volunteer again'. This is one
of those moments... But I may just do it.
Pj.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 11:07 ` none Pjotr Prins
@ 2016-07-22 12:23 ` Ricardo Wurmus
2016-07-22 12:50 ` none Jookia
0 siblings, 1 reply; 44+ messages in thread
From: Ricardo Wurmus @ 2016-07-22 12:23 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel, Guix-devel
Pjotr Prins <pjotr.public12@thebird.nl> writes:
> On Fri, Jul 22, 2016 at 06:48:47AM +0200, Tobias Geerinckx-Rice wrote:
>> In the spirit of (friendly) provocation, I'd nitpick on the term
>> ‘purist views’ and suggest the word ‘standards’ instead. ;-)
>
> Alright. I concede ;)
>
>> But seriously: the code reviews? Most Free software projects don't
>> do nearly enough. Also, most Free software projects su^W should.
>
> The number of contributors is not going up as fast as it should. I
> have been quite exasparated with every package I submitted. Does that
> mean I should stop packaging? Note that I actually like packaging, but
> I feel mentally blocked to submit to the ML... Should we really leave
> it to those that are more inclined to do the dance?
I appreciate you sharing your experiences.
I may be wrong but to me this comes down to familiarity with Git or
with having a convenient workflow. I work on many packages and core
changes at the same time in different branches and not having to think
about Git makes this a lot easier. Rarely ever do I feel that a
suggested change is inconvenient because I can just add a new tmp
commit, interactively rebase to reorder and squash commits, and produce
a new patches. All of that in separate branches so that I can continue
work on other things without any impact.
What makes things easier for me personally is to not worry about
urgency. Nothing I do is really urgent. If I need to provide a package
for someone at the institute I don’t wait for acceptance in Guix
upstream; I just push it to our own “guix-bimsb” repo, which is used via
GUIX_PACKAGE_PATH. Eventually, changes are polished and get accepted
upstream; at that point I remove them from the external repo. There is
no hurry and I can choose to take my time addressing issues mentioned in
reviews. (One of my patches for “pam_limits” went through several major
revisions over a duration of half a year or so. I’m a sloth.)
I really don’t think we make it hard for people to contribute. Projects
using Github or similar platforms have a more complicated workflow
(because you must work not only with your local clone but also your
online fork, and you need to force push to make revisions to a pull
request, etc). Prior to Guix I had very little experience with a
mail-based workflow, but I’ve come to really appreciate and prefer it
over the alternatives.
>> As long as it's not a fork in any way: yes please!
>
> We should consider a separate project that is aligned with trunk. I
> don't want to divert, but to add to both.
Aren’t you already doing this with your separate package set on Github?
In my opinion there is no need for an official project like that. We
want most changes to be made to Guix directly. Changes there are much
more likely to benefit the majority of users.
> I am not looking forward to having a separate project, but I don't see
> much of an alternative. There will be a fear that actualy
> contributions to GNU Guix can go down - there is that risk - but my
> aim is to get more acceptance and contributors and eventually we all
> gain. I am not worried about QA. Work can be self correcting - we
> see that a lot.
Hmm, an alternative is what you’ve suggested before: have reviewers
accept more patches earlier. Since we won’t budge on our standards this
means that subpar patches take up more work, more time. As it stands
right now, we don’t have enough time / enough reviewers. (I disagree
with the claim that the number of contributors doesn’t grow quickly
enough; we do have a problem with the number of reviewers.)
It should not be overlooked that some contributors started out with
patch submissions that needed a lot of revisions who now provide us with
extremely reliable contributions. This relieves pressure from reviewers
who can spend more time on other contributions.
For sustainable growth I think it is necessary that we “train”
contributors by means of reviews.
~~ Ricardo
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 12:23 ` none Ricardo Wurmus
@ 2016-07-22 12:50 ` Jookia
2016-07-22 21:19 ` none Leo Famulari
2016-07-24 16:52 ` none Christopher Allan Webber
0 siblings, 2 replies; 44+ messages in thread
From: Jookia @ 2016-07-22 12:50 UTC (permalink / raw)
To: Ricardo Wurmus; +Cc: guix-devel, Guix-devel
On Fri, Jul 22, 2016 at 02:23:42PM +0200, Ricardo Wurmus wrote:
> Pjotr Prins <pjotr.public12@thebird.nl> writes:
>
> > On Fri, Jul 22, 2016 at 06:48:47AM +0200, Tobias Geerinckx-Rice wrote:
> >> In the spirit of (friendly) provocation, I'd nitpick on the term
> >> ‘purist views’ and suggest the word ‘standards’ instead. ;-)
> >
> > Alright. I concede ;)
> >
> >> But seriously: the code reviews? Most Free software projects don't
> >> do nearly enough. Also, most Free software projects su^W should.
> >
> > The number of contributors is not going up as fast as it should. I
> > have been quite exasparated with every package I submitted. Does that
> > mean I should stop packaging? Note that I actually like packaging, but
> > I feel mentally blocked to submit to the ML... Should we really leave
> > it to those that are more inclined to do the dance?
> I appreciate you sharing your experiences.
I've also quit Guix development because of these experiences, so forgive me for
my harsh words. See help-guix for my experiences. In general, I'm a bit sick of
this so I'm going to reiterate some of my concerns.
> What makes things easier for me personally is to not worry about
> urgency. Nothing I do is really urgent. If I need to provide a package
> for someone at the institute I don’t wait for acceptance in Guix
> upstream; I just push it to our own “guix-bimsb” repo, which is used via
> GUIX_PACKAGE_PATH. Eventually, changes are polished and get accepted
> upstream; at that point I remove them from the external repo. There is
> no hurry and I can choose to take my time addressing issues mentioned in
> reviews. (One of my patches for “pam_limits” went through several major
> revisions over a duration of half a year or so. I’m a sloth.)
Guuix uses a mailing list for development, like most GNU projects. Maybe this
works for those, but Guix is trying to be hip and cool and fresh compared to
most GNU projects which are stable and generally a pain to contribute to.
On top of that, the maintainers can't even use the mailing list properly:
Patches are lost, discussion doesn't happen, things are lost and it's hard for
new users to join in. Who exactly benefits from this workflow compared to
something web-based? Sure, maybe you could argue that the maintainers are best
served with it, or that you personally are attuned to that. Fine, but let's not
pretend the mailing list isn't gruelling.
> I really don’t think we make it hard for people to contribute. Projects
> using Github or similar platforms have a more complicated workflow
> (because you must work not only with your local clone but also your
> online fork, and you need to force push to make revisions to a pull
> request, etc). Prior to Guix I had very little experience with a
> mail-based workflow, but I’ve come to really appreciate and prefer it
> over the alternatives.
It's a complicated setup in return for being able to track what's happening in
the project. If I were to ask, 'how many patches are pending review' right now
you'd have absolutely no idea.
> Aren’t you already doing this with your separate package set on Github?
> In my opinion there is no need for an official project like that. We
> want most changes to be made to Guix directly. Changes there are much
> more likely to benefit the majority of users.
This is the reason why I really dislike the current attitude of the community.
You're building an operating system which by definition is meant to serve a ton
of different needs, building it slowly and not urgently at all, but then arguing
changes should be kept centralized for the benefit of all users and staging
features should be pushed to whateve personal repositories we have.
> Hmm, an alternative is what you’ve suggested before: have reviewers
> accept more patches earlier. Since we won’t budge on our standards this
> means that subpar patches take up more work, more time. As it stands
> right now, we don’t have enough time / enough reviewers. (I disagree
> with the claim that the number of contributors doesn’t grow quickly
> enough; we do have a problem with the number of reviewers.)
This isn't a software project, it's an operating system. At least until there's
a Guix and GuixSD repo split. Implying the issue that patches not being accepted
is due to subpar patches or high standards sounds good, but isn't true. A lot of
the issues are design-related and require discussion that can't be known in
advance by conributors since Guix is dictated by the maintainers' preferences.
To my knowledge there's no detailed list of what to do in absolutely every
situation involved in the complexity of packaging something, especially with how
new the project is.
> It should not be overlooked that some contributors started out with
> patch submissions that needed a lot of revisions who now provide us with
> extremely reliable contributions. This relieves pressure from reviewers
> who can spend more time on other contributions.
>
> For sustainable growth I think it is necessary that we “train”
> contributors by means of reviews.
Sorry, do you mean contributor as in packager or contributor as in general
devleoper that works on GuixSD's non-package features? How do we train people
doing the latter?
All in all, I say we have a repo for staging patches that work but aren't as
nice looking or implemented as well as they should be. If not part of Guix, then
as a branch/fork. It should not be up to Guix as to what features users get, but
instead the users based on whichever fork they're using.
> ~~ Ricardo
Jookia.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 12:50 ` none Jookia
@ 2016-07-22 21:19 ` Leo Famulari
2016-07-24 4:17 ` none Jookia
2016-07-24 16:52 ` none Christopher Allan Webber
1 sibling, 1 reply; 44+ messages in thread
From: Leo Famulari @ 2016-07-22 21:19 UTC (permalink / raw)
To: Jookia; +Cc: guix-devel, Guix-devel
On Fri, Jul 22, 2016 at 10:50:14PM +1000, Jookia wrote:
> On top of that, the maintainers can't even use the mailing list properly:
> Patches are lost, discussion doesn't happen, things are lost and it's hard for
> new users to join in. Who exactly benefits from this workflow compared to
> something web-based? Sure, maybe you could argue that the maintainers are best
> served with it, or that you personally are attuned to that. Fine, but let's not
> pretend the mailing list isn't gruelling.
I've heard a handful of people express frustration with a mail-based
workflow. Here's what's easy for me:
1) I set up my mail provider / server to put all mail from
guix-devel@gnu.org into a Guix mailbox. This doesn't require advanced
knowledge. Even the most "user-friendly" solutions like GMail have this
feature.
2) When a message is "done", I put it in an Archive mailbox or delete
it. A message is done when it no longer requires attention. For example,
when I've replied and am waiting for the other person to reply, or when
a patch has been merged.
> It's a complicated setup in return for being able to track what's happening in
> the project. If I were to ask, 'how many patches are pending review' right now
> you'd have absolutely no idea.
I can look at my Guix mailbox to see all outstanding patches.
By the way, if someone asks the submitter to look into something or make
a change, the patch is no longer outstanding until they reply. The ball
is now in their court. I archive their message if I have nothing else to
add [0]. We all manage *our own submissions*. Nobody else is responsible
for that. Otherwise, we can't expect that the submitter will maintain
their code once it has been merged.
[0] Sometimes I don't archive messages, because I know that I will pick
up the work if the submitter drops it.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 21:19 ` none Leo Famulari
@ 2016-07-24 4:17 ` Jookia
2016-07-24 6:35 ` none Leo Famulari
0 siblings, 1 reply; 44+ messages in thread
From: Jookia @ 2016-07-24 4:17 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel, Guix-devel
On Fri, Jul 22, 2016 at 05:19:42PM -0400, Leo Famulari wrote:
> I can look at my Guix mailbox to see all outstanding patches.
Can you post a list of this? Does it include my outstanding patches?
> By the way, if someone asks the submitter to look into something or make
> a change, the patch is no longer outstanding until they reply. The ball
> is now in their court. I archive their message if I have nothing else to
> add [0]. We all manage *our own submissions*. Nobody else is responsible
> for that. Otherwise, we can't expect that the submitter will maintain
> their code once it has been merged.
This is true, but this still doesn't fix the issue that reviewers sometimes
don't reply and eventually just forget about patches.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-24 4:17 ` none Jookia
@ 2016-07-24 6:35 ` Leo Famulari
2016-07-24 7:47 ` none Jookia
0 siblings, 1 reply; 44+ messages in thread
From: Leo Famulari @ 2016-07-24 6:35 UTC (permalink / raw)
To: Jookia; +Cc: guix-devel, Guix-devel
On Sun, Jul 24, 2016 at 02:17:21PM +1000, Jookia wrote:
> On Fri, Jul 22, 2016 at 05:19:42PM -0400, Leo Famulari wrote:
> > I can look at my Guix mailbox to see all outstanding patches.
>
> Can you post a list of this? Does it include my outstanding patches?
It does not include your patches. I archived the messages that included
your previously outstanding patches when you withdrew them from
consideration. Many of your patches were to parts of the system that I
don't understand. Readers of this list will recognize that I usually
reply to package patches. That's basically the current limit of my
knowledge.
The list is below. Some of these appear abandoned, some are unfinished,
some are being held for the next core-updates cycle, and some are
difficult to review (documentation patches are surprisingly hard to
review!). By the way, this list does not include my own unfinished work,
or the dozens of non-patch discussions that I am not ready to forget.
Re: [PATCH] gnu: Add libosinfo.
[PATCH] Add sonata and python-mpd2
[PATCH] URL format change for haskell.scm
[PATCH] xorg.scm fix http to https URLs.
[WIP v0.1 0/8] KDE framework 5, tier 1
Re: [PATCH] gnu: libgcrypt update to 1.7.1
Re: (pre-release) [PATCH] torsocks update to 2.2.0-rc1
Re: [PATCH] Add python-pythondialog
Re: [PATCH] gnu: Add netcat-openbsd. [v2
[PATCH] doc: 7.6.3 example: revision
Re: [PATCH] gnu: Add fontconfig-path-max.
[PATCH] Enhance USB install
[PATCH 1/6] gnu: libgcrypt: Update to 1.7.2. et al
[PATCH 1/3] doc: Point out preference of message format.
[PATCH 2/3] doc: Send changes in your patch which are related.
[PATCH] doc: Explain when guix edit is read-only.
[PATCH] gnu: perl-io-socket-ssl: Update to 2.033 and add IDN support.
Re: [PATCH 2/3] profiles: Add fonts-dir-file hook.
[PATCH] lint: 'inputs-should-be-native' checks for intltool, itstool and glib:bin.
[PATCH] download: Add official SourceForge mirror.
[PATCH} Add RAID devices.
[PATCH] Add gnu/packages/u-boot.scm with all the boards that u-boot supports right now
[PATCH] gnu: icecat: Install icons.
Re: [PATCH 3/3] gnu: icedtea-6: Generate keystore.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-24 6:35 ` none Leo Famulari
@ 2016-07-24 7:47 ` Jookia
0 siblings, 0 replies; 44+ messages in thread
From: Jookia @ 2016-07-24 7:47 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel, Guix-devel
On Sun, Jul 24, 2016 at 02:35:41AM -0400, Leo Famulari wrote:
> It does not include your patches. I archived the messages that included
> your previously outstanding patches when you withdrew them from
> consideration. Many of your patches were to parts of the system that I
> don't understand. Readers of this list will recognize that I usually
> reply to package patches. That's basically the current limit of my
> knowledge.
I'm glad to hear that. It's interesting that you point this out, perhaps the
problem with my experiences I've had is that nobody wants to assign discussions
or the patches I've worked on to themselves? What should happen when nobody
wants to take up a patch or discussion?
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 12:50 ` none Jookia
2016-07-22 21:19 ` none Leo Famulari
@ 2016-07-24 16:52 ` Christopher Allan Webber
2016-07-24 17:03 ` none Andreas Enge
1 sibling, 1 reply; 44+ messages in thread
From: Christopher Allan Webber @ 2016-07-24 16:52 UTC (permalink / raw)
To: Jookia; +Cc: guix-devel, Guix-devel
Jookia writes:
>> What makes things easier for me personally is to not worry about
>> urgency. Nothing I do is really urgent. If I need to provide a package
>> for someone at the institute I don’t wait for acceptance in Guix
>> upstream; I just push it to our own “guix-bimsb” repo, which is used via
>> GUIX_PACKAGE_PATH. Eventually, changes are polished and get accepted
>> upstream; at that point I remove them from the external repo. There is
>> no hurry and I can choose to take my time addressing issues mentioned in
>> reviews. (One of my patches for “pam_limits” went through several major
>> revisions over a duration of half a year or so. I’m a sloth.)
>
> Guuix uses a mailing list for development, like most GNU projects. Maybe this
> works for those, but Guix is trying to be hip and cool and fresh compared to
> most GNU projects which are stable and generally a pain to contribute to.
>
> On top of that, the maintainers can't even use the mailing list properly:
> Patches are lost, discussion doesn't happen, things are lost and it's hard for
> new users to join in. Who exactly benefits from this workflow compared to
> something web-based? Sure, maybe you could argue that the maintainers are best
> served with it, or that you personally are attuned to that. Fine, but let's not
> pretend the mailing list isn't gruelling.
GNU MediaGoblin is "hip and cool" (or something) in that it uses a web
based issue tracker primarily. (I guess it be hipper and cooler by
using something that integrated with git and had "web based pull
requests".) Note that it hasn't saved us here. There are times I fall
behind, and so do other contributors, and things get clogged up. Often
I am envious these days of the speed at which Guix moves. (A lot of the
slowness is related to me trying to advance standards work that helps
MediaGoblin in the long run, but that's an aside.)
Technological decisions can play a huge part... though even more so is
contributor bandwidth...
>> Aren’t you already doing this with your separate package set on Github?
>> In my opinion there is no need for an official project like that. We
>> want most changes to be made to Guix directly. Changes there are much
>> more likely to benefit the majority of users.
>
> This is the reason why I really dislike the current attitude of the community.
> You're building an operating system which by definition is meant to serve a ton
> of different needs, building it slowly and not urgently at all, but then arguing
> changes should be kept centralized for the benefit of all users and staging
> features should be pushed to whateve personal repositories we have.
Everyone else has said everything I'd like to say on this front mostly,
but I *do* think it's great that Guix is pure and has high standards.
That said, Guix probably could use some quasi-organized "guix-heresy"
external repositories that help people be "practical" where we can't.
(Heck, we won't be even able to advocate it, but the people who want it
will find it.)
To address Mark Weaver's points, yeah, that stuff will break
occasionally as in terms of internal Guix changes to the
codebase... that's the cost of doing it.
As one more aside, I'm glad to see this conversation happening but also
kind of bummed out... pretty much everyone on here I really admire. I'm
confident things will pan out, if we listen to each other.
- Chris
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-24 16:52 ` none Christopher Allan Webber
@ 2016-07-24 17:03 ` Andreas Enge
0 siblings, 0 replies; 44+ messages in thread
From: Andreas Enge @ 2016-07-24 17:03 UTC (permalink / raw)
To: Christopher Allan Webber; +Cc: guix-devel, Guix-devel
Hi Chris,
thanks for your contribution!
On Sun, Jul 24, 2016 at 11:52:52AM -0500, Christopher Allan Webber wrote:
> GNU MediaGoblin is "hip and cool" (or something) in that it uses a web
> based issue tracker primarily.
Do you think we could learn from GNU MediaGoblin to be hipper and cooler?
Would you recommend your system?
Andreas
PS:
"Von der Sowjetunion lernen, heißt siegen lernen"
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 0:41 ` none Pjotr Prins
2016-07-22 2:06 ` none Pjotr Prins
@ 2016-07-22 8:15 ` Roel Janssen
2016-07-22 14:07 ` none Leo Famulari
2016-07-22 16:13 ` none Ludovic Courtès
1 sibling, 2 replies; 44+ messages in thread
From: Roel Janssen @ 2016-07-22 8:15 UTC (permalink / raw)
To: Pjotr Prins; +Cc: guix-devel
Pjotr Prins writes:
> On Thu, Jul 21, 2016 at 02:51:38PM +0200, Ludovic Courtès wrote:
>> In
>> <https://github.com/pjotrp/guix-notes/blob/master/ELIXIR.org#the-gnu-guix-dance-of-getting-packages-accepted>,
>> you already identified exactly what we were going to say. :-)
>>
>> Namely, why are patches applied in a build phase rather than in
>> ‘origin’, why is such and such test disabled (one sentence is usually
>> enough), what happens if we set ‘HOME’ like Ben suggests, etc.
>>
>> What should we do? :-)
>
> I think I have covered that both in my writeup and in my response to
> Ben. I think this work should be accepted as is.
>
> I think this is probably the last package I am contributing to main line.
> Never liked dancing that much ;)
For the last twenty weeks or so I have started contributing packages to
GNU Guix mainly because Pjotr gave me the opportunity to do so. For me,
upstreaming was part of the deal, and I'd say it has taken me at least
two times the time it took me to write a proper package definition to
get it in the upstream distribution.
You've seen the mistakes I made, and the little syntactic things that
kept going wrong over time. Near the end of my internship, however, I
saw a positive change: Reviewers actually make little changes, instead
of leaving it up to the submitter to ``fix the indendation''. This
change makes the burden of reviewing smaller as well as the burden to
submit a package. Great!
One thing that really helped me in reducing the time to contribute
changes to the upstream distribution, is to have a good workflow. I
ended up doing the following:
1. Make the changes.
2. Commit the changes.
3 git format-patch -1 --no-attach
4. git reset --hard <latest commit on origin/master>
5. Submit the patch to the mailing list
6. Wait for response and probably go back to 1.
I made all of my changes on a GNU Guix git checkout. So, not writing
package definitions on a separate repository.
> But seriously, we should find other ways to encourage people. I wonder
> how many packages are out there that never find their way into guix or
> much too late. I wonder how much duplicate work is going on because of
> our dance requirement. If it this hard *with* my experience in
> packaging, how hard do you think it is for people *without*
> experience. I know Dennis, for example, is sitting on a heap of opencl
> packages which are incredibly useful to many people.
>
> I believe we have to change our ways.
The problem is real. I have taken contributing back to upstream _very_
serious, and I haven't been able to get everything back into GNU Guix
either.
Packages I work(ed) on that haven't made it upstream (yet) due to
``imperfect'' patches:
* MongoDB: Bundled source code;
* GParted: The help function does not work without external
documentation database tool;
* FreeBayes: At first, licensing issues, now just a plain ugly patch to
deal with the unbundling of its dependencies in the
Makefiles of this project;
* VCFLib: Same situation as FreeBayes. To be honest, this package
would've not ended up as a separate package if I didn't
have to split up FreeBayes. I consider this a positive
effect of the review process.
Lastly, I would like to say that I think the package reviews have always
been positive and fair. We are trying to maintain a high-quality
distribution, and this is a natural effect of trying to do so.
Maybe we could create an online course to do packaging with GNU Guix and
make it rewarding with a grading system and giving achievement points..
That might make the incentive to make the upstreaming step of packaging
more fun and more like a learning process rather than a recurrent PITA.
(This is something I could spend time at..)
Kind regards,
Roel Janssen
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 8:15 ` none Roel Janssen
@ 2016-07-22 14:07 ` Leo Famulari
2016-07-22 14:15 ` none Vincent Legoll
2016-07-22 16:13 ` none Ludovic Courtès
1 sibling, 1 reply; 44+ messages in thread
From: Leo Famulari @ 2016-07-22 14:07 UTC (permalink / raw)
To: Roel Janssen; +Cc: guix-devel
> You've seen the mistakes I made, and the little syntactic things that
> kept going wrong over time. Near the end of my internship, however, I
> saw a positive change: Reviewers actually make little changes, instead
> of leaving it up to the submitter to ``fix the indendation''. This
> change makes the burden of reviewing smaller as well as the burden to
> submit a package. Great!
That's good. I think there is some value in asking submitters to correct
even small issues, so that they have a chance to learn. But, the faster
method is for the reviewer to make the correction themselves, and then
explain the difference. If there are many minor changes, the reviewer
can attach a diff to their reply.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 14:07 ` none Leo Famulari
@ 2016-07-22 14:15 ` Vincent Legoll
0 siblings, 0 replies; 44+ messages in thread
From: Vincent Legoll @ 2016-07-22 14:15 UTC (permalink / raw)
To: Leo Famulari; +Cc: guix-devel
On Fri, Jul 22, 2016 at 4:07 PM, Leo Famulari <leo@famulari.name> wrote:
>> You've seen the mistakes I made, and the little syntactic things that
>> kept going wrong over time. Near the end of my internship, however, I
>> saw a positive change: Reviewers actually make little changes, instead
>> of leaving it up to the submitter to ``fix the indendation''. This
>> change makes the burden of reviewing smaller as well as the burden to
>> submit a package. Great!
>
> That's good. I think there is some value in asking submitters to correct
> even small issues, so that they have a chance to learn. But, the faster
> method is for the reviewer to make the correction themselves, and then
> explain the difference. If there are many minor changes, the reviewer
> can attach a diff to their reply.
That's a matter of taste, I prefer being told that my contribution is not good
enough and then fix it myself, but that's because I'm not doing a lot...
If the maintainer wants to do additional changes, I also prefer he does it in
a separate patch/commit, as that would enable me to git pull --ff instead of
merge...
my .02€
--
Vincent Legoll
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 8:15 ` none Roel Janssen
2016-07-22 14:07 ` none Leo Famulari
@ 2016-07-22 16:13 ` Ludovic Courtès
2016-07-22 16:38 ` none myglc2
1 sibling, 1 reply; 44+ messages in thread
From: Ludovic Courtès @ 2016-07-22 16:13 UTC (permalink / raw)
To: Roel Janssen; +Cc: guix-devel
Hi Roel,
Roel Janssen <roel@gnu.org> skribis:
> For the last twenty weeks or so I have started contributing packages to
> GNU Guix mainly because Pjotr gave me the opportunity to do so. For me,
> upstreaming was part of the deal, and I'd say it has taken me at least
> two times the time it took me to write a proper package definition to
> get it in the upstream distribution.
>
> You've seen the mistakes I made, and the little syntactic things that
> kept going wrong over time. Near the end of my internship, however, I
> saw a positive change: Reviewers actually make little changes, instead
> of leaving it up to the submitter to ``fix the indendation''. This
> change makes the burden of reviewing smaller as well as the burden to
> submit a package. Great!
Thanks for your feedback.
> One thing that really helped me in reducing the time to contribute
> changes to the upstream distribution, is to have a good workflow. I
> ended up doing the following:
> 1. Make the changes.
> 2. Commit the changes.
> 3 git format-patch -1 --no-attach
> 4. git reset --hard <latest commit on origin/master>
> 5. Submit the patch to the mailing list
> 6. Wait for response and probably go back to 1.
>
> I made all of my changes on a GNU Guix git checkout. So, not writing
> package definitions on a separate repository.
Do you think it would help to add this as a section in the manual?
>> But seriously, we should find other ways to encourage people. I wonder
>> how many packages are out there that never find their way into guix or
>> much too late. I wonder how much duplicate work is going on because of
>> our dance requirement. If it this hard *with* my experience in
>> packaging, how hard do you think it is for people *without*
>> experience. I know Dennis, for example, is sitting on a heap of opencl
>> packages which are incredibly useful to many people.
>>
>> I believe we have to change our ways.
>
> The problem is real. I have taken contributing back to upstream _very_
> serious, and I haven't been able to get everything back into GNU Guix
> either.
>
> Packages I work(ed) on that haven't made it upstream (yet) due to
> ``imperfect'' patches:
> * MongoDB: Bundled source code;
> * GParted: The help function does not work without external
> documentation database tool;
(I think it’s OK if GParted’s documentation isn’t available; that’s
probably the case for some other GNOME apps.)
> * FreeBayes: At first, licensing issues, now just a plain ugly patch to
> deal with the unbundling of its dependencies in the
> Makefiles of this project;
> * VCFLib: Same situation as FreeBayes. To be honest, this package
> would've not ended up as a separate package if I didn't
> have to split up FreeBayes. I consider this a positive
> effect of the review process.
Recursive bundling? Woow. :-)
Bundling is definitely a difficulty. I still think there are good
reasons to unbundle software, but there are also a few exceptions in the
packages we provide.
It might be that VCFLib or the things in bundles have practically no
other user, in which case bundling makes absolutely no difference.
So I’m guessing these might be acceptable as-is.
> Maybe we could create an online course to do packaging with GNU Guix and
> make it rewarding with a grading system and giving achievement points..
> That might make the incentive to make the upstreaming step of packaging
> more fun and more like a learning process rather than a recurrent PITA.
> (This is something I could spend time at..)
Sure. Concrete suggestions like this often help more than rants! :-)
Thank you,
Ludo’.
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 16:13 ` none Ludovic Courtès
@ 2016-07-22 16:38 ` myglc2
2016-07-23 7:03 ` none Tomáš Čech
0 siblings, 1 reply; 44+ messages in thread
From: myglc2 @ 2016-07-22 16:38 UTC (permalink / raw)
To: guix-devel
ludo@gnu.org (Ludovic Courtès) writes:
> Hi Roel,
>
> Roel Janssen <roel@gnu.org> skribis:
>
[...]
>
>> One thing that really helped me in reducing the time to contribute
>> changes to the upstream distribution, is to have a good workflow. I
>> ended up doing the following:
>> 1. Make the changes.
>> 2. Commit the changes.
>> 3 git format-patch -1 --no-attach
>> 4. git reset --hard <latest commit on origin/master>
>> 5. Submit the patch to the mailing list
>> 6. Wait for response and probably go back to 1.
>>
>> I made all of my changes on a GNU Guix git checkout. So, not writing
>> package definitions on a separate repository.
>
> Do you think it would help to add this as a section in the manual?
This is a great idea!
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
2016-07-22 16:38 ` none myglc2
@ 2016-07-23 7:03 ` Tomáš Čech
0 siblings, 0 replies; 44+ messages in thread
From: Tomáš Čech @ 2016-07-23 7:03 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 1274 bytes --]
On Fri, Jul 22, 2016 at 12:38:44PM -0400, myglc2 wrote:
>ludo@gnu.org (Ludovic Courtès) writes:
>
>> Hi Roel,
>>
>> Roel Janssen <roel@gnu.org> skribis:
>>
>[...]
>>
>>> One thing that really helped me in reducing the time to contribute
>>> changes to the upstream distribution, is to have a good workflow. I
>>> ended up doing the following:
>>> 1. Make the changes.
>>> 2. Commit the changes.
>>> 3 git format-patch -1 --no-attach
>>> 4. git reset --hard <latest commit on origin/master>
>>> 5. Submit the patch to the mailing list
>>> 6. Wait for response and probably go back to 1.
>>>
>>> I made all of my changes on a GNU Guix git checkout. So, not writing
>>> package definitions on a separate repository.
>>
>> Do you think it would help to add this as a section in the manual?
>
>This is a great idea!
This reminds me:
https://cdn.meme.am/instances/500x/69604641.jpg
I ended with using topic branches or queues instead, all on top of
master.
wip - not yet finished changes
review - sent to ML and waiting for review
lvm, kernel, ... - branches with some topic changes
cherry-picking from wip to review and sending from there as described
above.
`git pull --rebase' will identify when they have been merged.
S_W
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 44+ messages in thread
* Re: none
@ 2016-07-23 9:15 David Craven
0 siblings, 0 replies; 44+ messages in thread
From: David Craven @ 2016-07-23 9:15 UTC (permalink / raw)
To: guix-devel, Vincent Legoll
> If the maintainer wants to do additional changes, I also prefer he does it in
> a separate patch/commit, as that would enable me to git pull --ff instead of
> merge...
I like fetching origin master, checking which patches made it in and then
rebase -i origin/master and drop the commits that made it in...
^ permalink raw reply [flat|nested] 44+ messages in thread
end of thread, other threads:[~2016-07-24 17:03 UTC | newest]
Thread overview: 44+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-04 15:12 (unknown), John Darrington
2014-02-04 15:12 ` [PATCH 1/3] gnu: boost: New module John Darrington
2014-02-04 20:51 ` Ludovic Courtès
2014-02-04 15:12 ` [PATCH 2/3] gnu: inkscape: " John Darrington
2014-02-04 23:09 ` Ludovic Courtès
2014-02-05 7:26 ` John Darrington
2014-02-05 13:49 ` Ludovic Courtès
2014-02-05 14:19 ` John Darrington
2014-02-04 20:47 ` none Ludovic Courtès
2014-02-05 16:17 ` none Mark H Weaver
2014-02-05 17:38 ` none John Darrington
2014-02-05 18:35 ` none Ludovic Courtès
-- strict thread matches above, loose matches on Subject: below --
2014-02-11 22:17 Gnunet-0.10.0 recipe Sree Harsha Totakura
2014-02-12 15:15 ` (unknown), Sree Harsha Totakura
2014-02-12 17:36 ` none Ludovic Courtès
2014-02-12 17:38 ` none Sree Harsha Totakura
2014-02-12 19:25 ` none Andreas Enge
2014-02-12 20:30 ` none Ludovic Courtès
2014-02-12 20:53 ` none Andreas Enge
2014-12-03 18:02 (unknown) Tomas Cech
2014-12-04 23:04 ` none Ludovic Courtès
2014-12-05 8:35 ` none Tomas Cech
2014-12-06 14:06 ` none Ludovic Courtès
2015-03-25 22:49 (unknown), Tomáš Čech
2015-03-26 21:22 ` none Ludovic Courtès
2015-03-26 21:52 ` none Tomáš Čech
2016-07-21 1:39 (unknown) Unknown, Pjotr Prins
2016-07-21 12:51 ` none Ludovic Courtès
2016-07-22 0:41 ` none Pjotr Prins
2016-07-22 2:06 ` none Pjotr Prins
2016-07-22 3:25 ` none Jookia
2016-07-22 3:48 ` none Leo Famulari
2016-07-22 4:48 ` none Tobias Geerinckx-Rice
2016-07-22 11:07 ` none Pjotr Prins
2016-07-22 12:23 ` none Ricardo Wurmus
2016-07-22 12:50 ` none Jookia
2016-07-22 21:19 ` none Leo Famulari
2016-07-24 4:17 ` none Jookia
2016-07-24 6:35 ` none Leo Famulari
2016-07-24 7:47 ` none Jookia
2016-07-24 16:52 ` none Christopher Allan Webber
2016-07-24 17:03 ` none Andreas Enge
2016-07-22 8:15 ` none Roel Janssen
2016-07-22 14:07 ` none Leo Famulari
2016-07-22 14:15 ` none Vincent Legoll
2016-07-22 16:13 ` none Ludovic Courtès
2016-07-22 16:38 ` none myglc2
2016-07-23 7:03 ` none Tomáš Čech
2016-07-23 9:15 none David Craven
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.