Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Graham Percival
On Sun, Sep 20, 2009 at 01:46:56AM +0200, Reinhold Kainhofer wrote:
> Am Samstag, 19. September 2009 20:18:14 schrieb Joseph Wakeling:
> > Guile I think is LGPLv3 although parts may be GPL -- but that's only for
> > the current development release (i.e. 1.9.x).  1.8.x is still under
> > LGPLv2+.
> 
> Ouch. so as soon as a LGPLv3 version of guile comes out, lilypond can't use 
> guile any more, because LGPLv3 is not compatible with GPLv2... So, lilypond 
> then has to switch to GPLv3...

No, that's nonsense.  Guile 1.8.7 was still released under LGPLv2,
so we simply continue to link to that in GUB.

If somebody compiles lilypond from the source and links to guile
1.9 or 2.0, then that's *their* problem.  We're not distributing
those versions.


Now, at some point, there will be some important bug fix or new
feature in guile 1.9, which is only published under v3.  *Then*
we'd have problems... but wait!  If guile is truly under LGPL, and
not GPL, then there should be no problems.  I mean, if you can
link to closed-source apps (the whole point of LGPL), then surely
a mere GPLv2 app can still link to the library?

** please note the above was not an informed opinion.


It would be nice if somebody looked into all these reasons, in a
calm and collected way, so that we could see exactly which
libraries might "force" us to use GPLv3, which version numbers
this started at.

> But then we have a problem with freetype, which 
> is FTL (BSD with advertising clause, thus incompatible with GPL) or GPLv2 
> only... 

I don't think there's any problem with linking to a BSD library.

** please note that I don't really know what freetype does, or if
it's actually a library at all.

*** NB: I know that the FSF has a different definition of
"linking" than other people (i.e. BSD guys), so this would also be
worth looking into.



Fundamentally, the current discussion is too shrill, with too many
semi-informed people (no offense to anybody) making dire
predictions and proclaiming that lilypond _must_ do X, Y, and Z.

1)  The first step is to gather information about the licensing
requirements for any external projects we use.  Pay particular
attention to the *actual* requirements, i.e. not just "we include
project X in GUB, so we must foo" or "project Y has a 3 in the
license name, so we must use GPLv3".

2)  The next step is to consider whether any change needs to be
made at all.  I'm pretty certain that right now, everything is
kosher.

3)  If any change might be desirable in the future (for example,
Guile -- *if* guile wasn't LGPL), then we can begin looking at
which developers consent to such a change.

4)  If anybody can't be reached or doesn't consent, *then* we
look at exactly what that person wrote, and either abandon the
change idea (knowing exactly what that entails as far as using
libraries or finding replacement libraries), or rewrite their
constributions.

Starting with step 4 is just silly.

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Reinhold Kainhofer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Sonntag, 20. September 2009 09:10:20 schrieb Graham Percival:
> On Sun, Sep 20, 2009 at 01:46:56AM +0200, Reinhold Kainhofer wrote:
> > Am Samstag, 19. September 2009 20:18:14 schrieb Joseph Wakeling:
> > > Guile I think is LGPLv3 although parts may be GPL -- but that's only
> > > for the current development release (i.e. 1.9.x).  1.8.x is still under
> > > LGPLv2+.
> >
> > Ouch. so as soon as a LGPLv3 version of guile comes out, lilypond can't
> > use guile any more, because LGPLv3 is not compatible with GPLv2... So,
> > lilypond then has to switch to GPLv3...
>
> No, that's nonsense.  Guile 1.8.7 was still released under LGPLv2,
> so we simply continue to link to that in GUB.
>
> If somebody compiles lilypond from the source and links to guile
> 1.9 or 2.0, then that's *their* problem.  We're not distributing
> those versions.

Putting your head into the sand isn't going to solve the problem. After all, 
every distribution compiles from source and distributes those versions. You 
can't seriously expect all distributions to change their build system just for 
lilypond.

> Now, at some point, there will be some important bug fix or new
> feature in guile 1.9, which is only published under v3.  *Then*
> we'd have problems... but wait!  If guile is truly under LGPL, and
> not GPL, then there should be no problems.  I mean, if you can
> link to closed-source apps (the whole point of LGPL), then surely
> a mere GPLv2 app can still link to the library?

No, because LGPL has additional restrictions. The problem is not that we would 
be violating guile's license, but lilypond's license does not allow linking to 
a LGPLv3 library. So basically, you are telling all package maintainers of all 
distributions to violate the copyright of all lilypond contributors.


> It would be nice if somebody looked into all these reasons, in a
> calm and collected way, so that we could see exactly which
> libraries might "force" us to use GPLv3, which version numbers
> this started at.

It is our own restrictive license, where the lilypond developers have 
practically been saying (by licensing as GPLv2only) that they don't want 
lilypond to link to any (L)GPLv3 libraries.

> > But then we have a problem with freetype, which
> > is FTL (BSD with advertising clause, thus incompatible with GPL) or GPLv2
> > only...
>
> I don't think there's any problem with linking to a BSD library.

It's BSD WITH advertising clause (three-clause version!), which is not 
compatible with GPL. It is not the two-clause version, which is compatible 
with the GPL.

> 2)  The next step is to consider whether any change needs to be
> made at all.  I'm pretty certain that right now, everything is
> kosher.

So far, I couldn't find a problem, either.

Cheers,
Reinhold

- -- 
- --
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFKtdkiTqjEwhXvPN0RAnCyAJ0VAGRo+sfd+HHNYE/dgPFCNBhDSgCfQm48
SnlzFZsUK52n3+796UNuNmo=
=5xVv
-END PGP SIGNATURE-


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Graham Percival
On Sun, Sep 20, 2009 at 09:26:25AM +0200, Reinhold Kainhofer wrote:
> Am Sonntag, 20. September 2009 09:10:20 schrieb Graham Percival:
> > > Ouch. so as soon as a LGPLv3 version of guile comes out, lilypond can't
> > > use guile any more, because LGPLv3 is not compatible with GPLv2... So,
> > > lilypond then has to switch to GPLv3...
> >
> > No, that's nonsense.  Guile 1.8.7 was still released under LGPLv2,
> > so we simply continue to link to that in GUB.
> >
> > If somebody compiles lilypond from the source and links to guile
> > 1.9 or 2.0, then that's *their* problem.  We're not distributing
> > those versions.
> 
> Putting your head into the sand isn't going to solve the problem. After all, 
> every distribution compiles from source and distributes those versions. You 
> can't seriously expect all distributions to change their build system just 
> for 
> lilypond.

I'm not putting my head in the sand.  Distributions can take care
of themselves.

Now, when guile 2.0 comes out as LGPLv3, I'm sure that
distributions would *like* us to switch to GPLv3.  I'm not saying
that we shouldn't *consider* switching.  In fact, I'll go so far
as to say that it would be *nice and polite* for us to switch.


However, it is false to say that "lilypond can't use guile any
more".  We *can* still use it (albeit an older version), and I'm
not going to panic just because not switch would make redhat's job
harder.  We will switch after serious consideration, at a time
that is convenient for us.

Please note that I'm confident that ultimately we _will_ switch.
But I -- and certain other developers -- disgusted by the shrill
claims that we MUST do X, especially when it turns out that there
is no such legal necessity at all.

> > Now, at some point, there will be some important bug fix or new
> > feature in guile 1.9, which is only published under v3.  *Then*
> > we'd have problems... but wait!  If guile is truly under LGPL, and
> > not GPL, then there should be no problems.  I mean, if you can
> > link to closed-source apps (the whole point of LGPL), then surely
> > a mere GPLv2 app can still link to the library?
> 
> No, because LGPL has additional restrictions. The problem is not that we 
> would 
> be violating guile's license, but lilypond's license does not allow linking 
> to 
> a LGPLv3 library. So basically, you are telling all package maintainers of 
> all 
> distributions to violate the copyright of all lilypond contributors.

No, I am not telling them to do that.  I am saying that, if guile
2.0 comes out and we have not switched, they should link to
guile-1.8 if they want to legally distribute lilypond.

Perhaps there is a problem of language here -- the word "must" is
very strong in English.  For example, "if x is greater than 5,
then it must be greater than 4".  "must" means that there is no
possibility of an alternate option.

In the case of linking to a specific verison number of a library,
I agree that it would be quite inconvenient.  But "quite
inconenient" is not the same thing as "impossible".  So therefore,
the word "must" is incorrect.


I'd also like more details about the GPLv2 linking to LGPLv3
library issue.


> > It would be nice if somebody looked into all these reasons, in a
> > calm and collected way, so that we could see exactly which
> > libraries might "force" us to use GPLv3, which version numbers
> > this started at.
> 
> It is our own restrictive license, where the lilypond developers have 
> practically been saying (by licensing as GPLv2only) that they don't want 
> lilypond to link to any (L)GPLv3 libraries.

Nobody has said that they "don't want" lilypond to link to LGPLv3.
If there is a solid legal reason why GPLv2 cannot link to a LGPLv3
license, please state it clearly.

I am not arguing that there *isn't* such a solid legal reason; I
have not spent an hour reading those licenses recently.  But at
the same time, I am not aware of any such reason.

> > > But then we have a problem with freetype, which
> > > is FTL (BSD with advertising clause, thus incompatible with GPL) or GPLv2
> > > only...
> >
> > I don't think there's any problem with linking to a BSD library.
> 
> It's BSD WITH advertising clause (three-clause version!), which is not 
> compatible with GPL. It is not the two-clause version, which is compatible 
> with the GPL.

I think you mean "four-clause version", but agreed.

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Overview of copyright issues

2009-09-20 Thread Graham Percival
On Sat, Sep 19, 2009 at 07:45:46PM +0100, Anthony W. Youngman wrote:
> In message <1253377160.11679.1824.ca...@localhost>, John Mandereau  
>  writes
>> On the opposite, note that snippets from LSR are public domain, not FDL.
>
> Aarrgghh.
>
> The snippets are  [insert incorrect information here]

Ahh, sweet irony.  :)

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Overview of copyright issues

2009-09-20 Thread Matthias Kilian
On Sat, Sep 19, 2009 at 11:28:11PM +0100, Anthony W. Youngman wrote:
> >The snippets are taken from the LSR and a condition of submission to the
> >LSR is that you consign your work to the public domain (and that you
> >have the right to do so).  I know, because I submitted a couple of
> >snippets to the LSR and they later made it into the Lilypond docs'
> >selection of snippets.
> 
> What happens if you're German :-)
> 
> (I don't know, but there's been a fair bit of discussion, on and off, on 
> debian legal as to whether it is even *possible* for some people to 
> consign their work to the public domain - the *law* apparently says they 
> *can't*)

"public domain" in germany (and maybe other european countries)
doesn't exist in the sense that an author can't drop authorship and
decline all responsibility for his work.

Ciao,
Kili


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: GUB - Failed target: darwin-x86::cross/gcc

2009-09-20 Thread Jan Nieuwenhuizen
Op donderdag 17-09-2009 om 18:19 uur [tijdzone -0700], schreef Patrick
McCarty:

> Doing a "make -f lilypond.make bootstrap", GUB halts at
> darwin-x86::cross/gcc.

Could you look into that?
> The end of the build.log is attached.

Could you look into that?  I cannot reproduce this.

Greetings
Jan.


-- 
Jan Nieuwenhuizen  | GNU LilyPond - The music typesetter
Avatar®: http://AvatarAcademy.nl| http://lilypond.org



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Joseph Wakeling
Reinhold Kainhofer wrote:
> Ouch. so as soon as a LGPLv3 version of guile comes out, lilypond can't use 
> guile any more, because LGPLv3 is not compatible with GPLv2... So, lilypond 
> then has to switch to GPLv3... But then we have a problem with freetype, 
> which 
> is FTL (BSD with advertising clause, thus incompatible with GPL) or GPLv2 
> only... 

Argh.  I wasn't aware of the LGPLv3/GPLv2 incompatibility until now.
 That's nasty. :-(

> I really love it how FSF handles the GPL purely for political reasons... 
> (Which might make sense from an abstract viewpoint, but in daily developer 
> life that is just counterproductive and hindering productive development!)
> 
> To be honest, as an open source developer, I'm really starting disliking the 
> GPL, simply for practical reasons.

Well, they are a political organisation.  They aren't there to make your
life as a developer easy -- and if you follow their practical advice,
you don't end up in these situations.  (They are also generally pretty
good about taking into account the practical issues that will be raised
by any licensing change, and trying to minimise them.)

>> That was one of the motivations for tracking who was OK with GPLv2+ --
>> to have an advance list of people ready for such an eventuality.
> 
> See e.g. what KDE did a while ago:
> http://techbase.kde.org/Projects/KDE_Relicensing
> 
> I propose we also keep such a list (publicly available) about what the devs 
> allow with regards to their licenses.

I am already doing so, although not as detailed as KDE's.
http://spreadsheets.google.com/ccc?key=0AkXkBLpoZm-_dHdkUUZRRVJvX2ZHWVpOeloyTU00SHc&hl=en

It's on Sheet 2 :-)

Best wishes,

-- Joe


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Reinhold Kainhofer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Sonntag, 20. September 2009 10:11:54 schrieb Graham Percival:
> > No, because LGPL has additional restrictions. The problem is not that we
> > would be violating guile's license, but lilypond's license does not allow
> > linking to a LGPLv3 library. So basically, you are telling all package
> > maintainers of all distributions to violate the copyright of all lilypond
> > contributors.
>
> No, I am not telling them to do that.  I am saying that, if guile
> 2.0 comes out and we have not switched, they should link to
> guile-1.8 if they want to legally distribute lilypond.

Okay, and what do you think will happen in reality? I don't think 
distributions will be willing to spend time and resources on providing 
outdated software/libraries, simply because lilypond wants old versions. I'd 
rather say lilypond will be dropped instead, citing licensing issues with 
lilypond.


> Perhaps there is a problem of language here -- the word "must" is
> very strong in English.  For example, "if x is greater than 5,
> then it must be greater than 4".  "must" means that there is no
> possibility of an alternate option.

What I didn't write down, but implicitly assumed was the half-sentence "if 
we/they want to use the current, installed library versions". Then it is a 
MUST.

> I'd also like more details about the GPLv2 linking to LGPLv3
> library issue.
[...]
> > It is our own restrictive license, where the lilypond developers have
> > practically been saying (by licensing as GPLv2only) that they don't want
> > lilypond to link to any (L)GPLv3 libraries.
>
> Nobody has said that they "don't want" lilypond to link to LGPLv3.
> If there is a solid legal reason why GPLv2 cannot link to a LGPLv3
> license, please state it clearly.

See:
http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses
http://www.fsf.org/licensing/licenses/gpl-faq.html#AllCompatibility


> I am not arguing that there *isn't* such a solid legal reason; I
> have not spent an hour reading those licenses recently.  But at
> the same time, I am not aware of any such reason.

The LGPLv3 also includes the patents clause and the anti-DRM clause, which 
both add additional restrictions, which the GPLv2 does not have. 

On the other hand, all lilypond contributors -- by putting their code under 
GPLv2only -- explicitly say that they do not agree to any additional 
restrictions.
Thus lilypond can't link to any (L)GPLv3 library, which would add additional 
restrictions.


> > > > But then we have a problem with freetype, which
> > > > is FTL (BSD with advertising clause, thus incompatible with GPL) or
> > > > GPLv2 only...
> > >
> > > I don't think there's any problem with linking to a BSD library.
> >
> > It's BSD WITH advertising clause (three-clause version!), which is not
> > compatible with GPL. It is not the two-clause version, which is
> > compatible with the GPL.
>
> I think you mean "four-clause version", but agreed.

Of course.

OTOH, the FTL is not the BSD, as my mail might suggest (sorry for the 
confusion). It is rather a completely different license containing some 
attribution clause, making it incompatible with GPLv2 (for the same reasons as 
the 4-clause BSD lisense). But apparently it is compatible with GPLv3, so we 
don't have any problems with FT, should we switch to GPLv3.

Cheers,
Reinhold
- -- 
- --
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFKthNXTqjEwhXvPN0RAlA7AJ4utIuEPYxPKZpiSB0E5a1UOpgJaQCgia3a
n6IcEl3i2R096PIfM3SQOBo=
=9/rh
-END PGP SIGNATURE-


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [frogs] Enhancement request: Define output-suffix as a configurable context property.

2009-09-20 Thread Ian Hulin

Hi Carl,
That will work, but it's still a work-around.  We'd be avoiding setting 
it as a context property to keep the architectural thinking clean, while 
at the same time duplicating the functionality of a property by hand.
What we're in effect doing here is duplicating the behaviour of a 
property, we're hiding the parser variable and writing a function to 
write to it. So why not


pvSet =
#(define-music-function (parser layout parser-variable new-value) (variable? 
string?)
   (set! parser-variable new-value)
   (make-music 'SequentialMusic 'void #t))


then do

\book {
  \pvset output-suffix "gibbon-vole-aardvark"
  {... \score blocks and things ...}
}

But I'm still bothered we may be re-inventing the wheel here.  We've got 
properties in lily already, and defined ways of setting them (\set, 
\override and even assigning them in the relevant block).


Could we not add a new define-parser-variable-properties.scm with
(define-public all-pv-properties '())
(define (pv-property-description symbol type? description)
 (if (not (and
   (symbol? symbol)
   (procedure? type?)
   (string? description)))
 (throw 'init-format-error))


 (if (not (equal? #f (object-property symbol 'translation-doc)))
 (ly:error (_ "symbol ~S redefined" symbol)))

 (set-object-property! symbol 'translation-type? type?)
 (set-object-property! symbol 'translation-doc description)
 (set! all-pv-properties (cons symbol all-translation-properties))
 symbol)
(define-public all-pv-properties
   (map
   (lambda (x)
   (apply pv-property-description x))
   `(
 (output-suffix ,string? "Text to append to the output 
filename for the current @code{\\book} block")

;;; Maybe add all the other supported parser variables here?

)))

The above should work as I've adapted it unashamedly from 
define-context-properties.scm


Remaining things to do would be

   * add define-parser-variable-properties.scm to build /(whimper...)/
   * get the property access routines to use the new all-pv-properties list

This would be more work,  but give us a cleaner result and it would be 
less likely to fall foul of a fatwah from new Syntax Standardization 
project when it gets going.


Opinions?

Cheers,

Ian

Carl Sorensen wrote:


On 9/19/09 7:27 AM, "Ian Hulin"  wrote:

  

Hi Carl, Neil,

I'm quite happy to re-think the proposal if what I have in mind contravenes
existing design architecture.
Put it down to relative inexperience and the fact I don't get opportunity to
work on lilly as often as I'd like.

Anyhow, here are some of the reasons why I'd like to do something with this
stuff:
* Using parser variables to configure things is evil, because it requires
users to drop into Scheme to set the parser variable. I feel we need to
replace #(define output-suffix "gibbon-vole-aardvark") with something handled
at the lilypond language level.
*  
* At the moment, output-suffix is de facto a property of a \book block.� There

is a design assumption (informal club rule) in lilypond� that we only produce
one back-end output file (.pdf, .png whatever) per \book block.
* However, there is as great big exception to this in the form of midi files,
one of which one is output for every \score block with a \midi present. At the
moment the file name generation code kludges its way around this but it not
very clean, unclear and all this stuff is barely documented.
* So what I'd like to do is to have some way of replacing the Scheme
definition either -
*  \book { 
*  ��� \set output-suffix "gibbon-vole-aardvark"

*  ��� {... \score blocks and things}
* }
* , or 
* \book \with {output-suffix = "gibbon-vole-aardvark"}

* {
* �� {... \score blocks and things}
* }.



Could one define a void music function

setOutputSuffix =
#(define-music-function (parser layout new-output-suffix) (string?)
(define output-suffix new-output-suffix)
(make-music 'SequentialMusic 'void #t))

then do

\book {
   \setOutputSuffix "gibbon-vole-aardvark"
   {... \score blocks and things ...}
}

I haven't tried it, but I think it may work.

Carl


---


Join the Frogs!


__
This email has been scanned by Netintelligence
http://www.netintelligence.com/email


  


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Licensing dependencies

2009-09-20 Thread Joseph Wakeling
Have had a look through the licenses of dependencies as listed in the
Contributor's Guide.

It looks like the problems are FreeType (GPLv2 only or GPL-incompatible
permissive license, so blocks upgrade); Guile (future versions will be
LGPLv3+, so GPLv2-only-incompatible); and potentially Pango (if it
upgrades to LGPLv3+).

None are a present, active problem but all are clear risks.

Best wishes,

-- Joe

---
Running requirements:

   FreeType: FreeType license (GPL-incompatible due to advert clause)
 or GPLv2 only

   FontConfig: Permissive license, seems to be GPL-compatible (it's
   pretty much identical to the advertising-clause-free
   version of the BSD license; if there is anything wrong
   we're as buggered with GPLv2 as 3+).
   http://cgit.freedesktop.org/fontconfig/tree/COPYING

   Pango: Development version downloaded from Git is LGPLv2+.

   Guile: as already discussed, 1.8.x is LGPLv2+.  Development version
  (1.9.x) is LGPLv3+.

   Python: GPL-compatible: see,
   http://www.python.org/download/releases/2.6/license/

   Ghostscript: GPLv3+, but LP doesn't link to it, so it's OK.

   Dejaview: can't find any info on this, what is its provenance?


Build requirements:

   FontForge: new BSD license (i.e. GPL-compatible)

   Metafont: seems a bit weird and uncertain (TeX licenses, some GPL)
 but this is just called, not linked to, no?

   t1utils: permissive license, seems GPL-compatible

   Guile: see above

   Texinfo: GPLv3+, but we only call it, don't link (?)

   g++: GPLv3+, but we only call it

   Python: see above

   GNU Make: GPLv3+, but we only call it

   Gettext: GPLv3+, but we only call it

   Flex: new BSD license (GPL-compatible)

   Perl: Artistic License/GPLv1 (!) but seems to be OK as we only call
 it and don't link.

   GNU Bison: GPLv3+, but we only call it


Doc build requirements:

   texi2html: GPLv2+ (we only call it anyway)

   netpbm: seems horribly complicated, but we only call it

   imagemagick: own license, claims GPL compatibility (but we only call
it in any case)

   rsync: GPLv3+, but we only call it.


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Licensing dependencies

2009-09-20 Thread Reinhold Kainhofer
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Am Sonntag, 20. September 2009 13:46:32 schrieb Joseph Wakeling:
> It looks like the problems are FreeType (GPLv2 only or GPL-incompatible
> permissive license, so blocks upgrade); 

The FTL is GPLv2-incompatible, but according to the FSF, it's GPLv3-
compatible... See 
http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses
No blocker here.


> Guile (future versions will be
> LGPLv3+, so GPLv2-only-incompatible); and potentially Pango (if it
> upgrades to LGPLv3+).
>
> None are a present, active problem but all are clear risks.

Yes, that's the only possible license issue in the future that I can see. 
Everything else appears okay...


>Python: GPL-compatible: see,
>http://www.python.org/download/releases/2.6/license/

We don't link anyway.

>Dejaview: can't find any info on this, what is its provenance?

It appears only in the compiling instructions for FreeBSD. I don't think we 
link to it. From the description it seems that dejaview simply makes the FBSD 
fonts available to lilypond (at least that's what the CG says).


>FontForge: new BSD license (i.e. GPL-compatible)

We don't link, just call.

>Metafont: seems a bit weird and uncertain (TeX licenses, some GPL)
>  but this is just called, not linked to, no?

yes, we just call mf or mf-win

>Texinfo: GPLv3+, but we only call it, don't link (?)

exactly.

>GNU Bison: GPLv3+, but we only call it

The code it puts in the output file (which is linked into lilypond) is GPLv2+ 
with additional exception to use for any larger work (except other parser 
generators).

Cheers,
Reinhold

- -- 
- --
Reinhold Kainhofer, reinh...@kainhofer.com, http://reinhold.kainhofer.com/
 * Financial & Actuarial Math., Vienna Univ. of Technology, Austria
 * http://www.fam.tuwien.ac.at/, DVR: 0005886
 * LilyPond, Music typesetting, http://www.lilypond.org
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iD8DBQFKthyxTqjEwhXvPN0RApwYAJ9jMFfk6BA5Q0Gw4XYYP70d8HGaMQCgnBgc
vsBSTYY+sZ2c9rzAT6tNr1U=
=A/jV
-END PGP SIGNATURE-


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [frogs] Enhancement request: Define output-suffix as a configurable context property.

2009-09-20 Thread Carl Sorensen



On 9/20/09 5:40 AM, "Ian Hulin"  wrote:

> Hi Carl,
> That will work, but it's still a work-around.  We'd be avoiding setting it as
> a context property to keep the architectural thinking clean, while at the same
> time duplicating the functionality of a property by hand.

OK, I guess I agree with what you said.

> What we're in effect doing here is duplicating the behaviour of a property,
> we're hiding the parser variable and writing a function to write to it. So why
> not 
> 
> pvSet =
> #(define-music-function (parser layout parser-variable new-value) (variable?
> string?)
> (set! parser-variable new-value)
> (make-music 'SequentialMusic 'void #t))
> 
> then do
> 
> \book {
>\pvset output-suffix "gibbon-vole-aardvark"
>{... \score blocks and things ...}
> }

Yes, this is more general than my suggestion.

> But I'm still bothered we may be re-inventing the wheel here.  We've got
> properties in lily already, and defined ways of setting them (\set, \override
> and even assigning them in the relevant block).
> 
> Could we not add a new define-parser-variable-properties.scm with
> (define-public all-pv-properties '())
> (define (pv-property-description symbol type? description)
>   (if (not (and
>         (symbol? symbol)
>         (procedure? type?)
>         (string? description)))
>   (throw 'init-format-error))
> 
> 
>   (if (not (equal? #f (object-property symbol 'translation-doc)))
>   (ly:error (_ "symbol ~S redefined" symbol)))
> 
>   (set-object-property! symbol 'translation-type? type?)
>   (set-object-property! symbol 'translation-doc description)
>   (set! all-pv-properties (cons symbol all-translation-properties))
>   symbol)
>  (define-public all-pv-properties
>     (map
>     (lambda (x)
>     (apply pv-property-description x))
>     `(
>   (output-suffix ,string? "Text to append to the output filename
> for the current @code{\\book} block")
> ;;; Maybe add all the other supported parser variables here?
> 
> )))
> 
> The above should work as I've adapted it unashamedly from
> define-context-properties.scm

This seems like a good idea to me.  However, I'm not really strong on parser
variables.  But if this does work, I think it would be an improved way of
handling point-and-click, because, as you say, it would tie into the
existing LilyPond syntax.

> 
> Remaining things to do would be
> * add define-parser-variable-properties.scm to build (whimper...)

No (whimper...) needed here; this is trivial to do.  Just add an entry to
scm/lily.scm.

 
> * get the property access routines to use the new all-pv-properties list

I'm not sure I have this vision.  How would \set know whether to set a
context property or a pv property?

Carl




___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Overview of copyright issues

2009-09-20 Thread Travis Briggs
Similarly, the validity of "This work is released by me, the author,
into the public domain" in the US is under debate, because US law
allows authors to retain the right to redact licenses to their
copyright works. There is an argument that the moment you put
something in the PD, you lose the redaction right. There is also an
argument that the redaction right cannot be waived.

So really, it is impossible as Valentin points out. But in practice,
there is clear intent when you say "public domain" and I doubt any
judge would rule against someone who used such a work.

-Travis

On Sun, Sep 20, 2009 at 4:36 AM, Matthias Kilian  wrote:
> On Sat, Sep 19, 2009 at 11:28:11PM +0100, Anthony W. Youngman wrote:
>> >The snippets are taken from the LSR and a condition of submission to the
>> >LSR is that you consign your work to the public domain (and that you
>> >have the right to do so).  I know, because I submitted a couple of
>> >snippets to the LSR and they later made it into the Lilypond docs'
>> >selection of snippets.
>>
>> What happens if you're German :-)
>>
>> (I don't know, but there's been a fair bit of discussion, on and off, on
>> debian legal as to whether it is even *possible* for some people to
>> consign their work to the public domain - the *law* apparently says they
>> *can't*)
>
> "public domain" in germany (and maybe other european countries)
> doesn't exist in the sense that an author can't drop authorship and
> decline all responsibility for his work.
>
> Ciao,
>        Kili
>
>
> ___
> lilypond-devel mailing list
> lilypond-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/lilypond-devel
>


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


[PATCH] COPYING rewrite to clarify licensing

2009-09-20 Thread Joseph Wakeling
Following the earlier discussion with Graham and others, this patch
slightly rewrites the COPYING file to clarify the Lilypond licensing
situation.

It might also be sensible to add a line mentioning that docs are
released under GFDL, and a separate COPYING.DOCUMENTATION file that
contains that license.

Best wishes,

-- Joe
From d1ee19e7d7dd10d0504ebec2a621d675087f0f70 Mon Sep 17 00:00:00 2001
From: Joseph Wakeling 
Date: Sun, 20 Sep 2009 15:58:09 +0200
Subject: [PATCH] COPYING rewrite to clarify licensing.

  * Text is closer to FSF guidelines and explicitly states that
Lilypond is released under GPLv2 only.
---
 COPYING |   38 --
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/COPYING b/COPYING
index 3ad0007..da2d00d 100644
--- a/COPYING
+++ b/COPYING
@@ -1,21 +1,23 @@
-If you want to redistribute LilyPond, you must comply with the GNU
-General Public License (reproduced below). This license applies to
-LilyPond with the following exceptions:
-
-- It does not apply to example input files (which are in
-the subdirectory input/) that explicitly specify another license.
-
-- If you create a document which uses fonts included in LilyPond, and
-embed this font or unaltered portions of this font into the document,
-then this font does not by itself cause the resulting document to be
-covered by the GNU General Public License. This exception does not
-however invalidate any other reasons why the document might be covered
-by the GNU General Public License. If you modify this font, you may
-extend this exception to your version of the font, but you are not
-obligated to do so. If you do not wish to do so, delete this exception
-statement from your version.
-
-
+GNU Lilypond is free software; you can redistribute it and/or modify
+it under the terms of version 2 of the GNU General Public License as
+published by the Free Software Foundation.  A copy of the license is
+contained in this file.
+
+The following exceptions are granted to this license:
+
+ -- It does not apply to example input files (contained in the
+subdirectory input/) that explicitly specify another license.
+
+ -- If you create a document which uses fonts included in Lilypond,
+and embed this font or unaltered portions of this font into the
+document, then this font does not by itself cause the resulting
+document to be covered by the GNU General Public License.  This
+exception does not however invalidate any other reasons why the
+document might be covered by the GNU General Public License.
+If you modify one or more of the fonts, you may extend this
+exception to your version of the fonts but you are not obliged
+to do so.  If you do not wish to do so, delete this exception
+statement from your version.
 
 
GNU GENERAL PUBLIC LICENSE
-- 
1.6.3.3

___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Licensing dependencies

2009-09-20 Thread Joseph Wakeling
Reinhold Kainhofer wrote:
> Am Sonntag, 20. September 2009 13:46:32 schrieb Joseph Wakeling:
>> It looks like the problems are FreeType (GPLv2 only or GPL-incompatible
>> permissive license, so blocks upgrade); 
> 
> The FTL is GPLv2-incompatible, but according to the FSF, it's GPLv3-
> compatible... See 
> http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses
> No blocker here.

Oh, great.  Missed that when reading the compatible license list.

>> Guile (future versions will be
>> LGPLv3+, so GPLv2-only-incompatible); and potentially Pango (if it
>> upgrades to LGPLv3+).
> 
>> None are a present, active problem but all are clear risks.
> 
> Yes, that's the only possible license issue in the future that I can see. 
> Everything else appears okay...

So, the upshot is that, while not an absolute necessity, it would be
highly convenient to gain GPLv3 compatibility.

If there are no objections I will continue to track contributors and ask
for their licensing preferences -- specifically, what is the most
permissive license they are willing to permit (i.e. GPLv2/3, GPLv2+,
BSD-style, etc.) -- and record in the publicly-viewable Google Doc
mentioned previously.

Best wishes,

-- Joe


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [frogs] Enhancement request: Define output-suffix as a configurable context property.

2009-09-20 Thread Ian Hulin

Carl Sorensen wrote:


On 9/20/09 5:40 AM, "Ian Hulin"  wrote:

  

Hi Carl,
That will work, but it's still a work-around.� We'd be avoiding setting it as
a context property to keep the architectural thinking clean, while at the same
time duplicating the functionality of a property by hand.



OK, I guess I agree with what you said.

  

What we're in effect doing here is duplicating the behaviour of a property,
we're hiding the parser variable and writing a function to write to it. So why
not 


pvSet =
#(define-music-function (parser layout parser-variable new-value) (variable?
string?)
(set! parser-variable new-value)
(make-music 'SequentialMusic 'void #t))

then do

\book {
   \pvset output-suffix "gibbon-vole-aardvark"
   {... \score blocks and things ...}
}



Yes, this is more general than my suggestion.

  

But I'm still bothered we may be re-inventing the wheel here.� We've got
properties in lily already, and defined ways of setting them (\set, \override
and even assigning them in the relevant block).

Could we not add a new define-parser-variable-properties.scm with
(define-public all-pv-properties '())
(define (pv-property-description symbol type? description)
 (if (not (and
  (symbol? symbol)
  (procedure? type?)
  (string? description)))
  (throw 'init-format-error))


 (if (not (equal? #f (object-property symbol 'translation-doc)))
 (ly:error (_ "symbol ~S redefined" symbol)))

 (set-object-property! symbol 'translation-type? type?)
 (set-object-property! symbol 'translation-doc description)
 (set! all-pv-properties (cons symbol all-translation-properties))
 symbol)
(define-public all-pv-properties
 (map
 (lambda (x)
 (apply pv-property-description x))
 `(
  (output-suffix ,string? "Text to append to the output filename
for the current @code{\\book} block")
;;; Maybe add all the other supported parser variables here?

)))

The above should work as I've adapted it unashamedly from
define-context-properties.scm



This seems like a good idea to me.  However, I'm not really strong on parser
variables.  But if this does work, I think it would be an improved way of
handling point-and-click, because, as you say, it would tie into the
existing LilyPond syntax.

  

Remaining things to do would be
* add define-parser-variable-properties.scm to build (whimper...)



No (whimper...) needed here; this is trivial to do.  Just add an entry to
scm/lily.scm.

 
  
Wouldn't I need to add a dependency to the build, too? 

* get the property access routines to use the new all-pv-properties list



I'm not sure I have this vision.  How would \set know whether to set a
context property or a pv property?

  
Presumably the same way it decides whether to access a context property, 
music property, or grob property currently. 
That's something I'll have to dig into.  I was sort of assuming the \set 
code did a lookup of available property lists, I'll undertake further 
research.


Cheers,
Ian


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [frogs] Enhancement request: Define output-suffix as a configurable context property.

2009-09-20 Thread Valentin Villenave
On Sun, Sep 20, 2009 at 2:41 PM, Carl Sorensen  wrote:
> This seems like a good idea to me.  However, I'm not really strong on parser
> variables.  But if this does work, I think it would be an improved way of
> handling point-and-click, because, as you say, it would tie into the
> existing LilyPond syntax.

I could update the tracker page accordingly... Can you guys help me? :-)

Valentin


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


midi2ly continued

2009-09-20 Thread Martin Tarenskeen
Hi,

I have been hacking around a little bit with the midi2ly script.
Some time ago I reported a problem with tunes that were not in
3/4 time.

But as reaction I got a "sorry, midi2ly is not supported anymore"

So I decided to try a little Python hacking myself.
I found the problem was in format-1 MIDI files, where track 1 often 
(always ?) contains Time and Tempo information, but no notes. And the 
midi2ly script only writes out tracks if they contain notes. Result:
everything will get the default 4/4 time and the default 4=60 tempo. 
Bad.

Then I started hacking. 
Here's my ChangeLog:

- TrackA(time and tempo events, but no notes)  and TrackB are combined 
in one Staff. Time signature and Tempo are correctly used now.

- I have added some commandline options
-T --time NUM/DEN   manually force a global time signature
-P --partial DURspecify an upbeat duration
--skip  use invisible rests (s) for rests.
I have changed the default behaviour to
use visible rests (r)
-w --warranty   The warranty message was broken. Fixed.

- I use the variable program_version in more places in the script. 
  For example \version is no longer written as "2.7.18" but uses the 
  actual program_version ("2.13.3") . 

I have attached my version of midi2ly. Anyone who is interested may take 
a look at it or just try it. There are still some serious problems ( 
like (long) notelengths that cross barlines ) but I think my version 
already works a little better than the previous one.

I have just started learning Python, and am not very good with git. 
Maybe someone more experienced can evaluate my version of the script, 
maybe improve or correct it, and then take it to the git ?
 
-- 

Martin Tarenskeen

#!/usr/bin/python
#
# midi2ly.py -- LilyPond midi import script
# 
# source file of the GNU LilyPond music typesetter
#
# (c) 1998--2009  Han-Wen Nienhuys 
# Jan Nieuwenhuizen 



'''
TODO:
* test on weird and unquantised midi input (lily-devel)
* update doc and manpage and translations

* simply insert clef changes whenever too many ledger lines
[to avoid tex capacity exceeded]
* do not ever quant skips
* better lyrics handling
* [see if it is feasible to] move ly-classes to library for use in
other converters, while leaving midi specific stuff here

* split notes that cross barlines, use ties
* better handling of polyphony in one staff.
* make barcheck and barcount work even after meter changes
* split midifile format-0 files into separate tracks ??
* test and debug using more, complex example MIDI files
'''

import os
import sys

"""

This generic code used for all python scripts.

The quotes are to ensure that the source .py file can still be
run as a python script, but does not include any sys.path handling.
Otherwise, the lilypond-book calls inside the build
might modify installed .pyc files.

"""

program_version = '2.13.3'
program_name = sys.argv[0]

authors = ('Jan Nieuwenhuizen ',
   'Han-Wen Nienhuys ')

for d in ['/usr/share/lilypond/%s' % ( program_version ),
  '/usr/lib/lilypond/%s' % ( program_version )]:
sys.path.insert (0, os.path.join (d, 'python'))

# dynamic relocation, for GUB binaries.
bindir = os.path.abspath (os.path.dirname (sys.argv[0]))
for p in ['share', 'lib']:
datadir = os.path.abspath (bindir + '/../%s/lilypond/current/python/' % p)
sys.path.insert (0, datadir)
"""
"""

import midi
import lilylib as ly
global _;_=ly._


## CONSTANTS


LINE_BELL = 60
scale_steps = [0, 2, 4, 5, 7, 9, 11]
global_options = None

clocks_per_1 = 1536
clocks_per_4 = 0

time = 0
reference_note = 0
start_quant_clocks = 0

duration_quant_clocks = 0
allowed_tuplet_clocks = []






errorport = sys.stderr

def identify ():
sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, 
program_version))

def warranty ():
identify ()
ly.encoded_write (sys.stdout, '''
%s

  %s

%s
%s
''' % ( _ ('Copyright (c) %s by') % '2001--2009',
'\n  '.join (authors),
_ ('Distributed under terms of the GNU General Public License.'),
_ ('It comes with NO WARRANTY.')))

def progress (s):
ly.encoded_write (errorport, s + '\n')

def warning (s):
progress (_ ("warning: ") + s)

def error (s):
progress (_ ("error: ") + s)
raise Exception (_ ("Exiting... "))

def system (cmd, ignore_error = 0):
return ly.system (cmd, ignore_error=ignore_error)

def strip_extension (f, ext):
(p, e) = os.path.splitext (f)
if e == ext:
e = ''
return p + e


class Duration:
allowed_durs = (1, 2, 4, 8, 16, 32, 64, 128)
def __init__ (self, clocks):
self.clocks = clocks
if clocks <= 0:
self.clocks = durat

Re: midi2ly continued

2009-09-20 Thread Valentin Villenave
On Sun, Sep 20, 2009 at 6:29 PM, Martin Tarenskeen
 wrote:
> I have been hacking around a little bit with the midi2ly script.

Hi Martin,

thanks for working on that. I have opened a tracker page and marked it
as "started" to keep track of your work:
http://code.google.com/p/lilypond/issues/detail?id=839

If you're interested in maintaining midi2ly, I think LilyPond can
greatly benefit from it. (For instance, there's a bounty on the Win
midi2ly bug: http://code.google.com/p/lilypond/issues/detail?id=834 ).

You might also be interested in subscribing to the unofficial mailing
list I've created to discuss MIDI-related stuff:
http://lists.lilynet.net/midi/

Cheers,
Valentin


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: GUB-OSX 2.13.4

2009-09-20 Thread Graham Percival
Thanks, modified accordingly.

Cheers,
- Graham

On Sat, Sep 19, 2009 at 12:26:53PM -0400, Travis Briggs wrote:
> The only thing I can tell is that you need to remove the part about
> needing python, since (as the doc says) Python is now bundled.
> 
> Other than that, the rest looks accurate and complete to me.
> 
> -Travis
> 
> On Fri, Sep 18, 2009 at 1:41 AM, Graham Percival
>  wrote:
> > On Thu, Sep 17, 2009 at 04:42:43PM -0700, Patrick McCarty wrote:
> >> On Wed, Sep 16, 2009 at 6:15 AM, Graham Percival
> >>  wrote:
> >> > An initial version of 2.13.4, OSX-x86 version, is available at:
> >> > http://lilypond.org/~graham/
> >> >
> >> > It's completely untested, and it isn't the real 2.13.4 release,
> >> > but it would be awesome if somebody could test it, so anybody
> >> > needed it for doc building can continue and stuff.
> >>
> >> The binary and convert-ly seem to work fine here from both command
> >> line and GUI on 10.5.6 (x86).  I also tested the PPC build on this
> >> machine, and the PDF-generation issue has gone away (Issue 811).
> >
> > Right.
> >
> > Now, could somebody please do what I asked, and fix the
> > instructions for OSX command-line on general->Download->MacOS X ?
> >
> > Cheers,
> > - Graham
> >
> >
> >
> >
> > ___
> > lilypond-devel mailing list
> > lilypond-devel@gnu.org
> > http://lists.gnu.org/mailman/listinfo/lilypond-devel
> >


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Graham Percival
On Sat, Sep 19, 2009 at 08:18:14PM +0200, Joseph Wakeling wrote:
> Graham Percival wrote:
> > There's a *ton* of other janitorial work to be done, especially by
> > people who have proven that they're willing to do work (about 50%
> > of people who say "hey, I want to help out" never do anything!).
> > And not only that, but you're capable of using git!  There's lots
> > of stuff that needs doing for the new website, for example.
> 
> OK.  I have not been following those discussions closely but if you can
> give me a rough todo list I will see what I can contribute in that
> respect and prioritise it over any copyright work.

I would have thought that
http://lists.gnu.org/archive/html/lilypond-devel/2009-09/msg00438.html
was right up your alley.

If you're not interested, I made a post on -user in Aug when
people were whining about how much they wanted to help but
couldn't learn git.  There were approximately 6 items that could
be done without touching any source code, but nobody did any
significant work on any of them.

Cheers,
- Graham



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Overview of copyright issues

2009-09-20 Thread Graham Percival
On Sat, Sep 19, 2009 at 09:19:35PM +0200, John Mandereau wrote:
> Le samedi 19 septembre 2009 à 18:34 +0100, Graham Percival a écrit : 
> > I'd rather not keep track of individual licenses in the source
> > tree.  Since he's stated that his work is in public domain,
> > there'd be no problems with people extracting it for any CC stuff.
> > ... err wait, are we talking about Trevor Daniels, or Trevor Baca?
> 
> Bloody mao, we're talking about the autor of cary.ly :-)

I was confused because Joseph keeps on talking about wanting to
copy "code" from the documentation, and Trevor Daniels recently
said "you know what?  you guys are nutters.  Do whatever you want
with my stuff, now shut up and do work".

... ok, he didn't say that.  But it would have been awesome if he
*had* said that.

> > HOWEVER, I'm quite willing to re-open the debate about licenses or
> > relicensing or whatever -- as long as it's done at a convenient
> > time.  Right now is not convenient.
> 
> Sure, so right now isn't convenient either to remove cary.ly and other
> so-said problematic files.

I'm fine for replacing cary.ly as soon as somebody makes a
replacement.  Should take about 15 minutes, which makes this Yet
More Job Wherein We Spent Longer Talking About It Than It Would
Take To Actually Do It (tm).

... of course, has anybody actually asked Trevor Baca if he'd be
willing to put those two bars under the FDL?  If he _was_ willing,
it could save much gnashing of teeth.


As for input/, that's waiting for the new website and build
system to be read.  And _that's_ on hold while I deal with GUB
during university hours, and deal with this copyright garbage in
non-university hours.

> > where the most restrictive search pattern selects the license.
> 
> We already stamp each snippet in Documentation/snippets "public domain",
> and state it at the beginning of Snippets document, so it shows up in
> PDF, Info and HTML.  We could protect the first page of the document
> under FDL, but would that make any sense?

Good point; I'll dump something to that effect in snippets.tely.

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Overview of copyright issues

2009-09-20 Thread Graham Percival
On Sat, Sep 19, 2009 at 06:23:06PM +0200, Joseph Wakeling wrote:
> Graham Percival wrote:
> >>> This is fixed on the new website.
> >> But not on the current one, which is still live ... :-)
> > 
> > Patches accepted.
> 
> I'll see what I can do.  (Depending on the timeline for launch of the
> new site.  Not much point patching the current one if you're going to
> launch the new one in a couple of weeks' time.)

I'm glad you see it my way.


> OK, well.  Perhaps I should say 'credit on a per-file basis' rather than
> licensing[1].  The reason I can see is this: if I decide I want to use a
> file from Lilypond in my own piece of code, it's helpful to me to know
> exactly who the authors and copyright holders are for that particular
> file.  With such a notice I immediately know who I have to contact if I
> need/want further permissions, I know who I have to credit in my AUTHORS
> file, etc. etc.

But since the notices will be out of date, you'll need to look in
the git log anyway.

> So, I see maintaining good file-by-file contribution records as being
> both helpful to Lilypond (it helps us track who did what) and courteous
> to people receiving the code (it helps facilitate the process of
> adapting parts of the code for other projects).

Unless we have a dedicated legal secretary spending 5 hours a week
maintaining such notices, they will be out of date and therefore
useless.

> [1] Where the licensing issue might be important is this: what if
> someone forks Lilypond and adds a bunch of their own code with a
> different but compatible license statement -- like GPLv2+?

Huh?  If somebody forks lilypond, that's their problem.

> The other motivation is if there _is_ a desire to alter the license it
> might be useful to be able to do this incrementally, e.g. move to (say)
> GPL2+ all those files where the authors give permission as soon as that
> permission is given.

No.  Changing the license will be an all-or-nothing affair.

> > No.  If there's a detailed file-by-file, "Copyright 2003, 2008 by
> > X who wrote 38 lines, copyright 2005 by Y who wrote 123 lines",
> > then that creates pressure to maintain it.  That wastes
> > *everybody's* time.
> 
> I think there are good reasons for wanting to maintain such
> documentation (see above), and I don't think it's so hard to sustain it
> -- most files are worked on by relatively few people (so the author list
> stays constant) and it's not so difficult for contributors to change the
> year of copyright or just add their name to an author list.
> 
> It doesn't need to be as detailed as 'wrote X lines' or 'wrote functions
> A, B, C', just a list of major (i.e. justifiably copyright-owning)
> contributors and year(s) of their contributions, as in the sample patch
> I put forward.  (I mentioned tweaks as well, but that was just a
> courtesy to the tweakers rather than something that needs to be tracked.)

You severely underestimate the effort involved in the
documentation.  For example, I recently moved the command-line
info from the AU into the new website.  At a complete guess,
- 5-30 lines came from Han-Wen
- 5-30 lines came from Mats
- 5-20 lines were corrected by Werner
- 5-20 lines had a correction sent to a mailist by random users,
  and were added by Graham or Mats.
- 20-50 lines had English grammatical fixes by Graham, but no
  actual content changes

Now, if 15 lines is the magical cut-off, who gets their name added
to Documentation/general/download.itely ?  I'd have to hunt
through the git log for all these lines -- looking at both
grammatical/spelling fixes *and* content fixes -- to decypher
whether I used 14 of Han-Wen's original lines or 16.

I'm not going to do that.  It's a gargantic amount of wasted
effort.  I mean, everybody in that list is deeply involved in
lilypond, we all want the best for lilypond, and we all agree to
the same license.  Spending an hour looking through git logs every
time I want to clarify the documentation helps *nobody*.

For this reason, I categorically refuse to have file-specific
ownership.  Documentation is documentation; any doc committers
will be listed in the same place.


It's true that code doesn't change as much as the docs, although I
could well imagine some kinds of useful reshuffling that would
require hours of extra work if we had file-specific ownership.
(say, what if we decided to split \mark into \markText and
\markRehearsal ?  Oops, now we need to track down exactly who
wrote which lines in the relevant file(s), to make sure that info
gets into the new file(s)).

I still think it would be a complete waste of time, but if you
really want to track down file ownership of source code, _I_ won't
stop you.  You'd better check that everybody else is ok with this,
though.  And by "ok", I mean "agrees to you doing the initial
work, *and* commits to maintain such info in the future".

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.g

[off-topic] re: Copyright/licensing action plan

2009-09-20 Thread Graham Percival
On Sun, Sep 20, 2009 at 01:34:46PM +0200, Reinhold Kainhofer wrote:
> Am Sonntag, 20. September 2009 10:11:54 schrieb Graham Percival:
> > > So basically, you are telling all package
> > > maintainers of all distributions to violate the copyright of all lilypond
> > > contributors.
> >
> > No, I am not telling them to do that.  I am saying that, if guile
> > 2.0 comes out and we have not switched, they should link to
> > guile-1.8 if they want to legally distribute lilypond.
> 
> Okay, and what do you think will happen in reality?

This thread isn't about reality.  The entire discussion is some
kind of twisted parody of sadomasochism where we rely on
thinly-veiled slurs instead of metal-studded whips.  In reality, I
think we'll relicense before it becomes an issue.  But the whole
point is arguing about what's legally required, because either we
enjoy it, or achieve some kind of sick pleasure from it.

... which, I guess, is still enjoying it.  But it sounds dirtier
if I say "sick pleasure".  Hmm, actually, I should add an
[off-topic] marker to this thread.

> I don't think 
> distributions will be willing to spend time and resources on providing 
> outdated software/libraries,

libc5?

> simply because lilypond wants old versions. I'd rather say
> lilypond will be dropped instead, citing licensing issues with
> lilypond.

I'm still not scared.  Everybody else gets lilypond directly from
the website.  If distributions decide not to support the software
their uses want, that's their problem.
 
> > Perhaps there is a problem of language here -- the word "must" is
> > very strong in English.  For example, "if x is greater than 5,
> > then it must be greater than 4".  "must" means that there is no
> > possibility of an alternate option.
> 
> What I didn't write down, but implicitly assumed was the half-sentence "if 
> we/they want to use the current, installed library versions". Then it is a 
> MUST.

Yes, well, you know what they say about making assumptions.

Look, don't blame me.  I'm not the person who decided to drive a
wedge between free software developers and cause hours of wasted
time.  This mess is squarely the FSF's fault.

> > I am not arguing that there *isn't* such a solid legal reason; I
> > have not spent an hour reading those licenses recently.  But at
> > the same time, I am not aware of any such reason.
> 
> The LGPLv3 also includes the patents clause and the anti-DRM clause,

Really?!?!  the library license which allows linking to
proprietary software still contains an anti-DRM clause?!

Wow, the BSD guys were right all along.

> On the other hand, all lilypond contributors -- by putting their code under 
> GPLv2only -- explicitly say that they do not agree to any additional 
> restrictions.

No.  We're saying that we want to improve lilypond, and that the
existing license is GPLv2only, and so we submit stuff under that
license.  The *implicitly* states that the code distributed in
lilypond has no additional restrictions, but anybody is free to
release their lilypond contributions under other licenses.

Cheers,
- Graham


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Unsecure assoc calls

2009-09-20 Thread Michael Käppler

Hi Neil,
thanks for reviewing and applying.

I think what now should be done is to check all assoc-get calls whether 
they should use strict_checking or not.
In some cases this can be quite difficult IMHO and it's a far more 
time-consuming task than what I've done. Maybe Mark can do this? I think 
he digged pretty deep into the scheme code recently.


Regards,
Michael


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Overview of copyright issues

2009-09-20 Thread Joseph Wakeling
Graham Percival wrote:
> For this reason, I categorically refuse to have file-specific
> ownership.  Documentation is documentation; any doc committers
> will be listed in the same place.

About docs, I completely agree.  I didn't have to spend long in the git
logs to realise that it just wasn't feasible to meaningfully identify
contributors -- there's too much moving, renaming, copy-pasting, etc.

> I still think it would be a complete waste of time, but if you
> really want to track down file ownership of source code, _I_ won't
> stop you.  You'd better check that everybody else is ok with this,
> though.  And by "ok", I mean "agrees to you doing the initial
> work, *and* commits to maintain such info in the future".

I think with code it has more value, and ought to be reasonably easy to
maintain.  There's also the fact that the code, unlike the docs, _does_
contain per-file copyright notices, and that these are wrong.  If we're
going to have them, they ought to be accurate.

Best wishes,

-- Joe


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Copyright/licensing action plan + a sample [PATCH]

2009-09-20 Thread Joseph Wakeling
Graham Percival wrote:
> I would have thought that
> http://lists.gnu.org/archive/html/lilypond-devel/2009-09/msg00438.html
> was right up your alley.

Yep.  I was having a bit of a look through what's there to see what
would be involved.  I'll see what I can do ...


___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [PATCH] New margin handling - final version (updated)

2009-09-20 Thread Michael Käppler

Neil Puttock wrote:

2009/9/14 Michael Käppler :

  

Hmm, I can't reproduce this here. Can you try again and send me an png if it
still fails?



It's still pretty bad; see the attached image.
  
This is weird. I've just checked out a fresh master, did a make clean 
and compiled. When compiling granados.ly, it looks (as I can compare 
this) exactly the same and it also outputs the warning "cannot find line 
breaking that satisfies ..."


Let's sum up:
- 2.13.3 definitely doesn't have this problem (but there were >many< 
changes since)

- the git master I've just compiled gives the warning and the bad spacing
- your git master compiles without warning and with proper spacing (?, 
please proof)
- the example png at kainhofer.com looks fine, though I'm not sure if 
it's compiled with git, since it's on the new website preview.


Regards,
Michael



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [frogs] Enhancement request: Define output-suffix as a configurable context property.

2009-09-20 Thread Carl Sorensen



On 9/20/09 9:04 AM, "Ian Hulin"  wrote:

> Carl Sorensen wrote:
>>  
>>>  
>>> Remaining things to do would be
>>> * add define-parser-variable-properties.scm to build (whimper...)
>>> 
>>>  
>>  
>> 
>> No (whimper...) needed here; this is trivial to do.  Just add an entry to
>> scm/lily.scm.
>> 
>>  
>>   
> Wouldn't I need to add a dependency to the build, too? 

No.  The dependency for the build is determined by its presence in the scm/
directory.  That part of the build system is really quite fine and easy to
use.

>>  
>>>  
>>> * get the property access routines to use the new all-pv-properties list
>>> 
>>>  
>>  
>> 
>> I'm not sure I have this vision.  How would \set know whether to set a
>> context property or a pv property?
>> 
>>   
> Presumably the same way it decides whether to access a context property, music
> property, or grob property currently. 
> That's something I'll have to dig into.  I was sort of assuming the \set code
> did a lookup of available property lists, I'll undertake further research.

Please do.  If this works, I think it would be a great addition.  But we
still haven't heard what Neil thinks about it, and he has a much more
complete grasp of LilyPond internals than I do.

Thanks,

Carl




___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: [frogs] Enhancement request: Define output-suffix as a configurable context property.

2009-09-20 Thread Carl Sorensen



On 9/20/09 9:41 AM, "Valentin Villenave"  wrote:

> On Sun, Sep 20, 2009 at 2:41 PM, Carl Sorensen  wrote:
>> This seems like a good idea to me.  However, I'm not really strong on parser
>> variables.  But if this does work, I think it would be an improved way of
>> handling point-and-click, because, as you say, it would tie into the
>> existing LilyPond syntax.
> 
> I could update the tracker page accordingly... Can you guys help me? :-)

I think that we shouldn't yet add a tracker for the general solution.  We're
still working on the output-suffix issues, which might have a more general
solution.

Thanks,

Carl



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel


Re: Unsecure assoc calls

2009-09-20 Thread Carl Sorensen
Hi Michael,

Thanks for your work on this.  I think this is excellent architectural
support for the future.


On 9/20/09 2:11 PM, "Michael Käppler"  wrote:

> I think what now should be done is to check all assoc-get calls whether
> they should use strict_checking or not.
> In some cases this can be quite difficult IMHO and it's a far more
> time-consuming task than what I've done. Maybe Mark can do this? I think
> he digged pretty deep into the scheme code recently.

I don't think that it's worth spending time on this.  I believe that
virtually all of the assoc-get calls as currently written are written to
allow defaults without throwing a programming error, and do not need
strict_checking.

As future developments come, or as people are working on code to improve it,
if they want to add strict_checking, that would be fine.

Thanks,
Carl



___
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel