summaryrefslogtreecommitdiff
path: root/sysutils/unetbootin/files/patch-unetbootin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/unetbootin/files/patch-unetbootin.cpp')
-rw-r--r--sysutils/unetbootin/files/patch-unetbootin.cpp270
1 files changed, 0 insertions, 270 deletions
diff --git a/sysutils/unetbootin/files/patch-unetbootin.cpp b/sysutils/unetbootin/files/patch-unetbootin.cpp
deleted file mode 100644
index 0c236f8baa59..000000000000
--- a/sysutils/unetbootin/files/patch-unetbootin.cpp
+++ /dev/null
@@ -1,270 +0,0 @@
---- unetbootin.cpp.orig 2017-07-14 08:54:12 UTC
-+++ unetbootin.cpp
-@@ -301,8 +301,13 @@ bool unetbootin::ubninitialize(QList<QPair<QString, QS
- #endif
- sevzcommand = locatecommand("7z", tr("either"), "p7zip-full");
- #endif // Q_OS_LINUX
-+#ifdef Q_OS_FREEBSD
-+ syslinuxcommand = locatecommand("syslinux", tr("FAT32-formatted USB drive"), "syslinux");
-+ sevzcommand = locatecommand("7z", tr("either"), "p7zip");
-+ mke2fscommand = locatecommand("mke2fs", tr("LiveUSB persistence"), "e2fsprogs");
-+#endif // Q_OS_FREEBSD
- ubntmpf = QDir::toNativeSeparators(QString("%1/").arg(QDir::tempPath()));
-- #ifdef Q_OS_LINUX
-+ #ifdef Q_OS_UNIX
- if (ubntmpf.isEmpty() || ubntmpf == "/")
- {
- ubntmpf = "/tmp/";
-@@ -649,6 +654,57 @@ QStringList unetbootin::listsanedrives()
- }
- */
- #endif
-+#ifdef Q_OS_FREEBSD
-+ struct xvfsconf fsconf;
-+ struct statfs *fslist;
-+
-+ /*
-+ * Make sure that MSDOSFS is configured with the kernel.
-+ * As a nice side effect, this would allow to compare a
-+ * number (assigned by VFS) instead of "msdosfs" string
-+ * when iterating over mounted filesystems.
-+ */
-+ if (getvfsbyname("msdosfs", &fsconf) == -1)
-+ goto out;
-+
-+ /*
-+ * Quick sanity check of the number of active mountpoints
-+ * using the filesystem (we need mounted storage to work).
-+ */
-+ if (fsconf.vfc_refcount < 1)
-+ goto out;
-+
-+ int numfs = getmntinfo(&fslist, MNT_NOWAIT);
-+ if (numfs < 1)
-+ goto out;
-+
-+ QRegExp pendrives_sdcards("^/dev/(da|mmcsd)\\d+");
-+
-+ for (int i = 0; i < numfs; ++i)
-+ {
-+ /*
-+ * We're interested in MSDOSFS (FAT) filesystems
-+ * that are mounted off removable storage (e.g.,
-+ * USB memsticks, SD cards). Assume that device
-+ * names for those are /dev/da* and /dev/mmcsd*.
-+ * (Perhaps not entirely accurate assumption.)
-+ */
-+ if ((int)fslist[i].f_type == fsconf.vfc_typenum &&
-+ QString(fslist[i].f_mntfromname)
-+ .contains(pendrives_sdcards))
-+ {
-+ /*
-+ * Unlike other implementations above, we
-+ * append tuples of device name *and* the
-+ * mount point, so we do not have to find
-+ * mount point separately later.
-+ */
-+ fulldrivelist.append(QString("%1:%2")
-+ .arg(fslist[i].f_mntfromname)
-+ .arg(fslist[i].f_mntonname));
-+ }
-+ }
-+#endif
- #ifdef Q_OS_MAC
- QString systemprofilertext = callexternapp("system_profiler", "SPStorageDataType");
- QRegExp filesystemregex("File System: (.+)\\n");
-@@ -669,6 +725,7 @@ for (int i = 0; i < filesystemlist.size(); ++i)
- }
- #endif
- }
-+out:
- return fulldrivelist;
- }
-
-@@ -1100,7 +1157,12 @@ bool unetbootin::checkifoutofspace(QString destindir)
- struct statfs diskstatS;
- if (!statfs(QString(destindir+"/.").toAscii(), &diskstatS))
- {
-- if (diskstatS.f_bavail * diskstatS.f_bfree < 1024)
-+ /*
-+ * Refuse to work if available disk space is less than 1MB
-+ * (1024KB). Even this seems very low, but original value
-+ * of 1024 bytes was simply ridiculous.
-+ */
-+ if (diskstatS.f_bsize / 1024 * diskstatS.f_bavail < 1024)
- outofspace = true;
- }
- #endif
-@@ -3412,21 +3474,36 @@ void unetbootin::instIndvfl(QString srcfName, QString
- srcF.setFileName(QFile::exists("/usr/share/syslinux/memdisk") ? "/usr/share/syslinux/memdisk" : "/usr/lib/syslinux/memdisk");
- else if (srcfName == "menu.c32")
- {
-+#ifdef Q_OS_LINUX
- srcF.setFileName(QFile::exists("/usr/share/syslinux/menu.c32") ? "/usr/share/syslinux/menu.c32" : "/usr/lib/syslinux/menu.c32");
- if (QFile::exists("/usr/lib/syslinux/modules/bios/menu.c32"))
- srcF.setFileName("/usr/lib/syslinux/modules/bios/menu.c32");
-+#endif
-+#ifdef Q_OS_FREEBSD
-+ srcF.setFileName(LOCALBASE "/share/syslinux/bios/com32/menu/menu.c32");
-+#endif
- }
- else if (srcfName == "libutil.c32")
- {
-+#ifdef Q_OS_LINUX
- srcF.setFileName(QFile::exists("/usr/share/syslinux/libutil.c32") ? "/usr/share/syslinux/libutil.c32" : "/usr/lib/syslinux/libutil.c32");
- if (QFile::exists("/usr/lib/syslinux/modules/bios/libutil.c32"))
- srcF.setFileName("/usr/lib/syslinux/modules/bios/libutil.c32");
-+#endif
-+#ifdef Q_OS_FREEBSD
-+ srcF.setFileName(LOCALBASE "/share/syslinux/bios/com32/libutil/libutil.c32");
-+#endif
- }
- else if (srcfName == "libcom32.c32")
- {
-+#ifdef Q_OS_LINUX
- srcF.setFileName(QFile::exists("/usr/share/syslinux/libcom32.c32") ? "/usr/share/syslinux/libcom32.c32" : "/usr/lib/syslinux/libcom32.c32");
- if (QFile::exists("/usr/lib/syslinux/modules/bios/libcom32.c32"))
- srcF.setFileName("/usr/lib/syslinux/modules/bios/libcom32.c32");
-+#endif
-+#ifdef Q_OS_FREEBSD
-+ srcF.setFileName(LOCALBASE "/share/syslinux/bios/com32/lib/libcom32.c32");
-+#endif
- }
- else if (srcfName == "mbr.bin")
- {
-@@ -3516,11 +3593,19 @@ void unetbootin::runinst()
- }
- if (installType == tr("USB Drive"))
- {
-+#ifdef Q_OS_LINUX
- targetDev = driveselect->currentText();
- devluid = getdevluid(targetDev);
- ginstallDir = "";
- installDir = ginstallDir;
- targetDrive = QString("%1/").arg(locatemountpoint(targetDev));
-+#endif
-+#ifdef Q_OS_FREEBSD
-+ QStringList driveinfo = driveselect->currentText().split(":");
-+ targetDev = driveinfo.at(0);
-+ installDir = ginstallDir = "";
-+ targetDrive = QString("%1/").arg(driveinfo.at(1));
-+#endif
- }
- #ifdef Q_OS_LINUX
- if (targetDev.contains(QRegExp("p\\d$")))
-@@ -3528,7 +3613,7 @@ void unetbootin::runinst()
- else
- rawtargetDev = QString(targetDev).remove(QRegExp("\\d$"));
- #endif
--#ifdef Q_OS_MAC
-+#ifdef Q_OS_UNIX
- rawtargetDev = QString(targetDev).remove(QRegExp("s\\d$"));
- #endif
- #endif
-@@ -3724,7 +3809,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 +3930,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
-@@ -4281,21 +4366,47 @@ void unetbootin::runinstusb()
- instIndvfl("libutil.c32", QString("%1libutil.c32").arg(targetPath));
- instIndvfl("libcom32.c32", QString("%1libcom32.c32").arg(targetPath));
- }
-+ setuppersspace();
-+#ifdef Q_OS_FREEBSD
-+ /*
-+ * On FreeBSD, we only support installing on MSDOSFS (no
-+ * extlinux in the ports). This also simplifies things
-+ * a bit, and that's what most users usually want anyway.
-+ *
-+ * Because of syslinux' stupidity, we have to remove any
-+ * existing ldlinux.c32 and ldlinux.sys files, otherwise
-+ * it will fail to install loader (even with -f switch).
-+ * Then we have to unmount the filesystem to avoid the
-+ * "Operation not permitted" error, and must enforce it
-+ * because syslinux expects a block device, and, well,
-+ * there are no "block devices" in FreeBSD.
-+ */
-+ rmFile(targetPath + "ldlinux.c32");
-+ rmFile(targetPath + "ldlinux.sys");
-+ callexternapp("umount", targetDev);
-+ callexternapp(syslinuxcommand, "-i -f " + targetDev);
-+
-+ if (rawtargetDev != targetDev)
-+ {
-+ /*
-+ * We have partition table (not operating on raw
-+ * disk), so we need to install MBR and mark our
-+ * partition as active. Assume our targetDev is
-+ * /dev/{da,mmcsd}XsY and use the last digit as
-+ * partition index for gpart(8).
-+ */
-+ QString idx = targetDev.right(1);
-+ callexternapp("gpart",
-+ "bootcode -b /boot/mbr " + rawtargetDev);
-+ callexternapp("gpart", "set -a "
-+ "active -i " + idx + " " + rawtargetDev);
-+ }
-+#endif
- fininstall();
- }
-
--void unetbootin::killApplication()
-+void unetbootin::setuppersspace()
- {
-- exit(0);
--}
--
--void unetbootin::fininstall()
--{
-- #ifdef Q_OS_UNIX
-- this->tprogress->setValue(this->tprogress->maximum()*2/3);
-- pdesc1->setText(tr("Syncing filesystems"));
-- callexternapp("sync", "");
-- #endif
- if (this->persistenceSpaceMB > 0)
- {
- pdesc1->setText(tr("Setting up persistence"));
-@@ -4334,6 +4445,20 @@ void unetbootin::fininstall()
- rmFile(mke2fscommand);
- #endif
- }
-+}
-+
-+void unetbootin::killApplication()
-+{
-+ exit(0);
-+}
-+
-+void unetbootin::fininstall()
-+{
-+ #ifdef Q_OS_UNIX
-+ this->tprogress->setValue(this->tprogress->maximum()*2/3);
-+ pdesc1->setText(tr("Syncing filesystems"));
-+ callexternapp("sync", "");
-+ #endif
- pdesc1->setText("");
- progresslayer->setEnabled(false);
- progresslayer->hide();
-@@ -4343,7 +4468,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"))
- {