Building/Porting packages for Nexenta
Building/porting packages can be a simple or very complex task depending on the package you are porting. This is a getting started guide that outline the simple case. The more complex cases can be tackled once this outline is understood. To start, there is a little bit of setup to do before you begin porting packages.
Initial Configuration
1) You need to configure /etc/apt/sources.list with basic (recommended) or extended sources
Basic deb-src lines
deb-src http://apt.nexenta.org/ hardy-unstable main deb-src http://archive.ubuntu.com/ubuntu hardy main deb-src http://archive.ubuntu.com/ubuntu hardy-updates main deb-src http://security.ubuntu.com/ubuntu hardy-security main
Extended deb-src lines
deb-src http://apt.nexenta.org/ hardy-unstable contrib non-free deb-src http://archive.ubuntu.com/ubuntu hardy main universe multiverse deb-src http://archive.ubuntu.com/ubuntu hardy-updates main universe multiverse deb-src http://security.ubuntu.com/ubuntu hardy-security main restricted
3) Install some development packages
% sudo apt-get install devscripts
To know in advance if a package will be accepted, you can review the package policy for the main repository.
Porting a package
Now that you have completed the initial steps, you can port packages from Ubuntu sources. This can be an iterative process between testing and rebuilding a source. In the ideal case you will follow a pattern as outlined below:
1) get sources and build dependencies
% sudo -s # apt-get build-dep package-name # apt-get source package-name # cd package-name-(version)
2) Modify package version to reflect that it is part of Nexenta TODO: add discussion of how nexenta packages are versioned from Ubuntu sources.
# dch -i # dpkg-buildpackage -sa
- NB: You need to make sure you change the name/email address to the name/email address matching your GPG key. This will ensure that built packages are signed by you and that we can email you if there is a problem with the package.
3) Check the contents in the new packages. Make sure nothing missed.
# dpkg-deb -c ../*.deb
4) Install and test new packages
# dpkg -i ../*.deb # apt-get -f install
5) Upload the generated sources/binary .debs by referencing the .changes file.
# dput package-name*.changes
Now the package is well on it's way to the Nexenta repository. If it is not accepted you should receive an email outlining why it was not accepted.