/usr/share/apport/package-hooks
NameSizeModeActions
cloud-init.py1760644editdlrm
cryptsetup.py10820644editdlrm
isc-dhcp-client.py17960644editdlrm
openssh-client.py12130644editdlrm
openssh-server.py10040644editdlrm
source_apparmor.py28310644editdlrm
source_apport.py5690644editdlrm
source_byobu.py3390644editdlrm
source_console-setup.py3740644editdlrm
source_debian-installer.py19060644editdlrm
source_grub2.py37820644editdlrm
source_linux-5.4.py63020644editdlrm
source_linux-firmware.py63020644editdlrm
source_linux-meta-oem-osp1.py63020644editdlrm
source_linux-meta-oem.py63020644editdlrm
source_linux-meta-raspi.py63020644editdlrm
source_linux-meta.py63020644editdlrm
source_linux-oem-5.4.py63020644editdlrm
source_linux-oem-osp1.py63020644editdlrm
source_linux-oem.py63020644editdlrm
source_linux-signed-5.4.py63020644editdlrm
source_linux-signed-oem-5.4.py63020644editdlrm
source_linux-signed-oem-osp1.py63020644editdlrm
source_linux-signed-oem.py63020644editdlrm
source_linux-signed.py63020644editdlrm
source_linux.py63020644editdlrm
source_mdadm.py22520644editdlrm
source_mysql-8.0.py25210644editdlrm
source_nginx.py6840644editdlrm
source_plymouth.py14740644editdlrm
source_shadow.py7200644editdlrm
source_shim-signed.py20000644editdlrm
source_shim.py20000644editdlrm
source_sudo.py11590644editdlrm
source_ubiquity.py77480644editdlrm
source_ubuntu-release-upgrader.py22380644editdlrm
source_unattended-upgrades.py7050644editdlrm
source_update-manager.py22900644editdlrm
subiquity.py13820644editdlrm
systemd.py8720644editdlrm
udev.py4550644editdlrm
Edit: /usr/share/apport/package-hooks/source_mdadm.py (2252B)
'''apport package hook for mdadm (c) 2009-2016 Canonical Ltd. Author: Steve Beattie Based on the ideas in debian's /usr/share/bug/mdadm/script ''' from apport.hookutils import attach_file, attach_file_if_exists, attach_hardware, path_to_key, command_output import os import re import glob import gzip import subprocess import sys def get_initrd_files(pattern): '''Extract listing of files from the current initrd which match a regex. pattern should be a "re" object. ''' (_, _, release, _, _) = os.uname() try: fd = gzip.GzipFile('/boot/initrd.img-' + release, 'rb') # universal_newlines needs to be False here as we're passing # binary data from gzip into cpio, which means we'll need to # decode the bytes into strings later when reading the output cpio = subprocess.Popen(['cpio', '-t'], close_fds=True, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, stdout=subprocess.PIPE, universal_newlines=False) except OSError as e: return 'Error: ' + str(e) out = cpio.communicate(fd.read())[0].decode(sys.stdout.encoding, errors='replace') if cpio.returncode != 0: return 'Error: command %s failed with exit code %i %' % ( 'cpio', cpio.returncode, out) lines = ''.join([l for l in out.splitlines(True) if pattern.search(l)]) return lines def add_info(report): attach_hardware(report) attach_file(report, '/proc/mounts', 'ProcMounts') attach_file_if_exists(report, '/etc/mdadm/mdadm.conf', 'mdadm.conf') attach_file(report, '/proc/mdstat', 'ProcMDstat') attach_file(report, '/proc/partitions', 'ProcPartitions') attach_file(report, '/etc/blkid.tab', 'etc.blkid.tab') attach_file_if_exists(report, '/boot/grub/menu.lst', 'GrubMenu.lst') attach_file_if_exists(report, '/boot/grub/grub.cfg', 'Grub.cfg') attach_file_if_exists(report, '/etc/lilo.conf', 'lilo.conf') devices = glob.glob("/dev/[hs]d*") for dev in devices: report['MDadmExamine' + path_to_key(dev)] = command_output(['/sbin/mdadm', '-E', dev]) initrd_re = re.compile('md[a/]') report['initrd.files'] = get_initrd_files(initrd_re)