Difference between revisions of "Packaging"
Line 21: | Line 21: | ||
: priority pinned at 10090, will also trump our <code>vivid-galliumos-prerelease</code> repo for all package versions | : priority pinned at 10090, will also trump our <code>vivid-galliumos-prerelease</code> repo for all package versions | ||
− | General users will only have our <code>vivid-galliumos</code> distribution enabled (and Canonical's <code>vivid</code> | + | General users will only have our <code>vivid-galliumos</code> distribution enabled (and Canonical's <code>vivid</code> distribution, of course). |
=== Packages === | === Packages === | ||
Line 27: | Line 27: | ||
Our package version naming convention descends from upstream Ubuntu packages, where applicable. | Our package version naming convention descends from upstream Ubuntu packages, where applicable. | ||
− | e.g. for <code> | + | e.g. for <code>packagename (1.2.3-0ubuntu1)</code>, our patches should be packaged as <code>packagename (1.2.3-0ubuntu1-galliumos1)</code>. Some upstream packages will not have an <code>-ubuntuX</code> suffix, which means that they are unchanged from the Debian up-upstream. We still need to add our <code>-galliumosX</code> suffix. |
− | We have some existing packages | + | ==== Package Version Discrepancies! ==== |
+ | |||
+ | We have some existing packages which do not follow this naming convention, and are versioned '''ahead''' of their upstreams (e.g. <code>1.2.3</code> in upstream to our <code>1.2.4</code>). 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 <code>1.2.4</code>, it will have different code than our <code>1.2.4</code>. | ||
+ | # <code>debootstrap</code> builds 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 ==== | ==== Deviant package versions ==== | ||
− | + | These packages are currently problematically versioned: | |
− | |||
{| class="wikitable" | {| class="wikitable" |
Revision as of 18:56, 14 December 2015
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
vivid
repo for all package versions - vivid-galliumos-prerelease
- prerelease / staging / unstable
- priority pinned at 10050, will also trump our
vivid-galliumos
repo for all package versions - vivid-galliumos-testing
- testing / experimental / current / development / etc
- priority pinned at 10090, will also trump our
vivid-galliumos-prerelease
repo 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
. -
debootstrap
builds 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 |