EzDevInfo.com

packaging interview questions

Top packaging frequently asked interview questions

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 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)

Advertisements

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 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)

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:

1:1.6.2-0ubuntu3

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 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.

NOTE:
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)

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 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)

create a .deb Package from scripts or binaries

I searched for a simple way to create .deb Packages for things which have no source code to compile (configs, shellscripts, proprietary software). This was quite a problem because most of the package tutorials are assuming you have a source tarball you want to compile. Then I've found this short tutorial (german).

Afterwards, I created a small script to create a simple repository. Like this:

rm /export/my-repository/repository/*
cd /home/tdeutsch/deb-pkg
for i in $(ls | grep my); do dpkg -b ./$i /export/my-repository/repository/$i.deb; done
cd /export/avanon-repository/repository
gpg --armor --export "My Package Signing Key" > PublicKey
apt-ftparchive packages ./ | gzip > Packages.gz
apt-ftparchive packages ./ > Packages
apt-ftparchive release ./ > /tmp/Release.tmp; mv /tmp/Release.tmp Release
gpg --output Release.gpg -ba Release

I added the key to the apt keyring and included the source like this:

deb http://my.default.com/my-repository/ ./

It looks like the repo itself is working well (I ran into some problems, to fix them I needed to add the Packages twice and make the temp-file workaround for the Release file). I also put some downloaded .deb into the repo, it looks like they are also working without problems. But my self created packages didn't... Wenn i do sudo apt-get update, they are causing errors like this:

E: Problem parsing dependency Depends
E: Error occurred while processing my-printerconf (NewVersion2)
E: Problem with MergeList /var/lib/apt/lists/my.default.com_my-repository_._Packages
E: The package lists or status file could not be parsed or opened.

Has anyone an idea what I did wrong?

UPDATE 2012-03-06: Just a a hint for another person who is searching for a easy way to create DEBs: Take a look at FPM.


Source: (StackOverflow)

Compiling source into a DEB package

I have always had a problem installing and removing compiled software, so I have decided I would like to build software from source into a .deb package for easier installation/removal.

I would like to know of an easy and short way to build source into a .deb package, as an end user.

I have tried:


Source: (StackOverflow)

Graphical tool for creating Deb packages

Are there any graphical tools for creating ubuntu/debian packages?


Source: (StackOverflow)

How do I put a package into the Ubuntu repositories? [duplicate]

Possible Duplicate:
How to get my software into Ubuntu?

I've created a Python application for Ubuntu. How do I package it and submit it for possible inclusion in the universe repository?


Source: (StackOverflow)

Confused about building OpenStack Packages?

I found OpenStack build task on Ubuntu QA site, but I am a little confused about the build steps.

Here's the link for build steps: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

From the jenkins build log, I know the steps how Ubuntu build a Openstack packages:

  1. get openstack code from github, use git clone
  2. build openstack tar.gz file using python setup.py sdist
  3. use bzr to get the debian control files which is maintenance by canonical
  4. use dch command to generate a new build release and commit it to local
  5. use bzr builddeb -S -- -sa -us -uc to generate source package and related control file, such like dsc
  6. sign the package
  7. use mk-build-deps to install dependency
  8. use sbuild to generate the real deb packages
  9. upload to testing repos

My questions is:

  1. In step 5, we already can generate the deb packages without -S, but why we finally use sbuild to generate it? Is this only for signature?
  2. What's the difference between bzr builddeb and sbuild?
  3. I found the build scripts which jenkins used is located here: ~openstack-ubuntu-testing/openstack-ubuntu-testing, but when I try to run any commands under bin, I always get:

    root@demo:~/openstack-ubuntu-testing/bin# ./build-package
    Traceback (most recent call last):
      File "./build-package", line 14, in <module>
        from openstack_ubuntu_testing.build.component_build import ComponentBuild
      File "/home/sysadmin/openstack-ubuntu-testing/bin/openstack_ubuntu_testing/build/component_build.py", line 11, in <module>
        from schroot.executor import SchrootExecutor
    ImportError: No module named schroot.executor
    

I tried to use pip to install schroot, but it seems they don't have a executor in it.

Please help.


Source: (StackOverflow)

How to get more people involved in improving X.org for Ubuntu? [closed]

In Ubuntu, X is one of the more critical pieces in the stack. As such, we get a TON of questions and bug reports about it, probably about 100 times as many as we have manpower to handle.

Canonical is hiring additional engineers to work on X which will help, but still there are many things that are outside the scope of what Canonical can do, so I feel it is really important to have a strong community involved in improving X in Ubuntu, particularly around getting all these massive amounts of bug reports answered, triaged, and (hopefully) solved.

However, it's tough to find people to work on X or to convince people that it is worthwhile for them to invest their time in it. How would you suggest going about encouraging people to get involved, who might not otherwise be thinking of working on X?


Source: (StackOverflow)

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)