#550 Darktable and Rawspeed internal library
Closed: Fixed None Opened 8 years ago by germano.

Good day, I am the Darktable package comantainer. Darktable is shipped with its internal library called Rawspeed ( https://github.com/klauspost/rawspeed ).
Rawspeed is really intended to be a copylib by the upstream.
I am writing to you to ask you the permission to treat Rawspeed as a copylib (and thus, okay to bundle in darktable).

More infos about
https://bugzilla.redhat.com/show_bug.cgi?id=972604#c24


Rawspeed is really intended to be a copylib by the upstream

This means nothing. Lots of upstream just say this because they can't be bothered with compatibility or just can't be bothered (but then the downsides of bundling don't affect them).

Can you answer the std. bundling questions:

https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Standard_questions

1) QUESTION: Does the upstream library make actual releases? If they do, then it is likely not a copylib.

ANSWER: There are no formal releases, since there are many updates for new cameras. The upstream developer encourages that people who use Rawspeed do manual updates from GIT, so they pin camera support for their own specific releases, and can test it consistently.

2) QUESTION: Does upstream define what they put together as a library or as reusable code snippets that are to be modified and incorporated as source in individual packages? If the latter, it's more likely that the library is a copylib under this definition.

ANSWER: There is no separate libraries, source code is intended to be supplied in source/compiled into releases of programs using it.

We discussed this at this weeks meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2015-07-09/fpc.2015-07-09-16.00.txt):

Given https://github.com/klauspost/rawspeed/issues/109#issuecomment-120669126 and the following comments I'd like to reopen this and propose a vote on a temporary (until after F24 release) exception for both darktable and rawstudio to bundle rawspeed.

We discussed this at this weeks meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2015-07-30/fpc.2015-07-30-16.00.txt):

  • 550 Darktable and Rawspeed internal library (geppetto, 16:21:53)

  • LINK: https://fedorahosted.org/fpc/ticket/550 (geppetto, 16:21:53)
  • ACTION: Without a timeline, or some other commitment from upstream
    we can't do much (too big to just ignore). (geppetto, 17:01:18)

Having just tried to catch up with this after hearing mizmo talk about it, I have to say I find the reasoning here incoherent or difficult to follow. In the original log it seems to be decided that rawspeed can't possibly be a copylib because it's "too big" and/or "too active":

16:22:43 <geppetto> wc -l *.cpp is like 30k[[BR]]
16:22:54 <geppetto> so lol on that being a copylib[[BR]]
16:32:45 <geppetto> #action Rawspeed is way too big/active to be a copylib. Make a static library.[[BR]]

however, the [https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Copylibs No Bundled Libraries page] says exactly nothing about either of these things being indicators of copylib status.

There is a quote from the upstream author in the github issue where he explicitly states "2) There is no separate libraries, source code is intended to be supplied in source/compiled into releases of programs using it."

So far as I can understand it, FPC's position here seems to be "we know better than the upstream maintainer how he intends his own code to be used, and we believe it will be better for everyone in the long run if Fedora builds Rawspeed as something it was never intended to be". This seems like a hard row to hoe.

The second FPC log seems to involve exactly no actual discussion of copylib status, a lot of (so far as I can see, unjustified) slagging off of upstream, and a worrying lack of understanding of what the code is even for ("what's a RAW file?")

The conclusion appears to be "#action Without a timeline, or some other commitment from upstream we can't do much (too big to just ignore)." For a start, why is that an action? That's not an action, it's a #agreed or #info. But disregarding that, it neatly doesn't explain what it wants a timeline for, and it's not even particularly clear from context. My best inferral is that FPC wants a timeline from upstream for turning Rawspeed into a 'real' shared library, but I find it frankly difficult to see where FPC thinks it has a mandate to demand upstream projects that have been intended from day 1 to be used as copylibs to convert themselves into system shared libraries? FPC seemed to start out asking for upstream to clarify the status of rawspeed, then pivot to demanding it be rewritten without ever justifying the switch.

We discussed this at this weeks meeting (http://meetbot.fedoraproject.org/fedora-meeting-1/2015-09-10/fpc.2015-09-10-16.00.txt):

  • 550 Darktable and Rawspeed internal library (geppetto, 16:14:10)

  • LINK: https://fedorahosted.org/fpc/ticket/550 (geppetto, 16:14:16)
  • ACTION: Temporary exception during 23/24 for Darktable, due to
    critical usage in Design spin (+1:5, 0:1, -1:1) (geppetto,
    16:41:19)

Metadata Update from @james:
- Issue assigned to rathann

7 years ago

Login to comment on this ticket.

Metadata