summarylogtreecommitdiffstats
path: root/arch-pacman.patch
diff options
context:
space:
mode:
authorBrian Bidulock2019-06-19 18:40:40 -0600
committerBrian Bidulock2019-06-19 18:40:40 -0600
commit22ff19c4c96cde013367e13a811c1e2c233a1545 (patch)
treeb02c8e19920ba76f7e2a834d80ce086f7ea57b92 /arch-pacman.patch
parent42f4c4b238d979536f5fde57557a5dc2a2b092b5 (diff)
downloadaur-22ff19c4c96cde013367e13a811c1e2c233a1545.tar.gz
uppkg
Diffstat (limited to 'arch-pacman.patch')
-rw-r--r--arch-pacman.patch416
1 files changed, 416 insertions, 0 deletions
diff --git a/arch-pacman.patch b/arch-pacman.patch
new file mode 100644
index 000000000000..66428f4702a2
--- /dev/null
+++ b/arch-pacman.patch
@@ -0,0 +1,416 @@
+diff -up src/xfe-1.43/src/FilePanel.cpp.orig src/xfe-1.43/src/FilePanel.cpp
+--- src/xfe-1.43/src/FilePanel.cpp.orig 2018-05-16 09:28:02.000000000 -0600
++++ src/xfe-1.43/src/FilePanel.cpp 2019-06-19 18:28:48.000000000 -0600
+@@ -4481,27 +4481,32 @@ long FilePanel::onCmdPopupMenu(FXObject*
+ // Last and before last file extensions
+ FXString ext1 = name.rafter('.', 1).lower();
+ FXString ext2 = name.rafter('.', 2).lower();
++ FXString ext3 = name.rafter('.', 3).lower();
+
+ // Destination folder name
+ FXString extract_to_folder;
+- if ((ext2 == "tar.gz") || (ext2 == "tar.bz2") || (ext2 == "tar.xz") || (ext2 == "tar.z"))
++ if ((ext3 != "pkg.tar.xz") && ((ext2 == "tar.gz") || (ext2 == "tar.bz2") || (ext2 == "tar.xz") || (ext2 == "tar.z")))
+ {
+ extract_to_folder = _("Extr&act to folder ")+name.section('\t', 0).rbefore('.', 2);
+ }
++ else if ((ext3 == "pkg.tar.xz"))
++ {
++ extract_to_folder = _("Extr&act to folder ")+name.section('\t', 0).rbefore('.', 3);
++ }
+ else
+ {
+ extract_to_folder = _("Extr&act to folder ")+name.section('\t', 0).rbefore('.', 1);
+ }
+
+ // Display the extract and package menus according to the archive extensions
+- if ((num == 1) && ((ext2 == "tar.gz") || (ext2 == "tar.bz2") || (ext2 == "tar.xz") || (ext2 == "tar.z")))
++ if ((num == 1) && (ext3 != "pkg.tar.xz") && ((ext2 == "tar.gz") || (ext2 == "tar.bz2") || (ext2 == "tar.xz") || (ext2 == "tar.z")))
+ {
+ ar = true;
+ new FXMenuCommand(menu, _("&Extract here"), archexticon, current, FilePanel::ID_EXTRACT_HERE);
+ new FXMenuCommand(menu, extract_to_folder, archexticon, current, FilePanel::ID_EXTRACT_TO_FOLDER);
+ new FXMenuCommand(menu, _("E&xtract to..."), archexticon, current, FilePanel::ID_EXTRACT);
+ }
+- else if ((num == 1) && ((ext1 == "gz") || (ext1 == "bz2") || (ext1 == "xz") || (ext1 == "z")))
++ else if ((num == 1) && (ext3 != "pkg.tar.xz") && ((ext1 == "gz") || (ext1 == "bz2") || (ext1 == "xz") || (ext1 == "z")))
+ {
+ ar = true;
+ new FXMenuCommand(menu, _("&Extract here"), archexticon, current, FilePanel::ID_EXTRACT_HERE);
+@@ -4514,7 +4519,7 @@ long FilePanel::onCmdPopupMenu(FXObject*
+ new FXMenuCommand(menu, _("E&xtract to..."), archexticon, current, FilePanel::ID_EXTRACT);
+ }
+ #if defined(linux)
+- else if ((num == 1) && ((ext1 == "rpm") || (ext1 == "deb")))
++ else if ((num == 1) && ((ext1 == "rpm") || (ext1 == "deb") || (ext3 == "pkg.tar.xz")))
+ {
+ ar = true;
+ new FXMenuCommand(menu, _("&View"), packageicon, current, FilePanel::ID_VIEW);
+@@ -5382,6 +5387,7 @@ long FilePanel::onCmdPkgInstall(FXObject
+
+ // Command to perform
+ FXString ext = FXPath::extension(name);
++ FXString ext3 = name.rafter('.', 3);
+ if (comparecase(ext, "rpm") == 0)
+ {
+ cmd = "rpm -Uvh " + path;
+@@ -5390,6 +5396,10 @@ long FilePanel::onCmdPkgInstall(FXObject
+ {
+ cmd = "dpkg -i "+ path;
+ }
++ else if (comparecase(ext3, "pkg.tar.xz") == 0)
++ {
++ cmd = "sudo pacman -U "+ path;
++ }
+
+ // Wait cursor
+ getApp()->beginWaitCursor();
+@@ -5429,6 +5439,7 @@ long FilePanel::onCmdPkgUninstall(FXObje
+
+ // Command to perform
+ FXString ext = FXPath::extension(name);
++ FXString ext3 = name.rafter('.', 3);
+ if (comparecase(ext, "rpm") == 0)
+ {
+ name = name.section('-', 0);
+@@ -5439,6 +5450,11 @@ long FilePanel::onCmdPkgUninstall(FXObje
+ name = name.section('_', 0);
+ cmd = "dpkg -r "+ name;
+ }
++ else if (comparecase(ext3, "pkg.tar.xz") == 0)
++ {
++ name = name.section('-', 0);
++ cmd = "sudo pacman -R " + name;
++ }
+
+ // Wait cursor
+ getApp()->beginWaitCursor();
+@@ -5925,9 +5941,13 @@ long FilePanel::onCmdPkgQuery(FXObject*
+ {
+ cmd = "rpm -qf " + ::quote(file);
+ }
++ else if (pkg_format == PKG_PKG)
++ {
++ cmd = "pacman -Qo " + ::quote(file);
++ }
+ else
+ {
+- MessageBox::error(this, BOX_OK, _("Error"), _("No compatible package manager (rpm or dpkg) found!"));
++ MessageBox::error(this, BOX_OK, _("Error"), _("No compatible package manager (rpm, dpkg or pacman) found!"));
+ return(0);
+ }
+
+@@ -5984,6 +6004,13 @@ long FilePanel::onCmdPkgQuery(FXObject*
+ {
+ if (str.find(' ') != -1) // Space character exists in the string
+ {
++ str = "";
++ }
++ }
++ if (pkg_format == PKG_PKG) // PKG based distribution
++ {
++ if (str.find(' ') != -1) // Space character exists in the string
++ {
+ str = "";
+ }
+ }
+diff -up src/xfe-1.43/src/help.h.orig src/xfe-1.43/src/help.h
+--- src/xfe-1.43/src/help.h.orig 2016-11-07 01:04:00.000000000 -0700
++++ src/xfe-1.43/src/help.h 2019-06-19 18:28:48.000000000 -0600
+@@ -49,7 +49,7 @@
+ - Panels synchronization and switching\n \
+ - Integrated text editor and viewer (X File Write, Xfw)\n \
+ - Integrated image viewer (X File Image, Xfi)\n \
+- - Integrated package (rpm or deb) viewer / installer / uninstaller (X File Package, Xfp)\n \
++ - Integrated package (rpm, deb or pkg) viewer / installer / uninstaller (X File Package, Xfp)\n \
+ - Custom shell scripts (like Nautilus scripts)\n \
+ - Search files and directories\n \
+ - Natural sort order (foo10.txt comes after foo2.txt...)\n \
+diff -up src/xfe-1.43/src/main.cpp.orig src/xfe-1.43/src/main.cpp
+--- src/xfe-1.43/src/main.cpp.orig 2018-05-16 09:57:11.000000000 -0600
++++ src/xfe-1.43/src/main.cpp 2019-06-19 18:28:48.000000000 -0600
+@@ -334,6 +334,7 @@ int main(int argc, char* argv[])
+ // For package query on Linux systems, try to guess if the default package format is deb or rpm:
+ // - if dpkg exists then the system uses deb packages
+ // - else if rpm exists, then the system uses rpm packages
++ // - else if pacman exists, then the system uses pkg packages
+ // - else another (unsupported) package manager is used
+
+ cmd = "dpkg --version";
+@@ -354,7 +355,17 @@ int main(int argc, char* argv[])
+ }
+ else
+ {
+- pkg_format = OTHER_PKG; // other (unsupported) package system
++ cmd = "pacman --version";
++ str = getCommandOutput(cmd);
++
++ if (str.find("pacman") != -1)
++ {
++ pkg_format = PKG_PKG; // pkg based system
++ }
++ else
++ {
++ pkg_format = OTHER_PKG; // other (unsupported) package system
++ }
+ }
+ }
+ #endif
+diff -up src/xfe-1.43/src/Properties.cpp.orig src/xfe-1.43/src/Properties.cpp
+--- src/xfe-1.43/src/Properties.cpp.orig 2018-02-19 02:28:23.000000000 -0700
++++ src/xfe-1.43/src/Properties.cpp 2019-06-19 18:28:48.000000000 -0600
+@@ -169,7 +169,7 @@ PropertiesBox::PropertiesBox(FXWindow* w
+ FXString grpid, usrid;
+ FXLabel* sizelabel = NULL;
+ struct stat linfo;
+- FXString type = "", extension, extension2, fileassoc;
++ FXString type = "", extension, extension2, extension3, fileassoc;
+ FXbool isLink, isBrokenLink;
+ FXString pathname, referredpath;
+ char mnttype[64], used[64], avail[64], pctr[64], size[64];
+@@ -245,16 +245,17 @@ PropertiesBox::PropertiesBox(FXWindow* w
+ FXString editlbl = _("Edit:");
+
+ extension = file.rafter('.', 1).lower();
+- if ((extension == "gz") || (extension == "tgz") || (extension == "tar") || (extension == "taz") || (extension == "bz2") ||
++ extension3 = file.rafter('.', 3).lower();
++ if (((extension == "gz") || (extension == "tgz") || (extension == "tar") || (extension == "taz") || (extension == "bz2") ||
+ (extension == "tbz2") || (extension == "tbz") || (extension == "xz") || (extension == "txz") || (extension == "zip") ||
+ (extension == "7z") || (extension == "Z") || (extension == "lzh") || (extension == "rar") ||
+- (extension == "ace") || (extension == "arj"))
++ (extension == "ace") || (extension == "arj")) && (extension3 != "pkg.tar.xz"))
+ {
+ is_ar = true; // archive
+ viewlbl = _("Extract:");
+ }
+ #if defined(linux)
+- else if (extension == "rpm")
++ else if ((extension == "rpm") || (extension == "deb") || (extension3 == "pkg.tar.xz"))
+ {
+ editlbl = _("Install/Upgrade:");
+ }
+diff -up src/xfe-1.43/src/SearchPanel.cpp.orig src/xfe-1.43/src/SearchPanel.cpp
+--- src/xfe-1.43/src/SearchPanel.cpp.orig 2018-05-16 05:37:15.000000000 -0600
++++ src/xfe-1.43/src/SearchPanel.cpp 2019-06-19 18:28:48.000000000 -0600
+@@ -2270,14 +2270,15 @@ long SearchPanel::onCmdPopupMenu(FXObjec
+ // Last and before last file extensions
+ FXString ext1 = name.rafter('.', 1).lower();
+ FXString ext2 = name.rafter('.', 2).lower();
++ FXString ext3 = name.rafter('.', 3).lower();
+
+ // Display the extract and package menus according to the archive extensions
+- if ((num == 1) && ((ext2 == "tar.gz") || (ext2 == "tar.bz2") || (ext2 == "tar.xz") || (ext2 == "tar.z")))
++ if ((num == 1) && (ext3 != "pkg.tar.xz") && ((ext2 == "tar.gz") || (ext2 == "tar.bz2") || (ext2 == "tar.xz") || (ext2 == "tar.z")))
+ {
+ ar = true;
+ new FXMenuCommand(menu, _("E&xtract to..."), archexticon, this, SearchPanel::ID_EXTRACT);
+ }
+- else if ((num == 1) && ((ext1 == "gz") || (ext1 == "bz2") || (ext1 == "xz") || (ext1 == "z")))
++ else if ((num == 1) && (ext3 != "pkg.tar.xz") && ((ext1 == "gz") || (ext1 == "bz2") || (ext1 == "xz") || (ext1 == "z")))
+ {
+ ar = true;
+ new FXMenuCommand(menu, _("&Extract here"), archexticon, this, SearchPanel::ID_EXTRACT);
+@@ -2288,7 +2289,7 @@ long SearchPanel::onCmdPopupMenu(FXObjec
+ new FXMenuCommand(menu, _("E&xtract to..."), archexticon, this, SearchPanel::ID_EXTRACT);
+ }
+ #if defined(linux)
+- else if ((num == 1) && ((ext1 == "rpm") || (ext1 == "deb")))
++ else if ((num == 1) && ((ext1 == "rpm") || (ext1 == "deb") || (ext3 == "pkg.tar.xz")))
+ {
+ ar = true;
+ new FXMenuCommand(menu, _("&View"), packageicon, this, SearchPanel::ID_VIEW);
+@@ -4326,9 +4327,13 @@ long SearchPanel::onCmdPkgQuery(FXObject
+ {
+ cmd = "rpm -qf " + ::quote(file);
+ }
++ else if (pkg_format == PKG_PKG)
++ {
++ cmd = "pacman -Qo " + ::quote(file);
++ }
+ else
+ {
+- MessageBox::error(this, BOX_OK, _("Error"), _("No compatible package manager (rpm or dpkg) found!"));
++ MessageBox::error(this, BOX_OK, _("Error"), _("No compatible package manager (rpm, dpkg or pacman) found!"));
+ return(0);
+ }
+
+@@ -4388,6 +4393,13 @@ long SearchPanel::onCmdPkgQuery(FXObject
+ str = "";
+ }
+ }
++ if (pkg_format == PKG_PKG) // PKG based distribution
++ {
++ if (str.find(' ') != -1) // Space character exists in the string
++ {
++ str = "";
++ }
++ }
+
+ // Display the related output message
+ FXString message;
+@@ -4436,5 +4448,4 @@ long SearchPanel::onUpdPkgQuery(FXObject
+ return(1);
+ }
+
+-
+ #endif
+diff -up src/xfe-1.43/src/xfedefs.h.orig src/xfe-1.43/src/xfedefs.h
+--- src/xfe-1.43/src/xfedefs.h.orig 2018-05-15 06:35:05.000000000 -0600
++++ src/xfe-1.43/src/xfedefs.h 2019-06-19 18:28:48.000000000 -0600
+@@ -294,6 +294,7 @@
+ // Package format
+ #define DEB_PKG 0
+ #define RPM_PKG 1
+-#define OTHER_PKG 2
++#define PKG_PKG 2
++#define OTHER_PKG 3
+
+ #endif
+diff -up src/xfe-1.43/src/XFilePackage.cpp.orig src/xfe-1.43/src/XFilePackage.cpp
+--- src/xfe-1.43/src/XFilePackage.cpp.orig 2015-12-15 06:53:31.000000000 -0700
++++ src/xfe-1.43/src/XFilePackage.cpp 2019-06-19 18:28:48.000000000 -0600
+@@ -32,6 +32,7 @@
+ char** args;
+ FXbool dpkg = false;
+ FXbool rpm = false;
++FXbool pacman = false;
+ FXColor highlightcolor;
+ FXbool allowPopupScroll = false;
+ FXuint single_click;
+@@ -223,7 +224,7 @@ long XFilePackage::onCmdAbout(FXObject*,
+ {
+ FXString msg;
+
+- msg.format(_("X File Package Version %s is a simple rpm or deb package manager.\n\n"), VERSION);
++ msg.format(_("X File Package Version %s is a simple rpm, deb or pkg package manager.\n\n"), VERSION);
+ msg += COPYRIGHT;
+ MessageBox about(this, _("About X File Package"), msg.text(), xfpicon, BOX_OK|DECOR_TITLE|DECOR_BORDER,
+ JUSTIFY_CENTER_X|ICON_BEFORE_TEXT|LAYOUT_TOP|LAYOUT_LEFT|LAYOUT_FILL_X|LAYOUT_FILL_Y);
+@@ -241,6 +242,7 @@ long XFilePackage::onCmdOpen(FXObject*,
+ _("RPM source packages"), "*.src.rpm",
+ _("RPM packages"), "*.rpm",
+ _("DEB packages"), "*.deb",
++ _("PKG packages"), "*.pkg.tar.xz",
+ NULL
+ };
+
+@@ -278,6 +280,7 @@ long XFilePackage::onCmdInstall(FXObject
+
+ // Command to perform
+ FXString ext = FXPath::extension(filename);
++ FXString ext3 = filename.rafter('.', 3);
+ if (comparecase(ext, "rpm") == 0)
+ {
+ cmd = "rpm -Uvh "+filename;
+@@ -286,6 +289,10 @@ long XFilePackage::onCmdInstall(FXObject
+ {
+ cmd = "dpkg -i "+filename;
+ }
++ else if (comparecase(ext3, "pkg.tar.xz") == 0)
++ {
++ cmd = "sudo pacman -U "+filename;
++ }
+ else
+ {
+ MessageBox::error(this, BOX_OK, _("Error"), _("Unknown package format"));
+@@ -322,6 +329,7 @@ long XFilePackage::onCmdUninstall(FXObje
+ // Command to perform
+ FXString package;
+ FXString ext = FXPath::extension(filename);
++ FXString ext3 = filename.rafter('.', 3);
+ if (comparecase(ext, "rpm") == 0)
+ {
+ // Get package name
+@@ -336,6 +344,13 @@ long XFilePackage::onCmdUninstall(FXObje
+ package = package.section('_', 0);
+ cmd = "dpkg -r "+ package;
+ }
++ else if (comparecase(ext3, "pkg.tar.xz") == 0)
++ {
++ // Get package name
++ package = FXPath::name(filename);
++ package = package.section('-', 0);
++ cmd = "sudo pacman -R "+ package;
++ }
+ else
+ {
+ MessageBox::error(this, BOX_OK, _("Error"), _("Unknown package format"));
+@@ -425,6 +440,7 @@ int XFilePackage::readFileList(void)
+ FXString cmd;
+
+ FXString ext = FXPath::extension(filename);
++ FXString ext3 = filename.rafter('.', 3);
+
+ if (comparecase(ext, "rpm") == 0)
+ {
+@@ -436,6 +452,11 @@ int XFilePackage::readFileList(void)
+ errorflag = false;
+ cmd = "dpkg -c "+::quote(filename);
+ }
++ else if (comparecase(ext3, "pkg.tar.xz") == 0)
++ {
++ errorflag = false;
++ cmd = "pacman -Qlp "+::quote(filename);
++ }
+ else if (errorflag == false)
+ {
+ errorflag = true;
+@@ -487,6 +508,7 @@ int XFilePackage::readDescription(void)
+ FXString buf;
+
+ FXString ext = FXPath::extension(filename);
++ FXString ext3 = filename.rafter('.', 3);
+
+ if (comparecase(ext, "rpm") == 0)
+ {
+@@ -500,6 +522,12 @@ int XFilePackage::readDescription(void)
+ buf += _("[DEB package]\n");
+ cmd = "dpkg -I "+::quote(filename);
+ }
++ else if (comparecase(ext3, "pkg.tar.xz") == 0)
++ {
++ errorflag = false;
++ buf += _("[PKG package]\n");
++ cmd = "pacman -Qip "+::quote(filename);
++ }
+ else if (errorflag == false)
+ {
+ errorflag = true;
+@@ -646,7 +674,7 @@ void XFilePackage::create()
+ -h, --help Print (this) help screen and exit.\n\
+ -v, --version Print version information and exit.\n\
+ \n\
+- [package] is the path to the rpm or deb package you want to open on start up.\n\
++ [package] is the path to the rpm, deb or pkg package you want to open on start up.\n\
+ \n")
+
+
+@@ -797,6 +825,7 @@ int main(int argc, char* argv[])
+
+ // Test the existence of the Debian package manager (dpkg)
+ // and the RedHat package manager (rpm)
++ // and the ArchLinux package manager (pacman)
+ FXString cmd = "dpkg --version";
+ FXString str = getCommandOutput(cmd);
+
+@@ -813,10 +842,18 @@ int main(int argc, char* argv[])
+ rpm = true;
+ }
+
++ cmd = "pacman --version";
++ str = getCommandOutput(cmd);
++
++ if (str.find("pacman") != -1)
++ {
++ pacman = true;
++ }
++
+ // No package manager was found
+- if ((dpkg == false) && (rpm == false))
++ if ((dpkg == false) && (rpm == false) && (pacman == false))
+ {
+- MessageBox::error(window, BOX_OK, _("Error"), _("No compatible package manager (rpm or dpkg) found!"));
++ MessageBox::error(window, BOX_OK, _("Error"), _("No compatible package manager (rpm, dpkg or pacman) found!"));
+ exit(EXIT_FAILURE);
+ }
+