diff mbox series

Makefile: Drop $(DESTDIR) from generated FW paths

Message ID 350c3150b25e0c44e24e0a3bd15dacc7284684c9.1565009145.git.mprivozn@redhat.com
State New
Headers show
Series Makefile: Drop $(DESTDIR) from generated FW paths | expand

Commit Message

Michal Prívozník Aug. 5, 2019, 12:53 p.m. UTC
The way that generating firmware descriptor files work is that
for every input file, every occurrence of @DATADIR@ within the
file is replaced with $(DESTDIR)$(qemu_datadir). This works as
long as DESTDIR is empty. But in some cases (e.g. on my Gentoo
box), compilation is done in one dir, then the installation is
done to another dir and then package manager copies over the
installed files. It's obvious that $(DESTDIR) must be ignored
otherwise the generated FW descriptor files will refer to old
installation directory and ignore --prefix given to ./configure.

Steps to reproduce:
1) qemu.git $ mkdir _build _install; cd _build && \
   ../configure --prefix=/usr && make && \
   make DESTDIR=../_install install

2) Observe wrong path:
   qemu.git/_build $ grep filename ../_install/usr/share/qemu/firmware/*

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Maydell Aug. 5, 2019, 1 p.m. UTC | #1
On Mon, 5 Aug 2019 at 13:54, Michal Privoznik <mprivozn@redhat.com> wrote:
>
> The way that generating firmware descriptor files work is that
> for every input file, every occurrence of @DATADIR@ within the
> file is replaced with $(DESTDIR)$(qemu_datadir). This works as
> long as DESTDIR is empty. But in some cases (e.g. on my Gentoo
> box), compilation is done in one dir, then the installation is
> done to another dir and then package manager copies over the
> installed files. It's obvious that $(DESTDIR) must be ignored
> otherwise the generated FW descriptor files will refer to old
> installation directory and ignore --prefix given to ./configure.
>
> Steps to reproduce:
> 1) qemu.git $ mkdir _build _install; cd _build && \
>    ../configure --prefix=/usr && make && \
>    make DESTDIR=../_install install
>
> 2) Observe wrong path:
>    qemu.git/_build $ grep filename ../_install/usr/share/qemu/firmware/*
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
> ---
>  Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index cfab1561b9..85862fb81a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -881,7 +881,7 @@ ifneq ($(DESCS),)
>         $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/firmware"
>         set -e; tmpf=$$(mktemp); trap 'rm -f -- "$$tmpf"' EXIT; \
>         for x in $(DESCS); do \
> -               sed -e 's,@DATADIR@,$(DESTDIR)$(qemu_datadir),' \
> +               sed -e 's,@DATADIR@,$(qemu_datadir),' \
>                         "$(SRC_PATH)/pc-bios/descriptors/$$x" > "$$tmpf"; \
>                 $(INSTALL_DATA) "$$tmpf" \
>                         "$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \
> --
> 2.21.0

Hi -- this looks like a duplicate of
https://patchew.org/QEMU/20190530192812.17637-1-olaf@aepfle.de/

(which Philippe has put in a pullreq which I guess is
destined for 4.1, though I'm still waiting for confirmation
of that, ie that it really is a for-4.1-worthy bug).

thanks
-- PMM
Michal Prívozník Aug. 5, 2019, 1:14 p.m. UTC | #2
On 8/5/19 3:00 PM, Peter Maydell wrote:
> <snip/>
> Hi -- this looks like a duplicate of
> https://patchew.org/QEMU/20190530192812.17637-1-olaf@aepfle.de/
> 
> (which Philippe has put in a pullreq which I guess is
> destined for 4.1, though I'm still waiting for confirmation
> of that, ie that it really is a for-4.1-worthy bug).
> 

Ah, did not realize that. Sorry. I've replied there.

Michal
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index cfab1561b9..85862fb81a 100644
--- a/Makefile
+++ b/Makefile
@@ -881,7 +881,7 @@  ifneq ($(DESCS),)
 	$(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/firmware"
 	set -e; tmpf=$$(mktemp); trap 'rm -f -- "$$tmpf"' EXIT; \
 	for x in $(DESCS); do \
-		sed -e 's,@DATADIR@,$(DESTDIR)$(qemu_datadir),' \
+		sed -e 's,@DATADIR@,$(qemu_datadir),' \
 			"$(SRC_PATH)/pc-bios/descriptors/$$x" > "$$tmpf"; \
 		$(INSTALL_DATA) "$$tmpf" \
 			"$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \