We would like to share with you some ideas about the new “NS Release Lock” feature implementation.
Goal
Users must be able to choose if they want to lock their installation to a specific NethServer and CentOS release. For example, when installing NethServer 7.5.1708 the system will never jump nor to NethServer 7.6.x nor to CentOS 7.6.x even if the user pushes the Software Center > Updates > Download and Install
button.
Assumptions
- The user will need to explicitly enable or disable NS Release Lock from the Software Center
- If enabled, NS Release Lock will be forced regardless of the user is acting from the Web interface or from the command line
Limitations
Some third-party repositories don’t support accessing RPMs using a minor release like 7.5.1804
but only using a major release like 7
. Actually, this limitation is present for epel
, centos-sclo-rh
and centos-sclo-sclo
.
Such repositories must be enabled during package installation otherwise YUM will not be able to resolve package dependencies.
Proposal
Third party repositories (epel
, centos-sclo-rh
, centos-sclo-sclo
) will be always disabled for updates from Software Center and yum-cron.
Third party repositories will be always enabled when yum is used from the command line.
When Ns Release Lock is enabled, the following repositories are available (where ce
stands for CentOS):
ce-base
ce-updates
ce extras
These repositories will point to a fixed CentOS release, the configuration will be stored inside /etc/yum.repos.d/NsReleaseLock.repo
.
The features will be controlled from a prop, something like:
config setprop sysconfig NsReleaseLock enabled
NS Release Lock is mutually exclusive with #subscription: when a subscription is enabled, NSReleaseLock
will be disabled.
The user will also be able to select a custom CentOS mirror, by editing /etc/yum.repos.d/NsReleaseLock.repo
.
yum-cron
will have access to a special repository configuration stored inside /etc/nethserver/yum-update.d/
and enabled using reposdir
options inside /etc/yum/yum-cron.conf
.
The same special configuration is applied to manual updates from Software Center.
Minor version releases
At some time CentOS will release a new minor version (and NethServer will follow).
Few days after such release, CentOS usually disables access to old repositories and moves all packages inside vault.centos.org.
The NethServer team will notify the users about the new release.
Technically speaking, NS team will release a new version of nethserver-subscription
inside the old release: if subscription[NsRelease]
will be different from sysconfig[Version]
a new banner will appear inside the Software Center with instructions to update.