On Thu, Sep 13, 2018 at 3:39 PM, Fabiano Fidêncio <[email protected]> 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 <[email protected]> > --- > 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@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@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@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@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@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 <[email protected]> > + AuthorDate: Fri Jul 7 13:44:05 2017 +0200 > + Commit: Christophe Fergeau <[email protected]> > + 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 <[email protected]> > + AuthorDate: Thu Aug 3 09:52:08 2017 +0200 > + Commit: Christophe Fergeau <[email protected]> > + 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 <[email protected]> > +AuthorDate: Thu Sep 6 15:30:02 2018 +0200 > +Commit: Fabiano Fidêncio <[email protected]> > +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 <[email protected]> > + Reviewed-by: Cole Robinson <[email protected]> > +--- > + 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 <[email protected]> > +AuthorDate: Thu Sep 6 15:35:12 2018 +0200 > +Commit: Fabiano Fidêncio <[email protected]> > +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 <[email protected]> > + Reviewed-by: Cole Robinson <[email protected]> > +--- > + 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 <[email protected]> > +AuthorDate: Fri Jul 20 09:08:38 2018 +0200 > +Commit: Fabiano Fidêncio <[email protected]> > +CommitDate: Fri Jul 20 11:30:01 2018 +0200 > + > + ubuntu: Add support for Ubuntu18.04 > + > + Reviewed-by: Fabiano Fidêncio <[email protected]> > +--- > + 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 <[email protected]> > +AuthorDate: Fri Jul 20 09:09:01 2018 +0200 > +Commit: Fabiano Fidêncio <[email protected]> > +CommitDate: Fri Jul 20 10:14:10 2018 +0200 > + > + ubuntu: Add test files for Ubuntu18.04 > + > + Reviewed-by: Fabiano Fidêncio <[email protected]> > +--- > + 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 <[email protected]> > +AuthorDate: Fri Sep 7 11:18:19 2018 +0200 > +Commit: Fabiano Fidêncio <[email protected]> > +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 <[email protected]> > + Reviewed-by: Cole Robinson <[email protected]> > +--- > + 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 <[email protected]> > +AuthorDate: Fri Sep 7 11:21:18 2018 +0200 > +Commit: Fabiano Fidêncio <[email protected]> > +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 <[email protected]> > + Reviewed-by: Cole Robinson <[email protected]> > +--- > + 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@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@dahmer osinfo-db]$ export OSINFO_SYSTEM_DIR=$PWD/data > +``` > + > +libosinfo: > +``` > +[fidencio@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
_______________________________________________ Libosinfo mailing list [email protected] https://www.redhat.com/mailman/listinfo/libosinfo
