Building client+libs or everything
==================================

The file debian/control.in is the template the control file to be used.
If the Package: boinc-server-maker is not commented out, then all the
%-starting lines will be uncommented, too. Otherwise, those lines are removed
and only those parts of the source tree be built that upstream tests for
every release. The server side may be at an unbuildable developmental state
at times.


Modifications to the upstream source
====================================
 This package uses the Debian quilt format to manage all modifications
 to the upstream source. Changes are stored in the source package as
 diffs in debian/patches and applied during the build.


quilt configuration
-------------------
 If you plan to modify patches in debian/patches, you need the quilt package.
 To keep it simple, these are recommended for ~/.quiltrc

QUILT_PATCHES="debian/patches"
QUILT_NO_DIFF_TIMESTAMPS=1


Repackaged upstream source:
===========================
 The BOINC project does not distribute source code releases as tarballs,
 but they are tagged in the BOINC Git repository.  Anonymous Git access
 is explained on http://boinc.berkeley.edu/trac/wiki/SourceCodeGit .
 The 'boinc' source package refers to the respective release tags.
 For more information see:

   http://boinc.berkeley.edu/trac/wiki/SourceCode

 We put the tarball generation into an 'export-boinc' script, which is available in
 our pkg-boinc Git repository:

   wget -O export-boinc \
    "http://git.debian.org/?p=pkg-boinc/scripts.git;a=blob_plain;f=export-boinc;hb=HEAD"
   chmod 755 export-boinc

 It will take a considerable while to download as the final tarball yields >15MB.
 The script will take care of remove the non-DFSG files from the upstream
 tag.  Above process is integrated into debian/get-orig-source.sh target.

 This target can be easily called by running "uscan" in your source tree, the first
 time will download the "boinc-v2" git repository in your parent directory, while on the
 next runs will just perform a "git update" to retrieve new commits and new tags.

 The final tarball is put on the parent directory, and can be easily imported with
 git-import-orig ../boinc_VERSION+dfsg.orig.tar.gz


Screen saver
------------

 No screen saver is built, disabled in the patch
 debian/patches/Makefile_subdirs.patch, which also allowed for the
 removal of the build dependencies
 libxcb-atom1-dev


Launcher icon sources
---------------------

The launcher icon used by BOINC Manager comes in multiple sizes, all found in
debian/icons, and were obtained from several sources:

sizes 32 and 256: Windows icon
sizes 16, 48 and 128: Mac OSX icon
size 512: Berkley BOINC website - Logos and graphics page

To re-create this icon set the following tools and packages are needed:

- convert and identify, from imagemagick
- icotool, from icoutils
- icns2png, from icnsutils

   sudo apt-get install imagemagick icoutils icnsutils

Then run from source top-level dir:

   tempdir=$(mktemp -d --tmpdir=.) && cd "$tempdir"
   for i in 32 256;    do icotool -x -w $i        ../clientgui/res/BOINCGUIApp.ico; done
   for i in 16 48 128; do icns2png -x -s $i -d 32 ../clientgui/res/BOINCMgr.icns; done
   wget http://boinc.berkeley.edu/logo/boinc_glossy2_512_F.tif &&
   convert +set 'date:create' *.tif boinc-512.png
   for icon in *.png; do
      size=$(identify -format '%G' "$icon") &&
      install -m 644 -D "$icon" ../debian/icons/hicolor/"$size"/apps/boincmgr.png
      if [ "$size" = "32x32" ]; then
         convert "$icon" boincmgr.xpm &&
         install -m 644 -D boincmgr.xpm ../debian/icons/pixmaps/boincmgr.xpm
      fi
   done
   cd .. && rm -rf "$tempdir"

This will create the icon images in a format and directory structure compatible
with Freedesktop.org Icon Specification (default 'hicolor' theme and 'apps'
context) and Debian Menu System (XPM format, max size 32x32, /usr/share/pixmaps)

Any changes to this structure should be reflected in boinc-manager.install,
source/include-binaries and boinc-manager.menu


Removed non-dfsg upstream files
===============================
 The files removed from upstream tag are:

   *.dll
   *.exe
   samples/example_app/bin
   api/ttf
   api/ttfont.{cpp,h}
   samples/glut
   zip/configure
   lib/mac
   curl
   samples/jpeglib
   .vimrc
   coprocs
   win_build
   mac_build
   clientgui/mac
   mac_installer
   client/app_stats_mac.cpp
   version.h
   .gitignore
