From 5ef70c6dac645535d60bd29ff0d6813b0429a6ae Mon Sep 17 00:00:00 2001
From: acoul <acoul@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Date: Sun, 1 Aug 2010 16:57:24 +0000
Subject: package/compcache: use mainline modules for kernels >=2.6.33 (thank
 you nbd)

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@22458 3c298f89-4303-0410-b956-a3cf2f4a3e73
---
 package/compcache/Makefile                   | 36 ++++++++++++++------
 package/compcache/files/compcache.init.new   | 50 ++++++++++++++++++++++++++++
 package/compcache/patches/003-no_stats.patch | 12 +++++++
 3 files changed, 87 insertions(+), 11 deletions(-)
 create mode 100644 package/compcache/files/compcache.init.new
 create mode 100644 package/compcache/patches/003-no_stats.patch

(limited to 'package')

diff --git a/package/compcache/Makefile b/package/compcache/Makefile
index 5106293e8..f7b7c5b3f 100644
--- a/package/compcache/Makefile
+++ b/package/compcache/Makefile
@@ -10,7 +10,7 @@ include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=compcache
 PKG_VERSION:=0.6.2
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 PKG_SOURCE_URL:=http://compcache.googlecode.com/files/
 PKG_MD5SUM:=27aec78dc50e34fb800c74e879057743
 
@@ -23,8 +23,17 @@ define KernelPackage/ramzswap
   DEPENDS:=@BUSYBOX_CONFIG_SWAPONOFF
   TITLE:=Driver for compressed ram swap device
   VERSION:=$(LINUX_VERSION)-$(BOARD)-$(LINUX_RELEASE)+$(PKG_RELEASE)
-  FILES:=$(PKG_BUILD_DIR)/ramzswap.ko \
-	 $(PKG_BUILD_DIR)/sub-projects/compression/lzo-kmod/lzo1x.ko
+  KCONFIG:=CONFIG_RAMZSWAP=m CONFIG_RAMZSWAP_STATS=n
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
+  FILES:= \
+  	$(LINUX_DIR)/drivers/staging/ramzswap/ramzswap.ko \
+	$(LINUX_DIR)/lib/lzo/lzo_compress.ko \
+	$(LINUX_DIR)/lib/lzo/lzo_decompress.ko 
+else
+  FILES:= \
+        $(PKG_BUILD_DIR)/ramzswap.ko \
+        $(PKG_BUILD_DIR)/sub-projects/compression/lzo-kmod/lzo1x.ko
+endif
   URL:=http://code.google.com/p/compcache/
 endef
 
@@ -39,20 +48,21 @@ endef
 
 include $(INCLUDE_DIR)/kernel-defaults.mk
 
-LZO = sub-projects/compression/lzo-kmod
 RZSC = sub-projects/rzscontrol
 
-BUILDFLAGS:=-DCONFIG_RAMZSWAP_STATS \
-	    -I$(PKG_BUILD_DIR)/$(LZO) \
-	    -Wall
-
 RZSCFLAGS:=-I$(PKG_BUILD_DIR)/$(RZSC)/../include \
 	   -I$(PKG_BUILD_DIR)/$(RZSC)/../..
 
-define Build/Compile
-	$(MAKE) $(KERNEL_MAKEOPTS) EXTRA_CFLAGS="$(BUILDFLAGS)" M="$(PKG_BUILD_DIR)" modules
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
+ define Build/Compile
+	$(TARGET_CC) $(TARGET_CFLAGS) $(RZSCFLAGS) $(PKG_BUILD_DIR)/$(RZSC)/rzscontrol.c -o $(PKG_BUILD_DIR)/rzscontrol 
+ endef
+else 
+ define Build/Compile
+	$(MAKE) $(KERNEL_MAKEOPTS) EXTRA_CFLAGS="-I$(PKG_BUILD_DIR)/sub-projects/compression/lzo-kmod -Wall" M="$(PKG_BUILD_DIR)" modules
 	$(TARGET_CC) $(TARGET_CFLAGS) $(RZSCFLAGS) $(PKG_BUILD_DIR)/$(RZSC)/rzscontrol.c -o $(PKG_BUILD_DIR)/rzscontrol
-endef
+ endef
+endif
 
 define Package/compcache/install
 	$(INSTALL_DIR) $(1)/etc/config
@@ -62,7 +72,11 @@ define Package/compcache/install
 	      -e 's,%BACKUP_DEV%,$(call qstrip,$(CONFIG_COMPCACHE_BACKUP_DEV)),g' \
 	      $(1)/etc/config/compcache
 	$(INSTALL_DIR) $(1)/etc/init.d
+ifeq ($(strip $(call CompareKernelPatchVer,$(KERNEL_PATCHVER),ge,2.6.33)),1)
+	$(INSTALL_BIN) ./files/compcache.init.new $(1)/etc/init.d/compcache
+else
 	$(INSTALL_BIN) ./files/compcache.init $(1)/etc/init.d/compcache
+endif
 	$(INSTALL_DIR) $(1)/sbin
 	$(INSTALL_BIN) $(PKG_BUILD_DIR)/rzscontrol $(1)/sbin/rzscontrol
 endef
diff --git a/package/compcache/files/compcache.init.new b/package/compcache/files/compcache.init.new
new file mode 100644
index 000000000..18aead9f2
--- /dev/null
+++ b/package/compcache/files/compcache.init.new
@@ -0,0 +1,50 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008 OpenWrt.org
+START=14
+
+load_modules() {
+	local section="$1"
+	config_get "size_kbytes" "$section" "size_kbytes"
+	config_get "backup_dev" "$section" "backup_dev"
+	#CC_PARAM_STR="memlimit_kb=$1 backing_dev=$BACKING_DEV"
+	config_get_bool "enabled" "$section" "enabled" '1'
+	if [ "$enabled" -gt 0 ]; then
+		if [ "`cat /proc/swaps | grep 'ramzswap0'`" != "" ]; then
+			echo "compcache already loaded"
+		else
+			if [ "$backup_dev" != "" ]; then
+				params_set="memlimit_kb=$size_kbytes backing_swap=$backup_dev"
+			else
+				params_set="disksize_kb=$size_kbytes"
+			fi
+			if [ "`lsmod | grep 'ramzswap'`" == "" ]; then
+				insmod lzo_compress
+				insmod lzo_decompress
+				insmod ramzswap $params_set
+				sleep 2
+				swapon /dev/ramzswap0
+			fi
+		fi
+	fi
+}
+
+remove_modules() {
+	local section="$1"
+	config_get_bool "enabled" "$section" "enabled" '1'
+	if [ "$enabled" -gt 0 ]; then
+		[ "`cat /proc/swaps | grep 'ramzswap0'`" != "" ] && swapoff /dev/ramzswap0
+		[ "`lsmod | grep 'ramzswap'`" != "" ] && rmmod ramzswap &> /dev/null
+		[ "`lsmod | grep 'lzo_compress'`" != "" ] && rmmod lzo_compress &> /dev/null
+		[ "`lsmod | grep 'lzo_decompress'`" != "" ] && rmmod lzo_decompress &> /dev/null
+	fi
+}
+
+start() {
+	config_load "compcache"
+	config_foreach load_modules "compcache"
+}
+
+stop() {
+	config_load "compcache"
+	config_foreach remove_modules "compcache"
+}
diff --git a/package/compcache/patches/003-no_stats.patch b/package/compcache/patches/003-no_stats.patch
new file mode 100644
index 000000000..bfa25f8c9
--- /dev/null
+++ b/package/compcache/patches/003-no_stats.patch
@@ -0,0 +1,12 @@
+--- a/Makefile
++++ b/Makefile
+@@ -2,8 +2,7 @@ KERNEL_BUILD_PATH ?= "/lib/modules/$(she
+ 
+ XVM = sub-projects/allocators/xvmalloc-kmod
+ LZO = sub-projects/compression/lzo-kmod
+-EXTRA_CFLAGS	:=	-DCONFIG_RAMZSWAP_STATS		\
+-			-Wall
++EXTRA_CFLAGS	:=	-Wall
+ 
+ obj-m		+=	ramzswap.o $(LZO)/lzo1x.o
+ ramzswap-objs	:=	ramzswap_drv.o $(XVM)/xvmalloc.o
-- 
cgit v1.2.3