[Libosinfo] [PATCH osinfo-db] Add a "Contribute" page

Fabiano Fidêncio fidencio at redhat.com
Thu Sep 13 14:36:26 UTC 2018


On Thu, Sep 13, 2018 at 3:39 PM, Fabiano Fidêncio <fidencio at redhat.com>
wrote:

> Let's add some instructions and examples on how to contribute with the
> most basic scenarios of adding an OS info to osinfo-db.
>
> --
> While do think this is useful material to point to newcomers, I'm
> totally fine about having it as a blogpost or somewhere else than our
> git repo.
>
> Also, I do believe that we can start growing the amount of docs/examples
> we have and that it can help people to start helping us with some basic
> patches of their favourite distro.
>
> I'm looking forward to receiving some feedback about this and
> suggestions on how this could be done better. :-)
> --
>
> Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> ---
>  CONTRIBUTE.md | 930 ++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 930 insertions(+)
>  create mode 100644 CONTRIBUTE.md
>
> diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md
> new file mode 100644
> index 0000000..f6d5790
> --- /dev/null
> +++ b/CONTRIBUTE.md
> @@ -0,0 +1,930 @@
> +# The OSes XML structure
> +Firstly, let's start saying that OSes data are stored under
> +`data/os/distributor` folder, where "distributor" should be named
> +accordingly to the project's name.
> +
> +For instance, the current (by the time this document was written)
> +"distributors" are:
> +```
> +  [fidencio at dahmer osinfo-db]$ ls data/os/
> +  alpinelinux.org  centos.org        endlessos.com      gnome.org
> microsoft.com  opensuse.org  suse.com
> +  altlinux.org     cirros-cloud.net  fedoraproject.org  haiku-os.org
> netbsd.org     oracle.com    system76.com
> +  apple.com        debian.org        freebsd.org        mageia.org
> novell.com     redhat.com    ubuntu.com
> +  asianux.com      dragonflybsd.org  freedos.org        mandriva.com
> openbsd.org    sun.com
> +```
> +
> +Under each "distributor" folder contains the OSes and each version of the
> OS
> +has its own data file:
> +```
> +  [fidencio at dahmer osinfo-db]$ ls data/os/fedoraproject.org/
> +  fedora-10.xml.in  fedora-15.xml.in  fedora-1.xml.in   fedora-24.xml.in
> fedora-2.xml.in  fedora-7.xml.in
> +  fedora-11.xml.in  fedora-16.xml.in  fedora-20.xml.in  fedora-25.xml.in
> fedora-3.xml.in  fedora-8.xml.in
> +  fedora-12.xml.in  fedora-17.xml.in  fedora-21.xml.in  fedora-26.xml.in
> fedora-4.xml.in  fedora-9.xml.in
> +  fedora-13.xml.in  fedora-18.xml.in  fedora-22.xml.in  fedora-27.xml.in
> fedora-5.xml.in  fedora-unknown.xml.in
> +  fedora-14.xml.in  fedora-19.xml.in  fedora-23.xml.in  fedora-28.xml.in
> fedora-6.xml.in  silverblue-28.xml.in
> +```
> +
> +Each OS may contain a list of supported devices, as seen in the
> +fedora-24.xml.in:
> +```
> +   <devices>
> +     <device id="http://pcisig.com/pci/1af4/1050"/> <!-- virtio1.0-gpu
> -->
> +   </devices>
> +```
> +
> +The full list of devices can be find at `data/devices` and is seperated
> by the
> +devices' vendors. Covering the addition of new devices is not in the
> scope of
> +this document, though.
> +
> +Each OS may have support to install-scripts, as seen in the
> fedora-28.xml.in:
> +```
> +  <installer>
> +    <script id='http://fedoraproject.org/fedora/kickstart/jeos'/>
> +    <script id='http://fedoraproject.org/fedora/kickstart/desktop'/>
> +  </installer>
> +```
> +
> +The full list of install-scripts can be find at `data/install-script/`
> and is
> +separated by "distributor" (in the same way as the OS data).
> +
> +The install-script is divided in two categories:
> +- jeos: which stands for Just enough OS, that provides a "Minimal"
> +  installation;
> +- desktop: that provides a "Workstation" installation;
> +
> +Although we're not going to cover the addition of new installer scripts in
> +this documment, mind to always test the installation-scripts when
> submitting a
> +new OS that has support to it.
> +
> +Ideally, each OS data comes together with its ISO information which is
> part of
> +libosinfo tests and are stored under `tests/isodata`.
> +In this folder, each "distro" has its own entry:
> +```
> +  [fidencio at dahmer libosinfo]$ ls tests/isodata/
> +  alpinelinux  asianux  debian        fedora   freedos  haiku   netbsd
>  opensuse  rhel  sles    windows
> +  altlinux     centos   dragonflybsd  freebsd  gnome    mageia  openbsd
> popos     sled  ubuntu
> +```
> +
> +And each release of the distro has its own entry following its "short-id"
> name:
> +```
> +  [fidencio at dahmer libosinfo]$ ls tests/isodata/fedora/
> +  fedora1   fedora12  fedora15  fedora18  fedora20  fedora23  fedora26
> fedora3  fedora6  fedora9
> +  fedora10  fedora13  fedora16  fedora19  fedora21  fedora24  fedora27
> fedora4  fedora7  silverblue28
> +  fedora11  fedora14  fedora17  fedora2   fedora22  fedora25  fedora28
> fedora5  fedora8
> +```
> +
> +And for each release, ideally, all ISOs released are added to our tests:
> +```
> +  [fidencio at dahmer libosinfo]$ ls tests/isodata/fedora/fedora28/
> +  Fedora-Server-dvd-x86_64-28-1.1.iso.txt  Fedora-Server-netinst-x86_64-28-1.1.iso.txt
> Fedora-Workstation-Live-x86_64-28-1.1.iso.txt
> +```
> +
> +These "isodata" files are the output of `isodetect -d -i
> /path/to/the/iso`.
> +
> +With this basic knowledge in mind, let's cover the most 3 basic cases of
> adding
> +new OS content to osinfo-db:
> +- Updating the content of an existent release;
> +- Adding a new release of an existent OS;
> +- Adding a completely new OS;
> +
> +## Updating the content of an existent release
> +Having to update the content of an existent release is a quite common
> case and
> +may happen due to different reasons as, for instance:
> +
> +### Adding the end-of-life of a release
> +  - https://gitlab.com/libosinfo/osinfo-db/commit/
> 12a152b4afc74187b2d040fa38f373cd7e0a17d3
> +```
> +  Refs: v20170423-18-g12a152b
> +  Author:     Pino Toscano <ptoscano at redhat.com>
> +  AuthorDate: Fri Jul 7 13:44:05 2017 +0200
> +  Commit:     Christophe Fergeau <cfergeau at redhat.com>
> +  CommitDate: Thu Aug 3 16:59:07 2017 +0200
> +
> +      ubuntu: add EOL date for 16.10
> +
> +      Source:
> +      https://lists.ubuntu.com/archives/ubuntu-announce/2017-
> July/000222.html
> +  ---
> +   data/os/ubuntu.com/ubuntu-16.10.xml.in | 1 +
> +   1 file changed, 1 insertion(+)
> +
> +  diff --git a/data/os/ubuntu.com/ubuntu-16.10.xml.in b/data/os/
> ubuntu.com/ubuntu-16.10.xml.in
> +  index 8e0ad1c..9557340 100644
> +  --- a/data/os/ubuntu.com/ubuntu-16.10.xml.in
> +  +++ b/data/os/ubuntu.com/ubuntu-16.10.xml.in
> +  @@ -14,6 +14,7 @@
> +       <derives-from id="http://ubuntu.com/ubuntu/16.04"/>
> +
> +       <release-date>2016-10-13</release-date>
> +  +    <eol-date>2017-07-20</eol-date>
> +
> +       <resources arch="all">
> +         <minimum>
> +```
> +
> +  - https://gitlab.com/libosinfo/osinfo-db/commit/
> a9a1909e40d9051726cdd97b7130960d7cc350a0
> +```
> +  Refs: v20170423-17-ga9a1909
> +  Author:     Pino Toscano <ptoscano at redhat.com>
> +  AuthorDate: Thu Aug 3 09:52:08 2017 +0200
> +  Commit:     Christophe Fergeau <cfergeau at redhat.com>
> +  CommitDate: Thu Aug 3 16:59:07 2017 +0200
> +
> +      ubuntu: fix 16.10 locations
> +
> +      Ubuntu 16.10 is EOL, so switch to the archive for old releases
> +  ---
> +   data/os/ubuntu.com/ubuntu-16.10.xml.in | 16 ++++++++--------
> +   1 file changed, 8 insertions(+), 8 deletions(-)
> +
> +  diff --git a/data/os/ubuntu.com/ubuntu-16.10.xml.in b/data/os/
> ubuntu.com/ubuntu-16.10.xml.in
> +  index bea4182..8e0ad1c 100644
> +  --- a/data/os/ubuntu.com/ubuntu-16.10.xml.in
> +  +++ b/data/os/ubuntu.com/ubuntu-16.10.xml.in
> +  @@ -30,7 +30,7 @@
> +       </resources>
> +
> +       <media arch="i686">
> +  -      <url>http://releases.ubuntu.com/releases/yakkety/ubuntu-
> 16.10-server-i386.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-server-i386.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu-Server 16.10(.\d)? i386</volume-id>
> +         </iso>
> +  @@ -38,7 +38,7 @@
> +         <initrd>install/initrd.gz</initrd>
> +       </media>
> +       <media arch="x86_64">
> +  -      <url>http://releases.ubuntu.com/releases/yakkety/ubuntu-
> 16.10-server-amd64.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-server-amd64.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu-Server 16.10(.\d)? amd64</volume-id>
> +         </iso>
> +  @@ -46,7 +46,7 @@
> +         <initrd>install/initrd.gz</initrd>
> +       </media>
> +       <media arch="i686" live="true">
> +  -      <url>http://releases.ubuntu.com/releases/yakkety/ubuntu-
> 16.10-desktop-i386.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-desktop-i386.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu 16.10(.\d)? i386</volume-id>
> +         </iso>
> +  @@ -54,7 +54,7 @@
> +         <initrd>casper/initrd.lz</initrd>
> +       </media>
> +       <media arch="x86_64" live="true">
> +  -      <url>http://releases.ubuntu.com/releases/yakkety/ubuntu-
> 16.10-desktop-amd64.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-desktop-amd64.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu 16.10(.\d)? amd64</volume-id>
> +         </iso>
> +  @@ -62,25 +62,25 @@
> +         <initrd>casper/initrd.lz</initrd>
> +       </media>
> +       <media arch="aarch64">
> +  -      <url>http://cdimage.ubuntu.com/releases/yakkety/release/
> ubuntu-16.10-server-arm64.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-server-arm64.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu-Server 16.10(.\d)? arm64</volume-id>
> +         </iso>
> +       </media>
> +       <media arch="ppc">
> +  -      <url>http://cdimage.ubuntu.com/releases/yakkety/release/
> ubuntu-16.10-server-powerpc.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-server-powerpc.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu-Server 16.10(.\d)? ppc</volume-id>
> +         </iso>
> +       </media>
> +       <media arch="ppc64le">
> +  -      <url>http://cdimage.ubuntu.com/releases/yakkety/release/
> ubuntu-16.10-server-ppc64el.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-server-ppc64el.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu-Server 16.10(.\d)? ppc64</volume-id>
> +         </iso>
> +       </media>
> +       <media arch="s390x">
> +  -      <url>http://cdimage.ubuntu.com/releases/yakkety/release/
> ubuntu-16.10-server-s390x.iso</url>
> +  +      <url>http://old-releases.ubuntu.com/releases/yakkety/
> ubuntu-16.10-server-s390x.iso</url>
> +         <iso>
> +           <volume-id>Ubuntu-Server 16.10(.\d)? s390x</volume-id>
> +         </iso>
> +```
> +
> +### Adding an ISO that is not yet recognized
> +  This is a common case, mainly related to Windows ISOs and the more
> efficient
> +  way to either provide a patch or a good bug report is to, as the first
> thing,
> +  run `isoinfo -d -i /path/to/the/iso` and provide us its output. The
> output
> +  contains the volume-id of the iso, as shown here (from a Windows 10 LTSB
> +  Evaluation version):
> +```
> +  ...
> +  Volume id: CESE_X64FREE_EN-US_DV5
> +  ...
> +```
> +
> +  The volume-id has then to be added to the specific OS data and the
> isoinfo
> +  output has to be added to our tests.
> +  Take a look on the following two commits as example:
> +  - https://gitlab.com/libosinfo/osinfo-db/commit/
> 552bba12dcfe39e6b7734333d8373338b9261e50
> +```
> +Refs: v20180903-8-g552bba1
> +Author:     Fabiano Fidêncio <fidencio at redhat.com>
> +AuthorDate: Thu Sep 6 15:30:02 2018 +0200
> +Commit:     Fabiano Fidêncio <fidencio at redhat.com>
> +CommitDate: Fri Sep 7 09:20:05 2018 +0200
> +
> +    win10: Add LTSB Evaluation media info
> +
> +    https://bugzilla.redhat.com/show_bug.cgi?id=1139394
> +
> +    Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> +    Reviewed-by: Cole Robinson <crobinso at redhat.com>
> +---
> + data/os/microsoft.com/win-10.xml.in | 21 +++++++++++++++++++++
> + 1 file changed, 21 insertions(+)
> +
> +diff --git a/data/os/microsoft.com/win-10.xml.in b/data/os/
> microsoft.com/win-10.xml.in
> +index 737f6ce..32a581c 100644
> +--- a/data/os/microsoft.com/win-10.xml.in
> ++++ b/data/os/microsoft.com/win-10.xml.in
> +@@ -22,6 +22,9 @@
> +     <variant id="enterprise-ltsb">
> +       <_name>Microsoft Windows 10 Enterprise (Long Term Servicing
> Branch)</_name>
> +     </variant>
> ++    <variant id="enterprise-ltsb-eval">
> ++      <_name>Microsoft Windows 10 Enterprise (Long Term Servicing
> Branch) Evaluation</_name>
> ++    </variant>
> +
> +     <!-- Education -->
> +     <media arch="i686">
> +@@ -77,6 +80,24 @@
> +       </iso>
> +     </media>
> +
> ++    <!-- Enterprise LTSB (Eval) -->
> ++    <media arch="i686">
> ++      <variant id="enterprise-ltsb-eval"/>
> ++      <iso>
> ++        <volume-id>CESE_X86FREE_</volume-id>
> ++        <publisher-id>MICROSOFT CORPORATION</publisher-id>
> ++        <l10n-language regex="true" l10n-language-map="http://
> microsoft.com/win/8/l10n-language">[[:upper:][:digit:]_
> ]*_([[:upper:]]*-[[:upper:]]*)</l10n
> ++      </iso>
> ++    </media>
> ++    <media arch="x86_64">
> ++      <variant id="enterprise-ltsb-eval"/>
> ++      <iso>
> ++        <volume-id>CESE_X64FREE_</volume-id>
> ++        <publisher-id>MICROSOFT CORPORATION</publisher-id>
> ++        <l10n-language regex="true" l10n-language-map="http://
> microsoft.com/win/8/l10n-language">[[:upper:][:digit:]_
> ]*_([[:upper:]]*-[[:upper:]]*)</l10n
> ++      </iso>
> ++    </media>
> ++
> +     <!-- No Variant -->
> +     <media arch="i686">
> +       <iso>
> +```
> +  - https://gitlab.com/libosinfo/libosinfo/commit/
> 857f503f4bcd33169db8b0b5818343269e71547f
> +```
> +Refs: v1.2.0-18-g857f503
> +Author:     Fabiano Fidêncio <fidencio at redhat.com>
> +AuthorDate: Thu Sep 6 15:35:12 2018 +0200
> +Commit:     Fabiano Fidêncio <fidencio at redhat.com>
> +CommitDate: Fri Sep 7 09:16:32 2018 +0200
> +
> +    win10: Add LTSB Evaluation isodata
> +
> +    https://bugzilla.redhat.com/show_bug.cgi?id=1139394
> +
> +    Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> +    Reviewed-by: Cole Robinson <crobinso at redhat.com>
> +---
> + tests/isodata/windows/win10/14393.0.160715-1616.RS1_
> RELEASE_CLIENTENTERPRISE_S_EVAL_X64FRE_EN-US.ISO.txt | 29
> +++++++++++++++++++++++++++++
> + tests/isodata/windows/win10/14393.0.160715-1616.RS1_
> RELEASE_CLIENTENTERPRISE_S_EVAL_X86FRE_EN-GB.ISO.txt | 29
> +++++++++++++++++++++++++++++
> + 2 files changed, 58 insertions(+)
> +
> +diff --git a/tests/isodata/windows/win10/14393.0.160715-1616.RS1_
> RELEASE_CLIENTENTERPRISE_S_EVAL_X64FRE_EN-US.ISO.txt
> b/tests/isodata/windows/win10/14393.
> +new file mode 100644
> +index 0000000..ca9c035
> +--- /dev/null
> ++++ b/tests/isodata/windows/win10/14393.0.160715-1616.RS1_
> RELEASE_CLIENTENTERPRISE_S_EVAL_X64FRE_EN-US.ISO.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id:
> ++Volume id: CESE_X64FREE_EN-US_DV5
> ++Volume set id: CESE_X64FREE_EN-US_DV5
> ++Publisher id: MICROSOFT CORPORATION
> ++Data preparer id: MICROSOFT CORPORATION, ONE MICROSOFT WAY, REDMOND WA
> 98052, (425) 882-8080
> ++Application id: CDIMAGE 2.56 (01/01/2005 TM)
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 1746893
> ++El Torito VD version 1 found, boot catalog is in sector 22
> ++NO Joliet present
> ++NO Rock Ridge present
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 0 (x86)
> ++    ID 'Microsoft Corporation'
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 0 (No Emulation Boot)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect 8
> ++        Bootoff 21B 539
> +diff --git a/tests/isodata/windows/win10/14393.0.160715-1616.RS1_
> RELEASE_CLIENTENTERPRISE_S_EVAL_X86FRE_EN-GB.ISO.txt
> b/tests/isodata/windows/win10/14393.
> +new file mode 100644
> +index 0000000..139c19f
> +--- /dev/null
> ++++ b/tests/isodata/windows/win10/14393.0.160715-1616.RS1_
> RELEASE_CLIENTENTERPRISE_S_EVAL_X86FRE_EN-GB.ISO.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id:
> ++Volume id: CESE_X86FREE_EN-GB_DV5
> ++Volume set id: CESE_X86FREE_EN-GB_DV5
> ++Publisher id: MICROSOFT CORPORATION
> ++Data preparer id: MICROSOFT CORPORATION, ONE MICROSOFT WAY, REDMOND WA
> 98052, (425) 882-8080
> ++Application id: CDIMAGE 2.56 (01/01/2005 TM)
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 1288647
> ++El Torito VD version 1 found, boot catalog is in sector 22
> ++NO Joliet present
> ++NO Rock Ridge present
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 0 (x86)
> ++    ID 'Microsoft Corporation'
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 0 (No Emulation Boot)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect 8
> ++        Bootoff 219 537
> +```
> +
> +## Adding a new release of an existent OS
> +This is the most common case for submitting patches to the osinfo-db
> project
> +and happens whenever a new release is out.
> +
> +It tends to be quite straightforward to do so as it's pretty much a copy
> aad
> +past of the XML of the previous release. Here's one example of an addition
> +of a new release:
> +- https://gitlab.com/libosinfo/osinfo-db/commit/
> b4ce277defb7085350c5ee73ec62ba37728fde8b
> +```
> +Refs: <v20180720>
> +Author:     Věra Cholasta <vbudikov at redhat.com>
> +AuthorDate: Fri Jul 20 09:08:38 2018 +0200
> +Commit:     Fabiano Fidêncio <fabiano at fidencio.org>
> +CommitDate: Fri Jul 20 11:30:01 2018 +0200
> +
> +    ubuntu: Add support for Ubuntu18.04
> +
> +    Reviewed-by: Fabiano Fidêncio <fabiano at fidencio.org>
> +---
> + data/os/ubuntu.com/ubuntu-18.04.xml.in | 72
> ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
> + 1 file changed, 72 insertions(+)
> +
> +diff --git a/data/os/ubuntu.com/ubuntu-18.04.xml.in b/data/os/
> ubuntu.com/ubuntu-18.04.xml.in
> +new file mode 100644
> +index 0000000..ad13360
> +--- /dev/null
> ++++ b/data/os/ubuntu.com/ubuntu-18.04.xml.in
> +@@ -0,0 +1,72 @@
> ++<?xml version="1.0" encoding="UTF-8"?>
> ++<libosinfo version="0.0.1">
> ++<!-- Licensed under the GNU General Public License version 2 or later.
> ++     See http://www.gnu.org/licenses/ for a copy of the license text -->
> ++  <os id="http://ubuntu.com/ubuntu/18.04">
> ++    <short-id>ubuntu18.04</short-id>
> ++    <short-id>ubuntubionic</short-id>
> ++    <_name>Ubuntu 18.04 LTS</_name>
> ++    <version>18.04</version>
> ++    <_vendor>Canonical Ltd</_vendor>
> ++    <family>linux</family>
> ++    <distro>ubuntu</distro>
> ++    <codename>Bionic Beaver</codename>
> ++    <upgrades id="http://ubuntu.com/ubuntu/17.10"/>
> ++    <derives-from id="http://ubuntu.com/ubuntu/17.10"/>
> ++
> ++    <release-date>2018-04-26</release-date>
> ++
> ++    <resources arch="all">
> ++      <minimum>
> ++        <cpu>1000000000</cpu>
> ++        <n-cpus>1</n-cpus>
> ++        <ram>1073741824</ram>
> ++        <storage>5368709120</storage>
> ++      </minimum>
> ++      <recommended>
> ++        <cpu>1000000000</cpu>
> ++        <ram>1073741824</ram>
> ++        <storage>16106127360</storage>
> ++      </recommended>
> ++    </resources>
> ++
> ++    <media arch="x86_64">
> ++      <url>http://cdimage.ubuntu.com/releases/18.04/release/
> ubuntu-18.04-server-amd64.iso</url>
> ++      <iso>
> ++        <volume-id>Ubuntu-Server 18.04(.\d)? LTS amd64</volume-id>
> ++      </iso>
> ++      <kernel>install/vmlinuz</kernel>
> ++      <initrd>install/initrd.gz</initrd>
> ++    </media>
> ++    <media arch="x86_64" live="true">
> ++      <url>http://releases.ubuntu.com/releases/bionic/ubuntu-18.
> 04-desktop-amd64.iso</url>
> ++      <iso>
> ++        <volume-id>Ubuntu 18.04(.\d)? LTS amd64</volume-id>
> ++      </iso>
> ++      <kernel>casper/vmlinuz</kernel>
> ++      <initrd>casper/initrd.lz</initrd>
> ++    </media>
> ++    <media arch="aarch64">
> ++      <url>http://cdimage.ubuntu.com/releases/18.04/release/
> ubuntu-18.04-server-arm64.iso</url>
> ++      <iso>
> ++        <volume-id>Ubuntu-Server 18.04(.\d)? LTS arm64</volume-id>
> ++      </iso>
> ++    </media>
> ++    <media arch="ppc64le">
> ++      <url>http://cdimage.ubuntu.com/releases/18.04/release/
> ubuntu-18.04-server-ppc64el.iso</url>
> ++      <iso>
> ++        <volume-id>Ubuntu-Server 18.04(.\d)? LTS ppc64</volume-id>
> ++      </iso>
> ++    </media>
> ++    <media arch="s390x">
> ++      <url>http://cdimage.ubuntu.com/releases/18.04/release/
> ubuntu-18.04-server-s390x.iso</url>
> ++      <iso>
> ++        <volume-id>Ubuntu-Server 18.04(.\d)? LTS s390x</volume-id>
> ++      </iso>
> ++    </media>
> ++
> ++    <installer>
> ++      <script id='http://ubuntu.com/ubuntu/preseed/jeos'/>
> ++    </installer>
> ++  </os>
> ++</libosinfo>
> +```
> +- https://gitlab.com/libosinfo/libosinfo/commit/
> 91e9e7ccc6588021a220d4cdaa6f832935b35124
> +```
> +Refs: v1.2.0-7-g91e9e7c
> +Author:     Věra Cholasta <vbudikov at redhat.com>
> +AuthorDate: Fri Jul 20 09:09:01 2018 +0200
> +Commit:     Fabiano Fidêncio <fabiano at fidencio.org>
> +CommitDate: Fri Jul 20 10:14:10 2018 +0200
> +
> +    ubuntu: Add test files for Ubuntu18.04
> +
> +    Reviewed-by: Fabiano Fidêncio <fabiano at fidencio.org>
> +---
> + tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-desktop-amd64.iso.txt  |
> 29 +++++++++++++++++++++++++++++
> + tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-amd64.iso.txt   |
> 29 +++++++++++++++++++++++++++++
> + tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-arm64.iso.txt   |
> 29 +++++++++++++++++++++++++++++
> + tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-ppc64el.iso.txt |
> 17 +++++++++++++++++
> + tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-s390x.iso.txt   |
> 29 +++++++++++++++++++++++++++++
> + 5 files changed, 133 insertions(+)
> +
> +diff --git a/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-desktop-amd64.iso.txt
> b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-desktop-amd64.iso.txt
> +new file mode 100644
> +index 0000000..025620f
> +--- /dev/null
> ++++ b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-desktop-amd64.iso.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id:
> ++Volume id: Ubuntu 18.04 LTS amd64
> ++Volume set id:
> ++Publisher id:
> ++Data preparer id: XORRISO-1.2.4 2012.07.20.130001, LIBISOBURN-1.2.4,
> LIBISOFS-1.2.4, LIBBURN-1.2.4
> ++Application id:
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 938400
> ++El Torito VD version 1 found, boot catalog is in sector 201
> ++Joliet with UCS level 3 found
> ++Rock Ridge signatures version 1 found
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 0 (x86)
> ++    ID ''
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 0 (No Emulation Boot)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect 4
> ++        Bootoff DFC5B 916571
> +diff --git a/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-amd64.iso.txt
> b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-amd64.iso.txt
> +new file mode 100644
> +index 0000000..124804d
> +--- /dev/null
> ++++ b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-amd64.iso.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id:
> ++Volume id: Ubuntu-Server 18.04 LTS amd64
> ++Volume set id:
> ++Publisher id:
> ++Data preparer id: XORRISO-1.2.4 2012.07.20.130001, LIBISOBURN-1.2.4,
> LIBISOFS-1.2.4, LIBBURN-1.2.4
> ++Application id:
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 360448
> ++El Torito VD version 1 found, boot catalog is in sector 2110
> ++Joliet with UCS level 3 found
> ++Rock Ridge signatures version 1 found
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 0 (x86)
> ++    ID ''
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 0 (No Emulation Boot)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect 4
> ++        Bootoff D100 53504
> +diff --git a/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-arm64.iso.txt
> b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-arm64.iso.txt
> +new file mode 100644
> +index 0000000..ce42a5e
> +--- /dev/null
> ++++ b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-arm64.iso.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id:
> ++Volume id: Ubuntu-Server 18.04 LTS arm64
> ++Volume set id:
> ++Publisher id:
> ++Data preparer id: XORRISO-1.2.4 2012.07.20.130001, LIBISOBURN-1.2.4,
> LIBISOFS-1.2.4, LIBBURN-1.2.4
> ++Application id:
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 342740
> ++El Torito VD version 1 found, boot catalog is in sector 3998
> ++Joliet with UCS level 3 found
> ++Rock Ridge signatures version 1 found
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 239 (Unknown Arch)
> ++    ID ''
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 0 (No Emulation Boot)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect 380
> ++        Bootoff 182AF 98991
> +diff --git a/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-ppc64el.iso.txt
> b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-ppc64el.iso.txt
> +new file mode 100644
> +index 0000000..d7c9249
> +--- /dev/null
> ++++ b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-
> server-ppc64el.iso.txt
> +@@ -0,0 +1,17 @@
> ++CD-ROM is in ISO 9660 format
> ++System id: LINUX
> ++Volume id: Ubuntu-Server 18.04 LTS ppc64
> ++Volume set id:
> ++Publisher id:
> ++Data preparer id:
> ++Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993
> E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 377082
> ++CD-ROM uses ISO 9660:1999 relaxed format
> ++NO Joliet present
> ++Rock Ridge signatures version 1 found
> +diff --git a/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-s390x.iso.txt
> b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-s390x.iso.txt
> +new file mode 100644
> +index 0000000..19c702d
> +--- /dev/null
> ++++ b/tests/isodata/ubuntu/ubuntu18.04/ubuntu-18.04-server-s390x.iso.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id: LINUX
> ++Volume id: Ubuntu-Server 18.04 LTS s390x
> ++Volume set id:
> ++Publisher id:
> ++Data preparer id:
> ++Application id: GENISOIMAGE ISO 9660/HFS FILESYSTEM CREATOR (C) 1993
> E.YOUNGDALE (C) 1997-2006 J.PEARSON/J.SCHILLING (C) 2006-2007 CDRKIT TEAM
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 289280
> ++El Torito VD version 1 found, boot catalog is in sector 1934
> ++Joliet with UCS level 3 found
> ++Rock Ridge signatures version 1 found
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 0 (x86)
> ++    ID ''
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 0 (No Emulation Boot)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect FFFFE610
> ++        Bootoff 78F 1935
> +```
> +
> +### ISOs with the same volume-id
> +Please, mind that there are cases where the ISOs will have exactly the
> same
> +"volume-id" and it's actually a quite common case.
> +Let's take, for instance, the NetBSD 8.0 media info:
> +- https://gitlab.com/libosinfo/osinfo-db/blob/wip/contribute/
> data/os/netbsd.org/netbsd-8.0.xml.in
> +```
> +<libosinfo version="0.0.1">
> +
> +  <os id="http://netbsd.org/netbsd/8.0">
> +    <short-id>netbsd8.0</short-id>
> +    <_name>NetBSD 8.0</_name>
> +    <version>8.0</version>
> +    <_vendor>NetBSD Project</_vendor>
> +    <family>netbsd</family>
> +    <distro>netbsd</distro>
> +    <upgrades id="http://netbsd.org/netbsd/7.1.2"/>
> +    <derives-from id="http://netbsd.org/netbsd/7.1.2"/>
> +
> +    <release-date>2018-07-17</release-date>
> +
> +    <media arch="x86_64">
> +      <url>https://cdn.netbsd.org/pub/NetBSD/NetBSD-8.0/images/
> NetBSD-8.0-amd64.iso</url>
> +      <iso>
> +        <system-id>NetBSD</system-id>
> +        <volume-id>NETBSD_80</volume-id>
> +        <volume-size>750526464</volume-size>
> +      </iso>
> +    </media>
> +    ...
> +    <media arch="i686">
> +      <url>https://cdn.netbsd.org/pub/NetBSD/NetBSD-8.0/images/
> NetBSD-8.0-i386.iso</url>
> +      <iso>
> +        <system-id>NetBSD</system-id>
> +        <volume-id>NETBSD_80</volume-id>
> +        <volume-size>709455872</volume-size>
> +      </iso>
> +    </media>
> +    ...
> +  </os>
> +</libosinfo>
> +
> +```
> +There you can see that the volume-id is the same (NETBSD_80) for all the
> ISOs
> +provided by the distro.
> +When dealing with those cases, the path taken to differentiate the ISOs
> is by
> +their volume-size, which os part of the <iso> section. Let's take a look
> on
> +those ISOs' info to understand how the volume-size has been calculated.
> +- https://gitlab.com/libosinfo/libosinfo/blob/master/tests/
> isodata/netbsd/netbsd8.0/NetBSD-8.0-amd64.iso.txt
> +```
> +Setting input-charset to 'UTF-8' from locale.
> +CD-ROM is in ISO 9660 format
> +System id: NetBSD
> +Volume id: NETBSD_80
> +Volume set id:
> +Publisher id: THE_NETBSD_PROJECT
> +Data preparer id:
> +Application id:
> +Copyright File id:
> +Abstract File id:
> +Bibliographic File id:
> +Volume set size is: 1
> +Volume set sequence number is: 1
> +Logical block size is: 2048
> +Volume size is: 366468
> +El Torito VD version 1 found, boot catalog is in sector 19
> +NO Joliet present
> +
> +SUSP signatures version 1 found
> +Rock Ridge signatures version 1 found
> +Rock Ridge id 'IEEE_P1282'
> +Eltorito validation header:
> +    Hid 1
> +    Arch 0 (x86)
> +    ID ''
> +    Cksum AA 55 OK
> +    Key 55 AA
> +    Eltorito defaultboot header:
> +        Bootid 88 (bootable)
> +        Boot media 0 (No Emulation Boot)
> +        Load segment 0
> +        Sys type 0
> +        Nsect 4
> +        Bootoff 214 532
> +```
> +The volume size of this ISO is its logical block size (2048)  multiplied
> by its
> +volume size (366468): 2048 x 366468 = 750526464.
> +
> +- https://gitlab.com/libosinfo/libosinfo/blob/master/tests/
> isodata/netbsd/netbsd8.0/NetBSD-8.0-i386.iso.txt
> +```
> +Setting input-charset to 'UTF-8' from locale.
> +CD-ROM is in ISO 9660 format
> +System id: NetBSD
> +Volume id: NETBSD_80
> +Volume set id:
> +Publisher id: THE_NETBSD_PROJECT
> +Data preparer id:
> +Application id:
> +Copyright File id:
> +Abstract File id:
> +Bibliographic File id:
> +Volume set size is: 1
> +Volume set sequence number is: 1
> +Logical block size is: 2048
> +Volume size is: 346414
> +El Torito VD version 1 found, boot catalog is in sector 19
> +NO Joliet present
> +
> +SUSP signatures version 1 found
> +Rock Ridge signatures version 1 found
> +Rock Ridge id 'IEEE_P1282'
> +Eltorito validation header:
> +    Hid 1
> +    Arch 0 (x86)
> +    ID ''
> +    Cksum AA 55 OK
> +    Key 55 AA
> +    Eltorito defaultboot header:
> +        Bootid 88 (bootable)
> +        Boot media 0 (No Emulation Boot)
> +        Load segment 0
> +        Sys type 0
> +        Nsect 4
> +        Bootoff 14 20
> +```
> +The volume size of this ISO is its logical block size (2048) multiplied
> by its
> +volume size (346414): 2048 x 346414 = 709455872.
> +
> +## Adding a completely new OS
> +Adding a completely new OS is not that different than adding the info of
> a new
> +release of an existent OS.
> +
> +The main difference is that the "distributor" folder will have to be
> created on
> +osinfo-db side and the "distro" and "short-id" folders will have to be
> created
> +on libosinfo side.
> +
> +Here's an example of a new addition to the osinfo-db:
> +- https://gitlab.com/libosinfo/osinfo-db/commit/
> 3abb6f27337ddac627dd7cb217d5a3515487204b
> +```
> +Refs: v20180903-19-g3abb6f2
> +Author:     Fabiano Fidêncio <fidencio at redhat.com>
> +AuthorDate: Fri Sep 7 11:18:19 2018 +0200
> +Commit:     Fabiano Fidêncio <fidencio at redhat.com>
> +CommitDate: Tue Sep 11 22:35:30 2018 +0200
> +
> +    haiku: Add R1/Alpha1 media info
> +
> +    The mouse doesn't work at all in R1/Alpha1.
> +
> +    https://bugzilla.redhat.com/show_bug.cgi?id=1092627
> +
> +    Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> +    Reviewed-by: Cole Robinson <crobinso at redhat.com>
> +---
> + data/os/haiku-os.org/haiku-r1alpha1.xml.in | 35
> +++++++++++++++++++++++++++++++++++
> + 1 file changed, 35 insertions(+)
> +
> +diff --git a/data/os/haiku-os.org/haiku-r1alpha1.xml.in b/data/os/
> haiku-os.org/haiku-r1alpha1.xml.in
> +new file mode 100644
> +index 0000000..af9301f
> +--- /dev/null
> ++++ b/data/os/haiku-os.org/haiku-r1alpha1.xml.in
> +@@ -0,0 +1,35 @@
> ++<libosinfo version="0.0.1">
> ++  <os id="http://haiku-os.org/haiku/r1alpha1">
> ++    <short-id>haikur1alpha1</short-id>
> ++    <_name>Haiku R1/Alpha1</_name>
> ++    <version>r1alpha1</version>
> ++    <_vendor>Haiku, Inc.</_vendor>
> ++    <family>beos</family>
> ++    <distro>haiku</distro>
> ++
> ++    <release-date>2009-09-14</release-date>
> ++    <eol-date>2010-05-10</eol-date>
> ++
> ++    <media arch="i686" live="true">
> ++      <iso>
> ++        <volume-id>Haiku</volume-id>
> ++        <system-id>FreeBSD</system-id>
> ++        <volume-size>398305280</volume-size>
> ++      </iso>
> ++    </media>
> ++
> ++    <resources arch="all">
> ++      <minimum>
> ++        <cpu>1000000000</cpu>
> ++        <n-cpus>1</n-cpus>
> ++        <ram>536870912</ram>
> ++        <storage>2147483648</storage>
> ++      </minimum>
> ++      <recommended>
> ++        <cpu>1000000000</cpu>
> ++        <ram>1073741824</ram>
> ++        <storage>4294967296</storage>
> ++      </recommended>
> ++    </resources>
> ++  </os>
> ++</libosinfo>
> +```
> +- https://gitlab.com/libosinfo/libosinfo/commit/
> 08b9785488925e2ee95def6c786c127319573c67
> +```
> +Refs: v1.2.0-31-g08b9785
> +Author:     Fabiano Fidêncio <fidencio at redhat.com>
> +AuthorDate: Fri Sep 7 11:21:18 2018 +0200
> +Commit:     Fabiano Fidêncio <fidencio at redhat.com>
> +CommitDate: Tue Sep 11 22:17:31 2018 +0200
> +
> +    haiku: Add R1/Alpha1 isodata
> +
> +    https://bugzilla.redhat.com/show_bug.cgi?id=1092627
> +
> +    Signed-off-by: Fabiano Fidêncio <fidencio at redhat.com>
> +    Reviewed-by: Cole Robinson <crobinso at redhat.com>
> +---
> + tests/isodata/haiku/haikur1alpha1/haiku-r1alpha1.iso.txt | 29
> +++++++++++++++++++++++++++++
> + 1 file changed, 29 insertions(+)
> +
> +diff --git a/tests/isodata/haiku/haikur1alpha1/haiku-r1alpha1.iso.txt
> b/tests/isodata/haiku/haikur1alpha1/haiku-r1alpha1.iso.txt
> +new file mode 100644
> +index 0000000..805c497
> +--- /dev/null
> ++++ b/tests/isodata/haiku/haikur1alpha1/haiku-r1alpha1.iso.txt
> +@@ -0,0 +1,29 @@
> ++CD-ROM is in ISO 9660 format
> ++System id: FreeBSD
> ++Volume id: Haiku
> ++Volume set id:
> ++Publisher id:
> ++Data preparer id:
> ++Application id: MKISOFS ISO 9660/HFS FILESYSTEM BUILDER & CDRECORD
> CD-R/DVD CREATOR (C) 1993 E.YOUNGDALE (C) 1997 J.PEARSON/J.SCHILLING
> ++Copyright File id:
> ++Abstract File id:
> ++Bibliographic File id:
> ++Volume set size is: 1
> ++Volume set sequence number is: 1
> ++Logical block size is: 2048
> ++Volume size is: 194485
> ++El Torito VD version 1 found, boot catalog is in sector 1607
> ++NO Joliet present
> ++Rock Ridge signatures version 1 found
> ++Eltorito validation header:
> ++    Hid 1
> ++    Arch 0 (x86)
> ++    ID ''
> ++    Key 55 AA
> ++    Eltorito defaultboot header:
> ++        Bootid 88 (bootable)
> ++        Boot media 3 (2.88MB Floppy)
> ++        Load segment 0
> ++        Sys type 0
> ++        Nsect 1
> ++        Bootoff 648 1608
> +```
> +
> +## Ensure that your changes do **not** break the current tests
> +Before submitting a patch, please, do:
> +osinfo-db:
> +```
> +[fidencio at dahmer osinfo-db]$ make
> +  I18N      data/datamap/microsoft.com/win-7-l10n-language.xml
> +  I18N      data/datamap/microsoft.com/win-8-l10n-language-reverse.xml
> +  I18N      data/datamap/microsoft.com/win-8-l10n-
> +  ...
> +[fidencio at dahmer osinfo-db]$ export OSINFO_SYSTEM_DIR=$PWD/data
> +```
> +
> +libosinfo:
> +```
> +[fidencio at dahmer libosinfo]$ make check LIBOSINFO_NETWORK_TESTS=1
> +
> +```
> --
> 2.17.1
>
>
BTW, the rendered page can be seen here:
https://gitlab.com/fidencio/osinfo-db/blob/wip/contribute/CONTRIBUTE.md
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libosinfo/attachments/20180913/98063087/attachment.htm>


More information about the Libosinfo mailing list