Problem compiling libreelec-usb-sd-creator-git

Hi, I would love to make use of libreELEC usb sd creator here. I found it in the repos but could not complete the build. Any ideas ? . . should I be looking at a Flatpack?
Brian

Preparing...
Checking libreelec-usb-sd-creator-git dependencies...
Resolving dependencies...
Checking inter-conflicts...
Cloning libreelec-usb-sd-creator-git build files...
Generating libreelec-usb-sd-creator-git information...
Download of dos2unix (7.5.6-1) started
Download of dos2unix (7.5.6-1) finished
Checking keyring...
Checking integrity...
Loading package files...
Checking file conflicts...
Checking available disc space...
Installing dos2unix (7.5.6-1)...
Running post-transaction hooks...
Arming ConditionNeedsUpdate...
Refreshing PackageKit...

Building libreelec-usb-sd-creator-git...
==> Making package: libreelec-usb-sd-creator-git r1.d5922e2-3 (Thu 16 Jul 2026 09:14:26)
==> Checking runtime dependencies...
==> Checking buildtime dependencies...
==> Retrieving sources...
  -> Cloning usb-sd-creator git repo...
Cloning into bare repository '/var/tmp/pamac-build-brm/libreelec-usb-sd-creator-git/usb-sd-creator'...
==> Validating source files with md5sums...
    usb-sd-creator ... Skipped
==> Removing existing $srcdir/ directory...
==> Extracting sources...
  -> Creating working copy of usb-sd-creator git repo...
Cloning into 'usb-sd-creator'...
done.
==> Starting prepare()...
dos2unix: converting file creator.pro to Unix format...
patching file creator.pro
Hunk #1 succeeded at 159 with fuzz 2 (offset -6 lines).
==> Starting pkgver()...
==> Updated version: libreelec-usb-sd-creator-git r332.ab7b3c5-1
==> Starting build()...
Info: creating stash file /.qmake.stash
Updating './lang/lang-ar_SA.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-ast_ES.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-bg_BG.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-cs_CZ.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-da_DK.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-de_DE.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-el_GR.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-en_GB.qm'...
    Generated 0 translation(s) (0 finished and 0 unfinished)
    Ignored 68 untranslated source text(s)
Updating './lang/lang-es_ES.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-fa_IR.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-fi_FI.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-fr_FR.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-he_IL.qm'...
    Generated 45 translation(s) (45 finished and 0 unfinished)
    Ignored 23 untranslated source text(s)
Updating './lang/lang-hr_HR.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-hu_HU.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-it_IT.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-ko_KR.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-lt_LT.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-nl_NL.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-no_NO.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-pl_PL.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-pt_BR.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-pt_PT.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-ru_RU.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-sk_SK.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-sl_SI.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-sr_RS.qm'...
    Generated 63 translation(s) (63 finished and 0 unfinished)
    Ignored 5 untranslated source text(s)
Updating './lang/lang-sv_SE.qm'...
    Generated 68 translation(s) (68 finished and 0 unfinished)
Updating './lang/lang-tr_TR.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-uk_UA.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Updating './lang/lang-zh_CN.qm'...
    Generated 67 translation(s) (67 finished and 0 unfinished)
    Ignored 1 untranslated source text(s)
Info: creating stash file /var/tmp/pamac-build-brm/libreelec-usb-sd-creator-git/src/usb-sd-creator/.qmake.stash
uic creator.ui
compiling main.cpp
compiling diskwriter.cpp
compiling jsonparser.cpp
compiling movingaverage.cpp
compiling downloadmanager.cpp
In file included from /usr/include/qt6/QtCore/qstring.h:15,
                 from /usr/include/qt6/QtCore/qobject.h:12,
                 from /usr/include/qt6/QtWidgets/qwidget.h:10,
                 from /usr/include/qt6/QtWidgets/qdialog.h:9,
                 from /usr/include/qt6/QtWidgets/QDialog:1,
                 from creator.h:24,
                 from main.cpp:20:
/usr/include/qt6/QtCore/qchar.h:48:31: warning: defining ‘QChar’, which previously failed to be complete in a SFINAE context [-Wsfinae-incomplete=]
   48 | class QT6_ONLY(Q_CORE_EXPORT) QChar {
      |                               ^~~~~
In file included from /usr/include/c++/16/unordered_map:44,
                 from /usr/include/c++/16/functional:80,
                 from /usr/include/qt6/QtCore/qcomparehelpers.h:29,
                 from /usr/include/qt6/QtCore/qcompare.h:661,
                 from /usr/include/qt6/QtCore/qnamespace.h:14,
                 from /usr/include/qt6/QtCore/qbytearray.h:10,
                 from /usr/include/qt6/QtCore/qcryptographichash.h:10,
                 from /usr/include/qt6/QtCore/QCryptographicHash:1,
                 from creator.h:23:
/usr/include/c++/16/bits/range_access.h:325:24: note: here.  Use ‘-Wsfinae-incomplete=2’ for a diagnostic at that point
  325 |     -> decltype(__cont.data())
      |                 ~~~~~~~^~~~
diskwriter.cpp: In member function ‘virtual void DiskWriter::writeGzCompressedImage(const QString&, const QString&, const QString&)’:
diskwriter.cpp:56:81: warning: unused parameter ‘device’ [-Wunused-parameter]
   56 | void DiskWriter::writeGzCompressedImage(const QString &filename, const QString& device, const QString& deviceText)
      |                                                                  ~~~~~~~~~~~~~~~^~~~~~
diskwriter.cpp: In member function ‘virtual void DiskWriter::writeZipCompressedImage(const QString&, const QString&, const QString&)’:
diskwriter.cpp:124:82: warning: unused parameter ‘device’ [-Wunused-parameter]
  124 | void DiskWriter::writeZipCompressedImage(const QString &filename, const QString& device, const QString& deviceText)
      |                                                                   ~~~~~~~~~~~~~~~^~~~~~
compiling translator.cpp
compiling diskwriter_unix.cpp
compiling deviceenumerator_unix.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:97:41: error: ‘BUILD_VERSION’ was not declared in this scope; did you mean ‘QT_VERSION’?
   97 |     qDebug() << "App data: Version:" << BUILD_VERSION << ", Build date:" << BUILD_DATE;
      |                                         ^~~~~~~~~~~~~
      |                                         QT_VERSION
main.cpp:97:77: error: ‘BUILD_DATE’ was not declared in this scope
   97 |     qDebug() << "App data: Version:" << BUILD_VERSION << ", Build date:" << BUILD_DATE;
      |                                                                             ^~~~~~~~~~
make: *** [Makefile:1204: .generated_files/main.o] Error 1
make: *** Waiting for unfinished jobs....
==> ERROR: A failure occurred in build().
    Aborting...

The error, and a fix for it, is in the comments on the AUR (en) - libreelec-usb-sd-creator-git page:

What is the best way of using that code ?

Update: I found the git repo in /var/tmp.

Cut and Pasting this code into the build file results in

Failed to generate libreelec-usb-sd-creator-git information

How to get past this ? Can anyone see what might cause this in the above code?

Is this a patch? It looks very similar the the build file - when I use the Add/Remove software tool on my desktop. Can I substitute the build file with the above ?

Mod edit: Consecutive posts merged.

I’m not sure of the correct way to merge a diff file into a PKGBUILD. I’ve only ever had to make changes to a PKGBUILD from a diff file a couple of times, and both times I just manually edited the relevant lines in the PKGBUILD (i.e. replace the - lines with the + lines). It has been a long time since I last did so.

So, you could clone the git repository:

git clone https://aur.archlinux.org/libreelec-usb-sd-creator-git.git

Then open the PKGBUILD file in an editor (eg kate)

cd libreelec-usb-sd-creator-git
kate PKGBUILD

Make the changes to the PKGBUILD file, save them, and then run the following command from within the same directory as the PKGBUILD to build it:

makepkg -srci
makepkg --help
❯ makepkg --help
makepkg (pacman) 7.1.0

Make packages compatible for use with pacman

Usage: /usr/bin/makepkg [options]

Options:
  -A, --ignorearch Ignore incomplete arch field in PKGBUILD
  -c, --clean      Clean up work files after build
  -C, --cleanbuild Remove $srcdir/ dir before building the package
  -d, --nodeps     Skip all dependency checks
  -D, --dir <dir>  Change to directory <dir> before processing PKGBUILD
  -e, --noextract  Do not extract source files (use existing $srcdir/ dir)
  -f, --force      Overwrite existing package
  -g, --geninteg   Generate integrity checks for source files
  -h, --help       Show this help message and exit
  -i, --install    Install package after successful build
  -L, --log        Log package build process
  -m, --nocolor    Disable colorized output messages
  -o, --nobuild    Download and extract files only
  -p <file>        Use an alternate build script (instead of 'PKGBUILD')
  -r, --rmdeps     Remove installed dependencies after a successful build
  -R, --repackage  Repackage contents of the package without rebuilding
  -s, --syncdeps   Install missing dependencies with pacman
  -S, --source     Generate a source-only tarball without downloaded sources
  -V, --version    Show version information and exit
  --allsource      Generate a source-only tarball including downloaded sources
  --check          Run the check() function in the PKGBUILD
  --config <file>  Use an alternate config file (instead of '/etc/makepkg.conf')
  --holdver        Do not update VCS sources
  --key <key>      Specify a key to use for gpg signing instead of the default
  --noarchive      Do not create package archive
  --nocheck        Do not run the check() function in the PKGBUILD
  --noprepare      Do not run the prepare() function in the PKGBUILD
  --nosign         Do not create a signature for the package
  --packagelist    Only list package filepaths that would be produced
  --printsrcinfo   Print the generated SRCINFO and exit
  --sign           Sign the resulting package with gpg
  --skipchecksums  Do not verify checksums of the source files
  --skipinteg      Do not perform any verification checks on source files
  --skippgpcheck   Do not verify source files with PGP signatures
  --verifysource   Download source files (if needed) and perform integrity checks

These options can be passed to pacman:

  --asdeps         Install packages as non-explicitly installed
  --needed         Do not reinstall the targets that are already up to date
  --noconfirm      Do not ask for confirmation when resolving dependencies
  --noprogressbar  Do not show a progress bar when downloading files

If -p is not specified, makepkg will look for 'PKGBUILD'

Thanks very much for your input. The program is up and running. However it was worked out by Chatgpt. Should I post the output here? It is in the format of a small How-to. Not sure if cut and past will work though. I am sure their are aspects of your solution in this method as well.

Are we allowed to post Chatgpt methods?
Brian

Quality information. No AI generated posts - Forum Rules

In a community oriented software project like Manjaro, we want to provide quality information. Therefore we expect everybody to verify their proposals or make it clear that it’s a guess. That’s why a post generated by an AI and not verified by the poster has to be considered inaccurate…

If you verified a proposal from an AI yourself then you can also write the post in your own words.

However, you are welcome to summarise in your own words the steps you took to fix the issue, and post the relevant commands.

Personally, I find my eyes glaze over whenever I encounter AI-generated summaries/how-tos, and I usually just move on to the next topic where I will hopefully encounter a post written by an actual living human. The format of AI-generated instructions reminds me too much of the countless mind-numbing hours I spent looking at PowerPoint presentations in meetings & training sessions back when I was in the workforce.

I just prefer interacting with real people.

I’d think using meld would be a good way of doing those merges? although I’ve only used it for .pacnews up to now.

Hi @brm

I’m afraid “LibreELEC” is not available in the official Manjaro repositories, so you certainly didn’t find it there, as you suggest.

This note is intended to clarify your understanding.

You appear to have built the package (presumably via the AUR), which is not a Manjaro repository – in fact, it’s not a repository at all.

The AUR is not officially supported by Manjaro (or Arch).

That you seem to be oblivious to the relationship between the AUR and Manjaro strongly suggests that you should familiarise yourself with the following important article:

I hope this brings you up to speed. :wink:

Regards.

Point taken - it is not from the Manjaro repos.

The takeaway is that you understand the potential risks of using the AUR, and that Manjaro offers no official Support.

Beyond that, there is also the recommendation for AUR users to switch to either the Unstable or Testing branches, both of which are closer to Arch Stable than Manjaro Stable. Much more was explained in the linked article.

Please don’t assume it was simply correcting a mistake.

Being fully aware of your responsibilities when using the AUR (and the consequences of using it) is important for all users to help them avoid getting into trouble further down the track.

Regards.