Development system (4)

Date: 2022/08/20 (initial publish), 2023/03/17 (last update)

Previous Post Top Next Post

TOC

Package repo on github page

Since Githubs offer nice web site hosting service, I decided to host my private build results there at http://osamuaoki.github.io/debian.

This let me skip running the web server as described in Local private package repo.

Since Debian Salsa runs Gitlab and Gitlab also offers equivalent web site hosting service, one should be able to do the same there. But considering tight resource constaints there, it may not be a good idea to do this on Salsa.

Let me go step-by-step.

GNU PG

Since I will use sub-key for this purpose, let me check:

$ gpg --list-secret-keys  --with-subkey-fingerprint
pub   rsa4096 2010-09-23 [SC]
      3133724D6207881579E95D621E1356881DD8D791
uid           [ultimate] Osamu Aoki <osamu@debian.org>
sub   rsa4096 2010-09-23 [E]
      FDCAD8AB29E281A0E004B510A04CBCEEF08BEFAD

Now we know hash for subkey.

For getting a compact public key:

$ gpg --export -a --export-options export-minimal \
  3133724D6207881579E95D621E1356881DD8D791
-----BEGIN PGP PUBLIC KEY BLOCK-----

mQINBEya74YBEADDpLTJCmyS97kZ6JvlpUEoSoVbqEkyQVfrV7C7VqlBGWO0bTKI
... snip ...
-----END PGP PUBLIC KEY BLOCK-----

Setting up secure-APT cliant

Let’s use DEB822-STYLE FORMAT as explained in sources.list(5) and avoid using deprecated apt-key mechanism.

I add /etc/apt/sources.d/osamuaoki.sources to the client as follows:

$ cat >/etc/apt/sources.list.d/osamuaoki.sources  <<"EOF"
Types: deb
URIs: http://osamuaoki.github.io/debian/
Suites: sid
Components: main
Signed-By:
 -----BEGIN PGP PUBLIC KEY BLOCK-----
 .
 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
 =Ao1Z
 -----END PGP PUBLIC KEY BLOCK-----
EOF

Please note a leading space added to each line and for the blank line, it became " ." to follow Debian configuration file syntax.

Setting up package repository

Let’s suppose I have this hugo repo checked out at /path/to/osamuaoki-hugo/

$ cd /path/to/osamuaoki-hugo/static
$ mkdir -p debian/conf

In debian/conf add distributions as:

Origin: Osamu
Label: Osamu
Codename: sid
Architectures: amd64 source
Components: main
Description: APT repository for Osamu's infrastructure
SignWith: FDCAD8AB29E281A0E004B510A04CBCEEF08BEFAD

And options as:

verbose
basedir /path/to/osamuaoki-hugo/static/debian/
ask-passphrase

Adding personal binary package repository

You create source Debian package source trees in ../packages/ relative to this web site source.

You update repository in this web site source by running ./repository.sh in this web site source.

Then I can build hugo pages as usual with ./update.sh.

Personal packages

These are my personal package sources:

Changing environment of GUI program

Let’s make a GUI program gnucash started under Japanese environment ja_JP.UTF-8 while keeping your system under en_US.UTF-8.

Simple use of sudo mv /usr/bin/gnucash /usr/bin/gnucash.orig isn’t robust against package update. Here, dpkg-divert must be used, instead.

Let’s first make a command to start gnucash under Japanese environment as /usr/bin/gnucash.ja:

#!/bin/sh -e
LANG="ja_JP.UTF-8" LANGUAGE="ja_JP;ja" /usr/bin/gnucash.orig
 $ cd /usr/bin
 $ sudo chown 755 gnucash.ja
 $ sudo dpkg-divert --local --rename --divert /usr/bin/gnucash.orig --add /usr/bin/gnucash
 $ sudo ln -sf gnucash.ja gnucash

With this set up, one can switch among different environment by changing symlink.

You can restore the original state as:

 $ rm gnucash
 $ sudo dpkg-divert --local --rename --remove /usr/bin/gnucash
Previous Post Top Next Post