###NAME RTPfoundation - Runtime platform file system structure
###SYNOPSIS All the files required to build a System V and RPM packages of the runtime platform foundation.
###DESCRIPTION This repository contains the metadata files required to build the runtime platform SVR4 and RPM packages.
The runtime platform is an architectural abstraction on top of several different operating systems (Solaris, HP-UX, RHEL, and Ubuntu) implemented in software, and providing a set of guaranteed functionality to the consumer of the computing services. The RTPfoundation
package creates the required filesystem structure on which all other software packages can rely:
- /opt/rtp
- /etc/opt/rtp[/application_name]
- /var/opt/rtp[/application_name]
The above structure is in strict compliance with the following specifications: System V filesystem specification, as documented in the filesystem(5) manual page, as well as Linux Standards Base, Filesystem Hierarchy Standard.
The intent is that no other package may modify the attributes, owner, or the permissions, and that these can be formally verified through the software management subsystem, for example with pkgchk -v RTPfoundation
, respectively rpm -V RTPfoundation
, the goal being to:
- provide a guaranteed filesystem state to applications;
- ensure applications are packaged correctly;
- ensure that no manual tampering with the system took place.
###BUILDING THE SOFTWARE ####SOLARIS-BASED SYSTEMS This section covers any Solaris-based system which utilizes AT&T System V packaging, ranging from Solaris 10 to illumos-based systems like Tribblix.
-
mkdir -p ${HOME}/repos && cd ${HOME}/repos/
-
git pull https://github.com/UX-admin/RTPfoundation/ && cd RTPfoundation
-
pkgmk -of prototype.
uname -p``; the package will be built in/var/spool/pkg/
by default. -
become superuser or assume the equivalent privilege, for example with sudo or with pfexec(1):
% su - Password: # yes | pkgadd RTPfoundation # exit
% yes | sudo pkgadd RTPfoundation
####RPM-BASED SYSTEMS This section covers any RPM-based system, ranging from redhat Enterprise Linux (RHEL) to Atari ST MiNT.
-
mkdir -p ${HOME}/repos && cd ${HOME}/repos/
-
git pull https://github.com/UX-admin/rpmmacros/
-
install the
rpmmacros
file as/etc/rpmmacros
, or as${HOME}/.rpmmacros
; if you choose to install it as/etc/rpmmacros
, you should package it first so no manual modifications are made to the system, otherwisecp rpmmacros/.rpmmacros $HOME
. -
git pull https://github.com/UX-admin/RTPfoundation/
-
install the package containing the rpmbuild(8) program; depending on the operating system, this package might be called
rpmbuild
orrpm-build
:% su - Password: # yum install -y rpm-build # exit
or alternatively:
% sudo yum install -y rpm-build
-
create the RPM build structure.
(Bourne shell family:)
$ for Directory in BUILD BUILDROOT RPMS/`uname -p` RPMS/noarch SOURCES SPECS SRPMS do mkdir -p ${HOME}/devel/rpms/${Directory} done
(C-shell family:)
% foreach Directory (BUILD BUILDROOT RPMS/`uname -p` RPMS/noarch SOURCES SPECS SRPMS) mkdir -p ${HOME}/devel/rpms/${Directory} end
-
rpmbuild --clean -ba RTPfoundation/SPECS/RTPfoundation.spec
the binary RPM package will be generated in
${HOME}/devel/rpms/RPMS/noarch/
, and the source RPM in${HOME}/devel/rpms/SRPMS/
. The.src.rpm
(SRPM) package encapsulates everything needed to modify and rebuild the binary package again. -
install the package with sudo(8):
% sudo rpm -Uvh ${HOME}/devel/rpms/RPMS/noarch/RTPfoundation-2017.01.02-01.noarch.rpm
or alternatively, become superuser, and then install the package:
% su - Password: # rpm -Uvh /export/home/buildusr/devel/rpms/RPMS/noarch/RTPfoundation-2017.01.02-01.noarch.rpm # exit %