summaryrefslogtreecommitdiff
path: root/libre/mc-libre
diff options
context:
space:
mode:
authorNicolás Reynolds <fauno@endefensadelsl.org>2013-10-08 22:20:37 -0300
committerNicolás Reynolds <fauno@endefensadelsl.org>2013-10-08 22:20:37 -0300
commitfccf9769e2c26f577f6214ed9d0dbb30cb8c51bd (patch)
treecc5312eeed95e18d8e2c6009c568f3d32501bc01 /libre/mc-libre
parent69962c022fb4ed68b9163e60183fff714308e4e3 (diff)
parent3a0ad5dc35d5cff379cdfc736b9cae856416fe6a (diff)
Merge branch 'master' of ssh://vparabola/home/parabola/abslibre-pre-mips64el
Conflicts: community/abe/PKGBUILD community/account-plugins/PKGBUILD community/adesklets/PKGBUILD community/aircrack-ng/PKGBUILD community/audit/PKGBUILD community/bchunk/PKGBUILD community/bibutils/PKGBUILD community/cantata/PKGBUILD community/cdck/PKGBUILD community/cinnamon-control-center/PKGBUILD community/clusterssh/PKGBUILD community/consonance/PKGBUILD community/credentials-preferences/PKGBUILD community/dee/PKGBUILD community/dosbox/PKGBUILD community/drbd/PKGBUILD community/dvdisaster/PKGBUILD community/ekg/PKGBUILD community/ekg2/PKGBUILD community/emelfm2/PKGBUILD community/erlang/PKGBUILD community/ettercap/PKGBUILD community/evilwm/PKGBUILD community/fatrat/PKGBUILD community/fcitx-mozc/PKGBUILD community/fcrackzip/PKGBUILD community/ffmpegsource/PKGBUILD community/fssos-nsvs/PKGBUILD community/geda-gaf/PKGBUILD community/gnome-applets/PKGBUILD community/gnome-panel/PKGBUILD community/gnustep-make/PKGBUILD community/gwibber/PKGBUILD community/html2text/PKGBUILD community/intellij-idea-libs/PKGBUILD community/libcgns2/PKGBUILD community/libmatio/PKGBUILD community/librcc/PKGBUILD community/libsignon-glib/PKGBUILD community/linux-tools/PKGBUILD community/minitube/PKGBUILD community/mpdscribble/PKGBUILD community/mplayer2/PKGBUILD community/musepack-tools/PKGBUILD community/nginx/PKGBUILD community/pam_pwcheck/PKGBUILD community/portaudio/PKGBUILD community/portaudio_cpp/PKGBUILD community/prelink/PKGBUILD community/projectm/PKGBUILD community/prosody/PKGBUILD community/python-basemap/PKGBUILD community/qgit/PKGBUILD community/raptor1/PKGBUILD community/sensors-applet/PKGBUILD community/signon-keyring-extension/PKGBUILD community/signon-plugin-oauth2/PKGBUILD community/signon-ui/PKGBUILD community/sshguard/PKGBUILD community/tea/PKGBUILD community/tint2/PKGBUILD community/tremulous/PKGBUILD community/vobcopy/PKGBUILD community/windowlab/PKGBUILD community/xdelta/PKGBUILD community/xmms2/PKGBUILD community/xosd/PKGBUILD core/gdbm/PKGBUILD core/heirloom-mailx/PKGBUILD core/libffi/PKGBUILD core/procps-ng/PKGBUILD core/systemd/PKGBUILD core/tar/PKGBUILD cross/mips64el-unknown-linux-gnu-linux-libre-api-headers/PKGBUILD extra/arj/PKGBUILD extra/audacity/PKGBUILD extra/cdparanoia/PKGBUILD extra/elfutils/PKGBUILD extra/fltk/PKGBUILD extra/gnome-python-desktop/PKGBUILD extra/gstreamer/PKGBUILD extra/gtk2/PKGBUILD extra/gvfs/PKGBUILD extra/imagemagick/PKGBUILD extra/indent/PKGBUILD extra/kdepim/PKGBUILD extra/lcms/PKGBUILD extra/lesstif/PKGBUILD extra/libchewing/PKGBUILD extra/libdrm/PKGBUILD extra/libmodplug/PKGBUILD extra/libnotify/PKGBUILD extra/libsm/PKGBUILD extra/libxmu/PKGBUILD extra/libxpm/PKGBUILD extra/mariadb/PKGBUILD extra/mesa/PKGBUILD extra/mkvtoolnix/PKGBUILD extra/neon/PKGBUILD extra/ocaml/PKGBUILD extra/phonon-vlc/PKGBUILD extra/php-xcache/PKGBUILD extra/polkit/PKGBUILD extra/pycups/PKGBUILD extra/python-cairo/PKGBUILD extra/python/PKGBUILD extra/ruby/PKGBUILD extra/sqlite/PKGBUILD extra/talloc/PKGBUILD extra/thunar-archive-plugin/PKGBUILD extra/totem-plparser/PKGBUILD extra/totem/PKGBUILD extra/vinagre/PKGBUILD extra/vino/PKGBUILD extra/vlc/PKGBUILD extra/wget/PKGBUILD extra/xine-lib/PKGBUILD extra/xorg-server/PKGBUILD extra/xorg-twm/PKGBUILD extra/xorg-xclipboard/PKGBUILD extra/xorg-xclock/PKGBUILD extra/xorg-xkill/PKGBUILD extra/xorg-xlsclients/PKGBUILD extra/xorg-xman/PKGBUILD extra/xorg-xrdb/PKGBUILD extra/xpdf/PKGBUILD extra/xvidcore/PKGBUILD extra/yelp/PKGBUILD libre/audacious-plugins-libre/PKGBUILD libre/mc-libre/PKGBUILD libre/python2-reportlab-libre/PKGBUILD
Diffstat (limited to 'libre/mc-libre')
-rw-r--r--libre/mc-libre/PKGBUILD34
-rw-r--r--libre/mc-libre/fs36962.diff77
-rw-r--r--libre/mc-libre/unar.in64
3 files changed, 169 insertions, 6 deletions
diff --git a/libre/mc-libre/PKGBUILD b/libre/mc-libre/PKGBUILD
index 1fb9fe810..70ccf5b93 100644
--- a/libre/mc-libre/PKGBUILD
+++ b/libre/mc-libre/PKGBUILD
@@ -1,12 +1,14 @@
-# $Id: PKGBUILD 95010 2013-08-03 09:40:52Z schuay $
+# $Id: PKGBUILD 97329 2013-09-18 07:33:03Z schuay $
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
# Maintainer: schuay <jakob.gruber@gmail.com>
+# Maintainer (Parabola): André Silva <emulatorman@parabola.nu>
+# Contributor (Parabola): Márcio Silva <coadde@parabola.nu>
_pkgname=mc
pkgname=mc-libre
pkgver=4.8.10
-pkgrel=1
-pkgdesc="Midnight Commander is a text based filemanager/shell that emulates Norton Commander, with unar and arj recommendation included and nonfree unace recommendation removed"
+pkgrel=2.1
+pkgdesc="Midnight Commander is a text based filemanager/shell that emulates Norton Commander, with unar support and arj recommendation included and nonfree unace recommendation removed"
arch=('i686' 'x86_64' 'mips64el')
url="http://www.ibiblio.org/mc/"
license=('GPL')
@@ -15,7 +17,6 @@ depends=(
'glib2'
'gpm'
'libssh2'
- 'pcre'
'slang')
makedepends=('libxt' 'libx11')
optdepends=(
@@ -45,11 +46,30 @@ backup=('etc/mc/edit.indent.rc'
'etc/mc/mc.keymap'
'etc/mc/mc.menu'
'etc/mc/sfs.ini')
-source=("http://www.midnight-commander.org/downloads/${_pkgname}-${pkgver}.tar.bz2")
+source=("http://www.midnight-commander.org/downloads/${_pkgname}-${pkgver}.tar.bz2"
+ "fs36962.diff"
+ "unar.in")
+
+prepare() {
+ cd "${srcdir}/${_pkgname}-${pkgver}"
+
+ ## add unar support removing nonfree urar on the source
+ rm -v src/vfs/extfs/helpers/urar.in
+ install -m644 $srcdir/unar.in src/vfs/extfs/helpers
+ sed -i '\|rar v -c- "${MC_EXT_FILENAME}" 2>/dev/null|d
+ s| unrar v -c-|unar|
+ ' misc/ext.d/archive.sh
+ sed -i 's|urar.in|unar.in|g' $(grep -rlI 'urar.in')
+ sed -i '\|src/vfs/extfs/helpers/urar| s|urar|unar|g
+ ' configure{,.ac}
+ sed -i 's|urar|unar|g' src/vfs/extfs/helpers/Makefile.{am,in}
+}
build() {
cd "${srcdir}/${_pkgname}-${pkgver}"
+ patch -Np1 < "${srcdir}/fs36962.diff"
+
./configure --prefix=/usr --sysconfdir=/etc --enable-vfs-smb \
--with-x --libexecdir=/usr/lib
@@ -69,4 +89,6 @@ package() {
-i "${pkgdir}/usr/lib/mc/extfs.d/s3+"
}
-md5sums=('eb4bdc23abd4fdfa14911d53d65c8186')
+md5sums=('eb4bdc23abd4fdfa14911d53d65c8186'
+ '7f7cf5388a5390c2ed49965492f490aa'
+ 'f549a6c13ac0c3052986fcdc945648a9')
diff --git a/libre/mc-libre/fs36962.diff b/libre/mc-libre/fs36962.diff
new file mode 100644
index 000000000..0db5ed42b
--- /dev/null
+++ b/libre/mc-libre/fs36962.diff
@@ -0,0 +1,77 @@
+diff -ur mc-4.8.10-orig/src/filemanager/file.c mc-4.8.10/src/filemanager/file.c
+--- mc-4.8.10-orig/src/filemanager/file.c 2013-08-02 22:02:40.000000000 +0400
++++ mc-4.8.10/src/filemanager/file.c 2013-09-17 09:59:30.699635407 +0400
+@@ -1272,8 +1272,8 @@
+
+ /** Initialize variables for progress bars */
+ static FileProgressStatus
+-panel_operate_init_totals (FileOperation operation, const WPanel * panel, const char *source,
+- FileOpContext * ctx, filegui_dialog_type_t dialog_type)
++panel_operate_init_totals (const WPanel * panel, const char *source, FileOpContext * ctx,
++ filegui_dialog_type_t dialog_type)
+ {
+ FileProgressStatus status;
+
+@@ -1282,7 +1282,7 @@
+ return FILE_CONT;
+ #endif
+
+- if (operation != OP_MOVE && verbose && file_op_compute_totals)
++ if (verbose && file_op_compute_totals)
+ {
+ ComputeDirSizeUI *ui;
+
+@@ -2378,13 +2378,6 @@
+ mc_refresh ();
+ if (ctx->erase_at_end)
+ {
+- /* remove files after move */
+- if (erase_list != NULL)
+- {
+- file_op_context_destroy_ui (ctx);
+- file_op_context_create_ui (ctx, FALSE, FILEGUI_DIALOG_DELETE_ITEM);
+- }
+-
+ while (erase_list != NULL && return_status != FILE_ABORT)
+ {
+ struct link *lp = (struct link *) erase_list->data;
+@@ -2792,14 +2785,12 @@
+ {
+ if (operation == OP_DELETE)
+ dialog_type = FILEGUI_DIALOG_DELETE_ITEM;
++ else if (single_entry && S_ISDIR (selection (panel)->st.st_mode))
++ dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
++ else if (single_entry || force_single)
++ dialog_type = FILEGUI_DIALOG_ONE_ITEM;
+ else
+- {
+- dialog_type = ((operation != OP_COPY) || single_entry || force_single)
+- ? FILEGUI_DIALOG_ONE_ITEM : FILEGUI_DIALOG_MULTI_ITEM;
+-
+- if (single_entry && (operation == OP_COPY) && S_ISDIR (selection (panel)->st.st_mode))
+- dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+- }
++ dialog_type = FILEGUI_DIALOG_MULTI_ITEM;
+ }
+
+ /* Initialize things */
+@@ -2844,8 +2835,8 @@
+ else
+ source_with_vpath = vfs_path_append_new (panel->cwd_vpath, source, (char *) NULL);
+ #endif /* WITH_FULL_PATHS */
+- if (panel_operate_init_totals
+- (operation, panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type) == FILE_CONT)
++ if (panel_operate_init_totals (panel, vfs_path_as_str (source_with_vpath), ctx, dialog_type)
++ == FILE_CONT)
+ {
+ if (operation == OP_DELETE)
+ {
+@@ -2936,7 +2927,7 @@
+ goto clean_up;
+ }
+
+- if (panel_operate_init_totals (operation, panel, NULL, ctx, dialog_type) == FILE_CONT)
++ if (panel_operate_init_totals (panel, NULL, ctx, dialog_type) == FILE_CONT)
+ {
+ /* Loop for every file, perform the actual copy operation */
+ for (i = 0; i < panel->count; i++)
diff --git a/libre/mc-libre/unar.in b/libre/mc-libre/unar.in
new file mode 100644
index 000000000..3ba37b019
--- /dev/null
+++ b/libre/mc-libre/unar.in
@@ -0,0 +1,64 @@
+#! /bin/sh
+
+UNAR=`which unar 2>/dev/null`
+
+# Define $UNAR version
+UNAR_VERSION=`$UNAR -v`
+
+mcunar4fs_list ()
+{
+ $UNAR -q "$1" | @AWK@ -v uid=`id -u` -v gid=`id -g` '
+BEGIN { flag=0 }
+/^-------/ { flag++; if (flag > 1) exit 0; next }
+flag==1 {
+ str = substr($0, 2)
+ getline
+ split($4, a, "-")
+ if (index($6, "D") != 0)
+ $6="drwxr-xr-x"
+ else
+ if (index($6, ".") != 0)
+ $6="-rw-r--r--"
+ printf "%s 1 %s %s %d %02d/%02d/%02d %s ./%s\n", $6, uid, gid, $1, a[2], a[1], a[3], $5, str
+}'
+}
+
+mcunarfs_list ()
+{
+ $UNAR -q "$1" | @AWK@ -v uid=`id -u` -v gid=`id -g` '
+BEGIN { flag=0 }
+/^-----------/ { flag++; if (flag > 1) exit 0; next }
+flag==1 {
+ split($5, a, "-")
+ if (index($1, "D") != 0)
+ $1="drwxr-xr-x"
+ else
+ if (index($1, ".") != 0)
+ $1="-rw-r--r--"
+ printf "%s 1 %s %s %d %02d/%02d/%02d %s ./%s\n", $1, uid, gid, $2, a[2], a[1], a[3], $6, $8
+}'
+}
+
+mcunarfs_list ()
+{
+ mcunarfs_list "$@"
+}
+
+mcunarfs_copyout ()
+{
+ $UNAR -q "$1" "$2" > "$3"
+}
+
+umask 077
+
+cmd="$1"
+shift
+
+case "$cmd" in
+ # Workaround for a bug in mc - directories must precede files to
+ # avoid duplicate entries, so we sort output by filenames
+ list) mcunarfs_list "$@" | sort -k 8 ;;
+ copyout) mcunarfs_copyout "$@" ;;
+ *) exit 1 ;;
+esac
+exit 0