Jump to content

Creating your first RPM Package on ArcaOS: Difference between revisions

From EDM2
No edit summary
Line 25: Line 25:
; BUILD: You are going to put the files that you want to include on your RPM package here.  
; BUILD: You are going to put the files that you want to include on your RPM package here.  
; BUILDROOT: Is the folder where some temporary file structure will be created to be able to pack the RPM file.  
; BUILDROOT: Is the folder where some temporary file structure will be created to be able to pack the RPM file.  
; SPECS: Is there the .specs files are going. The .specs files are the logic of the RPM package.
; SPECS: Is there the .spec files are going to be located. The .specs files are the logic of the RPM package.
; RPMS: Is the folder where your RPM package is going to be located once it is ready.  
; RPMS: Is the folder where your RPM package is going to be located once it is ready.  


Line 37: Line 37:
[[Image:FirstRPM-002.png|200px]]
[[Image:FirstRPM-002.png|200px]]


==Working with the .SPECS File==
==Working with the .SPEC File==
This is where the fun begins.
This is where the fun begins. The SPEC file is the file that contains the logic for the RPM installer. Andy Willis provided me with some easy samples to follow.
 
On this case I'm sharing with you my sample on how my "RollBall RPM" end up.
 
<PRE>
Name:          RollBall
Version:        1.00
Release:        1%{?dist}
Summary:        A Simple Action game.
Group:          Games/Action
License:        GNU GPL V3
URL:            https://www.os2world.com/games/index.php/native-games/action-2/50-roll-ball
 
Vendor:        OS2World
 
Obsoletes: RollBall < %{version}-%{release}
Provides: RollBall = %{version}-%{release}
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: i686
 
 
%description
RollBall is a little game with the goal to earn points with a rolling ball while preventing it from falling into holes.
 
 
 
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/@unixroot/usr/bin
mkdir -p $RPM_BUILD_ROOT/@unixroot/usr/share/doc/%{name}-%{version}
cp -p *.exe $RPM_BUILD_ROOT/@unixroot/usr/bin
cp -p *.txt $RPM_BUILD_ROOT/@unixroot/usr/share/doc/%{name}-%{version}
 
 
%files
%{_bindir}\RollBall.exe
%doc RollBall.txt
</PRE>
 
The file is not long and the first part is almost self explanatory with the general information about the installer. The interesting part is on %install and %files.


==Links==
==Links==

Revision as of 23:17, 21 February 2018

By Martin Iturbide

On this quick article I will explain how did I create my first RPM package under the ArcaOS platform. I was used to create some WarpIn installers and I felt that it was interesting to use RPM since it provides a single repository where the users can select which software to install. But I found it is a complete different process from creating WarpIn installer.

Software Requirements

To create my first installer I used the following software:

  • ArcaOS 5.0.1
  • RPM and YUM installed on the machine (If you are using ArcaOS it is already installed).
  • Arca Noae Package Manager 1.02, just to review my package once it is created

And the following RPM packages:

  • rpm-build
  • os2-rpm-build

You can install all at once with one command:

yum install rpm-build os2-rpm-build

Preparing your Environment

How you will set your environment will vary according to the person. On this case I got some help and ideas from Andy Willis, so he gave me his way to "organize" the environment.

It was to create a directory structure on my "Home" directory. So I created the one that looks on the next image:

In general terms the folder are going to be used by:

BUILD
You are going to put the files that you want to include on your RPM package here.
BUILDROOT
Is the folder where some temporary file structure will be created to be able to pack the RPM file.
SPECS
Is there the .spec files are going to be located. The .specs files are the logic of the RPM package.
RPMS
Is the folder where your RPM package is going to be located once it is ready.

I'm not sure what is the rest folders for, since this was a Andy's suggestion, but I guess we will find out in the future.

Locating the Files

My first installer was as easy as possible, so it was only two files of a little open source game called RollBall.

So I located RollBall.exe and RollBall.txt on the "BUILD" directory.

Working with the .SPEC File

This is where the fun begins. The SPEC file is the file that contains the logic for the RPM installer. Andy Willis provided me with some easy samples to follow.

On this case I'm sharing with you my sample on how my "RollBall RPM" end up.

Name:           RollBall
Version:        1.00
Release:        1%{?dist}
Summary:        A Simple Action game.
Group:          Games/Action
License:        GNU GPL V3
URL:            https://www.os2world.com/games/index.php/native-games/action-2/50-roll-ball

Vendor:         OS2World

Obsoletes:	RollBall < %{version}-%{release}
Provides:	RollBall = %{version}-%{release}
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch:	i686


%description
RollBall is a little game with the goal to earn points with a rolling ball while preventing it from falling into holes.



%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/@unixroot/usr/bin
mkdir -p $RPM_BUILD_ROOT/@unixroot/usr/share/doc/%{name}-%{version}
cp -p *.exe $RPM_BUILD_ROOT/@unixroot/usr/bin
cp -p *.txt $RPM_BUILD_ROOT/@unixroot/usr/share/doc/%{name}-%{version}


%files
%{_bindir}\RollBall.exe
%doc RollBall.txt

The file is not long and the first part is almost self explanatory with the general information about the installer. The interesting part is on %install and %files.

Links