taskSavannah Administration - Tasks: task #15279, Submission of Gash: Guile as Shell

 
 

task #15279: Submission of Gash: Guile as Shell

Submitter:  Timothy Sample <samplet>
Submitted:  Tue 21 May 2019 03:17:49 AM UTC
   
 
Should Start On:  Tue 21 May 2019 12:00:00 AM UTC Should be Finished on:  Fri 31 May 2019 12:00:00 AM 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

Wed 29 May 2019 05:24:02 PM UTC, comment #10: 

Thank you, approving.

I'm not sure .dir-locals.el is trivial, though.

Ineiev <ineiev>
Site Administrator
Tue 28 May 2019 07:42:42 PM UTC, comment #9: 

The response from the licensing team was:


Huh, that's kind of weird. I think adding the text at the top of the
CCO legal code would cover it, but if there's some objection to that
then let me know. Thank you for checking in on this.


Here's another tarball:

https://files.ngyro.com/gash/gash-0.1-savannah-4.tar.gz

Now COPYING.CC0 has a little note at the top saying where the file came from and quoting the CC policy on it.  It is not as clear as I would like, but I think it is as good as it can be given that I'm beholden to text of the CC policy page.

I was pretty tempted to call this version "0.1-savannah-final", but I didn't want to jinx it.  Let me know if there's anything else amiss, and thanks again.

Timothy Sample <samplet>
Sat 25 May 2019 07:51:58 PM UTC, comment #8: 

Fantastic!  I see it was you who alerted the GNU Hello maintainers to the issue back in January.  Thanks!  (Now I'm hoping they figure out a good way to deal with it before I have to.)

I am happy to send a note to licensing@fsf.org.  I will CC you on it, and make sure to provide all the relevant information.

Timothy Sample <samplet>
Sat 25 May 2019 07:04:24 PM UTC, comment #7: 

WRT GNU Hello: this is a confirmed bug, https://lists.gnu.org/archive/html/bug-hello/2019-01/msg00000.html

On CC0, I think this is a real conflict that needs resolving; someone (you or I or both of us) should ask licensing@fsf.org.

Ineiev <ineiev>
Site Administrator
Fri 24 May 2019 06:39:35 PM UTC, comment #6: 

It seems like we have three problems remaining, the change log, using CC0, and the tests.  I will take each one in turn below.

I've created a new tarball that I hope addresses the first and last issue.  I will wait for your thoughts on CC0 before addressing it.

New tarball:

https://files.ngyro.com/gash/gash-0.1-savannah-3.tar.gz

As a side note, I realize that I ask a lot of questions in the text that follows.  I want to be conscious of the time and energy you are putting into this, so feel free to say "I don't know off the top of my head" to any or all of it.  :)

ChangeLog

I think I will solve this by starting the change log from version 0.1 when it gets released, and by distributing an empty log for version 0.1.  Some earlier commit log messages are not in the proper format, so this solves two problems.

However, in the future, I would like to use the "gitlog-to-changelog" script from Gnulib, but I'm not sure how to do it in a legally responsible way.  Do you know if it is safe to assume anything about the license of Git commit messages?  Obviously I can license my commit log messages however I like, but what about messages from other contributors?  Does GNU have a framework for this that I can follow?

Also, while looking for examples of how to use the script, I noticed that even GNU Hello doesn't include copyright or license notices in its ChangeLog file.  :/

CC0

I would really like to use CC0 for the README and NEWS files, since I know that it is common practice to copy descriptions and information from these files for blog posts and for software directories.  The next section of the manual you linked says that this is acceptable.  I followed the link there on how to use CC0, and came up with the result you saw.

I could remove the COPYING.CC0 file, but Creative Commons recommends that I include it (and I take that page to imply that they came up with this recommendation in collaboration with the FSF).  I'm a little shocked that the CC0 license text doesn't say anything about copying itself.  There must be something funny going on if the "Information for Maintainers of GNU Software" manual suggest using CC0, but it is impossible to do so.  Do you know anything more about this?  Should I contact Creative Commons or the FSF?

I know I can just use the GNU all-permissive license to dodge this issue, but I really care about being clear and precise about licenses.  Indeed, that's why I'm here in the first place!  :)  Saying "legally you have to attribute the authors, but we know that you won't and we don't care" would be a little sad.

That being said, in the interest of expediency, I could use the all-permissive license for now while I try and sort out the CC0 stuff.

Tests

You make some really good points here!  Thanks.  I think I will explicitly list all the files and use the normal license notice.  That's way better.  In the future, I have plans to switch to putting multiple tests in a single file, following the format used in the Oil project.  If/when that happens, this will no longer be an issue.

Thanks again for your feedback!

Timothy Sample <samplet>
Fri 24 May 2019 06:45:59 AM UTC, comment #5: 

GNU documentation explicitly says that files like README and ChangLog also should have copyright and license notices.  For copyright purposes, files more than ten lines long are copyrightable, and your ChangeLog is much longer.

In your new tarball, README still has no copyright notice; COPYING.CC0 has neither copyright nor license notice.

I'm not sure about tests/*: each file is small, but they do sum up in something copyrightable.  I think one may add notices even when the files are that small.  In any case, the form of license notice from the GPL should be used: currently, COPYRIGHT suggests that only the GPL version from COPYING may be used, which is incompatible with Savannah hosting requirements.  Then, to avoid confusion, I suggest listing all relevant files when stating their terms in a README. Also, I really dislike the wording "Unless otherwise stated".  In its extreme, it may mean that the user has to look for additional conditions all imaginable and unimaginable places, inside and outside your tarball.  I believe you should know your terms and be able to state them at once.

Ineiev <ineiev>
Site Administrator
Wed 22 May 2019 05:31:52 AM UTC, comment #4: 

Okay!  I made the changes I mentioned.  Here’s the new tarball:

https://files.ngyro.com/gash/gash-0.1-savannah-2.tar.gz

Timothy Sample <samplet>
Tue 21 May 2019 09:40:38 PM UTC, comment #3: 

Just a quick followup on the "guile-rules.am" file. It looks like the essential parts of the file come from Guile itself. Guile has a file "am/guilec" which serves the exact same function. Sadly, it does not have a copyright notice! Judging from the commit history, it should be:


Copyright 2008-2012,2016 Free Software Foundation, Inc.


Should I use this? It's not something I looked at when I was writing "guile-rules.am", but it is (judging by the commit dates and content) the source of the other files I looked at. The really telling part is the comment, which was added to the file at about the same time as the mailing list discussion it references took place. This comment is nearly always copied verbatim when people adapt this Automake code into their own projects.

I think I will fix up the package in the ways I have mentioned, then create a new tarball. That way, you can look at the whole result and continue with your review as usual.

Timothy Sample <samplet>
Tue 21 May 2019 04:48:18 PM UTC, comment #2: 

Thanks for the quick review!

Sorry for missing the notice in README. Guix and Guile omit it, and they were among the packages that I was using for examples. I will put a notice at the bottom, like in Bash.

I searched for all the files missing the word "copyright", and came up with the following. Most of them are omissions that I can fix easily, but I would appreciate some advice for a few.

Guile Rules

I'm having a hard time tracking the provenance of the build-aux/guile-rules.am file. The same text exists in basically all Guile projects, and many of them have different notices. I honestly cannot say which projects I based this file on anymore (I looked at quite a few and synthesized them). My best idea is to pick a reasonable source (like Guix or 8sync) and use that notice. Is that acceptable?

Tests

There are 199 tiny test files. Bash handles this by a special COPYRIGHT file that covers all the tests. Can I do the same?

Trivial

I would argue that these files are "trivial". However, if you disagree, please let me know and I will add a notice.

  • AUTHORS
  • ChangeLog
  • .dir-locals.el
  • .gitignore (only in the Git repository)


Omissions

I know the authorship and licenses of these files, and can add a notice easily.

  • build-aux/gitlab-ci.yml
  • build-aux/pre-inst-env.in
  • configure.ac
  • doc/syntax.txt
  • guix.scm
  • Makefile.am
  • NEWS
  • README
  • test.sh
  • tests/spec/check-spec
  • tests/spec/Makefile.am


Let me know what you think, and then I will prepare a new tarball following your suggestions.

Thanks again!

Timothy Sample <samplet>
Tue 21 May 2019 06:09:49 AM UTC, comment #1: 

Please make sure that all copyrightable files in your package have valid copyright and license notices: the first file I checked, README, had no copyright notice.

> I am unsure about whether I should apply for this to be official

GNU software or not.

I suggest registering on Savannah first; we'll be able to make it a GNU package later if needed.

Ineiev <ineiev>
Site Administrator
Tue 21 May 2019 03:17:49 AM 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: Gash: Guile as Shell
  • System Name:  gash
  • Type: non-GNU software and documentation
  • License: GNU General Public License v3 or later





Description:

Gash is a POSIX-compatible shell written in Guile Scheme.  It provides
both the shell interface, as well as a Guile library for parsing shell
scripts.  Gash is designed to bootstrap Bash as part of the Guix
bootstrap process.  We are planning to develop Gash into a
general-purpose shell and tool for building interfaces between Scheme
and the shell.




Other Software Required:

Building and running Gash requires:

GNU Guile
LGPLv3+
<https://www.gnu.org/software/guile/>

Optionally, for readline support:

GNU Guile Readline Module
GPLv3+
<https://www.gnu.org/software/guile/>

Build dependencies:

Gash uses the GNU Build System, so building a distribution tarball
requires GNU Autoconf, GNU Automake, pkg-config, and GNU Texinfo.  In
addition, certain files are made using scripts from Gnulib that need
Git and Perl.

Building from a distribution tarball requires the usual POSIX tools
and GNU Guile.

Optional build dependencies:

Test coverage reports can be generated with:

LCOV
GPLv3+
<http://ltp.sourceforge.net/coverage/lcov.php>

Additional tests can be obtained and used from

Oil
Apache License 2.0
<https://www.oilshell.org/>

which in turn requires Python 2, GNU Bash, and GNU Time.

Bootstrap testing can be done using

GNU Guix
GPLv3+
<https://www.gnu.org/software/guix/>



Other Comments:

A Git repository is available at <https://git.ngyro.com/gash/>.

I am unsure about whether I should apply for this to be official
GNU software or not.  On the one hand, it overlaps with Bash quite a
bit.  On the other hand, it plays an important part in bootstrapping
GNU Guix along with the GNU Mes project.

The manual is sorely lacking at the moment.  I plan to flesh it out
after an initial release (or even before, depending on how long the
Savannah review process takes).



Tarball URL:

https://files.ngyro.com/gash/gash-0.1-savannah.tar.gz


Timothy Sample <samplet>

 

(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 samplet (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
    2019-05-29 ineiev StatusIn Progress Done
        Open/ClosedOpen Closed
    2019-05-21 ineiev StatusNone In Progress
        Assigned toNone ineiev

    Back to the top

    Powered by Savane 3.13-caa5.
    Corresponding source code