Gentoo Archives: gentoo-commits

From: "Sebastien Fabbro (bicatali)" <bicatali@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in net-fs/cvmfs/files: cvmfsd.confd cvmfs-2.0.19-no-redhat-init.patch cvmfsd.initd cvmfs-2.0.19-spinlock.patch cvmfs-2.0.19-openrc.patch cvmfs-2.0.19-autotools.patch cvmfs.initd
Date: Tue, 30 Oct 2012 14:44:49
Message-Id: 20121030144427.6BE8721601@flycatcher.gentoo.org
1 bicatali 12/10/30 14:44:27
2
3 Added: cvmfsd.confd cvmfs-2.0.19-no-redhat-init.patch
4 cvmfsd.initd cvmfs-2.0.19-spinlock.patch
5 cvmfs-2.0.19-openrc.patch
6 cvmfs-2.0.19-autotools.patch cvmfs.initd
7 Log:
8 Import from science overlay, version bump
9
10 (Portage version: 2.2.0_alpha141/cvs/Linux x86_64, signed Manifest commit with key 0x13CB1360)
11
12 Revision Changes Path
13 1.1 net-fs/cvmfs/files/cvmfsd.confd
14
15 <<Binary file>>
16
17
18 1.1 net-fs/cvmfs/files/cvmfs-2.0.19-no-redhat-init.patch
19
20 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-no-redhat-init.patch?rev=1.1&view=markup
21 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-no-redhat-init.patch?rev=1.1&content-type=text/plain
22
23 Index: cvmfs-2.0.19-no-redhat-init.patch
24 ===================================================================
25 * Avoid forcing install of fedora/redhat init scripts
26 * Add a more general init script to adapt other distributions
27
28 bicatali@g.o 07/2012
29
30 --- cvmfs-2.0.19.orig/mount/Makefile.am
31 +++ cvmfs-2.0.19/mount/Makefile.am
32 @@ -2,14 +2,12 @@
33 install-exec-hook:
34 test -z "$(DESTDIR)/etc" || mkdir -p "$(DESTDIR)/etc"
35 test -z "$(DESTDIR)/sbin" || mkdir -p "$(DESTDIR)/sbin"
36 - test -z "$(DESTDIR)/etc/rc.d/init.d" || mkdir -p "$(DESTDIR)/etc/rc.d/init.d"
37 test -z "$(DESTDIR)/etc/cvmfs" || mkdir -p "$(DESTDIR)/etc/cvmfs"
38 test -z "$(DESTDIR)/etc/cvmfs/config.d" || mkdir -p "$(DESTDIR)/etc/cvmfs/config.d"
39 test -z "$(DESTDIR)/etc/cvmfs/domain.d" || mkdir -p "$(DESTDIR)/etc/cvmfs/domain.d"
40 test -z "$(DESTDIR)/etc/cvmfs/keys" || mkdir -p "$(DESTDIR)/etc/cvmfs/keys"
41 install -c auto.cvmfs "$(DESTDIR)/etc/auto.cvmfs"
42 install -c mount.cvmfs "$(DESTDIR)/sbin/mount.cvmfs"
43 - install -c cvmfs.initd "$(DESTDIR)/etc/rc.d/init.d/cvmfs"
44 install -c -m 0644 config.sh "$(DESTDIR)/etc/cvmfs/config.sh"
45 install -c -m 0644 default.conf "$(DESTDIR)/etc/cvmfs/default.conf"
46 install -c -m 0644 domain.d/cern.ch.conf "$(DESTDIR)/etc/cvmfs/domain.d/cern.ch.conf"
47
48
49
50 1.1 net-fs/cvmfs/files/cvmfsd.initd
51
52 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfsd.initd?rev=1.1&view=markup
53 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfsd.initd?rev=1.1&content-type=text/plain
54
55 Index: cvmfsd.initd
56 ===================================================================
57 #!/sbin/runscript
58
59 . /etc/cvmfs/server.conf
60 [[ -f /etc/cvmfs/server.local ]] && . /etc/cvmfs/server.local
61
62 extra_commands="checkconfig"
63 extra_started_commands="pause flush resume"
64
65 description="Background daemon that writes the cvmfs character device into a log file"
66 description_checkconfig="Check configuration file validity"
67 description_pause="Pause the transactions (not a full stop)"
68 description_flush="Flush the CernVM-FS change log"
69 description_resume="Resume transactions after a pause"
70
71 pidfile="/var/run/cvmfsd.pid"
72 subsysfile="/var/lock/subsys/cvmfsd"
73
74 checkconfig() {
75 local var ret=0
76 for var in SHADOW_DIR PUB_DIR LOG_FILE; do
77 eval value=\$$var
78 if [[ -z ${value} ]]; then
79 eerror "You need to set a value for ${var} in /etc/cvmfs/server.local"
80 ret=$((ret + $?))
81 fi
82 done
83 return ${ret}
84 }
85
86 depend() {
87 after localmount
88 use net
89 }
90
91 # returns: 0 (stopped), 1 (running), 2 (paused)
92 check_status() {
93 if [ -f ${pidfile} ]; then
94 [ $(cat /sys/fs/redirfs/filters/cvmfsflt/lockdown) -eq 1 ] && return 2
95 return 1
96 fi
97 return 0
98 }
99
100 # FIXME: could we use start-stop-daemon instead of listen/unlisten?
101
102 listen() {
103 ebegin "Starting journal writer"
104 nohup cat /dev/cvmfs >> "${LOG_FILE}" 2>/dev/null </dev/null &
105 [ $? -eq 0 ] && echo $! > ${pidfile}
106 eend $?
107 }
108
109 unlisten() {
110 ebegin "Stopping journal writer"
111 local pid=$(cat ${pidfile})
112 kill ${pid}
113 local killed=0 retries=0
114 while [ ${killed} -eq 0 ]; do
115 sleep 1
116 kill -0 ${pid} 2>/dev/null
117 killed=$?
118 retries=$((retries + 1))
119 [ ${retries} -eq 3 ] && kill -9 ${pid}
120 done
121 eend $?
122 }
123
124 start() {
125 checkconfig || return 1
126
127 if [ ! -d ${SHADOW_DIR} ]; then
128 eerror "Missing ${SHADOW_DIR}"
129 return 1
130 fi
131
132 if mkdir -p "$(echo "${LOG_FILE}" | grep -o '\([^\/]*\/\)*')"; then
133 eerror "Could not create file system journal in ${LOG_FILE}"
134 return 1
135 fi
136
137 ebegin "Loading cvmfsflt kernel module"
138 modprobe -q redirfs && modprobe -q cvmfsflt
139 eend $? || return 1
140
141 ebegin "Linking to character device"
142 rm -f /dev/cvmfs
143 mknod /dev/cvmfs c $(awk '/cvmfs/ {print $1}' /proc/devices) 0 > /dev/null 2>&1
144 chmod 0600 /dev/cvmfs
145 eend $? || return 1
146
147 ebegin "Setting filter path to ${SHADOW_DIR}"
148 echo -n "a:i:${SHADOW_DIR}" > /sys/fs/redirfs/filters/cvmfsflt/paths
149 eend $? || return 1
150
151 listen || return 1
152 ebegin "Starting CernVM-FS daemon"
153 touch ${subsysfile}
154 eend $?
155 }
156
157
158 pause() {
159 check_status
160 local ret=$?
161 if [ ${ret} -eq 0 ]; then
162 eerror "CernVM-FS daemon is stopped"
163 return 1
164 fi
165 if [ ${ret} -eq 2 ]; then
166 ewarn "CernVM-FS daemon is already paused"
167 return 1
168 fi
169
170 ebegin "Locking down ${SHADOW_DIR}"
171 echo -n "1" > /sys/fs/redirfs/filters/cvmfsflt/lockdown
172 eend $? || return 1
173
174 ebegin "Waiting for pending operations on ${SHADOW_DIR}"
175 local nowops noll
176 while true; do
177 nowops=$(cat /sys/fs/redirfs/filters/cvmfsflt/nowops)
178 [ $? -ne 0 ] && eend 1 && return 1
179 [ ${nowops} -eq 0 ] && break
180 sleep 1
181 done
182 eend $?
183
184 ebegin "Waiting for pending messages in call buffer"
185 local noll
186 while true; do
187 noll=$(cat /sys/fs/redirfs/filters/cvmfsflt/noll)
188 [ $? -ne 0 ] && eend 1 && return 1
189 [ ${noll} -eq 0 ] && break
190 sleep 1
191 done
192 eend $? || return 1
193 unlisten || return 1
194 mark_service_stopped cvmfsd
195 }
196
197 resume() {
198 check_status
199 local ret=$?
200 if [ ${ret} -eq 0 ]; then
201 eerror "CernVM-FS daemon is stopped"
202 return 1
203 fi
204 if [ $retval -eq 1 ]; then
205 ewarn "CernVM-FS daemon is already running"
206 return 1
207 fi
208
209 listen || return 1
210
211 ebegin "Open up ${SHADOW_DIR}"
212 echo -n "0" > /sys/fs/redirfs/filters/cvmfsflt/lockdown
213 eend $? || return 1
214 mark_service_started cvmfsd
215 }
216
217
218 stop() {
219 check_status
220 local ret=$?
221 if [ ${ret} -eq 0 ]; then
222 ewarn "CernVM-FS daemon is already stopped"
223 return 2
224 fi
225
226 if [ ${ret} -eq 1 ]; then
227 pause
228 ret=$?
229 [ ${ret} -ne 0 ] && return ${ret}
230 fi
231
232 ebegin "Unloading cvmfsflt kernel module"
233 echo -n "c\0" > /sys/fs/redirfs/filters/cvmfsflt/paths || ret=$((ret + 1))
234 echo -n "1\0" > /sys/fs/redirfs/filters/cvmfsflt/unregister || ret=$((ret + 1))
235 rmmod cvmfsflt || ret=$((ret + 1))
236 eend ${ret} || return 1
237
238 ebegin "Shutting down CernVM-FS daemon"
239 rm -f ${pidfile} ${subsysfile}
240 eend $?
241 }
242
243 flush() {
244 ebegin "Flushing CernVM-FS server file system change log"
245 cat /dev/null > "${LOG_FILE}"
246 eend $?
247 }
248
249
250
251 1.1 net-fs/cvmfs/files/cvmfs-2.0.19-spinlock.patch
252
253 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-spinlock.patch?rev=1.1&view=markup
254 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-spinlock.patch?rev=1.1&content-type=text/plain
255
256 Index: cvmfs-2.0.19-spinlock.patch
257 ===================================================================
258 Use macro since SPIN_LOCK_UNLOCKED has been obsolete in kernel since 2007
259
260 bicatali@g.o 07/2012
261
262 --- cvmfs-2.0.19.orig/kernel/cvmfsflt/src/cvmfsflt_data.c
263 +++ cvmfs-2.0.19/kernel/cvmfsflt/src/cvmfsflt_data.c
264 @@ -5,7 +5,7 @@
265 int rbuf_head, rbuf_tail; /* Current positions in ring buffer */
266 struct semaphore rbuf_full, rbuf_empty; /* semaphores for producer-consumer synchronization */
267 struct cvmfsflt_logline *ll_current = NULL;
268 -static spinlock_t rbuf_wlock = SPIN_LOCK_UNLOCKED;
269 +DEFINE_SPINLOCK(rbuf_wlock);
270 atomic_t cvmfsflt_noll = ATOMIC_INIT(0); /* number of loglines in the ring buffer */
271
272
273
274
275
276 1.1 net-fs/cvmfs/files/cvmfs-2.0.19-openrc.patch
277
278 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-openrc.patch?rev=1.1&view=markup
279 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-openrc.patch?rev=1.1&content-type=text/plain
280
281 Index: cvmfs-2.0.19-openrc.patch
282 ===================================================================
283 diff -Nur cvmfs-2.0.19.orig/cvmfs/src/cvmfs_config cvmfs-2.0.19/cvmfs/src/cvmfs_config
284 --- cvmfs-2.0.19.orig/cvmfs/src/cvmfs_config 2012-05-05 15:16:19.000000000 +0100
285 +++ cvmfs-2.0.19/cvmfs/src/cvmfs_config 2012-07-23 23:16:06.000000000 +0100
286 @@ -16,9 +16,15 @@
287
288 if [ -x /sbin/service ]; then
289 service="/sbin/service"
290 -else
291 + chkconfig="/sbin/chkconfig"
292 +elif [ -x /usr/sbin/service ]; then
293 # Ubuntu
294 service="/usr/sbin/service"
295 + chkconfig="/usr/sbin/chkconfig"
296 +elif [ -x /sbin/rc-service ]; then
297 + # OpenRC
298 + service="/sbin/rc-service"
299 + chkconfig="/usr/bin/rc-config"
300 fi
301
302 var_list="CVMFS_USER CVMFS_NFILES CVMFS_CACHE_BASE CVMFS_MOUNT_DIR CVMFS_QUOTA_LIMIT \
303 @@ -116,9 +122,9 @@
304 fi
305
306 if [ $noservice -eq 0 ]; then
307 - /sbin/chkconfig --list cvmfs > /dev/null 2>&1
308 + $chkconfig --list cvmfs > /dev/null 2>&1
309 if [ $? -ne 0 ]; then
310 - /sbin/chkconfig --add cvmfs
311 + $chkconfig --add cvmfs
312 fi
313 fi
314
315 @@ -580,8 +586,8 @@
316 for cmd in 'uname -a' 'cat /etc/issue' 'hostname -f' 'ifconfig -a' 'cvmfs2 --version' \
317 'grep cvmfs2 /var/log/messages' 'grep cvmfs2 /var/log/syslog' \
318 "eval find ${CVMFS_CACHE_BASE} -maxdepth 1 -exec ls -lah \{\} \;" \
319 - 'service cvmfs probe' 'mount' 'df -h' 'ps -ef' \
320 - 'service cvmfs status' 'cvmfs_config showconfig' \
321 + "${service}\ cvmfs\ probe" 'mount' 'df -h' 'ps -ef' \
322 + "${service}\ cvmfs\ status" 'cvmfs_config showconfig' \
323 'cvmfs_config chksetup' 'cvmfs_config stat -v' \
324 'cat /etc/fuse.conf' 'ls -la /usr/bin/fusermount' 'ls -la /bin/fusermount' \
325 'cat /etc/auto.master' 'cat /etc/sysconfig/autofs' 'cat /etc/fstab'
326 diff -Nur cvmfs-2.0.19.orig/cvmfs/src/cvmfs_server cvmfs-2.0.19/cvmfs/src/cvmfs_server
327 --- cvmfs-2.0.19.orig/cvmfs/src/cvmfs_server 2011-11-30 11:26:55.000000000 +0000
328 +++ cvmfs-2.0.19/cvmfs/src/cvmfs_server 2012-07-23 23:31:32.000000000 +0100
329 @@ -1,5 +1,13 @@
330 #!/bin/bash
331
332 +service=$(type -P service)
333 +chconfig=$(type -P chkconfig)
334 +if [ -n ${service} ]; then
335 + # OpenRC
336 + service="rc-service"
337 + chkconfig="echo > /dev/null"
338 +fi
339 +
340 create_master_key() {
341 local name; name=$1
342 master_key="/etc/cvmfs/keys/$name.masterkey"
343 @@ -161,8 +169,8 @@
344 create_whitelist $name
345
346 echo -n "Starting services... "
347 - service cvmfsd start > /dev/null
348 - chkconfig cvmfsd on
349 + $service cvmfsd start > /dev/null
350 + $chkconfig cvmfsd on
351 echo "New CernVM-FS repository for $name" > /cvmfs/${name}/empty
352 usermod -s /bin/bash cvmfs
353 publish $name > /dev/null
354 @@ -182,8 +190,8 @@
355
356 echo -n "Stopping services... "
357 usermod -s /sbin/nologin cvmfs
358 - service cvmfsd stop > /dev/null
359 - chkconfig cvmfsd off
360 + $service cvmfsd stop > /dev/null
361 + $chkconfig cvmfsd off
362 echo "done"
363
364 echo -n "Unmounting CernVM-FS Area... "
365
366
367
368 1.1 net-fs/cvmfs/files/cvmfs-2.0.19-autotools.patch
369
370 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-autotools.patch?rev=1.1&view=markup
371 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs-2.0.19-autotools.patch?rev=1.1&content-type=text/plain
372
373 Index: cvmfs-2.0.19-autotools.patch
374 ===================================================================
375 Patch for various autotools fixes:
376 * cleaner enable/disable functions
377 * allow to build against system jemalloc
378 * adapated to newer autoconf with standard macros
379 * use LDADD instead of LDFLAGS to respect user's flags
380
381 bicatali@g.o 07/2012
382
383 diff -Nur cvmfs-2.0.19.orig/configure.ac cvmfs-2.0.19/configure.ac
384 --- cvmfs-2.0.19.orig/configure.ac 2012-07-24 17:54:17.000000000 +0100
385 +++ cvmfs-2.0.19/configure.ac 2012-10-30 11:00:26.000000000 +0000
386 @@ -9,20 +9,22 @@
387 AC_CONFIG_HEADER([config.h])
388 AH_BOTTOM([#define CVMFS_PATCH_LEVEL "0"])
389
390 -AC_ARG_ENABLE([cvmfs], AC_HELP_STRING([--disable-cvmfs], [Don't build the CernVM-FS FUSE module]), AC_SUBST([HAVE_CVMFS], [no]))
391 -AC_ARG_ENABLE([server], AC_HELP_STRING([--disable-server], [Don't build writer's end programs]), AC_SUBST([HAVE_SERVER], [no]))
392 -AC_ARG_ENABLE([sqlite3-builtin], AC_HELP_STRING([--enable-sqlite3-builtin], [Don't use system SQLite3]), AC_SUBST([USE_BUILTIN_SQLITE3], [yes]))
393 -AC_ARG_ENABLE([libcurl-builtin], AC_HELP_STRING([--enable-libcurl-builtin], [Don't use system libcurl]), AC_SUBST([USE_BUILTIN_LIBCURL], [yes]))
394 +AC_ARG_ENABLE([cvmfs], AC_HELP_STRING([--disable-cvmfs], [Don't build the CernVM-FS FUSE module]), AC_SUBST([HAVE_CVMFS], [$enableval]),AC_SUBST([HAVE_CVMFS], [yes]))
395 +AC_ARG_ENABLE([server], AC_HELP_STRING([--disable-server], [Don't build writer's end programs]), AC_SUBST([HAVE_SERVER], [$enableval]),AC_SUBST([HAVE_SERVER], [yes]))
396 +AC_ARG_ENABLE([sqlite3-builtin], AC_HELP_STRING([--enable-sqlite3-builtin], [Don't use system SQLite3]), AC_SUBST([USE_BUILTIN_SQLITE3], [$enableval]),AC_SUBST([USE_BUILTIN_SQLITE3], [no]))
397 +AC_ARG_ENABLE([libcurl-builtin], AC_HELP_STRING([--enable-libcurl-builtin], [Don't use system libcurl]), AC_SUBST([USE_BUILTIN_LIBCURL], [$enableval]),AC_SUBST([USE_BUILTIN_LIBCURL], [no]))
398 dnl AC_ARG_ENABLE([libfuse-builtin], AC_HELP_STRING([--enable-libfuse-builtin], [Don't use system libfuse]), AC_SUBST([USE_BUILTIN_LIBFUSE], [yes]))
399 -AC_ARG_ENABLE([zlib-builtin], AC_HELP_STRING([--enable-zlib-builtin], [Don't use system]), AC_SUBST([USE_BUILTIN_ZLIB], [yes]))
400 -AC_ARG_ENABLE([kernel-module], AC_HELP_STRING([--enable-kernel-module], [Build the kernel module for the server part]), AC_SUBST([HAVE_KMODULE], [yes]))
401 -AC_ARG_ENABLE([mount-scripts], AC_HELP_STRING([--enable-mount-scripts], [Install CernVM-FS mount tools in /etc and /sbin]), AC_SUBST([HAVE_MOUNTSCRIPTS], [yes]))
402 +AC_ARG_ENABLE([zlib-builtin], AC_HELP_STRING([--enable-zlib-builtin], [Don't use system]), AC_SUBST([USE_BUILTIN_ZLIB], [$enableval]),AC_SUBST([USE_BUILTIN_ZLIB], [no]))
403 +AC_ARG_ENABLE([jemalloc-builtin], AC_HELP_STRING([--enable-jemalloc-builtin], [Don't use system jemalloc]), AC_SUBST([USE_BUILTIN_JEMALLOC], [$enableval]),AC_SUBST([USE_BUILTIN_JEMALLOC], [no]))
404 +AC_ARG_ENABLE([kernel-module], AC_HELP_STRING([--enable-kernel-module], [Build the kernel module for the server part]), AC_SUBST([HAVE_KMODULE], [$enableval]),AC_SUBST([HAVE_KMODULE], [no]))
405 +AC_ARG_ENABLE([mount-scripts], AC_HELP_STRING([--enable-mount-scripts], [Install CernVM-FS mount tools in /etc and /sbin]), AC_SUBST([HAVE_MOUNTSCRIPTS], [$enableval]),AC_SUBST([HAVE_MOUNTSCRIPTS], [no]))
406 AM_CONDITIONAL([BUILD_CVMFS], [test x$HAVE_CVMFS != xno])
407 AM_CONDITIONAL([BUILD_SERVER], [test x$HAVE_SERVER != xno])
408 AM_CONDITIONAL([SYSTEM_SQLITE3], [test x$USE_BUILTIN_SQLITE3 != xyes])
409 AM_CONDITIONAL([SYSTEM_LIBCURL], [test x$USE_BUILTIN_LIBCURL != xyes])
410 AM_CONDITIONAL([SYSTEM_LIBFUSE], [test x != x])
411 AM_CONDITIONAL([SYSTEM_ZLIB], [test x$USE_BUILTIN_ZLIB != xyes])
412 +AM_CONDITIONAL([SYSTEM_JEMALLOC], [test x$USE_BUILTIN_JEMALLOC != xyes])
413 AM_CONDITIONAL([BUILD_KMODULE], [test x$HAVE_KMODULE == xyes])
414 AM_CONDITIONAL([BUILD_MEMCACHED], [test x$HAVE_MEMCACHED == xyes])
415 AM_CONDITIONAL([BUILD_MOUNTSCRIPTS], [test x$HAVE_MOUNTSCRIPTS == xyes])
416 @@ -35,6 +37,7 @@
417 dnl AC_PROG_LIBTOOL
418 AC_PROG_MAKE_SET
419 AC_PROG_RANLIB
420 +m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
421
422 CXXFLAGS="$CXXFLAGS -g -fno-exceptions -fno-strict-aliasing -fasynchronous-unwind-tables -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wall \
423 -D_REENTRANT -D__EXTENSIONS__ -D_LARGEFILE64_SOURCE -D__LARGE64_FILES"
424 @@ -70,7 +73,7 @@
425 PKG_CHECK_MODULES([OPENSSL], [libcrypto >= 0.9.7a])
426
427 dnl Get OpenMP Options
428 -gt_OPENMP()
429 +AC_OPENMP
430
431 dnl Checks for libraries.
432 save_LIBS=$LIBS
433 @@ -86,6 +89,10 @@
434
435 AC_CHECK_LIB([rt], [sched_yield], ,[AC_MSG_ERROR(librt (Posix real time extensions) required)])
436
437 +if test x$USE_BUILTIN_JEMALLOC != xyes; then
438 + AC_CHECK_LIB([jemalloc], [malloc], ,[AC_MSG_ERROR(jemalloc required)])
439 +fi
440 +
441 if test x$HAVE_CVMFS != xno; then
442 dnl if test x$USE_BUILTIN_LIBFUSE != xyes; then
443 dnl AC_CHECK_HEADERS([fuse.h fuse/fuse_opt.h],,[AC_MSG_ERROR(fuse headers required)],[#define _FILE_OFFSET_BITS 64])
444 diff -Nur cvmfs-2.0.19.orig/cvmfs/src/Makefile.am cvmfs-2.0.19/cvmfs/src/Makefile.am
445 --- cvmfs-2.0.19.orig/cvmfs/src/Makefile.am 2012-07-25 08:17:28.000000000 +0100
446 +++ cvmfs-2.0.19/cvmfs/src/Makefile.am 2012-10-30 11:08:44.000000000 +0000
447 @@ -224,6 +224,11 @@
448 cvmfs_proxy_rtt_LDADD += $(LDFLAGS_ZLIB)
449 endif
450
451 +if ! SYSTEM_JEMALLOC
452 +LDFLAGS_JEMALLOC = ../../jemalloc/src/lib/libjemalloc.a
453 +cvmfs2_debug_LDADD += $(LDFLAGS_JEMALLOC)
454 +cvmfs2_LDADD += $(LDFLAGS_JEMALLOC)
455 +endif
456
457 CFLAGS_CVMFS2 =
458 if ! SYSTEM_SQLITE3
459 @@ -238,8 +243,8 @@
460 if ! SYSTEM_ZLIB
461 CFLAGS_CVMFS2 += -I../../zlib/src
462 endif
463 -cvmfs2_debug_LDADD += ../../jemalloc/src/lib/libjemalloc.a -ldl
464 -cvmfs2_LDADD += ../../jemalloc/src/lib/libjemalloc.a -ldl
465 +
466 +
467 CFLAGS_CVMFS2 += $(PTHREAD_CFLAGS) $(CURL_CFLAGS) $(SQLITE_CFLAGS) $(OPENSSL_CFLAGS) $(FUSE_CFLAGS) -DCVMFS_CLIENT -DFUSE_CLIENT
468 LDFLAGS_CVMFS2 = $(PTHREAD_CFLAGS) -rdynamic
469 LIBS_CVMFS2 = $(PTHREAD_LIBS) $(CURL_LIBS) $(SQLITE_LIBS) $(FUSE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS) $(CVMFS_LIBS) -lrt
470 @@ -291,11 +296,11 @@
471 endif
472 CFLAGS_PROXYRTT += $(CURL_CFLAGS) -DCVMFS_CLIENT -DNDEBUGMSG
473 cvmfs_proxy_rtt_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_PROXYRTT)
474 -cvmfs_proxy_rtt_LDFLAGS = $(CVMFS_LIBS) $(CURL_LIBS)
475 +cvmfs_proxy_rtt_LDADD += $(CVMFS_LIBS) $(CURL_LIBS)
476
477
478 testtracer_CXXFLAGS = $(CVMFS_CXXFLAGS) $(PTHREAD_CFLAGS)
479 -testtracer_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
480 +testtracer_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
481
482 CFLAGS_SYNC =
483 if ! SYSTEM_SQLITE3
484 @@ -307,7 +312,7 @@
485 CFLAGS_SYNC += $(PTHREAD_CFLAGS) $(OPENMP_CFLAGS) $(SQLITE_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
486 cvmfs_sync_bin_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SYNC)
487 cvmfs_sync_bin_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SYNC)
488 -cvmfs_sync_bin_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(Z_LIBS) $(GOMP_LIBS)
489 +cvmfs_sync_bin_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(OPENSSL_LIBS) $(Z_LIBS) $(GOMP_LIBS)
490
491
492 CFLAGS_CLGCMP =
493 @@ -320,7 +325,7 @@
494 CFLAGS_CLGCMP += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
495 cvmfs_clgcmp_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_CLGCMP)
496 cvmfs_clgcmp_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_CLGCMP)
497 -cvmfs_clgcmp_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
498 +cvmfs_clgcmp_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
499
500
501 CFLAGS_LSCAT =
502 @@ -333,7 +338,7 @@
503 CFLAGS_LSCAT += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
504 cvmfs_lscat_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_LSCAT)
505 cvmfs_lscat_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_LSCAT)
506 -cvmfs_lscat_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
507 +cvmfs_lscat_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
508
509 CFLAGS_FIXINODES =
510 if ! SYSTEM_SQLITE3
511 @@ -345,7 +350,7 @@
512 CFLAGS_FIXINODES += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
513 cvmfs_fixinodes_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_FIXINODES)
514 cvmfs_fixinodes_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_FIXINODES)
515 -cvmfs_fixinodes_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
516 +cvmfs_fixinodes_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
517
518 CFLAGS_SIGN =
519 if ! SYSTEM_ZLIB
520 @@ -354,7 +359,7 @@
521 CFLAGS_SIGN += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
522 cvmfs_sign_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SIGN)
523 cvmfs_sign_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SIGN)
524 -cvmfs_sign_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS)
525 +cvmfs_sign_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(OPENSSL_LIBS)
526
527 CFLAGS_PULL =
528 if ! SYSTEM_SQLITE3
529 @@ -369,13 +374,13 @@
530 CFLAGS_PULL += $(SQLITE_CFLAGS) $(PTHREAD_CFLAGS) $(OPENSSL_CFLAGS) -DNDEBUGMSG
531 cvmfs_pull_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_PULL)
532 cvmfs_pull_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_PULL)
533 -cvmfs_pull_LDFLAGS = $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS)
534 +cvmfs_pull_LDADD += $(CVMFS_LIBS) $(PTHREAD_CFLAGS) $(PTHREAD_LIBS) $(OPENSSL_LIBS) $(SQLITE_LIBS) $(Z_LIBS) $(CURL_LIBS)
535
536
537 CFLAGS_SCRUB = $(OPENSSL_CFLAGS) -DNDEBUGMSG
538 cvmfs_scrub_CXXFLAGS = $(CVMFS_CXXFLAGS) $(CFLAGS_SCRUB)
539 cvmfs_scrub_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_SCRUB)
540 -cvmfs_scrub_LDFLAGS = $(CVMFS_LIBS) $(OPENSSL_LIBS)
541 +cvmfs_scrub_LDADD += $(CVMFS_LIBS) $(OPENSSL_LIBS)
542
543
544 CFLAGS_ZPIPE =
545 @@ -383,4 +388,4 @@
546 CFLAGS_ZPIPE += -I../../zlib/src
547 endif
548 cvmfs_zpipe_CFLAGS = $(CVMFS_CFLAGS) $(CFLAGS_ZPIPE)
549 -cvmfs_zpipe_LDFLAGS = $(CVMFS_LIBS) $(Z_LIBS)
550 +cvmfs_zpipe_LDADD += $(CVMFS_LIBS) $(Z_LIBS)
551 diff -Nur cvmfs-2.0.19.orig/Makefile.am cvmfs-2.0.19/Makefile.am
552 --- cvmfs-2.0.19.orig/Makefile.am 2012-02-07 17:04:54.000000000 +0000
553 +++ cvmfs-2.0.19/Makefile.am 2012-10-30 11:00:26.000000000 +0000
554 @@ -10,10 +10,13 @@
555 if ! SYSTEM_ZLIB
556 SUBDIR_ZLIB = zlib
557 endif
558 +if ! SYSTEM_JEMALLOC
559 + SUBDIR_JEMALLOC = jemalloc
560 +endif
561 if BUILD_KMODULE
562 SUBDIR_KMODULE = kernel
563 endif
564 -SUBDIRS = $(SUBDIR_KMODULE) $(SUBDIR_SQLITE3) $(SUBDIR_ZLIB) $(SUBDIR_LIBCURL) $(SUBDIR_LIBFUSE) jemalloc cvmfs cvmfsd mount replica
565 +SUBDIRS = $(SUBDIR_KMODULE) $(SUBDIR_SQLITE3) $(SUBDIR_ZLIB) $(SUBDIR_LIBCURL) $(SUBDIR_LIBFUSE) $(SUBDIR_JEMALLOC) cvmfs cvmfsd mount replica
566 EXTRA_DIST = sign-whitelist add-ons rpm doc c-ares libcurl libfuse kernel jemalloc zlib mount replica
567 docdir = ${datadir}/doc/${PACKAGE}-${VERSION}
568 dist_doc_DATA = NEWS README ChangeLog AUTHORS INSTALL COPYING FAQ
569
570
571
572 1.1 net-fs/cvmfs/files/cvmfs.initd
573
574 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs.initd?rev=1.1&view=markup
575 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/net-fs/cvmfs/files/cvmfs.initd?rev=1.1&content-type=text/plain
576
577 Index: cvmfs.initd
578 ===================================================================
579 #!/sbin/runscript
580
581 extra_commands="probe status"
582 extra_started_commands="reload flush restart_clean"
583 description="The CernVM-FS init script"
584
585 init() {
586 # Initialization, read config
587 [ -x /etc/cernvm/config ] && /etc/cernvm/config
588 if [ -f /etc/cvmfs/config.sh ]; then
589 . /etc/cvmfs/config.sh
590 else
591 exit 1
592 fi
593
594 cvmfs_readconfig
595 [ -f /etc/cernvm/repositories.sh ] && . /etc/cernvm/repositories.sh
596 export LANG=C LC_ALL=C
597 [ -f /etc/cernvm/custom/init.sh ] && . /etc/cernvm/custom/init.sh
598 }
599
600 depend() {
601 need net fuse autofs
602 after logger
603 }
604
605 list_mounts() {
606 mount -t fuse | grep "^cvmfs2[[:space:]]"
607 }
608
609 repository_status() {
610 local fqrn=$1 ret=0 pid
611 if list_mounts | grep ${CVMFS_MOUNT_DIR}/${fqrn} > /dev/null; then
612 pid=$(cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" pid)
613 ret=$(echo ${pid} | grep ^[0-9]*$ > /dev/null)
614 if [ ${ret} -eq 0 ]; then
615 einfo "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${fqrn} with pid ${pid}"
616 else
617 ewarn "CernVM-FS running with process ${pid}"
618 fi
619 else
620 einfo "CernVM-FS not mounted on ${CVMFS_MOUNT_DIR}/${fqrn}"
621 fi
622 return ${ret}
623 }
624
625 repository_flush() {
626 local fqrn=$1
627 ebegin "Flushing ${fqrn}"
628 stat ${CVMFS_MOUNT_DIR}/${fqrn}/. > /dev/null 2>&1 && \
629 cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" cleanup 0 > /dev/null
630 eend $?
631 }
632
633 repository_reload() {
634 local fqrn=$1 ret=0 hosts
635 if cvmfs-talk -i ${fqrn} pid > /dev/null 2>&1; then
636 ebegin "Reloading ${fqrn}"
637 [[ $(cvmfs-talk -i ${fqrn} timeout set ${CVMFS_TIMEOUT} ${CVMFS_TIMEOUT_DIRECT} 2>&1) == OK ]]
638 ret=$((ret + $?))
639 [[ $(cvmfs-talk -i ${fqrn} proxy set ${CVMFS_HTTP_PROXY} 2>&1) == OK ]]
640 ret=$((ret + $?))
641 hosts=$(echo ${CVMFS_SERVER_URL} | sed -e "s/@org@/$(cvmfs_getorg ${fqrn})/g" -e "s/@fqrn@/${fqrn}/g")
642 [[ $(cvmfs-talk -i ${fqrn} host set ${hosts} 2>&1) == OK ]]
643 ret=$((ret + $?))
644 [[ $(cvmfs-talk -i ${fqrn} max ttl set ${CVMFS_MAX_TTL:-0} 2>&1) == OK ]]
645 eend $?
646 ret=$((ret + $?))
647 else
648 einfo "${frqn} not mounted"
649 fi
650 return ${ret}
651 }
652
653 repository_wipe() {
654 local fqrn=$1
655 ebegin "Wiping out ${CVMFS_CACHE_BASE}/${fqrn}"
656 [ ! -d "${CVMFS_CACHE_BASE}/${fqrn}" ] || rm -rf "${CVMFS_CACHE_BASE}/${fqrn}"
657 eend $?
658 }
659
660 repository_probe() {
661 local fqrn=$1
662 ebegin "Probing ${CVMFS_MOUNT_DIR}/${fqrn}"
663 df -P "${CVMFS_MOUNT_DIR}/${fqrn}" 2>&1 | grep -q ^cvmfs2
664 eend $?
665 }
666
667 cvmfs_action() {
668 local action=$1 org fqrn
669 for org in ${CVMFS_REPOSITORIES/,/ /}; do
670 case ${org} in
671 none)
672 ;;
673 *)
674 . /etc/cvmfs/config.sh
675 cvmfs_readconfig
676 fqrn=$(cvmfs_mkfqrn ${org})
677 cvmfs_readconfig ${fqrn}
678 [[ $(type -t "${action}") == "function" ]] && ${action} ${fqrn}
679 ;;
680 esac
681 done
682 }
683
684 start() {
685 ebegin "Starting CernVM-FS"
686 cvmfs_action repository_start
687 eend $?
688 }
689
690 stop() {
691 local m ret=0
692 # FIXME: do we need to unmount here or?
693 for m in $(list_mounts | awk '{print $3}'); do
694 ebegin "Unmounting ${m}"
695 umount ${m} 2>/dev/null
696 eend $?
697 if [ $? -ne 0 ]; then
698 ret=$((ret + $?))
699 fuser -m -a -v ${m}
700 fi
701 done
702 if [ ${ret} -eq 0 ]; then
703 ebegin "Shutting down CernVM-FS"
704 cvmfs_action repository_stop
705 eend $?
706 ret=$((ret + $?))
707 fi
708 return ${ret}
709 }
710
711 status() {
712 ebegin "Checking status on CernVM-FS"
713 cvmfs_action repository_status
714
715 local org processed repo ret=0
716
717 for org in ${CVMFS_REPOSITORIES/,/ /}; do
718 case ${org} in
719 none)
720 ;;
721 *)
722 . /etc/cvmfs/config.sh # start with fresh repository_... functions
723 cvmfs_readconfig
724 fqrn=$(cvmfs_mkfqrn ${org})
725 processed="${fqrn} ${processed}"
726 cvmfs_readconfig ${fqrn}
727
728 # in an action?
729 list_mounts | grep ${CVMFS_MOUNT_DIR}/${fqrn} > /dev/null
730 if [ $? -eq 0 ]; then
731 local pid=$(/usr/bin/cvmfs-talk -c "${CVMFS_CACHE_BASE}" -i "${fqrn}" pid)
732 if echo ${pid} | grep ^[0-9]*$ > /dev/null; then
733 einfo "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${fqrn} with pid ${pid}"
734 else
735 ret=$((ret + $?))
736 ewarn "CernVM-FS running with process ${pid}"
737 fi
738 else
739 einfo "CernVM-FS not mounted on ${CVMFS_MOUNT_DIR}/${fqrn}"
740 fi
741 ;;
742 esac
743 done
744
745 for repo in $(list_mounts | awk '{print $3}'); do
746 repo=$(basename "${repo}")
747 echo "${processed}" | grep -q "${repo}" || \
748 ewarn "CernVM-FS mounted on ${CVMFS_MOUNT_DIR}/${repo} (not in CVMFS_REPOSITORIES)"
749 done
750 eend ${ret}
751 }
752
753 flush() {
754 cvmfs_action repository_flush
755 }
756
757 reload() {
758 cvmfs_action repository_reload
759 }
760
761 restart_clean() {
762 stop
763 local ret=$?
764 cvmfs_action repository_wipe
765 ret=$((ret + $?))
766 [[ ${ret} == 0 ]] && start
767 ret=$((ret + $?))
768 return ${ret}
769 }
770
771 probe() {
772 cvmfs_action repository_probe
773 }