[lxc-devel] LXC 0.9.alpha1 pull request

Stéphane Graber stgraber at ubuntu.com
Tue Dec 11 14:23:12 UTC 2012


On 12/11/2012 05:12 AM, Daniel Lezcano wrote:
> On 12/10/2012 11:36 PM, Stéphane Graber wrote:
>> Hi Daniel,
>>
>> You'll find the 0.9.alpha1 pull request below.
>>
>> Based on what you had to do last time in Copenhagen, I believe the
>> following actions are to be done on your side:
>>
>>  - Properly tag 0.8, currently we only have a commit but no matching
>>    tag, this should be fixed before pulling from staging.
> 
> I just forgot to push the tags, it is on my local tree. I am not able to
> push the tree right now because there is an issue on sourceforge with
> the owners of the git tree. I opened a ticket for that.

Ok, let's hope they'll fix it soon.

>>  - Review the pull request
>>  - Use "git pull --edit --no-ff --stat git://github.com/lxc/lxc.git",
>>    that should do a real merge, letting you do a proper Sign-off of the
>>    changes.
>>  - Update the version number to 0.9.alpha1 (the version number format
>>    is to avoid breaking RPM based distros)
> 
> Why 0.9.alpha1 and not 0.9.0-rc1 ?

So, the reason for the dotted version number is that apparently dashes
break the rpm magic...

Now as for alpha vs rc, I tend to consider rc as being feature frozen,
which isn't quite the case with what we have in staging.
We're still planning a bunch more API changes and config file
reorganisation before considering it feature complete.

However, you're perfectly correct that I forgot a .0 in the version
number :)

So my guess is that we'll end up doing something like:
0.9.0.alpha1 - December
0.9.0.alpha2 - February
0.9.0.rc1    - March
... as many rc as needed to fix any major issue
0.9.0

This would mean that all feature changes for 0.9.0 would need to hit
staging by end of February.

The final release of 0.9.0 would then end up being somewhere between end
of March to end of April depending on how many critical issues are found
in rc1 and any subsequent rc.

That schedule will mean that 0.9.0 probably won't make it in Ubuntu
13.04 but that's not a big concern as we tend to manually apply pretty
much all the patches anyway :)


Does that make sense to you?

>>  - Commit and tag
>>
>> Major changes include:
>>  - Introduction of the new liblxc API
>>  - Python bindings
>>  - New tools:
>>    - lxc-device
>>    - lxc-start-ephemeral
>>    - python version of lxc-ls
>>  - lxc.autodev support
>>  - oracle template
>>  - reworked lxc-attach
>>  - /etc/lxc/lxc.conf configuration
>>  - Switch to new docbook
>>  - A lot of other improvements, new features and bugfixes (details
>>    below)
>>
>> I've been using the staging branch daily for the past few months and as
>> far as I can tell, all the issues I noticed have been fixed.
>> All of Serge's tests have also passed against today's staging branch and
>> same thing for the few tests I usually run here, so it should be a
>> pretty solid alpha release :)
>>
>> Thanks to everyone involved!
>>
>> Stéphane
>>
>> ----
>>
>> The following changes since commit 4aa7ac35696b87867b1e85410a80527696ff4d64:
>>
>>   Version 0.8.0 (2012-11-11 03:34:22 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/lxc/lxc.git staging
>>
>> for you to fetch changes up to 7323456ec3efe23bb7a84164d3e71d4293998f2c:
>>
>>   assume LXCPATH took on default localstatedir based value in configure
>> (2012-12-10 12:34:53 -0500)
>>
>> ----------------------------------------------------------------
>> Christian Seiler (6):
>>       lxc-start: Add command to retrieve the clone flags used to start
>> the container.
>>       lxc-attach: Remodel cgroup attach logic and attach to namespaces
>> again in parent process
>>       lxc-attach: Detect which namespaces to attach to dynamically
>>       lxc-unshare: Move functions to determine clone flags from command
>> line options to namespace.c
>>       lxc-attach: Add -s option to select namespaces to attach to
>>       lxc-attach: Add -R option to remount /sys and /proc when only
>> partially attaching
>>
>> Diego Elio Pettenò (1):
>>       build: make sure to expand all variables that are substituted.
>>
>> Dwight Engen (29):
>>       fix compile without apparmor (against git staging)
>>       fix gcc error: typedef redefinition (against git staging)
>>       fix expansion of LXCPATH,LXCROOTFSMOUNT,LXCTEMPLATEDIR
>>       fix minor spelling error
>>       Better rpm database downgrade logic
>>       Always rebuild rpm database
>>       Fix removal of unneeded startup/shutdown scripts
>>       Honor network type and link from lxc-create -f
>>       Add distro config file /etc/lxc/lxc.conf
>>       Add distro config file /etc/lxc/lxc.conf
>>       Reinstate README file in rootfs directory
>>       Fix package name needed for building docs with RPM
>>       Fix checkconfig to handle kernel memory cgroup name change
>>       Fix fd leak in lxc log
>>       Fix use of list item memory after free
>>       Free allocated configuration memory
>>       Ensure argv passed by createl to create is NULL terminated
>>       Use autoconf LXCPATH instead of hardcoded LXCDIR
>>       Make config api items const
>>       Oracle template: make container also boot under libvirt
>>       Fix busybox template to not have extra aa_profile hunk
>>       Fix build with --enable-tests on Fedora
>>       Include lxc-ubuntu when doing make dist
>>       Create busybox commands as symlinks instead of hardlinks
>>       make install should create $LXCPATH directory
>>       Use LXCPATH and LOCALSTATEDIR instead of hardcoded /var
>>       make install should create /var/cache/lxc directory
>>       lxc.spec: add openssl and rsync as Required since both are used in
>> lxc-clone
>>       assume LXCPATH took on default localstatedir based value in configure
>>
>> Frank Scholten (1):
>>       Updated README and INSTALL. autogen.sh command should be run
>> before configure.
>>
>> Frederic Crozat (1):
>>       ensure btrfs subvolume is removed when container creating fails
>>
>> Jan Kiszka (2):
>>       lxc-wait: Add timeout option
>>       Add network-down script
>>
>> Natanael Copa (9):
>>       lxc-start: add option -p, --pidfile=FILE
>>       lxc-create: use posix shell instead of bash
>>       lxc-create: fix passing over first argument to template script
>>       lxc-create: do not use 'local'
>>       lxc-info: add option -t, --state-is=STATE to test for a given test
>>       lxc-version: use POSIX shell instead of bash
>>       lxc-checkconfig: use POSIX shell instead of bash
>>       lxc-setcap: use POSIX shell instead of bash
>>       lxc-setuid: use POSIX shell instead of bash
>>
>> Peter Simons (2):
>>       Update documentation to Docbook 4.5
>>       Update documentation to Docbook 4.5
>>
>> Serge Hallyn (39):
>>       Introduce support for seccomp.
>>       confile: support 'lxc.include' option to include other config files
>>       seccomp: include lxcseccomp.h in start.c
>>       fix configure.ac for seccomp and apparmor
>>       Makefile.am: use right .h file name for seccomp
>>       lxc-create: Make location of container rootfs configurable
>>       lxc-wait: initialize timeout to -1
>>       Add lxc.hook.pre-mount
>>       replace HOOK define with proper code.
>>       check chdir(/) return value
>>       Fix passing non-const char* in for const char*
>>       get_item(utsname): don't dereference utsname if it is NULL
>>       Add lxc_conf_free()
>>       document lxc.hooks in lxc.conf manpage
>>       premount hook is implemented in git
>>       dual-fork for daemonized fork in lxcapi-start
>>       check sscanf return value
>>       check return values of scanf and system
>>       api shutdown: don't c->stop() if already stopped.
>>       Support individual hook types in clear_config_item
>>       add oracle template  (From: Dwight Engen)
>>       Fix reverse check: error out only if mkdir(cgroup/lxc) fails NOT
>> due to -EEXIST
>>       lxc-ssh: fix message about ssh key insertion
>>       Initialize curtime to silence spurious compiler warning
>>       Revert "Fix check against LXCROOTFSMOUNT to use strcmp"
>>       switch use of #define with static char*
>>       dont fail on failure to link kmsg
>>       Add lxc.autodev
>>       fix lxc-ubuntu-cloud option parsing bugs
>>       revert inadvertent un-doing of lxc-clone fix
>>       Description: run MAKEDEV console when doing lxc.autodev
>>       check and warn of return value from fchdir
>>       lxc-clone: use hardlink detection in rsync
>>       templates: use hardlink detection in rsync
>>       lxc_conf logfile and loglevel support
>>       rename physical nics at shutdown
>>       lxc-create: refuse to use a custom rootfs (--dir) which already
>> exists.
>>       api: add set_cgroup_item and get_cgroup_item (to c api)
>>       dont save loglevel if it is unset
>>
>> Stéphane Graber (77):
>>       Merge the liblxc API work by Serge Hallyn.
>>       When starting a container daemonized, wait for it to reach RUNNING
>> state before returning the result of start().
>>       Add python-lxc based on the new liblxc API.
>>       Remove duplicate copy of runapitests.bash
>>       Rename runapitests.bash to runapitests.sh and make it use /bin/sh
>>       Add lxc.aa_profile example to all templates
>>       Make building the API tests/examples optional
>>       Change lxc_remove_nic from returning int to void
>>       Remove unused "i" variable in lxc_get_item_nic
>>       Cleanup lxc_wait
>>       Remove unused v1 and v2 variables in main()
>>       Add better example/test of the python3-lxc API
>>       Raise exception when getting Container instance as non-root in
>> python3-lxc
>>       Remove zombie_handler from python-lxc code
>>       Add lxc-start-ephemeral
>>       Remove hardcoded /var/lib/lxc from lxc-start-ephemeral
>>       Fix previous commit, removing hardcoded /var/lib/lxc from
>> lxc-start-ephemeral
>>       Prefix the test binaries by lxc-test-
>>       python-lxc: Always convert state passed to wait() to uppercase
>>       lxc-start-ephemeral: Fix typo causing crash at startup
>>       lxc-start-ephemeral: Add missing return call to wait override
>>       lxc-start-ephemeral: Drop stop() calls when shutdown() returns
>> non-True
>>       lxc-start-ephemeral: Exit with command return code
>>       lxc-start-ephemeral: startup time improvement
>>       api_test.py: Remove workarounds for API bugs
>>       python-lxc: Add missing space between two help lines
>>       Convert remaining file to new docbook format
>>       Revert "Convert remaining file to new docbook format"
>>       Revert "Update documentation to Docbook 4.5"
>>       lxc-start-ephemeral: Wipe the whole container on exit, not just
>> the rootfs
>>       Set automake flags and CFLAGS
>>       Fix autogen failing because of clean/distclean overrides
>>       Fix check against LXCROOTFSMOUNT to use strcmp
>>       Detect which name to use for docbook2x-man
>>       Update .gitignore for current list of binaries and templates
>>       lxc-ls: Don't exit 1 when no container or help
>>       lxc-create: Support passing a full path to -t
>>       Check return value of all system calls in startone
>>       Add the test binaries to .gitignore
>>       Use clearer error message on failure to create pidfile
>>       python: Add add_device() function
>>       python: Add new lxc-device tool
>>       lxc.conf.sgml.in: Fix typo
>>       Remove all trailing whitespaces.
>>       python: PEP8 compatibility
>>       python: Use builtin len() function for network interfaces
>>       gitignore: Ignore python cache
>>       lxc-ubuntu: Always create the needed locales
>>       lxc-ubuntu: Guess a list of langpacks to install
>>       lxc-ubuntu: Rename from lxc-ubuntu.in
>>       lxc-ubuntu: Fix mixed indent
>>       lxc-ubuntu: Fix wrong variable name
>>       lxc-create: Store template information in config
>>       lxc-create: Script cleanup
>>       Rewrite lxc-ls in python
>>       Install legacy scripts when built without python.
>>       lxc-start-ephemeral: Use argparse errors
>>       lxc-ls: Show a simple error message when non-root
>>       lxc-device: Show an error message when non-root
>>       python: Update to the device related functions
>>       lxc-ls: Update code to allow non-root listing
>>       lxc-archlinux.in: Apply same LXCPATH/LOCALSTATEDIR
>>       oracle template: fixes when using fedora host
>>       Update README
>>       Minor documentation updates
>>       templates: Make generated config consistent
>>       Update for consistent indent
>>       lxc-ubuntu: Don't hardcode path to cache
>>       lxc-archlinux: Don't hardcode /var/lib/lxc in help
>>       templates: Consistent use of locking
>>       python: Remove hardcoded LXCPATH
>>       lxc-create: Allow for empty or unset template name
>>       python3-lxc: Fix build prefix/destdir
>>       python: get_keys() doesn't require a path
>>       python: Add binding for {get|set}_cgroup_item
>>       gitignore: Update for python files
>>       python: Update add_device_node to use the new API
>>
>>  .gitignore                             |   44 ++++--
>>  CONTRIBUTING                           |    7 +-
>>  COPYING                                |   16 +-
>>  INSTALL                                |    4 +-
>>  Makefile.am                            |    6 +-
>>  README                                 |   37 ++++-
>>  TODO                                   |    2 +-
>>  config/Makefile.am                     |   15 +-
>>  config/acinclude.m4                    |   16 +-
>>  config/lxc.conf.libvirt                |    3 +
>>  config/lxc.conf.ubuntu                 |    3 +
>>  config/lxc.conf.unknown                |    1 +
>>  configure.ac                           |  132 ++++++++++++++--
>>  doc/FAQ.txt                            |    4 +-
>>  doc/Makefile.am                        |   21 ++-
>>  doc/legacy/lxc-ls.sgml.in              |  156 +++++++++++++++++++
>>  doc/lxc-attach.sgml.in                 |  127 +++++++++++++++-
>>  doc/lxc-cgroup.sgml.in                 |    6 +-
>>  doc/lxc-checkpoint.sgml.in             |    2 +-
>>  doc/lxc-console.sgml.in                |    8 +-
>>  doc/lxc-create.sgml.in                 |   15 +-
>>  doc/lxc-destroy.sgml.in                |    6 +-
>>  doc/lxc-execute.sgml.in                |    6 +-
>>  doc/lxc-freeze.sgml.in                 |    6 +-
>>  doc/lxc-kill.sgml.in                   |    2 +-
>>  doc/lxc-ls.sgml.in                     |  153 +++++++++++++------
>>  doc/lxc-monitor.sgml.in                |    8 +-
>>  doc/lxc-ps.sgml.in                     |   12 +-
>>  doc/lxc-restart.sgml.in                |    2 +-
>>  doc/lxc-shutdown.sgml.in               |    2 +-
>>  doc/lxc-start.sgml.in                  |   18 ++-
>>  doc/lxc-stop.sgml.in                   |    8 +-
>>  doc/lxc-unfreeze.sgml.in               |    6 +-
>>  doc/lxc-wait.sgml.in                   |   17 ++-
>>  doc/lxc.conf                           |    2 +-
>>  doc/lxc.conf.sgml.in                   |  135 ++++++++++++++++-
>>  doc/lxc.sgml.in                        |   22 +--
>>  doc/rootfs/Makefile.am                 |    2 +-
>>  lxc.spec.in                            |    6 +-
>>  runapitests.sh                         |   32 ++++
>>  src/Makefile.am                        |    2 +-
>>  src/lxc/Makefile.am                    |   30 +++-
>>  src/lxc/af_unix.c                      |    8 +-
>>  src/lxc/arguments.h                    |    2 +
>>  src/lxc/attach.c                       |   86 ++++++++++-
>>  src/lxc/attach.h                       |    3 +-
>>  src/lxc/cgroup.c                       |  175 +++++++++++++++++++---
>>  src/lxc/cgroup.h                       |    3 +
>>  src/lxc/commands.c                     |   31 +++-
>>  src/lxc/commands.h                     |    2 +
>>  src/lxc/conf.c                         |  575
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
>>  src/lxc/conf.h                         |   33 +++-
>>  src/lxc/confile.c                      |  944
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------
>>  src/lxc/confile.h                      |   12 ++
>>  src/lxc/execute.c                      |    1 -
>>  src/lxc/genl.c                         |    4 +-
>>  src/lxc/genl.h                         |    4 +-
>>  src/lxc/{ => legacy}/lxc-ls.in         |    7 +-
>>  src/lxc/list.h                         |    5 +
>>  src/lxc/log.c                          |   41 +++++
>>  src/lxc/log.h                          |    4 +-
>>  src/lxc/lxc-checkconfig.in             |   61 ++++----
>>  src/lxc/lxc-clone.in                   |   14 +-
>>  src/lxc/lxc-create.in                  |  258
>> +++++++++++++++++++-------------
>>  src/lxc/lxc-destroy.in                 |   82 +++++-----
>>  src/lxc/lxc-device                     |   95 ++++++++++++
>>  src/lxc/lxc-ls                         |  251
>> +++++++++++++++++++++++++++++++
>>  src/lxc/lxc-netstat.in                 |  130 ++++++++--------
>>  src/lxc/lxc-ps.in                      |  169 +++++++++++----------
>>  src/lxc/lxc-setcap.in                  |   62 ++++----
>>  src/lxc/lxc-setuid.in                  |   66 ++++----
>>  src/lxc/lxc-start-ephemeral.in         |  289
>> +++++++++++++++++++++++++++++++++++
>>  src/lxc/lxc-version.in                 |    2 +-
>>  src/lxc/lxc.h                          |   25 ++++
>>  src/lxc/lxc_attach.c                   |  114 ++++++++++++--
>>  src/lxc/lxc_info.c                     |   15 +-
>>  src/lxc/lxc_monitor.c                  |    2 +-
>>  src/lxc/lxc_start.c                    |   27 +++-
>>  src/lxc/lxc_unshare.c                  |   45 ------
>>  src/lxc/lxc_wait.c                     |   81 +---------
>>  src/lxc/lxccontainer.c                 | 1001
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  src/lxc/lxccontainer.h                 |   79 ++++++++++
>>  src/lxc/lxclock.c                      |  105 +++++++++++++
>>  src/lxc/lxclock.h                      |   61 ++++++++
>>  src/lxc/lxcseccomp.h                   |   41 +++++
>>  src/lxc/mainloop.c                     |    4 +-
>>  src/lxc/mainloop.h                     |    4 +-
>>  src/lxc/monitor.c                      |   24 ++-
>>  src/lxc/namespace.c                    |   45 ++++++
>>  src/lxc/namespace.h                    |    3 +
>>  src/lxc/network.c                      |   16 ++
>>  src/lxc/network.h                      |    3 +-
>>  src/lxc/nl.c                           |   14 +-
>>  src/lxc/nl.h                           |   32 ++--
>>  src/lxc/rtnl.c                         |    2 +-
>>  src/lxc/rtnl.h                         |    4 +-
>>  src/lxc/seccomp.c                      |  121 +++++++++++++++
>>  src/lxc/start.c                        |   88 ++++++++++-
>>  src/lxc/start.h                        |    1 +
>>  src/lxc/state.c                        |  115 ++++++++++++++
>>  src/lxc/state.h                        |    1 +
>>  src/python-lxc/Makefile.am             |   22 +++
>>  src/python-lxc/examples/api_test.py.in |  158 ++++++++++++++++++++
>>  src/python-lxc/lxc.c                   |  620
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  src/python-lxc/lxc/__init__.py.in      |  468
>> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  src/python-lxc/setup.py                |   10 ++
>>  src/tests/Makefile.am                  |   23 +++
>>  src/tests/containertests.c             |  262
>> ++++++++++++++++++++++++++++++++
>>  src/tests/createtest.c                 |   92 ++++++++++++
>>  src/tests/destroytest.c                |  104 +++++++++++++
>>  src/tests/get_item.c                   |  308
>> ++++++++++++++++++++++++++++++++++++++
>>  src/tests/getkeys.c                    |   71 +++++++++
>>  src/tests/locktests.c                  |  239 +++++++++++++++++++++++++++++
>>  src/tests/saveconfig.c                 |  106 +++++++++++++
>>  src/tests/shutdowntest.c               |   93 ++++++++++++
>>  src/tests/startone.c                   |  264
>> ++++++++++++++++++++++++++++++++
>>  templates/Makefile.am                  |    3 +
>>  templates/lxc-altlinux.in              |  134 +++++++++--------
>>  templates/lxc-archlinux.in             |   30 ++--
>>  templates/lxc-busybox.in               |  144 ++++++++----------
>>  templates/lxc-debian.in                |  119 ++++++++-------
>>  templates/lxc-fedora.in                |  110 +++++++-------
>>  templates/lxc-lenny.in                 |  120 +++++++--------
>>  templates/lxc-opensuse.in              |  122 +++++++--------
>>  templates/lxc-oracle.in                |  557
>> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
>>  templates/lxc-sshd.in                  |   40 ++---
>>  templates/lxc-ubuntu-cloud.in          |   22 ++-
>>  templates/lxc-ubuntu.in                |   68 +++++----
>>  128 files changed, 9498 insertions(+), 1405 deletions(-)
>>  create mode 100644 config/lxc.conf.libvirt
>>  create mode 100644 config/lxc.conf.ubuntu
>>  create mode 100644 config/lxc.conf.unknown
>>  create mode 100644 doc/legacy/lxc-ls.sgml.in
>>  create mode 100644 runapitests.sh
>>  rename src/lxc/{ => legacy}/lxc-ls.in (96%)
>>  create mode 100644 src/lxc/lxc-device
>>  create mode 100644 src/lxc/lxc-ls
>>  create mode 100644 src/lxc/lxc-start-ephemeral.in
>>  create mode 100644 src/lxc/lxccontainer.c
>>  create mode 100644 src/lxc/lxccontainer.h
>>  create mode 100644 src/lxc/lxclock.c
>>  create mode 100644 src/lxc/lxclock.h
>>  create mode 100644 src/lxc/lxcseccomp.h
>>  create mode 100644 src/lxc/seccomp.c
>>  create mode 100644 src/python-lxc/Makefile.am
>>  create mode 100644 src/python-lxc/examples/api_test.py.in
>>  create mode 100644 src/python-lxc/lxc.c
>>  create mode 100644 src/python-lxc/lxc/__init__.py.in
>>  create mode 100644 src/python-lxc/setup.py
>>  create mode 100644 src/tests/Makefile.am
>>  create mode 100644 src/tests/containertests.c
>>  create mode 100644 src/tests/createtest.c
>>  create mode 100644 src/tests/destroytest.c
>>  create mode 100644 src/tests/get_item.c
>>  create mode 100644 src/tests/getkeys.c
>>  create mode 100644 src/tests/locktests.c
>>  create mode 100644 src/tests/saveconfig.c
>>  create mode 100644 src/tests/shutdowntest.c
>>  create mode 100644 src/tests/startone.c
>>  create mode 100644 templates/lxc-oracle.in
>>
>>
>>
> 


-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20121211/3bc04587/attachment.pgp>


More information about the lxc-devel mailing list