~serge-hallyn/ubuntu/quantal/lxc/lxc-fixapi

« back to all changes in this revision

Viewing changes to .pc/0006-fix-checkconfig.patch/src/lxc/lxc-checkconfig.in

  • Committer: Package Import Robot
  • Author(s): Serge Hallyn
  • Date: 2012-04-26 15:18:35 UTC
  • mfrom: (3.1.41 sid)
  • Revision ID: package-import@ubuntu.com-20120426151835-3vz6kb4m90gb26js
Tags: 0.8.0~rc1-4ubuntu1
* Merge from unstable.  Remaining changes:
  - control:
    - update maintainer
    - Build-Depends: add dh-apparmor and libapparmor-dev
    - lxc Depends: add bridge-utils, dnsmasq-base, iptables, rsync
    - lxc Recommends: add cgroup-lite | cgroup-bin, openssl
    - lxc Suggests: add btrfs-tools, lvm2, qemu-user-static
    - lxc Conflicts: remove (cgroup-bin)
  - Add lxc-start-ephemeral and lxc-wait to debian/local
  - apparmor:
    - add lxc.apparmor, lxc-containers.apparmor,
      lxc-default.apparmor, and new lxc.apparmor.in
  - add debian/lxc.conf (default container creation config file)
  - debian/lxc.install.in:
    * add lxc-start-ephemeral
    * add debian/lxc.conf
    * skip lxc-debconf*
    * skip lxc-ls (Use upstream's)
  - debian/lxc*.install.in: use '*', not @DEB_HOST_MULTIARCH@
  - Use our own completely different lxc.postinst and lxc.postrm
  - remove lxc.templates
  - debian/rules:
    * add DEB_DH_INSTALLINIT_ARGS = --upstart-only
    * don't do debconf stuff
    * add debian/*.apparmor.in to files processed under
      override_dh_auto_clean
    * don't comment out ubuntu or busybox templates
    * do apparmor stuff and install our own lxc-wait under override_dh_install
    * install our upstart scripts in override_dh_installinit
  - add lxc.default, lxc.lxc-net.upstart, lxc.upstart under
    debian/

* patches kept:
  - 0013-lxc-create-use-default-config.patch (needed manual rebase)
  - 0030-ubuntu-template-fail.patch
  - 0031-ubuntu-template-resolvconf.patch
  - 0044-lxc-destroy-rm-autos
  - debian/patches/0045-fix-other-templates
  - debian/patches/0046-lxc-clone-change-hwaddr
  - debian/patches/0047-bindhome-check-shell
  - debian/patches/0049-ubuntu-template-sudo-and-cleanup
  - debian/patches/0050-clone-lvm-sizes
  - debian/patches/0052-ubuntu-bind-user-conflict
  - debian/patches/0053-lxc-start-pin-rootfs
  - debian/patches/0054-ubuntu-debug
  - debian/patches/0055-ubuntu-handle-badgrp
  - debian/patches/0056-dont-watch-utmp
  - debian/patches/0057-update-manpages
  - debian/patches/0058-fixup-ubuntu-cloud
  - debian/patches/0059-reenable-daily-cloudimg
  - debian/patches/0060-lxc-shutdown
  - debian/patches/0061-lxc-start-apparmor
  - debian/patches/0062-templates-relative-paths
  - debian/patches/0063-check-apparmor-enabled
  - debian/patches/0064-apparmor-mount-proc
  - debian/patches/0065-fix-bindhome-relpath
  - debian/patches/0066-confile-typo
  - debian/patches/0067-templates-lxc-profile
  - debian/patches/0068-fix-lxc-config-layout 
  - debian/patches/0069-ubuntu-cloud-fix
  - debian/patches/0070-templates-rmdir-dev-shm
  - debian/patches/0071-ubuntu-cloud-fix-image-extraction
  - debian/patches/0072-lxc-shutdown-help
  - debian/patches/0073-lxc-destroy-waits-before-destroy
  - mark all patches which have been forwarded as such, refresh all
* 0074-lxc-execute-find-init: lxc-init had moved.  Introduce a function in
  lxc-execute to go find it.  Otherwise lxc-execute for any older releases
  will fail.
* 0075-lxc-ls-bash: lxc-ls needs bash, not sh
* add debian/lxc.apparmor.in so DEB_HOST_MULTIARCH can be expanded
* 0076-fix-sprintfs:  - check return values for all sprintfs and snprintfs
  which could overflow (LP: #988918)
* 0077-execute-without-rootfs: let lxc-execute succeed with no rootfs
  (LP: #981955)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/bin/bash
2
 
 
3
 
# Allow environment variables to override grep and config
4
 
: ${CONFIG:=/proc/config.gz}
5
 
: ${GREP:=zgrep}
6
 
 
7
 
SETCOLOR_SUCCESS="echo -en \\033[1;32m"
8
 
SETCOLOR_FAILURE="echo -en \\033[1;31m"
9
 
SETCOLOR_WARNING="echo -en \\033[1;33m"
10
 
SETCOLOR_NORMAL="echo -en \\033[0;39m"
11
 
 
12
 
is_set() {
13
 
    $GREP -q "$1=[y|m]" $CONFIG
14
 
    return $?
15
 
}
16
 
 
17
 
is_enabled() {
18
 
    mandatory=$2
19
 
 
20
 
    is_set $1
21
 
    RES=$?
22
 
 
23
 
    if [ $RES -eq 0 ]; then
24
 
        $SETCOLOR_SUCCESS && echo -e "enabled" && $SETCOLOR_NORMAL
25
 
    else
26
 
        if [ ! -z "$mandatory" -a "$mandatory" = yes ]; then
27
 
            $SETCOLOR_FAILURE && echo -e "required" && $SETCOLOR_NORMAL
28
 
        else
29
 
            $SETCOLOR_WARNING && echo -e "missing" && $SETCOLOR_NORMAL
30
 
        fi
31
 
    fi
32
 
}
33
 
 
34
 
if [ ! -f $CONFIG ]; then
35
 
    echo "Kernel config $CONFIG not found, looking in other places..."
36
 
    KVER="`uname -r`"
37
 
    HEADERS_CONFIG="/lib/modules/$KVER/build/.config"
38
 
    BOOT_CONFIG="/boot/config-$KVER"
39
 
    [ -f "${HEADERS_CONFIG}" ] && CONFIG=${HEADERS_CONFIG}
40
 
    [ -f "${BOOT_CONFIG}" ] && CONFIG=${BOOT_CONFIG}
41
 
    GREP=grep
42
 
    if [ ! -f $CONFIG ]; then
43
 
        echo
44
 
        echo "The kernel configuration can not be retrieved."
45
 
        echo "Please recompile with IKCONFIG_PROC, or"
46
 
        echo "install the kernel headers, or specify"
47
 
        echo "the path to the config file with: CONFIG=<path> lxc-checkconfig"
48
 
        echo
49
 
        exit 1
50
 
    else
51
 
        echo "Found kernel config file $CONFIG"
52
 
    fi
53
 
fi
54
 
 
55
 
echo "--- Namespaces ---"
56
 
echo -n "Namespaces: " && is_enabled CONFIG_NAMESPACES yes
57
 
echo -n "Utsname namespace: " && is_enabled CONFIG_UTS_NS
58
 
echo -n "Ipc namespace: " && is_enabled CONFIG_IPC_NS yes
59
 
echo -n "Pid namespace: " && is_enabled CONFIG_PID_NS yes
60
 
echo -n "User namespace: " && is_enabled CONFIG_USER_NS
61
 
echo -n "Network namespace: " && is_enabled CONFIG_NET_NS
62
 
echo -n "Multiple /dev/pts instances: " && is_enabled DEVPTS_MULTIPLE_INSTANCES
63
 
echo
64
 
echo "--- Control groups ---"
65
 
 
66
 
CGROUP_MNT_PATH=$(grep -m1 "^cgroup" /proc/self/mounts | awk '{ print $2 }')
67
 
 
68
 
echo -n "Cgroup: " && is_enabled CONFIG_CGROUPS yes
69
 
 
70
 
if [ -f $CGROUP_MNT_PATH/cgroup.clone_children ]; then
71
 
    echo -n "Cgroup clone_children flag: " &&
72
 
    $SETCOLOR_SUCCESS && echo -e "enabled" && $SETCOLOR_NORMAL
73
 
else
74
 
    echo -n "Cgroup namespace: " && is_enabled CONFIG_CGROUP_NS yes
75
 
fi
76
 
echo -n "Cgroup device: " && is_enabled CONFIG_CGROUP_DEVICE
77
 
echo -n "Cgroup sched: " && is_enabled CONFIG_CGROUP_SCHED
78
 
echo -n "Cgroup cpu account: " && is_enabled CONFIG_CGROUP_CPUACCT
79
 
echo -n "Cgroup memory controller: " && is_enabled CONFIG_CGROUP_MEM_RES_CTLR
80
 
is_set CONFIG_SMP && echo -n "Cgroup cpuset: " && is_enabled CONFIG_CPUSETS
81
 
echo
82
 
echo "--- Misc ---"
83
 
echo -n "Veth pair device: " && is_enabled CONFIG_VETH
84
 
echo -n "Macvlan: " && is_enabled CONFIG_MACVLAN
85
 
echo -n "Vlan: " && is_enabled CONFIG_VLAN_8021Q
86
 
KVER_MINOR=$($GREP '^# Linux' $CONFIG | \
87
 
    sed -r 's/.*2.6.([0-9]{2}).*/\1/')
88
 
echo -n "File capabilities: " &&
89
 
    [[ ${KVER_MINOR} < 33 ]] && is_enabled CONFIG_SECURITY_FILE_CAPABILITIES ||
90
 
    [[ ${KVER_MINOR} > 32 ]] &&  $SETCOLOR_SUCCESS && echo -e "enabled" &&
91
 
    $SETCOLOR_NORMAL
92
 
 
93
 
echo
94
 
echo "Note : Before booting a new kernel, you can check its configuration"
95
 
echo "usage : CONFIG=/path/to/config $0"
96
 
echo
97