* [Buildroot] TR: [PATCH 1/1] Set external version into os-release [not found] <20200917153243.8745-1-etouhtarian@distech-controls.com> @ 2020-10-01 14:49 ` Touhtarian, Eric 2020-10-01 20:50 ` Yann E. MORIN 0 siblings, 1 reply; 3+ messages in thread From: Touhtarian, Eric @ 2020-10-01 14:49 UTC (permalink / raw) To: buildroot Signed-off-by: Eric Touhtarian <etouhtarian@distech-controls.com> --- Makefile | 16 ++++++++++++++-- support/scripts/setlocalversion | 15 ++++++++++++--- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index b2afe5bcfb..e6693d2f45 100644 --- a/Makefile +++ b/Makefile @@ -111,9 +111,12 @@ CONFIG_CONFIG_IN = Config.in CONFIG = support/kconfig DATE := $(shell date +%Y%m%d) +define setlocalversion +$(shell $(TOPDIR)/support/scripts/setlocalversion $(1) $(2)) endef # Compute the full local version string so packages can use it as-is # Need to export it, so it can be got from environment in children (eg. mconf) -export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion) +export BR2_VERSION_FULL := $(BR2_VERSION)$(call setlocalversion) # List of targets and target patterns for which .config doesn't need to be read in noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ @@ -740,6 +743,14 @@ host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK) .PHONY: staging-finalize staging-finalize: $(STAGING_DIR_SYMLINK) +define set-external-info +index=1; \ +$(foreach ext, $(BR2_EXTERNAL_DIRS), \ + echo "EXTERNAL_$${index}_PATH=$(ext)"; \ + echo "EXTERNAL_$${index}_VERSION=\"$(call setlocalversion,"--unmodify-version", $(ext))\""; \ + index=$$(expr $$index + 1); ) +endef + .PHONY: target-finalize target-finalize: $(PACKAGES) $(TARGET_DIR) host-finalize @$(call MESSAGE,"Finalizing target directory") @@ -779,7 +790,8 @@ endif echo "VERSION=$(BR2_VERSION_FULL)"; \ echo "ID=buildroot"; \ echo "VERSION_ID=$(BR2_VERSION)"; \ - echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\"" \ + echo "PRETTY_NAME=\"Buildroot $(BR2_VERSION)\""; \ + $(call set-external-info) \ ) > $(TARGET_DIR)/usr/lib/os-release ln -sf ../usr/lib/os-release $(TARGET_DIR)/etc diff --git a/support/scripts/setlocalversion b/support/scripts/setlocalversion index b39b751f03..459b4765fa 100755 --- a/support/scripts/setlocalversion +++ b/support/scripts/setlocalversion @@ -10,10 +10,16 @@ # usage() { - echo "Usage: $0 [srctree]" >&2 + echo "Usage: $0 [--unmodify-version] [srctree]" >&2 exit 1 } +original_ver=false +if test "$1" = "--unmodify-version"; then + original_ver=true + shift +fi + cd "${1:-.}" || usage # Check for git and a git repo. @@ -26,8 +32,11 @@ if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"), # we pretty print it. if atag="`git describe 2>/dev/null`"; then - echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' - + if $original_ver; then + printf $atag + else + echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' + fi # If we don't have a tag at all we print -g{commitish}. else printf '%s%s' -g $head -- 2.17.1 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] TR: [PATCH 1/1] Set external version into os-release 2020-10-01 14:49 ` [Buildroot] TR: [PATCH 1/1] Set external version into os-release Touhtarian, Eric @ 2020-10-01 20:50 ` Yann E. MORIN 2020-10-02 13:07 ` Touhtarian, Eric 0 siblings, 1 reply; 3+ messages in thread From: Yann E. MORIN @ 2020-10-01 20:50 UTC (permalink / raw) To: buildroot Eric, All, Thanks again for your contribution. :-) On 2020-10-01 14:49 +0000, Touhtarian, Eric via buildroot spake thusly: > Signed-off-by: Eric Touhtarian <etouhtarian@distech-controls.com> > --- > Makefile | 16 ++++++++++++++-- > support/scripts/setlocalversion | 15 ++++++++++++--- > 2 files changed, 26 insertions(+), 5 deletions(-) > > diff --git a/Makefile b/Makefile > index b2afe5bcfb..e6693d2f45 100644 > --- a/Makefile > +++ b/Makefile > @@ -111,9 +111,12 @@ CONFIG_CONFIG_IN = Config.in CONFIG = support/kconfig DATE := $(shell date +%Y%m%d) > > +define setlocalversion > +$(shell $(TOPDIR)/support/scripts/setlocalversion $(1) $(2)) endef > # Compute the full local version string so packages can use it as-is # Need to export it, so it can be got from environment in children (eg. mconf) -export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion) > +export BR2_VERSION_FULL := $(BR2_VERSION)$(call setlocalversion) This patch is also badly mangled. Please use git send-email. Also, this part of the Makefile has silghtly changed recently, with commit 98c99556e3e (Makefile: properly account for custom tags in BR2_VERSION_FULL), that was applied two months ago (July 27th). > # List of targets and target patterns for which .config doesn't need to be read in noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ @@ -740,6 +743,14 @@ host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK) > .PHONY: staging-finalize > staging-finalize: $(STAGING_DIR_SYMLINK) > > +define set-external-info > +index=1; \ > +$(foreach ext, $(BR2_EXTERNAL_DIRS), \ > + echo "EXTERNAL_$${index}_PATH=$(ext)"; \ > + echo "EXTERNAL_$${index}_VERSION=\"$(call setlocalversion,"--unmodify-version", $(ext))\""; \ > + index=$$(expr $$index + 1); ) The set of fields in the os-release file is predefined by the spec: https://www.freedesktop.org/software/systemd/man/os-release.html Extensions are allowed, but "[i]t is highly recommended to prefix new fields with an OS specific name in order to avoid name clashes". In our case, that prefix would probably have to be 'BR2_EXTERNAL_'. Still, I am not 100% sure we want that... What would be the use-case to have the versions of all br2-external trees? Usually, there is a "main" repository, which has buildroot and all br2-external trees as sub-modules, or in a manifest file. The version of that "main: repo is then sufficient to derive the versions of all the others. In which case it would be simple to provide a post-build script that basically echoes that version in os-release. If you can come up with a good commit log that makes a point that the versions of all br2-external trees is important, I would not mind having it too much either. Ergo, at your keyboard, and go for some poesy. ;-) [--SNIP--] > diff --git a/support/scripts/setlocalversion b/support/scripts/setlocalversion index b39b751f03..459b4765fa 100755 > --- a/support/scripts/setlocalversion > +++ b/support/scripts/setlocalversion > @@ -10,10 +10,16 @@ > # > > usage() { > - echo "Usage: $0 [srctree]" >&2 > + echo "Usage: $0 [--unmodify-version] [srctree]" >&2 What is the purpose of this new option? You need to explain it in the commit log, and a comment in the script would bbe nice too. > exit 1 > } > > +original_ver=false > +if test "$1" = "--unmodify-version"; then > + original_ver=true > + shift > +fi > + > cd "${1:-.}" || usage > > # Check for git and a git repo. > @@ -26,8 +32,11 @@ if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then > # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"), > # we pretty print it. > if atag="`git describe 2>/dev/null`"; then > - echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' > - > + if $original_ver; then > + printf $atag > + else > + echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' > + fi This part of the scripr also changed with commit 98c99556e3e, and so your '--unmodify-version' option is maybe no longer required. I've now marked your patch as "changes requested" in patchwork. Regards, Yann E. MORIN. > # If we don't have a tag at all we print -g{commitish}. > else > printf '%s%s' -g $head > -- > 2.17.1 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 3+ messages in thread
* [Buildroot] TR: [PATCH 1/1] Set external version into os-release 2020-10-01 20:50 ` Yann E. MORIN @ 2020-10-02 13:07 ` Touhtarian, Eric 0 siblings, 0 replies; 3+ messages in thread From: Touhtarian, Eric @ 2020-10-02 13:07 UTC (permalink / raw) To: buildroot Yann, Actually, we have in our structure a repo containing our external tree and submodule of buildroot. So we have buildroot version but we would prefer get our "main repo" in /Etc/os-release Regards Eric ________________________________________ De : Yann E. MORIN <yann.morin.1998@free.fr> Envoy? : jeudi 1 octobre 2020 22:50 ? : Touhtarian, Eric <etouhtarian@distech-controls.com> Cc?: buildroot at buildroot.org <buildroot@buildroot.org> Objet : Re: [Buildroot] TR: [PATCH 1/1] Set external version into os-release ? Eric, All, Thanks again for your contribution. :-) On 2020-10-01 14:49 +0000, Touhtarian, Eric via buildroot spake thusly: > Signed-off-by: Eric Touhtarian <etouhtarian@distech-controls.com> > --- >? Makefile??????????????????????? | 16 ++++++++++++++-- >? support/scripts/setlocalversion | 15 ++++++++++++--- >? 2 files changed, 26 insertions(+), 5 deletions(-) > > diff --git a/Makefile b/Makefile > index b2afe5bcfb..e6693d2f45 100644 > --- a/Makefile > +++ b/Makefile > @@ -111,9 +111,12 @@ CONFIG_CONFIG_IN = Config.in? CONFIG = support/kconfig? DATE := $(shell date +%Y%m%d) >? > +define setlocalversion > +$(shell $(TOPDIR)/support/scripts/setlocalversion $(1) $(2)) endef >? # Compute the full local version string so packages can use it as-is? # Need to export it, so it can be got from environment in children (eg. mconf) -export BR2_VERSION_FULL := $(BR2_VERSION)$(shell $(TOPDIR)/support/scripts/setlocalversion) > +export BR2_VERSION_FULL := $(BR2_VERSION)$(call setlocalversion) This patch is also badly mangled. Please use git send-email. Also, this part of the Makefile has silghtly changed recently, with commit 98c99556e3e (Makefile: properly account for custom tags in BR2_VERSION_FULL), that was applied two months ago (July 27th). >? # List of targets and target patterns for which .config doesn't need to be read in? noconfig_targets := menuconfig nconfig gconfig xconfig config oldconfig randconfig \ @@ -740,6 +743,14 @@ host-finalize: $(PACKAGES) $(HOST_DIR) $(HOST_DIR_SYMLINK) >? .PHONY: staging-finalize >? staging-finalize: $(STAGING_DIR_SYMLINK) >? > +define set-external-info > +index=1; \ > +$(foreach ext, $(BR2_EXTERNAL_DIRS), \ > +???? echo "EXTERNAL_$${index}_PATH=$(ext)"; \ > +???? echo "EXTERNAL_$${index}_VERSION=\"$(call setlocalversion,"--unmodify-version", $(ext))\""; \ > +???? index=$$(expr $$index + 1); ) The set of fields in the os-release file is predefined by the spec: ??? https://urldefense.com/v3/__https:/www.freedesktop.org/software/systemd/man/os-release.html__;!!Po4YltK3bPMkYw!gJ8RpNC2442nn2dlFXtaaPWmgtb78Sfin82rlcGqrPl8D6ajSpImfMJ2JI9g3iGNiZcEiyHb$ Extensions are allowed, but "[i]t is highly recommended to prefix new fields with an OS specific name in order to avoid name clashes". In our case, that prefix would probably have to be 'BR2_EXTERNAL_'. Still, I am not 100% sure we want that... What would be the use-case to have the versions of all br2-external trees? Usually, there is a "main" repository, which has buildroot and all br2-external trees as sub-modules, or in a manifest file. The version of that "main: repo is then sufficient to derive the versions of all the others. In which case it would be simple to provide a post-build script that basically echoes that version in os-release. If you can come up with a good commit log that makes a point that the versions of all br2-external trees is important, I would not mind having it too much either. Ergo, at your keyboard, and go for some poesy. ;-) [--SNIP--] > diff --git a/support/scripts/setlocalversion b/support/scripts/setlocalversion index b39b751f03..459b4765fa 100755 > --- a/support/scripts/setlocalversion > +++ b/support/scripts/setlocalversion > @@ -10,10 +10,16 @@ >? # >? >? usage() { > -???? echo "Usage: $0 [srctree]" >&2 > +???? echo "Usage: $0 [--unmodify-version] [srctree]" >&2 What is the purpose of this new option? You need to explain it in the commit log, and a comment in the script would bbe nice too. >??????? exit 1 >? } >? > +original_ver=false > +if test "$1" = "--unmodify-version"; then > +???? original_ver=true > +???? shift > +fi > + >? cd "${1:-.}" || usage >? >? # Check for git and a git repo. > @@ -26,8 +32,11 @@ if head=`git rev-parse --verify --short HEAD 2>/dev/null`; then >??????????????? # If we are past a tagged commit (like "v2.6.30-rc5-302-g72357d5"), >??????????????? # we pretty print it. >??????????????? if atag="`git describe 2>/dev/null`"; then > -???????????????????? echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' > - > +???????????????????? if $original_ver; then > +???????????????????????????? printf $atag > +???????????????????? else > +???????????????????????????? echo "$atag" | awk -F- '{printf("-%05d-%s", $(NF-1),$(NF))}' > +???????????????????? fi This part of the scripr also changed with commit 98c99556e3e, and so your '--unmodify-version' option is maybe no longer required. I've now marked your patch as "changes requested" in patchwork. Regards, Yann E. MORIN. >??????????????? # If we don't have a tag at all we print -g{commitish}. >??????????????? else >??????????????????????? printf '%s%s' -g $head > -- > 2.17.1 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > https://urldefense.com/v3/__http:/lists.busybox.net/mailman/listinfo/buildroot__;!!Po4YltK3bPMkYw!gJ8RpNC2442nn2dlFXtaaPWmgtb78Sfin82rlcGqrPl8D6ajSpImfMJ2JI9g3iGNiSQh4ynY$ -- .-----------------.--------------------.------------------.--------------------. |? Yann E. MORIN? | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software? Designer | \ / CAMPAIGN???? |? ___?????????????? | | +33 561 099 427 `------------.-------:? X? AGAINST????? |? \e/? There is no? | | https://urldefense.com/v3/__http:/ymorin.is-a-geek.org/__;!!Po4YltK3bPMkYw!gJ8RpNC2442nn2dlFXtaaPWmgtb78Sfin82rlcGqrPl8D6ajSpImfMJ2JI9g3iGNiXnpP7mO$? | _/*\_ | / \ HTML MAIL??? |?? v?? conspiracy.? | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-10-02 13:07 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <20200917153243.8745-1-etouhtarian@distech-controls.com> 2020-10-01 14:49 ` [Buildroot] TR: [PATCH 1/1] Set external version into os-release Touhtarian, Eric 2020-10-01 20:50 ` Yann E. MORIN 2020-10-02 13:07 ` Touhtarian, Eric
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.