All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot
@ 2016-11-08 22:18 Yann E. MORIN
  2016-11-08 22:18 ` [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness Yann E. MORIN
                   ` (4 more replies)
  0 siblings, 5 replies; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-08 22:18 UTC (permalink / raw)
  To: buildroot

Hello All!

When we switched from using fakeroot to using pseudo, a lot of
assumptions were made, in that we assumed pseudo was by default
behaving as fakeroot did.

That is wrong. pseudo is a little bit more versatile than fakeroot
is, so using it is a little bit more involved.

First, its buildsystem is a bit convoluted, and can incorrectly guess
the host charateristics, like bitness.

Second, it needs to be told at runtime where to look at, and put its
own stuff. It correctly gueses, but prints a warning that it had to
gues, and the location to store its DB is not optimum (even if not
incorrect).

So, this series ensures that pseudo is correctly built and that we
correctly specify the runtime configuration.


Regards,
Yann E. MORIN.


The following changes since commit 64904f0f6d691cfea5ae1c8f58e2d61aac0684c2

  mpv: fix build on powerpc64 w/ altivec (2016-11-08 09:37:17 +0100)


are available in the git repository at:

  git://git.buildroot.org/~ymorin/git/buildroot.git

for you to fetch changes up to 29ffadca0013de2c9d9c7e749f13cb6e0361a9f0

  package/pseudo: provide better legacy handling for fakeroot (2016-11-08 23:17:51 +0100)


----------------------------------------------------------------
Yann E. MORIN (5):
      package/pseudo: enforce the host bitness
      package/pseudo: force rpath and pass our host CFLAGS
      package/pseudo: wrap the real pseudo with a wrapper
      fs: call the pseudo wrapper
      package/pseudo: provide better legacy handling for fakeroot

 fs/common.mk                  |  2 +-
 package/pseudo/pseudo-wrapper | 19 +++++++++++++++++++
 package/pseudo/pseudo.mk      | 14 +++++++++++++-
 3 files changed, 33 insertions(+), 2 deletions(-)
 create mode 100644 package/pseudo/pseudo-wrapper

-- 
.-----------------.--------------------.------------------.--------------------.
|  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] 14+ messages in thread

* [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness
  2016-11-08 22:18 [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot Yann E. MORIN
@ 2016-11-08 22:18 ` Yann E. MORIN
  2016-11-09  0:25   ` Arnout Vandecappelle
  2016-11-09 21:27   ` Thomas Petazzoni
  2016-11-08 22:18 ` [Buildroot] [PATCH 2/5] package/pseudo: force rpath and pass our host CFLAGS Yann E. MORIN
                   ` (3 subsequent siblings)
  4 siblings, 2 replies; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-08 22:18 UTC (permalink / raw)
  To: buildroot

pseudo can detect the host bitness, but is not sure about it: it checks
what type of file /bin/sh is, using file(1).

However, in some conditions, /bin/sh can be of a different bitness than
the rest of the system (weird, but not impossible), which causes build
issues.

Just enforce the bitness, so that pseudo needs not (wrongly) guess it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
Cc: Erico Nunes <nunes.erico@gmail.com>
Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>

---
Changes v1 -> v2:
  - directly extract bitness for $(HOSTARCH)  (Arnout)
---
 package/pseudo/pseudo.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
index 67538a6..92de2c6 100644
--- a/package/pseudo/pseudo.mk
+++ b/package/pseudo/pseudo.mk
@@ -17,6 +17,7 @@ HOST_PSEUDO_DEPENDENCIES = host-attr host-sqlite
 # configure script is not generated by autoconf, so passing --libdir
 # is necessary, even if the infrastructure passes --prefix already.
 HOST_PSEUDO_CONF_OPTS = \
+	--bits=$(if $(filter %64,$(HOSTARCH)),64,32) \
 	--libdir=$(HOST_DIR)/usr/lib \
 	--with-sqlite=$(HOST_DIR)/usr
 
-- 
2.7.4

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

* [Buildroot] [PATCH 2/5] package/pseudo: force rpath and pass our host CFLAGS
  2016-11-08 22:18 [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot Yann E. MORIN
  2016-11-08 22:18 ` [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness Yann E. MORIN
@ 2016-11-08 22:18 ` Yann E. MORIN
  2016-11-09 22:29   ` Thomas Petazzoni
  2016-11-08 22:18 ` [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper Yann E. MORIN
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-08 22:18 UTC (permalink / raw)
  To: buildroot

pseudo whines when those are not set, and tries to find a suitable
value; this is usually correct but risk an incorrect guess in corner
cases.

Rather than leaving those in guess-mode, just force them to values we
know are correct.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
Cc: Erico Nunes <nunes.erico@gmail.com>
Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Reviewed-by: Arnout Vandecappelle <arnout@mind.be>
---
 package/pseudo/pseudo.mk | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
index 92de2c6..4be5154 100644
--- a/package/pseudo/pseudo.mk
+++ b/package/pseudo/pseudo.mk
@@ -16,7 +16,12 @@ HOST_PSEUDO_DEPENDENCIES = host-attr host-sqlite
 
 # configure script is not generated by autoconf, so passing --libdir
 # is necessary, even if the infrastructure passes --prefix already.
+# It also does not use CFLAGS from the environment, they need to be
+# specified with a custom --cflags option. Also force rpath to avoid
+# a warning at configure time.
 HOST_PSEUDO_CONF_OPTS = \
+	--cflags='$(HOSTCFLAGS)' \
+	--with-rpath=$(HOST_DIR)/usr/lib \
 	--bits=$(if $(filter %64,$(HOSTARCH)),64,32) \
 	--libdir=$(HOST_DIR)/usr/lib \
 	--with-sqlite=$(HOST_DIR)/usr
-- 
2.7.4

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

* [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper
  2016-11-08 22:18 [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot Yann E. MORIN
  2016-11-08 22:18 ` [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness Yann E. MORIN
  2016-11-08 22:18 ` [Buildroot] [PATCH 2/5] package/pseudo: force rpath and pass our host CFLAGS Yann E. MORIN
@ 2016-11-08 22:18 ` Yann E. MORIN
  2016-11-09  0:27   ` Arnout Vandecappelle
  2016-11-09 22:31   ` Thomas Petazzoni
  2016-11-08 22:18 ` [Buildroot] [PATCH 4/5] fs: call the pseudo wrapper Yann E. MORIN
  2016-11-08 22:18 ` [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot Yann E. MORIN
  4 siblings, 2 replies; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-08 22:18 UTC (permalink / raw)
  To: buildroot

Running pseudo is more involved than running fakeroot. In the transition
from using fakeroot, we just did not account for the extra requirements.

First, we explicitly tell pseudo where it is, otherwise it tries to
guess. Its guess is correct, but it prints a warning, which is not nice.

Second, we tell it where to find the passwd and group files in case it
has to emulate access to them. We currently do not use that feature, but
better safe than sorry.

Third, pseudo spawns a background daemon, and talks to it (when fakeroot
would emulate the state all in the current process' state, pseudo uses
the daemon to coordinate the state across multiple processes). We are
not much interested in the daemon lingering around, so we just tell it
to terminate as soon as the last clients quits (this can take up to one
second).

Fourth and last, pseudo always stores its internal database when
exiting, and reloads it when spawned. The database is by default stored
in a sub-directory of the prefix it was installed in, but this is
impractical for us. We want the database to be specific to the one
config dir we are building, so we store the database in a (hidden)
sub-dir of the build dir, thus ensuring it is never shared with another
build. That directory is hidden (starts with a dot) because we consider
that to be our internal state that we do not want to expose to the user.

The wrapper has to be relocatable, so we avoid using hard-coded paths
in there: we derive those paths fom the runtime path of pseudo. However,
the build directory $(BUILD_DIR) is not available in the environment
(we do not export it because it conflicts with some buildsystems).
Instead, we use $(BASE_DIR) which is exported.

Finally, when relocated, the wrapper would not be used in the Buildroot
environment, so may not have access to TARGET_DIR or BASE_DIR, unless
the user sets them. If he does not, we still want the wrapper to be
working (to avoid the warning about the prefix, and to exit the daemon
asap); thus we leave the passwd and localstatedir variable alone if we
don't have what it needs to set them, rather than set them to incorrect
values.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
Cc: Erico Nunes <nunes.erico@gmail.com>
Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>

---
Changes v1 -> v2:
  - do not use a variable, but use a wrapper
---
 package/pseudo/pseudo-wrapper | 12 ++++++++++++
 package/pseudo/pseudo.mk      |  6 ++++++
 2 files changed, 18 insertions(+)
 create mode 100644 package/pseudo/pseudo-wrapper

diff --git a/package/pseudo/pseudo-wrapper b/package/pseudo/pseudo-wrapper
new file mode 100644
index 0000000..feaa7fc
--- /dev/null
+++ b/package/pseudo/pseudo-wrapper
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+export PSEUDO_PREFIX="$(dirname "${0%/*}")"
+export PSEUDO_OPTS="-t0"
+if [ -n "${TARGET_DIR}" ]; then
+    export PSEUDO_PASSWD="${TARGET_DIR}"
+fi
+if [ -n "${BASE_DIR}" ]; then
+    export PSEUDO_LOCALSTATEDIR="${BASE_DIR}/build/.pseudodb"
+fi
+
+exec "${0%-wrapper}" "${@}"
diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
index 4be5154..474eae2 100644
--- a/package/pseudo/pseudo.mk
+++ b/package/pseudo/pseudo.mk
@@ -26,6 +26,12 @@ HOST_PSEUDO_CONF_OPTS = \
 	--libdir=$(HOST_DIR)/usr/lib \
 	--with-sqlite=$(HOST_DIR)/usr
 
+define HOST_PSEUDO_INSTALL_WRAPPER
+	$(INSTALL) -D -m 0755 $(HOST_PSEUDO_PKGDIR)/pseudo-wrapper \
+		$(HOST_DIR)/usr/bin/pseudo-wrapper
+endef
+HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_INSTALL_WRAPPER
+
 define HOST_PSEUDO_FAKEROOT_SYMLINK
 	ln -sf pseudo $(HOST_DIR)/usr/bin/fakeroot
 endef
-- 
2.7.4

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

* [Buildroot] [PATCH 4/5] fs: call the pseudo wrapper
  2016-11-08 22:18 [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot Yann E. MORIN
                   ` (2 preceding siblings ...)
  2016-11-08 22:18 ` [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper Yann E. MORIN
@ 2016-11-08 22:18 ` Yann E. MORIN
  2016-11-09  0:28   ` Arnout Vandecappelle
  2016-11-08 22:18 ` [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot Yann E. MORIN
  4 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-08 22:18 UTC (permalink / raw)
  To: buildroot

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
Cc: Erico Nunes <nunes.erico@gmail.com>
Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 fs/common.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/common.mk b/fs/common.mk
index 2dbef4d..22f3de5 100644
--- a/fs/common.mk
+++ b/fs/common.mk
@@ -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/pseudo-wrapper -- $$(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] 14+ messages in thread

* [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot
  2016-11-08 22:18 [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot Yann E. MORIN
                   ` (3 preceding siblings ...)
  2016-11-08 22:18 ` [Buildroot] [PATCH 4/5] fs: call the pseudo wrapper Yann E. MORIN
@ 2016-11-08 22:18 ` Yann E. MORIN
  2016-11-09  0:29   ` Arnout Vandecappelle
  4 siblings, 1 reply; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-08 22:18 UTC (permalink / raw)
  To: buildroot

We now have a wrapper that makes pseudo behaves like the fakeroot of the
good ol' days. So the symlink will just magically keep old scripts
working as they did before the switch to pseudo.

However, using fakeroot is deprecated, and we want people to stop using
it altogether and switch to pseudo.

So, make the wrapper recognise how it's called, and if called as
fakeroot, print a warning message.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
Cc: Erico Nunes <nunes.erico@gmail.com>
Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
---
 package/pseudo/pseudo-wrapper | 9 ++++++++-
 package/pseudo/pseudo.mk      | 2 +-
 2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/package/pseudo/pseudo-wrapper b/package/pseudo/pseudo-wrapper
index feaa7fc..9c8dbdb 100644
--- a/package/pseudo/pseudo-wrapper
+++ b/package/pseudo/pseudo-wrapper
@@ -1,5 +1,12 @@
 #!/bin/sh
 
+if [ "${0##*/}" = "fakeroot" ]; then
+    cat >&2 <<-_EOF_
+	WARNING: fakeroot has been replaced with pseudo.
+	WARNING: Update your script(s) to use pseudo or pseudo-wrapper instead.
+	_EOF_
+fi
+
 export PSEUDO_PREFIX="$(dirname "${0%/*}")"
 export PSEUDO_OPTS="-t0"
 if [ -n "${TARGET_DIR}" ]; then
@@ -9,4 +16,4 @@ if [ -n "${BASE_DIR}" ]; then
     export PSEUDO_LOCALSTATEDIR="${BASE_DIR}/build/.pseudodb"
 fi
 
-exec "${0%-wrapper}" "${@}"
+exec "${0%/*}/pseudo" "${@}"
diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
index 474eae2..02d6247 100644
--- a/package/pseudo/pseudo.mk
+++ b/package/pseudo/pseudo.mk
@@ -33,7 +33,7 @@ endef
 HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_INSTALL_WRAPPER
 
 define HOST_PSEUDO_FAKEROOT_SYMLINK
-	ln -sf pseudo $(HOST_DIR)/usr/bin/fakeroot
+	ln -sf pseudo-wrapper $(HOST_DIR)/usr/bin/fakeroot
 endef
 HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_FAKEROOT_SYMLINK
 
-- 
2.7.4

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

* [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness
  2016-11-08 22:18 ` [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness Yann E. MORIN
@ 2016-11-09  0:25   ` Arnout Vandecappelle
  2016-11-09 21:27   ` Thomas Petazzoni
  1 sibling, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2016-11-09  0:25 UTC (permalink / raw)
  To: buildroot



On 08-11-16 23:18, Yann E. MORIN wrote:
> pseudo can detect the host bitness, but is not sure about it: it checks
> what type of file /bin/sh is, using file(1).
> 
> However, in some conditions, /bin/sh can be of a different bitness than
> the rest of the system (weird, but not impossible), which causes build
> issues.
> 
> Just enforce the bitness, so that pseudo needs not (wrongly) guess it.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 Regards,
 Arnout

> 
> ---
> Changes v1 -> v2:
>   - directly extract bitness for $(HOSTARCH)  (Arnout)
> ---
>  package/pseudo/pseudo.mk | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
> index 67538a6..92de2c6 100644
> --- a/package/pseudo/pseudo.mk
> +++ b/package/pseudo/pseudo.mk
> @@ -17,6 +17,7 @@ HOST_PSEUDO_DEPENDENCIES = host-attr host-sqlite
>  # configure script is not generated by autoconf, so passing --libdir
>  # is necessary, even if the infrastructure passes --prefix already.
>  HOST_PSEUDO_CONF_OPTS = \
> +	--bits=$(if $(filter %64,$(HOSTARCH)),64,32) \
>  	--libdir=$(HOST_DIR)/usr/lib \
>  	--with-sqlite=$(HOST_DIR)/usr
>  
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper
  2016-11-08 22:18 ` [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper Yann E. MORIN
@ 2016-11-09  0:27   ` Arnout Vandecappelle
  2016-11-09 22:31   ` Thomas Petazzoni
  1 sibling, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2016-11-09  0:27 UTC (permalink / raw)
  To: buildroot



On 08-11-16 23:18, Yann E. MORIN wrote:
> Running pseudo is more involved than running fakeroot. In the transition
> from using fakeroot, we just did not account for the extra requirements.
> 
> First, we explicitly tell pseudo where it is, otherwise it tries to
> guess. Its guess is correct, but it prints a warning, which is not nice.
> 
> Second, we tell it where to find the passwd and group files in case it
> has to emulate access to them. We currently do not use that feature, but
> better safe than sorry.
> 
> Third, pseudo spawns a background daemon, and talks to it (when fakeroot
> would emulate the state all in the current process' state, pseudo uses
> the daemon to coordinate the state across multiple processes). We are
> not much interested in the daemon lingering around, so we just tell it
> to terminate as soon as the last clients quits (this can take up to one
> second).
> 
> Fourth and last, pseudo always stores its internal database when
> exiting, and reloads it when spawned. The database is by default stored
> in a sub-directory of the prefix it was installed in, but this is
> impractical for us. We want the database to be specific to the one
> config dir we are building, so we store the database in a (hidden)
> sub-dir of the build dir, thus ensuring it is never shared with another
> build. That directory is hidden (starts with a dot) because we consider
> that to be our internal state that we do not want to expose to the user.
> 
> The wrapper has to be relocatable, so we avoid using hard-coded paths
> in there: we derive those paths fom the runtime path of pseudo. However,
                                  ^^^ Gah, I missed one :-P

> the build directory $(BUILD_DIR) is not available in the environment
> (we do not export it because it conflicts with some buildsystems).
> Instead, we use $(BASE_DIR) which is exported.
> 
> Finally, when relocated, the wrapper would not be used in the Buildroot
> environment, so may not have access to TARGET_DIR or BASE_DIR, unless
> the user sets them. If he does not, we still want the wrapper to be
> working (to avoid the warning about the prefix, and to exit the daemon
> asap); thus we leave the passwd and localstatedir variable alone if we
> don't have what it needs to set them, rather than set them to incorrect
> values.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 Regards,
 Arnout

> 
> ---
> Changes v1 -> v2:
>   - do not use a variable, but use a wrapper
> ---
>  package/pseudo/pseudo-wrapper | 12 ++++++++++++
>  package/pseudo/pseudo.mk      |  6 ++++++
>  2 files changed, 18 insertions(+)
>  create mode 100644 package/pseudo/pseudo-wrapper
> 
> diff --git a/package/pseudo/pseudo-wrapper b/package/pseudo/pseudo-wrapper
> new file mode 100644
> index 0000000..feaa7fc
> --- /dev/null
> +++ b/package/pseudo/pseudo-wrapper
> @@ -0,0 +1,12 @@
> +#!/bin/sh
> +
> +export PSEUDO_PREFIX="$(dirname "${0%/*}")"
> +export PSEUDO_OPTS="-t0"
> +if [ -n "${TARGET_DIR}" ]; then
> +    export PSEUDO_PASSWD="${TARGET_DIR}"
> +fi
> +if [ -n "${BASE_DIR}" ]; then
> +    export PSEUDO_LOCALSTATEDIR="${BASE_DIR}/build/.pseudodb"
> +fi
> +
> +exec "${0%-wrapper}" "${@}"
> diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
> index 4be5154..474eae2 100644
> --- a/package/pseudo/pseudo.mk
> +++ b/package/pseudo/pseudo.mk
> @@ -26,6 +26,12 @@ HOST_PSEUDO_CONF_OPTS = \
>  	--libdir=$(HOST_DIR)/usr/lib \
>  	--with-sqlite=$(HOST_DIR)/usr
>  
> +define HOST_PSEUDO_INSTALL_WRAPPER
> +	$(INSTALL) -D -m 0755 $(HOST_PSEUDO_PKGDIR)/pseudo-wrapper \
> +		$(HOST_DIR)/usr/bin/pseudo-wrapper
> +endef
> +HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_INSTALL_WRAPPER
> +
>  define HOST_PSEUDO_FAKEROOT_SYMLINK
>  	ln -sf pseudo $(HOST_DIR)/usr/bin/fakeroot
>  endef
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 4/5] fs: call the pseudo wrapper
  2016-11-08 22:18 ` [Buildroot] [PATCH 4/5] fs: call the pseudo wrapper Yann E. MORIN
@ 2016-11-09  0:28   ` Arnout Vandecappelle
  0 siblings, 0 replies; 14+ messages in thread
From: Arnout Vandecappelle @ 2016-11-09  0:28 UTC (permalink / raw)
  To: buildroot



On 08-11-16 23:18, Yann E. MORIN wrote:
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 Regards,
 Arnout

> ---
>  fs/common.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/fs/common.mk b/fs/common.mk
> index 2dbef4d..22f3de5 100644
> --- a/fs/common.mk
> +++ b/fs/common.mk
> @@ -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/pseudo-wrapper -- $$(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),)
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot
  2016-11-08 22:18 ` [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot Yann E. MORIN
@ 2016-11-09  0:29   ` Arnout Vandecappelle
  2016-11-09 22:07     ` Yann E. MORIN
  0 siblings, 1 reply; 14+ messages in thread
From: Arnout Vandecappelle @ 2016-11-09  0:29 UTC (permalink / raw)
  To: buildroot



On 08-11-16 23:18, Yann E. MORIN wrote:
> We now have a wrapper that makes pseudo behaves like the fakeroot of the
> good ol' days. So the symlink will just magically keep old scripts
> working as they did before the switch to pseudo.
> 
> However, using fakeroot is deprecated, and we want people to stop using
> it altogether and switch to pseudo.
> 
> So, make the wrapper recognise how it's called, and if called as
> fakeroot, print a warning message.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> ---
>  package/pseudo/pseudo-wrapper | 9 ++++++++-
>  package/pseudo/pseudo.mk      | 2 +-
>  2 files changed, 9 insertions(+), 2 deletions(-)
> 
> diff --git a/package/pseudo/pseudo-wrapper b/package/pseudo/pseudo-wrapper
> index feaa7fc..9c8dbdb 100644
> --- a/package/pseudo/pseudo-wrapper
> +++ b/package/pseudo/pseudo-wrapper
> @@ -1,5 +1,12 @@
>  #!/bin/sh
>  
> +if [ "${0##*/}" = "fakeroot" ]; then
> +    cat >&2 <<-_EOF_
> +	WARNING: fakeroot has been replaced with pseudo.
> +	WARNING: Update your script(s) to use pseudo or pseudo-wrapper instead.
> +	_EOF_
> +fi
> +
>  export PSEUDO_PREFIX="$(dirname "${0%/*}")"
>  export PSEUDO_OPTS="-t0"
>  if [ -n "${TARGET_DIR}" ]; then
> @@ -9,4 +16,4 @@ if [ -n "${BASE_DIR}" ]; then
>      export PSEUDO_LOCALSTATEDIR="${BASE_DIR}/build/.pseudodb"
>  fi
>  
> -exec "${0%-wrapper}" "${@}"
> +exec "${0%/*}/pseudo" "${@}"

 This hunk should have been squashed into patch 3. But who cares.

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 Regards,
 Arnout

> diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
> index 474eae2..02d6247 100644
> --- a/package/pseudo/pseudo.mk
> +++ b/package/pseudo/pseudo.mk
> @@ -33,7 +33,7 @@ endef
>  HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_INSTALL_WRAPPER
>  
>  define HOST_PSEUDO_FAKEROOT_SYMLINK
> -	ln -sf pseudo $(HOST_DIR)/usr/bin/fakeroot
> +	ln -sf pseudo-wrapper $(HOST_DIR)/usr/bin/fakeroot
>  endef
>  HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_FAKEROOT_SYMLINK
>  
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

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

* [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness
  2016-11-08 22:18 ` [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness Yann E. MORIN
  2016-11-09  0:25   ` Arnout Vandecappelle
@ 2016-11-09 21:27   ` Thomas Petazzoni
  1 sibling, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2016-11-09 21:27 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue,  8 Nov 2016 23:18:31 +0100, Yann E. MORIN wrote:
> pseudo can detect the host bitness, but is not sure about it: it checks
> what type of file /bin/sh is, using file(1).
> 
> However, in some conditions, /bin/sh can be of a different bitness than
> the rest of the system (weird, but not impossible), which causes build
> issues.
> 
> Just enforce the bitness, so that pseudo needs not (wrongly) guess it.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> 
> ---
> Changes v1 -> v2:
>   - directly extract bitness for $(HOSTARCH)  (Arnout)
> ---
>  package/pseudo/pseudo.mk | 1 +
>  1 file changed, 1 insertion(+)

Applied to master, thanks.

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

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

* [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot
  2016-11-09  0:29   ` Arnout Vandecappelle
@ 2016-11-09 22:07     ` Yann E. MORIN
  0 siblings, 0 replies; 14+ messages in thread
From: Yann E. MORIN @ 2016-11-09 22:07 UTC (permalink / raw)
  To: buildroot

Arnout, All,

On 2016-11-09 01:29 +0100, Arnout Vandecappelle spake thusly:
> On 08-11-16 23:18, Yann E. MORIN wrote:
> > We now have a wrapper that makes pseudo behaves like the fakeroot of the
> > good ol' days. So the symlink will just magically keep old scripts
> > working as they did before the switch to pseudo.
> > 
> > However, using fakeroot is deprecated, and we want people to stop using
> > it altogether and switch to pseudo.
> > 
> > So, make the wrapper recognise how it's called, and if called as
> > fakeroot, print a warning message.
> > 
> > Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> > Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> > Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> > Cc: Erico Nunes <nunes.erico@gmail.com>
> > Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> > Cc: Arnout Vandecappelle <arnout@mind.be>
> > ---
> >  package/pseudo/pseudo-wrapper | 9 ++++++++-
> >  package/pseudo/pseudo.mk      | 2 +-
> >  2 files changed, 9 insertions(+), 2 deletions(-)
> > 
> > diff --git a/package/pseudo/pseudo-wrapper b/package/pseudo/pseudo-wrapper
> > index feaa7fc..9c8dbdb 100644
> > --- a/package/pseudo/pseudo-wrapper
> > +++ b/package/pseudo/pseudo-wrapper
> > @@ -1,5 +1,12 @@
> >  #!/bin/sh
> >  
> > +if [ "${0##*/}" = "fakeroot" ]; then
> > +    cat >&2 <<-_EOF_
> > +	WARNING: fakeroot has been replaced with pseudo.
> > +	WARNING: Update your script(s) to use pseudo or pseudo-wrapper instead.
> > +	_EOF_
> > +fi
> > +
> >  export PSEUDO_PREFIX="$(dirname "${0%/*}")"
> >  export PSEUDO_OPTS="-t0"
> >  if [ -n "${TARGET_DIR}" ]; then
> > @@ -9,4 +16,4 @@ if [ -n "${BASE_DIR}" ]; then
> >      export PSEUDO_LOCALSTATEDIR="${BASE_DIR}/build/.pseudodb"
> >  fi
> >  
> > -exec "${0%-wrapper}" "${@}"
> > +exec "${0%/*}/pseudo" "${@}"
> 
>  This hunk should have been squashed into patch 3. But who cares.

I disagree, because until this very patch, there is no reason to replace
the filebname. Patch 3 expects the wrapper to be called 'pseudo-wrapper'
so it really only needs -wrapper to be stripped. Only with this patch 5
do we introduce the fakeroot wrapper, so only now do we need to remove
the full filename.

Technically, this does not change at all, agreed. Semantically, it is as
I explained above. ;-)

Regards,
Yann E. MORIN.

> Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
> 
>  Regards,
>  Arnout
> 
> > diff --git a/package/pseudo/pseudo.mk b/package/pseudo/pseudo.mk
> > index 474eae2..02d6247 100644
> > --- a/package/pseudo/pseudo.mk
> > +++ b/package/pseudo/pseudo.mk
> > @@ -33,7 +33,7 @@ endef
> >  HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_INSTALL_WRAPPER
> >  
> >  define HOST_PSEUDO_FAKEROOT_SYMLINK
> > -	ln -sf pseudo $(HOST_DIR)/usr/bin/fakeroot
> > +	ln -sf pseudo-wrapper $(HOST_DIR)/usr/bin/fakeroot
> >  endef
> >  HOST_PSEUDO_POST_INSTALL_HOOKS += HOST_PSEUDO_FAKEROOT_SYMLINK
> >  
> > 
> 
> -- 
> Arnout Vandecappelle                          arnout at mind be
> Senior Embedded Software Architect            +32-16-286500
> Essensium/Mind                                http://www.mind.be
> G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
> LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
> GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF

-- 
.-----------------.--------------------.------------------.--------------------.
|  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] 14+ messages in thread

* [Buildroot] [PATCH 2/5] package/pseudo: force rpath and pass our host CFLAGS
  2016-11-08 22:18 ` [Buildroot] [PATCH 2/5] package/pseudo: force rpath and pass our host CFLAGS Yann E. MORIN
@ 2016-11-09 22:29   ` Thomas Petazzoni
  0 siblings, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2016-11-09 22:29 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue,  8 Nov 2016 23:18:32 +0100, Yann E. MORIN wrote:
> pseudo whines when those are not set, and tries to find a suitable
> value; this is usually correct but risk an incorrect guess in corner
> cases.
> 
> Rather than leaving those in guess-mode, just force them to values we
> know are correct.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> Reviewed-by: Arnout Vandecappelle <arnout@mind.be>
> ---
>  package/pseudo/pseudo.mk | 5 +++++
>  1 file changed, 5 insertions(+)

Applied to master, after changing the single quotes to double quotes,
since that's what we use pretty much everywhere in BR.

Thanks!

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

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

* [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper
  2016-11-08 22:18 ` [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper Yann E. MORIN
  2016-11-09  0:27   ` Arnout Vandecappelle
@ 2016-11-09 22:31   ` Thomas Petazzoni
  1 sibling, 0 replies; 14+ messages in thread
From: Thomas Petazzoni @ 2016-11-09 22:31 UTC (permalink / raw)
  To: buildroot

Hello,

On Tue,  8 Nov 2016 23:18:33 +0100, Yann E. MORIN wrote:
> Running pseudo is more involved than running fakeroot. In the transition
> from using fakeroot, we just did not account for the extra requirements.
> 
> First, we explicitly tell pseudo where it is, otherwise it tries to
> guess. Its guess is correct, but it prints a warning, which is not nice.
> 
> Second, we tell it where to find the passwd and group files in case it
> has to emulate access to them. We currently do not use that feature, but
> better safe than sorry.
> 
> Third, pseudo spawns a background daemon, and talks to it (when fakeroot
> would emulate the state all in the current process' state, pseudo uses
> the daemon to coordinate the state across multiple processes). We are
> not much interested in the daemon lingering around, so we just tell it
> to terminate as soon as the last clients quits (this can take up to one
> second).
> 
> Fourth and last, pseudo always stores its internal database when
> exiting, and reloads it when spawned. The database is by default stored
> in a sub-directory of the prefix it was installed in, but this is
> impractical for us. We want the database to be specific to the one
> config dir we are building, so we store the database in a (hidden)
> sub-dir of the build dir, thus ensuring it is never shared with another
> build. That directory is hidden (starts with a dot) because we consider
> that to be our internal state that we do not want to expose to the user.
> 
> The wrapper has to be relocatable, so we avoid using hard-coded paths
> in there: we derive those paths fom the runtime path of pseudo. However,
> the build directory $(BUILD_DIR) is not available in the environment
> (we do not export it because it conflicts with some buildsystems).
> Instead, we use $(BASE_DIR) which is exported.
> 
> Finally, when relocated, the wrapper would not be used in the Buildroot
> environment, so may not have access to TARGET_DIR or BASE_DIR, unless
> the user sets them. If he does not, we still want the wrapper to be
> working (to avoid the warning about the prefix, and to exit the daemon
> asap); thus we leave the passwd and localstatedir variable alone if we
> don't have what it needs to set them, rather than set them to incorrect
> values.
> 
> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
> Cc: Ga?l PORTAY <gael.portay@savoirfairelinux.com>
> Cc: Patrick Keroulas <patrick.keroulas@savoirfairelinux.com>
> Cc: Erico Nunes <nunes.erico@gmail.com>
> Cc: Julien BOIBESSOT <julien.boibessot@free.fr>
> Cc: Arnout Vandecappelle <arnout@mind.be>
> 
> ---
> Changes v1 -> v2:
>   - do not use a variable, but use a wrapper
> ---
>  package/pseudo/pseudo-wrapper | 12 ++++++++++++
>  package/pseudo/pseudo.mk      |  6 ++++++
>  2 files changed, 18 insertions(+)
>  create mode 100644 package/pseudo/pseudo-wrapper

Patches to 3 to 5 applied to master. Thanks!

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

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

end of thread, other threads:[~2016-11-09 22:31 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-08 22:18 [Buildroot] [PATCH 0/5 v2] package/pseudo: fix build and better mimic fakeroot Yann E. MORIN
2016-11-08 22:18 ` [Buildroot] [PATCH 1/5] package/pseudo: enforce the host bitness Yann E. MORIN
2016-11-09  0:25   ` Arnout Vandecappelle
2016-11-09 21:27   ` Thomas Petazzoni
2016-11-08 22:18 ` [Buildroot] [PATCH 2/5] package/pseudo: force rpath and pass our host CFLAGS Yann E. MORIN
2016-11-09 22:29   ` Thomas Petazzoni
2016-11-08 22:18 ` [Buildroot] [PATCH 3/5] package/pseudo: wrap the real pseudo with a wrapper Yann E. MORIN
2016-11-09  0:27   ` Arnout Vandecappelle
2016-11-09 22:31   ` Thomas Petazzoni
2016-11-08 22:18 ` [Buildroot] [PATCH 4/5] fs: call the pseudo wrapper Yann E. MORIN
2016-11-09  0:28   ` Arnout Vandecappelle
2016-11-08 22:18 ` [Buildroot] [PATCH 5/5] package/pseudo: provide better legacy handling for fakeroot Yann E. MORIN
2016-11-09  0:29   ` Arnout Vandecappelle
2016-11-09 22:07     ` Yann E. MORIN

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.