This repository contains all the files necessary to build the Ubuntu/Debian packages for CRIU, published in the Open Build Service and Launchpad.
The following branches contain the source tree for each CRIU package:
# Install scripts for creating Debian packages:
apt-get update
apt-get install -y devscripts equivs
# Install build dependencies from `debian/control`
mk-build-deps --install --tool='apt-get -o Debug::pkgProblemResolver=yes --no-install-recommends --yes' debian/control
# Building a source package (without signature)
dpkg-buildpackage --unsigned-source --unsigned-changes --build=sourceThe following packages provide a command-line client for the Open Build Service:
- Fedora/CentOS
sudo dnf install osc- Ubuntu/Debian
sudo apt-get install oscThe first time you use the osc command, it will ask you to configure your credentials in ~/.config/osc/oscrc.
osc co devel:tools:criuTo update existing packages or check out new ones within a project directory, use the following commands:
osc up
osc up [directory]
osc up * # from within a project dir, update all packages
osc up # from within a project dir, update all packages AND check out all newly added packagesThe following commands can be used to add and remove files:
osc add FILE [FILE...]
osc delete FILE [...]
# Add all files new in the local copy, and remove all disappeared files.
osc addremoveosc ci # current dir
osc ci [file1] [file2] # only specific files
osc ci [dir1] [dir2] ... # multiple packages
osc ci -m "updated foobar" # specify a commit messageUbuntu package names are suffixed with the version number of the package. This allows Ubuntu to distinguish newer packages from older ones and remain up to date.
If you're creating an alternative version of a package already available in Ubuntu's repositories, you should ensure that:
- Your package supersedes the official Ubuntu version.
- Future Ubuntu versions will supersede your package.
To do this, add the suffix ppa (where n is your package's revision number). Here are two examples:
- Ubuntu package
myapp_1.0-1→ PPA packagemyapp_1.0-1ppa1 - Ubuntu package
myapp_1.0-1ubuntu3→ PPA packagemyapp_1.0-1ubuntu3ppa1
Version numbers must be unique. This has implications if you want to provide packages for multiple Ubuntu series at once:
-
If your package can be used on different versions of Ubuntu without being recompiled, then use the naming scheme already described and start by uploading your package to the oldest series you want to support. Once you have successfully uploaded your package to your PPA, you can copy the existing binaries to the new series; see "Copying packages" and use the "Copy existing binaries" option.
-
If your package needs to be recompiled to support multiple Ubuntu series, then you should add a suffix with a tilde and the series version to the version number. For example, a package for Yakkety Yak (16.10) could be named
myapp_1.0-1ubuntu3ppa1~ubuntu16.10.1, and for Xenial Xerus (16.04), it could be namedmyapp_1.0-1ubuntu3ppa1~ubuntu16.04.1. If you need to release an updated package, increment theppasuffix. It is important to note that specifying the version name here doesn't change the series you are targeting; this must still be set correctly as described in the Ubuntu packaging guide's section on the changelog file.
How you build your package depends on whether you're creating a brand new package or a derivative of a package that's already in Ubuntu's primary archive.
If you're creating an alternative version of a package that's already in Ubuntu's primary archive, you don't need to upload the .orig.tar.gz file, i.e., the original source.
The following command will build a new source package version without the .orig.tar.gz source file. This is necessary, for example, when the source file has already been uploaded to Launchpad.
debuild -S -sdThe following command will build a new source package with the .orig.tar.gz file. This is necessary, for example, when a new upstream release has been created and the .orig.tar.gz file has not yet been uploaded to Launchpad.
debuild -S -saThe "ppa" entry in /etc/dput.cf should be updated as follows:
[criu-ppa]
fqdn = ppa.launchpad.net
method = ftp
incoming = ~criu/ppa/ubuntu
login = anonymous
allow_unsigned_uploads = 0
Alternatively, you can use ~/.dput.cf instead.
Then, enter the following:
dput criu-ppa <package>_source.changes