Canon CR3 raw support - your move

A fork sounds a bit extreme for something like this. Is it possible to just apply a patch that adds the support at build time? Similar to how other libraries need tweaks due to issues upstream?

That would require vendoring the external dependency (aka including it into the project source) or for maintainers of every distro to patch their version of exiv2. Forking doesn’t sound more extreme than the maintainers blocking the feature.

1 Like

Honestly, anyone that isn’t personally considering maintaining exiv2 should just stop talking about forking right now. This is so widely inappropriate on so many levels. If you don’t know why, you probably never maintained an open source project, which again means stop talking about forking.

Now about “blocking the feature”:
D4N originally brought up the patent issues as far as I can see. At the same time he did do in-depth review on a PR adding optional support. That’s hardly what I call “blocking the feature”. The latest PR didn’t move forward because of differences between Gilles and Robin: New pull request about to integrate HEIF support (read only) using system based libheif by cgilles · Pull Request #1233 · Exiv2/exiv2 · GitHub
I see no indication anywhere that a clean PR with an option to opt-out would be rejected. Please point me to it if I am missing something.

Honestly, everyone who has an opinion, should be allowed to talk about! Not only in this forum or on github.

4 Likes

Yes, better to voice the thoughts and grievances civilly than have it boil over.

2 Likes

Yes, obviously it’s neither a good idea to prevent anyone from voicing their opinion nor am I in any opinion of enforcing anything here if it were a good idea. I still stand by my statement that you should not talk about forking unless you mean it (and know what it means), otherwise you are making a fool of yourself. Again, if you want to do that, be my guest. Anyway that was not the important part of my post, the part about that I don’t see that anyone is blocking this feature is (should have switched the order accordingly, but I was too annoyed about the forking comments).

@clanmills It sucks to see your frustration, but it does not surprise me given that Rosen Peneve (neheb on github) appears to be an active maintainer on exiv2 now. He is currently complaining that an OpenWRT package is unmaintained because:

  1. He has overridden all pull requests against the package
  2. The justifaction of his overrides can be proven to be unambigously false in less than ten minutes
  3. He outright causes the problems he claims to be solving by overriding other maintainers who actually pay attention to the package (such as not wanting to create a pointless empty metapackage which serves no purpose other than to satisfy an unnecessary dependency) - canutils: Subcomponents do not build after commit 5f9a918c4fe8d3e6e3a29f653204683881ae6f07 · Issue #12812 · openwrt/packages · GitHub

Most.of Rosen’s contributions to exiv2 look like the result of automated code analysis tools.

@paperdigits is correct. Rosen has been using clang-tidy to contribute to the “modernisation” of the Exiv2 code base. His changes have been reviewed and merged by Luis. In May 2018, Luis and Dan visited me in England and we had a very nice weekend together. We agreed that I would be the release engineer for v0.27 and maintain a series of “dot releases” during 2019 and 2020. They would “modernise” the code to support C++11 (they wanted to jump to C++17, KDE requested C++11). So we have two branches 0.27-maintenance and master.

In addition to releasing Exiv2 v0.27, I also shipped v0.27.1, v0.27.2 and v0.27.3 I hope Exiv2 v0.28 will be released spring 2021. Exiv2 RoadMap · Issue #1018 · Exiv2/exiv2 · GitHub

The ISOBMFF matter is an unexpected surprise. I received numerous requests to support CR3, HEIF and AVIF. I was going to add this to Exiv2 v0.27.3 by extending the existing JPEG 2000 code. Members of the community have strongly objected Add support for ISOBMFF Files (AVIF, HEIF, CR3) · Issue #1229 · Exiv2/exiv2 · GitHub

I’m currently writing a book about Exiv2 and hope to finish it by the end of this year. The code in the book reads ISOBMFF and could be ported into Exiv2.

There has been lots of discussion about forking, merging PRs, plugins, introspection and build switches. The legal objection cannot be solved by code.

I have considered the offer to obtain legal advice about ISOBMFF. I have run out of energy to pursue this matter. I would like to see somebody take on the challenge of working with legal people to resolve this matter. I will cooperate fully with such as effort, however I don’t want ownership. I want to retire by my 70th birthday on 2021-01-18. Since 2008, I’ve contributed 10,000+ hours to Exiv2. That’s enough - don’t you think?

The challenges of maintaining an open-source project are many. I have great enthusiasm for Exiv2 and do my best to encourage others to contribute. I appreciate the contributions that Rosen, Luis, Dan and others have made to Exiv2.

8 Likes

Any news on this front?
How come this issue doesn’t seem to exist in LibRaw project?
Also, LibRaw is used by Microsoft Raw Image Extension and specifically advertises CR3 support in all caps. How come they aren’t concerned by any legal issues?

Libraw is commercially developed, then they release an open source version. They’ve either worked with canon or have it cleared from their own legal team, I’d guess.

No movement on this issue, still waiting for the other exiv2 maintainer to weigh in.

2 Likes

Why don’t exiv2 dev ask other apps dev how they proceeded?
Some programs are able to decode CR3 metadata or raw data (exiftool, libraw) and a lot use those programs (DT, ART. xnview, digikam …).
Furthermore, the MP4 format that embeds ISO BMFF is implemented in all video SW I use (free or FOSS).
At last, Exiv2 will stay the only program to remain unable to decode ISO BMFF metadata!

How many months or years are we going to wait?
The issue doesn’t seem to come from legal matter!

2 Likes

What’s/where’s the commercial version?

It is in products like this: Other Libraw Products | FastRawViewer

I don’t know, hopefully we can resolve it ASAP.

I don’t know the IP specifics of ISO BMFF, but I would not think that I should compel an individual to take a perceived risk in this regard. It’s their own decision with respect to how much exposure they’re willing to take regarding an IP conflict.

I speak from experience; about 20 years ago I got a cease and desist letter from a company selling model train control software, citing patents that my recently posted homebrew software allegedly infringed upon. Reviewing the patents, they effectively just patented the use of the TCP protocol for model railroad use, quite specious on its face. However, I wasn’t up to a legal battle, so I took my stuff down.

‘Legal’ isn’t about absolutes, it’s about making a compelling case in a court of law. It’s the process that kills…

2 Likes

I am pleased to say that David Houlder is working with me to get legal advice about this from the Software Freedom Law Center.

https://github.com/Exiv2/exiv2/issues/1229#issuecomment-705350266

It is not helpful to ask the unanswerable question How many months or years are we going to wait?. A better question would be Robin, can I help you with this issue?.

If you want the answer to how long this will take?, please discuss it with SFLC or David. Currently, SFLC have acknowledged our request for assistance.

Assuming we get the legal “all clear”, somebody must undertake the engineering work to add ISOBMFF into the Exiv2 code base, tested, documented and released. This engineering work could be started on a branch while the legal work is in progress.

Would anybody like to volunteer to perform the engineering work to add ISOBMFF support to Exiv2? I have researched, documented and implemented reading ISOBMFF in my book: IMaEA

7 Likes

Please email all those projects and ask them about their ISOBMFF legal status. Their replies may help in several ways:

  1. You may be able to answer the concerns of the 3 Exiv2 contributors who objected to the code being added in Exiv2 v0.27.3.
  2. Your findings may be of value to the SFLC who are investigating the issue.
  3. In some other very constructive way that I have not considered.
4 Likes

An Exiv2 user is adding ISOBMFF support to their private copy of the code. I invited them to provide their code as a “contrib”, however they didn’t reply to my invitation.

I learnt about this because the user emailed to ask about the availability of the code discussed in the book. The location is documented in the book, of course. I believe he intends to use the code in the book to read CR3 files.

contrib/isobmff could provide a script such as integrate.sh/integrate.cmd to make using the contrib very easy. I can’t say if that will satisfy everybody, however I suspect Jens would accept that as a good way forward.

4 Likes

It looks like the ISOBMFF support is no longer the milestone for 0.27.4 so no CR3 support in 2021?