Commit graph

12 commits

Author SHA1 Message Date
Jinna Kiisuo aa00ac94d0
Fix debian versioning (#2472)
* Make the ubuntu_docker_builder.sh script a bit easier to use

- Entrypoint that installs dependencies on launch
- Echo hint on how to build deb packages

* Change debian packaging version string format to fix sort order

The sort order is important so that newer packages are seen as an update
and get installed, instead of apt preferring the older versions!

With these changes, a package is generated as `kanidm_Ubuntu_22.04_1:1.1.0~rc.15-dev~202401311334+c8a9e2c_x86_64.deb`
with the version string `1:1.1.0~rc.15-dev~202401311334+c8a9e2c`

Deb package version string comparison is Complex:
https://man7.org/linux/man-pages/man7/deb-version.7.html

With the previous versioning scheme for dev packages, the git hash
ended up getting prioritized over the date string, see for example:
`dpkg --compare-versions 1.1.0-rc.15-dev-202401100453666448f lt 1.1.0-rc.15-dev-20240120072786916a3; echo $?`
-> 1 (comparison failure)

A simple schema change avoiding most dashes could rescue the hash trouble:
`dpkg --compare-versions 1.1.0~rc.15-dev-202401100453+666448f lt 1.1.0-rc.15-dev-202401200727+86916a3; echo $?`
-> 0 (comparison success)

.. But, the second problem is seeing a stable release as newer:
`dpkg --compare-versions 1.1.0~rc.15-dev~202401100453+666448f lt 1.1.0; echo $?`
-> 1 (comparison failure)

.. Which can be solved by forcing the entire dev portion to not be
interpreted as a debian version by substituting tildes:
`dpkg --compare-versions 1.1.0~rc.15-dev~202401100453+666448f lt 1.1.0; echo $?`
-> 0 (comparison success)

.. But, old schema versions still seem newer due to their debian
version:
`dpkg --compare-versions 1.1.0-rc.15-dev-202401100453666448f lt 1.1.0~rc.15-dev~202401200727+86916a3; echo $?`
-> 1 (comparison failure)

Thus, the only solution is to change the scheme and increment the epoch value once
to force all lesser default epoch versions to be seen as older:
`dpkg --compare-versions 1.1.0-rc.15-dev-202401100453666448f lt 1:1.1.0~rc.15-dev~202401200727+86916a3; echo $?`
-> 0 (comparison success)
`dpkg --compare-versions 1:1.1.0~rc.15-dev~202401200727+86916a3 lt 1:1.1.0; echo $?`
-> 0 (comparison success)

* Drop epoch field from deb filenames

GitHub Actions enforces NTFS compatible artifact filenames, ergo the
colon required for the epoch field is banned. The epoc is still in the
version field itself, just not in the filename.

---------

Co-authored-by: Jinna Kiisuo <jinna+git@nocturnal.fi>
2024-02-05 18:06:43 +10:00
James Hodgkinson cf87993a1c
Debian build fixes (also the book) (#2400)
* betterer errors on things
* Adding tpm-udev as a dependency of kanidm-unixd
* fixing makefile arch error
* adding jq to deb build deps
* adding kanidm deb to autobuild
* making the debian build script more resilient
2024-01-16 01:30:52 +00:00
James Hodgkinson bca2fbcf4e
Unix crossbuild scripts and docs (#2326)
* can build now with cargo cross
2023-11-27 06:30:21 +00:00
jian c66a401b31
Reduce pam_kanidm's priority in Debian platforms (#2209)
`pam_kanidm` doesn't set AUTHTOK after reading from user input, so modules down the stack will have to ask for passwords redundantly. This is only a workaround, and might not be the desired behaviour in all cases.
2023-10-11 13:16:19 +10:00
James Hodgkinson d5c1f9de6a
sqlite3 doesn't need to be installed on dev machines (#2104)
* Dependencies - sqlite3 dev no longer needs to be installed - Fixes #2083
* setting workspace-level features for rusqlite
2023-09-12 09:54:54 +10:00
Yuxuan Lu 7cf8ff1e6f
Fix debian packaging (#1742)
* Fix debian package
* Fix mode on pam config
* Set up PAM by default
* Update platform/debian/kanidm-unixd/postinst

---------

Co-authored-by: James Hodgkinson <james@terminaloutcomes.com>
2023-06-24 18:26:52 +10:00
James Hodgkinson 2f4687765c
more more more unixd build fixes (#1573)
* fixing unix packaging
2023-04-26 15:42:23 +10:00
James Hodgkinson ec8e5dfc31
more-merge unixd commands (#1568)
* fixing unix packaging
* stripping out actions-rs/toolchain
* fixing an error in the qrcode def in cargo.toml
2023-04-25 22:36:17 +10:00
Yuxuan Lu 251feac7cb
Fix debian build path (#1331)
* Update CONTRIBUTORS
* Fix debian & ubuntu packaging
* Use standard way to install pam config
* Fix simple_pkg.sh & add pam nss instructions
* Merge ssh with unixd; update CI to build for multiple os versions; upload packages to artifacts
2023-01-25 09:45:55 +10:00
James Hodgkinson d179b23476
Systemd Unit Files in Deb packages (#1119)
* Adding systemd unit files for DEB packages, closes #1093
2022-10-12 13:17:04 +10:00
James Hodgkinson 3ca622e5f0
Ubuntu package unix lists wrong config (#1103)
* Ubuntu package unix lists wrong config
Fixes #1092

* fixes version detection in the Deb build scripts
2022-10-10 08:59:14 +10:00
James Hodgkinson b249747e55
.deb packaging config and scripting (#920)
* working on debian builds again
* github actions tweaks
* fixed a ref in the build script
* updating makefile targets to include build profile env
* updates to docs and makefiles
2022-07-20 17:21:40 +10:00