Paketbaurichtlinien für Sugar-Aktivitäten

Diese Richtlinien gelten für die Paketierung von Sugar-Aktivitäten. Sugar ist der Kern der OLPC-Benutzeroberfläche.

Makros

Sugar sucht seine Aktivitäten an zwei festen Orten, die im Paket sugar-toolkit mit rpm-Makros definiert sind:

Architekturunabhängig (noarch):

%global sugaractivitydir /usr/share/sugar/activities/

Architekturabhängig:

%global sugarlibdir %{_libdir}/sugar/activities

Erforderliche BuildRequires

Alle Sugar-Aktivitäten verwenden setup.py, welches von sugar-toolkit abhängt. Daher müssen alle Aktivitäten Folgendes beinhalten:

BuildRequires: sugar-toolkit

Benennung

Alle Aktivitäten MÜSSEN mit sugar- benannt werden.

Architekturspezifische Aktivitäten

Alle Aktivitäten, die kompilierten Code enthalten (und somit architekturspezifisch sind), müssen im Abschnitt %build erstellt werden. Architekturspezifische Teile müssen je nach Bedarf in %{_bindir}, %{_libdir} oder %{sugarlibdir} eingefügt werden.

Laufzeitabhängigkeiten

Alle Informationen zu Laufzeitabhängigkeiten MÜSSEN manuell hinzugefügt werden. Es gibt für Sugar-Aktivitäten keine Möglichkeiten, diese während des Paketbaus automatisch zu erkennen.

Beispiel-Spec-Datei

Name:           sugar-journal
Version:        79
Release:        1%{?dist}
Summary:        Journal for Sugar

Group:          Sugar/Activities
License:        GPL-2.0-or-later
URL:            http://wiki.laptop.org/go/Journal
Source:         journal-activity-%{version}.tar.bz2
Source1:        sugar-journal-checkout.sh
BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

BuildRequires:  python sugar-toolkit
Requires:       sugar
BuildArch:      noarch

%description
The Journal activity provides an intuitive interface for viewing projects and
files saved by the XO user. Activities that the user has stopped will show in
the journal view with a timer showing how long ago they were stopped.

%prep
%setup -q -n journal-activity-%{version}


%build


%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT%{sugaractivitydir}
./setup.py install $RPM_BUILD_ROOT%{sugaractivitydir}


%clean
rm -rf $RPM_BUILD_ROOT


%files
%doc NEWS
%{sugaractivitydir}/Journal.activity/


%changelog
* Fri Apr 04 2008 Dennis Gilmore <dennis@ausil.us> - 79-1
- Initial packaging

Beispiel für ein Checkout-Skript

#!/bin/bash

VERSION=79
NAME=journal-activity

rm -rf $NAME-$VERSION

git clone git://dev.laptop.org/$NAME $NAME-$VERSION

tar -cjvf $NAME-$VERSION.tar.bz2 $NAME-$VERSION

rm -rf $NAME-$VERSION