diff -Nru ubiquity-20.04.14/debian/changelog ubiquity-20.04.15/debian/changelog --- ubiquity-20.04.14/debian/changelog 2020-04-17 14:59:46.000000000 +0000 +++ ubiquity-20.04.15/debian/changelog 2020-04-21 15:07:58.000000000 +0000 @@ -1,3 +1,15 @@ +ubiquity (20.04.15) focal; urgency=medium + + [ Dimitri John Ledkov ] + * check-kernels: install the right nvidia modules for the OEM kernel. + (LP: #1873867) + + [ Iain Lane ] + * language, partman, prepare: Factor out sensible-browser launching and use it + (LP: #1874070) + + -- Dimitri John Ledkov Tue, 21 Apr 2020 16:07:58 +0100 + ubiquity (20.04.14) focal; urgency=medium * check-kerenls: only set `install_new` for newly installed diff -Nru ubiquity-20.04.14/scripts/check-kernels ubiquity-20.04.15/scripts/check-kernels --- ubiquity-20.04.14/scripts/check-kernels 2020-04-17 14:59:46.000000000 +0000 +++ ubiquity-20.04.15/scripts/check-kernels 2020-04-21 15:06:07.000000000 +0000 @@ -132,6 +132,18 @@ fi return 1 } +wants_nvidia() { + test -e /run/ubuntu-drivers.autoinstall || return + for pkg in $(cat /run/ubuntu-drivers.autoinstall); do + case $pkg in + nvidia-driver-*) + echo $pkg | sed 's/nvidia-driver-/nvidia-/' + break + ;; + esac + done +} +nvidia_stem="$(wants_nvidia)" if wants_oem_kernel; then if [ -n "$compatible" ]; then @@ -139,6 +151,9 @@ compatible="" fi install_new="${install_new:+$install_new }${OEM_KERNEL}" + if [ "$nvidia_stem" ]; then + install_new="${install_new} linux-modules-${nvidia_stem}-${OEM_KERNEL#linux-}" + fi fi kernel_to_headers () { @@ -149,6 +164,9 @@ } kernel_image_to_modules () { echo "$1" | sed -n 's/^linux-image-/linux-modules-/p' | xargs dpkg-query -W -f'${Package}\n' 2>/dev/null + if [ "$nvidia_stem" ]; then + echo "$1" | sed -n "s/^linux-image-/linux-modules-${nvidia_stem}-/p" | xargs dpkg-query -W -f'${Package}\n' 2>/dev/null + fi } if [ -z "$compatible" ] && [ -z "$install_new" ]; then @@ -156,8 +174,8 @@ echo 'No usable kernel found; assuming foreign package naming' >&2 else mkdir -p /var/lib/ubiquity - for kernel in $install_new; do - echo "$kernel" >>/var/lib/ubiquity/install-kernels + for meta in $install_new; do + echo "$meta" >>/var/lib/ubiquity/install-kernels done for kernel in $compatible; do apt-install "$(kernel_image_to_meta "$kernel")" diff -Nru ubiquity-20.04.14/ubiquity/misc.py ubiquity-20.04.15/ubiquity/misc.py --- ubiquity-20.04.14/ubiquity/misc.py 2020-04-14 19:17:41.000000000 +0000 +++ ubiquity-20.04.15/ubiquity/misc.py 2020-04-21 15:05:57.000000000 +0000 @@ -906,4 +906,9 @@ min_install_size = None + +def launch_uri(uri): + subprocess.Popen(['sensible-browser', uri], close_fds=True, + preexec_fn=drop_all_privileges) + # vim:ai:et:sts=4:tw=80:sw=4: diff -Nru ubiquity-20.04.14/ubiquity/plugins/ubi-language.py ubiquity-20.04.15/ubiquity/plugins/ubi-language.py --- ubiquity-20.04.14/ubiquity/plugins/ubi-language.py 2018-10-16 09:50:38.000000000 +0000 +++ ubiquity-20.04.15/ubiquity/plugins/ubi-language.py 2020-04-21 15:05:57.000000000 +0000 @@ -373,10 +373,8 @@ self.release_notes_label.hide() self.updating_installer = False elif uri == 'release-notes': - import subprocess uri = self.release_notes_url.replace('${LANG}', lang) - subprocess.Popen(['sensible-browser', uri], close_fds=True, - preexec_fn=misc.drop_all_privileges) + misc.launch_uri(uri) return True diff -Nru ubiquity-20.04.14/ubiquity/plugins/ubi-partman.py ubiquity-20.04.15/ubiquity/plugins/ubi-partman.py --- ubiquity-20.04.14/ubiquity/plugins/ubi-partman.py 2020-04-14 19:17:41.000000000 +0000 +++ ubiquity-20.04.15/ubiquity/plugins/ubi-partman.py 2020-04-21 15:05:57.000000000 +0000 @@ -136,6 +136,8 @@ self.page_auto = builder.get_object('stepPartAuto') self.page_advanced = builder.get_object('stepPartAdvanced') self.page_crypto = builder.get_object('stepPartCrypto') + self.bitlocker_label = builder.get_object('label_using_bitlocker') + self.bitlocker_label.connect('activate-link', self.on_link_clicked) # Get all objects + add internal child(s) all_widgets = builder.get_object_ids() @@ -208,6 +210,9 @@ # Define a list to save grub imformation self.grub_options = [] + def on_link_clicked(self, widget, uri): + misc.launch_uri(uri) + def update_branded_strings(self): release = misc.get_release() diff -Nru ubiquity-20.04.14/ubiquity/plugins/ubi-prepare.py ubiquity-20.04.15/ubiquity/plugins/ubi-prepare.py --- ubiquity-20.04.14/ubiquity/plugins/ubi-prepare.py 2020-04-16 00:41:27.000000000 +0000 +++ ubiquity-20.04.15/ubiquity/plugins/ubi-prepare.py 2020-04-21 15:05:57.000000000 +0000 @@ -123,11 +123,16 @@ self.prepare_page = builder.get_object('stepPrepare') self.insufficient_space_page = builder.get_object('stepNoSpace') self.rst_page = builder.get_object('stepRST') + self.rst_label = builder.get_object('label_using_rst') + self.rst_label.connect('activate-link', self.on_link_clicked) self.current_page = self.prepare_page self.plugin_widgets = self.prepare_page self.plugin_optional_widgets = [self.insufficient_space_page, self.rst_page] + def on_link_clicked(self, widget, uri): + misc.launch_uri(uri) + def plugin_get_current_page(self): return self.current_page