On Sat, Mar 18, 2017 at 04:56:22PM +0100, Marius Bakke wrote: > * gnu/packages/kodi.scm (libdvdnav/kodi, libdvdread/kodi, libdvdcss/kodi): New > variables. > (kodi): Update to 18.0_alpha-0-4912f8f. > [source]: Download from git. Unbundle more stuff. > [build-system]: Change to CMAKE-BUILD-SYSTEM. > [arguments]: Add #:configure-flag to disable nonfree components. Rework phases > to patch bundled software and bootstrap more libraries. > [native-inputs]: Remove CMAKE. Add LIBDVDCSS/KODI, LIBDVDNAV/KODI and > LIBDVDREAD/KODI. > [inputs]: Remove BOOST, BZIP2, ENCA, GPERF, JASPER, LIBMODPLUG, LIBSAMPLERATE, > MESA-UTILS and SDL2. Add FMT, GIFLIB, LCMS and LIBDRM. > [license]: Update for remaining software bundles. Wow! > +;; Kodi requires special forks of these libraries. In addition, > +;; it insists on downloading and building these as part of the > +;; standard build process. To make things easier, we bootstrap > +;; them here, so we don't have to worry about it later. Can you add a sentence stating that these forks are contained in the Kodi / XBMC repository? For a minute, I wondered how you figured out which commit to use. > (define-public kodi [...] > - ;; JsonSchemaBuilder is a small tool needed by the build system that > - ;; comes bundled with the source. The build system tries to build it > - ;; during the bootstrapping phase, which causes serious issues > + ;; The build system tries to bootstrap these components > + ;; during the build phase, which causes serious issues Nit-pick: these lines could be longer :) > + (add-after 'bootstrap-bundled-software 'patch-stuff > (lambda _ > + ;; Prevent the build scripts from calling autoreconf in > + ;; the build stage. Otherwise, it would undo the careful > + ;; bootstrapping that we've worked so hard for. > + (substitute* "cmake/modules/FindLibDvd.cmake" > + ;; Let's also use this opportunity to make the freshly > + ;; unpackaged source directory writable. > + (("autoreconf -vif") "chmod -R u+w .")) Clever, but perhaps too clever :) I think we should use the Scheme (chmod) procedure to do this separately, if there is a point where the files are unpacked between build phases.