# openSUSE-repos
Definitions for openSUSE repository management via zypp-services.
openSUSE-repos simplifies openSUSE repository management by utilizing Repository Index Service (RIS) for core distribution. Current version utilizes the new cdn.opensuse.org.
This feature was originally requested as part of https://code.opensuse.org/leap/features/issue/91
$ tree /somewhere # zypp expects repo/repoindex.xml
/somewhere
└── repo
└── repoindex.xml
$ zypper addservice /somewhere openSUSE # Use openSUSE prefix for all reposistories managed by service
$ zypper --gpg-auto-import-keys ref -s # optionally force refresh services
Repositories managed by zypp-services can be easily identified as they will have openSUSE: prefix (or any other that you have chosen).
$ sudo zypper modifyrepo -e openSUSE:repo-oss-source
Repository 'openSUSE:repo-oss-source' has been successfully enabled.
$ sudo zypper modifyrepo -d openSUSE:repo-oss-source
Repository 'openSUSE:repo-oss-source' has been successfully disabled.
$ sudo zypper modifyrepo -e openSUSE:repo-oss-debug
Repository 'openSUSE:repo-oss-debug' has been successfully enabled.
$ sudo zypper modifyrepo -d openSUSE:repo-oss-debug
Repository 'openSUSE:repo-oss-debug' has been successfully disabled.
$ vim /usr/share/zypp/local/service/openSUSE/repo/repoindex.xml
$ zypper --gpg-auto-import-keys ref -s # to refresh services
It might initially happen that system shows no repositories. This can be easily fixed by running either
# sudo zypper refresh-services # or simply zypper refs ... re-generate repository definitions without refreshing repodata
# sudo zypper refresh -s # or simply zypper ref -s ... re-generate repository definitions and refresh repodata
openSUSE-repos does backup of all existing default distribution repo files under /etc/zypp/repos.d/*.rpmsave
As of today uninstalling openSUSE-repos will not restore original distribution repo files. You can restore original repo files by running following as root. Note: You should not use rpmconf, as the original file was simply moved under a new name.
# zypper remove openSUSE-repos-*
# ls -la /etc/zypp/repos.d/*.rpmsave # review list of repos that will be restored
# for file in /etc/zypp/repos.d/*.rpmsave; do echo mv $file `echo $file | sed -s "s/\.rpmsave//"`; done
# zypper ref
Package is developed in GitHub/openSUSE.
We have a simple CI which runs repo_checks to ensure that paths are correct.
Before we enroll update to openSUSE users it has to pass openQA test.
Package or its .spec file needs to be manually updated in OBS once changes are merged in GitHub.
Make sure to install osc and required obs services by openSUSE-repos package
$ sudo zypper in openSUSE-release-tools obs-service-tar
Fork the repository in OBS, fetch latest request and make a submit request.
$ osc bco Base:System/openSUSE-repos
cd home:i*:branches:Base:System/openSUSE-repos
osc service mr
osc addremove
osc commit # changelog can be reviewed by osc vc
osc sr # submit request back to Base:System
Don't forget to send changes back to Tumbleweed and Leap once changes are merged to Base:System.
$ osc sr Base:System openSUSE-repos openSUSE:Factory
$ osc sr openSUSE:Factory openSUSE-repos openSUSE:Leap:15.6 # once merged to Factory
$ osc sr openSUSE:Factory openSUSE-repos openSUSE:Leap:16.0 # once merged to Factory
$ osc sr openSUSE:Factory openSUSE-repos openSUSE:Leap:Micro:6.0 # once merged to Factory
That's all. Happy Hacking