Posts by D@nFr0mB3rl1n

    Okay I fully understand that but this is not what I was asking for.

    If we look at LibreELEC as a Linux Distribution like let's say Ubuntu then why would it not be possible to select in the installer what packages or what flavour (which could be my suggested variants) should be installed? In that case, apart from some tweaks to the installer, nothing has to be changed as we have the full repo already? And yes, Kodi is a client but it comes with a SSH, SMB, SFTP, UPNP, DLNA and so on server which might not be needed by everyone so why not give users a choice?

    My intention is not to make the LE developers work five times more, it is rather to make LE even better than it already is.

    How about splitting LibreELEC into different editions like for example:

    LibreELEC MediaCenter - for people who just want to play local and streaming content

    LibreELEC Server - a dedicated mediaserver for Kodi/LibreELEC

    LibreELEC Minimal - only what is really needed for running Kodi on top of a JEOS Linux

    LibreELEC Legacy - for people that want to use their older PC/Laptop as a MediaCenter

    LibreELEC Ultimate - containing everything which would be what we pretty much have now

    I think that this is generally a very good idea but I am not a fan of this being a Raspberry Pi (as much as I love this device) exclusive.

    Sure, there are a lot and affordable Pi Hats available that give you a great sound but what about good PC/Mac Sound cards or even proper studio grade ones that you can get from your local music store like the ones from RME, Apogee, Halo, Focusrite and many more? And even without a fancy sound interface, what about using the surplus computing power that we nowadays take for granted for optimizing the sound with things like Secret Rabbit Code (libresample) and/or SoX and maybe put something like freesurround on top of that?

    My approach would be to reinstate the development and implementation of the DSP section in Kodi and do the same for the MPD Addon which has been around years ago. Then add support for more Sound Interfaces that go beyond the usual suspects and make better use of SRC (Secret Rabbit Code, also known as libresample) and SoX which are already part of LibreELEC. Then take apart something like Volumio (already available for X86) or Runeaudio and intergrate it in a sensible way into LibreELEC in order to make LibreELEC the only media OS that you will ever need, including the so called Audiophiles. You would be surprised how great even some stock on board HD Audio codec or Intel/NVidia HD Audio over HDMI can sound if set up right and given that you have some decent speakers and/or headphones connected to it.

    One of the great advantages of LibreELEC is that it supports so many different hardware platforms and I would be strongly in favour of keeping it that way. I don't mind forks but would it not be nicer to have one project where everyone can participate in his own way instead of having a million different niche versions to choose from? What I would suggest tho is to split LibreELEC into a pure player and a pure server edition within the main LibreELEC project.

    I keep getting this error and I don't know what to do.

    Here is the output of LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/.threads/logs/261/stdout:

    [1;36mUNPACK[0m libgpg-error

    [1;33mFIXCONFIG[0m /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/build-aux/

    [1;33mBUILD[0m libgpg-error [1;37m(target)[0m

    [1;35mTOOLCHAIN[0m configure (auto-detect)

    Executing (target): /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/configure --host=x86_64-libreelec-linux-gnu --build=x86_64-linux-gnu --prefix=/usr --bindir=/usr/bin --sbindir=/usr/sbin --sysconfdir=/etc --libdir=/usr/lib --libexecdir=/usr/lib --localstatedir=/var --disable-static --enable-shared CC_FOR_BUILD=/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/host-gcc --enable-static --disable-shared --disable-nls --disable-rpath --with-gnu-ld --with-pic

    checking for a BSD-compatible install... /usr/bin/install -c

    checking whether build environment is sane... yes

    checking for x86_64-libreelec-linux-gnu-strip... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-strip

    checking for a thread-safe mkdir -p... /usr/bin/mkdir -p

    checking for gawk... gawk

    checking whether make sets $(MAKE)... yes

    checking whether make supports nested variables... yes

    checking whether to enable maintainer-specific portions of Makefiles... no

    checking whether make supports nested variables... (cached) yes

    checking build system type... x86_64-pc-linux-gnu

    checking host system type... x86_64-libreelec-linux-gnu

    configure: autobuild project... libgpg-error

    configure: autobuild revision... 1.36

    configure: autobuild hostname... Hercules3

    configure: autobuild timestamp... 20200414-195940

    checking for x86_64-libreelec-linux-gnu-gcc... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc

    checking whether the C compiler works... yes

    checking for C compiler default output file name... a.out

    checking for suffix of executables...

    checking whether we are cross compiling... yes

    checking for suffix of object files... o

    checking whether we are using the GNU C compiler... yes

    checking whether /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc accepts -g... yes

    checking for /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to accept ISO C89... none needed

    checking whether /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc understands -c and -o together... yes

    checking for style of include used by make... GNU

    checking dependency style of /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... gcc3

    checking how to run the C preprocessor... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-cpp

    checking for gawk... (cached) gawk

    checking for x86_64-libreelec-linux-gnu-ar... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ar

    checking for grep that handles long lines and -e... /usr/bin/grep

    checking for egrep... /usr/bin/grep -E

    checking for ANSI C header files... yes

    checking for sys/types.h... yes

    checking for sys/stat.h... yes

    checking for stdlib.h... yes

    checking for string.h... yes

    checking for memory.h... yes

    checking for strings.h... yes

    checking for inttypes.h... yes

    checking for stdint.h... yes

    checking for unistd.h... yes

    checking minix/config.h usability... no

    checking minix/config.h presence... no

    checking for minix/config.h... no

    checking whether it is safe to define __EXTENSIONS__... yes

    checking for special C compiler options needed for large files... no

    checking for _FILE_OFFSET_BITS value needed for large files... no

    checking how to print strings... printf

    checking for a sed that does not truncate output... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/sed

    checking for fgrep... /usr/bin/grep -F

    checking for ld used by /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld

    checking if the linker (/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld) is GNU ld... yes

    checking for BSD- or MS-compatible name lister (nm)... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm

    checking the name lister (/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm) interface... BSD nm

    checking whether ln -s works... yes

    checking the maximum length of command line arguments... 1572864

    checking whether the shell understands some XSI constructs... yes

    checking whether the shell understands "+="... yes

    checking how to convert x86_64-pc-linux-gnu file names to x86_64-libreelec-linux-gnu format... func_convert_file_noop

    checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop

    checking for /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld option to reload object files... -r

    checking for x86_64-libreelec-linux-gnu-objdump... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-objdump

    checking how to recognize dependent libraries... pass_all

    checking for x86_64-libreelec-linux-gnu-dlltool... no

    checking for dlltool... no

    checking how to associate runtime and link libraries... printf %s\n

    checking for x86_64-libreelec-linux-gnu-ar... (cached) /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ar

    checking for archiver @FILE support... @

    checking for x86_64-libreelec-linux-gnu-strip... (cached) /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-strip

    checking for x86_64-libreelec-linux-gnu-ranlib... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ranlib

    checking command to parse /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-nm output from /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc object... ok

    checking for sysroot... no

    checking for x86_64-libreelec-linux-gnu-mt... no

    checking for mt... mt

    configure: WARNING: using cross tools not prefixed with host triplet

    checking if mt is a manifest tool... no

    checking for dlfcn.h... yes

    checking for objdir... .libs

    checking if /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no

    checking for /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc option to produce PIC... -fPIC -DPIC

    checking if /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes

    checking if /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc static flag -static works... yes

    checking if /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -c -o file.o... yes

    checking if /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc supports -c -o file.o... (cached) yes

    checking whether the /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc linker (/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64) supports shared libraries... yes

    checking dynamic linker characteristics... GNU/Linux ld.so

    checking how to hardcode library paths into programs... immediate

    checking whether stripping libraries is possible... yes

    checking if libtool supports shared libraries... yes

    checking whether to build shared libraries... no

    checking whether to build static libraries... yes

    checking for x86_64-libreelec-linux-gnu-windres... no

    checking for windres... no

    checking for build system executable suffix... no

    checking whether NLS is requested... no

    checking for msgfmt... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/msgfmt

    checking for gmsgfmt... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/msgfmt

    checking for xgettext... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/xgettext

    checking for msgmerge... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/msgmerge

    checking for ld used by /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-gcc... /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64

    checking if the linker (/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-ld -m elf_x86_64) is GNU ld... yes

    checking for shared library run path origin... done

    checking for CFPreferencesCopyAppValue... no

    checking for CFLocaleCopyCurrent... no

    checking whether to use NLS... no

    checking for ANSI C header files... (cached) yes

    checking for stdlib.h... (cached) yes

    checking locale.h usability... yes

    checking locale.h presence... yes

    checking for locale.h... yes

    checking for stdint.h... (cached) yes

    checking sys/select.h usability... yes

    checking sys/select.h presence... yes

    checking for sys/select.h... yes

    checking sys/time.h usability... yes

    checking sys/time.h presence... yes

    checking for sys/time.h... yes

    checking signal.h usability... yes

    checking signal.h presence... yes

    checking for signal.h... yes

    checking whether strerror_r is declared... yes

    checking for strerror_r... yes

    checking whether strerror_r returns char *... yes

    checking for strerror_r... (cached) yes

    checking for pid_t... yes

    checking vfork.h usability... no

    checking vfork.h presence... no

    checking for vfork.h... no

    checking for fork... yes

    checking for vfork... yes

    checking for working fork... cross

    configure: WARNING: result yes guessed because of cross compilation

    checking for working vfork... (cached) yes

    checking for flockfile... yes

    checking for vasprintf... yes

    checking for mmap... yes

    checking for rand... yes

    checking for strlwr... no

    checking for stpcpy... yes

    checking for setenv... yes

    checking for stat... yes

    checking for getrlimit... yes

    checking for an ANSI C-conforming const... yes

    checking size of int... 4

    checking size of long... 8

    checking size of long long... 8

    checking whether time.h and sys/time.h may both be included... yes

    checking size of time_t... 8

    checking for sys/stat.h... (cached) yes

    checking for unistd.h... (cached) yes

    checking direct.h usability... no

    checking direct.h presence... no

    checking for direct.h... no

    checking if mkdir takes one argument... no

    configure: checking for cc features

    checking if gcc ignores unknown -Wno-* options... yes

    checking if gcc supports -Wpointer-arith... yes

    checking whether the GCC style aligned attribute is supported... yes

    checking whether the visibility attribute is supported... yes

    checking for broken visibility attribute... no

    checking for broken alias attribute... no

    checking if gcc supports -fvisibility=hidden... yes

    checking whether imported symbols can be declared weak... guessing yes

    checking pthread.h usability... yes

    checking pthread.h presence... yes

    checking for pthread.h... yes

    checking for pthread_kill in -lpthread... yes

    checking for multithread API to use... posix

    checking for pthread_rwlock_t... yes

    checking size of pthread_mutex_t... 40

    checking for library containing sched_yield... none required

    checking for library containing inet_addr... none required

    checking for library containing socket... none required

    checking whether readline via "-lreadline" is present and sane... no

    checking whether readline via "-lreadline -ltermcap" is present and sane... no

    checking whether readline via "-lreadline -lcurses" is present and sane... yes

    checking for unsigned long long int... yes

    configure: checking system features for estream-printf

    checking for stdint.h... (cached) yes

    checking for long long int... yes

    checking for long double... yes

    checking for intmax_t... yes

    checking for uintmax_t... yes

    checking for ptrdiff_t... yes

    checking size of unsigned long... 8

    checking size of void *... 8

    checking for nl_langinfo and THOUSEP... yes

    configure: checking system features for estream

    checking for memrchr... yes

    checking whether to enable log_clock... no

    checking that generated files are newer than configure... done

    configure: creating ./config.status

    config.status: creating Makefile

    config.status: creating doc/Makefile

    config.status: creating po/Makefile.in

    config.status: creating m4/Makefile

    config.status: creating src/Makefile

    config.status: creating tests/Makefile

    config.status: creating lang/Makefile

    config.status: creating lang/cl/Makefile

    config.status: creating lang/cl/gpg-error.asd

    config.status: creating src/versioninfo.rc

    config.status: creating src/gpg-error.w32-manifest

    config.status: creating src/gpg-error.pc

    config.status: creating src/gpg-error-config-old

    config.status: creating config.h

    config.status: executing depfiles commands

    config.status: executing libtool commands

    config.status: executing po-directories commands

    config.status: creating po/POTFILES

    config.status: creating po/Makefile

    libgpg-error v1.36 has been configured as follows:

    Revision: 85f427f (34292)

    Platform: x86_64-libreelec-linux-gnu

    Executing (target): make

    make[1]: Entering directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu'

    make all-recursive

    make[2]: Entering directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu'

    Making all in m4

    make[3]: Entering directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu/m4'

    make[3]: Nothing to be done for 'all'.

    make[3]: Leaving directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu/m4'

    Making all in src

    make[3]: Entering directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu/src'

    gawk -f /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkerrnos.awk /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/errnos.in >code-to-errno.h

    gawk -f /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkerrcodes1.awk /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/errnos.in >_mkerrcodes.h

    gawk -f /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkstrtable.awk -v textidx=2 -v nogettext=1 \

    /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/err-sources.h.in >err-sources-sym.h

    gawk -f /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkstrtable.awk -v textidx=2 -v nogettext=1 \

    /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/err-codes.h.in >err-codes-sym.h

    gawk: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkerrnos.awk:86: warning: regexp escape sequence `\#' is not a known regexp operator

    gawk -f /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkstrtable.awk -v textidx=2 -v nogettext=1 \

    -v prefix=GPG_ERR_ -v namespace=errnos_ \

    /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/errnos.in >errnos-sym.h

    gawk: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkerrcodes1.awk:84: warning: regexp escape sequence `\#' is not a known regexp operator

    /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-cpp -P _mkerrcodes.h | grep GPG_ERR_ | \

    gawk -f /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkerrcodes.awk >mkerrcodes.h

    gawk: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator

    /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/host-gcc -g -O0 -I. -I/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src -o mkheader /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkheader.c

    gawk: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkstrtable.awk:113: warning: regexp escape sequence `\#' is not a known regexp operator

    cat /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/gpg-error.def.in >_gpg-error.def.h

    gawk: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src/mkerrcodes.awk:88: warning: regexp escape sequence `\#' is not a known regexp operator

    echo "/*dummy*/" > mkw32errmap.map.c

    gawk: fatal: cannot use gawk builtin `namespace' as variable name

    make[3]: *** [Makefile:1617: errnos-sym.h] Error 2

    make[3]: *** Waiting for unfinished jobs....

    /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/toolchain/bin/x86_64-libreelec-linux-gnu-cpp -I. -I/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/src -I.. _gpg-error.def.h | \

    grep -v '^#' >gpg-error.def

    rm _mkerrcodes.h

    rm _gpg-error.def.h

    make[3]: Leaving directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu/src'

    make[2]: *** [Makefile:509: all-recursive] Error 1

    make[2]: Leaving directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu'

    make[1]: *** [Makefile:441: all] Error 2

    make[1]: Leaving directory '/home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/libgpg-error-1.36/.x86_64-libreelec-linux-gnu'

    [1;31mFAILURE: scripts/install libgpg-error has failed!

    [0m

    And the output of LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/.threads/logs/261/stderr:

    [256/310] [FAIL] install libgpg-error

    The following logs for this failure are available:

    stdout: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/.threads/logs/261/stdout

    stderr: /home/daneng/Dokumente/bastarddev/9.2.2/http://LibreELEC.tv/build.LibreELEC-Generic.x86_64-9.2-devel/.threads/logs/261/stderr

    Content of my >> LibreELEC.tv/config/options/arch.x86_64 <<:

    # determines TARGET_CPU, if not forced by user

    if [ -z "$TARGET_CPU" ]; then

    TARGET_CPU=core2

    fi

    # determine architecture's family

    TARGET_SUBARCH=x86_64

    TARGET_GCC_ARCH="${TARGET_SUBARCH/-/}"

    TARGET_KERNEL_ARCH=x86

    # setup ARCH specific *FLAGS

    TARGET_CFLAGS="-march=$TARGET_CPU -m64 -mmmx -msse -msse2 -mfpmath=sse"

    TARGET_LDFLAGS="-march=$TARGET_CPU -m64"

    # build with SIMD support ( yes / no )

    TARGET_FEATURES+=" mmx sse sse2"

    Content of my >> LibreELEC.tv/config/optimize <<:

    GCC_OPTIM="-Os"

    # Linker hash-style is set to gnu via gcc default

    LD_OPTIM="-Wl,--as-needed"

    if [ "${BUILD_WITH_DEBUG}" = "yes" ]; then

    TARGET_CFLAGS="$TARGET_CFLAGS -ggdb"

    TARGET_CXXFLAGS="$TARGET_CXXFLAGS -ggdb"

    TARGET_LDFLAGS="$TARGET_LDFLAGS -ggdb"

    else

    TARGET_CFLAGS="$TARGET_CFLAGS -fomit-frame-pointer"

    TARGET_CXXFLAGS="$TARGET_CXXFLAGS -fomit-frame-pointer"

    TARGET_LDFLAGS="$TARGET_LDFLAGS"

    fi

    NINJA_OPTS=""

    TARGET_CPPFLAGS=""

    TARGET_CFLAGS="$TARGET_CFLAGS -Wall -pipe $GCC_OPTIM $PROJECT_CFLAGS"

    TARGET_CXXFLAGS="$TARGET_CFLAGS"

    TARGET_LDFLAGS="$TARGET_LDFLAGS $LD_OPTIM"

    TARGET_LIBDIR="$SYSROOT_PREFIX/lib $SYSROOT_PREFIX/usr/lib"

    TARGET_INCDIR="$SYSROOT_PREFIX/include $SYSROOT_PREFIX/usr/include"

    HOST_CPPFLAGS=""

    HOST_CFLAGS="-march=native -O2 -Wall -pipe -I$TOOLCHAIN/include"

    HOST_CXXFLAGS="$HOST_CFLAGS"

    HOST_LDFLAGS="-Wl,-rpath,$TOOLCHAIN/lib -L$TOOLCHAIN/lib"

    HOST_INCDIR="$TOOLCHAIN/include /usr/include"

    # work around Ubuntu default C*FLAGS

    # see ToolChain/CompilerFlags - Ubuntu Wiki

    HOST_CFLAGS="$HOST_CFLAGS -Wno-format-security"

    HOST_CXXFLAGS="$HOST_CXXFLAGS -Wno-format-security"

    # lto flags

    FLAGS_OPTIM_LTO_NO_PARALLEL="-flto"

    FLAGS_OPTIM_LTO_PARALLEL="-flto=${CONCURRENCY_MAKE_LEVEL}"

    FLAGS_OPTIM_LTO_NO_FAT="-fno-fat-lto-objects"

    FLAGS_OPTIM_LTO_FAT="-ffat-lto-objects"

    FLAGS_OPTIM_LTO_OFF="-fno-lto"

    LDFLAGS_OPTIM_LTO_COMMON="-fuse-linker-plugin"

    # gold flags

    LDFLAGS_OPTIM_GOLD="-fuse-ld=gold"

    # position-independent code

    CFLAGS_OPTIM_PIC="-fPIC -DPIC"

    CXXFLAGS_OPTIM_PIC="-fPIC -DPIC"

    LDFLAGS_OPTIM_PIC="-fPIC"

    # hardening support

    # TODO: basiclly copied from debian 9, should adjust for LE

    CFLAGS_OPTIM_HARDENING="-fstack-protector-strong -Wformat -Werror=format-security -fPIE"

    CXXFLAGS_OPTIM_HARDENING="-fstack-protector-strong -Wformat -Werror=format-security -fPIE"

    CPPFLAGS_OPTIM_HARDENING="-D_FORTIFY_SOURCE=2"

    LDFLAGS_OPTIM_HARDENING="-Wl,-z,relro -Wl,-z,now"

    # add distro specific library dirs

    if [ -z "$HOST_LIBDIR" ]; then

    HOST_LIBDIR="$TOOLCHAIN/lib"

    # ubuntu/debian specific "multiarch support"

    export MACHINE_HARDWARE_NAME="$(uname -m)"

    export MACHINE_HARDWARE_PLATFORM="$(uname -i)"

    FAMILY_TRIPLET=${HOST_NAME/${MACHINE_HARDWARE_NAME}/${MACHINE_HARDWARE_PLATFORM}}

    if [ -d /lib/$FAMILY_TRIPLET ]; then

    HOST_LIBDIR="$HOST_LIBDIR /lib/$FAMILY_TRIPLET"

    fi

    if [ -d /usr/lib/$FAMILY_TRIPLET ]; then

    HOST_LIBDIR="$HOST_LIBDIR /usr/lib/$FAMILY_TRIPLET"

    fi

    # default multiarch support

    case "${MACHINE_HARDWARE_NAME}" in

    i*86)

    if [ -d /lib32 ]; then

    HOST_LIBDIR="$HOST_LIBDIR /lib32"

    fi

    if [ -d /usr/lib32 ]; then

    HOST_LIBDIR="$HOST_LIBDIR /usr/lib32"

    fi

    ;;

    x86_64)

    if [ -d /lib64 ]; then

    HOST_LIBDIR="$HOST_LIBDIR /lib64"

    fi

    if [ -d /usr/lib64 ]; then

    HOST_LIBDIR="$HOST_LIBDIR /usr/lib64"

    fi

    ;;

    esac

    # default dirs

    export HOST_LIBDIR="$HOST_LIBDIR /lib /usr/lib"

    fi

    Content of my >> LibreELEC.tv/projects/Generic/options <<:

    ################################################################################

    # setup system defaults

    ################################################################################

    # The TARGET_CPU variable controls which processor should be targeted for

    # generated code.

    case $TARGET_ARCH in

    x86_64)

    # (AMD CPUs) k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3

    # athlon-fx amdfam10 barcelona

    # (Intel CPUs) atom core2 nocona

    #

    TARGET_CPU="ivybridge"

    TARGET_FEATURES="64bit"

    ;;

    esac

    # Bootloader to use (syslinux / u-boot)

    BOOTLOADER="syslinux"

    # u-boot version to use (default)

    UBOOT_VERSION="default"

    # Kernel target

    KERNEL_TARGET="bzImage"

    # Additional kernel make parameters (for example to specify the u-boot loadaddress)

    KERNEL_MAKE_EXTRACMD=""

    # Additional kernel dependencies

    KERNEL_EXTRA_DEPENDS_TARGET=""

    # Kernel to use. values can be:

    # default: default mainline kernel

    LINUX="default"


    ################################################################################

    # setup build defaults

    ################################################################################

    # Project CFLAGS

    PROJECT_CFLAGS=""

    # SquashFS compression method (gzip / lzo / xz / zstd)

    SQUASHFS_COMPRESSION="gzip"


    ################################################################################

    # setup project defaults

    ################################################################################

    # build and install ALSA Audio support (yes / no)

    ALSA_SUPPORT="yes"

    # OpenGL(X) implementation to use (no / mesa)

    OPENGL="mesa"

    # OpenGL-ES implementation to use (no / bcm2835-driver / gpu-viv-bin-mx6q)

    OPENGLES="no"

    # include uvesafb support (yes / no)

    UVESAFB_SUPPORT="yes"

    # Displayserver to use (x11 / no)

    DISPLAYSERVER="x11"

    # KODI Player implementation to use (default / bcm2835-driver / libfslvpuwrap)

    KODIPLAYER_DRIVER="default"

    # Modules to install in initramfs for early boot

    INITRAMFS_MODULES=""

    # additional Firmware to use (dvb-firmware, misc-firmware, wlan-firmware)

    # Space separated list is supported,

    # e.g. FIRMWARE="dvb-firmware misc-firmware wlan-firmware"

    FIRMWARE="misc-firmware wlan-firmware dvb-firmware iwlwifi-firmware"

    # additional drivers to install:

    # for a list of additional drivers see packages/linux-drivers

    # Space separated list is supported,

    # e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"

    ADDITIONAL_DRIVERS="$ADDITIONAL_DRIVERS bcm_sta intel_nuc_led"

    # build and install driver addons (yes / no)

    DRIVER_ADDONS_SUPPORT="yes"

    # driver addons to install:

    # for a list of additional drivers see packages/linux-driver-addons

    # Space separated list is supported,

    DRIVER_ADDONS=""

    # Default size of the ova image, in MB, eg. 4096

    OVA_SIZE="4096"

    Output from >> sudo apt info gawk <<:

    Package: gawk

    Version: 1:5.0.1+dfsg-1

    Priority: optional

    Section: interpreters

    Origin: Ubuntu

    Maintainer: Ubuntu Developers <[email protected]>

    Original-Maintainer: Adrian Bunk <[email protected]>

    Bugs: OpenID transaction in progress

    Installed-Size: 1.708 kB

    Provides: awk

    Pre-Depends: libc6 (>= 2.29), libgmp10, libmpfr6 (>= 3.1.3), libreadline8 (>= 6.0), libsigsegv2 (>= 2.9)

    Suggests: gawk-doc

    Homepage: Gawk - GNU Project - Free Software Foundation (FSF)

    Task: server, cloud-image, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-minimal-default-languages, ubuntu-desktop-default-languages, ubuntu-desktop-default-languages, ubuntu-desktop-default-languages, ubuntu-desktop-default-languages, ubuntu-desktop-default-languages, ubuntu-desktop-default-languages, ubuntu-desktop-default-languages, ubuntustudio-video, ubuntustudio-graphics

    Supported: 5y

    Download-Size: 418 kB

    APT-Manual-Installed: no

    APT-Sources: Index of /ubuntu focal/main amd64 Packages

    Description: GNU awk, eine Mustererkennungs- und Verarbeitungssprache

    `awk', ein Programm, das Sie zur Auswahl bestimmter Sätze in einer Datei

    und zur Durchführung von Veränderungen an diesen nutzen können.

    .

    Gawk ist die Implementation der AWK-Programmiersprache durch das GNU-

    Projekt. Es entspricht der Sprachdefinition gemäß dem POSIX 1003.2

    Befehlssprachen- und Hilfsprogrammen-Standard. Diese Version basiert

    ihrerseits auf der Beschreibung in »Die AWK Programmiersprache« von Aho,

    Kernighan und Weinberger, mit den zusätzlichen Fähigkeiten, die im System

    5 Release 4 des UNIX awk definiert sind. Gawk enthält auch die jüngsten

    Erweiterungen der Bell Labs und einige GNU-spezifische Erweiterungen.

    Build system is Ubuntu Studio 20.04 development branch with updates as of 14/04/2020 running natively on a ThinkPad Edge E531, Intel Core i7 3632QM, 8GB RAM, NVidia GT740M 2GB, FHD Display, Samsung EVO 850 500GB Harddrive.

    Is there a way of skipping this package for now so I can compile the rest with my normal options and then play with the CFLAGS for this package? Is the gawk version too recent for this package and should I compile it on a virtual Ubuntu 18.04 as suggested in the LibreELEC wiki for a build system?

    Would it generally be a advisable thing to do to download the latest 9.2.2 image from LibreELEC.tv and extract the affected compiled package from there and keep going with building the rest according to my settings?

    Okay so first thank you all for this useful and educating information. I have a few questions and I am sorry in advance for the level of detail and the resulting length of this post:

    yes that change TARGET_CPU="x86-64" to TARGET_CPU="silvermont" is correct but
    then find line PROJECT_CFLAGS="-mmmx -msse -msse2 -mfpmath=sse" and change to PROJECT_CFLAGS=""

    Okay so this refers to ~/http://LibreELEC.tv/projects/Generic/options which contains by default TARGET_CPU="x86-64" and TARGET_FEATURES="64bit" (does this actually set -m64 in the CFLAGS?) which from my understanding I should set to TARGET_CPU="ivybridge" but should I blank out TARGET_FEATURES="64bit" to TARGET_FEATURES=""? A little bit further down there is PROJECT_CFLAGS="" by default and then there is also

    if [ -z "$TARGET_CPU" ]; then

    TARGET_CPU=core2

    which can be found in ~/http://LibreELEC.tv/config/arch.x86_64 which seems to be referring to the former and further down there are TARGET_CFLAGS="-march=$TARGET_CPU -m64 -mmmx -msse -msse2 -mfpmath=sse" (should this be blanked out?) and the last line says TARGET_FEATURES+=" mmx sse sse2". Lastly there is ~/http://LibreELEC.tv/config/optimize which is set by default to GCC_OPTIM="-Os" which I could change to "-O2" or if I'm feeling really brave to "-O3", "-Os -O3" (is this syntax correct?) or maybe even "-Ofast", a little bit further down you'll find TARGET_CFLAGS="$TARGET_CFLAGS -fomit-frame-pointer" where $TARGET_CFLAGS is determined by whatever ARCH has been defined earlier if any, otherwise the default would be whatever flags come as standard for the core2 ARCH and/or instruction set.

    Also from what I've seen in the configs and scripts all of these things seem that they could possibly be defined by a command line option. Am I summarizing everthing correctly or what is the correct way to do it if I don't care if the code won't run on any other machine than mine because of the high level of optimizations?

    Final question, is it possible to use Profile Guided Optimization (PGO) as for example Link Time Optimization (LTO) is compatible with most packages (apart from some Intel Graphics Driver stuff perhaps) from my understanding?

    FYI - One can get gcc to share specific flags for hardware like this:

    Code
    gcc -c -Q -march=native --help=target

    According to this I get the following CFLAGS (that is if I was to use them all) for my Ivy Bridge Core i7 3632QM:

    click for super long CFLAGS

    -m128bit-long-double -m64 -m80387 -mabi=sysv -maddress-mode=long -maes

    -malign-data=compat -malign-functions=0 -malign-jumps=0 -malign-loops=0

    -malign-stringops -march=ivybridge -masm=att -mavx -mavx256-split-unaligned-load

    -mavx256-split-unaligned-store -mbranch-cost=3 -mcmodel=default -mcx16 -mf16c

    -mfancy-math-387 -mfp-ret-in-387 -mfpmath=sse -mfsgsbase -mfunction-return=keep

    -mfxsr -mglibc -mhard-float -mieee-fp -mincoming-stack-boundary=0

    -mindirect-branch=keep -minstrument-return=none -mlarge-data-threshold=65536

    -mlong-double-80 -mmmx -mpclmul -mpopcnt -mprefer-vector-width=none

    -mpreferred-stack-boundary=0 -mpush-args -mrdrnd -mred-zone -mregparm=6 -msahf

    -msse -msse2 -msse3 -msse4 -msse4.1 -msse4.2 -mssse3 -mstack-protector-guard=tls

    -mstringop-strategy=default -mstv -mtls-dialect=gnu -mtls-direct-seg-refs

    -mtune=ivybridge -mveclibabi=default -mvzeroupper -mxsave -mxsaveopt

    For more conveniently, put them into a line line:

    Code
    gcc '-###' -E - -march=native 2>&1 | sed -r '/cc1/!d;s/(")|(^.* - )//g'

    This one gives me kind of the same output but takes the approach of what it can't do rather then what it can do in the first one. It also seems to involve some super safe/standard compliant stuff that seems to completely ignore -march=ivybridge and -O3 (using -march=native, -O2 and some PC98 kind of stuff) and yet it still fails to build:

    click for super long CFLAGS

    -march=ivybridge -mmmx -mno-3dnow -msse -msse2 -msse3 -mssse3 -mno-sse4a -mcx16

    -msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-fma

    -mno-fma4 -mno-xop -mno-bmi -mno-sgx -mno-bmi2 -mno-pconfig -mno-wbnoinvd -mno-tbm

    -mavx -mno-avx2 -msse4.2 -msse4.1 -mno-lzcnt -mno-rtm -mno-hle -mrdrnd -mf16c

    -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-avx512f

    -mno-avx512er -mno-avx512cd -mno-avx512pf -mno-prefetchwt1 -mno-clflushopt

    -mno-xsavec -mno-xsaves -mno-avx512dq -mno-avx512bw -mno-avx512vl -mno-avx512ifma

    -mno-avx512vbmi -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero

    -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes

    -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b -mno-waitpkg -mno-cldemote

    -mno-ptwrite --param l1-cache-size=32 --param l1-cache-line-size=64

    --param l2-cache-size=6144 -mtune=ivybridge -fasynchronous-unwind-tables

    -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection

    I also used the Safe_CFLAGS guide and the GCC_optimization guide from the Gentoo Wiki. Whilst this is a completely different distribution I still find it very relatable as it describes the process of building a Linux OS from source and it is much more detailed and better explained than the equivalent on the GCC website.

    I also used the cpuid2cpuflags tool mentioned in the Gentoo Wiki which I had to compile as there is no Ubuntu/Debian .DEB package available as it seems. This turned out to be my first and only successful build on Ubuntu so far:

    cpuid2cpuflags which had aes avx f16c mmx mmxext pclmul popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3 as its output.


    Then I used the standard cpuid tool from Ubuntu:

    cpuid -1 -i which is the internal standard output and apparently it gives more reliable information and it doesn't need sudo.

    Otherwise sudo cpuid -1 -k could be used which gets its information from the kernel is therefore is supposed to be less reliable.

    As for my build system I am using a Lenovo ThinkPad Edge E531 with 8GB RAM and Ubuntu Studio 20.04 devel branch (I know, but still better than M$ I suppose) with GCC 9.3.0-10ubuntu1 and Python 2.7.17 from the pythonispython2 package from the Ubuntu Focal repo. I have also tried 18.04 LTS Server and even the 19.04 mini.iso under Virtualbox but this was painfully slow, consumed a lot more memory (well no surprise with an additional OS to feed I guess) and limited my access to the data.

    Also a good resource are the product specifications and the Datasheet Vol. 1 and Vol. 2.

    Now you might probably ask yourself why I am going so deep into detail and what I am trying to achieve considering it will probably lead to a lot of failed builds, lots of frustration, a lot of time wasted and all that for a fat build and some lousy 10% performance increase (if I'm lucky, might also go the other way) that I don't really need in the first place with my 720p telly and everything working just fine as it is in LE 9.2.2 stable. Well I am absolutely new to this and by doing this I hope to learn how to heavily optimize code, how it is being affected by the different flags and what I can get away with and what I should rather stay away from. I have plans for future projects and I hope to gain some knowledge about building from source in general and now during these crazy Corona curfew days there's not much to do anyway I guess. Also maybe there is someone out there who might find this thread a useful resource./shrug

    Hello,

    I am new to building things from scratch (although I used to be a Gentoo user ages ago) and I was wondering if it would be in principle possible to git clone the master head, replace Kodi Matrix (which would be perfectly fine if it wasn't for this Python dependency error which makes it virtually impossible to install any addon on it why it's disqualified for now) with Leia from the 9.2.2 head, maybe bump some versions like graphics drivers and Mesa, download all the sources and then build like a Master OS/9.2.2 Kodi Frankenstein image from that? Is there anything that I need to be aware of in order to have a chance of succeeding? The scripts look the same to me at first glance and from my understanding they seem to refer to the package.mk which then has all the information about version etc. For example I could have the latest Ubuntu 20.04 development branch as an OS with all the latest updates but install some stone age Kodi on it if I really wanted to do so?

    Ultimately my goal is to learn about building a small JEOS from scratch and create a little commit/fork from it to remove some stuff like the Retrogames parts and add an audiophile music player like Volumio (I now, this apparently doesn't seem to work but surely MPD as an external player should be realistic?) plus some Arch related tweaks like individual CFLAGS, everything more bleeding edge but also more focussed on pure media playback rather than trying to be all bells and whistles.