* [Buildroot] [PATCH buildroot-test] scripts/autobuild-run: create host-distro file
@ 2020-09-11 12:55 Heiko Thiery
2020-09-11 22:06 ` Yann E. MORIN
0 siblings, 1 reply; 3+ messages in thread
From: Heiko Thiery @ 2020-09-11 12:55 UTC (permalink / raw)
To: buildroot
Sometime autobuilder failures occure only on a specific distribution. To
ease the research for the maintainer/developers add a file with that
information to the result archive.
The distribution information comes from '/etc/os-release' and the
PRETTY_NAME value is used from This file. This seems to be present on
the most common distros:
Debian: https://manpages.debian.org/testing/manpages-de/os-release.5.de.html
Ubuntu: http://manpages.ubuntu.com/manpages/bionic/man5/os-release.5.html
Red Red: https://www.freedesktop.org/software/systemd/man/os-release.html
Open-Suse: https://en.opensuse.org/SDB:Find_openSUSE_version
Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
---
scripts/autobuild-run | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/scripts/autobuild-run b/scripts/autobuild-run
index f657d49..273b7e0 100755
--- a/scripts/autobuild-run
+++ b/scripts/autobuild-run
@@ -699,6 +699,28 @@ class Builder:
with open(os.path.join(self.resultdir, "submitter"), "w+") as submitterf:
submitterf.write(self.submitter)
+ def get_host_distro_info():
+ """Get the host os distribution info.
+
+ Try to get the host os release description from '/etc/os-release'.
+ """
+ try:
+ with open("/etc/os-release") as releasef:
+ regexp = re.compile(r'PRETTY_NAME="(.*)"')
+ for line in releasef.readlines():
+ m = regexp.search(line)
+ if m:
+ return m.group(1)
+ except IOError:
+ pass
+
+ return "unknown"
+
+ host_distro_info = get_host_distro_info()
+
+ with open(os.path.join(self.resultdir, "host-distro"), "w+") as distrof:
+ distrof.write(host_distro_info)
+
# Yes, shutil.make_archive() would be nice, but it doesn't exist
# in Python 2.6.
ret = subprocess.call(["tar", "cjf", "results.tar.bz2", "results"],
--
2.20.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Buildroot] [PATCH buildroot-test] scripts/autobuild-run: create host-distro file
2020-09-11 12:55 [Buildroot] [PATCH buildroot-test] scripts/autobuild-run: create host-distro file Heiko Thiery
@ 2020-09-11 22:06 ` Yann E. MORIN
2020-09-14 12:34 ` Heiko Thiery
0 siblings, 1 reply; 3+ messages in thread
From: Yann E. MORIN @ 2020-09-11 22:06 UTC (permalink / raw)
To: buildroot
Heiko, All,
On 2020-09-11 14:55 +0200, Heiko Thiery spake thusly:
> Sometime autobuilder failures occure only on a specific distribution. To
*occur
> ease the research for the maintainer/developers add a file with that
> information to the result archive.
>
> The distribution information comes from '/etc/os-release' and the
> PRETTY_NAME value is used from This file. This seems to be present on
*this (lower-case)
I think it would be easier to just copy the file.
Also, /etc/os-release may not exist, in which case we should look to the
preferred locaiton, /usr/lib/os-release, something along the lines of:
def get_os_release_path():
for p in ['/etc/os-release', '/usr/lib/os-release']:
if os.path.exists(p):
return p
return None
def save_host_distro_info():
[blurb]
host_distro = os.path.join(self.resultdir, "host-distro")
os_release = get_os_release_path()
if os_release is None:
with open(host_distro, "w") as f:
f.write('Unknown')
else:
shutil.copyfile(so_release, host_distro)
Otherwise, if you have a good argument against the copy and to keep only
PRETTY_NAME, see below...
> the most common distros:
>
> Debian: https://manpages.debian.org/testing/manpages-de/os-release.5.de.html
Could you find an english version, please? My german (the very little I
ever had) is a bit rusted... ;-]
I guess we would use that one, instead:
https://manpages.debian.org/buster/systemd/os-release.5.en.html
> Ubuntu: http://manpages.ubuntu.com/manpages/bionic/man5/os-release.5.html
> Red Red: https://www.freedesktop.org/software/systemd/man/os-release.html
> Open-Suse: https://en.opensuse.org/SDB:Find_openSUSE_version
>
> Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> ---
> scripts/autobuild-run | 22 ++++++++++++++++++++++
> 1 file changed, 22 insertions(+)
>
> diff --git a/scripts/autobuild-run b/scripts/autobuild-run
> index f657d49..273b7e0 100755
> --- a/scripts/autobuild-run
> +++ b/scripts/autobuild-run
> @@ -699,6 +699,28 @@ class Builder:
> with open(os.path.join(self.resultdir, "submitter"), "w+") as submitterf:
> submitterf.write(self.submitter)
>
> + def get_host_distro_info():
> + """Get the host os distribution info.
> +
> + Try to get the host os release description from '/etc/os-release'.
> + """
> + try:
> + with open("/etc/os-release") as releasef:
> + regexp = re.compile(r'PRETTY_NAME="(.*)"')
You should probably anchor PRETTY_NAME at the beginning of the line,
Regards,
Yann E. MORIN.
> + for line in releasef.readlines():
> + m = regexp.search(line)
> + if m:
> + return m.group(1)
> + except IOError:
> + pass
> +
> + return "unknown"
> +
> + host_distro_info = get_host_distro_info()
> +
> + with open(os.path.join(self.resultdir, "host-distro"), "w+") as distrof:
> + distrof.write(host_distro_info)
> +
> # Yes, shutil.make_archive() would be nice, but it doesn't exist
> # in Python 2.6.
> ret = subprocess.call(["tar", "cjf", "results.tar.bz2", "results"],
> --
> 2.20.1
>
--
.-----------------.--------------------.------------------.--------------------.
| 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] [PATCH buildroot-test] scripts/autobuild-run: create host-distro file
2020-09-11 22:06 ` Yann E. MORIN
@ 2020-09-14 12:34 ` Heiko Thiery
0 siblings, 0 replies; 3+ messages in thread
From: Heiko Thiery @ 2020-09-14 12:34 UTC (permalink / raw)
To: buildroot
Hi Yann, All,
Am Sa., 12. Sept. 2020 um 00:06 Uhr schrieb Yann E. MORIN
<yann.morin.1998@free.fr>:
>
> Heiko, All,
>
> On 2020-09-11 14:55 +0200, Heiko Thiery spake thusly:
> > Sometime autobuilder failures occure only on a specific distribution. To
>
> *occur
>
> > ease the research for the maintainer/developers add a file with that
> > information to the result archive.
> >
> > The distribution information comes from '/etc/os-release' and the
> > PRETTY_NAME value is used from This file. This seems to be present on
>
> *this (lower-case)
>
I can fix the misspellings. ;-/
> I think it would be easier to just copy the file.
You mean simply copy the os-release file?
>
> Also, /etc/os-release may not exist, in which case we should look to the
> preferred locaiton, /usr/lib/os-release, something along the lines of:
>
> def get_os_release_path():
> for p in ['/etc/os-release', '/usr/lib/os-release']:
> if os.path.exists(p):
> return p
> return None
>
> def save_host_distro_info():
> [blurb]
> host_distro = os.path.join(self.resultdir, "host-distro")
> os_release = get_os_release_path()
> if os_release is None:
> with open(host_distro, "w") as f:
> f.write('Unknown')
> else:
> shutil.copyfile(so_release, host_distro)
>
> Otherwise, if you have a good argument against the copy and to keep only
> PRETTY_NAME, see below...
Unfortunately I don't have a good argument for that ;-) Maybe we could
add this information to the autobuilder result list. Then it would be
human readable.
> > the most common distros:
> >
> > Debian: https://manpages.debian.org/testing/manpages-de/os-release.5.de.html
>
> Could you find an english version, please? My german (the very little I
> ever had) is a bit rusted... ;-]
Ups .. a good time to start improving it ;-)
> I guess we would use that one, instead:
> https://manpages.debian.org/buster/systemd/os-release.5.en.html
>
> > Ubuntu: http://manpages.ubuntu.com/manpages/bionic/man5/os-release.5.html
> > Red Red: https://www.freedesktop.org/software/systemd/man/os-release.html
> > Open-Suse: https://en.opensuse.org/SDB:Find_openSUSE_version
> >
> > Signed-off-by: Heiko Thiery <heiko.thiery@gmail.com>
> > ---
> > scripts/autobuild-run | 22 ++++++++++++++++++++++
> > 1 file changed, 22 insertions(+)
> >
> > diff --git a/scripts/autobuild-run b/scripts/autobuild-run
> > index f657d49..273b7e0 100755
> > --- a/scripts/autobuild-run
> > +++ b/scripts/autobuild-run
> > @@ -699,6 +699,28 @@ class Builder:
> > with open(os.path.join(self.resultdir, "submitter"), "w+") as submitterf:
> > submitterf.write(self.submitter)
> >
> > + def get_host_distro_info():
> > + """Get the host os distribution info.
> > +
> > + Try to get the host os release description from '/etc/os-release'.
> > + """
> > + try:
> > + with open("/etc/os-release") as releasef:
> > + regexp = re.compile(r'PRETTY_NAME="(.*)"')
>
> You should probably anchor PRETTY_NAME at the beginning of the line,
Can I do when not copying the whole file.
>
> Regards,
> Yann E. MORIN.
>
> > + for line in releasef.readlines():
> > + m = regexp.search(line)
> > + if m:
> > + return m.group(1)
> > + except IOError:
> > + pass
> > +
> > + return "unknown"
> > +
> > + host_distro_info = get_host_distro_info()
> > +
> > + with open(os.path.join(self.resultdir, "host-distro"), "w+") as distrof:
> > + distrof.write(host_distro_info)
> > +
> > # Yes, shutil.make_archive() would be nice, but it doesn't exist
> > # in Python 2.6.
> > ret = subprocess.call(["tar", "cjf", "results.tar.bz2", "results"],
Thanks for the review.
--
Heiko
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-09-14 12:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-09-11 12:55 [Buildroot] [PATCH buildroot-test] scripts/autobuild-run: create host-distro file Heiko Thiery
2020-09-11 22:06 ` Yann E. MORIN
2020-09-14 12:34 ` Heiko Thiery
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox