diff options
author | Brian Bidulock | 2015-06-10 23:28:05 -0600 |
---|---|---|
committer | Brian Bidulock | 2015-06-10 23:28:05 -0600 |
commit | e84ddf87c9409f5ce7422bb988367c64d28dc787 (patch) | |
tree | 8c8f6be4fad2b6c98b6bfd3c7c58f68223ec0975 | |
download | aur-e84ddf87c9409f5ce7422bb988367c64d28dc787.tar.gz |
initial version
-rw-r--r-- | .SRCINFO | 22 | ||||
-rw-r--r-- | PKGBUILD | 43 | ||||
-rw-r--r-- | arch-yaourt.patch | 335 | ||||
-rw-r--r-- | xfe.install | 11 |
4 files changed, 411 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..b29797669e65 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,22 @@ +pkgbase = xfe-arch + pkgdesc = An MS-Explorer like file manager for X with Archlinux xfp support. + pkgver = 1.37 + pkgrel = 1 + url = http://roland65.free.fr/xfe + install = xfe.install + arch = i686 + arch = x86_64 + license = GPL + makedepends = intltool + depends = fox + depends = desktop-file-utils + optdepends = yaourt: xfp archlinux support + provides = xfe=1.37 + conflicts = xfe + source = http://downloads.sourceforge.net/sourceforge/xfe/xfe-1.37.tar.gz + source = arch-yaourt.patch + md5sums = ce2a317ab4f7d728878d815afe13c1be + md5sums = 513b73351f65137f8796934dc041b8e9 + +pkgname = xfe-arch + diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..75f63aaf1277 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,43 @@ +# Maintainer: Brian Bidulock <bidulock@openss7.org> +# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com> +# Contributor: Eric Belanger <belanger@astro.umontreal.ca> +# Contributor: Ravi Desai <ravster3@hotmail.com> + +pkgname=xfe-arch +_pkgname=xfe +pkgver=1.37 +pkgrel=1 +pkgdesc="An MS-Explorer like file manager for X with Archlinux xfp support." +arch=('i686' 'x86_64') +url="http://roland65.free.fr/xfe" +license=("GPL") +provides=("$_pkgname=$pkgver") +conflicts=("$_pkgname") +depends=('fox' 'desktop-file-utils') +makedepends=('intltool') +optdepends=('yaourt: xfp archlinux support') +install="$_pkgname.install" +source=("http://downloads.sourceforge.net/sourceforge/$_pkgname/$_pkgname-$pkgver.tar.gz" + "arch-yaourt.patch") +md5sums=('ce2a317ab4f7d728878d815afe13c1be' + '513b73351f65137f8796934dc041b8e9') + +prepare() { + cd "$srcdir/$_pkgname-$pkgver" + patch -Np1 -b -z .orig <../arch-yaourt.patch + sed -i 's|freetype/config/ftheader.h|config/ftheader.h|g' configure.ac + aclocal + automake --add-missing + autoreconf +} + +build() { + cd "$srcdir/$_pkgname-$pkgver" + ./configure --prefix=/usr + make +} + +package() { + cd "$srcdir/$_pkgname-$pkgver" + make DESTDIR="$pkgdir" install +} diff --git a/arch-yaourt.patch b/arch-yaourt.patch new file mode 100644 index 000000000000..240714d28f3b --- /dev/null +++ b/arch-yaourt.patch @@ -0,0 +1,335 @@ +diff --git a/src/FilePanel.cpp b/src/FilePanel.cpp +index 8691ca3..6cffb52 100644 +--- a/src/FilePanel.cpp ++++ b/src/FilePanel.cpp +@@ -66,6 +66,7 @@ extern FXStringDict* fsdevices; + extern FXStringDict* mtdevices; + extern FXbool deb_based; + extern FXbool rpm_based; ++extern FXbool pkg_based; + #endif + + extern FXbool allowPopupScroll; +@@ -3582,10 +3583,12 @@ long FilePanel::onCmdPopupMenu(FXObject* o,FXSelector s,void* p) + // Last and before last file extensions + FXString ext1=name.rafter('.',1); + FXString ext2=name.rafter('.',2); ++ FXString ext3=name.rafter('.',3); + + // Convert these extensions to lower case + ext1.lower(); + ext2.lower(); ++ ext3.lower(); + + // Destination folder name + FXString extract_to_folder; +@@ -3601,6 +3604,14 @@ long FilePanel::onCmdPopupMenu(FXObject* o,FXSelector s,void* p) + 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); ++#if defined(linux) ++ if (ext3=="pkg.tar.xz") ++ { ++ new FXMenuCommand(menu,_("&View"),packageicon,current,FilePanel::ID_VIEW); ++ new FXMenuCommand(menu,_("Install/Up&grade"),packageicon,current,ID_PKG_INSTALL); ++ new FXMenuCommand(menu,_("Un&install"),packageicon,current,ID_PKG_UNINSTALL); ++ } ++#endif + } + else if ((num==1) && (ext1=="gz" || ext1=="bz2" || ext1=="xz" || ext1=="z")) + { +@@ -4265,6 +4276,8 @@ long FilePanel::onCmdPkgInstall(FXObject*,FXSelector,void*) + cmd="rpm -Uvh " + path; + else if(comparecase(ext,"deb")==0) + cmd="dpkg -i "+ path; ++ else if(comparecase(ext,"xz")==0) ++ cmd="yaourt -U "+ path; + + // Wait cursor + getApp()->beginWaitCursor(); +@@ -4313,6 +4326,11 @@ long FilePanel::onCmdPkgUninstall(FXObject*,FXSelector,void*) + name=name.section('_',0); + cmd="dpkg -r "+ name; + } ++ else if(comparecase(ext,"xz")==0) ++ { ++ name=name.section('-',0); ++ cmd="yaourt -R "+ name; ++ } + + // Wait cursor + getApp()->beginWaitCursor(); +@@ -4728,6 +4746,8 @@ long FilePanel::onCmdPkgQuery(FXObject* o,FXSelector sel,void*) + cmd="rpm -qf " + ::quote(file); + else if(deb_based) + cmd="dpkg -S " + ::quote(file); ++ else if(pkg_based) ++ cmd="yaourt -Qo " + ::quote(file) + " 2>/dev/null"; + else + { + MessageBox::error(this,BOX_OK,_("Error"),_("No compatible package manager (rpm or dpkg) found!")); +@@ -4780,6 +4800,13 @@ long FilePanel::onCmdPkgQuery(FXObject* o,FXSelector sel,void*) + else + str=""; + } ++ if (pkg_based) // PKG based distribution ++ { ++ if (str.find("owned by ") != -1) ++ str=str.erase(0,str.find("owned by ")+9); ++ else ++ str=""; ++ } + + // Display the related output message + FXString message; +diff --git a/src/Properties.cpp b/src/Properties.cpp +index f01603f..94feaef 100644 +--- a/src/Properties.cpp ++++ b/src/Properties.cpp +@@ -228,6 +228,14 @@ PropertiesBox::PropertiesBox(FXWindow *win,FXString file,FXString path): DialogB + + extension=file.rafter('.',1); + extension=extension.lower(); ++#if defined(linux) ++ FXString ext3; ++ ext3=file.rafter('.',3); ++ ext3=ext3.lower(); ++ if (ext3=="pkg.tar.xz") ++ editlbl = _("Install/Upgrade:"); ++ else ++#endif + 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" +diff --git a/src/SearchPanel.cpp b/src/SearchPanel.cpp +index 19106d4..7ce021a 100644 +--- a/src/SearchPanel.cpp ++++ b/src/SearchPanel.cpp +@@ -52,6 +52,7 @@ extern int OpenNum; + #if defined(linux) + extern FXbool deb_based; + extern FXbool rpm_based; ++extern FXbool pkg_based; + #endif + + // Button separator margins and height +@@ -1687,16 +1688,22 @@ long SearchPanel::onCmdPopupMenu(FXObject* o,FXSelector s,void* p) + // Last and before last file extensions + FXString ext1=name.rafter('.',1); + FXString ext2=name.rafter('.',2); ++ FXString ext3=name.rafter('.',3); + + // Convert these extensions to lower case + ext1.lower(); + ext2.lower(); ++ ext3.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")) + { + ar=TRUE; + new FXMenuCommand(menu,_("E&xtract to..."),archexticon,this,SearchPanel::ID_EXTRACT); ++#if defined(linux) ++ if (ext3=="pkg.tar.xz") ++ new FXMenuCommand(menu,_("&View"),packageicon,this,SearchPanel::ID_VIEW); ++#endif + } + else if ((num==1) && (ext1=="gz" || ext1=="bz2" || ext1=="xz" || ext1=="z")) + { +@@ -3368,9 +3375,11 @@ long SearchPanel::onCmdPkgQuery(FXObject* o,FXSelector sel,void*) + cmd="rpm -qf " + ::quote(file); + else if(deb_based) + cmd="dpkg -S " + ::quote(file); ++ else if(pkg_based) ++ cmd="yaourt -Qo " + ::quote(file) + " 2>/dev/null"; + 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 yaourt) found!")); + return 0; + } + +@@ -3420,6 +3429,14 @@ long SearchPanel::onCmdPkgQuery(FXObject* o,FXSelector sel,void*) + else + str=""; + } ++ if (pkg_based) // PKG based distribution ++ { ++ // "No package" indicates no package otherwise part after "owned by" ++ if (str.find("owned by ") != -1) ++ str=str.erase(0,str.find("owned by ")+9); ++ else ++ str=""; ++ } + + // Display the related output message + FXString message; +diff --git a/src/XFilePackage.cpp b/src/XFilePackage.cpp +index e0e341d..d08ec00 100644 +--- a/src/XFilePackage.cpp ++++ b/src/XFilePackage.cpp +@@ -31,6 +31,7 @@ + char **args; + FXbool dpkg=FALSE; + FXbool rpm=FALSE; ++FXbool yaourt=FALSE; + FXColor highlightcolor; + FXbool allowPopupScroll=FALSE; + FXuint single_click; +@@ -212,7 +213,7 @@ XFilePackage::~XFilePackage() + long XFilePackage::onCmdAbout(FXObject*,FXSelector,void*) + { + 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); +@@ -229,6 +230,8 @@ long XFilePackage::onCmdOpen(FXObject*,FXSelector,void*) + _("RPM source packages"), "*.src.rpm", + _("RPM packages"), "*.rpm", + _("DEB packages"), "*.deb", ++ _("SRC packages"), "*.src.tar.gz", ++ _("PKG packages"), "*.pkg.tar.xz", + NULL + }; + +@@ -268,6 +271,8 @@ long XFilePackage::onCmdInstall(FXObject*,FXSelector,void*) + cmd="rpm -Uvh "+filename; + else if(comparecase(ext,"deb")==0) + cmd="dpkg -i "+filename; ++ else if(comparecase(ext,"xz")==0) ++ cmd="yaourt -U "+filename; + else + { + MessageBox::error(this,BOX_OK,_("Error"),_("Unknown package format")); +@@ -318,6 +323,13 @@ long XFilePackage::onCmdUninstall(FXObject*,FXSelector,void*) + package=package.section('_',0); + cmd="dpkg -r "+ package; + } ++ else if(comparecase(ext,"xz")==0) ++ { ++ // Get package name ++ package=FXPath::name(filename); ++ package=package.section('-',0); ++ cmd="yaourt -R "+ package; ++ } + else + { + MessageBox::error(this,BOX_OK,_("Error"),_("Unknown package format")); +@@ -416,6 +428,11 @@ long XFilePackage::onUpdFileList(FXObject*,FXSelector,void*) + errorflag=FALSE; + cmd="dpkg -c "+::quote(filename); + } ++ else if(comparecase(ext,"xz")==0) ++ { ++ errorflag=FALSE; ++ cmd="yaourt -Qlpq "+::quote(filename); ++ } + else if (errorflag==FALSE) + { + errorflag=TRUE; +@@ -480,6 +497,12 @@ long XFilePackage::onUpdDescription(FXObject*,FXSelector,void*) + buf += _("[DEB package]\n"); + cmd="dpkg -I "+::quote(filename); + } ++ else if(comparecase(ext,"xz")==0) ++ { ++ errorflag=FALSE; ++ buf += _("[PKG package]\n"); ++ cmd="yaourt -Qip "+::quote(filename); ++ } + else if (errorflag==FALSE) + { + errorflag=TRUE; +@@ -627,7 +650,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 arch package you want to open on start up.\n\ + \n") + + +@@ -793,11 +816,27 @@ int main(int argc,char* argv[]) + if (strstr(textrpm,"RPM")!=NULL) + rpm=TRUE; + pclose(rpmcmd); ++ ++ cmd="yaourt --version 2>&1"; ++ FILE *pkgcmd=popen(cmd.text(),"r"); ++ if(!pkgcmd) ++ { ++ perror("popen"); ++ exit(1); ++ } ++ char textpkg[10000]={0}; ++ FXString bufpkg; ++ while(fgets(textpkg,sizeof(textpkg),pkgcmd)) ++ bufpkg+=textpkg; ++ snprintf(textpkg,sizeof(textpkg)-1,"%s",bufpkg.text()); ++ if (strstr(textpkg,"yaourt")!=NULL) ++ yaourt=TRUE; ++ pclose(pkgcmd); + + // No package manager was found +- if ((dpkg==FALSE) && (rpm==FALSE)) ++ if ((dpkg==FALSE) && (rpm==FALSE) && (yaourt==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 yaourt) found!")); + exit(1); + } + +diff --git a/src/help.h b/src/help.h +index 850ec0d..5c44c09 100644 +--- a/src/help.h ++++ b/src/help.h +@@ -49,7 +49,7 @@ + - Integrated text editor (X File Write, Xfw)\n \ + - Integrated text viewer (X File View, Xfv)\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 \ + - Copy/Cut/Paste files from and to your favorite desktop (GNOME/KDE/XFCE/ROX)\n \ +diff --git a/src/main.cpp b/src/main.cpp +index 79bf00c..5586ae3 100644 +--- a/src/main.cpp ++++ b/src/main.cpp +@@ -198,6 +198,7 @@ char **args; + #if defined(linux) + FXbool deb_based=FALSE; + FXbool rpm_based=FALSE; ++FXbool pkg_based=FALSE; + #endif + + // Base directories (according to the Freedesktop specification version 0.7) +@@ -336,6 +337,26 @@ int main(int argc,char *argv[]) + rpm_based=TRUE; + pclose(rpmcmd); + } ++ ++ // When the distro is neither debian nor rpm based, test if ++ // yaourt based. ++ if (!deb_based && !rpm_based) { ++ cmd="yaourt --version 2>&1"; ++ FILE *pkgcmd=popen(cmd.text(),"r"); ++ if (!pkgcmd) ++ { ++ perror("popen"); ++ exit(1); ++ } ++ char textpkg[10000]={0}; ++ FXString bufpkg; ++ while(fgets(textpkg,sizeof(textpkg),pkgcmd)) ++ bufpkg+=textpkg; ++ snprintf(textpkg,sizeof(textpkg)-1,"%s",bufpkg.text()); ++ if (strstr(textpkg,"yaourt")!=NULL) ++ pkg_based=TRUE; ++ pclose(pkgcmd); ++ } + #endif + + // Parse basic arguments diff --git a/xfe.install b/xfe.install new file mode 100644 index 000000000000..e111ef946053 --- /dev/null +++ b/xfe.install @@ -0,0 +1,11 @@ +post_install() { + update-desktop-database -q +} + +post_upgrade() { + post_install +} + +post_remove() { + post_install +} |