def _get_dracut_module_version_from_pdb( package_manager: str, package_name: str, root_dir: str ) -> str: tool = Defaults.get_default_packager_tool(package_manager) package_query = None package_manager_query = None package_version = '' if tool == 'rpm': package_manager_query = [ 'chroot', root_dir, tool, '-q', '--qf', '%{VERSION}', package_name ] elif tool == 'dpkg': package_manager_query = [ 'chroot', root_dir, 'dpkg-query', '-W', '-f', '${Version}', package_name ] if package_manager_query: try: package_query = Command.run(package_manager_query) if package_query: package_version = package_query.output.split('-', 1)[0] except Exception as issue: log.debug(f'Package manager query failed with: {issue}') return package_version
def export_package_verification(self, target_dir): """ Export package verification result as metadata reference used by the open buildservice :param str target_dir: path name """ filename = ''.join( [ target_dir, '/', self.xml_state.xml_data.get_name(), '.' + self.arch, '-' + self.xml_state.get_image_version(), '.verified' ] ) packager = Defaults.get_default_packager_tool( self.xml_state.get_package_manager() ) if packager == 'rpm': self._export_rpm_package_verification(filename) return filename elif packager == 'dpkg': self._export_deb_package_verification(filename) return filename
def export_package_changes(self, target_dir: str) -> str: """ Export image package changelog for comparision of actual changes of the installed packages :param str target_dir: path name """ image_version = self.xml_state.get_image_version() or 'unspecified' if self.runtime_config.get_package_changes(): filename = ''.join( [ target_dir, '/', self.xml_state.xml_data.get_name(), '.' + self.arch, '-' + image_version, '.changes' ] ) packager = Defaults.get_default_packager_tool( self.xml_state.get_package_manager() ) if packager == 'rpm': self._export_rpm_package_changes(filename) return filename elif packager == 'dpkg': self._export_deb_package_changes(filename) return filename return ''
def export_package_list(self, target_dir: str) -> str: """ Export image package list as metadata reference used by the open buildservice :param str target_dir: path name """ image_version = self.xml_state.get_image_version() or 'unspecified' filename = ''.join( [ target_dir, '/', self.xml_state.xml_data.get_name(), '.' + self.arch, '-' + image_version, '.packages' ] ) packager = Defaults.get_default_packager_tool( self.xml_state.get_package_manager() ) if packager == 'rpm': self._export_rpm_package_list(filename) return filename elif packager == 'dpkg': self._export_deb_package_list(filename) return filename elif packager == 'pacman': self._export_pacman_package_list(filename) return filename return ''
def export_package_verification(self, target_dir): """ Export package verification result as metadata reference used by the open buildservice :param string target_dir: path name """ filename = ''.join( [ target_dir, '/', self.xml_state.xml_data.get_name(), '.' + self.arch, '-' + self.xml_state.get_image_version(), '.verified' ] ) packager = Defaults.get_default_packager_tool( self.xml_state.get_package_manager() ) if packager == 'rpm': self._export_rpm_package_verification(filename) return filename elif packager == 'dpkg': self._export_deb_package_verification(filename) return filename
def _get_dracut_module_version_from_pdb( package_manager, package_name, root_dir ): tool = Defaults.get_default_packager_tool(package_manager) package_query = None if tool == 'rpm': package_query = Command.run( [ tool, '--root', root_dir, '-q', '--qf', '%{VERSION}', package_name ] ) elif tool == 'dpkg': package_query = Command.run( [ 'dpkg-query', '--admindir', os.sep.join([root_dir, 'var/lib/dpkg']), '-W', '-f', '${Version}', package_name ] ) if package_query: return package_query.output.split('-', 1)[0]