DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH] mk: fix permissions when using make install
@ 2018-08-09 15:22 Bruce Richardson
  2018-08-09 16:16 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
  2018-08-09 17:38 ` [dpdk-dev] " Yongseok Koh
  0 siblings, 2 replies; 4+ messages in thread
From: Bruce Richardson @ 2018-08-09 15:22 UTC (permalink / raw)
  To: thomas; +Cc: dev, Bruce Richardson, stable

When using make install, the permissions of the resulting file should be
those of the user using make install, not those of the user who ran the
build. This would not be the case when a user explicitly runs:

   "make && sudo make install"

Fix this by changing "cp -a", which preserves all attributes, to
"cp -dR --preserve=timestamp", and by adding the flags
"--no-same-owner --no-same-permissions" to the calls to tar.

Fixes: 1fa0fd9d6b42 ("mk: allow to specify DESTDIR in build rule")
Fixes: 6b62a72a70d0 ("mk: install a standard cutomizable tree")
Fixes: 576de42b83e5 ("doc: render and install man pages")

CC: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 mk/rte.sdkinstall.mk | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

diff --git a/mk/rte.sdkinstall.mk b/mk/rte.sdkinstall.mk
index e756ec629..8296e6dbd 100644
--- a/mk/rte.sdkinstall.mk
+++ b/mk/rte.sdkinstall.mk
@@ -85,18 +85,22 @@ else
 	@echo Installation in $(DESTDIR)$(prefix)/ complete
 endif
 
+# when installing we want recursive copies preserving timestamps only, no
+# preservation of user/group ids or permissions
+CP_FLAGS=-dR --preserve=timestamps
+TAR_X_FLAGS=--strip-components=1 --keep-newer-files --no-same-owner --no-same-permissions
+
 install-runtime:
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(libdir))
-	$(Q)cp -a    $O/lib/* $(DESTDIR)$(libdir)
+	$(Q)cp $(CP_FLAGS)    $O/lib/* $(DESTDIR)$(libdir)
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(bindir))
 	$(Q)tar -cf -      -C $O --exclude 'app/*.map' \
 		--exclude app/dpdk-pmdinfogen \
 		--exclude 'app/cmdline*' --exclude app/test \
 		--exclude app/testacl --exclude app/testpipeline app | \
-	    tar -xf -      -C $(DESTDIR)$(bindir) --strip-components=1 \
-		--keep-newer-files
+	    tar -xf -      -C $(DESTDIR)$(bindir) $(TAR_X_FLAGS)
 	$(Q)$(call rte_mkdir,      $(DESTDIR)$(datadir))
-	$(Q)cp -a $(RTE_SDK)/usertools $(DESTDIR)$(datadir)
+	$(Q)cp $(CP_FLAGS) $(RTE_SDK)/usertools $(DESTDIR)$(datadir)
 	$(Q)$(call rte_mkdir,      $(DESTDIR)$(sbindir))
 	$(Q)$(call rte_symlink,    $(DESTDIR)$(datadir)/usertools/dpdk-devbind.py, \
 	                           $(DESTDIR)$(sbindir)/dpdk-devbind)
@@ -104,30 +108,29 @@ install-runtime:
 	                           $(DESTDIR)$(bindir)/dpdk-pmdinfo)
 ifneq ($(wildcard $O/doc/man/*/*.1),)
 	$(Q)$(call rte_mkdir,      $(DESTDIR)$(mandir)/man1)
-	$(Q)cp -a $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1
+	$(Q)cp $(CP_FLAGS) $O/doc/man/*/*.1 $(DESTDIR)$(mandir)/man1
 endif
 ifneq ($(wildcard $O/doc/man/*/*.8),)
 	$(Q)$(call rte_mkdir,      $(DESTDIR)$(mandir)/man8)
-	$(Q)cp -a $O/doc/man/*/*.8 $(DESTDIR)$(mandir)/man8
+	$(Q)cp $(CP_FLAGS) $O/doc/man/*/*.8 $(DESTDIR)$(mandir)/man8
 endif
 
 install-kmod:
 ifneq ($(wildcard $O/kmod/*),)
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(kerneldir))
-	$(Q)cp -a   $O/kmod/* $(DESTDIR)$(kerneldir)
+	$(Q)cp $(CP_FLAGS)   $O/kmod/* $(DESTDIR)$(kerneldir)
 endif
 
 install-sdk:
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(includedir))
 	$(Q)tar -chf -     -C $O include | \
-	    tar -xf -      -C $(DESTDIR)$(includedir) --strip-components=1 \
-		--keep-newer-files
+	    tar -xf -      -C $(DESTDIR)$(includedir) $(TAR_X_FLAGS)
 	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(sdkdir))
-	$(Q)cp -a               $(RTE_SDK)/mk            $(DESTDIR)$(sdkdir)
-	$(Q)cp -a               $(RTE_SDK)/buildtools    $(DESTDIR)$(sdkdir)
+	$(Q)cp $(CP_FLAGS)      $(RTE_SDK)/mk            $(DESTDIR)$(sdkdir)
+	$(Q)cp $(CP_FLAGS)      $(RTE_SDK)/buildtools    $(DESTDIR)$(sdkdir)
 	$(Q)$(call rte_mkdir,                            $(DESTDIR)$(targetdir)/app)
-	$(Q)cp -a               $O/.config               $(DESTDIR)$(targetdir)
-	$(Q)cp -a               $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
+	$(Q)cp $(CP_FLAGS)      $O/.config               $(DESTDIR)$(targetdir)
+	$(Q)cp $(CP_FLAGS)      $O/app/dpdk-pmdinfogen   $(DESTDIR)$(targetdir)/app
 	$(Q)$(call rte_symlink, $(DESTDIR)$(includedir), $(DESTDIR)$(targetdir)/include)
 	$(Q)$(call rte_symlink, $(DESTDIR)$(libdir),     $(DESTDIR)$(targetdir)/lib)
 
@@ -135,12 +138,11 @@ install-doc:
 ifneq ($(wildcard $O/doc/html),)
 	$(Q)$(call rte_mkdir, $(DESTDIR)$(docdir))
 	$(Q)tar -cf -      -C $O/doc --exclude 'html/guides/.*' html | \
-	    tar -xf -      -C $(DESTDIR)$(docdir) --strip-components=1 \
-		--keep-newer-files
+	    tar -xf -      -C $(DESTDIR)$(docdir) $(TAR_X_FLAGS)
 endif
 ifneq ($(wildcard $O/doc/*/*/*pdf),)
 	$(Q)$(call rte_mkdir,     $(DESTDIR)$(docdir)/guides)
-	$(Q)cp -a $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
+	$(Q)cp $(CP_FLAGS) $O/doc/*/*/*pdf $(DESTDIR)$(docdir)/guides
 endif
 	$(Q)$(call rte_mkdir,         $(DESTDIR)$(datadir))
-	$(Q)cp -a $(RTE_SDK)/examples $(DESTDIR)$(datadir)
+	$(Q)cp $(CP_FLAGS) $(RTE_SDK)/examples $(DESTDIR)$(datadir)
-- 
2.17.1

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

* Re: [dpdk-dev] [dpdk-stable] [PATCH] mk: fix permissions when using make install
  2018-08-09 15:22 [dpdk-dev] [PATCH] mk: fix permissions when using make install Bruce Richardson
@ 2018-08-09 16:16 ` Thomas Monjalon
  2018-08-09 17:10   ` Ferruh Yigit
  2018-08-09 17:38 ` [dpdk-dev] " Yongseok Koh
  1 sibling, 1 reply; 4+ messages in thread
From: Thomas Monjalon @ 2018-08-09 16:16 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: stable, dev

09/08/2018 17:22, Bruce Richardson:
> When using make install, the permissions of the resulting file should be
> those of the user using make install, not those of the user who ran the
> build. This would not be the case when a user explicitly runs:
> 
>    "make && sudo make install"
> 
> Fix this by changing "cp -a", which preserves all attributes, to
> "cp -dR --preserve=timestamp", and by adding the flags
> "--no-same-owner --no-same-permissions" to the calls to tar.
> 
> Fixes: 1fa0fd9d6b42 ("mk: allow to specify DESTDIR in build rule")
> Fixes: 6b62a72a70d0 ("mk: install a standard cutomizable tree")
> Fixes: 576de42b83e5 ("doc: render and install man pages")
> 
> CC: stable@dpdk.org
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>

Acked-by: Thomas Monjalon <thomas@monjalon.net>

Applied, thanks

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

* Re: [dpdk-dev] [dpdk-stable] [PATCH] mk: fix permissions when using make install
  2018-08-09 16:16 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
@ 2018-08-09 17:10   ` Ferruh Yigit
  0 siblings, 0 replies; 4+ messages in thread
From: Ferruh Yigit @ 2018-08-09 17:10 UTC (permalink / raw)
  To: Thomas Monjalon, Bruce Richardson; +Cc: stable, dev

On 8/9/2018 5:16 PM, Thomas Monjalon wrote:
> 09/08/2018 17:22, Bruce Richardson:
>> When using make install, the permissions of the resulting file should be
>> those of the user using make install, not those of the user who ran the
>> build. This would not be the case when a user explicitly runs:
>>
>>    "make && sudo make install"
>>
>> Fix this by changing "cp -a", which preserves all attributes, to
>> "cp -dR --preserve=timestamp", and by adding the flags
>> "--no-same-owner --no-same-permissions" to the calls to tar.
>>
>> Fixes: 1fa0fd9d6b42 ("mk: allow to specify DESTDIR in build rule")
>> Fixes: 6b62a72a70d0 ("mk: install a standard cutomizable tree")
>> Fixes: 576de42b83e5 ("doc: render and install man pages")
>>
>> CC: stable@dpdk.org
>> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> 
> Acked-by: Thomas Monjalon <thomas@monjalon.net>>
> Applied, thanks

Already applied, but to keep record:
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>

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

* Re: [dpdk-dev] [PATCH] mk: fix permissions when using make install
  2018-08-09 15:22 [dpdk-dev] [PATCH] mk: fix permissions when using make install Bruce Richardson
  2018-08-09 16:16 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
@ 2018-08-09 17:38 ` Yongseok Koh
  1 sibling, 0 replies; 4+ messages in thread
From: Yongseok Koh @ 2018-08-09 17:38 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: Thomas Monjalon, dev, stable


> On Aug 9, 2018, at 8:22 AM, Bruce Richardson <bruce.richardson@intel.com> wrote:
> 
> When using make install, the permissions of the resulting file should be
> those of the user using make install, not those of the user who ran the
> build. This would not be the case when a user explicitly runs:
> 
>   "make && sudo make install"
> 
> Fix this by changing "cp -a", which preserves all attributes, to
> "cp -dR --preserve=timestamp", and by adding the flags
> "--no-same-owner --no-same-permissions" to the calls to tar.
> 
> Fixes: 1fa0fd9d6b42 ("mk: allow to specify DESTDIR in build rule")
> Fixes: 6b62a72a70d0 ("mk: install a standard cutomizable tree")
> Fixes: 576de42b83e5 ("doc: render and install man pages")
> 
> CC: stable@dpdk.org
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> ---

Applied to stable/17.11.

Thanks,
Yongseok

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

end of thread, other threads:[~2018-08-09 17:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-09 15:22 [dpdk-dev] [PATCH] mk: fix permissions when using make install Bruce Richardson
2018-08-09 16:16 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
2018-08-09 17:10   ` Ferruh Yigit
2018-08-09 17:38 ` [dpdk-dev] " Yongseok Koh

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).