Skip to content

Kathenas - Support Free/Open Source Contributors

Most of the money you see in and around Free / Open Source Software, Hardware and other projects is in the hands of large companies, groups and self styled organisations, with little or none reaching the actually contributors/maintainer/developers of your favourite projects who actually do the day to day work.

If you wish to support my efforts, please click on the image below to donate.

Buy me a coffee

Debian - MiniDLNA, a cautionary tale

If you wish to use MiniDLNA on Debian using the distribution provided package, please be aware of the following.

Due to the poor maintenance and overall quality of the package a serious issue remains unresolved. The systemd service file provided by the package does not wait for network connections to be ready before it attempts to start. It should really wait for network-online.target before starting.

You can always edit the service file and fix this issue if you wish to use the package.

Hopefully this helps those who face this issue.

Abscent, no posts and musings

Apologies for little activity recently. Severe pain stemming from my spinal stenosis in my neck and fybromyalgia enhancing that pain, it has not been a good time for me. Any future disappearances are likely due to this.

After the wiring loom was changed in my brand new electric wheelchair, it is now working correctly - fingers crossed.

Enterprise Linux has always been my primary place of contribution, though some may think that it was Debian, it wasn't. Over and above other work, I am looking to get more astronomy packages through to Extra Packages for Enterprise Linux (EPEL) from Fedora. Be patient as this is a slow process and a little more strict with EPEL 10 and point releases.

Red Hat Enterprise Linux (RHEL) does not contain certain packages that have been previously available such as LibreOffice. This makes Enterprise Linux (EL) 10 a hard option to promote for desktop/general use. I am currently digging to see if this and other packages are to be built for EPEL or would it take a rebuild project such as Alma Linux with appetite to build it and make it available to users.

One musing of mine of late, should Canonical break free of merging packages from Debian and maintain it's own code base of packages. Starting with a tier system, begin with a set of core packages and then take sole control of other packages their customers need as part of their standard user and enterprise offerings.

I have other things that I shall get into later - Mainly EL related.

Kathenas Mantis Tracker Instance

With my blocking from the Debian Community and its infrastructure, I have setup a Mantis bug tracker instance at Kathenas Tracker to track the upstream and GNU Linux Distribution projects I have an interest in.

You may wish to help, so feel free to create an account and let's do our little bit for these projects.

Debian activity and Debian Mentors

My Debian activity currently is restricted to the packages I do maintain and those I choose to maintain. I am here to support new and existing upstream projects I have built great working relationships with over years. I would feel extremely bad if I abandoned these good people.

Debian Mentors was a great passion. I was privileged to mentor and assist in other ways, new contributors and those building up their reputation within the project as a whole. I am sad to say that I shall not be returning to Debian Mentors while I see bullying and discrimination by a minority within the Debian Project. I can only apologise to those who will now wait months for any help within Debian Mentors.

I do contribute to the Debian Project, but I do not align myself with the project, I am independent.

Contribution is ongoing

Since deciding to stop Debian contribution in the area of Debian Mentors, I have not been idle. I have been doing commits for packages I maintain and also contribute to i.e. upstream projects and other activities that include Ubuntu bug squashing etc.

With my disabilities, it is important to face challenges be they during my daily activities or within the Free/Open Source Software community. These challenges are hard, fun and make me feel useful.

Onwards and upwards.

Debian - Installing and using pbuilder

Though sbuild is the primary build agent for Debian, pbuilder is still very popular and has some features yet to be found in sbuild, the --twice switch for example.

This tutorial will detail the installation, configuration and use of pbuilder.

First we install pbuilder.

sudo apt install pbuilder


Now we will generate the pbuilder base system tarball for Debian unstable.

sudo pbuilder create --debootstrapopts --variant=buildd --distribution unstable


That simple... Let's build a package.

dget https://deb.debian.org/debian/pool/main/d/ddcutil/ddcutil_2.2.0-2.dsc


sudo pbuilder build ddcutil_2.2.0-2.dsc


The build should complete with success. Let's check below.

ls -1 /var/cache/pbuilder/result/


Output:

philwyett@debian:~$ ls -1 /var/cache/pbuilder/result/
ddcutil_2.2.0-2_amd64.buildinfo
ddcutil_2.2.0-2_amd64.changes
ddcutil_2.2.0-2_amd64.deb
ddcutil_2.2.0-2.debian.tar.xz
ddcutil_2.2.0-2.dsc
ddcutil_2.2.0-2_source.changes
ddcutil-dbgsym_2.2.0-2_amd64.deb
libddcutil5_2.2.0-2_amd64.deb
libddcutil5-dbgsym_2.2.0-2_amd64.deb
libddcutil-dev_2.2.0-2_amd64.deb


Updating your base system tarball

To update your the pbuilder base system tarball with the latest package versions, you can simply run the command below.

sudo pbuilder update


These are the basics.

Building the package for i386

First we clean up after our previous build.

sudo pbuilder clean all


sudo rm -f /var/cache/pbuilder/result/*


Now we remove our previously generated unstable base.

sudo rm -f /var/cache/pbuilder/base.tgz


Now we will generate our unstable i386 base system tarball.

sudo pbuilder create --debootstrapopts --variant=buildd --distribution unstable --architecture i386


Let's now do the i386 build of the package we previously built.

sudo pbuilder build ddcutil_2.2.0-2.dsc


The build should complete with success. Let's check below.

ls -1 /var/cache/pbuilder/result/


Output:

philwyett@debian:~$ ls -1 /var/cache/pbuilder/result/
ddcutil_2.2.0-2.debian.tar.xz
ddcutil_2.2.0-2.dsc
ddcutil_2.2.0-2_i386.buildinfo
ddcutil_2.2.0-2_i386.changes
ddcutil_2.2.0-2_i386.deb
ddcutil_2.2.0-2_source.changes
ddcutil-dbgsym_2.2.0-2_i386.deb
libddcutil5_2.2.0-2_i386.deb
libddcutil5-dbgsym_2.2.0-2_i386.deb
libddcutil-dev_2.2.0-2_i386.deb

As simple as that.

Build after successful build

As you explore Debian and look at more bug reports you will see bugs that are failures to build after successful build. With pbuilder we can use the --twice switch and attempt to do two builds back to back. We do this with the command below.

sudo pbuilder build --twice ddcutil_2.2.0-2.dsc


Try it for yourself.

Building using local packages

On occasion you may need to build a package that depends on one or more packages that is not yet in Debian. To do this we need to some additional configuration.

Add a file called .pbuilderrc to your HOME directory.

In the new .pbuilderrc add the text below and save the file.

#
# The hook dir may already be set/populated!
#
HOOKDIR="$HOME/.config/pbuilder/hooks/"
if [ -n "$DEPS" ] ; then
export DEPSBASE=/var/cache/pbuilder/local_packages
BINDMOUNTS=$DEPSBASE
fi

The folder /var/cache/pbuilder/local_packages is my personal base directory to use, but you may change it to whatever you wish. For now we will create this directory.

sudo mkdir -p /var/cache/pbuilder/local_packages


We next create a directory for the packages as below, you may name it as you wish.

sudo mkdir -p /var/cache/pbuilder/local_packages/kathenas


Next we create the necessary hook.

Create the following directory.

mkdir -p ~/.config/pbuilder/hooks


In the above directory create the file named D05deps.

In the file D05deps add the text below and save the file.

DEPSPATH="$DEPSBASE/$DEPS"
if [ -n "$DEPS" ] && [ -d "$DEPSPATH" ] ; then
apt install --assume-yes apt-utils
( cd "$DEPSPATH"; apt-ftparchive packages . > Packages )
echo "deb [trusted=yes] file://$DEPSPATH ./" >> /etc/apt/sources.list
apt update
fi

We must make this hook file executable. This can be done with the command below.

chmod +x ~/.config/pbuilder/hooks/D05deps


Now we are able to build packages with local dependencies:

1. Build the package you wish to use that is not in Debian.
2. Copy the .deb files from /var/cache/pbuilder/result to /var/cache/pbuilder/local_packages/kathenas
3.Build your package now using the dependencies in /var/cache/pbuilder/local_packages/kathenas using the reference command below.

sudo -E DEPS=kathenas pbuilder build PACKAGE_NAME_AND_VERSION.dsc


I hope you find this tutorial useful and have a good rest of your day.