release.txt 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583
  1. Notes from the Debian bookworm release
  2. ======================================
  3. Some notes from the Debian bookworm release including some
  4. corrections. There might still be errors.
  5. configdir=${configdir:-"/srv/ftp-master.debian.org/dak/config/debian"}
  6. export SCRIPTVARS=${configdir}/vars
  7. . "${SCRIPTVARS}"
  8. . "${configdir}/common"
  9. . "${configdir}/dinstall.functions"
  10. umask 022
  11. xpsql() {
  12. psql "${sql_opts[@]}" "${@}"
  13. }
  14. sql() {(
  15. set -eu
  16. xpsql -qAt "${@}"
  17. )}
  18. rename-suite() {(
  19. set -xeu
  20. local oldsuite="${1:?}"
  21. local newsuite="${2:?}"
  22. archive_path=$(sql -c "SELECT path FROM archive WHERE id=(SELECT archive_id FROM suite WHERE suite_name='${oldsuite}')")
  23. cd ${archive_path:?}/dists
  24. if [[ -L ${newsuite} || -e ${newsuite} ]]; then
  25. echo "E: ${newsuite} already exists" >&2
  26. exit 1
  27. fi
  28. mv -nT -- ${oldsuite} ${newsuite}
  29. sql -1 <<-EOT
  30. UPDATE suite
  31. SET
  32. suite_name='${newsuite}',
  33. copychanges = CASE WHEN copychanges IS NULL THEN NULL ELSE 'dists/${newsuite}' END
  34. WHERE suite_name='${oldsuite}'
  35. ;
  36. UPDATE suite
  37. SET overridesuite='${newsuite}'
  38. WHERE overridesuite='${oldsuite}'
  39. ;
  40. EOT
  41. )}
  42. rename-policy-queue() {(
  43. set -xeu
  44. oldqueue="${1:?}"
  45. newqueue="${2:?}"
  46. newpath="${3:?}"
  47. oldpath=$(sql -c "SELECT path FROM policy_queue WHERE queue_name='${oldqueue}'")
  48. if [[ -L ${newpath} || -e ${newpath} ]]; then
  49. echo "E: ${newpath} already exists" >&2
  50. exit 1
  51. fi
  52. mv -nT -- ${oldpath:?} ${newpath}
  53. sql -c "UPDATE policy_queue SET queue_name='${newqueue}', path='${newpath}' WHERE queue_name='${oldqueue}'"
  54. )}
  55. export new_stable_version=12
  56. export new_stable_date='10 June 2023'
  57. export new_stable_short_date='Sat, 10 Jun 2023'
  58. export new_oldoldoldstable=""
  59. export new_oldoldstable=buster
  60. export new_oldstable=bullseye
  61. export new_stable=bookworm
  62. export new_testing=trixie
  63. export new_stable_components="main contrib non-free-firmware non-free"
  64. export new_testing_components="main contrib non-free-firmware non-free"
  65. export new_oldoldoldstable_key=E1CF20DDFFE4B89E802658F1E0B11894F66AEC98
  66. export new_oldoldoldstable_security_key=6ED6F5CB5FA6FB2F460AE88EEDA0D2388AE22BA9
  67. export new_oldoldstable_key=80D15823B7FD1561F9F7BCDDDC30D7C23CBBABEE
  68. export new_oldoldstable_security_key=5E61B217265DA9807A23C5FF4DFAB270CAA96DFA
  69. export new_oldstable_key=1F89983E0081FDE018F3CC9673A4F27B8DD47936
  70. export new_oldstable_security_key=AC530D520F2F3269F5E98313A48449044AAD5C5D
  71. export new_stable_key=B8B80B5B623EAB6AD8775C45B7C5D7D6350947F8
  72. export new_stable_security_key=05AB90340C0C5E797F44A8C8254CF3B5AEC0A8F0
  73. export di_version=20230607
  74. sql_vars=(new_stable_version new_stable_date new_oldoldoldstable new_oldoldstable new_oldstable new_stable new_testing new_oldoldstable_key new_oldoldstable_security_key new_oldstable_key new_oldstable_security_key new_stable_key new_stable_security_key)
  75. sql_opts=()
  76. for v in ${sql_vars[@]}; do
  77. sql_opts+=(--set="${v}=${!v}")
  78. done
  79. if [[ -n "${new_oldoldoldstable}" ]]; then
  80. rename-suite {,old}oldoldstable
  81. rename-suite {,old}oldoldstable-updates
  82. rename-suite {,old}oldoldstable-debug
  83. fi
  84. # Careful! Some suites might have stable-X symlinks, but not use the
  85. # name in the database. We used to fix these symlinks later, but
  86. # sometimes the newer testing-X suite now uses the name in the
  87. # database, blocking the rename here until the (older) stable-X
  88. # symlink is fixed...
  89. rename-suite {,old}oldstable
  90. rename-suite {,old}oldstable-debug
  91. # buster-updates has suite_name=buster-updates, but release_suite needs to be updated to oldoldstable-updates
  92. #rename-suite {,old}oldstable-updates
  93. rename-suite {,old}oldstable-proposed-updates
  94. rename-suite {,old}oldstable-proposed-updates-debug
  95. rename-suite buildd-{,old}oldstable-proposed-updates
  96. rename-suite {,old}oldstable-new
  97. rename-policy-queue oldstable-new oldoldstable-new /srv/ftp-master.debian.org/queue/o-o-p-u-new
  98. rename-suite buildd-{,old}oldstable-backports-sloppy
  99. rename-suite {,old}oldstable-backports-sloppy
  100. rename-suite {,old}oldstable-backports-sloppy-debug
  101. # trixie release: might also need to rename more backports suites here!
  102. rename-suite {,old}stable
  103. rename-suite {,old}stable-debug
  104. rename-suite {,old}stable-updates
  105. rename-suite {,oldstable-}proposed-updates
  106. rename-suite {,oldstable-}proposed-updates-debug
  107. rename-suite {,old}stable-new
  108. rename-suite buildd-{,oldstable-}proposed-updates
  109. rename-policy-queue stable-new oldstable-new /srv/ftp-master.debian.org/queue/o-p-u-new
  110. rename-suite {,old}stable-backports-sloppy
  111. rename-suite {,old}stable-backports-sloppy-debug
  112. rename-suite buildd-{,old}stable-backports-sloppy
  113. # trixie release: might also need to rename more backports suites here!
  114. rename-suite testing stable
  115. rename-suite testing-debug stable-debug
  116. rename-suite testing-proposed-updates proposed-updates
  117. rename-suite testing-proposed-updates-debug proposed-updates-debug
  118. rename-suite {testing,stable}-updates
  119. rename-suite {testing,stable}-backports
  120. rename-suite {testing,stable}-backports-debug
  121. rename-suite buildd-{testing,stable}-backports
  122. rename-suite buildd-{testing-,}proposed-updates
  123. # trixie release: might also need to rename more backports suites here!
  124. UPDATE SUITES:
  125. begin;
  126. -- update suites:
  127. update suite set
  128. version = concat(:'new_stable_version', '.0'),
  129. description = concat('Debian ', :'new_stable_version', '.0 Released ', :'new_stable_date'),
  130. changelog = null, overrideprocess = false, overrideorigin = null, allowcsset = false, announce = array['debian-changes@lists.debian.org'], validtime = 0 where codename = :'new_stable';
  131. update suite set
  132. version = concat(:'new_stable_version', '.0'),
  133. description = concat('Debian ', :'new_stable_version', '.0 Released ', :'new_stable_date', ' - Debug Information'),
  134. allowcsset = false, validtime = 0 where codename = concat(:'new_stable', '-debug');
  135. update suite set copychanges = 'dists/oldoldstable-proposed-updates', validtime = 0 where codename = concat(:'new_oldoldstable', '-proposed-updates');
  136. update suite set release_suite = 'oldoldstable-updates', validtime = 0 where codename = concat(:'new_oldoldstable', '-updates');
  137. update suite set copychanges = 'dists/oldstable-proposed-updates', overridesuite = 'oldstable' where codename = concat(:'new_oldstable', '-proposed-updates');
  138. update suite set release_suite = 'oldstable-updates' where codename = concat(:'new_oldstable', '-updates');
  139. update suite set
  140. version = concat(:'new_stable_version', '-updates'),
  141. description = concat('Debian ', :'new_stable_version', ' - Proposed Updates'),
  142. copychanges = 'dists/proposed-updates', overridesuite = 'stable', announce = array['debian-changes@lists.debian.org'] where codename = concat(:'new_stable', '-proposed-updates');
  143. update suite set release_suite = 'stable-updates' where codename = concat(:'new_stable', '-updates');
  144. update suite set
  145. version = concat(:'new_stable_version', '-updates'),
  146. description = concat('Debian ', :'new_stable_version', ' - Proposed Updates - Debug Information')
  147. where codename = concat(:'new_stable', '-proposed-updates-debug');
  148. update suite set
  149. version = concat(:'new_stable_version', '-updates'),
  150. description = concat('Debian ', :'new_stable_version', ' - Updates')
  151. where codename = concat(:'new_stable', '-updates');
  152. update suite set untouchable = true where codename in (:'new_oldoldstable', :'new_stable', concat(:'new_stable', '-debug'), concat(:'new_oldoldstable', '-proposed-updates'), concat(:'new_oldoldstable', '-updates'));
  153. -- remember to switch to new_stable_key later...
  154. update suite set signingkeys = ARRAY[:'new_oldoldstable_key', :'new_oldstable_key'] WHERE suite_name LIKE 'buildd-%' OR suite_name LIKE concat(:'new_stable', '%') OR suite_name IN ('stable', 'stable-debug', 'proposed-updates', 'proposed-updates-debug', 'experimental', 'experimental-debug', 'unstable', 'unstable-debug', 'unstable-data');
  155. update suite set signingkeys = ARRAY[:'new_oldoldstable_key', :'new_oldstable_key'] WHERE suite_name LIKE 'oldstable%' OR suite_name LIKE concat(:'new_oldstable', '%');
  156. commit;
  157. # The previous SQL block sets oldoldstable-p-u, oldoldstable-updates to untouchable.
  158. # But we want to regenerate the Release files to have the updated Suite: field.
  159. # Ideally we also want to sign it with the old keys.
  160. # (Note: There was no problem with oldoldstable-updates (buster-updates) during
  161. # the bookworm release as the suite_name was using the codename...)
  162. # Needs to be looked at for trixie.
  163. MOVE STUFF AROUND:
  164. cd /srv/ftp-master.debian.org/ftp/dists
  165. rm oldstable-backports oldstable-proposed-updates oldstable-updates
  166. ln -sTf ${new_oldstable}-backports oldstable-backports
  167. ln -sTf ${new_oldstable}-proposed-updates oldstable-proposed-updates
  168. ln -sTf ${new_oldstable}-updates oldstable-updates
  169. rm stable-backports stable-proposed-updates stable-updates
  170. ln -sTf ${new_stable}-backports stable-backports
  171. ln -sTf ${new_stable}-proposed-updates stable-proposed-updates
  172. ln -sTf ${new_stable}-updates stable-updates
  173. rm testing testing-proposed-updates testing-updates
  174. ln -sTf ${new_testing} testing
  175. ln -sTf ${new_testing}-proposed-updates testing-proposed-updates
  176. ln -sTf ${new_testing}-updates testing-updates
  177. ln -sT ${new_stable} Debian${new_stable_version}.0
  178. cd ${base}/archive/debian-debug/dists
  179. # fix symlinks there too...
  180. # update README files
  181. cd ${ftpdir}
  182. sensible-editor README README.html dists/README
  183. rm -- README~ README.html~ dists/README~
  184. # remove pdiffs for new stable
  185. cd ${base}/archive/debian-debug
  186. rm -r dists/${new_stable}-debug/*/*.diff dists/${new_stable}-debug/*/*/*.diff
  187. cd ${ftpdir}
  188. rm -r dists/${new_stable}/*/*.diff dists/${new_stable}/*/*/*.diff
  189. rm dists/${new_stable}/ChangeLog*
  190. # add new dists/${new_stable}/ChangeLog:
  191. cd /srv/ftp-master.debian.org/ftp/dists/${new_stable}
  192. cat >ChangeLog <<EOT
  193. =========================================
  194. ${new_stable_short_date} - Debian ${new_stable_version}.0 released
  195. =========================================
  196. EOT
  197. # check win32-loader!
  198. # - even copy in testing/ might be outdated.
  199. cd /srv/ftp-master.debian.org/public/incoming.debian.org/web/debian-buildd/dists
  200. # This already looked fine during bookworm release.
  201. #rm buildd-${new_stable}-proposed-updates buildd-${new_oldstable}-proposed-updates
  202. #mv -nT buildd-proposed-updates buildd-${new_oldstable}-proposed-updates
  203. #mv -nT buildd-testing-proposed-updates buildd-${new_stable}-proposed-updates
  204. #ln -sT buildd-${new_oldstable}-proposed-updates buildd-oldstable-proposed-updates
  205. #ln -sT buildd-${new_stable}-proposed-updates buildd-proposed-updates
  206. D-I CLEANUP:
  207. cd /srv/ftp-master.debian.org/ftp/dists/${new_stable}/main
  208. morgue=/srv/ftp-master.debian.org/morgue/d-i
  209. for arch in installer-*; do
  210. for version in ${arch}/20*; do
  211. case ${version} in
  212. */${di_version}) ;;
  213. *) mv -nv -- ${version} ${morgue}/${arch}/ ;;
  214. esac
  215. done
  216. done
  217. INDICES:
  218. suite=stable
  219. dak generate-packages-sources2 --force -s ${suite},${suite}-debug
  220. dak contents generate -f -s ${suite} -a ftp-master
  221. for suite in stable stable-debug oldstable oldstable-debug ${new_oldstable}-updates oldoldstable oldoldstable-debug ${new_oldoldstable}-updates; do
  222. dak generate-releases -f -s ${suite}
  223. done
  224. for suite in oldoldstable oldoldstable-debug ${new_oldoldstable}-updates oldstable oldstable-debug stable stable-debug; do
  225. ${scriptsdir}/sync-release ${suitename}
  226. done
  227. mkdir -p ~/${new_stable}_${new_stable_version}.0
  228. cp -r ${ftpdir}/zzz-dists ~/${new_stable}_${new_stable_version}.0/zzz-dists-pre-signature-merge
  229. cp -r ${base}/archive/debian-debug/zzz-dists ~/${new_stable}_${new_stable_version}.0/debug-zzz-dists-pre-signature-merge
  230. # Add signatures from release team
  231. # Import function `merge-release-signatures` from config/debian/pointrelease
  232. suitename=${new_stable:?}
  233. newrev=${new_stable_version:?}.0
  234. release_base=https://release.debian.org/proposed-updates/${newrev%%.*}/${newrev}
  235. wget="wget --ca-directory=/etc/ssl/ca-debian"
  236. set -x
  237. # stable
  238. for suite in oldstable oldoldstable; do
  239. merge-release-signatures $(get_archiveroot ftp-master) ${suite} Release.gpg Release Release-${suite}.gpg https://release.debian.org/proposed-updates/${new_stable_version}/${new_stable_version}.0/sigs/Release-${suite}.gpg
  240. merge-release-signatures $(get_archiveroot ftp-master) ${suite} InRelease "" InRelease-${suite}.gpg https://release.debian.org/proposed-updates/${new_stable_version}/${new_stable_version}.0/sigs/InRelease-${suite}.gpg
  241. done
  242. for suite in stable-debug oldstable-debug oldoldstable-debug; do
  243. merge-release-signatures $(get_archiveroot debian-debug) ${suite} Release.gpg Release Release-${suite}.gpg https://release.debian.org/proposed-updates/${new_stable_version}/${new_stable_version}.0/sigs/Release-${suite}.gpg
  244. merge-release-signatures $(get_archiveroot debian-debug) ${suite} InRelease "" InRelease-${suite}.gpg https://release.debian.org/proposed-updates/${new_stable_version}/${new_stable_version}.0/sigs/InRelease-${suite}.gpg
  245. done
  246. # mirror push (CD MIRROR ONLY!)
  247. (
  248. export SCRIPTVARS=${configdir}/vars
  249. . "${SCRIPTVARS}"
  250. . "${configdir}/common"
  251. . "${configdir}/dinstall.functions"
  252. umask 022
  253. mirror
  254. mirrorpush-release
  255. )
  256. # switch to new signing key:
  257. update suite set signingkeys = ARRAY[:'new_oldstable_key', :'new_stable_key'] where signingkeys is not null;
  258. ${NEW_STABLE}-R0:
  259. dak admin suite add ${new_stable}-r0 '' description='Extraneous packages/sources required for GPL compliance' origin=Debian label=Debian codename=${new_stable}-r0 accept_source_uploads=false accept_binary_uploads=false archive=ftp-master
  260. dak admin s-c add ${new_stable}-r0 ${new_stable_components}
  261. dak admin s-a add ${new_stable}-r0 $(dak admin s-a list-arch stable)
  262. dak control-suite -l stable | grep '^debian-installer ' | dak control-suite -a ${new_stable}-r0
  263. dak control-suite -l ${new_stable}-r0
  264. begin;
  265. update suite set untouchable=true where codename=concat(:'new_stable', '-r0');
  266. commit;
  267. POLICY QUEUES:
  268. dak admin suite add stable-new '' codename=${new_stable}-new accept_source_uploads=false accept_binary_uploads=false archive=policy
  269. begin;
  270. insert into policy_queue (queue_name, path, change_perms, suite_id) values ('stable-new', '/srv/ftp-master.debian.org/queue/p-u-new', '0644', (select id from suite where codename=concat(:'new_stable', '-new')));
  271. update suite set policy_queue_id = (select id from policy_queue where queue_name = 'stable-new') where codename = concat(:'new_stable', '-proposed-updates');
  272. commit;
  273. dak admin s-c add stable-new ${new_stable_components}
  274. dak admin s-a add stable-new source all $(dak admin s-a list-arch stable)
  275. NEW TESTING:
  276. dak admin suite add testing '' origin=Debian label=Debian codename=${new_testing} description='Debian x.y Testing distribution - Not Released' accept_source_uploads=false accept_binary_uploads=false allowcsset=True archive=ftp-master changelog_url='https://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog'
  277. dak admin s-c add testing ${new_testing_components}
  278. dak admin s-a add testing source all $(dak admin s-a list-arch stable)
  279. dak admin suite add testing-debug '' origin=Debian label='Debian debug' codename=${new_testing}-debug description='Debian x.y Testing distribution - Not Released - Debug Information' accept_source_uploads=false accept_binary_uploads=false allowcsset=True archive=debian-debug
  280. dak admin s-c add testing-debug ${new_testing_components}
  281. dak admin s-a add testing-debug source all $(dak admin s-a list-arch stable)
  282. dak admin suite add testing-proposed-updates '' origin=Debian label=Debian codename=${new_testing}-proposed-updates description='Debian x.y Testing distribution - Proposed Updates - Not Released' allowcsset=True archive=ftp-master
  283. dak admin s-c add testing-proposed-updates ${new_testing_components}
  284. dak admin s-a add testing-proposed-updates source all $(dak admin s-a list-arch stable)
  285. dak admin suite add testing-proposed-updates-debug '' origin=Debian label='Debian debug' codename=${new_testing}-proposed-updates-debug description='Debian x.y Testing - Proposed Updates - Not Released - Debug Information' accept_source_uploads=false accept_binary_uploads=false archive=debian-debug
  286. dak admin s-c add testing-proposed-updates-debug ${new_testing_components}
  287. dak admin s-a add testing-proposed-updates-debug source all $(dak admin s-a list-arch stable)
  288. dak admin suite add testing-updates '' origin=Debian label=Debian codename=${new_testing}-updates description='Debian x.y Testing distribution Updates - Not Released' accept_source_uploads=false accept_binary_uploads=false allowcsset=True archive=ftp-master
  289. dak admin s-c add testing-updates ${new_testing_components}
  290. dak admin s-a add testing-updates source all $(dak admin s-a list-arch stable)
  291. for c in ${new_testing_components}; do
  292. for t in deb dsc udeb; do
  293. dak control-overrides -s stable -t ${t} -c ${c} -l | dak control-overrides -s testing -t ${t} -c ${c} --set
  294. done
  295. done
  296. time dak update-suite stable testing
  297. # update-suite doesn't work for testing-debug (as there are no source packages)
  298. #time dak update-suite stable-debug testing-debug
  299. begin;
  300. insert into bin_associations (suite, bin)
  301. select
  302. (select id from suite where codename = concat(:'new_testing', '-debug')) as suite,
  303. bin
  304. from bin_associations
  305. where suite = (select id from suite where codename = concat(:'new_stable', '-debug'));
  306. commit;
  307. begin;
  308. update suite set changelog = concat('dists/', :'new_testing', '/ChangeLog'), overrideprocess=true, overrideorigin = 'unstable' where codename = :'new_testing';
  309. update suite set announce=array['debian-testing-changes@lists.debian.org'] where codename in (:'new_testing', concat(:'new_testing', '-proposed-updates'));
  310. update suite set overridesuite = 'testing' where codename in (:'new_testing', concat(:'new_testing', '-proposed-updates'), concat(:'new_testing', '-updates'));
  311. update suite set signingkeys = array[:'new_oldstable_key', :'new_stable_key'], separate_contents_architecture_all=true where codename in (:'new_testing', concat(:'new_testing', '-debug'), concat(:'new_testing', '-proposed-updates'), concat(:'new_testing', '-proposed-updates-debug'), concat(:'new_testing', '-updates'));
  312. update suite set debugsuite_id = (select id from suite where codename = concat(:'new_testing', '-debug')) where codename = :'new_testing';
  313. update suite set debugsuite_id = (select id from suite where codename = concat(:'new_testing', '-proposed-updates-debug')) where codename = concat(:'new_testing', '-proposed-updates');
  314. update suite set indices_compression = array['xz'], byhash=true, checksums=array['sha256'] where suite_name in ('testing-debug', 'testing-proposed-updates-debug', 'buildd-testing-proposed-updates', 'testing-proposed-updates', 'testing-updates');
  315. update suite set indices_compression = array['gzip', 'xz'], byhash=true, checksums=array['md5sum', 'sha256'] where suite_name = 'testing';
  316. commit;
  317. dak external-overrides copy unstable testing
  318. dak admin s add-build-queue testing-proposed-updates buildd-testing-proposed-updates buildd-${new_testing}-proposed-updates build-queues
  319. cd /srv/ftp-master.debian.org/public/incoming.debian.org/web/debian-buildd/dists
  320. mkdir buildd-${new_testing}-proposed-updates
  321. ln -sT buildd-${new_testing}-proposed-updates buildd-testing-proposed-updates
  322. MOVE MOVING AROUND:
  323. cd /srv/ftp-master.debian.org/queue
  324. mv -nT oldstable-proposed-updates oldoldstable-proposed-updates
  325. mv -nT proposed-updates oldstable-proposed-updates
  326. mkdir -p p-u-new/COMMENTS proposed-updates
  327. V-C:
  328. dak admin v-c add testing-proposed-updates Enhances testing
  329. dak admin v-c add testing-proposed-updates MustBeOlderThan experimental
  330. dak admin v-c add testing-proposed-updates MustBeNewerThan stable
  331. dak admin v-c add testing-proposed-updates MustBeNewerThan oldstable
  332. dak admin v-c add testing-proposed-updates MustBeNewerThan oldoldstable
  333. dak admin v-c add testing-updates Enhances testing
  334. dak admin v-c add testing-proposed-updates MustBeNewerThan testing
  335. dak admin v-c add testing-updates MustBeNewerThan testing
  336. dak admin v-c add testing-updates MustBeOlderThan experimental
  337. dak admin v-c add testing-updates MustBeNewerThan stable
  338. dak admin v-c add testing-updates MustBeNewerThan oldstable
  339. dak admin v-c add testing-updates MustBeNewerThan oldoldstable
  340. dak admin v-c add unstable MustBeNewerThan testing
  341. dak admin v-c add experimental MustBeNewerThan testing
  342. # copy d-i to new testing (so same d-i in stable, testing, unstable)
  343. cd ${ftpdir}/dists
  344. mkdir -p ${new_testing}/main
  345. dak copy-installer ${di_version:?}
  346. # backports
  347. dak admin suite add stable-backports-sloppy '' origin="Debian Backports" label='Debian Backports' codename=${new_stable}-backports-sloppy description="Debian ${new_stable_version} - Sloppy Backports" archive=ftp-master
  348. dak admin suite add stable-backports-sloppy-debug '' origin="Debian Backports" label='Debian Backports debug' codename=${new_stable}-backports-sloppy-debug description="Debian ${new_stable_version} - Sloppy Backports - Debug Information" archive=debian-debug
  349. dak admin suite add testing-backports '' origin="Debian Backports" label='Debian Backports' codename=${new_testing}-backports description='Debian X.Y - Backports' archive=ftp-master
  350. dak admin suite add testing-backports-debug '' origin="Debian Backports" label='Debian Backports debug' codename=${new_testing}-backports-debug description='Debian X.Y - Backports - Debug Information' archive=debian-debug
  351. configure-backports-suite() {(
  352. local suite=${1:?}
  353. local reference=${2:?}
  354. local components=${3:?}
  355. dak admin s-c add ${suite} ${components}
  356. dak admin s-a add ${suite} source all $(dak admin s-a list-arch ${reference})
  357. dak admin suite-config set ${suite} notautomatic=true butautomaticupgrades=true accept_source_uploads=false accept_binary_uploads=false close_bugs=false
  358. )}
  359. for suite in stable-backports-sloppy stable-backports-sloppy-debug; do
  360. configure-backports-suite ${suite} ${new_stable} "${new_stable_components}"
  361. done
  362. for suite in testing-backports testing-backports-debug; do
  363. configure-backports-suite ${suite} ${new_testing} "${new_testing_components}"
  364. done
  365. cd ${ftpdir}/dists
  366. ln -sT ${new_stable}-backports-sloppy stable-backports-sloppy
  367. ln -sT ${new_testing}-backports testing-backports
  368. dak admin s add-build-queue stable-backports-sloppy buildd-stable-backports-sloppy buildd-${new_stable}-backports-sloppy build-queues
  369. dak admin s add-build-queue testing-backports buildd-testing-backports buildd-${new_testing}-backports build-queues
  370. begin;
  371. update suite set
  372. description = concat('Debian ', :'new_stable', ' - Backports')
  373. where codename = concat(:'new_stable', '-backports');
  374. update suite set
  375. description = concat('Debian ', :'new_stable', ' - Backports - Debug Information')
  376. where codename = concat(:'new_stable', '-backports-debug');
  377. update suite set
  378. debugsuite_id = (select id from suite where codename=concat(:'new_stable', '-backports-sloppy-debug')),
  379. policy_queue_id = (select id from policy_queue where queue_name = 'backports-policy')
  380. where codename=concat(:'new_stable', '-backports-sloppy');
  381. update suite set debugsuite_id = (select id from suite where codename=concat(:'new_testing', '-backports-debug')) where codename=concat(:'new_testing', '-backports');
  382. update suite set
  383. announce=array['debian-backports-changes@lists.debian.org'],
  384. indices_compression=array['xz'],
  385. i18n_compression=array['xz'],
  386. byhash=true,
  387. checksums=array['sha256'],
  388. new_queue_id=10,
  389. changelog_url='https://metadata.ftp-master.debian.org/changelogs/@CHANGEPATH@_changelog',
  390. separate_contents_architecture_all=true,
  391. signingkeys=ARRAY[:'new_oldstable_key', :'new_stable_key'],
  392. close_bugs=false
  393. where codename in (
  394. concat(:'new_stable', '-backports-sloppy'), concat(:'new_testing', '-backports'),
  395. concat(:'new_stable', '-backports-sloppy-debug'), concat(:'new_testing', '-backports-debug'),
  396. concat('buildd-', :'new_stable', '-backports-sloppy'), concat('buildd-', :'new_testing', '-backports'));
  397. insert into suite_permission (suite_id, role)
  398. select id, 'backports' from suite
  399. where codename in (concat(:'new_stable', '-backports-sloppy'), concat(:'new_testing', '-backports'));
  400. commit;
  401. dak init-dirs
  402. for s in ${new_oldstable}-backports-sloppy{,-debug} ${new_stable}-backports{,-debug} ${new_testing}-backports{,-debug}; do
  403. dak generate-packages-sources2 -s ${s}
  404. done
  405. FINISH:
  406. for s in testing testing-proposed-updates testing-updates; do
  407. dak generate-packages-sources2 -s ${s}
  408. dak contents generate -s ${s} -a ftp-master
  409. done
  410. dak generate-releases -a ftp-master
  411. dak generate-packages-sources2 -s testing-debug
  412. dak generate-releases -s testing-debug
  413. # ${new_testing}-backports-debug and others might be missing!
  414. dak generate-packages-sources2 -a build-queues
  415. dak generate-releases -a build-queues
  416. # after the bookworm release some symlinks/directories in
  417. # - debian-buildd/dists/
  418. # - debian-debug/dists/
  419. # were incorrect, e.g., testing-debug and buildd-testing-backports
  420. # were directories and not symlinks to ${codename}-debug, buildd-${codename}-backports
  421. # and the latter directories did not exist.
  422. # make sure this is correct.
  423. # do not forget to push incoming.d.o as well
  424. ########################################################################
  425. # On security-master:
  426. #rename-suite {,old}oldoldstable
  427. rename-suite {,old}oldstable
  428. rename-suite {,old}stable-security
  429. rename-suite {testing,stable}-security
  430. rename-suite {,old}oldstable-debug
  431. rename-suite {,old}stable-security-debug
  432. rename-suite {testing,stable}-security-debug stable-debug
  433. rename-suite buildd-{,old}oldoldstable
  434. rename-suite buildd-{,old}oldstable
  435. rename-suite buildd-{,old}stable-security
  436. rename-suite buildd-{testing,stable}-security
  437. begin;
  438. update suite set signingkeys = array[:'new_oldstable_security_key', :'new_stable_security_key'] where suite_name in ('oldstable', 'oldstable-debug', 'buildd-oldstable', 'stable-security', 'stable-security-debug', 'buildd-stable-security');
  439. update suite set indices_compression=array['xz'], i18n_compression=array['xz'], checksums=array['sha256'], byhash=true where suite_name in ('buildd-stable-security', 'stable-security-debug', 'stable-security');
  440. update suite set version = :'new_stable_version', description = concat('Debian ', :'new_stable_version', ' - Security Updates') where suite_name = 'stable-security';
  441. update suite set version = :'new_stable_version', description = concat('Debian ', :'new_stable_version', ' - Security Updates - Debug Information') where suite_name = 'stable-security-debug';
  442. commit;
  443. dak admin suite add testing-security '' origin=Debian label=Debian-Security codename=${new_testing:?}-security description='Debian x.y Testing - Security Updates - Not Released' accept_source_uploads=false accept_binary_uploads=false archive=security
  444. dak admin suite add testing-security-debug '' origin=Debian label="Debian-Security debug" codename=${new_testing:?}-security-debug description='Debian x.y Testing - Security Updates - Debug Information - Not Released' accept_source_uploads=false accept_binary_uploads=false archive=debian-security-debug
  445. for suite in testing-security testing-security-debug; do
  446. dak admin s-c add ${suite} updates/{main,contrib,non-free,non-free-firmware}
  447. dak admin s-a add ${suite} source all $(dak admin s-a list-arch stable-security)
  448. done
  449. dak admin s add-build-queue testing-security buildd-testing-security buildd-${new_testing:?}-security build-queues
  450. begin;
  451. update suite set indices_compression=array['xz'], i18n_compression=array['xz'], checksums=array['sha256'], byhash=true, signingkeys = array[:'new_oldstable_security_key', :'new_stable_security_key'] where suite_name in ('testing-security', 'testing-security-debug', 'buildd-testing-security');
  452. update suite set
  453. debugsuite_id = (select id from suite where suite_name = 'testing-security-debug'),
  454. policy_queue_id = (select id from policy_queue where queue_name = 'embargoed')
  455. where suite_name = 'testing-security';
  456. commit;
  457. cd ${ftpdir}/dists
  458. mkdir ${new_testing}-security
  459. ln -sT ${new_testing}-security testing-security
  460. ln -sT . ${new_testing}-security/updates
  461. cd /srv/security-master.debian.org/build-queues/dists
  462. mkdir buildd-${new_testing}-security
  463. ln -sT buildd-${new_testing}-security buildd-testing-security
  464. ln -sT . buildd-${new_testing}-security/updates
  465. cd /srv/security-master.debian.org/archive/debian-security-debug/dists
  466. mkdir ${new_testing}-security-debug
  467. ln -sT ${new_testing}-security-debug testing-security-debug
  468. ln -sT . ${new_testing}-security-debug/updates
  469. for suite in testing-security buildd-testing-security; do
  470. dak generate-packages-sources2 -s ${suite}
  471. dak generate-releases -s ${suite}
  472. done