From 91275ac998c439420da747fc047379a6547f7c1c Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sat, 24 Feb 2024 14:20:19 -0300 Subject: Feat: convert docs from Ikiwiki to MkDocs --- .gitignore | 1 + Makefile | 4 +- README.md | 2 +- basics.md | 83 ---------- building.md | 39 ----- checking.md | 124 --------------- cross.md | 71 --------- docs/basics.md | 74 +++++++++ docs/building.md | 36 +++++ docs/checking.md | 124 +++++++++++++++ docs/cross.md | 73 +++++++++ docs/custom/leap.md | 147 +++++++++++++++++ docs/custom/python.md | 52 ++++++ docs/custom/ruby.md | 4 + docs/env.md | 54 +++++++ docs/index.md | 12 ++ docs/itp.md | 13 ++ docs/references.md | 66 ++++++++ docs/repositories.md | 27 ++++ docs/todo.md | 7 + env.md | 57 ------- ikiwiki.yaml | 425 -------------------------------------------------- index.md | 29 ---- itp.md | 15 -- leap.md | 152 ------------------ mkdocs.yml | 19 +++ python.md | 52 ------ references.md | 66 -------- repositories.md | 30 ---- ruby.md | 4 - todo.md | 7 - 31 files changed, 712 insertions(+), 1157 deletions(-) delete mode 100644 basics.md delete mode 100644 building.md delete mode 100644 checking.md delete mode 100644 cross.md create mode 100644 docs/basics.md create mode 100644 docs/building.md create mode 100644 docs/checking.md create mode 100644 docs/cross.md create mode 100644 docs/custom/leap.md create mode 100644 docs/custom/python.md create mode 100644 docs/custom/ruby.md create mode 100644 docs/env.md create mode 100644 docs/index.md create mode 100644 docs/itp.md create mode 100644 docs/references.md create mode 100644 docs/repositories.md create mode 100644 docs/todo.md delete mode 100644 env.md delete mode 100644 ikiwiki.yaml delete mode 100644 index.md delete mode 100644 itp.md delete mode 100644 leap.md create mode 100644 mkdocs.yml delete mode 100644 python.md delete mode 100644 references.md delete mode 100644 repositories.md delete mode 100644 ruby.md delete mode 100644 todo.md diff --git a/.gitignore b/.gitignore index 929d984..3093b79 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ tmp build-area puppet/modules keyring +site diff --git a/Makefile b/Makefile index e415d15..9496741 100644 --- a/Makefile +++ b/Makefile @@ -17,10 +17,10 @@ .PHONY: keyring web: - @ikiwiki --setup ikiwiki.yaml + @mkdocs build web_deploy: - @rsync -avz --delete --exclude=keyring www/ debian:/var/sites/debian/www/ + @rsync -avz --delete --exclude=keyring site/ debian:/var/sites/debian/www/ publish: web web_deploy diff --git a/README.md b/README.md index dd0ea36..e892330 120000 --- a/README.md +++ b/README.md @@ -1 +1 @@ -index.md \ No newline at end of file +docs/index.md \ No newline at end of file diff --git a/basics.md b/basics.md deleted file mode 100644 index 9de641e..0000000 --- a/basics.md +++ /dev/null @@ -1,83 +0,0 @@ -[[!meta title="Basic packaging"]] - -Configuration files -------------------- - -All the commands in this guide assumes that you're using [these configuration files](https://git.fluxo.info/?p=rhatto/dotfiles/debian.git;a=summary). - -Starting a new package ----------------------- - -We use the `packages/` folder from this repo to store sources: - - mkdir packages/$package - cd packages/$package - -Getting the debianized source ------------------------------ - -Using `dget`: - - dget $remote_dsc - cd $package* - -Using `apt-get`: - - apt-get source package - -Checking the source -------------------- - -See `checking.md`. - -Extracting the source ---------------------- - -If needed, do this after your successfully verified the sources: - - dpkg-source -x *.dsc - -Getting dependencies --------------------- - -To get: - - apt-get build-dep package - -To remove: - - hydractl remove-dep package - -Creating the `debian/` structure --------------------------------- - -If the package wasn't debianized, proceed with - - if [ ! -d "debian" ]; then - dh_make -p ${package}_${version} --createorig - fi - -Simple build ------------- - - dch -i - dpkg-buildpackage -rfakeroot -sa -k$KEY_ID - -Creating a new debian source ----------------------------- - - cd .. - dpkg-source -b $package* - debsign $package*.dsc - -Building and signing --------------------- - -To generate signatures, remove `-uc` and `-us` from `dpkg-buildpackage` (see -[Complete build](http://www.debian.org/doc/maint-guide/ch-build.pt-br.html#s-completebuild)): - - dpkg-buildpackage -rfakeroot - -To sign using an specific key: - - dpkg-buildpackage -rfakeroot -kKEY_ID diff --git a/building.md b/building.md deleted file mode 100644 index 692fcc4..0000000 --- a/building.md +++ /dev/null @@ -1,39 +0,0 @@ -[[!meta title="Building"]] - -Standard build --------------- - - DIST=stretch sudo -E cowbuilder --build $package*.dsc - -Signing -------- - -To sign both the `.dsc` and the `.changes` files: - - debsign $package*.changes - -Uploading ---------- - -Simply run - - dupload *changes - -This assumes a `~/.dupload.conf` like the following: - - package config; - $default_host = "myremote"; - - $cfg{'myremote'} = { - fqdn => "myremote.example.org", - login => "user", - method => "scpb", - incoming => "/var/reprepro/incoming/", - # The dinstall on ftp-master sends emails itself - #dinstall_runs => 1, - }; - -It's also important that: - - 1. The host remote port is correctly defined at your `~/.ssh/config`. - 2. The user is in the `reprepro` group in the server. diff --git a/checking.md b/checking.md deleted file mode 100644 index de399a6..0000000 --- a/checking.md +++ /dev/null @@ -1,124 +0,0 @@ -[[!meta title="Integrity checking"]] - -## Debian Images - -See [Verifying authenticity of Debian CDs](https://www.debian.org/CD/verify). - -## Source packages - -This is the trick part. In theory, you could run just - - dscverify *.dsc - -Which would check if the signature was made for a key included in the `debian-keyring` package or if you -have a verification path with the signing key. - -In practice, it should always work for sources you download from the **same** Debian version you're running. -But sources you download from newer versions might not work, depending basically if the maintainer's key is -already on the `debian-keyring` you installed. - -### Using a newer debian-keyring package - -You might want to try a newer `debian-keyring` package (for testing or unstable), which we haven't tested -yet but can reduce a lot of complexity that follows. - -### Install manually debian-keyring somewhere - -If not, you might try to have a newer copy of the `debian-keyring` somewhere. We already provide one in the -a way for you to get the keyring directly from https://keyring.debian.org: - - make keyring - -We use `--no-default-keyring` to make sure `gpg` just looks for the key in the `debian-maintainers` keyring: - - gpg --no-default-keyring --keyring /path/to/debian/keyring/keyrings/debian-keyring.gpg --verify *.dsc - -You might also want to have the following on your `~/.devscripts` (line break just to keep formatting here): - - DSCVERIFY_KEYRINGS="/usr/share/keyrings/debian-keyring.gpg:/usr/share/keyrings/debian-maintainers.gpg: - /path/to/debian/keyring/keyrings/debian-keyring.gpg:/path/to/debian/keyring/keyrings/debian-maintainers.gpg" - -Or you can use the following alias: - - alias dscverify='dscverify --keyring /path/to/debian/keyring/keyrings/debian-keyring.gpg --keyring /path/to/debian/keyring/keyrings/debian-maintainers.gpg' - -### Manually getting the key - -Another option is to get the specific key: - - gpg --recv-keys 12345678 - -Either way, you have to have a criteria about how much trust you should give to the keyring or the pubkey -you just downloaded. The same goes for software you're porting to Debian and that you can't actually check -it's signature against `debian-keyring`. - -### Issues with dpkg-source - -Things get even trickier when you try to use `dpkg-source`. See [Debian Bug report logs - #852019 gpgv: unknown -type of key resource 'trustedkeys.kbx'](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=852019) -for details. - -Even if you merge both `keyring/keyrings/debian-keyring.gpg` `keyring/keyrings/debian-maintainers.gpg` -into some file like `keyring/keyrings/pubring.kbx`, symlink it as `keyring/keyrings/trustedkeys.gpg` -and point `GNUPGHOME` to this folder you'll still get a weird behavior: - - 0 $ dget http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2-1.dsc - dget: retrieving http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2-1.dsc - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed - 100 1827 100 1827 0 0 2626 0 --:--:-- --:--:-- --:--:-- 4911 - dget: retrieving http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2.orig.tar.gz - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed - 100 26055 100 26055 0 0 20738 0 0:00:01 0:00:01 --:--:-- 27455 - dget: retrieving http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2-1.debian.tar.xz - % Total % Received % Xferd Average Speed Time Time Time Current - Dload Upload Total Spent Left Speed - 100 2892 100 2892 0 0 4183 0 --:--:-- --:--:-- --:--:-- 8078 - ruby-childprocess_0.5.2-1.dsc: - Good signature found - validating ruby-childprocess_0.5.2.orig.tar.gz - validating ruby-childprocess_0.5.2-1.debian.tar.xz - All files validated successfully. - gpgv: Signature made Seg 28 Abr 2014 18:03:27 BRT using RSA key ID 39CD217A - gpgv: Impossível verificar assinatura: chave pública não encontrada - dpkg-source: warning: failed to verify signature on ./ruby-childprocess_0.5.2-1.dsc - dpkg-source: info: extracting ruby-childprocess in ruby-childprocess-0.5.2 - dpkg-source: info: unpacking ruby-childprocess_0.5.2.orig.tar.gz - dpkg-source: info: unpacking ruby-childprocess_0.5.2-1.debian.tar.xz - 0 $ - -What happened here is that `dscverify` honoured our custom configuration above while `dpkg-source` is still relying on -the one available in the `debian-keyring` package. - -Even if you remove the `debian-keyring` package, it will still fallback to your `$HOME/.gnupg/trustedkeys.gpg` which -you don't really want to fill with keys you actually haven't stablished a proper trust relationship. - -As currently `dpkg-source` doesn't honour `GNUPGHOME` (see TODO for bugreport), all we can do currently is call `dget` -and `dpkg-source` with - - HOME=/path/to/debian/keyring/ dpkg-source -x $package*dsc - HOME=/path/to/debian/keyring/ dget - -For this trick to work, you'll need to run - - make keyring - -Again, you might set two handy aliases for your shell: - - alias dpkg-source='HOME=/path/to/debian/keyring/keyrings/ dpkg-source' - alias dget='HOME=/path/to/debian/keyring/keyrings/ dget' - -Optionally, as a last touch, import your own key into this keyring: - - gpg --armor --export $KEYID | \ - gpg --no-default-keyring --keyring /path/to/debian/keyring/keyrings/.gnupg/trustedkeys.gpg --import - -Then you might be happy... for a while :P - -See also: - -* `dscverify(1)` manpage. -* [Debian Public Key Server](http://keyring.debian.org/) and it's [workflow](https://keyring.debian.org/keyring-workflow.html). -* [apt get - How to get apt-get source verification working? - Super User](https://superuser.com/questions/626810/how-to-get-apt-get-source-verification-working). -* [Debian. How can I securely get debian-archive-keyring, so that I can do an apt-get update? NO_PUBKEY - Server Fault](http://serverfault.com/questions/337278/debian-how-can-i-securely-get-debian-archive-keyring-so-that-i-can-do-an-apt-g/337283#337283). diff --git a/cross.md b/cross.md deleted file mode 100644 index 5354aa0..0000000 --- a/cross.md +++ /dev/null @@ -1,71 +0,0 @@ -[[!meta title="Crosscompilation"]] - -* [BuildingCrossCompilers - Debian Wiki](http://wiki.debian.org/BuildingCrossCompilers). -* [EmdebianToolchain - Debian Wiki](http://wiki.debian.org/EmdebianToolchain). -* [EmDebian/CrossDebootstrap - Debian Wiki](http://wiki.debian.org/EmDebian/CrossDebootstrap). -* [QemuUserEmulation - Debian Wiki](http://wiki.debian.org/QemuUserEmulation). -* [software development - How do I build a GCC 4.7 toolchain for cross-compiling? - Raspberry Pi Stack Exchange](http://raspberrypi.stackexchange.com/questions/1/how-do-i-build-a-gcc-4-7-toolchain-for-cross-compiling). -* [ARM cross-compiling howto - K's cluttered loft](http://www.ailis.de/~k/archives/19-arm-cross-compiling-howto.html). -* [Debian ARM Cross-compile - Manuals](http://wiki.micromint.com/index.php/Debian_ARM_Cross-compile). -* [How to cross-compile Git for ARM?](http://stackoverflow.com/questions/15516168/how-to-cross-compile-git-for-arm). -* [Allow to compile with Debian/Ubuntu ARM toolchain · Issue #34 · libopencm3/libopencm3](https://github.com/libopencm3/libopencm3/issues/34). - -## Configuração básica - - (0) [20130426 13:37:57] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/emdebian.list - # - # -- Emdebian cross toolchains - # - # deb http://www.emdebian.org/debian/ unstable main - # deb http://www.emdebian.org/debian/ testing main - deb http://www.emdebian.org/debian wheezy main - (0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $ - - (0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/squeeze.list - deb http://http.debian.net/debian/ squeeze main contrib non-free - deb-src http://http.debian.net/debian/ squeeze main contrib non-free - (0) [20130426 13:38:44] vagrant@vagrant-debian-wheezy:~ $ - -## Exemplo: git - -Instalando as dependências do git: - - xapt -a armel -m asciidoc comerr-dev cvs cvsps docbook-xml docbook-xsl krb5-multidev libapr1 libaprutil1 libcurl4-gnutls-dev libdbd-sqlite3-perl libdbi-perl libexpat1-dev libgcrypt11-dev libgnutls-dev libgnutls-openssl27 libgnutlsxx27 libgpg-error-dev libidn11-dev libkadm5clnt-mit8 libkadm5srv-mit8 libkdb5-6 libkrb5-dev libldap2-dev libneon27-gnutls libnet-daemon-perl libp11-kit-dev libplrpc-perl librtmp-dev libssh2-1-dev libsvn-perl libsvn1 libtasn1-3-dev libxml2-utils libxslt1.1 libyaml-perl pkg-config sgml-data subversion xmlto xsltproc zlib1g-dev libssl-dev - -Tentando compilar com a [seguinte instrução](https://www.olimex.com/forum/index.php?topic=496.0): - - ./configure --build=arm --host=arm-linux-gnueabi - make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi install prefix=$(pwd)/../destdir/ - -## Criando um toolchain - -Primeiro, como `root`, vamos criar o chroot: - - mkdir -p /var/chroot - debootstrap --verbose --arch armel --foreign wheezy /var/chroot/wheezy-armel http://ftp.debian.org/debian - cp /usr/bin/qemu-arm-static /var/chroot/wheezy-armel/usr/bin/ - DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \ - LC_ALL=C LANGUAGE=C LANG=C chroot /var/chroot/wheezy-armel /debootstrap/debootstrap --second-stage - -Opcionalmente, dê permissão ao usuário comum: - - chown -R vagrant. /var/chroot/wheezy-armel - -Como usuário comum: - - cd /var/chroot/wheezy-armel - sb2-init -n -m emulate -c /usr/bin/qemu-arm wheezy-armel "arm-linux-gnueabi-gcc" - -## Referências - -Script [provision-chroot](https://git.fluxo.info/hydra/tree/share/hydractl/provision-chroot). -* [Set up sb2 with armel debootstrap - maemo.org - Talk](http://talk.maemo.org/showthread.php?t=83713). -* [Installing scratchbox 1 and 2 for ARM cross-compilation | Felipe Contreras](https://felipec.wordpress.com/2009/06/07/installing-scratchbox-1-and-2-for-arm-cross-compilation/). -* [MobileRead Wiki - Boox M92 Development with Scratchbox2](http://wiki.mobileread.com/wiki/Boox_M92_Development_with_Scratchbox2). -* [Cross Compile environment using debootstrap and scratchbox2 | Rogerio Moraes](http://rogeriomoraes.com/wp/?p=41). -* [Using scratchbox2 and Ubuntu 11.10 | Hamilton Vera](https://hvera.wordpress.com/2011/12/07/using-scratchbox2/). -* [Setting up Scratchbox2 to build software for zubuntu « Executing Gummiworms](http://russelldavis.org/2010/10/20/setting-up-scratchbox2-to-build-software-for-zubuntu/). - -## Problemas encontrados - -* [debootstrap --second-stage fails because of /dev/ mapping](http://comments.gmane.org/gmane.comp.compilers.scratchbox.user/1420). diff --git a/docs/basics.md b/docs/basics.md new file mode 100644 index 0000000..6eafa91 --- /dev/null +++ b/docs/basics.md @@ -0,0 +1,74 @@ +# Basic packaging + +## Configuration files + +All the commands in this guide assumes that you're using [these configuration +files](https://git.fluxo.info/?p=rhatto/dotfiles/debian.git;a=summary). + +## Starting a new package + +We use the `packages/` folder from this repo to store sources: + + mkdir packages/$package + cd packages/$package + +## Getting the debianized source + +Using `dget`: + + dget $remote_dsc + cd $package* + +Using `apt-get`: + + apt-get source package + +## Checking the source + +See `checking.md`. + +## Extracting the source + +If needed, do this after your successfully verified the sources: + + dpkg-source -x *.dsc + +## Getting dependencies + +To get: + + apt-get build-dep package + +To remove: + + hydractl remove-dep package + +## Creating the `debian/` structure + +If the package wasn't debianized, proceed with + + if [ ! -d "debian" ]; then + dh_make -p ${package}_${version} --createorig + fi + +## Simple build + + dch -i + dpkg-buildpackage -rfakeroot -sa -k$KEY_ID + +## Creating a new debian source + + cd .. + dpkg-source -b $package* + debsign $package*.dsc + +## Building and signing + +To generate signatures, remove `-uc` and `-us` from `dpkg-buildpackage` (see +[Complete build](http://www.debian.org/doc/maint-guide/ch-build.pt-br.html#s-completebuild)): + + dpkg-buildpackage -rfakeroot + +To sign using an specific key: + + dpkg-buildpackage -rfakeroot -kKEY_ID diff --git a/docs/building.md b/docs/building.md new file mode 100644 index 0000000..0f7009c --- /dev/null +++ b/docs/building.md @@ -0,0 +1,36 @@ +# Building + +## Standard build + + DIST=stretch sudo -E cowbuilder --build $package*.dsc + +## Signing + +To sign both the `.dsc` and the `.changes` files: + + debsign $package*.changes + +## Uploading + +Simply run + + dupload *changes + +This assumes a `~/.dupload.conf` like the following: + + package config; + $default_host = "myremote"; + + $cfg{'myremote'} = { + fqdn => "myremote.example.org", + login => "user", + method => "scpb", + incoming => "/var/reprepro/incoming/", + # The dinstall on ftp-master sends emails itself + #dinstall_runs => 1, + }; + +It's also important that: + + 1. The host remote port is correctly defined at your `~/.ssh/config`. + 2. The user is in the `reprepro` group in the server. diff --git a/docs/checking.md b/docs/checking.md new file mode 100644 index 0000000..ee3f32c --- /dev/null +++ b/docs/checking.md @@ -0,0 +1,124 @@ +# Integrity checking + +## Debian Images + +See [Verifying authenticity of Debian CDs](https://www.debian.org/CD/verify). + +## Source packages + +This is the trick part. In theory, you could run just + + dscverify *.dsc + +Which would check if the signature was made for a key included in the `debian-keyring` package or if you +have a verification path with the signing key. + +In practice, it should always work for sources you download from the **same** Debian version you're running. +But sources you download from newer versions might not work, depending basically if the maintainer's key is +already on the `debian-keyring` you installed. + +### Using a newer debian-keyring package + +You might want to try a newer `debian-keyring` package (for testing or unstable), which we haven't tested +yet but can reduce a lot of complexity that follows. + +### Install manually debian-keyring somewhere + +If not, you might try to have a newer copy of the `debian-keyring` somewhere. We already provide one in the +a way for you to get the keyring directly from https://keyring.debian.org: + + make keyring + +We use `--no-default-keyring` to make sure `gpg` just looks for the key in the `debian-maintainers` keyring: + + gpg --no-default-keyring --keyring /path/to/debian/keyring/keyrings/debian-keyring.gpg --verify *.dsc + +You might also want to have the following on your `~/.devscripts` (line break just to keep formatting here): + + DSCVERIFY_KEYRINGS="/usr/share/keyrings/debian-keyring.gpg:/usr/share/keyrings/debian-maintainers.gpg: + /path/to/debian/keyring/keyrings/debian-keyring.gpg:/path/to/debian/keyring/keyrings/debian-maintainers.gpg" + +Or you can use the following alias: + + alias dscverify='dscverify --keyring /path/to/debian/keyring/keyrings/debian-keyring.gpg --keyring /path/to/debian/keyring/keyrings/debian-maintainers.gpg' + +### Manually getting the key + +Another option is to get the specific key: + + gpg --recv-keys 12345678 + +Either way, you have to have a criteria about how much trust you should give to the keyring or the pubkey +you just downloaded. The same goes for software you're porting to Debian and that you can't actually check +it's signature against `debian-keyring`. + +### Issues with dpkg-source + +Things get even trickier when you try to use `dpkg-source`. See [Debian Bug report logs - #852019 gpgv: unknown +type of key resource 'trustedkeys.kbx'](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=852019) +for details. + +Even if you merge both `keyring/keyrings/debian-keyring.gpg` `keyring/keyrings/debian-maintainers.gpg` +into some file like `keyring/keyrings/pubring.kbx`, symlink it as `keyring/keyrings/trustedkeys.gpg` +and point `GNUPGHOME` to this folder you'll still get a weird behavior: + + 0 $ dget http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2-1.dsc + dget: retrieving http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2-1.dsc + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 100 1827 100 1827 0 0 2626 0 --:--:-- --:--:-- --:--:-- 4911 + dget: retrieving http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2.orig.tar.gz + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 100 26055 100 26055 0 0 20738 0 0:00:01 0:00:01 --:--:-- 27455 + dget: retrieving http://ftp.de.debian.org/debian/pool/main/r/ruby-childprocess/ruby-childprocess_0.5.2-1.debian.tar.xz + % Total % Received % Xferd Average Speed Time Time Time Current + Dload Upload Total Spent Left Speed + 100 2892 100 2892 0 0 4183 0 --:--:-- --:--:-- --:--:-- 8078 + ruby-childprocess_0.5.2-1.dsc: + Good signature found + validating ruby-childprocess_0.5.2.orig.tar.gz + validating ruby-childprocess_0.5.2-1.debian.tar.xz + All files validated successfully. + gpgv: Signature made Seg 28 Abr 2014 18:03:27 BRT using RSA key ID 39CD217A + gpgv: Impossível verificar assinatura: chave pública não encontrada + dpkg-source: warning: failed to verify signature on ./ruby-childprocess_0.5.2-1.dsc + dpkg-source: info: extracting ruby-childprocess in ruby-childprocess-0.5.2 + dpkg-source: info: unpacking ruby-childprocess_0.5.2.orig.tar.gz + dpkg-source: info: unpacking ruby-childprocess_0.5.2-1.debian.tar.xz + 0 $ + +What happened here is that `dscverify` honoured our custom configuration above while `dpkg-source` is still relying on +the one available in the `debian-keyring` package. + +Even if you remove the `debian-keyring` package, it will still fallback to your `$HOME/.gnupg/trustedkeys.gpg` which +you don't really want to fill with keys you actually haven't stablished a proper trust relationship. + +As currently `dpkg-source` doesn't honour `GNUPGHOME` (see TODO for bugreport), all we can do currently is call `dget` +and `dpkg-source` with + + HOME=/path/to/debian/keyring/ dpkg-source -x $package*dsc + HOME=/path/to/debian/keyring/ dget + +For this trick to work, you'll need to run + + make keyring + +Again, you might set two handy aliases for your shell: + + alias dpkg-source='HOME=/path/to/debian/keyring/keyrings/ dpkg-source' + alias dget='HOME=/path/to/debian/keyring/keyrings/ dget' + +Optionally, as a last touch, import your own key into this keyring: + + gpg --armor --export $KEYID | \ + gpg --no-default-keyring --keyring /path/to/debian/keyring/keyrings/.gnupg/trustedkeys.gpg --import + +Then you might be happy... for a while :P + +See also: + +* `dscverify(1)` manpage. +* [Debian Public Key Server](http://keyring.debian.org/) and it's [workflow](https://keyring.debian.org/keyring-workflow.html). +* [apt get - How to get apt-get source verification working? - Super User](https://superuser.com/questions/626810/how-to-get-apt-get-source-verification-working). +* [Debian. How can I securely get debian-archive-keyring, so that I can do an apt-get update? NO_PUBKEY - Server Fault](http://serverfault.com/questions/337278/debian-how-can-i-securely-get-debian-archive-keyring-so-that-i-can-do-an-apt-g/337283#337283). diff --git a/docs/cross.md b/docs/cross.md new file mode 100644 index 0000000..45255f7 --- /dev/null +++ b/docs/cross.md @@ -0,0 +1,73 @@ +# Crosscompilation + +## Basic references + +* [BuildingCrossCompilers - Debian Wiki](http://wiki.debian.org/BuildingCrossCompilers). +* [EmdebianToolchain - Debian Wiki](http://wiki.debian.org/EmdebianToolchain). +* [EmDebian/CrossDebootstrap - Debian Wiki](http://wiki.debian.org/EmDebian/CrossDebootstrap). +* [QemuUserEmulation - Debian Wiki](http://wiki.debian.org/QemuUserEmulation). +* [software development - How do I build a GCC 4.7 toolchain for cross-compiling? - Raspberry Pi Stack Exchange](http://raspberrypi.stackexchange.com/questions/1/how-do-i-build-a-gcc-4-7-toolchain-for-cross-compiling). +* [ARM cross-compiling howto - K's cluttered loft](http://www.ailis.de/~k/archives/19-arm-cross-compiling-howto.html). +* [Debian ARM Cross-compile - Manuals](http://wiki.micromint.com/index.php/Debian_ARM_Cross-compile). +* [How to cross-compile Git for ARM?](http://stackoverflow.com/questions/15516168/how-to-cross-compile-git-for-arm). +* [Allow to compile with Debian/Ubuntu ARM toolchain · Issue #34 · libopencm3/libopencm3](https://github.com/libopencm3/libopencm3/issues/34). + +## Basic configuration + + (0) [20130426 13:37:57] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/emdebian.list + # + # -- Emdebian cross toolchains + # + # deb http://www.emdebian.org/debian/ unstable main + # deb http://www.emdebian.org/debian/ testing main + deb http://www.emdebian.org/debian wheezy main + (0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $ + + (0) [20130426 13:38:12] vagrant@vagrant-debian-wheezy:~ $ cat /etc/apt/sources.list.d/squeeze.list + deb http://http.debian.net/debian/ squeeze main contrib non-free + deb-src http://http.debian.net/debian/ squeeze main contrib non-free + (0) [20130426 13:38:44] vagrant@vagrant-debian-wheezy:~ $ + +## Exemplo: git + +Instalando as dependências do git: + + xapt -a armel -m asciidoc comerr-dev cvs cvsps docbook-xml docbook-xsl krb5-multidev libapr1 libaprutil1 libcurl4-gnutls-dev libdbd-sqlite3-perl libdbi-perl libexpat1-dev libgcrypt11-dev libgnutls-dev libgnutls-openssl27 libgnutlsxx27 libgpg-error-dev libidn11-dev libkadm5clnt-mit8 libkadm5srv-mit8 libkdb5-6 libkrb5-dev libldap2-dev libneon27-gnutls libnet-daemon-perl libp11-kit-dev libplrpc-perl librtmp-dev libssh2-1-dev libsvn-perl libsvn1 libtasn1-3-dev libxml2-utils libxslt1.1 libyaml-perl pkg-config sgml-data subversion xmlto xsltproc zlib1g-dev libssl-dev + +Tentando compilar com a [seguinte instrução](https://www.olimex.com/forum/index.php?topic=496.0): + + ./configure --build=arm --host=arm-linux-gnueabi + make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi install prefix=$(pwd)/../destdir/ + +## Criando um toolchain + +Primeiro, como `root`, vamos criar o chroot: + + mkdir -p /var/chroot + debootstrap --verbose --arch armel --foreign wheezy /var/chroot/wheezy-armel http://ftp.debian.org/debian + cp /usr/bin/qemu-arm-static /var/chroot/wheezy-armel/usr/bin/ + DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \ + LC_ALL=C LANGUAGE=C LANG=C chroot /var/chroot/wheezy-armel /debootstrap/debootstrap --second-stage + +Opcionalmente, dê permissão ao usuário comum: + + chown -R vagrant. /var/chroot/wheezy-armel + +Como usuário comum: + + cd /var/chroot/wheezy-armel + sb2-init -n -m emulate -c /usr/bin/qemu-arm wheezy-armel "arm-linux-gnueabi-gcc" + +## Referências + +Script [provision-chroot](https://git.fluxo.info/hydra/tree/share/hydractl/provision-chroot). +* [Set up sb2 with armel debootstrap - maemo.org - Talk](http://talk.maemo.org/showthread.php?t=83713). +* [Installing scratchbox 1 and 2 for ARM cross-compilation | Felipe Contreras](https://felipec.wordpress.com/2009/06/07/installing-scratchbox-1-and-2-for-arm-cross-compilation/). +* [MobileRead Wiki - Boox M92 Development with Scratchbox2](http://wiki.mobileread.com/wiki/Boox_M92_Development_with_Scratchbox2). +* [Cross Compile environment using debootstrap and scratchbox2 | Rogerio Moraes](http://rogeriomoraes.com/wp/?p=41). +* [Using scratchbox2 and Ubuntu 11.10 | Hamilton Vera](https://hvera.wordpress.com/2011/12/07/using-scratchbox2/). +* [Setting up Scratchbox2 to build software for zubuntu « Executing Gummiworms](http://russelldavis.org/2010/10/20/setting-up-scratchbox2-to-build-software-for-zubuntu/). + +## Problemas encontrados + +* [debootstrap --second-stage fails because of /dev/ mapping](http://comments.gmane.org/gmane.comp.compilers.scratchbox.user/1420). diff --git a/docs/custom/leap.md b/docs/custom/leap.md new file mode 100644 index 0000000..cd657c9 --- /dev/null +++ b/docs/custom/leap.md @@ -0,0 +1,147 @@ +# Example: packaging leap_cli and dependencies + +Upstream: https://leap.se/code/issues/6503 + +## Determine dependencies + +First, in a *fresh* vagrant box with *sid* and *testing* in the `sources.list`: + + sudo apt-get install rubygems gem2deb + sudo gem install leap_cli + +Then we get the dependencies and build all packages: + + dependencies=" `gem list | cut -d '(' -f 1` " + +Which currently gives us the following result: + +* activemodel +* activesupport +* base32 +* blockenspiel +* builder +* capistrano +* colored +* command_line_reporter +* gli +* gpgme +* highline +* i18n +* json +* json_pure +* leap_cli +* mini_portile +* minitest +* net-scp +* net-sftp +* net-ssh +* net-ssh-gateway +* paint +* tee +* thread_safe +* tzinfo +* versionomy +* ya2yaml + +Gem cleanup: + + sudo gem uninstall $dependencies + +Check existing dependencies: + + for item in $dependencies; do + package=ruby-"`echo $item | sed -e 's/_/-/'`" + packages="$packages $package" + done + + apt-get install --dry-run $packages + +Then: + +* Check for non-existing packages. +* Try different package names. +* Update your list of existing `$packages`. + +In this example we have the following `$already_ported` dependencies: + +* capistrano +* ruby-activemodel +* ruby-activesupport +* ruby-blockenspiel +* ruby-builder +* ruby-colored +* ruby-gpgme +* ruby-highline +* ruby-i18n +* ruby-json +* ruby-minitest +* ruby-net-scp +* ruby-net-sftp +* ruby-net-ssh +* ruby-net-ssh-gateway +* ruby-paint +* ruby-thread-safe +* ruby-tzinfo +* ruby-versionomy + +That means the following `$gems` needs to be packaged: + +* base32 +* command_line_reporter +* gli +* json_pure (we can just use ruby-json and ignore this dependency) +* leap_cli +* mini_portile +* tee +* ya2yaml + +In summary, we need to port the following `$new_packages`: + +* ruby-base32 +* ruby-command-line-reporter +* ruby-gli +* ruby-mini-portile +* ruby-tee +* ruby-ya2yaml +* ruby-leap-cli + +## Build remaining packages + + for gem in $gems; do + gem2deb $gem + done + +## Getting the source for the existing packages + + for package in $already_ported; do + apt-get -t jessie source --download-only $package + dpkg-source -x $package*dsc + done + +## Next steps + +* Fix `debian/control` and other `FIXME` on each package. +* Put `debian/` folder in a `debian` branch on each source. +* Fix [tests](https://wiki.debian.org/Teams/Ruby/Packaging/Tests). +* [Other best practices](https://wiki.debian.org/Teams/Ruby/RubyExtras/UpstreamDevelopers). +* [Review the code](https://manual.sarava.org/specs/code/). +* Automate building with pbuilder for `sid`. +* Fix lintian warnings. +* Upstream pull requests. +* Backport everything to `wheezy`. + +## Per-package tasks + +* ruby-faker: + * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765124 + * https://github.com/rails/rails/issues/13164 +* ruby-leap-cli: + * net-ssh compatibility: + * https://github.com/net-ssh/net-ssh/issues/145 + * https://github.com/capistrano/capistrano/issues/927 + * workflow: + + git checkout develop + git archive --prefix=leap-cli-1.5.6/ --format=tar HEAD | bzip2 > ../tarballs/leap-cli-1.5.6.tar.bz2 + git checkout debian + git-buildpackage --git-ignore-branch diff --git a/docs/custom/python.md b/docs/custom/python.md new file mode 100644 index 0000000..85dd263 --- /dev/null +++ b/docs/custom/python.md @@ -0,0 +1,52 @@ +# Python packaging + +## Old procedure + +Example: using [stdeb](http://github.com/astraw/stdeb) to build [http://kedpm.sf.net]. + + sudo apt-get install stdeb fakeroot + sudo apt-get install python-crypto libglade2-0 python-gtk2 python-glade2 + +File `~/.pydistutils.cfg`: + + [sdist_dsc] + force-buildsystem: False + +File `kedpm.cfg`: + + [DEFAULT] + Package: kedpm + Maintainer: User Name + Depends: python-crypto + +Getting the code: + + wget http://downloads.sourceforge.net/project/kedpm/kedpm/0.4.0/kedpm-0.4.0.tar.gz + +Packaging: + + py2dsc --extra-cfg-file kedpm.cfg kedpm-0.4.0.tar.gz + cd deb_dist/kedpm-0.4.0 + dpkg-buildpackage -rfakeroot -uc -us + cd .. + sudo dpkg -i kedpm_0.4.0-1_all.deb + +## References + +* [Python/Pybuild - Debian Wiki](https://wiki.debian.org/Python/Pybuild "Python/Pybuild - Debian Wiki") + * [Packaging Python Applications for Debian | Snakes on Callisto](https://jhermann.github.io/blog/python/devops/2020/03/28/dh_virtualenv_howto.html "Packaging Python Applications for Debian | Snakes on Callisto") + * [Debian -- Details of package python3-stdeb in bullseye](https://packages.debian.org/bullseye/python3-stdeb "Debian -- Details of package python3-stdeb in bullseye") + * [Creating configuration files in /etc in Debian packages - pi3g.com](https://pi3g.com/2020/04/05/creating-configuration-files-in-etc-in-debian-packages/ "Creating configuration files in /etc in Debian packages - pi3g.com") + * [PbuilderHowto - Ubuntu Wiki](https://wiki.ubuntu.com/PbuilderHowto "PbuilderHowto - Ubuntu Wiki") + * [PyBuilder — Tutorial](https://pybuilder.io/documentation/tutorial "PyBuilder — Tutorial") + * [Distributing Python Modules (Legacy version) — Python 3.10.4 documentation](https://docs.python.org/3/distutils/index.html "Distributing Python Modules (Legacy version) — Python 3.10.4 documentation") + * [Distributing Python Modules — Python 3.10.4 documentation](https://docs.python.org/3/distributing/index.html#distributing-index "Distributing Python Modules — Python 3.10.4 documentation") + * [What’s New In Python 3.10 — Python 3.10.4 documentation](https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated "What’s New In Python 3.10 — Python 3.10.4 documentation") + * [PEP 632 – Deprecate distutils module | peps.python.org](https://peps.python.org/pep-0632/ "PEP 632 – Deprecate distutils module | peps.python.org") + * [python - setup.py build doesn't work but develop does - Stack Overflow](https://stackoverflow.com/questions/38729475/setup-py-build-doesnt-work-but-develop-does "python - setup.py build doesn't work but develop does - Stack Overflow") + * [pybuild(1) — dh-python — Debian testing — Debian Manpages](https://manpages.debian.org/testing/dh-python/pybuild.1.en.html "pybuild(1) — dh-python — Debian testing — Debian Manpages") + * [Debian -- Details of package dh-python in bullseye-backports](https://packages.debian.org/bullseye-backports/dh-python "Debian -- Details of package dh-python in bullseye-backports") + * [#1001459 - dh-python: SetuptoolsDeprecationWarning: setup.py install is deprecated - Debian Bug report logs](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001459 "#1001459 - dh-python: SetuptoolsDeprecationWarning: setup.py install is deprecated - Debian Bug report logs") + * [Bugs in package dh-python (version 5.20220403) in unstable -- Debian Bug report logs](https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=dh-python;dist=unstable "Bugs in package dh-python (version 5.20220403) in unstable -- Debian Bug report logs") + * [Debian Python Policy — Debian Python Documentation Project 1.0 documentation](https://debian-python.readthedocs.io/en/latest/debian-policy.html "Debian Python Policy — Debian Python Documentation Project 1.0 documentation") + * [dh-python/plugin_distutils.py at master · p1otr/dh-python](https://github.com/p1otr/dh-python/blob/master/dhpython/build/plugin_distutils.py "dh-python/plugin_distutils.py at master · p1otr/dh-python") diff --git a/docs/custom/ruby.md b/docs/custom/ruby.md new file mode 100644 index 0000000..be79085 --- /dev/null +++ b/docs/custom/ruby.md @@ -0,0 +1,4 @@ +# Ruby packaging + +* See [this](https://wiki.debian.org/Teams/Ruby/Packaging). +* Example: [LEAP](/leap). diff --git a/docs/env.md b/docs/env.md new file mode 100644 index 0000000..cb38509 --- /dev/null +++ b/docs/env.md @@ -0,0 +1,54 @@ +# Environment + +## Build environment creation + +The following steps needs to be run just once for each arch and distro version. + +### Setup cowbuilder chroots + +This is the recommended method: + + sudo mkdir -p /var/cache/pbuilder/sid-amd64 + sudo -E cowbuilder --create + + sudo mkdir -p /var/cache/pbuilder/stretch-amd64 + sudo -E DIST=stretch cowbuilder --create + +### Setup pbuilder chroots + +If you want to setup directly using `pbuilder`: + + git-pbuilder create + DIST=jessie git-pbuilder + +### Compatibility with git-buildpackage + +This is a workaround while we don't find a cleaner way to fix +[this issue](http://ramblingfoo.blogspot.com.br/2012/10/howto-sudo-cowbuilder-git-buildpackage.html) +with `git-buildpackage` not getting `~/.pbuilderrc` from the local user: + + ( cd /var/cache/pbuilder/ && sudo ln -s sid-amd64/base.cow ) + +## External repository integration + +If your package storage lives elsewhere, make a symlink like this: + + ( + cd /var/cache/pbuilder/jessie-amd64 && \ + sudo rm -rf result && \ + sudo ln -s /var/data/distros/debian/packages/build-area/jessie-amd64 result + ) + +## Environment maintenance + +These steps should be run once in a while to ensure we have an up to date packaging environment. + +### Pbuilder + + DIST=sid git-pbuilder update + DIST=jessie git-pbuilder update --override-config + +### Cowbuilder + + DIST=sid sudo -E cowbuilder --update + DIST=jessie sudo -E cowbuilder --update --override-config diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..6e416b6 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,12 @@ +# Debian packaging effort! + +In the past, we used to be [heavy slackware +users](https://simplepkg.fluxo.info) when we just had a few boxes to manage. +Then we had to change our whole packaging paradigm when we switched to Debian. + +These notes are mainly references to the detailed Debian/Ubuntu documentations +we're using in the course of learning the intricacies of Debian packaging. + +Grab this repository using + + git clone --recursive https://git.fluxo.info/debian diff --git a/docs/itp.md b/docs/itp.md new file mode 100644 index 0000000..a0692ee --- /dev/null +++ b/docs/itp.md @@ -0,0 +1,13 @@ +# ITP + +## WNPP + +Before packaging anything, have a look at: + +* [WNPP](http://wnpp.debian.net). +* [Debian Git](http://anonscm.debian.org/gitweb/). + +## Software + +* [zathura-epub](https://git.pwmt.org/pwmt/zathura-epub). +* [bdsync](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724344). diff --git a/docs/references.md b/docs/references.md new file mode 100644 index 0000000..0080468 --- /dev/null +++ b/docs/references.md @@ -0,0 +1,66 @@ +# References + +## General + +* [Debian New Maintainers' Guide](https://www.debian.org/doc/manuals/maint-guide/). +* [Debian Developer's Reference](https://www.debian.org/doc/manuals/developers-reference/) +* [Debian Policy Manual](https://www.debian.org/doc/debian-policy/). +* [Guide for Debian Maintainers](https://www.debian.org/doc/manuals/debmake-doc/index.en.html) +* [Overview — Ubuntu Packaging Guide](http://packaging.ubuntu.com/html/). +* [Debugging Debian package installations](http://mdcc.cx/debian/debugging_debian_package_installations.html). +* [Quick Debian development guide - anarcat](https://anarc.at/software/debian-development/ "Quick Debian development guide - anarcat") + +## Pbuilder and cowbuilder + +* [PbuilderTricks](https://wiki.debian.org/PbuilderTricks). +* [cowbuilder](https://wiki.debian.org/cowbuilder). + +## Sbuild + +* [sbuild - Debian Wiki](https://wiki.debian.org/sbuild#Delete_a_chroot "sbuild - Debian Wiki") + * [sbuild-debian-developer-setup(1) — sbuild — Debian unstable — Debian Manpages](https://manpages.debian.org/unstable/sbuild/sbuild-debian-developer-setup.1 "sbuild-debian-developer-setup(1) — sbuild — Debian unstable — Debian Manpages") + +## Backporting + +* [Backporting Debian packages with pbuilder](http://www.tolaris.com/2009/03/31/backporting-debian-packages-with-pbuilder/). +* [Using pbuilder to backport Debian packages](http://edseek.com/~jasonb/articles/pbuilder_backports/). +* [BuildingFormalBackports - Debian Wiki](https://wiki.debian.org/BuildingFormalBackports#Building_multi-dependencies_packages). + +## Packaging with git + +* [Co-maintaining a Debian package with Git and git-buildpackage | workaround.org](https://workaround.org/debian-git-comaintenance). +* [PackagingWithGit - Debian Wiki](https://wiki.debian.org/PackagingWithGit). +* [Building Debian Packages with git-buildpackage](http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html). + +## Linting + +* [Lintian Tag](https://lintian.debian.org/tags "Lintian Tag") list. + +## Piuparts + +* [piuparts - Debian Wiki](https://wiki.debian.org/piuparts) +* [piuparts.debian.org/doc/README.txt](https://piuparts.debian.org/doc/README.txt) + +## Security and Hardening + +* [Hardening - Debian Wiki](https://wiki.debian.org/Hardening) +* [ServiceSandboxing - Debian Wiki](https://wiki.debian.org/ServiceSandboxing) + +## Account handling + +* [AccountHandlingInMaintainerScripts - Debian Wiki](https://wiki.debian.org/AccountHandlingInMaintainerScripts "AccountHandlingInMaintainerScripts - Debian Wiki") + * [How Debian package should create user accounts? - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/47880/how-debian-package-should-create-user-accounts "How Debian package should create user accounts? - Unix & Linux Stack Exchange") + +## Systemd + +* [Teams/pkg-systemd/Packaging - Debian Wiki](https://wiki.debian.org/Teams/pkg-systemd/Packaging "Teams/pkg-systemd/Packaging - Debian Wiki") + * [How can I Debian-package a python application with a systemd unit using stdeb3/py2dsc and dpkg-buildpackage? - Stack Overflow](https://stackoverflow.com/questions/64345965/how-can-i-debian-package-a-python-application-with-a-systemd-unit-using-stdeb3-p "How can I Debian-package a python application with a systemd unit using stdeb3/py2dsc and dpkg-buildpackage? - Stack Overflow") + * [packaging - How to package a systemd service? - Ask Ubuntu](https://askubuntu.com/questions/746094/how-to-package-a-systemd-service "packaging - How to package a systemd service? - Ask Ubuntu") + * [configuration - How do I override or configure systemd services? - Ask Ubuntu](https://askubuntu.com/questions/659267/how-do-i-override-or-configure-systemd-services#659268 "configuration - How do I override or configure systemd services? - Ask Ubuntu") + +## SysUser + +* [Teams/Dpkg/Spec/SysUser - Debian Wiki](https://wiki.debian.org/Teams/Dpkg/Spec/SysUser) +* [dh_sysuser(1) — dh-sysuser — Debian testing — Debian Manpages](https://manpages.debian.org/testing/dh-sysuser/dh_sysuser.1.en.html) +* [Debian / dh-sysuser · GitLab](https://salsa.debian.org/debian/dh-sysuser) +* [dh-sysuser. Yesterday I’ve discovered a dh-sysuser… | by George Shuklin | OpsOps | Medium](https://medium.com/opsops/dh-sysuser-6bd3e3d623dd) diff --git a/docs/repositories.md b/docs/repositories.md new file mode 100644 index 0000000..d6cf48e --- /dev/null +++ b/docs/repositories.md @@ -0,0 +1,27 @@ +# Repositories + +## Documentation + +* [DebianRepository/Setup - Debian Wiki](https://wiki.debian.org/DebianRepository/Setup). +* [Debian Repository HOWTO (Obsolete Documentation)](https://www.debian.org/doc/manuals/repository-howto/repository-howto). +* [HowToSetupADebianRepository](https://wiki.debian.org/HowToSetupADebianRepository). +* [Setting up your own APT repository with upload support](http://www.debian-administration.org/article/286/Setting_up_your_own_APT_repository_with_upload_support). + +## Reprepro + +* [puppet-reprepro](https://git.fluxo.info/puppet-reprepro). +Alguns links sobre como instalar e usar o reprepro: +* [reprepro](http://mirrorer.alioth.debian.org/). +* [HowToSetupADebianRepository](http://wiki.debian.org/HowToSetupADebianRepository). +* [Setting up your own APT repository with upload support](http://www.debian-administration.org/article/Setting_up_your_own_APT_repository_with_upload_support). +* [Setting up a basic Debian repository with reprepro](https://noc.sidux.com/fll/wiki/reprepro). +* [Setting up and managing an APT repository with reprepro](http://www.jejik.com/articles/2006/09/setting_up_and_managing_an_apt_repository_with_reprepro/). + +Removing a package from the repository: + + su reprepro -c "reprepro -b /var/reprepro remove squeeze kedpm" + +## Other + +* [aptly - Debian repository management tool](https://www.aptly.info/) ([package](https://packages.debian.org/stretch/aptly)). +* [debify: Tool for building simple Debian repositories](https://github.com/spotify/debify). diff --git a/docs/todo.md b/docs/todo.md new file mode 100644 index 0000000..713b4a7 --- /dev/null +++ b/docs/todo.md @@ -0,0 +1,7 @@ +# TODO + +* Merge all `build-area` folders. +* Deploy debian project as a ikiwiki with a git-annex'ed package repository. +* Try an [AutomateBackports](https://wiki.debian.org/AutomateBackports) setup. +* Set [SecurePbuilder](https://wiki.debian.org/SecurePbuilder). +* How to make an offline apt-repository in an encrypted usb drive. diff --git a/env.md b/env.md deleted file mode 100644 index 8069642..0000000 --- a/env.md +++ /dev/null @@ -1,57 +0,0 @@ -[[!meta title="Environment"]] - -Build environment creation --------------------------- - -The following steps needs to be run just once for each arch and distro version. - -### Setup cowbuilder chroots - -This is the recommended method: - - sudo mkdir -p /var/cache/pbuilder/sid-amd64 - sudo -E cowbuilder --create - - sudo mkdir -p /var/cache/pbuilder/stretch-amd64 - sudo -E DIST=stretch cowbuilder --create - -### Setup pbuilder chroots - -If you want to setup directly using `pbuilder`: - - git-pbuilder create - DIST=jessie git-pbuilder - -### Compatibility with git-buildpackage - -This is a workaround while we don't find a cleaner way to fix -[this issue](http://ramblingfoo.blogspot.com.br/2012/10/howto-sudo-cowbuilder-git-buildpackage.html) -with `git-buildpackage` not getting `~/.pbuilderrc` from the local user: - - ( cd /var/cache/pbuilder/ && sudo ln -s sid-amd64/base.cow ) - -External repo integration -------------------------- - -If your package storage lives elsewhere, make a symlink like this: - - ( - cd /var/cache/pbuilder/jessie-amd64 && \ - sudo rm -rf result && \ - sudo ln -s /var/data/distros/debian/packages/build-area/jessie-amd64 result - ) - -Environment maintenance ------------------------ - -These steps should be run once in a while to ensure we have an up to date packaging environment. - -### Pbuilder - - DIST=sid git-pbuilder update - DIST=jessie git-pbuilder update --override-config - -### Cowbuilder - - DIST=sid sudo -E cowbuilder --update - DIST=jessie sudo -E cowbuilder --update --override-config diff --git a/ikiwiki.yaml b/ikiwiki.yaml deleted file mode 100644 index 30e6ad0..0000000 --- a/ikiwiki.yaml +++ /dev/null @@ -1,425 +0,0 @@ -# IkiWiki::Setup::Yaml - YAML formatted setup file -# -# Setup file for ikiwiki. -# -# Passing this to ikiwiki --setup will make ikiwiki generate -# wrappers and build the wiki. -# -# Remember to re-run ikiwiki --setup any time you edit this file. -# -# name of the wiki -wikiname: Debian Packages -# contact email for wiki -adminemail: debian@fluxo.info -# users who are wiki admins -adminuser: [] -# users who are banned from the wiki -banned_users: [] -# where the source of the wiki is located -srcdir: . -# where to build the wiki -destdir: www -# base url to the wiki -url: https://debian.fluxo.info -# url to the ikiwiki.cgi -cgiurl: https://debian.fluxo.info/ikiwiki.cgi -# do not adjust cgiurl if CGI is accessed via different URL -reverse_proxy: 0 -# filename of cgi wrapper to generate -cgi_wrapper: '' -# mode for cgi_wrapper (can safely be made suid) -cgi_wrappermode: 06755 -# number of seconds to delay CGI requests when overloaded -cgi_overload_delay: '' -# message to display when overloaded (may contain html) -cgi_overload_message: '' -# enable optimization of only refreshing committed changes? -only_committed_changes: 0 -# rcs backend to use -rcs: git -# plugins to add to the default configuration -add_plugins: -- goodstuff -- sidebar -# plugins to disable -disable_plugins: -- openid -- editpage -# additional directory to search for template files -templatedir: /usr/share/ikiwiki/templates -# base wiki source location -underlaydir: /usr/share/ikiwiki/basewiki -# display verbose messages? -#verbose: 1 -# log to syslog? -#syslog: 1 -# create output files named page/index.html? -usedirs: 1 -# use '!'-prefixed preprocessor directives? -prefix_directives: 1 -# use page/index.mdwn source files -indexpages: 0 -# enable Discussion pages? -discussion: 0 -# name of Discussion pages -discussionpage: Discussion -# use elements new in HTML5 like
? -html5: 0 -# only send cookies over SSL connections? -sslcookie: 0 -# extension to use for new pages -default_pageext: mdwn -# extension to use for html files -htmlext: html -# strftime format string to display date -timeformat: '%c' -# UTF-8 locale to use -#locale: en_US.UTF-8 -# put user pages below specified page -userdir: '' -# how many backlinks to show before hiding excess (0 to show all) -numbacklinks: 10 -# attempt to hardlink source files? (optimisation for large files) -hardlink: 0 -# force ikiwiki to use a particular umask (keywords public, group or private, or a number) -umask: 2 -# group for wrappers to run in -#wrappergroup: ikiwiki -# extra library and plugin directories -libdirs: [] -# extra library and plugin directory (searched after libdirs) -libdir: '' -# environment variables -ENV: {} -# time zone name -timezone: :/etc/localtime -# regexp of normally excluded files to include -#include: ^\.htaccess$ -# regexp of files that should be skipped -exclude: (?^i:(www|build-area|keyring)) -# specifies the characters that are allowed in source filenames -wiki_file_chars: -[:alnum:]+/.:_ -# allow symlinks in the path leading to the srcdir (potentially insecure) -allow_symlinks_before_srcdir: 0 -# cookie control -cookiejar: - file: /home/rhatto/.ikiwiki/cookies -# set custom user agent string for outbound HTTP requests e.g. when fetching aggregated RSS feeds -useragent: ikiwiki/3.20170111 -# theme has a responsive layout? (mobile-optimized) -responsive_layout: 1 -# try harder to produce deterministic output -deterministic: 0 - -###################################################################### -# core plugins -# (editpage, git, htmlscrubber, inline, link, meta, parentlinks, -# templatebody) -###################################################################### - -# git plugin -# git hook to generate -#git_wrapper: /git/wiki.git/hooks/post-update -# shell command for git_wrapper to run, in the background -#git_wrapper_background_command: git push github -# mode for git_wrapper (can safely be made suid) -#git_wrappermode: 06755 -# git pre-receive hook to generate -#git_test_receive_wrapper: /git/wiki.git/hooks/pre-receive -# unix users whose commits should be checked by the pre-receive hook -#untrusted_committers: [] -# gitweb url to show file history ([[file]] substituted) -historyurl: https://git.fluxo.info/debian/log/[[file]] -# gitweb url to show a diff ([[file]], [[sha1_to]], [[sha1_from]], [[sha1_commit]], and [[sha1_parent]] substituted) -diffurl: https://git.fluxo.info/debian/commit/[[file]]?id=[[sha1_commit]] -# where to pull and push changes (set to empty string to disable) -gitorigin_branch: '' -# branch that the wiki is stored in -gitmaster_branch: master - -# htmlscrubber plugin -# PageSpec specifying pages not to scrub -#htmlscrubber_skip: '!*/Discussion' - -# inline plugin -# enable rss feeds by default? -rss: 1 -# enable atom feeds by default? -#atom: 0 -# allow rss feeds to be used? -#allowrss: 0 -# allow atom feeds to be used? -#allowatom: 0 -# urls to ping (using XML-RPC) on feed update -pingurl: [] - -###################################################################### -# auth plugins -# (anonok, blogspam, emailauth, httpauth, lockedit, moderatedcomments, -# opendiscussion, openid, passwordauth, signinedit) -###################################################################### - -# anonok plugin -# PageSpec to limit which pages anonymous users can edit -#anonok_pagespec: '*/discussion' - -# blogspam plugin -# PageSpec of pages to check for spam -#blogspam_pagespec: postcomment(*) -# options to send to blogspam server -#blogspam_options: blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10 -# blogspam server JSON url -#blogspam_server: '' - -# emailauth plugin -# email address to send emailauth mails as (default: adminemail) -#emailauth_sender: '' - -# httpauth plugin -# url to redirect to when authentication is needed -#cgiauthurl: http://example.com/wiki/auth/ikiwiki.cgi -# PageSpec of pages where only httpauth will be used for authentication -#httpauth_pagespec: '!*/Discussion' - -# lockedit plugin -# PageSpec controlling which pages are locked -#locked_pages: '!*/Discussion' - -# moderatedcomments plugin -# PageSpec matching users or comment locations to moderate -#moderate_pagespec: '*' - -# openid plugin -# url pattern of openid realm (default is cgiurl) -#openid_realm: '' -# url to ikiwiki cgi to use for openid authentication (default is cgiurl) -#openid_cgiurl: '' - -# passwordauth plugin -# a password that must be entered when signing up for an account -#account_creation_password: s3cr1t -# cost of generating a password using Authen::Passphrase::BlowfishCrypt -#password_cost: 8 - -###################################################################### -# format plugins -# (creole, highlight, hnb, html, mdwn, otl, po, rawhtml, rst, textile, -# txt) -###################################################################### - -# highlight plugin -# types of source files to syntax highlight -#tohighlight: .c .h .cpp .pl .py Makefile:make -# location of highlight's filetypes.conf -#filetypes_conf: /etc/highlight/filetypes.conf -# location of highlight's langDefs directory -#langdefdir: /usr/share/highlight/langDefs - -# mdwn plugin -# enable multimarkdown features? -#multimarkdown: 0 -# disable use of markdown discount? -#nodiscount: 0 - -# po plugin -# master language (non-PO files) -#po_master_language: en|English -# slave languages (translated via PO files) format: ll|Langname -#po_slave_languages: -#- fr|Français -#- es|Español -#- de|Deutsch -# PageSpec controlling which pages are translatable -#po_translatable_pages: '* and !*/Discussion' -# internal linking behavior (default/current/negotiated) -#po_link_to: current - -###################################################################### -# special-purpose plugins -# (osm, underlay) -###################################################################### - -# osm plugin -# the default zoom when you click on the map link -#osm_default_zoom: 15 -# the icon shown on links and on the main map -#osm_default_icon: ikiwiki/images/osm.png -# the alt tag of links, defaults to empty -#osm_alt: '' -# the output format for waypoints, can be KML, GeoJSON or CSV (one or many, comma-separated) -#osm_format: KML -# the icon attached to a tag, displayed on the map for tagged pages -#osm_tag_default_icon: icon.png -# Url for the OpenLayers.js file -#osm_openlayers_url: http://www.openlayers.org/api/OpenLayers.js -# Layers to use in the map. Can be either the 'OSM' string or a type option for Google maps (GoogleNormal, GoogleSatellite, GoogleHybrid or GooglePhysical). It can also be an arbitrary URL in a syntax acceptable for OpenLayers.Layer.OSM.url parameter. -#osm_layers: -# OSM: GoogleSatellite -# Google maps API key, Google layer not used if missing, see https://code.google.com/apis/console/ to get an API key -#osm_google_apikey: '' - -# underlay plugin -# extra underlay directories to add -#add_underlays: -#- /home/rhatto/wiki.underlay - -###################################################################### -# web plugins -# (404, attachment, comments, editdiff, edittemplate, getsource, google, -# goto, mirrorlist, remove, rename, repolist, search, theme, userlist, -# websetup, wmd) -###################################################################### - -# attachment plugin -# enhanced PageSpec specifying what attachments are allowed -#allowed_attachments: virusfree() and mimetype(image/*) and maxsize(50kb) -# virus checker program (reads STDIN, returns nonzero if virus found) -#virus_checker: clamdscan - - -# comments plugin -# PageSpec of pages where comments are allowed -#comments_pagespec: blog/* and !*/Discussion -# PageSpec of pages where posting new comments is not allowed -#comments_closed_pagespec: blog/controversial or blog/flamewar -# Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12" -#comments_pagename: '' -# Interpret directives in comments? -#comments_allowdirectives: 0 -# Allow anonymous commenters to set an author name? -#comments_allowauthor: 0 -# commit comments to the VCS -#comments_commit: 1 -# Restrict formats for comments to (no restriction if empty) -#comments_allowformats: mdwn txt - -# getsource plugin -# Mime type for returned source. -#getsource_mimetype: text/plain; charset=utf-8 - -# mirrorlist plugin -# list of mirrors -#mirrorlist: {} -# generate links that point to the mirrors' ikiwiki CGI -#mirrorlist_use_cgi: 1 - -# repolist plugin -# URIs of repositories containing the wiki's source -#repositories: -#- svn://svn.example.org/wiki/trunk - -# search plugin -# path to the omega cgi program -#omega_cgi: /usr/lib/cgi-bin/omega/omega -# use google site search rather than internal xapian index? -#google_search: 1 - -# theme plugin -# name of theme to enable -#theme: actiontabs - -# websetup plugin -# list of plugins that cannot be enabled/disabled via the web interface -#websetup_force_plugins: [] -# list of additional setup field keys to treat as unsafe -#websetup_unsafe: [] -# show unsafe settings, read-only, in web interface? -#websetup_show_unsafe: 1 - -###################################################################### -# widget plugins -# (calendar, color, conditional, cutpaste, date, format, fortune, -# graphviz, haiku, headinganchors, img, linkmap, listdirectives, map, -# more, orphans, pagecount, pagestats, poll, polygen, postsparkline, -# progress, shortcut, sparkline, table, template, teximg, toc, toggle, -# version) -###################################################################### - -# calendar plugin -# base of the archives hierarchy -#archivebase: archives -# PageSpec of pages to include in the archives, if option `calendar_autocreate` is true. -#archive_pagespec: page(posts/*) and !*/Discussion -# autocreate new calendar pages? -#calendar_autocreate: 1 -# if set, when building calendar pages, also build pages of year and month when no pages were published (building empty calendars). -#calendar_fill_gaps: 1 - -# img plugin -# Image formats to process (jpeg, png, gif, svg, pdf or 'everything' to accept all) -#img_allowed_formats: '' - -# listdirectives plugin -# directory in srcdir that contains directive descriptions -#directive_description_dir: ikiwiki/directive - -# teximg plugin -# Should teximg use dvipng to render, or dvips and convert? -#teximg_dvipng: '' -# LaTeX prefix for teximg plugin -#teximg_prefix: | -# \documentclass{article} -# \usepackage[utf8]{inputenc} -# \usepackage{amsmath} -# \usepackage{amsfonts} -# \usepackage{amssymb} -# \pagestyle{empty} -# \begin{document} -# LaTeX postfix for teximg plugin -#teximg_postfix: \end{document} - -###################################################################### -# other plugins -# (aggregate, autoindex, brokenlinks, camelcase, ddate, embed, favicon, -# filecheck, flattr, goodstuff, htmlbalance, localstyle, loginselector, -# notifyemail, pagetemplate, pingee, pinger, prettydate, recentchanges, -# recentchangesdiff, relativedate, rsync, sidebar, smiley, -# sortnaturally, tag, testpagespec, trail, transient) -###################################################################### - -# aggregate plugin -# enable aggregation to internal pages? -#aggregateinternal: 1 -# allow aggregation to be triggered via the web? -#aggregate_webtrigger: 0 - -# autoindex plugin -# commit autocreated index pages -#autoindex_commit: 1 - -# camelcase plugin -# list of words to not turn into links -#camelcase_ignore: [] - -# flattr plugin -# userid or user name to use by default for Flattr buttons -#flattr_userid: joeyh - -# pinger plugin -# how many seconds to try pinging before timing out -#pinger_timeout: 15 - -# prettydate plugin -# format to use to display date -#prettydateformat: '%X, %B %o, %Y' - -# recentchanges plugin -# name of the recentchanges page -recentchangespage: recentchanges -# number of changes to track -recentchangesnum: 100 - -# rsync plugin -# command to run to sync updated pages -#rsync_command: rsync -qa --delete . user@host:/path/to/docroot/ - -# sidebar plugin -# show sidebar page on all pages? -#global_sidebars: 1 - -# tag plugin -# parent page tags are located under -#tagbase: tag -# autocreate new tag pages? -#tag_autocreate: 1 -# commit autocreated tag pages -tag_autocreate_commit: 1 diff --git a/index.md b/index.md deleted file mode 100644 index 90c5a05..0000000 --- a/index.md +++ /dev/null @@ -1,29 +0,0 @@ -[[!meta title="Debian packaging effort!"]] - -In the past, we used to be [heavy slackware users](https://simplepkg.fluxo.info) when we just -had a few boxes to manage. Then we had to change our whole packaging paradigm when we switched -to Debian. - -These notes are mainly references to the detailed Debian/Ubuntu documentations we're using in -the course of learning the intricacies of Debian packaging. - -Grab this repository using - - git clone --recursive https://git.fluxo.info/debian - -Index ------ - -* [Basics](basics). -* [Environment](env). -* [Checking sources](checking). -* [Building](building). -* [Repositories](repositories). -* [Cross compilation](cross). -* [References](references). -* [Local ITP](itp). -* [TODO](todo). -* Custom procedures: - * [LEAP](leap). - * [Python](python). - * [Ruby](ruby). diff --git a/itp.md b/itp.md deleted file mode 100644 index 32cc50d..0000000 --- a/itp.md +++ /dev/null @@ -1,15 +0,0 @@ -[[!meta title="Local ITP"]] - -WNPP ----- - -Before packaging anything, have a look at: - -* [WNPP](http://wnpp.debian.net). -* [Debian Git](http://anonscm.debian.org/gitweb/). - -Software --------- - -* [zathura-epub](https://git.pwmt.org/pwmt/zathura-epub). -* [bdsync](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=724344). diff --git a/leap.md b/leap.md deleted file mode 100644 index 61725f2..0000000 --- a/leap.md +++ /dev/null @@ -1,152 +0,0 @@ -[[!meta title="Example: packaging leap_cli and dependencies"]] - -Upstream: https://leap.se/code/issues/6503 - -Determine dependencies ----------------------- - -First, in a *fresh* vagrant box with *sid* and *testing* in the `sources.list`: - - sudo apt-get install rubygems gem2deb - sudo gem install leap_cli - -Then we get the dependencies and build all packages: - - dependencies=" `gem list | cut -d '(' -f 1` " - -Which currently gives us the following result: - -* activemodel -* activesupport -* base32 -* blockenspiel -* builder -* capistrano -* colored -* command_line_reporter -* gli -* gpgme -* highline -* i18n -* json -* json_pure -* leap_cli -* mini_portile -* minitest -* net-scp -* net-sftp -* net-ssh -* net-ssh-gateway -* paint -* tee -* thread_safe -* tzinfo -* versionomy -* ya2yaml - -Gem cleanup: - - sudo gem uninstall $dependencies - -Check existing dependencies: - - for item in $dependencies; do - package=ruby-"`echo $item | sed -e 's/_/-/'`" - packages="$packages $package" - done - - apt-get install --dry-run $packages - -Then: - -* Check for non-existing packages. -* Try different package names. -* Update your list of existing `$packages`. - -In this example we have the following `$already_ported` dependencies: - -* capistrano -* ruby-activemodel -* ruby-activesupport -* ruby-blockenspiel -* ruby-builder -* ruby-colored -* ruby-gpgme -* ruby-highline -* ruby-i18n -* ruby-json -* ruby-minitest -* ruby-net-scp -* ruby-net-sftp -* ruby-net-ssh -* ruby-net-ssh-gateway -* ruby-paint -* ruby-thread-safe -* ruby-tzinfo -* ruby-versionomy - -That means the following `$gems` needs to be packaged: - -* base32 -* command_line_reporter -* gli -* json_pure (we can just use ruby-json and ignore this dependency) -* leap_cli -* mini_portile -* tee -* ya2yaml - -In summary, we need to port the following `$new_packages`: - -* ruby-base32 -* ruby-command-line-reporter -* ruby-gli -* ruby-mini-portile -* ruby-tee -* ruby-ya2yaml -* ruby-leap-cli - -Build remaining packages ------------------------- - - for gem in $gems; do - gem2deb $gem - done - -Getting the source for the existing packages --------------------------------------------- - - for package in $already_ported; do - apt-get -t jessie source --download-only $package - dpkg-source -x $package*dsc - done - -Next steps ----------- - -* Fix `debian/control` and other `FIXME` on each package. -* Put `debian/` folder in a `debian` branch on each source. -* Fix [tests](https://wiki.debian.org/Teams/Ruby/Packaging/Tests). -* [Other best practices](https://wiki.debian.org/Teams/Ruby/RubyExtras/UpstreamDevelopers). -* [Review the code](https://manual.sarava.org/specs/code/). -* Automate building with pbuilder for `sid`. -* Fix lintian warnings. -* Upstream pull requests. -* Backport everything to `wheezy`. - -Per-package tasks ------------------ - -* ruby-faker: - * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=765124 - * https://github.com/rails/rails/issues/13164 -* ruby-leap-cli: - * net-ssh compatibility: - * https://github.com/net-ssh/net-ssh/issues/145 - * https://github.com/capistrano/capistrano/issues/927 - * workflow: - - git checkout develop - git archive --prefix=leap-cli-1.5.6/ --format=tar HEAD | bzip2 > ../tarballs/leap-cli-1.5.6.tar.bz2 - git checkout debian - git-buildpackage --git-ignore-branch diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 0000000..73f08df --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,19 @@ +site_name: A Debian packaging effort + +theme: + name: readthedocs + +nav: + - index.md + - basics.md + - env.md + - checking.md + - building.md + - repositories.md + - cross.md + - custom/python.md + - custom/ruby.md + - custom/leap.md + - itp.md + - todo.md + - references.md diff --git a/python.md b/python.md deleted file mode 100644 index ada80f0..0000000 --- a/python.md +++ /dev/null @@ -1,52 +0,0 @@ -[[!meta title="Python packaging"]] - -## Old procedure - -Example: using [stdeb](http://github.com/astraw/stdeb) to build [http://kedpm.sf.net]. - - sudo apt-get install stdeb fakeroot - sudo apt-get install python-crypto libglade2-0 python-gtk2 python-glade2 - -File `~/.pydistutils.cfg`: - - [sdist_dsc] - force-buildsystem: False - -File `kedpm.cfg`: - - [DEFAULT] - Package: kedpm - Maintainer: User Name - Depends: python-crypto - -Getting the code: - - wget http://downloads.sourceforge.net/project/kedpm/kedpm/0.4.0/kedpm-0.4.0.tar.gz - -Packaging: - - py2dsc --extra-cfg-file kedpm.cfg kedpm-0.4.0.tar.gz - cd deb_dist/kedpm-0.4.0 - dpkg-buildpackage -rfakeroot -uc -us - cd .. - sudo dpkg -i kedpm_0.4.0-1_all.deb - -## References - -* [Python/Pybuild - Debian Wiki](https://wiki.debian.org/Python/Pybuild "Python/Pybuild - Debian Wiki") - * [Packaging Python Applications for Debian | Snakes on Callisto](https://jhermann.github.io/blog/python/devops/2020/03/28/dh_virtualenv_howto.html "Packaging Python Applications for Debian | Snakes on Callisto") - * [Debian -- Details of package python3-stdeb in bullseye](https://packages.debian.org/bullseye/python3-stdeb "Debian -- Details of package python3-stdeb in bullseye") - * [Creating configuration files in /etc in Debian packages - pi3g.com](https://pi3g.com/2020/04/05/creating-configuration-files-in-etc-in-debian-packages/ "Creating configuration files in /etc in Debian packages - pi3g.com") - * [PbuilderHowto - Ubuntu Wiki](https://wiki.ubuntu.com/PbuilderHowto "PbuilderHowto - Ubuntu Wiki") - * [PyBuilder — Tutorial](https://pybuilder.io/documentation/tutorial "PyBuilder — Tutorial") - * [Distributing Python Modules (Legacy version) — Python 3.10.4 documentation](https://docs.python.org/3/distutils/index.html "Distributing Python Modules (Legacy version) — Python 3.10.4 documentation") - * [Distributing Python Modules — Python 3.10.4 documentation](https://docs.python.org/3/distributing/index.html#distributing-index "Distributing Python Modules — Python 3.10.4 documentation") - * [What’s New In Python 3.10 — Python 3.10.4 documentation](https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated "What’s New In Python 3.10 — Python 3.10.4 documentation") - * [PEP 632 – Deprecate distutils module | peps.python.org](https://peps.python.org/pep-0632/ "PEP 632 – Deprecate distutils module | peps.python.org") - * [python - setup.py build doesn't work but develop does - Stack Overflow](https://stackoverflow.com/questions/38729475/setup-py-build-doesnt-work-but-develop-does "python - setup.py build doesn't work but develop does - Stack Overflow") - * [pybuild(1) — dh-python — Debian testing — Debian Manpages](https://manpages.debian.org/testing/dh-python/pybuild.1.en.html "pybuild(1) — dh-python — Debian testing — Debian Manpages") - * [Debian -- Details of package dh-python in bullseye-backports](https://packages.debian.org/bullseye-backports/dh-python "Debian -- Details of package dh-python in bullseye-backports") - * [#1001459 - dh-python: SetuptoolsDeprecationWarning: setup.py install is deprecated - Debian Bug report logs](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1001459 "#1001459 - dh-python: SetuptoolsDeprecationWarning: setup.py install is deprecated - Debian Bug report logs") - * [Bugs in package dh-python (version 5.20220403) in unstable -- Debian Bug report logs](https://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=dh-python;dist=unstable "Bugs in package dh-python (version 5.20220403) in unstable -- Debian Bug report logs") - * [Debian Python Policy — Debian Python Documentation Project 1.0 documentation](https://debian-python.readthedocs.io/en/latest/debian-policy.html "Debian Python Policy — Debian Python Documentation Project 1.0 documentation") - * [dh-python/plugin_distutils.py at master · p1otr/dh-python](https://github.com/p1otr/dh-python/blob/master/dhpython/build/plugin_distutils.py "dh-python/plugin_distutils.py at master · p1otr/dh-python") diff --git a/references.md b/references.md deleted file mode 100644 index 4474d60..0000000 --- a/references.md +++ /dev/null @@ -1,66 +0,0 @@ -[[!meta title="References"]] - -## General - -* [Debian New Maintainers' Guide](https://www.debian.org/doc/manuals/maint-guide/). -* [Debian Developer's Reference](https://www.debian.org/doc/manuals/developers-reference/) -* [Debian Policy Manual](https://www.debian.org/doc/debian-policy/). -* [Guide for Debian Maintainers](https://www.debian.org/doc/manuals/debmake-doc/index.en.html) -* [Overview — Ubuntu Packaging Guide](http://packaging.ubuntu.com/html/). -* [Debugging Debian package installations](http://mdcc.cx/debian/debugging_debian_package_installations.html). -* [Quick Debian development guide - anarcat](https://anarc.at/software/debian-development/ "Quick Debian development guide - anarcat") - -## Pbuilder and cowbuilder - -* [PbuilderTricks](https://wiki.debian.org/PbuilderTricks). -* [cowbuilder](https://wiki.debian.org/cowbuilder). - -## Sbuild - -* [sbuild - Debian Wiki](https://wiki.debian.org/sbuild#Delete_a_chroot "sbuild - Debian Wiki") - * [sbuild-debian-developer-setup(1) — sbuild — Debian unstable — Debian Manpages](https://manpages.debian.org/unstable/sbuild/sbuild-debian-developer-setup.1 "sbuild-debian-developer-setup(1) — sbuild — Debian unstable — Debian Manpages") - -## Backporting - -* [Backporting Debian packages with pbuilder](http://www.tolaris.com/2009/03/31/backporting-debian-packages-with-pbuilder/). -* [Using pbuilder to backport Debian packages](http://edseek.com/~jasonb/articles/pbuilder_backports/). -* [BuildingFormalBackports - Debian Wiki](https://wiki.debian.org/BuildingFormalBackports#Building_multi-dependencies_packages). - -## Packaging with git - -* [Co-maintaining a Debian package with Git and git-buildpackage | workaround.org](https://workaround.org/debian-git-comaintenance). -* [PackagingWithGit - Debian Wiki](https://wiki.debian.org/PackagingWithGit). -* [Building Debian Packages with git-buildpackage](http://honk.sigxcpu.org/projects/git-buildpackage/manual-html/gbp.html). - -## Linting - -* [Lintian Tag](https://lintian.debian.org/tags "Lintian Tag") list. - -## Piuparts - -* [piuparts - Debian Wiki](https://wiki.debian.org/piuparts) -* [piuparts.debian.org/doc/README.txt](https://piuparts.debian.org/doc/README.txt) - -## Security and Hardening - -* [Hardening - Debian Wiki](https://wiki.debian.org/Hardening) -* [ServiceSandboxing - Debian Wiki](https://wiki.debian.org/ServiceSandboxing) - -## Account handling - -* [AccountHandlingInMaintainerScripts - Debian Wiki](https://wiki.debian.org/AccountHandlingInMaintainerScripts "AccountHandlingInMaintainerScripts - Debian Wiki") - * [How Debian package should create user accounts? - Unix & Linux Stack Exchange](https://unix.stackexchange.com/questions/47880/how-debian-package-should-create-user-accounts "How Debian package should create user accounts? - Unix & Linux Stack Exchange") - -## Systemd - -* [Teams/pkg-systemd/Packaging - Debian Wiki](https://wiki.debian.org/Teams/pkg-systemd/Packaging "Teams/pkg-systemd/Packaging - Debian Wiki") - * [How can I Debian-package a python application with a systemd unit using stdeb3/py2dsc and dpkg-buildpackage? - Stack Overflow](https://stackoverflow.com/questions/64345965/how-can-i-debian-package-a-python-application-with-a-systemd-unit-using-stdeb3-p "How can I Debian-package a python application with a systemd unit using stdeb3/py2dsc and dpkg-buildpackage? - Stack Overflow") - * [packaging - How to package a systemd service? - Ask Ubuntu](https://askubuntu.com/questions/746094/how-to-package-a-systemd-service "packaging - How to package a systemd service? - Ask Ubuntu") - * [configuration - How do I override or configure systemd services? - Ask Ubuntu](https://askubuntu.com/questions/659267/how-do-i-override-or-configure-systemd-services#659268 "configuration - How do I override or configure systemd services? - Ask Ubuntu") - -## SysUser - -* [Teams/Dpkg/Spec/SysUser - Debian Wiki](https://wiki.debian.org/Teams/Dpkg/Spec/SysUser) -* [dh_sysuser(1) — dh-sysuser — Debian testing — Debian Manpages](https://manpages.debian.org/testing/dh-sysuser/dh_sysuser.1.en.html) -* [Debian / dh-sysuser · GitLab](https://salsa.debian.org/debian/dh-sysuser) -* [dh-sysuser. Yesterday I’ve discovered a dh-sysuser… | by George Shuklin | OpsOps | Medium](https://medium.com/opsops/dh-sysuser-6bd3e3d623dd) diff --git a/repositories.md b/repositories.md deleted file mode 100644 index c9fb2af..0000000 --- a/repositories.md +++ /dev/null @@ -1,30 +0,0 @@ -[[!meta title="Repositories"]] - -Documentation -------------- - -* [DebianRepository/Setup - Debian Wiki](https://wiki.debian.org/DebianRepository/Setup). -* [Debian Repository HOWTO (Obsolete Documentation)](https://www.debian.org/doc/manuals/repository-howto/repository-howto). -* [HowToSetupADebianRepository](https://wiki.debian.org/HowToSetupADebianRepository). -* [Setting up your own APT repository with upload support](http://www.debian-administration.org/article/286/Setting_up_your_own_APT_repository_with_upload_support). - -Reprepro --------- - -* [puppet-reprepro](https://git.fluxo.info/puppet-reprepro). -Alguns links sobre como instalar e usar o reprepro: -* [reprepro](http://mirrorer.alioth.debian.org/). -* [HowToSetupADebianRepository](http://wiki.debian.org/HowToSetupADebianRepository). -* [Setting up your own APT repository with upload support](http://www.debian-administration.org/article/Setting_up_your_own_APT_repository_with_upload_support). -* [Setting up a basic Debian repository with reprepro](https://noc.sidux.com/fll/wiki/reprepro). -* [Setting up and managing an APT repository with reprepro](http://www.jejik.com/articles/2006/09/setting_up_and_managing_an_apt_repository_with_reprepro/). - -Removing a package from the repository: - - su reprepro -c "reprepro -b /var/reprepro remove squeeze kedpm" - -Other ------ - -* [aptly - Debian repository management tool](https://www.aptly.info/) ([package](https://packages.debian.org/stretch/aptly)). -* [debify: Tool for building simple Debian repositories](https://github.com/spotify/debify). diff --git a/ruby.md b/ruby.md deleted file mode 100644 index cb2cf29..0000000 --- a/ruby.md +++ /dev/null @@ -1,4 +0,0 @@ -[[!meta title="Ruby packaging"]] - -* See [this](https://wiki.debian.org/Teams/Ruby/Packaging). -* Example: [LEAP](/leap). diff --git a/todo.md b/todo.md deleted file mode 100644 index 4045ab6..0000000 --- a/todo.md +++ /dev/null @@ -1,7 +0,0 @@ -[[!meta title="TODO"]] - -* merge all `build-area` folders. -* deploy debian project as a ikiwiki with a git-annex'ed package repository. -* try an [AutomateBackports](https://wiki.debian.org/AutomateBackports) setup. -* set [SecurePbuilder](https://wiki.debian.org/SecurePbuilder). -* how to make an offline apt-repository in an encrypted usb drive. -- cgit v1.2.3