Contents
General Information
The Debian LxQT team maintains lxqt software and related packages in Debian. All packages are now hosted in the lxqt-team group on salsa.
Packages information
Packages overview:
Debian Maintainer Dashboard for the team:
Bugs reported on packages maitained by the team:
Git repositories for the team:
Joining the team
Debian Salsa
Salsa is the name of a collaborative development server for Debian based on the GitLab software. Salsa is supposed to provide the necessary tools for package maintainers, packaging teams and other Debian related individuals and groups for collaborative development.
All git repositories maintained by the lxqt-team are hosting on salsa. The repositories are all public. You can send merge requests for one-shot fixes. You can also request membership to the group lxqt-team and wait for an admin to add you to the group. To speed up the procedure, send an email to the mailing list pkg-lxqt-devel at lists.alioth.debian.org stating your request to join the lxqt-team group and preferably the package you intend to maintain under the team.
Once you submitted merge requests. Wait for other member to review your changes. We will have communication on the merges request. Once all issues solved and passed all salsa-ci tests, one of the Debian Developers in the team will do the merge and sponsor the upload.
Contributing to the Debian lxqt team
If you are a Debian enthusiast with basic Debian knowledge, you can help Debian lxqt team's activities. There are different ways to contribute to Debian lxqt team, which includes (and is not limited to)
Identifying and reporting bugs
If you are a user of the packages maintained by Debian lxqt team, you can help us by reporting the bugs you find in the packages using the Debian Bug Tracker http://bugs.debian.org/ or reportbug https://wiki.debian.org/reportbug tool. You can also add wishlist bugs about changes/features you would like to be added to the package so as to make it better to use.
Bug triaging
You can also help to triage bugs, by choosing bugs from https://bugs.debian.org/cgi-bin/pkgreport.cgi?dist=unstable;maint=pkg-lxqt-devel%40lists.alioth.debian.org or https://udd.debian.org/dmd.cgi?email1=pkg-lxqt-devel%40lists.alioth.debian.org , and try to
- reproduce them on your local machine / clean chroot as needed
- confirm bug's existence and validity
- tag bugs appropriately
- close invalid ones that already fixed
Fixing bugs
If you have knowledge in Debian, you can fix bugs that have been filed against the team maintained packages by providing patches and helpful information. Those like FTBFS bugs are often caused by test failures in packages and should be fixed to ensure reproducibility of the packages. Chances of bugs are more during transition of the lxqt version and any help in identifying, tagging and fixing them are much appreciated.
Maintaining
Maintainance of a package involves the tasks like updating a package to the latest version, keeping the package to be in accordance with the current Debian policies and standards etc.
Packaging workflow
We use git with git-buildpackage and pristine-tar together for each package on salsa. Before you continue, ensure you have installed the tools used by the team:
apt-get install git-buildpackage pristine-tar
Git workflow
The following workflow is used for (almost) all non-native packages maintained by the lxqt team:
- git-buildpackage as a building tool, we also use this to import new version upstream tarball and unpacked upstream tarballs.
Our git repo uses dep14 git branch layout https://dep-team.pages.debian.net/deps/dep14/ , these normally are:
- debian/sid branch containing upstream + the debian/ repository (with patches unapplied).
- pristine-tar branch to store upstream tarballs for the package.
- upstream/latest branch tracking unpacked upstream tarballs
Development environment setup
1)Debian unstable environment You must have a Debian unstable environment (physical/dual boot, virtual machine, container or a chroot with schroot) to create packages suitable for uploading to Debian. See instructions given below to setup Debian Sid. You can use lxc, docker or a virtual machine for development.
2)Sbuild sbuild rebuilds Debian binary packages from the corresponding Debian source, installing any missing source dependencies. The build takes place in a dedicated clean build environment (chroot), rather than on the host system. https://wiki.debian.org/sbuild
Direct/Bare metal install
You can install Debian unstable in your machine under dual boot configuration or even replacing existing OS. For more info https://wiki.debian.org/DebianUnstable
sbuild Automatic setup using sbuild-debian-developer-setup
sbuild provides the package sbuild-debian-developer-setup which helps you setup an sbuild environment easily, if you're interested, make sure to take a look at the manpage at https://manpages.debian.org/unstable/sbuild/sbuild-debian-developer-setup.1
sudo apt install sbuild-debian-developer-setup sudo sbuild-debian-developer-setup
Virtual Machines
Install an hyvervisor like virtual box or something similar and spin up an debian unstable https://wiki.debian.org/Packaging/Pre-Requisites/Virtual-Machine
sbuild Automatic setup using sbuild-debian-developer-setup
sbuild provides the package sbuild-debian-developer-setup which helps you setup an sbuild environment easily, if you're interested, make sure to take a look at the manpage at https://manpages.debian.org/unstable/sbuild/sbuild-debian-developer-setup.1
sudo apt install sbuild-debian-developer-setup sudo sbuild-debian-developer-setup
Docker
setup docker debian unstable container https://wiki.debian.org/Packaging/Pre-Requisites/Docker
Tasks for team-maintained lxqt packages
Updating a package to a newer version
First make sure you got a local repository from salsa which has the pristine-tar branch:
gbp clone --pristine-tar git@salsa.debian.org:lxqt-team/<pkg-name>.git
If you have a working debian/watch file (check by running uscan --verbose --report), you can simply import a new version with
gbp import-orig --pristine-tar --uscan
You need to compare the newer version with the previous version for all the changes. And then update debian/copyright if any license changes and add yourself if not listed yet.
See if there are files with extra copyright notices not covered , Check in *LICENSE* README.* COPYING etc if there are other copyright holders mentioned and add them to debian/copyright.
licensecheck --deb-machine -r -l0 *
Update debian/copyright with any missing information.
Set new upstream version in debian/changelog by
dch -v <new-upstream-version>-1 -D UNRELEASED
Suggest to work on your own merge-request-queue branch:
git checkout -b yourname/merge-request-queue
Please keep each change as a git commit with useful commit message that we will use to generate as debian/changelog entries. You may build the package locally with pbuilder/cowbuilder or sbuild however you prefer. Please run lintian check after package builds locally. Fix each lintian error as a small commit with useful commit message. Generate changelog entries since a specific commit(this will also update the UNRELEASED to unstable, manually update it to experimental if needed):
gbp dch --git-author --release --since COMMIT_hash
All your previous small git commit changes will be auto generate as entries in debian/changelog. Push your commits into salsa in your own merge-request-queue branch.
git push origin yourname/merge-request-queue
Check salsa-ci tests result on salsa web interface. Fix all the tests and then create Merge Request on salsa web interface. Ensure the Merge Request that targeting to correct branch, usually debian/sid or debian/experimental for package needs. Wait for team members for peer review. May do --force push to fix mistakes in your own yourname/merge-request-queue branch. After all issue resolved in the Merge Request. One of the Debian developers in the team may click on the merge and sponsor the upload.