Version 8.1 by christoph_lechleitner@iteg_at on 2023-03-24 08.55:42

Hide last authors
christoph_lechleitner@iteg_at 1.1 1 = {{id name="AdaptingPBAtonewDebianRelease-Introduction"/}}Introduction =
2
3 About every 2 years Debian introduces a new release.
4
christoph_lechleitner@iteg_at 7.1 5 The following notes shall provide a step-by-step-plan for adapting the [[PBA Package Builder + Archiver>>doc:PBA.WebHome]] to a new Debian release and shall make it more efficient for the next Debian.
christoph_lechleitner@iteg_at 1.1 6
christoph_lechleitner@iteg_at 8.1 7 The first version of this page was created when Debian [[Buster>>url:https://wiki.debian.org/DebianBuster||shape="rect"]] was on it's way from Full Freeze to GA, we were still using {{code language="none"}}svn{{/code}} back then (mostly {{code language="none"}}git{{/code}} now).
christoph_lechleitner@iteg_at 1.1 8
christoph_lechleitner@iteg_at 8.1 9 Currently we are in the progress of adapting from [[Bullseye>>url:https://wiki.debian.org/DebianBullseye||shape="rect"]] to [[Bookworm>>url:https://wiki.debian.org/DebianBookworm||shape="rect"]], so this is __WORK IN PROGRESS__ rg. Bookworm.
christoph_lechleitner@iteg_at 7.1 10
christoph_lechleitner@iteg_at 2.1 11 = {{id name="AdaptingPBAtonewDebianRelease-AdaptingpbatonewDebianRelease"/}}Adapting pba to new Debian Release =
christoph_lechleitner@iteg_at 1.1 12
13 === {{id name="AdaptingPBAtonewDebianRelease-Preprations"/}}Preprations ===
14
christoph_lechleitner@iteg_at 2.1 15 {{code}}
christoph_lechleitner@iteg_at 8.1 16 OLDDN=bullseye
17 NEWDN=bookworm
christoph_lechleitner@iteg_at 1.1 18
christoph_lechleitner@iteg_at 7.1 19 # we prefix name of feature branches issue number or epic numbers
christoph_lechleitner@iteg_at 8.1 20 ISSUENR="8" ; BRANCHNAME="${ISSUENR}_adapt_to_debian_${NEWDN}" ; echo "Branch name: ${BRANCHNAME}"
christoph_lechleitner@iteg_at 2.1 21 {{/code}}
22
23 === {{id name="AdaptingPBAtonewDebianRelease-Adaptionsforphase1,towardsGA"/}}Adaptions for phase 1, towards GA ===
24
25 In phase 1 we make the new distribution known in the sense of adding a template for distributions.d/.
26
27 {{code}}
christoph_lechleitner@iteg_at 8.1 28 cd ~/sources/pba/pba/pba
christoph_lechleitner@iteg_at 2.1 29
christoph_lechleitner@iteg_at 7.1 30 git checkout main ; git pull ; git checkout main
31
32 git branch ${BRANCHNAME} && git checkout ${BRANCHNAME} && git status
33
34 git push --set-upstream origin ${BRANCHNAME}
35
36 cat src/etc/pba/distributions.d/${OLDDN} |sed -e "s/${OLDDN}/${NEWDN}/g" >src/etc/pba/distributions.d/${NEWDN}
christoph_lechleitner@iteg_at 8.1 37 ${EDITOR:-vi} src/etc/pba/distributions.d/${NEWDN}
38
christoph_lechleitner@iteg_at 7.1 39 git add src/etc/pba/distributions.d/${NEWDN}
40
christoph_lechleitner@iteg_at 2.1 41 # evtl. drop ancient ones
christoph_lechleitner@iteg_at 7.1 42 git rm src/etc/pba/distributions.d/foobar
christoph_lechleitner@iteg_at 2.1 43
christoph_lechleitner@iteg_at 8.1 44 pba-raiseversion
45
46 pba-raiseversion -b 1.6.31-0 "Adapting to distribution Debian 12 Bookworm"
47
48 ${EDITOR:-vi} debian-unix/rules debian*/pba-common.install src/etc/pba/distributions.d/${NEWDN}
49 # debian-unix/control
christoph_lechleitner@iteg_at 2.1 50 # src/etc/pba/builder.conf.template src/lib/build-functions.pl
51
52 # commit
christoph_lechleitner@iteg_at 7.1 53 git commit -m "Adding support for new Debian distro ${NEWDN}"
christoph_lechleitner@iteg_at 2.1 54
christoph_lechleitner@iteg_at 8.1 55 git push
56
57 # evtl. release it locally, or in Gitlab
christoph_lechleitner@iteg_at 2.1 58 pba-release
christoph_lechleitner@iteg_at 8.1 59
60
christoph_lechleitner@iteg_at 2.1 61 {{/code}}
62
christoph_lechleitner@iteg_at 8.1 63 === {{id name="AdaptingPBAtonewDebianRelease----currentpointofadaptiontoDebianBookworm---"/}}**~-~-- current point of adaption to Debian Bookworm ~-~--** ===
64
65 === {{id name="AdaptingPBAtonewDebianRelease-CreatePBA-Buildertarballs"/}}Create PBA-Builder tarballs ===
66
67 See eventual separate notes (my [[ITEG's PBA-Tarball Notes>>url:https://confluence.iteg.at/x/l4Kg||shape="rect"]] are not public, sorry).
68
christoph_lechleitner@iteg_at 4.1 69 === {{id name="AdaptingPBAtonewDebianRelease-AdaptHelloWorldProjects"/}}Adapt HelloWorld Projects ===
christoph_lechleitner@iteg_at 2.1 70
christoph_lechleitner@iteg_at 4.1 71 {{code language="none"}}
72 cd ~/sources/pba/trunk/pba-helloworld
christoph_lechleitner@iteg_at 2.1 73
christoph_lechleitner@iteg_at 7.1 74 git checkout main ; git pull ; git checkout main
75
76 git branch ${BRANCHNAME} && git checkout ${BRANCHNAME} && git status
77
78 git push --set-upstream origin ${BRANCHNAME}
79
80 pba-raiseversion
81 # decide next version
82 pba-raisversion -b 1.2.3 "Adding new Debian target distro ${NEWDN}"
83
84 git add debian*/control debian*/changelog
85
christoph_lechleitner@iteg_at 6.1 86 PBAO="."
christoph_lechleitner@iteg_at 4.1 87 # or
christoph_lechleitner@iteg_at 6.1 88 PBAO="arch|unix"
christoph_lechleitner@iteg_at 7.1 89 # or in phase 2 or when combining
christoph_lechleitner@iteg_at 6.1 90 PBAO="arch|unix|7"
christoph_lechleitner@iteg_at 2.1 91
christoph_lechleitner@iteg_at 7.1 92 #pba-builddeps -i -o ${PBAO}
christoph_lechleitner@iteg_at 4.1 93
christoph_lechleitner@iteg_at 6.1 94 #pba-instdeps -i -o ${PBAO}
christoph_lechleitner@iteg_at 4.1 95
christoph_lechleitner@iteg_at 6.1 96 pba-build -u -i -o ${PBAO}
christoph_lechleitner@iteg_at 4.1 97
98 # solve eventual problems
99
christoph_lechleitner@iteg_at 6.1 100 PBADD=$(ls -1d debian* |grep -v mingw |head -1)
101 ${EDITOR:-vi} ${PBADD}/changelog ${PBADD}/control
christoph_lechleitner@iteg_at 4.1 102
christoph_lechleitner@iteg_at 7.1 103 pba-localbuild -u -o ${PBAO}
christoph_lechleitner@iteg_at 4.1 104
christoph_lechleitner@iteg_at 7.1 105 # evtl.
106 #pba-localrpmbuild -u -o ${PBAO}
christoph_lechleitner@iteg_at 4.1 107
108 # wait for success
109
christoph_lechleitner@iteg_at 7.1 110 git commit -m "Adding support for new Debian distro ${NEWDN}"
111 git push
christoph_lechleitner@iteg_at 4.1 112
christoph_lechleitner@iteg_at 7.1 113 # optional, eventually after merge in main
christoph_lechleitner@iteg_at 6.1 114 pba-release -o ${PBAO}
christoph_lechleitner@iteg_at 4.1 115
116
117 {{/code}}
118
christoph_lechleitner@iteg_at 7.1 119 LATER (after adapting Fancylibs below) repeat for {{code language="none"}}pba-helloworld-portable{{/code}} (with {{code language="none"}}-o unix{{/code}}).
christoph_lechleitner@iteg_at 4.1 120
christoph_lechleitner@iteg_at 7.1 121 Repeat for {{code language="none"}}pba-hellolib-portable{{/code}} (with {{code language="none"}}-o unix{{/code}}).
christoph_lechleitner@iteg_at 4.1 122
christoph_lechleitner@iteg_at 7.1 123 Repeat for {{code language="none"}}pba-hellobigworld-portable{{/code}} (with {{code language="none"}}-o unix{{/code}}).
christoph_lechleitner@iteg_at 4.1 124
christoph_lechleitner@iteg_at 7.1 125 ... with (% style="letter-spacing: 0.0px;" %){{code language="none"}}-o unix{{/code}}(%%) or later (% style="letter-spacing: 0.0px;" %){{code language="none"}}-o "unix|9"{{/code}}(%%).
126
christoph_lechleitner@iteg_at 4.1 127 === {{id name="AdaptingPBAtonewDebianRelease-AdaptFANCYLIBS"/}}Adapt [[doc:FANCYLIBS.WebHome]] ===
128
christoph_lechleitner@iteg_at 7.1 129 See [[Adapting FancyLibs & MinGW-Pkg from Debian 9 Stretch to 10 Buster, Mingw-7 to Mingw-8>>doc:FANCYLIBS.Adapting FancyLibs & MinGW-Pkg from Debian 9 Stretch to 10 Buster, Mingw-7 to Mingw-8.WebHome]].
130
christoph_lechleitner@iteg_at 4.1 131 === {{id name="AdaptingPBAtonewDebianRelease-Adaptpba-helloworld-portable"/}}Adapt pba-helloworld-portable ===
132
christoph_lechleitner@iteg_at 7.1 133 See above, use {{code language="none"}}-o unix{{/code}}.
christoph_lechleitner@iteg_at 4.1 134
christoph_lechleitner@iteg_at 2.1 135 === {{id name="AdaptingPBAtonewDebianRelease-AdaptMinGW"/}}Adapt [[MinGW>>doc:MINGW64.WebHome]] ===
136
137 See [[doc:MINGW64.mingw 6 rebuild order.WebHome]].
138
christoph_lechleitner@iteg_at 7.1 139 === {{id name="AdaptingPBAtonewDebianRelease-MinGW-Adaptpba-hello*-portable"/}}MinGW-Adapt pba-hello*-portable ===
christoph_lechleitner@iteg_at 4.1 140
christoph_lechleitner@iteg_at 7.1 141 See above, with -o "unix|9" instead of "-o unix".
christoph_lechleitner@iteg_at 4.1 142
christoph_lechleitner@iteg_at 2.1 143 === {{id name="AdaptingPBAtonewDebianRelease-Adaptionsforphase2,oncenewreleaseissettled"/}}Adaptions for phase 2, once new release is settled ===
144
145 Once the new Debian release is settled and all VIP libraries and current projects can be built for it, we can declare it the new default value for {{code language="none"}}DefaultDistribution{{/code}} in {{code language="none"}}pba-builder.conf{{/code}}.
146
147 {{code}}
148 ${EDITOR:-vi} debian/changelog src/etc/pba/builder.conf.template src/lib/build-functions.pl
149
150 # commit
christoph_lechleitner@iteg_at 7.1 151 git commit -m "Making new Debian distro ${NEWDN} default for DefaultDistribution in pba-builder.conf"
christoph_lechleitner@iteg_at 2.1 152
153 # release it
154 pba-release
155 {{/code}}