emacs/var/elfeed/db/data/4e/4ea94713d95f6f9f6cd32298d79e582adfccf4f2
2022-01-03 12:49:32 -06:00

1 line
5.2 KiB
Plaintext

<!-- SC_OFF --><div class="md"><p>Primarily, familiarity with C++ is a, well, plus.</p> <p>I was trying to get this to work so we could have MakeMKV (<a href="https://makemkv.com/">https://makemkv.com/</a>) but I&#39;ve hit a bug and can&#39;t figure it out for the life of me; so I&#39;m just throwing this out here on the off-chance anyone besides me can figure it out.</p> <p>I was able to get installation of both necessary bits to work; the open-source parts can be installed with:</p> <pre><code>(use-modules ((guix licenses) #:prefix license:) (guix utils) (guix packages) (guix download) (guix build-system gnu) (gnu packages pkg-config) (gnu packages compression) (gnu packages tls) (gnu packages xml) (gnu packages video) (gnu packages qt)) (package (name &quot;makemkv-oss&quot;) (version &quot;1.16.5&quot;) (source (origin (method url-fetch) (uri (string-append &quot;https://www.makemkv.com/download/&quot; name &quot;-&quot; version &quot;.tar.gz&quot;)) (sha256 (base32 &quot;131vdi4gyc996z77rrcqb9nfbd62j8314ai4ib1jnilmrsrk93p5&quot;)))) (build-system gnu-build-system) (arguments &#39;(#:tests? #f #:phases (modify-phases tandard-phases (add-before &#39;configure &#39;set-ldconfig-cache (lambda _ (substitute* &quot;Makefile.in&quot; [(&quot;ldconfig&quot;) &quot;ldconfig -C /tmp/ld.so.cache~&quot;])))))) (native-inputs (list pkg-config)) (inputs (list zlib openssl expat ffmpeg qtbase-5)) (home-page &quot;https://www.makemkv.com/&quot;) (synopsis &quot;Helper files for MakeMKV&quot;) (description &quot;MakeMKV allows for creating MKV files from the chapters of a DVD. This package provides the MakeMKV GUI, libmakemkv multiplexer library, and libdriveio MMC drive interrogation library&quot;) (license license:lgpl2.1)) </code></pre> <p>and the binary; I wound up adding the above package to a repo. so I could make it an input of the binary package so I could <code>patchelf</code> the binary to use the above package:</p> <pre><code>(use-modules ((guix licenses) #:prefix license:) (guix utils) (guix packages) (guix download) (guix build-system gnu) (gnu packages bootstrap) (gnu packages elf) (your-library makemkv-oss)) (package (name &quot;makemkvcon&quot;) (version &quot;1.16.5&quot;) (source (origin (method url-fetch) (uri (string-append &quot;https://www.makemkv.com/download/&quot; &quot;makemkv-bin-&quot; version &quot;.tar.gz&quot;)) (sha256 (base32 &quot;1y14yxhjj0sdq0s24qr58m0ddhna2rf0q0w3ny888as4wbqiwvm0&quot;)))) (build-system gnu-build-system) (arguments `(#:modules ((guix build gnu-build-system) (guix build utils) (ice-9 popen) (ice-9 rdelim)) #:tests? #f #:phases (modify-phases tandard-phases (delete &#39;configure) (delete &#39;build) (add-before &#39;install &#39;remove-eula (lambda* (#:key outputs #:allow-other-keys) (let ([out (assoc-ref outputs &quot;out&quot;)]) (substitute* &quot;Makefile&quot; [(&quot;PREFIX=/usr&quot;) (string-append &quot;PREFIX=&quot; out)] [(&quot;install: tmp/eula_accepted bin/&quot;) &quot;install: bin/&quot;])))) (add-after &#39;install &#39;fix-rpath (lambda* (#:key inputs outputs #:allow-other-keys) (let ([makemkvcon-bin (string-append (assoc-ref outputs &quot;out&quot;) &quot;/bin/makemkvcon&quot;)]) (invoke &quot;patchelf&quot; &quot;--set-interpreter&quot; (search-input-file inputs ,(glibc-dynamic-linker)) makemkvcon-bin) (invoke &quot;patchelf&quot; &quot;--set-rpath&quot; (string-append (assoc-ref inputs &quot;makemkv-oss&quot;) &quot;/lib&quot;) makemkvcon-bin)))) (delete &#39;strip)))) (native-inputs (list patchelf)) (propagated-inputs (list makemkv-oss)) (home-page &quot;https://www.makemkv.com/&quot;) (synopsis &quot;Executable for MakeMKV to handle disc operations&quot;) (description &quot;&quot;) (license license:non-copyleft)) </code></pre> <p>And, honestly, I was able to install both of these without any hiccup.</p> <p><code>makemkvcon</code> even, as far as I can tell, works perfectly.</p> <p>But, when I try to launch MakeMKV, I get hit with a notification that the program throws the error <code>CANT_LOCATE_MAKEMKVCON</code>.</p> <p>I tried scouring the open-source bits (as that&#39;s where the GUI resides) to figure out why that error might be thrown and, in spite of thinking I found the cause a few times, came up empty; it&#39;s not in the first package defintion I have here but, in <code>makemkvgui/src/api_linux.cpp</code>, there&#39;s an array <code>const</code> with <code>bin</code> locations and I tried updating that with <code>/run/current-system/profile/bin</code> and my home <code>.guix-profile/bin</code> but still wasn&#39;t able to get any different behavior. I also don&#39;t really know C++ so maybe I&#39;m missing something obvious.</p> <p>I&#39;m at a deadend so just throwing this out here so it doesn&#39;t have to just end with me taking a look at it. The binary package would certainly have to go in <code>nongnu</code> but, the more packages we have available for use in Guix, the better for all Guix users, I figure.</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/blah1998z"> /u/blah1998z </a> <br/> <span><a href="https://www.reddit.com/r/GUIX/comments/ru4zkn/get_makemkv_into_guix_for_those_who/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/GUIX/comments/ru4zkn/get_makemkv_into_guix_for_those_who/">[comments]</a></span>