Upon closer examination, the developer had started a Qmake > Meson migration, but hasn’t finished yet. It currently cannot be built with either build system.
UPDATE:
Meanwhile, I got this mess to compile but the linker fails, and I don’t understand why:
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::rowCount(QModelIndex const&) const [clone .localalias]':
NBArchiveTreeModel.cpp:(.text+0x32): undefined reference to `NBArchiveBranch::branchCount()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x46): undefined reference to `NBArchiveBranch::branchCount()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::parent(QModelIndex const&) const [clone .localalias]':
NBArchiveTreeModel.cpp:(.text+0x88): undefined reference to `NBArchiveBranch::parent()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x9a): undefined reference to `NBArchiveBranch::row()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::data(QModelIndex const&, int) const [clone .localalias]':
NBArchiveTreeModel.cpp:(.text+0x19d): undefined reference to `NBArchiveBranch::data(int) const'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x1c3): undefined reference to `NBArchiveBranch::name()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x26b): undefined reference to `NBArchiveBranch::icon()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x2a3): undefined reference to `NBArchiveBranch::name()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::index(int, int, QModelIndex const&) const':
NBArchiveTreeModel.cpp:(.text+0x42d): undefined reference to `NBArchiveBranch::branchCount()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x4b8): undefined reference to `NBArchiveBranch::branch(int)'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::index(QString, QModelIndex const&) const':
NBArchiveTreeModel.cpp:(.text+0x571): undefined reference to `NBArchiveBranch::branch(QString)'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x59b): undefined reference to `NBArchiveBranch::row()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::hasBranches(QModelIndex const&) const':
NBArchiveTreeModel.cpp:(.text+0x657): undefined reference to `NBArchiveBranch::branchCount()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::nodeName(QModelIndex) const':
NBArchiveTreeModel.cpp:(.text+0x807): undefined reference to `NBArchiveBranch::name()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::nodePath(QModelIndex) const':
NBArchiveTreeModel.cpp:(.text+0x96b): undefined reference to `NBArchiveBranch::parent()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x981): undefined reference to `NBArchiveBranch::row()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0xb60): undefined reference to `NBArchiveBranch::parent()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0xb76): undefined reference to `NBArchiveBranch::row()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0xd57): undefined reference to `NBArchiveBranch::name()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0xdd8): undefined reference to `NBArchiveBranch::name()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::nodeInfo(QModelIndex) const':
NBArchiveTreeModel.cpp:(.text+0xed4): undefined reference to `NBArchiveBranch::data(int) const'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::extract(QString) const':
NBArchiveTreeModel.cpp:(.text+0xfdc): undefined reference to `LibArchiveQt::extractMember(QString)'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::extractAll() const':
NBArchiveTreeModel.cpp:(.text+0x107e): undefined reference to `LibArchiveQt::extractArchive()'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::growTree()':
NBArchiveTreeModel.cpp:(.text+0x1372): undefined reference to `NBArchiveBranch::NBArchiveBranch(QString, QIcon, NBArchiveBranch*)'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x14c2): undefined reference to `LibArchiveQt::listArchive()'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x16d8): undefined reference to `NBArchiveBranch::NBArchiveBranch(QString, QIcon, NBArchiveBranch*)'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x16e4): undefined reference to `NBArchiveBranch::addBranch(NBArchiveBranch*)'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x17b4): undefined reference to `NBArchiveBranch::NBArchiveBranch(QString, QIcon, NBArchiveBranch*)'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x17c0): undefined reference to `NBArchiveBranch::addBranch(NBArchiveBranch*)'
/usr/bin/ld: NBArchiveTreeModel.cpp:(.text+0x184c): undefined reference to `NBArchiveBranch::branch(QString)'
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::NBArchiveTreeModel(QString)':
NBArchiveTreeModel.cpp:(.text+0x1e02): undefined reference to `LibArchiveQt::LibArchiveQt(QString)'
/usr/bin/ld: build/obj-qt5/NBThumbnailer.o: in function `NBThumbnailer::run()':
NBThumbnailer.cpp:(.text+0x2bdb): undefined reference to `LibArchiveQt::LibArchiveQt(QString)'
/usr/bin/ld: NBThumbnailer.cpp:(.text+0x2c2a): undefined reference to `LibArchiveQt::setDestination(QString)'
/usr/bin/ld: NBThumbnailer.cpp:(.text+0x2c79): undefined reference to `LibArchiveQt::extractMember(QString)'
/usr/bin/ld: build/obj-qt5/NBFolderView.o: in function `NBFolderView::extract(QString)':
NBFolderView.cpp:(.text+0x292e): undefined reference to `LibArchiveQt::LibArchiveQt(QString)'
/usr/bin/ld: NBFolderView.cpp:(.text+0x29bd): undefined reference to `LibArchiveQt::setDestination(QString)'
/usr/bin/ld: NBFolderView.cpp:(.text+0x2a21): undefined reference to `LibArchiveQt::extractArchive()'
/usr/bin/ld: build/obj-qt5/NBFolderView.o: in function `NBFolderView::compress(QStringList)':
NBFolderView.cpp:(.text+0x33c4): undefined reference to `LibArchiveQt::LibArchiveQt(QString)'
/usr/bin/ld: NBFolderView.cpp:(.text+0x3403): undefined reference to `LibArchiveQt::setWorkingDir(QString)'
/usr/bin/ld: NBFolderView.cpp:(.text+0x343f): undefined reference to `LibArchiveQt::updateInputFiles(QStringList)'
/usr/bin/ld: NBFolderView.cpp:(.text+0x34a3): undefined reference to `LibArchiveQt::createArchive()'
collect2: error: ld returned 1 exit status
make[1]: *** [Makefile:922: newbreeze3] Error 1
make[1]: Leaving directory '/home/gerd/Downloads/newbreeze/src/NewBreeze/app'
make: *** [Makefile:92: sub-app-make_first-ordered] Error 2
UPDATE:
(Starting a separate post for the sake of readability)
These undefined reference errors indeed come from the attempt to change the build system from CMake to Meson. I am not a C++ or Meson genius but as far as I can interpret that, Meson seems to not like anything defined via the class directive. It expects namespace instead.
But converting all the classes in that code to namespaces appears to be equal to rewriting the majority of the code, and that’s apparently why Marcus Britanicus · GitLab gave up on that midway.
/usr/bin/ld: build/obj-qt5/NBArchiveTreeModel.o: in function `NBArchiveTreeModel::rowCount(QModelIndex const&) const [clone .localalias]':
NBArchiveTreeModel.cpp:(.text+0x32): undefined reference to `NBArchiveBranch::branchCount()'
So what can you do instead? Get the latest release prior to this failed transition attempt which appears to be v3.0.0-rc7 and use that one.
Indeed, this version compiles after having adapted it to some recent changes in libvlc.
So, here are the steps I performed to get NewBreeze running:
Edited PKGBUILD to hard wire it to v3.0.0-rc7 and to include the patch needed for libvlc:
# Maintainer: Solomon Choina <shlomochoina@gmail.com>
# updated by DAC324 <dac324@yahoo.de>
pkgname=NewBreeze-git
pkgver=r372.9db0694
_commit=dc0f42b052f3740037c3503495a3839658b58826
pkgrel=1
pkgdesc="A fast and light-weight file manager based on Qt"
arch=('x86_64')
url="https://gitlab.com/marcusbritanicus/NewBreeze"
license=('GPL')
depends=(
'qt5-base'
'qtermwidget'
'qscintilla-qt5'
'jbig2dec'
'qt5-webengine'
'poppler'
'mpv'
'djvulibre'
'poppler-qt5'
'ffmpegthumbnailer'
'libmediainfo'
'libarchive'
'encfs'
)
makedepends=('git' 'qt5-base' 'qscintilla-qt5' 'qtermwidget') # 'bzr', 'git', 'mercurial' or 'subversion'
provides=("${pkgname%-VCS}")
conflicts=("${pkgname%-VCS}")
options=()
replaces=()
source=("https://gitlab.com/marcusbritanicus/NewBreeze/-/archive/$_commit/NewBreeze-$_commit.zip"
'libvlc.patch')
sha256sums=('SKIP'
'd6720a71e48dd24b2669c2ad6871b154d71e491256eb7a42b9df6f7625dd88bd')
build() {
cd "$srcdir/NewBreeze-$_commit"
patch -p1 -i ../../libvlc.patch
qmake-qt5 PREFIX=/usr DEFINES+=USE_MEDIAINFO
make
}
package() {
cd "$srcdir/NewBreeze-$_commit"
make INSTALL_ROOT="$pkgdir/" install
}
Created libvlc.patch with the following contents and placed it in the same folder as PKGBUILD:
That appears to be a great idea at the first glance but there is one problem: The patch is against v3.0.0-rc7. It might apply to the latest version v3.0.0-rc8 as well but there, it is currently useless as the transition to Meson has not been finished.
As a consequence, v3.0.0-rc8 cannot be compiled anyway.
Things are even more interesting here. It looks like in v3.0.0-rc8, libvlc was dropped in favor of using mpv instead. So, it looks like that patch does not make any sense for v3.0.0-rc8 whatsoever.
Unfortunately, there is no activity from maintainer’s side to this project since a few months (according to GitHub) so I doubt that filing an additional issue there will be of any help.
I could not agree more. For me, it was just curiosity that made me try this package.
But I must admit that I am a bit disappointed, in particular, after having read several reviews for NewBreeze on the net which rated it among the Top 5 file managers for Linux.
Here, the program looks rather ugly, mostly due to column width not being adjustable (see screenshot). Plus, I was not yet able to identify any advantages compared to Thunar or Dolphin or even Double Commander (which is the one I mostly use, because there’s no Total Commander for Linux, unfortunately).