From Fedora Project Wiki
Summary =
Move testing/ packages to proper repos
Completion Level
standing
Target Date
EPEL4: around the 15th each month EPEL5: around the 1th each month
Next steps
- we should give maintainers a heads up some days before the move so they can say "no, please don't move foo due to bug bar"
- bodhi (which we can use once we use koji) should make this a lot easier in the long term
Details
- The plan is to do a push to from testing to stable every four weeks; around the 15th each month is the goal for EPEL4, around the 1th each month the goal for EPEL5; in fact we most of the time actually realize the move on the Monday following those dates, to make sure that contributors and users have a chance to prepare for the move on working and weekend days
How to actually do the move
- Create the file /etc/yum.repos.d/epel.repo with the following contents:
[centos5] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5/os/$basearch/ name=centos5 enabled=0 [centos5-source] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5/os/SRPMS/ name=centos5-source enabled=0 [epel5] baseurl=http://download.fedora.redhat.com/pub/epel/5/$basearch/ name=epel5 enabled=0 [epel5-source] baseurl=http://download.fedora.redhat.com/pub/epel/5/SRPMS/ name=epel5-source enabled=0 [epel5-testing] baseurl=http://download.fedora.redhat.com/pub/epel/testing/5/$basearch/ name=epel5-testing enabled=0 [epel5-testing-source] baseurl=http://download.fedora.redhat.com/pub/epel/testing/5/SRPMS/ name=epel5-testing enabled=0 [centos4] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/4/os/$basearch/ name=centos4 enabled=0 [centos4-source] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/4/os/SRPMS/ name=centos4-source enabled=0 [epel4] baseurl=http://download.fedora.redhat.com/pub/epel/4/$basearch/ name=epel4 enabled=0 [epel4-source] baseurl=http://download.fedora.redhat.com/pub/epel/4/$basearch/ name=epel4-source enabled=0 [epel4-testing] baseurl=http://download.fedora.redhat.com/pub/epel/testing/4/$basearch/ name=epel4-testing enabled=0 [epel4-testing-source] baseurl=http://download.fedora.redhat.com/pub/epel/testing/4/SRPMS/ name=epel4-testing-source enabled=0
- export something like
export EPELVER=5
- run repoclosure:
setarch i686 repoclosure -n -r centos${EPELVER} -r epel${EPELVER} -r epel${EPELVER}-testing > brokendeps-${EPELVER}
Hint: if you use a x86_64 machine remove /etc/rpm/platform
- Add a "exclude=" line to the epel?-testing section and add entries for every package that has a broken dep behind it (FIXME: add entry for packages that hit the repo not that long ago as well?)
- run repoclosure again and add the packages with missing deps to the exclude line until all deps from epel?-testing are satisfied
- run
setarch i686 repoquery -qa --qf '%{SOURCERPM}' --repoid=epel${EPELVER}-testing | sort | uniq > tobemoved-srpms-${EPELVER} setarch i686 repoquery -qa --qf '%{SOURCERPM}' --repoid=epel${EPELVER}-testing | sort | uniq > tobemoved-srpms-rpms-${EPELVER} setarch i686 repoquery -qa --repoid=epel${EPELVER}-testing | sort > tobemoved-rpms-${EPELVER}
- sanity check:
- s/exclude=/includepkgs=/ in the epel?-testing section
- run
setarch i686 repoquery -qa --qf '%{SOURCERPM}' --repoid=epel${EPELVER}-testing | sort | uniq > all-srpms-broken-${EPELVER} grep --file all-srpms-broken-${EPELVER} tobemoved-srpms-rpms-${EPELVER}
grep shouldn't find anything. If it does check add a exclude for those packages as well and start again
- comment out the includepkgs= in the repo file
- run
echo $(repoquery -qa --qf '%{NAME}' --archlist=src --repoid=epel${EPELVER}-testing-source $(cat tobemoved-srpms-${EPELVER} | sed 's|.src.rpm||' ) | sort ) > tobemoved-packages-${EPELVER}
You can pass this list to the ToStable
command later when you're actually doing the next push
- mail the list, wait a few days, do the push