taskSavannah Administration - Tasks: task #14997, Submission of GNU Mes

 
 

task #14997: Submission of GNU Mes

Submitter:  Janneke Nieuwenhuizen <janneke>
Submitted:  Sun 22 Jul 2018 02:17:39 PM UTC
   
 
Should Start On:  Sat 21 Jul 2018 10:00:00 PM UTC Should be Finished on:  Tue 31 Jul 2018 10:00:00 PM UTC
Category:  Project Approval Priority:  * 5 - Normal
Status:  Done Privacy:  Public
Assigned to:  ineiev Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Fri 27 Jul 2018 09:09:39 PM UTC, comment #11: 

Hi Ineiev!

>> bootstrap-graph.png
>> GPLv3+
>> Generated image imported from GNU Guix
>
> I recommend using the wording from GPL HowTo
> <https://www.gnu.org/l/gpl-howto.html>, it's much less ambiguous (by the way,
> I think it wouldn't hurt if you explained earlier in that README that the
> users may distribute it under the GFDL 1.3 or later at their option; such
> things shouldn't be taken for granted).


OK

> http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf
>
> 404 Not Found for me.


Ah, some html interface is playing tricks on us.  The three `%2520'
occurrences in the URL above need to be simply %20: i.e., a space.  I'm
trying again below...it may just work but I'm pretty sure I pasted it
correctly

<pre>
http://www.softwarepreservation.org/projects/LISP/book/LISP%201.5%20Programmers%20Manual.pdf
</pre>

> They may have got a separate permission to publish it on their website---which
> permission doesn't necessarily apply to MES.


Yes, I looked for that and didn't find anything...that's not very
convincing, I realise that.

> I'm approving your package; please be sure to resolve those questions.


Thanks, I'll not upload git or a tarball until we're fine, license and
copyright-wise.

Thank you!
janneke

Janneke Nieuwenhuizen <janneke>
Fri 27 Jul 2018 04:08:05 PM UTC, comment #10: 


> bootstrap-graph.png
> GPLv3+
> Generated image imported from GNU Guix


I recommend using the wording from GPL HowTo, it's much less ambiguous (by the way, I think it wouldn't hurt if you explained earlier in that README that the users may distribute it under the GFDL 1.3 or later at their option; such things shouldn't be taken for granted).

> http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf


404 Not Found for me.

> I thought it was safe to assume that http://www.softwarepreservation.org is not distributing this illegally.


They may have got a separate permission to publish it on their website---which permission doesn't necessarily apply to MES.

I'm approving your package; please be sure to resolve those questions.

Thank you!

Ineiev <ineiev>
Site Administrator
Fri 27 Jul 2018 11:55:06 AM UTC, comment #9: 

Hi Ineiev!

> ChangeLog ...


Ah, the generated ChangeLog variant did't have it, now added
during generation as a footer.

> and mes/module/mes/psyntax.pp still lack copyright
> and license notices.


Added.

> doc/images/README is empty.


Oops, content added.

> Looking again in doc/fosdem/README: now it does specify license
> for itself, but not for the images


bootstrap-graph.png
GPLv3+
Generated image imported from GNU Guix

GuixSD.png
Copyright © 2015 Luis Felipe López Acevedo
Permission is granted to copy, distribute and/or modify
this work under the terms of the Creative Commons
Attribution-ShareAlike 4.0 International License.

Does this mean I should remove this talk, and that it cannot be
distributed?

> , except LISP-1.5-page-13*.png;
> for them, it says reproduction is only permitted for the purposes
> of the US Government.


Yes, I copied what the document

    http://www.softwarepreservation.org/projects/LISP/book/LISP%25201.5%2520Programmers%2520Manual.pdf

says.

> Does it mean private persons can't copy it for their own purposes?


Hmm, I think of that possible implication, but IANAL.  I thought this
would imply that distributing it verbatim would be allowed.  When I
created this talk, I thought it was safe to assume that
www.softwarepreservation.org is not distributing this illegally.

> Then MES tarball would be effectively undistributable.


Either that, or the FOSDEM talk would have to be removed.

> These files still say they are LGPLv2.1+:
> mes/module/mes/psyntax.ss
> mes/module/mes/pretty-print.scm
>
> I can't tell yet how the LGPLv3+ question will be resolved;
> in any case, after that your tarball should have a copy
> of every license it uses.


OK, I added a relicence patch; as these files are taken from GNU Guile,
for with FSF is explicitly (in these files) copyright holder, that
should be OK now.

Changes are up on

    the wip-gnu branch at: http://gitlab.com/janneke/mes
    a preliminary tarball: http://lilypond.org/janneke/mes-0.17-rc4.tar.gz

Greetings,
janneke

Janneke Nieuwenhuizen <janneke>
Fri 27 Jul 2018 07:27:29 AM UTC, comment #8: 

Thank you!

ChangeLog and mes/module/mes/psyntax.pp still lack copyright
and license notices.

doc/images/README is empty.

Looking again in doc/fosdem/README: now it does specify license
for itself, but not for the images, except LISP-1.5-page-13*.png;
for them, it says reproduction is only permitted for the purposes
of the US Government. Does it mean private persons can't copy it
for their own purposes? Then MES tarball would be effectively
undistributable.

These files still say they are LGPLv2.1+:
mes/module/mes/psyntax.ss
mes/module/mes/pretty-print.scm

I can't tell yet how the LGPLv3+ question will be resolved;
in any case, after that your tarball should have a copy
of every license it uses.

Ineiev <ineiev>
Site Administrator
Thu 26 Jul 2018 06:05:49 PM UTC, comment #7: 

...and changes are up on

    the wip-gnu branch at: http://gitlab.com/janneke/mes
    a preliminary tarball: http://lilypond.org/janneke/mes-0.17-rc3.tar.gz

Janneke Nieuwenhuizen <janneke>
Thu 26 Jul 2018 06:00:30 PM UTC, comment #6: 

Hello Ineiev!

> Some files still have no notices, like
> ChangeLog
> scaffold/boot/4e-string-split.scm
> scaffold/boot/2f-define-second-lambda.scm
> scaffold/gc.scm
> scaffold/b-0.mes
> doc/ANNOUNCE-0.6
> doc/GNU-EVAL-APPLY
> BOOSTRAP


Added headers

ChangeLog
scaffold/boot/2f-define-second-lambda.scm
scaffold/boot/39-global-define-override.scm
scaffold/boot/3a-global-define-lambda-override.scm
scaffold/boot/4f-string-split.scm (renamed from 4e-string-split)
scaffold/boot/numbers.scm
scaffold/gc.scm
BOOSTRAP

Removed
doc/GNU-EVAL-APPLY
scaffold/b-0.mes

I think I lost a patch, I'm pretty sure I did gc.scm and BOOSTRAP
before...it was a pretty hacking frenzy this week.

doc/ANNOUNCE-*.  These were all emailed to public lists (guix-devel,
guile-user etc).  Would it be OK to mention that somewhere?  I moved
them to doc/announce and added this local README:

                                                              -*- org -*-
#+TITLE: GNU Mes Announcements

Copyright © 2016, 2017, 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

Files are emails sent to public mailing lists.  The notice above
applies to these files too.

> In doc/fosdem/README you write, "All files except the files listed below."
> This will make the things wrong when someone just adds a file; I'd recommend
> writing down a full list.


OK.

> Besides that, licensing terms are not spelled out.


Ah yes, I need a license for the talk.  Hmm, think GFDL 1.3+ would be
best.

> For PDFs, it's desirable to add the notices to their text so that the reader
> of the file could see them.
> doc/fosdem/fosdem.org has no license notice; it would be great if normal
> renderers of .org files showed copyright and license notice for it.


Added a * Legalese as suggested in the Org mode manual and regenerated,
so visible everywhere.

>>  I only removed the 46_grep.c that was clearly non-free.
>
> Oh!
>
>> There's a LICENSE and COPYING file in that directory. These were taken
> verbatim from TinyCC --There's a LICENSE and COPYING file in that directory.
>
> I think GNU guidelines don't distinguish whether you take other people's code
> or write the files yourself: they should have valid copyright and license
> notices. Since these are files in your tarball, they are your responsibility.


Ah, sure.  It was imported as a convenience -- I chose to remove this
imported directory.

Greetings,
janneke

Janneke Nieuwenhuizen <janneke>
Thu 26 Jul 2018 10:06:27 AM UTC, comment #5: 

Hello, Jan!

Some files still have no notices, like
ChangeLog
scaffold/boot/4e-string-split.scm
scaffold/boot/2f-define-second-lambda.scm
scaffold/gc.scm
scaffold/b-0.mes
doc/ANNOUNCE-0.6
doc/GNU-EVAL-APPLY
BOOSTRAP

In doc/fosdem/README you write, "All files except the files listed below." This will make the things wrong when someone just adds a file; I'd recommend writing down a full list. Besides that, licensing terms are not spelled out. For PDFs, it's desirable to add the notices to their text so that the reader of the file could see them.

doc/fosdem/fosdem.org has no license notice; it would be great if normal renderers of .org files showed copyright and license notice for it.

>  I only removed the 46_grep.c that was clearly non-free.


Oh!

> There's a LICENSE and COPYING file in that directory. These were taken verbatim from TinyCC --There's a LICENSE and COPYING file in that directory.


I think GNU guidelines don't distinguish whether you take other people's code or write the files yourself: they should have valid copyright and license notices. Since these are files in your tarball, they are your responsibility.

Ineiev <ineiev>
Site Administrator
Tue 24 Jul 2018 10:03:34 PM UTC, comment #4: 

Hello, Ineiev!

>> These also were taken from GNU Guile... Would it be an idea to ask the Guile
>> developers?
>
> Yes, perhaps asking the Guile developers is the right thing to do. In fact,
> this may be a conflict with GNU maintainer guidelines (like GNU software
> should use the latest versions of GNU licenses, hence the LGPLv3).


Done.  I found that original sources are MIT licensed and changes
released under `the Guile license"

> I still can see some issues:
>
> lib/string/agrz-count.c says it's under the LGPLv2.1+;


Oops...ah yes, the 17-rc has preparations for the Hurd.  I added a
notice that this is taken from GNU C lib and re-licensed; same for
argz-extract.c.

> scaffold/tinycc/11_precedence.c has no notices (note that I didn't check all
> files in the tarball).


There's a LICENSE and COPYING file in that directory.  These were taken
verbatim from TinyCC -- I only removed the 46_grep.c that was clearly
non-free.

> As I mentioned, images should have copyright and license notices,
> too; generally, if file format doesn't allow such comments,
> they should be written in a README file in the same directory
> with those files.


Ah, I overlooked that.  I've added two READMEs; images are either
created by me, generated or taken from GuixSD.

Changes are up on

    the wip-gnu branch at: http://gitlab.com/janneke/mes
    a preliminary tarball: http://lilypond.org/janneke/mes-0.17-rc2.tar.gz

Greetings,
janneke

Janneke Nieuwenhuizen <janneke>
Tue 24 Jul 2018 09:36:03 AM UTC, comment #3: 

Hello, Jan!

> I realise that `public-domain' may not be good enough?


Yes, public domain is OK, the files just should mention their status and the original copyright holders. To tell the truth, I've just missed that note.

>  So, if it's really problematic I could try to find out

if we can drop it.

No, I don't think it is a major problem. I think we may assume that later contributors made their changes under the same conditions, i.e. public domain.

> These also were taken from GNU Guile... Would it be an idea to ask the Guile developers?


Yes, perhaps asking the Guile developers is the right thing to do. In fact, this may be a conflict with GNU maintainer guidelines (like GNU software should use the latest versions of GNU licenses, hence the LGPLv3).

http://lilypond.org/janneke/mes-0.17-rc.tar.gz


Thank you!

I still can see some issues:

lib/string/agrz-count.c says it's under the LGPLv2.1+;
scaffold/tinycc/11_precedence.c has no notices (note that I didn't check all files in the tarball).

As I mentioned, images should have copyright and license notices,
too; generally, if file format doesn't allow such comments,
they should be written in a README file in the same directory
with those files.

Ineiev <ineiev>
Site Administrator
Mon 23 Jul 2018 05:25:10 PM UTC, comment #2: 

Hello Ineiev!

> I've noticed some inconsistencies in your tarball, I'd love to resolve them
> before your package is registered on Savannah.


Ah, sorry!  Sure.  A first question: As you probably have seen, GNU Mes
has a git repository at http://gitlab.com/janneke/mes

This is probably something for after this review, just to mention I
would like to import that to Savannah and remove the copy at gitlab.

> These files lack copyright and license notices:
> .dir-locals.el
> tests/read.test
> README
> install.sh
> HACKING
> INSTALL
> AUTHORS
> scaffold/tests/91-goto-array.c
> build_aux/export.make
> build-aux/setup-mes.sh


Okay, I have added headres to these...

> (please check other copyrightable files as well, including images).


...and I also added headers to
 
82-define.c
90-goto-var.c

I got 90-goto-var.c and 91-goto-array.c from rain1 on #bootstrappable
freenode irc as an example of their requirements, I could do with them
whatever I wished.  I relicensed them as GPLV3+, if that's not OK I can
remove them.

> lib/alloca.c


This one is interesting; alloca.c was taken from binutils-2.10.1, and I
made modifications.  So, I added my (C) there with a notice

    /* alloca.c -- allocate automatically reclaimed memory
       (Mostly) portable public-domain implementation -- D A Gwyn

       Taken from GNU binutils 2.10.1.
       Minor changes
       Copyright © 2018 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>

I realise that `public-domain' may not be good enough?

binutils' ChangeLog first mention of alloca.c says

    Thu Jun 25 04:43:22 1992  John Gilmore  (gnu at cygnus.com)

            * alloca.c:  Incorporate fixes from gdb/alloca.c.
            FIXME:  Eventually move gdb's alloca configuration files here,
            and remove gdb/alloca.c and its Makefile.in support.

My changelog says that I added this file because I needed it to
bootstrap gcc-3.4.  However, we now bootstrap gcc-2.95.3 and then move
on to gcc-4.7.4.  So, if it's really problematic I could try to find out
if we can drop it.  WDYT?

> module/mes/psyntax.pp


This is a generated file as it was generated by a patched Guile-1.8.
Guile also distributed it this way, I think that should be OK?

> module/srfi/srfi-16.scm says it's LGPLv2.1+, however, no
> LGPL text comes with it; I suggest that you either add the text
> of that license or relicense those files under the GPLv3+.


Ah, that's because it was taken from Guile-1.8; relicenced.  I did the
same for

srfi-1.scm
srfi-16.scm
srfi-26.scm
getopt-long.scm

> Somewhat worse with module/sxml/xpath.scm, module/mes/pmatch.scm:
> they are LGPLv3+.  The difference is: LGPLv2 permits relicensing
> under GPLv2+; the LGPLv3 only permits relicensing under the GPLv3; FSF lawyers
> said me the LGPLv4 and later probably will permit relicensing under the
> corresponding version of the GPL,
> but technically one can't tell for sure.


Ouch, that's unfortunate and unexpected!  These also were taken from GNU
Guile...and Guile uses these to run Nyacc and we need them as well.  I'm
not sure what to do?  Would it be an idea to ask the Guile developers?

> The same with module/mes/peg/{cache,using-parses}.scm and some other files,
> but they are copyrighted by the FSF, so relicensing to future versions of GPL
> is likely to be manual, but not problematic (of course, if you don't add
> modifications by other copyright holders).


I have removed PEG which postpones this part of the problem.  Changes
are up on

    the wip-gnu branch at:  http://gitlab.com/janneke/mes
    a preliminary tarball:  http://lilypond.org/janneke/mes-0.17-rc.tar.gz


Thanks!  Greetings,
janneke

Janneke Nieuwenhuizen <janneke>
Mon 23 Jul 2018 07:33:26 AM UTC, comment #1: 

Hello, Jan!

I've noticed some inconsistencies in your tarball, I'd love to resolve them before your package is registered on Savannah.

These files lack copyright and license notices:
.dir-locals.el
lib/alloca.c
tests/read.test
module/mes/psyntax.pp
README
install.sh
HACKING
INSTALL
AUTHORS
scaffold/tests/91-goto-array.c
build_aux/export.make
build-aux/setup-mes.sh
(please check other copyrightable files as well, including images).

module/srfi/srfi-16.scm says it's LGPLv2.1+, however, no
LGPL text comes with it; I suggest that you either add the text
of that license or relicense those files under the GPLv3+.

Somewhat worse with module/sxml/xpath.scm, module/mes/pmatch.scm:
they are LGPLv3+.  The difference is: LGPLv2 permits relicensing
under GPLv2+; the LGPLv3 only permits relicensing under the GPLv3; FSF lawyers said me the LGPLv4 and later probably will permit relicensing under the corresponding version of the GPL,
but technically one can't tell for sure. (As you must know from reading GNU maintainer documentation, the code of GNU packages should be compatible with current GPL and any future versions.)

The same with module/mes/peg/{cache,using-parses}.scm and some other files, but they are copyrighted by the FSF, so relicensing to future versions of GPL is likely to be manual, but not problematic (of course, if you don't add modifications by other copyright holders).

Ineiev <ineiev>
Site Administrator
Sun 22 Jul 2018 02:17:39 PM UTC, original submission:  

A new project has been registered at Savannah
This project account will remain inactive until a site admin approves
or discards the registration.


Registration Administration


While this item will be useful to track the registration process,
approving or discarding the registration must be done using the specific Group Administration page, accessible only to site administrators,
effectively logged as site administrators (superuser):



Registration Details


  • Name: GNU Mes
  • System Name:  mes
  • Type: Official GNU software
  • License: GNU General Public License v3 or later (GNU Free Documentation Language 1.3 or later for the info manual.)





Description:

GNU Mes aims to help create full source bootstrapping for GNU/Linux
distributions such as GuixSD as part of the bootstrappable builds
effort.

It consists of a mutual self-hosting Scheme interpreter written in
~5,000 LOC of simple C and a Nyacc-based C compiler written in Scheme.
This mes.c is being simplified to be transpiled by M2-Planet.

The Scheme interpreter prototype (mes.c) has a Garbage Collector, a
library of loadable Scheme modules-- notably Dominique Boucher's LALR,
Pre-R6RS portable syntax-case with R7RS ellipsis, Matt Wette's Nyacc
--and test suite just barely enough to support a simple REPL and
simple C-compiler: MesCC.

Mes+MesCC can compile an only lightly patched TinyCC that is
self-hosting.  Using this tcc and the Mes C library we now have a
reduced-binary-seed bootstrap for the gnutools triplet: glibc-2.2.5,
binutils-2.20.1, gcc-4.7.4.



Other Software Required:

Mes can be built as a bootstrap package, or as a regular package

Bootstrap requirements
Nyacc       https://savannah.gnu.org/projects/nyacc
mescc-tools https://github.com/oriansj/mescc-tools
Bash        https://www.gnu.org/software/bash
mes-seed    https://gitlab.com/janneke/mes-seed
coreutils   https://www.gnu.org/software/coreutils

Regular build requirements (additional)

GNU Gcc      https://www.gnu.org/software/gcc, version 5.5 is known to work
GNU C Lib    https://www.gnu.org/software/libc
GNU Guile    https://www.gnu.org/software/guile, 2.2.x or 2.0.x, version 2.0.13 or later
GNU Make     https://www.gnu.org/software/make
GNU sed      https://www.gnu.org/software/sed



Tarball URL:

wget http://gitlab.com/janneke/mes/-/archive/v0.16.1/mes-0.16.1.tar.gz


Janneke Nieuwenhuizen <janneke>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by ineiev (Posted a comment)
  • -email is unavailable- added by janneke (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-07-27 ineiev StatusIn Progress Done
        Open/ClosedOpen Closed
    2018-07-23 ineiev StatusNone In Progress
        Assigned toNone ineiev

    Back to the top

    Powered by Savane 3.13-02a9.
    Corresponding source code