Re: [lxc-devel] [PATCH] Add LXC version information to version.h

2013-12-02 Thread Stéphane Graber
On Sun, Dec 01, 2013 at 11:14:17PM -0500, S.Çağlar Onur wrote:
 So that applications can get the LXC version number at compile time.
 
 This can be used to make applications/bindings that support compiling against
 multiple versions of LXC.

So I guess that information would indeed be useful to some external
software/bindings.

However I think we have to be careful there as my plan was to seriously
cut back in the number of public headers.

The goal for 1.0 is for liblxc1 to be the only bits we export for out of
tree use, currently, that'd be lxccontainer.h and its rdepends so:
 - lxccontainer.h
 - lxclock.h
 - attach_options.h

Everything else would be available only for in-tree use.

I guess we could have lxccontainer.h include version.h and then ship version.h.
Looking at it again, especially in view of your changes, I suspect we
could kill version.c and the lxc_version function and simply have
lxccontainer.c return LXC_VERSION. (That'd avoid both lxccontainer.h and
version.h exporting the same function with two different names).

Actually I'm not completely sure we should even export lxclock, is there
any cases where we expect external users to want to mess with our locks?

 
 Signed-off-by: S.Çağlar Onur cag...@10ur.org
 ---
  .gitignore   |  1 +
  configure.ac |  7 ++-
  src/lxc/version.h| 31 ---
  src/lxc/version.h.in | 36 
  4 files changed, 43 insertions(+), 32 deletions(-)
  delete mode 100644 src/lxc/version.h
  create mode 100644 src/lxc/version.h.in
 
 diff --git a/.gitignore b/.gitignore
 index 65d9a77..a38ceb0 100644
 --- a/.gitignore
 +++ b/.gitignore
 @@ -74,6 +74,7 @@ src/lxc/lxc-version
  src/lxc/lxc-wait
  src/lxc/legacy/lxc-ls
  src/lxc/lxc-user-nic
 +src/lxc/version.h
  
  src/python-lxc/build/
  src/python-lxc/lxc/__pycache__/
 diff --git a/configure.ac b/configure.ac
 index e9d3128..7b3da91 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -14,6 +14,11 @@ AC_INIT([lxc], [lxc_version])
  AC_SUBST(LXC_VERSION_BASE, lxc_version_base)
  AC_SUBST(LXC_VERSION_BETA, lxc_version_beta)
  
 +AC_SUBST([LXC_VERSION_MAJOR], [lxc_version_major])
 +AC_SUBST([LXC_VERSION_MINOR], [lxc_version_minor])
 +AC_SUBST([LXC_VERSION_MICRO], [lxc_version_micro])
 +AC_SUBST([LXC_VERSION], [lxc_version])
 +
  AC_CONFIG_SRCDIR([configure.ac])
  AC_CONFIG_AUX_DIR([config])
  AC_CONFIG_HEADERS([src/config.h])
 @@ -554,7 +559,7 @@ AC_CONFIG_FILES([
   src/lxc/lxc-start-ephemeral
   src/lxc/legacy/lxc-ls
   src/lxc/lxc.functions
 -
 + src/lxc/version.h
   src/python-lxc/Makefile
  
   src/lua-lxc/Makefile
 diff --git a/src/lxc/version.h b/src/lxc/version.h
 deleted file mode 100644
 index e2b0fc4..000
 --- a/src/lxc/version.h
 +++ /dev/null
 @@ -1,31 +0,0 @@
 -/*
 - * lxc: linux Container library
 - *
 - * (C) Copyright IBM Corp. 2007, 2008
 - *
 - * Authors:
 - * Daniel Lezcano daniel.lezcano at free.fr
 - *
 - * This library is free software; you can redistribute it and/or
 - * modify it under the terms of the GNU Lesser General Public
 - * License as published by the Free Software Foundation; either
 - * version 2.1 of the License, or (at your option) any later version.
 - *
 - * This library 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
 - * Lesser General Public License for more details.
 - *
 - * You should have received a copy of the GNU Lesser General Public
 - * License along with this library; if not, write to the Free Software
 - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
 USA
 - */
 -#ifndef _version_h
 -#define _version_h
 -
 -/*
 - * Returns the version number of the library
 - */
 -extern const char *lxc_version(void);
 -
 -#endif
 diff --git a/src/lxc/version.h.in b/src/lxc/version.h.in
 new file mode 100644
 index 000..6867b6e
 --- /dev/null
 +++ b/src/lxc/version.h.in
 @@ -0,0 +1,36 @@
 +/*
 + * lxc: linux Container library
 + *
 + * (C) Copyright IBM Corp. 2007, 2008
 + *
 + * Authors:
 + * Daniel Lezcano daniel.lezcano at free.fr
 + *
 + * This library is free software; you can redistribute it and/or
 + * modify it under the terms of the GNU Lesser General Public
 + * License as published by the Free Software Foundation; either
 + * version 2.1 of the License, or (at your option) any later version.
 + *
 + * This library 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
 + * Lesser General Public License for more details.
 + *
 + * You should have received a copy of the GNU Lesser General Public
 + * License along with this library; if not, write to the Free Software
 + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
 USA
 + */
 +#ifndef 

Re: [lxc-devel] [PATCH] Add LXC version information to version.h

2013-12-02 Thread Serge Hallyn
Quoting S.Çağlar Onur (cag...@10ur.org):
 Hey Stéphane,
 
 On Mon, Dec 2, 2013 at 10:34 AM, Stéphane Graber stgra...@ubuntu.com wrote:
  On Sun, Dec 01, 2013 at 11:14:17PM -0500, S.Çağlar Onur wrote:
  So that applications can get the LXC version number at compile time.
 
  This can be used to make applications/bindings that support compiling 
  against
  multiple versions of LXC.
 
  So I guess that information would indeed be useful to some external
  software/bindings.
 
  However I think we have to be careful there as my plan was to seriously
  cut back in the number of public headers.
 
  The goal for 1.0 is for liblxc1 to be the only bits we export for out of
  tree use, currently, that'd be lxccontainer.h and its rdepends so:
   - lxccontainer.h
   - lxclock.h
   - attach_options.h
 
  Everything else would be available only for in-tree use.
 
 I see, that sounds like a good plan to me.
 
  I guess we could have lxccontainer.h include version.h and then ship 
  version.h.
  Looking at it again, especially in view of your changes, I suspect we
  could kill version.c and the lxc_version function and simply have
  lxccontainer.c return LXC_VERSION. (That'd avoid both lxccontainer.h and
  version.h exporting the same function with two different names).
 
  Actually I'm not completely sure we should even export lxclock, is there
  any cases where we expect external users to want to mess with our locks?

shudder

 I think we don't need it. I would expect no one to use it externally.

-serge

--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk
___
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel


[lxc-devel] [PATCH] Add LXC version information to version.h

2013-12-01 Thread S . Çağlar Onur
So that applications can get the LXC version number at compile time.

This can be used to make applications/bindings that support compiling against
multiple versions of LXC.

Signed-off-by: S.Çağlar Onur cag...@10ur.org
---
 .gitignore   |  1 +
 configure.ac |  7 ++-
 src/lxc/version.h| 31 ---
 src/lxc/version.h.in | 36 
 4 files changed, 43 insertions(+), 32 deletions(-)
 delete mode 100644 src/lxc/version.h
 create mode 100644 src/lxc/version.h.in

diff --git a/.gitignore b/.gitignore
index 65d9a77..a38ceb0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -74,6 +74,7 @@ src/lxc/lxc-version
 src/lxc/lxc-wait
 src/lxc/legacy/lxc-ls
 src/lxc/lxc-user-nic
+src/lxc/version.h
 
 src/python-lxc/build/
 src/python-lxc/lxc/__pycache__/
diff --git a/configure.ac b/configure.ac
index e9d3128..7b3da91 100644
--- a/configure.ac
+++ b/configure.ac
@@ -14,6 +14,11 @@ AC_INIT([lxc], [lxc_version])
 AC_SUBST(LXC_VERSION_BASE, lxc_version_base)
 AC_SUBST(LXC_VERSION_BETA, lxc_version_beta)
 
+AC_SUBST([LXC_VERSION_MAJOR], [lxc_version_major])
+AC_SUBST([LXC_VERSION_MINOR], [lxc_version_minor])
+AC_SUBST([LXC_VERSION_MICRO], [lxc_version_micro])
+AC_SUBST([LXC_VERSION], [lxc_version])
+
 AC_CONFIG_SRCDIR([configure.ac])
 AC_CONFIG_AUX_DIR([config])
 AC_CONFIG_HEADERS([src/config.h])
@@ -554,7 +559,7 @@ AC_CONFIG_FILES([
src/lxc/lxc-start-ephemeral
src/lxc/legacy/lxc-ls
src/lxc/lxc.functions
-
+   src/lxc/version.h
src/python-lxc/Makefile
 
src/lua-lxc/Makefile
diff --git a/src/lxc/version.h b/src/lxc/version.h
deleted file mode 100644
index e2b0fc4..000
--- a/src/lxc/version.h
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * lxc: linux Container library
- *
- * (C) Copyright IBM Corp. 2007, 2008
- *
- * Authors:
- * Daniel Lezcano daniel.lezcano at free.fr
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library 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
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-#ifndef _version_h
-#define _version_h
-
-/*
- * Returns the version number of the library
- */
-extern const char *lxc_version(void);
-
-#endif
diff --git a/src/lxc/version.h.in b/src/lxc/version.h.in
new file mode 100644
index 000..6867b6e
--- /dev/null
+++ b/src/lxc/version.h.in
@@ -0,0 +1,36 @@
+/*
+ * lxc: linux Container library
+ *
+ * (C) Copyright IBM Corp. 2007, 2008
+ *
+ * Authors:
+ * Daniel Lezcano daniel.lezcano at free.fr
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#ifndef _VERSION_H
+#define _VERSION_H
+
+#define LXC_VERSION_MAJOR @LXC_VERSION_MAJOR@
+#define LXC_VERSION_MINOR @LXC_VERSION_MINOR@
+#define LXC_VERSION_MICRO @LXC_VERSION_MICRO@
+#define LXC_VERSION @LXC_VERSION@
+
+/*
+ * Returns the version number of the library
+ */
+extern const char *lxc_version(void);
+
+#endif
-- 
1.8.3.2


--
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET,  PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349351iu=/4140/ostg.clktrk
___
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel