From Fedora Project Wiki

Fedora Packaging Committee Meeting of {2007-08-07}

Present

  • JasonTibbitts (tibbs)
  • JesseKeating (f13)
  • RalfCorsepius (racor)
  • TomCallaway (spot)
  • ToshioKuratomi (abadger1999)

Writeups

The following drafts have been accepted by FESCO and are to be written into the guidelines:

Votes

There were no votes this week.

Other Discussions

The following additional items were discussed; see the logs for full details.

IRC Logs

[12:03:43]       * abadger1999 yawns and looks around
[12:03:49]  Quit        bpepple|lt has left this server ("Ex-Chat").
[12:03:53]       * spot is here
[12:04:49]  <spot>      anyone else? :)
[12:05:13]       * jeremy is here, but is just rabble :)
[12:05:58]  <racor>     i am here but probably don't have more than 10 mins.
[12:06:21]       * tibbs here
[12:06:26]  Quit        JSchmitt has left this server (Client Quit).
[12:06:38]  <spot>      f13: i know you're here. wakey wakey
[12:06:59]  <tibbs>     Do we have anything to cover other than writeups?
[12:07:03]  <spot>      http://fedoraproject.org/wiki/PackagingDrafts/LicenseClarification
[12:07:08]  <spot>      thats the only item
[12:07:12]  <f13>       spot: yeah yeah
[12:07:22]  <f13>       wondering why my workstation didn't return after I got back.
[12:07:26]  <spot>      ville's already given it a +1
[12:07:37]  <tibbs>     I dislike that quite a bit, actually.
[12:07:46]  <spot>      okay... why?
[12:08:14]  <tibbs>     Because it's then rather difficult to figure out what the proper license tag value is.
[12:08:46]  <tibbs>     Instead of looking at the source and determining the license tag, you have to understand how all of the dependencies combine.
[12:09:13]  <jwb>       why?
[12:09:36]  <spot>      jwb: say, the code of a package is under GPL or BSD
[12:09:41]  <spot>      but it links to a GPL lib
[12:09:51]  <spot>      then, the work is GPL, theres no way it can be BSD
[12:10:41]  <tibbs>     And then you get to define "linking".  What if I depend on one perl module which is GPLv2+ but this module is "GPL+ or Artistic".
[12:10:45]  <tibbs>     What's the resulting license?
[12:11:03]  <tibbs>     Does it depend on whether the package is noarch or not?
[12:11:11]  <spot>      i'm not sure. i need to talk to RH legal and see what they think on that.
[12:11:13]  <jwb>       spot, so taking that same example, say a BSD licensed equivalent library comes along and you link against that.  now you have to change the spec to BSD?
[12:11:26]  <jwb>       i think it's a bit over-reaching
[12:11:28]  <spot>      jwb: no, because BSD is compatible with either
[12:11:30]  <jwb>       but i'm rabble
[12:11:51]  <tibbs>     And then we get upstreams saying "Fedora lies about the license of my software."
[12:11:53]  <spot>      GPL is a rather special case.
[12:12:05]  <jwb>       i don't see why such a package could not be labled as "GPL or BSD"
[12:12:36]  <abadger1999>       jwb, spot: But if the example package was Public Domain, for instance, it would flip flop between GPL and Public Domain depending on the library it linked to.
[12:12:39]  <tibbs>     The real issue is that I don't want a degree in IP law to become a prerequisite for reviewing packages.
[12:13:00]  <spot>      abadger1999: yes.
[12:13:13]  <spot>      ok, i withdraw the draft. i see the problem.
[12:13:33]  <abadger1999>       Do we need to clarify that we are looking at the source licenses, though?
[12:14:01]  <spot>      source licenses of the delivered works
[12:14:13]  <spot>      not necessarily all of the source licenses
[12:14:30]  <spot>      lots of upstream apps include code under licenses we don't end up packaging in the binary RPMS
[12:14:55]  <tibbs>     In any case, wasn't the idea of making the license tags uniform and machine-parseable was so that something could actually derive the resulting binary licenses?
[12:15:18]  <spot>      tibbs: *nod*
[12:16:06]  <abadger1999>       "Damn it Jim, I'm a computer, not a lawyer." :-)
[12:16:15]  <jwb>       heh
[12:16:38]  <spot>      I think "source licenses of the delivered works" is the closest to the truth here.
[12:16:39]  <tibbs>     I really don't know what to do here.  The idea that spot was proposing is very valid.
[12:17:01]  <tibbs>     But the complexity is unpleasant.
[12:17:22]  <jwb>       and (sorry) unmanagable
[12:17:23]  <abadger1999>       spot: I would go for that.
[12:17:33]  <spot>      hopefully, it is a one time pain per package.
[12:17:37]  <tibbs>     Is anyone in the distro universe paying attention to things at this level?
[12:17:48]  <jwb>       debian i think
[12:17:53]  <spot>      mandriva is watching us very closely.
[12:18:05]  <tibbs>     spot: The problem is that one change can cascade through a whole set of packages.
[12:18:07]  <spot>      debian is similar to us
[12:19:10]  <tibbs>     Deriving licenses from buildrequires isn't useful in general, I guess.
[12:19:20]  <tibbs>     Is it possible to do it from runtime dependencies?
[12:19:42]  <spot>      theoretically.
[12:19:50]  <tibbs>     I guess not, because we have no way to quantify what links against something versus using it in some other way.
[12:19:56]  <spot>      you'd have to cascade all the way down
[12:20:58]  <tibbs>     I simply don't understand how "linking" is defined for interpreted code, either.
[12:21:01]  <abadger1999>       But you run into corner cases where  package foo contains /usr/lib/libfoo under LGPL and /usr/bin/foo-tiny-util under GPL so you need a human or a file by file tag.
[12:21:42]  <tibbs>     We already flag complex licenses with "and",
[12:21:57]  <tibbs>     so if doing a full review you'd know you needed to inspect more closely.
[12:22:07]  <spot>      tibbs: i need to talk to RH Legal and see what they define as linking
[12:22:38]  <tibbs>     But you'd still require manual inspection to determine "use" versus "linking", regardless of the definition of linking.
[12:22:47]  <abadger1999>       I'm just saying that automated derivation from runtime dependencies would have issues on those licenses.
[12:22:47]  <spot>      http://fedoraproject.org/wiki/PackagingDrafts/LicenseClarification
[12:22:51]  <spot>      thats a rewording
[12:23:46]  <tibbs>     Frankly I don't know which version we want.
[12:23:48]  <jwb>       sane, but confusing
[12:23:52]  <racor>     you'll have to distinguish run-time licenses, licenses of source files being used and licenses of sources files inside of a source tarball. All can be different.
[12:23:53]  <spot>      http://www.fsf.org/licensing/licenses/gpl-faq.html#MereAggregation
[12:24:28]  <spot>      (short answer: they don't know either)
[12:25:28]  <spot>      racor: i think "licenses of source files being used" is the closest to what we want
[12:25:33]  <tibbs>     I think we'd be safe with "License: is the source license" until we and the rest of the world understands the issues more thoroughly.
[12:26:32]  <spot>      tibbs: just: "The value of the License tag represents the copyright/license info of the source code of the delivered works only."
[12:26:36]  <spot>      ?
[12:27:16]  <racor>     spot: But you have been banning unused sources from tarballs, in the past
[12:27:48]  <spot>      racor: yes, but that's never been documented policy
[12:28:05]  <tibbs>     Well, if we can't legally distribute the srpm then we don't really have much choice.
[12:28:19]  <spot>      and its not so much banning unused sources as getting people to remove code that is under proprietary licenses
[12:28:25]  <spot>      which we can't distribute
[12:28:39]  <spot>      the fact that it is unused makes it possible to remove
[12:28:43]  <racor>     spot: which is not a legal issue, but a religious one.
[12:28:52]  <spot>      no, it is a legal issue.
[12:29:02]  <spot>      if we don't have permission to redistribute, it can't go in the SRPM
[12:29:34]  <racor>     "non-free" is a religious issue.
[12:29:49]       * spot wonders where he said "non-free" in that
[12:29:59]  <abadger1999>       Right.  This is more along the lines of, foo includes a copy of zlib but we use the system zlib.  Do not list the license of zlib.
[12:30:07]  <spot>      exactly.
[12:30:41]  <spot>      ntp includes a copy of ElectricFence, but we don't list GPLv2+ there
[12:30:52]  <spot>      because it doesn't use it at all
[12:31:03]       * jwb scratches head
[12:31:15]  <spot>      jwb: don't look too closely at ntp or you will go blind
[12:31:41]  <jwb>       aside: are we asking upstream wtf they are doing in cases like that?
[12:31:59]  <spot>      in all the cases that have been brought to me so far, absolutely
[12:32:09]  <spot>      several upstreams have already cleaned up their act
[12:32:59]  <racor>     jwb: You can ask, but often they can't change the license, ...
[12:33:27]  <jwb>       i wasn't talking about the license
[12:33:34]  <jwb>       but it was an aside, so move on :)
[12:34:08]  <racor>     sorry, my time's up, I've got to go ...
[12:34:26]  <spot>      ok, with racor gone, we don't have quorum anymore
[12:35:21]  <spot>      we could leave the licensing as is, and let the packagers and the fedora licensing team (aka me) come to an agreement
[12:35:48]  <spot>      since its not legally binding, it is only included as a useful baseline for auditing
[12:36:15]  <abadger1999>       I think it's valid to clarify this.
[12:36:42]  <tibbs>     I as well, but only after we've had some of the grey areas cleaned up.
[12:36:54]  <spot>      ok, lets highlight the grey areas
[12:36:57]  <tibbs>     Because right now we don't fully understand the implications of such a change.
[12:37:03]  <spot>      so i can make sure i hit them all with the lawyers
[12:37:33]  <tibbs>     Well "define linking", especially in regards to interpreted languages.
[12:38:00]  <spot>      yup, got that one
[12:38:15]  <tibbs>     Also, if Artistic is a bad license, why do we still list it?
[12:38:32]  <tibbs>     (I note that rpmlint kicked "Artistic" back at me today.)
[12:39:39]  <tibbs>     Also, are we supposed to be blocking package reviews that don't have proper license tags now?
[12:40:26]  <spot>      yep.
[12:40:37]  <spot>      (on the last one, as its in the reviewguidelines now)
[12:41:21]  <tibbs>     My real concerns about not understanding the implications of today's proposal aren't really legal, though.
[12:41:40]  <spot>      So, the question is:
[12:41:57]  <spot>      does the License: tag refer to the final, derived license for the bits in the binary rpm
[12:42:01]  <spot>      ?
[12:42:19]  <tibbs>     Yes, that's the fundamental issue as I see it.
[12:42:46]  <abadger1999>       tibbs: +1.  The nightmare is more about determining what license is in effect at review time and keeping it updated as changes to other packages take place.
[12:42:48]  <spot>      And, what I'm hearing is that it should not be, because figuring that out is too much of a burden on the packager in complicated cases.
[12:43:20]  <tibbs>     Well, I'm ambivalent.
[12:44:15]  <tibbs>     It would be a massive pain, and there is at least one complicated legal question that has bearing on a couple thousand packages.
[12:44:29]  <tibbs>     But it also makes plenty of sense.
[12:44:32]  <tibbs>     SO I don't know.
[12:44:42]  <spot>      fwiw, all of the packagers emailing me for clarification have been assuming that the License tag does refer to the derived license of the bits in the binary rpm
[12:44:56]  <abadger1999>       I think it depends on which audience we're addressing.
[12:45:38]  <abadger1999>       Developers looking for code to use in their projects care about source licenses.  Distros care about binary bits.
[12:46:27]  <tibbs>     Maybe we just need to bite the bullet and provide different tags for different uses.
[12:46:46]  <tibbs>     Have License: remain as is and add a DerivedLicense: tag.
[12:47:17]  <tibbs>     which could be optional, indicating that nobody has done a full license review yet.
[12:47:24]  <spot>      well...
[12:47:37]  <spot>      i think that developers looking for code to use will be using source to determine this
[12:47:38]  <abadger1999>       Developers who are using libraries (not looking to grab code) care about all the possible licenses of the binary bits.
[12:48:09]  <spot>      abadger1999: but we don't want to confuse them into thinking that something in Fedora is ok to link to as BSD when its GPL as built.
[12:48:17]  <abadger1999>       whereas the distro cares about one license that may trump all the others.
[12:48:34]  <spot>      the License tag is for the distro to do auditing
[12:48:43]  <spot>      it is not in any way legally binding
[12:48:43]  <abadger1999>       spot: But from a developer perspective it is BSD.
[12:48:58]  <abadger1999>       Even if it means they include their own copy of the library :-(
[12:49:02]  <spot>      developers will need to look at the license and decide it for themselves
[12:49:19]  <spot>      if rpm let us differentiate "SourceLicense" and "License", then... maybe.
[12:50:18]  <spot>      lemme talk to Panu and see what he thinks about this
[12:51:02]  <abadger1999>       So, since it's for us to do auditing, I think we actually do care about the most complicated case: end result considering linking.
[12:51:57]       * spot nods
[12:52:31]  <abadger1999>       Here's another legal grey area raised on list:  if foo provides libfoo.so.1 under GPL and bar provides libfoo.so.1 under BSD, how do we decide what the license of foo-util is?
[12:52:56]  <spot>      the same library, with the same filename?
[12:53:07]  <spot>      just a different license?
[12:53:21]  <spot>      I suppose it would be whichever was in the BR for that package
[12:53:23]  <abadger1999>       spot drop in replacements of each other under different license.
[12:53:35]  <abadger1999>       But it shouldn't matter.
[12:53:40]  <abadger1999>       It's a runtime issue, yes?
[12:53:50]  <spot>      abadger1999: only if it dlopens the .so
[12:54:08]  <spot>      if it actually links to the headers of one...
[12:54:23]  <spot>      which is almost always how libraries link in. you've got to know what to call. :)
[12:55:09]  <abadger1999>       spot: Okay -- but then if I BR the BSd one but on my system I have the GPL library installed, the BSD license still takes effect?
[12:55:14]  <spot>      abadger1999: yes
[12:55:19]  <spot>      because you didn't link to GPL code
[12:55:34]  <spot>      the fact that the GPL has the exact same api is a pleasant coincidence
[12:55:38]  <spot>      but not your intention.
[12:55:39]  <abadger1999>       So all I need to do to work around the GPL on readline is reimplement the headers and enough of a stub to compile and link?
[12:55:46]  <spot>      abadger1999: technically, yes.
[12:55:59]  <spot>      but you'd likely need to never have looked at the GPL code
[12:56:24]  <abadger1999>       But I could look at the documentation for readline.
[12:56:24]  <spot>      do it entirely cleanroom
[12:56:29]  <spot>      absolutely
[12:56:47]  <spot>      as long as it didn't include GPL code in the docs
[12:57:38]  <spot>      this is why the license is only wholly binding when it is in the code files itself
[13:01:09]  <spot>      since we don't have quorum, we're done for now.
[13:01:14]  <spot>      we can revisit this later. :)
[13:01:17]  <spot>      thanks all.
[13:01:34]  <abadger1999>       thanks spot.  I'm glad I'm not a lawyer :-)
[13:01:56]  <spot>      me too. i just play one on tv.