[Please Read the Wiki as well!] (https://github.com/sgidevnet/sgug-rse/wiki)
Silicon Graphics User Group RPM Software Environment
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.
Want to help? Please see our contribution guide.
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.
To install and use SGUG software, you'll need to add some directories to PATH and modify some shell variables. Here's an example for tcsh:
# Expand path to include SGUG
set path = ( /usr/sgug/bin /usr/sgug/sbin $path )
# Explicit library paths
setenv LD_LIBRARYN32_PATH /usr/sgug/lib32:/usr/lib32:/lib32:/usr/lib:/lib
# Add SGUG manuals to search path
setenv MANPATH /usr/sgug/share/man:/usr/share/catman:/usr/share/man:/usr/catman:/usr/man:$HOME/man
# Work around libiconv localisation issue
setenv LC_ALL C
If you'd prefer to skip this setup, you can run /usr/sgug/bin/sgugshell
, which is a wrapper for bash that sets up the correct environment to use SGUG software. This shell wrapper is provided by sgug-rse, so during installations or reinstallations of sgug-rse it is temporarily unavailable. For this reason, DO NOT use sgugshell as the root user's default shell. Doing so may cause root to be unable to execute commands after the upgrade, and prevent the system from starting after a reboot. You may use it as the default shell for a non-root user, but exercise caution to do updates to sgug-rse and the base system using a different user and/or shell.
To use sgugshell
as the default shell for a non-root user:
su - #(enter root password)
# Add sgugshell to the list of login shells
echo /usr/sgug/bin/sgugshell >> /etc/shells
# Modify the last field of your user's entry in /etc/passwd to point to /usr/sgug/bin/sgugshell
# Make sure you are NOT modifying root's entry!
vi /etc/passwd
(log out of root)
For a GUI terminal emulator option, you can install mrxvt
from SGUG and configure it to use sgugshell by default with this line in your ~/.mrxvtrc
:
Mrxvt.profile0.command: /usr/sgug/bin/sgugshell
(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 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
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
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.