From 76ed58d705e7f3892a1259abcd92882a527e7b53 Mon Sep 17 00:00:00 2001 From: nbd Date: Sat, 28 May 2005 09:17:29 +0000 Subject: 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 --- target/linux/package/shfs/Config.in | 24 +++++ target/linux/package/shfs/Makefile | 47 ++++++++++ target/linux/package/shfs/ipkg/kmod-shfs.control | 8 ++ .../package/shfs/patches/101-kmod_build.patch | 103 +++++++++++++++++++++ 4 files changed, 182 insertions(+) create mode 100644 target/linux/package/shfs/Config.in create mode 100644 target/linux/package/shfs/Makefile create mode 100644 target/linux/package/shfs/ipkg/kmod-shfs.control create mode 100644 target/linux/package/shfs/patches/101-kmod_build.patch (limited to 'target/linux/package/shfs') diff --git a/target/linux/package/shfs/Config.in b/target/linux/package/shfs/Config.in new file mode 100644 index 000000000..8d30c8c03 --- /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 000000000..a329bbffc --- /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 000000000..b7ce61293 --- /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 +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 000000000..635900472 --- /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 ++ -- cgit v1.2.3