Date: Thu, 10 Oct 2002 11:30:02 -0700 (PDT) From: Heiner Eichmann <h.eichmann@gmx.de> To: freebsd-ports@FreeBSD.org Subject: Re: ports/43164: New port: krusader - a file-manager for KDE Message-ID: <200210101830.g9AIU2MC035765@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR ports/43164; it has been noted by GNATS. From: Heiner Eichmann <h.eichmann@gmx.de> To: freebsd-gnats-submit@FreeBSD.org Cc: stefan.jahn@nemesis-sektor.de Subject: Re: ports/43164: New port: krusader - a file-manager for KDE Date: Thu, 10 Oct 2002 20:29:17 +0200 As discussed with the original poster I would take the following port instead. It handles the following problems: - mount manager does not work due to differences in the fstab and mount output - key bindings can not be changed due to a bug in the 1.10 version (krusader auther will fix it in the next release) Heiner ======================================================================================= # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # krusader # krusader/files # krusader/files/patch-krusader::MountMan::kmountman.cpp # krusader/files/patch-krusader::Konfigurator::kglookfeelimpl.cpp # krusader/distinfo # krusader/Makefile # krusader/pkg-comment # krusader/pkg-descr # krusader/pkg-plist # echo c - krusader mkdir -p krusader > /dev/null 2>&1 echo c - krusader/files mkdir -p krusader/files > /dev/null 2>&1 echo x - krusader/files/patch-krusader::MountMan::kmountman.cpp sed 's/^X//' >krusader/files/patch-krusader::MountMan::kmountman.cpp << 'END-of-krusader/files/patch-krusader::MountMan::kmountman.cpp' X*** krusader/MountMan/kmountman.cpp.orig Tue Aug 20 14:05:20 2002 X--- krusader/MountMan/kmountman.cpp Tue Aug 20 16:33:46 2002 X*************** X*** 176,182 **** X --i; fstab.close(); // finished with it X for (j=0; j<=i; ++j) { X if (temp[0][j]=="" || temp[0][j]=="tmpfs" || temp[0][j]=="none" || temp[0][j]=="proc" || X! temp[0][j]=="swap" || temp[1][j]=="proc" || temp[1][j]=="/dev/pts" || X temp[1][j]=="swap" || temp[4][j]=="supermount") continue; X ++noOfFilesystems; X } X--- 176,182 ---- X --i; fstab.close(); // finished with it X for (j=0; j<=i; ++j) { X if (temp[0][j]=="" || temp[0][j]=="tmpfs" || temp[0][j]=="none" || temp[0][j]=="proc" || X! temp[0][j]=="swap" || temp[1][j]=="procfs" || temp[1][j]=="/dev/pts" || // FreeBSD: procfs instead of proc X temp[1][j]=="swap" || temp[4][j]=="supermount") continue; X ++noOfFilesystems; X } X*************** X*** 203,220 **** X } X } X kdDebug() << "Mt.Man: found the followning:\n" << forDebugOnly << "Trying DF..." << endl; X return true; X } X X // run DF process and when it finishes, catch output with "parseDfData" X /////////////////////////////////////////////////////////////////////// X void KMountMan::updateFilesystems() { X! // create the "df -P -T" process X tempFile = new KTempFile(); X tempFile->setAutoDelete(true); X dfProc.clearArguments(); X dfProc.setExecutable("df"); X! dfProc << "-T" << "-P" << ">" << tempFile->name(); X connect(&dfProc, SIGNAL(processExited(KProcess *)), this, X SLOT(finishUpdateFilesystems())); X dfProc.start(KProcess::NotifyOnExit); X--- 203,267 ---- X } X } X kdDebug() << "Mt.Man: found the followning:\n" << forDebugOnly << "Trying DF..." << endl; X+ X+ X+ // FreeBSD problem: df does not retrive fs type. X+ // Workaround: execute mount -p and merge result. X+ X+ KShellProcess proc; X+ proc << "mount -p"; X+ X+ // connect all outputs to collectOutput, to be displayed later X+ connect(&proc,SIGNAL(receivedStdout(KProcess*, char*, int)), X+ this,SLOT(collectOutput(KProcess*, char*,int))); X+ // launch X+ clearOutput(); X+ if (!proc.start(KProcess::Block,KProcess::Stdout)) { X+ KMessageBox::error(0, X+ i18n("Unable to execute 'mount -p' !!!")); X+ return true; X+ } X+ X+ QString str = getOutput(); X+ QTextStream t2(str, IO_ReadOnly); X+ while (!t2.atEnd()) { X+ s = t2.readLine(); X+ s = s.simplifyWhiteSpace(); // remove TABs X+ if (s==QString::null || s=="") continue; // skip empty lines in fstab X+ // temp[0]==name, temp[1]==type, temp[2]==mount point, temp[3]==options X+ // temp[4] is reserved for special cases, right now, only for supermount X+ QString temp0=nextWord(s,' '); X+ QString temp2=nextWord(s,' '); X+ QString temp1=nextWord(s,' '); X+ QString temp3=nextWord(s,' '); X+ if (temp0=="" || temp2=="/proc" || temp2=="/dev/pts" || X+ temp2=="swap" || temp0=="none" || temp0=="procfs" || X+ temp0=="swap" || location(temp0)) continue; X+ else { X+ fsData* system=new fsData(); X+ system->setName(temp0); X+ system->setType(temp1); X+ system->setMntPoint(temp2); X+ system->supermount=false; X+ system->options=temp3; X+ filesystems.append(system); X+ ++noOfFilesystems; X+ kdWarning() << "Mt.Man: filesystem [" << temp0 << "] found by mount -p is unlisted in /etc/fstab." << endl; X+ } X+ } X+ X return true; X } X X // run DF process and when it finishes, catch output with "parseDfData" X /////////////////////////////////////////////////////////////////////// X void KMountMan::updateFilesystems() { X! // create the "df" process // FreeBSD: df instead of df -T -P X tempFile = new KTempFile(); X tempFile->setAutoDelete(true); X dfProc.clearArguments(); X dfProc.setExecutable("df"); X! dfProc << ">" << tempFile->name(); // FreeBSD: df instead of df -T -P X connect(&dfProc, SIGNAL(processExited(KProcess *)), this, X SLOT(finishUpdateFilesystems())); X dfProc.start(KProcess::NotifyOnExit); X*************** X*** 244,250 **** X fsData* KMountMan::location(QString name) { X fsData* it; X for (it=filesystems.first() ; (it!=0) ; it=filesystems.next()) X! if (followLink(it->name())==followLink(name)) break; X return it; X } X X--- 291,300 ---- X fsData* KMountMan::location(QString name) { X fsData* it; X for (it=filesystems.first() ; (it!=0) ; it=filesystems.next()) X! { X! if (followLink(it->name())==followLink(name)) break; X! if (name.left(2) == "//" && !strcasecmp(followLink(it->name()).latin1(), followLink(name).latin1())) break; // FreeBSD: ignore case due to smbfs mounts X! } X return it; X } X X*************** X*** 336,341 **** X--- 386,392 ---- X temp=nextWord(s,' '); X // avoid adding unwanted filesystems to the list X if (temp=="tmpfs") continue; X+ if (temp == "procfs") continue;// FreeBSD: ignore procfs X temp=followLink(temp); // make sure DF gives us the true device and not a link X fsData* loc=location(temp); // where is the filesystem located in our list? X if (loc==0) { X*************** X*** 347,361 **** X else loc->setName("/dev/"+temp); X newFS=true; X } X! temp=nextWord(s,' '); // catch the TYPE X // is it supermounted ? X! if (temp=="supermount") loc->supermount=true; X! loc->setType(temp); X! if (loc->type()!=temp) { X! kdWarning() << "Mt.Man: according to DF, filesystem [" << loc->name() << X! "] has a different type from what's stated in /etc/fstab." << endl; X! loc->setType(temp); // DF knows best X! } X temp=nextWord(s,' '); X loc->setTotalBlks(temp.toLong()); X temp=nextWord(s,' '); X--- 398,412 ---- X else loc->setName("/dev/"+temp); X newFS=true; X } X! // temp=nextWord(s,' '); // catch the TYPE // FreeBSD: different df output X // is it supermounted ? X! //if (temp=="supermount") loc->supermount=true; X! //loc->setType(temp); X! //if (loc->type()!=temp) { X! // kdWarning() << "Mt.Man: according to DF, filesystem [" << loc->name() << X! // "] has a different type from what's stated in /etc/fstab." << endl; X! // loc->setType(temp); // DF knows best X! //} X temp=nextWord(s,' '); X loc->setTotalBlks(temp.toLong()); X temp=nextWord(s,' '); X*************** X*** 389,395 **** X Operational=Ready=false; X return; // if something went wrong, bail out! X } else Operational=true; // mountman is alive but not yet ready X! updateFilesystems(); // use the output of "DF -T -P" to update data X } X X void KMountMan::collectOutput(KProcess *p, char *buffer,int buflen) { X--- 440,446 ---- X Operational=Ready=false; X return; // if something went wrong, bail out! X } else Operational=true; // mountman is alive but not yet ready X! updateFilesystems(); // use the output of "DF" to update data // FreeBSD: df instead of df -T -P X } X X void KMountMan::collectOutput(KProcess *p, char *buffer,int buflen) { X*************** X*** 523,535 **** X KMessageBox::information(0,i18n("Error ejecting device ! You need to have 'eject' in your path."),i18n("Error"),"CantExecuteEjectWarning"); X } X X // returns true if the path is an ejectable mount point (at the moment CDROM) X bool KMountMan::ejectable(QString path) { X! fsData* it; X! for (it=filesystems.first() ; (it!=0) ; it=filesystems.next()) X! if (it->mntPoint()==path && X! (it->type()=="iso9660" || followLink(it->name()).left(2)=="cd")) X! return true; X return false; X } X X--- 574,587 ---- X KMessageBox::information(0,i18n("Error ejecting device ! You need to have 'eject' in your path."),i18n("Error"),"CantExecuteEjectWarning"); X } X X+ X // returns true if the path is an ejectable mount point (at the moment CDROM) X bool KMountMan::ejectable(QString path) { X! //fsData* it;// FreeBSD: no eject command X! //for (it=filesystems.first() ; (it!=0) ; it=filesystems.next()) X! // if (it->mntPoint()==path && X! // (it->type()=="iso9660" || followLink(it->name()).left(2)=="cd")) X! // return true; X return false; X } X X*************** X*** 537,544 **** X statsCollector::statsCollector(QString path, QObject *caller): QObject() { X QString stats; X connect(this, SIGNAL(gotStats(QString)), caller, SLOT(gotStats(QString))); X! if (path.left(5)=="/proc") { // /proc is a special case - no volume information X! stats=i18n("No space information on a [proc]"); X emit gotStats(stats); X return; X } X--- 589,596 ---- X statsCollector::statsCollector(QString path, QObject *caller): QObject() { X QString stats; X connect(this, SIGNAL(gotStats(QString)), caller, SLOT(gotStats(QString))); X! if (path.left(11)=="/dev/procfs") { // /dev/procfs is a special case - no volume information FreeBSD: procfs instead of proc X! stats=i18n("No space information on a [procfs]"); // FreeBSD: procfs instead of proc X emit gotStats(stats); X return; X } X*************** X*** 571,577 **** X QString s; X s = t.readLine(); // read the 1st line - it's trash for us X s = t.readLine(); // this is the important one! X! data->setName(KMountMan::nextWord(s,' ')); X data->setType(KMountMan::nextWord(s,' ')); X data->setTotalBlks( KMountMan::nextWord(s,' ').toLong() ); X data->setUsedBlks( KMountMan::nextWord(s,' ').toLong() ); X--- 623,629 ---- X QString s; X s = t.readLine(); // read the 1st line - it's trash for us X s = t.readLine(); // this is the important one! X! // data->setName(KMountMan::nextWord(s,' ')); FreeBSD: different df output format X data->setType(KMountMan::nextWord(s,' ')); X data->setTotalBlks( KMountMan::nextWord(s,' ').toLong() ); X data->setUsedBlks( KMountMan::nextWord(s,' ').toLong() ); X*************** X*** 587,593 **** X KShellProcess dfProc; X QString tmpFile = krApp->getTempFile(); X X! dfProc << "df" << "-T" << "-P" << "\""+path+"\"" << ">" << tmpFile; X dfProc.start(KProcess::Block); X parseDf(tmpFile, data); X QDir().remove(tmpFile); X--- 639,645 ---- X KShellProcess dfProc; X QString tmpFile = krApp->getTempFile(); X X! dfProc << "df" << "\""+path+"\"" << ">" << tmpFile; // FreeBSD: df instead of df -T -P X dfProc.start(KProcess::Block); X parseDf(tmpFile, data); X QDir().remove(tmpFile); END-of-krusader/files/patch-krusader::MountMan::kmountman.cpp echo x - krusader/files/patch-krusader::Konfigurator::kglookfeelimpl.cpp sed 's/^X//' >krusader/files/patch-krusader::Konfigurator::kglookfeelimpl.cpp << 'END-of-krusader/files/patch-krusader::Konfigurator::kg.cpp' X*** krusader/Konfigurator/kglookfeelimpl.cpp.orig Tue Aug 20 14:05:31 2002 X--- krusader/Konfigurator/kglookfeelimpl.cpp Mon Sep 30 20:42:25 2002 X*************** X*** 129,134 **** X--- 129,135 ---- X else i=0; X krConfig->writeEntry("Mouse Selection",i); X editToolbar->save(); // save toolbar settings X+ editKeys->save(); X krConfig->sync(); X X // return the toolbar to its previous state (thankx to Tin) END-of-krusader/files/patch-krusader::Konfigurator::kg.cpp echo x - krusader/distinfo sed 's/^X//' >krusader/distinfo << 'END-of-krusader/distinfo' XMD5 (krusader-1.10.tar.gz) = 80b6ff59c2e622ab2f381125157566b3 END-of-krusader/distinfo echo x - krusader/Makefile sed 's/^X//' >krusader/Makefile << 'END-of-krusader/Makefile' X# New ports collection makefile for: krusader X# Date created: 10 August 2002 X# Whom: Heiner <h.eichmann@gmx.de> X# X# $FreeBSD$ X# X XPORTNAME= krusader XPORTVERSION= 1.10 XCATEGORIES= x11-fm kde XMASTER_SITES= http://krusader.sourceforge.net/stable/v1.10/ XMASTER_SITE_SUBDIR=krusader X XMAINTAINER= h.eichmann@gmx.de X XBUILD_DEPENDS= autoconf:${PORTSDIR}/devel/autoconf \ X automake:${PORTSDIR}/devel/automake X XUSE_KDELIBS_VER=3 XGNU_CONFIGURE= yes XUSE_GMAKE= yes XCONFIGURE_ARGS+= --with-qtdoc-dir=${X11BASE}/share/doc/qt/html X#_NO_KDE_OBJPRELINK=yes X#_NO_KDE_FINAL= yes X X.include "${.CURDIR}/../../x11/kde3/Makefile.kde" X Xpost-install: X @${ECHO} X @${ECHO} "If you would like to use more archivers that this" X @${ECHO} "program supports, install the following ports:" X @${ECHO} "archivers/zip" X @${ECHO} "archivers/unzip" X @${ECHO} "archivers/bzip2" X @${ECHO} "archivers/rar" X @${ECHO} "archivers/unrar" X @${ECHO} "archivers/unace" X @${ECHO} "archivers/unarj" X @${ECHO} "archivers/rpm" X @${ECHO} X X.include <bsd.port.mk> END-of-krusader/Makefile echo x - krusader/pkg-comment sed 's/^X//' >krusader/pkg-comment << 'END-of-krusader/pkg-comment' XA two window file-manager for KDE 3, like midnight or norton commander END-of-krusader/pkg-comment echo x - krusader/pkg-descr sed 's/^X//' >krusader/pkg-descr << 'END-of-krusader/pkg-descr' XKrusader is a File Manager for KDE 3.x, patterned after Xold-school managers like Midnight Commander and Norton XCommander. It features basically all your file-management Xneeds, plus extensive archive handling, supporting many Xarchive formats, mounted filesystems support, ftp, and Xmuch much more. X XIt is (almost) completely customizable, very user friendly, Xfast, and damn good looking :-) X XWWW: http://krusader.sourceforge.net X XHeiner Xh.eichmann@gmx.de END-of-krusader/pkg-descr echo x - krusader/pkg-plist sed 's/^X//' >krusader/pkg-plist << 'END-of-krusader/pkg-plist' Xbin/krusader Xshare/doc/HTML/en/krusader/commands.sgml Xshare/doc/HTML/en/krusader/credits.sgml Xshare/doc/HTML/en/krusader/faq.sgml Xshare/doc/HTML/en/krusader/index.docbook Xshare/doc/HTML/en/krusader/installation.sgml Xshare/doc/HTML/en/krusader/introduction.sgml Xshare/doc/HTML/en/krusader/konfigurator.sgml Xshare/doc/HTML/en/krusader/krusader-tools.sgml Xshare/doc/HTML/en/krusader/using-krusader.sgml Xshare/doc/HTML/en/krusader/index.cache.bz2 Xshare/doc/HTML/en/krusader/common Xshare/doc/HTML/en/krusader/bookmanadd.png Xshare/doc/HTML/en/krusader/bookmanedit.png Xshare/doc/HTML/en/krusader/bookmanuse.png Xshare/doc/HTML/en/krusader/cmdline.png Xshare/doc/HTML/en/krusader/fnkeys.png Xshare/doc/HTML/en/krusader/kgadvanced.png Xshare/doc/HTML/en/krusader/kgarchives.png Xshare/doc/HTML/en/krusader/kggeneral.png Xshare/doc/HTML/en/krusader/kglookfeel.png Xshare/doc/HTML/en/krusader/kgstartup.png Xshare/doc/HTML/en/krusader/krusader1.png Xshare/doc/HTML/en/krusader/listpanel.png Xshare/doc/HTML/en/krusader/mainwindow.png Xshare/doc/HTML/en/krusader/mountman.png Xshare/doc/HTML/en/krusader/remoteman.png Xshare/doc/HTML/en/krusader/search_advanced.png Xshare/doc/HTML/en/krusader/search_general.png Xshare/doc/HTML/en/krusader/terminalEmu.png Xshare/doc/HTML/en/krusader/toolbar.png Xshare/applnk/Applications/krusader.desktop Xshare/icons/hicolor/32x32/apps/krusader.png Xshare/icons/hicolor/32x32/apps/krusader2.png Xshare/icons/locolor/16x16/apps/krusader.png Xshare/apps/krusader/krusaderui.rc Xshare/apps/krusader/about.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_arc_pack.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_arc_test.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_arc_unpack.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_calc.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_compare.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_comparedirs.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_ftp_connect.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_ftp_disconnect.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_ftp_new.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_addbookmark.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_bookman.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_bookmark.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_fullview.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_hwinfo.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_invert.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_treeview.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_unselect.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_mountman.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_properties.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_select.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_selectall.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_terminal.png Xshare/apps/krusader/icons/hicolor/16x16/actions/kr_unselectall.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_arc_pack.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_arc_test.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_arc_unpack.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_calc.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_compare.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_comparedirs.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_ftp_connect.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_ftp_disconnect.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_ftp_new.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_addbookmark.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_bookman.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_bookmark.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_fullview.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_hwinfo.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_invert.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_treeview.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_unselect.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_mountman.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_properties.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_select.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_selectall.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_terminal.png Xshare/apps/krusader/icons/hicolor/22x22/actions/kr_unselectall.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_arc_pack.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_arc_test.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_arc_unpack.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_calc.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_compare.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_comparedirs.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_ftp_connect.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_ftp_disconnect.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_ftp_new.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_addbookmark.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_bookman.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_bookmark.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_fullview.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_hwinfo.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_invert.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_treeview.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_unselect.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_mountman.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_properties.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_select.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_selectall.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_terminal.png Xshare/apps/krusader/icons/hicolor/32x32/actions/kr_unselectall.png Xshare/apps/krusader/konfig_small.jpg Xshare/mimelnk/application/x-ace.desktop Xshare/locale/cs/LC_MESSAGES/krusader.mo Xshare/locale/de/LC_MESSAGES/krusader.mo Xshare/locale/dk/LC_MESSAGES/krusader.mo Xshare/locale/fr/LC_MESSAGES/krusader.mo Xshare/locale/pl/LC_MESSAGES/krusader.mo Xshare/locale/sv/LC_MESSAGES/krusader.mo X@unexec /bin/rmdir %D/share/mimelnk/application 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/mimelnk 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/sv/LC MESSAGES 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/sv 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/pl/LC MESSAGES 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/pl 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/dk/LC MESSAGES 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/dk 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/de/LC MESSAGES 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/de 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/cs/LC MESSAGES 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale/cs 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/locale 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/icons/hicolor/32x32/apps 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/icons/hicolor/32x32 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/icons/hicolor/16x16/apps 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/icons/hicolor/16x16 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/icons/hicolor 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/icons 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/doc/HTML/en/krusader 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/doc/HTML/en 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/doc/HTML 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor/32x32/actions 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor/32x32 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor/22x22/actions 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor/22x22 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor/16x16/actions 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor/16x16 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons/hicolor 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader/icons 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps/krusader 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/apps 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/applnk/Applications 2>/dev/null || /usr/bin/true X@unexec /bin/rmdir %D/share/applnk 2>/dev/null || /usr/bin/true END-of-krusader/pkg-plist exit To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210101830.g9AIU2MC035765>