aboutsummaryrefslogtreecommitdiff
path: root/system/fdclone
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2020-11-20 12:59:22 +0000
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2020-11-22 01:14:16 +0700
commit6c237e00fe7cc8c11d1555d9aeff5fab7c918488 (patch)
tree49b7df2c4e19d5f66a52a30fd554f7d4ddd39ad9 /system/fdclone
parentdd62de127970f1052e3b73f21d98e8155e962d26 (diff)
system/fdclone: Added (two-pane textmode file manager)
Signed-off-by: Dave Woodfall <dave@slackbuilds.org> Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'system/fdclone')
-rw-r--r--system/fdclone/01_previous_changes.patch85
-rw-r--r--system/fdclone/30_makefilein_setting.patch53
-rw-r--r--system/fdclone/README12
-rw-r--r--system/fdclone/doinst.sh22
-rw-r--r--system/fdclone/fd2rc613
-rw-r--r--system/fdclone/fdclone.SlackBuild122
-rw-r--r--system/fdclone/fdclone.info10
-rw-r--r--system/fdclone/slack-desc19
8 files changed, 936 insertions, 0 deletions
diff --git a/system/fdclone/01_previous_changes.patch b/system/fdclone/01_previous_changes.patch
new file mode 100644
index 0000000000000..af32350eaf045
--- /dev/null
+++ b/system/fdclone/01_previous_changes.patch
@@ -0,0 +1,85 @@
+Description: configure fdclone for works properly under Debian
+ This allows for customize fdclone configuration for works
+ properly under Debian. Originally 01_previous_changes.dpatch
+Author: Sandro Tosi <matrixhasu@gmail.com>
+
+Index: fdclone/Configur
+===================================================================
+--- fdclone.orig/Configur
++++ fdclone/Configur
+@@ -679,12 +679,7 @@ fi
+ if isexist "sysconf(0)"; then
+ echo "#define USESYSCONF"
+ fi
+-if isexist "_llseek(0,0,0,0,0)" linux/unistd "static _syscall5(int, _llseek,
+- unsigned int, fd,
+- unsigned long, ofs_h,
+- unsigned long, ofs_l,
+- long long *, result,
+- unsigned int, whence);
++if isexist "_llseek(0,0,0,0,0)" "sys/syscall" "#define _llseek(fd, ofs_h, ofs_l, result, whence) syscall(SYS__llseek, fd, ofs_h, ofs_l, result, whence)
+ "; then
+ echo "#define USELLSEEK"
+ fi
+Index: fdclone/config.hin
+===================================================================
+--- fdclone.orig/config.hin
++++ fdclone/config.hin
+@@ -3,4 +3,4 @@
+ *
+ * definitions for each OS
+ */
+-
++#define USEDATADIR
+Index: fdclone/dosdisk.c
+===================================================================
+--- fdclone.orig/dosdisk.c
++++ fdclone/dosdisk.c
+@@ -23,6 +23,7 @@
+ #include "mntinfo.h"
+ #include <sys/mount.h>
+ #include <linux/unistd.h>
++#include <sys/syscall.h>
+ # ifndef BLKFLSBUF
+ # include <linux/fs.h>
+ # endif
+@@ -378,12 +379,7 @@ static CONST char *inhibitname[] = INHIB
+ #ifdef USELLSEEK
+ # ifdef _syscall5
+ # undef _llseek
+-static _syscall5(int, _llseek,
+- u_int, fd,
+- u_long, ofs_h,
+- u_long, ofs_l,
+- l_off_t *, result,
+- u_int, whence);
++#define _llseek(fd, ofs_h, ofs_l, result, whence) syscall(SYS__llseek, fd, ofs_h, ofs_l, result, whence)
+ # endif
+
+ static l_off_t NEAR Xllseek(fd, offset, whence)
+Index: fdclone/fd.h
+===================================================================
+--- fdclone.orig/fd.h
++++ fdclone/fd.h
+@@ -95,8 +95,8 @@ extern char *_mtrace_file;
+ * If you don't like the following tools as each uses, *
+ * you should rewrite another suitable command name. *
+ ****************************************************************/
+-#define PAGER "more%K" /* to view file */
+-#define EDITOR "vi" /* to edit file */
++#define PAGER "/usr/bin/pager" /* to view file */
++#define EDITOR "/usr/bin/editor" /* to edit file */
+
+
+ /****************************************************************
+Index: fdclone/version.h
+===================================================================
+--- fdclone.orig/version.h
++++ fdclone/version.h
+@@ -4,5 +4,5 @@
+ * version number
+ */
+
+-char *distributor = NULL;
++char *distributor = "sano@debian.org (Taketoshi Sano)";
+ static char version[] = "@(#)fd.c 3.01j 07/27/19";
diff --git a/system/fdclone/30_makefilein_setting.patch b/system/fdclone/30_makefilein_setting.patch
new file mode 100644
index 0000000000000..fd5e9c74f3e5b
--- /dev/null
+++ b/system/fdclone/30_makefilein_setting.patch
@@ -0,0 +1,53 @@
+Description: install files in the correctly Debian's path
+ This setting values to install files in the correctly Debian's path.
+
+Index: fdclone/Makefile.in
+===================================================================
+--- fdclone.orig/Makefile.in
++++ fdclone/Makefile.in
+@@ -12,7 +12,7 @@ MANSEC = 1
+ BINTOP = $(PREFIX)/bin
+ BINDIR = $(BUILD)$(BINTOP)
+ DATATOP = $(PREFIX)/share
+-DATADIR = $(BUILD)$(DATATOP)/fd
++DATADIR = $(BUILD)$(DATATOP)/fdclone
+ MANTOP = $(PREFIX)/man
+ MANDIR = $(BUILD)$(MANTOP)/man$(MANSEC)
+ CATDIR = $(BUILD)$(MANTOP)/cat$(MANSEC)
+@@ -484,24 +484,24 @@ install-runcom:
+
+ install-table: $(TABLE) mkdir_p$(EXE)
+ -if [ -f $(UNITBL) ]; then \
+- [ -d __DATADIR__ ] || ./mkdir_p$(EXE) __DATADIR__; \
+- $(INSTALL) $(UNITBL) __DATADIR__; \
+- $(CHMOD) a+r-x __DATADIR__/$(UNITBL); \
++ [ -d $(DATADIR) ] || ./mkdir_p$(EXE) $(DATADIR); \
++ $(INSTALL) $(UNITBL) $(DATADIR); \
++ $(CHMOD) a+r-x $(DATADIR)/$(UNITBL); \
+ fi
+ -if [ -f $(DICTTBL) ]; then \
+- [ -d __DATADIR__ ] || ./mkdir_p$(EXE) __DATADIR__; \
+- $(INSTALL) $(DICTTBL) __DATADIR__; \
+- $(CHMOD) a+r-x __DATADIR__/$(DICTTBL); \
++ [ -d $(DATADIR) ] || ./mkdir_p$(EXE) $(DATADIR); \
++ $(INSTALL) $(DICTTBL) $(DATADIR); \
++ $(CHMOD) a+r-x $(DATADIR)/$(DICTTBL); \
+ fi
+ -if [ -f $(CATTBL) ]; then \
+- [ -d __DATADIR2__ ] || ./mkdir_p$(EXE) __DATADIR2__; \
+- $(INSTALL) $(CATTBL) __DATADIR2__; \
+- $(CHMOD) a+r-x __DATADIR2__/$(CATTBL); \
++ [ -d $(DATADIR)/$(VERSION) ] || ./mkdir_p$(EXE) $(DATADIR)/$(VERSION); \
++ $(INSTALL) $(CATTBL) $(DATADIR)/$(VERSION); \
++ $(CHMOD) a+r-x $(DATADIR)/$(VERSION)/$(CATTBL); \
+ fi
+ -if [ -f $(ECATTBL) ]; then \
+- [ -d __DATADIR2__ ] || ./mkdir_p$(EXE) __DATADIR2__; \
+- $(INSTALL) $(ECATTBL) __DATADIR2__; \
+- $(CHMOD) a+r-x __DATADIR2__/$(ECATTBL); \
++ [ -d $(DATADIR)/$(VERSION) ] || ./mkdir_p$(EXE) $(DATADIR)/$(VERSION); \
++ $(INSTALL) $(ECATTBL) $(DATADIR)/$(VERSION) ; \
++ $(CHMOD) a+r-x $(DATADIR)/$(VERSION)/$(ECATTBL); \
+ fi
+
+ install-man: $(MANSRC) mkdir_p$(EXE)
diff --git a/system/fdclone/README b/system/fdclone/README
new file mode 100644
index 0000000000000..dfb23f42fb74d
--- /dev/null
+++ b/system/fdclone/README
@@ -0,0 +1,12 @@
+fdclone (two-pane textmode file manager)
+
+FDclone is a file & directory maintenance tool for UNIX-based OSes. It
+is a clone of "FD" for MS-DOS, made by Mr. A.Idei in 1989.
+
+fdclone has excellent Japanese language UI, documentation, and
+character encoding support, since it originates in Japan.
+
+The executable is installed as /usr/bin/fdclone, which means this
+build doesn't conflict with system/fd. However, if you don't have fd
+installed, a symlink /usr/bin/fd is created so you can just type "fd"
+to run this.
diff --git a/system/fdclone/doinst.sh b/system/fdclone/doinst.sh
new file mode 100644
index 0000000000000..35eeb79424389
--- /dev/null
+++ b/system/fdclone/doinst.sh
@@ -0,0 +1,22 @@
+config() {
+ NEW="$1"
+ OLD="$(dirname $NEW)/$(basename $NEW .new)"
+ if [ ! -r $OLD ]; then
+ mv $NEW $OLD
+ elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
+ # toss the redundant copy
+ rm $NEW
+ fi
+}
+
+config etc/fdclone/fd2rc.siteconfig.new
+
+# If there's no fd link, take over:
+if [ ! -r usr/bin/fd ]; then
+ ( cd usr/bin ; rm -rf fd )
+ ( cd usr/bin ; ln -sf fdclone fd )
+ ( cd usr/man/man1 ; rm -rf fd.1.gz )
+ ( cd usr/man/man1 ; ln -sf fdclone.1.gz fd.1.gz )
+ ( cd usr/man/ja/man1 ; rm -rf fd.1.gz )
+ ( cd usr/man/ja/man1 ; ln -sf fdclone.1.gz fd.1.gz )
+fi
diff --git a/system/fdclone/fd2rc b/system/fdclone/fd2rc
new file mode 100644
index 0000000000000..4f24272d1e751
--- /dev/null
+++ b/system/fdclone/fd2rc
@@ -0,0 +1,613 @@
+# /etc/fdclone/fd2rc: Initialize file for FD
+#
+# This Slackware package provides /etc/fdclone/fd2rc.siteconfig for
+# site specific settings. Please use it for your customization,
+# and leave this file alone for smooth upgrade.
+#
+# 20201118 bkw:
+# This file was taken from the Debian package, and modified slightly.
+# To see the changes, search within the file for the string "bkw:".
+#
+# There are some settings in this configuration file
+# which differ from the upstream default:
+#
+# DISPLAYMODE=3 (sym-link status & file type symbol)
+# ADJTTY=1 (adjust TTY when exiting)
+# TMPDIR=$HOME (for security reasons)
+# TMPUMASK=077 (same above)
+# LANGUAGE=$LANG (bkw: and MESSAGELANG=$LANG)
+# INPUTKCODE=$LANG
+# FNAMEKCODE=$LANG
+#
+# Launcher settings
+# for files with suffix as .zip, .Z, .gz. .bz2
+# for deb package (.deb) and rpm package (.rpm)
+# Archiver settings
+# for files with suffix as .zip
+# for deb package (.deb) and rpm package (.rpm)
+#
+# Some keycode settings for linux console, xterm, and kterm.
+#
+# fdclone can use the environment variables PAGER and EDITOR,
+# but the settings from the configuration file such as
+# /etc/fdclone/fd2rc or $HOME/.fd2rc will be prefered and
+# the settings in the environment variables are ignored in
+# this case.
+# (/etc/fdclone/fd2rc includes /etc/fdclone/fd2rc.siteconfig)
+#
+# So the default runcom file (i.e. this file, /etc/fdclone/fd2rc)
+# in this package don't set these variables as default.
+# If you like to set the PAGER&EDITOR settings as the site default,
+# plese put the following 2 lines in /etc/fdclone/fd2rc.siteconfig.
+#
+# PAGER=/usr/bin/pager%K (or the pager which you like)
+# EDITOR=/usr/bin/editor (or the editor which you like)
+#
+# `%K' means that fd waits for the key input when the pager finishes.
+# This is useful for simple pagers such like `more', since they just
+# quits soon when they show all the contents of the specified file.
+# But if you use others such like `less' or `lv', then you wish to
+# disable this by eliminating `%K' at the end, since the pager itself
+# prompts user to quit.
+# Please refer the manual page of `fd' for more detail.
+
+# to set default sort type
+# 0: not sort (Default)
+# 1: alphabetical 9: alphabetical (reversal)
+# 2: extension 10: extension (reversal)
+# 3: size 11: size (reversal)
+# 4: date 12: date (reversal)
+# 5: length 13: length (reversal)
+# 100-113: preserve previous sort type
+# (the least 2 digits are effective just after initialize)
+#SORTTYPE=0
+
+# to set default display mode
+# 0: normal (Default)
+# 1: sym-link status
+# 2: file type symbol
+# 3: sym-link status & file type symbol
+# 4: invisible dot file
+# 5: sym-link status & invisible dot file
+# 6: file type symbol & invisible dot file
+# 7: sym-link status & file type symbol & invisible dot file
+DISPLAYMODE=3
+
+# whether if sort or not in tree mode
+# 0: not sort (Default)
+# >= 1: sort according to SORTTYPE
+#SORTTREE=0
+
+# behavior about writing over directory on file system
+# 0: confirm to write or not, after directory arranged (Default)
+# 1: write directory only if commanded
+# 2: never write over directory even if commanded
+#WRITEFS=0
+
+# whether if ignore uppercase or lowercase in filename comparison
+# 0: not ignore (Default)
+# >= 1: ignore
+#IGNORECASE=0
+
+# whether if inherit timestamp or not when copying
+# 0: not inherit (Default)
+# >= 1: inherit
+#INHERITCOPY=0
+
+# whether if adjust tty or not when exiting
+# 0: not adjust (Default)
+# >= 1: adjust
+ADJTTY=1
+
+# whether if prioritize VT100 escape sequence or not for getting terminal size
+# 0: not prioritize (Default)
+# >= 1: prioritize
+#USEGETCURSOR=0
+
+# to set default columns of file in 1 line
+# 1: 1 column
+# 2: 2 columns (Default)
+# 3: 3 columns
+# 5: 5 columns
+#DEFCOLUMNS=2
+
+# minimum columns of filename field
+# Default: 12
+#MINFILENAME=12
+
+# history file of sh mode
+# Default: ~/.fd_history
+#HISTFILE=~/.fd_history
+
+# history size of sh mode
+# Default: 50
+#HISTSIZE=50
+
+# history size of path input
+# Default: 50
+#DIRHIST=50
+
+# size of saved history
+# Default: 50
+#SAVEHIST=50
+
+# limit of counting files in directory, on tree mode
+# Default: 50
+#DIRCOUNTLIMIT=50
+
+# whether if make MS-DOS drive effective
+# 0: not use (Default)
+# >= 1: effective
+#DOSDRIVE=0
+
+# whether if display the second hand of clock
+# 0: not display (Default)
+# >= 1: display
+#SECOND=0
+
+# whether if use the screen layout based on the traditional "FD"
+# 0: original layout (Default)
+# >= 1: traditional layout
+#TRADLAYOUT=0
+
+# whether if show the info. of filesize
+# 0: not show (Default)
+# >= 1: show
+#SIZEINFO=0
+
+# whether if support ANSI color escape sequence
+# 0: monochrome (Default)
+# 1: color
+# 2: color & force background to blacken
+# 3: color & force foreground to blacken
+# 20201118 bkw: enable this by default, it's 2020 and you should be using
+# a terminal that supports color by now.
+ANSICOLOR=2
+
+# specify color palette in the ANSI color mode
+# Default: none
+# 0: black
+# 1: red
+# 2: green
+# 3: yellow
+# 4: blue
+# 5: magenta
+# 6: cyan
+# 7: white
+# 8: default color for foreground
+# 9: default color for background
+# default palette: 8962435188
+# ||||||||||
+# normal file -----+|||||||||
+# background -------+||||||||
+# directory ---------+|||||||
+# unwritable ---------+||||||
+# unreadable ----------+|||||
+# symbolic link --------+||||
+# socket ----------------+|||
+# fifo (named pipe) ------+||
+# block device ------------+|
+# character device ---------+
+# 20201118 bkw: set the default here
+ANSIPALETTE="8962435188"
+
+# select edit mode with your favorite editor type
+# emacs: ^P, ^N, ^F, ^B, ... (Default)
+# wordstar ^E, ^X, ^D, ^S, ...
+# vi: k, j, l, h, ...
+#EDITMODE=emacs
+
+# whether if loop cursor moving within the same page
+# 0: not loop (Default)
+# >= 1: loop
+#LOOPCURSOR=0
+
+# temporary directory where archive file is unpacked
+# Default: /tmp
+TMPDIR=$HOME
+
+# file creation mask for the temporary directory
+# Default: 022
+TMPUMASK=077
+
+# mount point of CD-ROM with iso-9660 rock ridge format
+# Default: none
+#RRPATH=""
+
+# directories on which browsing precedes getting file status
+# Default: none
+#PRECEDEPATH=""
+
+# shell prompt strings
+# Default: "$ "
+#PS1="$ "
+
+# continuous shell prompt strings
+# Default: "> "
+#PS2="> "
+
+# whether if not use control sequences in the internal shell
+# 0: use (Default)
+# >= 1: not use
+#DUMBSHELL=0
+
+# whether if hold the UNICODE translation table on memory
+# 0: not hold (Default)
+# >= 1: hold
+#UNICODEBUFFER=0
+
+# language code type to display
+# Default: No convert
+# euc, EUC: EUC-JP
+# sjis, SJIS: Shift JIS
+# jis, JIS: 7bits JIS
+# jis8, JIS8: 8bits JIS
+# junet, JUNET: ISO-2022-JP
+# ojis, OJIS: old 7bits JIS
+# ojis8, OJIS8: old 8bits JIS
+# ojunet, OJUNET: old ISO-2022-JP
+# utf8, UTF8: UTF-8
+# utf8-mac, UTF8-MAC: UTF-8 for Mac OS X
+# eng, ENG, C: English
+LANGUAGE=$LANG
+
+# 20201118 bkw: makes no sense not to set this also!
+MESSAGELANG=$LANG
+
+# language code type to input
+# Default: No convert
+# euc, EUC: EUC-JP
+# sjis, SJIS: Shift JIS
+# utf8, UTF8: UTF-8
+# utf8-mac, UTF8-MAC: UTF-8 for Mac OS X
+INPUTKCODE=$LANG
+
+# language code type in filename
+# Default: No convert
+# euc, EUC: EUC-JP
+# sjis, SJIS: Shift JIS
+# jis, JIS: 7bits JIS
+# jis8, JIS8: 8bits JIS
+# junet, JUNET: ISO-2022-JP
+# ojis, OJIS: old 7bits JIS
+# ojis8, OJIS8: old 8bits JIS
+# ojunet, OJUNET: old ISO-2022-JP
+# hex, HEX: HEX
+# cap, CAP: CAP
+# utf8, UTF8: UTF-8
+# utf8-mac, UTF8-MAC: UTF-8 for Mac OS X
+FNAMEKCODE=$LANG
+
+# directories on which language code type in filename is SJIS
+# Default: none
+#SJISPATH=""
+
+# directories on which language code type in filename is EUC-JP
+# Default: none
+#EUCPATH=""
+
+# directories on which language code type in filename is 7bits JIS
+# Default: none
+#JISPATH=""
+
+# directories on which language code type in filename is 8bits JIS
+# Default: none
+#JIS8PATH=""
+
+# directories on which language code type in filename is ISO-2022-JP
+# Default: none
+#JUNETPATH=""
+
+# directories on which language code type in filename is old 7bits JIS
+# Default: none
+#OJISPATH=""
+
+# directories on which language code type in filename is old 8bits JIS
+# Default: none
+#OJIS8PATH=""
+
+# directories on which language code type in filename is old ISO-2022-JP
+# Default: none
+#OJUNETPATH=""
+
+# directories on which language code type in filename is HEX
+# Default: none
+#HEXPATH=""
+
+# directories on which language code type in filename is CAP
+# Default: none
+#CAPPATH=""
+
+# directories on which language code type in filename is UTF-8
+# Default: none
+#UTF8PATH=""
+
+# directories on which language code type in filename is UTF-8 for Mac OS X
+# Default: none
+#UTF8MACPATH=""
+
+# directories on which language code type in filename is not converted
+# Default: none
+#NOCONVPATH=""
+
+#PAGER=more%K
+#EDITOR=vi
+#SHELL=/bin/sh
+
+# for Mischievous Japanese OS (see `man fd')
+#export LANG=C
+
+# launcher definition
+#(Default)
+#launch ".lzh" "lha l" \
+# -f "%a %u/%g %s %x %m %d %{yt} %*f" \
+# -f "%9a %u/%g %s %x %m %d %{yt} %*f" \
+# -i " PERMSSN * UID*GID *" \
+# -i "----------*" \
+# -i " Total * file* ???.*%*" \
+#launch ".tar" "tar tvf" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#launch ".tar.Z" "zcat %C|tar tvf -" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#launch ".tar.gz" "gzip -cd %C|tar tvf -" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#launch ".tar.bz2" "bzip2 -cd %C|tar tvf -" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#launch ".taZ" "zcat %C|tar tvf -" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#launch ".taz" "gzip -cd %C|tar tvf -" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#launch ".tgz" "gzip -cd %C|tar tvf -" \
+# -f "%a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %s %y-%m-%d %t %*f" \
+# -f "%a %l %u %g %s %m %d %{yt} %*f" \
+# -f "%10a %u/%g %s %m %d %t %y %*f" \
+# -f "%9a %u/%g %s %m %d %t %y %*f" \
+# -f "%a %u/%g %m %d %t %y %*f"
+#(Examples)
+launch ".zip" "unzip -lqq" " %s %m-%d-%y %t %*f"
+#launch ".zoo" "zoo lq" " %s %x %x %d %m %y %t %*f"
+#launch ".rar" "unrar v" \
+# -f " %*f\n%s %x %x %d-%m-%y %t %a" \
+# -i "UNRAR *" \
+# -i "RAR *" \
+# -i "Shareware version *" \
+# -i "Verifying authenticity *" \
+# -i "Solid archive *" \
+# -i "Archive *" \
+# -i "Pathname/Comment" \
+# -i "Size * Packed *" \
+# -i "----------*" \
+# -i "* * * ??%" \
+# -i "Old style *" \
+# -i "Archive *.rar" \
+# -i "created at ??:??:?? *" \
+# -i "by * *" \
+# -i ""
+launch ".Z" "zcat %C|$PAGER"
+launch ".gz" "gzip -cd %C|$PAGER"
+launch ".bz2" "bzip2 -cd %C|$PAGER"
+
+# examples for MS-DOS
+#launch ".lzh" "lha v %S" %
+# -f "%*f\n%s %x %x %y-%m-%d %t %a" %
+# -f "%1x %12f %s %x %x %y-%m-%d %t %a" %
+# -i "Listing of archive : *" %
+# -i " Name Original *" %
+# -i "--------------*" %
+# -i "* files * ???.?%%%% ??-??-?? ??:??:??" %
+# -i ""
+#launch ".tar.Z" "gzip -cd %S|tar tvf -" %
+# -f "%a %u/%g %s %m %d %t %y %*f" %
+# -f "%a %u/%g %s %y-%m-%d %t %*f" %
+# -f "%a %u/%g %s %m %d %y %t %*f" %
+#launch ".tar.gz" "gzip -cd %S|tar tvf -" %
+# -f "%a %u/%g %s %m %d %t %y %*f" %
+# -f "%a %u/%g %s %y-%m-%d %t %*f" %
+# -f "%a %u/%g %s %m %d %y %t %*f" %
+#launch ".tar.bz2" "bzip2 -cd %S|tar tvf -" %
+# -f "%a %u/%g %s %m %d %t %y %*f" %
+# -f "%a %u/%g %s %y-%m-%d %t %*f" %
+# -f "%a %u/%g %s %m %d %y %t %*f" %
+#launch ".taz" "gzip -cd %S|tar tvf -" %
+# -f "%a %u/%g %s %m %d %t %y %*f" %
+# -f "%a %u/%g %s %y-%m-%d %t %*f" %
+# -f "%a %u/%g %s %m %d %y %t %*f" %
+#launch ".tgz" "gzip -cd %S|tar tvf -" %
+# -f "%a %u/%g %s %m %d %t %y %*f" %
+# -f "%a %u/%g %s %y-%m-%d %t %*f" %
+# -f "%a %u/%g %s %m %d %y %t %*f" %
+#launch ".zip" "unzip -lqq %S" " %s %y-%m-%d %t %*f"
+#launch ".zip" "pkunzip -vb %S" " %s %x %x %x %y-%m-%d %t %*f" 14 2
+
+#
+# Debian package settings
+launch ".deb" "ar p %C data.tar.gz|gzip -dc|tar tvf - "\
+ "%a %u/%g %s %y-%m-%d %t %f"
+launch ".rpm" "rpm2cpio %C|cpio -tv" "%a %x %u %g %s %m %d %y %f"
+
+
+# archiver definition
+#(Default)
+# 20201118 bkw: uncommented these
+arch ".lzh" "lha aq %C %TA" "lha xq %C %TA"
+arch ".tar" "tar cf %C %T" "tar xf %C %TA"
+arch ".tar.Z" "tar cf - %T|compress -c > %C" "zcat %C|tar xf - %TA"
+arch ".tar.gz" "tar cf - %T|gzip -c > %C" "gzip -cd %C|tar xf - %TA"
+arch ".tar.bz2" \
+ "tar cf - %T|bzip2 -c > %C" "bzip2 -cd %C|tar xf - %TA"
+arch ".taZ" "tar cf - %T|compress -c > %C" "zcat %C|tar xf - %TA"
+arch ".taz" "tar cf - %T|gzip -c > %C" "gzip -cd %C|tar xf - %TA"
+arch ".tgz" "tar cf - %T|gzip -c > %C" "gzip -cd %C|tar xf - %TA"
+#(Examples)
+arch ".zip" "zip -q %C %TA" "unzip -q %C %TA"
+arch ".zoo" "zoo aq %C %TA" "zoo xq %C %TA"
+arch ".rar" "rar a -inul %C %TA" "unrar x -inul %C %TA"
+
+# examples for MS-DOS
+#arch ".lzh" "lha a %S %TA" "lha x %S %TA"
+#arch ".tar.Z" "tar cf - %T|compress -c > %C" "gzip -cd %S|tar xf - %TA"
+#arch ".tar.gz" "tar cf - %T|gzip -c > %C" "gzip -cd %S|tar xf - %TA"
+#arch ".tar.bz2" %
+# "tar cf - %T|bzip2 -c > %C" "bzip2 -cd %S|tar xf - %TA"
+#arch ".taz" "tar cf - %T|compress -c > %C" "gzip -cd %S|tar xf - %TA"
+#arch ".tgz" "tar cf - %T|gzip -c > %C" "gzip -cd %S|tar xf - %TA"
+#arch ".zip" "pkzip %S %TA" "pkunzip %S %TA"
+
+#
+# Debian package settings
+arch ".deb" "clear; echo ERROR; false"\
+ "ar p %C data.tar.gz|gzip -dc|tar -xf - %TA"
+arch ".rpm" "clear; echo ERROR; false" "rpm2cpio %C|cpio -id %TA"
+
+# key bind definition
+#(Examples)
+#bind 'I' "dir -d %C"
+#bind 'g' "gzip %C%K" WARNING_BELL
+#bind 'G' "gzip -d %C%K" WARNING_BELL
+#bind 'R' "grep %R %C"
+#bind '{' ROLL_UP
+#bind '}' ROLL_DOWN
+#bind '~' "cd ~%N%K"
+#bind 'F1' "man fd%N%K" :Manual
+
+# function definition
+#(Example1)
+#rename() {
+# MARK_ALL 0
+# MARK_FIND $1
+## RENAME_FILE $2
+# evalmacro mv %M $2
+#}
+#
+#(Example2: used in archiver definition)
+#maketaz() {
+# evalmacro tar cf %X.tar %T
+# evalmacro $1 %X.tar
+# evalmacro mv %X.tar.$2 %X.$3
+#}
+#
+#(Example3: ftp browsing)
+#getftp() {
+# FHOST=$1
+# FPATH=
+# browse -@ - <<'EOF0'
+# 'ftp -n $FHOST <<-EOF
+# user ftp `whoami`@`hostname`
+# dir $FPATH
+# quit
+# EOF'
+# -f "%a %l %u %g %s %m %d %{yt} %*f"
+# -i "total *"
+# -e "Not connected."
+# -e "Login incorrect."
+# -e "Login failed."
+# -p 'FPATH=$1; while [ "$#" -gt 1 ]; do shift; FPATH=$1/$FPATH; done'
+# -d loop
+#
+# 'dir=`readline "Dir: "` && [ -d "$dir" ] \
+# && yesno "copy \"$FPATH\" to \"$dir\" ?" \
+# && ftp -n $FHOST <<-EOF \
+# && echo "copy \"$FPATH\" to \"$dir\"." %K \
+# || echo canceled.
+# user ftp `whoami`@`hostname`
+# get $FPATH $dir/${FPATH##*/}
+# quit
+# EOF'
+#EOF0
+#}
+
+# MS-DOS drive definition
+#(Example)
+#setdrv B "/dev/rfd00a" 2, 18, 80
+
+# alias definition
+#(Example)
+#alias dir="ls -laF"
+
+# keymap definition
+#(Example)
+#keymap DEL "\033[3~"
+
+# common keycode settings for xterm and kterm
+ xtermkey()
+ {
+ keymap HOME "\033OH"
+ keymap END "\033OF"
+ #keymap INS "\033[2~"
+ #keymap DEL "\033[3~"
+ keymap BS "\177"
+ #keymap PPAGE "\033[5~"
+ #keymap NPAGE "\033[6~"
+ #keymap RET "\033OM"
+ keymap F5 "\033[15~"
+ keymap F6 "\033[17~"
+ keymap F7 "\033[18~"
+ keymap F8 "\033[19~"
+ keymap F9 "\033[20~"
+ keymap F10 "\033[21~"
+ keymap F11 "\033[23~"
+ keymap F12 "\033[24~"
+ keymap PLUS "\033Ok"
+ keymap MINUS "\033Om"
+ keymap ASTER "\033Oj"
+ keymap SLASH "\033Oo"
+ }
+
+# keycode settings for various terminals
+ case $TERM in
+ linux)
+ LANGUAGE=eng
+ ;;
+ xterm)
+ LANGUAGE=eng
+ keymap F1 "\033OP"
+ keymap F2 "\033OQ"
+ keymap F3 "\033OR"
+ keymap F4 "\033OS"
+ xtermkey
+ ;;
+ kterm)
+ keymap F1 "\033[11~"
+ keymap F2 "\033[12~"
+ keymap F3 "\033[13~"
+ keymap F4 "\033[14~"
+ xtermkey
+ ;;
+ esac
+
+unset xtermkey
+
+# for site specific settings
+source /etc/fdclone/fd2rc.siteconfig
+
diff --git a/system/fdclone/fdclone.SlackBuild b/system/fdclone/fdclone.SlackBuild
new file mode 100644
index 0000000000000..5eb5e8302a7c5
--- /dev/null
+++ b/system/fdclone/fdclone.SlackBuild
@@ -0,0 +1,122 @@
+#!/bin/sh
+
+# Slackware build script for fdclone
+
+# Written by B. Watson (yalhcru@gmail.com)
+
+# Licensed under the WTFPL. See http://www.wtfpl.net/txt/copying/ for details.
+
+# This build script owes a debt to the Debian fdclone build
+# script. Unlike the Debian build though, I install the binary & man
+# pages as "fdclone", not "fd", because SBo already has an "fd". I
+# also don't see the point of the stub fdsh man page.
+
+PRGNAM=fdclone
+SRCNAM=FD
+VERSION=${VERSION:-3.01j}
+BUILD=${BUILD:-1}
+TAG=${TAG:-_SBo}
+
+if [ -z "$ARCH" ]; then
+ case "$( uname -m )" in
+ i?86) ARCH=i586 ;;
+ arm*) ARCH=arm ;;
+ *) ARCH=$( uname -m ) ;;
+ esac
+fi
+
+CWD=$(pwd)
+TMP=${TMP:-/tmp/SBo}
+PKG=$TMP/package-$PRGNAM
+OUTPUT=${OUTPUT:-/tmp}
+
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "i686" ]; then
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
+ LIBDIRSUFFIX=""
+elif [ "$ARCH" = "x86_64" ]; then
+ SLKCFLAGS="-O2 -fPIC"
+ LIBDIRSUFFIX="64"
+else
+ SLKCFLAGS="-O2"
+ LIBDIRSUFFIX=""
+fi
+
+set -e
+
+rm -rf $PKG
+mkdir -p $TMP $PKG $OUTPUT
+cd $TMP
+rm -rf $SRCNAM-$VERSION
+tar xvf $CWD/$SRCNAM-$VERSION.tar.gz
+cd $SRCNAM-$VERSION
+chown -R root:root .
+find -L . -perm /111 -a \! -perm 755 -a -exec chmod 755 {} \+ -o \
+ \! -perm /111 -a \! -perm 644 -a -exec chmod 644 {} \+
+
+# Patches from Debian. Not going to apply the one that stops the
+# Makefile from stripping the binary, since that's what we want.
+patch -p1 < $CWD/01_previous_changes.patch
+patch -p1 < $CWD/30_makefilein_setting.patch
+
+# Set the default pager & editor to things that actually exist on
+# Slackware. The user's EDITOR and PAGER will override these, or they
+# can be set system-wide by the admin, in the config file.
+FDPAGER=${FDPAGER:-less} ; FDPAGER=$( which $FDPAGER )
+FDEDITOR=${FDEDITOR:-vim} ; FDEDITOR=$( which $FDEDITOR )
+
+sed -i -e "s,/usr/bin/pager,$FDPAGER," \
+ -e "s,/usr/bin/editor,$FDEDITOR," \
+ fd.h
+
+make config
+make CFLAGS="$SLKCFLAGS" \
+ PREFIX=/usr \
+ CONFDIR=/etc/$PRGNAM
+
+# make install fails to create this:
+mkdir -p $PKG/usr/man/man1
+
+make install \
+ PREFIX=$PKG/usr \
+ DATADIR=$PKG/usr/share/$PRGNAM \
+ MANDIR=$PKG/usr/man/man1 \
+ EMANDIR=$PKG/usr/man/man1 \
+ JMANDIR=$PKG/usr/man/ja/man1 \
+ JCATDIR=$PKG/usr/man/ja/man1 \
+ DEFRC=$PKG/etc/$PRGNAM/fd2rc
+
+# Rename to avoid conflict with system/fd
+rename /fd /$PRGNAM \
+ $PKG/usr/bin/fd \
+ $PKG/usr/man/man1/fd.1 \
+ $PKG/usr/man/ja/man1/fd.1
+
+# De-hardlinkify
+rm -f $PKG/usr/bin/fdsh
+ln -s $PRGNAM $PKG/usr/bin/fdsh
+rm -f $PKG/usr/man/man1/fdsh.1 $PKG/usr/man/ja/man1/fdsh.1
+gzip -9 $PKG/usr/man/man1/$PRGNAM.1 $PKG/usr/man/ja/man1/$PRGNAM.1
+ln -s $PRGNAM.1.gz $PKG/usr/man/man1/fdsh.1.gz
+ln -s $PRGNAM.1.gz $PKG/usr/man/ja/man1/fdsh.1.gz
+
+# Don't install fd2rc as a .new config, since it sources
+# fd2rc.siteconfig, which can override anything in fd2rc,
+# and the comments at the top explain this clearly.
+mkdir -p $PKG/etc/$PRGNAM
+cat $CWD/fd2rc > $PKG/etc/$PRGNAM/fd2rc
+echo "# fd2rc.siteconfig - see fd2rc for options you can use here" > \
+ $PKG/etc/$PRGNAM/fd2rc.siteconfig.new
+
+mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
+cp -a FAQ* HISTORY* LICENSES* README* TECHKNOW* $PKG/usr/doc/$PRGNAM-$VERSION
+cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
+
+mkdir -p $PKG/install
+cat $CWD/slack-desc > $PKG/install/slack-desc
+cat $CWD/doinst.sh > $PKG/install/doinst.sh
+
+cd $PKG
+/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}
diff --git a/system/fdclone/fdclone.info b/system/fdclone/fdclone.info
new file mode 100644
index 0000000000000..7172c22de0215
--- /dev/null
+++ b/system/fdclone/fdclone.info
@@ -0,0 +1,10 @@
+PRGNAM="fdclone"
+VERSION="3.01j"
+HOMEPAGE="http://hp.vector.co.jp/authors/VA012337/soft/fd/"
+DOWNLOAD="http://hp.vector.co.jp/authors/VA012337/soft/fd/FD-3.01j.tar.gz"
+MD5SUM="81f4b5a2aa50afac8c1677d34a646a7e"
+DOWNLOAD_x86_64=""
+MD5SUM_x86_64=""
+REQUIRES=""
+MAINTAINER="B. Watson"
+EMAIL="yalhcru@gmail.com"
diff --git a/system/fdclone/slack-desc b/system/fdclone/slack-desc
new file mode 100644
index 0000000000000..0a69b2b38e50c
--- /dev/null
+++ b/system/fdclone/slack-desc
@@ -0,0 +1,19 @@
+# HOW TO EDIT THIS FILE:
+# The "handy ruler" below makes it easier to edit a package description.
+# Line up the first '|' above the ':' following the base package name, and
+# the '|' on the right side marks the last column you can put a character in.
+# You must make exactly 11 lines for the formatting to be correct. It's also
+# customary to leave one space after the ':' except on otherwise blank lines.
+
+ |-----handy-ruler------------------------------------------------------|
+fdclone: fdclone (two-pane textmode file manager)
+fdclone:
+fdclone: FDclone is a file & directory maintenance tool for UNIX-based OSes. It
+fdclone: is a clone of "FD" for MS-DOS, made by Mr. A.Idei in 1989.
+fdclone:
+fdclone: fdclone has excellent Japanese language UI, documentation, and
+fdclone: character encoding support, since it originates in Japan.
+fdclone:
+fdclone:
+fdclone:
+fdclone: