Puppet Team Work in Progress

Puppet 7 packaging work

This section tries to summarize the work necessary to get Puppet 7 in Debian.

Puppet agent: mostly done, needs testing

5.6 is currently in buster. 6 has Puppet Server as a strict requirement, as the CA functionality has become part of Puppet Server. Additionally, most of the native resource types have been split out to separate modules, which we must obtain and package separately.

A new Puppet Agent package (version 7!) has been uploaded to experimental and will eventually be uploaded to unstable once it gets proper testing, so the Agent part is mostly done.

The Puppet Agent 7 package is supposed to work with 5.5 masters from Debian buster so it can already be tested, at least in bookworm.

JRuby missing dependencies

The idea is to package each of these especially for JRuby, and make them conflict with the standard Ruby gems (probably also packaging them in a different location, but that isn't decided yet). The reason is, JRuby is stuck with a definition of the Ruby interpreter that is older than the standard Ruby language, and Gems may have been updated to support the new interpreter in a way that is now incompatible with JRuby. If this didn't happen in the past, this may happen in the future. Therefore, we must package all of the ruby gems below separately, especially for JRuby, so that the work on Gems by the Ruby team, with the newer standard interpreter, doesn't simply destroy JRuby compat.

Here's the list of ruby Gems:

Ruby Gem name

Version

Status

Person working on it

ITP number

Depends on

minitest

5.11.3

Not in Debian

-

-

-

bundler

2.2.29

Not in Debian

-

-

-

rake

12.3.3

Not in Debian

zigo

-

minitest, bundler

did_you_mean

1.3.0

Not in Debian

-

-

-

irb

1.0.0

Not in Debian

-

-

-

jar-dependencies

0.4.1

Not in Debian

-

-

-

net-telnet

0.1.1

Not in Debian

-

-

-

power_assert

1.1.3

Not in Debian

-

-

-

racc

1.5.2-java

Not in Debian

-

-

-

rdoc

6.1.2.1

Not in Debian

-

-

-

rubygems-update

3.2.29

Not in Debian

-

-

-

test-unit

3.2.9

Not in Debian

-

-

-

xmlrpc

0.3.0

Not in Debian

-

-

-

The should be packaged as jruby-FOO as binary name. As they are JRuby stuff, I propose to use a new "jruby-team" namespace on Salsa, and probably move JRuby itself over there.

When packaging, it's ok to just take everything from the original Ruby package, though one must make sure to add Conflict: ruby-FOO in debian/control, and add the following in the short description: "- jruby version", plus this sentence in the long description:

These are needed for the puppet-server:

semantic_puppet 1.0.2 hocon 1.3.1 text 1.3.1 locale 2.1.2 gettext 3.2.2 fast_gettext 1.1.2 concurrent-ruby 1.1.5 deep_merge 1.0.1

Puppet Server: missing dependencies, jruby update

Here's the current dep tree of Puppet server 7.8.0, as of 2022-06-13. This was generated with lein deps :tree | parse-lein-tree, source for the latter is https://gitlab.com/anarcat/scripts/-/blob/main/parse-lein-tree, former is in leiningen.

48 packaged, 1 NOT-NEEDED, 2 ITP, 0 missing dependencies

PuppetDB: missing dependencies

As of June 2022, here is the status of PuppetDB in Debian. PuppetDB missed the Debian bullseye release because of critical bugs (981903, 990419, 990872). The buster release still kind of works but has serious reliability issues (994843), and is also affected by the bugs that kept it from shipping in bullseye. It is currently kept out of bookworm because of the above critical bugs as well.

An effort has started to package PuppetDB 7. It is blocked on a number of dependencies. Some are in common with puppetserver, but not all.

Here's the current dep tree of PuppetDB 6.21.0, as of 2022-06-09. This was generated with lein deps :tree | parse-lein-tree, source for the latter is https://gitlab.com/anarcat/scripts/-/blob/main/parse-lein-tree, former is in leiningen.

69 packaged, 1 NEW, 1 NOT-NEEDED, 0 missing dependencies

Hiera

The Hiera 3 gem, although deprecated, is still a hard dependency up to and including Puppet 7.

A pull request was submitted upstream to remove it, but it seems it will only happen in Puppet 8.

So for now, we still need the Hiera ruby gem in Debian, so it has been updated to 3.9.0 in bookworm.

Trocla

Trocla is not strictly speaking part of Puppet, but it's definitely a useful tool for it and used by many puppet users.

It's maintained by the Ruby team.

Currently, it's out of date (1010522) and the update depends on the ruby-moneta upgrade (1010286). TheAnarcat is working on this, coordinate in #debian-ruby or in the aforementioned bug reports.

General packaging hints

See Clojure/PackagingTutorial#Packaging_using_leiningen.