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