This diff backports Qt6 patches from gentoo. I also removed the qwt lib
dependency. This was already incorrect before and wasn't being used. bat
only need the qwt header for building. Double checked in the qmake pro file.

Since I couldn't get that stupid configure file to locate QT6 properly,
I just removed the check.

I launched both Qt tools and had a bit of a play around. However, I
didn’t have a proper server running.

Last but not least, I’ve switched from http to https.

OK?

Cheers Rafael

diff --git a/sysutils/bacula/Makefile b/sysutils/bacula/Makefile
index fdda6def7c0..94d7ee77250 100644
--- a/sysutils/bacula/Makefile
+++ b/sysutils/bacula/Makefile
@@ -16,9 +16,15 @@ PKGNAME-bat=         bacula-bat-$V
 PKGNAME-mysql=         bacula-mysql-$V
 PKGNAME-pgsql=         bacula-pgsql-$V
 PKGNAME-sqlite3=       bacula-sqlite3-$V
-
+REVISION-bat=          1
+REVISION-sqlite3=      1
+REVISION-main=         0
+REVISION-mysql=                0
+REVISION-pgsql=                0
 REVISION-server=       0
 
+REVISION-server=       1
+
 CATEGORIES=            sysutils
 
 SHARED_LIBS +=  bac                  11.1
@@ -34,7 +40,7 @@ SHARED_LIBS +=  baccats-postgresql   ${BACCATS_LIBV}
 SHARED_LIBS +=  baccats-sqlite3      ${BACCATS_LIBV}
 
 SITES=                 ${SITE_SOURCEFORGE:=bacula/}
-HOMEPAGE=              http://www.bacula.org/
+HOMEPAGE=              https://www.bacula.org/
 
 WANTLIB += c crypto m pthread ssl z ${COMPILER_LIBCXX}
 
@@ -84,7 +90,7 @@ CONFIGURE_ARGS=               --enable-smartalloc \
                        --with-sqlite3
 
 MAKE_FLAGS=            NO_ECHO=
-USE_LIBTOOL=           gnu# base libtool with Qt5 is in the too-hard basket
+USE_LIBTOOL=           gnu# base libtool with Qt6 is in the too-hard basket
 LIBTOOL_FLAGS=         --tag=disable-static
 
 CONFIGURE_ENV=         CONFIG_SITE="${PORTSDIR}/infrastructure/db/config.site" 
\
@@ -118,15 +124,15 @@ WANTLIB-mysql += m mariadb ${COMPILER_LIBCXX}
 LIB_DEPENDS-mysql +=   ${MODGCC4_CPPLIBDEP} \
                        databases/mariadb
 
-WANTLIB-sqlite3 += sqlite3 m pthread z ${COMPILER_LIBCXX}
+WANTLIB-sqlite3 += sqlite3 m pthread ${COMPILER_LIBCXX}
 LIB_DEPENDS-sqlite3=   ${MODGCC4_CPPLIBDEP} \
                        databases/sqlite3
 
-MODULES +=             x11/qt5
+MODULES +=             x11/qt6
 MODQT_DEPS =           No
 
 WANTLIB-bat += ${WANTLIB} bac baccfg bacfind
-WANTLIB-bat += GL Qt5Core Qt5Gui Qt5Widgets qwt
+WANTLIB-bat += GL Qt6Core Qt6Gui Qt6Widgets
 WANTLIB-bat += lib/inotify/inotify
 
 RUN_DEPENDS-bat=       ${RUN_DEPENDS} \
@@ -134,8 +140,7 @@ RUN_DEPENDS-bat=    ${RUN_DEPENDS} \
 LIB_DEPENDS-bat=       ${LIB_DEPENDS} \
                        ${MODQT_LIB_DEPENDS} \
                        devel/libinotify \
-                       sysutils/bacula,-main \
-                       x11/qwt
+                       sysutils/bacula,-main
 
 RUN_DEPENDS-server=    lang/gawk
 
@@ -145,10 +150,8 @@ RUN_DEPENDS-server=        lang/gawk
 CONFIGURE_ARGS +=      --disable-bat
 .else
 CONFIGURE_ARGS +=      --enable-bat
-# something in tray-monitor seems to still depend on this (at least,
-# it complains if junked during the build), though it looks like the dep
-# is supposed to have been removed by now.
-BUILD_DEPENDS +=       x11/qwt
+# Depends on qwt header files only
+BUILD_DEPENDS=         x11/qwt,-common
 .endif
 
 .if !${BUILD_PACKAGES:M-mysql}
diff --git a/sysutils/bacula/patch-src_qt-console_bat_pro 
b/sysutils/bacula/patch-src_qt-console_bat_pro
new file mode 100644
index 00000000000..9762819367e
--- /dev/null
+++ b/sysutils/bacula/patch-src_qt-console_bat_pro
@@ -0,0 +1,14 @@
+Index: src/qt-console/bat.pro
+--- src/qt-console/bat.pro.orig
++++ src/qt-console/bat.pro
+@@ -30,8 +30,8 @@ QMAKE_INSTALL_PROGRAM = $${LIBTOOL_INSTALL} install -m
+ QMAKE_CLEAN += .libs/* bat
+ 
+ qwt {
+-  INCLUDEPATH += 
+-  LIBS        +=  
++  INCLUDEPATH += /usr/local/include
++  LIBS        +=  -lqwt-qt6
+ }
+ 
+ macx {
diff --git a/sysutils/bacula/patches/patch-autoconf_configure_in 
b/sysutils/bacula/patches/patch-autoconf_configure_in
new file mode 100644
index 00000000000..20d2c050d43
--- /dev/null
+++ b/sysutils/bacula/patches/patch-autoconf_configure_in
@@ -0,0 +1,12 @@
+Index: autoconf/configure.in
+--- autoconf/configure.in.orig
++++ autoconf/configure.in
+@@ -456,7 +456,7 @@ dnl look for Qt4
+       BAT_DIR=src/qt-console
+    else
+ dnl look for Qt5
+-     abc=`$PKG_CONFIG Qt5Gui`
++     
abc=`PKG_CONFIG_PATH="/usr/local/lib/qt6/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
 $PKG_CONFIG --exists Qt6Gui`
+      pkg=$?
+      if test $pkg = 0; then
+       BAT_DIR="src/qt-console src/qt-console/tray-monitor"
diff --git a/sysutils/bacula/patches/patch-configure 
b/sysutils/bacula/patches/patch-configure
index 0b47cfe28c9..55765820bb2 100644
--- a/sysutils/bacula/patches/patch-configure
+++ b/sysutils/bacula/patches/patch-configure
@@ -19,7 +19,27 @@ Index: configure
     FD_PLUGIN_DIR="src/plugins/fd"
     DIR_PLUGIN_DIR="src/plugins/dir"
     DLIB="-rpath \$(libdir)"
-@@ -22612,7 +22612,7 @@ if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+@@ -22046,19 +22046,7 @@ fi
+ 
+ BAT_DIR=
+ if test x$support_bat = xyes; then
+-   abc=`$PKG_CONFIG QtGui`
+-   pkg=$?
+-   if test $pkg = 0; then
+-      BAT_DIR=src/qt-console
+-   else
+-     abc=`$PKG_CONFIG Qt5Gui`
+-     pkg=$?
+-     if test $pkg = 0; then
+       BAT_DIR="src/qt-console src/qt-console/tray-monitor"
+-     else
+-      as_fn_error $? "Unable to find either Qt4 or Qt5 installation needed by 
bat" "$LINENO" 5
+-     fi
+-   fi
+ fi
+ 
+ 
+@@ -22612,7 +22600,7 @@ if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
  
  $as_echo "#define HAVE_READLINE 1" >>confdefs.h
  
@@ -28,7 +48,7 @@ Index: configure
                    got_readline="yes"
  
  else
-@@ -22651,7 +22651,7 @@ $as_echo "#define HAVE_READLINE 1" >>confdefs.h
+@@ -22651,7 +22639,7 @@ $as_echo "#define HAVE_READLINE 1" >>confdefs.h
  
                        got_readline="yes"
                        CONS_INC="-I${TOP_DIR}/depkgs/readline"
@@ -37,7 +57,7 @@ Index: configure
                        CONS_LDFLAGS="-L${TOP_DIR}/depkgs/readline"
                        PRTREADLINE_SRC="${TOP_DIR}/depkgs/readline"
  
-@@ -30612,13 +30612,19 @@ if test "${with_lzo+set}" = set; then :
+@@ -30612,13 +30600,19 @@ if test "${with_lzo+set}" = set; then :
             ;;
          yes|*)
             if test -f ${with_lzo}/include/lzo/lzoconf.h; then
@@ -58,7 +78,7 @@ Index: configure
             as_ac_Header=`$as_echo "ac_cv_header_${with_lzo}/lzo/lzoconf.h" | 
$as_tr_sh`
  ac_fn_c_check_header_mongrel "$LINENO" "${with_lzo}/lzo/lzoconf.h" 
"$as_ac_Header" "$ac_includes_default"
  if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-@@ -30638,6 +30644,8 @@ else
+@@ -30638,6 +30632,8 @@ else
  
  fi
  
@@ -67,7 +87,7 @@ Index: configure
  
             ;;
          esac
-@@ -32454,6 +32462,7 @@ netbsd)
+@@ -32454,6 +32450,7 @@ netbsd)
     DISTVER=`uname -a |awk '{print $3}'`
     lld="qd"
     llu="qu"
@@ -75,7 +95,7 @@ Index: configure
     TAPEDRIVE="/dev/nrst0"
     PSCMD="ps -ax -o pid,command"
     PTHREAD_LIB="-pthread"
-@@ -32472,6 +32481,7 @@ openbsd)
+@@ -32472,6 +32469,7 @@ openbsd)
         platforms/openbsd/bacula-fd \
         platforms/openbsd/bacula-sd \
         platforms/openbsd/bacula-dir"
diff --git a/sysutils/bacula/patches/patch-src_qt-console_help_help_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_help_help_cpp
new file mode 100644
index 00000000000..f810be7c5a4
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_help_help_cpp
@@ -0,0 +1,32 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/help/help.cpp
+--- src/qt-console/help/help.cpp.orig
++++ src/qt-console/help/help.cpp
+@@ -35,8 +35,8 @@ Help::Help(const QString &path, const QString &file, Q
+         QWidget(parent)
+ {
+    setAttribute(Qt::WA_DeleteOnClose);     /* Make sure we go away */
+-   setAttribute(Qt::WA_GroupLeader);       /* allow calling from modal dialog 
*/
+-
++   setWindowModality(Qt::NonModal);        /* allow calling from modal dialog 
*/
++  
+    setupUi(this);                          /* create window */
+ 
+    textBrowser->setSearchPaths(QStringList() << HELPDIR << path << 
":/images");
+@@ -57,11 +57,12 @@ void Help::updateTitle()
+ 
+ void Help::displayFile(const QString &file)
+ {
+-   QRegExp rx;
++   QRegularExpression rx;
+    rx.setPattern("/\\.libs");
+    QString path = QApplication::applicationDirPath();
+-   int pos = rx.indexIn(path);
+-   if (pos)
++   QRegularExpressionMatch match = rx.match(path);
++   int pos = match.capturedStart();
++   if (pos != -1)
+       path = path.remove(pos, 6);
+    path += "/help";
+    new Help(path, file);
diff --git a/sysutils/bacula/patches/patch-src_qt-console_job_job_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_job_job_cpp
new file mode 100644
index 00000000000..d950b604c65
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_job_job_cpp
@@ -0,0 +1,77 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/job/job.cpp
+--- src/qt-console/job/job.cpp.orig
++++ src/qt-console/job/job.cpp
+@@ -223,6 +223,7 @@ void Job::storeBwLimit(int val)
+ 
+ void Job::updateRunInfo()
+ {
++   QRegularExpressionMatch match;
+    QString cmd;
+    QStringList results;
+    QStringList lst;
+@@ -256,12 +257,12 @@ void Job::updateRunInfo()
+  *  Bytes=610976
+  *
+  */
+-   QRegExp jobline("(JobId) (\\d+) Job ");
+-   QRegExp itemline("([\\w /]+)[:=]\\s*(.+)");
+-   QRegExp filesline("Files: Examined=([\\d,]+) Backed up=([\\d,])");
+-   QRegExp oldline("Files=([\\d,]+) Bytes=([\\d,]+) Bytes/sec=([\\d,]+) 
Errors=([\\d,]+)");
+-   QRegExp restoreline("Files: Restored=([\\d,]+) Expected=([\\d,]+) 
Completed=([\\d,]+)%");
+-   QRegExp restoreline2("Files Examined=([\\d,]+) Expected Files=([\\d,]+) 
Percent Complete=([\\d,]+)");
++   QRegularExpression jobline("(JobId) (\\d+) Job ");
++   QRegularExpression itemline("([\\w /]+)[:=]\\s*(.+)");
++   QRegularExpression filesline("Files: Examined=([\\d,]+) Backed 
up=([\\d,])");
++   QRegularExpression oldline("Files=([\\d,]+) Bytes=([\\d,]+) 
Bytes/sec=([\\d,]+) Errors=([\\d,]+)");
++   QRegularExpression restoreline("Files: Restored=([\\d,]+) 
Expected=([\\d,]+) Completed=([\\d,]+)%");
++   QRegularExpression restoreline2("Files Examined=([\\d,]+) Expected 
Files=([\\d,]+) Percent Complete=([\\d,]+)");
+ 
+    QString com(",");
+    QString empty("");
+@@ -270,9 +271,10 @@ void Job::updateRunInfo()
+       foreach (QString mline, results) {
+          foreach (QString line, mline.split("\n")) { 
+             line = line.trimmed();
+-            if (oldline.indexIn(line) >= 0) {
++          match = oldline.match(line);
++            if (match.hasMatch()) {
+                if (parseit) {
+-                  lst = oldline.capturedTexts();
++                  lst = match.capturedTexts();
+                   label_JobErrors->setText(lst[4]);
+                   label_Speed->setText(convertBytesSI(lst[3].replace(com, 
empty).toULongLong())+"/s");
+                   label_JobFiles->setText(lst[1]);
+@@ -280,9 +282,9 @@ void Job::updateRunInfo()
+                }
+                continue;
+ 
+-            } else if (filesline.indexIn(line) >= 0) {
++            } else if (match = filesline.match(line); match.hasMatch()) {
+                if (parseit) {
+-                  lst = filesline.capturedTexts(); // Will also catch Backed 
up
++                  lst = match.capturedTexts(); // Will also catch Backed up
+                   label_FilesExamined->setText(lst[1]);
+                }
+                continue;
+@@ -294,15 +296,13 @@ void Job::updateRunInfo()
+ //                  label_FilesExamined->setText(lst[1]); // Can also handle 
Expected and Completed
+ //               }
+ //               continue;
+-
+-            } else if (jobline.indexIn(line) >= 0) {
+-               lst = jobline.capturedTexts();
++            } else if (match = jobline.match(line); match.hasMatch()) {
++               lst = match.capturedTexts();
+                lst.removeFirst();
+ 
+-            } else if (itemline.indexIn(line) >= 0) {
+-               lst = itemline.capturedTexts();
++            } else if (match = itemline.match(line); match.hasMatch()) {
++               lst = match.capturedTexts();
+                lst.removeFirst();
+-
+             } else {
+                if (mainWin->m_miscDebug) 
+                   Pmsg1(0, "bad line=%s\n", line.toUtf8().data());
diff --git a/sysutils/bacula/patches/patch-src_qt-console_joblist_joblist_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_joblist_joblist_cpp
new file mode 100644
index 00000000000..a635b50823b
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_joblist_joblist_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/joblist/joblist.cpp
+--- src/qt-console/joblist/joblist.cpp.orig
++++ src/qt-console/joblist/joblist.cpp
+@@ -66,7 +66,7 @@ JobList::JobList(const QString &mediaName, const QStri
+ 
+    QGridLayout *gridLayout = new QGridLayout(this);
+    gridLayout->setSpacing(6);
+-   gridLayout->setMargin(9);
++   gridLayout->setContentsMargins(9,9,9,9);
+    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+ 
+    m_splitter = new QSplitter(Qt::Vertical, this);
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_mediaedit_mediaedit_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_mediaedit_mediaedit_cpp
new file mode 100644
index 00000000000..849c88eac47
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_mediaedit_mediaedit_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/mediaedit/mediaedit.cpp
+--- src/qt-console/mediaedit/mediaedit.cpp.orig
++++ src/qt-console/mediaedit/mediaedit.cpp
+@@ -82,7 +82,7 @@ MediaEdit::MediaEdit(QTreeWidgetItem *parentWidget, QS
+    }
+ 
+    QString where = " WHERE Media.VolumeName = '" + mediaId + "' ";
+-   if (mediaId.contains(QRegExp("^[0-9]+$"))) {
++   if (mediaId.contains(QRegularExpression("^[0-9]+$"))) {
+       where = " WHERE Media.MediaId=" + mediaId;
+    }
+    query += " FROM Media"
diff --git a/sysutils/bacula/patches/patch-src_qt-console_qstd_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_qstd_cpp
new file mode 100644
index 00000000000..6efd9eeb59f
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_qstd_cpp
@@ -0,0 +1,15 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/qstd.cpp
+--- src/qt-console/qstd.cpp.orig
++++ src/qt-console/qstd.cpp
+@@ -30,7 +30,8 @@ int qstd::promptInt(int base /* =10 */) { /* Usage: in
+     QString numstr;
+     int result;
+     bool ok;
+-    cout << ": " << flush;
++    cout << ": ";
++    cout.flush();
+     while (1) {
+         numstr = cin.readLine();
+         result = numstr.toInt(&ok, base);
diff --git a/sysutils/bacula/patches/patch-src_qt-console_restore_brestore_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_restore_brestore_cpp
new file mode 100644
index 00000000000..15395f6dd7b
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_restore_brestore_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/restore/brestore.cpp
+--- src/qt-console/restore/brestore.cpp.orig
++++ src/qt-console/restore/brestore.cpp
+@@ -162,7 +162,7 @@ void bRestore::displayFiles(int64_t pathid, QString pa
+          if (m_path == "/") {
+             m_path = "";
+          } else {
+-            m_path.remove(QRegExp("[^/]+/$"));
++            m_path.remove(QRegularExpression("[^/]+/$"));
+          }
+ 
+       } else if (path == "/" && m_path == "") {
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_restore_prerestore_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_restore_prerestore_cpp
new file mode 100644
index 00000000000..04503b02bfb
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_restore_prerestore_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/restore/prerestore.cpp
+--- src/qt-console/restore/prerestore.cpp.orig
++++ src/qt-console/restore/prerestore.cpp
+@@ -271,7 +271,7 @@ bool prerestorePage::checkJobIdList()
+          "Press OK to continue?"), QMessageBox::Ok );
+       return false;
+    }
+-   QStringList joblist = line.split(",", QString::SkipEmptyParts);
++   QStringList joblist = line.split(",", Qt::SkipEmptyParts);
+    bool allintokay = true, alljobok = true, allisjob = true;
+    QString jobName(""), clientName("");
+    foreach (QString job, joblist) {
diff --git a/sysutils/bacula/patches/patch-src_qt-console_restore_restore_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_restore_restore_cpp
new file mode 100644
index 00000000000..c8db101b7fb
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_restore_restore_cpp
@@ -0,0 +1,15 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/restore/restore.cpp
+--- src/qt-console/restore/restore.cpp.orig
++++ src/qt-console/restore/restore.cpp
+@@ -109,7 +109,8 @@ void restorePage::fillDirectory()
+       strip_trailing_junk(p);
+       if (*p == '$' || !*p) { continue; }
+       if (first) {
+-         if (m_rx.indexIn(QString(p)) != -1) { continue; }
++       QRegularExpressionMatch rxm = m_rx.match(QString(p));
++       if (rxm.hasMatch()) { continue; }
+          first = false;
+       }
+       l = p;
diff --git a/sysutils/bacula/patches/patch-src_qt-console_restore_restore_h 
b/sysutils/bacula/patches/patch-src_qt-console_restore_restore_h
new file mode 100644
index 00000000000..7b6cb8bd2e2
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_restore_restore_h
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/restore/restore.h
+--- src/qt-console/restore/restore.h.orig
++++ src/qt-console/restore/restore.h
+@@ -125,7 +125,7 @@ private slots: (private)
+    QString m_cwd;
+    QHash<QString, QTreeWidgetItem *> m_dirPaths;
+    QHash<QTreeWidgetItem *,QString> m_dirTreeItems;
+-   QRegExp m_rx;
++   QRegularExpression m_rx;
+    QString m_splitText;
+ };
+ 
diff --git a/sysutils/bacula/patches/patch-src_qt-console_restore_restore_ui 
b/sysutils/bacula/patches/patch-src_qt-console_restore_restore_ui
new file mode 100644
index 00000000000..8fea9fd85a2
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_restore_restore_ui
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/restore/restore.ui
+--- src/qt-console/restore/restore.ui.orig
++++ src/qt-console/restore/restore.ui
+@@ -219,7 +219,7 @@
+      </widget>
+      <widget class="QTreeWidget" name="fileWidget" >
+       <property name="sizePolicy" >
+-       <sizepolicy vsizetype="Expanding" hsizetype="Fixed" >
++       <sizepolicy vsizetype="Expanding" hsizetype="MinimumExpanding" >
+         <horstretch>144</horstretch>
+         <verstretch>1</verstretch>
+        </sizepolicy>
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_restore_restoretree_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_restore_restoretree_cpp
new file mode 100644
index 00000000000..8366c480687
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_restore_restoretree_cpp
@@ -0,0 +1,100 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/restore/restoretree.cpp
+--- src/qt-console/restore/restoretree.cpp.orig
++++ src/qt-console/restore/restoretree.cpp
+@@ -44,7 +44,7 @@ restoreTree::restoreTree() : Pages()
+ 
+    QGridLayout *gridLayout = new QGridLayout(this);
+    gridLayout->setSpacing(6);
+-   gridLayout->setMargin(9);
++   gridLayout->setContentsMargins(9,9,9,9);
+    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
+ 
+    m_splitter = new QSplitter(Qt::Vertical, this);
+@@ -426,12 +426,12 @@ void restoreTree::directoryCurrentItemChanged(QTreeWid
+                tableItem = new QTableWidgetItem(field, 1);
+                /* Possible flags are Qt::ItemFlags flag = 
Qt::ItemIsSelectable | Qt::ItemIsEditablex
+                 *  | Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | 
Qt::ItemIsUserCheckable 
+-                *  | Qt::ItemIsEnabled | Qt::ItemIsTristate; */
++                *  | Qt::ItemIsEnabled | Qt::ItemIsAutoTristate; */
+                tableItem->setForeground(blackBrush);
+                /* Just in case a column ever gets added */
+                if (mainWin->m_sqlDebug) Pmsg1(000, "Column=%d\n", column);
+                if (column == 0) {
+-                  Qt::ItemFlags flag = Qt::ItemIsUserCheckable | 
Qt::ItemIsEnabled | Qt::ItemIsTristate;
++                  Qt::ItemFlags flag = Qt::ItemIsUserCheckable | 
Qt::ItemIsEnabled | Qt::ItemIsAutoTristate;
+                   tableItem->setFlags(flag);
+                   tableItem->setData(Qt::UserRole, QVariant(directory));
+                   fileTable->setItem(row, column, tableItem);
+@@ -537,13 +537,13 @@ void restoreTree::fileCurrentItemChanged(QTableWidgetI
+                      }
+                   }
+                   tableItem = new QTableWidgetItem(field, 1);
+-                  tableItem->setFlags(0);
++                  tableItem->setFlags(Qt::NoItemFlags);
+                   tableItem->setForeground(blackBrush);
+                   tableItem->setData(Qt::UserRole, QVariant(directory));
+                   versionTable->setItem(row, column, tableItem);
+                   if (mainWin->m_sqlDebug) Pmsg1(000, "Column=%d\n", column);
+                   if (column == 0) {
+-                     Qt::ItemFlags flag = Qt::ItemIsUserCheckable | 
Qt::ItemIsEnabled | Qt::ItemIsTristate;
++                     Qt::ItemFlags flag = Qt::ItemIsUserCheckable | 
Qt::ItemIsEnabled | Qt::ItemIsAutoTristate;
+                      tableItem->setFlags(flag);
+                      m_versionCheckStateList.append(Qt::Unchecked);
+                      tableItem->setCheckState(Qt::Unchecked);
+@@ -687,7 +687,7 @@ void restoreTree::populateJobTable()
+                      }
+                   }
+                   tableItem = new QTableWidgetItem(field, 1);
+-                  tableItem->setFlags(0);
++                  tableItem->setFlags(Qt::NoItemFlags);
+                   tableItem->setForeground(blackBrush);
+                   jobTable->setItem(row, column, tableItem);
+                   if (mainWin->m_sqlDebug) Pmsg1(000, "Column=%d\n", column);
+@@ -695,12 +695,12 @@ void restoreTree::populateJobTable()
+                      bool ok;
+                      int purged = fieldlist[purgedIndex].toInt(&ok, 10); 
+                      if (!((ok) && (purged == 1))) {
+-                        Qt::ItemFlags flag = Qt::ItemIsUserCheckable | 
Qt::ItemIsEnabled | Qt::ItemIsTristate;
++                        Qt::ItemFlags flag = Qt::ItemIsUserCheckable | 
Qt::ItemIsEnabled | Qt::ItemIsAutoTristate;
+                         tableItem->setFlags(flag);
+                         tableItem->setCheckState(Qt::Checked);
+                         tableItem->setBackground(Qt::green);
+                      } else {
+-                        tableItem->setFlags(0);
++                        tableItem->setFlags(Qt::NoItemFlags);
+                         tableItem->setCheckState(Qt::Unchecked);
+                      }
+                   }
+@@ -708,12 +708,12 @@ void restoreTree::populateJobTable()
+                }
+             }
+             tableItem = new 
QTableWidgetItem(QIcon(QString::fromUtf8(":images/go-up.png")), "", 1);
+-            tableItem->setFlags(0);
++            tableItem->setFlags(Qt::NoItemFlags);
+             tableItem->setForeground(blackBrush);
+             jobTable->setItem(row, column, tableItem);
+             column++;
+             tableItem = new 
QTableWidgetItem(QIcon(QString::fromUtf8(":images/go-down.png")), "", 1);
+-            tableItem->setFlags(0);
++            tableItem->setFlags(Qt::NoItemFlags);
+             tableItem->setForeground(blackBrush);
+             jobTable->setItem(row, column, tableItem);
+             row++;
+@@ -1404,6 +1404,7 @@ void restoreTree::directorySetIcon(int operation, int 
+  */
+ void restoreTree::restoreButtonPushed()
+ {
++#ifdef tb
+    /* Set progress bars and repaint */
+    prLabel1->setVisible(true);
+    prLabel1->setText(tr("Task 1 of 3"));
+@@ -1622,6 +1623,7 @@ void restoreTree::restoreButtonPushed()
+    prBar2->setVisible(false);
+    prLabel1->setVisible(false);
+    prLabel2->setVisible(false);
++#endif
+ }
+ 
+ int restoreTree::mostRecentVersionfromFullPath(QString &fullPath)
diff --git a/sysutils/bacula/patches/patch-src_qt-console_run_run_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_run_run_cpp
new file mode 100644
index 00000000000..b406dc767d9
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_run_run_cpp
@@ -0,0 +1,29 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/run/run.cpp
+--- src/qt-console/run/run.cpp.orig
++++ src/qt-console/run/run.cpp
+@@ -73,14 +73,13 @@ runPage::runPage(const QString &defJob, const QString 
+ void runPage::init()
+ {
+    QDateTime dt;
+-   QDesktopWidget *desk = QApplication::desktop(); 
+    QRect scrn;
+ 
+    m_name = tr("Run");
+    pgInitialize();
+    setupUi(this);
+    /* Get screen rectangle */
+-   scrn = desk->screenGeometry(desk->primaryScreen());
++   scrn = QGuiApplication::primaryScreen()->availableGeometry();
+    /* Position this window in the middle of the screen */
+    this->move((scrn.width()-this->width())/2, 
(scrn.height()-this->height())/2);
+    QTreeWidgetItem* thisitem = mainWin->getFromHash(this);
+@@ -181,6 +180,6 @@ void runPage::job_name_change(int index)
+       m_console->dir_cmd(cmd, m_console->level_list);
+       levelCombo->clear();
+       levelCombo->addItems(m_console->level_list);
+-      levelCombo->setCurrentIndex(levelCombo->findText(job_defs.level, 0 
/*Qt::MatchExactly*/));
++      levelCombo->setCurrentIndex(levelCombo->findText(job_defs.level, 
Qt::MatchExactly));
+    }
+ }
diff --git a/sysutils/bacula/patches/patch-src_qt-console_run_runcmd_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_run_runcmd_cpp
new file mode 100644
index 00000000000..689fb0a2dbf
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_run_runcmd_cpp
@@ -0,0 +1,25 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/run/runcmd.cpp
+--- src/qt-console/run/runcmd.cpp.orig
++++ src/qt-console/run/runcmd.cpp
+@@ -60,7 +60,7 @@ void runCmdPage::fill()
+ {
+    QString item, val;
+    QStringList items;
+-   QRegExp rx("^.*:\\s*(\\S.*$)");   /* Regex to get value */
++   QRegularExpression rx("^.*:\\s*(\\S.*$)");   /* Regex to get value */
+ 
+    clientCombo->addItems(m_console->client_list);
+    filesetCombo->addItems(m_console->fileset_list);
+@@ -74,8 +74,8 @@ void runCmdPage::fill()
+    item = m_console->msg(m_conn);
+    items = item.split("\n");
+    foreach(item, items) {
+-      rx.indexIn(item);
+-      val = rx.cap(1);
++      QRegularExpressionMatch mrx = rx.match(item);
++      val = mrx.captured(1);
+       Dmsg1(100, "Item=%s\n", item.toUtf8().data());
+       Dmsg1(100, "Value=%s\n", val.toUtf8().data());
+ 
diff --git a/sysutils/bacula/patches/patch-src_qt-console_status_clientstat_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_status_clientstat_cpp
new file mode 100644
index 00000000000..5826f6a27b2
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_status_clientstat_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/status/clientstat.cpp
+--- src/qt-console/status/clientstat.cpp.orig
++++ src/qt-console/status/clientstat.cpp
+@@ -166,7 +166,7 @@ void ClientStat::populateTerminated()
+             field = field.trimmed();  /* strip leading & trailing spaces */
+             p_tableitem = new QTableWidgetItem(field, 1);
+             p_tableitem->setForeground(blackBrush);
+-            p_tableitem->setFlags(0);
++            p_tableitem->setFlags(Qt::NoItemFlags);
+             if (flaglist[column].contains("R"))
+                p_tableitem->setTextAlignment(Qt::AlignRight);
+             if (flaglist[column].contains("C")) {
diff --git a/sysutils/bacula/patches/patch-src_qt-console_status_dirstat_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_status_dirstat_cpp
new file mode 100644
index 00000000000..0af77169de3
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_status_dirstat_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/status/dirstat.cpp
+--- src/qt-console/status/dirstat.cpp.orig
++++ src/qt-console/status/dirstat.cpp
+@@ -157,7 +157,7 @@ void DirStat::populateTerminated()
+             field = field.trimmed();  /* strip leading & trailing spaces */
+             p_tableitem = new QTableWidgetItem(field, 1);
+             p_tableitem->setForeground(blackBrush);
+-            p_tableitem->setFlags(0);
++            p_tableitem->setFlags(Qt::NoItemFlags);
+             if (flaglist[column].contains("R"))
+                p_tableitem->setTextAlignment(Qt::AlignRight);
+             if (flaglist[column].contains("C")) {
diff --git a/sysutils/bacula/patches/patch-src_qt-console_status_storstat_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_status_storstat_cpp
new file mode 100644
index 00000000000..56b11f781a9
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_status_storstat_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/status/storstat.cpp
+--- src/qt-console/status/storstat.cpp.orig
++++ src/qt-console/status/storstat.cpp
+@@ -254,7 +254,7 @@ void StorStat::populateTerminated()
+             field = field.trimmed();  /* strip leading & trailing spaces */
+             p_tableitem = new QTableWidgetItem(field, 1);
+             p_tableitem->setForeground(blackBrush);
+-            p_tableitem->setFlags(0);
++            p_tableitem->setFlags(Qt::NoItemFlags);
+             if (flaglist[column].contains("R"))
+                p_tableitem->setTextAlignment(Qt::AlignRight);
+             if (flaglist[column].contains("C")) {
diff --git a/sysutils/bacula/patches/patch-src_qt-console_storage_content_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_storage_content_cpp
new file mode 100644
index 00000000000..7aa7280349a
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_storage_content_cpp
@@ -0,0 +1,27 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/storage/content.cpp
+--- src/qt-console/storage/content.cpp.orig
++++ src/qt-console/storage/content.cpp
+@@ -190,10 +190,10 @@ void Content::populateContent()
+    tableTray->clearContents();
+ 
+    // take only valid records, TODO: Add D to get drive status
+-   QStringList results = results_all.filter(QRegExp("^[IS]\\|[0-9]+\\|"));
++   QStringList results = 
results_all.filter(QRegularExpression("^[IS]\\|[0-9]+\\|"));
+    tableContent->setRowCount(results.size());
+ 
+-   QStringList io_results = results_all.filter(QRegExp("^I\\|[0-9]+\\|"));
++   QStringList io_results = 
results_all.filter(QRegularExpression("^I\\|[0-9]+\\|"));
+    tableTray->setRowCount(io_results.size());
+ 
+    QString resultline;
+@@ -271,7 +271,7 @@ void Content::populateContent()
+ 
+    tableDrive->verticalHeader()->hide();
+    /* Get count of rows needed (Drives) */
+-   QStringList drives = results_all.filter(QRegExp("^D\\|[0-9]+\\|"));
++   QStringList drives = 
results_all.filter(QRegularExpression("^D\\|[0-9]+\\|"));
+    /* Ensure we have sufficient rows for Drive display */
+    tableDrive->setRowCount(drives.size()); 
+    row = 0;
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_desktop-gui_cdp-main-ui_h
 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_desktop-gui_cdp-main-ui_h
new file mode 100644
index 00000000000..c432bbbcbdc
--- /dev/null
+++ 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_desktop-gui_cdp-main-ui_h
@@ -0,0 +1,23 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/desktop-gui/cdp-main-ui.h
+--- src/qt-console/tray-monitor/desktop-gui/cdp-main-ui.h.orig
++++ src/qt-console/tray-monitor/desktop-gui/cdp-main-ui.h
+@@ -18,7 +18,7 @@
+ */
+ 
+ #ifndef CDPUI_H
+-#define CPDUI_H
++#define CDPUI_H
+ 
+ #include "../tray-monitor/common.h"
+ #include "backupservice.h"
+@@ -31,7 +31,7 @@
+ 
+ #include <QFileSystemModel>
+ #include <QTreeView>
+-#include <QDesktopWidget>
++#include <QScreen>
+ #include <QHeaderView>
+ #include <QListWidget>
+ #include <QPushButton>
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_dirstatus_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_dirstatus_cpp
new file mode 100644
index 00000000000..2a45bfb5d1f
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_dirstatus_cpp
@@ -0,0 +1,28 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/dirstatus.cpp
+--- src/qt-console/tray-monitor/dirstatus.cpp.orig
++++ src/qt-console/tray-monitor/dirstatus.cpp
+@@ -76,9 +76,9 @@ void DIRStatus::taskDone(task *t)
+                TableItemFormatter item(*status.tableRunning, row++);
+                item.setNumericFld(col++, QString(edit_uint64(rjob->JobId, 
ed1)));
+                item.setTextFld(col++, QString(rjob->Job));
+-               item.setJobLevelFld(col++, QString(rjob->JobLevel));
++               item.setJobLevelFld(col++, QString((char *)&rjob->JobLevel));
+                item.setTextFld(col++, QString(rjob->Client));
+-               item.setJobStatusFld(col++, QString(rjob->JobStatus));
++               item.setJobStatusFld(col++, QString((char *)&rjob->JobStatus));
+                item.setTextFld(col++, QString(rjob->Storage));
+                item.setNumericFld(col++, QString(edit_uint64(rjob->JobFiles, 
ed1)));
+                item.setBytesFld(col++, QString(edit_uint64(rjob->JobBytes, 
ed1)));
+@@ -109,8 +109,8 @@ void DIRStatus::taskDone(task *t)
+                TableItemFormatter item(*status.tableTerminated, row++);
+                item.setNumericFld(col++, QString(edit_uint64(ljob->JobId, 
ed1)));
+                item.setTextFld(col++, QString(ljob->Job));
+-               item.setJobLevelFld(col++, QString(ljob->JobLevel));
+-               item.setJobStatusFld(col++, QString(ljob->JobStatus));
++               item.setJobLevelFld(col++, QString((char *)&ljob->JobLevel));
++               item.setJobStatusFld(col++, QString((char *)&ljob->JobStatus));
+                item.setNumericFld(col++, QString(edit_uint64(ljob->JobFiles, 
ed1)));
+                item.setBytesFld(col++, QString(edit_uint64(ljob->JobBytes, 
ed1)));
+                item.setNumericFld(col++, QString(edit_uint64(ljob->Errors, 
ed1)));
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_fdstatus_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_fdstatus_cpp
new file mode 100644
index 00000000000..fb22fb1b2ff
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_fdstatus_cpp
@@ -0,0 +1,25 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/fdstatus.cpp
+--- src/qt-console/tray-monitor/fdstatus.cpp.orig
++++ src/qt-console/tray-monitor/fdstatus.cpp
+@@ -76,7 +76,7 @@ void FDStatus::taskDone(task *t)
+                TableItemFormatter item(*status.tableRunning, row++);
+                item.setNumericFld(col++, QString(edit_uint64(rjob->JobId, 
ed1)));
+                item.setTextFld(col++, QString(rjob->Job));
+-               item.setJobLevelFld(col++, QString(rjob->JobLevel));
++               item.setJobLevelFld(col++, QString((char *)&rjob->JobLevel));
+                item.setNumericFld(col++, QString(edit_uint64(rjob->JobFiles, 
ed1)));
+                item.setBytesFld(col++, QString(edit_uint64(rjob->JobBytes, 
ed1)));
+                item.setNumericFld(col++, QString(edit_uint64(rjob->Errors, 
ed1)));
+@@ -107,8 +107,8 @@ void FDStatus::taskDone(task *t)
+                TableItemFormatter item(*status.tableTerminated, row++);
+                item.setNumericFld(col++, QString(edit_uint64(ljob->JobId, 
ed1)));
+                item.setTextFld(col++, QString(ljob->Job));
+-               item.setJobLevelFld(col++, QString(ljob->JobLevel));
+-               item.setJobStatusFld(col++, QString(ljob->JobStatus));
++               item.setJobLevelFld(col++, QString((char *)&ljob->JobLevel));
++               item.setJobStatusFld(col++, QString((char *)&ljob->JobStatus));
+                item.setNumericFld(col++, QString(edit_uint64(ljob->JobFiles, 
ed1)));
+                item.setBytesFld(col++, QString(edit_uint64(ljob->JobBytes, 
ed1)));
+                item.setNumericFld(col++, QString(edit_uint64(ljob->Errors, 
ed1)));
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_fileselectwizardpage_cpp
 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_fileselectwizardpage_cpp
new file mode 100644
index 00000000000..378168a83b4
--- /dev/null
+++ 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_fileselectwizardpage_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/fileselectwizardpage.cpp
+--- src/qt-console/tray-monitor/fileselectwizardpage.cpp.orig
++++ src/qt-console/tray-monitor/fileselectwizardpage.cpp
+@@ -237,7 +237,7 @@ void FileSelectWizardPage::changeCurrentFolder(const Q
+                     if (m_currentPathStr == "/") {
+                         m_currentPathStr = "";
+                     } else {
+-                        m_currentPathStr.remove(QRegExp("[^/]+/$"));
++                        
m_currentPathStr.remove(QRegularExpression("[^/]+/$"));
+                     }
+ 
+                 } else if (path == "/" && m_currentPathStr == "") {
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_runjob_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_runjob_cpp
new file mode 100644
index 00000000000..edaf7d0dbc1
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_runjob_cpp
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/runjob.cpp
+--- src/qt-console/tray-monitor/runjob.cpp.orig
++++ src/qt-console/tray-monitor/runjob.cpp
+@@ -414,7 +414,7 @@ void TSched::timerEvent(QTimerEvent *event)
+                msgbox.setText(QString("The job \"%1\" will start 
automatically in few seconds...").arg(parser.argv[i]));
+                msgbox.setStandardButtons(QMessageBox::Ok | 
QMessageBox::Ignore);
+                msgbox.setDefaultButton(QMessageBox::Ok);
+-               msgbox.button(QMessageBox::Ok)->animateClick(6000);
++               msgbox.button(QMessageBox::Ok)->animateClick();
+             }
+             switch(msgbox.exec()) {
+                case QMessageBox::Ok:
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_sdstatus_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_sdstatus_cpp
new file mode 100644
index 00000000000..ce8134c78fc
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_sdstatus_cpp
@@ -0,0 +1,25 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/sdstatus.cpp
+--- src/qt-console/tray-monitor/sdstatus.cpp.orig
++++ src/qt-console/tray-monitor/sdstatus.cpp
+@@ -75,7 +75,7 @@ void SDStatus::taskDone(task *t)
+                TableItemFormatter item(*status.tableRunning, row++);
+                item.setNumericFld(col++, QString(edit_uint64(rjob->JobId, 
ed1)));
+                item.setTextFld(col++, QString(rjob->Job));
+-               item.setJobLevelFld(col++, QString(rjob->JobLevel));
++               item.setJobLevelFld(col++, QString((char *)&rjob->JobLevel));
+                item.setTextFld(col++, QString(rjob->Client));
+                item.setTextFld(col++, QString(rjob->Storage));
+                item.setNumericFld(col++, QString(edit_uint64(rjob->JobFiles, 
ed1)));
+@@ -107,8 +107,8 @@ void SDStatus::taskDone(task *t)
+                TableItemFormatter item(*status.tableTerminated, row++);
+                item.setNumericFld(col++, QString(edit_uint64(ljob->JobId, 
ed1)));
+                item.setTextFld(col++, QString(ljob->Job));
+-               item.setJobLevelFld(col++, QString(ljob->JobLevel));
+-               item.setJobStatusFld(col++, QString(ljob->JobStatus));
++               item.setJobLevelFld(col++, QString((char *)&ljob->JobLevel));
++               item.setJobStatusFld(col++, QString((char *)&ljob->JobStatus));
+                item.setNumericFld(col++, QString(edit_uint64(ljob->JobFiles, 
ed1)));
+                item.setBytesFld(col++, QString(edit_uint64(ljob->JobBytes, 
ed1)));
+                item.setNumericFld(col++, QString(edit_uint64(ljob->Errors, 
ed1)));
diff --git a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_task_cpp 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_task_cpp
new file mode 100644
index 00000000000..d9e31dfd5b2
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_task_cpp
@@ -0,0 +1,49 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/task.cpp
+--- src/qt-console/tray-monitor/task.cpp.orig
++++ src/qt-console/tray-monitor/task.cpp
+@@ -913,14 +913,14 @@ bool task::get_client_jobs(const char* client)
+     res->bs->fsend(".bvfs_get_jobs client=%s\n", client);
+     while (get_next_line(res)) {
+         QString line(curline);
+-        QStringList line_lst = line.split(" ", QString::SkipEmptyParts);
++        QStringList line_lst = line.split(" ", Qt::SkipEmptyParts);
+ 
+         model->setItem(row, 0, new QStandardItem(line_lst[0]));
+         
+         model->setItem(row, 1, new QStandardItem(line_lst[3]));
+ 
+         QDateTime date;
+-        date.setTime_t(line_lst[1].toUInt());
++        date.setSecsSinceEpoch(line_lst[1].toUInt());
+         QStandardItem *dateItem = new QStandardItem();
+         dateItem->setData(date, Qt::DisplayRole);
+         model->setItem(row, 3, dateItem);
+@@ -1027,7 +1027,7 @@ bool task::get_job_files(const char* job, uint64_t pat
+     //+ " limit=" + limit + " offset=" + offset ;
+     while (get_next_line(res)) {
+         QString line(curline);
+-        QStringList line_lst = line.split("\t", QString::KeepEmptyParts);
++        QStringList line_lst = line.split("\t", Qt::KeepEmptyParts);
+         if ((line_lst.size() == 6) && line_lst[5] != ".")
+         {
+             DirectoryItem *d = new DirectoryItem();
+@@ -1063,7 +1063,7 @@ bool task::get_job_files(const char* job, uint64_t pat
+ 
+     while (get_next_line(res)) {
+         QString line(curline);
+-        QStringList line_lst = line.split("\t", QString::SkipEmptyParts);
++        QStringList line_lst = line.split("\t", Qt::SkipEmptyParts);
+         if ((line_lst.size() == 6) && line_lst[5] != ".")
+         {
+             FileItem *f = new FileItem();
+@@ -1424,7 +1424,7 @@ QString task::parse_plugins(const QString& jobIds, con
+     while (get_next_line(res)) {
+         QString line(curline);
+         line = line.simplified();
+-        QStringList line_lst = line.split(":", QString::SkipEmptyParts);
++        QStringList line_lst = line.split(":", Qt::SkipEmptyParts);
+ 
+         if (!line_lst.empty() && fieldName.compare(line_lst[0]) == 0) {
+             sl << line_lst[1];
diff --git 
a/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_tray-ui_h 
b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_tray-ui_h
new file mode 100644
index 00000000000..cb1c734a2a7
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_tray-monitor_tray-ui_h
@@ -0,0 +1,23 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/tray-monitor/tray-ui.h
+--- src/qt-console/tray-monitor/tray-ui.h.orig
++++ src/qt-console/tray-monitor/tray-ui.h
+@@ -347,7 +347,7 @@ private slots:
+        }
+        if (dirs.count() > 1) {
+           /* TODO: Set Modal attribute */
+-          QString dir = QInputDialog::getItem(this, _("Select a Director"), 
"Director:", dirs, 0, false, &ok, 0);
++          QString dir = QInputDialog::getItem(this, _("Select a Director"), 
"Director:", dirs, 0, false, &ok, Qt::Widget);
+           if (!ok) {
+              return NULL;
+           }
+@@ -410,7 +410,7 @@ private slots:
+        if (oldnbjobs) {
+           QString q;
+           tray->setIcon(QIcon(":/images/R.png"));
+-          tray->setToolTip(q.sprintf("Bacula Tray Monitor - %d job%s 
running", oldnbjobs, oldnbjobs>1?"s":""));
++          tray->setToolTip(q.asprintf("Bacula Tray Monitor - %d job%s 
running", oldnbjobs, oldnbjobs>1?"s":""));
+           //tray->showMessage();   Can use this function to display a popup
+ 
+        } else {
diff --git a/sysutils/bacula/patches/patch-src_qt-console_util_comboutil_h 
b/sysutils/bacula/patches/patch-src_qt-console_util_comboutil_h
new file mode 100644
index 00000000000..21afc39f8df
--- /dev/null
+++ b/sysutils/bacula/patches/patch-src_qt-console_util_comboutil_h
@@ -0,0 +1,14 @@
+bacula-15.0.3-qt6-gentoo.patch from https://dev.gentoo.org/~tomjbe/distfiles/
+
+Index: src/qt-console/util/comboutil.h
+--- src/qt-console/util/comboutil.h.orig
++++ src/qt-console/util/comboutil.h
+@@ -24,7 +24,7 @@
+ 
+ class QComboBox;
+ class QString;
+-class QStringList;
++//class QStringList;
+ 
+ /* selects value val on combo, if exists */
+ void comboSel(QComboBox *combo, const QString &val);


Reply via email to