Hello community,

here is the log from the commit of package unetbootin for openSUSE:Factory 
checked in at 2019-04-23 14:39:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/unetbootin (Old)
 and      /work/SRC/openSUSE:Factory/.unetbootin.new.5536 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "unetbootin"

Tue Apr 23 14:39:21 2019 rev:9 rq:697038 version:0.0.661

Changes:
--------
--- /work/SRC/openSUSE:Factory/unetbootin/unetbootin.changes    2018-07-18 
22:53:06.247127199 +0200
+++ /work/SRC/openSUSE:Factory/.unetbootin.new.5536/unetbootin.changes  
2019-04-23 14:39:23.521589341 +0200
@@ -1,0 +2,18 @@
+Mon Apr  1 17:14:08 UTC 2019 - Christophe Giboudeaux <christo...@krop.fr>
+- Add Qt5 port patches from https://github.com/unetbootin/unetbootin/pull/137:
+  * 0001-rought-Qt5-port.patch
+  * 0002-comment-out-all-sources-that-require-FTP-LIST.patch
+  * 0003-fix-distrolst.cpp.patch
+  * 0004-don-t-wait-until-the-file-is-downloaded-fully-before.patch
+- Refresh unetbootin-suse.patch:
+  * add Leap 15.0 and 15.1
+  * Update the download URLs and the distro description
+- Refresh unetbootin-locate-usb-devices.diff
+- Run spec-cleaner
+
+-------------------------------------------------------------------
+Mon Oct 15 00:51:35 UTC 2018 - s...@suspend.net
+
+- update to revision 661
+
+-------------------------------------------------------------------

Old:
----
  unetbootin-source-657.tar.gz

New:
----
  0001-rought-Qt5-port.patch
  0002-comment-out-all-sources-that-require-FTP-LIST.patch
  0003-fix-distrolst.cpp.patch
  0004-don-t-wait-until-the-file-is-downloaded-fully-before.patch
  unetbootin-source-661.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ unetbootin.spec ++++++
--- /var/tmp/diff_new_pack.Q6XYdR/_old  2019-04-23 14:39:24.293589750 +0200
+++ /var/tmp/diff_new_pack.Q6XYdR/_new  2019-04-23 14:39:24.297589751 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package unetbootin
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -12,43 +12,49 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
-%define rev 657
-
+%define rev 661
 Name:           unetbootin
+Version:        0.0.%{rev}
+Release:        0
 Summary:        Universal Netboot Installer
 License:        GPL-2.0-or-later
 Group:          System/GUI/Other
-Version:        0.0.%{rev}
-Release:        0
-Url:            https://sourceforge.net/projects/unetbootin/
+URL:            https://sourceforge.net/projects/unetbootin/
 Source:         %{name}-source-%{rev}.tar.gz
-Patch0:         %{name}-suse.patch
-Patch1:         %{name}-locate-usb-devices.diff
-Patch2:         %{name}-desktop.patch
-BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+Patch0:         0001-rought-Qt5-port.patch
+Patch1:         0002-comment-out-all-sources-that-require-FTP-LIST.patch
+Patch2:         0003-fix-distrolst.cpp.patch
+Patch3:         0004-don-t-wait-until-the-file-is-downloaded-fully-before.patch
+Patch4:         %{name}-suse.patch
+Patch5:         %{name}-locate-usb-devices.diff
+Patch6:         %{name}-desktop.patch
 BuildRequires:  gcc-c++
-BuildRequires:  libqt4-devel
-# Requires syslinux, and that only exists for the following arches:
-ExclusiveArch:  %ix86 x86_64
+BuildRequires:  cmake(Qt5Core)
+BuildRequires:  cmake(Qt5Gui)
+BuildRequires:  cmake(Qt5LinguistTools)
+BuildRequires:  cmake(Qt5Network)
+BuildRequires:  cmake(Qt5Widgets)
+Requires:       mtools
+Requires:       syslinux
+Requires:       udev
+Requires:       util-linux
+Requires:       xdg-utils
 Requires(post): hicolor-icon-theme
 Requires(post): update-desktop-files
 Requires(postun): hicolor-icon-theme
 Requires(postun): update-desktop-files
-Requires:       mtools
+# Requires syslinux, and that only exists for the following arches:
+ExclusiveArch:  %{ix86} x86_64
 # Remove when p7zip-full is in all products
-%if 0%{suse_version} > 1500
+%if 0%{?suse_version} > 1500
 Requires:       p7zip-full
 %else
 Requires:       p7zip
 %endif
-Requires:       syslinux
-Requires:       udev
-Requires:       util-linux
-Requires:       xdg-utils
 
 %description
 UNetbootin allows for the installation of various Linux/BSD distributions
@@ -58,16 +64,20 @@
 
 %prep
 %setup -q -c -n %{name}
-%patch0
-%patch1
-%patch2
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6
 # rpmlint: wrong-file-end-of-line-encoding
 sed -i 's/\r$//' README.TXT
 
 %build
-lupdate unetbootin.pro
-lrelease unetbootin.pro
-qmake QMAKE_CXXFLAGS="%optflags" "DEFINES += NOSTATIC" "RESOURCES -= 
unetbootin.qrc"
+lupdate-qt5 unetbootin.pro
+lrelease-qt5 unetbootin.pro
+%qmake5 "DEFINES += NOSTATIC" "RESOURCES -= unetbootin.qrc"
 make %{?_smp_mflags}
 
 %install
@@ -76,7 +86,7 @@
 install -D -m 0644 unetbootin_*.qm %{buildroot}%{_datadir}/%{name}
 
 for i in 16 22 24 32 48 64 128 192 256 ; do
-  install -D -m 0644 unetbootin_"$i".png 
%buildroot%{_datadir}/icons/hicolor/"$i"x"$i"/apps/%{name}.png;
+  install -D -m 0644 unetbootin_"$i".png 
%{buildroot}%{_datadir}/icons/hicolor/"$i"x"$i"/apps/%{name}.png;
 done
 
 install -D -m 0644 %{name}.desktop 
%{buildroot}%{_datadir}/applications/%{name}.desktop
@@ -90,7 +100,6 @@
 %icon_theme_cache_postun
 
 %files
-%defattr(-,root,root)
 %doc README.TXT
 %{_sbindir}/*
 %{_datadir}/%{name}

++++++ 0001-rought-Qt5-port.patch ++++++
>From d8266c51317d279caf8f6a0f595dc2642014b12b Mon Sep 17 00:00:00 2001
From: Valeriy Malov <jazzv...@gmail.com>
Date: Fri, 28 Jul 2017 19:45:04 +0300
Subject: [PATCH 1/4] rought Qt5 port this breaks unetbootin::lstFtpDirFiles
 due to https://bugreports.qt.io/ browse/QTBUG-26294

---
 main.cpp       |  24 ++---
 unetbootin.cpp | 194 ++++++++++++----------------------
 unetbootin.h   |  12 +--
 unetbootin.pro |   1 +
 4 files changed, 84 insertions(+), 147 deletions(-)

diff --git a/main.cpp b/main.cpp
index 486b75b..1ef7304 100644
--- a/main.cpp
+++ b/main.cpp
@@ -9,6 +9,8 @@ This program is distributed in the hope that it will be useful, 
but WITHOUT ANY
 
 #include "unetbootin.h"
 
+#include <QMessageBox>
+
 #ifdef Q_OS_WIN32
 
 void configsysUndo(QString uninstPathL)
@@ -380,18 +382,16 @@ int main(int argc, char **argv)
                uninstmsgb.setIcon(QMessageBox::Information);
                uninstmsgb.setWindowTitle(uninstaller::tr("%1 
Uninstaller").arg(UNETBOOTINB));
                uninstmsgb.setText(uninstaller::tr("%1 is currently installed. 
Remove the existing version?").arg(UNETBOOTINB));
-               uninstmsgb.setStandardButtons(QMessageBox::Ok | 
QMessageBox::Cancel);
-               switch (uninstmsgb.exec())
-               {
-                       case QMessageBox::Ok:
-                       {
-                               ubnUninst();
-                       }
-                       case QMessageBox::Cancel:
-                               break;
-                       default:
-                               break;
-               }
+               uninstmsgb.setStandardButtons(QMessageBox::Ok | 
QMessageBox::Cancel);
+               switch (uninstmsgb.exec())
+               {
+               case QMessageBox::Ok:
+                       ubnUninst();
+                       break;
+               case QMessageBox::Cancel:
+               default:
+                       break;
+               }
                return 0;
        }
 #endif
diff --git a/unetbootin.cpp b/unetbootin.cpp
index 3982f61..0767fc8 100644
--- a/unetbootin.cpp
+++ b/unetbootin.cpp
@@ -9,6 +9,10 @@ This program is distributed in the hope that it will be 
useful, but WITHOUT ANY
 
 #include "unetbootin.h"
 
+#include <QMessageBox>
+#include <QFileDialog>
+#include <QProgressDialog>
+
 static const QList<QRegExp> ignoredtypesbothRL = QList<QRegExp>()
 << QRegExp("isolinux.bin$", Qt::CaseInsensitive)
 << QRegExp("isolinux.cfg$", Qt::CaseInsensitive)
@@ -101,8 +105,8 @@ void callexternappT::run()
 void callexternappWriteToStdinT::run()
 {
        QProcess lnexternapp;
-    lnexternapp.start("\"" + execFile + "\" " + execParm);
-       lnexternapp.write(writeToStdin.toAscii().data());
+       lnexternapp.start("\"" + execFile + "\" " + execParm);
+       lnexternapp.write(writeToStdin.toLatin1().data());
        lnexternapp.closeWriteChannel();
        lnexternapp.waitForFinished(-1);
        retnValu = QString(lnexternapp.readAll());
@@ -133,16 +137,6 @@ void copyfileT::run()
        emit finished();
 }
 
-ubngetrequestheader::ubngetrequestheader(QString urhost, QString urpath)
-{
-       this->setRequest("GET", urpath);
-       this->setValue("HOST", urhost);
-       this->setValue("User-Agent", "UNetbootin/1.1.1");
-//     this->setValue("User-Agent", "Wget/1.10.2");
-       this->setValue("Accept", "*/*");
-       this->setValue("Connection", "Keep-Alive");
-}
-
 randtmpfile::randtmpfile(QString rfpath, QString rfextn)
 {
        QString basefn = getrandfilename(rfpath, rfextn);
@@ -159,7 +153,7 @@ QString randtmpfile::getrandfilename(QString rfpath, 
QString rfextn)
        }
        return basefn;
 }
-
+/*
 void nDirListStor::sAppendSelfUrlInfoList(QUrlInfo curDirUrl)
 {
        if (curDirUrl.isValid() && curDirUrl.isReadable() && curDirUrl.isFile() 
&& curDirUrl.size() > nMinFileSizeBytes && curDirUrl.size() < nMaxFileSizeBytes)
@@ -171,7 +165,7 @@ void nDirListStor::sAppendSelfUrlInfoList(QUrlInfo 
curDirUrl)
                nDirFileListSL.append(curDirUrl.name());
        }
 }
-
+*/
 unetbootin::unetbootin(QWidget *parent)
        : QWidget(parent)
 {
@@ -471,18 +465,20 @@ bool unetbootin::ubninitialize(QList<QPair<QString, 
QString> > oppairs)
                {
                        if (psecond.contains("listdistros", 
Qt::CaseInsensitive))
                        {
+                               QTextStream out(stdout);
                                for (int i = 1; i < 
this->distroselect->count(); ++i)
                                {
-                                       printf("%s\n", 
this->distroselect->itemText(i).toAscii().constData());
+                                       out << this->distroselect->itemText(i);
                                }
                                QApplication::exit();
                                exit(0);
                        }
                        else if (psecond.contains("listversions", 
Qt::CaseInsensitive))
                        {
+                               QTextStream out(stdout);
                                for (int i = 0; i < this->dverselect->count(); 
++i)
                                {
-                                       printf("%s\n", 
this->dverselect->itemText(i).toAscii().constData());
+                                       out << this->dverselect->itemText(i);
                                }
                                QApplication::exit();
                                exit(0);
@@ -1098,7 +1094,7 @@ bool unetbootin::checkifoutofspace(QString destindir)
        bool outofspace = false;
        #ifdef Q_OS_UNIX
        struct statfs diskstatS;
-       if (!statfs(QString(destindir+"/.").toAscii(), &diskstatS))
+       if (!statfs(QString(destindir+"/.").toLatin1(), &diskstatS))
        {
                if (diskstatS.f_bavail * diskstatS.f_bfree < 1024)
                        outofspace = true;
@@ -2620,31 +2616,41 @@ void unetbootin::downloadfile(QString fileurl, QString 
targetfile, int minsize=5
        {
                rmFile(targetfile);
        }
-       QUrl dlurl(fileurl);
-       bool isftp = false;
-       if (dlurl.scheme() == "ftp")
-       {
-               isftp = true;
-       }
-       QHttp dlhttp;
-       QFtp dlftp;
+       QNetworkAccessManager manager;
+       QNetworkRequest dlurl(fileurl);
+       QNetworkReply * networkReply = manager.get(dlurl);
+
        QEventLoop dlewait;
        pdesc5->setText("");
        pdesc4->setText(tr("Downloading files, please wait..."));
        pdesc3->setText(tr("<b>Source:</b> <a 
href=\"%1\">%1</a>").arg(fileurl));
        pdesc2->setText(tr("<b>Destination:</b> %1").arg(targetfile));
        pdesc1->setText(tr("<b>Downloaded:</b> 0 bytes"));
-       QString realupath = QString(fileurl).remove(0, 
fileurl.indexOf(QString("://%1").arg(dlurl.host())) + 
QString("://%1").arg(dlurl.host()).length());
-       if (isftp)
+
+       QUrl redirectUrl;
+       bool downloadFailed = false;
+
+       connect(networkReply, &QNetworkReply::finished, &dlewait, 
&QEventLoop::quit);
+       connect(networkReply, &QNetworkReply::downloadProgress, this, 
&unetbootin::dlprogressupdate64);
+       connect(networkReply, &QNetworkReply::redirected, [&redirectUrl](const 
QUrl &url){ redirectUrl = url; });
+       connect(networkReply, static_cast<void 
(QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
+                       [&downloadFailed](QNetworkReply::NetworkError){ 
downloadFailed = true; });
+
+       dlewait.exec();
+
+       if (!redirectUrl.isEmpty())
        {
-               connect(&dlftp, SIGNAL(done(bool)), &dlewait, SLOT(quit()));
-               connect(&dlftp, SIGNAL(dataTransferProgress(qint64, qint64)), 
this, SLOT(dlprogressupdate64(qint64, qint64)));
+               downloadfile(redirectUrl.toString(), targetfile, minsize);
+               return;
        }
-       else
+
+       if (downloadFailed)
        {
-               connect(&dlhttp, SIGNAL(done(bool)), &dlewait, SLOT(quit()));
-               connect(&dlhttp, SIGNAL(dataReadProgress(int, int)), this, 
SLOT(dlprogressupdate(int, int)));
+               QString errorStr = networkReply->errorString();
+               showDownloadFailedScreen(fileurl);
+               return;
        }
+
        QFile dloutfile;
        if (installType == tr("USB Drive"))
        {
@@ -2654,83 +2660,17 @@ void unetbootin::downloadfile(QString fileurl, QString 
targetfile, int minsize=5
        {
                dloutfile.setFileName(targetfile);
        }
+
        dloutfile.open(QIODevice::WriteOnly);
-       if (isftp)
-       {
-               dlftp.connectToHost(dlurl.host());
-               dlftp.login();
-               dlftp.get(realupath, &dloutfile);
-       }
-       else
-       {
-               dlhttp.setHost(dlurl.host());
-               ubngetrequestheader dlrequest(dlurl.host(), realupath);
-               dlhttp.request(dlrequest, 0, &dloutfile);
-       }
-       dlewait.exec();
-       if (!isftp)
-       {
-               QHttpResponseHeader dlresponse(dlhttp.lastResponse());
-               int dlrstatus = dlresponse.statusCode();
-               if (dlrstatus >= 300 && dlrstatus < 400 && 
dlresponse.hasKey("Location"))
-               {
-                       dloutfile.close();
-                       rmFile(dloutfile);
-                       downloadfile(dlresponse.value("Location"), targetfile, 
minsize);
-                       return;
-               }
-       }
-       if (isftp)
-       {
-               dlftp.close();
-       }
-       else
-       {
-               dlhttp.close();
-       }
+       dloutfile.write(networkReply->readAll());
+       networkReply->close();
+       networkReply->deleteLater();
        dloutfile.close();
        if (installType == tr("USB Drive"))
        {
                dloutfile.rename(targetfile);
        }
-    if (QFile(targetfile).size() <= 4096)
-    {
-        QString redirectTargetURL;
-        QFile seeRedirect(targetfile);
-        seeRedirect.open(QIODevice::ReadOnly | QIODevice::Text);
-        QTextStream seeRedirectTextStream(&seeRedirect);
-        while (!seeRedirectTextStream.atEnd())
-        {
-            QString curline = seeRedirectTextStream.readLine();
-            if (curline.contains("content=\"0;url="))
-            {
-                int urlstartidx = curline.indexOf("content=\"0;url=") + 
QString("content=\"0;url=").size();
-                redirectTargetURL = curline.mid(urlstartidx);
-                if (redirectTargetURL.contains("\""))
-                {
-                    redirectTargetURL = 
redirectTargetURL.left(redirectTargetURL.indexOf("\""));
-                }
-                break;
-            }
-            if (curline.contains("content='0;url="))
-            {
-                int urlstartidx = curline.indexOf("content='0;url=") + 
QString("content='0;url=").size();
-                redirectTargetURL = curline.mid(urlstartidx);
-                if (redirectTargetURL.contains("'"))
-                {
-                    redirectTargetURL = 
redirectTargetURL.left(redirectTargetURL.indexOf("'"));
-                }
-                break;
-            }
-        }
-        seeRedirect.close();
-        if (!redirectTargetURL.isEmpty())
-        {
-            rmFile(targetfile);
-            downloadfile(redirectTargetURL, targetfile, minsize);
-            return;
-        }
-    }
+
        if (QFile(targetfile).size() < minsize)
        {
                // download failed
@@ -2812,31 +2752,33 @@ void unetbootin::cpprogressupdate64(qint64 dlbytes, 
qint64 maxbytes)
  }
 }
 
-QString unetbootin::downloadpagecontents(QString pageurl)
+QString unetbootin::downloadpagecontents(QUrl pageurl)
 {
-       QUrl pgurl(pageurl);
-       QHttp pghttp;
+       QNetworkAccessManager _manager;
+       QNetworkRequest dlurl(pageurl);
+       QNetworkReply * networkReply = _manager.get(dlurl);
        QEventLoop pgwait;
-       connect(&pghttp, SIGNAL(done(bool)), &pgwait, SLOT(quit()));
-       pghttp.setHost(pgurl.host());
-       QString realpgupath = QString(pageurl).remove(0, 
pageurl.indexOf(QString("://%1").arg(pgurl.host())) + 
QString("://%1").arg(pgurl.host()).length());
-       ubngetrequestheader pgrequest(pgurl.host(), realpgupath);
-       pghttp.request(pgrequest);
+       QUrl redirectUrl;
+       connect(networkReply, &QNetworkReply::finished, &pgwait, 
&QEventLoop::quit);
+       connect(networkReply, &QNetworkReply::redirected, [&redirectUrl](const 
QUrl &url){ redirectUrl = url; });
+
        pgwait.exec();
-       QHttpResponseHeader pgresponse(pghttp.lastResponse());
-       int pgrstatus = pgresponse.statusCode();
-       if (pgrstatus >= 300 && pgrstatus < 400 && 
pgresponse.hasKey("Location"))
-       {
-               return downloadpagecontents(pgresponse.value("Location"));
-       }
-       else
+
+       if (!redirectUrl.isEmpty())
        {
-               return QString(pghttp.readAll());
+               return downloadpagecontents(redirectUrl);
        }
+
+       QString result = networkReply->readAll();
+       networkReply->close();
+       networkReply->deleteLater();
+       return result;
 }
 
 QStringList unetbootin::lstFtpDirFiles(QString ldfDirStringUrl, int 
ldfMinSize, int ldfMaxSize)
 {
+       return {};
+/*
        QUrl ldfDirUrl(ldfDirStringUrl);
        QFtp ldfFtp;
        QEventLoop ldfWait;
@@ -2851,14 +2793,14 @@ QStringList unetbootin::lstFtpDirFiles(QString 
ldfDirStringUrl, int ldfMinSize,
        ldfFtp.list(ldfDirUrl.path());
        ldfWait.exec();
        ldfFtp.close();
-       return nDirListStorL.nDirFileListSL;
+       return nDirListStorL.nDirFileListSL;*/
 }
 
 QStringList unetbootin::lstHttpDirFiles(QString ldfDirStringUrl)
 {
        QStringList relativefilelinksL;
        QStringList relativelinksLPreFilter =
-               downloadpagecontents(ldfDirStringUrl)
+               downloadpagecontents(QUrl(ldfDirStringUrl))
                .replace(">", ">\n")
                .replace("<", "\n<")
                .split("\n");
@@ -3218,11 +3160,11 @@ int unetbootin::letterToNumber(QChar lettertoconvert)
 {
        if (lettertoconvert.isLower())
        {
-               return static_cast<int>(lettertoconvert.toAscii() - 'a');
+               return static_cast<int>(lettertoconvert.toLatin1() - 'a');
        }
        if (lettertoconvert.isUpper())
        {
-               return static_cast<int>(lettertoconvert.toAscii() - 'A');
+               return static_cast<int>(lettertoconvert.toLatin1() - 'A');
        }
        else
        {
@@ -3724,7 +3666,7 @@ void unetbootin::writegrub2cfg()
        QString menulstxt = QString(
        "%9\n\n"
 #ifndef NODEFAULTBOOT
-       "\nmenuentry \""UNETBOOTINB"\" {\n"
+       "\nmenuentry \"" UNETBOOTINB"\" {\n"
        "\tset root=%8\n"
        "\t%1 %2 %3 %4\n"
        "\t%5 %6 %7\n"
@@ -3845,7 +3787,7 @@ void unetbootin::runinsthdd()
        "timeout 10\n"
        #endif
 #ifndef NODEFAULTBOOT
-       "\ntitle "UNETBOOTINB"\n"
+       "\ntitle " UNETBOOTINB"\n"
        #ifdef Q_OS_WIN32
        "find --set-root %3\n"
        #endif
@@ -4343,7 +4285,7 @@ void unetbootin::fininstall()
        sdesc4->setText(QString("<b>%1 
%2</b>").arg(sdesc4->text()).arg(trcurrent));
        if (installType == tr("Hard Disk"))
        {
-               rebootmsgtext->setText(tr("After rebooting, select the 
"UNETBOOTINB" menu entry to boot.%1").arg(postinstmsg));
+               rebootmsgtext->setText(tr("After rebooting, select the " 
UNETBOOTINB" menu entry to boot.%1").arg(postinstmsg));
        }
        if (installType == tr("USB Drive"))
        {
diff --git a/unetbootin.h b/unetbootin.h
index ea607c8..8cb45d8 100644
--- a/unetbootin.h
+++ b/unetbootin.h
@@ -152,19 +152,13 @@ signals:
        void finished();
 };
 
-class ubngetrequestheader : public QHttpRequestHeader
-{
-public:
-       ubngetrequestheader(QString urhost, QString urpath);
-};
-
 class randtmpfile : public QFile
 {
 public:
        randtmpfile(QString rfpath, QString rfextn);
        static QString getrandfilename(QString rfpath, QString rfextn);
 };
-
+/*
 class nDirListStor : public QObject
 {
        Q_OBJECT
@@ -178,7 +172,7 @@ public:
 public slots:
        void sAppendSelfUrlInfoList(QUrlInfo curDirUrl);
 };
-
+*/
 class unetbootin : public QWidget, private Ui::unetbootinui
 {
        Q_OBJECT
@@ -280,7 +274,7 @@ public:
        QString searchforgrub2includesfile(QString includesfile, QString 
archivefile, QStringList archivefileconts, QStringList visitedincludes);
        QPair<QPair<QStringList, QStringList>, QPair<QStringList, QStringList> 
> searchforgrub2includesfileL(QString includesfile, QString archivefile, 
QStringList archivefileconts, QStringList visitedincludes);
        void downloadfile(QString fileurl, QString targetfile, int minsize);
-       QString downloadpagecontents(QString pageurl);
+       QString downloadpagecontents(QUrl pageurl);
        QStringList lstFtpDirFiles(QString ldfDirStringUrl, int ldfMinSize, int 
ldfMaxSize);
        QStringList lstHttpDirFiles(QString ldfDirStringUrl);
        QStringList lstNetDirFiles(QString ldfDirStringUrl, int ldfMinSize, int 
ldfMaxSize);
diff --git a/unetbootin.pro b/unetbootin.pro
index 3d4cece..f3af65f 100644
--- a/unetbootin.pro
+++ b/unetbootin.pro
@@ -14,6 +14,7 @@ SOURCES += main.cpp \
     distrovercust.cpp
 QT += core \
     gui \
+    widgets \
     network
 ICON = unetbootin.icns
 TRANSLATIONS += unetbootin.ts \
-- 
2.21.0

++++++ 0002-comment-out-all-sources-that-require-FTP-LIST.patch ++++++
>From e5ae50b8336b115611478af0bf036c3c7b76274d Mon Sep 17 00:00:00 2001
From: Valeriy Malov <jazzv...@gmail.com>
Date: Fri, 28 Jul 2017 19:45:57 +0300
Subject: [PATCH 2/4] comment out all sources that require FTP LIST except for
 DrWeb, which seems to be no longer a public ftp

---
 distrolst.cpp | 56 ++++++++++++++++++------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/distrolst.cpp b/distrolst.cpp
index 034f07a..b4829f4 100644
--- a/distrolst.cpp
+++ b/distrolst.cpp
@@ -278,14 +278,14 @@ if (nameDistro == "CloneZilla")
 if (nameDistro == "Damn Small Linux")
 {
        downloadfile(fileFilterNetDir(QStringList() << 
-       "ftp://ibiblio.org/pub/Linux/distributions/damnsmall/current/"; << 
+//     "ftp://ibiblio.org/pub/Linux/distributions/damnsmall/current/"; <<
        "http://ibiblio.org/pub/Linux/distributions/damnsmall/current/"; << 
-       "ftp://gd.tuwien.ac.at/opsys/linux/damnsmall/current/"; << 
+//     "ftp://gd.tuwien.ac.at/opsys/linux/damnsmall/current/"; <<
        "http://gd.tuwien.ac.at/opsys/linux/damnsmall/current/"; << 
-       "ftp://ftp.is.co.za/linux/distributions/damnsmall/current/"; << 
+//     "ftp://ftp.is.co.za/linux/distributions/damnsmall/current/"; <<
 //     "ftp://ftp.belnet.be/packages/damnsmalllinux/current/"; << 
        "http://ftp.belnet.be/packages/damnsmalllinux/current/"; << 
-       "ftp://ftp.heanet.ie/mirrors/damnsmalllinux.org/current/"; << 
+//     "ftp://ftp.heanet.ie/mirrors/damnsmalllinux.org/current/"; <<
        "http://ftp.heanet.ie/mirrors/damnsmalllinux.org/current/";
 //     
"ftp://ftp.oss.cc.gatech.edu/pub/linux/distributions/damnsmall/current/"; << 
 //     
"http://ftp.oss.cc.gatech.edu/pub/linux/distributions/damnsmall/current/"; <<
@@ -333,9 +333,9 @@ if (nameDistro == "Debian")
 if (nameDistro == "Dreamlinux")
 {
        downloadfile(fileFilterNetDir(QStringList() << 
-       "ftp://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/"; << 
+//     "ftp://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/"; <<
        "http://ftp.nluug.nl/pub/os/Linux/distr/dreamlinux/stable/"; << 
-       "ftp://ftp.surfnet.nl/pub/os/Linux/distr/dreamlinux/stable/"; << 
+//     "ftp://ftp.surfnet.nl/pub/os/Linux/distr/dreamlinux/stable/"; <<
        "http://ftp.surfnet.nl/pub/os/Linux/distr/dreamlinux/stable/";
        , 524288000, 1048576000, QList<QRegExp>() << 
        QRegExp(".iso$", Qt::CaseInsensitive) << 
@@ -467,16 +467,16 @@ if (nameDistro == "Frugalware")
        QStringList frugalwaremirrorsL = QStringList() <<
 //     
"ftp://ftp5.frugalware.org/packages/frugalware/pub/frugalware-"+relname+"/boot/";
 <<
 //     
"http://www5.frugalware.org/packages/frugalware/pub/frugalware-"+relname+"/boot/";
 <<
-       
"ftp://ftp8.frugalware.org/distro/frugalware/frugalware-"+relname+"/boot/"; <<
+//     
"ftp://ftp8.frugalware.org/distro/frugalware/frugalware-"+relname+"/boot/"; <<
        
"http://www8.frugalware.org/distro/frugalware/frugalware-"+relname+"/boot/"; <<
-       
"ftp://ftp10.frugalware.org/pub/linux/frugalware/frugalware-"+relname+"/boot/"; 
<<
+//     
"ftp://ftp10.frugalware.org/pub/linux/frugalware/frugalware-"+relname+"/boot/"; 
<<
        
"http://www10.frugalware.org/pub/linux/frugalware/frugalware-"+relname+"/boot/"; 
<<
-       
"ftp://ftp12.frugalware.org/mirrors/ftp.frugalware.org/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
+//     
"ftp://ftp12.frugalware.org/mirrors/ftp.frugalware.org/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
        
"http://www12.frugalware.org/mirrors/ftp.frugalware.org/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
-       
"ftp://ftp4.frugalware.org/pub/linux/distributions/frugalware/frugalware-"+relname+"/boot/";
 <<
+//     
"ftp://ftp4.frugalware.org/pub/linux/distributions/frugalware/frugalware-"+relname+"/boot/";
 <<
        
"http://www4.frugalware.org/pub/linux/distributions/frugalware/frugalware-"+relname+"/boot/";
 <<
-       
"ftp://ftp2.frugalware.org/frugalware/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
-       
"ftp://ftp3.frugalware.org/mirrors/frugalware/pub/frugalware/frugalware-"+relname+"/boot/";;
+//     
"ftp://ftp2.frugalware.org/frugalware/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
+//     
"ftp://ftp3.frugalware.org/mirrors/frugalware/pub/frugalware/frugalware-"+relname+"/boot/";;
        downloadfile(fileFilterNetDir(frugalwaremirrorsL
        , 307200, 104857600, QList<QRegExp>() << 
        QRegExp("vmlinuz", Qt::CaseInsensitive) <<
@@ -551,7 +551,7 @@ if (nameDistro == "Kaspersky Rescue Disk")
                downloadfile(fileFilterNetDir(QStringList() <<
                "http://devbuilds.kaspersky-labs.com/devbuilds/RescueDisk/"; <<
                "http://ftp.kaspersky.com/devbuilds/RescueDisk/"; <<
-               "ftp://ftp.kaspersky.com/devbuilds/RescueDisk/";
+//             "ftp://ftp.kaspersky.com/devbuilds/RescueDisk/";
                , 9288000, 1048576000, QList<QRegExp>() <<
                QRegExp(".iso$", Qt::CaseInsensitive) <<
                QRegExp("k\\S{0,}.iso$", Qt::CaseInsensitive)
@@ -562,7 +562,7 @@ if (nameDistro == "Kaspersky Rescue Disk")
                downloadfile(fileFilterNetDir(QStringList() <<
                "http://devbuilds.kaspersky-labs.com/devbuilds/RescueDisk10/"; <<
                "http://ftp.kaspersky.com/devbuilds/RescueDisk10/"; <<
-               "ftp://ftp.kaspersky.com/devbuilds/RescueDisk10/";
+//             "ftp://ftp.kaspersky.com/devbuilds/RescueDisk10/";
                , 9288000, 1048576000, QList<QRegExp>() <<
                QRegExp(".iso$", Qt::CaseInsensitive) <<
                QRegExp("k\\S{0,}.iso$", Qt::CaseInsensitive)
@@ -624,11 +624,11 @@ if (nameDistro == "Linux Mint")
        
QString("http://mirror.sov.uk.goscomb.net/linuxmint.com/stable/%1/";).arg(relname)
 <<
        
QString("http://mirror.csclub.uwaterloo.ca/linuxmint/stable/%1/";).arg(relname) 
<<
        
QString("http://mirror.aarnet.edu.au/pub/linuxmint/stable/%1/";).arg(relname) <<
-       
QString("http://mirror.waia.asn.au/pub/linux/linuxmint/linuxmint-isos/linuxmint.com/stable/%1/";).arg(relname)
 <<
-       
QString("ftp://mirrors.secution.com/linuxmint.com/stable/%1/";).arg(relname) <<
-       
QString("ftp://ftp.is.co.za/mirror/linuxmint.com/stable/%1/";).arg(relname) <<
-       
QString("ftp://ftp.tpnet.pl/pub/linux/linuxmint/isos/stable/%1/";).arg(relname) 
<<
-       
QString("ftp://mirror.unej.ac.id/pub/iso/linux-mint/stable/%1/";).arg(relname)
+       
QString("http://mirror.waia.asn.au/pub/linux/linuxmint/linuxmint-isos/linuxmint.com/stable/%1/";).arg(relname)
 //<<
+//     
QString("ftp://mirrors.secution.com/linuxmint.com/stable/%1/";).arg(relname) <<
+//     
QString("ftp://ftp.is.co.za/mirror/linuxmint.com/stable/%1/";).arg(relname) <<
+//     
QString("ftp://ftp.tpnet.pl/pub/linux/linuxmint/isos/stable/%1/";).arg(relname) 
<<
+//     
QString("ftp://mirror.unej.ac.id/pub/iso/linux-mint/stable/%1/";).arg(relname)
        , 61440000, 1048576000, mintregex), isotmpf);
        extractiso(isotmpf);
 }
@@ -675,11 +675,11 @@ if (nameDistro == "MEPIS")
        if (relname == "antix")
        {
                downloadfile(fileFilterNetDir(QStringList() << 
-               
"ftp://ftp.ibiblio.org/pub/linux/distributions/mepis/released/antix/"; << 
+//             
"ftp://ftp.ibiblio.org/pub/linux/distributions/mepis/released/antix/"; <<
                
"http://distro.ibiblio.org/pub/linux/distributions/mepis/released/antix/"; <<
-               
"ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/mepis/released/antix/"; 
<< 
+//             
"ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/mepis/released/antix/"; <<
                "http://ftp.uwsg.indiana.edu/linux/mepis/released/antix/"; <<
-               "ftp://ftp.ussg.iu.edu/pub/linux/mepis/released/antix/"; <<
+//             "ftp://ftp.ussg.iu.edu/pub/linux/mepis/released/antix/"; <<
                "http://mirror.cs.vt.edu/pub/MEPIS/antix/";
                , 61440000, 1048576000, QList<QRegExp>() << 
                QRegExp("antiX\\S{0,}.iso$", Qt::CaseInsensitive) << 
@@ -689,11 +689,11 @@ if (nameDistro == "MEPIS")
        else
        {
                downloadfile(fileFilterNetDir(QStringList() << 
-               "ftp://ftp.ibiblio.org/pub/linux/distributions/mepis/released/"; 
<< 
+//             "ftp://ftp.ibiblio.org/pub/linux/distributions/mepis/released/"; 
<<
                
"http://distro.ibiblio.org/pub/linux/distributions/mepis/released/"; <<
-               
"ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/mepis/released/"; << 
+//             
"ftp://ftp-linux.cc.gatech.edu/pub/linux/distributions/mepis/released/"; <<
                "http://ftp.uwsg.indiana.edu/linux/mepis/released/"; <<
-               "ftp://ftp.ussg.iu.edu/pub/linux/mepis/released/"; <<
+//             "ftp://ftp.ussg.iu.edu/pub/linux/mepis/released/"; <<
                "http://mirror.cs.vt.edu/pub/MEPIS/";
                , 61440000, 1048576000, QList<QRegExp>() << 
                QRegExp("MEPIS\\S{0,}.iso$", Qt::CaseInsensitive) << 
@@ -805,9 +805,9 @@ if (nameDistro == "PCLinuxOS")
 if (nameDistro == "Puppy Linux")
 {
        downloadfile(fileFilterNetDir(QStringList() << 
-       "ftp://ibiblio.org/pub/linux/distributions/puppylinux/"; << 
+//     "ftp://ibiblio.org/pub/linux/distributions/puppylinux/"; <<
        "http://distro.ibiblio.org/pub/linux/distributions/puppylinux/"; <<
-       "ftp://ftp.nluug.nl/ftp/pub/os/Linux/distr/puppylinux/"; << 
+//     "ftp://ftp.nluug.nl/ftp/pub/os/Linux/distr/puppylinux/"; <<
        "http://ftp.nluug.nl/ftp/pub/os/Linux/distr/puppylinux/";
        , 61440000, 1048576000, QList<QRegExp>() << 
        QRegExp(".iso$", Qt::CaseInsensitive) << 
@@ -1018,7 +1018,7 @@ if (nameDistro == "Ubuntu")
                        downloadfile(fileFilterNetDir(QStringList() << 
                        "http://releases.ubuntu.com/"+relname << 
                        "http://releases.ubuntu.com/releases/"+relname <<
-                       "ftp://releases.ubuntu.com/releases/.pool/"; << 
+//                     "ftp://releases.ubuntu.com/releases/.pool/"; <<
                        "http://mirrors.gigenet.com/ubuntu/"+relname <<
                        
"http://mirrors.easynews.com/linux/ubuntu-releases/"+relname <<
                        
"http://www.gtlib.gatech.edu/pub/ubuntu-releases/"+relname <<
-- 
2.21.0

++++++ 0003-fix-distrolst.cpp.patch ++++++
>From 879f90846abf164f1521c23e494bda986653a1e4 Mon Sep 17 00:00:00 2001
From: Valeriy Malov <jazzv...@gmail.com>
Date: Fri, 28 Jul 2017 21:33:28 +0300
Subject: [PATCH 3/4] fix distrolst.cpp fix listdistros/listversions output
 findbrokendownloads.rb doesn't need root, use default ruby use default CONFIG
 to allow debug builds

---
 distrolst.cpp          |  6 +++---
 findbrokendownloads.rb | 13 ++++---------
 unetbootin.cpp         | 25 +++++++++++++++++--------
 unetbootin.pro         |  3 +--
 4 files changed, 25 insertions(+), 22 deletions(-)

diff --git a/distrolst.cpp b/distrolst.cpp
index b4829f4..3b45583 100644
--- a/distrolst.cpp
+++ b/distrolst.cpp
@@ -474,7 +474,7 @@ if (nameDistro == "Frugalware")
 //     
"ftp://ftp12.frugalware.org/mirrors/ftp.frugalware.org/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
        
"http://www12.frugalware.org/mirrors/ftp.frugalware.org/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
 //     
"ftp://ftp4.frugalware.org/pub/linux/distributions/frugalware/frugalware-"+relname+"/boot/";
 <<
-       
"http://www4.frugalware.org/pub/linux/distributions/frugalware/frugalware-"+relname+"/boot/";
 <<
+       
"http://www4.frugalware.org/pub/linux/distributions/frugalware/frugalware-"+relname+"/boot/";;
 //<<
 //     
"ftp://ftp2.frugalware.org/frugalware/pub/frugalware/frugalware-"+relname+"/boot/";
 <<
 //     
"ftp://ftp3.frugalware.org/mirrors/frugalware/pub/frugalware/frugalware-"+relname+"/boot/";;
        downloadfile(fileFilterNetDir(frugalwaremirrorsL
@@ -550,7 +550,7 @@ if (nameDistro == "Kaspersky Rescue Disk")
        {
                downloadfile(fileFilterNetDir(QStringList() <<
                "http://devbuilds.kaspersky-labs.com/devbuilds/RescueDisk/"; <<
-               "http://ftp.kaspersky.com/devbuilds/RescueDisk/"; <<
+               "http://ftp.kaspersky.com/devbuilds/RescueDisk/"; //<<
 //             "ftp://ftp.kaspersky.com/devbuilds/RescueDisk/";
                , 9288000, 1048576000, QList<QRegExp>() <<
                QRegExp(".iso$", Qt::CaseInsensitive) <<
@@ -561,7 +561,7 @@ if (nameDistro == "Kaspersky Rescue Disk")
        {
                downloadfile(fileFilterNetDir(QStringList() <<
                "http://devbuilds.kaspersky-labs.com/devbuilds/RescueDisk10/"; <<
-               "http://ftp.kaspersky.com/devbuilds/RescueDisk10/"; <<
+               "http://ftp.kaspersky.com/devbuilds/RescueDisk10/"; //<<
 //             "ftp://ftp.kaspersky.com/devbuilds/RescueDisk10/";
                , 9288000, 1048576000, QList<QRegExp>() <<
                QRegExp(".iso$", Qt::CaseInsensitive) <<
diff --git a/unetbootin.cpp b/unetbootin.cpp
index 0767fc8..6ffd6fc 100644
--- a/unetbootin.cpp
+++ b/unetbootin.cpp
@@ -12,6 +12,7 @@ This program is distributed in the hope that it will be 
useful, but WITHOUT ANY
 #include <QMessageBox>
 #include <QFileDialog>
 #include <QProgressDialog>
+#include <QDebug>
 
 static const QList<QRegExp> ignoredtypesbothRL = QList<QRegExp>()
 << QRegExp("isolinux.bin$", Qt::CaseInsensitive)
@@ -468,8 +469,9 @@ bool unetbootin::ubninitialize(QList<QPair<QString, 
QString> > oppairs)
                                QTextStream out(stdout);
                                for (int i = 1; i < 
this->distroselect->count(); ++i)
                                {
-                                       out << this->distroselect->itemText(i);
+                                       out << this->distroselect->itemText(i) 
<< endl;
                                }
+                               out.flush();
                                QApplication::exit();
                                exit(0);
                        }
@@ -478,8 +480,9 @@ bool unetbootin::ubninitialize(QList<QPair<QString, 
QString> > oppairs)
                                QTextStream out(stdout);
                                for (int i = 0; i < this->dverselect->count(); 
++i)
                                {
-                                       out << this->dverselect->itemText(i);
+                                       out << this->dverselect->itemText(i) << 
endl;
                                }
+                               out.flush();
                                QApplication::exit();
                                exit(0);
                        }
@@ -2629,12 +2632,13 @@ void unetbootin::downloadfile(QString fileurl, QString 
targetfile, int minsize=5
 
        QUrl redirectUrl;
        bool downloadFailed = false;
+       QNetworkReply::NetworkError errorCode;
 
        connect(networkReply, &QNetworkReply::finished, &dlewait, 
&QEventLoop::quit);
        connect(networkReply, &QNetworkReply::downloadProgress, this, 
&unetbootin::dlprogressupdate64);
-       connect(networkReply, &QNetworkReply::redirected, [&redirectUrl](const 
QUrl &url){ redirectUrl = url; });
+       connect(networkReply, &QNetworkReply::redirected, [&](const QUrl &url){ 
redirectUrl = url; });
        connect(networkReply, static_cast<void 
(QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
-                       [&downloadFailed](QNetworkReply::NetworkError){ 
downloadFailed = true; });
+                       [&](QNetworkReply::NetworkError code){ downloadFailed = 
true; errorCode = code; });
 
        dlewait.exec();
 
@@ -2646,7 +2650,8 @@ void unetbootin::downloadfile(QString fileurl, QString 
targetfile, int minsize=5
 
        if (downloadFailed)
        {
-               QString errorStr = networkReply->errorString();
+               qDebug() << networkReply->errorString();
+               qDebug() << "Error code: " << errorCode;
                showDownloadFailedScreen(fileurl);
                return;
        }
@@ -2685,7 +2690,8 @@ void unetbootin::downloadfile(QString fileurl, QString 
targetfile, int minsize=5
        if (testingDownload)
        {
                // Note that this only tests that the first download succeeds
-               printf("exitstatus:downloadcomplete\n");
+               QTextStream out(stdout);
+               out << "exitstatus:downloadcomplete" << endl << flush;
                QApplication::exit();
                exit(0);
        }
@@ -2701,7 +2707,8 @@ void unetbootin::showDownloadFailedScreen(const QString 
&fileurl)
        this->downloadFailed = true;
        if (exitOnCompletion)
        {
-               printf("exitstatus:downloadfailed\n");
+               QTextStream out(stdout);
+               out << "exitstatus:downloadfailed" << endl << flush;
                QApplication::exit();
                exit(0);
        }
@@ -2777,6 +2784,7 @@ QString unetbootin::downloadpagecontents(QUrl pageurl)
 
 QStringList unetbootin::lstFtpDirFiles(QString ldfDirStringUrl, int 
ldfMinSize, int ldfMaxSize)
 {
+       qDebug() << "lstFtpDirFiles called for " << ldfDirStringUrl;
        return {};
 /*
        QUrl ldfDirUrl(ldfDirStringUrl);
@@ -4299,7 +4307,8 @@ void unetbootin::fininstall()
     finishLogging();
        if (exitOnCompletion)
        {
-               printf("exitstatus:success\n");
+               QTextStream out(stdout);
+               out << "exitstatus:success" << endl << flush;
                QApplication::exit();
                exit(0);
        }
diff --git a/unetbootin.pro b/unetbootin.pro
index f3af65f..6405ba2 100644
--- a/unetbootin.pro
+++ b/unetbootin.pro
@@ -2,13 +2,12 @@ TEMPLATE = app
 TARGET = unetbootin
 DEPENDPATH += .
 INCLUDEPATH += .
-CONFIG += release \
-    static
 
 HEADERS += unetbootin.h
 FORMS += unetbootin.ui
 SOURCES += main.cpp \
     unetbootin.cpp \
+    customdistrolst.cpp \
     distrolst.cpp \
     distrover.cpp \
     distrovercust.cpp
-- 
2.21.0

++++++ 0004-don-t-wait-until-the-file-is-downloaded-fully-before.patch ++++++
>From 9cc0841af5d129832d8e2df87355a53f45fca417 Mon Sep 17 00:00:00 2001
From: Valeriy Malov <jazzv...@gmail.com>
Date: Fri, 28 Jul 2017 22:13:20 +0300
Subject: [PATCH 4/4] don't wait until the file is downloaded fully before
 dumping it on disk fix some QNetworkReply/QFile resource freeing delete
 dlprogressupdate64 because it's never used fix some slot warnings

---
 unetbootin.cpp | 80 ++++++++++++++++-------------------
 unetbootin.h   |  7 ++-
 2 files changed, 39 insertions(+), 48 deletions(-)

diff --git a/unetbootin.cpp b/unetbootin.cpp
index 6ffd6fc..5a6750e 100644
--- a/unetbootin.cpp
+++ b/unetbootin.cpp
@@ -699,17 +699,17 @@ QStringList unetbootin::listalldrives()
        return fulldrivelist;
 }
 
-void unetbootin::on_typeselect_currentIndexChanged(int typeselectIndex)
+void unetbootin::on_typeselect_currentIndexChanged(int)
 {
        refreshdriveslist();
 }
 
-void unetbootin::on_dverselect_currentIndexChanged()
+void unetbootin::on_dverselect_currentIndexChanged(int)
 {
        radioDistro->setChecked(true);
 }
 
-void unetbootin::on_diskimagetypeselect_currentIndexChanged()
+void unetbootin::on_diskimagetypeselect_currentIndexChanged(int)
 {
        radioFloppy->setChecked(true);
 }
@@ -2640,35 +2640,41 @@ void unetbootin::downloadfile(QString fileurl, QString 
targetfile, int minsize=5
        connect(networkReply, static_cast<void 
(QNetworkReply::*)(QNetworkReply::NetworkError)>(&QNetworkReply::error),
                        [&](QNetworkReply::NetworkError code){ downloadFailed = 
true; errorCode = code; });
 
+       QFile dloutfile;
+       if (installType == tr("USB Drive"))
+       {
+               dloutfile.setFileName(randtmpfile::getrandfilename(ubntmpf, 
"tmp"));
+       }
+       else
+       {
+               dloutfile.setFileName(targetfile);
+       }
+       dloutfile.open(QIODevice::WriteOnly);
+
+       connect(networkReply, &QNetworkReply::downloadProgress, [&](qint64, 
qint64){
+               dloutfile.write(networkReply->readAll());
+       });
+
        dlewait.exec();
 
        if (!redirectUrl.isEmpty())
        {
+               networkReply->deleteLater();
                downloadfile(redirectUrl.toString(), targetfile, minsize);
                return;
        }
 
        if (downloadFailed)
        {
-               qDebug() << networkReply->errorString();
+               qDebug() << "Failed to download URL: " << fileurl;
                qDebug() << "Error code: " << errorCode;
+               qDebug() << "Error string: " << networkReply->errorString();
+               networkReply->deleteLater();
                showDownloadFailedScreen(fileurl);
                return;
        }
 
-       QFile dloutfile;
-       if (installType == tr("USB Drive"))
-       {
-               dloutfile.setFileName(randtmpfile::getrandfilename(ubntmpf, 
"tmp"));
-       }
-       else
-       {
-               dloutfile.setFileName(targetfile);
-       }
-
-       dloutfile.open(QIODevice::WriteOnly);
        dloutfile.write(networkReply->readAll());
-       networkReply->close();
        networkReply->deleteLater();
        dloutfile.close();
        if (installType == tr("USB Drive"))
@@ -2714,34 +2720,19 @@ void unetbootin::showDownloadFailedScreen(const QString 
&fileurl)
        }
 }
 
-void unetbootin::dlprogressupdate(int dlbytes, int maxbytes)
-{
- QTime time = QTime::currentTime();
- static int oldsec = 0;
- // refresh the progress bar every second
- if(oldsec != time.second())
- {
-   oldsec = time.second();
-     tprogress->setValue(dlbytes);
-     tprogress->setMaximum(maxbytes);
-   // display the downloaded size with suffix
-     pdesc1->setText(tr("<b>Downloaded:</b> %1 of 
%2").arg(displayfisize(dlbytes)).arg(displayfisize(maxbytes)));
- }
-}
-
 void unetbootin::dlprogressupdate64(qint64 dlbytes, qint64 maxbytes)
 {
- QTime time = QTime::currentTime();
- static int oldsec = 0;
- // refresh the progress bar every second
- if(oldsec != time.second())
- {
-   oldsec = time.second();
-     tprogress->setValue(dlbytes);
-     tprogress->setMaximum(maxbytes);
-   // display the downloaded size with suffix
-     pdesc1->setText(tr("<b>Downloaded:</b> %1 of 
%2").arg(displayfisize(dlbytes)).arg(displayfisize(maxbytes)));
- }
+       QTime time = QTime::currentTime();
+       static int oldsec = 0;
+       // refresh the progress bar every second
+       if(oldsec != time.second())
+       {
+               oldsec = time.second();
+               tprogress->setValue(dlbytes);
+               tprogress->setMaximum(maxbytes);
+               // display the downloaded size with suffix
+               pdesc1->setText(tr("<b>Downloaded:</b> %1 of 
%2").arg(displayfisize(dlbytes)).arg(displayfisize(maxbytes)));
+       }
 }
 
 void unetbootin::cpprogressupdate64(qint64 dlbytes, qint64 maxbytes)
@@ -2761,9 +2752,9 @@ void unetbootin::cpprogressupdate64(qint64 dlbytes, 
qint64 maxbytes)
 
 QString unetbootin::downloadpagecontents(QUrl pageurl)
 {
-       QNetworkAccessManager _manager;
+       QNetworkAccessManager manager;
        QNetworkRequest dlurl(pageurl);
-       QNetworkReply * networkReply = _manager.get(dlurl);
+       QNetworkReply * networkReply = manager.get(dlurl);
        QEventLoop pgwait;
        QUrl redirectUrl;
        connect(networkReply, &QNetworkReply::finished, &pgwait, 
&QEventLoop::quit);
@@ -2773,6 +2764,7 @@ QString unetbootin::downloadpagecontents(QUrl pageurl)
 
        if (!redirectUrl.isEmpty())
        {
+               networkReply->deleteLater();
                return downloadpagecontents(redirectUrl);
        }
 
diff --git a/unetbootin.h b/unetbootin.h
index 8cb45d8..99c93a2 100644
--- a/unetbootin.h
+++ b/unetbootin.h
@@ -336,9 +336,9 @@ public:
 
 private slots:
        void on_distroselect_currentIndexChanged(int distroselectIndex);
-       void on_typeselect_currentIndexChanged(int typeselectIndex);
-       void on_dverselect_currentIndexChanged();
-       void on_diskimagetypeselect_currentIndexChanged();
+       void on_typeselect_currentIndexChanged(int);
+       void on_dverselect_currentIndexChanged(int);
+       void on_diskimagetypeselect_currentIndexChanged(int);
        void on_FloppyFileSelector_clicked();
        void on_KernelFileSelector_clicked();
        void on_InitrdFileSelector_clicked();
@@ -347,7 +347,6 @@ private slots:
        void on_fexitbutton_clicked();
 
 public slots:
-       void dlprogressupdate(int dlbytes, int maxbytes);
        void dlprogressupdate64(qint64 dlbytes, qint64 maxbytes);
        void cpprogressupdate64(qint64 dlbytes, qint64 maxbytes);
        void on_okbutton_clicked();
-- 
2.21.0

++++++ unetbootin-locate-usb-devices.diff ++++++
--- /var/tmp/diff_new_pack.Q6XYdR/_old  2019-04-23 14:39:24.333589771 +0200
+++ /var/tmp/diff_new_pack.Q6XYdR/_new  2019-04-23 14:39:24.333589771 +0200
@@ -1,8 +1,8 @@
-Index: unetbootin.cpp
-===================================================================
---- unetbootin.cpp.orig
-+++ unetbootin.cpp
-@@ -508,17 +508,12 @@
+diff --git a/unetbootin.cpp b/unetbootin.cpp
+index f7af26c..5551bc2 100644
+--- a/unetbootin.cpp
++++ b/unetbootin.cpp
+@@ -607,17 +607,12 @@ QStringList unetbootin::listsanedrives()
                }
                #endif
                                #ifdef Q_OS_LINUX
@@ -23,10 +23,10 @@
                                                if (!volidcommand.isEmpty())
                                                {
                                                        if 
(QString(callexternapp(volidcommand, QString("-t 
%2").arg(usbfileinfoL.at(i).canonicalFilePath()))).contains(QRegExp("(vfat|ext2|ext3|ext4)")))
-@@ -635,20 +630,7 @@
-                                               }
-                                       }
-                               }
+@@ -634,20 +629,7 @@ QStringList unetbootin::listsanedrives()
+                                               }
+                                       }
+                               }
 -                              /*
 -                              QString fdisklusbdevsS = 
callexternapp(fdiskcommand, "-l");
 -                              QStringList usbdevsL = 
QString(fdisklusbdevsS).split("\n").filter(QRegExp("\\.{0,}FAT|Disk\\.{0,}")).join("\n").split("
 ").join("\n").split("\t").join("\n").split("\n").filter("/dev/");

++++++ unetbootin-source-657.tar.gz -> unetbootin-source-661.tar.gz ++++++
Binary files old/._INSTALL and new/._INSTALL differ
Binary files old/._README.TXT and new/._README.TXT differ
Binary files old/._build-nostatic and new/._build-nostatic differ
Binary files old/._customdistrolst.cpp and new/._customdistrolst.cpp differ
Binary files old/._customdistselect.cpp and new/._customdistselect.cpp differ
Binary files old/._distrolst.cpp and new/._distrolst.cpp differ
Binary files old/._distrover.cpp and new/._distrover.cpp differ
Binary files old/._distrovercust.cpp and new/._distrovercust.cpp differ
Binary files old/._main.cpp and new/._main.cpp differ
Binary files old/._org.unetbootin.pkexec.unetbootin.policy and 
new/._org.unetbootin.pkexec.unetbootin.policy differ
Binary files old/._unetbootin.cpp and new/._unetbootin.cpp differ
Binary files old/._unetbootin.desktop and new/._unetbootin.desktop differ
Binary files old/._unetbootin.h and new/._unetbootin.h differ
Binary files old/._unetbootin.pro and new/._unetbootin.pro differ
Binary files old/._unetbootin.ts and new/._unetbootin.ts differ
Binary files old/._unetbootin.ui and new/._unetbootin.ui differ
Binary files old/._unetbootin.xpm and new/._unetbootin.xpm differ
Binary files old/._unetbootin_128.png and new/._unetbootin_128.png differ
Binary files old/._unetbootin_14.png and new/._unetbootin_14.png differ
Binary files old/._unetbootin_16.png and new/._unetbootin_16.png differ
Binary files old/._unetbootin_192.png and new/._unetbootin_192.png differ
Binary files old/._unetbootin_22.png and new/._unetbootin_22.png differ
Binary files old/._unetbootin_24.png and new/._unetbootin_24.png differ
Binary files old/._unetbootin_256.png and new/._unetbootin_256.png differ
Binary files old/._unetbootin_32.png and new/._unetbootin_32.png differ
Binary files old/._unetbootin_48.png and new/._unetbootin_48.png differ
Binary files old/._unetbootin_512.png and new/._unetbootin_512.png differ
Binary files old/._unetbootin_64.png and new/._unetbootin_64.png differ
Binary files old/._unetbootin_am.ts and new/._unetbootin_am.ts differ
Binary files old/._unetbootin_ar.ts and new/._unetbootin_ar.ts differ
Binary files old/._unetbootin_ast.ts and new/._unetbootin_ast.ts differ
Binary files old/._unetbootin_be.ts and new/._unetbootin_be.ts differ
Binary files old/._unetbootin_bg.ts and new/._unetbootin_bg.ts differ
Binary files old/._unetbootin_bn.ts and new/._unetbootin_bn.ts differ
Binary files old/._unetbootin_ca.ts and new/._unetbootin_ca.ts differ
Binary files old/._unetbootin_cs.ts and new/._unetbootin_cs.ts differ
Binary files old/._unetbootin_custom.ts and new/._unetbootin_custom.ts differ
Binary files old/._unetbootin_da.ts and new/._unetbootin_da.ts differ
Binary files old/._unetbootin_de.ts and new/._unetbootin_de.ts differ
Binary files old/._unetbootin_el.ts and new/._unetbootin_el.ts differ
Binary files old/._unetbootin_eo.ts and new/._unetbootin_eo.ts differ
Binary files old/._unetbootin_es.ts and new/._unetbootin_es.ts differ
Binary files old/._unetbootin_et.ts and new/._unetbootin_et.ts differ
Binary files old/._unetbootin_eu.ts and new/._unetbootin_eu.ts differ
Binary files old/._unetbootin_fa.ts and new/._unetbootin_fa.ts differ
Binary files old/._unetbootin_fi.ts and new/._unetbootin_fi.ts differ
Binary files old/._unetbootin_fo.ts and new/._unetbootin_fo.ts differ
Binary files old/._unetbootin_fr.ts and new/._unetbootin_fr.ts differ
Binary files old/._unetbootin_gl.ts and new/._unetbootin_gl.ts differ
Binary files old/._unetbootin_he.ts and new/._unetbootin_he.ts differ
Binary files old/._unetbootin_hr.ts and new/._unetbootin_hr.ts differ
Binary files old/._unetbootin_hu.ts and new/._unetbootin_hu.ts differ
Binary files old/._unetbootin_icons.svg and new/._unetbootin_icons.svg differ
Binary files old/._unetbootin_id.ts and new/._unetbootin_id.ts differ
Binary files old/._unetbootin_it.ts and new/._unetbootin_it.ts differ
Binary files old/._unetbootin_ja.ts and new/._unetbootin_ja.ts differ
Binary files old/._unetbootin_lt.ts and new/._unetbootin_lt.ts differ
Binary files old/._unetbootin_lv.ts and new/._unetbootin_lv.ts differ
Binary files old/._unetbootin_ml.ts and new/._unetbootin_ml.ts differ
Binary files old/._unetbootin_ms.ts and new/._unetbootin_ms.ts differ
Binary files old/._unetbootin_nan.ts and new/._unetbootin_nan.ts differ
Binary files old/._unetbootin_nb.ts and new/._unetbootin_nb.ts differ
Binary files old/._unetbootin_nl.ts and new/._unetbootin_nl.ts differ
Binary files old/._unetbootin_nn.ts and new/._unetbootin_nn.ts differ
Binary files old/._unetbootin_pl.ts and new/._unetbootin_pl.ts differ
Binary files old/._unetbootin_pt.ts and new/._unetbootin_pt.ts differ
Binary files old/._unetbootin_pt_BR.ts and new/._unetbootin_pt_BR.ts differ
Binary files old/._unetbootin_ro.ts and new/._unetbootin_ro.ts differ
Binary files old/._unetbootin_ru.ts and new/._unetbootin_ru.ts differ
Binary files old/._unetbootin_si.ts and new/._unetbootin_si.ts differ
Binary files old/._unetbootin_sk.ts and new/._unetbootin_sk.ts differ
Binary files old/._unetbootin_sl.ts and new/._unetbootin_sl.ts differ
Binary files old/._unetbootin_sr.ts and new/._unetbootin_sr.ts differ
Binary files old/._unetbootin_sv.ts and new/._unetbootin_sv.ts differ
Binary files old/._unetbootin_sw.ts and new/._unetbootin_sw.ts differ
Binary files old/._unetbootin_tr.ts and new/._unetbootin_tr.ts differ
Binary files old/._unetbootin_uk.ts and new/._unetbootin_uk.ts differ
Binary files old/._unetbootin_ur.ts and new/._unetbootin_ur.ts differ
Binary files old/._unetbootin_vi.ts and new/._unetbootin_vi.ts differ
Binary files old/._unetbootin_zh_CN.ts and new/._unetbootin_zh_CN.ts differ
Binary files old/._unetbootin_zh_TW.ts and new/._unetbootin_zh_TW.ts differ
Binary files old/._vcs-name and new/._vcs-name differ
Binary files old/._vcs-revno and new/._vcs-revno differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/README.TXT new/README.TXT
--- old/README.TXT      2017-10-24 11:00:20.000000000 +0200
+++ new/README.TXT      2018-04-28 11:30:54.000000000 +0200
@@ -1,16 +1,16 @@
-UNetbootin Source Revision 657
+UNetbootin Source Revision 631
 Copyright Geza Kovacs
 Homepage at http://unetbootin.sourceforge.net
 Licensed under the GNU GPL v2 and above, components from other projects are 
licensed under their respective licenses
-Build generated on Tue Oct 24 02:00:20 PDT 2017
+Build generated on Sat Apr 28 02:30:54 PDT 2018
 
 Download using git:
 git clone https://github.com/gkovacs/unetbootin.git
 cd unetbootin
-git checkout 4400a81158c0f3c66fc6da6cf9cedf54453794e2
+git checkout ba69d3cab4f41b260d526d9d4c5a406b06591697
 
 Download using bzr:
-bzr branch http://bazaar.launchpad.net/~vcs-imports/unetbootin/trunk -r657
+bzr branch http://bazaar.launchpad.net/~vcs-imports/unetbootin/trunk -r631
 
 Build instructions at http://sourceforge.net/apps/trac/unetbootin/wiki/compile
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/distrolst.cpp new/distrolst.cpp
--- old/distrolst.cpp   2017-10-24 10:49:16.000000000 +0200
+++ new/distrolst.cpp   2018-04-28 03:24:54.000000000 +0200
@@ -18,6 +18,7 @@
 #ifndef ubunturelnamereplace
 #define ubunturelnamereplace \
        relname \
+    .replace("18.04", "bionic") \
     .replace("17.10", "artful") \
     .replace("17.04", "zesty") \
     .replace("16.10", "yakkety") \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/distrover.cpp new/distrover.cpp
--- old/distrover.cpp   2017-10-24 10:59:12.000000000 +0200
+++ new/distrover.cpp   2018-04-28 11:29:31.000000000 +0200
@@ -10,11 +10,9 @@
 #ifndef ubuntuverlist
 #define ubuntuverlist \
 "14.04_NetInstall" << "14.04_NetInstall_x64" << "14.04_HdMedia" << 
"14.04_HdMedia_x64" << "14.04_Live" << "14.04_Live_x64" << \
-"15.10_NetInstall" << "15.10_NetInstall_x64" << "15.10_HdMedia" << 
"15.10_HdMedia_x64" << "15.10_Live" << "15.10_Live_x64" << \
 "16.04_NetInstall" << "16.04_NetInstall_x64" << "16.04_HdMedia" << 
"16.04_HdMedia_x64" << "16.04_Live" << "16.04_Live_x64" << \
-"16.10_NetInstall" << "16.10_NetInstall_x64" << "16.10_HdMedia" << 
"16.10_HdMedia_x64" << "16.10_Live" << "16.10_Live_x64" << \
-"17.04_NetInstall" << "17.04_NetInstall_x64" << "17.04_HdMedia" << 
"17.04_HdMedia_x64" << "17.04_Live" << "17.04_Live_x64" << \
 "17.10_NetInstall" << "17.10_NetInstall_x64" << "17.10_HdMedia" << 
"17.10_HdMedia_x64" << "17.10_Live_x64" << \
+"18.04_NetInstall" << "18.04_NetInstall_x64" << "18.04_HdMedia" << 
"18.04_HdMedia_x64" << "18.04_Live_x64" << \
 "Daily_Live" << "Daily_Live_x64"
 #endif
 
@@ -127,7 +125,7 @@
        "<b>Description:</b> Kaspersky Rescue Disk detects and removes malware 
from your Windows installation.<br/>"
        "<b>Install Notes:</b> The Live version allows for booting in Live 
mode, from which malware scans can be launched.") <<
 "10_Live" << "8_Live"));
-    distroselect->addItem("Kubuntu", (QStringList() << "16.04_Live" <<
+    distroselect->addItem("Kubuntu", (QStringList() << "18.04_Live_x64" <<
 unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://www.kubuntu.org/\";>http://www.kubuntu.org</a><br/>"
        "<b>Description:</b> Kubuntu is an official Ubuntu derivative featuring 
the KDE desktop.<br/>"
        "<b>Install Notes:</b> The Live version allows for booting in Live 
mode, from which the installer can optionally be launched. The NetInstall 
version allows for installation over FTP, and can install Kubuntu and other 
official Ubuntu derivatives. If you would like to use a pre-downloaded 
alternate (not desktop) install iso, use the HdMedia option, and then place the 
alternate install iso file on the root directory of your hard drive or USB 
drive") <<
@@ -142,7 +140,7 @@
        "<b>Description:</b> Linux Mint is a user-friendly Ubuntu-based 
distribution which includes additional proprietary codecs and other software by 
default.<br/>"
        "<b>Install Notes:</b> The Live version allows for booting in Live 
mode, from which the installer can optionally be launched.") <<
     "17_Live" << "17_Live_x64" << "17.1_Live" << "17.1_Live_x64" << 
"17.2_Live" << "17.2_Live_x64"));
-distroselect->addItem("Lubuntu", (QStringList() << "16.04_Live" <<
+distroselect->addItem("Lubuntu", (QStringList() << "18.04_Live_x64" <<
 unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://www.lubuntu.net/\";>http://www.lubuntu.net</a><br/>"
        "<b>Description:</b> Lubuntu is an official Ubuntu derivative featuring 
the LXDE desktop.<br/>"
        "<b>Install Notes:</b> The Live version allows for booting in Live 
mode, from which the installer can optionally be launched. The NetInstall 
version allows for installation over FTP, and can install Kubuntu and other 
official Ubuntu derivatives. If you would like to use a pre-downloaded 
alternate (not desktop) install iso, use the HdMedia option, and then place the 
alternate install iso file on the root directory of your hard drive or USB 
drive") <<
@@ -249,7 +247,7 @@
 //     "<b>Description:</b> SystemRescueCD includes various partition 
management and data recovery and backup tools.<br/>"
 //     "<b>Install Notes:</b> SystemRescueCD is booted and run in live mode; 
no installation is required to use it.") <<
 //"Latest_Live"));
-distroselect->addItem("Ubuntu", (QStringList() << "16.04_Live" <<
+distroselect->addItem("Ubuntu", (QStringList() << "18.04_Live_x64" <<
 unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://www.ubuntu.com/\";>http://www.ubuntu.com</a><br/>"
        "<b>Description:</b> Ubuntu is a user-friendly Debian-based 
distribution. It is currently the most popular Linux desktop distribution.<br/>"
        "<b>Install Notes:</b> The Live version allows for booting in Live 
mode, from which the installer can optionally be launched. The NetInstall 
version allows for installation over FTP, and can install Kubuntu and other 
official Ubuntu derivatives. If you would like to use a pre-downloaded 
alternate (not desktop) install iso, use the HdMedia option, and then place the 
alternate install iso file on the root directory of your hard drive or USB 
drive") <<
@@ -259,7 +257,7 @@
        "<b>Description:</b> xPUD is a lightweight distribution featuring a 
simple kiosk-like interface with a web browser and media player.<br/>"
        "<b>Install Notes:</b> The Live version loads the entire system into 
RAM and boots from memory.") <<
 "Stable_Live" << "Unstable_Live"));
-distroselect->addItem("Xubuntu", (QStringList() << "16.04_Live" <<
+distroselect->addItem("Xubuntu", (QStringList() << "18.04_Live_x64" <<
 unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://www.xubuntu.org/\";>http://www.xubuntu.org</a><br/>"
        "<b>Description:</b> Xubuntu is an official Ubuntu derivative featuring 
the XFCE desktop.<br/>"
        "<b>Install Notes:</b> The Live version allows for booting in Live 
mode, from which the installer can optionally be launched. The NetInstall 
version allows for installation over FTP, and can install Kubuntu and other 
official Ubuntu derivatives. If you would like to use a pre-downloaded 
alternate (not desktop) install iso, use the HdMedia option, and then place the 
alternate install iso file on the root directory of your hard drive or USB 
drive") <<
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unetbootin.cpp new/unetbootin.cpp
--- old/unetbootin.cpp  2017-07-14 10:54:12.000000000 +0200
+++ new/unetbootin.cpp  2018-04-28 03:24:54.000000000 +0200
@@ -4351,7 +4351,7 @@
                rebootmsgtext->setText(tr("After rebooting, select the USB boot 
option in the BIOS boot menu.%1").arg(postinstmsg));
 #endif
 #ifdef Q_OS_MAC
-               rebootmsgtext->setText(tr("The created USB device will not boot 
off a Mac. Insert it into a PC, and select the USB boot option in the BIOS boot 
menu.%1").arg(postinstmsg));
+               rebootmsgtext->setText(tr("After rebooting, hold the option key 
and select your USB drive to boot from it.%1").arg(postinstmsg));
 #endif
        }
     finishLogging();

++++++ unetbootin-suse.patch ++++++
--- /var/tmp/diff_new_pack.Q6XYdR/_old  2019-04-23 14:39:24.453589834 +0200
+++ /var/tmp/diff_new_pack.Q6XYdR/_new  2019-04-23 14:39:24.453589834 +0200
@@ -1,16 +1,68 @@
---- distrover.cpp.orig 2017-04-24 01:22:37.000000000 +0200
-+++ distrover.cpp      2017-06-17 12:32:55.939553687 +0200
-@@ -177,11 +177,11 @@
+diff --git a/distrolst.cpp b/distrolst.cpp
+index 8cc6580..511ea06 100644
+--- a/distrolst.cpp
++++ b/distrolst.cpp
+@@ -753,23 +753,36 @@ if (nameDistro == "openSUSE")
+       {
+               cpuarch = "i386";
+       }
++
++        QString leapversion;
++        if(relname != "tumbleweed")
++        {
++                leapversion = relname.split("_").last();
++        }
+       if (islivecd)
+       {
+-              
downloadfile(QString("http://download.opensuse.org/distribution/%1/iso/cd/openSUSE-%1-GM-GNOME-Live-%2.iso";).arg(relname,
 cpuarch), isotmpf);
++                if (relname == "tumbleweed")
++                {
++                        
downloadfile(QString("https://download.opensuse.org/tumbleweed/iso/openSUSE-tumbleweed-DVD-%1-Current.iso";).arg(cpuarch),
 isotmpf);
++                }
++                else
++                {
++                        
downloadfile(QString("https://download.opensuse.org/distribution/leap/%1/iso/openSUSE-Leap-DVD-x86_64-Current.iso";).arg(leapversion),
 isotmpf);
++                }
+               extractiso(isotmpf);
+       }
+       else
+       {
+-              if (relname == "factory")
++              if (relname == "tumbleweed")
+               {
+-                      
downloadfile(QString("http://download.opensuse.org/factory/repo/oss/boot/%1/loader/linux";).arg(cpuarch),
 QString("%1ubnkern").arg(targetPath));
+-                      
downloadfile(QString("http://download.opensuse.org/factory/repo/oss/boot/%1/loader/initrd";).arg(cpuarch),
 QString("%1ubninit").arg(targetPath));
+-                      postinstmsg = unetbootin::tr("\n*IMPORTANT* After 
rebooting, ignore any error messages and select back if prompted for a CD, then 
go to the main menu, select the 'Start Installation' option, choose 'Network' 
as the source, choose 'HTTP' as the protocol, enter 'download.opensuse.org' 
when prompted for a server, and enter '/factory/repo/oss' when asked for the 
folder.");
++                      
downloadfile(QString("https://download.opensuse.org/tumbleweed/repo/oss/boot/%1/loader/linux";).arg(cpuarch),
 QString("%1ubnkern").arg(targetPath));
++                      
downloadfile(QString("https://download.opensuse.org/tumbleweed/repo/oss/boot/%1/loader/initrd";).arg(cpuarch),
 QString("%1ubninit").arg(targetPath));
++                      postinstmsg = unetbootin::tr("\n*IMPORTANT* After 
rebooting, ignore any error messages and select back if prompted for a CD, then 
go to the main menu, select the 'Start Installation' option, choose 'Network' 
as the source, choose 'HTTP' as the protocol, enter 'download.opensuse.org' 
when prompted for a server, and enter '/tumbleweed/repo/oss' when asked for the 
folder.");
+               }
+               else
+               {
+-                      
downloadfile(QString("http://download.opensuse.org/distribution/%1/repo/oss/boot/%2/loader/linux";).arg(relname,
 cpuarch), QString("%1ubnkern").arg(targetPath));
+-                      
downloadfile(QString("http://download.opensuse.org/distribution/%1/repo/oss/boot/%2/loader/initrd";).arg(relname,
 cpuarch), QString("%1ubninit").arg(targetPath));
++                  
downloadfile(QString("https://download.opensuse.org/distribution/leap/%1/repo/oss/boot/x86_64/loader/linux";).arg(leapversion),
 QString("%1ubnkern").arg(targetPath));
++                  
downloadfile(QString("https://download.opensuse.org/distribution/leap/%1/repo/oss/boot/x86_64/loader/initrd";).arg(leapversion),
 QString("%1ubninit").arg(targetPath));
+                       postinstmsg = unetbootin::tr("\n*IMPORTANT* After 
rebooting, ignore any error messages and select back if prompted for a CD, then 
go to the main menu, select the 'Start Installation' option, choose 'Network' 
as the source, choose 'HTTP' as the protocol, enter 'download.opensuse.org' 
when prompted for a server, and enter '/distribution/%1/repo/oss' when asked 
for the folder.").arg(relname);
+                       }
+               kernelOpts = "splash=silent showopts";
+diff --git a/distrover.cpp b/distrover.cpp
+index 156666b..50596d5 100644
+--- a/distrover.cpp
++++ b/distrover.cpp
+@@ -175,11 +175,11 @@ unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://pogostick.net/~pnh/ntpasswd/\";
        "<b>Description:</b> The Offline NT Password and Registry Editor can 
reset Windows passwords and edit the registry on Windows 2000-Vista.<br/>"
        "<b>Install Notes:</b> NTPasswd is booted and run in live mode; no 
installation is required to use it.") <<
  "2008.05.26" << "2011.05.11"));
 -      distroselect->addItem("openSUSE", (QStringList() << "11.1" <<
-+      distroselect->addItem("openSUSE", (QStringList() << "Leap_42.3" <<
++      distroselect->addItem("openSUSE", (QStringList() << "Leap_15.1" <<
  unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://www.opensuse.org/\";>http://www.opensuse.org</a><br/>"
-       "<b>Description:</b> openSUSE is a user-friendly Novell sponsored 
distribution.<br/>"
+-      "<b>Description:</b> openSUSE is a user-friendly Novell sponsored 
distribution.<br/>"
++"<b>Description:</b> The openSUSE project is a community program sponsored by 
SUSE Linux and other companies.<br/>"
        "<b>Install Notes:</b> The default version allows for both installation 
over the internet (FTP), or offline installation using pre-downloaded 
installation ISO files.") <<
 -      "11.1" << "11.1_x64" << "Factory" << "Factory_x64"));
-+      "13.2" << "13.2_x64" << "Leap_42.1" << "Leap_42.2" << "Leap_42.3" << 
"Tumbleweed" << "Tumbleweed_x64" << "Factory" << "Factory_x64"));
++      "Leap_15.0" << "Leap_15.1" << "Tumbleweed" << "Tumbleweed_x64"));
  distroselect->addItem("Ophcrack", (QStringList() << "XP-LiveCD-2.0" <<
  unetbootin::tr("<b>Homepage:</b> <a 
href=\"http://ophcrack.sourceforge.net/\";>http://ophcrack.sourceforge.net</a><br/>"
        "<b>Description:</b> Ophcrack can crack Windows passwords.<br/>"
+-- 


Reply via email to