]>
git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blob - update-dkms-versions
7 if [ "$1" = "--remote-repo" ]; then
11 elif [ "$1" = "--sru-cycle" ]; then
19 if [ "$#" -ne 0 ]; then
21 echo "Usage: $0 [<options>]"
22 echo " --remote-repo <url>"
23 echo " --sru-cycle <cycle>"
33 # Pick out the cycle from the tracking bug file.
34 if [ -f "$DEBIAN/tracking-bug" ]; then
35 read tracking_bug sru_cycle X
<"$DEBIAN/tracking-bug"
38 if [ -z "$sru_cycle" ]; then
39 echo "$0: sru-cycle not found via debian/tracking-bug; specify --sru-cycle" 1>&2
43 sru_cycle
=$
(echo "$sru_cycle" |
sed -e 's/-[0-9][0-9]*$//' -e 's/^kernel-sru-cycle-//')
45 #echo "default_sru_cycle: version<$version> sru_cycle<$sru_cycle>"
48 # Determine where our changelog is.
50 [ -f 'debian/debian.env' ] && .
'debian/debian.env'
52 [ -z "$sru_cycle" ] && default_sru_cycle
53 if [ -z "$remote_repo" ]; then
55 s
[0-9][0-9][0-9][0-9].
[0-9][0-9].
[0-9][0-9])
56 remote_repo
='security' ;;
61 case "$remote_repo" in
63 remote_repo
='ssh+git://git.launchpad.net/~canonical-kernel-security-team/canonical-kernel-private/+git/kernel-versions'
64 remote_name
='security'
67 remote_repo
='git://git.launchpad.net/~canonical-kernel/+git/kernel-versions'
76 # kernel-versoins repository dkms-version mapping see below for details:
77 # https://git.launchpad.net/~canonical-kernel/+git/kernel-versions/plain/README
79 kv_repo
="$HOME/.cache/kernel-versions-bare"
80 git_base
="$remote_name/$sru_cycle"
82 # Now we know where our repo is and what it called update it.
83 # We maintain "persistent" remotes for main and security, but assume
84 # any manually supplied entries are transient.
86 [ ! -d "$kv_repo" ] && mkdir
-p "$kv_repo"
87 cd "$kv_repo" ||
exit 1
88 [ ! -f config
] && git init
-q --bare
89 current_url
=$
(git config
"remote.$remote_name.url")
90 if [ -z "$current_url" ]; then
91 git remote add
"$remote_name" "$remote_repo"
92 elif [ "$current_url" != "$remote_repo" ]; then
93 git config
"remote.$remote_name.url" "$remote_repo"
95 git fetch
-q -p "$remote_name"
100 (cd "$kv_repo" && git cat-file
"$@") ||
exit 1
103 # Determine if we have this cycle.
104 present
=$
(cat_file
-t "$git_base" 2>/dev
/null
)
105 if [ "$present" = "" ]; then
106 # If we don't have the cycle in the development cycle then
107 # fall back to master.
109 d
*) git_base
="$remote_name/master" ;;
110 *) echo "$sru_cycle: cycle not found in $remote_repo" 2>&1
116 # Determine our series and mainline version from our own changelog.
117 our_series
=$
(LC_ALL
=C dpkg-parsechangelog
-l"$DEBIAN/changelog" -SDistribution)
118 if [ "$our_series" = "UNRELEASED" ]; then
119 our_series
=$
(LC_ALL
=C dpkg-parsechangelog
-l"$DEBIAN/changelog" -o1 -c1 -SDistribution)
121 our_mainline
=$
(LC_ALL
=C dpkg-parsechangelog
-l"$DEBIAN/changelog" -SVersion |
sed -e 's/-.*//')
122 our_package
=$
(LC_ALL
=C dpkg-parsechangelog
-l"$DEBIAN/changelog" -SSource)
123 our_source
=$
(echo "$our_package" |
sed -e 's/-restricted-modules//')
124 case "$our_package" in
125 linux-restricted-modules
*) our_type
="lrm" ;;
126 *) our_type
="main" ;;
129 # Update rules are complex. We update development series kernels to the
130 # versions in development. For stable series we update versions against
131 # the series in which our prime kernel was built. This is expressed
132 # via the map/dkms-versions namespace. Attempt to map via our series
133 # and then our mainline-version.
135 # Try and find a package specific dkms-versions fragment. Try:
139 # series - backwards compatibility
140 # mainline - backwards compatibility
141 for versions_path_tail
in \
142 "$our_series:$our_source:$our_type" \
143 "$our_series:$our_type" \
144 "$our_mainline:$our_type" \
148 echo "II: trying $versions_path_tail ..."
149 versions_paths
=$
(echo $
(cat_file
-p "$git_base:map/dkms-versions/$versions_path_tail" 2>/dev
/null
))
150 [ -n "$versions_paths" ] && break
153 if [ -z "$versions_paths" ]; then
154 echo "$0: unable to identify dkms-versions mapping" 1>&2
158 echo "git_base<$git_base> versions_paths<$versions_paths>"
159 echo "II: grabbing dkms-versions from $sru_cycle $versions_paths"
161 : ">debian/dkms-versions.new"
162 for versions_path
in $versions_paths
164 cat_file
-p "$git_base:$versions_path" >>"debian/dkms-versions.new"
165 if [ "$?" -ne 0 ]; then
166 echo "$0: unable to download an updated dkms-versions file" 1>&2
170 mv "debian/dkms-versions.new" "debian/dkms-versions"
172 thing
="debian/dkms-versions"
173 if ! git
diff --exit-code -- "$thing" >/dev
/null
; then
174 git commit
-m "UBUNTU: $thing -- update from kernel-versions ($git_base)" \
175 -m "BugLink: https://bugs.launchpad.net/bugs/1786013" \
178 echo "$thing: no changes from kernel-versions"