aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/package/shfs
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2005-05-28 09:17:29 +0000
committerFelix Fietkau <nbd@openwrt.org>2005-05-28 09:17:29 +0000
commit1c4a2a55f76e481a2d1bc005405b9ce856d58939 (patch)
tree80dfa6ecb493ee8cb9ca1436f1b37ee89f320a55 /target/linux/package/shfs
parentfdd5681c06468a606180f04c2533c8ba213a37f6 (diff)
downloadupstream-1c4a2a55f76e481a2d1bc005405b9ce856d58939.tar.gz
upstream-1c4a2a55f76e481a2d1bc005405b9ce856d58939.tar.bz2
upstream-1c4a2a55f76e481a2d1bc005405b9ce856d58939.zip
move package/linux into target/linux, use wbx' new kernel code. support building images with more than one kernel, split kernel module parts off of packages that use their own kernel modules (fuse, shfs, openswan). some cleanup in the image building process in target/. image builder is disabled for now, needs some fixing.
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@1085 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/package/shfs')
-rw-r--r--target/linux/package/shfs/Config.in24
-rw-r--r--target/linux/package/shfs/Makefile47
-rw-r--r--target/linux/package/shfs/ipkg/kmod-shfs.control8
-rw-r--r--target/linux/package/shfs/patches/101-kmod_build.patch103
4 files changed, 182 insertions, 0 deletions
diff --git a/target/linux/package/shfs/Config.in b/target/linux/package/shfs/Config.in
new file mode 100644
index 0000000000..8d30c8c031
--- /dev/null
+++ b/target/linux/package/shfs/Config.in
@@ -0,0 +1,24 @@
+config BR2_PACKAGE_KMOD_SHFS
+ prompt "kmod-shfs - Shell FileSystem kernel module (ShFS) kernel module"
+ tristate
+ default m if CONFIG_DEVEL
+ help
+ ShFS is a simple and easy to use Linux kernel module which
+ allows you to mount remote filesystems using a plain shell
+ (SSH) connection. When using ShFS, you can access all remote
+ files just like the local ones, only the access is governed
+ through the transport security of SSH.
+
+ ShFS supports some nice features:
+
+ * file cache for access speedup
+ * perl and shell code for the remote (server) side
+ * could preserve uid/gid (root connection)
+ * number of remote host platforms (Linux, Solaris, Cygwin, ...)
+ * Linux kernel 2.4.10+ and 2.6
+ * arbitrary command used for connection (instead of SSH)
+ * persistent connection (reconnect after SSH dies)
+
+ http://shfs.sourceforge.net/
+
+ This package contains the shfs.o kernel module.
diff --git a/target/linux/package/shfs/Makefile b/target/linux/package/shfs/Makefile
new file mode 100644
index 0000000000..a329bbffc9
--- /dev/null
+++ b/target/linux/package/shfs/Makefile
@@ -0,0 +1,47 @@
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME := shfs
+PKG_VERSION := 0.35
+PKG_RELEASE := 2
+PKG_MD5SUM := 016f49d71bc32eee2b5d11fc1600cfbe
+
+PKG_SOURCE_URL := @SF/shfs
+PKG_SOURCE := $(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_CAT := zcat
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+PKG_INSTALL_DIR:=$(PKG_BUILD_DIR)/ipkg-install
+
+ifeq ($(KERNEL_DIR),)
+KERNEL_DIR:=$(LINUX_DIR)
+endif
+
+include $(TOPDIR)/package/rules.mk
+
+$(eval $(call PKG_template,KMOD_SHFS,kmod-shfs,$(LINUX_VERSION)+$(PKG_VERSION)-$(PKG_RELEASE),$(ARCH)))
+
+$(PKG_BUILD_DIR)/.configured:
+ touch $@
+
+$(PKG_BUILD_DIR)/.built:
+ rm -rf $(PKG_INSTALL_DIR)
+ mkdir -p $(PKG_INSTALL_DIR)
+ $(MAKE) -C $(PKG_BUILD_DIR) \
+ OFLAGS="$(TARGET_CFLAGS)" \
+ CC="$(TARGET_CC)" \
+ LINKER="$(TARGET_CC)" \
+ KERNEL="$(LINUX_VERSION)" \
+ KERNEL_SOURCES="$(KERNEL_DIR)" \
+ ROOT="$(PKG_INSTALL_DIR)" \
+ module module-install
+ touch $@
+
+$(IPKG_KMOD_SHFS):
+ install -m0755 -d $(IDIR_KMOD_SHFS)/lib/modules/$(LINUX_VERSION)
+ cp -fpR $(PKG_INSTALL_DIR)/lib/modules/$(LINUX_VERSION)/kernel/fs/shfs/shfs.o \
+ $(IDIR_KMOD_SHFS)/lib/modules/$(LINUX_VERSION)/
+ $(RSTRIP_KMOD) $(IDIR_KMOD_SHFS)
+ $(IPKG_BUILD) $(IDIR_KMOD_SHFS) $(PACKAGE_DIR)
+
diff --git a/target/linux/package/shfs/ipkg/kmod-shfs.control b/target/linux/package/shfs/ipkg/kmod-shfs.control
new file mode 100644
index 0000000000..b7ce612933
--- /dev/null
+++ b/target/linux/package/shfs/ipkg/kmod-shfs.control
@@ -0,0 +1,8 @@
+Package: kmod-shfs
+Priority: optional
+Section: net
+Version: [TBDL]
+Architecture: [TBDL]
+Maintainer: Nico <nthill@free.fr>
+Source: http://nthill.free.fr/openwrt/sources/shfs/
+Description: SHell FileSystem Linux kernel module
diff --git a/target/linux/package/shfs/patches/101-kmod_build.patch b/target/linux/package/shfs/patches/101-kmod_build.patch
new file mode 100644
index 0000000000..635900472d
--- /dev/null
+++ b/target/linux/package/shfs/patches/101-kmod_build.patch
@@ -0,0 +1,103 @@
+--- shfs-0.35-orig/shfs/Linux-2.4/Makefile 2004-06-01 15:16:19.000000000 +0200
++++ shfs-0.35-2/shfs/Linux-2.4/Makefile 2005-04-09 02:34:35.000000000 +0200
+@@ -1,3 +1,17 @@
++#
++# the original Makefile was trashed and replaced by this one
++# The main reason is that loadable modules should be built with
++# the same compile flags the kernel was built with, so we'd better
++# let the kernel tree build the module for us, like that :
++#
++# make -C $(KERNEL_DIR) SUBDIRS="$(shell pwd)" modules
++# make -C $(KERNEL_DIR) SUBDIRS="$(shell pwd)" modules_install
++#
++#
++# $(TOPDIR)/lib/string.o is needed at link time because the memchr function
++# is not exported on mips (insmod: unresolved symbol memchr)
++#
++
+ ifndef KERNEL
+ KERNEL=$(shell uname -r)
+ endif
+@@ -10,67 +24,30 @@
+ KERNEL_SOURCES=${MODULESDIR}/build
+ endif
+
+-ifeq (${MODVERSIONS},detect)
+- ifeq ($(shell test -e ${KERNEL_SOURCES}/include/linux/modversions.h; echo $$?),0)
+- MODVERSIONS=yes
+- endif
+-endif
+-
+-ifeq (${MODVERSIONS},yes)
+-MVER=-DMODVERSIONS -DEXPORT_SYMTAB
+-endif
+-
+-LINVER=linux-${KERNEL}
+-
+-ALL_TARGETS := shfs.o
+-
+-SEARCHDIRS := -I- -I. -I${KERNEL_SOURCES}/include #-I/usr/src/linux/include/
++all: all-y
+
+-CC := gcc
+-CFLAGS = -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -Wall ${SEARCHDIRS} -DMODULE ${MVER} -D__KERNEL__ -DLINUX
+-LINKER := ld
+-LDFLAGS = -r
+-LOADLIBES :=
++O_TARGET := shfs.o
+
+-all: ${ALL_TARGETS}
++shfs-objs := dcache.o dir.o fcache.o file.o inode.o ioctl.o proc.o shell.o symlink.o
+
+-%.o: %.c $(wildcard *.h)
+- ${CC} ${CFLAGS} -c $< -o $@
++obj-y := $(shfs-objs)
++obj-m := $(O_TARGET)
+
+-shfs.o: dcache.o dir.o fcache.o file.o inode.o ioctl.o proc.o shell.o symlink.o
+- ${LINKER} ${LDFLAGS} -o $@ ${filter-out %.a %.so, $^} ${LOADLIBES}
+-
+-tidy:
+- ${RM} core dcache.o dir.o fcache.o file.o inode.o ioctl.o proc.o shell.o symlink.o
+-
+-clean: tidy patch-clean
+- ${RM} shfs.o
++-include $(TOPDIR)/Rules.make
+
++all-y:
++ make -C ${KERNEL_SOURCES} TOPDIR="${KERNEL_SOURCES}" SUBDIRS="$(shell pwd)" modules
++
+ install: shfs.o
+ rm -f ${MODULESDIR}/kernel/fs/shfs/shfs.o
+ install -m644 -b -D shfs.o ${MODULESDIR}/kernel/fs/shfs/shfs.o
+- if [ -x /sbin/depmod -a "${ROOT}" = "/" ]; then /sbin/depmod -aq; fi
+
+ uninstall:
+ rm -rf ${MODULESDIR}/kernel/fs/shfs
+- if [ -x /sbin/depmod -a "${ROOT}" = "/" ]; then /sbin/depmod -aq; fi
+
+-patch:
+- rm -rf ${LINVER} ${LINVER}.orig; mkdir ${LINVER};
+- for i in Documentation fs/shfs include/linux; do \
+- mkdir -p ${LINVER}/$$i; \
+- done
+- cp ${KERNEL_SOURCES}/Documentation/Configure.help ${LINVER}/Documentation
+- cp ${KERNEL_SOURCES}/fs/{Makefile,Config.in} ${LINVER}/fs
+- cp -r ${LINVER} ${LINVER}.orig
+- cp ../../Changelog *.c shfs_debug.h proc.h ${LINVER}/fs/shfs/
+- cp shfs.h shfs_fs* ${LINVER}/include/linux/
+- (cd ${LINVER}; patch -p1 <../kernel-config.diff)
+- find . -type f -name "*.orig" -print | xargs rm -f
+- diff -urN ${LINVER}.orig ${LINVER} >${LINVER}.diff; true
+-
+-patch-clean:
+- rm -rf ${LINVER} ${LINVER}.orig;
+- rm -f ${LINVER}.diff
+-
+-.PHONY : all tidy clean install uninstall patch patch-clean
++clean:
++ rm -f core *.o *.a *.s
++
++shfs.o: $(shfs-objs)
++ $(LD) -r -o $@ $(shfs-objs) $(TOPDIR)/lib/string.o
++