Skip to contentSkip to conversation

aufs-standalone: new package

PATCH Superseded Christian Stewart 4 participants 10 messages Jul 31, 2015 – Dec 1, 2015

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/3 aufs-standalone: new package

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.

---
 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
package/aufs-standalone/Config.in new file +5 -0
new file mode 100644
index 0000000..4b48743
@@ -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
package/aufs-standalone/aufs-standalone.mk new file +26 -0
new file mode 100644
index 0000000..ebf5ab6
@@ -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))
Signature · 1 line
2.1.4
#1 lore raw

PATCH 2/3 aufs: new kernel extension.

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.

---
 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
linux/Config.ext.in +54 -0
index ea79aa1..b6b48cf 100644
@@ -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
linux/linux-ext-aufs-standalone.mk new file +23 -0
new file mode 100644
index 0000000..4ef6d60
@@ -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
Signature · 1 line
2.1.4
#2 lore raw

PATCH 2/3 aufs: new kernel extension.

Christian, All,

On 2015-07-31 16:56 -0700, Christian Stewart spake thusly:

Quoted 3 lines

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...

Quoted 26 lines
---
 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
linux/Config.ext.in +11 -0
index ea79aa1..b6b48cf 100644
@@ -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).

linux/Config.ext.in config BR2_LINUX_KERNEL_EXT_FBTFT · line 85

Quoted 10 lines
linux/Config.ext.in +10 -0
+
+	  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.

linux/Config.ext.in config BR2_LINUX_KERNEL_EXT_FBTFT · line 87

Quoted 2 lines
linux/Config.ext.in +2 -0
+	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...

Quoted 5 lines
linux/Config.ext.in +5 -0
+config BR2_PACKAGE_AUFS_STANDALONE_4X
+	bool "4.x"
+
+config BR2_PACKAGE_AUFS_STANDALONE_3X
+	bool "3.x"

linux/Config.ext.in config BR2_LINUX_KERNEL_EXT_FBTFT · line 103

Quoted 10 lines
linux/Config.ext.in +10 -0
+
+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).

Quoted 4 lines
linux/Config.ext.in +4 -0
+	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

linux/Config.ext.in config BR2_LINUX_KERNEL_EXT_FBTFT · line 117

Quoted 10 lines
linux/Config.ext.in +10 -0
+	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...

Quoted 8 lines
linux/Config.ext.in +0 -0
 endmenu
linux/linux-ext-aufs-standalone.mk new file +1 -0
new file mode 100644
index 0000000..4ef6d60
@@ -0,0 +1,23 @@
+################################################################################

linux/linux-ext-aufs-standalone.mk line 11

Quoted 10 lines
linux/linux-ext-aufs-standalone.mk new file +10 -0
+# 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.

Quoted 19 lines
linux/linux-ext-aufs-standalone.mk new file +12 -0
+	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
Signature · 6 lines
2.1.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#3 lore raw

PATCH 2/3 aufs: new kernel extension.

Christian, All,

On 2015-08-03 23:13 +0200, Yann E. MORIN spake thusly:

Quoted 4 lines

On 2015-07-31 16:56 -0700, Christian Stewart spake thusly:

Quoted 3 lines

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--]

Quoted 4 lines

linux/Config.ext.in config BR2_LINUX_KERNEL_EXT_FBTFT · line 100

Quoted 4 lines
linux/Config.ext.in +4 -0
+# 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--]

Quoted 6 lines
Quoted 6 lines
linux/Config.ext.in +6 -0
+	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
Quoted 8 lines

linux/Config.ext.in config BR2_LINUX_KERNEL_EXT_FBTFT · line 117

Quoted 8 lines
linux/Config.ext.in +8 -0
+	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.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#4 lore raw

PATCH 2/3 aufs: new kernel extension.

In reply to Yann E. MORIN

Hi Yann,

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

Quoted 2 lines

block.

Done here:

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

Quoted 7 lines

+ default BR2_PACKAGE_AUFS_4X if BR2_KERNEL_HEADERS_4_0 ||
BR2_KERNEL_HEADERS_4.1

Quoted 1 line

+ 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).

Quoted 1 line

Fixed.

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

Quoted 1 line

No, just guesses.

Quoted 9 lines

+define AUFS_STANDALONE_PREPARE_KERNEL

linux/linux-ext-aufs-standalone.mk line 11

Quoted 2 lines
linux/linux-ext-aufs-standalone.mk new file +2 -0
+     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>

#5 lore raw

PATCH 2/3 aufs: new kernel extension.

Quoted 19 lines · Christian Stewart

Hi Yann,

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

Done here:

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

Quoted 1 line

+ 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...
Quoted 4 lines

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>

#6 lore raw

PATCH 3/3 aufs-util: new package

In reply to Christian Stewart

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.

---
 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
package/Config.in +1 -0
index 43c58ca..9bb4993 100644
@@ -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"
package/aufs-util/Config.in new file +34 -0
new file mode 100644
index 0000000..2b999aa
@@ -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
package/aufs-util/aufs-util.mk new file +30 -0
new file mode 100644
index 0000000..0733aa9
@@ -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))
Signature · 1 line
2.1.4
#7 lore raw

PATCH 1/3 aufs-standalone: new package

In reply to Christian Stewart

Christian, All,

On 2015-07-31 16:56 -0700, Christian Stewart spake thusly:

Quoted 5 lines

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...

Quoted 1 line

[--SNIP--]

Quoted 6 lines
package/aufs-standalone/aufs-standalone.mk new file +0 -0
new file mode 100644
index 0000000..ebf5ab6

package/aufs-standalone/aufs-standalone.mk line 10

Quoted 10 lines
package/aufs-standalone/aufs-standalone.mk new file +10 -0
@@ -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.

package/aufs-standalone/aufs-standalone.mk line 11

Quoted 1 line
package/aufs-standalone/aufs-standalone.mk new file +1 -0
+ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_3X),y)

Ditto BR2_PACKAGE_AUFS_STANDALONE_3X and the other similar variables...

package/aufs-standalone/aufs-standalone.mk line 18

Quoted 7 lines
package/aufs-standalone/aufs-standalone.mk new file +7 -0
+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.

package/aufs-standalone/aufs-standalone.mk line 23

Quoted 5 lines
package/aufs-standalone/aufs-standalone.mk new file +5 -0
+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.

Quoted 10 lines
package/aufs-standalone/aufs-standalone.mk new file +3 -0
+AUFS_STANDALONE_LICENSE_FILES = COPYING
+
+$(eval $(generic-package))
Signature · 6 lines
2.1.4

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  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.  |
'------------------------------^-------^------------------^--------------------'
#8 lore raw

PATCH 1/3 aufs-standalone: new package

Hi Yann,

Quoted 9 lines

+AUFS_STANDALONE_VERSION = aufs$(call
qstrip,$(BR2_PACKAGE_AUFS_STANDALONE_VERSION))

BR2_PACKAGE_AUFS_STANDALONE_VERSION is defined nowhere in this patch.

Quoted 1 line

+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.

Quoted 12 lines

package/aufs-standalone/aufs-standalone.mk line 18

Quoted 8 lines
package/aufs-standalone/aufs-standalone.mk new file +7 -0
+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.

Quoted 8 lines

package/aufs-standalone/aufs-standalone.mk

Quoted 3 lines
package/aufs-standalone/aufs-standalone.mk new file +3 -0
+endif
+ifeq ($(BR2_PACKAGE_AUFS_STANDALONE_4X),y)
+AUFS_STANDALONE_SITE = $(call

github,sfjro,aufs4-standalone,$(AUFS_STANDALONE_VERSION))

Review

Quoted 2 lines
(quoted diff) +2 -0
+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>

#9 lore raw

PATCH 1/3 aufs-standalone: new package

In reply to Christian Stewart

Christian,

Quoted 7 lines · Christian Stewart

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.

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

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