* [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo
@ 2016-11-05 10:46 Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 1/2] Revert "package/fakeroot: remove" Yann E. MORIN
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Yann E. MORIN @ 2016-11-05 10:46 UTC (permalink / raw)
To: buildroot
Hello All!
We very recently switched to using pseudo instead of fakeroot, because
fakeroot has issues (which are hard to fix) with SELinux-enabled hosts.
pseudo was supposed to fix those issues. It does, but brings up his own
in the process.
Notably, it has a few dependencies when fakeroot had none, thus makes
the build yet a little bit longer.
Also, it is not python3 ready, which breaks hard during its build on
systems which have only python3 installed, or where the default python
is python3. 2to3 is by far not enough to do the conversion, though.
Even though some patches have been started, they are not yet upstream.
But more importantly, it is not a drop-in replacement for fakeroot, and
it breaks our use-case. For example, psedu-devices are created as files
on-disk, and a second run breaks makedevs because it can't create the
device node again.
Since we're now getting far ahead in the stabilisation phase, it makes
sense to throw in the towel and revert bacvk to fakeroot, which for now
has less issues than pseudo.
We only revert two patches: the removal of fakeroot, and the use of
pseudo in the fs infra. The other patches adding pseudo can stay, since
all they did add was a new prompt-less host package, which is depended
upon by noone now, so can't be used.
Yet, we keep the pseudo package, becasue we still have hope that the
python3 issues will be fixed before long, so we will be able to switch
back to yusing pseudo in a short while.
Regards,
Yann E. MORIN.
The following changes since commit 07c1ae90c8890e82e62c22beaa4a72f6e081e96c
board: atmel: genimage: add 1M offset for FAT partition (2016-11-04 15:13:59 +0100)
are available in the git repository at:
git://git.buildroot.org/~ymorin/git/buildroot.git
for you to fetch changes up to 36f1f34245e00371a238d122d495393e9d383dc8
Revert "fs: use pseudo instead of fakeroot" (2016-11-04 22:28:05 +0100)
----------------------------------------------------------------
Yann E. MORIN (2):
Revert "package/fakeroot: remove"
Revert "fs: use pseudo instead of fakeroot"
fs/common.mk | 4 ++--
package/fakeroot/0001-hide-dlsym-error.patch | 34 ++++++++++++++++++++++++++++
package/fakeroot/fakeroot.hash | 4 ++++
package/fakeroot/fakeroot.mk | 20 ++++++++++++++++
4 files changed, 60 insertions(+), 2 deletions(-)
create mode 100644 package/fakeroot/0001-hide-dlsym-error.patch
create mode 100644 package/fakeroot/fakeroot.hash
create mode 100644 package/fakeroot/fakeroot.mk
--
.-----------------.--------------------.------------------.--------------------.
| 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] 5+ messages in thread
* [Buildroot] [PATCH 1/2] Revert "package/fakeroot: remove"
2016-11-05 10:46 [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
@ 2016-11-05 10:46 ` Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 2/2] Revert "fs: use pseudo instead of fakeroot" Yann E. MORIN
2016-11-05 12:31 ` [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
2 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2016-11-05 10:46 UTC (permalink / raw)
To: buildroot
Turns out that pseudo has issues of its own, and that we are not ready
in Buildroot to cope with those. Notably:
- it has quite a few dependencies: attr, sqlite;
- it is not python3 compliant, breaking the build on some machines.
Re-instate fakeroot for the release.
This reverts commit 325cff36f74b07545389b81cee0a2acef55b487c.
Reported-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/fakeroot/0001-hide-dlsym-error.patch | 34 ++++++++++++++++++++++++++++
package/fakeroot/fakeroot.hash | 4 ++++
package/fakeroot/fakeroot.mk | 20 ++++++++++++++++
3 files changed, 58 insertions(+)
create mode 100644 package/fakeroot/0001-hide-dlsym-error.patch
create mode 100644 package/fakeroot/fakeroot.hash
create mode 100644 package/fakeroot/fakeroot.mk
diff --git a/package/fakeroot/0001-hide-dlsym-error.patch b/package/fakeroot/0001-hide-dlsym-error.patch
new file mode 100644
index 0000000..2c61fab
--- /dev/null
+++ b/package/fakeroot/0001-hide-dlsym-error.patch
@@ -0,0 +1,34 @@
+Description: Hide error from dlsym()
+ dlsym(), starting in glibc 2.24 actually reports errors. In our case,
+ we try to get ACL functions which are not in the glibc. This causes
+ failures in test suites, so hide those messages for non-debugging
+ purposes for now. It also makes the build logs annoying to read.
+Author: Julian Andres Klode <juliank@ubuntu.com>
+Origin: vendor
+Bug-Debian: https://bugs.debian.org/830912
+Forwarded: no
+Last-Update: 2016-08-12
+
+Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
+
+--- a/libfakeroot.c
++++ b/libfakeroot.c
+@@ -256,10 +256,16 @@ void load_library_symbols(void){
+ /* clear dlerror() just in case dlsym() legitimately returns NULL */
+ msg = dlerror();
+ *(next_wrap[i].doit)=dlsym(get_libc(), next_wrap[i].name);
++
+ if ( (msg = dlerror()) != NULL){
+- fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg);
+-/* abort ();*/
++#ifdef LIBFAKEROOT_DEBUGGING
++ if (fakeroot_debug) {
++ fprintf (stderr, "dlsym(%s): %s\n", next_wrap[i].name, msg);
++/* abort ();*/
++ }
++#endif
+ }
++
+ }
+ }
+
diff --git a/package/fakeroot/fakeroot.hash b/package/fakeroot/fakeroot.hash
new file mode 100644
index 0000000..f0d436e
--- /dev/null
+++ b/package/fakeroot/fakeroot.hash
@@ -0,0 +1,4 @@
+# From http://snapshot.debian.org/package/fakeroot/1.20.2-1/
+sha1 367040df07043edb630942b21939e493f3fad888 fakeroot_1.20.2.orig.tar.bz2
+# Calculated based on the hash above
+sha256 7c0a164d19db3efa9e802e0fc7cdfeff70ec6d26cdbdc4338c9c2823c5ea230c fakeroot_1.20.2.orig.tar.bz2
diff --git a/package/fakeroot/fakeroot.mk b/package/fakeroot/fakeroot.mk
new file mode 100644
index 0000000..168cd13
--- /dev/null
+++ b/package/fakeroot/fakeroot.mk
@@ -0,0 +1,20 @@
+################################################################################
+#
+# fakeroot
+#
+################################################################################
+
+FAKEROOT_VERSION = 1.20.2
+FAKEROOT_SOURCE = fakeroot_$(FAKEROOT_VERSION).orig.tar.bz2
+FAKEROOT_SITE = http://snapshot.debian.org/archive/debian/20141005T221953Z/pool/main/f/fakeroot
+# Force capabilities detection off
+# For now these are process capabilities (faked) rather than file
+# so they're of no real use
+HOST_FAKEROOT_CONF_ENV = \
+ ac_cv_header_sys_capability_h=no \
+ ac_cv_func_capset=no
+
+FAKEROOT_LICENSE = GPLv3+
+FAKEROOT_LICENSE_FILES = COPYING
+
+$(eval $(host-autotools-package))
--
2.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 2/2] Revert "fs: use pseudo instead of fakeroot"
2016-11-05 10:46 [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 1/2] Revert "package/fakeroot: remove" Yann E. MORIN
@ 2016-11-05 10:46 ` Yann E. MORIN
2016-11-05 12:31 ` [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
2 siblings, 0 replies; 5+ messages in thread
From: Yann E. MORIN @ 2016-11-05 10:46 UTC (permalink / raw)
To: buildroot
Using pseudo instead of fakeroot is not without bringing new issues:
- dependency on sqlite3 and attr,
- not compatible with python3.
The last one is the most troublesome, as it is very difficult to make it
compatible (as <dkc> said on IRC: we played the "is this a string or a
byte array?" game).
Revert back to using fakeroot for the release.
We can revisit using pseudo when upstream has fixed the python3 issues
(the process is on-going).
This reverts commit 8035ceb56cc3ba2541aba0d0ead3f29900d9e310.
Reported-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
fs/common.mk | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/fs/common.mk b/fs/common.mk
index 2dbef4d..2b31e12 100644
--- a/fs/common.mk
+++ b/fs/common.mk
@@ -43,7 +43,7 @@ ROOTFS_USERS_TABLES = $(call qstrip,$(BR2_ROOTFS_USERS_TABLES))
define ROOTFS_TARGET_INTERNAL
# extra deps
-ROOTFS_$(2)_DEPENDENCIES += host-pseudo host-makedevs \
+ROOTFS_$(2)_DEPENDENCIES += host-fakeroot host-makedevs \
$$(if $$(PACKAGES_USERS)$$(ROOTFS_USERS_TABLES),host-mkpasswd)
ifeq ($$(BR2_TARGET_ROOTFS_$(2)_GZIP),y)
@@ -97,7 +97,7 @@ endif
echo $$(s) $$(TARGET_DIR) $$(BR2_ROOTFS_POST_SCRIPT_ARGS) >> $$(FAKEROOT_SCRIPT)$$(sep))
$$(call PRINTF,$$(ROOTFS_$(2)_CMD)) >> $$(FAKEROOT_SCRIPT)
chmod a+x $$(FAKEROOT_SCRIPT)
- PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/pseudo -- $$(FAKEROOT_SCRIPT)
+ PATH=$$(BR_PATH) $$(HOST_DIR)/usr/bin/fakeroot -- $$(FAKEROOT_SCRIPT)
$$(INSTALL) -m 0644 support/misc/target-dir-warning.txt $$(TARGET_DIR_WARNING_FILE)
- at rm -f $$(FAKEROOT_SCRIPT) $$(FULL_DEVICE_TABLE)
ifneq ($$(ROOTFS_$(2)_COMPRESS_CMD),)
--
2.7.4
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo
2016-11-05 10:46 [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 1/2] Revert "package/fakeroot: remove" Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 2/2] Revert "fs: use pseudo instead of fakeroot" Yann E. MORIN
@ 2016-11-05 12:31 ` Yann E. MORIN
2016-11-05 12:50 ` Fabio Estevam
2 siblings, 1 reply; 5+ messages in thread
From: Yann E. MORIN @ 2016-11-05 12:31 UTC (permalink / raw)
To: buildroot
All,
On 2016-11-05 11:46 +0100, Yann E. MORIN spake thusly:
> We very recently switched to using pseudo instead of fakeroot, because
> fakeroot has issues (which are hard to fix) with SELinux-enabled hosts.
[--SNIP--]
> Since we're now getting far ahead in the stabilisation phase, it makes
> sense to throw in the towel and revert bacvk to fakeroot, which for now
> has less issues than pseudo.
[--SNIP--]
After discussing the matter on IRC, we've decided to go another route,
to instead fix makedevs to make it check the file and accept if its
already the expected type, and only bail out if not.
Patches marked as rejected in patchwork.
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] 5+ messages in thread
* [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo
2016-11-05 12:31 ` [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
@ 2016-11-05 12:50 ` Fabio Estevam
0 siblings, 0 replies; 5+ messages in thread
From: Fabio Estevam @ 2016-11-05 12:50 UTC (permalink / raw)
To: buildroot
Hi Yann,
On Sat, Nov 5, 2016 at 10:31 AM, Yann E. MORIN <yann.morin.1998@free.fr> wrote:
> After discussing the matter on IRC, we've decided to go another route,
> to instead fix makedevs to make it check the file and accept if its
> already the expected type, and only bail out if not.
Ok, great. I will be glad to test the new approach.
Thanks
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2016-11-05 12:50 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-05 10:46 [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 1/2] Revert "package/fakeroot: remove" Yann E. MORIN
2016-11-05 10:46 ` [Buildroot] [PATCH 2/2] Revert "fs: use pseudo instead of fakeroot" Yann E. MORIN
2016-11-05 12:31 ` [Buildroot] [PATCH 0/2] core: revert to using fakeroot instead of pseudo Yann E. MORIN
2016-11-05 12:50 ` Fabio Estevam
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox