Mailinglist Archive: opensuse-buildservice (312 mails)

< Previous Next >
Re: [opensuse-buildservice] Conventions for game packages
  • From: "Sascha 'saigkill' Manns" <samannsml@xxxxxxxxxxxxx>
  • Date: Sun, 26 Jul 2009 16:55:21 +0200
  • Message-id: <200907261655.22450@xxxxxxxxxxxxxxxxxxx>
Hi Vincent,

Am Sonntag 26 Juli 2009 14:16:56 wrote Vincent Petry:
Hi,

Other related questions to game packaging:
1) Currently I'm packaging a game (let's call it "thegame") that
only has one thegame.tar.gz archive, containing the source files and
data files. I've written a shell script that splits that file into
two separate thegame.tar.bz2 files and thegame-data.tar.bz2. I
included the shell script in the package sources for convenience. I
assume that it's a common practice. Can you confirm this ?

2) When splitting the package, should I create one single package in
OBS containing both spec files (thegame.spec and thegame-data.spec),
or rather use two separate OBS packages "thegame" and
"thegame-data", each one with a single spec file ?
You don't must split the tar.bz2 into 2 or more different tars. You can
use one Source and can split the Package into different Packages.
As Example i've attached an Spec.

HTH Sascha
--
Sincerely yours

Sascha Manns
openSUSE Ambassador
openSUSE Marketing Team
openSUSE Build Service
Web: http://saschamanns.gulli.to
Project-Blog: http://lizards.opensuse.org/author/saigkill
Private-Blog: http://saschasbacktrace.blogspot.com
# Copyright (c) 2009 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# Packaged by: <saigkill@xxxxxxxxxxxx>
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
# # norootforbuild

Name: boinc-client
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Version: 6.4.5
Release: 1
License: LGPL v2.1 only
Url: http://boinc.berkeley.edu/svn
Source0: boinc_core_release_6_4_5.tar.bz2
Source1: boinc-icons.tar.bz2
Source2: boinc-logrotate
Source3: boinc-gui.desktop
Source4: boincmgr
Source5: sysconfig.boinc
Source100: boinc-client-rpmlintrc
Patch0: boinc-docbook2x.patch
Patch1: boinc-rcscript.patch
Patch2: boinc-fs_start_included.patch
Patch3: boinc-sysconfig.patch
Patch4: boinc-ca_cert_deactivate.patch
Patch5: boinc-LC_MESSAGES.patch
Patch6: boinc-icon_old.patch
Patch7: boinc-bnc_465676.patch
Patch8: boinc-client-wxWindowListNode.patch
Patch9: boinc-client-hostinfo.patch
Patch10: boinc-client-NotebookWxPanel.patch
Patch11: boinc-client-str_util.patch
Group: Productivity/Clustering/Computing
BuildRequires: libcurl-devel >= 7.15.2 python-mysql update-desktop-files
BuildRequires: Mesa-devel freeglut-devel libopenssl-devel
BuildRequires: gcc-c++ gettext-runtime mysql-devel wxGTK-devel >= 2.8.7
BuildRequires: docbook2x libjpeg-devel libxslt xorg-x11-libXmu-devel
BuildRequires: pkg-config autoconf automake libtool m4
PreReq: %insserv_prereq %fillup_prereq
Requires: logrotate cron
Requires: boinc-doc = %{version}-%{release}
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%debug_package

%description
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".

BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.



Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@xxxxxxxxxxxxxxxx>
Rom Walton <rwalton@xxxxxxxxxxxxxxxx>
Charlie Fenton

%package -n boinc-gui
License: LGPL v2.1 only
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Productivity/Clustering/Computing
Requires: boinc-client = %{version}-%{release}
Requires: boinc-doc = %{version}-%{release}
Requires: boinc-gui-lang = %{version}-%{release}

%description -n boinc-gui
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".

BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.



Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@xxxxxxxxxxxxxxxx>
Rom Walton <rwalton@xxxxxxxxxxxxxxxx>
Charlie Fenton

%package devel
License: LGPL v2.1 only
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Development/Sources
Requires: boinc-client = %{version}-%{release}

%description devel
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".

BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.



Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@xxxxxxxxxxxxxxxx>
Rom Walton <rwalton@xxxxxxxxxxxxxxxx>
Charlie Fenton

%package -n boinc-doc
License: LGPL v2.1 only
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Documentation/Other
Requires: boinc-client = %{version}-%{release}
Requires: boinc-gui = %{version}-%{release}

%description -n boinc-doc
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".

BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.



Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@xxxxxxxxxxxxxxxx>
Rom Walton <rwalton@xxxxxxxxxxxxxxxx>
Charlie Fenton

%package -n boinc-gui-lang
License: LGPL v2.1 only
Summary: The Berkeley Open Infrastructure for Network Computing (BOINC)
Group: Documentation/Other
Requires: boinc-client = %{version}-%{release}
Requires: boinc-gui = %{version}-%{release}

%description -n boinc-gui-lang
The Berkeley Open Infrastructure for Network Computing (BOINC) is an
open-source software platform which supports distributed computing,
primarily in the form of "volunteer" computing and "desktop Grid"
computing. It is well suited for problems which are often described as
"trivially parallel".

BOINC is the underlying software used by projects such as SETI@home,
Einstein@Home, ClimatePrediciton.net, the World Community Grid, and
many other distributed computing projects.



Authors:
--------
University of California, Berkeley
Dr. David P. Anderson <davea@xxxxxxxxxxxxxxxx>
Rom Walton <rwalton@xxxxxxxxxxxxxxxx>
Charlie Fenton

%prep
%setup -q -n boinc_core_release_6_4_5
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
tar -xvjf %{S:1}

%build
export CFLAGS="%{optflags} -fno-strict-aliasing"
export CXXFLAGS="%{optflags} -fno-strict-aliasing"
./_autosetup
%configure --prefix=%{_prefix} \
--libdir=%{_libdir} \
--mandir=%{_mandir} \
--disable-server \
--disable-static \
--enable-client \
--enable-unicode
make %{?jobs:-j %jobs}

%install
%makeinstall

# create symlink for boinc_client
ln -s %{_bindir}/boinc_client $RPM_BUILD_ROOT%{_bindir}/boinc

# remove /etc/sysconfig/boinc-client
rm -f %{buildroot}%{_sysconfdir}/sysconfig/boinc

# install logrotate and create symlink to /etc/int.d/boinc-client
install -d -m755 $RPM_BUILD_ROOT%{_sbindir}
ln -s %{_sysconfdir}/init.d/boinc $RPM_BUILD_ROOT%{_sbindir}/rcboinc-client
install -D -m644 %{S:2} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/boinc-client

# install desktop-file and icons
%suse_update_desktop_file -i boinc-gui Utility
install -D -m644 boinc-gui-128.png
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/128x128/apps/boinc-gui.png
install -D -m644 boinc-gui-64.png
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/64x64/apps/boinc-gui.png
install -D -m644 boinc-gui-48.png
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/48x48/apps/boinc-gui.png
install -D -m644 boinc-gui-32.png
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/32x32/apps/boinc-gui.png
install -D -m644 boinc-gui-22.png
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/22x22/apps/boinc-gui.png
install -D -m644 boinc-gui-16.png
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/16x16/apps/boinc-gui.png

# install boincmgr
install -D -m755 %{S:4} $RPM_BUILD_ROOT%{_bindir}/boincmgr

# install template for sysconfig
install -D -m644 %{S:5} %{buildroot}/var/adm/fillup-templates/sysconfig.boinc

# remove static Libs
rm %{buildroot}%{_libdir}/*.a

%clean
rm -rf $RPM_BUILD_ROOT

%post
# Macro to use an sysconfig File
%{fillup_and_insserv -y boinc}

%preun
%stop_on_removal boinc

%postun
%restart_on_update boinc
%insserv_cleanup

%files
%defattr(-,root,root)
%{_bindir}/boinc
%{_bindir}/boinc_client
%{_bindir}/boinc_cmd
%{_bindir}/crypt_prog
%{_bindir}/switcher
%{_sbindir}/*
%config %{_sysconfdir}/boinc-client.conf
/var/adm/fillup-templates/sysconfig.boinc
%config %{_sysconfdir}/init.d/*
%config(noreplace) %{_sysconfdir}/logrotate.d/*
%{_mandir}/man*/*

%files -n boinc-doc
%defattr(-,root,root)
%doc COPYING COPYRIGHT checkin_* INSTALL notes todo TODO_OLD doc/*.txt doc/bolt
doc/logo doc/*.php doc/*.png doc/*.html

%files -n boinc-gui
%defattr(-,root,root)
%{_bindir}/boincmgr
%{_bindir}/boinc_gui
%{_datadir}/applications/*
%{_datadir}/icons/hicolor/*/apps/*

%files -n boinc-gui-lang
%defattr(-,root,root)
%{_datadir}/locale/*/LC_MESSAGES/*
%dir %{_datadir}/locale/ko_KR
%dir %{_datadir}/locale/ko_KR/LC_MESSAGES
%dir %{_datadir}/locale/sv_SE
%dir %{_datadir}/locale/sv_SE/LC_MESSAGES

%files devel
%defattr(-,root,root)
%dir %{_includedir}/boinc
%{_includedir}/boinc/*.h
# %{_libdir}/*a

%changelog

< Previous Next >