def check_file(self, pkg, filename): root = pkg.dirName() f = root + filename st = getstatusoutput(('desktop-file-validate', f), True) if st[0]: error_printed = False for line in st[1].splitlines(): if 'error: ' in line: printError(pkg, 'invalid-desktopfile', filename, line.split('error: ')[1]) error_printed = True if not error_printed: printError(pkg, 'invalid-desktopfile', filename) if not is_utf8(f): printError(pkg, 'non-utf8-desktopfile', filename) cfp = RawConfigParser() cfp.read(f) binary = None if cfp.has_option('Desktop Entry', 'Exec'): binary = cfp.get('Desktop Entry', 'Exec').split(' ', 1)[0] if binary: found = False if binary.startswith('/'): found = os.path.exists(root + binary) else: for i in STANDARD_BIN_DIRS: if os.path.exists(root + i + binary): # no need to check if the binary is +x, rpmlint does it # in another place found = True break if not found: printWarning(pkg, 'desktopfile-without-binary', filename, binary)
def check_file(self, pkg, filename): root = pkg.dirName() f = root + filename try: st = getstatusoutput(appdata_checker + (f,)) except OSError: # ignore if the checker is not installed return if st[0]: printError(pkg, "invalid-appdata-file", filename)
def check_file(self, pkg, filename): root = pkg.dirName() f = root + filename try: st = getstatusoutput(appdata_checker + (f, )) except OSError: # ignore if the checker is not installed return if st[0]: printError(pkg, 'invalid-appdata-file', filename)
def check_file(self, pkg, filename): root = pkg.dirName() f = root + filename st = getstatusoutput(('desktop-file-validate', f), True) if st[0]: error_printed = False for line in st[1].splitlines(): if 'error: ' in line: printError(pkg, 'invalid-desktopfile', filename, line.split('error: ')[1]) error_printed = True if not error_printed: printError(pkg, 'invalid-desktopfile', filename) if not is_utf8(f): printError(pkg, 'non-utf8-desktopfile', filename) self.parse_desktop_file(pkg, root, f, filename)
def check_file(self, pkg, filename): root = pkg.dirName() f = root + filename checker = appdata_checker if checker[0] == "appstream-util" and not self.network_enabled: checker += ("--nonet", ) validation_failed = False try: st = getstatusoutput(checker + (f, )) # Return code nonzero? validation_failed = (st[0] != 0) except OSError: # checker is not installed, do a validation manually try: ET.parse(pkg.dirName() + filename) except ET.ParseError: validation_failed = True if validation_failed: printError(pkg, 'invalid-appdata-file', filename)
def check_file(self, pkg, filename): root = pkg.dirName() f = root + filename checker = appdata_checker if checker[0] == "appstream-util" and not self.network_enabled: checker += ("--nonet",) validation_failed = False try: st = getstatusoutput(checker + (f,)) # Return code nonzero? validation_failed = (st[0] != 0) except OSError: # checker is not installed, do a validation manually try: ET.parse(pkg.dirName() + filename) except ET.ParseError: validation_failed = True if validation_failed: printError(pkg, 'invalid-appdata-file', filename)