/
usr
/
share
/
apport
/
package-hooks
/
/usr/share/apport/package-hooks
mkdir
upload
Name
Size
Mode
Actions
apache2.py
1816
0644
edit
dl
rm
cloud-init.py
176
0644
edit
dl
rm
cryptsetup.py
1082
0644
edit
dl
rm
isc-dhcp-client.py
1796
0644
edit
dl
rm
libatasmart4.py
943
0644
edit
dl
rm
openssh-client.py
1213
0644
edit
dl
rm
openssh-server.py
1004
0644
edit
dl
rm
postfix.py
2743
0644
edit
dl
rm
source_apparmor.py
2790
0644
edit
dl
rm
source_apport.py
569
0644
edit
dl
rm
source_byobu.py
339
0644
edit
dl
rm
source_console-setup.py
374
0644
edit
dl
rm
source_debian-installer.py
1906
0644
edit
dl
rm
source_grub2.py
3879
0644
edit
dl
rm
source_linux-aws-6.8.py
6302
0644
edit
dl
rm
source_linux-aws.py
6302
0644
edit
dl
rm
source_linux-azure-6.8.py
6302
0644
edit
dl
rm
source_linux-azure-fde.py
6302
0644
edit
dl
rm
source_linux-azure.py
6302
0644
edit
dl
rm
source_linux-firmware.py
6302
0644
edit
dl
rm
source_linux-gcp-6.8.py
6302
0644
edit
dl
rm
source_linux-gcp.py
6302
0644
edit
dl
rm
source_linux-gke.py
6302
0644
edit
dl
rm
source_linux-gkeop.py
6302
0644
edit
dl
rm
source_linux-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-ibm-6.8.py
6302
0644
edit
dl
rm
source_linux-ibm.py
6302
0644
edit
dl
rm
source_linux-intel-iotg.py
6302
0644
edit
dl
rm
source_linux-kvm.py
6302
0644
edit
dl
rm
source_linux-lowlatency-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-lowlatency.py
6302
0644
edit
dl
rm
source_linux-meta-aws-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-aws.py
6302
0644
edit
dl
rm
source_linux-meta-azure-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-azure-fde.py
6302
0644
edit
dl
rm
source_linux-meta-azure.py
6302
0644
edit
dl
rm
source_linux-meta-gcp-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-gcp.py
6302
0644
edit
dl
rm
source_linux-meta-gke.py
6302
0644
edit
dl
rm
source_linux-meta-gkeop.py
6302
0644
edit
dl
rm
source_linux-meta-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-ibm-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-ibm.py
6302
0644
edit
dl
rm
source_linux-meta-intel-iotg.py
6302
0644
edit
dl
rm
source_linux-meta-kvm.py
6302
0644
edit
dl
rm
source_linux-meta-lowlatency-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-lowlatency.py
6302
0644
edit
dl
rm
source_linux-meta-nvidia-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-nvidia-tegra-igx.py
6302
0644
edit
dl
rm
source_linux-meta-nvidia-tegra.py
6302
0644
edit
dl
rm
source_linux-meta-nvidia.py
6302
0644
edit
dl
rm
source_linux-meta-oem-osp1.py
6302
0644
edit
dl
rm
source_linux-meta-oem.py
6302
0644
edit
dl
rm
source_linux-meta-oracle-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-oracle.py
6302
0644
edit
dl
rm
source_linux-meta-raspi.py
6302
0644
edit
dl
rm
source_linux-meta-realtime.py
6302
0644
edit
dl
rm
source_linux-meta-riscv-6.8.py
6302
0644
edit
dl
rm
source_linux-meta-xilinx-zynqmp.py
6302
0644
edit
dl
rm
source_linux-meta.py
6302
0644
edit
dl
rm
source_linux-nvidia-6.8.py
6302
0644
edit
dl
rm
source_linux-nvidia-tegra-igx.py
6302
0644
edit
dl
rm
source_linux-nvidia-tegra.py
6302
0644
edit
dl
rm
source_linux-nvidia.py
6302
0644
edit
dl
rm
source_linux-oem-osp1.py
6302
0644
edit
dl
rm
source_linux-oem.py
6302
0644
edit
dl
rm
source_linux-oracle-6.8.py
6302
0644
edit
dl
rm
source_linux-oracle.py
6302
0644
edit
dl
rm
source_linux-raspi.py
6302
0644
edit
dl
rm
source_linux-realtime.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-aws-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-aws.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-azure-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-azure.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-gcp-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-gcp.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-ibm-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-intel-iotg.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-lowlatency-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-lowlatency.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-nvidia-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-nvidia-tegra-igx.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-nvidia.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-oracle-6.8.py
6302
0644
edit
dl
rm
source_linux-restricted-modules-oracle.py
6302
0644
edit
dl
rm
source_linux-restricted-modules.py
6302
0644
edit
dl
rm
source_linux-riscv-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-aws-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-aws.py
6302
0644
edit
dl
rm
source_linux-signed-azure-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-azure-fde.py
6302
0644
edit
dl
rm
source_linux-signed-azure.py
6302
0644
edit
dl
rm
source_linux-signed-gcp-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-gcp.py
6302
0644
edit
dl
rm
source_linux-signed-gke.py
6302
0644
edit
dl
rm
source_linux-signed-gkeop.py
6302
0644
edit
dl
rm
source_linux-signed-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-ibm-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-ibm.py
6302
0644
edit
dl
rm
source_linux-signed-intel-iotg.py
6302
0644
edit
dl
rm
source_linux-signed-kvm.py
6302
0644
edit
dl
rm
source_linux-signed-lowlatency-hwe-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-lowlatency.py
6302
0644
edit
dl
rm
source_linux-signed-nvidia-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-nvidia-tegra-igx.py
6302
0644
edit
dl
rm
source_linux-signed-nvidia-tegra.py
6302
0644
edit
dl
rm
source_linux-signed-nvidia.py
6302
0644
edit
dl
rm
source_linux-signed-oem-osp1.py
6302
0644
edit
dl
rm
source_linux-signed-oem.py
6302
0644
edit
dl
rm
source_linux-signed-oracle-6.8.py
6302
0644
edit
dl
rm
source_linux-signed-oracle.py
6302
0644
edit
dl
rm
source_linux-signed-realtime.py
6302
0644
edit
dl
rm
source_linux-signed.py
6302
0644
edit
dl
rm
source_linux-xilinx-zynqmp.py
6302
0644
edit
dl
rm
source_linux.py
6302
0644
edit
dl
rm
source_mdadm.py
2252
0644
edit
dl
rm
source_mysql-8.0.py
3806
0644
edit
dl
rm
source_nginx.py
647
0644
edit
dl
rm
source_plymouth.py
1474
0644
edit
dl
rm
source_shadow.py
720
0644
edit
dl
rm
source_shim-signed.py
2000
0644
edit
dl
rm
source_shim.py
2000
0644
edit
dl
rm
source_sudo.py
1160
0644
edit
dl
rm
source_ubiquity.py
7768
0644
edit
dl
rm
source_ubuntu-advantage-tools.py
1246
0644
edit
dl
rm
source_ubuntu-release-upgrader.py
2684
0644
edit
dl
rm
source_unattended-upgrades.py
705
0644
edit
dl
rm
source_update-manager.py
2444
0644
edit
dl
rm
subiquity.py
5230
0644
edit
dl
rm
systemd.py
871
0644
edit
dl
rm
ubuntu-desktop-installer.py
1276
0644
edit
dl
rm
udev.py
455
0644
edit
dl
rm
udisks2.py
752
0644
edit
dl
rm
Edit:
/usr/share/apport/package-hooks/subiquity.py
(5230B)
"""Send reports about subiquity to the correct Launchpad project.""" import os import re from apport import Report, hookutils from apport.ui import HookUI def get_journal(report: Report, log_map: dict[str, str]) -> None: """Get installer environment journal log. Appends the installer specific journal to the log map if it exists, otherwise appends the system journal to the report directly. """ installer_journal = "/var/log/installer/installer-journal.txt" if os.path.exists(installer_journal): log_map["InstallerJournal"] = installer_journal else: report["SystemJournal"] = hookutils.recent_syslog(re.compile(".")) def get_revision(debug_log_contents: str) -> str: """Get subiquity revision from debug log contents. Returns revision found (e.g. "1234") or "unknown" if not found. """ # Revision information is always in the first line of the log file first_line = debug_log_contents.splitlines()[0] marker = "Starting Subiquity server revision" if marker in first_line: revision = first_line.split(marker)[1].strip() else: revision = "unknown" return revision def add_info(report: Report, unused_ui: HookUI) -> None: """Package hook entry point.""" # Check if the snap was updated # TODO: Add logic to support this outside of the live environment. # It may be possible someone wants to report a bug against the # installer after first boot. report["SnapUpdated"] = str(os.path.exists("/run/subiquity/updating")) # rewrite this section so the report goes to the project in Launchpad report[ "CrashDB" ] = """\ { "impl": "launchpad", "project": "subiquity", "bug_pattern_url": "http://people.canonical.com/" "~ubuntu-archive/bugpatterns/bugpatterns.xml", } """ # add in hardware information hookutils.attach_hardware(report) # This key is important for checking revision information later debug_log_key = "InstallerServerLog" # static subiquity generated logs log_map = { debug_log_key: "/var/log/installer/subiquity-server-debug.log", "InstallerServerLogInfo": "/var/log/installer/subiquity-server-info.log", "InstallerClientLog": "/var/log/installer/subiquity-client-debug.log", "InstallerClientLogInfo": "/var/log/installer/subiquity-client-info.log", "CurtinLog": "/var/log/installer/curtin-install.log", "CurtinAptConfig": "var/log/installer/curtin-install/subiquity-curtin-apt.conf", "CurtinCurthooksConfig": ( "/var/log/installer/curtin-install/subiquity-curthooks.conf" ), "CurtinExtractConfig": ( "/var/log/installer/curtin-install/subiquity-extract.conf" ), "CurtinInitialConfig": ( "/var/log/installer/curtin-install/subiquity-initial.conf" ), "CurtinPartitioningConfig": ( "/var/log/installer/curtin-install/subiquity-partitioning.conf" ), "ProbeData": "/var/log/installer/block/probe-data.json", "Traceback": "/var/log/installer/subiquity-traceback.txt", "NetplanInstallerConfig": "/etc/netplan/00-installer-config.yaml", "NetplanSnapdConfig": "/etc/netplan/00-snapd-config.yaml", } # Add journal log get_journal(report, log_map) # Add ubuntu-desktop-bootstrap information if available udb_log = os.path.realpath("/var/log/installer/ubuntu_bootstrap.log") if os.path.exists(udb_log): log_map["BootstrapLog"] = udb_log report.add_tags(["ubuntu-desktop-bootstrap"]) # check for udb snap version udb_snap = os.path.realpath("/snap/ubuntu-desktop-bootstrap/current") if os.path.exists(udb_snap): # "current" is a symlink to the current revision and # os.path.realpath should have resolved it report["DesktopInstallerRev"] = os.path.basename(udb_snap) # Attach logs if they exist # The conventional way to attach logs would be to use the # hookutils.attach_file_if_exists method, but since subiquity logs # are mostly locked down with root r/w only then we will get a permission # error if the caller does not have permissions. Ask for elevated # permissions instead of requiring users know to run with sudo or similar command_mapping = {} for name, path in log_map.items(): if os.path.exists(path): real_path = os.path.realpath(path) command_mapping[name] = f"cat {real_path}" hookutils.attach_root_command_outputs(report, command_mapping) # Get revision to display in the UI prompt # If attach_root_command_outputs fails the log won't be in the report revision = "unknown" if debug_log_key in report: revision = get_revision(report[debug_log_key]) report["Package"] = f"subiquity ({revision})" report["SourcePackage"] = "subiquity" # Package and SourcePackage keys are deleted when the Snap is chosen, # so make a separate key to keep track of the revision report["SnapVersion"] = revision # Always set reports to private since we might collect sensitive data report["LaunchpadPrivate"] = "1"
Save
cmd:
run