Skip to content
andy diller edited this page Jan 17, 2023 · 9 revisions

Welcome to the Silicon Graphics User Group RPM Software Environment (sgug-rse) wiki!

Contributing

Want to help? Please see our RSE porting guide.

Installation

How to get this working

NOTE: While we are not yet out of beta, it is recommended to remove any previous sgug-rse installation before extracting this new one. We don't yet support in-place upgrades using RPMs:

# As root
rm -rf /usr/sgug/*

(1) Add your user account to the irix sys group - this will allow you to use the sgug sudo out of the box with your user password - then you can follow the steps below without additional hoop jumping.

Need help with setting up sudo? Please see our troubleshooting guide.

(2) Ensure your system can cope with long command line buffers:

# As root
su -
# Show existing value
systune ncargs
# Tweak if < 262144
systune ncargs 262144

(3) Download the artifacts for the latest version from the github releases tab (assuming they aren't too big).

You'll find three main archives:

sgug-rse-selfhoster-0.0.7beta.tar.gz
sgug-rse-localrepo-0.0.7beta.tar.gz

(4) Extract the selfhoster and local repo archives under /usr as root (important, sgug-rse installation files are root owned and managed):

su -  #(enter root password)
cd /usr
gunzip -dc /path/to/sgug-rse-selfhoster-0.0.7beta.tar.gz | tar xf -
gunzip -dc /path/to/sgug-rse-localrepo-0.0.7beta.tar.gz | tar xf -
(log out of root)

(5) Setup SGUG environment.

TODO

(6) Now you can search for and install sgug RPM packages. Note that you have to be root in order for the tdnf tool to work:

sudo tdnf install mpg123
Installing:
mpg123-libs                    mips            1.25.10-2.sgug       sgugrselocal    425.17k 435369
mpg123                         mips            1.25.10-2.sgug       sgugrselocal    249.11k 255085

Total installed size: 674.27k 690454
Is this ok [y/N]:

Downloading:
mpg123-libs                             225085   100%
mpg123                                  129151   100%
Testing transaction
Running transaction
Installing/Updating: mpg123-libs-1.25.10-2.sgug.mips
Installing/Updating: mpg123-1.25.10-2.sgug.mips

Complete!

You can search for local packages with:

sudo tdnf search mpg123

mpg123 : Real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3
mpg123-devel : Real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3
mpg123-libs : Real time MPEG 1.0/2.0/2.5 audio player/decoder for layers 1, 2 and 3

Read below to setup the cloud repo where there are many more newer packages!

Add the Cloud Repo

Connect to the RSE Cloud Repo

There are over 1000 more packages available as RPM binary installs from the SGUG Hosted RSE Repo in the Sky! SHRRITS!

  • become root You need to run this command as root as it will create a new repo file for you in usr/sgug/etc/yum.repos.d, which is owned by root.

As root, copy and paste this into the terminal. It will create the proper repo file where the sgug rpm and tndf will find it.

cat <<EOF > /usr/sgug/etc/yum.repos.d/ports.sgi.sh-007.repo
[ports.sgi.sh-007]
name=SGI.SH SGUG RSE 0.0.7 Moneypenny MIPS3
baseurl=http://ports.sgi.sh/repo/0.0.7
enabled=1
metadata_expire=3d
type=rpm
skip_if_unavailable=False
gpgcheck=0
repo_gpgcheck=0
# don't use this now, but packages are signed and tdnf will be fixed soon to use them
# gpgkey=file:///usr/sgug/etc/pki/rpm-gpg/RPM-GPG-KEY-sgugrse-primary
EOF

Once you have the repo you can refresh and list files using TNDF:

$ sudo /usr/sgug/bin/tdnf --refresh list

See a package you like? installation or upgrades are super easy:

$ sudo /usr/sgug/bin/tdnf install netsurf-motif

Installing:
netsurf-motif                mips     3.10-3.sgug     ports.sgi.sh-007  4.66M 4881715

Total installed size:   4.66M 4881715
Is this ok [y/N]: y

Downloading:
netsurf-motif                          1567106   100%
Testing transaction
Running transaction
Installing/Updating: netsurf-motif-3.10-3.sgug.mips

Complete!

More information

Visit the SGUG Forum where I posted a guide to installing the cloud repo and then using it to upgrade your OpenSSH server from the very old version from Necochan to the new improved one waiting for you on the cloud repo. It will take you thru most of the steps to setup the repo and then add and upgrade packages that have been added since 007 was released.

Building your own Packages

(Re-)build RPMs from Source

You can rebuild any of the existing package from source, for example if you want to try out different build options. For that you need to install the source RPM archive (sgug-rse-srpms) in addition to the sgug-rse-selfhoster and sgug-rse-localrepo.

You want to contribute a new package to the sgug-rse repository? That's great! Please check out the contribution guidelines for more details.

(1) Before you start, make sure you are in sgugshell:

/usr/sgug/bin/sgugshell

(2) Install common build tools:

sudo tdnf install wget rpm-build autoconf automake libtool gcc gcc-c++

(3) Create build directories in your user's home:

mkdir -p ~/rpmbuild/SPECS
mkdir -p ~/rpmbuild/SOURCES
mkdir -p ~/rpmbuild/SRPMS
mkdir -p ~/rpmbuild/RPMS

(4) Download the source RPM archive for the latest version (sgug-rse-srpms-x.y.z.tar.gz) from the Github releases tab and extract it into the build directory:

cd /tmp
wget https://github.com/sgidevnet/sgug-rse/releases/download/v0.0.7beta/sgug-rse-srpms-0.0.7beta.tar.gz

cd ~/rpmbuild
gunzip -dc /tmp/sgug-rse-srpms-0.0.7beta.tar.gz | tar xf -

(5) To rebuild an RPM package you first have to install the SRPM of the package (in this example we will rebuild mpg123):

cd ~/rpmbuild/
rpm -ivh ~/rpmbuild/SRPMS/mpg123-1.25.10-2.sgug.src.rpm

You can modify the specfile locally in the ~/rpmbuild/SPECS/ directory if you want to try out different build options. Now you can run rpmbuild on the package's specfile:

cd ~/rpmbuild/
rpmbuild -ba ~/rpmbuild/SPECS/mpg123.spec --nocheck

(6) After building, install of fresh RPMs must be done as root (add --reinstall to refresh an already installed package):

sudo rpm -ivh ~/rpmbuild/RPMS/mips/m4*.rpm

Porting

I've taken some very nice porting notes for Unxmaal and updated them, they should be current for 2023. We are still working in a world of FC31 and RSE 007. For better or worse that is where we are. Revel in it.

Want to try and port something over?

Start with the FC 31 source packages.

https://archives.fedoraproject.org/pub/archive/fedora/linux/releases/31/Everything/source/tree/Packages/

Use these as at starting point and your work will be much easier. RSE 007 was built on FC31.

All porting work is done in the wip-testing branch. Don't use master.

WIP testing branch- for all your porting needs

Bugs

There will be bugs, I'm afraid. This platform is relatively new, much as the GCC underpinning it is. Please do file an issue for things you find - it helps a lot to double check there isn't already one for the problem you have.

Feel free to contact us on the forums or in discord and we may be able to help.

Licensing

It is intended that any fedora .spec files listed here are under the "Fedora Project Contributor Agreement": https://fedoraproject.org/wiki/Legal:Fedora_Project_Contributor_Agreement.

Notably - fedora specifically mentions spec file licensing here: https://fedoraproject.org/wiki/Licensing:Main#License_of_Fedora_SPEC_Files

Unless otherwise stated, those .spec files remain under their original license as per their contribution to Fedora. This project does not attempt to supplant nor change the license of these works.

The modifications from the original fedora .spec files fall under the license of the sgug-rse project, namely GPL3.