3872
Comment: separated developers information from the main page
|
8681
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.
Ensure you have all the packages installed that are required to build boinc:
sudo apt-get build-dep boinc
Prepare a source directory and download the BOINC source package and it's build dependencies:
mkdir -p ~/src/boinc cd !$ apt-get source boinc
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
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
Bugs in packages maintained by the Debian BOINC Maintainers (including usertags)
Status in the unstable wanna-build databases: boinc, boinc-app-seti
Security Bug Tracker: boinc, boinc-app-seti
DDTP pages for: boinc, boinc-client, boinc-dbg, boinc-dev, boinc-manager, boinc-app-seti
Build logs of the experimental and backports.org autobuilder: boinc, boinc-app-seti
Build logs of the Debian unofficial ports autobuilder: boinc, boinc-app-seti
Status of our packages and bugs: bugstats and karma
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 |
|
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
upstream has working Debian packages for internal use |
|
available as boinc-app-seti and works nicely |
|
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.