packaging interview questions

Top 15 packaging interview questions

9414 Jobs openings for packaging

Why use sbuild over pbuilder?

There are numerous ways to build Debian packages in a clean and reproducible environment. Two of the most frequently used are pbuilder and sbuild. Personally, I've always used pbuilder. I find pbuilder much easier to use and maintain. I haven't been able to find any side by side comparison of the two. What am I missing out on?

What advantages are there in using sbuild over pbuilder?

Source: (StackOverflow)

What is the Snap packaging format?

I have a very little knowledge about the 'Snap packaging format'. What I know is that 'Snap' is an alternative packaging format like .deb.

What I don't know is

  • Why did Canonical chose it?
  • What are the main advantages of 'Snap' over .deb?
  • Will .deb be abandoned, or is it already abandoned?

Source: (StackOverflow)

How to apply a changelog file to packages in a PPA when building from recipe?

When my package gets build by launchpad using a recipe, it ignores the ./debian/changelog file I provide, and it generates a useless one like following:

harmonyseq (0.14~natty1) maverick; urgency=low

  * Auto build.
 -- Rafal Cieslak <rafalcieslak256@gmail.com>   Tue, 25 Jan 2011 16:56:57 +0000

It would be much better if launchpad stored the list of changes I prepared in the changelog file, rather than just putting "Auto build" there.

How do I force launchpad to use the list of changes from my changelog file, when building packages from a recipe?

Source: (StackOverflow)

How does Application Review Board work?

According to https://wiki.ubuntu.com/AppReviews the Application Review Process is good both for upstream software developers and Ubuntu packagers. The point seems to be that the upstream developers have the advantage of getting their apps into the Software Center sooner and easier, while they help the Ubuntu package managers by preparing their application for packaging.

This seems to be a great deal. The instruction on wiki states that a developer fulfills some steps listed there, including uploading the application to a PPA, and requests review, and after some time it is reviewed, and accepted & included to Ubuntu repositories, or not accepted at all.

Although this looks like a simple, fair way to quickly add an application to the Software Center, I think I am missing something. I have noticed, that while there are some requests pending, there is no (or barely any) activity there. Everything seems as if it was frozen about 5-6 months ago, and it smells a bit abandoned.

Did I understand anything wrong, and everything is okay (maybe for example they are being reviewed only at the UDS?), or did something change? Could anyone explain me clearly, how exactly this process of reviews (and inclusion in repositories) works?

Source: (StackOverflow)

Upgrading to latest stable Mono

Mono 2.8 was recently released boasting a couple of large performance improvements. It's far too late for it to make it into Maverick and I'm fairly inpatient.

I don't use Mono for anything mission-critical (just playing music and sorting photos) and if it breaks everything related to Mono, I can probably either live with it or fix it. I'm aware of how much I stand to lose if I mess things up.

So with that acknowledged, does anybody here know how to build Mono in a way where it could be dropped in to replace the current Mono (2.6.7)? By this I mean ideally mirroring the packages that Ubuntu uses so that if the worse does happen, I can just downgrade the packages.

Or is there a PPA that does all this for me?

Source: (StackOverflow)

How do I create a deb package for a single python script?

I have a single python script that I want to distribute as a deb package. It is a indicator which shows local date in Unity panel. I did follow create a .deb Package from scripts or binaries but I could not create a deb package because it fails.

Can someone give me a step-by-step instruction on what I should do? As far as I know this script depends on python-appindicator.

I do not want any links to Debian/Ubuntu packaging instructions. I have seen most of them. I don't find them beginner friendly.

Source: (StackOverflow)

Why do some packages have extra numbers on the front of their version string?

I have just noticed that Wine (and a number of other packages) have shifted their versioning scheme to something like:


I understand everything after the 1:... But what does the 1: refer to?

It doesn't seem to mirror the major version. Looking at a list of pending upgrades, there are versions like: 2:4.1.3... and there are plenty of packages without the #: prefix.

What's going on?

Source: (StackOverflow)

How do I propose my project to be part of Debian too?

I have a new project hosted at launchpad.net. My project can be useful for both: Ubuntu and Debian. However, I can't find a documentation to start host my project at launchpad.net and get my package mirrored back to Debian.

  • How to propose my project to be part of Debian too?
  • What is the difference between a Ubuntu and a Debian?
  • Can I keep it hosted at launchpad.net but ask it to be cross-hosted (and packaged) at Debian too?

Thanks in advance.

Source: (StackOverflow)

PPA & Packaging: Having versions of packages for multiple distros

(quote from chat)

Got a PPA on launchpad for source packages for an IRC bot project I'm associated with (since its all the intermediate packaging for the stuff between releases, it's classified as an "experimental" PPA). Question: I've already packaged the stuff for a lucid build. Any clue how I'd be able to create the same packaging, except package it for maverick, and put it up to the same PPA that I've put the lucid packaging to?

Source: (StackOverflow)

How to create a meta-package that automatically installs other packages?

I'd like to be able to create a package that doesnt contain any code or programs itself, but instead installs other packages that exist in the repositories onto a computer, sort of how the ubuntu-restricted-extras package does?

Source: (StackOverflow)

How to get my software into Ubuntu?

As a developer of free software, I want to get my application into Ubuntu.

Should I provide a source tarball and ask for packaging? Or should I create a package myself? Should I target Ubuntu directly, or should I try to get into Debian and then into Ubuntu automatically?

Source: (StackOverflow)

How to have Debian packaging generate two packages given an upstream source archive?

I am packaging something for my PPA. The upstream source is a .tar.gz archive which is Makefile-based.

Since this package has a significant amount of architecture-independent data, it would be wise to have the build scripts generate two packages:

  • package
  • package-data

How can I set this up? I've edited my Debian control file to generate two packages, but I have no idea how to get the right files to the right package.

Since the data files are currently all installed via the Makefile, I am kind of lost here.

Source: (StackOverflow)

How to make a deb file which tells the system a reboot is required?

I plan to set up a PPA or perhaps submit my package to Debian, but there is something I really need to know, I understand that packages normally do something with /var/run/reboot-required and are listed in /var/run/reboot-required.pkg, but how exactly does one create a deb file which tells the system through that method that a reboot is required to make all the necessary changes? Is there simply a flag I need to set in one of the files or is it more manual than that? I am running Ubuntu GNOME 16.04 with GNOME 3.20.

Source: (StackOverflow)

How to solve dpkg-source source problem when building a package?

Has anyone here had some experience creating a Debian / Ubuntu package? I am trying to backport the lammps package (http://packages.ubuntu.com/quantal/lammps) from Ubuntu 12.10 (Quantal) to Ubuntu 12.04

I only need it unofficially - just need a .deb package for convenience's sake when creating custom virtual machine images for deployment to IaaS platform.

Following the Ubuntu Packaging Guide at https://wiki.ubuntu.com/PackagingGuide , I can build successfully, except when I try to rebuild using the debuild command, I usually get this error:

 dpkg-source: error: aborting due to unexpected upstream changes, see
 /tmp/lammps_0~20120615.gite442279-1.diff.aie32n dpkg-source: info: you
 can integrate the local changes with dpkg-source --commit
 dpkg-buildpackage: error: dpkg-source --include-binaries -i -b
 lammps-0~20120615.gite442279 gave error exit status 2

Running 'make clean-all' at the src directory still does not solve the problem. Is there any way to completely clean off all the files that were generated during the build process, or to ask debuild to ignore any differences in the source files?

Source: (StackOverflow)

How to create and administer multi-architecture PPAs?

I have a program that needs to be recompiled for every ubuntu version.

Currently I am packaging it using Ubuntu's PPA just for the current distribution.

Eventually, I have to provide packages for the previous ubuntu version.

I am not sure how to accomplish this.

How does the Ubuntu PPA build server works - does it just look at the distribution field in the most current changelog entry (in the debian/changelog file) to determine for what distribution the package should be build?

The debian specification allows to add multiple distributions into the distribution field. But this does not seam to help me.

Some ubuntu documents talk about encoding the distribution name into the version number (in the debian changelog file).

But how does this work in practice? A new version of the program is available, then what? Do I add for each distribution a new changelog entry and the PPA buildserver builds automatically for each distribution new packages after dput'ing it up? Or does the PPA buildserver just looks at the first changelog entry?

Source: (StackOverflow)