Hello all,

Following some efforts by community member Matt Darfeulle to improve and
automate the Shorewall release process[0], it has become evident that
the way in which the Debian packaging of the various Shorewall products
is managed leaves much to be desired.  The purpose of this message is
layout some proposed changes and give others in the community the
opportunity to provide feedback.

The current packaging goes back to the early days of Shorewall 4.4, more
than 10 years ago.  At that time my knowledge of Git was quite limited
(I was still stubbornly clinging to Subversion) and the tools/options
for managing Debian packages made up of multiple source components was
not what it is today.  To that end I'd like to propose some changes to
the Debian packaging of the various Shorewall packages.

First, let me stress that these changes will not result in any changes
to the user/administrator interaction with the various Shorewall
products.

The first change (and the change for which I have a concrete vision for
how it would be accomplished) is to transition from multiple source
packages to a single source package.  The second change is to update the
Debian packaging such that it can facilitate the generation of packages
as part of a CI pipeline.

As to the first change.  Currently, there are 7 Shorewall-related source
packages in Debian: shorewall, shorewall-core, shorewall-doc,
shorewall-init, shorewall-lite, shorewall6, and shorewall6-lite.  From a
Debian package maintenance standpoint, this is somewhat of a pain.  To
deal with this I created 7 different branches in a single Git repository
(actually 21 different branches, since git-buildpackage has master,
upstream, and pristine-tar branches for each package; and actually the
number is more than double that since I also at one time maintained
branches for backports to the squeeze and wheezy versions of Debian).
Regardless, it has been many years now since the Debian package format
supported the construct of a single source package with multiple
upstream tarballs, as detailed in this blog post[1].  To that end, I
propose reworking the Debian packaging into a single shorewall source
package, composed of the multiple upstream tarballs for the seven
Shorewall products.  In the history of Shorewall, all component tarballs
have been released at the same time and with the same version number,
making the idea of a single shorewall source package rather natural.
The single source package would produce seven binary packages which
exactly match the current seven Shorewall-related binary packages.

As to the second change.  Our development team would like to begin
making use of some sort of CI pipeline in order to help ensure that our
code changes are of high quality.  One of the benefits of the above
proposed change is that an automated process which generates the seven
release tarballs would then be able to more easily produce a complete
set of Debian packages; certainly more easily than would be possible
given the current structure.  We have not yet implemented any CI and do
not even really have a clear vision of what a desired end state for that
would be.  Still, this change in Debian packaging would considerably
simplify any CI implementation involving the generation of Debian
packages since everything concerning the Debian package creation would
use standard packaging helpers with standard commands.  The current
approach uses a Python script I wrote long ago, which is neither
particularly robust nor especially easy to decipher.

Your comments and feedback are most welcome.

Regards,

-Roberto

[0] This is part of our effort to transition the Shorewall project to a
core development team model following the effective retirement of Tom
Eastep, the original author 
[1] 
https://raphaelhertzog.com/2010/09/07/how-to-use-multiple-upstream-tarballs-in-debian-source-packages/
-- 
Roberto C. Sánchez
http://people.connexer.com/~roberto
http://www.connexer.com


_______________________________________________
Shorewall-devel mailing list
Shorewall-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/shorewall-devel

Reply via email to