LXQt Packaging Team

About the LXQt packaging team

The Debian LXQt packaging team maintains LXQt software in Debian. This includes the LXQt components, libraries and some 3rd party qt applications.

These LXQt components, libraries and some 3rd party qt applications are maintained inside of pkg-lxqt project.

Get in touch

Team Package Overview

Get involved

How to contribute

We always welcome people to help us out. If you want to, please follow the following guidelines.

Using git and git-stuff

We use git together with git-stuff to manage the git repositories for each package. You may install them:

 apt-get install git git-stuff

packaging workflow

Use debuild/pdebuild as building tool. Use git or git-staff as manage tool. See file:///usr/share/doc/git-stuff/ for more details.

This Git repository layout follows DEP-14. In short, a git repository contains the following branches:

How to add new package into team git repo

If you have a new package wants to add to team git repo: Please ask one of project admins to create a empty repository for it on Alioth first. If you have sufficient rights, please create the repo first:

# on git.debian.org
 $ cd /git/pkg-lxqt
 $ /home/groups/pkg-lxqt/scripts/setup-repository package ['package description']
 $ cp /home/groups/pkg-lxqt/scripts/post-receive package.git/hooks
 $ cd package.git
 $ git remote add --mirror github git git@github.com:debian-lxqt/package.git

Create a corresponding repo on http://github.com/debian-lxqt too. After creation please add a Webhook for IRC notifications:

 Server: irc.oftc.net
 Port: 6667
 Room: #debian-lxqt
 Nick: github
 Message without join: marked
 Active: marked

You are now done with the preparation of the git hosting.

If you don't have a local repository for the package, clone the empty one:

 $ git clone user@git.debian.org:/git/pkg-lxqt/program.git

 $ git upstream-add '''version'''

 $ git upstream-tar ../program_version.orig.tar.gz

 $ git checkout -b debian
 $ tar vfxJ ../program_version-revision.debian.tar.xz
 $ git debian-add

 $ git push --all
 $ git push --tags

If you have a repository prepared, add the alioth repo and push branches and tags:

 $ git remote add origin user@git.debian.org:/git/pkg-lxqt/package.git
 $ git push --all
 $ git push --tags
 $ # setup the master pull and check it
 $ git branch --set-upstream-to=origin/master master
 $ git pull --all --tags --verbose

Done.

How to create a upstream (snapshot) tarball

Clone the upstream git repo and checkout the branch/tag you whish. Create a archive tarball:

git clone [-b $branch ] git://github.com/lxde/program.git program

Check git tag for latest release, check git log for yyyymmdd for the latest commit. Drop entire contents of the git branch and rename the folder to program-version+yyyymmdd.

mv program program-version+yyyymmdd
find program-version+yyyymmdd -name .git* | xargs rm -r
tar cfvJ program_version+yyyymmdd.orig.tar.xz program-version+yyyymmdd

How to update a package in our git to newer/snapshot upstream version

Replace upstream branch with new tarball:

cd program
git checkout upstream
find . | grep -v .git | xargs rm -r
tar xf ../program_version[+yyyymmdd].orig.tar.xz --strip-components 1

Better use ls command to make sure everything correct before use following command.

git upstream-add '''version[+yyyymmdd]'''
git upstream-tar ../program_version[+yyyymmdd].orig.tar.gz

Merge upstream changes into debian branch.

git checkout debian
git cherry-pick -n upstream
git commit -a -m "Merging upstream version '''version[+yyyymmdd]'''."
...
git push --all ; git push --tag

Note: As we use all git commit log to generate entries in debian/changelog. Please always use uppercase for first letter of commit message. And Please always use fullstop in the end of commit message.

Guideline for package

Add the following line to debian/rules to remove unnecessary dependencies.

export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed

Use override_dh_install to ensure package does not miss anything.

override_dh_install:
        dh_install --list-missing --fail-missing

Mangle symbols

for i in `find . -name symbols`; do
    k=`echo $i | sed "s#/DEBIAN/symbols##" | sed "s#./debian/##"`
    cat "$i" | sed 's/ \(_.*\) \(.*\)/ (c++)"\1" \2/' | c++filt | sort | uniq | tee "debian/$k.mangled";
done

Check packages with lintian before upload. An alias might be handy. Nils Thykier wrote a blog entry about it some times ago: https://nthykier.wordpress.com/2012/02/23/some-sponsors-are-evil-and-pedantic/

alias evil='lintian -EvIL +pedantic *changes'

Note: Please don't use patches unless the patches are debian specific. Provide fixes upstream, we have commit rights for most repositorys if needed (exept cmst and nomacs so far). So fixes can be applied in upstream after been acked.

Request for sponsor upload

Once you have everything done. Ping DDs on #debian-lxqt for review. For release a new package:

pristine-tar checkout package_version.orig.tar.gz
git debian-changelog [last uploaded hash]]
pdebuild
...
dput
git debian-release
git push --all ; git push --tag


CategoryTeams