Build AnyEvent::Discord on Debian 12 using as many Debian packages as possible

I failed to do it by myself but then @asjo@illuminant.asjo.org offered the following on fedi. I disregarded this advice and instead used Perlbrew on my server, installing everything from CPAN. As the server a rather small virtual machine, it took more than an hour and then it failed. I had to install `Moops` without testing due to a known issue. Then I continued the install fest. I was not amused.

Here's what Adam Sjøgren suggested.

---

I start by installing the packages you listed:

sudo apt install libmodern-perl-perl libanyevent-irc-perl \
  libfile-slurper-perl libmojo-sqlite-perl libmojolicious-perl \
  libdatetime-perl libkeyword-simple-perl libtest-fatal-perl \
  libtest-requires-perl libdevel-callparser-perl libtrue-perl \
  libperlx-define-perl libperlx-assert-perl \
  libmoox-late-perl libmoose-perl liblexical-accessor-perl \
  libnamespace-sweep-perl libreturn-type-perl libmatch-simple-perl \
  gcc-aarch64-linux-gnu dh-make-perl

and then I also install these packages that I found were needed, and packaged in Debian, along the way:

sudo apt install perl-xs-dev libmoosex-mungehas-perl \
  libclass-tiny-antlers-perl libmoosex-types-common-perl \
  libtypes-xsd-lite-perl libtest-warnings-perl \
  libanyevent-websocket-client-perl

Whenever I can't find a Debian package of the Perl library I need, I do `dh-make-perl --cpan Library`, `debuild`, and then `sudo apt install ./library.deb` – when a dependency is missing, I branch out and make/build/install that first.

First dependency missing is `Moops`:

dh-make-perl --cpan Moops
cd libmoops-perl/
debuild

Ok, `Parse::Keyword` is missing, so build that and install it:

cd ..
dh-make-perl --cpan Parse::Keyword
cd libparse-keyword-perl/
debuild
cd ..
sudo apt install ./libparse-keyword-perl_0.10-1_amd64.deb

Now `Kavorka` is missing, so build and install:

dh-make-perl --cpan Kavorka
cd libkavorka-perl
debuild
cd ..
sudo apt install ./libkavorka-perl_0.039-1_all.deb

Finally we can build `Moops` and install it:

cd libmoops-perl
debuild
cd ..
sudo apt install ./libmoops-perl_0.038-1_all.deb

Trying debuild in `AnyEvent::Discord` again, we are now missing `Algorithm::Backoff::Exponential`, so build that:

dh-make-perl --cpan Algorithm::Backoff::Exponential
cd libalgorithm-backoff-exponential
debuild

ah, it depends on `Test::Number::Delta`, so build that and install it:

cd ..
dh-make-perl --cpan Test::Number::Delta
cd libtest-number-delta/
debuild
cd ..
sudo apt install ./libtest-number-delta-perl_1.06-1_all.deb

so now we can build and install `Algorithm::Backoff::Exponential`:

cd libalgorithm-backoff-exponential/
debuild
cd ..
sudo apt install ./libalgorithm-backoff-perl_0.010-1_all.deb

and finally we can build and install `AnyEvent::Discord`:

cd libanyevent-discord/
debuild
cd ..
sudo apt install ./libanyevent-discord-perl_0.7-1_all.deb

Let's try:

asjo@debian:~$ perl -E 'use AnyEvent::Discord; say $AnyEvent::Discord::VERSION'
0.7

It's a little bit tedious, but if you maintain your own local Debian package repository (I use reprepro) it's quite manageable, and you get security updates automatically from Debian for Perl, and all the packages you didn't build yourself, automatically.

​#Perl