Packaging
Contents
Current State of Packaging
For documentation and discussion. Design is still in flux.
Repositories and Distributions
We have one apt repository at https://apt.galliumos.org/ which serves three "distributions" (confusing name, but there it is).
We have a second apt repository at https://apt-dev.galliumos.org/ which will be retired.
The current distributions are:
- vivid-galliumos
- STABLE / RELEASE (default)
- priority pinned at 9999, will trump Canonical's
vividrepo for all package versions - vivid-galliumos-prerelease
- prerelease / staging / unstable
- priority pinned at 10050, will also trump our
vivid-galliumosrepo for all package versions - vivid-galliumos-testing
- testing / experimental / current / development / etc
- priority pinned at 10090, will also trump our
vivid-galliumos-prereleaserepo for all package versions
General users will only have our vivid-galliumos distribution enabled (and Canonical's vivid distribution, of course).
Packages
Our package version naming convention descends from upstream Ubuntu packages, where applicable.
e.g. for packagename (1.2.3-0ubuntu1), our patches should be packaged as packagename (1.2.3-0ubuntu1-galliumos1). Some upstream packages will not have an -ubuntuX suffix, which means that they are unchanged from the Debian up-upstream. We still need to add our -galliumosX suffix.
Package Version Discrepancies!
We have some existing packages which do not follow this naming convention, and are versioned ahead of their upstreams (e.g. 1.2.3 in upstream to our 1.2.4). This causes a few issues:
- It's confusing for us and gives users the impression that our code is a release ahead of the upstream.
- When the upstream releases a
1.2.4, it will have different code than our1.2.4. -
debootstrapbuilds will fail to update to our pkgs when version numbers collide.
Package Version Corrections!
There are a couple ways to fix this issue:
- Make a hard break sometime before current (BETA1) and 1.0 (simple, guaranteed to work)
- Update packages with corrected version numbers, existing systems will not update to new packages. All users have to reinstall to move forward. :(
- Add a new "pkgversionfix" repodist for all users, via inclusion in a required package (more complex, needs testing)
- Populate new repodist with corrected packages, populate primary (stable) repodist with corrected packages+1. Force a "downgrade" via "pkgversionfix" repodist to the corrected packages, then disable the new repodist. This could be done with a few manual steps, or automated by a startup script (or maybe a pkg postinstall script?). Automated is more user-friendly, but might be surprising.
Manual steps would look something like this:
## Add new repodist apt-get install galliumos-distselect-pkgversionfix ## "downgrade" packages apt-get update && apt-get -y --force-yes dist-upgrade ## Remove new repodist apt-get purge galliumos-distselect-pkgversionfix ## Get corrected+1 pkgs from the main repo apt-get udpate && apt-get dist-upgrade
This needs testing, but I think it will work. Any better ideas?
Deviant package versions
These packages are currently problematically versioned:
| package | upstream forked at | upstream current | galliumos current | should be |
|---|---|---|---|---|
| xfce4-settings | 4.12.0ubuntu1 | TBD | 4.12.9-0ubuntu1 | 4.12.0-0ubuntu1-galliumos7 |
| slim | 1.3.6-4 | TBD | 1.3.7.4-1 | 1.3.6-4-galliumos13 |
| xfwm4 | 4.12.1-1ubuntu1 | TBD | 4.12.2-1ubuntu6 | 4.12.2-1ubuntu1-galliumos5 |
| pasystray | 0.4.0-1 | TBD | 0.4.0.3-2 | 0.4.0-1-galliumos1 |
| xorg-server | 2:1.17.1-0ubuntu3.1 | TBD | 2:1.17.1-0ubuntu4 | 2:1.17.1-0ubuntu3.1-galliumos1 |
| xfce4-panel | 4.12.0-0ubuntu1 | TBD | 4.12.1-0ubuntu1 | 4.12.0-0ubuntu1-galliumos1 |
| xubuntu-default-settings | 15.04.5 | TBD | 15.04.22 | 15.04.5-galliumos16 |
| dmz-cursor-theme | 0.4.4ubuntu1 | TBD | 0.4.5ubuntu1 | 0.4.4ubuntu1-galliumos1 |
| galliumos-meta | xubuntu-meta 2.190 | TBD | 2.201 | 2.190-galliumos11 |
| xfce4-session | 4.12.1-1ubuntu2 | TBD | 4.12.1-1ubuntu9 | 4.12.1-1ubuntu2-galliumos5 |
| cups-filters | 1.0.67-0ubuntu2.4 | TBD | 1.0.67-0ubuntu2.5 | 1.0.67-0ubuntu2.4-galliumos1 |
| ubiquity | 2.21.26 | TBD | 2.21.31 | 2.21.26-galliumos4 |
| casper | 1.360 | TBD | 1.360-2 | 1.360-galliumos2 |
| zram-config | 0.3.1 | TBD | 0.3.2-1 | 0.3.1-galliumos3 |
| xubuntu-artwork | 15.04.4 | TBD | 15.04.18 | 15.04.4-galliumos13 |
| xkeyboard-config | 2.12-1ubuntu1 | TBD | 2.12.1-1ubuntu1 | 2.12-1ubuntu1-galliumos1 |
| xfce4-panel | 4.12.0-0ubuntu1 | TBD | 4.12.1-0ubuntu1 | 4.12.0-0ubuntu1-galliumos1 |
| libnotify | 0.7.6-2svn1 | TBD | 0.7.7-1 | 0.7.6-2svn1-galliumos1 |
| ubuntu-meta | 1.334 | TBD | 1.336 | 1.334-galliumos2 |
| systemd | 219-7ubuntu6 | TBD | 219-7ubuntu29 | 219-7ubuntu6-galliumos3 |
| procps | 1:3.3.9-1ubuntu8 | TBD | 1:3.3.9.3-1ubuntu9 | 1:3.3.9-1ubuntu8-galliumos3 |
| libdrm | 2.4.60-2 | TBD | 2.4.65-1-9.22.15.git-1 | 2.4.60-2-galliumos2 |
| kmod | 18-3ubuntu1 | TBD | 18-3ubuntu2 | 18-3ubuntu1-galliumos1 |
| hexchat | 2.10.1-2 | TBD | 2.10.1-5 | 2.10.1-2-galliumos1 |
| deadbeef | 0.6.2-1 | TBD | 0.6.2-1 (no mods) | 0.6.2-1-galliumos1 (future!) |
| xfce4-power-manager | 1.4.3-0ubuntu1 | TBD | 1.4.8-0ubuntu11 | 1.4.3-0ubuntu1-galliumos12 |
| base-files | 7.2ubuntu9 | TBD | 7.2ubuntu10 | 7.2ubuntu9-galliumos1 |
| compton | 0.1~beta2-1 | TBD | 0.1~beta3-git-9.22.15-9 | 0.1~beta2-1-galliumos11 |
| xorg | 1:7.7+7ubuntu4 | TBD | 1:7.7+7ubuntu5 | 1:7.7+7ubuntu4-galliumos1 |
| shimmer-themes | 1.9.4-0ubuntu2 | TBD | 1.9.4-1ubuntu1 | 1.9.4-0ubuntu2-galliumos1 |