All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v1 1/3] aufs-standalone: new package
@ 2015-07-31 23:56 Christian Stewart
  2015-07-31 23:56 ` [Buildroot] [PATCH v1 2/3] aufs: new kernel extension Christian Stewart
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Christian Stewart @ 2015-07-31 23:56 UTC (permalink / raw)
  To: buildroot

aufs-standalone is a metapackage that downloads the correct
aufs-standalone sources for patching the kernel with the aufs
filesystem. The package is not selectable because it does nothing but
download the sources on default. It is a dependency of the Aufs kernel
extension.

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/aufs-standalone/Config.in          |  5 +++++
 package/aufs-standalone/aufs-standalone.mk | 26 ++++++++++++++++++++++++++
 2 files changed, 31 insertions(+)
 create mode 100644 package/aufs-standalone/Config.in
 create mode 100644 package/aufs-standalone/aufs-standalone.mk

diff --git a/package/aufs-standalone/Config.in b/package/aufs-standalone/Config.in
new file mode 100644
index 0000000..4b48743
--- /dev/null
+++ b/package/aufs-standalone/Config.in
@@ -0,0 +1,5 @@
+config BR2_PACKAGE_AUFS_STANDALONE
+	bool
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_LINUX_KERNEL
diff --git a/package/aufs-standalone/aufs-standalone.mk b/package/aufs-standalone/aufs-standalone.mk
new file mode 100644
index 0000000..ebf5ab6
--- /dev/null
+++ b/package/aufs-standalone/aufs-standalone.mk
@@ -0,0 +1,26 @@
+################################################################################
+#
+# aufs-standalone
+#
+# patches for the linux kernel, used by the extension.
+#
+################################################################################
+
+# linux-headers
+AUFS_STANDALONE_VERSION = aufs$(call qstrip,$(BR2_PACKAGE_AUFS_STANDALONE_VERSION))
+ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)
+AUFS_STANDALONE_MAJOR_VERSION = aufs3
+endif
+ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
+AUFS_STANDALONE_MAJOR_VERSION = aufs4
+endif
+ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)
+AUFS_STANDALONE_SITE = git://git.code.sf.net/p/aufs/aufs3-standalone
+endif
+ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
+AUFS_STANDALONE_SITE = $(call github,sfjro,aufs4-standalone,$(AUFS_STANDALONE_VERSION))
+endif
+AUFS_STANDALONE_LICENSE = GNU
+AUFS_STANDALONE_LICENSE_FILES = COPYING
+
+$(eval $(generic-package))
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 2/3] aufs: new kernel extension.
  2015-07-31 23:56 [Buildroot] [PATCH v1 1/3] aufs-standalone: new package Christian Stewart
@ 2015-07-31 23:56 ` Christian Stewart
  2015-08-03 21:13   ` Yann E. MORIN
  2015-07-31 23:56 ` [Buildroot] [PATCH v1 3/3] aufs-util: new package Christian Stewart
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 10+ messages in thread
From: Christian Stewart @ 2015-07-31 23:56 UTC (permalink / raw)
  To: buildroot

Adding a kernel extension that patches the kernel with the correct
version of aufs-standalone. This relies on the user ensuring the
correct version is set in the configs.

Signed-off-by: Christian Stewart <christian@paral.in>
---
 linux/Config.ext.in                | 54 ++++++++++++++++++++++++++++++++++++++
 linux/linux-ext-aufs-standalone.mk | 23 ++++++++++++++++
 2 files changed, 77 insertions(+)
 create mode 100644 linux/linux-ext-aufs-standalone.mk

diff --git a/linux/Config.ext.in b/linux/Config.ext.in
index ea79aa1..b6b48cf 100644
--- a/linux/Config.ext.in
+++ b/linux/Config.ext.in
@@ -62,4 +62,58 @@ config BR2_LINUX_KERNEL_EXT_FBTFT
 
 	  https://github.com/notro/fbtft
 
+# aufs-standalone
+config BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
+	bool "Aufs Filesystem Module patch"
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_AUFS_STANDALONE
+	help
+	  Aufs is split in two parts: a kernel part and a userspace
+	  part. Enabling this option automatically selects the aufs
+	  standalone (module) package and patches the Linux kernel
+	  built by Buildroot with the aufs kernel part (ie fs/aufs).
+
+	  It is important to use the correct branch of aufs-standalone.
+
+comment "aufs needs a toolchain w/ threads"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
+
+choice
+	prompt "aufs major version"
+	depends on BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
+	default BR2_PACKAGE_AUFS_4X if BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4.1
+	default BR2_PACKAGE_AUFS_3X if !(BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4.1)
+
+config BR2_PACKAGE_AUFS_STANDALONE_4X
+	bool "4.x"
+
+config BR2_PACKAGE_AUFS_STANDALONE_3X
+	bool "3.x"
+
+endchoice
+
+# While we don't build from the kernel headers
+# we can get a default value here
+config BR2_PACKAGE_AUFS_STANDALONE_VERSION
+	string "aufs-standalone branch"
+	depends on BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
+	help
+	  Aufs-standalone repository branch to use. Must match kernel version.
+	default "3.0"  if BR2_KERNEL_HEADERS_3_0
+	default "3.1"  if BR2_KERNEL_HEADERS_3_2 || BR2_KERNEL_HEADERS_3_4
+	default "3.10" if BR2_KERNEL_HEADERS_3_10
+	default "3.11" if BR2_KERNEL_HEADERS_3_11
+	default "3.12" if BR2_KERNEL_HEADERS_3_12
+	default "3.13" if BR2_KERNEL_HEADERS_3_13
+	default "3.14" if BR2_KERNEL_HEADERS_3_14
+	default "3.15" if BR2_KERNEL_HEADERS_3_15
+	default "3.16" if BR2_KERNEL_HEADERS_3_16
+	default "3.17" if BR2_KERNEL_HEADERS_3_17
+	default "3.18" if BR2_KERNEL_HEADERS_3_18
+	default "3.19" if BR2_KERNEL_HEADERS_3_19
+	default "4.0"  if BR2_KERNEL_HEADERS_4_0
+	default "4.1"  if BR2_KERNEL_HEADERS_4_1
+
 endmenu
diff --git a/linux/linux-ext-aufs-standalone.mk b/linux/linux-ext-aufs-standalone.mk
new file mode 100644
index 0000000..4ef6d60
--- /dev/null
+++ b/linux/linux-ext-aufs-standalone.mk
@@ -0,0 +1,23 @@
+################################################################################
+# Linux Aufs extensions
+#
+# Patch the linux kernel with aufs extension
+################################################################################
+
+LINUX_EXTENSIONS += aufs-standalone
+
+define AUFS_STANDALONE_PREPARE_KERNEL
+	if test -d $(LINUX_DIR)/fs/aufs/; then \
+		echo "Your kernel already supports AUFS. Not patching."; \
+	else \
+		$(APPLY_PATCHES) $(LINUX_DIR) $(AUFS_STANDALONE_SRCDIR) \
+			$(AUFS_STANDALONE_MAJOR_VERSION)-kbuild.patch \
+			$(AUFS_STANDALONE_MAJOR_VERSION)-base.patch \
+			$(AUFS_STANDALONE_MAJOR_VERSION)-mmap.patch \
+			$(AUFS_STANDALONE_MAJOR_VERSION)-standalone.patch ; \
+	fi
+	cp $(AUFS_STANDALONE_SRCDIR)/Documentation/ABI/testing/* $(LINUX_DIR)/Documentation/ABI/testing/
+	cp -r $(AUFS_STANDALONE_SRCDIR)/Documentation/filesystems/aufs/ $(LINUX_DIR)/Documentation/filesystems/aufs/
+	cp -r $(AUFS_STANDALONE_SRCDIR)/fs/aufs/ $(LINUX_DIR)/fs/
+	cp $(AUFS_STANDALONE_SRCDIR)/include/uapi/linux/aufs_type.h $(LINUX_DIR)/include/uapi/linux/
+endef
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 3/3] aufs-util: new package
  2015-07-31 23:56 [Buildroot] [PATCH v1 1/3] aufs-standalone: new package Christian Stewart
  2015-07-31 23:56 ` [Buildroot] [PATCH v1 2/3] aufs: new kernel extension Christian Stewart
@ 2015-07-31 23:56 ` Christian Stewart
  2015-08-03 20:41 ` [Buildroot] [PATCH v1 1/3] aufs-standalone: " Yann E. MORIN
  2015-12-01 22:05 ` Thomas Petazzoni
  3 siblings, 0 replies; 10+ messages in thread
From: Christian Stewart @ 2015-07-31 23:56 UTC (permalink / raw)
  To: buildroot

Adding the aufs-util utilities. Uses the linux header version settings
to guess the correct version of aufs-util but ultimately relies on the
user to enter the correct version of aufs-util to use.

Signed-off-by: Christian Stewart <christian@paral.in>
---
 package/Config.in              |  1 +
 package/aufs-util/Config.in    | 34 ++++++++++++++++++++++++++++++++++
 package/aufs-util/aufs-util.mk | 30 ++++++++++++++++++++++++++++++
 3 files changed, 65 insertions(+)
 create mode 100644 package/aufs-util/Config.in
 create mode 100644 package/aufs-util/aufs-util.mk

diff --git a/package/Config.in b/package/Config.in
index 43c58ca..9bb4993 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -148,6 +148,7 @@ endif
 endmenu
 
 menu "Filesystem and flash utilities"
+	source "package/aufs-util/Config.in"
 	source "package/btrfs-progs/Config.in"
 	source "package/cifs-utils/Config.in"
 	source "package/cpio/Config.in"
diff --git a/package/aufs-util/Config.in b/package/aufs-util/Config.in
new file mode 100644
index 0000000..2b999aa
--- /dev/null
+++ b/package/aufs-util/Config.in
@@ -0,0 +1,34 @@
+config BR2_PACKAGE_AUFS_UTIL
+	bool "aufs-util"
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_LINUX_KERNEL
+	help
+	  Aufs command line utilities.
+	  Needs a kernel with aufs support. A kernel
+	  extension package is available.
+
+	  http://sourceforge.net/p/aufs/aufs-util/
+
+# While we don't build from the kernel headers
+# we can get a default value here
+config BR2_PACKAGE_AUFS_UTIL_VERSION
+	string "aufs-util branch"
+	depends on BR2_PACKAGE_AUFS_UTIL
+	help
+	  Aufs-util repository branch to use. Must match kernel version.
+	default "3.0"  if BR2_KERNEL_HEADERS_3_0
+	default "3.2"  if BR2_KERNEL_HEADERS_3_2
+	default "3.2"  if BR2_KERNEL_HEADERS_3_4
+	default "3.9"  if BR2_KERNEL_HEADERS_3_10 || BR2_KERNEL_HEADERS_3_11 || BR2_KERNEL_HEADERS_3_12 || BR2_KERNEL_HEADERS_3_13
+	default "3.14" if BR2_KERNEL_HEADERS_3_14 || BR2_KERNEL_HEADERS_3_15 || BR2_KERNEL_HEADERS_3_16 || BR2_KERNEL_HEADERS_3_17 || BR2_KERNEL_HEADERS_3_18 || BR2_KERNEL_HEADERS_3_19
+	default "4.0"  if BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4_1
+
+comment "aufs-util needs a linux kernel"
+	depends on BR2_USE_MMU
+	depends on !BR2_LINUX_KERNEL
+
+comment "aufs-util needs a toolchain w/ threads"
+	depends on BR2_USE_MMU
+	depends on BR2_LINUX_KERNEL
+	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/aufs-util/aufs-util.mk b/package/aufs-util/aufs-util.mk
new file mode 100644
index 0000000..0733aa9
--- /dev/null
+++ b/package/aufs-util/aufs-util.mk
@@ -0,0 +1,30 @@
+################################################################################
+#
+# aufs-util
+#
+################################################################################
+
+# linux-headers
+AUFS_UTIL_VERSION = aufs$(call qstrip,$(BR2_PACKAGE_AUFS_UTIL_VERSION))
+AUFS_UTIL_SITE = git://git.code.sf.net/p/aufs/aufs-util
+AUFS_UTIL_DEPENDENCIES = linux
+AUFS_UTIL_LICENSE = GNU
+AUFS_UTIL_LICENSE_FILES = COPYING
+
+# Slight hack for a bug with aufsmvdown
+# Remove user setting from install command
+define AUFS_UTIL_CONFIGURE_CMDS
+	$(SED) 's/\.a\[/\.stbr\[/g' $(@D)/aumvdown.c
+	$(SED) 's/\-o root \-g root //g' $(@D)/Makefile
+endef
+
+define AUFS_UTIL_BUILD_CMDS
+	$(MAKE) -C $(LINUX_BUILDDIR) headers_install
+	$(MAKE) -C $(@D) CPPFLAGS="-I $(LINUX_BUILDDIR)/usr/include/" HOSTCC="$(CC)" HOSTLD="$(LD)" INSTALL="$(INSTALL)" all
+endef
+
+define AUFS_UTIL_INSTALL_TARGET_CMDS
+	$(MAKE) -C $(@D) INSTALL="$(INSTALL)" DESTDIR="$(TARGET_DIR)" install
+endef
+
+$(eval $(generic-package))
-- 
2.1.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 1/3] aufs-standalone: new package
  2015-07-31 23:56 [Buildroot] [PATCH v1 1/3] aufs-standalone: new package Christian Stewart
  2015-07-31 23:56 ` [Buildroot] [PATCH v1 2/3] aufs: new kernel extension Christian Stewart
  2015-07-31 23:56 ` [Buildroot] [PATCH v1 3/3] aufs-util: new package Christian Stewart
@ 2015-08-03 20:41 ` Yann E. MORIN
  2015-08-03 20:59   ` Christian Stewart
  2015-12-01 22:05 ` Thomas Petazzoni
  3 siblings, 1 reply; 10+ messages in thread
From: Yann E. MORIN @ 2015-08-03 20:41 UTC (permalink / raw)
  To: buildroot

Christian, All,

On 2015-07-31 16:56 -0700, Christian Stewart spake thusly:
> aufs-standalone is a metapackage that downloads the correct
> aufs-standalone sources for patching the kernel with the aufs
> filesystem. The package is not selectable because it does nothing but
> download the sources on default. It is a dependency of the Aufs kernel
> extension.

I've started reviewing this aufs series. I have some preliminary
comments, but they are just that, inital comments. The series, although
a good basis to start working, is far from being ready.

So, do not just re-send the series after fixing after my comments. Just
hold on it for yet a little while...

> Signed-off-by: Christian Stewart <christian@paral.in>
[--SNIP--]
> diff --git a/package/aufs-standalone/aufs-standalone.mk b/package/aufs-standalone/aufs-standalone.mk
> new file mode 100644
> index 0000000..ebf5ab6
> --- /dev/null
> +++ b/package/aufs-standalone/aufs-standalone.mk
> @@ -0,0 +1,26 @@
> +################################################################################
> +#
> +# aufs-standalone
> +#
> +# patches for the linux kernel, used by the extension.
> +#
> +################################################################################
> +
> +# linux-headers
> +AUFS_STANDALONE_VERSION = aufs$(call qstrip,$(BR2_PACKAGE_AUFS_STANDALONE_VERSION))

BR2_PACKAGE_AUFS_STANDALONE_VERSION is defined nowhere in this patch.

> +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)

Ditto BR2_PACKAGE_AUFS_STANDALONE_3X and the other similar variables...

> +AUFS_STANDALONE_MAJOR_VERSION = aufs3
> +endif
> +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
> +AUFS_STANDALONE_MAJOR_VERSION = aufs4
> +endif
> +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)
> +AUFS_STANDALONE_SITE = git://git.code.sf.net/p/aufs/aufs3-standalone

No need to duplicate the conditional bloc; just move the variable
asignment within the previos condition.

> +endif
> +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
> +AUFS_STANDALONE_SITE = $(call github,sfjro,aufs4-standalone,$(AUFS_STANDALONE_VERSION))
> +endif
> +AUFS_STANDALONE_LICENSE = GNU

'GNU' is not a known license. Probably you meant 'GPLv2'.

Regards,
Yann E. MORIN.

> +AUFS_STANDALONE_LICENSE_FILES = COPYING
> +
> +$(eval $(generic-package))
> -- 
> 2.1.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 1/3] aufs-standalone: new package
  2015-08-03 20:41 ` [Buildroot] [PATCH v1 1/3] aufs-standalone: " Yann E. MORIN
@ 2015-08-03 20:59   ` Christian Stewart
  0 siblings, 0 replies; 10+ messages in thread
From: Christian Stewart @ 2015-08-03 20:59 UTC (permalink / raw)
  To: buildroot

Hi Yann,

> +AUFS_STANDALONE_VERSION = aufs$(call
> qstrip,$(BR2_PACKAGE_AUFS_STANDALONE_VERSION))
>
> BR2_PACKAGE_AUFS_STANDALONE_VERSION is defined nowhere in this patch.
>
> > +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)
>
> Ditto BR2_PACKAGE_AUFS_STANDALONE_3X and the other similar variables...
>

They are defined, under linux/Config.ext.in. This is because this package
simply fetches patches used by the kernel extension to patch the kernel
with aufs.

You're right that they're not in this patch, though. They are here:
https://patchwork.ozlabs.org/patch/502768/

So possibly aufs_standalone should be moved / merged into [v1,2/3] aufs:
new kernel extension.


>
> > +AUFS_STANDALONE_MAJOR_VERSION = aufs3
> > +endif
> > +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
> > +AUFS_STANDALONE_MAJOR_VERSION = aufs4
> > +endif
> > +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)
> > +AUFS_STANDALONE_SITE = git://git.code.sf.net/p/aufs/aufs3-standalone
>
> No need to duplicate the conditional bloc; just move the variable
> asignment within the previos condition.
>
> > +endif
> > +ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
> > +AUFS_STANDALONE_SITE = $(call
> github,sfjro,aufs4-standalone,$(AUFS_STANDALONE_VERSION))
> > +endif
> > +AUFS_STANDALONE_LICENSE = GNU
>
> 'GNU' is not a known license. Probably you meant 'GPLv2'.


These changes look OK to me.

Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150803/c4aa8fc5/attachment.html>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 2/3] aufs: new kernel extension.
  2015-07-31 23:56 ` [Buildroot] [PATCH v1 2/3] aufs: new kernel extension Christian Stewart
@ 2015-08-03 21:13   ` Yann E. MORIN
  2015-08-03 21:16     ` Yann E. MORIN
  2015-08-03 21:23     ` Christian Stewart
  0 siblings, 2 replies; 10+ messages in thread
From: Yann E. MORIN @ 2015-08-03 21:13 UTC (permalink / raw)
  To: buildroot

Christian, All,

On 2015-07-31 16:56 -0700, Christian Stewart spake thusly:
> Adding a kernel extension that patches the kernel with the correct
> version of aufs-standalone. This relies on the user ensuring the
> correct version is set in the configs.

Some more nitial comments...

> Signed-off-by: Christian Stewart <christian@paral.in>
> ---
>  linux/Config.ext.in                | 54 ++++++++++++++++++++++++++++++++++++++
>  linux/linux-ext-aufs-standalone.mk | 23 ++++++++++++++++
>  2 files changed, 77 insertions(+)
>  create mode 100644 linux/linux-ext-aufs-standalone.mk
> 
> diff --git a/linux/Config.ext.in b/linux/Config.ext.in
> index ea79aa1..b6b48cf 100644
> --- a/linux/Config.ext.in
> +++ b/linux/Config.ext.in
> @@ -62,4 +62,58 @@ config BR2_LINUX_KERNEL_EXT_FBTFT
>  
>  	  https://github.com/notro/fbtft
>  
> +# aufs-standalone
> +config BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
> +	bool "Aufs Filesystem Module patch"
> +	depends on BR2_USE_MMU
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	select BR2_PACKAGE_AUFS_STANDALONE
> +	help
> +	  Aufs is split in two parts: a kernel part and a userspace
> +	  part. Enabling this option automatically selects the aufs
> +	  standalone (module) package and patches the Linux kernel
> +	  built by Buildroot with the aufs kernel part (ie fs/aufs).
> +
> +	  It is important to use the correct branch of aufs-standalone.
> +
> +comment "aufs needs a toolchain w/ threads"
> +	depends on BR2_USE_MMU
> +	depends on !BR2_TOOLCHAIN_HAS_THREADS
> +
> +choice
> +	prompt "aufs major version"
> +	depends on BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE

Remove this 'depends on' but enclose the options inside an if...endif
block.

> +	default BR2_PACKAGE_AUFS_4X if BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4.1
> +	default BR2_PACKAGE_AUFS_3X if !(BR2_KERNEL_HEADERS_4_0 || BR2_KERNEL_HEADERS_4.1)

See the comment below, about kernel version...

> +config BR2_PACKAGE_AUFS_STANDALONE_4X
> +	bool "4.x"
> +
> +config BR2_PACKAGE_AUFS_STANDALONE_3X
> +	bool "3.x"
> +
> +endchoice
> +
> +# While we don't build from the kernel headers
> +# we can get a default value here
> +config BR2_PACKAGE_AUFS_STANDALONE_VERSION
> +	string "aufs-standalone branch"
> +	depends on BR2_LINUX_KERNEL_EXT_AUFS_STANDALONE
> +	help
> +	  Aufs-standalone repository branch to use. Must match kernel version.

The help entry goes last (i.e. after the defaults).

> +	default "3.0"  if BR2_KERNEL_HEADERS_3_0
> +	default "3.1"  if BR2_KERNEL_HEADERS_3_2 || BR2_KERNEL_HEADERS_3_4
> +	default "3.10" if BR2_KERNEL_HEADERS_3_10
> +	default "3.11" if BR2_KERNEL_HEADERS_3_11
> +	default "3.12" if BR2_KERNEL_HEADERS_3_12
> +	default "3.13" if BR2_KERNEL_HEADERS_3_13
> +	default "3.14" if BR2_KERNEL_HEADERS_3_14
> +	default "3.15" if BR2_KERNEL_HEADERS_3_15
> +	default "3.16" if BR2_KERNEL_HEADERS_3_16
> +	default "3.17" if BR2_KERNEL_HEADERS_3_17
> +	default "3.18" if BR2_KERNEL_HEADERS_3_18
> +	default "3.19" if BR2_KERNEL_HEADERS_3_19
> +	default "4.0"  if BR2_KERNEL_HEADERS_4_0
> +	default "4.1"  if BR2_KERNEL_HEADERS_4_1

So, this means we can't build aufs except with an internal toolchain.

Besides, the headers that were used to build the toolchain ar enot
necessarily the same version as the kernel that will be running on the
target.

That's just wrong. What we need to do here is just ask the user what
will be the version of the runnoing kernel (we can have a hint if
BR2_LINUX_KERNEL_LATEST_VERSION is set, or if BR2_TOOLCHAIN_BUILDROOT &&
BR2_LINUX_KERNEL_SAME_AS_HEADERS are set. Otherwise, we need the user to
tell us...

>  endmenu
> diff --git a/linux/linux-ext-aufs-standalone.mk b/linux/linux-ext-aufs-standalone.mk
> new file mode 100644
> index 0000000..4ef6d60
> --- /dev/null
> +++ b/linux/linux-ext-aufs-standalone.mk
> @@ -0,0 +1,23 @@
> +################################################################################
> +# Linux Aufs extensions
> +#
> +# Patch the linux kernel with aufs extension
> +################################################################################
> +
> +LINUX_EXTENSIONS += aufs-standalone
> +
> +define AUFS_STANDALONE_PREPARE_KERNEL
> +	if test -d $(LINUX_DIR)/fs/aufs/; then \
> +		echo "Your kernel already supports AUFS. Not patching."; \

This should be a hard-error.

Also, we want to check that the aufs version indeed matches that of hte
kernel, and error-out if not.

Regards,
Yann E. MORIN.

> +	else \
> +		$(APPLY_PATCHES) $(LINUX_DIR) $(AUFS_STANDALONE_SRCDIR) \
> +			$(AUFS_STANDALONE_MAJOR_VERSION)-kbuild.patch \
> +			$(AUFS_STANDALONE_MAJOR_VERSION)-base.patch \
> +			$(AUFS_STANDALONE_MAJOR_VERSION)-mmap.patch \
> +			$(AUFS_STANDALONE_MAJOR_VERSION)-standalone.patch ; \
> +	fi
> +	cp $(AUFS_STANDALONE_SRCDIR)/Documentation/ABI/testing/* $(LINUX_DIR)/Documentation/ABI/testing/
> +	cp -r $(AUFS_STANDALONE_SRCDIR)/Documentation/filesystems/aufs/ $(LINUX_DIR)/Documentation/filesystems/aufs/
> +	cp -r $(AUFS_STANDALONE_SRCDIR)/fs/aufs/ $(LINUX_DIR)/fs/
> +	cp $(AUFS_STANDALONE_SRCDIR)/include/uapi/linux/aufs_type.h $(LINUX_DIR)/include/uapi/linux/
> +endef
> -- 
> 2.1.4
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 2/3] aufs: new kernel extension.
  2015-08-03 21:13   ` Yann E. MORIN
@ 2015-08-03 21:16     ` Yann E. MORIN
  2015-08-03 21:23     ` Christian Stewart
  1 sibling, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2015-08-03 21:16 UTC (permalink / raw)
  To: buildroot

Christian, All,

On 2015-08-03 23:13 +0200, Yann E. MORIN spake thusly:
> On 2015-07-31 16:56 -0700, Christian Stewart spake thusly:
> > Adding a kernel extension that patches the kernel with the correct
> > version of aufs-standalone. This relies on the user ensuring the
> > correct version is set in the configs.
[--SNIP--]
> > +# While we don't build from the kernel headers
> > +# we can get a default value here
> > +config BR2_PACKAGE_AUFS_STANDALONE_VERSION
> > +	string "aufs-standalone branch"

Ah, I missed that this had a prompt. And I missed the comment.

[--SNIP--]
> > +	default "3.0"  if BR2_KERNEL_HEADERS_3_0
> > +	default "3.1"  if BR2_KERNEL_HEADERS_3_2 || BR2_KERNEL_HEADERS_3_4
> > +	default "3.10" if BR2_KERNEL_HEADERS_3_10
> > +	default "3.11" if BR2_KERNEL_HEADERS_3_11
> > +	default "3.12" if BR2_KERNEL_HEADERS_3_12
> > +	default "3.13" if BR2_KERNEL_HEADERS_3_13
> > +	default "3.14" if BR2_KERNEL_HEADERS_3_14
> > +	default "3.15" if BR2_KERNEL_HEADERS_3_15
> > +	default "3.16" if BR2_KERNEL_HEADERS_3_16
> > +	default "3.17" if BR2_KERNEL_HEADERS_3_17
> > +	default "3.18" if BR2_KERNEL_HEADERS_3_18
> > +	default "3.19" if BR2_KERNEL_HEADERS_3_19
> > +	default "4.0"  if BR2_KERNEL_HEADERS_4_0
> > +	default "4.1"  if BR2_KERNEL_HEADERS_4_1

Well, I don't think we should try to be smart. Just leave the field
empty...

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 2/3] aufs: new kernel extension.
  2015-08-03 21:13   ` Yann E. MORIN
  2015-08-03 21:16     ` Yann E. MORIN
@ 2015-08-03 21:23     ` Christian Stewart
  2015-08-03 22:22       ` Floris Bos
  1 sibling, 1 reply; 10+ messages in thread
From: Christian Stewart @ 2015-08-03 21:23 UTC (permalink / raw)
  To: buildroot

Hi Yann,

Remove this 'depends on' but enclose the options inside an if...endif
> block.
>

Done here:

https://github.com/paralin/buildroot/commit/8dd9e882fac4a4512d9dcad8fe19da02ff901e45


> +     default BR2_PACKAGE_AUFS_4X if BR2_KERNEL_HEADERS_4_0 ||
> BR2_KERNEL_HEADERS_4.1
> > +     default BR2_PACKAGE_AUFS_3X if !(BR2_KERNEL_HEADERS_4_0 ||
> BR2_KERNEL_HEADERS_4.1)
>
> See the comment below, about kernel version...
>

As you caught in your next email, these are *defaults*, or guesses. The
user should still verify if the version is correct. The guess is correct a
lot of the time and is helpful to the user because the aufs branches are
often not obviously named.

The help entry goes last (i.e. after the defaults).
>

Fixed.

So, this means we can't build aufs except with an internal toolchain.
>

No, just guesses.

> +define AUFS_STANDALONE_PREPARE_KERNEL
> > +     if test -d $(LINUX_DIR)/fs/aufs/; then \
> > +             echo "Your kernel already supports AUFS. Not patching."; \
>
> This should be a hard-error.
>
> Also, we want to check that the aufs version indeed matches that of hte
> kernel, and error-out if not.
>

As far as I can tell this is not something the Buildroot system is capable
of doing on its own. It's a complex process to check if the versions match.
The aufs make system will do this on its own, so there is already a hard
error if you have the wrong versions checked out. I vote to just let this
error happen at build time.

Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150803/6ecd8369/attachment.html>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 2/3] aufs: new kernel extension.
  2015-08-03 21:23     ` Christian Stewart
@ 2015-08-03 22:22       ` Floris Bos
  0 siblings, 0 replies; 10+ messages in thread
From: Floris Bos @ 2015-08-03 22:22 UTC (permalink / raw)
  To: buildroot

On 08/03/2015 11:23 PM, Christian Stewart wrote:
> Hi Yann,
>
>     Remove this 'depends on' but enclose the options inside an if...endif
>     block.
>
>
> Done here:
>
> https://github.com/paralin/buildroot/commit/8dd9e882fac4a4512d9dcad8fe19da02ff901e45 
>
>
>     > +     default BR2_PACKAGE_AUFS_4X if BR2_KERNEL_HEADERS_4_0 ||
>     BR2_KERNEL_HEADERS_4.1
>     > +     default BR2_PACKAGE_AUFS_3X if !(BR2_KERNEL_HEADERS_4_0 ||
>     BR2_KERNEL_HEADERS_4.1)
>
>     See the comment below, about kernel version...
>
>
> As you caught in your next email, these are *defaults*, or guesses. 
> The user should still verify if the version is correct. The guess is 
> correct a lot of the time and is helpful to the user because the aufs 
> branches are often not obviously named.

Problem is that the guess made may appear correct to the user, while it 
is not.

Oh, I'm using Linux 3.18.19, and buildroot selected "aufs3.18", that 
looks ok.
While he may need "aufs3.18.1+" instead.

By forcing the user to enter it manually, he would at least have to 
figure out what branches are available.



Yours sincerely,

Floris Bos

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20150804/c7b819cf/attachment.html>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [Buildroot] [PATCH v1 1/3] aufs-standalone: new package
  2015-07-31 23:56 [Buildroot] [PATCH v1 1/3] aufs-standalone: new package Christian Stewart
                   ` (2 preceding siblings ...)
  2015-08-03 20:41 ` [Buildroot] [PATCH v1 1/3] aufs-standalone: " Yann E. MORIN
@ 2015-12-01 22:05 ` Thomas Petazzoni
  3 siblings, 0 replies; 10+ messages in thread
From: Thomas Petazzoni @ 2015-12-01 22:05 UTC (permalink / raw)
  To: buildroot

Christian,

On Fri, 31 Jul 2015 16:56:55 -0700, Christian Stewart wrote:
> aufs-standalone is a metapackage that downloads the correct
> aufs-standalone sources for patching the kernel with the aufs
> filesystem. The package is not selectable because it does nothing but
> download the sources on default. It is a dependency of the Aufs kernel
> extension.
> 
> Signed-off-by: Christian Stewart <christian@paral.in>

Your patches are 4 months old, and you got a lot of review comments.
Could you address them and resend an updated version, if you are still
interested in getting aufs support merged in Buildroot ?

In the mean time, I'll mark your patches as Changes Requested in
patchwork.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-12-01 22:05 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-31 23:56 [Buildroot] [PATCH v1 1/3] aufs-standalone: new package Christian Stewart
2015-07-31 23:56 ` [Buildroot] [PATCH v1 2/3] aufs: new kernel extension Christian Stewart
2015-08-03 21:13   ` Yann E. MORIN
2015-08-03 21:16     ` Yann E. MORIN
2015-08-03 21:23     ` Christian Stewart
2015-08-03 22:22       ` Floris Bos
2015-07-31 23:56 ` [Buildroot] [PATCH v1 3/3] aufs-util: new package Christian Stewart
2015-08-03 20:41 ` [Buildroot] [PATCH v1 1/3] aufs-standalone: " Yann E. MORIN
2015-08-03 20:59   ` Christian Stewart
2015-12-01 22:05 ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.