diff --git a/smgl/castfs/DETAILS b/smgl/castfs/DETAILS
index 57caacd..5ddd3bb 100755
--- a/smgl/castfs/DETAILS
+++ b/smgl/castfs/DETAILS
@@ -14,6 +14,7 @@ SOURCE_DIRECTORY=$BUILD_DIRECTORY/${SPELL}-git
FORCE_DOWNLOAD=1
else
VERSION=0.6.1
+ PATCHLEVEL=4
SOURCE=${SPELL}-${VERSION}.tar.bz2
SOURCE2=${SOURCE}.sig
SOURCE_DIRECTORY=$BUILD_DIRECTORY/${SPELL}-${VERSION}
@@ -27,7 +28,6 @@ fi
LICENSE[0]=GPL
KEYWORDS="filesystems smgl"
SHORT="Fuse filesystem used for staging packages."
- PATCHLEVEL=3
cat << EOF
castfs is a fuse filesystem written in C and is used for capturing
filesystem
calls for your root filesystem and staging any modifications or additions to
diff --git a/smgl/castfs/HISTORY b/smgl/castfs/HISTORY
index abe8701..6c0c4df 100644
--- a/smgl/castfs/HISTORY
+++ b/smgl/castfs/HISTORY
@@ -1,3 +1,10 @@
+2012-08-05 Vlad Glagolev <stealth AT sourcemage.org>
+ * DETAILS: register new triggers (PATCHLEVEL+=1)
+ * TRIGGERS: corrected static build check
+ * PRE_BUILD: apply the patch
+ * argc.patch: added, to prevent crashing when ran without arguments
+ (fixes #395)
+
2012-06-06 Florian Franzmann <siflfran AT hawo.stw.uni-erlangen.de>
* BUILD: added -lpthread to LDFLAGS to prevent link error
diff --git a/smgl/castfs/PRE_BUILD b/smgl/castfs/PRE_BUILD
index 946a46c..20c1e58 100755
--- a/smgl/castfs/PRE_BUILD
+++ b/smgl/castfs/PRE_BUILD
@@ -1,4 +1,7 @@
default_pre_build &&
cd $SOURCE_DIRECTORY &&
+
+patch -p0 < "$SPELL_DIRECTORY/argc.patch" &&
+
# disable the xattr functions until they get fixed #14479
sed -i 's,setxattr,,' configure
diff --git a/smgl/castfs/TRIGGERS b/smgl/castfs/TRIGGERS
index 1324f64..6af29bb 100755
--- a/smgl/castfs/TRIGGERS
+++ b/smgl/castfs/TRIGGERS
@@ -1,3 +1,3 @@
-if [[ $STATIC_FUSE == y ]]; then
+if list_find "$STATIC_FUSE" "--enable-static-fuse"; then
on_cast fuse cast_self
fi
diff --git a/smgl/castfs/argc.patch b/smgl/castfs/argc.patch
new file mode 100644
index 0000000..a70bc69
--- /dev/null
+++ b/smgl/castfs/argc.patch
@@ -0,0 +1,30 @@
+--- src/castfs.c.orig 2010-03-30 09:07:57.000000000 +0400
++++ src/castfs.c 2012-08-05 16:05:34.667167115 +0400
+@@ -724,6 +724,13 @@
+ char *new_argv[argc], *logptr, *dbgptr, deflog[]="/tmp/castfs.log";
+ int new_argc = 0;
+
++ /* Currently, need: `castfs mnt-dir -o stage=stage-dir` */
++ if (argc < 4) {
++fprintf(stderr, "castfs: argc wrong\n");
++ usage();
++ exit(-1);
++ }
++
+ /* get environmental vars and open fd's for log file */
+ umask(0);
+
+@@ -760,13 +767,6 @@
+ dbglvl = dbgdef; // Toggle the needed bits.
+ }
+
+- /* Currently, need: `castfs mnt-dir -o stage=stage-dir` */
+- if (argc < 4) {
+-fprintf(stderr, "castfs: argc wrong\n");
+- usage();
+- exit(-1);
+- }
+-
+ /* dump some nice header information in the log file */
+ cast_log(CAST_DBG_MAIN, "main\n");
+ cast_log(CAST_DBG_MAIN, "logfile %s fd %d\n",
getenv("CASTFS_LOGFILE"),
[SM-Commit] GIT changes to master grimoire by Vlad Glagolev (d57378f903c31d92c73d1050f31ff1146bb6dcfc),
Vlad Glagolev, 08/05/2012