mailarchive of the ptxdist mailing list
 help / color / mirror / Atom feed
* [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command
@ 2020-05-25  9:28 Roland Hieber
  2020-05-25  9:28 ` [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built Roland Hieber
  2020-05-29  5:59 ` [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Michael Olbrich
  0 siblings, 2 replies; 9+ messages in thread
From: Roland Hieber @ 2020-05-25  9:28 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

Make it possible to check all MD5 sums of license files by building all
report stages without also building the license report (which produces
tons of LaTeX output).

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
 bin/ptxdist                              | 6 ++++++
 doc/ref_parameter.inc                    | 3 +++
 rules/post/ptxd_make_license_report.make | 2 ++
 3 files changed, 11 insertions(+)

diff --git a/bin/ptxdist b/bin/ptxdist
index 1e10c08d47f2..4a372ff6392c 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -752,6 +752,7 @@ Misc:
 				it is known by "make"
   printnext <var>		assumes that the contents of <var> is another
 				variable and print the contents of this variable
+  licensecheck			check md5sums of license files for all packages
   list-packages			print a list of all selected packages
   local-src <pkg> [<directory>]	overwrite a package source with a locally provided
 				directory containing the sourcecode.
@@ -1776,6 +1777,11 @@ EOF
 			ptxd_make_log "${images[@]}"
 			exit
 			;;
+		licensecheck)
+			check_premake_compiler &&
+			ptxd_make_log report
+			exit
+			;;
 		list-packages)
 			check_config &&
 			check_deps || return
diff --git a/doc/ref_parameter.inc b/doc/ref_parameter.inc
index 74689b9d3cff..aaac8956f147 100644
--- a/doc/ref_parameter.inc
+++ b/doc/ref_parameter.inc
@@ -234,6 +234,9 @@ Misc Actions
   contents of this variable. Shell variables are currently not checked here.
   All other rules for ``print`` apply.
 
+``licensecheck``
+  For all selected packages, check the MD5 sums of license files.
+
 ``list-packages``
   print a list of all selected packages. This list does not include the
   host and cross tools.
diff --git a/rules/post/ptxd_make_license_report.make b/rules/post/ptxd_make_license_report.make
index 47dc176668d0..1a13c3ad4964 100644
--- a/rules/post/ptxd_make_license_report.make
+++ b/rules/post/ptxd_make_license_report.make
@@ -15,6 +15,8 @@ PTX_PACKAGES_TARGET := \
 	$(PTX_PACKAGES_INSTALL) \
 	$(EXTRA_PACKAGES)
 
+report: $(addprefix $(STATEDIR)/,$(addsuffix .report,$(PTX_PACKAGES_SELECTED)))
+
 PHONY += license-report
 
 license-report: \
-- 
2.26.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built
  2020-05-25  9:28 [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Roland Hieber
@ 2020-05-25  9:28 ` Roland Hieber
  2020-05-25 11:46   ` Roland Hieber
  2020-05-25 12:47   ` Michael Olbrich
  2020-05-29  5:59 ` [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Michael Olbrich
  1 sibling, 2 replies; 9+ messages in thread
From: Roland Hieber @ 2020-05-25  9:28 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

There are use cases where -j is useful to have on the command line to
speed up runs with large amount of packages, but when targetinstall
stages are not needed at all. For example:

    ptxdist -j license-check
    ptxdist -j make license-report
    ptxdist -j extract <long list of package names>

Commit 2e695987211c2c2e6e19 ("ptxd_lib_dgen: add order-only dependency
to extract") introduced better interleaving of extract stages to
optimise IO load during full builds. This also had the effect that in
the above cases all targetinstall stages of dependencies were built too,
even when they are not needed at all. Improve that use case by adding a
flag in the environment and only set it in case of 'ptxdist go',
'ptxdist images' or 'ptxdist image <image-name>'.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
 bin/ptxdist                   | 3 +++
 scripts/lib/ptxd_lib_dgen.awk | 5 +++--
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/bin/ptxdist b/bin/ptxdist
index 4a372ff6392c..6034d170fcdc 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -1764,10 +1764,12 @@ EOF
 			exit
 			;;
 		go|images)
+			PTXDIST_OPTIMIZE_IO=true
 			do_${cmd}
 			exit
 			;;
 		image)
+			PTXDIST_OPTIMIZE_IO=true
 			if [ ${#} -eq 0 ]; then
 				echo "No image given."
 				exit 1
@@ -2564,6 +2566,7 @@ setup_export() {
 		PTXDIST_ICECC_CREATE_ENV \
 		PTXDIST_LOG_PROMPT \
 		PTXDIST_OUTPUT_SYNC \
+		PTXDIST_OPTIMIZE_IO \
 		PTXDIST_DIRTY \
 		PTXDIST_FORCE \
 		PTXDIST_PEDANTIC \
diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
index 8ee88827b1f8..8c09c531129e 100644
--- a/scripts/lib/ptxd_lib_dgen.awk
+++ b/scripts/lib/ptxd_lib_dgen.awk
@@ -17,6 +17,7 @@ BEGIN {
 	DGEN_DEPS_PRE		= ENVIRON["PTX_DGEN_DEPS_PRE"];
 	DGEN_DEPS_POST		= ENVIRON["PTX_DGEN_DEPS_POST"];
 	DGEN_RULESFILES_MAKE	= ENVIRON["PTX_DGEN_RULESFILES_MAKE"];
+	OPTIMIZE_IO		= ENVIRON["PTXDIST_OPTIMIZE_IO"]
 	PTXDIST_TEMPDIR		= ENVIRON["PTXDIST_TEMPDIR"];
 	PARALLEL		= ENVIRON["PTXDIST_PARALLELMFLAGS_EXTERN"]
 	DIRTY			= ENVIRON["PTXDIST_DIRTY"];
@@ -503,7 +504,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
 	for (i = 1; i <= n; i++) {
 		this_dep = PKG_to_pkg[this_DEP_array[i]]
 
-		if (PARALLEL != "-j1")
+		if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
 			print "$(STATEDIR)/" this_pkg	".extract:| " "$(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
 		print "$(STATEDIR)/" this_pkg	".extract.post:" DEP   " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
 		print "$(STATEDIR)/" this_pkg	".install.unpack:" DEP " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
@@ -545,7 +546,7 @@ function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) {
 		else
 			virtual = "base";
 	}
-	if (PARALLEL != "-j1")
+	if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
 		print "$(STATEDIR)/" this_pkg ".extract:| "           "$(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
 	print "$(STATEDIR)/" this_pkg ".extract.post:" DEP           " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
 	print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP         " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
-- 
2.26.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built
  2020-05-25  9:28 ` [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built Roland Hieber
@ 2020-05-25 11:46   ` Roland Hieber
  2020-05-25 12:47   ` Michael Olbrich
  1 sibling, 0 replies; 9+ messages in thread
From: Roland Hieber @ 2020-05-25 11:46 UTC (permalink / raw)
  To: ptxdist

On Mon, May 25, 2020 at 11:28:20AM +0200, Roland Hieber wrote:
> There are use cases where -j is useful to have on the command line to
> speed up runs with large amount of packages, but when targetinstall
> stages are not needed at all. For example:
> 
>     ptxdist -j license-check
>     ptxdist -j make license-report
>     ptxdist -j extract <long list of package names>
> 
> Commit 2e695987211c2c2e6e19 ("ptxd_lib_dgen: add order-only dependency
> to extract") introduced better interleaving of extract stages to
> optimise IO load during full builds. This also had the effect that in

gah, optimise... optimize... one reason why I had to debug my own patch
for one hour this morning... ^^ (well, not important here :))

 - Roland

> the above cases all targetinstall stages of dependencies were built too,
> even when they are not needed at all. Improve that use case by adding a
> flag in the environment and only set it in case of 'ptxdist go',
> 'ptxdist images' or 'ptxdist image <image-name>'.
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
>  bin/ptxdist                   | 3 +++
>  scripts/lib/ptxd_lib_dgen.awk | 5 +++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/bin/ptxdist b/bin/ptxdist
> index 4a372ff6392c..6034d170fcdc 100755
> --- a/bin/ptxdist
> +++ b/bin/ptxdist
> @@ -1764,10 +1764,12 @@ EOF
>  			exit
>  			;;
>  		go|images)
> +			PTXDIST_OPTIMIZE_IO=true
>  			do_${cmd}
>  			exit
>  			;;
>  		image)
> +			PTXDIST_OPTIMIZE_IO=true
>  			if [ ${#} -eq 0 ]; then
>  				echo "No image given."
>  				exit 1
> @@ -2564,6 +2566,7 @@ setup_export() {
>  		PTXDIST_ICECC_CREATE_ENV \
>  		PTXDIST_LOG_PROMPT \
>  		PTXDIST_OUTPUT_SYNC \
> +		PTXDIST_OPTIMIZE_IO \
>  		PTXDIST_DIRTY \
>  		PTXDIST_FORCE \
>  		PTXDIST_PEDANTIC \
> diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
> index 8ee88827b1f8..8c09c531129e 100644
> --- a/scripts/lib/ptxd_lib_dgen.awk
> +++ b/scripts/lib/ptxd_lib_dgen.awk
> @@ -17,6 +17,7 @@ BEGIN {
>  	DGEN_DEPS_PRE		= ENVIRON["PTX_DGEN_DEPS_PRE"];
>  	DGEN_DEPS_POST		= ENVIRON["PTX_DGEN_DEPS_POST"];
>  	DGEN_RULESFILES_MAKE	= ENVIRON["PTX_DGEN_RULESFILES_MAKE"];
> +	OPTIMIZE_IO		= ENVIRON["PTXDIST_OPTIMIZE_IO"]
>  	PTXDIST_TEMPDIR		= ENVIRON["PTXDIST_TEMPDIR"];
>  	PARALLEL		= ENVIRON["PTXDIST_PARALLELMFLAGS_EXTERN"]
>  	DIRTY			= ENVIRON["PTXDIST_DIRTY"];
> @@ -503,7 +504,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
>  	for (i = 1; i <= n; i++) {
>  		this_dep = PKG_to_pkg[this_DEP_array[i]]
>  
> -		if (PARALLEL != "-j1")
> +		if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
>  			print "$(STATEDIR)/" this_pkg	".extract:| " "$(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
>  		print "$(STATEDIR)/" this_pkg	".extract.post:" DEP   " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
>  		print "$(STATEDIR)/" this_pkg	".install.unpack:" DEP " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
> @@ -545,7 +546,7 @@ function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) {
>  		else
>  			virtual = "base";
>  	}
> -	if (PARALLEL != "-j1")
> +	if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
>  		print "$(STATEDIR)/" this_pkg ".extract:| "           "$(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
>  	print "$(STATEDIR)/" this_pkg ".extract.post:" DEP           " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
>  	print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP         " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
> -- 
> 2.26.2
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Roland Hieber, Pengutronix e.K.          | r.hieber@pengutronix.de     |
Steuerwalder Str. 21                     | https://www.pengutronix.de/ |
31137 Hildesheim, Germany                | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686         | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built
  2020-05-25  9:28 ` [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built Roland Hieber
  2020-05-25 11:46   ` Roland Hieber
@ 2020-05-25 12:47   ` Michael Olbrich
  2020-05-25 20:22     ` [ptxdist] [PATCH v2 2/2] ptxd_lib_dgen: optimize ordering only when dependencies are needed Roland Hieber
  1 sibling, 1 reply; 9+ messages in thread
From: Michael Olbrich @ 2020-05-25 12:47 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

On Mon, May 25, 2020 at 11:28:20AM +0200, Roland Hieber wrote:
> There are use cases where -j is useful to have on the command line to
> speed up runs with large amount of packages, but when targetinstall
> stages are not needed at all. For example:
> 
>     ptxdist -j license-check
>     ptxdist -j make license-report
>     ptxdist -j extract <long list of package names>
> 
> Commit 2e695987211c2c2e6e19 ("ptxd_lib_dgen: add order-only dependency
> to extract") introduced better interleaving of extract stages to
> optimise IO load during full builds. This also had the effect that in
> the above cases all targetinstall stages of dependencies were built too,
> even when they are not needed at all. Improve that use case by adding a
> flag in the environment and only set it in case of 'ptxdist go',
> 'ptxdist images' or 'ptxdist image <image-name>'.
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
>  bin/ptxdist                   | 3 +++
>  scripts/lib/ptxd_lib_dgen.awk | 5 +++--
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/bin/ptxdist b/bin/ptxdist
> index 4a372ff6392c..6034d170fcdc 100755
> --- a/bin/ptxdist
> +++ b/bin/ptxdist
> @@ -1764,10 +1764,12 @@ EOF
>  			exit
>  			;;
>  		go|images)
> +			PTXDIST_OPTIMIZE_IO=true
>  			do_${cmd}
>  			exit
>  			;;
>  		image)
> +			PTXDIST_OPTIMIZE_IO=true

Hmmm, I think anything, that includes prepare stages should get this flag.
Or maybe reverse the logic and flag commands where this should be skipped.
I don't know which would be easier.

Michael

>  			if [ ${#} -eq 0 ]; then
>  				echo "No image given."
>  				exit 1
> @@ -2564,6 +2566,7 @@ setup_export() {
>  		PTXDIST_ICECC_CREATE_ENV \
>  		PTXDIST_LOG_PROMPT \
>  		PTXDIST_OUTPUT_SYNC \
> +		PTXDIST_OPTIMIZE_IO \
>  		PTXDIST_DIRTY \
>  		PTXDIST_FORCE \
>  		PTXDIST_PEDANTIC \
> diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
> index 8ee88827b1f8..8c09c531129e 100644
> --- a/scripts/lib/ptxd_lib_dgen.awk
> +++ b/scripts/lib/ptxd_lib_dgen.awk
> @@ -17,6 +17,7 @@ BEGIN {
>  	DGEN_DEPS_PRE		= ENVIRON["PTX_DGEN_DEPS_PRE"];
>  	DGEN_DEPS_POST		= ENVIRON["PTX_DGEN_DEPS_POST"];
>  	DGEN_RULESFILES_MAKE	= ENVIRON["PTX_DGEN_RULESFILES_MAKE"];
> +	OPTIMIZE_IO		= ENVIRON["PTXDIST_OPTIMIZE_IO"]
>  	PTXDIST_TEMPDIR		= ENVIRON["PTXDIST_TEMPDIR"];
>  	PARALLEL		= ENVIRON["PTXDIST_PARALLELMFLAGS_EXTERN"]
>  	DIRTY			= ENVIRON["PTXDIST_DIRTY"];
> @@ -503,7 +504,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
>  	for (i = 1; i <= n; i++) {
>  		this_dep = PKG_to_pkg[this_DEP_array[i]]
>  
> -		if (PARALLEL != "-j1")
> +		if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
>  			print "$(STATEDIR)/" this_pkg	".extract:| " "$(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
>  		print "$(STATEDIR)/" this_pkg	".extract.post:" DEP   " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
>  		print "$(STATEDIR)/" this_pkg	".install.unpack:" DEP " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
> @@ -545,7 +546,7 @@ function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) {
>  		else
>  			virtual = "base";
>  	}
> -	if (PARALLEL != "-j1")
> +	if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
>  		print "$(STATEDIR)/" this_pkg ".extract:| "           "$(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
>  	print "$(STATEDIR)/" this_pkg ".extract.post:" DEP           " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
>  	print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP         " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
> -- 
> 2.26.2
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* [ptxdist] [PATCH v2 2/2] ptxd_lib_dgen: optimize ordering only when dependencies are needed
  2020-05-25 12:47   ` Michael Olbrich
@ 2020-05-25 20:22     ` Roland Hieber
  2020-06-05  5:59       ` [ptxdist] [APPLIED] " Michael Olbrich
  0 siblings, 1 reply; 9+ messages in thread
From: Roland Hieber @ 2020-05-25 20:22 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

There are use cases where -j is useful to have on the command line to
speed up runs with large amount of packages, but when the install stages
are not needed at all. For example:

    ptxdist -j license-check
    ptxdist -j make license-report
    ptxdist -j extract <long list of package names>

Commit 2e695987211c2c2e6e19 ("ptxd_lib_dgen: add order-only dependency
to extract") introduced better interleaving of extract stages to
optimize IO load during full builds. This also had the effect that in
the above cases all install stages of dependencies were built too, even
when they are not needed at all.

Improve those use cases by only optimizing the extract stage ordering if
at least the prepare stage(s) of the packages being requested are needed
(since the prepare stage depends on the install stages of dependencies,
those will be needed anyway).

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
v2: also set PTXDIST_OPTIMIZE_IO in prepare, compile, install,
    targetinstall, tags, nfsroot; and adapt log message accordingly

On Mon, May 25, 2020 at 02:47:33PM +0200, Michael Olbrich wrote:
> Hmmm, I think anything, that includes prepare stages should get this flag.
> Or maybe reverse the logic and flag commands where this should be skipped.
> I don't know which would be easier.
> 
> Michael

Like this?
A positive list is still easier :)

 - Roland

---
 bin/ptxdist                   | 9 ++++++++-
 scripts/lib/ptxd_lib_dgen.awk | 5 +++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/bin/ptxdist b/bin/ptxdist
index 4a372ff6392c..0d85c1290868 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -1579,7 +1579,10 @@ parse_second()
 
 ######## standard target, directly into make
 
-		extract|prepare|compile|install|targetinstall|tags)
+		prepare|compile|install|targetinstall|tags)
+			PTXDIST_OPTIMIZE_IO=true
+			;&  # fallthrough
+		extract)
 			local cmd_post
 			declare -a pkgs
 
@@ -1764,10 +1767,12 @@ EOF
 			exit
 			;;
 		go|images)
+			PTXDIST_OPTIMIZE_IO=true
 			do_${cmd}
 			exit
 			;;
 		image)
+			PTXDIST_OPTIMIZE_IO=true
 			if [ ${#} -eq 0 ]; then
 				echo "No image given."
 				exit 1
@@ -1823,6 +1828,7 @@ EOF
 			exit
 			;;
 		nfsroot)
+			PTXDIST_OPTIMIZE_IO=true
 			check_premake_compiler &&
 			ptxd_make_log ptxd_make_nfsd
 			exit
@@ -2564,6 +2570,7 @@ setup_export() {
 		PTXDIST_ICECC_CREATE_ENV \
 		PTXDIST_LOG_PROMPT \
 		PTXDIST_OUTPUT_SYNC \
+		PTXDIST_OPTIMIZE_IO \
 		PTXDIST_DIRTY \
 		PTXDIST_FORCE \
 		PTXDIST_PEDANTIC \
diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
index 8ee88827b1f8..8c09c531129e 100644
--- a/scripts/lib/ptxd_lib_dgen.awk
+++ b/scripts/lib/ptxd_lib_dgen.awk
@@ -17,6 +17,7 @@ BEGIN {
 	DGEN_DEPS_PRE		= ENVIRON["PTX_DGEN_DEPS_PRE"];
 	DGEN_DEPS_POST		= ENVIRON["PTX_DGEN_DEPS_POST"];
 	DGEN_RULESFILES_MAKE	= ENVIRON["PTX_DGEN_RULESFILES_MAKE"];
+	OPTIMIZE_IO		= ENVIRON["PTXDIST_OPTIMIZE_IO"]
 	PTXDIST_TEMPDIR		= ENVIRON["PTXDIST_TEMPDIR"];
 	PARALLEL		= ENVIRON["PTXDIST_PARALLELMFLAGS_EXTERN"]
 	DIRTY			= ENVIRON["PTXDIST_DIRTY"];
@@ -503,7 +504,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
 	for (i = 1; i <= n; i++) {
 		this_dep = PKG_to_pkg[this_DEP_array[i]]
 
-		if (PARALLEL != "-j1")
+		if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
 			print "$(STATEDIR)/" this_pkg	".extract:| " "$(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
 		print "$(STATEDIR)/" this_pkg	".extract.post:" DEP   " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
 		print "$(STATEDIR)/" this_pkg	".install.unpack:" DEP " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
@@ -545,7 +546,7 @@ function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) {
 		else
 			virtual = "base";
 	}
-	if (PARALLEL != "-j1")
+	if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
 		print "$(STATEDIR)/" this_pkg ".extract:| "           "$(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
 	print "$(STATEDIR)/" this_pkg ".extract.post:" DEP           " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
 	print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP         " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
-- 
2.26.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

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

* Re: [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command
  2020-05-25  9:28 [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Roland Hieber
  2020-05-25  9:28 ` [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built Roland Hieber
@ 2020-05-29  5:59 ` Michael Olbrich
  2020-05-29  9:13   ` [ptxdist] [PATCH v2 " Roland Hieber
  1 sibling, 1 reply; 9+ messages in thread
From: Michael Olbrich @ 2020-05-29  5:59 UTC (permalink / raw)
  To: ptxdist

On Mon, May 25, 2020 at 11:28:19AM +0200, Roland Hieber wrote:
> Make it possible to check all MD5 sums of license files by building all
> report stages without also building the license report (which produces
> tons of LaTeX output).
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> ---
>  bin/ptxdist                              | 6 ++++++
>  doc/ref_parameter.inc                    | 3 +++
>  rules/post/ptxd_make_license_report.make | 2 ++
>  3 files changed, 11 insertions(+)
> 
> diff --git a/bin/ptxdist b/bin/ptxdist
> index 1e10c08d47f2..4a372ff6392c 100755
> --- a/bin/ptxdist
> +++ b/bin/ptxdist
> @@ -752,6 +752,7 @@ Misc:
>  				it is known by "make"
>    printnext <var>		assumes that the contents of <var> is another
>  				variable and print the contents of this variable
> +  licensecheck			check md5sums of license files for all packages
>    list-packages			print a list of all selected packages
>    local-src <pkg> [<directory>]	overwrite a package source with a locally provided
>  				directory containing the sourcecode.
> @@ -1776,6 +1777,11 @@ EOF
>  			ptxd_make_log "${images[@]}"
>  			exit
>  			;;
> +		licensecheck)
> +			check_premake_compiler &&
> +			ptxd_make_log report
> +			exit
> +			;;
>  		list-packages)
>  			check_config &&
>  			check_deps || return
> diff --git a/doc/ref_parameter.inc b/doc/ref_parameter.inc
> index 74689b9d3cff..aaac8956f147 100644
> --- a/doc/ref_parameter.inc
> +++ b/doc/ref_parameter.inc
> @@ -234,6 +234,9 @@ Misc Actions
>    contents of this variable. Shell variables are currently not checked here.
>    All other rules for ``print`` apply.
>  
> +``licensecheck``
> +  For all selected packages, check the MD5 sums of license files.
> +
>  ``list-packages``
>    print a list of all selected packages. This list does not include the
>    host and cross tools.
> diff --git a/rules/post/ptxd_make_license_report.make b/rules/post/ptxd_make_license_report.make
> index 47dc176668d0..1a13c3ad4964 100644
> --- a/rules/post/ptxd_make_license_report.make
> +++ b/rules/post/ptxd_make_license_report.make
> @@ -15,6 +15,8 @@ PTX_PACKAGES_TARGET := \
>  	$(PTX_PACKAGES_INSTALL) \
>  	$(EXTRA_PACKAGES)
>  
> +report: $(addprefix $(STATEDIR)/,$(addsuffix .report,$(PTX_PACKAGES_SELECTED)))

Hmm, 'report' is a bit too generic for my taste. Just use 'licensecheck'
like the command. Also, You need to add it to PHONY.

mol


> +
>  PHONY += license-report
>  
>  license-report: \
> -- 
> 2.26.2
> 
> 
> _______________________________________________
> ptxdist mailing list
> ptxdist@pengutronix.de
> 

-- 
Pengutronix e.K.                           |                             |
Steuerwalder Str. 21                       | http://www.pengutronix.de/  |
31137 Hildesheim, Germany                  | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

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

* [ptxdist] [PATCH v2 1/2] ptxdist: add licensecheck command
  2020-05-29  5:59 ` [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Michael Olbrich
@ 2020-05-29  9:13   ` Roland Hieber
  2020-06-05  5:59     ` [ptxdist] [APPLIED] " Michael Olbrich
  0 siblings, 1 reply; 9+ messages in thread
From: Roland Hieber @ 2020-05-29  9:13 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

Make it possible to check all MD5 sums of license files by building all
report stages without also building the license report (which produces
tons of LaTeX output).

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
v2: name the make target "licensecheck" instead of report, and add it to
    PHONY

 bin/ptxdist                              | 6 ++++++
 doc/ref_parameter.inc                    | 3 +++
 rules/post/ptxd_make_license_report.make | 4 ++++
 3 files changed, 13 insertions(+)

diff --git a/bin/ptxdist b/bin/ptxdist
index 1e10c08d47f2..6635a96a1cf5 100755
--- a/bin/ptxdist
+++ b/bin/ptxdist
@@ -752,6 +752,7 @@ Misc:
 				it is known by "make"
   printnext <var>		assumes that the contents of <var> is another
 				variable and print the contents of this variable
+  licensecheck			check md5sums of license files for all packages
   list-packages			print a list of all selected packages
   local-src <pkg> [<directory>]	overwrite a package source with a locally provided
 				directory containing the sourcecode.
@@ -1776,6 +1777,11 @@ EOF
 			ptxd_make_log "${images[@]}"
 			exit
 			;;
+		licensecheck)
+			check_premake_compiler &&
+			ptxd_make_log license-check
+			exit
+			;;
 		list-packages)
 			check_config &&
 			check_deps || return
diff --git a/doc/ref_parameter.inc b/doc/ref_parameter.inc
index 74689b9d3cff..aaac8956f147 100644
--- a/doc/ref_parameter.inc
+++ b/doc/ref_parameter.inc
@@ -234,6 +234,9 @@ Misc Actions
   contents of this variable. Shell variables are currently not checked here.
   All other rules for ``print`` apply.
 
+``licensecheck``
+  For all selected packages, check the MD5 sums of license files.
+
 ``list-packages``
   print a list of all selected packages. This list does not include the
   host and cross tools.
diff --git a/rules/post/ptxd_make_license_report.make b/rules/post/ptxd_make_license_report.make
index 47dc176668d0..a2d65cc2f450 100644
--- a/rules/post/ptxd_make_license_report.make
+++ b/rules/post/ptxd_make_license_report.make
@@ -15,6 +15,10 @@ PTX_PACKAGES_TARGET := \
 	$(PTX_PACKAGES_INSTALL) \
 	$(EXTRA_PACKAGES)
 
+PHONY += license-check
+
+license-check: $(addprefix $(STATEDIR)/,$(addsuffix .report,$(PTX_PACKAGES_SELECTED)))
+
 PHONY += license-report
 
 license-report: \
-- 
2.26.2


_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

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

* Re: [ptxdist] [APPLIED] ptxdist: add licensecheck command
  2020-05-29  9:13   ` [ptxdist] [PATCH v2 " Roland Hieber
@ 2020-06-05  5:59     ` Michael Olbrich
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Olbrich @ 2020-06-05  5:59 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

Thanks, applied as d397238e966fe54cc2e9ad2234474e41ae863c1c.

Michael

[sent from post-receive hook]

On Fri, 05 Jun 2020 07:59:06 +0200, Roland Hieber <rhi@pengutronix.de> wrote:
> Make it possible to check all MD5 sums of license files by building all
> report stages without also building the license report (which produces
> tons of LaTeX output).
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> Message-Id: <20200529091339.8396-1-rhi@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/bin/ptxdist b/bin/ptxdist
> index 1e10c08d47f2..6635a96a1cf5 100755
> --- a/bin/ptxdist
> +++ b/bin/ptxdist
> @@ -752,6 +752,7 @@ Misc:
>  				it is known by "make"
>    printnext <var>		assumes that the contents of <var> is another
>  				variable and print the contents of this variable
> +  licensecheck			check md5sums of license files for all packages
>    list-packages			print a list of all selected packages
>    local-src <pkg> [<directory>]	overwrite a package source with a locally provided
>  				directory containing the sourcecode.
> @@ -1776,6 +1777,11 @@ EOF
>  			ptxd_make_log "${images[@]}"
>  			exit
>  			;;
> +		licensecheck)
> +			check_premake_compiler &&
> +			ptxd_make_log license-check
> +			exit
> +			;;
>  		list-packages)
>  			check_config &&
>  			check_deps || return
> diff --git a/doc/ref_parameter.inc b/doc/ref_parameter.inc
> index 74689b9d3cff..aaac8956f147 100644
> --- a/doc/ref_parameter.inc
> +++ b/doc/ref_parameter.inc
> @@ -234,6 +234,9 @@ Misc Actions
>    contents of this variable. Shell variables are currently not checked here.
>    All other rules for ``print`` apply.
>  
> +``licensecheck``
> +  For all selected packages, check the MD5 sums of license files.
> +
>  ``list-packages``
>    print a list of all selected packages. This list does not include the
>    host and cross tools.
> diff --git a/rules/post/ptxd_make_license_report.make b/rules/post/ptxd_make_license_report.make
> index 47dc176668d0..a2d65cc2f450 100644
> --- a/rules/post/ptxd_make_license_report.make
> +++ b/rules/post/ptxd_make_license_report.make
> @@ -15,6 +15,10 @@ PTX_PACKAGES_TARGET := \
>  	$(PTX_PACKAGES_INSTALL) \
>  	$(EXTRA_PACKAGES)
>  
> +PHONY += license-check
> +
> +license-check: $(addprefix $(STATEDIR)/,$(addsuffix .report,$(PTX_PACKAGES_SELECTED)))
> +
>  PHONY += license-report
>  
>  license-report: \

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

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

* Re: [ptxdist] [APPLIED] ptxd_lib_dgen: optimize ordering only when dependencies are needed
  2020-05-25 20:22     ` [ptxdist] [PATCH v2 2/2] ptxd_lib_dgen: optimize ordering only when dependencies are needed Roland Hieber
@ 2020-06-05  5:59       ` Michael Olbrich
  0 siblings, 0 replies; 9+ messages in thread
From: Michael Olbrich @ 2020-06-05  5:59 UTC (permalink / raw)
  To: ptxdist; +Cc: Roland Hieber

Thanks, applied as 943ca0008b5add0d921153fb9ba365fcc33a8318.

Michael

[sent from post-receive hook]

On Fri, 05 Jun 2020 07:59:07 +0200, Roland Hieber <rhi@pengutronix.de> wrote:
> There are use cases where -j is useful to have on the command line to
> speed up runs with large amount of packages, but when the install stages
> are not needed at all. For example:
> 
>     ptxdist -j license-check
>     ptxdist -j make license-report
>     ptxdist -j extract <long list of package names>
> 
> Commit 2e695987211c2c2e6e19 ("ptxd_lib_dgen: add order-only dependency
> to extract") introduced better interleaving of extract stages to
> optimize IO load during full builds. This also had the effect that in
> the above cases all install stages of dependencies were built too, even
> when they are not needed at all.
> 
> Improve those use cases by only optimizing the extract stage ordering if
> at least the prepare stage(s) of the packages being requested are needed
> (since the prepare stage depends on the install stages of dependencies,
> those will be needed anyway).
> 
> Signed-off-by: Roland Hieber <rhi@pengutronix.de>
> Message-Id: <20200525202209.24858-1-rhi@pengutronix.de>
> Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
> 
> diff --git a/bin/ptxdist b/bin/ptxdist
> index 6635a96a1cf5..6b789d9a73fa 100755
> --- a/bin/ptxdist
> +++ b/bin/ptxdist
> @@ -1579,7 +1579,10 @@ parse_second()
>  
>  ######## standard target, directly into make
>  
> -		extract|prepare|compile|install|targetinstall|tags)
> +		prepare|compile|install|targetinstall|tags)
> +			PTXDIST_OPTIMIZE_IO=true
> +			;&  # fallthrough
> +		extract)
>  			local cmd_post
>  			declare -a pkgs
>  
> @@ -1764,10 +1767,12 @@ EOF
>  			exit
>  			;;
>  		go|images)
> +			PTXDIST_OPTIMIZE_IO=true
>  			do_${cmd}
>  			exit
>  			;;
>  		image)
> +			PTXDIST_OPTIMIZE_IO=true
>  			if [ ${#} -eq 0 ]; then
>  				echo "No image given."
>  				exit 1
> @@ -1823,6 +1828,7 @@ EOF
>  			exit
>  			;;
>  		nfsroot)
> +			PTXDIST_OPTIMIZE_IO=true
>  			check_premake_compiler &&
>  			ptxd_make_log ptxd_make_nfsd
>  			exit
> @@ -2564,6 +2570,7 @@ setup_export() {
>  		PTXDIST_ICECC_CREATE_ENV \
>  		PTXDIST_LOG_PROMPT \
>  		PTXDIST_OUTPUT_SYNC \
> +		PTXDIST_OPTIMIZE_IO \
>  		PTXDIST_DIRTY \
>  		PTXDIST_FORCE \
>  		PTXDIST_PEDANTIC \
> diff --git a/scripts/lib/ptxd_lib_dgen.awk b/scripts/lib/ptxd_lib_dgen.awk
> index 8ee88827b1f8..8c09c531129e 100644
> --- a/scripts/lib/ptxd_lib_dgen.awk
> +++ b/scripts/lib/ptxd_lib_dgen.awk
> @@ -17,6 +17,7 @@ BEGIN {
>  	DGEN_DEPS_PRE		= ENVIRON["PTX_DGEN_DEPS_PRE"];
>  	DGEN_DEPS_POST		= ENVIRON["PTX_DGEN_DEPS_POST"];
>  	DGEN_RULESFILES_MAKE	= ENVIRON["PTX_DGEN_RULESFILES_MAKE"];
> +	OPTIMIZE_IO		= ENVIRON["PTXDIST_OPTIMIZE_IO"]
>  	PTXDIST_TEMPDIR		= ENVIRON["PTXDIST_TEMPDIR"];
>  	PARALLEL		= ENVIRON["PTXDIST_PARALLELMFLAGS_EXTERN"]
>  	DIRTY			= ENVIRON["PTXDIST_DIRTY"];
> @@ -503,7 +504,7 @@ function write_deps_pkg_active(this_PKG, this_pkg, prefix) {
>  	for (i = 1; i <= n; i++) {
>  		this_dep = PKG_to_pkg[this_DEP_array[i]]
>  
> -		if (PARALLEL != "-j1")
> +		if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
>  			print "$(STATEDIR)/" this_pkg	".extract:| " "$(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
>  		print "$(STATEDIR)/" this_pkg	".extract.post:" DEP   " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
>  		print "$(STATEDIR)/" this_pkg	".install.unpack:" DEP " $(STATEDIR)/" this_dep ".install.post"	> DGEN_DEPS_POST;
> @@ -545,7 +546,7 @@ function write_deps_pkg_active_virtual(this_PKG, this_pkg, prefix) {
>  		else
>  			virtual = "base";
>  	}
> -	if (PARALLEL != "-j1")
> +	if (PARALLEL != "-j1" && OPTIMIZE_IO == "true")
>  		print "$(STATEDIR)/" this_pkg ".extract:| "           "$(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
>  	print "$(STATEDIR)/" this_pkg ".extract.post:" DEP           " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;
>  	print "$(STATEDIR)/" this_pkg ".install.unpack:" DEP         " $(STATEDIR)/" virtual  ".install"	> DGEN_DEPS_POST;

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
To unsubscribe, send a mail with subject "unsubscribe" to ptxdist-request@pengutronix.de

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

end of thread, other threads:[~2020-06-05  5:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-25  9:28 [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Roland Hieber
2020-05-25  9:28 ` [ptxdist] [PATCH 2/2] ptxd_lib_dgen: optimize ordering only when packages are being fully built Roland Hieber
2020-05-25 11:46   ` Roland Hieber
2020-05-25 12:47   ` Michael Olbrich
2020-05-25 20:22     ` [ptxdist] [PATCH v2 2/2] ptxd_lib_dgen: optimize ordering only when dependencies are needed Roland Hieber
2020-06-05  5:59       ` [ptxdist] [APPLIED] " Michael Olbrich
2020-05-29  5:59 ` [ptxdist] [PATCH 1/2] ptxdist: add licensecheck command Michael Olbrich
2020-05-29  9:13   ` [ptxdist] [PATCH v2 " Roland Hieber
2020-06-05  5:59     ` [ptxdist] [APPLIED] " Michael Olbrich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox