Differences between revisions 1 and 109 (spanning 108 versions)
Revision 1 as of 2006-01-17 18:40:14
Size: 3872
Editor: FrankThomas
Comment: separated developers information from the main page
Revision 109 as of 2016-06-12 04:20:49
Size: 8681
Editor: PaulWise
Comment: update for ports integration into Debian
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= Information for developers = #language en
Line 3: Line 3:
== Using the Subversion repository == = Resources for Debian BOINC Maintainers =
Line 5: Line 5:
Development is coordinated through a [http://svn.debian.org/wsvn/pkg-boinc Subversion repository].
It follows a brief HOWTO for working with this repository. For a detailed introduction in
Subversion have a look at the [http://svnbook.red-bean.com/ Version Control with Subversion] book.
The purpose of this page is to provide resources to aid members of the [[Teams/DebianBOINCMaintainers|Debian BOINC maintenance team]] and curious hobbyists in packaging [[BOINC]] and related
software. Anyone who understands (or corrects) the instructions given below is certainly of help for us. Raise your hand if you feel like helping out.
Line 9: Line 8:
 * Download the files from the the repository. Substitute ''smoe-guest'' in the URL with your userid: {{{
svn co svn+ssh://smoe-guest@svn.debian.org/svn/pkg-boinc
<<Anchor(VCS)>>
== Using pkg-boinc's git source code repositories ==
The development of our packages is now coordinated in Git repositories. For a tutorial on how to build the boinc packages follow the [[BOINC/Development/GitUsage]] pages. This starts with the checkout of the source code and truly ends with the packages how they are also uploaded to the distribution. The instructions may appeal also to those with some interest in git usage alone. As an extension, see [[BOINC/Development/Backports]] with instructions how to port back to older distributions.

We are steadily following upstream's releases. This [[http://git.debian.org/?p=pkg-boinc/boinc.git;a=blob;f=debian/TODO.Debian|file]] in the repository attempts to reference current activities. It is of a particular interest of the BOINC developers to see the server side of BOINC develop separately from the clients. This will be addressed as time permits.



=== Compilation from the distribution's source package ===

You need to decide what source tree to start with. There are two ways. The first is that the Debian Maintainers use. It takes the BOINC sources of the BOINC developers and adds ever better working packaging instructions. Albeit not ultimately complicated, you may want to skip that as your first encounter. The second approach is to use what the Maintainers eventually released to Debian build demons - it means that this works for robots, so you can also just those readily prepared bits for your local build.

==== Alternative 1: Like we developers are doing it - from the git repository ====

If new to Linux development, you may possibly decide to start with what the automated Debian build demons do to get the package compiled on various platforms: they use the source packages the Debian maintainer uploads. Once you ever compiled a Debian package yourself, please learn about git and check out our repository. Our introduction at [[BOINC/Development/GitUsage]] by now does a fairly good job. It just helps communicating with us.


==== Alternative 2: Like the build daemons are doing it - be a robot on what was tagged for release ====


To install the BOINC packages from source, a `deb-src` line pointing to Debian's main archive must be present in your `/etc/apt/sources.list` file. Also make sure that you have the `build-essential` and `fakeroot` packages installed on your system. Curiosity is a good motivation to inspect and compile the source.

 1. Ensure you have all the packages installed that are required to build boinc:{{{
sudo apt-get build-dep boinc
Line 13: Line 34:
 * Now, files can be edited and subsequently be submitted (''checked in'') back to the repository: {{{
svn ci
 1. Prepare a source directory and download the BOINC source package and it's build dependencies: {{{
mkdir -p ~/src/boinc
cd !$
apt-get source boinc
Line 17: Line 40:
 * To get the latest version again, run ''update'' without the reqirement of specifying the URL again, which is stored in local files: {{{
svn up
 1. Change to the BOINC directory and build the sources. Before running `dpkg-buildpackage` you can apply patches to the BOINC source or set compiler flags to optimize the BOINC core client. {{{
cd boinc-X.Y.Z/
dpkg-buildpackage -rfakeroot -us -uc
Line 21: Line 45:
 * The program [http://packages.debian.org/unstable/devel/svn-buildpackage svn-buildpackage] is nice for creating Debian packages directly from a Subversion working directory. Before building packages you need a BOINC .orig.tar.gz file, see [http://svn.debian.org/wsvn/pkg-boinc/trunk/boinc/debian/README.Debian-source?op=file README.Debian-source]. Once you obtained a source tarball run {{{
svn-buildpackage -rfakeroot
}}} in the directory `trunk/boinc/` and subsequently inspect the file `trunk/boinc/.svn/deb-layout`. That file defines `origDir`, the directory where the .orig.tar.gz files are stored. Once this variable is adjusted another run of `svn-buildpackage -rfakeroot` should build BOINC source and binary packages.
 1. After `dpkg-buildpackage` successfully finishes the build you can install your custom built packages: {{{
cd ~/src/boinc
dpkg -i boinc-client_X.Y.Z-R_ARCH.deb boinc-manager_X.Y.Z-R_ARCH.deb
}}}
Line 25: Line 50:
For remaining questions send an email to our [http://lists.alioth.debian.org/mailman/listinfo/pkg-boinc-devel mailing list]. If `dpkg-buildpackage` fails to build the BOINC packages this probably indicates a bug in our sources and it is worth reporting it to the pkg-boinc-devel mailing list pkg-boinc-devel@lists.alioth.debian.org.
Line 27: Line 52:
[[Anchor(TODO)]]
== To-do list ==
<<Anchor(BookmarksDebian)>>
== Bookmarks for BOINC in Debian ==
 * [[http://qa.debian.org/developer.php?login=pkg-boinc-devel@lists.alioth.debian.org|Packages overview for the Debian BOINC Maintainers]]
 * [[http://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=pkg-boinc-devel%40lists.alioth.debian.org;users=bts-link-upstream%40lists.alioth.debian.org|Bugs in packages maintained by the Debian BOINC Maintainers (including usertags)]]
 * Overview of source packages: [[http://packages.qa.debian.org/b/boinc.html|BOINC]],
 [[http://packages.qa.debian.org/b/boinc-app-seti.html|SETI@home]]
 * Web-based repository browsing: [[http://git.debian.org/?p=pkg-boinc/boinc.git|BOINC]],
 [[http://git.debian.org/?p=pkg-boinc/boinc-app-seti.git|SETI@home]]
 * Status in the unstable wanna-build databases: [[http://buildd.debian.org/boinc|boinc]],
 [[http://buildd.debian.org/boinc-app-seti|boinc-app-seti]]
 * Security Bug Tracker: [[http://security-tracker.debian.net/tracker/source-package/boinc|boinc]],
 [[http://security-tracker.debian.net/tracker/source-package/boinc-app-seti|boinc-app-seti]]
 * DDTP pages for: [[http://ddtp.debian.net/ddt.cgi?source=boinc|boinc]],
 [[http://ddtp.debian.net/ddt.cgi?package=boinc-client|boinc-client]],
 [[http://ddtp.debian.net/ddt.cgi?package=boinc-dbg|boinc-dbg]],
 [[http://ddtp.debian.net/ddt.cgi?package=boinc-dev|boinc-dev]],
 [[http://ddtp.debian.net/ddt.cgi?package=boinc-manager|boinc-manager]],
 [[http://ddtp.debian.net/ddt.cgi?package=boinc-app-seti|boinc-app-seti]]
 * Build logs of the experimental and [[http://backports.org/|backports.org]] autobuilder:
 [[https://buildd.debian.org/status/package.php?p=boinc&suite=experimental|boinc]],
 [[https://buildd.debian.org/status/package.php?p=boinc-app-seti&suite=experimental|boinc-app-seti]]
 * Build logs of the [[https://www.ports.debian.org/|Debian unofficial ports]] autobuilder:
 [[http://buildd.debian.org/boinc|boinc]],
 [[http://buildd.debian.org/boinc-app-seti|boinc-app-seti]]
 * Status of our packages and bugs: [[http://io.debian.net/~tar/bugstats/?pkg-boinc-devel@lists.alioth.debian.org|bugstats and karma]]
Line 30: Line 78:
 * Things that need to be done before uploading to DebianUnstable:
  * Write expressive long descriptions for `boinc-manager` and `boinc-dev`.
  * Checks against http://ftp-master.debian.org/REJECT-FAQ.html
  ||OpenSSL||Not applicable - BOINC is '''LGPL''' and not GPL||
  ||CDBS||Not applicable||
  ||PHP||Not applicable||
  ||License||fine (Frank)||
  ||Transition||fine (Steffen)||
  ||Experimental library||fine (Frank) - wxWidgets is in sid||
  ||Hijack||fine||
  ||Package split||fine (Frank)||
  ||FTBFSIASW||fine||
  ||Copyright||fine (Frank)||
  ||License II||fine (Frank) - we have copies of every license in `debian/copright`||
  ||Non-main||fine (Steffen)||
  ||Package Content||fine (Steffen)||
  ||Policy Violation||should be fine - if not `lintian`/`linda` will complain||
  ||Contents of orig.tar.gz||fine (Frank)||
  ||Lintian||fine||
  ||rpath||fine (Frank)||
  ||Package name||fine||
  ||Common license||fine (Frank)||
<<Anchor(BookmarksUpstream)>>
== Upstream resources for packagers ==
 * [[http://boinc.berkeley.edu/trac/wiki/UnixClientPackage|Layout of BOINC client packages]]
 * [[http://boinc.berkeley.edu/trac/wiki/UnixProjectPackage|Layout of BOINC server packages]]
Line 53: Line 83:
 * General major TODOs:
  * Write expressive long descriptions for `boinc-server`.
  * Implement a working solution for `boinc-client` and `boinc-app-*` packages.
  * Use `test/test_sanity.py` to check runtime dependencies of the `boinc-server` package.
  * Have a look at: https://uimon.cern.ch/twiki/bin/view/LHCAtHome/BOINCserverRPM - Can we adopt some ideas for our `boinc-server` package?
<<Anchor(other_pkgs)>>
== Packages for other operating systems ==
||Fedora||BOINC: [[https://admin.fedoraproject.org/pkgdb/acls/name/boinc-client|Package Database]],[[http://cvs.fedoraproject.org/viewcvs/rpms/boinc-client/|CVS]] ||
||<rowspan=2>FreeBSD||BOINC: [[http://www.freebsd.org/cgi/ports.cgi?query=boinc-client&stype=all|boinc-client port]], [[http://www.freebsd.org/cgi/cvsweb.cgi/ports/net/boinc-client/|CVS]] ||
||SETI@home Enhanced: [[http://www.freebsd.org/cgi/ports.cgi?query=boinc-setiathome-enhanced&stype=all|boinc-setiathome-enhanced port]],[[http://www.freebsd.org/cgi/cvsweb.cgi/ports/astro/boinc-setiathome-enhanced/|CVS]]||
||<rowspan=2>Gentoo||BOINC: [[http://www.gentoo-portage.com/sci-misc/boinc|Portage]],[[http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-misc/boinc/|CVS]]||
||SETI@home: [[http://www.gentoo-portage.com/sci-astronomy/setiathome|Portage]],[[http://sources.gentoo.org/viewcvs.py/gentoo-x86/sci-astronomy/setiathome/|CVS]]||
||NetBSD||BOINC: pkgsrc.se [[http://pkgsrc.se/wip/boinc-client|boinc-client]],[[http://pkgsrc.se/wip/boinc-lib|boinc-lib]]||
||<rowspan=2>Ubuntu||BOINC: [[http://packages.ubuntu.com/src:boinc|packages.u.c]],[[https://launchpad.net/distros/ubuntu/+source/boinc/|Launchpad]]||
||SETI@home: [[http://packages.ubuntu.com/src:boinc-app-seti|packages.u.c]],[[https://launchpad.net/distros/ubuntu/+source/boinc-app-seti/|Launchpad]]||
Line 59: Line 94:
 * General minor TODOs:
  * Explain in `boinc-client`'s manpage or README how to restrict GUI RPC access by changing the permission of the `gui_rpc_auth.cfg` file.
  * Revise all manpages.
<<Anchor(ApplicationsVCS)>>
== Source repositories of BOINC applications ==
Line 63: Line 97:
 * Thoughts for the Wiki
  * Explain how to set up a project
  * Create more sub pages for
    * Trouble shooting
||[[http://einstein.phys.uwm.edu/license.php|Einstein@Home]]||upstream has working Debian packages for internal use||
||[[https://setisvn.ssl.berkeley.edu/svn/|SETI@home]]||available as [[DebianPts:boinc-app-seti]] and works nicely||
||[[http://milkyway.cs.rpi.edu/milkyway/download/code_release/|MilkyWay@home]]||available as [[DebianPts:boinc-app-milkyway]], may work or not, needs new maintainer||
Line 68: Line 101:
 * Things that need to be done before releasing the next upstream release:
  * 5.3 / 5.4: Remove `01_amd64-gcc4-fixes.dpatch`, since it was applied upstream.
  * 5.3 / 5.4: Add "-daemon" to init script, see [http://www.ssl.berkeley.edu/pipermail/boinc_dev/2006-January/004738.html this post].
[[http://www.desktopgrid.hu/index.php?page=1|SZTAKI]] prepared an infrastructure to run arbitrary jobs on BOINC in sync with regular Computational Grids. For that, they have also prepared Debian packages for the BOINC servers. Their efforts were never merged.
Line 72: Line 103:
== BOINC packages for other operating systems ==
 * Gentoo: [http://www.gentoo-portage.com/sci-misc/boinc Portage], [http://www.gentoo.org/cgi-bin/viewcvs.cgi/sci-misc/boinc/ CVS]
== See also ==

 * [[http://www.spy-hill.com/~myers/help/boinc/|Eric Myer's BOINC home page]]
 * [[http://www.boinc-wiki.info/Eric_Myers%27_BOINC_Developers%27_Notes|Eric Myer's BOINC devel wiki]]
 * [[http://boinc.berkeley.edu/trac/query|BOINC Upstream Bug Tracking System]]

Resources for Debian BOINC Maintainers

The purpose of this page is to provide resources to aid members of the Debian BOINC maintenance team and curious hobbyists in packaging BOINC and related software. Anyone who understands (or corrects) the instructions given below is certainly of help for us. Raise your hand if you feel like helping out.

Using pkg-boinc's git source code repositories

The development of our packages is now coordinated in Git repositories. For a tutorial on how to build the boinc packages follow the BOINC/Development/GitUsage pages. This starts with the checkout of the source code and truly ends with the packages how they are also uploaded to the distribution. The instructions may appeal also to those with some interest in git usage alone. As an extension, see BOINC/Development/Backports with instructions how to port back to older distributions.

We are steadily following upstream's releases. This file in the repository attempts to reference current activities. It is of a particular interest of the BOINC developers to see the server side of BOINC develop separately from the clients. This will be addressed as time permits.

Compilation from the distribution's source package

You need to decide what source tree to start with. There are two ways. The first is that the Debian Maintainers use. It takes the BOINC sources of the BOINC developers and adds ever better working packaging instructions. Albeit not ultimately complicated, you may want to skip that as your first encounter. The second approach is to use what the Maintainers eventually released to Debian build demons - it means that this works for robots, so you can also just those readily prepared bits for your local build.

Alternative 1: Like we developers are doing it - from the git repository

If new to Linux development, you may possibly decide to start with what the automated Debian build demons do to get the package compiled on various platforms: they use the source packages the Debian maintainer uploads. Once you ever compiled a Debian package yourself, please learn about git and check out our repository. Our introduction at BOINC/Development/GitUsage by now does a fairly good job. It just helps communicating with us.

Alternative 2: Like the build daemons are doing it - be a robot on what was tagged for release

To install the BOINC packages from source, a deb-src line pointing to Debian's main archive must be present in your /etc/apt/sources.list file. Also make sure that you have the build-essential and fakeroot packages installed on your system. Curiosity is a good motivation to inspect and compile the source.

  1. Ensure you have all the packages installed that are required to build boinc:

    sudo apt-get build-dep boinc
  2. Prepare a source directory and download the BOINC source package and it's build dependencies:

    mkdir -p ~/src/boinc
    cd !$
    apt-get source boinc
  3. Change to the BOINC directory and build the sources. Before running dpkg-buildpackage you can apply patches to the BOINC source or set compiler flags to optimize the BOINC core client.

    cd boinc-X.Y.Z/
    dpkg-buildpackage -rfakeroot -us -uc
  4. After dpkg-buildpackage successfully finishes the build you can install your custom built packages:

    cd ~/src/boinc
    dpkg -i boinc-client_X.Y.Z-R_ARCH.deb boinc-manager_X.Y.Z-R_ARCH.deb

If dpkg-buildpackage fails to build the BOINC packages this probably indicates a bug in our sources and it is worth reporting it to the pkg-boinc-devel mailing list pkg-boinc-devel@lists.alioth.debian.org.

Bookmarks for BOINC in Debian

Upstream resources for packagers

Packages for other operating systems

Fedora

BOINC: Package Database,CVS

FreeBSD

BOINC: boinc-client port, CVS

SETI@home Enhanced: boinc-setiathome-enhanced port,CVS

Gentoo

BOINC: Portage,CVS

SETI@home: Portage,CVS

NetBSD

BOINC: pkgsrc.se boinc-client,boinc-lib

Ubuntu

BOINC: packages.u.c,Launchpad

SETI@home: packages.u.c,Launchpad

Source repositories of BOINC applications

Einstein@Home

upstream has working Debian packages for internal use

SETI@home

available as boinc-app-seti and works nicely

MilkyWay@home

available as boinc-app-milkyway, may work or not, needs new maintainer

SZTAKI prepared an infrastructure to run arbitrary jobs on BOINC in sync with regular Computational Grids. For that, they have also prepared Debian packages for the BOINC servers. Their efforts were never merged.

See also