Subject: Re: [bug#27434] [PATCH] gnu: Add mkvtoolnix.

From: Gregor Giesen <[email-masked]>
Date: Sun, 25 Jun 2017 16:50:37 +0200

Dear Leo,

thank you for taking your time for this blob of packages. 

On Sun, Jun 25, 2017 at 09:44:01AM -0400, Leo Famulari wrote:
> I spent some time splitting this patch into "one patch per package",
> which is how we like to do it.
Sorry, I wasn't aware of it. Won't happen again.

> nlohmnann-json-cpp, libebml, and libmatroska are done, in my opinion,
> and I'll push them shortly.
Thank you!

> > +(define-public mkvtoolnix
> > +  (package
> > +    (name "mkvtoolnix")
> > +    (version "12.0.0")
> 
> When I built and ran mkvtoolnix-gui, it told me there was a new version
> available (13.0.0). Can we use that version instead?
Yes, in fact, it has been released today.

> I noticed it includes some files in 'lib/', and at least some of them
> appear to be bundled copies of 3rd-party libraries:
> 
> $ ls -l mkvtoolnix-12.0.0/lib
> total 4
> drwxr-xr-x 1 leo leo 116 May 20 13:25 avilib-0.6.10
> drwxr-xr-x 1 leo leo  66 May 20 13:25 boost
> drwxr-xr-x 1 leo leo 194 May 20 13:25 libebml
> drwxr-xr-x 1 leo leo 236 May 20 13:25 libmatroska
> drwxr-xr-x 1 leo leo 120 May 20 13:25 librmff
> drwxr-xr-x 1 leo leo  70 May 20 13:25 nlohmann-json
> drwxr-xr-x 1 leo leo  26 May 20 13:25 pugixml
> -rw-r--r-- 1 leo leo 244 May 20 13:25 Rakefile
> drwxr-xr-x 1 leo leo  18 May 20 13:25 utf8-cpp
> 
> After removing libebml, libmatroska, and nlohmann-json in an "origin
> snippet" [0], mkvtoolnix still builds. We don't like to use or
> distribute bundled libraries if we can help it. I didn't have time yet
> to investigate the other directories in that list.
That is not very clean indeed. I just had had a look at the configure 
output and tried bundling those mentioned. It seems that I missed some.
Let me have another go and try to bundle or disable those dependencies.
E.g. librmff seems to be an ancient library for Real Media files; I
rather want to disable it.

> > +    (native-inputs
> > +     `(("docbook-xsl" ,docbook-xsl)
> > +       ("gettext" ,gettext-minimal)
> > +       ("googletest" ,googletest)
> > +       ("libxslt" ,libxslt)
> > +       ("nlohmann-json-cpp" ,nlohmann-json-cpp)
> > +       ("perl" ,perl)
> > +       ("pkg-config" ,pkg-config)
> > +       ("po4a" ,po4a)
> > +       ("ruby" ,ruby)
> > +       ("zsh", zsh)))
> 
> Does it need to use Zsh while building? Native-inputs are basically
> build-time dependencies, and it's definitely unusual to require Zsh, so
> that's why I'm asking. I removed Zsh from this list and the resulting
> mkvtoolnix-gui seems to start without any problems.
I recall some warning about ‘zsh’, but you are right we do not really
need it.

On Sun, Jun 25, 2017 at 10:00:25AM -0400, Leo Famulari wrote:
> On Tue, Jun 20, 2017 at 11:54:33PM +0200, Gregor Giesen wrote:
> > +    (description
> > +     "JSON library for C++ trying to accomplish “Intuitive syntax”,
> > +“Trivial integration”, and “Serious testing”.
> > +However, “Memory efficiency” and “Speed” have not been primary goals.")
> 
> Most programs like to claim they were created with efficiency and speed
> in mind, and I always thought it was funny, as if anyone would claim
> otherwise. There's a first time for everything :)
Yeah, I was surprised, too. However, the developer seems to be a humble guy...
 
> One question about this package:
> 
> > +    (description
> > +     "libebml is a C++ library to read and write EBML files.
> > +EBML (Extensible Binary Meta Language) is a binary pendant to XML.")
> 
> What does "binary pendant to XML" mean? I'm not familiar with this
> phrase.
I also never heard of it, but I understand that this is a binary language
in which you can store the same data structures like XML is able to. This
is probably a bit smaller and has less overhead.

Best,
Gregor