From Fedora Project Wiki
(Tips)
(Releases Notes)
(88 intermediate revisions by 13 users not shown)
Line 1: Line 1:
 
= Fedora s390x =
 
= Fedora s390x =
  
* IRC: #fedora-s390x on irc.freenode.net
+
* IRC: {{fpchat|#fedora-s390x}} on freenode.net
* Mailing List: [https://admin.fedoraproject.org/mailman/listinfo/fedora-s390x fedora-s390x]
+
* Mailing List: {{fplist|s390x}}
 
* Regular IRC meetings: TBD
 
* Regular IRC meetings: TBD
  
 
== Targets ==
 
== Targets ==
* short term goals:
+
=== short term goals ===
 +
--* '''prepare and release F-21 for System z
 +
 
 +
=== long term goals ===
 
* reach out to known interested parties in community
 
* reach out to known interested parties in community
 +
* '''have several "interested parties" that will help with development and testing once we are building packages/trees'''
 
* reaching out (through contacts) to IBM community (.de)
 
* reaching out (through contacts) to IBM community (.de)
* '''have several "interested parties" that will help once we are building packages/trees'''
+
* provide development trees for testing
* set up externally/publically available koji instance
+
* release next Fedora versions shortly after the primary archs
 +
 
 +
== Accomplished ==
 +
* set up externally/publicly available koji instance
 
* [http://s390.koji.fedoraproject.org/koji/ s390x koji instance]
 
* [http://s390.koji.fedoraproject.org/koji/ s390x koji instance]
* identified persistent storage (> 2 TB anticipated in first year alone)
+
* release of F-14 for System z
* temporary location (while we sort out long term permanent location)
+
* release of F-15 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2011-July/000146.html 2011/07/27])
* start F-11 composes
+
* release of F-16 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2011-December/000173.html 2011/12/22])
* identify the resources used for composes
+
* release of F-17 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2012-June/000206.html 2012/06/29])
* '''get to the point where F-11 is bootable and installable with pungi images'''
+
* release of F-18 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2013-January/000560.html 2013/01/23])
* ''this is blocking on the external dedicated environment issue (above)''
+
* release of F-19 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2013-July/000766.html 2013/07/16])
 +
* release of F-20 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2014-January/000941.html 2014/01/08])
 +
* release of F-21 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2014-December/001430.html 2014/12/18])
 +
* release of F-22 for System z (published [http://lists.fedoraproject.org/pipermail/s390x/2015-June/001689.html 2015/06/02])
 +
* release of F-23 for System z (published [https://lists.fedoraproject.org/pipermail/s390x/2015-November/001766.html 2015/11/10])
 +
* release of F-24 for z Systems (published [https://lists.fedoraproject.org/archives/list/s390x@lists.fedoraproject.org/thread/TPFQHSQ7PYD6D3ZGASJQOLOXNZKV7LMI/ 2016-06-21])
 +
* release of F-25 for z Systems (published [https://lists.fedoraproject.org/archives/list/s390x@lists.fedoraproject.org/thread/KIVBPMRCCEKPJ45PJKYJADGHMCZVHUQL/ 2016-11-22])
 +
 
 +
* Rawhide (F-{{FedoraVersionNumber|next}}) rebuild [http://fedora.danny.cz/s390/rebuild/koji-compare-f{{FedoraVersionNumber|next}}.txt statistics] updated weekly
  
 
== People ==
 
== People ==
  
* '''[[User:karsten|Karsten Hopp]]''' Secondary Arch Maintainer (nickname '''Kick_''' in #fedora-s390x on IRC)
+
* '''[[User:karsten|Karsten Hopp]]''' Secondary Arch Maintainer (nickname '''Kick_''' in {{fpchat|#fedora-s390x}} on IRC)
 
* BrockOrgan
 
* BrockOrgan
 
* Brad Hinson
 
* Brad Hinson
* Justin Payne
+
* Justin Payne (nickname '''kurgan''' in {{fpchat|#fedora-s390x}} on IRC)
* [[User:sharkcz|Dan Horák]]
+
* '''[[User:sharkcz|Dan Horák]]'''
 
* [[User:pknirsch|Phil Knirsch]]
 
* [[User:pknirsch|Phil Knirsch]]
 +
* [[User:dcantrel|David Cantrell]]
 +
* [[User:sbueno|Samantha N. Bueno]]
 +
* [[User:than|Than Ngo]]
  
 
== History ==
 
== History ==
Line 34: Line 52:
 
After several months of bootstrapping as of June 2009 we've reached a state where we have most packages built from current Fedora rawhide CVS. There are still around ~500 failures, most of which are related to java and ocaml dependencies (ocaml is not available on s390x).
 
After several months of bootstrapping as of June 2009 we've reached a state where we have most packages built from current Fedora rawhide CVS. There are still around ~500 failures, most of which are related to java and ocaml dependencies (ocaml is not available on s390x).
  
For those interested in trying it our you can now download a fully working and bootable hercules Fedora 11 s390x image:
+
News of September 2010: We're now getting really close to Rawhide and we have a working install tree available thats basically based on current Fedora 14. Previously we only provided a hercules images as well as a tarball from a root FS as installs weren't possible. We still provide those, but now you can do your own installs again, too!
 +
 
 +
For those interested in trying it out you access everything needed from here:
  
 
http://secondary.fedoraproject.org/pub/alt/spins/S390/
 
http://secondary.fedoraproject.org/pub/alt/spins/S390/
Line 41: Line 61:
  
 
* README
 
* README
** Very brief howto get everything up and running
+
** Very brief howto get everything up and running, either for running preinstalled hercules images or how to do a complete install yourself
* f11-s390x.img
+
* fedora-14-s390x.img
** Hercules Fedora 11 s390x DASD image
+
** Hercules Fedora 14 s390x compressed DASD image..
* f11-s390x.tar.bz2
+
* anaconda-ks.cfg
** tarball of the whole tree. Can be unpacked on a real machine (confirmed it works!)
+
** Sample kickstart file that installs a very basic system on a dasd image. WARNING! Wipes out the whole partition table, so use with care
 
* hercules.cnf
 
* hercules.cnf
 
** hercules emulator config file
 
** hercules emulator config file
 
* hercules.init
 
* hercules.init
 
** Small script to start up hercules with some iptables rules for NAT (might require you to modify your personal rules in order to work properly)
 
** Small script to start up hercules with some iptables rules for NAT (might require you to modify your personal rules in order to work properly)
 +
* generic.prm
 +
** Kernel command line parameter file, needed for installation
 +
* older files
 +
** fedora-14-s390x.img.bz2
 +
*** Hercules Fedora 14 s390x DASD image, bz2 compressed. Needs to be unpacked before it can be used. Beware that the uncompressed size is ~8Gb !
 +
** f11-s390x.img
 +
*** Hercules Fedora 11 s390x DASD image
 +
** f11-s390x.tar.bz2
 +
*** tarball of the whole tree. Can be unpacked on a real machine (confirmed it works!)
 +
 +
== Supported hardware ==
 +
* [http://www-03.ibm.com/systems/z/ IBM system Z] models z9 or newer, for F<=25, zEC12 or newer for F>=26, all '''64-bit''' only
 +
* [http://www.hercules-390.eu/ Hercules] emulator version 3.07 or SVN revision >= 6605 (for F<=25)
 +
* [http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/TD105503 IBM Mainframe Life Cycle History]
 +
 +
== Releases Notes ==
 +
 +
* [[Architectures/s390x/27|Fedora 27]]
 +
* [[Architectures/s390x/26|Fedora 26]]
 +
* [[Architectures/s390x/25|Fedora 25]]
 +
* [[Architectures/s390x/24|Fedora 24]]
 +
* [[Architectures/s390x/23|Fedora 23]]
 +
* [[Architectures/s390x/22|Fedora 22]]
 +
* [[Architectures/s390x/21|Fedora 21]]
 +
* [[Architectures/s390x/20|Fedora 20]]
 +
* [[Architectures/s390x/19|Fedora 19]]
 +
* [[Architectures/s390x/18|Fedora 18]]
 +
* [[Architectures/s390x/17|Fedora 17]]
 +
* [[Architectures/s390x/16|Fedora 16]]
 +
* [[Architectures/s390x/15|Fedora 15]]
  
 
== Tips ==
 
== Tips ==
  
To submit a build for your specific package for s390x do this:
+
* [https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Installation_Guide/part-installation-system-z.html RHEL 7 Installation Guide]
 +
 
 +
* General [http://www2.marist.edu/htbin/wlvindex?LINUX-390 Linux-s390] mailing list
 +
 
 +
* [http://en.wikipedia.org/wiki/Linux_on_zSeries Linux on zSeries], at wikipedia.org
 +
 
 +
* Dan Horák's [http://sharkcz.livejournal.com/12268.html blog] how to install Fedora 20 in Hercules over network
 +
 
 +
* Thomas Meyer's [http://m3y3r.de/wordpress/?p=2894 blog] how to install Fedora 21 in Hercules from DVD ISO
 +
 
 +
== Known runtime issues ==
 +
* After installation the [[dnf]]|[[yum]] repo doesn't point at our mash tree. Simply do the following to fix that:
 +
<pre>
 +
echo '[fedora]
 +
name=Fedora $releasever - $basearch
 +
baseurl=http://s390.koji.fedoraproject.org/mash/rawhide/s390x/os/
 +
enabled=1
 +
gpgcheck=0' > /etc/yum.repos.d/fedora.repo
 +
</pre>
 +
* If you've selected to do a minimal installation your system will boot up with no network enabled.
 +
This happens because Networkmanager isn't included in a minimal install.
 +
To fix this, log on as root on the console and run
 +
<pre>
 +
chkconfig network on
 +
service network start
 +
</pre>
 +
 
 +
== [[Architectures/BuildIssues|Known build issues]] ==
 +
 
 +
== Notes for application developers and package maintainers ==
 +
* some hardware that's usual on other platforms is missing, like
 +
** USB - starting F-15 we have libusb1/libusb built to resolve some dependency issues, but it's a no-op, still no real USB on the mainframe :-)
 +
** FireWire
 +
** InfiniBand
 +
 
 +
* memory ordering is [http://en.wikipedia.org/wiki/Big_Endian big-endian] and wrong typecasting between pointers to integers of different size can cause fatal errors
 +
 
 +
* char is unsigned by default, some [http://www.arm.linux.org.uk/docs/faqs/signedchar.php FAQ]
 +
 
 +
* size_t is alias for unsigned long on s390, so the assumption size_t == unsigned int fails here, seen in C++ code using templates
 +
 
 +
* s390 ([http://en.wikipedia.org/wiki/31-bit 31-bit]) arch has 2 GB address space and it can be too small when building large C++ applications with debug information enabled, such builds can fail in the final link with errors like "Final link failed: exhausted memory" => the workaround is to disable debug information (remove -g from CXXFLAGS)
 +
 
 +
* Mono 2.8+ drops support for s390 ([http://en.wikipedia.org/wiki/31-bit 31-bit])
 +
 
 +
* valgrind is available on s390x since F-15
 +
 
 +
* stack larger than the default 8 MB is required to build pcre 8.11 (a test crashes with SIGSEGV, but no apparent reason)
 +
 
 +
* some programming languages are missing, like Objective Caml (ocaml), Haskell (ghc), ...
 +
 
 +
* xmlto needs w3m to fullfil the dependency on text-www-browser instead of lynx, otherwise it fails on empty file (seen in libXest, libSM, libXtst)
 +
 
 +
* sometimes wrong package is selected to fulfill a BuildRequires when multiple packages provide the name
 +
 
 +
* the qmake tool (part of QT) thinks s390x and ppc64 are of "linux-g++-64" type while x86_64 is "linux-g++" type
 +
 
 +
== Submitting builds ==
 +
There should be no need for a maintainer to do a regular build, they are automagically processed through the koji-shadow script that reads all builds from primary koji and rebuilds them in proper order.
 +
 
 +
To test a build for your specific package for s390x do this:
 +
 
 +
After running <code>fedora-packager-setup</code> from the <code>fedora-packager</code> rpm do
  
<code>koji -s http://s390.koji.fedoraproject.org/kojihub build --scratch --arch-override s390x dist-f12 yourpkg.src.rpm</code>
+
* <code>s390-koji build --scratch f{{FedoraVersion}}-candidate yourpkg.src.rpm</code>
  
or after running <code>fedora-package-setup</code>
+
If you are unsure what do do, please contact the team.
  
<code>koji -c ~/.koji/s390-config build --scratch dist-f12 yourpkg.src.rpm</code>
+
== Shell access for debugging ==
 +
To get shell access to a s390(x) machine, send an email to [[user:Sharkcz|Dan Horák]] ([[fas:sharkcz|sharkcz]]) with your public SSH key.
  
 
== Tracker Bugs ==
 
== Tracker Bugs ==
Line 73: Line 186:
 
List of s390 specific packages currently under review in Fedora
 
List of s390 specific packages currently under review in Fedora
  
[http://bugzilla.redhat.com/show_bug.cgi?id=510584 openssl-ibmca]
+
* none
  
 
Packages to be submitted:
 
Packages to be submitted:
  
openCryptoki
+
* none
  
[[Category:Arch-specific SIGs]]
+
[[Category:Arch-specific SIGs]][[Category:SIGs]]
 +
[[Category:Fedora special-interest groups|s390x]]

Revision as of 08:25, 23 May 2017

Fedora s390x

Targets

short term goals

--* prepare and release F-21 for System z

long term goals

  • reach out to known interested parties in community
  • have several "interested parties" that will help with development and testing once we are building packages/trees
  • reaching out (through contacts) to IBM community (.de)
  • provide development trees for testing
  • release next Fedora versions shortly after the primary archs

Accomplished

  • set up externally/publicly available koji instance
  • s390x koji instance
  • release of F-14 for System z
  • release of F-15 for System z (published 2011/07/27)
  • release of F-16 for System z (published 2011/12/22)
  • release of F-17 for System z (published 2012/06/29)
  • release of F-18 for System z (published 2013/01/23)
  • release of F-19 for System z (published 2013/07/16)
  • release of F-20 for System z (published 2014/01/08)
  • release of F-21 for System z (published 2014/12/18)
  • release of F-22 for System z (published 2015/06/02)
  • release of F-23 for System z (published 2015/11/10)
  • release of F-24 for z Systems (published 2016-06-21)
  • release of F-25 for z Systems (published 2016-11-22)

People

History

FUDcon 2008 was an excellent event. During the conference, a session on secondary arches was presented and there was an excellent effort made to reach out to new arches.

After several months of bootstrapping as of June 2009 we've reached a state where we have most packages built from current Fedora rawhide CVS. There are still around ~500 failures, most of which are related to java and ocaml dependencies (ocaml is not available on s390x).

News of September 2010: We're now getting really close to Rawhide and we have a working install tree available thats basically based on current Fedora 14. Previously we only provided a hercules images as well as a tarball from a root FS as installs weren't possible. We still provide those, but now you can do your own installs again, too!

For those interested in trying it out you access everything needed from here:

http://secondary.fedoraproject.org/pub/alt/spins/S390/

You will find several files there:

  • README
    • Very brief howto get everything up and running, either for running preinstalled hercules images or how to do a complete install yourself
  • fedora-14-s390x.img
    • Hercules Fedora 14 s390x compressed DASD image..
  • anaconda-ks.cfg
    • Sample kickstart file that installs a very basic system on a dasd image. WARNING! Wipes out the whole partition table, so use with care
  • hercules.cnf
    • hercules emulator config file
  • hercules.init
    • Small script to start up hercules with some iptables rules for NAT (might require you to modify your personal rules in order to work properly)
  • generic.prm
    • Kernel command line parameter file, needed for installation
  • older files
    • fedora-14-s390x.img.bz2
      • Hercules Fedora 14 s390x DASD image, bz2 compressed. Needs to be unpacked before it can be used. Beware that the uncompressed size is ~8Gb !
    • f11-s390x.img
      • Hercules Fedora 11 s390x DASD image
    • f11-s390x.tar.bz2
      • tarball of the whole tree. Can be unpacked on a real machine (confirmed it works!)

Supported hardware

Releases Notes

Tips

  • Dan Horák's blog how to install Fedora 20 in Hercules over network
  • Thomas Meyer's blog how to install Fedora 21 in Hercules from DVD ISO

Known runtime issues

  • After installation the dnf|yum repo doesn't point at our mash tree. Simply do the following to fix that:
echo '[fedora]
name=Fedora $releasever - $basearch
baseurl=http://s390.koji.fedoraproject.org/mash/rawhide/s390x/os/
enabled=1
gpgcheck=0' > /etc/yum.repos.d/fedora.repo
  • If you've selected to do a minimal installation your system will boot up with no network enabled.

This happens because Networkmanager isn't included in a minimal install. To fix this, log on as root on the console and run

chkconfig network on
service network start

Known build issues

Notes for application developers and package maintainers

  • some hardware that's usual on other platforms is missing, like
    • USB - starting F-15 we have libusb1/libusb built to resolve some dependency issues, but it's a no-op, still no real USB on the mainframe :-)
    • FireWire
    • InfiniBand
  • memory ordering is big-endian and wrong typecasting between pointers to integers of different size can cause fatal errors
  • char is unsigned by default, some FAQ
  • size_t is alias for unsigned long on s390, so the assumption size_t == unsigned int fails here, seen in C++ code using templates
  • s390 (31-bit) arch has 2 GB address space and it can be too small when building large C++ applications with debug information enabled, such builds can fail in the final link with errors like "Final link failed: exhausted memory" => the workaround is to disable debug information (remove -g from CXXFLAGS)
  • Mono 2.8+ drops support for s390 (31-bit)
  • valgrind is available on s390x since F-15
  • stack larger than the default 8 MB is required to build pcre 8.11 (a test crashes with SIGSEGV, but no apparent reason)
  • some programming languages are missing, like Objective Caml (ocaml), Haskell (ghc), ...
  • xmlto needs w3m to fullfil the dependency on text-www-browser instead of lynx, otherwise it fails on empty file (seen in libXest, libSM, libXtst)
  • sometimes wrong package is selected to fulfill a BuildRequires when multiple packages provide the name
  • the qmake tool (part of QT) thinks s390x and ppc64 are of "linux-g++-64" type while x86_64 is "linux-g++" type

Submitting builds

There should be no need for a maintainer to do a regular build, they are automagically processed through the koji-shadow script that reads all builds from primary koji and rebuilds them in proper order.

To test a build for your specific package for s390x do this:

After running fedora-packager-setup from the fedora-packager rpm do

* s390-koji build --scratch f30-candidate yourpkg.src.rpm

If you are unsure what do do, please contact the team.

Shell access for debugging

To get shell access to a s390(x) machine, send an email to Dan Horák (sharkcz) with your public SSH key.

Tracker Bugs

If excluding s390/s390x architectures you need to make the bug block F-ExcludeArch-s390x

to see whats currently blocking visit Bugzilla

If a bug is specific to s390/s390x architectures make the bug blocking ZedoraTracker

to see not yet resolved issues visit Bugzilla

Packages under review

List of s390 specific packages currently under review in Fedora

  • none

Packages to be submitted:

  • none