Blob Blame History Raw
From b29c83584843a1e4081efa8369c66ded142869eb Mon Sep 17 00:00:00 2001
From: Cole Robinson <crobinso@redhat.com>
Date: Sun, 21 Sep 2014 15:41:51 -0400
Subject: [PATCH] fedora: Add F21 info

This is a squash of 4 patches from upstream:

-----------
oses: Add Fedora21

This just adds a plain Fedora21 entry. F21 is going to have different
versions like 'Workstation' and 'Server' but we don't seem to distinguish
for other distros so I just stuck with the pattern here.

This currently doesn't work for detecting Workstation media, since their
volume IDs are truncated. Bug tracking that:

https://bugzilla.redhat.com/show_bug.cgi?id=1145264

-----------
fedora: Mark F21 as released

F21 was release on Dec 3, 2014. Add release date for F21 and update
release status.

-----------
schema: Allow variants for install trees

Allow install trees to be associated with specific variants of the OS.

-----------
fedora: Add/update media & tree info for F21

Fedora now has variants and simply updating the ISO URLs is not a good
way forward. This patch adds information about media/tree of each
variant seperately.

Unfortunately, there is no installer media for Workstation variant and
even though Server netiso is actually generic enough to let user install
Workstation as well, both netiso and full installer ISO have the exact
same volume-id so we can't simply assign netiso a (fake) generic variant
and be done with it. :( For more details:

https://bugzilla.redhat.com/show_bug.cgi?id=1178787

-----------
Allow tree/media elements in any order

Put all child elements for <tree> and <media> inside an
<interleave> to allow them to appear in any order
---
 data/oses/fedora.xml.in                            | 168 ++++++++++++++++++++-
 data/schemas/libosinfo.rng                         |  50 +++---
 .../Fedora-Server-DVD-x86_64-21_Alpha_TC7.iso.txt  |  29 ++++
 3 files changed, 221 insertions(+), 26 deletions(-)
 create mode 100644 test/isodata/fedora/fedora21/Fedora-Server-DVD-x86_64-21_Alpha_TC7.iso.txt

diff --git a/data/oses/fedora.xml.in b/data/oses/fedora.xml.in
index 27cdd4a..0c01ab9 100644
--- a/data/oses/fedora.xml.in
+++ b/data/oses/fedora.xml.in
@@ -1533,6 +1533,161 @@
     </installer>
   </os>
 
+  <os id="http://fedoraproject.org/fedora/21">
+    <short-id>fedora21</short-id>
+    <_name>Fedora 21</_name>
+    <version>21</version>
+    <_vendor>Fedora Project</_vendor>
+    <family>linux</family>
+    <distro>fedora</distro>
+    <upgrades id="http://fedoraproject.org/fedora/20"/>
+    <derives-from id="http://fedoraproject.org/fedora/20"/>
+
+    <release-date>2014-12-03</release-date>
+
+    <variant id="workstation">
+      <_name>Fedora 21 Workstation</_name>
+    </variant>
+    <variant id="server">
+      <_name>Fedora 21 Server</_name>
+    </variant>
+    <variant id="cloud">
+      <_name>Fedora 21 Cloud</_name>
+    </variant>
+
+    <!-- Workstation -->
+
+    <!-- NOTE: There is no installer media for Workstation and even though Server
+               netiso is actually generic enough to let user install
+               Workstation as well, both netiso and full installer ISO have the
+               exact same volume-id so we can't simply assign netiso a (fake)
+               generic variant and be done with it. :( For more details:
+
+              https://bugzilla.redhat.com/show_bug.cgi?id=1178787
+    !-->
+
+    <media arch="i686" live="true">
+      <variant id="workstation"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Workstation/i386/iso/Fedora-Live-Workstation-i686-21-5.iso</url>
+      <iso>
+        <volume-id>Fedora-Live-WS-i686-21.*</volume-id>
+        <system-id>LINUX</system-id>
+      </iso>
+      <kernel>isolinux/vmlinuz0</kernel>
+      <initrd>isolinux/initrd0.img</initrd>
+    </media>
+    <media arch="x86_64" live="true">
+      <variant id="workstation"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Workstation/x86_64/iso/Fedora-Live-Workstation-x86_64-21-5.iso</url>
+      <iso>
+        <volume-id>Fedora-Live-WS-x86_64-21.*</volume-id>
+        <system-id>LINUX</system-id>
+      </iso>
+      <kernel>isolinux/vmlinuz0</kernel>
+      <initrd>isolinux/initrd0.img</initrd>
+    </media>
+
+    <!-- Server -->
+
+    <media arch="i686">
+      <variant id="server"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Server/i386/iso/Fedora-Server-DVD-i386-21.iso</url>
+      <iso>
+        <volume-id>Fedora-S.*21.*-i386</volume-id>
+        <system-id>LINUX</system-id>
+      </iso>
+      <kernel>isolinux/vmlinuz</kernel>
+      <initrd>isolinux/initrd.img</initrd>
+    </media>
+    <media arch="x86_64">
+      <variant id="server"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Server/x86_64/iso/Fedora-Server-DVD-x86_64-21.iso</url>
+      <iso>
+        <volume-id>Fedora-S.*-21.*-x86_64</volume-id>
+        <system-id>LINUX</system-id>
+      </iso>
+      <kernel>isolinux/vmlinuz</kernel>
+      <initrd>isolinux/initrd.img</initrd>
+    </media>
+
+    <tree arch="i686">
+      <variant id="server"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Server/i386/os/</url>
+      <treeinfo>
+        <family>Fedora</family>
+        <version>21</version>
+        <arch>i386</arch>
+      </treeinfo>
+    </tree>
+    <tree arch="x86_64">
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Server/x86_64/os/</url>
+      <variant id="server"/>
+      <treeinfo>
+        <family>Fedora</family>
+        <version>21</version>
+        <arch>x86_64</arch>
+      </treeinfo>
+    </tree>
+
+    <!-- Cloud -->
+
+    <media arch="i686">
+      <variant id="cloud"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Cloud/i386/iso/Fedora-Cloud-netinst-i386-21.iso</url>
+      <iso>
+        <volume-id>Fedora-C.*21.*-i386</volume-id>
+        <system-id>LINUX</system-id>
+      </iso>
+      <kernel>isolinux/vmlinuz</kernel>
+      <initrd>isolinux/initrd.img</initrd>
+    </media>
+    <media arch="x86_64">
+      <variant id="cloud"/>
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Cloud/x86_64/iso/Fedora-Cloud-netinst-x86_64-21.iso</url>
+      <iso>
+        <volume-id>Fedora-C.*-21.*-x86_64</volume-id>
+        <system-id>LINUX</system-id>
+      </iso>
+      <kernel>isolinux/vmlinuz</kernel>
+      <initrd>isolinux/initrd.img</initrd>
+    </media>
+
+    <tree arch="i686">
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Cloud/i386/os/</url>
+      <variant id="cloud"/>
+      <treeinfo>
+        <family>Fedora</family>
+        <version>21</version>
+        <arch>i386</arch>
+      </treeinfo>
+    </tree>
+    <tree arch="x86_64">
+      <url>http://download.fedoraproject.org/pub/fedora/linux/releases/21/Cloud/x86_64/os/</url>
+      <variant id="cloud"/>
+      <treeinfo>
+        <family>Fedora</family>
+        <version>21</version>
+        <arch>x86_64</arch>
+      </treeinfo>
+    </tree>
+
+    <resources arch="all">
+      <minimum>
+        <n-cpus>1</n-cpus>
+        <cpu>1000000000</cpu>
+        <ram>1073741824</ram>
+        <storage>10737418240</storage>
+      </minimum>
+    </resources>
+
+    <!-- Lets uncomment these after testing them -->
+    <!--<installer>
+      <script id='http://fedoraproject.org/scripts/fedora/jeos'/>
+      <script id='http://fedoraproject.org/scripts/fedora/desktop'/>
+    </installer>-->
+  </os>
+
+
   <!-- Generic entry for future Fedora releases. Please update the 'upgrades',
        'derives-from', 'volume-id' and 'resources' nodes accordingly each time
        you add a new (specific) entry for a new release. -->
@@ -1543,19 +1698,19 @@
     <_vendor>Fedora Project</_vendor>
     <family>linux</family>
     <distro>fedora</distro>
-    <upgrades id="http://fedoraproject.org/fedora/20"/>
-    <derives-from id="http://fedoraproject.org/fedora/20"/>
+    <upgrades id="http://fedoraproject.org/fedora/21"/>
+    <derives-from id="http://fedoraproject.org/fedora/21"/>
     <release-status>prerelease</release-status>
 
     <media arch="i686">
       <iso>
-        <volume-id>Fedora ([2-9][1-9]|[0-9]{3,}).* i386</volume-id>
+        <volume-id>Fedora.*-([2-9][1-9]|[0-9]{3,}).*-i386</volume-id>
         <system-id>LINUX</system-id>
       </iso>
     </media>
     <media arch="x86_64">
       <iso>
-        <volume-id>Fedora ([2-9][1-9]|[0-9]{3,}).* x86_64</volume-id>
+        <volume-id>Fedora.*-([2-9][1-9]|[0-9]{3,}).*-x86_64</volume-id>
         <system-id>LINUX</system-id>
       </iso>
       <kernel>isolinux/vmlinuz</kernel>
@@ -1584,4 +1739,9 @@
       </minimum>
     </resources>
   </os>
+
+  <!-- Do not add entry here, the last entry should always be fedora-unknown.
+       And if adding a new entry, make sure to update fedora-unknown as
+       mentioned in the comment above. -->
+
 </libosinfo>
diff --git a/data/schemas/libosinfo.rng b/data/schemas/libosinfo.rng
index e693674..1580d9a 100644
--- a/data/schemas/libosinfo.rng
+++ b/data/schemas/libosinfo.rng
@@ -337,22 +337,22 @@
           <ref name='num'/>
         </attribute>
       </optional>
-      <optional>
-        <element name='variant'>
-          <attribute name='id'>
-          </attribute>
-        </element>
-      </optional>
-      <optional>
-        <element name='url'>
-          <ref name='url'/>
-        </element>
-      </optional>
-      <optional>
-        <ref name='iso'/>
-      </optional>
       <interleave>
         <optional>
+          <element name='variant'>
+            <attribute name='id'>
+            </attribute>
+          </element>
+        </optional>
+        <optional>
+          <element name='url'>
+            <ref name='url'/>
+          </element>
+        </optional>
+        <optional>
+          <ref name='iso'/>
+        </optional>
+        <optional>
           <element name='initrd'>
             <text/>
           </element>
@@ -414,16 +414,22 @@
       <attribute name='arch'>
         <ref name='archnames'/>
       </attribute>
-      <optional>
-        <element name='url'>
-          <ref name='url'/>
-        </element>
-      </optional>
-      <optional>
-        <ref name='treeinfo'/>
-      </optional>
       <interleave>
         <optional>
+          <element name='variant'>
+            <attribute name='id'>
+            </attribute>
+          </element>
+        </optional>
+        <optional>
+          <element name='url'>
+            <ref name='url'/>
+          </element>
+        </optional>
+        <optional>
+          <ref name='treeinfo'/>
+        </optional>
+        <optional>
           <element name='initrd'>
             <text/>
           </element>
diff --git a/test/isodata/fedora/fedora21/Fedora-Server-DVD-x86_64-21_Alpha_TC7.iso.txt b/test/isodata/fedora/fedora21/Fedora-Server-DVD-x86_64-21_Alpha_TC7.iso.txt
new file mode 100644
index 0000000..f4e9436
--- /dev/null
+++ b/test/isodata/fedora/fedora21/Fedora-Server-DVD-x86_64-21_Alpha_TC7.iso.txt
@@ -0,0 +1,29 @@
+CD-ROM is in ISO 9660 format
+System id: LINUX
+Volume id: Fedora-S-21_A_T7-x86_64
+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: 979923
+El Torito VD version 1 found, boot catalog is in sector 439
+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 1B8 440
-- 
2.1.0