+2008-03-17 08:59 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * NEWS, configure.ac: Version 0.30.215.
+
+2008-03-17 08:55 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/ncaps-net.c, lib/nflags-net.c, lib/vserver.h: Add the new
+ flags.
+
+2008-03-16 03:30 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.functions, scripts/vserver.stop: Fix
+ vserver ... stop --rescue-init.
+ Use it in stopSleepingGuest, to prevent races and to do proper
+ cleanup.
+ If vserver ... stop has already been invoked, remove SC_HELPER
+ from the context.
+
+2008-03-15 16:05 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vdevmap.c: Add some examples.
+ Disallow combinations that make no sense.
+ Allow defaults to be set.
+
+2008-03-11 10:07 Benedikt Böhm <hollow@gentoo.org>
+
+ * distrib/gentoo/initpost, scripts/vserver.functions: fix openrc
+ startup; only fix inittab in plain initstyle
+
+2008-03-10 22:41 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.functions: bash doesn't execute traps until
+ after the current job has finished executing, so run sleep in a
+ loop.
+
+2008-03-10 19:59 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/syscall_netremove-netv2.hc: A kernel without IPv6-support
+ will return ENOSYS for vc_net_remove_ipv6.
+
+2008-03-05 15:46 Benedikt Böhm <hollow@gentoo.org>
+
+ * distrib/gentoo/initpost: add openrc support to gentoo/initpost
+
+2008-03-02 14:04 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.functions: Workaround kernel oddities.
+
+2008-03-01 01:24 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/Makefile-files: Include attribute-util.h in the tarball.
+
+2008-03-01 01:20 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/lockfile.c: lockf(F_LOCK) requests a write lock, which
+ requires the file to be open in write mode.
+
+2008-03-01 01:15 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vattribute.c: Remove unused variable.
+
+2008-03-01 01:07 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/attribute-util.h, src/nattribute.c, src/vattribute.c: Factor
+ out bitfield-to-string code to src/attribute-util.h.
+ Add --get for nattribute too.
+
+2008-03-01 00:26 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/rpm-fake.c, src/vnamespace.c, src/vspace.c: Revert commit
+ 2690, clone is needed for pid namespaces and on kernels <2.6.16.
+
+2008-03-01 00:22 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml, scripts/util-vserver-vars.pathsubst,
+ scripts/vserver.functions, scripts/vserver.stop, src/tunctl.c:
+ Add basic support for creating tun/tap interfaces in the
+ configuration.
+
+2008-02-29 22:16 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vserver.stop: use ! instead of ~ to avoid shell expansion
+
+2008-02-29 13:29 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/rpm-fake.c, src/vnamespace.c, src/vspace.c: use
+ unshare(CLONE_NEWNS) instead of a complicated 'clone(NEWNS) ...
+ waitpid()' operation
+
+2008-02-29 13:27 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all: use hostspecific Build directory
+
+2008-02-28 23:54 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/tunctl.c: Set persist last, this way, no interface is left
+ behind if one of the ioctls fail.
+
+2008-02-28 23:28 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * contrib/manifest.dat.pathsubst, ensc_wrappers/wrappers-ioctl.hc,
+ src/Makefile-files, src/tunctl.c: Add tunctl.
+
+2008-02-28 23:12 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vrsetup.c: Avoid pointer/integer conversion warning on LP64.
+
+2008-02-21 23:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * NEWS, configure.ac, lib_internal/Makefile-files,
+ lib_internal/crypto-wrapper-beecrypt.h,
+ lib_internal/crypto-wrapper-nss.h, lib_internal/crypto-wrapper.h,
+ lib_internal/testsuite/Makefile-files,
+ lib_internal/testsuite/SPEED-RESULTS.txt,
+ lib_internal/testsuite/crypto-speed.c,
+ lib_internal/testsuite/crypto.c, src/Makefile-files,
+ src/testsuite/Makefile-files, src/testsuite/hashcalc-plain.c,
+ src/testsuite/hashcalc.c, src/testsuite/hashcalc.sh,
+ src/vhashify-init.hc, src/vhashify.c: added support for using
+ libnss instead of beecrypt for vhashify's
+ hash calculation. libnss has bad SHA1 performance on i386, but is
+ a)
+ maintained and b) gives better performance with all other hashes
+ and
+ on x86_64.
+
+ I am just waiting for somebody to write the OpenSSL layer so that
+ I
+ can try the padlock hardware crypto device on my C7 ;)
+
+2008-02-21 23:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/Makefile-files: added h2ext-worker to OPTIONS_PREEMPT
+ list
+
+2008-02-21 23:11 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all: fixed CPPFLAGS quoting problems introduced by last
+ commit
+
+2008-02-21 23:10 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * scripts/vmount: fixed endless loop when no '--' is given
+ fixed --help/--version handling
+
+2008-02-21 22:34 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * build-all: added code to enable i386 builds on x86_64 platforms
+ added $CONFIGURE_FLAGS configuration env
+ set LDFLAGS
+
+2008-02-21 22:33 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/testsuite/matchlist.c: fixed unused param +
+ unsigned/signed mismatch warning
+
+2008-02-21 22:32 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * src/vspace.c: fixed
+
+ | src/vspace.c:177: warning: passing argument 2 of
+ 'isNumberUnsigned' from incompatible pointer type
+
+ warning
+
+2008-02-16 22:09 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib_internal/util-lockfile.c, src/lockfile.c, src/secure-mount.c,
+ vserver-start/main.c: Use lockf instead of flock, the former
+ works on NFS.
+
+2008-02-14 19:28 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/rpm-fake.c: Disable VXF_SC_HELPER for rpm-fake created
+ contexts.
+
+2008-02-11 23:41 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.functions: Set the barrier and warn if it
+ could not be set automatically.
+
+2008-02-09 00:27 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/rpm-fake.c: We only want to wait on the context if we created
+ it.
+
+2008-01-27 07:55 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/alpine/initpost, distrib/alpine/initpre,
+ distrib/debian/initpost, distrib/gentoo/init-vserver.sh,
+ distrib/gentoo/initpost, distrib/gentoo/initpre,
+ distrib/gentoo/net.vserver, distrib/gentoo/reboot.sh,
+ distrib/gentoo/shutdown.sh, distrib/misc/environment,
+ distrib/misc/h2ext.desc, gentoo/Makefile-files,
+ gentoo/bash-wrapper, gentoo/util-vserver, gentoo/vprocunhide,
+ gentoo/vservers.default, lib/syscall_ctxcreate-v21.hc,
+ lib/syscall_fgetiattr-v22.hc, lib/syscall_fgetiattr.c,
+ lib/syscall_fsetiattr-v22.hc, lib/syscall_fsetiattr.c,
+ lib/syscall_getbadness-v23.hc, lib/syscall_getbadness.c,
+ lib/syscall_getccaps-v21.hc, lib/syscall_getsched-v21.hc,
+ lib/syscall_getsched.c, lib/syscall_netadd-netv2.hc,
+ lib/syscall_netremove-netv2.hc, lib/syscall_setbadness-v23.hc,
+ lib/syscall_setbadness.c, lib/syscall_setsched-v22.hc,
+ lib/syscall_tagcreate.c, lib/syscall_tagmigrate-v23.hc,
+ lib/syscall_tagmigrate.c, lib/syscall_tasktag-v23.hc,
+ lib/syscall_tasktag.c, lib/syscall_unsetmapping-v21.hc,
+ lib/syscall_unsetmapping.c, lib/tagopt2tag.c,
+ lib_internal/mkdir.c, lib_internal/sys_unshare.h,
+ lib_internal/testsuite/matchlist.c,
+ man/vserver-build.8.pathsubst, mkrelease, scripts/h2ext-worker,
+ scripts/vserver-build.fai, src/h2ext.c, src/vmemctrl.c,
+ src/vspace.c, src/vtag.c: Add missing svn:keywords.
+
+2008-01-26 11:44 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.functions: Make sure /dev gets proper
+ permissions.
+
+2008-01-26 11:44 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.functions: Prevent deadlock between
+ sc_helper vserver ... stop invocation, and stopSleepingGuest.
+
+2008-01-23 10:38 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib_internal/sys_unshare.h: Use the correct syscall number.
+
+2008-01-23 06:14 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/Makefile.am: Fedora 8 is redhat-style too.
+
+2008-01-22 09:19 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver.stop, scripts/vserver.suexec, src/vspace.c: Fix
+ vspace stuff.
+
+2008-01-21 14:13 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/naddress.c: Don't require a netmask/prefix.
+
+2008-01-20 08:15 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * contrib/manifest.dat.pathsubst: Add missing files.
+
+2008-01-20 08:03 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml: Add missing closing tag.
+
+2008-01-20 08:01 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/rpm-fake.c: Hopefully this will make it bullet-proof.
+
+2008-01-20 07:56 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml, scripts/vserver.functions,
+ scripts/vserver.start, scripts/vserver.stop,
+ scripts/vserver.suexec, src/vspace.c: Add preliminary support for
+ pid and network namespaces.
+
+2008-01-20 06:58 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * sysv/util-vserver: getPhysicalDir doesn't work if it doesn't
+ already exist.
+
+2008-01-15 13:26 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/misc/debootstrap.uri: debootstrap 1.0.8.
+
+2008-01-13 18:26 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver: Use $cmd instead of $2.
+
+2008-01-13 18:26 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/syscall_tagmigrate-v23.hc: Only migrate to the tag once.
+
+2008-01-12 15:55 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/vserver.h, src/vspace.c: Add support for PID and net
+ namespaces.
+
+2008-01-12 15:48 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vspace.c: Pid namespaces require clone.
+
+2008-01-12 15:35 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * ., lib, lib_internal: Fix svn:ignores.
+
+2008-01-08 17:19 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver.functions: Backslash...
+
+2008-01-08 16:53 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/rpm-fake.c: Attempt to close race between dying
+ rpm-fake-resolver and other rpm-fake processes.
+
+2008-01-08 16:49 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver.delete: cache need not exist.
+
+2008-01-06 01:40 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vmount: Work with nonamespace guests.
+
+2008-01-04 17:42 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vattribute.c: Add --get.
+
+2008-01-03 15:33 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/val2text.hc: Don't remove bits for which there were no match.
+ Cast 1 to the TYPE, so uint64 values can be looked up.
+
+2008-01-03 15:30 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib_internal/util-io.h, src/h2ext.c: Move WRITE_INT to util-io.h,
+ so other programs can use it too.
+
+2008-01-03 14:18 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vmount: Make vmount <guest> -- -a work.
+
+2008-01-03 00:40 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/vserver.h: Fix typo.
+
+2007-12-22 16:30 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/redhat/initpost: Leave rsyslog enabled for Fedora 8.
+
+2007-12-20 00:09 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vclone.c: Don't bail on EINVAL, since the clone build method
+ sets the contexts unconditionally.
+
+2007-12-19 19:13 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/debian/initpost: Remove all unknown services.
+
+2007-12-19 14:28 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build, scripts/vserver-build.clone: Use/support
+ the "new" vclone features in the clone build method.
+
+2007-12-19 02:17 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/ccaps-v13.c, lib/vserver.h: Add VXC_KTHREAD.
+
+2007-12-05 14:24 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/syscall_tagmigrate-v23.hc: Use TAG_KERNEL2USER on the result.
+
+2007-12-05 00:51 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver-build.debootstrap: Work with newer versions of
+ debootstrap too.
+
+2007-12-03 21:08 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/f7/yum.repos.d/fedora.repo: Correct path to keys.
+
+2007-12-03 18:06 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver: Document --debug.
+
+2007-11-30 23:18 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/misc/h2ext.desc: Use --numeric-owner for tar and
+ --numeric-uid-gid for cpio.
+
+2007-11-26 23:47 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vsched.c: Floats are numbers too.
+
+2007-11-19 04:48 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/Makefile.am, distrib/f8,
+ distrib/f8/yum.repos.d/fedora-development.repo,
+ distrib/f8/yum.repos.d/fedora-updates-testing.repo,
+ distrib/f8/yum.repos.d/fedora-updates.repo,
+ distrib/f8/yum.repos.d/fedora.repo: Add Fedora 8.
+
+2007-11-17 23:52 Benedikt Böhm <hollow@gentoo.org>
+
+ * scripts/vdispatch-conf, scripts/vemerge, scripts/vesync,
+ scripts/vupdateworld: fix a corner case in gentoo helpers
+
+2007-11-17 21:36 Benedikt Böhm <hollow@gentoo.org>
+
+ * scripts/vserver.functions: use sane PATH during shutdown
+
+2007-11-13 22:17 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/misc/debootstrap.uri: Update to 1.0.6.
+
+2007-10-29 21:13 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/Makefile-files, scripts/vmount: Add vmount, a wrapper to
+ mount something in a guest.
+
+2007-10-27 19:34 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * contrib/manifest.dat.pathsubst, man/Makefile-files,
+ man/vserver-build.8.pathsubst, man/vserver.8: Man pages update
+ from Micah Anderson.
+
+2007-10-25 01:18 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/Makefile.am, distrib/alpine, distrib/alpine/initpost,
+ distrib/alpine/initpre: Add "Alpine Linux".
+
+2007-10-25 00:26 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver: Cleanup the help message.
+
+2007-10-25 00:23 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/debian/initpost, distrib/redhat/initpost,
+ scripts/vserver, scripts/vserver-build.functions,
+ scripts/vserver.stop: Create helper functions to start a guest
+ that just sleeps and kills.
+
+2007-10-22 20:43 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * src/vmemctrl.c: Fix startup bug on older kernels.
+
+2007-10-16 00:27 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * configure.ac, scripts/util-vserver-vars.pathsubst,
+ scripts/vserver.functions, scripts/vserver.start,
+ util-vserver.spec.in: Lots of small fixes to make everything
+ behave like it should.
+
+2007-10-15 11:38 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * contrib/manifest.dat.pathsubst: Add vmemctrl and vspace to the
+ manifest.
+
+2007-10-15 11:31 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml, gentoo/util-vserver,
+ scripts/vserver.functions, scripts/vserver.start,
+ scripts/vserver.stop, sysv/util-vserver: Add support for
+ per-guest device maps.
+
+2007-10-14 14:40 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml: Improve the disk limit descriptions.
+
+2007-10-14 00:32 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * distrib/misc/vprocunhide-files: Hide conntrack files.
+
+2007-10-13 14:17 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml, scripts/vserver.functions,
+ scripts/vserver.start: Add support for the OOM bias in the
+ configuration.
+
+2007-10-13 12:13 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * kernel/context_cmd.h, kernel/switch.h, lib/Makefile-files,
+ lib/syscall_getbadness-v23.hc, lib/syscall_getbadness.c,
+ lib/syscall_setbadness-v23.hc, lib/syscall_setbadness.c,
+ lib/vserver.h, src, src/Makefile-files, src/vmemctrl.c: Add
+ support for the OOM bias, and vmemctrl to control it.
+
+2007-10-13 01:10 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/vserver.h, src, src/Makefile-files, src/vspace.c: Added
+ vspace, like vnamespace but generic.
+
+2007-10-12 00:03 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver.functions, scripts/vserver.start: Run fsck on
+ filesystems in the guest's fstab.
+
+2007-10-11 23:47 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * lib/vserver.h, src/naddress.c: Ranges might want masks too.
+
+2007-10-11 20:37 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * kernel/device_cmd.h, lib/Makefile-files,
+ lib/syscall_unsetmapping-v21.hc, lib/syscall_unsetmapping.c,
+ lib/vserver.h, scripts/vserver.functions, src/vdevmap.c: Add
+ support for vc_unset_mapping introduced in 2.3.0.27.
+
+2007-10-10 09:01 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * doc/configuration.xml: Clarify which entries are required for
+ cpusets.
+
+2007-10-06 17:23 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver.functions: People love symlinks.
+
+2007-09-11 21:26 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * distrib/f7/yum/yum.conf, scripts/vserver-build.functions.yum:
+ added support for yum's new persistdir option
+
+2007-09-11 21:22 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/yum-3.2.4-chroot.patch: fixed patch and re-added lost
+ hunk which caused broken paths for cachedir, logfile and friends
+
+2007-09-06 17:48 Daniel Hokka Zakrisson <daniel@hozac.com>
+
+ * scripts/vserver.functions, src/vtag.c: Unbreak dynamic contexts.
+
+2007-09-06 07:53 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * contrib/Makefile-files, contrib/yum-3.2.4-chroot.patch: added
+ patch for yum-3.2.4
+
+2007-09-03 07:42 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist-appendfiles.c,
+ lib_internal/matchlist-initmanually.c, lib_internal/matchlist.h,
+ lib_internal/util-safechdir.h: whitespace-cleanup
+
+2007-09-03 07:40 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/matchlist-appendfiles.c,
+ lib_internal/matchlist-initmanually.c, lib_internal/matchlist.h:
+ fixed const-ness of matchlist functions
+
+ made the initial file-list a 'char const **' to ease
+ initialization from string constants
+
+2007-09-03 07:38 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+
+ * lib_internal/util-safechdir.h: fixed declaration of 'struct stat'
+
+ include <sys/stat.h> instead of declaring it with 'struct stat'
+ as it might cause conflicts when 'stat' is #defined as stat64
+ in this header
+
2007-09-02 20:03 Daniel Hokka Zakrisson <daniel@hozac.com>
* NEWS, configure.ac: Version 0.30.214.
src/mask2prefix$(EXEEXT) src/exec-ulimit$(EXEEXT) \
src/rpm-fake-resolver$(EXEEXT) src/vshelper-sync$(EXEEXT) \
src/sigexec$(EXEEXT) src/chbind-compat$(EXEEXT) \
- src/vsysctl$(EXEEXT) src/h2ext$(EXEEXT) $(am__EXEEXT_8) \
- $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11)
+ src/vsysctl$(EXEEXT) src/h2ext$(EXEEXT) src/tunctl$(EXEEXT) \
+ $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11) \
+ $(am__EXEEXT_12)
legacy_PROGRAMS = src/ifspec$(EXEEXT) src/listdevip$(EXEEXT) \
src/parserpmdump$(EXEEXT) src/rebootmgr$(EXEEXT) \
src/showperm$(EXEEXT) src/vreboot$(EXEEXT)
src/vserver-stat$(EXEEXT) src/vserver-info$(EXEEXT) \
src/vuname$(EXEEXT) src/vwait$(EXEEXT) src/ncontext$(EXEEXT) \
src/nattribute$(EXEEXT) src/naddress$(EXEEXT) \
- src/vdevmap$(EXEEXT) src/vtag$(EXEEXT) $(am__EXEEXT_9) \
- $(am__EXEEXT_12)
+ src/vdevmap$(EXEEXT) src/vtag$(EXEEXT) src/vspace$(EXEEXT) \
+ src/vmemctrl$(EXEEXT) $(am__EXEEXT_10) $(am__EXEEXT_13)
noinst_PROGRAMS = tests/escaperoot$(EXEEXT) tests/forkbomb$(EXEEXT) \
tests/testipc$(EXEEXT) tests/testlimit$(EXEEXT) \
- tests/testopenf$(EXEEXT) $(am__EXEEXT_6)
+ tests/testopenf$(EXEEXT) $(am__EXEEXT_7)
EXTRA_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_1)
check_PROGRAMS = lib/testsuite/cflags$(EXEEXT) \
lib/testsuite/personality$(EXEEXT) lib/testsuite/fmt$(EXEEXT) \
lib/testsuite/parselimit$(EXEEXT) $(am__EXEEXT_3) \
$(am__EXEEXT_4) ensc_vector/testsuite/test1$(EXEEXT) \
ensc_vector/testsuite/test2$(EXEEXT) \
- lib_internal/testsuite/command$(EXEEXT) $(am__EXEEXT_5)
+ lib_internal/testsuite/command$(EXEEXT) $(am__EXEEXT_5) \
+ $(am__EXEEXT_6)
TESTS = lib/testsuite/cflags$(EXEEXT) \
lib/testsuite/personality$(EXEEXT) lib/testsuite/fmt$(EXEEXT) \
lib/testsuite/parselimit$(EXEEXT) $(am__EXEEXT_4) \
- $(am__EXEEXT_14) $(am__EXEEXT_1) \
+ $(am__EXEEXT_15) $(am__EXEEXT_1) \
ensc_vector/testsuite/test1$(EXEEXT) \
- ensc_vector/testsuite/test2$(EXEEXT) $(am__EXEEXT_15)
+ ensc_vector/testsuite/test2$(EXEEXT) $(am__EXEEXT_16) \
+ $(am__EXEEXT_17)
DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
$(noinst_HEADERS) $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib/syscall_setdlimit.c
@USE_DIETLIBC_TRUE@am__append_2 = $(LIBVSERVER_DIET)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@am__append_3 = src/vhashify
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_4 = src/vhashify
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@am__append_3 = src/vhashify
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@am__append_4 = src/vhashify
@ENSC_HAVE_C99_COMPILER_TRUE@am__append_5 = src/vdlimit
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_6 = src/testsuite/hashcalc \
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/hashcalc-plain
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@am__append_6 = src/testsuite/hashcalc \
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@ src/testsuite/hashcalc-plain
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__append_7 = src/testsuite/hashcalc-plain.sh \
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/hashcalc.sh
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@am__append_7 = src/testsuite/hashcalc-plain.sh \
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@ src/testsuite/hashcalc.sh
@HAVE_XSLTP_TRUE@am__append_8 = $(doc_gen_DOCS)
@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@am__append_9 = $(doc_gen_DOCS)
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/matchlist \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/matchlist-gnu
-@ENSC_HAVE_C99_COMPILER_TRUE@am__append_17 = vserver-start/vserver.start.bin
-@ENSC_HAVE_C99_COMPILER_TRUE@am__append_18 = vserver-start/vserver.start.bin
-@HAVE_GENTOO_INIT_TRUE@am__append_19 = $(gentoo_src_SCRPTS)
-@HAVE_GENTOO_INIT_TRUE@am__append_20 = gentoo/bash-wrapper
+@ENSC_HAVE_CRYPTO_TRUE@am__append_17 = lib_internal/testsuite/crypto \
+@ENSC_HAVE_CRYPTO_TRUE@ lib_internal/testsuite/crypto-speed
+
+@ENSC_HAVE_CRYPTO_TRUE@am__append_18 = lib_internal/testsuite/crypto
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@am__append_19 = lib_internal/testsuite/crypto \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ lib_internal/testsuite/crypto-speed
+
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_20 = vserver-start/vserver.start.bin
+@ENSC_HAVE_C99_COMPILER_TRUE@am__append_21 = vserver-start/vserver.start.bin
+@HAVE_GENTOO_INIT_TRUE@am__append_22 = $(gentoo_src_SCRPTS)
+@HAVE_GENTOO_INIT_TRUE@am__append_23 = gentoo/bash-wrapper
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/m4/ensc_cflags.m4 \
lib/syscall_enternamespace-v21.hc \
lib/syscall_setnamespace-v21.hc lib/syscall_ctxmigrate-v21.hc \
lib/syscall_setmapping.c lib/syscall_setmapping-v21.hc \
+ lib/syscall_unsetmapping.c lib/syscall_unsetmapping-v21.hc \
lib/syscall_schedinfo.c lib/syscall_schedinfo-v21.hc \
lib/syscall_getccaps-v21.hc lib/syscall_getsched.c \
lib/syscall_getsched-v21.hc lib/syscall_ctxcreate-v21.hc \
lib/syscall_netremove-netv2.hc lib/syscall_tagmigrate-v23.hc \
lib/syscall_tagmigrate.c lib/syscall_tagcreate.c \
lib/syscall_tasktag-v23.hc lib/syscall_tasktag.c \
+ lib/syscall_getbadness.c lib/syscall_getbadness-v23.hc \
+ lib/syscall_setbadness.c lib/syscall_setbadness-v23.hc \
ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c ensc_fmt/fmtx-32.c \
ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c ensc_fmt/fmt.h \
ensc_fmt/fmt.hc ensc_fmt/fmtx.hc ensc_fmt/fmt-internal.h
lib/lib_libvserver_a-syscall_ctxstat.$(OBJEXT) \
lib/lib_libvserver_a-syscall_getspacemask.$(OBJEXT) \
lib/lib_libvserver_a-syscall_setmapping.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_unsetmapping.$(OBJEXT) \
lib/lib_libvserver_a-syscall_schedinfo.$(OBJEXT) \
lib/lib_libvserver_a-syscall_getsched.$(OBJEXT)
am__objects_8 = lib/lib_libvserver_a-syscall_fsetiattr.$(OBJEXT) \
am__objects_9 =
am__objects_10 = lib/lib_libvserver_a-syscall_tagmigrate.$(OBJEXT) \
lib/lib_libvserver_a-syscall_tagcreate.$(OBJEXT) \
- lib/lib_libvserver_a-syscall_tasktag.$(OBJEXT)
+ lib/lib_libvserver_a-syscall_tasktag.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_getbadness.$(OBJEXT) \
+ lib/lib_libvserver_a-syscall_setbadness.$(OBJEXT)
am__objects_11 = ensc_fmt/lib_libvserver_a-fmt-32.$(OBJEXT) \
ensc_fmt/lib_libvserver_a-fmt-64.$(OBJEXT) \
ensc_fmt/lib_libvserver_a-fmtx-32.$(OBJEXT) \
lib/syscall_enternamespace-v21.hc \
lib/syscall_setnamespace-v21.hc lib/syscall_ctxmigrate-v21.hc \
lib/syscall_setmapping.c lib/syscall_setmapping-v21.hc \
+ lib/syscall_unsetmapping.c lib/syscall_unsetmapping-v21.hc \
lib/syscall_schedinfo.c lib/syscall_schedinfo-v21.hc \
lib/syscall_getccaps-v21.hc lib/syscall_getsched.c \
lib/syscall_getsched-v21.hc lib/syscall_ctxcreate-v21.hc \
lib/syscall_netremove-netv2.hc lib/syscall_tagmigrate-v23.hc \
lib/syscall_tagmigrate.c lib/syscall_tagcreate.c \
lib/syscall_tasktag-v23.hc lib/syscall_tasktag.c \
+ lib/syscall_getbadness.c lib/syscall_getbadness-v23.hc \
+ lib/syscall_setbadness.c lib/syscall_setbadness-v23.hc \
ensc_fmt/fmt-32.c ensc_fmt/fmt-64.c ensc_fmt/fmtx-32.c \
ensc_fmt/fmtx-64.c ensc_fmt/fmt-tai64n.c ensc_fmt/fmt.h \
ensc_fmt/fmt.hc ensc_fmt/fmtx.hc ensc_fmt/fmt-internal.h
lib/lib_libvserver_la-syscall_ctxstat.lo \
lib/lib_libvserver_la-syscall_getspacemask.lo \
lib/lib_libvserver_la-syscall_setmapping.lo \
+ lib/lib_libvserver_la-syscall_unsetmapping.lo \
lib/lib_libvserver_la-syscall_schedinfo.lo \
lib/lib_libvserver_la-syscall_getsched.lo
am__objects_28 = lib/lib_libvserver_la-syscall_fsetiattr.lo \
lib/lib_libvserver_la-syscall_fgetiattr.lo
am__objects_29 = lib/lib_libvserver_la-syscall_tagmigrate.lo \
lib/lib_libvserver_la-syscall_tagcreate.lo \
- lib/lib_libvserver_la-syscall_tasktag.lo
+ lib/lib_libvserver_la-syscall_tasktag.lo \
+ lib/lib_libvserver_la-syscall_getbadness.lo \
+ lib/lib_libvserver_la-syscall_setbadness.lo
am__objects_30 = ensc_fmt/lib_libvserver_la-fmt-32.lo \
ensc_fmt/lib_libvserver_la-fmt-64.lo \
ensc_fmt/lib_libvserver_la-fmtx-32.lo \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_rpm_fake_la_CFLAGS) \
$(CFLAGS) $(src_rpm_fake_la_LDFLAGS) $(LDFLAGS) -o $@
am__EXEEXT_1 =
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_2 = src/testsuite/hashcalc$(EXEEXT) \
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/hashcalc-plain$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@am__EXEEXT_2 = src/testsuite/hashcalc$(EXEEXT) \
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@ src/testsuite/hashcalc-plain$(EXEEXT)
am__EXEEXT_3 = src/testsuite/rpm-fake-test$(EXEEXT) $(am__EXEEXT_2)
am__EXEEXT_4 = src/testsuite/vunify-functest$(EXEEXT) \
src/testsuite/chcontext-test$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus-gnu$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/matchlist$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/matchlist-gnu$(EXEEXT)
+@ENSC_HAVE_CRYPTO_TRUE@am__EXEEXT_6 = \
+@ENSC_HAVE_CRYPTO_TRUE@ lib_internal/testsuite/crypto$(EXEEXT) \
+@ENSC_HAVE_CRYPTO_TRUE@ lib_internal/testsuite/crypto-speed$(EXEEXT)
legacyPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-am__EXEEXT_6 = tests/getctx$(EXEEXT) tests/getinitpid$(EXEEXT) \
+am__EXEEXT_7 = tests/getctx$(EXEEXT) tests/getinitpid$(EXEEXT) \
tests/vserver-info$(EXEEXT)
-am__EXEEXT_7 = src/vunify$(EXEEXT) src/vcopy$(EXEEXT) \
+am__EXEEXT_8 = src/vunify$(EXEEXT) src/vcopy$(EXEEXT) \
src/vclone$(EXEEXT)
-@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_8 = $(am__EXEEXT_7)
-@ENSC_HAVE_CXX_COMPILER_TRUE@am__EXEEXT_9 = $(am__EXEEXT_1)
-@ENSC_HAVE_BEECRYPT_TRUE@@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_10 = src/vhashify$(EXEEXT)
-@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_11 = vserver-start/vserver.start.bin$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_9 = $(am__EXEEXT_8)
+@ENSC_HAVE_CXX_COMPILER_TRUE@am__EXEEXT_10 = $(am__EXEEXT_1)
+@ENSC_HAVE_C99_COMPILER_TRUE@@ENSC_HAVE_CRYPTO_TRUE@am__EXEEXT_11 = src/vhashify$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_12 = vserver-start/vserver.start.bin$(EXEEXT)
pkglibPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
-@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_12 = src/vdlimit$(EXEEXT)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_13 = src/vdlimit$(EXEEXT)
sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(legacy_PROGRAMS) $(noinst_PROGRAMS) $(pkglib_PROGRAMS) \
$(sbin_PROGRAMS)
lib_internal_testsuite_copy_OBJECTS = \
$(am_lib_internal_testsuite_copy_OBJECTS)
lib_internal_testsuite_copy_DEPENDENCIES = $(LIBINTERNAL_GLIBC)
+am__lib_internal_testsuite_crypto_SOURCES_DIST = \
+ lib_internal/testsuite/crypto.c
+@ENSC_HAVE_CRYPTO_TRUE@am_lib_internal_testsuite_crypto_OBJECTS = lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.$(OBJEXT)
+lib_internal_testsuite_crypto_OBJECTS = \
+ $(am_lib_internal_testsuite_crypto_OBJECTS)
+am__DEPENDENCIES_1 =
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_DEPENDENCIES = \
+@ENSC_HAVE_CRYPTO_TRUE@ $(am__DEPENDENCIES_1)
+lib_internal_testsuite_crypto_LINK = $(LIBTOOL) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(lib_internal_testsuite_crypto_CFLAGS) $(CFLAGS) \
+ $(lib_internal_testsuite_crypto_LDFLAGS) $(LDFLAGS) -o $@
+am__lib_internal_testsuite_crypto_speed_SOURCES_DIST = \
+ lib_internal/testsuite/crypto-speed.c
+@ENSC_HAVE_CRYPTO_TRUE@am_lib_internal_testsuite_crypto_speed_OBJECTS = lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.$(OBJEXT)
+lib_internal_testsuite_crypto_speed_OBJECTS = \
+ $(am_lib_internal_testsuite_crypto_speed_OBJECTS)
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_speed_DEPENDENCIES = \
+@ENSC_HAVE_CRYPTO_TRUE@ $(am__DEPENDENCIES_1)
+lib_internal_testsuite_crypto_speed_LINK = $(LIBTOOL) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(lib_internal_testsuite_crypto_speed_CFLAGS) $(CFLAGS) \
+ $(lib_internal_testsuite_crypto_speed_LDFLAGS) $(LDFLAGS) -o \
+ $@
am_lib_internal_testsuite_filecfg_ml_OBJECTS = \
lib_internal/testsuite/filecfg-ml.$(OBJEXT)
lib_internal_testsuite_filecfg_ml_OBJECTS = \
lib_internal_testsuite_sigbus_gnu_LDADD = $(LDADD)
am_src_capchroot_OBJECTS = src/capchroot.$(OBJEXT)
src_capchroot_OBJECTS = $(am_src_capchroot_OBJECTS)
-am__DEPENDENCIES_1 =
am__DEPENDENCIES_2 = $(LIBVSERVER) $(am__DEPENDENCIES_1)
src_capchroot_DEPENDENCIES = $(am__DEPENDENCIES_2)
src_capchroot_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(am_src_testsuite_chcontext_test_OBJECTS)
src_testsuite_chcontext_test_DEPENDENCIES = lib/libvserver.la \
$(LIBINTERNAL)
-am_src_testsuite_hashcalc_OBJECTS = src/testsuite/hashcalc.$(OBJEXT)
+am_src_testsuite_hashcalc_OBJECTS = \
+ src/testsuite/src_testsuite_hashcalc-hashcalc.$(OBJEXT)
src_testsuite_hashcalc_OBJECTS = $(am_src_testsuite_hashcalc_OBJECTS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_DEPENDENCIES = \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBINTERNAL_GLIBC) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBENSCVECTOR_GLIBC) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBVSERVER_GLIBC)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_DEPENDENCIES = \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(LIBINTERNAL) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(LIBENSCVECTOR) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_2)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_DEPENDENCIES = \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBINTERNAL_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBENSCVECTOR_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBVSERVER_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_DEPENDENCIES = \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(LIBINTERNAL) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(LIBENSCVECTOR) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_1) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_2)
src_testsuite_hashcalc_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(src_testsuite_hashcalc_CFLAGS) $(CFLAGS) \
$(src_testsuite_hashcalc_LDFLAGS) $(LDFLAGS) -o $@
-am_src_testsuite_hashcalc_plain_OBJECTS = \
- src/testsuite/hashcalc-plain.$(OBJEXT)
+am_src_testsuite_hashcalc_plain_OBJECTS = src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.$(OBJEXT)
src_testsuite_hashcalc_plain_OBJECTS = \
$(am_src_testsuite_hashcalc_plain_OBJECTS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_DEPENDENCIES = \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBINTERNAL_GLIBC) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBENSCVECTOR_GLIBC) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBVSERVER_GLIBC)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_DEPENDENCIES = \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(LIBINTERNAL) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(LIBENSCVECTOR) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_2)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_DEPENDENCIES = \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBINTERNAL_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBENSCVECTOR_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBVSERVER_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_DEPENDENCIES = \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(LIBINTERNAL) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(LIBENSCVECTOR) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_1) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_2)
src_testsuite_hashcalc_plain_LINK = $(LIBTOOL) --tag=CC \
$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
- $(AM_CFLAGS) $(CFLAGS) $(src_testsuite_hashcalc_plain_LDFLAGS) \
- $(LDFLAGS) -o $@
+ $(src_testsuite_hashcalc_plain_CFLAGS) $(CFLAGS) \
+ $(src_testsuite_hashcalc_plain_LDFLAGS) $(LDFLAGS) -o $@
am_src_testsuite_rpm_fake_test_OBJECTS = \
src/testsuite/rpm-fake-test.$(OBJEXT)
src_testsuite_rpm_fake_test_OBJECTS = \
src_testsuite_vunify_functest_OBJECTS = \
$(am_src_testsuite_vunify_functest_OBJECTS)
src_testsuite_vunify_functest_DEPENDENCIES = $(LIBINTERNAL)
+am_src_tunctl_OBJECTS = src/tunctl.$(OBJEXT)
+src_tunctl_OBJECTS = $(am_src_tunctl_OBJECTS)
+src_tunctl_DEPENDENCIES = $(am__DEPENDENCIES_2) $(LIBINTERNAL)
+src_tunctl_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_tunctl_LDFLAGS) $(LDFLAGS) -o $@
am_src_vattribute_OBJECTS = src/vattribute.$(OBJEXT)
src_vattribute_OBJECTS = $(am_src_vattribute_OBJECTS)
src_vattribute_DEPENDENCIES = $(am__DEPENDENCIES_2)
src_vdu_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(src_vdu_LDFLAGS) \
$(LDFLAGS) -o $@
-am_src_vhashify_OBJECTS = src/vhashify.$(OBJEXT)
+am_src_vhashify_OBJECTS = src/src_vhashify-vhashify.$(OBJEXT)
src_vhashify_OBJECTS = $(am_src_vhashify_OBJECTS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_DEPENDENCIES = \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBINTERNAL_GLIBC) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBENSCVECTOR_GLIBC) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@ $(LIBVSERVER_GLIBC)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_DEPENDENCIES = \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(LIBINTERNAL) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(LIBENSCVECTOR) \
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_2)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_vhashify_DEPENDENCIES = \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBINTERNAL_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBENSCVECTOR_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(LIBVSERVER_GLIBC) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@ $(am__DEPENDENCIES_1)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_vhashify_DEPENDENCIES = \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(LIBINTERNAL) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(LIBENSCVECTOR) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_1) \
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@ $(am__DEPENDENCIES_2)
src_vhashify_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(src_vhashify_LDFLAGS) $(LDFLAGS) -o $@
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_vhashify_CFLAGS) \
+ $(CFLAGS) $(src_vhashify_LDFLAGS) $(LDFLAGS) -o $@
am_src_vkill_OBJECTS = src/src_vkill-vkill.$(OBJEXT)
src_vkill_OBJECTS = $(am_src_vkill_OBJECTS)
src_vkill_DEPENDENCIES = $(am__DEPENDENCIES_2)
src_vlimit_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(src_vlimit_LDFLAGS) $(LDFLAGS) -o $@
+am_src_vmemctrl_OBJECTS = src/vmemctrl.$(OBJEXT)
+src_vmemctrl_OBJECTS = $(am_src_vmemctrl_OBJECTS)
+src_vmemctrl_DEPENDENCIES = $(am__DEPENDENCIES_2) $(LIBINTERNAL)
+src_vmemctrl_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_vmemctrl_LDFLAGS) $(LDFLAGS) -o $@
am_src_vnamespace_OBJECTS = src/vnamespace.$(OBJEXT)
src_vnamespace_OBJECTS = $(am_src_vnamespace_OBJECTS)
src_vnamespace_DEPENDENCIES = $(am__DEPENDENCIES_2) $(LIBINTERNAL)
am_src_vshelper_sync_OBJECTS = src/vshelper-sync.$(OBJEXT)
src_vshelper_sync_OBJECTS = $(am_src_vshelper_sync_OBJECTS)
src_vshelper_sync_LDADD = $(LDADD)
+am_src_vspace_OBJECTS = src/vspace.$(OBJEXT)
+src_vspace_OBJECTS = $(am_src_vspace_OBJECTS)
+src_vspace_DEPENDENCIES = $(am__DEPENDENCIES_2) $(LIBINTERNAL)
+src_vspace_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(src_vspace_LDFLAGS) $(LDFLAGS) -o $@
am_src_vsysctl_OBJECTS = src/vsysctl.$(OBJEXT)
src_vsysctl_OBJECTS = $(am_src_vsysctl_OBJECTS)
src_vsysctl_DEPENDENCIES = $(am__DEPENDENCIES_2)
$(lib_testsuite_personality_SOURCES) \
$(lib_internal_testsuite_command_SOURCES) \
$(lib_internal_testsuite_copy_SOURCES) \
+ $(lib_internal_testsuite_crypto_SOURCES) \
+ $(lib_internal_testsuite_crypto_speed_SOURCES) \
$(lib_internal_testsuite_filecfg_ml_SOURCES) \
$(lib_internal_testsuite_isnumber_SOURCES) \
$(lib_internal_testsuite_isnumber_gnu_SOURCES) \
$(src_testsuite_hashcalc_SOURCES) \
$(src_testsuite_hashcalc_plain_SOURCES) \
$(src_testsuite_rpm_fake_test_SOURCES) \
- $(src_testsuite_vunify_functest_SOURCES) \
+ $(src_testsuite_vunify_functest_SOURCES) $(src_tunctl_SOURCES) \
$(src_vattribute_SOURCES) $(src_vclone_SOURCES) \
$(src_vcontext_SOURCES) $(src_vcopy_SOURCES) \
$(src_vdevmap_SOURCES) $(src_vdlimit_SOURCES) \
$(src_vdu_SOURCES) $(src_vhashify_SOURCES) \
$(src_vkill_SOURCES) $(src_vlimit_SOURCES) \
- $(src_vnamespace_SOURCES) $(src_vps_SOURCES) \
- $(src_vreboot_SOURCES) src/vrsetup.c $(src_vsched_SOURCES) \
- $(src_vserver_info_SOURCES) $(src_vserver_stat_SOURCES) \
- $(src_vshelper_sync_SOURCES) $(src_vsysctl_SOURCES) \
+ $(src_vmemctrl_SOURCES) $(src_vnamespace_SOURCES) \
+ $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c \
+ $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) \
+ $(src_vserver_stat_SOURCES) $(src_vshelper_sync_SOURCES) \
+ $(src_vspace_SOURCES) $(src_vsysctl_SOURCES) \
$(src_vtag_SOURCES) $(src_vuname_SOURCES) \
$(src_vunify_SOURCES) $(src_vwait_SOURCES) \
$(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \
$(lib_testsuite_personality_SOURCES) \
$(lib_internal_testsuite_command_SOURCES) \
$(lib_internal_testsuite_copy_SOURCES) \
+ $(am__lib_internal_testsuite_crypto_SOURCES_DIST) \
+ $(am__lib_internal_testsuite_crypto_speed_SOURCES_DIST) \
$(lib_internal_testsuite_filecfg_ml_SOURCES) \
$(lib_internal_testsuite_isnumber_SOURCES) \
$(lib_internal_testsuite_isnumber_gnu_SOURCES) \
$(src_testsuite_hashcalc_SOURCES) \
$(src_testsuite_hashcalc_plain_SOURCES) \
$(src_testsuite_rpm_fake_test_SOURCES) \
- $(src_testsuite_vunify_functest_SOURCES) \
+ $(src_testsuite_vunify_functest_SOURCES) $(src_tunctl_SOURCES) \
$(src_vattribute_SOURCES) $(src_vclone_SOURCES) \
$(src_vcontext_SOURCES) $(src_vcopy_SOURCES) \
$(src_vdevmap_SOURCES) $(src_vdlimit_SOURCES) \
$(src_vdu_SOURCES) $(src_vhashify_SOURCES) \
$(src_vkill_SOURCES) $(src_vlimit_SOURCES) \
- $(src_vnamespace_SOURCES) $(src_vps_SOURCES) \
- $(src_vreboot_SOURCES) src/vrsetup.c $(src_vsched_SOURCES) \
- $(src_vserver_info_SOURCES) $(src_vserver_stat_SOURCES) \
- $(src_vshelper_sync_SOURCES) $(src_vsysctl_SOURCES) \
+ $(src_vmemctrl_SOURCES) $(src_vnamespace_SOURCES) \
+ $(src_vps_SOURCES) $(src_vreboot_SOURCES) src/vrsetup.c \
+ $(src_vsched_SOURCES) $(src_vserver_info_SOURCES) \
+ $(src_vserver_stat_SOURCES) $(src_vshelper_sync_SOURCES) \
+ $(src_vspace_SOURCES) $(src_vsysctl_SOURCES) \
$(src_vtag_SOURCES) $(src_vuname_SOURCES) \
$(src_vunify_SOURCES) $(src_vwait_SOURCES) \
$(tests_escaperoot_SOURCES) $(tests_forkbomb_SOURCES) \
distclean-recursive maintainer-clean-recursive
ETAGS = etags
CTAGS = ctags
-@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_13 = \
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_14 = \
@ENSC_HAVE_C99_COMPILER_TRUE@ src/testsuite/vunify-test.sh \
@ENSC_HAVE_C99_COMPILER_TRUE@ $(am__append_7)
-am__EXEEXT_14 = $(am__EXEEXT_13)
-@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_15 = lib_internal/testsuite/filecfg-ml$(EXEEXT) \
+am__EXEEXT_15 = $(am__EXEEXT_14)
+@ENSC_HAVE_C99_COMPILER_TRUE@am__EXEEXT_16 = lib_internal/testsuite/filecfg-ml$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/copy-check \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/isnumber-gnu$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/sigbus-gnu$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/matchlist$(EXEEXT) \
@ENSC_HAVE_C99_COMPILER_TRUE@ lib_internal/testsuite/matchlist-gnu$(EXEEXT)
+@ENSC_HAVE_CRYPTO_TRUE@am__EXEEXT_17 = \
+@ENSC_HAVE_CRYPTO_TRUE@ lib_internal/testsuite/crypto$(EXEEXT)
DIST_SUBDIRS = $(SUBDIRS)
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
+ENSC_CRYPTO_CFLAGS = @ENSC_CRYPTO_CFLAGS@
+ENSC_CRYPTO_LIB = @ENSC_CRYPTO_LIB@
ENSC_PATHPROG_SED = @ENSC_PATHPROG_SED@
ENSC_USE_EXPENSIVE_TESTS = @ENSC_USE_EXPENSIVE_TESTS@
ENV = @ENV@
F77 = @F77@
FFLAGS = @FFLAGS@
FILE = @FILE@
+FSCK = @FSCK@
GPG_KEY = @GPG_KEY@
GREP = @GREP@
GZIP = @GZIP@
NAMEIF = @NAMEIF@
NICE = @NICE@
NOHUP = @NOHUP@
+NSS_CFLAGS = @NSS_CFLAGS@
+NSS_LIBS = @NSS_LIBS@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
PS = @PS@
RANLIB = @RANLIB@
RELEASE_CPPFLAGS = @RELEASE_CPPFLAGS@
src/compat-pivot_root.h src/stack-start.h src/vcopy-init.hc \
src/vunify.h src/vunify-init.hc src/vhashify.h \
src/vhashify-init.hc src/vserver-visitdir.hc \
- src/context-sync.hc ensc_wrappers/wrappers-clone.hc \
+ src/context-sync.hc src/attribute-util.h \
+ ensc_wrappers/wrappers-clone.hc \
ensc_wrappers/wrappers-dirent.hc \
ensc_wrappers/wrappers-fcntl.hc ensc_wrappers/wrappers-io.hc \
ensc_wrappers/wrappers-ioctl.hc \
ensc_wrappers/wrappers-vserver.hc \
ensc_wrappers/wrappers-wait.hc ensc_wrappers/wrappers.h \
ensc_wrappers/wrappers_handler.hc lib_internal/coreassert.h \
- lib_internal/errinfo.h lib_internal/jail.h \
- lib_internal/matchlist.h lib_internal/pathinfo.h \
- lib_internal/string.h lib_internal/sys_clone.h \
- lib_internal/sys_personality.h lib_internal/sys_unshare.h \
- lib_internal/unify.h lib_internal/util.h \
- lib_internal/util-cast.h lib_internal/util-commonstrings.h \
- lib_internal/util-debug.h lib_internal/util-declarecmd.h \
- lib_internal/util-dimof.h lib_internal/util-dotfile.h \
+ lib_internal/crypto-wrapper.h \
+ lib_internal/crypto-wrapper-nss.h \
+ lib_internal/crypto-wrapper-beecrypt.h lib_internal/errinfo.h \
+ lib_internal/jail.h lib_internal/matchlist.h \
+ lib_internal/pathinfo.h lib_internal/string.h \
+ lib_internal/sys_clone.h lib_internal/sys_personality.h \
+ lib_internal/sys_unshare.h lib_internal/unify.h \
+ lib_internal/util.h lib_internal/util-cast.h \
+ lib_internal/util-commonstrings.h lib_internal/util-debug.h \
+ lib_internal/util-declarecmd.h lib_internal/util-dimof.h \
+ lib_internal/util-dotfile.h \
lib_internal/util-exitlikeprocess.h lib_internal/util-io.h \
lib_internal/util-lockfile.h lib_internal/util-mem.h \
lib_internal/util-perror.h lib_internal/util-safechdir.h \
lib_LIBRARIES = $(am__append_2)
lib_LTLIBRARIES = $(LIBVSERVER_GLIBC)
pkglib_LTLIBRARIES = src/rpm-fake.la
-pkglib_SCRIPTS = $(scripts_pkglib_src_SCRPTS) $(am__append_20)
+pkglib_SCRIPTS = $(scripts_pkglib_src_SCRPTS) $(am__append_23)
pkglib_DATA = FEATURES.txt $(scripts_pkglib_src_DTA) \
$(scripts_pkglib_gen_DTA)
legacy_SCRIPTS = $(scripts_legacy_src_SCRPTS) \
sbin_SCRIPTS = $(scripts_sbin_src_PRGS) $(scripts_sbin_gen_PRGS) \
$(scripts_legacy_src_PRGS)
noinst_DATA = $(contrib_gen_DTA)
-initrd_SCRIPTS = $(am__append_11) $(am__append_19)
+initrd_SCRIPTS = $(am__append_11) $(am__append_22)
sysconf_DATA = $(am__append_10)
DIETPROGS = $(LIBENSCVECTOR_DIET) lib/lib_libvserver_a-% \
ensc_fmt/lib_libvserver_a-% lib/testsuite/cflags \
src/vsched src/vshelper-sync src/vrsetup src/vserver-stat \
src/vserver-info src/vdlimit src/vdu src/vwait src/ncontext \
src/nattribute src/naddress src/vdevmap src/vsysctl src/vclone \
- src/h2ext src/vtag $(am__append_3) $(tests_dietprogs) \
+ src/h2ext src/vtag src/vspace src/vmemctrl src/tunctl \
+ $(am__append_3) $(tests_dietprogs) \
lib_internal/libinternal-diet.a \
lib_internal/testsuite/isnumber lib_internal/testsuite/sigbus \
- lib_internal/testsuite/matchlist $(am__append_17)
+ lib_internal/testsuite/matchlist $(am__append_19) \
+ $(am__append_20)
BUILT_SOURCES = pathconfig.h \
.fixups
-man_MANS = $(man_pages)
+man_MANS = $(man_pages) $(man_gen_DTA)
kernel_HDRS = $(wildcard kernel/*.h)
EXTRA_DIST = pathconfig.h.pathsubst util-vserver.spec THANKS \
REQUIREMENTS $(kernel_HDRS) lib/apidoc/list2xxx.syntax \
src/testsuite/hashcalc.sh src/testsuite/hashcalc-plain.sh \
src/testsuite/vwait-test.sh $(doc_compatibility_SRCS) \
$(doc_configuration_SRCS) $(doc_old_doc) $(doc_gen_DOCS) \
- $(man_pages) $(scripts_pkglib_src_DTA) \
+ $(man_pages) $(man_susbt_SRCS) $(scripts_pkglib_src_DTA) \
$(scripts_pkglib_src_SCRPTS) $(scripts_legacy_src_SCRPTS) \
$(scripts_legacy_src_PRGS) $(scripts_sbin_src_PRGS) \
$(scripts_subst_SRCS) sysv/v_gated.subst sysv/v_httpd.subst \
contrib/yum-2.6.0-chroot.patch contrib/yum-2.9.6-chroot.patch \
contrib/yum-3.0.3-chroot.patch contrib/yum-3.0.5-chroot.patch \
contrib/yum-3.2.0-chroot.patch contrib/yum-3.2.1-chroot.patch \
- contrib/make-manifest lib_internal/testsuite/copy-check \
- $(gentoo_src_SCRPTS) gentoo/bash-wrapper $(addsuffix \
- .pc.subst, $(PKGCONFIG_FILES))
+ contrib/yum-3.2.4-chroot.patch contrib/make-manifest \
+ lib_internal/testsuite/copy-check $(gentoo_src_SCRPTS) \
+ gentoo/bash-wrapper $(addsuffix .pc.subst, $(PKGCONFIG_FILES))
check_SCRIPTS = $(src_testsuite_check_src_SCRPTS) \
$(src_testsuite_check_gen_SCRPTS)
TESTS_DEBUG = no
CLEANFILES = $(BUILT_SOURCES) .*.pathsubst.stamp */.*.pathsubst.stamp \
*/*/.*.pathsubst.stamp pathconfig.h .fixups lib/libvserver.la \
lib/libvserver.a lib/apidoc/.apidoc doc/*.raw.html* \
- doc/*.html.tmp $(am__append_8) $(am__append_9) \
+ doc/*.html.tmp $(am__append_8) $(am__append_9) $(man_gen_DTA) \
$(scripts_pkglib_gen_DTA) $(scripts_sbin_gen_PRGS) \
$(scripts_sbincfg_gen_DTA) $(scripts_legacy_gen_SCRPTS) \
$(sysv_gen_SCRPTS) $(contrib_gen_DTA) libensc_vector-diet.a \
scripts/vyum-worker scripts/vrpm-preload \
scripts/save_s_context scripts/vservers.grabinfo.sh \
scripts/vpstree scripts/vserver-wrapper scripts/vsysvwrapper \
- scripts/vtop scripts/legacy/distrib-info scripts/legacy/vps \
- scripts/legacy/save_s_context scripts/legacy/vserver \
- scripts/legacy/rootshell scripts/legacy/vserver-copy \
- scripts/legacy/vserverkillall $(sysv_src_SCRPTS) \
- $(sysv_gen_SCRPTS) vserver-start/vserver.start.bin \
- $(gentoo_src_SCRPTS)
+ scripts/vtop scripts/h2ext-worker scripts/legacy/distrib-info \
+ scripts/legacy/vps scripts/legacy/save_s_context \
+ scripts/legacy/vserver scripts/legacy/rootshell \
+ scripts/legacy/vserver-copy scripts/legacy/vserverkillall \
+ $(sysv_src_SCRPTS) $(sysv_gen_SCRPTS) \
+ vserver-start/vserver.start.bin $(gentoo_src_SCRPTS)
@USE_DIETLIBC_TRUE@DIET_CC := $(DIET) $(DIETFLAGS) $(CC)
@USE_DIETLIBC_FALSE@VSERVER_LDFLGS :=
@USE_DIETLIBC_TRUE@VSERVER_LDFLGS := -static
lib/syscall_ctxmigrate-v21.hc \
lib/syscall_setmapping.c \
lib/syscall_setmapping-v21.hc \
+ lib/syscall_unsetmapping.c \
+ lib/syscall_unsetmapping-v21.hc \
lib/syscall_schedinfo.c \
lib/syscall_schedinfo-v21.hc \
lib/syscall_getccaps-v21.hc \
lib/syscall_tagmigrate.c \
lib/syscall_tagcreate.c \
lib/syscall_tasktag-v23.hc \
- lib/syscall_tasktag.c
+ lib/syscall_tasktag.c \
+ lib/syscall_getbadness.c \
+ lib/syscall_getbadness-v23.hc \
+ lib/syscall_setbadness.c \
+ lib/syscall_setbadness-v23.hc
PKGCONFIG_FILES = lib/util-vserver
lib_SRCS = lib/syscall.c \
src_vunify_LDADD = $(LIBINTERNAL) $(VSERVER_LDADDS)
src_vunify_LDFLAGS = $(VSERVER_LDFLGS)
src_vhashify_SOURCES = src/vhashify.c
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_vhashify_LDFLAGS =
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_vhashify_LDFLAGS = $(VSERVER_LDFLGS)
+src_vhashify_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_vhashify_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) $(ENSC_CRYPTO_LIB)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_vhashify_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_vhashify_LDFLAGS = -Wl,--as-needed
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_vhashify_LDFLAGS = $(VSERVER_LDFLGS)
src_vuname_SOURCES = src/vuname.c
src_vuname_LDADD = $(VSERVER_LDADDS)
src_vuname_LDFLAGS = $(VSERVER_LDFLGS)
src_vtag_SOURCES = src/vtag.c
src_vtag_LDADD = $(VSERVER_LDADDS)
src_vtag_LDFLAGS = $(VSERVER_LDADDS)
+src_vspace_SOURCES = src/vspace.c
+src_vspace_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vspace_LDFLAGS = $(VSERVER_LDFLGS)
+src_vmemctrl_SOURCES = src/vmemctrl.c
+src_vmemctrl_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vmemctrl_LDFLAGS = $(VSERVER_LDFLGS)
+src_tunctl_SOURCES = src/tunctl.c
+src_tunctl_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_tunctl_LDFLAGS = $(VSERVER_LDFLGS)
@ENSC_HAVE_C99_COMPILER_FALSE@src_sbin_C99_X_PROGS =
@ENSC_HAVE_C99_COMPILER_TRUE@src_sbin_C99_X_PROGS = $(src_sbin_C99_PROGS)
@ENSC_HAVE_C99_COMPILER_FALSE@src_pkglib_C99_X_PROGS =
src_testsuite_chbind_test_LDADD = lib/libvserver.la
src_testsuite_hashcalc_SOURCES = src/testsuite/hashcalc.c
src_testsuite_hashcalc_plain_SOURCES = src/testsuite/hashcalc-plain.c
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_LDFLAGS =
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_LDFLAGS =
-@ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_LDFLAGS = $(VSERVER_LDFLGS)
+src_testsuite_hashcalc_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+src_testsuite_hashcalc_plain_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) $(ENSC_CRYPTO_LIB)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_LDFLAGS = -Wl,--as-needed
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) $(ENSC_CRYPTO_LIB)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@src_testsuite_hashcalc_plain_LDFLAGS = -Wl,--as-needed
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE@src_testsuite_hashcalc_plain_LDFLAGS = $(VSERVER_LDFLGS)
src_testsuite_CPPFLAGS = -I $(top_srcdir)/src -D ENSC_TESTSUITE
doc_old_doc = doc/intro.txt
XSLT_AMFLAGS = --stringparam confdir '$(sysconfdir)/vservers'
man/vserver.8 \
man/vtop.8
+man_susbt_SRCS = man/vserver-build.8.pathsubst
+man_gen_DTA = man/vserver-build.8
scripts_pkglib_src_DTA = scripts/functions \
scripts/vserver-build.apt-rpm \
scripts/vserver-build.skeleton \
scripts/vsomething \
scripts/vtop \
scripts/vupdateworld \
- scripts/vyum
+ scripts/vyum \
+ scripts/vmount
scripts_sbin_gen_PRGS =
scripts_sbincfg_gen_DTA =
lib_internal_testsuite_matchlist_gnu_SOURCES = lib_internal/testsuite/matchlist.c
lib_internal_testsuite_matchlist_gnu_LDADD = $(LIBINTERNAL_GLIBC)
lib_internal_testsuite_matchlist_gnu_CPPFLAGS = $(AM_CPPFLAGS) # see note above
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_speed_SOURCES = lib_internal/testsuite/crypto-speed.c
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_speed_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_speed_LDADD = $(ENSC_CRYPTO_LIB) -lrt
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_SOURCES = lib_internal/testsuite/crypto.c
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_LDADD = $(ENSC_CRYPTO_LIB)
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_speed_LDFLAGS = -Wl,--as-needed
+@ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE@@ENSC_HAVE_CRYPTO_TRUE@lib_internal_testsuite_crypto_LDFLAGS = -Wl,--as-needed
vserver_start_vserver_start_bin_SOURCES = \
vserver-start/main.c \
vserver-start/mount.c \
lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall_setmapping.$(OBJEXT): \
lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_unsetmapping.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall_schedinfo.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall_getsched.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_a-syscall_tasktag.$(OBJEXT): lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_getbadness.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_a-syscall_setbadness.$(OBJEXT): \
+ lib/$(am__dirstamp) lib/$(DEPDIR)/$(am__dirstamp)
ensc_fmt/$(am__dirstamp):
@$(MKDIR_P) ensc_fmt
@: > ensc_fmt/$(am__dirstamp)
lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_la-syscall_setmapping.lo: lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_unsetmapping.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_la-syscall_schedinfo.lo: lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_la-syscall_getsched.lo: lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
lib/lib_libvserver_la-syscall_tasktag.lo: lib/$(am__dirstamp) \
lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_getbadness.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
+lib/lib_libvserver_la-syscall_setbadness.lo: lib/$(am__dirstamp) \
+ lib/$(DEPDIR)/$(am__dirstamp)
ensc_fmt/lib_libvserver_la-fmt-32.lo: ensc_fmt/$(am__dirstamp) \
ensc_fmt/$(DEPDIR)/$(am__dirstamp)
ensc_fmt/lib_libvserver_la-fmt-64.lo: ensc_fmt/$(am__dirstamp) \
lib_internal/testsuite/copy$(EXEEXT): $(lib_internal_testsuite_copy_OBJECTS) $(lib_internal_testsuite_copy_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
@rm -f lib_internal/testsuite/copy$(EXEEXT)
$(LINK) $(lib_internal_testsuite_copy_OBJECTS) $(lib_internal_testsuite_copy_LDADD) $(LIBS)
+lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.$(OBJEXT): \
+ lib_internal/testsuite/$(am__dirstamp) \
+ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/crypto$(EXEEXT): $(lib_internal_testsuite_crypto_OBJECTS) $(lib_internal_testsuite_crypto_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
+ @rm -f lib_internal/testsuite/crypto$(EXEEXT)
+ $(lib_internal_testsuite_crypto_LINK) $(lib_internal_testsuite_crypto_OBJECTS) $(lib_internal_testsuite_crypto_LDADD) $(LIBS)
+lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.$(OBJEXT): \
+ lib_internal/testsuite/$(am__dirstamp) \
+ lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
+lib_internal/testsuite/crypto-speed$(EXEEXT): $(lib_internal_testsuite_crypto_speed_OBJECTS) $(lib_internal_testsuite_crypto_speed_DEPENDENCIES) lib_internal/testsuite/$(am__dirstamp)
+ @rm -f lib_internal/testsuite/crypto-speed$(EXEEXT)
+ $(lib_internal_testsuite_crypto_speed_LINK) $(lib_internal_testsuite_crypto_speed_OBJECTS) $(lib_internal_testsuite_crypto_speed_LDADD) $(LIBS)
lib_internal/testsuite/filecfg-ml.$(OBJEXT): \
lib_internal/testsuite/$(am__dirstamp) \
lib_internal/testsuite/$(DEPDIR)/$(am__dirstamp)
src/testsuite/chcontext-test$(EXEEXT): $(src_testsuite_chcontext_test_OBJECTS) $(src_testsuite_chcontext_test_DEPENDENCIES) src/testsuite/$(am__dirstamp)
@rm -f src/testsuite/chcontext-test$(EXEEXT)
$(LINK) $(src_testsuite_chcontext_test_OBJECTS) $(src_testsuite_chcontext_test_LDADD) $(LIBS)
-src/testsuite/hashcalc.$(OBJEXT): src/testsuite/$(am__dirstamp) \
+src/testsuite/src_testsuite_hashcalc-hashcalc.$(OBJEXT): \
+ src/testsuite/$(am__dirstamp) \
src/testsuite/$(DEPDIR)/$(am__dirstamp)
src/testsuite/hashcalc$(EXEEXT): $(src_testsuite_hashcalc_OBJECTS) $(src_testsuite_hashcalc_DEPENDENCIES) src/testsuite/$(am__dirstamp)
@rm -f src/testsuite/hashcalc$(EXEEXT)
$(src_testsuite_hashcalc_LINK) $(src_testsuite_hashcalc_OBJECTS) $(src_testsuite_hashcalc_LDADD) $(LIBS)
-src/testsuite/hashcalc-plain.$(OBJEXT): src/testsuite/$(am__dirstamp) \
+src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.$(OBJEXT): \
+ src/testsuite/$(am__dirstamp) \
src/testsuite/$(DEPDIR)/$(am__dirstamp)
src/testsuite/hashcalc-plain$(EXEEXT): $(src_testsuite_hashcalc_plain_OBJECTS) $(src_testsuite_hashcalc_plain_DEPENDENCIES) src/testsuite/$(am__dirstamp)
@rm -f src/testsuite/hashcalc-plain$(EXEEXT)
src/testsuite/vunify-functest$(EXEEXT): $(src_testsuite_vunify_functest_OBJECTS) $(src_testsuite_vunify_functest_DEPENDENCIES) src/testsuite/$(am__dirstamp)
@rm -f src/testsuite/vunify-functest$(EXEEXT)
$(LINK) $(src_testsuite_vunify_functest_OBJECTS) $(src_testsuite_vunify_functest_LDADD) $(LIBS)
+src/tunctl.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/tunctl$(EXEEXT): $(src_tunctl_OBJECTS) $(src_tunctl_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/tunctl$(EXEEXT)
+ $(src_tunctl_LINK) $(src_tunctl_OBJECTS) $(src_tunctl_LDADD) $(LIBS)
src/vattribute.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vattribute$(EXEEXT): $(src_vattribute_OBJECTS) $(src_vattribute_DEPENDENCIES) src/$(am__dirstamp)
src/vdu$(EXEEXT): $(src_vdu_OBJECTS) $(src_vdu_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vdu$(EXEEXT)
$(src_vdu_LINK) $(src_vdu_OBJECTS) $(src_vdu_LDADD) $(LIBS)
-src/vhashify.$(OBJEXT): src/$(am__dirstamp) \
+src/src_vhashify-vhashify.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vhashify$(EXEEXT): $(src_vhashify_OBJECTS) $(src_vhashify_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vhashify$(EXEEXT)
src/vlimit$(EXEEXT): $(src_vlimit_OBJECTS) $(src_vlimit_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vlimit$(EXEEXT)
$(src_vlimit_LINK) $(src_vlimit_OBJECTS) $(src_vlimit_LDADD) $(LIBS)
+src/vmemctrl.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vmemctrl$(EXEEXT): $(src_vmemctrl_OBJECTS) $(src_vmemctrl_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vmemctrl$(EXEEXT)
+ $(src_vmemctrl_LINK) $(src_vmemctrl_OBJECTS) $(src_vmemctrl_LDADD) $(LIBS)
src/vnamespace.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vnamespace$(EXEEXT): $(src_vnamespace_OBJECTS) $(src_vnamespace_DEPENDENCIES) src/$(am__dirstamp)
src/vshelper-sync$(EXEEXT): $(src_vshelper_sync_OBJECTS) $(src_vshelper_sync_DEPENDENCIES) src/$(am__dirstamp)
@rm -f src/vshelper-sync$(EXEEXT)
$(LINK) $(src_vshelper_sync_OBJECTS) $(src_vshelper_sync_LDADD) $(LIBS)
+src/vspace.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+src/vspace$(EXEEXT): $(src_vspace_OBJECTS) $(src_vspace_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vspace$(EXEEXT)
+ $(src_vspace_LINK) $(src_vspace_OBJECTS) $(src_vspace_LDADD) $(LIBS)
src/vsysctl.$(OBJEXT): src/$(am__dirstamp) \
src/$(DEPDIR)/$(am__dirstamp)
src/vsysctl$(EXEEXT): $(src_vsysctl_OBJECTS) $(src_vsysctl_DEPENDENCIES) src/$(am__dirstamp)
-rm -f lib/lib_libvserver_a-syscall_enternamespace.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_fgetiattr.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_fsetiattr.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_getbadness.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_getccaps.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_getcflags.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_getdlimit.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_rlimit.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_rlimitstat.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_schedinfo.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_setbadness.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_setccaps.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_setcflags.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_setdlimit.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_tagcreate.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_tagmigrate.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_tasktag.$(OBJEXT)
+ -rm -f lib/lib_libvserver_a-syscall_unsetmapping.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_virtstat.$(OBJEXT)
-rm -f lib/lib_libvserver_a-syscall_waitexit.$(OBJEXT)
-rm -f lib/lib_libvserver_a-tagopt2tag.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_fgetiattr.lo
-rm -f lib/lib_libvserver_la-syscall_fsetiattr.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_fsetiattr.lo
+ -rm -f lib/lib_libvserver_la-syscall_getbadness.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_getbadness.lo
-rm -f lib/lib_libvserver_la-syscall_getccaps.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_getccaps.lo
-rm -f lib/lib_libvserver_la-syscall_getcflags.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_rlimitstat.lo
-rm -f lib/lib_libvserver_la-syscall_schedinfo.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_schedinfo.lo
+ -rm -f lib/lib_libvserver_la-syscall_setbadness.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_setbadness.lo
-rm -f lib/lib_libvserver_la-syscall_setccaps.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_setccaps.lo
-rm -f lib/lib_libvserver_la-syscall_setcflags.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_tagmigrate.lo
-rm -f lib/lib_libvserver_la-syscall_tasktag.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_tasktag.lo
+ -rm -f lib/lib_libvserver_la-syscall_unsetmapping.$(OBJEXT)
+ -rm -f lib/lib_libvserver_la-syscall_unsetmapping.lo
-rm -f lib/lib_libvserver_la-syscall_virtstat.$(OBJEXT)
-rm -f lib/lib_libvserver_la-syscall_virtstat.lo
-rm -f lib/lib_libvserver_la-syscall_waitexit.$(OBJEXT)
-rm -f lib_internal/testsuite/command.$(OBJEXT)
-rm -f lib_internal/testsuite/copy.$(OBJEXT)
-rm -f lib_internal/testsuite/filecfg-ml.$(OBJEXT)
+ -rm -f lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.$(OBJEXT)
+ -rm -f lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.$(OBJEXT)
-rm -f lib_internal/testsuite/lib_internal_testsuite_isnumber-isnumber.$(OBJEXT)
-rm -f lib_internal/testsuite/lib_internal_testsuite_isnumber_gnu-isnumber.$(OBJEXT)
-rm -f lib_internal/testsuite/lib_internal_testsuite_matchlist-matchlist.$(OBJEXT)
-rm -f src/sigexec.$(OBJEXT)
-rm -f src/src_rpm_fake_la-rpm-fake.$(OBJEXT)
-rm -f src/src_rpm_fake_la-rpm-fake.lo
+ -rm -f src/src_vhashify-vhashify.$(OBJEXT)
-rm -f src/src_vkill-vkill.$(OBJEXT)
-rm -f src/testsuite/chbind-test.$(OBJEXT)
-rm -f src/testsuite/chcontext-test.$(OBJEXT)
- -rm -f src/testsuite/hashcalc-plain.$(OBJEXT)
- -rm -f src/testsuite/hashcalc.$(OBJEXT)
-rm -f src/testsuite/rpm-fake-test.$(OBJEXT)
+ -rm -f src/testsuite/src_testsuite_hashcalc-hashcalc.$(OBJEXT)
+ -rm -f src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.$(OBJEXT)
-rm -f src/testsuite/src_testsuite_vunify_functest-vunify-functest.$(OBJEXT)
+ -rm -f src/tunctl.$(OBJEXT)
-rm -f src/vattribute.$(OBJEXT)
-rm -f src/vclone.$(OBJEXT)
-rm -f src/vcontext.$(OBJEXT)
-rm -f src/vdevmap.$(OBJEXT)
-rm -f src/vdlimit.$(OBJEXT)
-rm -f src/vdu.$(OBJEXT)
- -rm -f src/vhashify.$(OBJEXT)
-rm -f src/vlimit.$(OBJEXT)
-rm -f src/vlogin.$(OBJEXT)
+ -rm -f src/vmemctrl.$(OBJEXT)
-rm -f src/vnamespace.$(OBJEXT)
-rm -f src/vps.$(OBJEXT)
-rm -f src/vreboot.$(OBJEXT)
-rm -f src/vserver-info.$(OBJEXT)
-rm -f src/vserver-stat.$(OBJEXT)
-rm -f src/vshelper-sync.$(OBJEXT)
+ -rm -f src/vspace.$(OBJEXT)
-rm -f src/vsysctl.$(OBJEXT)
-rm -f src/vtag.$(OBJEXT)
-rm -f src/vuname.$(OBJEXT)
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_enternamespace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_fgetiattr.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_fsetiattr.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getccaps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getcflags.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_getdlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_rlimitstat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setccaps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setcflags.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_setdlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_tagcreate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_tagmigrate.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_tasktag.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_virtstat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-syscall_waitexit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_a-tagopt2tag.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_enternamespace.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_fgetiattr.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_fsetiattr.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getbadness.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getccaps.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getcflags.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_getdlimit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_rlimitstat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setbadness.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setccaps.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setcflags.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_setdlimit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_tagcreate.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_tagmigrate.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_tasktag.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_unsetmapping.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_virtstat.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-syscall_waitexit.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib/$(DEPDIR)/lib_libvserver_la-tagopt2tag.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/command.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/copy.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/filecfg-ml.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_isnumber-isnumber.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_isnumber_gnu-isnumber.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_matchlist-matchlist.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/showperm.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/sigexec.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_rpm_fake_la-rpm-fake.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_vhashify-vhashify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/src_vkill-vkill.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tunctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vattribute.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vclone.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vcontext.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdevmap.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vdu.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vhashify.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vlimit.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vlogin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vmemctrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vnamespace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vps.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vreboot.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-info.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vserver-stat.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vshelper-sync.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vspace.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vsysctl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vtag.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vuname.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vwait.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/chbind-test.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/chcontext-test.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/hashcalc-plain.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/hashcalc.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/rpm-fake-test.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/escaperoot.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@tests/$(DEPDIR)/forkbomb.Po@am__quote@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setmapping.obj `if test -f 'lib/syscall_setmapping.c'; then $(CYGPATH_W) 'lib/syscall_setmapping.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setmapping.c'; fi`
+lib/lib_libvserver_a-syscall_unsetmapping.o: lib/syscall_unsetmapping.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_unsetmapping.o -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Tpo -c -o lib/lib_libvserver_a-syscall_unsetmapping.o `test -f 'lib/syscall_unsetmapping.c' || echo '$(srcdir)/'`lib/syscall_unsetmapping.c
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_unsetmapping.c' object='lib/lib_libvserver_a-syscall_unsetmapping.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_unsetmapping.o `test -f 'lib/syscall_unsetmapping.c' || echo '$(srcdir)/'`lib/syscall_unsetmapping.c
+
+lib/lib_libvserver_a-syscall_unsetmapping.obj: lib/syscall_unsetmapping.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_unsetmapping.obj -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Tpo -c -o lib/lib_libvserver_a-syscall_unsetmapping.obj `if test -f 'lib/syscall_unsetmapping.c'; then $(CYGPATH_W) 'lib/syscall_unsetmapping.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_unsetmapping.c'; fi`
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_unsetmapping.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_unsetmapping.c' object='lib/lib_libvserver_a-syscall_unsetmapping.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_unsetmapping.obj `if test -f 'lib/syscall_unsetmapping.c'; then $(CYGPATH_W) 'lib/syscall_unsetmapping.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_unsetmapping.c'; fi`
+
lib/lib_libvserver_a-syscall_schedinfo.o: lib/syscall_schedinfo.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_schedinfo.o -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo -c -o lib/lib_libvserver_a-syscall_schedinfo.o `test -f 'lib/syscall_schedinfo.c' || echo '$(srcdir)/'`lib/syscall_schedinfo.c
@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_schedinfo.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_tasktag.obj `if test -f 'lib/syscall_tasktag.c'; then $(CYGPATH_W) 'lib/syscall_tasktag.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_tasktag.c'; fi`
+lib/lib_libvserver_a-syscall_getbadness.o: lib/syscall_getbadness.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getbadness.o -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Tpo -c -o lib/lib_libvserver_a-syscall_getbadness.o `test -f 'lib/syscall_getbadness.c' || echo '$(srcdir)/'`lib/syscall_getbadness.c
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getbadness.c' object='lib/lib_libvserver_a-syscall_getbadness.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getbadness.o `test -f 'lib/syscall_getbadness.c' || echo '$(srcdir)/'`lib/syscall_getbadness.c
+
+lib/lib_libvserver_a-syscall_getbadness.obj: lib/syscall_getbadness.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_getbadness.obj -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Tpo -c -o lib/lib_libvserver_a-syscall_getbadness.obj `if test -f 'lib/syscall_getbadness.c'; then $(CYGPATH_W) 'lib/syscall_getbadness.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getbadness.c'; fi`
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_getbadness.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getbadness.c' object='lib/lib_libvserver_a-syscall_getbadness.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_getbadness.obj `if test -f 'lib/syscall_getbadness.c'; then $(CYGPATH_W) 'lib/syscall_getbadness.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_getbadness.c'; fi`
+
+lib/lib_libvserver_a-syscall_setbadness.o: lib/syscall_setbadness.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setbadness.o -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Tpo -c -o lib/lib_libvserver_a-syscall_setbadness.o `test -f 'lib/syscall_setbadness.c' || echo '$(srcdir)/'`lib/syscall_setbadness.c
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setbadness.c' object='lib/lib_libvserver_a-syscall_setbadness.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setbadness.o `test -f 'lib/syscall_setbadness.c' || echo '$(srcdir)/'`lib/syscall_setbadness.c
+
+lib/lib_libvserver_a-syscall_setbadness.obj: lib/syscall_setbadness.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_a-syscall_setbadness.obj -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Tpo -c -o lib/lib_libvserver_a-syscall_setbadness.obj `if test -f 'lib/syscall_setbadness.c'; then $(CYGPATH_W) 'lib/syscall_setbadness.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setbadness.c'; fi`
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Tpo lib/$(DEPDIR)/lib_libvserver_a-syscall_setbadness.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setbadness.c' object='lib/lib_libvserver_a-syscall_setbadness.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_a-syscall_setbadness.obj `if test -f 'lib/syscall_setbadness.c'; then $(CYGPATH_W) 'lib/syscall_setbadness.c'; else $(CYGPATH_W) '$(srcdir)/lib/syscall_setbadness.c'; fi`
+
ensc_fmt/lib_libvserver_a-fmt-32.o: ensc_fmt/fmt-32.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_a_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_a-fmt-32.o -MD -MP -MF ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo -c -o ensc_fmt/lib_libvserver_a-fmt-32.o `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c
@am__fastdepCC_TRUE@ mv -f ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Tpo ensc_fmt/$(DEPDIR)/lib_libvserver_a-fmt-32.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setmapping.lo `test -f 'lib/syscall_setmapping.c' || echo '$(srcdir)/'`lib/syscall_setmapping.c
+lib/lib_libvserver_la-syscall_unsetmapping.lo: lib/syscall_unsetmapping.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_unsetmapping.lo -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_la-syscall_unsetmapping.Tpo -c -o lib/lib_libvserver_la-syscall_unsetmapping.lo `test -f 'lib/syscall_unsetmapping.c' || echo '$(srcdir)/'`lib/syscall_unsetmapping.c
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_la-syscall_unsetmapping.Tpo lib/$(DEPDIR)/lib_libvserver_la-syscall_unsetmapping.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_unsetmapping.c' object='lib/lib_libvserver_la-syscall_unsetmapping.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_unsetmapping.lo `test -f 'lib/syscall_unsetmapping.c' || echo '$(srcdir)/'`lib/syscall_unsetmapping.c
+
lib/lib_libvserver_la-syscall_schedinfo.lo: lib/syscall_schedinfo.c
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_schedinfo.lo -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Tpo -c -o lib/lib_libvserver_la-syscall_schedinfo.lo `test -f 'lib/syscall_schedinfo.c' || echo '$(srcdir)/'`lib/syscall_schedinfo.c
@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Tpo lib/$(DEPDIR)/lib_libvserver_la-syscall_schedinfo.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_tasktag.lo `test -f 'lib/syscall_tasktag.c' || echo '$(srcdir)/'`lib/syscall_tasktag.c
+lib/lib_libvserver_la-syscall_getbadness.lo: lib/syscall_getbadness.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_getbadness.lo -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_la-syscall_getbadness.Tpo -c -o lib/lib_libvserver_la-syscall_getbadness.lo `test -f 'lib/syscall_getbadness.c' || echo '$(srcdir)/'`lib/syscall_getbadness.c
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_la-syscall_getbadness.Tpo lib/$(DEPDIR)/lib_libvserver_la-syscall_getbadness.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_getbadness.c' object='lib/lib_libvserver_la-syscall_getbadness.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_getbadness.lo `test -f 'lib/syscall_getbadness.c' || echo '$(srcdir)/'`lib/syscall_getbadness.c
+
+lib/lib_libvserver_la-syscall_setbadness.lo: lib/syscall_setbadness.c
+@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib/lib_libvserver_la-syscall_setbadness.lo -MD -MP -MF lib/$(DEPDIR)/lib_libvserver_la-syscall_setbadness.Tpo -c -o lib/lib_libvserver_la-syscall_setbadness.lo `test -f 'lib/syscall_setbadness.c' || echo '$(srcdir)/'`lib/syscall_setbadness.c
+@am__fastdepCC_TRUE@ mv -f lib/$(DEPDIR)/lib_libvserver_la-syscall_setbadness.Tpo lib/$(DEPDIR)/lib_libvserver_la-syscall_setbadness.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib/syscall_setbadness.c' object='lib/lib_libvserver_la-syscall_setbadness.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/lib_libvserver_la-syscall_setbadness.lo `test -f 'lib/syscall_setbadness.c' || echo '$(srcdir)/'`lib/syscall_setbadness.c
+
ensc_fmt/lib_libvserver_la-fmt-32.lo: ensc_fmt/fmt-32.c
@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_libvserver_la_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ensc_fmt/lib_libvserver_la-fmt-32.lo -MD -MP -MF ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo -c -o ensc_fmt/lib_libvserver_la-fmt-32.lo `test -f 'ensc_fmt/fmt-32.c' || echo '$(srcdir)/'`ensc_fmt/fmt-32.c
@am__fastdepCC_TRUE@ mv -f ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Tpo ensc_fmt/$(DEPDIR)/lib_libvserver_la-fmt-32.Plo
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_testsuite_personality_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib/testsuite/lib_testsuite_personality-personality.obj `if test -f 'lib/testsuite/personality.c'; then $(CYGPATH_W) 'lib/testsuite/personality.c'; else $(CYGPATH_W) '$(srcdir)/lib/testsuite/personality.c'; fi`
+lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.o: lib_internal/testsuite/crypto.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_CFLAGS) $(CFLAGS) -MT lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.o -MD -MP -MF lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Tpo -c -o lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.o `test -f 'lib_internal/testsuite/crypto.c' || echo '$(srcdir)/'`lib_internal/testsuite/crypto.c
+@am__fastdepCC_TRUE@ mv -f lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Tpo lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/testsuite/crypto.c' object='lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_CFLAGS) $(CFLAGS) -c -o lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.o `test -f 'lib_internal/testsuite/crypto.c' || echo '$(srcdir)/'`lib_internal/testsuite/crypto.c
+
+lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.obj: lib_internal/testsuite/crypto.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_CFLAGS) $(CFLAGS) -MT lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.obj -MD -MP -MF lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Tpo -c -o lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.obj `if test -f 'lib_internal/testsuite/crypto.c'; then $(CYGPATH_W) 'lib_internal/testsuite/crypto.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/testsuite/crypto.c'; fi`
+@am__fastdepCC_TRUE@ mv -f lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Tpo lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto-crypto.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/testsuite/crypto.c' object='lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_CFLAGS) $(CFLAGS) -c -o lib_internal/testsuite/lib_internal_testsuite_crypto-crypto.obj `if test -f 'lib_internal/testsuite/crypto.c'; then $(CYGPATH_W) 'lib_internal/testsuite/crypto.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/testsuite/crypto.c'; fi`
+
+lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.o: lib_internal/testsuite/crypto-speed.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_speed_CFLAGS) $(CFLAGS) -MT lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.o -MD -MP -MF lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Tpo -c -o lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.o `test -f 'lib_internal/testsuite/crypto-speed.c' || echo '$(srcdir)/'`lib_internal/testsuite/crypto-speed.c
+@am__fastdepCC_TRUE@ mv -f lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Tpo lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/testsuite/crypto-speed.c' object='lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_speed_CFLAGS) $(CFLAGS) -c -o lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.o `test -f 'lib_internal/testsuite/crypto-speed.c' || echo '$(srcdir)/'`lib_internal/testsuite/crypto-speed.c
+
+lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.obj: lib_internal/testsuite/crypto-speed.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_speed_CFLAGS) $(CFLAGS) -MT lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.obj -MD -MP -MF lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Tpo -c -o lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.obj `if test -f 'lib_internal/testsuite/crypto-speed.c'; then $(CYGPATH_W) 'lib_internal/testsuite/crypto-speed.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/testsuite/crypto-speed.c'; fi`
+@am__fastdepCC_TRUE@ mv -f lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Tpo lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_crypto_speed-crypto-speed.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='lib_internal/testsuite/crypto-speed.c' object='lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(lib_internal_testsuite_crypto_speed_CFLAGS) $(CFLAGS) -c -o lib_internal/testsuite/lib_internal_testsuite_crypto_speed-crypto-speed.obj `if test -f 'lib_internal/testsuite/crypto-speed.c'; then $(CYGPATH_W) 'lib_internal/testsuite/crypto-speed.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/testsuite/crypto-speed.c'; fi`
+
lib_internal/testsuite/lib_internal_testsuite_isnumber-isnumber.o: lib_internal/testsuite/isnumber.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_testsuite_isnumber_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT lib_internal/testsuite/lib_internal_testsuite_isnumber-isnumber.o -MD -MP -MF lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_isnumber-isnumber.Tpo -c -o lib_internal/testsuite/lib_internal_testsuite_isnumber-isnumber.o `test -f 'lib_internal/testsuite/isnumber.c' || echo '$(srcdir)/'`lib_internal/testsuite/isnumber.c
@am__fastdepCC_TRUE@ mv -f lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_isnumber-isnumber.Tpo lib_internal/testsuite/$(DEPDIR)/lib_internal_testsuite_isnumber-isnumber.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(lib_internal_testsuite_sigbus_gnu_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o lib_internal/testsuite/lib_internal_testsuite_sigbus_gnu-sigbus.obj `if test -f 'lib_internal/testsuite/sigbus.c'; then $(CYGPATH_W) 'lib_internal/testsuite/sigbus.c'; else $(CYGPATH_W) '$(srcdir)/lib_internal/testsuite/sigbus.c'; fi`
+src/testsuite/src_testsuite_hashcalc-hashcalc.o: src/testsuite/hashcalc.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_hashcalc-hashcalc.o -MD -MP -MF src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Tpo -c -o src/testsuite/src_testsuite_hashcalc-hashcalc.o `test -f 'src/testsuite/hashcalc.c' || echo '$(srcdir)/'`src/testsuite/hashcalc.c
+@am__fastdepCC_TRUE@ mv -f src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Tpo src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/testsuite/hashcalc.c' object='src/testsuite/src_testsuite_hashcalc-hashcalc.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_hashcalc-hashcalc.o `test -f 'src/testsuite/hashcalc.c' || echo '$(srcdir)/'`src/testsuite/hashcalc.c
+
+src/testsuite/src_testsuite_hashcalc-hashcalc.obj: src/testsuite/hashcalc.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_hashcalc-hashcalc.obj -MD -MP -MF src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Tpo -c -o src/testsuite/src_testsuite_hashcalc-hashcalc.obj `if test -f 'src/testsuite/hashcalc.c'; then $(CYGPATH_W) 'src/testsuite/hashcalc.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/hashcalc.c'; fi`
+@am__fastdepCC_TRUE@ mv -f src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Tpo src/testsuite/$(DEPDIR)/src_testsuite_hashcalc-hashcalc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/testsuite/hashcalc.c' object='src/testsuite/src_testsuite_hashcalc-hashcalc.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_hashcalc-hashcalc.obj `if test -f 'src/testsuite/hashcalc.c'; then $(CYGPATH_W) 'src/testsuite/hashcalc.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/hashcalc.c'; fi`
+
+src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.o: src/testsuite/hashcalc-plain.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_plain_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.o -MD -MP -MF src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Tpo -c -o src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.o `test -f 'src/testsuite/hashcalc-plain.c' || echo '$(srcdir)/'`src/testsuite/hashcalc-plain.c
+@am__fastdepCC_TRUE@ mv -f src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Tpo src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/testsuite/hashcalc-plain.c' object='src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_plain_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.o `test -f 'src/testsuite/hashcalc-plain.c' || echo '$(srcdir)/'`src/testsuite/hashcalc-plain.c
+
+src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.obj: src/testsuite/hashcalc-plain.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_plain_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.obj -MD -MP -MF src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Tpo -c -o src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.obj `if test -f 'src/testsuite/hashcalc-plain.c'; then $(CYGPATH_W) 'src/testsuite/hashcalc-plain.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/hashcalc-plain.c'; fi`
+@am__fastdepCC_TRUE@ mv -f src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Tpo src/testsuite/$(DEPDIR)/src_testsuite_hashcalc_plain-hashcalc-plain.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/testsuite/hashcalc-plain.c' object='src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_testsuite_hashcalc_plain_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_hashcalc_plain-hashcalc-plain.obj `if test -f 'src/testsuite/hashcalc-plain.c'; then $(CYGPATH_W) 'src/testsuite/hashcalc-plain.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/hashcalc-plain.c'; fi`
+
src/testsuite/src_testsuite_vunify_functest-vunify-functest.o: src/testsuite/vunify-functest.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testsuite_vunify_functest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/testsuite/src_testsuite_vunify_functest-vunify-functest.o -MD -MP -MF src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo -c -o src/testsuite/src_testsuite_vunify_functest-vunify-functest.o `test -f 'src/testsuite/vunify-functest.c' || echo '$(srcdir)/'`src/testsuite/vunify-functest.c
@am__fastdepCC_TRUE@ mv -f src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Tpo src/testsuite/$(DEPDIR)/src_testsuite_vunify_functest-vunify-functest.Po
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_testsuite_vunify_functest_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o src/testsuite/src_testsuite_vunify_functest-vunify-functest.obj `if test -f 'src/testsuite/vunify-functest.c'; then $(CYGPATH_W) 'src/testsuite/vunify-functest.c'; else $(CYGPATH_W) '$(srcdir)/src/testsuite/vunify-functest.c'; fi`
+src/src_vhashify-vhashify.o: src/vhashify.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_vhashify_CFLAGS) $(CFLAGS) -MT src/src_vhashify-vhashify.o -MD -MP -MF src/$(DEPDIR)/src_vhashify-vhashify.Tpo -c -o src/src_vhashify-vhashify.o `test -f 'src/vhashify.c' || echo '$(srcdir)/'`src/vhashify.c
+@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_vhashify-vhashify.Tpo src/$(DEPDIR)/src_vhashify-vhashify.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vhashify.c' object='src/src_vhashify-vhashify.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_vhashify_CFLAGS) $(CFLAGS) -c -o src/src_vhashify-vhashify.o `test -f 'src/vhashify.c' || echo '$(srcdir)/'`src/vhashify.c
+
+src/src_vhashify-vhashify.obj: src/vhashify.c
+@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_vhashify_CFLAGS) $(CFLAGS) -MT src/src_vhashify-vhashify.obj -MD -MP -MF src/$(DEPDIR)/src_vhashify-vhashify.Tpo -c -o src/src_vhashify-vhashify.obj `if test -f 'src/vhashify.c'; then $(CYGPATH_W) 'src/vhashify.c'; else $(CYGPATH_W) '$(srcdir)/src/vhashify.c'; fi`
+@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_vhashify-vhashify.Tpo src/$(DEPDIR)/src_vhashify-vhashify.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='src/vhashify.c' object='src/src_vhashify-vhashify.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_vhashify_CFLAGS) $(CFLAGS) -c -o src/src_vhashify-vhashify.obj `if test -f 'src/vhashify.c'; then $(CYGPATH_W) 'src/vhashify.c'; else $(CYGPATH_W) '$(srcdir)/src/vhashify.c'; fi`
+
src/src_vkill-vkill.o: src/vkill.c
@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(src_vkill_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT src/src_vkill-vkill.o -MD -MP -MF src/$(DEPDIR)/src_vkill-vkill.Tpo -c -o src/src_vkill-vkill.o `test -f 'src/vkill.c' || echo '$(srcdir)/'`src/vkill.c
@am__fastdepCC_TRUE@ mv -f src/$(DEPDIR)/src_vkill-vkill.Tpo src/$(DEPDIR)/src_vkill-vkill.Po
@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@ $(XSLTPROC) $(XSLT_FLAGS) $(XSLT_AMFLAGS) -o '$@.tmp' "$(STYLESHEET)" "$<"
@HAVE_XSLTPROC_TRUE@@HAVE_XSLTP_FALSE@ @mv -f '$@.tmp' '$@'
+man/vserver-build.8: man/.vserver-build.8.pathsubst.stamp
+
scripts/util-vserver-vars: scripts/.util-vserver-vars.pathsubst.stamp
scripts/legacy/vps: scripts/legacy/.vps.pathsubst.stamp
+version 0.30.215
+================
+
+ - added support for using libnss instead of beecrypt for
+ vhashify's hash calculation. libnss has bad SHA1 performance on
+ i386, but is a) maintained and b) gives better performance with
+ all other hashes and on x86_64.
+
+ - added tunctl, a small program to setup tun/tap interfaces, with
+ support in the configuration.
+
+ - vattribute and nattribute now support a --get operation, which
+ parses the flags and capabilities into a human-readable form.
+
+ - vspace supports all the spaces currently available.
+
+ - vmemctrl controls the OOM bias of context.
+
+ - dynamic contexts are unbroken.
+
+ - hopefully all rpm-fake races have been fixed.
+
+ - flock has been replaced by lockf, which works on NFS.
+
+ - the clone build method now supports exclude lists.
+
+ - vmount handles mounting into a guest.
+
+ - various fixes for the Gentoo-scripts, thanks to Benedikt Böhm.
+
+ - support for yum's persistdir has been added.
+
+ - per-guest device maps are now supported.
+
+ - vserver ... build now sets the barrier on the parent directory.
+
+ - fsck is now supported for the guest's fstab.
+
+ - symlinks are now handled on all levels in namespace cleanup.
+
+ - the debootstrap build method now supports debootstrap 1.0.8.
+
+ - a documentation update, thanks to Micah Anderson.
+
+ - use numeric uids/gids for the template build method.
+
+ - add support for the alpine and f8 distributions.
+
version 0.30.214
================
- patches for yum-3.2.
AC_MSG_RESULT([$SED])
])
+# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*-
+#
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# PKG_PROG_PKG_CONFIG([MIN-VERSION])
+# ----------------------------------
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+
+fi[]dnl
+])# PKG_PROG_PKG_CONFIG
+
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists. Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+
+# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+# ---------------------------------------------
+m4_define([_PKG_CONFIG],
+[if test -n "$PKG_CONFIG"; then
+ if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ else
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+ [pkg_failed=yes])
+ fi
+else
+ pkg_failed=untried
+fi[]dnl
+])# _PKG_CONFIG
+
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
+# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+# [ACTION-IF-NOT-FOUND])
+#
+#
+# Note that if there is a possibility the first call to
+# PKG_CHECK_MODULES might not happen, you should be sure to include an
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+#
+#
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $1])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ ifelse([$4], , [AC_MSG_ERROR(dnl
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT
+])],
+ [AC_MSG_RESULT([no])
+ $4])
+elif test $pkg_failed = untried; then
+ ifelse([$4], , [AC_MSG_FAILURE(dnl
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
+ [$4])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ ifelse([$3], , :, [$3])
+fi[]dnl
+])# PKG_CHECK_MODULES
+
# Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc.
#
# This file is free software; the Free Software Foundation
/* config.h.in. Generated from configure.ac by autoheader. */
+/* Used crypto API */
+#undef ENSC_CRYPTO_API
+
/* Define to 1 if dietlibc supports C99 */
#undef ENSC_DIETLIBC_C99
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for util-vserver 0.30.214.
+# Generated by GNU Autoconf 2.61 for util-vserver 0.30.215.
#
# Report bugs to <vserver@list.linux-vserver.org>.
#
# Identity of this package.
PACKAGE_NAME='util-vserver'
PACKAGE_TARNAME='util-vserver'
-PACKAGE_VERSION='0.30.214'
-PACKAGE_STRING='util-vserver 0.30.214'
+PACKAGE_VERSION='0.30.215'
+PACKAGE_STRING='util-vserver 0.30.215'
PACKAGE_BUGREPORT='vserver@list.linux-vserver.org'
ac_unique_file="src/capchroot.c"
am__fastdepCC_TRUE
am__fastdepCC_FALSE
LN_S
+PKG_CONFIG
ENSC_HAVE_CXX_COMPILER_TRUE
ENSC_HAVE_CXX_COMPILER_FALSE
ENSC_HAVE_C99_COMPILER_TRUE
RESTORE
RSYNC
STRACE
+FSCK
DOXYGEN
XSLTP
XSLTPROC
ENSC_HAVE_BEECRYPT_FALSE
ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE
ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE
+NSS_CFLAGS
+NSS_LIBS
+ENSC_HAVE_CRYPTO_TRUE
+ENSC_HAVE_CRYPTO_FALSE
+ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE
+ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE
+ENSC_CRYPTO_CFLAGS
+ENSC_CRYPTO_LIB
HAVE_GENTOO_INIT_TRUE
HAVE_GENTOO_INIT_FALSE
HAVE_SYSV_INIT_TRUE
CCC
CC
CFLAGS
+PKG_CONFIG
CPP
DIET
DIETFLAGS
CXXCPP
F77
-FFLAGS'
+FFLAGS
+NSS_CFLAGS
+NSS_LIBS'
# Initialize some variables set by options.
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures util-vserver 0.30.214 to adapt to many kinds of systems.
+\`configure' configures util-vserver 0.30.215 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of util-vserver 0.30.214:";;
+ short | recursive ) echo "Configuration of util-vserver 0.30.215:";;
esac
cat <<\_ACEOF
both]
--with-tags[=TAGS] include additional configurations [automatic]
--with-vrootdir=DIR place vservers under DIR (default: /vservers)
+ --with-crypto-api=API select crypto api to be used; possible values are
+ `none', `nss', `beecrypt', `auto' (default:auto)
--with-initscripts=TYPE force host initscripts; valid values are 'gentoo'
and 'sysv' (default: guess)
you have headers in a nonstandard directory <include dir>
CC C compiler command
CFLAGS C compiler flags
+ PKG_CONFIG path to pkg-config utility
CPP C preprocessor
DIET The 'diet' wrapper (default: diet)
DIETFLAGS Flags passed to the 'diet' wrapper (default: -O)
CXXCPP C++ preprocessor
F77 Fortran 77 compiler command
FFLAGS Fortran 77 compiler flags
+ NSS_CFLAGS C compiler flags for NSS, overriding pkg-config
+ NSS_LIBS linker flags for NSS, overriding pkg-config
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-util-vserver configure 0.30.214
+util-vserver configure 0.30.215
generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by util-vserver $as_me 0.30.214, which was
+It was created by util-vserver $as_me 0.30.215, which was
generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='util-vserver'
- VERSION='0.30.214'
+ VERSION='0.30.215'
cat >>confdefs.h <<_ACEOF
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet. If you think this
+configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+ else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+ PKG_CONFIG=""
+ fi
+
+fi
+
+
{ echo "$as_me:$LINENO: checking whether $CXX is a C++ compiler" >&5
+ if test -z ""; then
+ rq=true
+ else
+ rq=false
+ fi
+
+ if $rq; then
+ ensc_dflt=
+ else
+ ensc_dflt=""
+ fi
+
+ for ac_prog in fsck
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+if test "${ac_cv_path_FSCK+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ case $FSCK in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_FSCK="$FSCK" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $ensc_searchpath
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+ ac_cv_path_FSCK="$as_dir/$ac_word$ac_exec_ext"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+FSCK=$ac_cv_path_FSCK
+if test -n "$FSCK"; then
+ { echo "$as_me:$LINENO: result: $FSCK" >&5
+echo "${ECHO_T}$FSCK" >&6; }
+else
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+fi
+
+
+ test -n "$FSCK" && break
+done
+test -n "$FSCK" || FSCK="$ensc_dflt"
+
+
+ if test -z "${FSCK}" && $rq; then
+ if test -z ""; then
+ { { echo "$as_me:$LINENO: error: Can not find the 'fsck' tool within '${ensc_searchpath:-$PATH}'." >&5
+echo "$as_me: error: Can not find the 'fsck' tool within '${ensc_searchpath:-$PATH}'." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ { { echo "$as_me:$LINENO: error:
+Can not find the 'fsck' tool within '${ensc_searchpath:-$PATH}'.
+" >&5
+echo "$as_me: error:
+Can not find the 'fsck' tool within '${ensc_searchpath:-$PATH}'.
+" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ fi
+
+ if test -e "${FSCK}"; then
+ FSCK=`readlink -f "${FSCK}"`
+ fi
+
+ test "${FSCK}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'FSCK'@!${FSCK}!g;"
+
+ test "${FSCK}"
+
+
+
+
if test -z ":"; then
rq=true
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 12335 "configure"' > conftest.$ac_ext
+ echo '#line 12559 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14363: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14587: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14367: \$? = $ac_status" >&5
+ echo "$as_me:14591: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14631: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14855: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14635: \$? = $ac_status" >&5
+ echo "$as_me:14859: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:14735: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:14959: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:14739: \$? = $ac_status" >&5
+ echo "$as_me:14963: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 16200 "configure"' > conftest.$ac_ext
+ echo '#line 16424 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 17064 "configure"
+#line 17288 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 17164 "configure"
+#line 17388 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:19500: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:19724: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:19504: \$? = $ac_status" >&5
+ echo "$as_me:19728: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:19604: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:19828: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:19608: \$? = $ac_status" >&5
+ echo "$as_me:19832: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 20140 "configure"' > conftest.$ac_ext
+ echo '#line 20364 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:21195: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:21419: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:21199: \$? = $ac_status" >&5
+ echo "$as_me:21423: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:21299: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:21523: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:21303: \$? = $ac_status" >&5
+ echo "$as_me:21527: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 22744 "configure"' > conftest.$ac_ext
+ echo '#line 22968 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:23518: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:23742: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:23522: \$? = $ac_status" >&5
+ echo "$as_me:23746: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:23786: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:24010: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:23790: \$? = $ac_status" >&5
+ echo "$as_me:24014: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:23890: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:24114: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:23894: \$? = $ac_status" >&5
+ echo "$as_me:24118: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
libsuff=
case "$host_cpu" in
x86_64*|s390x*|powerpc64*)
- echo '#line 25355 "configure"' > conftest.$ac_ext
+ echo '#line 25579 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
fi
+{ echo "$as_me:$LINENO: checking for used crypto API" >&5
+echo $ECHO_N "checking for used crypto API... $ECHO_C" >&6; }
+
+# Check whether --with-crypto-api was given.
+if test "${with_crypto_api+set}" = set; then
+ withval=$with_crypto_api; case $withval in
+ (none|nss|beecrypt|auto) ensc_crypto_api=$withval;;
+ (*) { { echo "$as_me:$LINENO: error: invalid initscripts value, only gentoo and sysv are supported" >&5
+echo "$as_me: error: invalid initscripts value, only gentoo and sysv are supported" >&2;}
+ { (exit 1); exit 1; }; };;
+ esac
+else
+ ensc_crypto_api=auto
+fi
+
+{ echo "$as_me:$LINENO: result: $ensc_crypto_api" >&5
+echo "${ECHO_T}$ensc_crypto_api" >&6; }
+
+
+
+case $ensc_crypto_api in
+(auto|beecrypt)
if test x"$ensc_cv_c99_c99compiler" = xyes; then
ensc_have_beecrypt=yes
fi
fi
-
- if test x"$ensc_have_beecrypt" != xyes; then
- { echo "$as_me:$LINENO: WARNING:
-****
-**** 'beecrypt' could not be found;
-**** this will disable the build of 'vhashify'
-****" >&5
-echo "$as_me: WARNING:
-****
-**** 'beecrypt' could not be found;
-**** this will disable the build of 'vhashify'
-****" >&2;}
- fi
else
ensc_have_beecrypt=no
-fi
+fi;;
+esac
+
+case $ensc_crypto_api in
+(auto) if test x"$ensc_have_beecrypt" = xyes; then
+ { echo "$as_me:$LINENO: using beecrypt as crypto api" >&5
+echo "$as_me: using beecrypt as crypto api" >&6;}
+ ensc_crypto_api=beecrypt
+ fi;;
+(beecrypt) if test x"$ensc_have_beecrypt" != xyes; then
+ { { echo "$as_me:$LINENO: error: beecrypt crypto api not found" >&5
+echo "$as_me: error: beecrypt crypto api not found" >&2;}
+ { (exit 1); exit 1; }; }
+ fi;;
+esac
if test x"$ensc_have_beecrypt" = xyes; then
ENSC_HAVE_BEECRYPT_TRUE=
+
+case $ensc_crypto_api in
+(nss)
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for NSS" >&5
+echo $ECHO_N "checking for NSS... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$NSS_CFLAGS"; then
+ pkg_cv_NSS_CFLAGS="$NSS_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"nss\"") >&5
+ ($PKG_CONFIG --exists --print-errors "nss") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nss" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$NSS_LIBS"; then
+ pkg_cv_NSS_LIBS="$NSS_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"nss\"") >&5
+ ($PKG_CONFIG --exists --print-errors "nss") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nss" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "nss"`
+ else
+ NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nss"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$NSS_PKG_ERRORS" >&5
+
+ { { echo "$as_me:$LINENO: error: Package requirements (nss) were not met:
+
+$NSS_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables NSS_CFLAGS
+and NSS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&5
+echo "$as_me: error: Package requirements (nss) were not met:
+
+$NSS_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables NSS_CFLAGS
+and NSS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+" >&2;}
+ { (exit 1); exit 1; }; }
+elif test $pkg_failed = untried; then
+ { { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables NSS_CFLAGS
+and NSS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
+See \`config.log' for more details." >&5
+echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables NSS_CFLAGS
+and NSS_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
+See \`config.log' for more details." >&2;}
+ { (exit 1); exit 1; }; }
+else
+ NSS_CFLAGS=$pkg_cv_NSS_CFLAGS
+ NSS_LIBS=$pkg_cv_NSS_LIBS
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+ :
+fi;;
+(auto)
+pkg_failed=no
+{ echo "$as_me:$LINENO: checking for NSS" >&5
+echo $ECHO_N "checking for NSS... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+ if test -n "$NSS_CFLAGS"; then
+ pkg_cv_NSS_CFLAGS="$NSS_CFLAGS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"nss\"") >&5
+ ($PKG_CONFIG --exists --print-errors "nss") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_NSS_CFLAGS=`$PKG_CONFIG --cflags "nss" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+if test -n "$PKG_CONFIG"; then
+ if test -n "$NSS_LIBS"; then
+ pkg_cv_NSS_LIBS="$NSS_LIBS"
+ else
+ if test -n "$PKG_CONFIG" && \
+ { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"nss\"") >&5
+ ($PKG_CONFIG --exists --print-errors "nss") 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; then
+ pkg_cv_NSS_LIBS=`$PKG_CONFIG --libs "nss" 2>/dev/null`
+else
+ pkg_failed=yes
+fi
+ fi
+else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ NSS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "nss"`
+ else
+ NSS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "nss"`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$NSS_PKG_ERRORS" >&5
+
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+elif test $pkg_failed = untried; then
+ { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+else
+ NSS_CFLAGS=$pkg_cv_NSS_CFLAGS
+ NSS_LIBS=$pkg_cv_NSS_LIBS
+ { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
+
+ { echo "$as_me:$LINENO: using NSS as crypto api" >&5
+echo "$as_me: using NSS as crypto api" >&6;}
+ ensc_crypto_api=nss
+fi;;
+esac
+
+
+case $ensc_crypto_api in
+(beecrypt)
+ ENSC_HAVE_CRYPTO=true
+ ENSC_CRYPTO_API=ENSC_CRYPTO_API_BEECRYPT
+ ENSC_CRYPTO_CFLAGS=
+ ENSC_CRYPTO_LIB=-lbeecrypt
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC=false
+ ;;
+
+(nss)
+ ENSC_HAVE_CRYPTO=true
+ ENSC_CRYPTO_API=ENSC_CRYPTO_API_NSS
+ ENSC_CRYPTO_CFLAGS=$NSS_CFLAGS
+ ENSC_CRYPTO_LIB=$NSS_LIBS
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC=false
+ ;;
+
+(none)
+ ENSC_HAVE_CRYPTO=false
+ ENSC_CRYPTO_API=ENSC_CRYPTO_API_NONE
+ ENSC_CRYPTO_CFLAGS=
+ ENSC_CRYPTO_LIB=
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC=false
+
+ { echo "$as_me:$LINENO: WARNING: No crypto api found/select. This will disable the build of \`vhashify'" >&5
+echo "$as_me: WARNING: No crypto api found/select. This will disable the build of \`vhashify'" >&2;}
+ ;;
+
+(*) { { echo "$as_me:$LINENO: error: internal error" >&5
+echo "$as_me: error: internal error" >&2;}
+ { (exit 1); exit 1; }; }
+esac
+
+ if $ENSC_HAVE_CRYPTO; then
+ ENSC_HAVE_CRYPTO_TRUE=
+ ENSC_HAVE_CRYPTO_FALSE='#'
+else
+ ENSC_HAVE_CRYPTO_TRUE='#'
+ ENSC_HAVE_CRYPTO_FALSE=
+fi
+
+ if $ENSC_CAN_CRYPTO_WITH_DIETLIBC; then
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE=
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE='#'
+else
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE='#'
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE=
+fi
+
+ENSC_CRYPTO_CFLAGS=$ENSC_CRYPTO_CFLAGS
+
+ENSC_CRYPTO_LIB=$ENSC_CRYPTO_LIB
+
+
+cat >>confdefs.h <<_ACEOF
+#define ENSC_CRYPTO_API $ENSC_CRYPTO_API
+_ACEOF
+
+
+
+
{ echo "$as_me:$LINENO: checking for host initscripts" >&5
echo $ECHO_N "checking for host initscripts... $ECHO_C" >&6; }
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${ENSC_HAVE_CRYPTO_TRUE}" && test -z "${ENSC_HAVE_CRYPTO_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_HAVE_CRYPTO\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_HAVE_CRYPTO\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE}" && test -z "${ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"ENSC_CAN_CRYPTO_WITH_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"ENSC_CAN_CRYPTO_WITH_DIETLIBC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${HAVE_GENTOO_INIT_TRUE}" && test -z "${HAVE_GENTOO_INIT_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"HAVE_GENTOO_INIT\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
ext2fs Source: $ensc_cv_test_ext2fs_header
syscall(2) invocation: $with_syscall
vserver(2) syscall#: $ensc_cv_value_syscall_vserver
+ crypto api: $ensc_crypto_api
Paths:
prefix: $prefix
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by util-vserver $as_me 0.30.214, which was
+This file was extended by util-vserver $as_me 0.30.215, which was
generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-util-vserver config.status 0.30.214
+util-vserver config.status 0.30.215
configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
LN_S!$LN_S$ac_delim
+PKG_CONFIG!$PKG_CONFIG$ac_delim
ENSC_HAVE_CXX_COMPILER_TRUE!$ENSC_HAVE_CXX_COMPILER_TRUE$ac_delim
ENSC_HAVE_CXX_COMPILER_FALSE!$ENSC_HAVE_CXX_COMPILER_FALSE$ac_delim
-ENSC_HAVE_C99_COMPILER_TRUE!$ENSC_HAVE_C99_COMPILER_TRUE$ac_delim
_ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
ac_delim='%!_!# '
for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF
+ENSC_HAVE_C99_COMPILER_TRUE!$ENSC_HAVE_C99_COMPILER_TRUE$ac_delim
ENSC_HAVE_C99_COMPILER_FALSE!$ENSC_HAVE_C99_COMPILER_FALSE$ac_delim
ENSC_PATHPROG_SED!$ENSC_PATHPROG_SED$ac_delim
CAT!$CAT$ac_delim
RESTORE!$RESTORE$ac_delim
RSYNC!$RSYNC$ac_delim
STRACE!$STRACE$ac_delim
+FSCK!$FSCK$ac_delim
DOXYGEN!$DOXYGEN$ac_delim
XSLTP!$XSLTP$ac_delim
XSLTPROC!$XSLTPROC$ac_delim
ENSC_HAVE_BEECRYPT_FALSE!$ENSC_HAVE_BEECRYPT_FALSE$ac_delim
ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE!$ENSC_CAN_BEECRYPT_WITH_DIETLIBC_TRUE$ac_delim
ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE!$ENSC_CAN_BEECRYPT_WITH_DIETLIBC_FALSE$ac_delim
+NSS_CFLAGS!$NSS_CFLAGS$ac_delim
+NSS_LIBS!$NSS_LIBS$ac_delim
+ENSC_HAVE_CRYPTO_TRUE!$ENSC_HAVE_CRYPTO_TRUE$ac_delim
+ENSC_HAVE_CRYPTO_FALSE!$ENSC_HAVE_CRYPTO_FALSE$ac_delim
+ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE!$ENSC_CAN_CRYPTO_WITH_DIETLIBC_TRUE$ac_delim
+ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE!$ENSC_CAN_CRYPTO_WITH_DIETLIBC_FALSE$ac_delim
+ENSC_CRYPTO_CFLAGS!$ENSC_CRYPTO_CFLAGS$ac_delim
+ENSC_CRYPTO_LIB!$ENSC_CRYPTO_LIB$ac_delim
HAVE_GENTOO_INIT_TRUE!$HAVE_GENTOO_INIT_TRUE$ac_delim
HAVE_GENTOO_INIT_FALSE!$HAVE_GENTOO_INIT_FALSE$ac_delim
HAVE_SYSV_INIT_TRUE!$HAVE_SYSV_INIT_TRUE$ac_delim
HAVE_SYSV_INIT_FALSE!$HAVE_SYSV_INIT_FALSE$ac_delim
+_ACEOF
+
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+ break
+ elif $ac_last_try; then
+ { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+ ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+ ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ cat >conf$$subs.sed <<_ACEOF
LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF
- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 89; then
+ if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 2; then
break
elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
fi
cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+cat >"\$tmp/subs-3.sed" <<\CEOF$ac_eof
/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
_ACEOF
sed '
s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" | sed -f "$tmp/subs-3.sed" >$tmp/out
test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
{ ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-dnl $Id: configure.ac 2604 2007-09-02 20:03:17Z dhozac $
+dnl $Id: configure.ac 2706 2008-03-17 08:59:37Z dhozac $
dnl Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
dnl
dnl
AC_PREREQ(2.57)
-AC_INIT(util-vserver, 0.30.214, vserver@list.linux-vserver.org)
+AC_INIT(util-vserver, 0.30.215, vserver@list.linux-vserver.org)
AC_CONFIG_SRCDIR([src/capchroot.c])
AC_CONFIG_HEADER([config.h])
AC_PROG_INSTALL
AC_PROG_LN_S
AM_PROG_CC_C_O
+PKG_PROG_PKG_CONFIG
ENSC_CXXCOMPILER
ENSC_C99COMPILER
ENSC_PATHPROG(RESTORE, restore, [restore])
ENSC_PATHPROG(RSYNC, rsync, [rsync])
ENSC_PATHPROG(STRACE, strace, [strace])
+ENSC_PATHPROG(FSCK, fsck)
ENSC_PATHPROG(DOXYGEN, doxygen, [:])
ENSC_PATHPROG(XSLTP, xsltp, [:])
fi
+dnl ########################
+dnl
+dnl {crypto stuff
+dnl
+AC_MSG_CHECKING([for used crypto API])
+AC_ARG_WITH(crypto-api,
+ AC_HELP_STRING([--with-crypto-api=API],
+ [select crypto api to be used; possible values are `none', `nss', `beecrypt', `auto' (default:auto)]),
+ [case $withval in
+ (none|nss|beecrypt|auto) ensc_crypto_api=$withval;;
+ (*) AC_MSG_ERROR([invalid initscripts value, only gentoo and sysv are supported]);;
+ esac],[ensc_crypto_api=auto])
+AC_MSG_RESULT($ensc_crypto_api)
+
+
+dnl Now, check for matching crypto api. When selected 'auto', the
+dnl first matching one wins
+
dnl ########################
dnl
dnl {check for beecrypt
dnl
+case $ensc_crypto_api in
+(auto|beecrypt)
if test x"$ensc_cv_c99_c99compiler" = xyes; then
ensc_have_beecrypt=yes
AC_CHECK_LIB(beecrypt, hashFunctionContextInit, [ : ],
[ ensc_have_beecrypt=no ])
fi
-
- if test x"$ensc_have_beecrypt" != xyes; then
- AC_MSG_WARN([
-****
-**** 'beecrypt' could not be found;
-**** this will disable the build of 'vhashify'
-****])
- fi
else
ensc_have_beecrypt=no
-fi
+fi;;
+esac
+
+case $ensc_crypto_api in
+(auto) if test x"$ensc_have_beecrypt" = xyes; then
+ AC_MSG_NOTICE([using beecrypt as crypto api])
+ ensc_crypto_api=beecrypt
+ fi;;
+(beecrypt) if test x"$ensc_have_beecrypt" != xyes; then
+ AC_MSG_ERROR([beecrypt crypto api not found])
+ fi;;
+esac
AM_CONDITIONAL(ENSC_HAVE_BEECRYPT, test x"$ensc_have_beecrypt" = xyes)
AM_CONDITIONAL(ENSC_CAN_BEECRYPT_WITH_DIETLIBC, false)
dnl ########################
+dnl ########################
+dnl
+dnl {check for nss
+dnl
+
+case $ensc_crypto_api in
+(nss) PKG_CHECK_MODULES(NSS, nss);;
+(auto) PKG_CHECK_MODULES(NSS, nss, [
+ AC_MSG_NOTICE([using NSS as crypto api])
+ ensc_crypto_api=nss],
+ AC_MSG_RESULT(no));;
+esac
+
+dnl
+dnl nss stuff ends here}
+dnl
+dnl ########################
+
+case $ensc_crypto_api in
+(beecrypt)
+ ENSC_HAVE_CRYPTO=true
+ ENSC_CRYPTO_API=ENSC_CRYPTO_API_BEECRYPT
+ ENSC_CRYPTO_CFLAGS=
+ ENSC_CRYPTO_LIB=-lbeecrypt
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC=false
+ ;;
+
+(nss)
+ ENSC_HAVE_CRYPTO=true
+ ENSC_CRYPTO_API=ENSC_CRYPTO_API_NSS
+ ENSC_CRYPTO_CFLAGS=$NSS_CFLAGS
+ ENSC_CRYPTO_LIB=$NSS_LIBS
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC=false
+ ;;
+
+(none)
+ ENSC_HAVE_CRYPTO=false
+ ENSC_CRYPTO_API=ENSC_CRYPTO_API_NONE
+ ENSC_CRYPTO_CFLAGS=
+ ENSC_CRYPTO_LIB=
+ ENSC_CAN_CRYPTO_WITH_DIETLIBC=false
+
+ AC_MSG_WARN([No crypto api found/select. This will disable the build of `vhashify'])
+ ;;
+
+(*) AC_MSG_ERROR([internal error])
+esac
+
+AM_CONDITIONAL(ENSC_HAVE_CRYPTO, $ENSC_HAVE_CRYPTO)
+AM_CONDITIONAL(ENSC_CAN_CRYPTO_WITH_DIETLIBC, $ENSC_CAN_CRYPTO_WITH_DIETLIBC)
+AC_SUBST(ENSC_CRYPTO_CFLAGS, $ENSC_CRYPTO_CFLAGS)
+AC_SUBST(ENSC_CRYPTO_LIB, $ENSC_CRYPTO_LIB)
+AC_DEFINE_UNQUOTED(ENSC_CRYPTO_API, $ENSC_CRYPTO_API, [Used crypto API])
+
+dnl
+dnl crypto stuff ends here}
+dnl
+dnl ########################
+
+
dnl Check what distro this is, use Gentoo initscripts if appropriate
AC_MSG_CHECKING([for host initscripts])
AC_ARG_WITH(initscripts, AC_HELP_STRING([--with-initscripts=TYPE], [force host initscripts; valid values are 'gentoo' and 'sysv' (default: guess)]), [
ext2fs Source: $ensc_cv_test_ext2fs_header
syscall(2) invocation: $with_syscall
vserver(2) syscall#: $ensc_cv_value_syscall_vserver
+ crypto api: $ensc_crypto_api
Paths:
prefix: $prefix
-## $Id: Makefile-files 2556 2007-07-07 15:24:07Z ensc $ -*- makefile -*-
+## $Id: Makefile-files 2609 2007-09-06 07:53:46Z ensc $ -*- makefile -*-
## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
contrib/yum-3.0.5-chroot.patch \
contrib/yum-3.2.0-chroot.patch \
contrib/yum-3.2.1-chroot.patch \
+ contrib/yum-3.2.4-chroot.patch \
contrib/make-manifest
contrib/manifest.dat: contrib/.manifest.dat.pathsubst.stamp
base @PKGLIBDIR@/secure-mount
base @PKGLIBDIR@/sigexec
base @PKGLIBDIR@/start-vservers
+base @PKGLIBDIR@/tunctl
build @PKGLIBDIR@/vapt-get-worker
build @PKGLIBDIR@/vyum-worker
build @PKGLIBDIR@/vpkg
build @SBINDIR@/vesync
core @SBINDIR@/vkill
core @SBINDIR@/vlimit
+core @SBINDIR@/vmemctrl
+core @SBINDIR@/vmount
core @SBINDIR@/vnamespace
base @SBINDIR@/vps
base @SBINDIR@/vpstree
core @SBINDIR@/vserver-info
base @SBINDIR@/vserver-stat
base @SBINDIR@/vsomething
+core @SBINDIR@/vspace
core @SBINDIR@/vtag
base @SBINDIR@/vtop
core @SBINDIR@/vuname
legacy @MANDIR@/*/distrib-info*
legacy @MANDIR@/*/vserver-copy*
legacy @MANDIR@/*/rebootmgr*
-legacy @MANDIR@/*/vps.*
+base @MANDIR@/*/vps.*
base @MANDIR@/*/vpstree.*
base @MANDIR@/*/vserver-stat*
base @MANDIR@/*/vserver.*
base @MANDIR@/*/vtop*
+build @MANDIR@/*/vserver-build*
legacy @CONFIG@ @INITRDDIR@/v_gated
legacy @CONFIG@ @INITRDDIR@/v_httpd
legacy @CONFIG@ @INITRDDIR@/v_named
--- /dev/null
+--- yum-3.2.4/yum/__init__.py.chroot
++++ yum-3.2.4/yum/__init__.py
+@@ -214,8 +214,7 @@ class YumBase(depsolve.Depsolve):
+ repo_config_age = self.conf.config_file_age
+
+ for reposdir in self.conf.reposdir:
+- if os.path.exists(self.conf.installroot+'/'+reposdir):
+- reposdir = self.conf.installroot + '/' + reposdir
++ reposdir = self.conf.getRootedPath(reposdir)
+
+ if os.path.isdir(reposdir):
+ for repofn in glob.glob('%s/*.repo' % reposdir):
+@@ -664,11 +663,9 @@ class YumBase(depsolve.Depsolve):
+ # if we're not root then we don't lock - just return nicely
+ if self.conf.uid != 0:
+ return
+-
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
+- lockfile = os.path.normpath(lockfile) # get rid of silly preceding extra /
+-
++
++ lockfile = self.conf.lockfile
++
+ mypid=str(os.getpid())
+ while not self._lock(lockfile, mypid, 0644):
+ fd = open(lockfile, 'r')
+@@ -700,9 +697,8 @@ class YumBase(depsolve.Depsolve):
+ if self.conf.uid != 0:
+ return
+
+- root = self.conf.installroot
+- lockfile = root + '/' + lockfile # lock in the chroot
+-
++ lockfile=self.conf.lockfile
++
+ self._unlock(lockfile)
+
+ def _lock(self, filename, contents='', mode=0777):
+--- yum-3.2.4/yum/config.py.chroot
++++ yum-3.2.4/yum/config.py
+@@ -469,6 +469,26 @@ class StartupConf(BaseConfig):
+ pluginpath = ListOption(['/usr/share/yum-plugins', '/usr/lib/yum-plugins'])
+ pluginconfpath = ListOption(['/etc/yum/pluginconf.d'])
+
++ def getRootedPath(self, path, enforce_default=False, defaults_to_host=False):
++ instroot = getattr(self, 'installroot', None)
++ if instroot==None:
++ return path
++
++ if path.startswith('hostfs://'): res = path[9:]
++ elif path.startswith('chrootfs://'): res = instroot + '/' + path[11:]
++ else:
++ tmp = instroot + '/' + path
++
++ if enforce_default:
++ if defaults_to_host: res = path
++ else: res = tmp
++ else:
++ if os.path.exists(tmp): res = tmp
++ elif defaults_to_host: res = path
++ else: res = tmp
++
++ return res
++
+ class YumConf(StartupConf):
+ '''
+ Configuration option definitions for yum.conf\'s [main] section.
+@@ -482,6 +502,7 @@ class YumConf(StartupConf):
+ persistdir = Option('/var/lib/yum')
+ keepcache = BoolOption(True)
+ logfile = Option('/var/log/yum.log')
++ lockfile = Option('/var/run/yum.pid')
+ reposdir = ListOption(['/etc/yum/repos.d', '/etc/yum.repos.d'])
+ syslog_ident = Option()
+ syslog_facility = Option('LOG_DAEMON')
+@@ -615,9 +636,9 @@ def readMainConfig(startupconf):
+ yumconf.populate(startupconf._parser, 'main')
+
+ # Apply the installroot to directory options
+- for option in ('cachedir', 'logfile', 'persistdir'):
++ for option in ('cachedir', 'logfile', 'persistdir', 'lockfile'):
+ path = getattr(yumconf, option)
+- setattr(yumconf, option, yumconf.installroot + path)
++ setattr(yumconf, option, yumconf.getRootedPath(path))
+
+ # Add in some extra attributes which aren't actually configuration values
+ yumconf.yumvar = yumvars
+--- yum-3.2.4/docs/yum.conf.5.chroot
++++ yum-3.2.4/docs/yum.conf.5
+@@ -23,8 +23,10 @@ The [main] section must exist for yum to
+ following options:
+
+ .IP \fBcachedir\fR
+-Directory where yum should store its cache and db files. The default is
+-`/var/cache/yum'.
++Directory where yum should store its cache and db files. The default
++is `/var/cache/yum'. Unless the prefixes `hostfs://' or `chrootfs://'
++are used, some magic will be applied to determine the real path in
++combination with `--installroot'.
+
+ .IP \fBpersistdir\fR
+ Directory where yum should store information that should persist over multiple
+@@ -44,6 +46,10 @@ documented in \fB[repository] options\fR
+ repositories defined in /etc/yum/yum.conf to form the complete set of
+ repositories that yum will use.
+
++Unless the prefixes `hostfs://' or `chrootfs://' are used, some magic
++will be applied to determine the real path in combination with
++`--installroot'.
++
+ .IP \fBdebuglevel\fR
+ Debug message output level. Practical range is 0\-10. Default is `2'.
+
+@@ -51,7 +57,10 @@ Debug message output level. Practical ra
+ Error message output level. Practical range is 0\-10. Default is `2'.
+
+ .IP \fBlogfile\fR
+-Full directory and file name for where yum should write its log file.
++Full directory and file name for where yum should write its log
++file. Unless the prefixes `hostfs://' or `chrootfs://' are used,
++some magic will be applied to determine the real path in combination
++with `--installroot'.
+
+ .IP \fBgpgcheck\fR
+ Either `1' or `0'. This tells yum whether or not it should perform a GPG
+--- yum-3.2.4/cli.py.chroot
++++ yum-3.2.4/cli.py
+@@ -1204,13 +1204,14 @@ class YumOptionParser(OptionParser):
+ def getRoot(self,opts):
+ # If the conf file is inside the installroot - use that.
+ # otherwise look for it in the normal root
++ if opts.conffile==None:
++ opts.conffile = '/etc/yum/yum.conf'
++ if opts.installroot:
++ if os.access(opts.installroot+opts.conffile, os.R_OK):
++ opts.conffile = opts.installroot+opts.conffile
++ elif os.access(opts.installroot+'/etc/yum.conf', os.R_OK):
++ opts.conffile = opts.installroot+'/etc/yum.conf'
+ if opts.installroot:
+- if os.access(opts.installroot+'/'+opts.conffile, os.R_OK):
+- opts.conffile = opts.installroot+'/'+opts.conffile
+- elif opts.conffile == '/etc/yum/yum.conf':
+- # check if /installroot/etc/yum.conf exists.
+- if os.access(opts.installroot+'/etc/yum.conf', os.R_OK):
+- opts.conffile = opts.installroot+'/etc/yum.conf'
+ root=opts.installroot
+ else:
+ root = '/'
+@@ -1231,7 +1232,7 @@ class YumOptionParser(OptionParser):
+ help="be tolerant of errors")
+ self.add_option("-C", dest="cacheonly", action="store_true",
+ help="run entirely from cache, don't update cache")
+- self.add_option("-c", dest="conffile", default='/etc/yum/yum.conf',
++ self.add_option("-c", dest="conffile", default=None,
+ help="config file location", metavar=' [config file]')
+ self.add_option("-R", dest="sleeptime", type='int', default=None,
+ help="maximum command wait time", metavar=' [minutes]')
exit 1;; \
esac; \
done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu distrib/Makefile'; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits distrib/Makefile'; \
cd $(top_srcdir) && \
- $(AUTOMAKE) --gnu distrib/Makefile
+ $(AUTOMAKE) --gnits distrib/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
rm -f "$(DESTDIR)$(distribdir)/$$f"; \
done
+installcheck-nobase_distribSCRIPTS: $(nobase_distrib_SCRIPTS)
+ bad=0; pid=$$$$; list="$(nobase_distrib_SCRIPTS)"; for p in $$list; do \
+ case ' $(AM_INSTALLCHECK_STD_OPTIONS_EXEMPT) ' in \
+ *" $$p "* | *" $(srcdir)/$$p "*) continue;; \
+ esac; \
+ f=`echo "$$p" | sed 's,^.*/,,;$(transform)'`; \
+ f=`echo "$$p" | sed 's|[^/]*$$||'`"$$f"; \
+ for opt in --help --version; do \
+ if "$(DESTDIR)$(distribdir)/$$f" $$opt >c$${pid}_.out \
+ 2>c$${pid}_.err </dev/null \
+ && test -n "`cat c$${pid}_.out`" \
+ && test -z "`cat c$${pid}_.err`"; then :; \
+ else echo "$$f does not support $$opt" 1>&2; bad=1; fi; \
+ done; \
+ done; rm -f c$${pid}_.???; exit $$bad
+
mostlyclean-libtool:
-rm -f *.lo
install-ps: install-ps-am
-installcheck-am:
+installcheck-am: installcheck-nobase_distribSCRIPTS
maintainer-clean: maintainer-clean-am
-rm -f Makefile
install-nobase_confdistribDATA install-nobase_distribDATA \
install-nobase_distribSCRIPTS install-pdf install-pdf-am \
install-ps install-ps-am install-strip installcheck \
- installcheck-am installdirs maintainer-clean \
- maintainer-clean-generic mostlyclean mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am \
- uninstall-defaultsDATA uninstall-nobase_confdistribDATA \
- uninstall-nobase_distribDATA uninstall-nobase_distribSCRIPTS
+ installcheck-am installcheck-nobase_distribSCRIPTS installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ uninstall uninstall-am uninstall-defaultsDATA \
+ uninstall-nobase_confdistribDATA uninstall-nobase_distribDATA \
+ uninstall-nobase_distribSCRIPTS
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT \
$_CHROOT_SH mkdir /usr/portage/distfiles 2>/dev/null || :
+# check if we have openrc
+have_openrc=0
+$_CHROOT_SH testfile /lib/rc/bin/is_older_than && have_openrc=1
+
+
# gentoo initstyle magic
initstyle=sysv
test -e "$cfgdir"/apps/init/style && initstyle=$(<"$cfgdir"/apps/init/style)
echo ">>> Installing special init-style magic ... "
$_CAT "$__DISTRIBDIR"/gentoo/init-vserver.sh | \
- $_CHROOT_SH truncate /lib/rcscripts/sh/init-vserver.sh
- $_CHROOT_SH chmod 0755 /lib/rcscripts/sh/init-vserver.sh
+ $_CHROOT_SH truncate /lib/rc/sh/init-vserver.sh
+ $_CHROOT_SH chmod 0755 /lib/rc/sh/init-vserver.sh
$_CAT "$__DISTRIBDIR"/gentoo/reboot.sh | \
$_CHROOT_SH truncate /etc/init.d/reboot.sh
echo "!!! Consult the Gentoo Handbook on how to chroot and install"
echo "!!! packages into the guest environment."
echo "!!!"
+else
+ # fix gettys in inittab
+ if $_CHROOT_SH testfile /etc/inittab; then
+ echo ">>> Fixing inittab ... "
+ chrootsed /etc/inittab \
+ -e 's/\(^[^#].*getty.*$\)/#\1/'
+ fi
fi
-
# unneeded runlevel scripts
-echo ">>> Fixing default runlevel scripts ... "
-$_CHROOT_SH rm /etc/runlevels/boot/{clock,consolefont,keymaps,modules,net.lo} 2>/dev/null || :
-$_CHROOT_SH rm /etc/runlevels/default/{hdparm,netmount} 2>/dev/null || :
-
+if test $have_openrc -ne 1; then
+ echo ">>> Fixing default runlevel scripts ... "
+ $_CHROOT_SH rm /etc/runlevels/boot/{clock,consolefont,keymaps,modules,net.lo} 2>/dev/null || :
+ $_CHROOT_SH rm /etc/runlevels/default/{hdparm,netmount} 2>/dev/null || :
+fi
# setting hostname
if test -r "$cfgdir"/uts/nodename && $_CHROOT_SH testfile /etc/conf.d/hostname; then
echo ">>> Setting hostname ... "
chrootsed /etc/conf.d/hostname \
- -e "s:HOSTNAME=\"\(.*\)\":HOSTNAME=\"$(< "$cfgdir"/uts/nodename)\":"
+ -e "s:\(HOSTNAME\)=\"\(.*\)\":\1=\"$(< "$cfgdir"/uts/nodename)\":i"
fi
-
# fix syslog-ng.conf
if $_CHROOT_SH testfile /etc/syslog-ng/syslog-ng.conf; then
echo ">>> Fixing syslog-ng.conf ... "
-e 's:\(.*console_all.*\):#\1:g'
fi
-
-# fix gettys in inittab
-if $_CHROOT_SH testfile /etc/inittab; then
- echo ">>> Fixing inittab ... "
- chrootsed /etc/inittab \
- -e 's/\(^[^#].*getty.*$\)/#\1/'
-fi
-
-
# fix fstab for checkfs/localmount in baselayout-2
# (does not affect any previous versions)
-echo ">>> Fixing fstab ... "
-echo "/dev/hdv1 / ufs defaults 0 0" | $_CHROOT_SH truncate /etc/fstab
-
+if test $have_openrc -ne 1; then
+ echo ">>> Fixing fstab ... "
+ echo "/dev/hdv1 / ufs defaults 0 0" | $_CHROOT_SH truncate /etc/fstab
+fi
# always satisfy net dependency in baselayout-2
# (does not affect any previous versions)
-echo ">>> Providing dummy net dependency ... "
-$_CAT "$__DISTRIBDIR"/gentoo/net.vserver | \
-$_CHROOT_SH truncate /etc/init.d/net.vserver
-$_CHROOT_SH chmod 0755 /etc/init.d/net.vserver
-$_CHROOT_SH link /etc/init.d/net.vserver /etc/runlevels/boot/net.vserver
+if test $have_openrc -ne 1; then
+ echo ">>> Providing dummy net dependency ... "
+ $_CAT "$__DISTRIBDIR"/gentoo/net.vserver | \
+ $_CHROOT_SH truncate /etc/init.d/net.vserver
+ $_CHROOT_SH chmod 0755 /etc/init.d/net.vserver
+ $_CHROOT_SH link /etc/init.d/net.vserver /etc/runlevels/boot/net.vserver
+fi
popd &>/dev/null
The configuration directory for the vserver vserver-name.
</div>
<ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/badness">badness</span>
+ <br />
+ <div class="description">
+Contains the bias to be applied to processes in this guest when the OOM-killer strikes.
+ </div>
+ </li>
<li id="bcapabilities">
<span class="list" title="/etc/vservers/$vserver-name/bcapabilities">bcapabilities</span>
<br />
</li>
</ul>
</li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vdevmap</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vdevmap</span>/<span class="sybmolic">x</span></span>
+ <br />
+ <div class="description">'x' is an arbitrary name, replace it with e.g. device names</div>
+ <ul>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vdevmap/x/create">create</span>
+ <br />
+ <div class="description">When this file exists, the device can be created (if the guest has <a class="optionref" href="#bcapabilities">CAP_MKNOD</a>)</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/vdevmap/x/device">device</span>
+ <br />
+ <div class="description">Contains the name of a device node</div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/apps/vdevmap/x/flags">flags</span>
+ <br />
+ <div class="description">This file will let you specify unimplemented flags manually</div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vdevmap/x/open">open</span>
+ <br />
+ <div class="description">When this file exists, the device can be opened</div>
+ </li>
+ <li id="guest-vdevmap-remap">
+ <span class="boolean" title="/etc/vservers/$vserver-name/apps/vdevmap/x/remap">remap</span>
+ <br />
+ <div class="description">
+When this file exists, <a class="optionref" href="#guest-vdevmap-target">target</a> will
+have to exist as well and opening the device will in fact open the target device
+ </div>
+ </li>
+ <li id="guest-vdevmap-target">
+ <span class="file" title="/etc/vservers/$vserver-name/apps/vdevmap/x/target">target</span>
+ <br />
+ <div class="description">Contains the device node of the target node to open instead of the device when <a class="optionref" href="#guest-vdevmap-remap">remap</a> is set</div>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
<li>
<span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">apps</span>/<span class="">vshelper</span></span>
<br />
<li>
<span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">cpuset</span></span>
<br />
+ <div class="description">
+Puts the guest in a cpuset. Required entries are name, cpus and mems.
+ </div>
<ul>
<li>
<span class="file" title="/etc/vservers/$vserver-name/cpuset/cpu_exclusive">cpu_exclusive</span>
<li>
<span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">dlimits</span></span>
<br />
+ <div class="description">
+Note that all entries are required for the disk limit to be applied.
+ </div>
<ul>
<li>
- <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">dlimits</span>/<span class="symbolic">dlimit</span></span>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">dlimits</span>/<span class="symbolic">x</span></span>
<br />
+ <div class="description">'x' is an arbitrary name, replace it with e.g. integers</div>
<ul>
<li>
- <span class="file" title="/etc/vservers/$vserver-name/dlimits/$dlimit/directory">directory</span>
+ <span class="file" title="/etc/vservers/$vserver-name/dlimits/$x/directory">directory</span>
<br />
<div class="description">The directory to which the limit should be applied</div>
</li>
<li>
- <span class="file" title="/etc/vservers/$vserver-name/dlimits/$dlimit/inodes_total">inodes_total</span>
+ <span class="file" title="/etc/vservers/$vserver-name/dlimits/$x/inodes_total">inodes_total</span>
<br />
<div class="description">The amount of inodes this vserver should be limited to</div>
</li>
<li>
- <span class="file" title="/etc/vservers/$vserver-name/dlimits/$dlimit/reserved">reserved</span>
+ <span class="file" title="/etc/vservers/$vserver-name/dlimits/$x/reserved">reserved</span>
<br />
<div class="description">How much space (percentage-wise) should be reserved for the root user</div>
</li>
<li>
- <span class="file" title="/etc/vservers/$vserver-name/dlimits/$dlimit/space_total">space_total</span>
+ <span class="file" title="/etc/vservers/$vserver-name/dlimits/$x/space_total">space_total</span>
<br />
<div class="description">The amount of space this vserver should be limited to (measured in blocks of 1024 bytes)</div>
</li>
<br />
<div class="description">When this file exists, this interface will be ignored.</div>
</li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/gid">gid</span>
+ <br />
+ <div class="description">
+Sets the group ownership of tun/tap interfaces. Requires a group id,
+not a group name.
+ </div>
+ </li>
<li>
<span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/ip">ip</span>
<br />
<div class="description">The IP address which will be assigned to this interface.</div>
</li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/linktype">linktype</span>
+ <br />
+ <div class="description">
+Sets the link type of tun/tap interfaces.
+ </div>
+ </li>
<li>
<span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/mask">mask</span>
<br />
<code class="tool">ifconfig</code> but by <code class="command">ip addr ls</code> only. Such
a labeled interface is known as an "alias" also (e.g. 'eth0:foo').
</div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/nocsum">nocsum</span>
+ <br />
+ <div class="description">
+If a tun or tap interface is created, the presence of this file will
+disable checksumming on it.
+ </div>
</li>
<li>
<span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/nodev">nodev</span>
<br />
<div class="description">The scope of the network interface.</div>
</li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/shared">shared</span>
+ <br />
+ <div class="description">
+When this file exists, the tun/tap interface created will not be
+owned by this particular guest.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/tap">tap</span>
+ <br />
+ <div class="description">
+When this file exists, a tap interface will be created when the guest
+starts, and removed when the guest stops.
+ </div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/tun">tun</span>
+ <br />
+ <div class="description">
+When this file exists, a tun interface will be created when the guest
+starts, and removed when the guest stops.
+ </div>
+ </li>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/interfaces/$iface/uid">uid</span>
+ <br />
+ <div class="description">
+Sets the ownership of tun/tap interfaces. Requires a user id, not a
+username.
+ </div>
+ </li>
<li>
<span class="boolean" title="/etc/vservers/$vserver-name/interfaces/$iface/vlandev">vlandev</span>
<br />
</li>
</ul>
</li>
+ <li>
+ <span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">spaces</span></span>
+ <br />
+ <ul>
+ <li>
+ <span class="file" title="/etc/vservers/$vserver-name/spaces/mask">mask</span>
+ <br />
+ <div class="description">Contains a mask of spaces to clone/enter</div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/spaces/net">net</span>
+ <br />
+ <div class="description">Enable network virtualization for this guest</div>
+ </li>
+ <li>
+ <span class="boolean" title="/etc/vservers/$vserver-name/spaces/pid">pid</span>
+ <br />
+ <div class="description">Enables pid virtualization for this guest</div>
+ </li>
+ </ul>
+ </li>
<li>
<span class="directory">/etc/vservers/<span class="symbolic">vserver-name</span>/<span class="">sysctl</span></span>
<br />
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE database SYSTEM "configuration.dtd" []>
-<!-- $Id: configuration.xml 2599 2007-08-26 21:30:50Z dhozac $ -->
+<!-- $Id: configuration.xml 2692 2008-03-01 00:22:34Z dhozac $ -->
<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="file:configuration.xsd">
<optionref>fstab</optionref> also.
</description>
</data>
+ <scalar name="badness">
+ <description>
+Contains the bias to be applied to processes in this guest when the OOM-killer strikes.
+ </description>
+ </scalar>
<collection name="apps">
<collection name="init">
</description>
</hash>
</collection>
-
+
+ <collection name="vdevmap">
+ <collection name="x" type="sybmolic">
+ <description>'x' is an arbitrary name, replace it with e.g. device names</description>
+ <boolean name="open">
+ <description>When this file exists, the device can be opened</description>
+ </boolean>
+ <boolean name="create">
+ <description>When this file exists, the device can be created (if the guest has <optionref ref="bcapabilities">CAP_MKNOD</optionref>)</description>
+ </boolean>
+ <boolean id="guest-vdevmap-remap" name="remap">
+ <description>
+When this file exists, <optionref ref="guest-vdevmap-target">target</optionref> will
+have to exist as well and opening the device will in fact open the target device
+ </description>
+ </boolean>
+ <scalar name="flags">
+ <description>This file will let you specify unimplemented flags manually</description>
+ </scalar>
+ <scalar name="device">
+ <description>Contains the name of a device node</description>
+ </scalar>
+ <scalar id="guest-vdevmap-target" name="target">
+ <description>Contains the device node of the target node to open instead of the device when <optionref ref="guest-vdevmap-remap">remap</optionref> is set</description>
+ </scalar>
+ </collection>
+ </collection>
+
<collection name="vshelper">
<scalar name="sync-timeout">
<default>30</default>
interface will be executed.
</description>
</boolean>
+ <boolean name="tun" since="0.30.215">
+ <description>
+When this file exists, a tun interface will be created when the guest
+starts, and removed when the guest stops.
+ </description>
+ </boolean>
+ <boolean name="tap" since="0.30.215">
+ <description>
+When this file exists, a tap interface will be created when the guest
+starts, and removed when the guest stops.
+ </description>
+ </boolean>
+ <boolean name="nocsum" since="0.30.215">
+ <description>
+If a tun or tap interface is created, the presence of this file will
+disable checksumming on it.
+ </description>
+ </boolean>
+ <boolean name="shared" since="0.30.215">
+ <description>
+When this file exists, the tun/tap interface created will not be
+owned by this particular guest.
+ </description>
+ </boolean>
+ <scalar name="uid" since="0.30.215">
+ <description>
+Sets the ownership of tun/tap interfaces. Requires a user id, not a
+username.
+ </description>
+ </scalar>
+ <scalar name="gid" since="0.30.215">
+ <description>
+Sets the group ownership of tun/tap interfaces. Requires a group id,
+not a group name.
+ </description>
+ </scalar>
+ <scalar name="linktype" since="0.30.215">
+ <description>
+Sets the link type of tun/tap interfaces.
+ </description>
+ </scalar>
</collection>
</collection>
</collection>
<collection name="dlimits" since="0.30.210">
- <collection name="dlimit" type="symbolic">
+ <description>
+Note that all entries are required for the disk limit to be applied.
+ </description>
+ <collection name="x" type="symbolic">
+ <description>'x' is an arbitrary name, replace it with e.g. integers</description>
<scalar name="directory">
<description>The directory to which the limit should be applied</description>
</scalar>
</collection>
<collection name="cpuset" since="0.30.211">
+ <description>
+Puts the guest in a cpuset. Required entries are name, cpus and mems.
+ </description>
<scalar name="name">
<description>The name of the cpuset for this vserver</description>
</scalar>
</scalar>
</collection>
</collection>
+
+ <collection name="spaces" since="0.30.215">
+ <boolean name="pid">
+ <description>Enables pid virtualization for this guest</description>
+ </boolean>
+ <boolean name="net">
+ <description>Enable network virtualization for this guest</description>
+ </boolean>
+ <scalar name="mask">
+ <description>Contains a mask of spaces to clone/enter</description>
+ </scalar>
+ </collection>
</collection>
</database>
-// $Id: wrappers-ioctl.hc 814 2004-02-06 14:47:18Z ensc $ --*- c -*--
+// $Id: wrappers-ioctl.hc 2687 2008-02-28 23:28:31Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
FatalErrnoError(res<0, "ioctl()");
}
+#define EioctlD(fd, request, p) \
+ do { \
+ int res = ioctl(fd, request, p); \
+ FatalErrnoError(res<0, "ioctl(" #request ")"); \
+ } while (0)
-## $Id$ -*- makefile -*-
+## $Id: Makefile-files 2674 2008-01-27 07:55:13Z dhozac $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
#! /bin/bash
-# $Id$
+# $Id: bash-wrapper 2674 2008-01-27 07:55:13Z dhozac $
# Copyright (C) 2007 Daniel Hokka Zakrisson
#
eend $?
ebegin "Loading default device map"
- $__PKGLIBDIR/bash-wrapper 'loadDeviceMap 0 "$__CONFDIR/.defaults/apps/vdevmap"'
+ $__PKGLIBDIR/bash-wrapper 'handleDeviceMap --set 0 "$__CONFDIR/.defaults/apps/vdevmap"'
eend $?
}
/* bcaps commands */
#define VCMD_get_bcaps VC_CMD(FLAGS, 9, 0)
-#define VCMD_set_bcaps VC_CMD(FLAGS,10, 0)
+#define VCMD_set_bcaps VC_CMD(FLAGS, 10, 0)
struct vcmd_bcaps {
uint64_t bcaps;
uint64_t bmask;
};
+
+
+/* OOM badness */
+
+#define VCMD_get_badness VC_CMD(MEMCTRL, 5, 0)
+#define VCMD_set_badness VC_CMD(MEMCTRL, 6, 0)
+
+struct vcmd_badness_v0 {
+ int64_t bias;
+};
+
#endif /* _VX_CONTEXT_CMD_H */
/* device vserver commands */
#define VCMD_set_mapping VC_CMD(DEVICE, 1, 0)
+#define VCMD_unset_mapping VC_CMD(DEVICE, 2, 0)
struct vcmd_set_mapping_v0 {
const char *device;
#define VC_CAT_SCHED 14
+#define VC_CAT_MEMCTRL 20
+
#define VC_CAT_VNET 25
#define VC_CAT_NETALT 26
#define VC_CAT_NETMIG 27
-## $Id: Makefile-files 2589 2007-08-16 03:06:50Z dhozac $ -*- makefile -*-
+## $Id: Makefile-files 2619 2007-10-13 12:13:30Z dhozac $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
lib/syscall_ctxmigrate-v21.hc \
lib/syscall_setmapping.c \
lib/syscall_setmapping-v21.hc \
+ lib/syscall_unsetmapping.c \
+ lib/syscall_unsetmapping-v21.hc \
lib/syscall_schedinfo.c \
lib/syscall_schedinfo-v21.hc \
lib/syscall_getccaps-v21.hc \
lib/syscall_tagmigrate.c \
lib/syscall_tagcreate.c \
lib/syscall_tasktag-v23.hc \
- lib/syscall_tasktag.c
+ lib/syscall_tasktag.c \
+ lib/syscall_getbadness.c \
+ lib/syscall_getbadness-v23.hc \
+ lib/syscall_setbadness.c \
+ lib/syscall_setbadness-v23.hc
if ENSC_HAVE_C99_COMPILER
lib_v13_SRCS += lib/syscall_adddlimit-v13.hc \
-// $Id: ccaps-v13.c 2393 2006-11-23 18:30:29Z dhozac $ --*- c -*--
+// $Id: ccaps-v13.c 2643 2007-12-19 02:17:10Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
//
DECL("quota_ctl", VC_VXC_QUOTA_CTL),
DECL("admin_mapper", VC_VXC_ADMIN_MAPPER),
DECL("admin_cloop", VC_VXC_ADMIN_CLOOP),
+ DECL("kthread", VC_VXC_KTHREAD),
// some deprecated values...
DECL("mount", VC_VXC_SECURE_MOUNT),
DECL("remount", VC_VXC_SECURE_REMOUNT),
-// $Id: ncaps-net.c 2585 2007-08-12 00:13:31Z dhozac $ --*- c -*--
+// $Id: ncaps-net.c 2705 2008-03-17 08:55:11Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
//
#define DECL(STR, VAL) { STR, sizeof(STR)-1, VAL }
static struct Mapping_uint64 const VALUES[] = {
- DECL("raw_icmp", VC_NXC_RAW_ICMP),
+ DECL("tun_create", VC_NXC_TUN_CREATE),
+ DECL("raw_icmp", VC_NXC_RAW_ICMP),
};
inline static char const *
-// $Id: nflags-net.c 2597 2007-08-26 17:48:26Z dhozac $ --*- c -*--
+// $Id: nflags-net.c 2705 2008-03-17 08:55:11Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <ensc@delenn.intern.sigma-chemnitz.de>
//
DECL("single_ip", VC_NXF_SINGLE_IP),
DECL("lback_remap", VC_NXF_LBACK_REMAP),
DECL("remap_lback", VC_NXF_LBACK_REMAP),
+ DECL("lback_allow", VC_NXF_LBACK_ALLOW),
DECL("hide_netif", VC_NXF_HIDE_NETIF),
DECL("hide_lback", VC_NXF_HIDE_LBACK),
-// $Id$ --*- c -*--
+// $Id: syscall_ctxcreate-v21.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_fgetiattr-v22.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_fgetiattr.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_fsetiattr-v22.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_fsetiattr.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
--- /dev/null
+// $Id: syscall_getbadness-v23.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
+
+// Copyright (C) 2007 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_get_badness_v23(xid_t xid, int64_t *badness)
+{
+ struct vcmd_badness_v0 data;
+ int ret;
+ ret = vserver(VCMD_get_badness, xid, &data);
+ if (ret)
+ return ret;
+ *badness = data.bias;
+ return 0;
+}
--- /dev/null
+// $Id: syscall_getbadness.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
+
+// Copyright (C) 2007 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "virtual.h"
+#include "vserver-internal.h"
+
+#if defined(VC_ENABLE_API_V23)
+# include "syscall_getbadness-v23.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V23)
+
+int
+vc_get_badness(xid_t xid, int64_t *badness)
+{
+ CALL_VC(CALL_VC_V23(vc_get_badness, xid, badness));
+}
+
+#endif
-// $Id$ --*- c -*--
+// $Id: syscall_getccaps-v21.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
-// $Id$ --*- c -*--
+// $Id: syscall_getsched-v21.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c -*--
+// $Id: syscall_getsched.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c -*--
+// $Id: syscall_netadd-netv2.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c -*--
+// $Id: syscall_netremove-netv2.hc 2700 2008-03-10 19:59:18Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
k_ipv4.type = VC_NXA_TYPE_ANY;
k_ipv6.type = VC_NXA_TYPE_ANY;
- ret = vserver(VCMD_net_remove_ipv4, NID_USER2KERNEL(nid), &k_ipv4);
- if (ret == -1)
+ ret = vserver(VCMD_net_remove_ipv6, NID_USER2KERNEL(nid), &k_ipv6);
+ if (ret == -1 && errno != ENOSYS)
return -1;
- return vserver(VCMD_net_remove_ipv6, NID_USER2KERNEL(nid), &k_ipv6);
+ return vserver(VCMD_net_remove_ipv4, NID_USER2KERNEL(nid), &k_ipv4);
}
switch (info->vna_type & (VC_NXA_TYPE_IPV4 | VC_NXA_TYPE_IPV6)) {
case VC_NXA_TYPE_IPV4: {
--- /dev/null
+// $Id: syscall_setbadness-v23.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
+
+// Copyright (C) 2007 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_set_badness_v23(xid_t xid, int64_t badness)
+{
+ struct vcmd_badness_v0 data = {
+ .bias = badness,
+ };
+ return vserver(VCMD_set_badness, xid, &data);
+}
--- /dev/null
+// $Id: syscall_setbadness.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
+
+// Copyright (C) 2007 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "virtual.h"
+#include "vserver-internal.h"
+
+#if defined(VC_ENABLE_API_V23)
+# include "syscall_setbadness-v23.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V23)
+
+int
+vc_set_badness(xid_t xid, int64_t badness)
+{
+ CALL_VC(CALL_VC_V23(vc_set_badness, xid, badness));
+}
+
+#endif
-// $Id$ --*- c -*--
+// $Id: syscall_setsched-v22.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_tagcreate.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_tagmigrate-v23.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
static inline ALWAYSINLINE int
vc_tag_migrate_tag(tag_t tag)
{
- return vserver(VCMD_tag_migrate, TAG_USER2KERNEL(tag), NULL);
+ tag_t res = vserver(VCMD_tag_migrate, TAG_USER2KERNEL(tag), NULL);
+ return TAG_KERNEL2USER(res);
}
-// $Id$ --*- c++ -*--
+// $Id: syscall_tagmigrate.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_tasktag-v23.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
-// $Id$ --*- c++ -*--
+// $Id: syscall_tasktag.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c++ -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
--- /dev/null
+// $Id: syscall_unsetmapping-v21.hc 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// Copyright (C) 2006 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+static inline ALWAYSINLINE int
+vc_unset_mapping_v21(xid_t xid, const char *device, const char *target, uint32_t flags)
+{
+ struct vcmd_set_mapping_v0 data = {
+ .device = device,
+ .target = target,
+ .flags = flags
+ };
+ return vserver(VCMD_unset_mapping, xid, &data);
+}
--- /dev/null
+// $Id: syscall_unsetmapping.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// Copyright (C) 2006 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "vserver-internal.h"
+#include "virtual.h"
+
+#if defined(VC_ENABLE_API_V21)
+# include "syscall_unsetmapping-v21.hc"
+#endif
+
+#if defined(VC_ENABLE_API_V21)
+int
+vc_unset_mapping(xid_t xid, const char *device, const char *target, uint32_t flags)
+{
+ CALL_VC(CALL_VC_V21(vc_unset_mapping, xid, device, target, flags));
+}
+#endif
-// $Id$ --*- c -*--
+// $Id: tagopt2tag.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// Copyright (C) 2007 Daniel Hokka Zakrisson
-// $Id: val2text.hc 1544 2004-05-08 01:27:48Z ensc $ --*- c -*--
+// $Id: val2text.hc 2651 2008-01-03 15:33:01Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
\
if (idx==-1) { \
size_t i; \
- for (i=0; i<sizeof(*val)*8 && (*val&(1<<i))==0; ++i) {} \
- del_val = (1<<i); \
+ for (i=0; i<sizeof(*val)*8 && (*val&((TYPE)1<<i))==0; ++i) {} \
+ del_val = ((TYPE)1<<i); \
idx = searchValue(del_val, map, map_len); \
} \
- *val &= ~del_val; \
+ if (idx!=-1) \
+ *val &= ~del_val; \
return idx; \
}
-/* $Id: vserver.h 2589 2007-08-16 03:06:50Z dhozac $
+/* $Id: vserver.h 2705 2008-03-17 08:55:11Z dhozac $
* Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
*
#define VC_VXC_ADMIN_MAPPER 0x00200000ull
#define VC_VXC_ADMIN_CLOOP 0x00400000ull
+#define VC_VXC_KTHREAD 0x01000000ull
+
// the scheduler flags
#define VC_VXSM_FILL_RATE 0x0001
#define VC_NXF_SINGLE_IP 0x00000100ull
#define VC_NXF_LBACK_REMAP 0x00000200ull
+#define VC_NXF_LBACK_ALLOW 0x00000400ull
#define VC_NXF_HIDE_NETIF 0x02000000ull
#define VC_NXF_HIDE_LBACK 0x04000000ull
// the network capabilities
+#define VC_NXC_TUN_CREATE 0x00000001ull
+
#define VC_NXC_RAW_ICMP 0x00000100ull
#ifndef CLONE_NEWIPC
# define CLONE_NEWIPC 0x08000000
#endif
-
+#ifndef CLONE_NEWUSER
+# define CLONE_NEWUSER 0x10000000
+#endif
+#ifndef CLONE_NEWPID
+# define CLONE_NEWPID 0x20000000
+#endif
+#ifndef CLONE_NEWNET
+# define CLONE_NEWNET 0x40000000
+#endif
#define VC_BAD_PERSONALITY ((uint_least32_t)(-1))
uint16_t vna_flags;
uint16_t vna_prefix;
uint16_t vna_parent;
- union {
- struct {
- struct in_addr ip;
- struct in_addr mask;
- } ipv4;
- struct {
- struct in6_addr ip;
- struct in6_addr mask;
- } ipv6;
- } u;
-#define vna_v4_ip u.ipv4.ip
-#define vna_v4_mask u.ipv4.mask
-#define vna_v6_ip u.ipv6.ip
-#define vna_v6_mask u.ipv6.mask
+ struct {
+ union {
+ struct in_addr v4;
+ struct in6_addr v6;
+ } ip;
+ union {
+ struct in_addr v4;
+ struct in6_addr v6;
+ } ip2;
+ union {
+ struct in_addr v4;
+ struct in6_addr v6;
+ } mask;
+ } s;
+#define vna_v4_ip s.ip.v4
+#define vna_v4_ip2 s.ip2.v4
+#define vna_v4_mask s.mask.v4
+#define vna_v6_ip s.ip.v6
+#define vna_v6_ip2 s.ip2.v6
+#define vna_v6_mask s.mask.v6
};
struct vc_net_flags {
/* misc. syscalls */
int vc_set_mapping(xid_t xid, const char *device, const char *target, uint32_t flags);
+ int vc_unset_mapping(xid_t xid, const char *device, const char *target, uint32_t flags);
+
+ int vc_get_badness(xid_t xid, int64_t *badness);
+ int vc_set_badness(xid_t xid, int64_t badness);
/** \brief Information about parsing errors
-## $Id: Makefile-files 2579 2007-08-08 20:47:12Z dhozac $ -*- makefile -*-
+## $Id: Makefile-files 2685 2008-02-21 23:22:23Z ensc $ -*- makefile -*-
## Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
noinst_HEADERS += \
lib_internal/coreassert.h \
+ lib_internal/crypto-wrapper.h \
+ lib_internal/crypto-wrapper-nss.h \
+ lib_internal/crypto-wrapper-beecrypt.h \
lib_internal/errinfo.h \
lib_internal/jail.h \
lib_internal/matchlist.h \
--- /dev/null
+/* --*- c -*--
+ * Copyright (C) 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 and/or 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_BEECRYPT_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_BEECRYPT_H
+
+#include <beecrypt/beecrypt.h>
+#include <ctype.h>
+
+typedef hashFunction ensc_hash_method;
+typedef hashFunctionContext ensc_hash_context;
+
+inline static void
+ensc_crypto_init(void)
+{
+}
+
+inline static ensc_hash_method const *
+ensc_crypto_hash_get_default(void)
+{
+ return hashFunctionDefault();
+}
+
+inline static ensc_hash_method const *
+ensc_crypto_hash_find(char const *id_c)
+{
+ char *id = strdupa(id_c);
+ char *ptr = id;
+ char const *name;
+
+ while (*ptr) {
+ *ptr = tolower(*ptr);
+ ++ptr;
+ }
+
+ ptr = id;
+ while ((ptr=strchr(ptr, '-'))!=NULL)
+ memmove(ptr, ptr+1, strlen(ptr));
+
+ if (strcmp(id, "md2")==0)
+ name = "MD2";
+ else if (strcmp(id, "md5")==0)
+ name = "MD5";
+ else if (strcmp(id, "sha1")==0)
+ name = "SHA-1";
+ else if (strcasecmp(id, "sha256")==0)
+ name = "SHA-256";
+#if 0
+ /* sha-384 in beecrypt seems to be broken; digestsize is reported as
+ * 64 there although 48 is the correct value */
+ else if (strcasecmp(id, "sha384")==0)
+ name = "SHA-384";
+#endif
+ else if (strcasecmp(id, "sha512")==0)
+ name = "SHA-512";
+ else
+ name = NULL;
+
+ return hashFunctionFind(name);
+}
+
+inline static char const *
+ensc_crypto_hash_get_name(ensc_hash_method const *m)
+{
+ return m->name;
+}
+
+inline static size_t
+ensc_crypto_hash_get_digestsize(ensc_hash_method const *m)
+{
+ return m->digestsize;
+}
+
+
+
+inline static size_t
+ensc_crypto_hashctx_get_digestsize(ensc_hash_context const *ctx)
+{
+ return ensc_crypto_hash_get_digestsize(ctx->algo);
+}
+
+inline static int
+ensc_crypto_hashctx_get_digest(ensc_hash_context *ctx, void *result,
+ size_t *res_len, size_t UNUSED max_res_len)
+{
+ int rc = hashFunctionContextDigest(ctx, result);
+ if (res_len)
+ *res_len = ctx->algo->digestsize;
+
+ return rc;
+}
+
+inline static int
+ensc_crypto_hashctx_update(ensc_hash_context *ctx, void const *src, size_t len)
+{
+ return hashFunctionContextUpdate(ctx, src, len);
+}
+
+inline static int
+ensc_crypto_hashctx_init(ensc_hash_context *ctx, ensc_hash_method const *m)
+{
+ return hashFunctionContextInit(ctx, m);
+}
+
+inline static int
+ensc_crypto_hashctx_reset(ensc_hash_context *ctx)
+{
+ return hashFunctionContextReset(ctx);
+}
+
+inline static void
+ensc_crypto_hashctx_free(ensc_hash_context *ctx)
+{
+ hashFunctionContextFree(ctx);
+}
+
+#endif /* H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_BEECRYPT_H */
--- /dev/null
+/* --*- c -*--
+ * Copyright (C) 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_NSS_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_NSS_H
+
+#include <sechash.h>
+#include <secoid.h>
+#include <nss.h>
+
+#include "util-cast.h"
+
+typedef struct SECHashObjectStr ensc_hash_method;
+typedef struct HASHContextStr *ensc_hash_context;
+
+inline static int
+ensc_crypto_init(void)
+{
+ NSS_NoDB_Init(NULL);
+ return 0;
+}
+
+inline static ensc_hash_method const *
+ensc_crypto_hash_get_default(void)
+{
+ return HASH_GetHashObject(SEC_OID_SHA1);
+}
+
+inline static ensc_hash_method const *
+ensc_crypto_hash_find(char const *id_c)
+{
+ SECOidTag oid;
+
+#if 1
+ char *id = strdupa(id_c);
+ char *ptr = id;
+
+ while (*ptr) {
+ *ptr = tolower(*ptr);
+ ++ptr;
+ }
+
+ ptr = id;
+ while ((ptr=strchr(ptr, '-'))!=NULL)
+ memmove(ptr, ptr+1, strlen(ptr));
+
+ if (strcmp(id, "md2")==0)
+ oid = SEC_OID_MD2;
+ else if (strcmp(id, "md5")==0)
+ oid = SEC_OID_MD5;
+ else if (strcmp(id, "sha1")==0)
+ oid = SEC_OID_SHA1;
+ else if (strcasecmp(id, "sha256")==0)
+ oid = SEC_OID_SHA256;
+ else if (strcasecmp(id, "sha384")==0)
+ oid = SEC_OID_SHA384;
+ else if (strcasecmp(id, "sha512")==0)
+ oid = SEC_OID_SHA512;
+ else
+ oid = SEC_OID_UNKNOWN;
+
+#else
+ struct SECItemStr const item = {
+ .type = ???,
+ .data = const_cast(unsigned char *)(static_cast(unsigned char const *)(id)),
+ .len = strlen(id)
+ };
+ SECOidTag oid;
+
+ oid = SECOID_FindOIDTag(&item);
+#endif
+
+ return HASH_GetHashObjectByOidTag(oid);
+}
+
+inline static char const *
+ensc_crypto_hash_get_name(ensc_hash_method const *m)
+{
+ char const * const NAMES[] = {
+ [HASH_AlgNULL] = "null",
+ [HASH_AlgMD2] = "md2",
+ [HASH_AlgMD5] = "md5",
+ [HASH_AlgSHA1] = "sha1",
+ [HASH_AlgSHA256] = "sha256",
+ [HASH_AlgSHA384] = "sha384",
+ [HASH_AlgSHA512] = "sha512",
+ };
+ size_t idx = static_cast(size_t)(m->type);
+
+ if (idx >= sizeof(NAMES)/sizeof(NAMES[0]))
+ return NULL;
+
+ return NAMES[idx];
+ /* TODO: use SECOID_FindOIDTagDescription()? */
+}
+
+inline static size_t
+ensc_crypto_hash_get_digestsize(ensc_hash_method const *m)
+{
+ size_t const SIZES[] = {
+ [HASH_AlgMD2] = MD2_LENGTH,
+ [HASH_AlgMD5] = MD5_LENGTH,
+ [HASH_AlgSHA1] = SHA1_LENGTH,
+ [HASH_AlgSHA256] = SHA256_LENGTH,
+ [HASH_AlgSHA384] = SHA384_LENGTH,
+ [HASH_AlgSHA512] = SHA512_LENGTH,
+ };
+ size_t idx = static_cast(size_t)(m->type);
+
+ if (idx >= sizeof(SIZES)/sizeof(SIZES[0]))
+ return 0;
+
+ return SIZES[idx];
+}
+
+inline static size_t
+ensc_crypto_hashctx_get_digestsize(ensc_hash_context const *ctx)
+{
+ return ensc_crypto_hash_get_digestsize((*ctx)->hashobj);
+}
+
+inline static int
+ensc_crypto_hashctx_get_digest(ensc_hash_context *ctx, void *result,
+ size_t UNUSED *res_len_a, size_t UNUSED max_res_len)
+{
+ unsigned int res_len;
+
+ HASH_End(*ctx, result, &res_len, max_res_len);
+ if (res_len_a)
+ *res_len_a = res_len;
+
+ return 0;
+}
+
+inline static int
+ensc_crypto_hashctx_init(ensc_hash_context *ctx, ensc_hash_method const *m)
+{
+ *ctx = HASH_Create(m->type);
+ return *ctx==NULL ? -1 : 0;
+}
+
+inline static int
+ensc_crypto_hashctx_update(ensc_hash_context *ctx, void const *src, size_t len)
+{
+ HASH_Update(*ctx, src, len);
+ return 0;
+}
+
+inline static int
+ensc_crypto_hashctx_reset(ensc_hash_context *ctx)
+{
+ HASH_Begin(*ctx);
+ return 0;
+}
+
+inline static void
+ensc_crypto_hashctx_free(ensc_hash_context *ctx)
+{
+ HASH_Destroy(*ctx);
+ *ctx = NULL;
+}
+
+#endif /* H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_NSS_H */
--- /dev/null
+/* --*- c -*--
+ * Copyright (C) 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 and/or 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_H
+#define H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_H
+
+#define ENSC_CRYPTO_API_NSS 1
+#define ENSC_CRYPTO_API_BEECRYPT 2
+
+#if ENSC_CRYPTO_API == ENSC_CRYPTO_API_BEECRYPT
+#include "crypto-wrapper-beecrypt.h"
+#elif ENSC_CRYPTO_API == ENSC_CRYPTO_API_NSS
+#include "crypto-wrapper-nss.h"
+#else
+#error undefined crypto API
+#endif
+
+#endif /* H_UTIL_VSERVER_LIB_INTERNAL_CRYPTO_WRAPPER_H */
-// $Id: matchlist-appendfiles.c 1423 2004-04-06 08:43:20Z ensc $ --*- c -*--
+// $Id: matchlist-appendfiles.c 2608 2007-09-03 07:42:17Z ensc $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-//
+//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
-//
+//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
void
MatchList_appendFiles(struct MatchList *list, size_t idx,
- char **files, size_t count,
+ char const **files, size_t count,
bool auto_type)
{
struct MatchItem *ptr = list->data + idx;
size_t i;
-
+
assert(idx+count <= list->count);
if (auto_type) {
for (i=0; i<count; ++i) {
- char *file = files[i];
+ char const *file = files[i];
switch (file[0]) {
case '+' : ptr->type = stINCLUDE; ++file; break;
case '~' : ptr->type = stSKIP; ++file; break;
-// $Id: matchlist-initmanually.c 1954 2005-03-22 14:59:46Z ensc $ --*- c -*--
+// $Id: matchlist-initmanually.c 2608 2007-09-03 07:42:17Z ensc $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-//
+//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
-//
+//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
static void
readExcludeListFD(int fd,
- char ***files, size_t *size,
+ char const ***files, size_t *size,
char **buf)
{
off_t len;
size_t lines = 0;
char *ptr;
-
+
if (fd==-1) return; // todo: message on verbose?
len = Elseek(fd, 0, SEEK_END);
do {
*tmp-- = '\0';
} while (tmp>ptr && *tmp==' ');
-
+
if (tmp>ptr) (*files)[(*size)++] = ptr;
}
static void
readExcludeList(char const *filename,
- char ***files, size_t *size,
+ char const ***files, size_t *size,
char **buf)
{
int fd = open(filename, O_RDONLY);
static void
getConfigfileList(char const *vserver,
- char ***files, size_t *size,
+ char const ***files, size_t *size,
char **buf)
{
- char tmpname[] = "/tmp/vunify.XXXXXX";
+ char tmpname[] = "/tmp/vunify.XXXXXX";
pid_t pid;
int fd = Emkstemp(tmpname);
if (pid==0) {
char *args[10];
char const **ptr = (char const **)(args)+0;
-
+
Edup2(fd, 1);
//Eclose(0);
if (fd!=1) Eclose(fd);
}
else {
int status;
-
+
if (TEMP_FAILURE_RETRY(wait4(pid, &status, 0,0))==-1) {
perror("wait4()");
exit(1);
char const *vdir, char const *exclude_file)
{
char *buf[2] = { 0,0 };
-
- char **fixed_files = 0;
+
+ char const **fixed_files = 0;
size_t fixed_count = 0;
- char **expr_files = 0;
+ char const **expr_files = 0;
size_t expr_count = 0;
size_t len;
}
else
len = strlen(vdir);
-
+
if (Global_getVerbosity()>=1) {
WRITE_MSG(1, "Initializing exclude-list for ");
Vwrite(1, vdir, len);
-// $Id: matchlist.h 1912 2005-03-18 00:20:02Z ensc $ --*- c -*--
+// $Id: matchlist.h 2608 2007-09-03 07:42:17Z ensc $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-//
+//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
-//
+//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
struct MatchVserverInfo
{
- char const *name;
+ char const *name;
vcCfgStyle style;
PathInfo vdir;
PathInfo appdir;
-
+
bool use_pkgmgmt;
};
char const *dir) NONNULL((1,2,3));
void MatchList_destroy(struct MatchList *) NONNULL((1));
void MatchList_appendFiles(struct MatchList *, size_t idx,
- char **files, size_t count,
+ char const **files, size_t count,
bool auto_type) NONNULL((1,3));
MatchType MatchList_compare(struct MatchList const *,
-// $Id$ --*- c -*--
+// $Id: mkdir.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
-// $Id$ --*- c -*--
+// $Id: sys_unshare.h 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
inline static UNUSED ALWAYSINLINE
int sys_unshare(int flags)
{
- return syscall(__NR_sys_clone, flags);
+ return syscall(__NR_sys_unshare, flags);
}
#endif
-## $Id: Makefile-files 2569 2007-07-22 17:24:29Z dhozac $ --*- makefile -*--
+## $Id: Makefile-files 2685 2008-02-21 23:22:23Z ensc $ --*- makefile -*--
## Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
lib_internal/testsuite/matchlist-gnu
endif
+if ENSC_HAVE_CRYPTO
+check_PROGRAMS += lib_internal/testsuite/crypto \
+ lib_internal/testsuite/crypto-speed
+TESTS += lib_internal/testsuite/crypto
+endif
+
DIETPROGS += lib_internal/testsuite/isnumber \
lib_internal/testsuite/sigbus \
lib_internal/testsuite/matchlist
+if ENSC_CAN_CRYPTO_WITH_DIETLIBC
+DIETPROGS += lib_internal/testsuite/crypto \
+ lib_internal/testsuite/crypto-speed
+endif
+
EXTRA_DIST += lib_internal/testsuite/copy-check
TESTS_ENVIRONMENT += libinternaltestsuitedir=$(top_builddir)/lib_internal/testsuite
lib_internal_testsuite_matchlist_gnu_SOURCES = lib_internal/testsuite/matchlist.c
lib_internal_testsuite_matchlist_gnu_LDADD = $(LIBINTERNAL_GLIBC)
lib_internal_testsuite_matchlist_gnu_CPPFLAGS = $(AM_CPPFLAGS) # see note above
+
+if ENSC_HAVE_CRYPTO
+lib_internal_testsuite_crypto_speed_SOURCES = lib_internal/testsuite/crypto-speed.c
+lib_internal_testsuite_crypto_speed_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+lib_internal_testsuite_crypto_speed_LDADD = $(ENSC_CRYPTO_LIB) -lrt
+
+lib_internal_testsuite_crypto_SOURCES = lib_internal/testsuite/crypto.c
+lib_internal_testsuite_crypto_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+lib_internal_testsuite_crypto_LDADD = $(ENSC_CRYPTO_LIB)
+
+if !ENSC_CAN_CRYPTO_WITH_DIETLIBC
+lib_internal_testsuite_crypto_speed_LDFLAGS = -Wl,--as-needed
+lib_internal_testsuite_crypto_LDFLAGS = -Wl,--as-needed
+endif
+endif
--- /dev/null
+/* --*- c -*--
+ * Copyright (C) 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 and/or 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define ENSC_TESTSUITE
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <lib_internal/crypto-wrapper.h>
+#include <lib_internal/coreassert.h>
+#include <time.h>
+#include <locale.h>
+
+
+static void
+do_benchmark(char const *meth_name)
+{
+ struct {
+ size_t block_size;
+ size_t blocks;
+ } const DATA_SIZES[] = {
+ { 0, 1 },
+ { 0, 1024*1024 },
+ { 16, 1 },
+ { 16, 1024*1024 },
+ { 1024, 16 },
+ { 1024, 16*1024 },
+ { 1024*1024, 16 },
+ { 1024*1024, 100 },
+ { 1024*1024, 1000 }
+ };
+
+ ensc_hash_method const *m = ensc_crypto_hash_find(meth_name);
+ ensc_hash_context ctx;
+ size_t d_len = m ? ensc_crypto_hash_get_digestsize(m) : 0;
+ char digest[d_len];
+ char * buf;
+ size_t i;
+
+ assert(m);
+ assert(ensc_crypto_hashctx_init(&ctx, m)==0);
+
+ for (i=0; i<sizeof(DATA_SIZES)/sizeof(DATA_SIZES[0]); ++i) {
+ size_t cnt = DATA_SIZES[i].blocks;
+ size_t const bs = DATA_SIZES[i].block_size;
+ struct timespec tm_start, tm_end, delta;
+ uint64_t bps;
+
+ buf = malloc(bs+1); /* avoid malloc-0 confusions */
+ assert(buf);
+
+ memset(buf, 0x11, bs);
+
+ ensc_crypto_hashctx_reset(&ctx);
+
+ /* benchmarked code starts here... */
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tm_start);
+ while (cnt--)
+ ensc_crypto_hashctx_update(&ctx, buf, bs);
+
+ ensc_crypto_hashctx_get_digest(&ctx, digest, NULL, d_len);
+ clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tm_end);
+ /* ... and ends here */
+
+ delta.tv_sec = tm_end.tv_sec - tm_start.tv_sec;
+ if (tm_end.tv_nsec < tm_start.tv_nsec) {
+ --delta.tv_sec;
+ tm_end.tv_nsec += 1000000000l;
+ }
+ delta.tv_nsec = tm_end.tv_nsec - tm_start.tv_nsec;
+
+ if (delta.tv_nsec==0 && delta.tv_sec==0)
+ delta.tv_nsec = 1;
+
+ bps = (uint64_t)(DATA_SIZES[i].blocks) * bs * 1000000000;
+ bps /= (uint64_t)(delta.tv_sec) * 1000000000 + delta.tv_nsec;
+
+ printf("%6s: %7zu x %-7zu -> %2lu.%09lus, %'15llu bytes/s\n",
+ meth_name, DATA_SIZES[i].blocks, bs,
+ delta.tv_sec, delta.tv_nsec, (unsigned long long)(bps));
+ }
+
+ ensc_crypto_hashctx_free(&ctx);
+}
+
+int main()
+{
+ char const * const METHS[] = {
+ "md5", "sha1", "sha256", "sha512", NULL
+ };
+ char const * const * meth;
+
+ ensc_crypto_init();
+ setlocale(LC_NUMERIC, ""); /* needed for the thousands grouping */
+
+ for (meth=METHS+0; *meth; ++meth)
+ do_benchmark(*meth);
+}
--- /dev/null
+/* --*- c -*--
+ * Copyright (C) 2008 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 and/or 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#define ENSC_TESTSUITE
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <lib_internal/crypto-wrapper.h>
+#include <lib_internal/coreassert.h>
+
+static unsigned int
+hex2digit(char c)
+{
+ if (c>='0' && c<='9')
+ return c-'0';
+ c &= ~0x20;
+ if (c>='A' && c<='F')
+ return c-'A' + 10;
+
+ assert(0);
+ return 0;
+}
+
+static void
+convert_digest_ascii2bin(void *dst_v, char const *digest, size_t d_len)
+{
+ unsigned char *dst = dst_v;
+
+ while (d_len>0) {
+ *dst = hex2digit(*digest++)<<4;
+ *dst |= hex2digit(*digest++);
+
+ ++dst;
+ --d_len;
+ }
+}
+
+static void
+test_digest(char const *name, size_t d_len,
+ void const *buf, size_t buf_len,
+ char const *digest)
+{
+ ensc_hash_method const *m = ensc_crypto_hash_find(name);
+ ensc_hash_context ctx;
+ unsigned char *exp_digest[d_len/8];
+ unsigned char *bin_digest[d_len/8];
+ size_t bin_digest_len;
+ size_t i;
+
+ d_len /= 8;
+ convert_digest_ascii2bin(exp_digest, digest, d_len);
+
+ assert(m);
+ assert(ensc_crypto_hash_get_digestsize(m)==d_len);
+
+ {
+ char const *tmp_name = ensc_crypto_hash_get_name(m);
+ ensc_hash_method const *tmp_meth = tmp_name ? ensc_crypto_hash_find(tmp_name) : NULL;
+
+ assert(tmp_name!=NULL);
+ assert(tmp_meth!=NULL);
+ assert(ensc_crypto_hash_get_digestsize(tmp_meth)==d_len);
+ }
+
+ ensc_crypto_hashctx_init(&ctx, m);
+ assert(ensc_crypto_hashctx_get_digestsize(&ctx)==d_len);
+
+ /* run it multiple times to test for correct reset/init behavior */
+ for (i=0; i<3; ++i) {
+ assert(ensc_crypto_hashctx_reset(&ctx)==0);
+ assert(ensc_crypto_hashctx_update(&ctx, buf, buf_len)==0);
+
+ switch (i) {
+ case 0:
+ case 2:
+ break;
+
+ case 1:
+ assert(ensc_crypto_hashctx_update(&ctx, "gremlin", 7)==0);
+ break;
+ }
+
+ assert(ensc_crypto_hashctx_get_digest(&ctx, bin_digest, &bin_digest_len, d_len)==0);
+ assert(bin_digest_len==d_len);
+
+
+ switch (i) {
+ case 0:
+ case 2:
+ assert(memcmp(exp_digest, bin_digest, d_len)==0);
+ break;
+
+ case 1:
+ assert(memcmp(exp_digest, bin_digest, d_len)!=0);
+ break;
+ }
+ }
+
+ ensc_crypto_hashctx_free(&ctx);
+}
+
+int main()
+{
+ ensc_crypto_init();
+ assert(ensc_crypto_hash_get_default()!=NULL);
+
+ /* MD-5 */
+
+ test_digest("md5", 128, "", 0, "d41d8cd98f00b204e9800998ecf8427e");
+ test_digest("md-5", 128, "", 0, "d41d8cd98f00b204e9800998ecf8427e");
+ test_digest("MD5", 128, "", 0, "d41d8cd98f00b204e9800998ecf8427e");
+ test_digest("MD-5", 128, "", 0, "d41d8cd98f00b204e9800998ecf8427e");
+
+ test_digest("md5", 128, "foo", 3, "acbd18db4cc2f85cedef654fccc4a4d8");
+
+ /* SHA-1 */
+ test_digest("sha1", 160, "", 0, "da39a3ee5e6b4b0d3255bfef95601890afd80709");
+ test_digest("sha-1", 160, "", 0, "da39a3ee5e6b4b0d3255bfef95601890afd80709");
+ test_digest("SHA1", 160, "", 0, "da39a3ee5e6b4b0d3255bfef95601890afd80709");
+ test_digest("SHA-1", 160, "", 0, "da39a3ee5e6b4b0d3255bfef95601890afd80709");
+
+ test_digest("sha1", 160, "foo", 3, "0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33");
+
+ /* SHA-256 */
+ test_digest("sha256", 256, "", 0, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
+ test_digest("sha-256", 256, "", 0, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
+ test_digest("SHA256", 256, "", 0, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
+ test_digest("SHA-256", 256, "", 0, "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
+
+ test_digest("sha256", 256, "foo", 3, "2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae");
+
+#if ENSC_CRYPTO_API != ENSC_CRYPTO_API_BEECRYPT /* see comments in crypto-wrapper-beecrypt.h */
+ /* SHA-384 */
+ test_digest("sha384", 384, "", 0, "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b");
+ test_digest("sha-384", 384, "", 0, "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b");
+ test_digest("SHA384", 384, "", 0, "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b");
+ test_digest("SHA-384", 384, "", 0, "38b060a751ac96384cd9327eb1b1e36a21fdb71114be07434c0cc7bf63f6e1da274edebfe76f65fbd51ad2f14898b95b");
+
+ test_digest("sha384", 384, "foo", 3, "98c11ffdfdd540676b1a137cb1a22b2a70350c9a44171d6b1180c6be5cbb2ee3f79d532c8a1dd9ef2e8e08e752a3babb");
+#endif
+
+ /* SHA-512 */
+ test_digest("sha512", 512, "", 0, "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
+ test_digest("sha-512", 512, "", 0, "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
+ test_digest("SHA512", 512, "", 0, "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
+ test_digest("SHA-512", 512, "", 0, "cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e");
+
+ test_digest("sha512", 512, "foo", 3, "f7fbba6e0636f890e56fbbf3283e524c6fa3204ae298382d624741d0dc6638326e282c41be5e4254d8820772c5518a2c5a8c0c7f7eda19594a7eb539453e1ed7");
+}
-// $Id$ --*- c -*--
+// $Id: matchlist.c 2680 2008-02-21 22:33:21Z ensc $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
int wrapper_exit_code = 255;
-int main(int argc, char *argv[])
+int main()
{
struct MatchList list;
static const char *files[] = {
return 0;
else {
char buf[(sizeof(result) * 8) / 3 + 2], *ptr;
- ssize_t i;
+ size_t i;
WRITE_MSG(1, "result = ");
buf[sizeof(buf) - 1] = '\0';
for (i = 0, ptr = buf + sizeof(buf) - 2; i < (sizeof(result) * 8); i += 3, ptr--)
-// $Id: util-io.h 1954 2005-03-22 14:59:46Z ensc $ --*- c -*--
+// $Id: util-io.h 2650 2008-01-03 15:30:17Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#include <unistd.h>
#include <string.h>
+#include "ensc_fmt/fmt.h"
inline static void UNUSED
Vwrite(int fd, char const *buf, size_t len)
Vwrite(fd, cmd, strlen(cmd));
}
+inline static void UNUSED
+WRITE_INT(int fd, int num)
+{
+ char buf[sizeof(num)*3+2];
+ size_t l;
+
+ l = utilvserver_fmt_long(buf,num);
+
+ Vwrite(fd, buf, l);
+}
+
#define WRITE_MSG(FD,X) Vwrite(FD,X,sizeof(X)-1)
#define WRITE_STR(FD,X) writeStr(FD,X)
-// $Id: util-lockfile.c 1616 2004-07-02 23:34:52Z ensc $ --*- c -*--
+// $Id: util-lockfile.c 2678 2008-02-16 22:09:30Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
alarm(timeout);
}
- errstr = "flock()";
- while (flock(*fd, op)==-1) {
+ errstr = "lockf()";
+ while (lockf(*fd, op, 0)==-1) {
if ((errno!=EINTR && errno!=EINTR) || alarm_flag) goto err;
}
-// $Id: util-safechdir.h 934 2004-02-18 04:42:38Z ensc $ --*- c -*--
+// $Id: util-safechdir.h 2608 2007-09-03 07:42:17Z ensc $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
-//
+//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
-//
+//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
-//
+//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#ifndef H_UTIL_VSERVER_LIB_INTERNAL_UTIL_SAFECHDIR_H
#define H_UTIL_VSERVER_LIB_INTERNAL_UTIL_SAFECHDIR_H
-struct stat;
+#include <sys/stat.h>
+
int safeChdir(char const *, struct stat const *exp_stat) NONNULL((1,2));
#define EsafeChdir(PATH,EXP_STAT) \
-## $Id: Makefile-files 1192 2004-03-10 02:30:34Z ensc $ -*- makefile -*-
+## $Id: Makefile-files 2631 2007-10-27 19:34:50Z dhozac $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
man/vserver-stat.8 \
man/vserver.8 \
man/vtop.8
+man_susbt_SRCS = man/vserver-build.8.pathsubst
+man_gen_DTA = man/vserver-build.8
-man_MANS += $(man_pages)
-EXTRA_DIST += $(man_pages)
+man_MANS += $(man_pages) \
+ $(man_gen_DTA)
+EXTRA_DIST += $(man_pages) \
+ $(man_susbt_SRCS)
+CLEANFILES += $(man_gen_DTA)
+
+man/vserver-build.8: man/.vserver-build.8.pathsubst.stamp
--- /dev/null
+.TH VSERVER-BUILD "8" "October 27, 2007" "vserver-build" "System Administration"
+.SH "NAME"
+vserver-build \- initializes a vserver
+.SH SYNTAX
+.B vserver-build
+\fB\-m\fR \fImethod\fR \fB\-n\fR \fIname\fR [\fB\-\-force\fR] [\fB\-\-keep\fR]
+[\fB\-\-rootdir\fR \fIdir\fR] [\fB\-\-pkgbase\fR \fIdir\fR]
+\fIconfig options*\fR [\fB\-\-\fR] \fImethod arguments*\fR
+.TP
+\fB\-m\fR \fImethod\fR
+Use build \fImethod\fR; see below for possible values.
+.TP
+\fB\-n\fR \fIname\fR
+Name of vserver you are building.
+.TP
+\fB\-\-force\fR
+Remove/rename already existing vservers with the same name.
+.TP
+\fB\-\-keep\fR
+Do not delete generated files and directories if vserver build fails.
+.TP
+\fB\-\-rootdir\fR \fIdir\fR
+Root vserver directory [default: @SYSCONFDIR@/vservers/.defaults/vdirbase].
+.TP
+\fB\-\-pkgbase\fR \fIdir\fR
+Package base directory [default: @VSERVERDIR@/.pkg].
+.SH "CONFIG OPTIONS"
+.TP
+\fB\-\-context\fR \fInum\fR
+.IP
+\&The static context of the vserver [default: none; one will be generated for you].
+The valid range is 2 through 49151.
+.TP
+\fB\-\-confdir\fR \fIdir\fR
+.IP
+\&The vserver configuration directory to use [default: @SYSCONFDIR@/vservers/<name>].
+.TP
+\fB\-\-lockfile\fR \fIfilename\fR
+.IP
+\&The lockfile to use [default: /var/run/vservers/<name>].
+.TP
+\fB\-\-hostname\fR \fIhostname\fR
+.IP
+\&Hostname of the vserver.
+.TP
+\fB\-\-netdev\fR \fIdevice\fR
+.IP
+\&The default interface to use for \fB--interface\fR.
+.TP
+\fB\-\-netbcast\fR \fIbroadcast\fR
+.IP
+\&Broadcast address to associate with the vserver.
+.TP
+\fB\-\-netmask\fR \fInetmask\fR|\fB\-\-netprefix\fR \fIprefixlen\fR
+.IP
+\&Sets the default netmask (a.b.c.d quadruple) or prefixlen (length of the
+network).
+.TP
+\fB\-\-interface\fR [\fIname\-suffix\fR=][\fIdevice\fR:]\fIip\fR[/\fImask|prefixlen\fR]
+.IP
+\&Declares a network\-interface name and associated IP/netmask; this option can
+be specified multiple times.
+.TP
+\fB\-\-flags\fR \fIflags+\fR
+.IP
+\&Sets comma\-separated list of flags; see lib/cflags-v13.c for a list.
+.TP
+\fB\-\-cpuset\fR \fIname\fR
+.IP
+\&Declares the CPUSET this vserver will run in [default: none]
+.TP
+\fB\-\-cpusetcpus\fR \fInumber[\-number][:exclusive]\fR
+.IP
+\&Sets which CPUs belong to the CPUSET, \fI:exclusive\fR is a flag (0|1)
+prohibiting any other cpuset from using those CPUs.
+.TP
+\fB\-\-cpusetmems\fR \fInumber[\-number][:exclusive]\fR
+.IP
+\&Sets which memory pools belong to the CPUSET, \fI:exclusive\fR is a flag
+(0|1) prohibiting any other cpuset from using those memory pools.
+.TP
+\fB\-\-cpusetvirt\fR
+.IP
+\&Virtualize the cpuset (the vserver will see only CPUs defined in the cpuset).
+Requires kernel patch from http://www.bullopensource.org/cpuset/
+.TP
+\fB\-\-initstyle\fR \fIstyle\fR
+.IP
+\&Configures the initstyle (e.g. minit, sysv, plain, gentoo)
+.SH "METHODS"
+.TP
+\fBapt\-rpm\fR
+.IP
+\& \fB\-\-\fR \fB\-d\fR \fIdistribution\fR
+
+\&Installs the base\-packages of the given distribution with the help of
+'\fBvapt\-get\fR'
+.TP
+\fByum\fR
+.IP
+\&\fB\-\-\fR \fB\-d\fR \fIdistribution\fR
+
+\&Installs the base\-packages of the given distribution with help of
+'\fBvyum\fR'
+.TP
+\fBrpm\fR
+.IP
+\&\fB\-\-\fR [\fB\-d\fR \fIdistribution\fR] \fB\-\-empty\fR|([\fB\-\-force\fR] [\fB\-\-nodeps\fR] \fImanifest\fR)+
+
+\&Installs lists of rpm\-packages
+.TP
+\fBskeleton\fR
+.IP
+\&\fB\-\-\fR [\fIcmd args*\fR]
+
+\&Installs a minimal skeleton filesystem, creates the configuration file
+and calls an optional command
+.TP
+\fBdebootstrap\fR
+.IP
+\fB\-\-\fR \fB\-d\fR \fIdistribution\fR [\fB\-m\fR \fImirror\fR] [\fB\-s\fR \fIscript\fR] [\fB\-\-\fR \fIdebootstrap\-options*\fR]
+
+\&Bootstraps the vserver with Debian's 'debootstrap' package
+.TP
+\fBtemplate\fR
+.IP
+\&\fB\-\-\fR (\fB\-t\fR \fItarball\fR)+ [\fB\-d\fR \fIdistribution\fR]
+
+\&Installs a vserver using tarball(s)
+.TP
+\fBfai\fR
+.IP
+\&\fB\-\-\fR [\fB\-f\fR \fIfai_vserver\fR] [\fB\-n\fR \fInfsroot\fR] [\fB\-d\fR \fIfai_dir\fR] [\fB\-a\fR]
+
+\&Bootstraps the vserver with the Debian Fully Automatic Installation
+
+\fB\-f\fR means use the nfsroot and profile in the vserver \fIfai_vserver\fR
+
+\fB\-n\fR \fInfsroot\fR specifies the 'NFS' root explicitly
+
+\fB\-d\fR \fIfai_dir\fR specifies the location of the FAI profile
+
+the \fB\-f\fR option implies \fB\-n\fR and \fB\-d\fR are relative to the \fIfai_vserver\fR
+.TP
+\fBrsync\fR
+.IP
+\&\fB\-\-\fR [\fB\-d\fR \fIdistribution\fR] \fB\-\-source\fR \fIsource\fR [\fB\-o\fR \fIrsync option\fR]*
+
+\&Installs a vserver by rsyncing from \fIsource\fR to the guest root
+.TP
+\fBclone\fR
+.IP
+\&\fB\-\-\fR [\fB\-d\fR \fIdistribution\fR] \fB\-\-source\fR \fIsource\fR
+
+\&Clones a vserver by linking unified files and copying the rest
+.SH "EXAMPLES"
+.LP
+# vserver kea build -m debootstrap --context 10 --hostname kea --interface eth0:192.168.0.44/32 -- -d etch
+.SH "BUGS"
+.LP
+Please report bugs to vserver@list.linux\-vserver.org
+.SH "AUTHORS"
+.LP
+This man page was written by Micah Anderson <micah@debian.org> and based upon the helpful output from the program itself.
+.SH "SEE ALSO"
+.PP
+ chbind(8) chcontext(8)
+ rebootmgr(8) reducecap(8)
+ vps(8) vpstree(8)
+ vrpm(8)
+ vserver\-stat(8)
+ vtop(8)
+
-.TH "vserver" "8" "0.1.0" "Klavs Klavsen <kl@vsen.dk>" "System Administration"
+.TH VSERVER 8 "October 24, 2007" "util-vserver" "System Administration"
.SH "NAME"
.LP
-vserver \- The vserver utility enables you to control different aspects of your vservers.
-.SH "SYNTAX"
-.LP
-vserver [ options ] [vserver name] [options]
-
-.SH "DESCRIPTION"
-.LP
-vserver \- The vserver utility enables you to control different aspects of your vservers, such as stopping and starting them, and services within them.
-.SH "OPTIONS"
-.LP
-.TP
-\fBbuild\fR Create a virtual server by copying the packages of the root server
-.TP
-\fBenter\fR Enter in the virtual server context and starts a shell. Same as "vserver name exec /bin/sh\".
-.TP
-\fBexec\fR Exec a command in the virtual server context as root.
-syntax: vserver name exec command ...
-.TP
-\fBsuexec\fR Exec a command in the virtual server context under some user id.
-syntax: vserver name suexec userid command ...
-.TP
-\fBservice\fR Control a service inside a vserver.
-syntax: vserver name service service\-name (start/stop/restart etc.)
-.TP
-\fBstart\fR Starts the various services in the vserver.
-It uses the default runlevel found in the
-.B /etc/inittab
-file of the vserver.
-.TP
-\fBstop\fR Ends all services and kills the remaining processes.
-.TP
-\fBrunning\fR Tells if a virtual server is running. It returns proper exit code, so you can use it as a test.
-.TP
-\fBstatus\fR Tells various information about the state of a virtual server:
-running status, number of running processes and uptime.
-.TP
-.I --nodev
-do not configure the IP devices associated with the vserver. This
-is useful to execute some commands on the vserver (or enter it)
-without making it active on the network. Especially useful if you
-have an active copy of the vserver moved to another server on the
-network.
-.TP
-.I --silent
-cuts most informative messages.
-
+vserver \- The vserver utility enables you to manage the state of vservers, including building, starting, stopping, etc.
+.SH SYNTAX
+.B vserver
+[\fB-s|--sync\fR] [\fB-v|--verbose\fR] [\fB--silent\fR] [\-\-] \fIvserver\fR \fIcommand\fR [\fB--help\fR] \fIargs*\fR
+.TP
+\fB\-\-sync\fR - Perform synchronization with vshelper to ensure that the guest has been stopped
+.TP
+\fB\-\-verbose\fR - Makes things a lot louder.
+.TP
+\fB\-\-silent\fR - Removes most informative messages.
+.TP
+\fIvserver\fR - The name of a vserver.
+.TP
+\fIcommand\fR - One of the commands listed below.
+.TP
+\fB\-\-help\fR
+.IP
+provides additional help for provided \fIcommand\fR, for example: vserver - build --help
+\fIargs\fR are the arguments that are possible for the different commands, see the
+arguments for each \fIcommand\fR listed below
+.SH "COMMANDS"
+.TP
+\fBstart\fR [\fB\-\-rescue\fR [\fB\-\-rescue\-init\fR] \fIprogram args\fR]
+.IP
+\&Starts the specified vserver. The optional argument \fB--rescue\fR starts the
+vserver in rescue mode, which runs \fIprogram args*\fR to start the vserver
+instead of whatever is configured. The optional argument \fB--rescue-init\fR
+makes the command appear as PID 1 in the vserver. This can be used to start
+/bin/bash to investigate why a vserver is not able to start correctly.
+.TP
+\fBstop\fR [\fB\-\-rescue\-init\fR]
+.IP
+\&Stops the specified vserver, and kills the remaining processes. The optional
+argument \fB--rescue-init\fR can be used to stop a vserver that was started
+with the option of the same name.
+.TP
+\fBrestart\fR
+.IP
+\&Restarts the specified vserver. This is the subsequent execution of a
+synchronized 'stop' and a 'start'.
+.TP
+\fBcondrestart\fR
+.IP
+\&Restarts a running vserver.
+.TP
+\fBsuexec\fR \fIuser\fR \fIprogram args*\fR
+.IP
+\&Executes \fIprogram args*\fR as the specified \fIuser\fR in the vserver.
+.TP
+\fBexec\fR \fIprogram args*\fR
+.IP
+\&Executes \fIprogram args*\fR as the root user in the vserver.
+.TP
+\fBenter\fR
+.IP
+\&Executes the configured shell (default: /bin/bash if it exists) in the
+vserver and allocates a pty.
+.TP
+\fBchkconfig\fR \fIchkconfig\-options*\fR
+.IP
+\&Modifies the init\-system; currently, only Red Hat's \fBchkconfig\fR is
+supported.
+.TP
+\fBrunning\fR
+.IP
+\&Returns an exit code of 0 iff the vserver is running, 1 if not.
+.TP
+\fBstatus\fR
+.IP
+\&Provides some human readable status information about the vserver, and
+succeeds iff the vserver is running.
+.TP
+\fBbuild\fR \fIbuildopts*\fR
+.IP
+\&Create a vserver from scratch, where the \fIbuildopts*\fR are a set of
+options and a build method. As this option calls vserver-build, please see
+vserver-build(8) for a complete listing of possible options and methods.
+.TP
+\fBdelete\fR
+.IP
+\&Remove a vserver.
+.TP
+\fBunify\fR [\fB\-R\fR] [\fIvunify\-opts*\fR]
+.IP
+\&Unify or de-unify the vserver with its reference vserver(s).
+.TP
+\fBpkg install\fR \fIpkg*\fR
+.IP
+\&Installs package(s) \fIpkg\fR in the vserver.
+.TP
+\fBapt\-get,apt\-config,apt\-cache\fR \fIapt\-opts*\fR
+.IP
+\&Execute the apt\-* command for the given vserver
+.TP
+\fBrpm\fR \fIrpm\-opts*\fR
+.IP
+\&Execute the \fBrpm\fR command for the given vserver.
+.TP
+\fBpkgmgmt\fR \fBexternalize\fR|\fBinternalize\fR [\fB\-y\fR]
+.IP
+\&Externalize or internalize the package\-management for the given vserver.
+\'Externalize' means that package metadata and management tools (apt\-get,rpm)
+are living in the host, while 'internalize' means that data and programs from
+the vserver will be used.
+.TP
+\fBhashify\fR
+.IP
+\&Hashify the vserver.
.SH "FILES"
.LP
\fI/usr/sbin/vserver\fP
.P
-\fI/etc/vservers/*.conf\fP
+\fI/etc/vservers/*\fP
.P
-\fI/etc/vservers/*.sh\fP
.P
-\fI/vservers/*\fP
-
+\fI/var/lib/vservers/*\fP
.SH "EXAMPLES"
.LP
Please contribute some, if you feel it's important.
.SH "AUTHORS"
.LP
-This Man page was written by Klavs Klavsen <kl@vsen.dk> and based upon the helpful output from the program itself and the documentation on the Virtual Server site <http://www.solucorp.qc.ca/miscprj/s_context.hc?prjstate=1&nodoc=0>
+This man page was written by Micah Anderson <micah@debian.org> and based upon the helpful output from the program itself.
.SH "SEE ALSO"
.LP
chbind(8) chcontext(8)
-newvserver(8)
rebootmgr(8) reducecap(8)
vps(8) vpstree(8)
vrpm(8)
+vserver\-build(8)
vserver\-stat(8)
vtop(8)
-## $Id: Makefile-files 2558 2007-07-10 20:34:48Z dhozac $ -*- makefile -*-
+## $Id: Makefile-files 2684 2008-02-21 23:11:45Z ensc $ -*- makefile -*-
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
scripts/vserver-wrapper \
scripts/vsysvwrapper \
scripts/vtop \
+ scripts/h2ext-worker \
scripts/legacy/distrib-info \
scripts/legacy/vps \
scripts/legacy/save_s_context \
scripts/vsomething \
scripts/vtop \
scripts/vupdateworld \
- scripts/vyum
+ scripts/vyum \
+ scripts/vmount
scripts_sbin_gen_PRGS =
scripts_sbincfg_gen_DTA =
#! /bin/bash
-# $Id$
+# $Id: h2ext-worker 2674 2008-01-27 07:55:13Z dhozac $
# Copyright (C) 2007 Daniel Hokka Zakrisson
#
-# $Id: util-vserver-vars.pathsubst 2589 2007-08-16 03:06:50Z dhozac $ --*- sh -*--
+# $Id: util-vserver-vars.pathsubst 2692 2008-03-01 00:22:34Z dhozac $ --*- sh -*--
PACKAGE='@PACKAGE@'
PACKAGE_BUGREPORT='@PACKAGE_BUGREPORT@'
_SETATTR="$__SBINDIR/setattr"
_SHOWPERM="$__LEGACYDIR/showperm"
_START_VSERVERS="$__PKGLIBDIR/start-vservers"
+_TUNCTL="$__PKGLIBDIR/tunctl"
_VAPT_GET="$__SBINDIR/vapt-get"
_VAPT_GET_WORKER="$__PKGLIBDIR/vapt-get-worker"
_VATTRIBUTE="$__SBINDIR/vattribute"
_VHASHIFY="$__PKGLIBDIR/vhashify"
_VKILL="$__SBINDIR/vkill"
_VLIMIT="$__SBINDIR/vlimit"
+_VMEMCTRL="$__SBINDIR/vmemctrl"
_VNAMESPACE="$__SBINDIR/vnamespace"
_VPKG="$__PKGLIBDIR/vpkg"
_VPROCUNHIDE="$__PKGLIBDIR/vprocunhide"
_VSHELPER="$__PKGLIBDIR/vshelper"
_VSHELPER_SYNC="$__PKGLIBDIR/vshelper-sync"
_VSOMETHING="$__SBINDIR/vsomething"
+_VSPACE="$__SBINDIR/vspace"
_VSYSCTL="$__PKGLIBDIR/vsysctl"
_VTAG="$__SBINDIR/vtag"
_VWAIT="$__SBINDIR/vwait"
_EGREP="@EGREP@"
_ENV="@ENV@"
_FILE="@FILE@"
+_FSCK="@FSCK@"
_GREP="@GREP@"
_GZIP="@GZIP@"
_IP="@IP@"
#!/bin/bash
-# $Id: vdispatch-conf 2486 2007-02-05 18:08:17Z hollow $
+# $Id: vdispatch-conf 2635 2007-11-17 23:52:59Z hollow $
# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org>
#
(--debug) send_through=( "${send_through[@]}" "$1" ); set -x;;
(--quiet|-q) send_through=( "${send_through[@]}" "$1" );;
(--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );;
- (--) shift; break;;
+ (--) test ${#vsomething_opts[@]} -eq 0 && shift; break;;
(*) echo $"vdispatch-conf: internal error; arg=='$1'" >&2; exit 1;;
esac
shift
done
-VSOMETHING_TITLE=vemerge
+declare -a vserver_names
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ (--) shift; break;;
+ (*) vserver_names=( "${vserver_names[@]}" "$1" );;
+ esac
+ shift
+done
+
+VSOMETHING_TITLE=vdispatch-conf
VSOMETHING_PKGMGMT=1
export VSOMETHING_TITLE VSOMETHING_PKGMGMT
-
-exec $_VSOMETHING "${send_through[@]}" dispatch-conf "${vsomething_opts[@]}" "$@"
+exec $_VSOMETHING "${send_through[@]}" dispatch-conf "${vsomething_opts[@]}" "${vserver_names[@]}" -- "$@"
#!/bin/bash
-# $Id: vemerge 2363 2006-11-03 14:36:23Z hollow $
+# $Id: vemerge 2635 2007-11-17 23:52:59Z hollow $
# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org>
#
(--debug) send_through=( "${send_through[@]}" "$1" ); set -x;;
(--quiet|-q) send_through=( "${send_through[@]}" "$1" );;
(--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );;
- (--) shift; break;;
+ (--) test ${#vsomething_opts[@]} -eq 0 && shift; break;;
(*) echo $"vemerge: internal error; arg=='$1'" >&2; exit 1;;
esac
shift
done
+declare -a vserver_names
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ (--) shift; break;;
+ (*) vserver_names=( "${vserver_names[@]}" "$1" );;
+ esac
+ shift
+done
+
VSOMETHING_TITLE=vemerge
VSOMETHING_PKGMGMT=1
export VSOMETHING_TITLE VSOMETHING_PKGMGMT
-
-test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- )
-exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "$@"
+exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "${vserver_names[@]}" -- "$@"
#!/bin/bash
-# $Id: vesync 2486 2007-02-05 18:08:17Z hollow $
+# $Id: vesync 2635 2007-11-17 23:52:59Z hollow $
# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org>
#
(--overlay) overlay="${2%/}";;
(--overlay-host) overlay_host="${2%/}";;
(--overlay-only) overlay_only=1;;
- (--) shift; break;;
+ (--) test ${#vsomething_opts[@]} -eq 0 && shift; break;;
(*) echo $"vesync: internal error; arg=='$1'" >&2; exit 1;;
esac
shift
done
+declare -a vserver_names
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ (--) shift; break;;
+ (*) vserver_names=( "${vserver_names[@]}" "$1" );;
+ esac
+ shift
+done
+
VSOMETHING_TITLE=vesync
VSOMETHING_PKGMGMT=1
ret=0
test $overlay_only -eq 0 && \
- $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "$@" -- --metadata
+ $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "${vserver_names[@]}" -- --metadata
ret=$?
test -n "$overlay" -a -n "$overlay_host" && \
- $_VSOMETHING "${send_through[@]}" rsync "${vsomething_opts[@]}" "$@" -- \
+ $_VSOMETHING "${send_through[@]}" rsync "${vsomething_opts[@]}" "${vserver_names[@]}" -- \
-rtW --progress --delete --delete-after "${overlay_host}/" "${overlay}/"
test $? -eq 0 -a $ret -eq 0
--- /dev/null
+#!/bin/bash
+# $Id: vmount 2682 2008-02-21 23:10:34Z ensc $
+
+# Copyright (C) 2007 Daniel Hokka Zakrisson
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+: ${UTIL_VSERVER_VARS:=/usr/lib/util-vserver/util-vserver-vars}
+test -e "$UTIL_VSERVER_VARS" || {
+ echo $"Can not find util-vserver installation (the file '$UTIL_VSERVER_VARS' would be expected); aborting..." >&2
+ exit 1
+}
+. "$UTIL_VSERVER_VARS"
+. "$_LIB_FUNCTIONS"
+
+
+function showHelp()
+{
+ echo \
+$"Usage: $0 <vserver-name> -- [-o options] [--bind|--rbind]
+ [-t <type>] [-a] [-n] [--move]
+ [<source> [<destination>]]
+
+<source> ... what to mount, this is relative to the host's root
+<destination> ... where to mount it, this is relative to the guest's root
+
+Report bugs to <$PACKAGE_BUGREPORT>."
+ exit 0
+}
+
+function showVersion()
+{
+ echo \
+$"vmount $PACKAGE_VERSION -- mount for guests
+This program is part of $PACKAGE_STRING
+
+Copyright (C) 2007 Daniel Hokka Zakrisson
+This program is free software; you may redistribute it under the terms of
+the GNU General Public License. This program has absolutely no warranty."
+ exit 0
+}
+
+
+declare -a guests
+while test $# -gt 0; do
+ case "$1" in
+ (--) shift; break;;
+ (-*) break;
+ (*)
+ _setVserverDir "$1"
+ guests=( "${guests[@]}" "$VSERVER_DIR" )
+ ;;
+ esac
+ shift
+done
+
+tmp=$(getopt -o +o:t:an --long help,version,debug,bind,rbind,move -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+declare -a options
+
+while true; do
+ case "$1" in
+ (--help) showHelp $0 ;;
+ (--version) showVersion ;;
+ (--debug) set -x;;
+ (--bind|--rbind|--move|-n|-a)
+ options=( "${options[@]}" "$1" )
+ ;;
+ (-t|-o) options=( "${options[@]}" "$1" "$2" )
+ shift
+ ;;
+ (--) shift; break;;
+ (*) echo $"vmount: internal error; arg=='$1'" >&2; exit 1;;
+ esac
+ shift
+done
+
+case "x$1" in
+ (x/*|x) ;;
+ (*) panic $"vmount: the source must be an absolute path";;
+esac
+
+rc=0
+for guest in "${guests[@]}"; do
+ pushd "$guest/vdir" &> /dev/null
+ callInNamespace "$guest" \
+ $_SECURE_MOUNT --chroot --fstab "$guest/fstab" "${options[@]}" "$@"
+ test "$?" -eq 0 || rc=$?
+ popd &> /dev/null
+done
+
+exit $rc
#! /bin/bash
-# $Id: vserver 2566 2007-07-18 17:24:36Z dhozac $
+# $Id: vserver 2661 2008-01-13 18:26:41Z dhozac $
# Copyright (C) 2003,2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
function showHelp()
{
echo \
-$"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent]
+$"Usage: $(basename $0) [-s|--sync] [-v|--verbose] [--silent] [--debug]
[--] <vserver> <command> <args>*
<vserver> is the name of a vserver.
Possible commands are:
- start [--rescue [--rescue-init]] [<rescue-cmd> <args>*]
+ start [--rescue [--rescue-init] <rescue-cmd> <args>*]]
... starts the specified vserver
- stop ... stops the specified vserver
+ stop [--rescue-init]
+ ... stops the specified vserver
restart ... restarts the specified vserver; this is the subsequent
execution of a synchronized 'stop' and a 'start'
condrestart ... restarts the vserver when it is running already
- suexec <user> <shell-command> <args*>
+ suexec <user> <command> <args*>
... executes a command as the specified user in the vserver
- exec <shell-command> <args*>
+ exec <command> <args*>
... executes a command as root in the vserver
enter ... executes the configured shell in the vserver
chkconfig <chkconfig-options*>
the vserver, and succeeds iff the vserver is running
build <buildopts>*
- ... builds a new vserver from scratch
+ ... builds a new vserver from scratch, see
+ vserver ... build --help for details
delete ... remove a vserver
unify [-R] <vunify-opts>*
_setVserverName
# Create a new namespace when starting the guest
-test "$2" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
+test "$cmd" != start -o -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
exec $_VNAMESPACE --new -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
# Enter the namespace early so we can test for files inside the guest
-test "$2" != enter -a "$2" != stop || \
+test "$cmd" != enter -a "$cmd" != stop || \
test -n "$OPTION_NONAMESPACE" || isAvoidNamespace "$VSERVER_DIR" || \
! isVserverRunning "$VSERVER_DIR" || \
exec $_VNAMESPACE --enter "$VSERVER_DIR" -- $_VSERVER ----nonamespace "${OPTIONS_ORIG[@]}"
#! /bin/bash
-# $Id: vserver-build 2468 2007-01-21 20:05:19Z dhozac $
+# $Id: vserver-build 2644 2007-12-19 14:28:40Z dhozac $
# Copyright (C) 2003,2004,2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
the -f option implies -n and -d are relative to the <fai_vserver>
rsync ... -- [-d <distribution>] --source <source> [-o <rsync option>]*
... installs a guest by rsyncing from <source> to the guest root
- clone ... -- [-d <distribution>] --source <source>
+ clone ... -- [-d <distribution>] --source <source> [--exclude-from <exclude-list>]
... clones a guest by linking unified files and copying the rest
Please report bugs to $PACKAGE_BUGREPORT"
-# $Id: vserver-build.clone 2494 2007-02-11 00:45:04Z dhozac $ --*- sh -*--
+# $Id: vserver-build.clone 2644 2007-12-19 14:28:40Z dhozac $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-tmp=$(getopt -o '+d:s:o:' --long debug,pkgmgmt,source: -n "$0" -- "$@") || exit 1
+tmp=$(getopt -o '+d:s:o:X:' --long debug,pkgmgmt,source:,exclude-from: -n "$0" -- "$@") || exit 1
eval set -- "$tmp"
. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
DISTRIBUTION=:
use_pkgmgmt=
SOURCE=
+EXCLUDES=
while true; do
case "$1" in
-d) DISTRIBUTION=$2; shift;;
--debug) set -x;;
--pkgmgmt) use_pkgmgmt=1;;
-s|--source) SOURCE=$2; shift;;
+ -X|--exclude-from)
+ EXCLUDES=$2; shift;;
--) shift; break ;;
*) echo "vserver-build.clone: internal error: unrecognized option '$1'" >&2
exit 1
test -z "$BUILD_INITPRE" || "$BUILD_INITPRE" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
-$_VCLONE "$SOURCE"/ "$VDIR"/
+$_VCLONE ${SETUP_CONTEXT:+--xid "$SETUP_CONTEXT"} \
+ ${EXCLUDES:+--exclude-from "$EXCLUDES"} \
+ "$SOURCE"/ "$VDIR"/
test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
-# $Id: vserver-build.debootstrap 2574 2007-07-31 19:43:17Z dhozac $ --*- sh -*--
+# $Id: vserver-build.debootstrap 2641 2007-12-05 00:51:04Z dhozac $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
cd $dir
ar x "$dst"
tar xzf data.tar.gz
- export DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap
+ DEBOOTSTRAP_DIR=`pwd`/usr/lib/debootstrap
DEBOOTSTRAP=`pwd`/usr/sbin/debootstrap
+ test -d "$DEBOOTSTRAP_DIR" || DEBOOTSTRAP_DIR=`pwd`/usr/share/debootstrap
+ export DEBOOTSTRAP_DIR
local arch
arch=$(uname -i 2>/dev/null) || \
-# $Id: vserver-build.functions 2571 2007-07-29 16:55:06Z dhozac $ --*- sh -*--
+# $Id: vserver-build.functions 2704 2008-03-16 03:30:22Z dhozac $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
{
local spec
- mkdir -p -m755 "$VDIR"/dev/pts
+ mkdir -p -m755 "$VDIR"/dev
+ mkdir -m755 "$VDIR"/dev/pts
while read spec; do
makeDevEntry "$VDIR"/dev $spec
mkdir -p -m755 "$VDIR"
$_SETATTR --~barrier "$VDIR"
+ $_SETATTR --barrier "$VDIR"/.. || colwarn $"\
+WARNING: could not set the barrier attribute on '$VDIR/..',
+ please set it manually."
base._addGeneratedFile "$VDIR"
mkdir -p -m755 "$SETUP_CONFDIR"/apps "$VDIR"/etc
{
__BASE_SUCCESS=1
}
+
+function startSleepingGuest
+{
+ local guest="$1"
+ local timeout="${2:-15}"
+ $_VSERVER "$guest" start --rescue --rescue-init bash -c "
+ exec > /dev/null
+ exec 2> /dev/null
+ trap 'kill -s 9 -- -1; exit 0' INT
+ i=0
+ while [ \$i -lt $timeout ]; do
+ sleep 1
+ let ++i
+ done
+ kill -s 15 -- -1
+ sleep 1
+ kill -s 9 -- -1"
+}
+
+function stopSleepingGuest
+{
+ local guest="$1"
+ $_VSERVER "$guest" stop --rescue-init
+}
-# $Id: vserver-build.functions.yum 2030 2005-04-16 21:20:45Z ensc $ --*- sh -*--
+# $Id: vserver-build.functions.yum 2612 2007-09-11 21:26:41Z ensc $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
if test -e "$f"; then
$_SED -e "s!@YUMETCDIR@!$prefix$PKGCFGDIR/yum/etc!g;
s!@YUMCACHEDIR@!$prefix$PKGCFGDIR/yum/cache!g;
+ s!@YUMLIBDIR@!$prefix$PKGCFGDIR/yum/lib!g;
s!@YUMLOGDIR@!$prefix$PKGCFGDIR/yum!g;
s!@YUMLOCKDIR@!$prefix$PKGCFGDIR/yum!g;
" "$f" >"$f.tmp"
function yum.initFilesystem
{
- mkdir -p "$PKGCFGDIR"/yum/{etc,cache}
+ mkdir -p "$PKGCFGDIR"/yum/{etc,cache,lib}
populateDirectory "$PKGCFGDIR/yum/etc" \
"$__DISTRIBDIR/defaults/yum" \
#! /bin/bash
-# $Id: vserver.delete 2577 2007-08-05 18:36:56Z dhozac $
+# $Id: vserver.delete 2654 2008-01-08 16:49:17Z dhozac $
# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
base.init
pkgmgmt.initVariables
$_RM -rf "`$_VSERVER_INFO "$vserver" VDIR 1`" "$VSERVER_DIR" "$PKGCFGDIR" \
- "`$_READLINK "$VSERVER_DIR/cache"`"
+ "`$_READLINK "$VSERVER_DIR/cache" 2>/dev/null`"
-# $Id: vserver.functions 2599 2007-08-26 21:30:50Z dhozac $ --*- sh -*--
+# $Id: vserver.functions 2702 2008-03-11 10:07:26Z hollow $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
declare -a OPTS_ENV=()
declare -a OPTS_VTAG_CREATE=()
declare -a OPTS_VTAG_ENTER=()
+declare -a OPTS_VMEMCTRL=()
+declare -a OPTS_VSPACE=()
declare -a STOPCMD_PREPARE=()
INITSTYLE=sysv
S_CONTEXT=
+N_CONTEXT=
SILENT_OPT=
f="$vdir"/interfaces/lback
getFileValue lback "$f"
- getFileValue nid "$vdir/ncontext" "$vdir/context"
-
- CHBIND_CMD=( $_CHBIND $SILENT_OPT --secure ${nid:+--nid "$nid"}
+ CHBIND_CMD=( $_CHBIND $SILENT_OPT --secure ${N_CONTEXT:+--nid "$N_CONTEXT"}
${bcast:+--bcast "$bcast"} ${lback:+--lback "$lback"}
)
(xgentoo)
test -n "$RUNLEVEL_START" || RUNLEVEL_START="default"
+ RC_PATH=/usr/sbin:/usr/bin:/sbin:/bin
+
+ if test -x "$vdir/vdir/lib/rcscripts/sh/init-vserver.sh"; then
+ RC_WRAP=/lib/rcscripts/sh/init-vserver.sh
+ elif test -x "$vdir/vdir/lib/rc/sh/init-vserver.sh"; then
+ RC_WRAP=/lib/rc/sh/init-vserver.sh
+ else
+ panic "init-vserver.sh not found; aborting"
+ fi
- INITCMD_START=( env TERM=$TERM /lib/rcscripts/sh/init-vserver.sh "$RUNLEVEL_START" )
- INITCMD_STOP=( env -i TERM=$TERM RUNLEVEL=0 /sbin/rc shutdown )
+ INITCMD_START=( env TERM=$TERM $RC_WRAP "$RUNLEVEL_START" )
+ INITCMD_STOP=( env -i PATH=$RC_PATH TERM=$TERM RUNLEVEL=0 /sbin/rc shutdown )
INITCMD_PREPARE=( $_FAKE_RUNLEVEL 3 /var/run/utmp )
;;
return 0
}
+function _getTunInfo
+{
+ local iface="$1"
+
+ test -e "$iface/tun" -o -e "$iface/tap" || return 1
+ test ! -e "$iface/tun" || echo --tun
+ test ! -e "$iface/tap" || echo --tap
+ test ! -e "$iface/nocsum" || echo --~checksum
+ test -e "$iface/shared" || echo --nid-failure-ok "$N_CONTEXT"
+ if test -e "$iface/uid"; then
+ local uid
+ getFileValue uid "$iface/uid"
+ echo --uid "$uid"
+ fi
+ if test -e "$iface/gid"; then
+ local gid
+ getFileValue gid "$iface/gid"
+ echo --gid "$gid"
+ fi
+ if test -e "$iface/linktype"; then
+ local linktype
+ getFileValue linktype "$iface/linktype"
+ echo --linktype "$linktype"
+ fi
+ return 0
+}
+
## Usage: _processSingleInterface <interface-directory>
function _processSingleInterface
{
if ! test -e "$iface"/indirect; then
# XXX: IPv6 hack
- use_bcast="broadcast ${bcast:-+}"
+ local use_bcast="broadcast ${bcast:-+}"
echo "$ip" | $_GREP -q : && use_bcast=
+
+ local tun_info
+ if tun_info=$(_getTunInfo "$iface"); then
+ _addInterfaceCmd TUNCTL "$dev" $tun_info
+ fi
+
_addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" $use_bcast ${name:+label "$dev:$name"} dev "$dev"
#_addInterfaceCmd IP_ROUTE "$ip${prefix:+/$prefix}" dev "$dev"
_addInterfaceCmd IP_LINK "$dev" $up
- elif ! test -n "$ctx"; then
+ elif ! test -n "$N_CONTEXT"; then
echo $"Using 'dummy' (indirect) for interface '$dev' requires a fixed context number; dynamic ctx are not supported" >&2
return 1
else
- test -z "$mac" || _generateMac mac "$(basename $iface)" "$ctx" || return 1
+ test -z "$mac" || _generateMac mac "$(basename $iface)" "$N_CONTEXT" || return 1
_addInterfaceCmd MODPROBE dummy "$dev"
_addInterfaceCmd IP_LINK dev dummy0 address "$mac"
_addInterfaceCmd NAMEIF "$dev" "$mac"
_addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" dev "$dev"
- test -z "$extip" || _addInterfaceCmd IPTABLES "$ip${prefix:+/$prefix}" ${name:+label "$dev:$name"} "$ctx" "$extip"
+ test -z "$extip" || _addInterfaceCmd IPTABLES "$ip${prefix:+/$prefix}" ${name:+label "$dev:$name"} "$N_CONTEXT" "$extip"
fi
break
function _generateInterfaceOptions
{
local iface
- local ctx
- test ! -e "$1"/context || read ctx <"$1"/context
+ # XXX: This is here instead of in _generateChbindOptions
+ # to avoid a circular dependency
+ getFileValue N_CONTEXT "$1/ncontext" "$1/context"
+ test -n "$N_CONTEXT" -o -z "$S_CONTEXT" || N_CONTEXT="$S_CONTEXT"
for iface in "$1/interfaces/"*; do
test -d "$iface" || continue
_HAVE_INTERFACE_OPTIONS=1
}
-function _generateTagOptions
-{
- local vdir="$1"
- local tag
-
- getFileValue tag "$vdir/tag" "$vdir/context" || return 0
-
- OPTS_VTAG_CREATE=( --tag "$tag" )
- OPTS_VTAG_ENTER=( --tag "$tag" )
-}
-
function enableInterfaces
{
local i=0
IP_ADDR_FLUSH) $_IP addr flush "$@";;
IP_LINK) $_IP link set "$@";;
IP_ROUTE) $_IP route add "$@";;
+ TUNCTL)
+ local dev="$1"
+ shift
+ $_TUNCTL --persist "$@" "$dev"
+ ;;
*) echo "Unknown interface-command type '$type'" >&2; false;;
esac
IP_ADDR_FLUSH) ;;
IP_LINK) ;; ## Ignore the link-down command for now
IP_ROUTE) $_IP route del "$@";;
+ TUNCTL) $_TUNCTL --~persist "$1";;
*) echo "Unknown interface-command type '$type'" >&2; false;;
esac
done
unlock 1
}
+function _generateTagOptions
+{
+ local vdir="$1"
+ local tag
+
+ getFileValue tag "$vdir/tag" "$vdir/context"
+ test -n "$tag" || return 0
+
+ OPTS_VTAG_CREATE=( --tag "$tag" )
+ OPTS_VTAG_ENTER=( --tag "$tag" )
+}
+
+function _generateMemctrlOptions
+{
+ local vdir="$1"
+ local badness
+
+ getFileValue badness "$vdir/badness"
+ test -n "$badness" || return 0
+
+ OPTS_VMEMCTRL=( --badness "$badness" )
+}
+
+function _generateSpaceOptions
+{
+ local vdir="$1"
+ local d="$vdir"/spaces
+
+ test ! -e "$d"/pid || \
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid )
+
+ test ! -e "$d"/net || {
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net )
+ # network context and namespace don't make much sense
+ _HAVE_CHBIND_OPTIONS=1
+ CHBIND_CMD=()
+ }
+
+ local mask
+ getFileValue mask "$d"/mask || \
+ OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --mask "$mask" )
+}
+
## Usage: prepareInit <vserver-directory>
function prepareInit
{
_generateScheduleOptions "$1"
_generatePersonalityOptions "$1"
_generateTagOptions "$1"
+ _generateMemctrlOptions "$1"
+ _generateSpaceOptions "$1"
if test -n "$_IS_FAKEINIT"; then
CHCONTEXT_INIT_OPTS=( --disconnect --flag fakeinit )
test -n "$is_ok"
}
+function fsckAllFS
+{
+ local cfgdir=$1
+ local fstab="$cfgdir"/fstab
+ local FSTAB_FILE
+ local fsck_exitcode
+
+ test -e "$fstab" || return 0
+
+ export FSTAB_FILE="$fstab"
+ $_FSCK -s -n -A -T
+ fsck_exitcode=$?
+ test "$fsck_exitcode" -eq 0 -o \
+ "$fsck_exitcode" -eq 1 || return $fsck_exitcode
+}
+
## Usage: waitForSync <vserver> <context> <vshelper-fifo-varname>
function initSync
{
local root=$($_VSERVER_INFO "$1" VDIR 1)
local -a list
local -a skip
- local tmp
+ local i
+ local j
getFileArray skip "$vdir"/namespace-cleanup-skip \
"$__CONFDIR"/.defaults/namespace-cleanup-skip || :
# these are things that have to be accessible post-cleanup
- for tmp in "$root" "$__SBINDIR" "$__PKGLIBDIR" "$vdir" \
+ for i in "$root" "$__SBINDIR" "$__PKGLIBDIR" "$vdir" \
"$__PKGSTATEDIR" "$__LOCKDIR" /usr/local /tmp "${skip[@]}"; do
- while test -n "$tmp"; do
- list=( "${list[@]}" "$tmp" )
- tmp="${tmp%/*}"
+ local real=`getPhysicalDir "$i"`
+ test "$i" != "$real" || real=
+ for j in "$i" "$real"; do
+ while test -n "$j"; do
+ list=( "${list[@]}" "$j" )
+ j="${j%/*}"
+ done
done
done
local -a list_umount
- while read dev path opts; do
+ while read -r dev path opts; do
test -n "$path" || continue
for i in "$root" /dev /proc; do
test "${path#$i}" != "$path" && continue 2
done
}
-function loadDeviceMap
+function handleDeviceMap
{
- local xid="$1"
- local dir="$2"
+ local op="$1"
+ local xid="$2"
+ local dir="$3"
local flags device target
test -d "$dir" || return 0
+ test -n "$xid" || return 0
for i in "$dir"/*; do
test -d "$i" || continue
vdevmap_opts=( "${vdevmap_opts[@]}" ${flags:+--flags "$flags"} \
${device:+--device "$device"} ${target:+--target "$target"} )
- $_VDEVMAP --xid "$xid" "${vdevmap_opts[@]}" || return $?
+ $_VDEVMAP --xid "$xid" "$op" "${vdevmap_opts[@]}" || return $?
done
}
-# $Id: vserver.start 2599 2007-08-26 21:30:50Z dhozac $ --*- sh -*--
+# $Id: vserver.start 2664 2008-01-20 07:56:23Z dhozac $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" initialize
popd >/dev/null
+fsckAllFS "$VSERVER_DIR"
+
mountRootFS "$VSERVER_DIR"
generateOptions "$VSERVER_DIR"
enableInterfaces "$VSERVER_DIR" && have_interfaces=1
-mountVserver "$VSERVER_DIR" && is_mounted=1
-prepareInit "$VSERVER_DIR"
-addtoCPUSET "$VSERVER_DIR"
+mountVserver "$VSERVER_DIR" && is_mounted=1
+prepareInit "$VSERVER_DIR"
+addtoCPUSET "$VSERVER_DIR"
+
+handleDeviceMap --set "$S_CONTEXT" "$VSERVER_DIR/apps/vdevmap"
pushd "$VSERVER_DIR"/vdir/ >/dev/null
execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" pre-start
"${CHBIND_CMD[@]}" \
$_EXEC_ULIMIT "$VSERVER_DIR"/ulimits \
$_VTAG --create "${OPTS_VTAG_CREATE[@]}" --silent -- \
+ $_VSPACE --new "${OPTS_VSPACE[@]}" -- \
$_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \
${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \
${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \
+ $_VSPACE --set "${OPTS_VSPACE[@]}" -- \
$_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \
$_VSCHED --xid self --force "${OPTS_VSCHED[@]}" -- \
$_VSYSCTL --xid self --dir "$VSERVER_DIR"/sysctl --missingok -- \
$_VUNAME --xid self --dir "$VSERVER_DIR"/uts --missingok -- \
+ $_VMEMCTRL --xid self --set "${OPTS_VMEMCTRL[@]}" -- \
"${VSERVER_EXTRA_CMDS[@]}" \
$_VUNAME --xid self --set -t context="$VSERVER_DIR" -- \
$_VATTRIBUTE --set "${OPTS_VATTRIBUTE[@]}" -- \
-# $Id: vserver.stop 2602 2007-08-27 10:53:04Z dhozac $ --*- sh -*--
+# $Id: vserver.stop 2704 2008-03-16 03:30:22Z dhozac $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
OPTION_FORCE_SYNC=1
+while test "$#" -gt 0; do
+ case "$1" in
+ (--rescue-init) shift; _IS_FAKEINIT=1;;
+ (--) shift; break;;
+ (-*) panic $"vserver ... stop: unknown option '$1'";;
+ esac
+done
+
set -e
generateOptions "$VSERVER_DIR"
set +e
test -z "$OPTION_DEFAULTTTY" || setDefaultTTY "$VSERVER_DIR"
+$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag !SC_HELPER
+
fail=
initWait "$VSERVER_DIR" "$S_CONTEXT" vwait_statdir
if test -n "$_IS_FAKEINIT" && \
elif $_VSERVER_INFO - FEATURE migrate; then
"${NICE_CMD[@]}" \
"${CHBIND_CMD[@]}" \
+ "$_VSPACE" --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
"$_VTAG" --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
$_VCONTEXT $SILENT_OPT --migrate --chroot --xid "$S_CONTEXT" -- \
"${INITCMD_STOP[@]}" || fail=1
fi
# Remove persistent so those contexts can be stopped
-$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag ~persistent 2>/dev/null || :
-if $_VSERVER_INFO -q "$S_CONTEXT" XIDTYPE static &&
+$_VATTRIBUTE --set --xid "$S_CONTEXT" --flag !persistent 2>/dev/null || :
+if $_VSERVER_INFO -q "$N_CONTEXT" XIDTYPE static &&
$_VSERVER_INFO - FEATURE vnet; then
- $_NATTRIBUTE --set --nid "$S_CONTEXT" --flag ~persistent 2>/dev/null || :
+ $_NATTRIBUTE --set --nid "$N_CONTEXT" --flag !persistent 2>/dev/null || :
fi
vshelper.doStopSync
echo $"Vserver '$VSERVER_DIR' still running unexpectedly; please investigate it manually..." >&2
execScriptlets "$VSERVER_DIR" "$VSERVER_NAME" post-stop
-
+
+handleDeviceMap --unset "$S_CONTEXT" "$VSERVER_DIR/apps/vdevmap"
+
umountVserver "$VSERVER_DIR" || :
disableInterfaces "$VSERVER_DIR"
-# $Id: vserver.suexec 2599 2007-08-26 21:30:50Z dhozac $ --*- sh -*--
+# $Id: vserver.suexec 2669 2008-01-22 09:19:57Z dhozac $ --*- sh -*--
# Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
"${CHBIND_CMD[@]}" \
$_EXEC_ULIMIT "$VSERVER_DIR/ulimits" \
${USE_VNAMESPACE:+$_VNAMESPACE --enter "$S_CONTEXT" -- } \
+ $_VSPACE --enter "$S_CONTEXT" "${OPTS_VSPACE[@]}" -- \
$_VTAG --migrate "${OPTS_VTAG_ENTER[@]}" --silent -- \
$_VCONTEXT $SILENT_OPT --migrate --chroot \
--xid "$S_CONTEXT" --uid "$user" "${OPTS_VCONTEXT_ENTER[@]}" -- \
#!/bin/bash
-# $Id: vupdateworld 2486 2007-02-05 18:08:17Z hollow $
+# $Id: vupdateworld 2635 2007-11-17 23:52:59Z hollow $
# Copyright (C) 2006 Benedikt Boehm <hollow@gentoo.org>
#
(--debug) send_through=( "${send_through[@]}" "$1" ); set -x;;
(--quiet|-q) send_through=( "${send_through[@]}" "$1" );;
(--all) vsomething_opts=( "${vsomething_opts[@]}" "$1" );;
- (--) shift; break;;
- (*) echo $"vemerge: internal error; arg=='$1'" >&2; exit 1;;
+ (--) test ${#vsomething_opts[@]} -eq 0 && shift; break;;
+ (*) echo $"vupdateworld: internal error; arg=='$1'" >&2; exit 1;;
esac
shift
done
shift
done
-VSOMETHING_TITLE=vemerge
+VSOMETHING_TITLE=vupdateworld
VSOMETHING_PKGMGMT=1
export VSOMETHING_TITLE VSOMETHING_PKGMGMT
-
-test ${#vsomething_opts[@]} -eq 0 || vsomething_opts=( "${vsomething_opts[@]}" -- )
exec $_VSOMETHING "${send_through[@]}" emerge "${vsomething_opts[@]}" "${vserver_names[@]}" -- world --update --deep --newuse "$@"
-## $Id: Makefile-files 2589 2007-08-16 03:06:50Z dhozac $ -*- makefile -*-
+## $Id: Makefile-files 2697 2008-03-01 01:24:07Z dhozac $ -*- makefile -*-
## Copyright (C) 2003,2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
src/vsysctl \
src/vclone \
src/h2ext \
- src/vtag
+ src/vtag \
+ src/vspace \
+ src/vmemctrl \
+ src/tunctl
-if ENSC_CAN_BEECRYPT_WITH_DIETLIBC
+if ENSC_CAN_CRYPTO_WITH_DIETLIBC
DIETPROGS += src/vhashify
endif
src/vhashify.h \
src/vhashify-init.hc \
src/vserver-visitdir.hc \
- src/context-sync.hc
+ src/context-sync.hc \
+ src/attribute-util.h
pkglib_PROGRAMS += src/capchroot \
src/chain-echo \
src/chbind-compat \
src/vsysctl \
src/h2ext \
+ src/tunctl \
$(src_pkglib_C99_X_PROGS) \
$(src_pkglib_CXX_X_PROGS)
if ENSC_HAVE_C99_COMPILER
-if ENSC_HAVE_BEECRYPT
+if ENSC_HAVE_CRYPTO
pkglib_PROGRAMS += src/vhashify
-endif ENSC_HAVE_BEECRYPT
+endif ENSC_HAVE_CRYPTO
endif ENSC_HAVE_C99_COMPILER
legacy_PROGRAMS += src/ifspec \
src/naddress \
src/vdevmap \
src/vtag \
+ src/vspace \
+ src/vmemctrl \
$(src_sbin_CXX_X_PROGS)
if ENSC_HAVE_C99_COMPILER
src_vunify_LDFLAGS = $(VSERVER_LDFLGS)
src_vhashify_SOURCES = src/vhashify.c
-if ENSC_CAN_BEECRYPT_WITH_DIETLIBC
-src_vhashify_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
+src_vhashify_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+if ENSC_CAN_CRYPTO_WITH_DIETLIBC
+src_vhashify_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
src_vhashify_LDFLAGS = $(VSERVER_LDFLGS)
else
-src_vhashify_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
-src_vhashify_LDFLAGS =
+src_vhashify_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) $(ENSC_CRYPTO_LIB)
+src_vhashify_LDFLAGS = -Wl,--as-needed
endif
src_vuname_SOURCES = src/vuname.c
src_vtag_LDADD = $(VSERVER_LDADDS)
src_vtag_LDFLAGS = $(VSERVER_LDADDS)
+src_vspace_SOURCES = src/vspace.c
+src_vspace_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vspace_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_vmemctrl_SOURCES = src/vmemctrl.c
+src_vmemctrl_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_vmemctrl_LDFLAGS = $(VSERVER_LDFLGS)
+
+src_tunctl_SOURCES = src/tunctl.c
+src_tunctl_LDADD = $(VSERVER_LDADDS) $(LIBINTERNAL)
+src_tunctl_LDFLAGS = $(VSERVER_LDFLGS)
+
EXTRA_PROGRAMS += $(src_sbin_CXX_PROGS) $(src_pkglib_CXX_PROGS)
TESTS_ENVIRONMENT += srctestsuitedir=$(top_builddir)/src/testsuite
--- /dev/null
+// $Id$ --*- c -*--
+
+// Copyright (C) 2007-2008 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#ifndef _ATTRIBUTE_UTIL_H
+#define _ATTRIBUTE_UTIL_H
+
+static inline int
+ffsull(unsigned long long word)
+{
+ int bit;
+ for (bit = 0; bit < 64; bit++) {
+ if (word & (1ULL << bit))
+ break;
+ }
+ if (bit == 64)
+ bit = 0;
+ return bit;
+}
+
+#define print_bitfield(fd, type, name, var) \
+ do { \
+ int first; \
+ WRITE_MSG(fd, name ":\n"); \
+ first = 1; \
+ while (1) { \
+ char const *i; \
+ i = vc_lo ## type ## 2text(var); \
+ if (!i) \
+ break; \
+ if (!first) \
+ WRITE_MSG(fd, ","); \
+ else \
+ first = 0; \
+ WRITE_STR(fd, i); \
+ } \
+ while (*(var)) { \
+ int bit = ffsull(*(var)); \
+ if (!bit) \
+ break; \
+ if (!first) \
+ WRITE_MSG(fd, ","); \
+ else \
+ first = 0; \
+ WRITE_MSG(fd, "^"); \
+ WRITE_INT(fd, bit); \
+ *(var) &= ~(1ULL << bit); \
+ } \
+ WRITE_MSG(fd, "\n"); \
+ } while (0)
+
+#endif
-// $Id$
+// $Id: h2ext.c 2674 2008-01-27 07:55:13Z dhozac $
// Copyright (C) 2007 Daniel Hokka Zakrisson <daniel@hozac.com>
//
}
}
-static inline ALWAYSINLINE void
-WRITE_INT(int fd, int num)
-{
- char buf[sizeof(num)*3+2];
- size_t l;
-
- l = utilvserver_fmt_long(buf,num);
-
- Vwrite(fd, buf, l);
-}
-
static int
load_description(const char *file, file_format_t **head)
{
-// $Id: lockfile.c 1447 2004-04-13 08:27:50Z ensc $ --*- c -*--
+// $Id: lockfile.c 2696 2008-03-01 01:20:42Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
" 2. 'lockfile' will be called\n"
" 3a. 'lockfile' waits until somebody opens the <syncpipe> for reading\n"
" 3b. parent (shell) opens the pipe for reading and blocks\n"
- " 4. 'lockfile' calls flock() on the <lockfile>\n"
+ " 4. 'lockfile' calls lockf() on the <lockfile>\n"
" 5. 'lockfile' closes the <syncpipe>\n"
" 6. parent (shell) unlocks since <syncpipe> is closed\n"
" 7. 'lockfile' goes into infinite loop\n"
if ((sync_fd=open(argv[idx+1], O_WRONLY))==-1)
perror("lockfile: open(<syncpipe>)");
- else if ((fd=open(argv[idx], O_CREAT|O_RDONLY|O_NOFOLLOW|O_NONBLOCK, 0644))==-1)
+ else if ((fd=open(argv[idx], O_CREAT|O_WRONLY|O_NOFOLLOW|O_NONBLOCK, 0644))==-1)
perror("lockfile: open(<lockfile>)");
else if (unlink(argv[idx+1])==-1)
perror("lockfile: unlink(<syncpipe>)");
else while (time(0)<end_time && getppid()==ppid) {
int duration = end_time-time(0);
alarm(MIN(10, MAX(duration,1)));
-
- if (flock(fd,LOCK_EX)==-1) {
+
+ if (lockf(fd,F_LOCK,0)==-1) {
if (errno==EINTR) continue;
- perror("lockfile: flock()");
+ perror("lockfile: lockf()");
break;
}
signal(SIGALRM, SIG_IGN);
-// $Id: naddress.c 2584 2007-08-10 15:28:42Z dhozac $
+// $Id: naddress.c 2668 2008-01-21 14:13:52Z dhozac $
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// Copyright (C) 2006 Daniel Hokka Zakrisson <daniel@hozac.com>
return prefix;
}
-static void
-readIP(char const *str, struct vc_ips **ips, uint16_t type)
+static int
+parseIPFormat(char const *str_c, struct vc_ips **ips,
+ char const *format)
{
- if (ifconfig_getaddr(str, &(*ips)->a.vna_v4_ip.s_addr, &(*ips)->a.vna_v4_mask.s_addr, NULL)==-1) {
- char *pt;
- char tmpopt[strlen(str)+1];
+ size_t len = strlen(str_c);
+ char const *fc;
+ char str[len + 1], *ptr = str;
+ int ret = 0;
+
+ strcpy(str, str_c);
+
+ /* XXX: condition at the bottom */
+ for (fc = format; ; fc += 2) {
+ char *sep;
+ void *dst;
+ unsigned long limit = 0;
+
+ switch (*fc) {
+ case '1': dst = &(*ips)->a.s.ip; break;
+ case '2': dst = &(*ips)->a.s.ip2; break;
+ case 'm': dst = &(*ips)->a.s.mask; break;
+ default: goto out;
+ }
- strcpy(tmpopt,str);
- pt = strchr(tmpopt,'/');
- if (pt)
- *pt++ = '\0';
+ if (len == 0)
+ goto out;
+ if ((sep = memchr(ptr, *(fc + 1), len)) == NULL)
+ sep = ptr + len;
+ *sep = '\0';
- if (convertAddress(tmpopt, &(*ips)->a.vna_type, &(*ips)->a.vna_v4_ip.s_addr) == -1) {
- WRITE_MSG(2, "Invalid IP number '");
- WRITE_STR(2, tmpopt);
- WRITE_MSG(2, "'\n");
- exit(wrapper_exit_code);
+ /* This is ugly, and means that m cannot be first */
+ switch ((*ips)->a.vna_type) {
+ case VC_NXA_TYPE_IPV4: limit = 32; break;
+ case VC_NXA_TYPE_IPV6: limit = 128; break;
}
- if (pt==0) {
+ /* This is required due to the dain-bramage that is inet_pton in dietlibc.
+ * Essentially any number will be parsed as a valid IPv4 address...
+ */
+ if (*fc == 'm' && strchr(ptr, ':') == NULL && strchr(ptr, '.') == NULL) {
+ /* This is a prefix, not a netmask */
+ unsigned long sz;
+
+ if (!isNumberUnsigned(ptr, &sz, true) || sz > limit) {
+ ret = -1;
+ goto out;
+ }
+
+ (*ips)->a.vna_prefix = sz;
switch ((*ips)->a.vna_type) {
case VC_NXA_TYPE_IPV4:
- (*ips)->a.vna_v4_mask.s_addr = htonl(0xffffff00);
- (*ips)->a.vna_prefix = 24;
+ (*ips)->a.vna_v4_mask.s_addr = htonl(~((1 << (32 - sz)) - 1));
break;
case VC_NXA_TYPE_IPV6:
- (*ips)->a.vna_prefix = 64;
- (*ips)->a.vna_v6_mask.s6_addr32[0] = (*ips)->a.vna_v6_mask.s6_addr32[1] = 0xffffffff;
- (*ips)->a.vna_v6_mask.s6_addr32[2] = (*ips)->a.vna_v6_mask.s6_addr32[3] = 0x00000000;
+ ipv6PrefixToMask(&(*ips)->a.vna_v6_mask, sz);
break;
- default: break;
}
}
else {
- // Ok, we have a network size, not a netmask
- if (strchr(pt,'.')==0 && strchr(pt,':')==0) {
- unsigned long sz, limit = 0;
-
- switch ((*ips)->a.vna_type) {
- case VC_NXA_TYPE_IPV4: limit = 32; break;
- case VC_NXA_TYPE_IPV6: limit = 128; break;
- default: break;
- }
-
- if (!isNumberUnsigned(pt, &sz, true) || sz > limit) {
- WRITE_MSG(2, "Invalid prefix '");
- WRITE_STR(2, pt);
- WRITE_MSG(2, "'\n");
- exit(wrapper_exit_code);
- }
-
- (*ips)->a.vna_prefix = sz;
- switch ((*ips)->a.vna_type) {
- case VC_NXA_TYPE_IPV4:
- (*ips)->a.vna_v4_mask.s_addr = htonl(~((1 << (32 - sz)) - 1));
- break;
- case VC_NXA_TYPE_IPV6:
- ipv6PrefixToMask(&(*ips)->a.vna_v6_mask, (*ips)->a.vna_prefix);
- break;
- default: break;
- }
+ if (convertAddress(ptr, &(*ips)->a.vna_type, dst) == -1) {
+ ret = -1;
+ goto out;
}
- else {
- int af, limit;
- void *mask;
- switch ((*ips)->a.vna_type) {
- case VC_NXA_TYPE_IPV4:
- af = AF_INET;
- mask = &(*ips)->a.vna_v4_mask.s_addr;
- limit = 32;
- break;
- case VC_NXA_TYPE_IPV6:
- af = AF_INET6;
- mask = (*ips)->a.vna_v6_mask.s6_addr32;
- limit = 128;
- break;
- default:
- return;
- }
- if (inet_pton(af, pt, mask) < 0) {
- WRITE_MSG(2, "Invalid netmask '");
- WRITE_STR(2, pt);
- WRITE_MSG(2, "'\n");
- exit(wrapper_exit_code);
- }
- (*ips)->a.vna_prefix = maskToPrefix(mask, limit);
+ else if (*fc == 'm') {
+ /* Got a mask, set the prefix */
+ (*ips)->a.vna_prefix = maskToPrefix(&(*ips)->a.s.mask, limit);
}
}
+
+ ret++;
+ len -= (sep - ptr);
+ ptr = sep + 1;
+
+ if (*(fc + 1) == '\0')
+ break;
+ }
+
+out:
+ free(str);
+ return ret;
+}
+
+static void
+readIP(char const *str, struct vc_ips **ips, uint16_t type)
+{
+ if (ifconfig_getaddr(str, &(*ips)->a.vna_v4_ip.s_addr, &(*ips)->a.vna_v4_mask.s_addr, NULL)==-1) {
+ if (parseIPFormat(str, ips, "1/m") < 1) {
+ WRITE_MSG(2, "Invalid IP number '");
+ WRITE_STR(2, str);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
}
else
(*ips)->a.vna_type = VC_NXA_TYPE_IPV4;
*ips = (*ips)->next;
}
+static void
+readRange(char const *str, struct vc_ips **ips)
+{
+ if (parseIPFormat(str, ips, "1-2/m") < 2) {
+ WRITE_MSG(2, "Invalid range '");
+ WRITE_STR(2, str);
+ WRITE_MSG(2, "'\n");
+ exit(wrapper_exit_code);
+ }
+ (*ips)->a.vna_type |= VC_NXA_TYPE_RANGE;
+ (*ips)->next = calloc(1, sizeof(struct vc_ips));
+ *ips = (*ips)->next;
+}
+
static void
tellAddress(struct vc_net_addr *addr, bool silent)
{
case CMD_SET : args.do_set = true; break;
case CMD_IP : readIP(optarg, &ips, VC_NXA_TYPE_ADDR); break;
case CMD_MASK : readIP(optarg, &ips, VC_NXA_TYPE_MASK); break;
- case CMD_RANGE : readIP(optarg, &ips, VC_NXA_TYPE_RANGE); break;
+ case CMD_RANGE : readRange(optarg, &ips); break;
case CMD_BCAST : readBcast(optarg, &ips); break;
case CMD_LBACK : readIP(optarg, &ips, VC_NXA_TYPE_ADDR | VC_NXA_MOD_LBACK); break;
default :
-// $Id: nattribute.c 2585 2007-08-12 00:13:31Z dhozac $ --*- c -*--
+// $Id: nattribute.c 2694 2008-03-01 01:07:49Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// Copyright (C) 2006 Daniel Hokka Zakrisson
#endif
#include "util.h"
+#include "attribute-util.h"
#include <lib/vserver.h>
#include <getopt.h>
#define CMD_CAP 0x2002
#define CMD_FLAG 0x2003
#define CMD_SECURE 0x2004
+#define CMD_GET 0x2005
int wrapper_exit_code = 1;
{ "ncap", required_argument, 0, CMD_CAP },
{ "flag", required_argument, 0, CMD_FLAG },
{ "secure", no_argument, 0, CMD_SECURE },
+ { "get", no_argument, 0, CMD_GET },
{0,0,0,0}
};
struct Arguments {
+ int mode;
nid_t nid;
- struct vc_net_flags flags;
- struct vc_net_caps caps;
+ struct vc_net_flags flags;
+ struct vc_net_caps caps;
};
static void
WRITE_MSG(fd, "Usage:\n ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " --set [--nid <nid>] [--ncap [~!]<ncap>] [--flag [~!]<flag>] [--secure] -- [<program> <args>*]\n"
+ " {--set|--get} [--nid <nid>] [--ncap [~!]<ncap>] [--flag [~!]<flag>] [--secure] --\n"
+ " [<program> <args>*]\n"
"\n"
" --ncap <cap> ... network capability to be added\n"
" --flag <flag> ... network flag to be added\n"
showVersion()
{
WRITE_MSG(1,
- "nattribute " VERSION " -- sets attributes of network contexts\n"
+ "nattribute " VERSION " -- sets/gets attributes of network contexts\n"
"This program is part of " PACKAGE_STRING "\n\n"
"Copyright (C) 2004 Enrico Scholz\n"
"Copyright (C) 2006 Daniel Hokka Zakrisson\n"
flags->mask = VC_NXF_HIDE_NETIF;
}
+static int
+printAttrs(struct Arguments *args)
+{
+ struct vc_net_flags flags;
+ struct vc_net_caps caps;
+
+ Evc_get_nflags(args->nid, &flags);
+ Evc_get_ncaps(args->nid, &caps);
+
+ print_bitfield(1, ncap, "ncapabilities", &caps.ncaps);
+ print_bitfield(1, nflag, "nflags", &flags.flagword);
+
+ return 0;
+}
+
int main(int argc, char *argv[])
{
struct Arguments args = {
+ .mode = CMD_SET,
.nid = VC_NOCTX,
.flags = { .flagword = 0, .mask = 0 },
.caps = { .ncaps = 0, .cmask = 0 },
switch (c) {
case CMD_HELP : showHelp(1, argv[0], 0);
case CMD_VERSION : showVersion();
- case CMD_SET : break; // default op currently
+ case CMD_SET : args.mode = CMD_SET; break;
+ case CMD_GET : args.mode = CMD_GET; break;
case CMD_NID : args.nid = Evc_nidopt2nid(optarg,true); break;
case CMD_FLAG : parseFlags(optarg, &args.flags); break;
case CMD_CAP : parseNCaps(optarg, &args.caps); break;
if (args.nid==VC_NOCTX) args.nid = Evc_get_task_nid(0);
- if (args.caps.cmask &&
- vc_set_ncaps(args.nid, &args.caps)==-1)
- perror(ENSC_WRAPPERS_PREFIX "vc_set_ncaps()");
- else if (args.flags.mask &&
- vc_set_nflags(args.nid, &args.flags)==-1)
- perror(ENSC_WRAPPERS_PREFIX "vc_set_nflags()");
- else if (optind<argc)
- EexecvpD(argv[optind], argv+optind);
- else
- return EXIT_SUCCESS;
+ if (args.mode == CMD_SET) {
+ if (args.caps.cmask &&
+ vc_set_ncaps(args.nid, &args.caps)==-1)
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_ncaps()");
+ else if (args.flags.mask &&
+ vc_set_nflags(args.nid, &args.flags)==-1)
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_nflags()");
+ else if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+ else
+ return EXIT_SUCCESS;
+ }
+ else if (args.mode == CMD_GET) {
+ printAttrs(&args);
+ if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+ else
+ return EXIT_SUCCESS;
+ }
return EXIT_FAILURE;
}
-// $Id: rpm-fake.c 2578 2007-08-08 20:05:26Z dhozac $ --*- c++ -*--
+// $Id: rpm-fake.c 2693 2008-03-01 00:26:31Z dhozac $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
static bool is_initialized = false;
+static bool ctx_created = false;
+
//DECLARE(rpm_execcon);
//DECLARE(execv);
DECLARE(getpwnam);
char buf[sizeof(xid_t)*3 + 128];
size_t l;
struct vc_ctx_caps caps;
+ struct vc_ctx_flags flags;
strcpy(buf, "rpm-fake.so #");
l = utilvserver_fmt_uint(buf+sizeof("rpm-fake.so #")-1, getppid());
caps.bcaps = ~vc_get_insecurebcaps();
caps.bmask = ~0ull;
Evc_set_ccaps(rc, &caps);
+
+ flags.flagword = 0;
+ flags.mask = VC_VXF_SC_HELPER;
+ Evc_set_cflags(rc, &flags);
// context will be activated later...
xid = rc;
res = true;
+ ctx_created = true;
}
}
uint8_t c;
if (read(sync_sock, &c, 1)!=1) { /*...*/ }
if (write(pw_sock, "Q", 1)!=1) { /*...*/ }
+ if (ctx_created) {
+ if (vc_isSupported(vcFEATURE_VWAIT)) {
+ if (vc_wait_exit(ctx)==-1) { /*...*/ }
+ }
+ else {
+ /* this can race */
+ if (read(sync_sock, &c, 1)!=0) { /*...*/}
+ }
+ }
}
}
-// $Id: secure-mount.c 2480 2007-01-28 11:35:19Z dhozac $ --*- c++ -*--
+// $Id: secure-mount.c 2678 2008-02-16 22:09:30Z dhozac $ --*- c++ -*--
// Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
goto err0;
}
- if (flock(fd, LOCK_EX)==-1) {
- perror("secure-mount: flock()");
+ if (lockf(fd, F_LOCK, 0)==-1) {
+ perror("secure-mount: lockf()");
goto err1;
}
-## $Id: Makefile-files 2245 2006-01-04 17:28:42Z ensc $ --*- makefile -*--
+## $Id: Makefile-files 2685 2008-02-21 23:22:23Z ensc $ --*- makefile -*--
## Copyright (C) 2003 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
##
src_testsuite_check_passive_PRGS = src/testsuite/rpm-fake-test
if ENSC_HAVE_C99_COMPILER
-if ENSC_HAVE_BEECRYPT
+if ENSC_HAVE_CRYPTO
src_testsuite_check_passive_PRGS += src/testsuite/hashcalc \
src/testsuite/hashcalc-plain
endif
if ENSC_HAVE_C99_COMPILER
src_testsuite_check_src_C99_SCRPTS = src/testsuite/vunify-test.sh
-if ENSC_HAVE_BEECRYPT
+if ENSC_HAVE_CRYPTO
src_testsuite_check_src_C99_SCRPTS += src/testsuite/hashcalc-plain.sh \
src/testsuite/hashcalc.sh
endif
src_testsuite_hashcalc_SOURCES = src/testsuite/hashcalc.c
src_testsuite_hashcalc_plain_SOURCES = src/testsuite/hashcalc-plain.c
-if ENSC_CAN_BEECRYPT_WITH_DIETLIBC
-src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
+src_testsuite_hashcalc_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+src_testsuite_hashcalc_plain_CFLAGS = $(AM_CFLAGS) $(ENSC_CRYPTO_CFLAGS)
+
+if ENSC_CAN_CRYPTO_WITH_DIETLIBC
+src_testsuite_hashcalc_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
src_testsuite_hashcalc_LDFLAGS = $(VSERVER_LDFLGS)
-src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) -lbeecrypt $(VSERVER_LDADDS)
+src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL) $(LIBENSCVECTOR) $(ENSC_CRYPTO_LIB) $(VSERVER_LDADDS)
src_testsuite_hashcalc_plain_LDFLAGS = $(VSERVER_LDFLGS)
else
-src_testsuite_hashcalc_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
-src_testsuite_hashcalc_LDFLAGS =
+src_testsuite_hashcalc_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) $(ENSC_CRYPTO_LIB)
+src_testsuite_hashcalc_LDFLAGS = -Wl,--as-needed
-src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) -lbeecrypt
-src_testsuite_hashcalc_plain_LDFLAGS =
+src_testsuite_hashcalc_plain_LDADD = $(LIBINTERNAL_GLIBC) $(LIBENSCVECTOR_GLIBC) $(LIBVSERVER_GLIBC) $(ENSC_CRYPTO_LIB)
+src_testsuite_hashcalc_plain_LDFLAGS = -Wl,--as-needed
endif
src_testsuite_CPPFLAGS = -I $(top_srcdir)/src -D ENSC_TESTSUITE
-// $Id: hashcalc-plain.c 2245 2006-01-04 17:28:42Z ensc $ --*- c -*--
+// $Id: hashcalc-plain.c 2685 2008-02-21 23:22:23Z ensc $ --*- c -*--
// Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
# include <config.h>
#endif
-#include <beecrypt/beecrypt.h>
+#include <lib_internal/crypto-wrapper.h>
#include <stdbool.h>
#include <unistd.h>
#include <fcntl.h>
#define HASH_BLOCKSIZE 0x10000000u
static bool
-convertDigest(char res[], hashFunctionContext * h_ctx)
+convertDigest(char res[], ensc_hash_context * h_ctx)
{
static char const HEX_DIGIT[] = "0123456789abcdef";
- size_t d_size = h_ctx->algo->digestsize;
+ size_t d_size = ensc_crypto_hashctx_get_digestsize(h_ctx);
unsigned char digest[d_size];
size_t out = 0;
- if (hashFunctionContextDigest(h_ctx, digest)==-1)
+ if (ensc_crypto_hashctx_get_digest(h_ctx, digest, NULL, d_size)==-1)
return false;
for (size_t in=0; in<d_size; ++in) {
int main(int UNUSED argc, char *argv[])
{
- int fd = open(argv[1], O_NOFOLLOW|O_NONBLOCK|O_RDONLY|O_NOCTTY);
- hashFunctionContext hash_context;
- hashFunction const *method;
- struct stat st;
- off_t size;
- loff_t offset = 0;
- char digest[1024];
+ int fd = open(argv[1], O_NOFOLLOW|O_NONBLOCK|O_RDONLY|O_NOCTTY);
+ ensc_hash_context hash_context;
+ ensc_hash_method const *method;
+ struct stat st;
+ off_t size;
+ loff_t offset = 0;
+ char digest[2048];
- assert((method = hashFunctionFind(argv[2]))!=0);
- assert(hashFunctionContextInit(&hash_context, method)!=-1);
+ ensc_crypto_init();
+ assert((method = ensc_crypto_hash_find(argv[2]))!=0);
+ assert(ensc_crypto_hashctx_init(&hash_context, method)!=-1);
assert(fstat(fd, &st)!=-1);
- assert(hashFunctionContextReset(&hash_context)!=-1);
+ assert(ensc_crypto_hashctx_reset(&hash_context)!=-1);
size = st.st_size;
assert((buf=mmap(0, buf_size, PROT_READ, MAP_SHARED, fd, offset))!=0);
offset += buf_size;
- assert(hashFunctionContextUpdate(&hash_context, buf, buf_size)!=-1);
+ assert(ensc_crypto_hashctx_update(&hash_context, buf, buf_size)!=-1);
munmap((void *)(buf), buf_size);
}
Vwrite(1, digest, strlen(digest));
Vwrite(1, "\n", 1);
- hashFunctionContextFree(&hash_context);
+ ensc_crypto_hashctx_free(&hash_context);
return 0;
}
-// $Id: hashcalc.c 2209 2005-10-29 10:33:02Z ensc $ --*- c -*--
+// $Id: hashcalc.c 2685 2008-02-21 23:22:23Z ensc $ --*- c -*--
// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
volatile unsigned int canary2;
volatile unsigned int canary3;
} __attribute__((__packed__)) d_path;
-
+
d_path.canary0 = 0x12345678;
d_path.canary1 = 0x21436587;
d_path.canary2 = 0x89abcdef;
d_path.canary3 = 0x98badcfe;
memset(d_path.d, 0x66, sizeof d_path.d);
- global_info.hash_conf.method = hashFunctionFind(argv[2]);
+ ensc_crypto_init();
+ global_info.hash_conf.method = ensc_crypto_hash_find(argv[2]);
- assert(hashFunctionContextInit(&global_info.hash_context,
- global_info.hash_conf.method)!=-1);
+ assert(ensc_crypto_hashctx_init(&global_info.hash_context,
+ global_info.hash_conf.method)!=-1);
assert(fstat(fd, &st)!=-1);
Vwrite(1, d_path.d, strlen(d_path.d));
Vwrite(1, "\n", 1);
- hashFunctionContextFree(&global_info.hash_context);
+ ensc_crypto_hashctx_free(&global_info.hash_context);
return 0;
}
} &>/dev/null
for i in $tmpdir/rand-*; do
- sha1_0=$($hashcalc "$i" SHA-1 | tr -d / )
- sha1_1=$(sha1sum "$i" | awk '{ print $1}' )
+ for m in md5 sha1 sha256 sha512; do
+ sum_0=$($hashcalc "$i" "$m" | tr -d / )
+ sum_1=$(${m}sum "$i" | awk '{ print $1}' )
- test x"$sha1_0" = x"$sha1_1" || {
- echo "SHA-1 mismatch at $(basename $i)"
- exit 1
- }
-
- md5_0=$($hashcalc "$i" MD5 | tr -d / )
- md5_1=$(md5sum "$i" | awk '{ print $1}' )
-
- test x"$md5_0" = x"$md5_1" || {
- echo "MD5 mismatch at $(basename $i)"
- exit 1
- }
+ # compare only the first 80 chars as vhashify will cut digest to MAXPATHLEN
+ test x"${sum_0::80}" = x"${sum_1::80}" || {
+ echo "$m mismatch at $(basename $i): '$sum_0' vs. '$sum_1'"
+ exit 1
+ }
+ done
done
true
--- /dev/null
+// $Id$ --*- c -*--
+
+// Copyright (C) 2008 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+
+#include <vserver.h>
+
+#include <getopt.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/ioctl.h>
+#include <linux/if.h>
+#include <linux/if_tun.h>
+
+/* Make sure we have the necessary ioctls */
+#ifndef TUNSETGROUP
+# define TUNSETGROUP _IOW('T', 206, int)
+#endif
+#ifndef TUNSETNID
+# define TUNSETNID _IOW('T', 215, int)
+#endif
+
+#define ENSC_WRAPPERS_PREFIX "tunctl: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_FCNTL 1
+#define ENSC_WRAPPERS_IOCTL 1
+#include <wrappers.h>
+
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+#define CMD_NID 0x0001
+#define CMD_DEVICE 0x0002
+#define CMD_PERSIST 0x0004
+#define CMD_NOPERSIST 0x0008
+#define CMD_CSUM 0x0010
+#define CMD_NOCSUM 0x0020
+#define CMD_UID 0x0040
+#define CMD_GID 0x0080
+#define CMD_LINKTYPE 0x0100
+#define CMD_TUN 0x0200
+#define CMD_TAP 0x0400
+#define CMD_NID_FAILURE_OK (0x0800 | CMD_NID)
+
+int wrapper_exit_code = 255;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "nid", required_argument, 0, CMD_NID },
+ { "device", required_argument, 0, CMD_DEVICE },
+ { "persist", no_argument, 0, CMD_PERSIST },
+ { "~persist", no_argument, 0, CMD_NOPERSIST },
+ { "checksum", no_argument, 0, CMD_CSUM },
+ { "~checksum", no_argument, 0, CMD_NOCSUM },
+ { "uid", required_argument, 0, CMD_UID },
+ { "gid", required_argument, 0, CMD_GID },
+ { "linktype", required_argument, 0, CMD_LINKTYPE },
+ { "tun", no_argument, 0, CMD_TUN },
+ { "tap", no_argument, 0, CMD_TAP },
+ { "nid-failure-ok", required_argument, 0, CMD_NID_FAILURE_OK },
+ {0,0,0,0}
+};
+
+struct Arguments {
+ unsigned int set;
+ nid_t nid;
+ char *device;
+ unsigned persist : 1;
+ unsigned checksum : 1;
+ uid_t uid;
+ gid_t gid;
+ int linktype;
+ int type;
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " {--tun|--tap}\n"
+ " [--persist|--~persist] [--checksum|--~checksum]\n"
+ " [--nid <nid>] [--uid <uid>] [--gid <gid>] [--linktype <link type>]\n"
+ " <interface(s)>...\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "tunctl " VERSION " -- controls TUN/TAP devices\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2008 Daniel Hokka Zakrisson\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+doTunctl(struct Arguments *args, char *interface)
+{
+ int fd;
+ struct ifreq ifr;
+
+ fd = EopenD(args->device, O_RDWR, 0);
+
+ strncpy(ifr.ifr_name, interface, IFNAMSIZ);
+ ifr.ifr_name[IFNAMSIZ-1] = '\0';
+ ifr.ifr_flags = args->type;
+ EioctlD(fd, TUNSETIFF, &ifr);
+
+ if (args->set & (CMD_CSUM|CMD_NOCSUM))
+ EioctlD(fd, TUNSETNOCSUM, (void *) (long) !args->checksum);
+ if (args->set & CMD_UID)
+ EioctlD(fd, TUNSETOWNER, (void *) (long) args->uid);
+ if (args->set & CMD_GID)
+ EioctlD(fd, TUNSETGROUP, (void *) (long) args->gid);
+ if (args->set & CMD_NID) {
+ if (args->set & CMD_NID_FAILURE_OK)
+ ioctl(fd, TUNSETNID, (void *) (long) args->nid);
+ else
+ EioctlD(fd, TUNSETNID, (void *) (long) args->nid);
+ }
+ if (args->set & CMD_LINKTYPE)
+ EioctlD(fd, TUNSETLINK, (void *) (long) args->linktype);
+ if (args->set & (CMD_PERSIST|CMD_NOPERSIST))
+ EioctlD(fd, TUNSETPERSIST, (void *) (long) args->persist);
+
+ close(fd);
+}
+
+int main(int argc, char *argv[])
+{
+ struct Arguments args = {
+ .set = 0,
+ .nid = VC_NOCTX,
+ .device = "/dev/net/tun",
+ .persist = 0,
+ .checksum = 0,
+ .uid = -1,
+ .gid = -1,
+ .linktype = -1,
+ .type = IFF_TUN,
+ };
+ char **interface;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ signed long tmp = 0;
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+
+ case CMD_NID_FAILURE_OK:
+ case CMD_NID : args.nid = Evc_nidopt2nid(optarg, true); break;
+ case CMD_DEVICE : args.device = optarg; break;
+ case CMD_PERSIST : args.persist = 1; break;
+ case CMD_NOPERSIST: args.persist = 0; break;
+ case CMD_CSUM : args.checksum = 1; break;
+ case CMD_NOCSUM : args.checksum = 0; break;
+ case CMD_TUN : args.type = IFF_TUN; break;
+ case CMD_TAP : args.type = IFF_TAP; break;
+ case CMD_UID :
+ if (!isNumber(optarg, &tmp, true)) {
+ WRITE_MSG(2, "Uid '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "' is not an integer.\n");
+ }
+ args.uid = (uid_t) tmp;
+ break;
+ case CMD_GID :
+ if (!isNumber(optarg, &tmp, true)) {
+ WRITE_MSG(2, "Gid '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "' is not an integer.\n");
+ }
+ args.gid = (gid_t) tmp;
+ break;
+ case CMD_LINKTYPE :
+ if (!isNumber(optarg, &tmp, true)) {
+ WRITE_MSG(2, "Link-type '");
+ WRITE_STR(2, optarg);
+ WRITE_STR(2, "' is not an integer.\n");
+ }
+ args.linktype = (int) tmp;
+ break;
+
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help' for more information.\n");
+ return 255;
+ break;
+ }
+
+ args.set |= c;
+ }
+
+ for (interface = argv + optind; *interface; interface++) {
+ doTunctl(&args, *interface);
+ }
+
+ return EXIT_SUCCESS;
+}
-// $Id: vattribute.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*--
+// $Id: vattribute.c 2695 2008-03-01 01:15:31Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#endif
#include "util.h"
+#include "attribute-util.h"
#include <lib/vserver.h>
#include <getopt.h>
#define CMD_FLAG 0x2003
#define CMD_SECURE 0x2004
#define CMD_BCAP 0x2005
+#define CMD_GET 0x2006
int wrapper_exit_code = 1;
{ "version", no_argument, 0, CMD_VERSION },
{ "xid", required_argument, 0, CMD_XID },
{ "set", no_argument, 0, CMD_SET },
+ { "get", no_argument, 0, CMD_GET },
{ "ccap", required_argument, 0, CMD_CCAP },
{ "bcap", required_argument, 0, CMD_BCAP },
{ "flag", required_argument, 0, CMD_FLAG },
xid_t xid;
struct vc_ctx_flags flags;
struct vc_ctx_caps caps;
+ int mode;
};
static void
WRITE_MSG(fd, "Usage:\n ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " --set [--xid <xid>] [--bcap [~!]<cap>] [--ccap [~!]<cap>] [--flag [~!]<flag>] [--secure] -- [<program> <args>*]\n"
+ " [--xid <xid>] {--get|--set [--bcap [~!]<cap>] [--ccap [~!]<cap>]\n"
+ " [--flag [~!]<flag>] [--secure]} -- [<program> <args>*]\n"
"\n"
- " --bcap <cap> ... system capability to be added\n"
- " --cap <cap> ... context capability to be added\n"
+ " --bcap <cap> ... system capability to be set\n"
+ " --ccap <cap> ... context capability to be set\n"
+ " --flag <flag> ... context flag to be set\n"
"\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
showVersion()
{
WRITE_MSG(1,
- "vattribute " VERSION " -- sets attributes of vservers\n"
+ "vattribute " VERSION " -- sets/gets attributes of vservers\n"
"This program is part of " PACKAGE_STRING "\n\n"
"Copyright (C) 2004 Enrico Scholz\n"
VERSION_COPYRIGHT_DISCLAIMER);
flags->mask = VC_VXF_HIDE_NETIF;
}
+static int
+printAttrs(struct Arguments *args)
+{
+ struct vc_ctx_flags flags;
+ struct vc_ctx_caps caps;
+
+ Evc_get_cflags(args->xid, &flags);
+ Evc_get_ccaps(args->xid, &caps);
+
+ print_bitfield(1, bcap, "bcapabilities", &caps.bcaps);
+ print_bitfield(1, ccap, "ccapabilities", &caps.ccaps);
+ print_bitfield(1, cflag, "flags", &flags.flagword);
+
+ return 0;
+}
+
int main(int argc, char *argv[])
{
struct Arguments args = {
.xid = VC_NOCTX,
.flags = { .flagword = 0, .mask = 0 },
.caps = { .bcaps = 0, .bmask = 0,.ccaps = 0, .cmask = 0 },
+ .mode = CMD_SET,
};
-
+
while (1) {
int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
if (c==-1) break;
switch (c) {
case CMD_HELP : showHelp(1, argv[0], 0);
case CMD_VERSION : showVersion();
- case CMD_SET : break; // default op currently
+ case CMD_SET : args.mode = CMD_SET; break;
+ case CMD_GET : args.mode = CMD_GET; break;
case CMD_XID : args.xid = Evc_xidopt2xid(optarg,true); break;
case CMD_FLAG : parseFlags(optarg, &args.flags); break;
case CMD_CCAP : parseCCaps(optarg, &args.caps); break;
if (args.xid==VC_NOCTX) args.xid = Evc_get_task_xid(0);
- if ((args.caps.cmask || args.caps.bmask) &&
- vc_set_ccaps(args.xid, &args.caps)==-1)
- perror(ENSC_WRAPPERS_PREFIX "vc_set_ccaps()");
- else if (args.flags.mask &&
- vc_set_cflags(args.xid, &args.flags)==-1)
- perror(ENSC_WRAPPERS_PREFIX "vc_set_flags()");
- else if (optind<argc)
- EexecvpD(argv[optind], argv+optind);
- else
- return EXIT_SUCCESS;
+ if (args.mode == CMD_SET) {
+ if ((args.caps.cmask || args.caps.bmask) &&
+ vc_set_ccaps(args.xid, &args.caps)==-1)
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_ccaps()");
+ else if (args.flags.mask &&
+ vc_set_cflags(args.xid, &args.flags)==-1)
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_flags()");
+ else if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+ else
+ return EXIT_SUCCESS;
+ }
+ else if (args.mode == CMD_GET) {
+ printAttrs(&args);
+ if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+ else
+ return EXIT_SUCCESS;
+ }
return EXIT_FAILURE;
}
-// $Id: vclone.c 2569 2007-07-22 17:24:29Z dhozac $ --*- c -*--
+// $Id: vclone.c 2646 2007-12-20 00:09:06Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
if (!Unify_copy(basename->d, st, dst_path.d))
PERROR_Q(ENSC_WRAPPERS_PREFIX "Unify_copy", dst_path.d);
else if (global_args->xid != VC_NOCTX &&
- vc_set_iattr(dst_path.d, global_args->xid, 0, VC_IATTR_XID) == -1)
+ vc_set_iattr(dst_path.d, global_args->xid, 0, VC_IATTR_XID) == -1 &&
+ errno != EINVAL)
PERROR_Q(ENSC_WRAPPERS_PREFIX "vc_set_iattr", dst_path.d);
else
res = true;
-// $Id: vdevmap.c 2490 2007-02-05 20:45:25Z dhozac $ --*- c -*--
+// $Id: vdevmap.c 2703 2008-03-15 16:05:49Z dhozac $ --*- c -*--
// Copyright (C) 2006 Daniel Hokka Zakrisson
//
{ "help", no_argument, 0, CMD_HELP },
{ "version", no_argument, 0, CMD_VERSION },
{ "xid", required_argument, 0, 'x' },
+ { "set", no_argument, 0, 's' },
+ { "unset", no_argument, 0, 'u' },
{ "open", no_argument, 0, 'o' },
{ "create", no_argument, 0, 'c' },
{ "remap", no_argument, 0, 'r' },
WRITE_MSG(fd, "Usage: ");
WRITE_STR(fd, cmd);
WRITE_MSG(fd,
- " --xid <xid> [--flags <flags>] [--open] [--create] [--remap] [--device <dev>] [--target <dev>]\n"
+ " --xid <xid> {--set|--unset} [--flags <flags>] [--open] [--create]\n"
+ " [--device <dev>] [--remap --target <dev>]\n"
+ "\n"
+ " --flags <flags> Set the specified flags\n"
+ " --open Allow opening of the device\n"
+ " --create If CAP_MKNOD is given, allow mknod(2)\n"
+ " --device <dev> Device to apply the command to\n"
+ " --remap Remap the device to the target\n"
+ " --target <dev> Target for --remap\n"
+ "\n"
+ "EXAMPLES\n"
+ " Remap /dev/hda1 to /dev/vroot1 for xid 42\n"
+ " vdevmap --xid 42 --set --open --device /dev/hda1 --target /dev/vroot1 --remap\n"
+ " Let xid 42 create all device nodes\n"
+ " vdevmap --xid 42 --set --open --create --target /dev/null\n"
+ " vdevmap --xid 42 --set --open --create --target /dev/root\n"
+ " Let xid 43 create just /dev/null\n"
+ " vdevmap --xid 43 --set --open --create --device /dev/null\n"
"\n"
"Please report bugs to " PACKAGE_BUGREPORT "\n");
uint32_t flags = 0;
char *device = NULL;
char *target = NULL;
+ bool set = true;
unsigned long tmp = 0;
while (1) {
- int c = getopt_long(argc, argv, "+x:ocrf:d:t:", CMDLINE_OPTIONS, 0);
+ int c = getopt_long(argc, argv, "+x:suocrf:d:t:", CMDLINE_OPTIONS, 0);
if (c==-1) break;
switch (c) {
case 'r' : do_remap = true; break;
case 'd' : device = optarg; break;
case 't' : target = optarg; break;
+ case 's' : set = 1; break;
+ case 'u' : set = 0; break;
case 'f' :
if (!isNumberUnsigned(optarg, &tmp, false)) {
WRITE_MSG(2, "Invalid flags argument: '");
if (allow_create) flags |= VC_DATTR_CREATE;
if (do_remap) flags |= VC_DATTR_REMAP;
- if (xid==VC_NOCTX)
+ if (!target && do_remap)
+ WRITE_MSG(2, "Remapping specified without a target; try '--help' for more information\n");
+ else if (xid==VC_NOCTX)
WRITE_MSG(2, "No xid specified; try '--help' for more information\n");
else if (optind!=argc)
WRITE_MSG(2, "Unused argument(s); try '--help' for more information\n");
- else if (vc_set_mapping(xid, device, target, flags)==-1)
+ else if (!device && !target)
+ WRITE_MSG(2, "Device and target are missing; try '--help' for more information\n");
+ else if (set && vc_set_mapping(xid, device, target, flags)==-1)
perror("vc_set_mapping()");
+ else if (!set && vc_unset_mapping(xid, device, target, flags)==-1)
+ perror("vc_unset_mapping()");
else
return EXIT_SUCCESS;
-// $Id: vhashify-init.hc 1967 2005-03-23 02:10:23Z ensc $ --*- c -*--
+// $Id: vhashify-init.hc 2685 2008-02-21 23:22:23Z ensc $ --*- c -*--
// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
{
int fd = open(filename, O_RDONLY);
if (fd==-1 && conf->method==0)
- conf->method = hashFunctionDefault();
+ conf->method = ensc_crypto_hash_get_default();
if (fd==-1) {
+ char const *hash_name;
assert(conf->method!=0);
if (conf->method==0) return false;
if (global_args->dry_run) return true; // do not create the file
-
+
fd = Eopen(filename, O_WRONLY|O_CREAT|O_EXCL|O_NOFOLLOW, 0644);
- TEMP_FAILURE_RETRY(write(fd, conf->method->name, strlen(conf->method->name)));
+
+ hash_name = ensc_crypto_hash_get_name(conf->method);
+ TEMP_FAILURE_RETRY(write(fd, hash_name, strlen(hash_name)));
TEMP_FAILURE_RETRY(write(fd, "\n", 1));
}
else {
--s;
buf[s] = '\0';
- conf->method = hashFunctionFind(buf);
+ conf->method = ensc_crypto_hash_find(buf);
if (conf->method==0) {
WRITE_MSG(2, "Can not find hash-function '");
WRITE_STR(2, buf);
WRITE_MSG(2, "Can not read configuration file for hash-method\n");
}
- if (conf->method!=0 && conf->method->digestsize*8>HASH_MAXBITS) {
+ if (conf->method!=0 && ensc_crypto_hash_get_digestsize(conf->method)*8>HASH_MAXBITS) {
WRITE_MSG(2, "Wow... what an huge hash-function. I can not handle so much bits; giving up...\n");
conf->method=0;
}
-// $Id: vhashify.c 2569 2007-07-22 17:24:29Z dhozac $ --*- c -*--
+// $Id: vhashify.c 2685 2008-02-21 23:22:23Z ensc $ --*- c -*--
// Copyright (C) 2005 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
#include "lib_internal/unify.h"
#include "ensc_vector/vector.h"
-#include <beecrypt/beecrypt.h>
+#include "lib_internal/crypto-wrapper.h"
#include <setjmp.h>
#include <unistd.h>
struct HashDirConfiguration
{
- hashFunction const *method;
+ ensc_hash_method const *method;
enum { hshALL=0, hshSTART = 1, hshMIDDLE=2,
hshEND = 4, hshINVALID = -1 } blocks;
size_t blocksize;
HashDirCollection hash_dirs;
size_t hash_dirs_max_size;
- hashFunctionContext hash_context;
+ ensc_hash_context hash_context;
};
int wrapper_exit_code = 1;
convertDigest(HashPath d_path)
{
static char const HEX_DIGIT[] = "0123456789abcdef";
- hashFunctionContext * const h_ctx = &global_info.hash_context;
- size_t d_size = h_ctx->algo->digestsize;
-
+ ensc_hash_context * const h_ctx = &global_info.hash_context;
+ size_t d_size = ensc_crypto_hashctx_get_digestsize(h_ctx);
+
unsigned char digest[d_size];
size_t out = 0;
- if (hashFunctionContextDigest(h_ctx, digest)==-1)
+ if (ensc_crypto_hashctx_get_digest(h_ctx, digest, NULL, d_size)==-1)
return false;
for (size_t in=0;
#ifndef ENSC_TESTSUITE
static bool
-addStatHash(hashFunctionContext *h_ctx, struct stat const * const st)
+addStatHash(ensc_hash_context *h_ctx, struct stat const * const st)
{
#define DECL_ATTR(X) __typeof__(st->st_##X) X
#define SET_ATTR(X) .X = st->st_##X
#undef DECL_ATTR
- return hashFunctionContextUpdate(h_ctx, (void *)&tmp, sizeof tmp)!=-1;
+ return ensc_crypto_hashctx_update(h_ctx, (void *)&tmp, sizeof tmp)!=-1;
}
#else
static bool
-addStatHash(hashFunctionContext UNUSED *h_ctx, struct stat const UNUSED * const st)
+addStatHash(ensc_hash_context UNUSED *h_ctx, struct stat const UNUSED * const st)
{
return true;
}
static bool
calculateHashFromFD(int fd, HashPath d_path, struct stat const * const st)
{
- hashFunctionContext * const h_ctx = &global_info.hash_context;
+ ensc_hash_context * const h_ctx = &global_info.hash_context;
void const * volatile buf = 0;
loff_t volatile buf_size = 0;
bool volatile res = false;
- if (hashFunctionContextReset(h_ctx)==-1 ||
+ if (ensc_crypto_hashctx_reset(h_ctx)==-1 ||
!addStatHash(h_ctx, st))
return false;
offset += buf_size;
madvise(const_cast(void *)(buf), buf_size, MADV_SEQUENTIAL); // ignore error...
- if (hashFunctionContextUpdate(h_ctx, buf, buf_size)==-1) goto out;
+ if (ensc_crypto_hashctx_update(h_ctx, buf, buf_size)==-1) goto out;
munmap(const_cast(void *)(buf), buf_size);
buf = 0;
return EXIT_FAILURE;
}
+ ensc_crypto_init();
switch (args.mode) {
case mdMANUALLY : initModeManually(&args, argc-optind, argv+optind); break;
case mdVSERVER : initModeVserver (&args, argc-optind, argv+optind); break;
default : assert(false); return EXIT_FAILURE;
};
- if (hashFunctionContextInit(&global_info.hash_context,
- global_info.hash_conf.method)==-1) {
+ if (ensc_crypto_hashctx_init(&global_info.hash_context,
+ global_info.hash_conf.method)==-1) {
WRITE_MSG(2, "Failed to initialize hash-context\n");
return EXIT_FAILURE;
}
#ifndef NDEBUG
MatchList_destroy(&global_info.dst_list);
freeHashList(&global_info.hash_dirs);
- hashFunctionContextFree(&global_info.hash_context);
+ ensc_crypto_hashctx_free(&global_info.hash_context);
#endif
return EXIT_SUCCESS;
--- /dev/null
+// $Id: vmemctrl.c 2674 2008-01-27 07:55:13Z dhozac $
+
+// Copyright (C) 2007 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 2, or (at your option)
+// any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "vserver.h"
+#include "util.h"
+
+#include <lib/internal.h>
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <getopt.h>
+
+#define ENSC_WRAPPERS_PREFIX "vmemctrl: "
+#define ENSC_WRAPPERS_VSERVER 1
+#define ENSC_WRAPPERS_UNISTD 1
+#include "wrappers.h"
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+
+#define CMD_SET 0x2000
+#define CMD_GET 0x2001
+
+#define CMD_XID 0x4000
+#define CMD_BADNESS 0x4001
+
+int wrapper_exit_code = 255;
+
+
+static struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "set", no_argument, 0, CMD_SET },
+ { "get", no_argument, 0, CMD_GET },
+ { "xid", required_argument, 0, CMD_XID },
+ { "badness", required_argument, 0, CMD_BADNESS },
+ { 0,0,0,0 }
+};
+
+struct Arguments {
+ xid_t xid;
+ int64_t badness;
+ bool do_set;
+ bool do_get;
+ uint32_t mask;
+};
+
+static inline int
+hasArg(struct Arguments *args, uint32_t arg)
+{
+ return (args->mask & arg) == arg;
+}
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage:\n ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " (--set|--get) [--xid <xid>] [--badness <OOM bias>]\n"
+ " [--] [<command> <args>*]\n\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vmemctrl " VERSION " -- \n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2007 Daniel Hokka Zakrisson\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static inline void
+doset(struct Arguments *args)
+{
+ if (hasArg(args, CMD_BADNESS) &&
+ vc_set_badness(args->xid, args->badness) == -1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_badness()");
+ exit(wrapper_exit_code);
+ }
+}
+
+static inline void
+doget(struct Arguments *args)
+{
+ int64_t badness;
+ char buf[32];
+ size_t l;
+ if (vc_get_badness(args->xid, &badness) == -1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_get_badness()");
+ exit(wrapper_exit_code);
+ }
+ l = utilvserver_fmt_int64(buf, badness);
+ buf[l] = '\0';
+ WRITE_STR(1, buf);
+ WRITE_MSG(1, "\n");
+}
+
+int main (int argc, char *argv[])
+{
+ struct Arguments args = {
+ .do_set = false,
+ .do_get = false,
+ .xid = VC_NOCTX,
+ .badness = 0,
+ .mask = 0,
+ };
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case CMD_XID : args.xid = Evc_xidopt2xid(optarg,true); break;
+ case CMD_SET : args.do_set = true; break;
+ case CMD_GET : args.do_get = true; break;
+ case CMD_BADNESS : {
+ char *endptr;
+ args.badness = strtoll(optarg, &endptr, 0);
+ if (*endptr) {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "Badness '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "' is not an integer\n");
+ exit(wrapper_exit_code);
+ }
+ break;
+ }
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help' for more information.\n");
+ exit(wrapper_exit_code);
+ break;
+ }
+ args.mask |= c;
+ }
+
+ if (args.xid == VC_NOCTX) args.xid = Evc_get_task_xid(0);
+
+ if (!args.do_set && !args.do_get) {
+ WRITE_MSG(2, "No operation specified; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+ else if (((args.do_set ? 1 : 0) + (args.do_get ? 1 : 0)) > 1) {
+ WRITE_MSG(2, "Multiple operations specified; try '--help' for more information\n");
+ exit(wrapper_exit_code);
+ }
+
+ if (args.do_set)
+ doset(&args);
+ else if (args.do_get)
+ doget(&args);
+
+ if (optind != argc)
+ Eexecvp (argv[optind],argv+optind);
+ return EXIT_SUCCESS;
+}
-// $Id: vnamespace.c 2415 2006-12-08 13:24:49Z dhozac $ --*- c -*--
+// $Id: vnamespace.c 2693 2008-03-01 00:26:31Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
-// $Id: vrsetup.c 2403 2006-11-24 23:06:08Z dhozac $ --*- c -*--
+// $Id: vrsetup.c 2686 2008-02-28 23:12:06Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
else if (do_delete) Eioctl(fd, VROOT_CLR_DEV, 0);
else {
int dfd = EopenD(real_root_device, O_RDONLY, 0);
- Eioctl(fd, VROOT_SET_DEV, (void*)dfd);
+ Eioctl(fd, VROOT_SET_DEV, (void*)(long)dfd);
Eclose(dfd);
}
-// $Id: vsched.c 2510 2007-03-07 20:33:56Z dhozac $ --*- c -*--
+// $Id: vsched.c 2637 2007-11-26 23:47:41Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
// Copyright (C) 2006 Daniel Hokka Zakrisson <daniel@hozac.com>
if (!isNumber(buf, &val, true)) {
WRITE_MSG(2, ENSC_WRAPPERS_PREFIX);
WRITE_STR(2, name);
- WRITE_MSG(2, ": is not a number\n");
+ WRITE_MSG(2, ": is not an integer\n");
exit(1);
}
#define SETVAL(ATTR,MASK) \
if (!isNumber(optarg, &tmp, false)) { \
- WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "non-numeric value specified for '--" #ATTR "'\n"); \
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "non-integer value specified for '--" #ATTR "'\n"); \
exit(wrapper_exit_code); \
} \
else { \
--- /dev/null
+// $Id: vspace.c 2693 2008-03-01 00:26:31Z dhozac $ --*- c -*--
+
+// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
+// Copyright (C) 2007 Daniel Hokka Zakrisson
+//
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; version 2 of the License.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "util.h"
+#include <lib_internal/sys_clone.h>
+
+#include <vserver.h>
+
+#include <getopt.h>
+#include <libgen.h>
+#include <errno.h>
+#include <signal.h>
+#include <sched.h>
+
+#define ENSC_WRAPPERS_PREFIX "vspace: "
+#define ENSC_WRAPPERS_UNISTD 1
+#define ENSC_WRAPPERS_VSERVER 1
+#include <wrappers.h>
+
+#define CMD_HELP 0x1000
+#define CMD_VERSION 0x1001
+
+int wrapper_exit_code = 255;
+
+struct option const
+CMDLINE_OPTIONS[] = {
+ { "help", no_argument, 0, CMD_HELP },
+ { "version", no_argument, 0, CMD_VERSION },
+ { "new", no_argument, 0, 'n' },
+ { "enter", required_argument, 0, 'e' },
+ { "set", no_argument, 0, 's' },
+ { "mask", required_argument, 0, 'm' },
+
+ { "mount", no_argument, 0, 'M' },
+ { "fs", no_argument, 0, 'F' },
+ { "ipc", no_argument, 0, 'I' },
+ { "uts", no_argument, 0, 'U' },
+ { "user", no_argument, 0, 'S' },
+ { "pid", no_argument, 0, 'P' },
+ { "net", no_argument, 0, 'N' },
+ {0,0,0,0}
+};
+
+static void
+showHelp(int fd, char const *cmd, int res)
+{
+ WRITE_MSG(fd, "Usage: ");
+ WRITE_STR(fd, cmd);
+ WRITE_MSG(fd,
+ " <operation> <spaces>* [--] [<program> <args>*]\n"
+ "\n"
+ "<operation> can be one of:\n"
+ " --new|-n ... create new spaces and execute <program> there;\n"
+ " <program> is mandatory in this case\n"
+ " --enter|-e <xid> ... enter the spaces of context <xid> and execute\n"
+ " <program> there; <program> is mandatory in this\n"
+ " case\n"
+ " --set|-s ... assign the current spaces to the current context\n"
+ "\n"
+ "<spaces>* specifies the spaces to manipulate.\n"
+ "It can be any combination of:\n"
+ " --mask <mask> ... specify a mask of spaces\n"
+ " --mount ... the mount namespace\n"
+ " --fs ... the fs_struct\n"
+ " --ipc ... the IPC namespace\n"
+ " --uts ... the uts namespace\n"
+ " --user ... the user namespace\n"
+ " --pid ... the pid namespace\n"
+ " --net ... the network namespace\n"
+ "\n"
+ "Please report bugs to " PACKAGE_BUGREPORT "\n");
+
+ exit(res);
+}
+
+static void
+showVersion()
+{
+ WRITE_MSG(1,
+ "vspace " VERSION " -- manages spaces\n"
+ "This program is part of " PACKAGE_STRING "\n\n"
+ "Copyright (C) 2004 Enrico Scholz\n"
+ "Copyright (C) 2007 Daniel Hokka Zakrisson\n"
+ VERSION_COPYRIGHT_DISCLAIMER);
+ exit(0);
+}
+
+static void
+newSpaces(uint_least64_t mask, const char *cmd)
+{
+ pid_t pid;
+
+ /* optimize default case */
+ if (mask == 0)
+ return;
+
+ signal(SIGCHLD, SIG_DFL);
+
+#ifdef NDEBUG
+ pid = sys_clone((int) mask | CLONE_VFORK|SIGCHLD, 0);
+#else
+ pid = sys_clone((int) mask | SIGCHLD, 0);
+#endif
+
+ switch (pid) {
+ case -1 :
+ perror(ENSC_WRAPPERS_PREFIX "clone()");
+ exit(wrapper_exit_code);
+ case 0 :
+ break;
+ default :
+ exitLikeProcess(pid, cmd, wrapper_exit_code);
+ }
+}
+
+static void
+enterSpaces(xid_t xid, uint_least64_t mask)
+{
+ if (vc_enter_namespace(xid, mask)==-1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_enter_namespace()");
+ exit(wrapper_exit_code);
+ }
+}
+
+static void
+setSpaces(xid_t xid, uint_least64_t mask)
+{
+ if (vc_set_namespace(xid, mask)==-1) {
+ perror(ENSC_WRAPPERS_PREFIX "vc_set_namespace()");
+ exit(wrapper_exit_code);
+ }
+}
+
+int main(int argc, char *argv[])
+{
+ bool do_new = false;
+ bool do_enter = false;
+ bool do_set = false;
+ uint_least64_t mask = 0;
+ xid_t xid = VC_NOCTX;
+ int sum = 0;
+
+ while (1) {
+ int c = getopt_long(argc, argv, "+nsce:m:" "MFIUSPN", CMDLINE_OPTIONS, 0);
+ if (c==-1) break;
+
+ switch (c) {
+ case CMD_HELP : showHelp(1, argv[0], 0);
+ case CMD_VERSION : showVersion();
+ case 'n' : do_new = true; break;
+ case 's' : do_set = true; break;
+ case 'e' :
+ do_enter = true;
+ xid = Evc_xidopt2xid(optarg,true);
+ break;
+ case 'm' : {
+ unsigned long mask_l;
+ if (!isNumberUnsigned(optarg, &mask_l, true)) {
+ WRITE_MSG(2, "Invalid mask '");
+ WRITE_STR(2, optarg);
+ WRITE_MSG(2, "'; try '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+ mask = mask_l;
+ break;
+ }
+ case 'M' : mask |= CLONE_NEWNS; break;
+ case 'F' : mask |= CLONE_FS; break;
+ case 'I' : mask |= CLONE_NEWIPC; break;
+ case 'U' : mask |= CLONE_NEWUTS; break;
+ case 'S' : mask |= CLONE_NEWUSER; break;
+ case 'P' : mask |= CLONE_NEWPID; break;
+ case 'N' : mask |= CLONE_NEWNET; break;
+
+ default :
+ WRITE_MSG(2, "Try '");
+ WRITE_STR(2, argv[0]);
+ WRITE_MSG(2, " --help' for more information.\n");
+ return 255;
+ break;
+ }
+ }
+
+ sum = ((do_new ? 1 : 0) + (do_enter ? 1 : 0) +
+ (do_set ? 1 : 0));
+
+ if (sum==0)
+ WRITE_MSG(2, "No operation was specified; try '--help' for more information\n");
+ else if (sum>1)
+ WRITE_MSG(2, "Can not specify multiple operations; try '--help' for more information\n");
+ else if (optind==argc && (do_new || do_enter))
+ WRITE_MSG(2, "No command specified; try '--help' for more information\n");
+ else {
+ if (do_new) newSpaces(mask, argv[optind]);
+ else if (do_set) setSpaces(VC_SAMECTX, mask);
+ else if (do_enter) enterSpaces(xid, mask);
+
+ if (optind<argc)
+ EexecvpD(argv[optind], argv+optind);
+
+ return EXIT_SUCCESS;
+ }
+
+ return 255;
+}
-// $Id$ --*- c -*--
+// $Id: vtag.c 2674 2008-01-27 07:55:13Z dhozac $ --*- c -*--
// Copyright (C) 2007 Daniel Hokka Zakrisson
//
else
goto exec;
}
+ if (args->tag == VC_DYNAMIC_XID) {
+ if (args->verbosity >= 1) {
+ WRITE_MSG(2, "You must specify the tag with '--tag'; try '--help' for more information\n");
+ return wrapper_exit_code;
+ }
+ else {
+ WRITE_MSG(2, ENSC_WRAPPERS_PREFIX "WARNING: A dynamic tag has been specified, this is not supported\n");
+ goto exec;
+ }
+ }
if (args->do_create) {
tag = vc_tag_create(args->tag);
int main (int argc, char *argv[])
{
struct Arguments args = {
- .tag = VC_NOCTX,
+ .tag = VC_DYNAMIC_XID,
.do_create = false,
.do_migrate = false,
.is_silentexist = false,
WRITE_MSG(2, "Neither '--create' nor '--migrate' specified; try '--help' for more information\n");
else if (args.do_create && args.do_migrate)
WRITE_MSG(2, "Can not specify '--create' and '--migrate' at the same time; try '--help' for more information\n");
- else if (args.tag==VC_NOCTX)
- WRITE_MSG(2, "You must specify the tag with '--tag'; try '--help' for more information\n");
else if (optind>=argc)
WRITE_MSG(2, "No command given; use '--help' for more information.\n");
else
function create_dirs()
{
- $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `getPhysicalDir "$__PKGSTATEREVDIR"`
+ $_MKDIR -p "$__RUNDIR" && $_MKDIR -p "$__VSHELPERSTATEDIR" && $_MKDIR -p `$_READLINK "$__PKGSTATEREVDIR"`
}
function start()
_endResult $?
local retval=$?
_beginResult $"Loading default device map"
- loadDeviceMap 0 "$__CONFDIR/.defaults/apps/vdevmap"
+ handleDeviceMap --set 0 "$__CONFDIR/.defaults/apps/vdevmap"
_endResult $?
test "$retval" -ne 0 || touch "$lockfile"
return $retval
-# $Id: util-vserver.spec.in 2575 2007-08-05 18:35:40Z dhozac $
+# $Id: util-vserver.spec.in 2626 2007-10-16 00:27:58Z dhozac $
## This package understands the following switches:
## --without dietlibc ... disable usage of dietlibc
%global _localstatedir %_var
-%global ver %( echo 0.30.214 | sed 's/-.*//' )
-%global subver %( s=`echo 0.30.214 | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} )
-%global fullver 0.30.214
+%global ver %( echo 0.30.215 | sed 's/-.*//' )
+%global subver %( s=`echo 0.30.215 | grep -- - | sed 's/.*-/./'`; echo ${s:-.1} )
+%global fullver 0.30.215
%{!?release_func:%global release_func() %1%{?dist}}
BuildRequires: mount vconfig gawk iproute iptables
BuildRequires: gcc-c++ wget which diffutils
BuildRequires: e2fsprogs-devel beecrypt-devel
+BuildRequires: e2fsprogs
%{!?_without_doc:BuildRequires: doxygen tetex-latex}
Requires(post): %name-core
Requires(pre): %pkglibdir
-# $Id: util-vserver.spec.in 2575 2007-08-05 18:35:40Z dhozac $
+# $Id: util-vserver.spec.in 2626 2007-10-16 00:27:58Z dhozac $
## This package understands the following switches:
## --without dietlibc ... disable usage of dietlibc
BuildRequires: mount vconfig gawk iproute iptables
BuildRequires: gcc-c++ wget which diffutils
BuildRequires: e2fsprogs-devel beecrypt-devel
+BuildRequires: e2fsprogs
%{!?_without_doc:BuildRequires: doxygen tetex-latex}
Requires(post): %name-core
Requires(pre): %pkglibdir
-// $Id: main.c 2589 2007-08-16 03:06:50Z dhozac $ --*- c -*--
+// $Id: main.c 2678 2008-02-16 22:09:30Z dhozac $ --*- c -*--
// Copyright (C) 2004 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
//
ptr = Xmemcpy(ptr, ".startup", sizeof(".startup"));
*ptr = '\0';
- if (!lockfile(&fd, tmp, LOCK_EX, 30, &err)) {
+ if (!lockfile(&fd, tmp, F_LOCK, 30, &err)) {
WRITE_MSG(2, "vserver.start: failed to lock '");
WRITE_STR(2, tmp);
WRITE_MSG(2, "': ");