Am Freitag, 22. Februar 2002 00:16 schrieb Joshua Haberman:
> On the other hand, the entire picogui-apps-cvs .deb is 119k at the
> moment. I can hardly justify breaking a 119k package into more than 5
> smaller packages. The benefit is very small, at most 100k of bandwidth
> and disk space per pgui user, and only on the offchance that someone
> knows they want atomicnav but not gridgame.
Yes, I did the same when RPM packaging picogui for SSVs internal
distribution. The point here is that in our distribution the host installing
our RPMs is normally not the one that actually runs the binaries. I suppose
that is also the case for most debian users. We actually use a simple meta
packaging system to decide which applications are put on the target
filesystem image.
Currently, I have the packages picogui-server, picogui-apps,
picogui-themetools, picogui-themes, libpicogui0, libpicogui0-devel and
picogui-docs. Our packages are currently not useful for people outside of
SSV, so I saw no point in putting the spec file into CVS, but you I have
added it to this mail so you can see decisions I have made.
Arnd <><
----
%define realname picogui
%define ver dev20020221
%define rel 1
%define lib_major 0
%ifarch i386 # build for local machine
%define _name %{realname}
%define _sourcename %{realname}-dnp
%define _lib_name lib%{realname}%{lib_major}
%define _prefix /usr
%define _sysconfdir /etc
%else # build for i486 or arm Dil/NET-PC
%define _name %{realname}-%{_target}
%define _sourcename %{realname}-dnp
%define _lib_name lib%{realname}%{lib_major}-%{_target}
%define _prefix /usr/local/%{_target}/%{_target}
%define _sysconfdir %{_prefix}/etc
%endif
%define _datadir %{_prefix}/share
%define _docdir %{_datadir}/doc
%define _themesdir %{_datadir}/pgui-themes
Summary: A client-server based application framework for embedded systems
Name: %{_sourcename}
Version: %{ver}
Release: %{rel}
License: GPL
Group: PicoGUI
Prefix: %{_prefix}
# arch i386 is for the local host!
Exclusivearch: i386 i486 arm
%ifnarch i386
AutoReqProv: no
%endif
Source: http://www.picogui.org/cvstgz/pgui-%{ver}.tar.gz
Source1: pgui-dev20020204-profile.user
Source2: pgui-dev20020212-host-profile.user
Source3: pgui-dev20020212-pgserver.conf
Source4: pgui-dev20020212-host-pgserver.conf
Source5: pgapps.list
Source6: pglibs.list
Source7: pgserver.list
Source8: pgthemes.list
# use pdflatex instead of latex when building the documentation
Patch: pgui-dev20020212-pdfdoc.patch
Buildroot: %{_tmppath}/%{realname}-%{ver}-root
BuildRequires: autoconf automake libtool
%ifarch i386
# when building on SuSE
BuildRequires: sdl xdevel
BuildRequires: doxygen > 1.2.8
BuildRequires: te_latex te_pdf
# when Building on Red Hat / Mandrake
# BuildRequires: libsdl1.1-devel XFree86-devel
# BuildRequires: doxygen > 1.2.8
# BuildRequires: tetex-latex tetex-pdftex
# An updated Doxygen can be found at www.doxygen.org or
#
http://guru.linuxbe.org/rpm/SuSE-7.3/Development/Documentation/doxygen-1.2.14-2.i386.rpm
%else
BuildRequires: libjpeg-%{_target}-devel perl
BuildRequires: %{_target}-gcc glibc-%{_target}-devel
%endif
%description
The PicoGUI server application, which provides the display engine for
PicoGUI clients.
%package -n %{_name}-themetools
Summary: PicoGUI Theme Builder
Group: PicoGUI
%description -n %{_name}-themetools
This set of tools allows the compilation of themes for the PicoGUI
client/server windowing system
%package -n %{_name}-server
Summary: The display server of PicoGUI
Group: PicoGUI
%description -n %{_name}-server
The PicoGUI server application, which provides the display engine for
PicoGUI clients.
%package -n %{_name}-themes
Summary: PicoGUI example themes
Group: PicoGUI
%description -n %{_name}-themes
These are the themes that ship with the PicoGUI distribution, you can
use them directly or build your own themes by their examples.
%package -n %{_lib_name}
Summary: Client-side library for picogui applications
Group: PicoGUI
%description -n %{_lib_name}
This is a small library that programs link to in order to connect to a
PicoGUI server.
Install this package to run programs for PicoGUI. If you want to write
your own PicoGUI applications, you will also need %{_lib_name}-devel.
%package -n %{_lib_name}-devel
Summary: Headers and static libraries for %{_lib_name}
Group: PicoGUI
Requires: %{_lib_name} = %{ver}
%description -n %{_lib_name}-devel
This is a small library that programs link to in order to connect to a
PicoGUI server.
Install this package if you are developing programs for PicoGUI.
%package -n %{_name}-apps
Summary: Applications for PicoGUI
Group: PicoGUI
Requires: %{_lib_name} >= %{ver}
%description -n %{_name}-apps
Here you shall find the 'real' applications for PicoGUI.
%package -n %{_name}-docs
Summary: Client API documentation for PicoGUI
Group: PicoGUI
%description -n %{_name}-docs
This is the client API documentation for PicoGUI. It is installed
in %{_docdir}/%{_name}-docs/ and is available in PDF, HTML and
RTF (MS Word) format. You will need this documentation if you
want to write applications for PicoGUI.
The latest version of these documents is also available in HTML
format on <http://pgui.sf.net/doc/doxygen/cli_c/>.
%prep
%setup -n pgui-%{ver}
%patch -p1
%build
%ifnarch i386
export CC=%{_target}-gcc
export PATH=/usr/local/%{_target}/bin:$PATH
export PROFILE_USER=%{SOURCE1}
export PGSERVER_CONF=%{SOURCE3}
%else
export PROFILE_USER=%{SOURCE2}
export PGSERVER_CONF=%{SOURCE4}
%endif
pushd pgserver
cp ${PROFILE_USER} profile.user
if [ ! -f configure ] ; then ./autogen.sh ; fi
CFLAGS=$RPM_OPT_FLAGS ./configure --host=%{_target} --disable-sdltest \
--with-extra-lpath=%{_libdir} \
--with-jpeg-dir=%{_prefix}/include \
--with-rpm-prefix=$RPM_BUILD_ROOT/%{_prefix}
make
install -m644 ${PGSERVER_CONF} pgserver.conf
%ifarch i386
install -d $RPM_BUILD_ROOT%{_themesdir}
install -m644 skin/ipc3219.jpeg $RPM_BUILD_ROOT%{_themesdir}
install -m644 skin/ipc3219.map $RPM_BUILD_ROOT%{_themesdir}
%endif
popd
pushd themetools
if [ ! -f configure ] ; then ./autogen.sh ; fi
# compile for native system:
rm -f config.cache
CFLAGS='-O2' CC='gcc' ./configure
--with-rpm-prefix=$RPM_BUILD_ROOT/%{_prefix}
make
cd examples
# crsr_alpha is borken in 20020204
rm crsr_alpha.*
for i in *.ths ; do
../themec/themec $i
done
popd
pushd cli_c
if [ ! -f configure ] ; then ./autogen.sh ; fi
CFLAGS=$RPM_OPT_FLAGS ./configure --host=%{_target} \
--with-rpm-prefix=$RPM_BUILD_ROOT/%{_prefix}
make
# hack: symbolic link is needed to easily compile apps
ln -s src/.libs lib
%ifarch i386
# this is for building the documentation. It could also be
# done for the other packages, but doxygen and latex are
# extra BuildRequires that I want to avoid when possible
rm -rf ../html/
doxygen
make -C doc/latex pdf
mv doc/latex/refman.pdf ..
mv doc/rtf/refman.rtf ..
mv doc/html ..
%endif
popd
pushd apps
if [ ! -f configure ] ; then ./autogen.sh ; fi
CFLAGS=$RPM_OPT_FLAGS ./configure --host=%{_target} \
--with-rpm-prefix=$RPM_BUILD_ROOT/%{_prefix} \
--with-picogui=$PWD/../cli_c \
--disable-shared
PATH=$PWD/../themetools/themec:$PATH make
popd
%install
%ifnarch i386
export PATH=/usr/local/%{_target}/bin:$PATH
%endif
pushd pgserver
make install prefix=$RPM_BUILD_ROOT%{_prefix}
install -d $RPM_BUILD_ROOT%{_sysconfdir}
install -m644 pgserver.conf $RPM_BUILD_ROOT%{_sysconfdir}/pgserver.conf
popd
pushd themetools
make install prefix=$RPM_BUILD_ROOT%{_prefix}
cd examples
install -d $RPM_BUILD_ROOT/%{_themesdir}/sources
install -d $RPM_BUILD_ROOT/%{_themesdir}/sources/data
install *.ths $RPM_BUILD_ROOT/%{_themesdir}/sources
install data/*.* $RPM_BUILD_ROOT/%{_themesdir}/sources/data
install data/README $RPM_BUILD_ROOT/%{_themesdir}/sources/data
install *.th $RPM_BUILD_ROOT/%{_themesdir}
popd
pushd cli_c
make install prefix=$RPM_BUILD_ROOT%{_prefix}
popd
pushd apps
make install prefix=$RPM_BUILD_ROOT%{_prefix}
datadir=$RPM_BUILD_ROOT%{_datadir}/picogui
popd
install -d $RPM_BUILD_ROOT%{_prefix}/dist
install -m644 %{SOURCE5} %{SOURCE6} %{SOURCE7} %{SOURCE8}
$RPM_BUILD_ROOT%{_prefix}/dist
%files -n %{_name}-themetools
%defattr(-,root,root)
%{_prefix}/bin/thdump
%{_prefix}/bin/themec
%{_themesdir}/sources
%files -n %{_name}-server
%defattr(-,root,root)
%{_prefix}/bin/pgserver
%{_prefix}/bin/tpcal
%{_sysconfdir}/pgserver.conf
%ifnarch i386
%{_prefix}/dist/pgserver.list
%endif
%files -n %{_name}-themes
%defattr(-,root,root)
%{_themesdir}/*.th
%ifnarch i386
%{_prefix}/dist/pgthemes.list
%else
%{_themesdir}/ipc3219*
%endif
%files -n %{_lib_name}
%defattr(-,root,root)
%{_prefix}/lib/libpgui.so.*
%ifnarch i386
%{_prefix}/dist/pglibs.list
%endif
%files -n %{_lib_name}-devel
%defattr(-,root,root)
%{_prefix}/include
%{_prefix}/lib/lib*.a
%{_prefix}/lib/lib*.la
%{_prefix}/lib/lib*.so
%files -n %{_name}-apps
%defattr(-,root,root)
%{_prefix}/bin/atomicnav
%{_prefix}/bin/battleship
%{_prefix}/bin/blackout
%{_prefix}/bin/bouncyball
%{_prefix}/bin/canvastst
%{_prefix}/bin/dialogdemo
%{_prefix}/bin/fieldtest
%{_prefix}/bin/galaxy
%{_prefix}/bin/gridgame
%{_prefix}/bin/hello
%{_prefix}/bin/hello-ja
%{_prefix}/bin/imgview
%{_prefix}/bin/omnibar
%{_prefix}/bin/pgboard
%{_prefix}/bin/pgboard_cmds
%{_prefix}/bin/pgl-clock
%{_prefix}/bin/pgl-keyboard
%{_prefix}/bin/pgl-launcher
%{_prefix}/bin/pgl-toolbar
%{_prefix}/bin/pgtuxphone
%{_prefix}/bin/picomail
%{_prefix}/bin/pterm
%{_prefix}/bin/scribble
%{_prefix}/bin/vrcalc
%{_prefix}/share/pgboard
%{_prefix}/share/picogui
%ifnarch i386
%{_prefix}/dist/pgapps.list
%endif
%ifarch i386
%files -n %{_name}-docs
%defattr(-,root,root)
%doc refman.* html
%endif
%clean
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf ${RPM_BUILD_ROOT}
%Changelog
* Thu Feb 21 2002 ALi Baba <[EMAIL PROTECTED]> 20020221-1
- upgrated to latest Version 20020221
* Thu Feb 21 2002 Arnd Bergmann <[EMAIL PROTECTED]> 20020212-2
- correct files in apps package
- include list files
- build documentation package
- include pgserver.conf
* Wed Feb 13 2002 Arnd Bergmann <[EMAIL PROTECTED]> 20020212-1
- start changelog :-O
- update to new build system
- update to latest picogui
- change file owners
_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/pgui-devel