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
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
Want to help? Learn how to contribute to Fedora Docs ›