#!/usr/bin/python3 # -*- coding: utf-8 -*- # # (c) Copyright 2003-2015 HP Development Company, L.P. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # # Author: Don Welch # Contributors: Sarbeswar Meher # __version__ = '2.2' __mod__ = 'hp-scan' __title__ = 'Scan Utility' __doc__ = "SANE-based scan utility for HPLIP supported all-in-one/mfp devices." # Std Lib import sys import os import os.path import getopt import signal import time import socket import operator import scanext # Local from base.g import * from base.sixext import PY3 from base import tui, device, module, utils, os_utils from prnt import cups from scan import sane #if con_device == 5000 or con_device == 7500: import platform #from datetime import datetime try: from base import imageprocessing except ImportError: print (" ") #from PIL import ImageStat username = prop.username r = res = 300 scan_mode = 'gray' tlx = None tly = None brx = None bry = None units = "mm" output = '' dest = [] email_from = '' email_to = [] email_subject = 'hp-scan from %s' % socket.gethostname() email_note = '' resize = 100 brightness = 0 set_brightness = False color_dropout_red = 0 set_color_dropout = False color_dropout_green = 0 color_dropout_blue = 0 color_range_value = 0 contrast = 0 set_contrast = False page_size = '' size_desc = '' page_units = 'mm' default_res = 300 scanner_compression = 'JPEG' adf = False duplex = False dest_printer = None dest_devUri = None uiscan = False #if con_device == 5000 or con_device == 7500: sharpness = 0 set_sharpness = False color_value = 0 set_color_value = False barcode_found = 0 barcode_data = list() barcode_count =0 barcode_first_occurence = True barcode_first_page = False save_file = '' output_path = os.getcwd() ext = ".png" multipick = False blank_page = False isBlankPage = False auto_orient = False crushed = False bg_color_removal = False punchhole_removal = False auto_crop = False deskew_image = False lineart_mode = False document_merge = False mixed_feed = False back_side = False batchsepBC = False batchsepBP = False barcode = False merge_ADF_Flatbed = False temp_list = [] blankpage_found = 0 bp_no = 0 pyPlatform = 0 blankpage_data = list() blankpage_count =0 blankpage_first_occurence = True blankpage_first_page = False orient = 0 orient_list = [] multipick_error_message = "The scan operation has been cancelled or a multipick or paper is jammed in the ADF.\nIf you cancelled the scan,click OK.\nIf the scan was terminated due to a multi-feed or paper jam in the ADF,\ndo the following:\n\n1)Clear the ADF path. For instructions see your product documentation.\n2)Check the sheets are not stuck together. Remove any staples, sticky notes,tape or other objects.\n3)Restart the scan\n\nNote:If necessary, turn off automatic detection of multi-pick before starting a new scan\n" SANE_STATUS_MULTIPICK=12 SANE_STATUS_JAMMED=6 PAGE_SIZES = { # in mm '5x7' : (127, 178, "5x7 photo", 'in'), '4x6' : (102, 152, "4x6 photo", 'in'), '3x5' : (76, 127, "3x5 index card", 'in'), 'a2_env' : (111, 146, "A2 Envelope", 'in'), 'a3' : (297, 420, "A3", 'mm'), "a4" : (210, 297, "A4", 'mm'), "a5" : (148, 210, "A5", 'mm'), "a6" : (105, 148, "A6", 'mm'), "b4" : (257, 364, "B4", 'mm'), "b5" : (182, 257, "B5", 'mm'), "c6_env" : (114, 162, "C6 Envelope", 'in'), "dl_env" : (110, 220, "DL Envelope", 'in'), "exec" : (184, 267, "Executive", 'in'), "flsa" : (216, 330, "Flsa", 'mm'), "higaki" : (100, 148, "Hagaki", 'mm'), "japan_env_3" : (120, 235, "Japanese Envelope #3", 'mm'), "japan_env_4" : (90, 205, "Japanese Envelope #4", 'mm'), "legal" : (215, 356, "Legal", 'in'), "letter" : (215, 279, "Letter", 'in'), "no_10_env" : (105, 241, "Number 10 Envelope", 'in'), "oufufu-hagaki" : (148, 200, "Oufuku-Hagaki", 'mm'), "photo" : (102, 152, "Photo", 'in'), "super_b" : (330, 483, "Super B", 'in'), } def createPagesFile(adf_page_files,pages_file,file_type='.png'): #print ("called create page files") #print (adf_page_files) if not 'hpscan' in pages_file: pages_file=pages_file+'_' output = utils.createBBSequencedFilename(pages_file, file_type, output_path) if file_type == '.pdf': if len(adf_page_files): try: output = imageprocessing.generatePdfFile(adf_page_files,output) except ImportError: try: output = imageprocessing.generatePdfFile_canvas(adf_page_files,output,orient_list,brx,bry,tlx,tly,output_path) except ImportError as error: if error.message.split(' ')[-1] == 'PIL': log.error("PDF output requires PIL.") else: log.error("PDF output requires ReportLab.") sys.exit(1) temp_list.append(output) #print temp_list #imageprocessing.merge_PDF_viewer(output) #cmd = "%s %s &" % (pdf_viewer, output) #os_utils.execute(cmd) elif file_type == '.tiff': file_name = '' #print "entered tiff" #print adf_page_files for p in adf_page_files: file_name = file_name + " " + p cmd = "convert %s %s" %(file_name,output) status = utils.run(cmd) #print ("***********************") #print (status[0]) #print (status[1]) if status[0] == -1: #print ("entered status -1") log.error("Convert command not found.") sys.exit(6) #print adf_page_files for p in adf_page_files: os.remove(p) #temp_list.append(output) else: for p in adf_page_files: im = Image.open(p) output = utils.createBBSequencedFilename(pages_file, file_type, output_path) try: im.save(output,compress_level=1,quality=55) except: im = im.convert("RGB") im.save(output,compress_level=1,quality=55) os.unlink(p) try: viewer = '' viewer_list = ['kview', 'display', 'gwenview', 'eog', 'kuickshow',] for v in viewer_list: vv = utils.which(v) if vv: viewer = os.path.join(vv, v) break editor = '' editor_list = ['kolourpaint', 'gimp', 'krita', 'cinepaint', 'mirage',] for e in editor_list: ee = utils.which(e) if ee: editor = os.path.join(ee, e) break pdf_viewer = '' pdf_viewer_list = ['kpdf', 'acroread', 'xpdf', 'evince', 'xdg-open'] for v in pdf_viewer_list: vv = utils.which(v) if vv: pdf_viewer = os.path.join(vv, v) break mod = module.Module(__mod__, __title__, __version__, __doc__, None, (INTERACTIVE_MODE,)) extra_options=[utils.USAGE_SPACE, ("[OPTIONS] (General)", "", "header", False), ("Scan destinations:", "-s<dest_list> or --dest=<dest_list>", "option", False), ("", "where <dest_list> is a comma separated list containing one or more of: 'file'", "option", False), ("", ", 'viewer', 'editor', 'pdf', or 'print'. Use only commas between values, no spaces.", "option", False), ("Scan mode:", "-m<mode> or --mode=<mode>. Where <mode> is 'gray'\*, 'color' or 'lineart'.", "option", False), ("Scanning resolution:", "-r<resolution_in_dpi> or --res=<resolution_in_dpi> or --resolution=<resolution_in_dpi>", "option", False), ("", "where 300 is default.", "option", False), ("Image resize:", "--resize=<scale_in_%> (min=1%, max=400%, default=100%)", "option", False), ("Color Dropout Red :", "-color_dropout_red_value=<color_dropout_red_value> or --color_dropout_red_value=<color_dropout_red_value>", "option", False), ("Color Dropout Green :", "-color_dropout_green_value=<color_dropout_green_value> or --color_dropout_green_value=<color_dropout_green_value>", "option", False), ("Color Dropout Blue :", "-color_dropout_blue_value=<color_dropout_blue_value> or --color_dropout_blue_value=<color_dropout_blue_value>", "option", False), ("Color Dropout Range :", "-color_range=<color_range> or --color_range=<color_range>", "option", False), ("Image contrast:", "-c=<contrast> or --contrast=<contrast>", "option", False), ("", "The contrast range varies from device to device.", "option", False), ("Image brightness:", "-b=<brightness> or --brightness=<brightness>", "option", False), ("", "The brightness range varies from device to device.", "option", False), ("ADF mode:", "--adf (Note, only PDF output is supported when using the ADF)", "option", False), ("", "--duplex or --dup for duplex scanning using ADF.", "option", False), utils.USAGE_SPACE, ("[OPTIONS] (Scan area)", "", "header", False), ("Specify the units for area/box measurements:", "-t<units> or --units=<units>", "option", False), ("", "where <units> is 'mm'\*, 'cm', 'in', 'px', or 'pt' ('mm' is default).", "option", False), ("Scan area:", "-a<tlx>,<tly>,<brx>,<bry> or --area=<tlx>,<tly>,<brx>,<bry>", "option", False), ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), ("", "Units for tlx, tly, brx, and bry are specified by -t/--units (default is 'mm').", "option", False), ("", "Use only commas between values, no spaces.", "option", False), ("Scan box:", "--box=<tlx>,<tly>,<width>,<height>", "option", False), ("", "tlx and tly coordinates are relative to the upper left corner of the scan area.", "option", False), ("", "Units for tlx, tly, width, and height are specified by -t/--units (default is 'mm').", "option", False), ("", "Use only commas between values, no spaces.", "option", False), ("Top left x of the scan area:", "--tlx=<tlx>", "option", False), ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), ("", "Units are specified by -t/--units (default is 'mm').", "option", False), ("Top left y of the scan area:", "--tly=<tly>", "option", False), ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), ("", "Units are specified by -t/--units (default is 'mm').", "option", False), ("Bottom right x of the scan area:", "--brx=<brx>", "option", False), ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), ("", "Units are specified by -t/--units (default is 'mm').", "option", False), ("Bottom right y of the scan area:", "--bry=<bry>", "option", False), ("", "Coordinates are relative to the upper left corner of the scan area.", "option", False), ("", "Units are specified by -t/--units (default is 'mm').", "option", False), ("Specify the scan area based on a paper size:", "--size=<paper size name>", "option", False), ("", "where <paper size name> is one of: %s" % ', '.join(sorted(list(PAGE_SIZES.keys()))), "option", False), utils.USAGE_SPACE, ("[OPTIONS] ('file' dest)", "", "header", False), ("Filename for 'file' destination:", "-o<file> or -f<file> or --file=<file> or --output=<file>", "option", False), #("Destination:", "--path=<destination>", "option", False), utils.USAGE_SPACE, ("[OPTIONS] ('pdf' dest)", "", "header", False), ("PDF viewer application:", "--pdf=<pdf_viewer>", "option", False), utils.USAGE_SPACE, ("[OPTIONS] ('viewer' dest)", "", "header", False), ("Image viewer application:", "-v<viewer> or --viewer=<viewer>", "option", False), utils.USAGE_SPACE, ("[OPTIONS] ('editor' dest)", "", "header", False), ("Image editor application:", "-e<editor> or --editor=<editor>", "option", False), utils.USAGE_SPACE, ("[OPTIONS] ('email' dest)", "", "header", False), ("From: address for 'email' dest:", "--email-from=<email_from_address> (required for 'email' dest.)", "option", False), ("To: address for 'email' dest:", "--email-to=<email__to_address> (required for 'email' dest.)", "option", False), ("Email subject for 'email' dest:", '--email-subject="<subject>" or --subject="<subject>"', "option", False), ("", 'Use double quotes (") around the subject if it contains space characters.', "option", False), ("Note or message for the 'email' dest:", '--email-msg="<msg>" or --email-note="<note>"', "option", False), ("", 'Use double quotes (") around the note/message if it contains space characters.', "option", False), utils.USAGE_SPACE, ("[OPTIONS] ('printer' dest)", "", "header", False), ("Printer queue/printer dest:", "--dp=<printer_name> or --dest-printer=<printer_name>", "option", False), ("Printer device-URI dest:", "--dd=<device-uri> or --dest-device=<device-uri>", "option", False), utils.USAGE_SPACE, ("[OPTIONS] (advanced)", "", "header", False), ("Set the scanner compression mode:", "-x<mode> or --compression=<mode>, <mode>='raw', 'none' or 'jpeg' ('jpeg' is default) ('raw' and 'none' are equivalent)", "option", False),] scan_parseStdOpts = ['dest=', 'mode=', 'res=', 'resolution=', 'resize=', 'adf', 'duplex', 'dup', 'unit=', 'units=', 'area=', 'box=', 'tlx=', 'tly=', 'brx=', 'bry=', 'size=', 'file=', 'output=', 'pdf=', 'viewer=', 'email-from=', 'from=', 'email-to=', 'to=', 'email-msg=', 'msg=', 'printer=', 'compression=' , 'raw', 'jpeg', 'color', 'lineart', 'colour', 'bw', 'gray', 'grayscale', 'grey', 'greyscale', 'email-subject=', 'subject=', 'to=', 'from=', 'jpg', 'grey-scale', 'gray-scale', 'about=', 'editor=', 'dp=', 'dest-printer=', 'dd=', 'dest-device=', 'brightness=', 'contrast=','filetype=', 'path=', 'uiscan', 'sharpness=','color_dropout_red_value=','color_dropout_green_value=','color_dropout_blue_value=','color_range=', 'color_value=','multipick','autoorient','blankpage','batchsepBP','mixedfeed', 'crushed', 'bg_color_removal','punchhole_removal','docmerge','adf_fladbed_merge','batchsepBC','deskew','autocrop','backside'] mod.setUsage(module.USAGE_FLAG_DEVICE_ARGS, extra_options, see_also_list=[]) #print devicelist #print "parse scan opts" opts, device_uri, printer_name, mode, ui_toolkit, lang = \ mod.parseStdOpts('s:m:r:c:t:a:b:o:v:f:c:x:e:', scan_parseStdOpts) #print device_uri sane.init() sane_devices = sane.getDevices() devicelist = {} for d, mfg, mdl, t in sane_devices: try: devicelist[d] except KeyError: devicelist[d] = [mdl] else: devicelist[d].append(mdl) sane.deInit() #print devicelist #print "near getdevice uri" device_uri = mod.getDeviceUri(device_uri, printer_name, back_end_filter=['hpaio'], filter={'scan-type': (operator.gt, 0)}, devices=devicelist) #print device_uri if not device_uri: sys.exit(1) for o, a in opts: if o in ('-x', '--compression'): a = a.strip().lower() if a in ('jpeg', 'jpg'): scanner_compression = 'JPEG' elif a in ('raw', 'none'): scanner_compression = 'None' else: log.error("Invalid compression value. Valid values are 'jpeg', 'raw', and 'none'.") log.error("Using default value of 'jpeg'.") scanner_compression = 'JPEG' elif o == '--filetype': #a=a.strp().lower() #print (a) if a == 'png': save_file = 'png' ext = ".png" elif a == 'jpg': save_file = 'jpg' ext = ".jpg" elif a == 'pdf': save_file = 'pdf' ext = ".pdf" elif a == 'tiff': save_file = 'tiff' ext = '.tiff' elif a == 'bmp': save_file = 'bmp' ext = '.bmp' else: save_file = 'png' ext = ".png" elif o == '--path': output_path = a elif o == 'raw': scanner_compression = 'None' elif o == 'jpeg': scanner_compression = 'JPEG' elif o in ('--color', '--colour'): scan_mode = 'color' elif o in ('--lineart', '--line-art', '--bw'): scan_mode = 'lineart' elif o in ('--gray', '--grayscale', '--gray-scale', '--grey', '--greyscale', '--grey-scale'): scan_mode = 'gray' elif o in ('-m', '--mode'): a = a.strip().lower() if a in ('color', 'colour'): scan_mode = 'color' elif a in ('lineart', 'bw', 'b&w'): if (re.search(r'_7500', device_uri)): log.error("lineart mode is not supported for this device.") sys.exit(1) scan_mode = 'lineart' elif a in ('gray', 'grayscale', 'grey', 'greyscale'): scan_mode = 'gray' else: log.error("Invalid mode. Using default of 'gray'.") log.error("Valid modes are 'color', 'lineart', or 'gray'.") scan_mode = 'gray' elif o in ('--res', '--resolution', '-r'): try: r = int(a.strip()) except ValueError: log.error("Invalid value for resolution.") res = default_res else: res = r elif o in ('-t', '--units', '--unit'): a = a.strip().lower() if a in ('in', 'inch', 'inches'): units = 'in' elif a in ('mm', 'milimeter', 'milimeters', 'millimetre', 'millimetres'): units = 'mm' elif a in ('cm', 'centimeter', 'centimeters', 'centimetre', 'centimetres'): units = 'cm' elif a in ('px', 'pixel', 'pixels', 'pel', 'pels'): units = 'px' elif a in ('pt', 'point', 'points', 'pts'): units = 'pt' else: log.error("Invalid units. Using default of 'mm'.") units = 'mm' elif o == '--tlx': a = a.strip().lower() try: f = float(a) except ValueError: log.error("Invalid value for tlx.") else: tlx = f elif o == '--tly': a = a.strip().lower() try: f = float(a) except ValueError: log.error("Invalid value for tly.") else: tly = f elif o == '--brx': a = a.strip().lower() try: f = float(a) except ValueError: log.error("Invalid value for brx.") else: brx = f elif o == '--bry': a = a.strip().lower() try: f = float(a) except ValueError: log.error("Invalid value for bry.") else: bry = f elif o in ('-a', '--area'): # tlx, tly, brx, bry a = a.strip().lower() try: tlx, tly, brx, bry = a.split(',')[:4] except ValueError: log.error("Invalid scan area. Using defaults.") else: try: tlx = float(tlx) except ValueError: log.error("Invalid value for tlx. Using defaults.") tlx = None try: tly = float(tly) except ValueError: log.error("Invalid value for tly. Using defaults.") tly = None try: brx = float(brx) except ValueError: log.error("Invalid value for brx. Using defaults.") brx = None try: bry = float(bry) except ValueError: log.error("Invalid value for bry. Using defaults.") bry = None elif o == '--box': # tlx, tly, w, h a = a.strip().lower() try: tlx, tly, width, height = a.split(',')[:4] except ValueError: log.error("Invalid scan area. Using defaults.") else: try: tlx = float(tlx) except ValueError: log.error("Invalid value for tlx. Using defaults.") tlx = None try: tly = float(tly) except ValueError: log.error("Invalid value for tly. Using defaults.") tly = None if tlx is not None: try: brx = float(width) + tlx except ValueError: log.error("Invalid value for width. Using defaults.") brx = None else: log.error("Cannot calculate brx since tlx is invalid. Using defaults.") brx = None if tly is not None: try: bry = float(height) + tly except ValueError: log.error("Invalid value for height. Using defaults.") bry = None else: log.error("Cannot calculate bry since tly is invalid. Using defaults.") bry = None elif o == '--size': size = a.strip().lower() if size in PAGE_SIZES: brx, bry, size_desc, page_units = PAGE_SIZES[size] tlx, tly = 0, 0 page_size = size else: log.error("Invalid page size. Valid page sizes are: %s" % ', '.join(list(PAGE_SIZES.keys()))) log.error("Using defaults.") elif o in ('-o', '--output', '-f', '--file'): output = os.path.abspath(os.path.normpath(os.path.expanduser(a.strip()))) try: ext = os.path.splitext(output)[1] except IndexError: log.error("Invalid filename extension.") output = '' if 'file' in dest: dest.remove('file') else: if ext.lower() not in ('.jpg', '.png', '.pdf'): log.error("Only JPG (.jpg), PNG (.png) and PDF (.pdf) output files are supported.") output = '' if 'file' in dest: dest.remove('file') else: if os.path.exists(output): log.warn("Output file '%s' exists. File will be overwritten." % output) if 'file' not in dest: dest.append('file') elif o in ('-s', '--dest', '--destination'): a = a.strip().lower().split(',') for aa in a: aa = aa.strip() if aa in ('file', 'viewer', 'editor', 'print', 'email', 'pdf') \ and aa not in dest: dest.append(aa) elif o in ('--dd', '--dest-device'): dest_devUri = a.strip() if 'print' not in dest: dest.append('print') elif o in ('--dp', '--dest-printer'): dest_printer = a.strip() if 'print' not in dest: dest.append('print') elif o in ('-v', '--viewer'): a = a.strip() b = utils.which(a) if not b: log.error("Viewer application not found.") else: viewer = os.path.join(b, a) if 'viewer' not in dest: dest.append('viewer') elif o in ('-e', '--editor'): a = a.strip() b = utils.which(a) if not b: log.error("Editor application not found.") else: editor = os.path.join(b, a) if 'editor' not in dest: dest.append('editor') elif o == '--pdf': a = a.strip() b = utils.which(a) if not b: log.error("PDF viewer application not found.") else: pdf_viewer = os.path.join(b, a) if 'pdf' not in dest: dest.append('pdf') elif o in ('--email-to', '--to'): email_to = a.split(',') if 'email' not in dest: dest.append('email') elif o in ('--email-from', '--from'): email_from = a if 'email' not in dest: dest.append('email') elif o in ('--email-subject', '--subject', '--about'): email_subject = a if 'email' not in dest: dest.append('email') elif o in ('--email-note', '--email-msg', '--msg', '--message', '--note', '--notes'): email_note = a if 'email' not in dest: dest.append('email') elif o == '--resize': a = a.replace("%", "") try: resize = int(a) except ValueError: resize = 100 log.error("Invalid resize value. Using default of 100%.") elif o in ('-color_dropout_red_value', '--color_dropout_red_value'): try: set_color_dropout = True color_dropout_red = int(a) except ValueError: log.error("Invalid color dropout value. Using default 0 .") color_dropout_red = 0 elif o in ('-color_dropout_green_value', '--color_dropout_green_value'): try: set_color_dropout = True color_dropout_green = int(a) except ValueError: log.error("Invalid color dropout value. Using default 0 .") color_dropout_green = 0 elif o in ('-color_dropout_blue_value', '--color_dropout_blue_value'): try: set_color_dropout = True color_dropout_blue = int(a) except ValueError: log.error("Invalid color dropout value. Using default of [0:0:0] .") color_dropout_blue = 0 elif o in ('-color_range', '--color_range'): try: set_color_dropout = True color_range_value = int(a) except ValueError: log.error("Invalid color dropout value. Using default of [0:0:0] .") color_range_value = 49 elif o in ('-b', '--brightness'): try: set_brightness = True brightness = float(a.strip()) except ValueError: log.error("Invalid brightness value. Using default of 0.") brightness = 0 elif o in ('-c', '--contrast'): try: set_contrast = True contrast = float(a.strip()) except ValueError: log.error("Invalid contrast value. Using default of 0.") contrast = 0 elif o in ('--sharpness'): try: set_sharpness = True #contrast = int(a.strip()) sharpness = float(a.strip()) #print sharpness except ValueError: log.error("Invalid sharpness value. Using default of 0.") sharpness = 0 elif o in ('--color_value'): try: set_color_value = True #contrast = int(a.strip()) color_value = float(a.strip()) #print color_value except ValueError: log.error("Invalid color_value. Using default of 0.") color_value = 0 elif o == '--adf': adf = True if uiscan == False: output_type = 'pdf' elif o in ('--dup', '--duplex'): duplex = True adf = True if uiscan == False: output_type = 'pdf' elif o == '--blankpage': try: blank_page = True except ValueError: log.error("Invalid Option.Using default of False") blank_page = False elif o == '--multipick': try: multipick = True #scanext.setMultipick(multipick) except ValueError: log.error("Invalid Option.Using default of False") multipick = False elif o == '--autocrop': try: auto_crop = True except ValueError: log.error("Invalid Option.Using default of False") auto_crop = False elif o == '--deskew': try: deskew_image = True except ValueError: log.error("Invalid Option.Using default of False") deskew_image = False elif o == '--autoorient': #print o try: auto_orient = True except ValueError: log.error("Invalid Option.Using default of False") auto_orient = False elif o == '--crushed': #print o try: crushed = True except ValueError: log.error("Invalid Option.Using default of False") crushed = False elif o == '--bg_color_removal': #print o try: bg_color_removal = True except ValueError: log.error("Invalid Option.Using default of False") bg_color_removal = False elif o == '--punchhole_removal': #print o try: punchhole_removal = True except ValueError: log.error("Invalid Option.Using default of False") punchhole_removal = False elif o == '--mixedfeed': try: mixed_feed = True except ValueError: log.error("Invalid Option.Using default of False") mixed_feed = False elif o == '--backside': try: back_side = True duplex = True except ValueError: log.error("Invalid Option.Using default of False") back_side = False elif o == '--docmerge': try: document_merge = True except ValueError: log.error("Invalid Option.Using default of False") document_merge = False elif o == '--adf_fladbed_merge': try: merge_ADF_Flatbed = True except ValueError: log.error("Invalid Option.Using default of False") merge_ADF_Flatbed = False elif o == '--batchsepBC': try: batchsepBC = True except ValueError: log.error("Invalid Option.Using default of False") batchsepBC = False elif o == '--batchsepBP': try: batchsepBP = True except ValueError: log.error("Invalid Option.Using default of False") batchsepBP = False elif o == '--uiscan': try: uiscan = True except ValueError: log.error("Invalid Option.Using default of False") uiscan = False if not dest: if uiscan == False: log.warn("No destinations specified. Adding 'file' destination by default.") dest.append('file') if 'email' in dest and (not email_from or not email_to): log.error("Email specified, but email to and/or email from address(es) were not specified.") log.error("Disabling 'email' destination.") dest.remove("email") if page_size: units = 'mm' if units == 'in': if tlx is not None: tlx = tlx * 25.4 if tly is not None: tly = tly * 25.4 if brx is not None: brx = brx * 25.4 if bry is not None: bry = bry * 25.4 elif units == 'cm': if tlx is not None: tlx = tlx * 10.0 if tly is not None: tly = tly * 10.0 if brx is not None: brx = brx * 10.0 if bry is not None: bry = bry * 10.0 elif units == 'pt': if tlx is not None: tlx = tlx * 0.3528 if tly is not None: tly = tly * 0.3528 if brx is not None: brx = brx * 0.3528 if bry is not None: bry = bry * 0.3528 elif units == 'px': log.warn("Units set to pixels. Using resolution of %ddpi for area calculations." % res) if tlx is not None: tlx = tlx / res * 25.4 if tly is not None: tly = tly / res * 25.4 if brx is not None: brx = brx / res * 25.4 if bry is not None: bry = bry / res * 25.4 if tlx is not None and brx is not None and tlx >= brx: log.error("Invalid values for tlx (%d) and brx (%d) (tlx>=brx). Using defaults." % (tlx, brx)) tlx = brx = None if tly is not None and bry is not None and tly >= bry: log.error("Invalid values for tly (%d) and bry (%d) (tly>=bry). Using defaults." % (tly, bry)) tly = bry = None if not prop.scan_build: log.error("Scanning disabled in build. Exiting") sys.exit(1) if mode == GUI_MODE: log.error("GUI mode is not implemented yet. Refer to 'hp-scan -h' for help.") sys.exit(1) else: # INTERACTIVE_MODE from base.sixext.moves import queue try: import subprocess except ImportError: # Pre-2.4 Python from base import subproc as subprocess try: from PIL import Image except ImportError: log.error("%s requires the Python Imaging Library (PIL). Exiting." % __mod__) if PY3: # Workaround due to incomplete Python3 support in Linux distros. log.notice(log.bold("Manually install the PIL package. More information is available at http://hplipopensource.com/node/369")) sys.exit(1) sane.init() # Commenting redundant getDevices() call since device list are already fetched in the beginning #devices = sane.getDevices() # Make sure SANE backend sees the device... #for d, mfg, mdl, t in devices: # if d == device_uri: # break #else: # log.error("Unable to locate device %s using SANE backend hpaio:. Please check HPLIP installation." % device_uri) # sys.exit(1) if uiscan == False: log.info(log.bold("Using device %s" % device_uri)) log.info("Opening connection to device...") try: device = sane.openDevice(device_uri) except scanext.error as e: if multipick and e.args[0] == SANE_STATUS_MULTIPICK: log.error(multipick_error_message) sys.exit(2) if e.args[0] == SANE_STATUS_JAMMED: log.error(multipick_error_message) sys.exit(7) sane.reportError(e.args[0]) sys.exit(1) try: source_option = device.getOptionObj("source").constraint log.debug("Supported source Options: %s size=%d" % (source_option,len(source_option))) if source_option is None: log.error("Device doesn't have scanner.") sys.exit(1) except: log.error("Failed to get the source from device.") sys.exit(1) #check if device has only ADF if len(source_option) == 1 and 'ADF' in source_option: log.debug("Device has only ADF support") adf = True elif len(source_option) == 3 and ('ADF-SinglePage' in source_option) and ('ADF-MultiPage-Simplex' in source_option) and ('ADF-MultiPage-Duplex' in source_option): log.debug("Device has only ADF support") adf = True elif len(source_option) == 2 and ('ADF' in source_option) and ('Duplex' in source_option): log.debug("Device has only ADF support") adf = True if adf: try: if ('ADF' not in source_option) and ('ADF-SinglePage' not in source_option) and ('ADF-MultiPage-Simplex' not in source_option) and ('ADF-MultiPage-Duplex' not in source_option) and ('ADF Simplex' not in source_option) and ('ADF Duplex' not in source_option): log.error("Failed to set ADF mode. This device doesn't support ADF.") sys.exit(1) else: if duplex == True: if 'Duplex' in source_option: device.setOption("source", "Duplex") elif 'ADF-MultiPage-Duplex' in source_option: device.setOption("source", "ADF-MultiPage-Duplex") elif 'ADF Duplex' in source_option: device.setOption("source", "ADF Duplex") else: log.warn("Device doesn't support Duplex scanning. Continuing with Simplex ADF scan.") if 'ADF-SinglePage' in source_option: device.setOption("source", "ADF-SinglePage") elif 'ADF-MultiPage-Simplex' in source_option: device.setOption("source", "ADF-MultiPage-Simplex") else: device.setOption("source", "ADF") else: if 'ADF-SinglePage' in source_option: device.setOption("source", "ADF-SinglePage") elif 'ADF-MultiPage-Simplex' in source_option: device.setOption("source", "ADF-MultiPage-Simplex") elif 'ADF Simplex' in source_option: device.setOption("source", "ADF Simplex") else: device.setOption("source", "ADF") device.setOption("batch-scan", True) except scanext.error: log.error("Error in setting ADF mode Duplex=%d." % duplex) sys.exit(1) else: try: device.setOption("source", "Flatbed") device.setOption("batch-scan", False) except scanext.error: log.debug("Error setting source or batch-scan option (this is probably OK).") if multipick and (not re.search(r'_2000_s2', device_uri)) : MPICK = 1 device.setOption("multi-pick", int(MPICK)) else: MPICK = 0 device.setOption("multi-pick", int(MPICK)) tlx = device.getOptionObj('tl-x').limitAndSet(tlx) tly = device.getOptionObj('tl-y').limitAndSet(tly) brx = device.getOptionObj('br-x').limitAndSet(brx) bry = device.getOptionObj('br-y').limitAndSet(bry) scan_area = (brx - tlx) * (bry - tly) # mm^2 valid_res = device.getOptionObj('resolution').constraint log.debug("Device supported resolutions %s" % (valid_res,)) if 0 in valid_res: #min-max range in tuple if res < valid_res[0] or res > valid_res[1]: log.warn("Invalid resolution. Using closest valid resolution of %d dpi" % res) if res < valid_res[0]: res = valid_res[0] elif res > valid_res[1]: res = valid_res[1] else: if res not in valid_res: log.warn("Invalid resolution. Using closest valid resolution of %d dpi" % res) log.warn("Valid resolutions are %s dpi." % ', '.join([str(x) for x in valid_res])) res = valid_res[0] min_dist = sys.maxsize for x in valid_res: if abs(r-x) < min_dist: min_dist = abs(r-x) res = x res = device.getOptionObj('resolution').limitAndSet(res) scan_px = scan_area * res * res / 645.16 # res is in DPI if scan_mode == 'color': scan_size = scan_px * 3 # 3 bytes/px elif scan_mode == 'gray': scan_size = scan_px # 1 byte/px else: # lineart scan_size = scan_px // 8 if scan_size > 52428800: # 50MB if res > 600: log.warn("Using resolutions greater than 600 dpi will cause very large files to be created.") else: log.warn("The scan current parameters will cause very large files to be created.") log.warn("This can cause the scan to take a long time to complete and may cause your system to slow down.") log.warn("Approx. number of bytes to read from scanner: %s" % utils.format_bytes(scan_size, True)) device.setOption('compression', scanner_compression) if uiscan == False and set_contrast: contrast = int(contrast) try: valid_contrast = device.getOptionObj('contrast').constraint if contrast >= int(valid_contrast[0]) and contrast <= int(valid_contrast[1]): contrast = device.getOptionObj('contrast').limitAndSet(contrast) else: log.warn("Invalid contrast. Contrast range is (%d, %d). Using closest valid contrast of %d " % (int(valid_contrast[0]), int(valid_contrast[1]), contrast)) if contrast < int(valid_contrast[0]): contrast = int(valid_contrast[0]) elif contrast > int(valid_contrast[1]): contrast = int(valid_contrast[1]) device.setOption('contrast', contrast) except: log.warn("Unable to set contrast for this device. Using default of 0.") contrast = 0 if uiscan == False and set_brightness: brightness = int(brightness) #print device try: valid_brightness = device.getOptionObj('brightness').constraint if brightness >= int(valid_brightness[0]) and brightness <= int(valid_brightness[1]): brightness = device.getOptionObj('brightness').limitAndSet(brightness) else: log.warn("Invalid brightness. Brightness range is (%d, %d). Using closest valid brightness of %d " % (int(valid_brightness[0]), int(valid_brightness[1]), brightness)) if brightness < int(valid_brightness[0]): brightness = int(valid_brightness[0]) elif brightness > int(valid_brightness[1]): brightness = int(valid_brightness[1]) device.setOption('brightness', brightness) except: log.warn("Unable to set brightness for this device. Using default of 0.") brightness = 0 if brx - tlx <= 0.0 or bry - tly <= 0.0: log.error("Invalid scan area (width or height is negative).") sys.exit(1) if uiscan == False: log.info("") log.info("Resolution: %ddpi" % res) log.info("Mode: %s" % scan_mode) log.info("Compression: %s" % scanner_compression) if(set_contrast): if uiscan == False: log.info("Contrast: %d" % contrast) if(set_brightness): if uiscan == False: log.info("Brightness: %d" % brightness) if units == 'mm': if uiscan == False: log.info("Scan area (mm):") log.info(" Top left (x,y): (%fmm, %fmm)" % (tlx, tly)) log.info(" Bottom right (x,y): (%fmm, %fmm)" % (brx, bry)) log.info(" Width: %fmm" % (brx - tlx)) log.info(" Height: %fmm" % (bry - tly)) if page_size: units = page_units # for display purposes only if uiscan == False: log.info("Page size: %s" % size_desc) if units != 'mm': if uiscan == False: log.note("This scan area below in '%s' units may not be exact due to rounding errors." % units) if units == 'in': if uiscan == False: log.info("Scan area (in):") log.info(" Top left (x,y): (%fin, %fin)" % (tlx/25.4, tly/25.4)) log.info(" Bottom right (x,y): (%fin, %fin)" % (brx/25.4, bry/25.4)) log.info(" Width: %fin" % ((brx - tlx)/25.4)) log.info(" Height: %fin" % ((bry - tly)/25.4)) elif units == 'cm': if uiscan == False: log.info("Scan area (cm):") log.info(" Top left (x,y): (%fcm, %fcm)" % (tlx/10.0, tly/10.0)) log.info(" Bottom right (x,y): (%fcm, %fcm)" % (brx/10.0, bry/10.0)) log.info(" Width: %fcm" % ((brx - tlx)/10.0)) log.info(" Height: %fcm" % ((bry - tly)/10.0)) elif units == 'px': if uiscan == False: log.info("Scan area (px @ %ddpi):" % res) log.info(" Top left (x,y): (%fpx, %fpx)" % (tlx*res/25.4, tly*res/25.4)) log.info(" Bottom right (x,y): (%fpx, %fpx)" % (brx*res/25.4, bry*res/25.4)) log.info(" Width: %fpx" % ((brx - tlx)*res/25.4)) log.info(" Height: %fpx" % ((bry - tly)*res/25.4)) elif units == 'pt': if uiscan == False: log.info("Scan area (pt):") log.info(" Top left (x,y): (%fpt, %fpt)" % (tlx/0.3528, tly/0.3528)) log.info(" Bottom right (x,y): (%fpt, %fpt)" % (brx/0.3528, bry/0.3528)) log.info(" Width: %fpt" % ((brx - tlx)/0.3528)) log.info(" Height: %fpt" % ((bry - tly)/0.3528)) if uiscan == False: log.info("Destination(s): %s" % ', '.join(dest)) if 'file' in dest: if uiscan == False: log.info("Output file: %s" % output) update_queue = queue.Queue() event_queue = queue.Queue() available_scan_mode = device.getOptionObj("mode").constraint available_scan_mode = [x.lower() for x in available_scan_mode] log.debug("Supported modes: %s size=%d" % (available_scan_mode,len(available_scan_mode))) if scan_mode.lower() not in available_scan_mode: log.warn("Device doesn't support %s mode. Continuing with %s mode."%(scan_mode,available_scan_mode[0])) scan_mode = available_scan_mode[0] if re.search(r'hp2000S1', device_uri) or re.search(r'hpgt2500', device_uri): if scan_mode == 'gray': device.setOption("mode", 'Gray') elif scan_mode == 'color': device.setOption("mode", 'Color') elif scan_mode == 'lineart': device.setOption("mode", 'Lineart') else: device.setOption("mode", scan_mode) #For some devices, resolution is changed when we set 'source'. #Hence we need to set resolution here, after setting the 'source' device.setOption("resolution", res) if uiscan == False: if 'file' in dest and not output: if uiscan == False: log.warn("File destination enabled with no output file specified.") if adf: if uiscan == False: log.info("Setting output format to PDF for ADF mode.") '''if merge_ADF_Flatbed == True: output = utils.createSequencedFilename("hpscanMerge", ext,output_path) else:''' output = utils.createSequencedFilename("hpscan", ".pdf") output_type = 'pdf' else: if scan_mode == 'gray': if uiscan == False: log.info("Setting output format to PNG for greyscale mode.") output = utils.createSequencedFilename("hpscan", ".png") output_type = 'png' else: if uiscan == False: log.info("Setting output format to JPEG for color/lineart mode.") output = utils.createSequencedFilename("hpscan", ".jpg") output_type = 'jpeg' if uiscan == False: log.warn("Defaulting to '%s'." % output) #print (output_type) else: try: output_type = os.path.splitext(output)[1].lower()[1:] if output_type == 'jpg': output_type = 'jpeg' except IndexError: output_type = '' if output_type and output_type not in ('jpeg', 'png', 'pdf'): log.error("Invalid output file format. File formats must be 'jpeg', 'png' or 'pdf'.") sys.exit(1) if adf and output_type and output_type != 'pdf': log.error("ADF scans must be saved in PDF file format.") sys.exit(1) log.info("\nWarming up...") no_docs = False page = 1 backpage_count = 1 barcode_index=0 blankpage_index=0 adf_page_files = [] blank_cnt=0 page_list=[] cleanup_spinner() log.info("") try: #start=datetime.now() while True: if adf: if uiscan == False: log.info("\nPage %d: Scanning..." % page) else: if uiscan == False: log.info("\nScanning...") bytes_read = 0 try: try: ok, expected_bytes, status = device.startScan("RGBA", update_queue, event_queue) # Note: On some scanners (Marvell) expected_bytes will be < 0 (if lines == -1) log.debug("expected_bytes = %d" % expected_bytes) except scanext.error as e: if adf and e.args[0] == SANE_STATUS_MULTIPICK and multipick: log.error(multipick_error_message) sys.exit(2) if adf and (e.args[0] == SANE_STATUS_JAMMED) : log.error(multipick_error_message) sys.exit(7) sane.reportError(e.args[0]) sys.exit(1) except KeyboardInterrupt: log.error("Aborted.") device.cancelScan() sys.exit(1) if adf and status == scanext.SANE_STATUS_NO_DOCS: if page-1 == 0: if uiscan == False: log.error("No document(s). Please load documents and try again.") sys.exit(3) else: if uiscan == False: log.info("Out of documents. Scanned %d pages total." % (page-1)) no_docs = True break if adf and status == SANE_STATUS_MULTIPICK: if multipick: log.error(multipick_error_message) sys.exit(2) if adf and status == SANE_STATUS_JAMMED: log.error(multipick_error_message) sys.exit(7) if expected_bytes > 0: if adf: if uiscan == False: log.debug("Expecting to read %s from scanner (per page)." % utils.format_bytes(expected_bytes)) else: if uiscan == False: log.debug("Expecting to read %s from scanner." % utils.format_bytes(expected_bytes)) device.waitForScanActive() if uiscan == False: pm = tui.ProgressMeter("Reading data:") while device.isScanActive(): while update_queue.qsize(): try: status, bytes_read = update_queue.get(0) if not log.is_debug(): if expected_bytes > 0: if uiscan == False: pm.update(int(100*bytes_read/expected_bytes), utils.format_bytes(bytes_read)) else: if uiscan == False: pm.update(0, utils.format_bytes(bytes_read)) if status != scanext.SANE_STATUS_GOOD: if (status == SANE_STATUS_MULTIPICK and multipick) or (status == SANE_STATUS_JAMMED): log.error("ADF_MPD multipick or Jam error %d" % (status)) log.error("Error in reading data. Status=%d " % (status)) #sys.exit(2) #device.cancelScan() #Added by wipro #sys.exit(1) except queue.Empty: break time.sleep(0.5) except KeyboardInterrupt: log.error("Aborted.") device.cancelScan() sys.exit(1) # Make sure queue is cleared out... while update_queue.qsize(): status, bytes_read = update_queue.get(0) if not log.is_debug(): if expected_bytes > 0: if uiscan == False: pm.update(int(100*bytes_read/expected_bytes), utils.format_bytes(bytes_read)) else: if uiscan == False: pm.update(0, utils.format_bytes(bytes_read)) # For Marvell devices, making scan progress bar to 100% if bytes_read and bytes_read != expected_bytes: if uiscan == False: pm.update(int(100),utils.format_bytes(bytes_read)) log.info("") if bytes_read: if uiscan == False: log.info("Read %s from scanner." % utils.format_bytes(bytes_read)) buffer, format, format_name, pixels_per_line, \ lines, depth, bytes_per_line, pad_bytes, total_read, total_write = device.getScan() if uiscan == False: log.debug("PPL=%d lines=%d depth=%d BPL=%d pad=%d total_read=%d total_write=%d" % (pixels_per_line, lines, depth, bytes_per_line, pad_bytes, total_read, total_write)) #For Marvell devices, expected bytes is not same as total_read if lines == -1 or total_read != expected_bytes: lines = int(total_read / bytes_per_line) if scan_mode in ('color', 'gray'): try: im = Image.frombuffer('RGBA', (pixels_per_line, lines), buffer.read(), 'raw', 'RGBA', 0, 1) except ValueError: log.error("Did not read enough data from scanner (I/O Error?)") sys.exit(1) elif scan_mode == 'lineart': try: pixels_per_line = bytes_per_line * 8 # Calculation of pixels_per_line for Lineart must be 8 time of bytes_per_line lineart_mode = True # Otherwise, scanned image will be corrupted (slanted) im = Image.frombuffer('RGBA', (pixels_per_line, lines), buffer.read(), 'raw', 'RGBA', 0, 1).convert('L') except ValueError: log.error("Did not read enough data from scanner (I/O Error?)") sys.exit(1) if uiscan == True and back_side and backpage_count%2 != 0: pass else: #if blank_page: isBlankPage = imageprocessing.blankpage(im,lineart_mode) if document_merge and duplex and blank_page: if isBlankPage: if blank_cnt == 0: if page%2 != 0: blank_cnt += 1 page_list.append(page) else: if page-1 in page_list: blank_cnt += 1 else: if page%2 != 0: blank_cnt = 1 page_list[:] page_list.append(page) if blank_page and isBlankPage: if adf: if batchsepBP: blankpage_found=1 blankpage_count=blankpage_count+1 blankpage_index=blankpage_index+1 if page == 1: blankpage_first_page = True if not (document_merge and duplex): page += 1 continue else: sys.exit(0) elif isBlankPage: if adf and batchsepBP: blankpage_found=1 blankpage_count=blankpage_count+1 blankpage_index=blankpage_index+1 if page == 1: blankpage_first_page = True #if crushed: #im = imageprocessing.crushed(im) if deskew_image and (isBlankPage == False): if adf: im = imageprocessing.deskew(im) else: #im = imageprocessing.autocrop(im) im = imageprocessing.deskew(im) #if mixed_feed: #im = imageprocessing.mixedfeed(im) if auto_crop and (isBlankPage == False): im = imageprocessing.autocrop(im) if auto_orient: if not isBlankPage: orient = imageprocessing.orientangle(im) orient_list.append(orient) im = imageprocessing.autoorient(im, orient) else: orient_list.append(0) if uiscan == True and set_brightness: factor = brightness/100 #print factor im = imageprocessing.adjust_brightness(im, factor) if uiscan == True and set_contrast: factor = contrast/100 #print factor im = imageprocessing.adjust_contrast(im, factor) if set_sharpness: factor = sharpness/100 #print factor im = imageprocessing.adjust_sharpness(im, factor) if set_color_value: factor = color_value/100 #print factor im = imageprocessing.adjust_color(im, factor) pyPlatform = platform.python_version() num = pyPlatform.split('.') if batchsepBC and num[0] < '3': import zbar scanner = zbar.ImageScanner() scanner.parse_config('enable') log.debug("Here in barcode detection") bar_image = im.convert('L') width, height = bar_image.size raw_bar = bar_image.tobytes() my_stream = zbar.Image(width, height, 'Y800', raw_bar) scanner.scan(my_stream) #if barcode and batchsep: for symbol in my_stream: #print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data if symbol.data!='': barcode_found=1 barcode_data.append(symbol.data) barcode_count=barcode_count+1 barcode_index=barcode_index+1 if page == 1: barcode_first_page = True break; else: barcode_found=0 if punchhole_removal: im = imageprocessing.punchhole_removal(im) if set_color_dropout: im = imageprocessing.color_dropout(im,[color_dropout_red,color_dropout_green,color_dropout_blue],color_range_value) if bg_color_removal: im = imageprocessing.bg_color_removal(im) if crushed: im = imageprocessing.crushed(im) if uiscan == True: if adf: if (save_file == 'pdf'): if (not (document_merge and duplex and save_file == 'pdf')) or (imageprocessing.check_pypdf2() == None): #ext = ".png" im = im.convert("RGB") if barcode_count>0: if barcode_first_occurence == True: if barcode_first_page == False: createPagesFile(adf_page_files,'hpscan', ext) barcode_first_occurence = False else: createPagesFile(adf_page_files,barcode_data[len(barcode_data)-2], ext) barcode_count=barcode_count-1 del adf_page_files[:] if blankpage_count>0: if blankpage_first_occurence == True: if blankpage_first_page == False: createPagesFile(adf_page_files,'hpscan', ext) blankpage_first_occurence = False else: createPagesFile(adf_page_files,"batchSep_00%d"%bp_no, ext) blankpage_count=blankpage_count-1 bp_no += 1 del adf_page_files[:] '''if (save_file == 'pdf'): #ext = ".png" im = im.convert("RGB")''' if merge_ADF_Flatbed == True and save_file == 'pdf': temp_output = utils.createSequencedFilename("hpscanMerge", ext,output_path) else: if (document_merge and duplex and save_file == 'pdf') or (imageprocessing.check_pypdf2() != None): temp_output = utils.createSequencedFilename("hpscan", '.png', output_path) else: temp_output = utils.createSequencedFilename("hpscan",ext, output_path) adf_page_files.append(temp_output) #print "entered flatbed save" '''pyPlatform = platform.python_version() num = pyPlatform.split('.') if num[0] >= '3': im = im.convert("RGB")''' try: im.save(temp_output,compress_level=1,quality=55) except: im = im.convert("RGB") im.save(temp_output,compress_level=1,quality=55) '''if (save_file == 'pdf'): ext = ".pdf"''' if document_merge and duplex and blank_page: if blank_cnt == 2: os.unlink(adf_page_files.pop()) os.unlink(adf_page_files.pop()) blank_cnt = 0 page_list[:] elif uiscan == False: if adf or output_type == 'pdf': temp_output = utils.createSequencedFilename("hpscan_pg%d_" % page, ".png") adf_page_files.append(temp_output) im.save(temp_output,compress_level=1,quality=55) elif uiscan == True and status == scanext.SANE_STATUS_MULTIPICK and multipick: log.error("ADF_MPD multipick error %d" % (status)) log.error("Error in reading data. Status=%d bytes_read=%d." % (status, bytes_read)) sys.exit(2) elif uiscan == True and (status == SANE_STATUS_JAMMED): log.error("ADF_MPD multipick or Jam error %d" % (status)) log.error("Error in reading data. Status=%d bytes_read=%d." % (status, bytes_read)) sys.exit(7) else: log.error("No data read.") sys.exit(1) if not adf or (adf and no_docs): break page += 1 backpage_count += 1 #print "*** Total Time Taken \n" #print datetime.now()-start finally: if uiscan == False: log.info("Closing device.") device.cancelScan() #print "outside while" #if adf or output_type == 'pdf': #print (output_type) if adf and (save_file =='jpg' or save_file == 'png' or save_file == 'tiff' or save_file == 'pdf' or save_file == 'bmp'): #print save_file #start = datetime.now() #print "**** Starting Save File Process\n" if barcode_found == 1: createPagesFile(adf_page_files,barcode_data[len(barcode_data)-1], ext) #print "Saving File process Over\n" #print datetime.now()-start #print "\n#######################\n" #print temp_list if save_file == 'pdf': if len(temp_list): if uiscan == True: log.error("%s" % (temp_list)) sys.exit(5) sys.exit(0) if blankpage_found == 1: createPagesFile(adf_page_files,"batchSep_00%d"%bp_no, ext) #print "Saving File process Over\n" #print datetime.now()-start if save_file == 'pdf': if len(temp_list): if uiscan == True: log.error("%s" % (temp_list)) sys.exit(5) sys.exit(0) if document_merge and duplex : #print "entered docmerge" #print adf_page_files if len(adf_page_files): '''if document_merge and duplex and save_file == 'pdf': output = imageprocessing.documentmerge(adf_page_files,'.png',output_path) else:''' output = imageprocessing.documentmerge(adf_page_files,ext,output_path) if (save_file == 'pdf'): #cmd = "%s %s &" % (pdf_viewer, output) #os_utils.execute(cmd) if uiscan == True: log.error("%s" % (output)) #print "Saving File process Over\n" #print datetime.now()-start sys.exit(4) sys.exit(0) elif (save_file == 'tiff'): if len(adf_page_files) > 1: outputtiff = utils.createSequencedFilename("hpscandoc", ext,output_path) #print outputtiff file_name = '' for p in adf_page_files: file_name = file_name + " " + p cmd = "convert %s %s" %(file_name,outputtiff) status = utils.run(cmd) #print ("***********************") #print (status[0]) #print (status[1]) if status[0] == -1: #print ("entered status -1") log.error("Convert command not found.") sys.exit(6) for p in adf_page_files: #print p os.unlink(p) sys.exit(0) elif (save_file == 'pdf'): '''if not output: if merge_ADF_Flatbed == True: output = utils.createSequencedFilename("hpscanMerge", ext,output_path) else: output = utils.createSequencedFilename("hpscan", ext,output_path)''' if len(adf_page_files) > 0: #print "adf page files greater than 1" if merge_ADF_Flatbed == True: output = utils.createSequencedFilename("hpscanMerge", ext,output_path) else: output = utils.createSequencedFilename("hpscandoc", ext,output_path) try: if mixed_feed: output = imageprocessing.generatePdfFile(adf_page_files,output) else: output = imageprocessing.generatePdfFile_canvas(adf_page_files,output,orient_list,brx,bry,tlx,tly,output_path) except: try: if mixed_feed: output = imageprocessing.generatePdfFile_canvas(adf_page_files,output,orient_list,brx,bry,tlx,tly,output_path) else: output = imageprocessing.generatePdfFile(adf_page_files,output) except ImportError as error: if error.message.split(' ')[-1] == 'PIL': log.error("PDF output requires PIL.") else: log.error("PDF output requires ReportLab.") sys.exit(1) if merge_ADF_Flatbed == False: #cmd = "%s %s &" % (pdf_viewer, output) #os_utils.execute(cmd) #imageprocessing.merge_PDF_viewer(output) if len(adf_page_files): if uiscan == True: if output: log.error("%s" % (output)) elif temp_output: log.error("%s" % (temp_output)) sys.exit(4) #print "Saving File process Over\n" #print datetime.now()-start sys.exit(0) else: sys.exit(0) elif (uiscan == False) and (adf or output_type == 'pdf'): try: from reportlab.pdfgen import canvas except ImportError: log.error("PDF output requires ReportLab.") sys.exit(1) if not output: output = utils.createSequencedFilename("hpscan", ".pdf") c = canvas.Canvas(output, (brx/0.3528, bry/0.3528)) for p in adf_page_files: #log.info("Processing page %s..." % p) image = Image.open(p) try: c.drawInlineImage(image, (tlx/0.3528), (tly/0.3528), ((brx-tlx)/0.3528),((bry-tly)/0.3528)) except NameError: log.error("A problem has occurred with PDF generation. This is a known bug in ReportLab. Please update your install of ReportLab to version 2.0 or greater.") sys.exit(1) except AssertionError as e: log.error(e) if PY3: log.note("You might be running an older version of reportlab. Please update to the latest version") log.note("More information is available at http://hplipopensource.com/node/369") sys.exit(1) except Exception as e: log.error(e) log.note("Try Updating to reportlab version >= 3.2") sys.exit(1) c.showPage() os.unlink(p) log.info("Saving to file %s" % output) c.save() if uiscan == True: log.info("Viewing PDF file in %s" % pdf_viewer) cmd = "%s %s &" % (pdf_viewer, output) os_utils.execute(cmd) sys.exit(0) if resize != 100: if resize < 1 or resize > 400: log.error("Resize parameter is incorrect. Resize must be 0% < resize < 400%.") log.error("Using resize value of 100%.") else: new_w = int(pixels_per_line * resize / 100) new_h = int(lines * resize / 100) if uiscan == False: log.info("Resizing image from %dx%d to %dx%d..." % (pixels_per_line, lines, new_w, new_h)) im = im.resize((new_w, new_h), Image.ANTIALIAS) file_saved = False if 'file' in dest: if (save_file == 'png' or save_file == 'jpg' or save_file == 'tiff' or save_file == 'pdf' or save_file == 'bmp'): if barcode_found == 1: output = utils.createBBSequencedFilename(barcode_data[0]+'_', ext, output_path) else: if (save_file == 'pdf') and (merge_ADF_Flatbed == True): output = utils.createSequencedFilename("hpscanMerge", ext,output_path) else: output = utils.createSequencedFilename("hpscan",ext,output_path) if uiscan == False: log.info("\nOutputting to destination 'file':") try: if uiscan == True: log.info("Saving to file %s" % output) if save_file != 'pdf': '''pyPlatform = platform.python_version() num = pyPlatform.split('.') if num[0] >= '3': im = im.convert("RGB")''' try: im.save(output,compress_level=1,quality=55) except: im = im.convert("RGB") im.save(output,compress_level=1,quality=55) else: try: im.save(output,compress_level=1,quality=55) except: im = im.convert("RGB") im.save(output,compress_level=1,quality=55) '''from reportlab.pdfgen import canvas print "entered canvas" c = canvas.Canvas(output) if auto_orient and (orient == 1 or orient == 3): c.setPageSize(((bry-tly)/0.3528, (brx-tlx)/0.3528)) c.drawInlineImage(im, (tlx/0.3528), (tly/0.3528), ((bry-tly)/0.3528), ((brx-tlx)/0.3528)) else: c.setPageSize(((brx-tlx)/0.3528, (bry-tly)/0.3528)) c.drawInlineImage(im, (tlx/0.3528), (tly/0.3528), ((brx-tlx)/0.3528),((bry-tly)/0.3528)) c.showPage() c.save()''' #For Doc Merge feature, updating Flatbed to use pdfmerger instead of canvas for PDF creation. '''temp = 'temp.png' im.save(temp,compress_level=1) adf_page_files.append(temp) output = imageprocessing.generatePdfFile(adf_page_files,output)''' if uiscan == False: log.info("Viewing PDF file in %s" % pdf_viewer) log.info("Saving to file %s" % output) if merge_ADF_Flatbed == False: #cmd = "%s %s &" % (pdf_viewer, output) #os_utils.execute(cmd) log.error("%s" % (output)) sys.exit(4) #imageprocessing.merge_PDF_viewer(output) elif uiscan == False: im.save(output,compress_level=1,quality=55) except IOError as e: im = im.convert("RGB") try: im.save(output,compress_level=1,quality=55) except IOError as e: log.error("Error saving file: %s (I/O)" % e) try: os.remove(output) except OSError: pass sys.exit(1) except ValueError as e: log.error("Error saving file: %s (PIL)" % e) try: os.remove(output) except OSError: pass sys.exit(1) file_saved = True dest.remove("file") temp_saved = False if ('editor' in dest or 'viewer' in dest or 'email' in dest or 'print' in dest) \ and not file_saved: output_fd, output = utils.make_temp_file(suffix='.png') try: '''pyPlatform = platform.python_version() num = pyPlatform.split('.') if num[0] >= '3': im = im.convert("RGB")''' try: im.save(output,compress_level=1,quality=55) except: im = im.convert("RGB") im.save(output,compress_level=1,quality=55) except IOError as e: log.error("Error saving temporary file: %s" % e) try: os.remove(output) except OSError: pass sys.exit(1) os.close(output_fd) temp_saved = True for d in dest: log.info("\nSending to destination '%s':" % d) if d == 'pdf': try: from reportlab.pdfgen import canvas except ImportError: log.error("PDF output requires ReportLab.") continue if merge_ADF_Flatbed == True: pdf_output = utils.createSequencedFilename("hpscanMerge", ".pdf",output_path) else: pdf_output = utils.createSequencedFilename("hpscan", ".pdf", output_path) c = canvas.Canvas(pdf_output, (brx/0.3528, bry/0.3528)) try: c.drawInlineImage(im, (tlx/0.3528), (tly/0.3528), ((brx-tlx)/0.3528),((bry-tly)/0.3528)) except NameError: log.error("A problem has occurred with PDF generation. This is a known bug in ReportLab. Please update your install of ReportLab to version 2.0 or greater.") continue c.showPage() if uiscan == False: log.info("Saving to file %s" % pdf_output) c.save() if uiscan == False: log.info("Viewing PDF file in %s" % pdf_viewer) #cmd = "%s %s &" % (pdf_viewer, pdf_output) #os_utils.execute(cmd) #sys.exit(0) if uiscan == True: log.error("%s" % (pdf_output)) sys.exit(4) else: sys.exit(0) elif d == 'print': hp_print = utils.which("hp-print", True) if not hp_print: hp_print = 'python ./print.py' if dest_printer is not None: cmd = '%s -p %s %s &' % (hp_print, dest_printer, output) elif dest_devUri is not None: tmp = dest_devUri.partition(":")[2] dest_devUri = "hp:" + tmp cmd = '%s -d %s %s &' % (hp_print, dest_devUri, output) else: cmd = '%s %s &' % (hp_print, output) os_utils.execute(cmd) elif d == 'email': try: from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText except ImportError: try: from email.MIMEImage import MIMEImage from email.MIMEMultipart import MIMEMultipart from email.MIMEText import MIMEText except ImportError: log.error("hp-scan email destination requires Python 2.2+.") continue msg = MIMEMultipart() msg['Subject'] = email_subject msg['From'] = email_from msg['To'] = ','.join(email_to) msg.preamble = 'Scanned using hp-scan' if email_note: txt = MIMEText(email_note) msg.attach(txt) if file_saved: txt = MIMEText("attached: %s: %dx%d %s PNG image." % (os.path.basename(output), pixels_per_line, lines, scan_mode)) else: txt = MIMEText("attached: %dx%d %s PNG image." % (pixels_per_line, lines, scan_mode)) msg.attach(txt) fp = open(output, 'r') img = MIMEImage(fp.read()) fp.close() if file_saved: img.add_header('Content-Disposition', 'attachment', filename=os.path.basename(output)) msg.attach(img) sendmail = utils.which("sendmail") if sendmail: sendmail = os.path.join(sendmail, 'sendmail') cmd = [sendmail,'-t','-r',email_from] log.debug(repr(cmd)) err = None try: sp = subprocess.Popen(cmd, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE) std_out, std_err = sp.communicate(msg.as_string()) if std_err != '': err = std_err except OSError as e: err = str(e) cleanup_spinner() if err: log.error(repr(err)) else: log.error("Mail send failed. 'sendmail' not found.") elif d == 'viewer': if viewer: log.info("Viewing file in %s" % viewer) cmd = "%s %s &" % (viewer, output) os_utils.execute(cmd) else: log.error("Viewer not found.") elif d == 'editor': if editor: log.info("Editing file in %s" % editor) cmd = "%s %s &" % (editor, output) os_utils.execute(cmd) else: log.error("Editor not found.") device.freeScan() device.closeScan() sane.deInit() except KeyboardInterrupt: log.error("User exit") log.info("") log.info("Done.")
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
X11 | Folder | 0755 |
|
|
GET | File | 15.82 KB | 0755 |
|
HEAD | File | 15.82 KB | 0755 |
|
POST | File | 15.82 KB | 0755 |
|
X | File | 274 B | 0755 |
|
Xephyr | File | 2.32 MB | 0755 |
|
Xorg | File | 274 B | 0755 |
|
Xwayland | File | 2.22 MB | 0755 |
|
[ | File | 58.34 KB | 0755 |
|
aa-enabled | File | 30.52 KB | 0755 |
|
aa-exec | File | 34.52 KB | 0755 |
|
ab | File | 58.34 KB | 0755 |
|
aconnect | File | 22.38 KB | 0755 |
|
acpi_listen | File | 18.57 KB | 0755 |
|
add-apt-repository | File | 7.24 KB | 0755 |
|
addpart | File | 30.23 KB | 0755 |
|
alsabat | File | 46.44 KB | 0755 |
|
alsaloop | File | 83.3 KB | 0755 |
|
alsamixer | File | 70.73 KB | 0755 |
|
alsatplg | File | 14.38 KB | 0755 |
|
alsaucm | File | 30.79 KB | 0755 |
|
amidi | File | 30.38 KB | 0755 |
|
amixer | File | 62.45 KB | 0755 |
|
amuFormat.sh | File | 2.61 KB | 0755 |
|
apg | File | 274 B | 0755 |
|
apgbfm | File | 26.07 KB | 0755 |
|
aplay | File | 82.43 KB | 0755 |
|
aplaymidi | File | 26.38 KB | 0755 |
|
apport-bug | File | 2.5 KB | 0755 |
|
apport-cli | File | 13.05 KB | 0755 |
|
apport-collect | File | 2.5 KB | 0755 |
|
apport-unpack | File | 2.02 KB | 0755 |
|
appres | File | 14.3 KB | 0755 |
|
appstreamcli | File | 66.23 KB | 0755 |
|
apropos | File | 55.21 KB | 0755 |
|
apt | File | 18.38 KB | 0755 |
|
apt-add-repository | File | 7.24 KB | 0755 |
|
apt-cache | File | 86.46 KB | 0755 |
|
apt-cdrom | File | 30.46 KB | 0755 |
|
apt-config | File | 26.38 KB | 0755 |
|
apt-extracttemplates | File | 26.47 KB | 0755 |
|
apt-ftparchive | File | 274.47 KB | 0755 |
|
apt-get | File | 46.46 KB | 0755 |
|
apt-key | File | 27.28 KB | 0755 |
|
apt-mark | File | 62.46 KB | 0755 |
|
apt-sortpkgs | File | 46.39 KB | 0755 |
|
aptdcon | File | 1.01 KB | 0755 |
|
apturl | File | 273 B | 0755 |
|
apturl-gtk | File | 1.51 KB | 0755 |
|
arch | File | 38.37 KB | 0755 |
|
arecord | File | 82.43 KB | 0755 |
|
arecordmidi | File | 30.39 KB | 0755 |
|
arm2hpdl | File | 14.31 KB | 0755 |
|
aseqdump | File | 26.38 KB | 0755 |
|
aseqnet | File | 26.43 KB | 0755 |
|
aspell | File | 166.5 KB | 0755 |
|
aspell-import | File | 2 KB | 0755 |
|
atobm | File | 14.3 KB | 0755 |
|
avahi-browse | File | 30.24 KB | 0755 |
|
avahi-browse-domains | File | 30.24 KB | 0755 |
|
avahi-publish | File | 26.23 KB | 0755 |
|
avahi-publish-address | File | 26.23 KB | 0755 |
|
avahi-publish-service | File | 26.23 KB | 0755 |
|
avahi-resolve | File | 22.23 KB | 0755 |
|
avahi-resolve-address | File | 22.23 KB | 0755 |
|
avahi-resolve-host-name | File | 22.23 KB | 0755 |
|
avahi-set-host-name | File | 14.23 KB | 0755 |
|
awk | File | 158.74 KB | 0755 |
|
axfer | File | 90.38 KB | 0755 |
|
b2sum | File | 58.37 KB | 0755 |
|
baobab | File | 202.44 KB | 0755 |
|
base32 | File | 42.34 KB | 0755 |
|
base64 | File | 42.34 KB | 0755 |
|
basename | File | 38.34 KB | 0755 |
|
bash | File | 1.13 MB | 0755 |
|
bashbug | File | 6.63 KB | 0755 |
|
bc | File | 98.7 KB | 0755 |
|
bccmd | File | 192.46 KB | 0755 |
|
bdftopcf | File | 42.12 KB | 0755 |
|
bdftruncate | File | 9.99 KB | 0755 |
|
bitmap | File | 106.39 KB | 0755 |
|
bluemoon | File | 82.23 KB | 0755 |
|
bluetooth-sendto | File | 34.4 KB | 0755 |
|
bluetoothctl | File | 246.71 KB | 0755 |
|
bmtoa | File | 14.32 KB | 0755 |
|
boltctl | File | 150.82 KB | 0755 |
|
bootctl | File | 62.34 KB | 0755 |
|
brltty | File | 799.61 KB | 0755 |
|
brltty-ctb | File | 242.72 KB | 0755 |
|
brltty-trtxt | File | 182.59 KB | 0755 |
|
brltty-ttb | File | 214.78 KB | 0755 |
|
broadwayd | File | 118.38 KB | 0755 |
|
browse | File | 25.02 KB | 0755 |
|
bsd-from | File | 14.15 KB | 0755 |
|
bsd-write | File | 14.15 KB | 2755 |
|
btattach | File | 74.23 KB | 0755 |
|
btmgmt | File | 299.95 KB | 0755 |
|
btmon | File | 796.15 KB | 0755 |
|
bunzip2 | File | 38.23 KB | 0755 |
|
busctl | File | 86.34 KB | 0755 |
|
busybox | File | 2.07 MB | 0755 |
|
bwrap | File | 66.44 KB | 0755 |
|
bzcat | File | 38.23 KB | 0755 |
|
bzcmp | File | 2.17 KB | 0755 |
|
bzdiff | File | 2.17 KB | 0755 |
|
bzegrep | File | 3.69 KB | 0755 |
|
bzexe | File | 4.76 KB | 0755 |
|
bzfgrep | File | 3.69 KB | 0755 |
|
bzgrep | File | 3.69 KB | 0755 |
|
bzip2 | File | 38.23 KB | 0755 |
|
bzip2recover | File | 18.15 KB | 0755 |
|
bzless | File | 1.27 KB | 0755 |
|
bzmore | File | 1.27 KB | 0755 |
|
c_rehash | File | 6.65 KB | 0755 |
|
cal | File | 36.95 KB | 0755 |
|
calendar | File | 34.63 KB | 0755 |
|
calibrate_ppa | File | 27.04 KB | 0755 |
|
canberra-gtk-play | File | 18.07 KB | 0755 |
|
cancel | File | 14.3 KB | 0755 |
|
captoinfo | File | 90.41 KB | 0755 |
|
cat | File | 42.4 KB | 0755 |
|
catchsegv | File | 3.25 KB | 0755 |
|
catman | File | 38.69 KB | 0755 |
|
cautious-launcher | File | 853 B | 0755 |
|
cd-create-profile | File | 26.3 KB | 0755 |
|
cd-fix-profile | File | 26.3 KB | 0755 |
|
cd-iccdump | File | 14.3 KB | 0755 |
|
cd-it8 | File | 22.3 KB | 0755 |
|
certbot | File | 385 B | 0755 |
|
chacl | File | 18.15 KB | 0755 |
|
chage | File | 82.53 KB | 2755 |
|
chardet3 | File | 389 B | 0755 |
|
chardetect3 | File | 389 B | 0755 |
|
chattr | File | 14.31 KB | 0755 |
|
chcon | File | 70.34 KB | 0755 |
|
check-language-support | File | 2.71 KB | 0755 |
|
checkgid | File | 14.15 KB | 0755 |
|
cheese | File | 266.38 KB | 0755 |
|
chfn | File | 83.07 KB | 4755 |
|
chgrp | File | 70.34 KB | 0755 |
|
chmod | File | 62.37 KB | 0755 |
|
choom | File | 50.23 KB | 0755 |
|
chown | File | 70.34 KB | 0755 |
|
chrt | File | 38.23 KB | 0755 |
|
chsh | File | 51.8 KB | 4755 |
|
chvt | File | 14.07 KB | 0755 |
|
ciptool | File | 145.74 KB | 0755 |
|
ckbcomp | File | 146.39 KB | 0755 |
|
cksum | File | 38.34 KB | 0755 |
|
clear | File | 14.31 KB | 0755 |
|
clear_console | File | 14.23 KB | 0755 |
|
cmp | File | 50.09 KB | 0755 |
|
codepage | File | 13.99 KB | 0755 |
|
col | File | 18.15 KB | 0755 |
|
colcrt | File | 14.15 KB | 0755 |
|
colormgr | File | 58.3 KB | 0755 |
|
colrm | File | 14.15 KB | 0755 |
|
column | File | 14.16 KB | 0755 |
|
comm | File | 42.37 KB | 0755 |
|
compose | File | 18.05 KB | 0755 |
|
corelist | File | 14.73 KB | 0755 |
|
cp | File | 150.37 KB | 0755 |
|
cpan | File | 7.96 KB | 0755 |
|
cpan5.30-x86_64-linux-gnu | File | 7.98 KB | 0755 |
|
cpio | File | 161.63 KB | 0755 |
|
cpp | File | 1.1 MB | 0755 |
|
cpp-9 | File | 1.1 MB | 0755 |
|
crontab | File | 42.7 KB | 2755 |
|
csplit | File | 54.37 KB | 0755 |
|
ctstat | File | 30.51 KB | 0755 |
|
cupstestppd | File | 62.38 KB | 0755 |
|
cut | File | 46.37 KB | 0755 |
|
cvt | File | 18.31 KB | 0755 |
|
cvtsudoers | File | 266.7 KB | 0755 |
|
dash | File | 126.77 KB | 0755 |
|
date | File | 106.37 KB | 0755 |
|
dbus-cleanup-sockets | File | 14.14 KB | 0755 |
|
dbus-daemon | File | 243.2 KB | 0755 |
|
dbus-launch | File | 34.14 KB | 0755 |
|
dbus-monitor | File | 30.14 KB | 0755 |
|
dbus-run-session | File | 14.14 KB | 0755 |
|
dbus-send | File | 30.14 KB | 0755 |
|
dbus-update-activation-environment | File | 14.14 KB | 0755 |
|
dbus-uuidgen | File | 14.14 KB | 0755 |
|
dbxtool | File | 26.3 KB | 0755 |
|
dc | File | 54.09 KB | 0755 |
|
dconf | File | 54.23 KB | 0755 |
|
dd | File | 78.38 KB | 0755 |
|
ddstdecode | File | 18.31 KB | 0755 |
|
deallocvt | File | 14.07 KB | 0755 |
|
deb-systemd-helper | File | 20.83 KB | 0755 |
|
deb-systemd-invoke | File | 4.33 KB | 0755 |
|
debconf | File | 2.79 KB | 0755 |
|
debconf-apt-progress | File | 11.27 KB | 0755 |
|
debconf-communicate | File | 608 B | 0755 |
|
debconf-copydb | File | 1.68 KB | 0755 |
|
debconf-escape | File | 647 B | 0755 |
|
debconf-set-selections | File | 2.87 KB | 0755 |
|
debconf-show | File | 1.78 KB | 0755 |
|
debian-distro-info | File | 22.89 KB | 0755 |
|
deja-dup | File | 222.51 KB | 0755 |
|
delpart | File | 30.23 KB | 0755 |
|
delv | File | 48.88 KB | 0755 |
|
desktop-file-edit | File | 96.18 KB | 0755 |
|
desktop-file-install | File | 96.18 KB | 0755 |
|
desktop-file-validate | File | 80.41 KB | 0755 |
|
devdump | File | 179.27 KB | 0755 |
|
df | File | 90.95 KB | 0755 |
|
dfu-tool | File | 106.3 KB | 0755 |
|
dh_bash-completion | File | 2.39 KB | 0755 |
|
dh_installxmlcatalogs | File | 9.22 KB | 0755 |
|
dh_perl_openssl | File | 1.36 KB | 0755 |
|
diff | File | 214.34 KB | 0755 |
|
diff3 | File | 66.21 KB | 0755 |
|
dig | File | 146.84 KB | 0755 |
|
dir | File | 138.81 KB | 0755 |
|
dircolors | File | 46.34 KB | 0755 |
|
dirmngr | File | 569.86 KB | 0755 |
|
dirmngr-client | File | 119.06 KB | 0755 |
|
dirname | File | 38.34 KB | 0755 |
|
dirsplit | File | 16.74 KB | 0755 |
|
distro-info | File | 22.89 KB | 0755 |
|
dmesg | File | 82.46 KB | 0755 |
|
dnsdomainname | File | 26.23 KB | 0755 |
|
do-release-upgrade | File | 9.99 KB | 0755 |
|
domainname | File | 26.23 KB | 0755 |
|
dpkg | File | 302.68 KB | 0755 |
|
dpkg-deb | File | 174.54 KB | 0755 |
|
dpkg-divert | File | 150.59 KB | 0755 |
|
dpkg-maintscript-helper | File | 20.03 KB | 0755 |
|
dpkg-query | File | 162.59 KB | 0755 |
|
dpkg-split | File | 122.48 KB | 0755 |
|
dpkg-statoverride | File | 62.27 KB | 0755 |
|
dpkg-trigger | File | 82.49 KB | 0755 |
|
driverless | File | 22.32 KB | 0755 |
|
du | File | 106.37 KB | 0755 |
|
dumpkeys | File | 174.52 KB | 0755 |
|
duplicity | File | 5.23 KB | 0755 |
|
dvipdf | File | 1007 B | 0755 |
|
echo | File | 38.34 KB | 0755 |
|
ed | File | 54.2 KB | 0755 |
|
edit | File | 18.05 KB | 0755 |
|
editor | File | 312.63 KB | 0755 |
|
editres | File | 72.7 KB | 0755 |
|
egrep | File | 28 B | 0755 |
|
eject | File | 34.84 KB | 0755 |
|
enc2xs | File | 41.12 KB | 0755 |
|
encguess | File | 2.99 KB | 0755 |
|
enchant-2 | File | 22.38 KB | 0755 |
|
enchant-lsmod-2 | File | 14.3 KB | 0755 |
|
env | File | 42.34 KB | 0755 |
|
envsubst | File | 42.23 KB | 0755 |
|
eog | File | 18.37 KB | 0755 |
|
eps2eps | File | 639 B | 0755 |
|
eqn | File | 201.5 KB | 0755 |
|
esc-m | File | 14.01 KB | 0755 |
|
eutp | File | 26.16 KB | 0755 |
|
evince | File | 471.66 KB | 0755 |
|
evince-previewer | File | 54.52 KB | 0755 |
|
evince-thumbnailer | File | 18.38 KB | 0755 |
|
ex | File | 2.78 MB | 0755 |
|
expand | File | 42.37 KB | 0755 |
|
expiry | File | 30.58 KB | 2755 |
|
expr | File | 54.34 KB | 0755 |
|
factor | File | 78.37 KB | 0755 |
|
faillog | File | 22.59 KB | 0755 |
|
fallocate | File | 34.23 KB | 0755 |
|
false | File | 38.34 KB | 0755 |
|
fc-cache | File | 22.23 KB | 0755 |
|
fc-cat | File | 18.23 KB | 0755 |
|
fc-conflist | File | 14.23 KB | 0755 |
|
fc-list | File | 14.23 KB | 0755 |
|
fc-match | File | 14.23 KB | 0755 |
|
fc-pattern | File | 14.23 KB | 0755 |
|
fc-query | File | 14.23 KB | 0755 |
|
fc-scan | File | 14.23 KB | 0755 |
|
fc-validate | File | 14.23 KB | 0755 |
|
fcgistarter | File | 14.15 KB | 0755 |
|
fgconsole | File | 14.07 KB | 0755 |
|
fgrep | File | 28 B | 0755 |
|
file | File | 26.47 KB | 0755 |
|
file-roller | File | 534.11 KB | 0755 |
|
file2brl | File | 26.23 KB | 0755 |
|
fincore | File | 34.27 KB | 0755 |
|
find | File | 312.66 KB | 0755 |
|
findmnt | File | 71.41 KB | 0755 |
|
firefox | File | 2.6 KB | 0755 |
|
flock | File | 34.3 KB | 0755 |
|
fmt | File | 46.34 KB | 0755 |
|
fold | File | 42.34 KB | 0755 |
|
fonttosfnt | File | 34.02 KB | 0755 |
|
foo2ddst | File | 31.23 KB | 0755 |
|
foo2ddst-wrapper | File | 16.86 KB | 0755 |
|
foo2hbpl2 | File | 36.26 KB | 0755 |
|
foo2hbpl2-wrapper | File | 17.91 KB | 0755 |
|
foo2hiperc | File | 43.23 KB | 0755 |
|
foo2hiperc-wrapper | File | 18.11 KB | 0755 |
|
foo2hp | File | 39.48 KB | 0755 |
|
foo2hp2600-wrapper | File | 18.75 KB | 0755 |
|
foo2lava | File | 44.24 KB | 0755 |
|
foo2lava-wrapper | File | 19.61 KB | 0755 |
|
foo2oak | File | 39.41 KB | 0755 |
|
foo2oak-wrapper | File | 17.45 KB | 0755 |
|
foo2qpdl | File | 43.26 KB | 0755 |
|
foo2qpdl-wrapper | File | 19.06 KB | 0755 |
|
foo2slx | File | 31.23 KB | 0755 |
|
foo2slx-wrapper | File | 17.19 KB | 0755 |
|
foo2xqx | File | 35.23 KB | 0755 |
|
foo2xqx-wrapper | File | 17.16 KB | 0755 |
|
foo2zjs | File | 44.23 KB | 0755 |
|
foo2zjs-icc2ps | File | 26.16 KB | 0755 |
|
foo2zjs-pstops | File | 2.93 KB | 0755 |
|
foo2zjs-wrapper | File | 25.34 KB | 0755 |
|
foomatic-rip | File | 115.42 KB | 0755 |
|
fprintd-delete | File | 78.38 KB | 0755 |
|
fprintd-enroll | File | 86.86 KB | 0755 |
|
fprintd-list | File | 78.38 KB | 0755 |
|
fprintd-verify | File | 78.38 KB | 0755 |
|
free | File | 26.23 KB | 0755 |
|
from | File | 14.15 KB | 0755 |
|
ftp | File | 106.7 KB | 0755 |
|
funzip | File | 26.15 KB | 0755 |
|
fuser | File | 39.24 KB | 0755 |
|
fusermount | File | 38.23 KB | 4755 |
|
futurize | File | 384 B | 0755 |
|
fwupdagent | File | 190.3 KB | 0755 |
|
fwupdate | File | 82.3 KB | 0755 |
|
fwupdmgr | File | 190.3 KB | 0755 |
|
fwupdtool | File | 386.92 KB | 0755 |
|
gamemoded | File | 162.49 KB | 0755 |
|
gamemoderun | File | 366 B | 0755 |
|
gamma4scanimage | File | 14.15 KB | 0755 |
|
gapplication | File | 22.38 KB | 0755 |
|
gatttool | File | 278.88 KB | 0755 |
|
gcalccmd | File | 246.39 KB | 0755 |
|
gcore | File | 3.4 KB | 0755 |
|
gcr-viewer | File | 18.37 KB | 0755 |
|
gdb | File | 8.05 MB | 0755 |
|
gdb-add-index | File | 3.95 KB | 0755 |
|
gdbserver | File | 509.55 KB | 0755 |
|
gdbtui | File | 126 B | 0755 |
|
gdbus | File | 50.38 KB | 0755 |
|
gdialog | File | 9.01 KB | 0755 |
|
gdk-pixbuf-csource | File | 14.33 KB | 0755 |
|
gdk-pixbuf-pixdata | File | 14.31 KB | 0755 |
|
gdk-pixbuf-thumbnailer | File | 18.39 KB | 0755 |
|
gdm-screenshot | File | 18.41 KB | 0755 |
|
gdmflexiserver | File | 30.78 KB | 0755 |
|
gedit | File | 14.3 KB | 0755 |
|
genisoimage | File | 641.9 KB | 0755 |
|
geqn | File | 201.5 KB | 0755 |
|
getconf | File | 34.29 KB | 0755 |
|
geteltorito | File | 6.06 KB | 0755 |
|
getent | File | 38.65 KB | 0755 |
|
getfacl | File | 30.77 KB | 0755 |
|
getkeycodes | File | 14.07 KB | 0755 |
|
getopt | File | 22.23 KB | 0755 |
|
gettext | File | 42.23 KB | 0755 |
|
gettext.sh | File | 4.52 KB | 0755 |
|
ghostscript | File | 14.15 KB | 0755 |
|
ginstall-info | File | 115.24 KB | 0755 |
|
gio | File | 90.4 KB | 0755 |
|
gio-querymodules | File | 14.3 KB | 0755 |
|
gipddecode | File | 18.31 KB | 0755 |
|
gjs | File | 22.59 KB | 0755 |
|
gjs-console | File | 22.59 KB | 0755 |
|
gkbd-keyboard-display | File | 14.15 KB | 0755 |
|
glib-compile-schemas | File | 50.38 KB | 0755 |
|
gnome-calculator | File | 774.84 KB | 0755 |
|
gnome-calendar | File | 579.4 KB | 0755 |
|
gnome-characters | File | 301 B | 0755 |
|
gnome-control-center | File | 5.16 MB | 0755 |
|
gnome-disk-image-mounter | File | 54.38 KB | 0755 |
|
gnome-disks | File | 743.47 KB | 0755 |
|
gnome-extensions | File | 50.45 KB | 0755 |
|
gnome-font-viewer | File | 94.57 KB | 0755 |
|
gnome-help | File | 62.23 KB | 0755 |
|
gnome-keyring | File | 22.37 KB | 0755 |
|
gnome-keyring-3 | File | 22.37 KB | 0755 |
|
gnome-keyring-daemon | File | 1.11 MB | 0755 |
|
gnome-language-selector | File | 1.41 KB | 0755 |
|
gnome-logs | File | 186.88 KB | 0755 |
|
gnome-power-statistics | File | 70.28 KB | 0755 |
|
gnome-screenshot | File | 94.74 KB | 0755 |
|
gnome-session | File | 806 B | 0755 |
|
gnome-session-custom-session | File | 54 B | 0755 |
|
gnome-session-inhibit | File | 14.31 KB | 0755 |
|
gnome-session-properties | File | 78.34 KB | 0755 |
|
gnome-session-quit | File | 14.61 KB | 0755 |
|
gnome-shell | File | 22.63 KB | 0755 |
|
gnome-shell-extension-tool | File | 1.67 KB | 0755 |
|
gnome-shell-perf-tool | File | 10.21 KB | 0755 |
|
gnome-system-monitor | File | 334.35 KB | 0755 |
|
gnome-terminal | File | 3.32 KB | 0755 |
|
gnome-terminal.real | File | 111.15 KB | 0755 |
|
gnome-terminal.wrapper | File | 2.36 KB | 0755 |
|
gnome-text-editor | File | 14.3 KB | 0755 |
|
gnome-thumbnail-font | File | 26.16 KB | 0755 |
|
gnome-todo | File | 398.84 KB | 0755 |
|
gnome-www-browser | File | 2.6 KB | 0755 |
|
gpasswd | File | 86.39 KB | 4755 |
|
gpg | File | 1.02 MB | 0755 |
|
gpg-agent | File | 409.04 KB | 0755 |
|
gpg-connect-agent | File | 163.16 KB | 0755 |
|
gpg-wks-server | File | 203.2 KB | 0755 |
|
gpg-zip | File | 3.43 KB | 0755 |
|
gpgcompose | File | 874.29 KB | 0755 |
|
gpgconf | File | 174.66 KB | 0755 |
|
gpgparsemail | File | 34.38 KB | 0755 |
|
gpgsm | File | 507.24 KB | 0755 |
|
gpgsplit | File | 86.76 KB | 0755 |
|
gpgtar | File | 151.63 KB | 0755 |
|
gpgv | File | 447.15 KB | 0755 |
|
gpic | File | 216.34 KB | 0755 |
|
gpu-manager | File | 74.82 KB | 0755 |
|
grep | File | 194.47 KB | 0755 |
|
gresource | File | 22.3 KB | 0755 |
|
groff | File | 121.53 KB | 0755 |
|
grog | File | 2.71 KB | 0755 |
|
grops | File | 181.94 KB | 0755 |
|
grotty | File | 129.56 KB | 0755 |
|
groups | File | 38.34 KB | 0755 |
|
grub-editenv | File | 248.02 KB | 0755 |
|
grub-file | File | 780.38 KB | 0755 |
|
grub-fstest | File | 901.84 KB | 0755 |
|
grub-glue-efi | File | 243.86 KB | 0755 |
|
grub-kbdcomp | File | 1.64 KB | 0755 |
|
grub-menulst2cfg | File | 228.13 KB | 0755 |
|
grub-mkfont | File | 268.42 KB | 0755 |
|
grub-mkimage | File | 348.95 KB | 0755 |
|
grub-mklayout | File | 252.17 KB | 0755 |
|
grub-mknetdir | File | 401.56 KB | 0755 |
|
grub-mkpasswd-pbkdf2 | File | 248.2 KB | 0755 |
|
grub-mkrelpath | File | 239.58 KB | 0755 |
|
grub-mkrescue | File | 954.3 KB | 0755 |
|
grub-mkstandalone | File | 477.86 KB | 0755 |
|
grub-mount | File | 728.8 KB | 0755 |
|
grub-ntldr-img | File | 38.24 KB | 0755 |
|
grub-render-label | File | 800.75 KB | 0755 |
|
grub-script-check | File | 271.7 KB | 0755 |
|
grub-syslinux2cfg | File | 741.27 KB | 0755 |
|
gs | File | 14.15 KB | 0755 |
|
gsbj | File | 350 B | 0755 |
|
gsdj | File | 352 B | 0755 |
|
gsdj500 | File | 352 B | 0755 |
|
gsettings | File | 30.38 KB | 0755 |
|
gslj | File | 353 B | 0755 |
|
gslp | File | 350 B | 0755 |
|
gsnd | File | 277 B | 0755 |
|
gst-device-monitor-1.0 | File | 22.23 KB | 0755 |
|
gst-discoverer-1.0 | File | 30.15 KB | 0755 |
|
gst-inspect-1.0 | File | 62.23 KB | 0755 |
|
gst-launch-1.0 | File | 38.15 KB | 0755 |
|
gst-play-1.0 | File | 50.23 KB | 0755 |
|
gst-typefind-1.0 | File | 18.15 KB | 0755 |
|
gstreamer-codec-install | File | 22.15 KB | 0755 |
|
gtbl | File | 138.51 KB | 0755 |
|
gtf | File | 18.31 KB | 0755 |
|
gtk-builder-tool | File | 34.73 KB | 0755 |
|
gtk-encode-symbolic-svg | File | 18.41 KB | 0755 |
|
gtk-launch | File | 18.46 KB | 0755 |
|
gtk-query-settings | File | 14.3 KB | 0755 |
|
gtk-update-icon-cache | File | 38.63 KB | 0755 |
|
gunzip | File | 2.29 KB | 0755 |
|
gvfs-cat | File | 273 B | 0755 |
|
gvfs-copy | File | 275 B | 0755 |
|
gvfs-info | File | 275 B | 0755 |
|
gvfs-less | File | 884 B | 0755 |
|
gvfs-ls | File | 275 B | 0755 |
|
gvfs-mime | File | 275 B | 0755 |
|
gvfs-mkdir | File | 277 B | 0755 |
|
gvfs-monitor-dir | File | 281 B | 0755 |
|
gvfs-monitor-file | File | 281 B | 0755 |
|
gvfs-mount | File | 277 B | 0755 |
|
gvfs-move | File | 275 B | 0755 |
|
gvfs-open | File | 275 B | 0755 |
|
gvfs-rename | File | 279 B | 0755 |
|
gvfs-rm | File | 279 B | 0755 |
|
gvfs-save | File | 275 B | 0755 |
|
gvfs-set-attribute | File | 273 B | 0755 |
|
gvfs-trash | File | 277 B | 0755 |
|
gvfs-tree | File | 275 B | 0755 |
|
gzexe | File | 6.3 KB | 0755 |
|
gzip | File | 95.21 KB | 0755 |
|
h2ph | File | 28.54 KB | 0755 |
|
h2xs | File | 59.44 KB | 0755 |
|
hbpldecode | File | 26.31 KB | 0755 |
|
hciattach | File | 138.15 KB | 0755 |
|
hciconfig | File | 196.18 KB | 0755 |
|
hcitool | File | 147.71 KB | 0755 |
|
hd | File | 34.25 KB | 0755 |
|
head | File | 46.37 KB | 0755 |
|
helpztags | File | 2.46 KB | 0755 |
|
hex2hcd | File | 18.23 KB | 0755 |
|
hexdump | File | 34.25 KB | 0755 |
|
hipercdecode | File | 18.31 KB | 0755 |
|
host | File | 118.78 KB | 0755 |
|
hostid | File | 38.34 KB | 0755 |
|
hostname | File | 26.23 KB | 0755 |
|
hostnamectl | File | 26.22 KB | 0755 |
|
hp-align | File | 9.14 KB | 0755 |
|
hp-check | File | 39.17 KB | 0755 |
|
hp-clean | File | 7.05 KB | 0755 |
|
hp-colorcal | File | 9.08 KB | 0755 |
|
hp-config_usb_printer | File | 6.98 KB | 0755 |
|
hp-doctor | File | 12.69 KB | 0755 |
|
hp-firmware | File | 6.47 KB | 0755 |
|
hp-info | File | 6.26 KB | 0755 |
|
hp-levels | File | 6.85 KB | 0755 |
|
hp-logcapture | File | 12.15 KB | 0755 |
|
hp-makeuri | File | 5.6 KB | 0755 |
|
hp-pkservice | File | 3.13 KB | 0755 |
|
hp-plugin | File | 13.62 KB | 0755 |
|
hp-plugin-ubuntu | File | 719 B | 0755 |
|
hp-probe | File | 7.98 KB | 0755 |
|
hp-query | File | 4.94 KB | 0755 |
|
hp-scan | File | 86.87 KB | 0755 |
|
hp-setup | File | 37.25 KB | 0755 |
|
hp-testpage | File | 5.98 KB | 0755 |
|
hp-timedate | File | 3.31 KB | 0755 |
|
htcacheclean | File | 38.16 KB | 0755 |
|
htdbm | File | 26.15 KB | 0755 |
|
htdigest | File | 14.15 KB | 0755 |
|
htpasswd | File | 26.15 KB | 0755 |
|
hwe-support-status | File | 10.58 KB | 0755 |
|
i386 | File | 26.5 KB | 0755 |
|
i686-linux-gnu-pkg-config | File | 2.18 KB | 0755 |
|
ibd2sdi | File | 6.48 MB | 0755 |
|
ibus | File | 42.37 KB | 0755 |
|
ibus-daemon | File | 194.42 KB | 0755 |
|
ibus-setup | File | 1.15 KB | 0755 |
|
ibus-table-createdb | File | 1.11 KB | 0755 |
|
iceauth | File | 38.12 KB | 0755 |
|
ico | File | 50.44 KB | 0755 |
|
iconv | File | 66.41 KB | 0755 |
|
id | File | 46.37 KB | 0755 |
|
iecset | File | 26.38 KB | 0755 |
|
ijs_pxljr | File | 30.38 KB | 0755 |
|
im-config | File | 10.75 KB | 0755 |
|
im-launch | File | 1.88 KB | 0755 |
|
info | File | 309.74 KB | 0755 |
|
infobrowser | File | 309.74 KB | 0755 |
|
infocmp | File | 62.38 KB | 0755 |
|
infotocap | File | 90.41 KB | 0755 |
|
innochecksum | File | 6.37 MB | 0755 |
|
inputattach | File | 33.68 KB | 0755 |
|
install | File | 154.41 KB | 0755 |
|
install-info | File | 115.24 KB | 0755 |
|
install-printerdriver | File | 95 B | 0755 |
|
instmodsh | File | 4.27 KB | 0755 |
|
intel-virtual-output | File | 70.31 KB | 0755 |
|
ionice | File | 30.23 KB | 0755 |
|
ip | File | 597.62 KB | 0755 |
|
ipcmk | File | 34.3 KB | 0755 |
|
ipcrm | File | 34.23 KB | 0755 |
|
ipcs | File | 66.23 KB | 0755 |
|
ipod-read-sysinfo-extended | File | 22.15 KB | 0755 |
|
ipod-time-sync | File | 14.15 KB | 0755 |
|
ippfind | File | 42.4 KB | 0755 |
|
ipptool | File | 82.3 KB | 0755 |
|
iptables-xml | File | 96.97 KB | 0755 |
|
ischroot | File | 14.2 KB | 0755 |
|
isdv4-serial-debugger | File | 18.17 KB | 0755 |
|
isdv4-serial-inputattach | File | 30.17 KB | 0755 |
|
isodump | File | 183.27 KB | 0755 |
|
isoinfo | File | 342.52 KB | 0755 |
|
isovfy | File | 183.27 KB | 0755 |
|
ispell-wrapper | File | 7.05 KB | 0755 |
|
join | File | 54.37 KB | 0755 |
|
journalctl | File | 78.24 KB | 0755 |
|
jpgicc | File | 34.17 KB | 0755 |
|
json_pp | File | 4.56 KB | 0755 |
|
kbd_mode | File | 14.07 KB | 0755 |
|
kbdinfo | File | 14.07 KB | 0755 |
|
kbxutil | File | 174.97 KB | 0755 |
|
kernel-install | File | 5.07 KB | 0755 |
|
kerneloops-submit | File | 9.99 KB | 0755 |
|
keyring | File | 385 B | 0755 |
|
kill | File | 30.23 KB | 0755 |
|
killall | File | 31.27 KB | 0755 |
|
kmod | File | 170.34 KB | 0755 |
|
kmodsign | File | 22.29 KB | 0755 |
|
l2ping | File | 100.01 KB | 0755 |
|
l2test | File | 112.26 KB | 0755 |
|
laptop-detect | File | 3.73 KB | 0755 |
|
last | File | 50.23 KB | 0755 |
|
lastb | File | 50.23 KB | 0755 |
|
lastlog | File | 31.66 KB | 0755 |
|
lavadecode | File | 22.31 KB | 0755 |
|
lcf | File | 7.6 KB | 0755 |
|
ldd | File | 5.3 KB | 0755 |
|
less | File | 175.84 KB | 0755 |
|
lessecho | File | 14.31 KB | 0755 |
|
lessfile | File | 8.36 KB | 0755 |
|
lesskey | File | 23.72 KB | 0755 |
|
lesspipe | File | 8.36 KB | 0755 |
|
letsencrypt | File | 385 B | 0755 |
|
lexgrog | File | 98.95 KB | 0755 |
|
libnetcfg | File | 15.41 KB | 0755 |
|
libreoffice | File | 6.58 KB | 0755 |
|
libwacom-list-local-devices | File | 14.26 KB | 0755 |
|
link | File | 38.34 KB | 0755 |
|
linkicc | File | 26.21 KB | 0755 |
|
linux-boot-prober | File | 1.54 KB | 0755 |
|
linux-check-removal | File | 3.99 KB | 0755 |
|
linux-update-symlinks | File | 6.17 KB | 0755 |
|
linux-version | File | 2.63 KB | 0755 |
|
linux32 | File | 26.5 KB | 0755 |
|
linux64 | File | 26.5 KB | 0755 |
|
listres | File | 14.73 KB | 0755 |
|
ln | File | 74.38 KB | 0755 |
|
lnstat | File | 30.51 KB | 0755 |
|
loadkeys | File | 210.57 KB | 0755 |
|
loadunimap | File | 34.13 KB | 0755 |
|
localc | File | 59 B | 0755 |
|
locale | File | 57.56 KB | 0755 |
|
locale-check | File | 14.16 KB | 0755 |
|
localectl | File | 26.22 KB | 0755 |
|
localedef | File | 326.96 KB | 0755 |
|
lodraw | File | 59 B | 0755 |
|
loffice | File | 53 B | 0755 |
|
lofromtemplate | File | 64 B | 0755 |
|
logger | File | 50.82 KB | 0755 |
|
login | File | 55.77 KB | 0755 |
|
loginctl | File | 58.34 KB | 0755 |
|
logname | File | 38.34 KB | 0755 |
|
logresolve | File | 14.16 KB | 0755 |
|
loimpress | File | 62 B | 0755 |
|
lomath | File | 59 B | 0755 |
|
look | File | 14.38 KB | 0755 |
|
lorder | File | 2.82 KB | 0755 |
|
loweb | File | 58 B | 0755 |
|
lowntfs-3g | File | 118.86 KB | 0755 |
|
lowriter | File | 61 B | 0755 |
|
lp | File | 22.3 KB | 0755 |
|
lp_solve | File | 49.99 KB | 0755 |
|
lpoptions | File | 22.38 KB | 0755 |
|
lpq | File | 22.38 KB | 0755 |
|
lpr | File | 18.3 KB | 0755 |
|
lprm | File | 14.3 KB | 0755 |
|
lpstat | File | 38.59 KB | 0755 |
|
ls | File | 138.81 KB | 0755 |
|
lsattr | File | 14.31 KB | 0755 |
|
lsb_release | File | 3.55 KB | 0755 |
|
lsblk | File | 130.23 KB | 0755 |
|
lscpu | File | 98.23 KB | 0755 |
|
lshw | File | 841.2 KB | 0755 |
|
lsinitramfs | File | 706 B | 0755 |
|
lsipc | File | 94.23 KB | 0755 |
|
lslocks | File | 38.55 KB | 0755 |
|
lslogins | File | 66.23 KB | 0755 |
|
lsmem | File | 66.23 KB | 0755 |
|
lsmod | File | 170.34 KB | 0755 |
|
lsns | File | 50.23 KB | 0755 |
|
lsof | File | 171.63 KB | 0755 |
|
lspci | File | 91.95 KB | 0755 |
|
lspgpot | File | 1.06 KB | 0755 |
|
lsusb | File | 242.51 KB | 0755 |
|
ltrace | File | 301.33 KB | 0755 |
|
luit | File | 52.42 KB | 0755 |
|
lwp-download | File | 10.05 KB | 0755 |
|
lwp-dump | File | 2.65 KB | 0755 |
|
lwp-mirror | File | 2.36 KB | 0755 |
|
lwp-request | File | 15.82 KB | 0755 |
|
lz | File | 2.48 KB | 0755 |
|
lz4 | File | 186.23 KB | 0755 |
|
lz4c | File | 186.23 KB | 0755 |
|
lz4cat | File | 186.23 KB | 0755 |
|
lzcat | File | 78.5 KB | 0755 |
|
lzcmp | File | 6.48 KB | 0755 |
|
lzdiff | File | 6.48 KB | 0755 |
|
lzegrep | File | 5.76 KB | 0755 |
|
lzfgrep | File | 5.76 KB | 0755 |
|
lzgrep | File | 5.76 KB | 0755 |
|
lzless | File | 1.76 KB | 0755 |
|
lzma | File | 78.5 KB | 0755 |
|
lzmainfo | File | 14.23 KB | 0755 |
|
lzmore | File | 2.11 KB | 0755 |
|
m2300w | File | 28.86 KB | 0755 |
|
m2300w-wrapper | File | 14.24 KB | 0755 |
|
m2400w | File | 32.86 KB | 0755 |
|
mako-render | File | 383 B | 0755 |
|
man | File | 116.83 KB | 0755 |
|
man-recode | File | 26.9 KB | 0755 |
|
mandb | File | 139.09 KB | 0755 |
|
manpath | File | 38.7 KB | 0755 |
|
mapscrn | File | 26.13 KB | 0755 |
|
mattrib | File | 196.75 KB | 0755 |
|
mawk | File | 158.74 KB | 0755 |
|
mbadblocks | File | 196.75 KB | 0755 |
|
mcat | File | 196.75 KB | 0755 |
|
mcd | File | 196.75 KB | 0755 |
|
mcheck | File | 1.64 KB | 0755 |
|
mclasserase | File | 196.75 KB | 0755 |
|
mcomp | File | 847 B | 0755 |
|
mcookie | File | 34.3 KB | 0755 |
|
mcopy | File | 196.75 KB | 0755 |
|
md5sum | File | 46.37 KB | 0755 |
|
md5sum.textutils | File | 46.37 KB | 0755 |
|
mdel | File | 196.75 KB | 0755 |
|
mdeltree | File | 196.75 KB | 0755 |
|
mdig | File | 50.4 KB | 0755 |
|
mdir | File | 196.75 KB | 0755 |
|
mdu | File | 196.75 KB | 0755 |
|
mesa-overlay-control.py | File | 5.67 KB | 0755 |
|
mesg | File | 14.23 KB | 0755 |
|
mformat | File | 196.75 KB | 0755 |
|
migrate-pubring-from-classic-gpg | File | 2.99 KB | 0755 |
|
mimeopen | File | 8.42 KB | 0755 |
|
mimetype | File | 11.78 KB | 0755 |
|
min12xxw | File | 27.3 KB | 0755 |
|
minfo | File | 196.75 KB | 0755 |
|
mk_modmap | File | 15.78 KB | 0755 |
|
mkdir | File | 86.34 KB | 0755 |
|
mkfifo | File | 66.34 KB | 0755 |
|
mkfontdir | File | 65 B | 0755 |
|
mkfontscale | File | 38.52 KB | 0755 |
|
mkisofs | File | 641.9 KB | 0755 |
|
mkmanifest | File | 14.4 KB | 0755 |
|
mknod | File | 70.34 KB | 0755 |
|
mksquashfs | File | 205.96 KB | 0755 |
|
mktemp | File | 46.34 KB | 0755 |
|
mkzftree | File | 30.29 KB | 0755 |
|
mlabel | File | 196.75 KB | 0755 |
|
mmcli | File | 257.27 KB | 0755 |
|
mmd | File | 196.75 KB | 0755 |
|
mmount | File | 196.75 KB | 0755 |
|
mmove | File | 196.75 KB | 0755 |
|
monitor-sensor | File | 14.15 KB | 0755 |
|
more | File | 42.15 KB | 0755 |
|
mount | File | 54.23 KB | 4755 |
|
mountpoint | File | 14.23 KB | 0755 |
|
mousetweaks | File | 70.23 KB | 0755 |
|
mpartition | File | 196.75 KB | 0755 |
|
mrd | File | 196.75 KB | 0755 |
|
mren | File | 196.75 KB | 0755 |
|
mscompress | File | 14.31 KB | 0755 |
|
msexpand | File | 14.31 KB | 0755 |
|
mshortname | File | 196.75 KB | 0755 |
|
mshowfat | File | 196.75 KB | 0755 |
|
mt | File | 86.78 KB | 0755 |
|
mt-gnu | File | 86.78 KB | 0755 |
|
mtools | File | 196.75 KB | 0755 |
|
mtoolstest | File | 196.75 KB | 0755 |
|
mtr | File | 80.25 KB | 0755 |
|
mtr-packet | File | 38.38 KB | 0755 |
|
mtype | File | 196.75 KB | 0755 |
|
mutter | File | 196.32 KB | 0755 |
|
mv | File | 146.38 KB | 0755 |
|
mxtar | File | 784 B | 0755 |
|
my_print_defaults | File | 6.29 MB | 0755 |
|
myisam_ftdump | File | 6.58 MB | 0755 |
|
myisamchk | File | 6.69 MB | 0755 |
|
myisamlog | File | 6.53 MB | 0755 |
|
myisampack | File | 6.6 MB | 0755 |
|
mysql | File | 7.33 MB | 0755 |
|
mysql_config_editor | File | 6.31 MB | 0755 |
|
mysql_migrate_keyring | File | 7.24 MB | 0755 |
|
mysql_secure_installation | File | 7.16 MB | 0755 |
|
mysql_ssl_rsa_setup | File | 6.33 MB | 0755 |
|
mysql_tzinfo_to_sql | File | 6.23 MB | 0755 |
|
mysql_upgrade | File | 7.26 MB | 0755 |
|
mysqladmin | File | 7.17 MB | 0755 |
|
mysqlanalyze | File | 7.18 MB | 0755 |
|
mysqlbinlog | File | 7.62 MB | 0755 |
|
mysqlcheck | File | 7.18 MB | 0755 |
|
mysqld_multi | File | 26.73 KB | 0755 |
|
mysqld_safe | File | 28.45 KB | 0755 |
|
mysqldump | File | 7.25 MB | 0755 |
|
mysqldumpslow | File | 7.54 KB | 0755 |
|
mysqlimport | File | 7.17 MB | 0755 |
|
mysqloptimize | File | 7.18 MB | 0755 |
|
mysqlpump | File | 7.6 MB | 0755 |
|
mysqlrepair | File | 7.18 MB | 0755 |
|
mysqlreport | File | 38.1 KB | 0755 |
|
mysqlshow | File | 7.17 MB | 0755 |
|
mysqlslap | File | 7.18 MB | 0755 |
|
mzip | File | 196.75 KB | 0755 |
|
namei | File | 34.23 KB | 0755 |
|
nano | File | 312.63 KB | 0755 |
|
nautilus | File | 1.69 MB | 0755 |
|
nautilus-autorun-software | File | 26.3 KB | 0755 |
|
nautilus-sendto | File | 22.23 KB | 0755 |
|
nawk | File | 158.74 KB | 0755 |
|
nc | File | 42.64 KB | 0755 |
|
nc.openbsd | File | 42.64 KB | 0755 |
|
ncal | File | 36.95 KB | 0755 |
|
neqn | File | 913 B | 0755 |
|
netcat | File | 42.64 KB | 0755 |
|
netkit-ftp | File | 106.7 KB | 0755 |
|
netstat | File | 154.58 KB | 0755 |
|
networkctl | File | 74.23 KB | 0755 |
|
networkd-dispatcher | File | 19.71 KB | 0755 |
|
newgrp | File | 43.73 KB | 4755 |
|
ngettext | File | 42.23 KB | 0755 |
|
nice | File | 42.34 KB | 0755 |
|
nisdomainname | File | 26.23 KB | 0755 |
|
nl | File | 42.43 KB | 0755 |
|
nm-applet | File | 335.95 KB | 0755 |
|
nm-connection-editor | File | 1002.99 KB | 0755 |
|
nm-online | File | 22.3 KB | 0755 |
|
nmcli | File | 839.34 KB | 0755 |
|
nmtui | File | 667.38 KB | 0755 |
|
nmtui-connect | File | 667.38 KB | 0755 |
|
nmtui-edit | File | 667.38 KB | 0755 |
|
nmtui-hostname | File | 667.38 KB | 0755 |
|
nohup | File | 42.34 KB | 0755 |
|
notify-send | File | 18.23 KB | 0755 |
|
nproc | File | 42.34 KB | 0755 |
|
nroff | File | 3.22 KB | 0755 |
|
nsenter | File | 34.43 KB | 0755 |
|
nslookup | File | 122.81 KB | 0755 |
|
nstat | File | 78.23 KB | 0755 |
|
nsupdate | File | 78.63 KB | 0755 |
|
ntfs-3g | File | 158.89 KB | 0755 |
|
ntfs-3g.probe | File | 14.23 KB | 0755 |
|
ntfscat | File | 34.26 KB | 0755 |
|
ntfscluster | File | 38.26 KB | 0755 |
|
ntfscmp | File | 38.26 KB | 0755 |
|
ntfsdecrypt | File | 50.27 KB | 0755 |
|
ntfsfallocate | File | 38.27 KB | 0755 |
|
ntfsfix | File | 46.27 KB | 0755 |
|
ntfsinfo | File | 58.27 KB | 0755 |
|
ntfsls | File | 35.34 KB | 0755 |
|
ntfsmove | File | 38.26 KB | 0755 |
|
ntfsrecover | File | 118.26 KB | 0755 |
|
ntfssecaudit | File | 94.75 KB | 0755 |
|
ntfstruncate | File | 42.19 KB | 0755 |
|
ntfsusermap | File | 38.18 KB | 0755 |
|
ntfswipe | File | 54.79 KB | 0755 |
|
numfmt | File | 66.4 KB | 0755 |
|
nvidia-detector | File | 270 B | 0755 |
|
oakdecode | File | 18.33 KB | 0755 |
|
obexctl | File | 166.3 KB | 0755 |
|
oclock | File | 27.72 KB | 0755 |
|
od | File | 70.37 KB | 0755 |
|
oem-getlogs | File | 8.37 KB | 0755 |
|
on_ac_power | File | 2.18 KB | 0755 |
|
openssl | File | 735.68 KB | 0755 |
|
openvt | File | 22.43 KB | 0755 |
|
opldecode | File | 18.31 KB | 0755 |
|
orca | File | 8.52 KB | 0755 |
|
orca-dm-wrapper | File | 70 B | 0755 |
|
os-prober | File | 4.44 KB | 0755 |
|
p11-kit | File | 34.39 KB | 0755 |
|
pa-info | File | 1.99 KB | 0755 |
|
pacat | File | 50.41 KB | 0755 |
|
pacmd | File | 18.38 KB | 0755 |
|
pactl | File | 66.4 KB | 0755 |
|
padsp | File | 2.21 KB | 0755 |
|
pager | File | 175.84 KB | 0755 |
|
pamon | File | 50.41 KB | 0755 |
|
paperconf | File | 13.99 KB | 0755 |
|
paplay | File | 50.41 KB | 0755 |
|
parec | File | 50.41 KB | 0755 |
|
parecord | File | 50.41 KB | 0755 |
|
partx | File | 118.23 KB | 0755 |
|
passwd | File | 66.61 KB | 4755 |
|
paste | File | 42.37 KB | 0755 |
|
pasteurize | File | 388 B | 0755 |
|
pasuspender | File | 22.39 KB | 0755 |
|
patch | File | 190.52 KB | 0755 |
|
pathchk | File | 38.34 KB | 0755 |
|
pax11publish | File | 14.3 KB | 0755 |
|
pbr | File | 152 B | 0755 |
|
pdb3 | File | 61.27 KB | 0755 |
|
pdb3.8 | File | 61.27 KB | 0755 |
|
pdf2dsc | File | 698 B | 0755 |
|
pdf2ps | File | 909 B | 0755 |
|
pdfattach | File | 22.44 KB | 0755 |
|
pdfdetach | File | 22.91 KB | 0755 |
|
pdffonts | File | 22.34 KB | 0755 |
|
pdfimages | File | 58.34 KB | 0755 |
|
pdfinfo | File | 58.34 KB | 0755 |
|
pdfseparate | File | 22.23 KB | 0755 |
|
pdfsig | File | 26.23 KB | 0755 |
|
pdftocairo | File | 162.26 KB | 0755 |
|
pdftohtml | File | 122.25 KB | 0755 |
|
pdftoppm | File | 34.26 KB | 0755 |
|
pdftops | File | 30.35 KB | 0755 |
|
pdftotext | File | 46.35 KB | 0755 |
|
pdfunite | File | 30.23 KB | 0755 |
|
peekfd | File | 14.15 KB | 0755 |
|
perl | File | 3.32 MB | 0755 |
|
perl5.30-x86_64-linux-gnu | File | 14.3 KB | 0755 |
|
perl5.30.0 | File | 3.32 MB | 0755 |
|
perlbug | File | 45.28 KB | 0755 |
|
perldoc | File | 125 B | 0755 |
|
perli11ndoc | File | 56.56 KB | 0755 |
|
perlivp | File | 10.61 KB | 0755 |
|
perlthanks | File | 45.28 KB | 0755 |
|
perror | File | 7.62 MB | 0755 |
|
pf2afm | File | 498 B | 0755 |
|
pfbtopfa | File | 516 B | 0755 |
|
pftp | File | 106.7 KB | 0755 |
|
pgrep | File | 30.24 KB | 0755 |
|
phar | File | 14.54 KB | 0755 |
|
phar.phar | File | 14.54 KB | 0755 |
|
phar.phar7.4 | File | 14.54 KB | 0755 |
|
phar7.4 | File | 14.54 KB | 0755 |
|
php | File | 4.56 MB | 0755 |
|
php7.4 | File | 4.56 MB | 0755 |
|
pic | File | 216.34 KB | 0755 |
|
pico | File | 312.63 KB | 0755 |
|
piconv | File | 8.16 KB | 0755 |
|
pidof | File | 26.38 KB | 0755 |
|
pinentry | File | 78.64 KB | 0755 |
|
pinentry-curses | File | 66.64 KB | 0755 |
|
pinentry-gnome3 | File | 78.64 KB | 0755 |
|
pinentry-x11 | File | 78.64 KB | 0755 |
|
ping | File | 71.07 KB | 0755 |
|
ping4 | File | 71.07 KB | 0755 |
|
ping6 | File | 71.07 KB | 0755 |
|
pinky | File | 42.37 KB | 0755 |
|
pkaction | File | 18.3 KB | 0755 |
|
pkcheck | File | 22.38 KB | 0755 |
|
pkcon | File | 74.3 KB | 0755 |
|
pkexec | File | 30.3 KB | 4755 |
|
pkg-config | File | 54.25 KB | 0755 |
|
pkill | File | 30.24 KB | 0755 |
|
pkmon | File | 22.3 KB | 0755 |
|
pkttyagent | File | 18.3 KB | 0755 |
|
pl2pm | File | 4.43 KB | 0755 |
|
pldd | File | 22.37 KB | 0755 |
|
plog | File | 146 B | 0755 |
|
plymouth | File | 50.15 KB | 0755 |
|
pmap | File | 34.24 KB | 0755 |
|
pnm2ppa | File | 1.58 MB | 0755 |
|
pod2html | File | 4.04 KB | 0755 |
|
pod2man | File | 14.68 KB | 0755 |
|
pod2text | File | 10.55 KB | 0755 |
|
pod2usage | File | 3.86 KB | 0755 |
|
podchecker | File | 3.57 KB | 0755 |
|
podselect | File | 2.47 KB | 0755 |
|
poff | File | 2.77 KB | 0755 |
|
pon | File | 1.33 KB | 0755 |
|
ppdc | File | 114.53 KB | 0755 |
|
ppdhtml | File | 110.53 KB | 0755 |
|
ppdi | File | 114.53 KB | 0755 |
|
ppdmerge | File | 18.38 KB | 0755 |
|
ppdpo | File | 110.53 KB | 0755 |
|
pphs | File | 404 B | 0755 |
|
pr | File | 74.43 KB | 0755 |
|
precat | File | 5.52 KB | 0755 |
|
preconv | File | 66.51 KB | 0755 |
|
preunzip | File | 5.52 KB | 0755 |
|
prezip | File | 5.52 KB | 0755 |
|
prezip-bin | File | 14.3 KB | 0755 |
|
File | 18.05 KB | 0755 |
|
|
printafm | File | 395 B | 0755 |
|
printenv | File | 38.34 KB | 0755 |
|
printer-profile | File | 5.51 KB | 0755 |
|
printerbanner | File | 22.15 KB | 0755 |
|
printf | File | 58.34 KB | 0755 |
|
prlimit | File | 38.74 KB | 0755 |
|
pro | File | 442 B | 0755 |
|
prove | File | 13.33 KB | 0755 |
|
prtstat | File | 22.23 KB | 0755 |
|
ps | File | 134.46 KB | 0755 |
|
ps2ascii | File | 631 B | 0755 |
|
ps2epsi | File | 2.69 KB | 0755 |
|
ps2pdf | File | 272 B | 0755 |
|
ps2pdf12 | File | 215 B | 0755 |
|
ps2pdf13 | File | 215 B | 0755 |
|
ps2pdf14 | File | 215 B | 0755 |
|
ps2pdfwr | File | 1.05 KB | 0755 |
|
ps2ps | File | 647 B | 0755 |
|
ps2ps2 | File | 669 B | 0755 |
|
ps2txt | File | 631 B | 0755 |
|
psfaddtable | File | 21.99 KB | 0755 |
|
psfgettable | File | 21.99 KB | 0755 |
|
psfstriptable | File | 21.99 KB | 0755 |
|
psfxtable | File | 21.99 KB | 0755 |
|
psicc | File | 26.16 KB | 0755 |
|
pslog | File | 14.15 KB | 0755 |
|
pstree | File | 35.16 KB | 0755 |
|
pstree.x11 | File | 35.16 KB | 0755 |
|
ptar | File | 3.47 KB | 0755 |
|
ptardiff | File | 2.57 KB | 0755 |
|
ptargrep | File | 4.29 KB | 0755 |
|
ptx | File | 78.4 KB | 0755 |
|
pulseaudio | File | 98.47 KB | 0755 |
|
pwd | File | 42.34 KB | 0755 |
|
pwdx | File | 14.23 KB | 0755 |
|
py3clean | File | 7.63 KB | 0755 |
|
py3compile | File | 11.84 KB | 0755 |
|
py3versions | File | 11.44 KB | 0755 |
|
pydoc3 | File | 79 B | 0755 |
|
pydoc3.8 | File | 79 B | 0755 |
|
pygettext3 | File | 21.03 KB | 0755 |
|
pygettext3.8 | File | 21.03 KB | 0755 |
|
pyjwt3 | File | 372 B | 0755 |
|
python3 | File | 5.24 MB | 0755 |
|
python3-futurize | File | 384 B | 0755 |
|
python3-pasteurize | File | 388 B | 0755 |
|
python3-pbr | File | 152 B | 0755 |
|
python3.8 | File | 5.24 MB | 0755 |
|
qpdldecode | File | 22.6 KB | 0755 |
|
quirks-handler | File | 2.4 KB | 0755 |
|
rbash | File | 1.13 MB | 0755 |
|
rcp | File | 114.3 KB | 0755 |
|
rctest | File | 145.6 KB | 0755 |
|
rdiffdir | File | 8.9 KB | 0755 |
|
rdma | File | 130.23 KB | 0755 |
|
readlink | File | 50.34 KB | 0755 |
|
realpath | File | 50.37 KB | 0755 |
|
red | File | 89 B | 0755 |
|
remmina | File | 867.6 KB | 0755 |
|
remmina-file-wrapper | File | 1.29 KB | 0755 |
|
rename.ul | File | 22.23 KB | 0755 |
|
rendercheck | File | 59.95 KB | 0755 |
|
renice | File | 14.23 KB | 0755 |
|
reset | File | 30.31 KB | 0755 |
|
resizecons | File | 22.13 KB | 0755 |
|
resizepart | File | 62.23 KB | 0755 |
|
resolvectl | File | 126.38 KB | 0755 |
|
rev | File | 14.23 KB | 0755 |
|
rfcomm | File | 108.68 KB | 0755 |
|
rgrep | File | 30 B | 0755 |
|
rhythmbox | File | 14.3 KB | 0755 |
|
rhythmbox-client | File | 52.22 KB | 0755 |
|
rlogin | File | 774.95 KB | 0755 |
|
rm | File | 70.37 KB | 0755 |
|
rmdir | File | 46.34 KB | 0755 |
|
rnano | File | 312.63 KB | 0755 |
|
rotatelogs | File | 26.23 KB | 0755 |
|
routef | File | 208 B | 0755 |
|
routel | File | 1.62 KB | 0755 |
|
rrsync | File | 7.07 KB | 0755 |
|
rsh | File | 774.95 KB | 0755 |
|
rstart | File | 2.55 KB | 0755 |
|
rstartd | File | 1.43 KB | 0755 |
|
rsync | File | 500.84 KB | 0755 |
|
rtstat | File | 30.51 KB | 0755 |
|
run-mailcap | File | 18.05 KB | 0755 |
|
run-parts | File | 26.51 KB | 0755 |
|
run-with-aspell | File | 57 B | 0755 |
|
runcon | File | 38.34 KB | 0755 |
|
rview | File | 2.78 MB | 0755 |
|
rvim | File | 2.78 MB | 0755 |
|
rygel | File | 50.38 KB | 0755 |
|
sane-find-scanner | File | 134.85 KB | 0755 |
|
savelog | File | 10.24 KB | 0755 |
|
sbattach | File | 58.48 KB | 0755 |
|
sbkeysync | File | 66.7 KB | 0755 |
|
sbsiglist | File | 58.55 KB | 0755 |
|
sbsign | File | 58.55 KB | 0755 |
|
sbvarsign | File | 66.61 KB | 0755 |
|
sbverify | File | 62.48 KB | 0755 |
|
scanimage | File | 54.96 KB | 0755 |
|
scp | File | 114.3 KB | 0755 |
|
scp-dbus-service | File | 90 B | 0755 |
|
screendump | File | 13.99 KB | 0755 |
|
script | File | 54.23 KB | 0755 |
|
scriptreplay | File | 30.23 KB | 0755 |
|
sdiff | File | 50.09 KB | 0755 |
|
sdptool | File | 209.09 KB | 0755 |
|
seahorse | File | 1.15 MB | 0755 |
|
sed | File | 118.45 KB | 0755 |
|
see | File | 18.05 KB | 0755 |
|
select-default-iwrap | File | 474 B | 0755 |
|
select-editor | File | 2.38 KB | 0755 |
|
sensible-browser | File | 1.2 KB | 0755 |
|
sensible-editor | File | 1.14 KB | 0755 |
|
sensible-pager | File | 452 B | 0755 |
|
seq | File | 50.34 KB | 0755 |
|
session-migration | File | 22.15 KB | 0755 |
|
sessreg | File | 13.99 KB | 0755 |
|
setarch | File | 26.5 KB | 0755 |
|
setfacl | File | 38.84 KB | 0755 |
|
setfont | File | 46.13 KB | 0755 |
|
setkeycodes | File | 14.07 KB | 0755 |
|
setleds | File | 14.05 KB | 0755 |
|
setlogcons | File | 14.07 KB | 0755 |
|
setmetamode | File | 14.1 KB | 0755 |
|
setpci | File | 30.23 KB | 0755 |
|
setpriv | File | 46.23 KB | 0755 |
|
setsid | File | 14.23 KB | 0755 |
|
setterm | File | 46.23 KB | 0755 |
|
setupcon | File | 38.31 KB | 0755 |
|
setxkbmap | File | 30.7 KB | 0755 |
|
sftp | File | 166.51 KB | 0755 |
|
sg | File | 43.73 KB | 4755 |
|
sh | File | 126.77 KB | 0755 |
|
sha1sum | File | 50.37 KB | 0755 |
|
sha224sum | File | 58.37 KB | 0755 |
|
sha256sum | File | 58.37 KB | 0755 |
|
sha384sum | File | 66.37 KB | 0755 |
|
sha512sum | File | 66.37 KB | 0755 |
|
shasum | File | 9.74 KB | 0755 |
|
shotwell | File | 4.71 MB | 0755 |
|
showconsolefont | File | 18.07 KB | 0755 |
|
showkey | File | 18.07 KB | 0755 |
|
showrgb | File | 9.99 KB | 0755 |
|
shred | File | 62.37 KB | 0755 |
|
shuf | File | 58.34 KB | 0755 |
|
simple-scan | File | 402.36 KB | 0755 |
|
skill | File | 30.23 KB | 0755 |
|
slabtop | File | 22.23 KB | 0755 |
|
sleep | File | 38.34 KB | 0755 |
|
slogin | File | 774.95 KB | 0755 |
|
slxdecode | File | 18.31 KB | 0755 |
|
smproxy | File | 26.31 KB | 0755 |
|
snap | File | 16.3 MB | 0755 |
|
snapctl | File | 6.26 MB | 0755 |
|
snapfuse | File | 46.29 KB | 0755 |
|
snice | File | 30.23 KB | 0755 |
|
soelim | File | 46.51 KB | 0755 |
|
soffice | File | 6.58 KB | 0755 |
|
software-properties-gtk | File | 4.08 KB | 0755 |
|
sort | File | 114.63 KB | 0755 |
|
spd-conf | File | 1003 B | 0755 |
|
spd-say | File | 30.91 KB | 0755 |
|
speaker-test | File | 30.43 KB | 0755 |
|
speech-dispatcher | File | 162.24 KB | 0755 |
|
spice-vdagent | File | 78.77 KB | 0755 |
|
splain | File | 18.7 KB | 0755 |
|
split | File | 58.77 KB | 0755 |
|
splitfont | File | 13.99 KB | 0755 |
|
ss | File | 164.84 KB | 0755 |
|
ssh | File | 774.95 KB | 0755 |
|
ssh-add | File | 362.28 KB | 0755 |
|
ssh-agent | File | 342.29 KB | 2755 |
|
ssh-argv0 | File | 1.42 KB | 0755 |
|
ssh-copy-id | File | 10.41 KB | 0755 |
|
ssh-import-id | File | 409 B | 0755 |
|
ssh-import-id-gh | File | 785 B | 0755 |
|
ssh-import-id-lp | File | 785 B | 0755 |
|
ssh-keygen | File | 466.3 KB | 0755 |
|
ssh-keyscan | File | 454.3 KB | 0755 |
|
start-pulseaudio-x11 | File | 1.65 KB | 0755 |
|
startx | File | 5.39 KB | 0755 |
|
stat | File | 86.37 KB | 0755 |
|
static-sh | File | 2.07 MB | 0755 |
|
stdbuf | File | 50.34 KB | 0755 |
|
strace | File | 1.51 MB | 0755 |
|
strace-log-merge | File | 1.78 KB | 0755 |
|
stty | File | 82.37 KB | 0755 |
|
su | File | 66.23 KB | 4755 |
|
sudo | File | 162.16 KB | 4755 |
|
sudoedit | File | 162.16 KB | 4755 |
|
sudoreplay | File | 63 KB | 0755 |
|
sum | File | 46.34 KB | 0755 |
|
symcryptrun | File | 123.03 KB | 0755 |
|
sync | File | 38.34 KB | 0755 |
|
syslinux | File | 207.34 KB | 0755 |
|
syslinux-legacy | File | 28.84 KB | 0755 |
|
system-config-printer | File | 95 B | 0755 |
|
system-config-printer-applet | File | 80 B | 0755 |
|
systemctl | File | 973.23 KB | 0755 |
|
systemd | File | 1.55 MB | 0755 |
|
systemd-analyze | File | 1.51 MB | 0755 |
|
systemd-ask-password | File | 14.34 KB | 0755 |
|
systemd-cat | File | 18.23 KB | 0755 |
|
systemd-cgls | File | 22.33 KB | 0755 |
|
systemd-cgtop | File | 38.24 KB | 0755 |
|
systemd-delta | File | 26.22 KB | 0755 |
|
systemd-detect-virt | File | 18.22 KB | 0755 |
|
systemd-escape | File | 22.22 KB | 0755 |
|
systemd-hwdb | File | 106.52 KB | 0755 |
|
systemd-id128 | File | 22.22 KB | 0755 |
|
systemd-inhibit | File | 22.24 KB | 0755 |
|
systemd-machine-id-setup | File | 26.32 KB | 0755 |
|
systemd-mount | File | 50.45 KB | 0755 |
|
systemd-notify | File | 18.23 KB | 0755 |
|
systemd-path | File | 18.22 KB | 0755 |
|
systemd-resolve | File | 126.38 KB | 0755 |
|
systemd-run | File | 58.42 KB | 0755 |
|
systemd-socket-activate | File | 26.22 KB | 0755 |
|
systemd-stdio-bridge | File | 22.23 KB | 0755 |
|
systemd-sysusers | File | 54.52 KB | 0755 |
|
systemd-tmpfiles | File | 86.41 KB | 0755 |
|
systemd-tty-ask-password-agent | File | 30.22 KB | 0755 |
|
systemd-umount | File | 50.45 KB | 0755 |
|
tabs | File | 18.3 KB | 0755 |
|
tac | File | 42.34 KB | 0755 |
|
tail | File | 70.4 KB | 0755 |
|
tar | File | 437.61 KB | 0755 |
|
taskset | File | 34.23 KB | 0755 |
|
tbl | File | 138.51 KB | 0755 |
|
tee | File | 42.37 KB | 0755 |
|
telnet | File | 112.67 KB | 0755 |
|
telnet.netkit | File | 112.67 KB | 0755 |
|
tempfile | File | 14.02 KB | 0755 |
|
test | File | 54.34 KB | 0755 |
|
tgz | File | 2.24 KB | 0755 |
|
thunderbird | File | 3.12 KB | 0755 |
|
tic | File | 90.41 KB | 0755 |
|
tificc | File | 34.23 KB | 0755 |
|
time | File | 14.38 KB | 0755 |
|
timedatectl | File | 46.22 KB | 0755 |
|
timeout | File | 42.77 KB | 0755 |
|
tload | File | 22.24 KB | 0755 |
|
toe | File | 22.3 KB | 0755 |
|
top | File | 126.05 KB | 0755 |
|
totem | File | 22.38 KB | 0755 |
|
totem-video-thumbnailer | File | 34.4 KB | 0755 |
|
touch | File | 98.37 KB | 0755 |
|
tput | File | 26.34 KB | 0755 |
|
tr | File | 50.34 KB | 0755 |
|
tracepath | File | 18.15 KB | 0755 |
|
traceroute6 | File | 26.15 KB | 0755 |
|
traceroute6.iputils | File | 26.15 KB | 0755 |
|
tracker | File | 195.52 KB | 0755 |
|
transicc | File | 38.16 KB | 0755 |
|
transmission-gtk | File | 837.91 KB | 0755 |
|
transset | File | 22.79 KB | 0755 |
|
troff | File | 735.91 KB | 0755 |
|
true | File | 38.34 KB | 0755 |
|
truncate | File | 42.34 KB | 0755 |
|
trust | File | 218.67 KB | 0755 |
|
tset | File | 30.31 KB | 0755 |
|
tsort | File | 42.34 KB | 0755 |
|
ttfread | File | 14.3 KB | 0755 |
|
tty | File | 38.34 KB | 0755 |
|
tzselect | File | 15.02 KB | 0755 |
|
ua | File | 442 B | 0755 |
|
ubuntu-advantage | File | 442 B | 0755 |
|
ubuntu-bug | File | 2.5 KB | 0755 |
|
ubuntu-core-launcher | File | 151.45 KB | 4755 |
|
ubuntu-distro-info | File | 22.89 KB | 0755 |
|
ubuntu-drivers | File | 16.07 KB | 0755 |
|
ubuntu-report | File | 7.39 MB | 0755 |
|
ubuntu-security-status | File | 22.25 KB | 0755 |
|
ucf | File | 39.73 KB | 0755 |
|
ucfq | File | 18.91 KB | 0755 |
|
ucfr | File | 10.47 KB | 0755 |
|
ucs2any | File | 21.99 KB | 0755 |
|
udevadm | File | 931.2 KB | 0755 |
|
udisksctl | File | 58.38 KB | 0755 |
|
ul | File | 18.16 KB | 0755 |
|
ulockmgr_server | File | 18.15 KB | 0755 |
|
umax_pp | File | 183.23 KB | 0755 |
|
umount | File | 38.23 KB | 4755 |
|
uname | File | 38.37 KB | 0755 |
|
unattended-upgrade | File | 96.99 KB | 0755 |
|
unattended-upgrades | File | 96.99 KB | 0755 |
|
uncompress | File | 2.29 KB | 0755 |
|
unexpand | File | 42.37 KB | 0755 |
|
unicode_start | File | 2.7 KB | 0755 |
|
unicode_stop | File | 530 B | 0755 |
|
uniq | File | 50.37 KB | 0755 |
|
unity-scope-loader | File | 14.23 KB | 0755 |
|
unlink | File | 38.34 KB | 0755 |
|
unlz4 | File | 186.23 KB | 0755 |
|
unlzma | File | 78.5 KB | 0755 |
|
unmkinitramfs | File | 3.59 KB | 0755 |
|
unopkg | File | 52 B | 0755 |
|
unshare | File | 42.43 KB | 0755 |
|
unsquashfs | File | 112.12 KB | 0755 |
|
unxz | File | 78.5 KB | 0755 |
|
unzip | File | 182.29 KB | 0755 |
|
unzipsfx | File | 82.27 KB | 0755 |
|
update-alternatives | File | 54.41 KB | 0755 |
|
update-desktop-database | File | 26.23 KB | 0755 |
|
update-manager | File | 4.48 KB | 0755 |
|
update-mime-database | File | 58.37 KB | 0755 |
|
update-notifier | File | 78.98 KB | 0755 |
|
upgmodectl | File | 406 B | 0550 |
|
upower | File | 22.15 KB | 0755 |
|
uptime | File | 14.23 KB | 0755 |
|
usb-creator-gtk | File | 2.87 KB | 0755 |
|
usb-devices | File | 4 KB | 0755 |
|
usb_printerid | File | 14.31 KB | 0755 |
|
usbhid-dump | File | 30.38 KB | 0755 |
|
usbreset | File | 14.3 KB | 0755 |
|
users | File | 38.34 KB | 0755 |
|
utmpdump | File | 30.23 KB | 0755 |
|
uuidgen | File | 14.23 KB | 0755 |
|
uuidparse | File | 38.23 KB | 0755 |
|
uz | File | 2.48 KB | 0755 |
|
vdir | File | 138.81 KB | 0755 |
|
vi | File | 2.78 MB | 0755 |
|
view | File | 2.78 MB | 0755 |
|
viewres | File | 31.27 KB | 0755 |
|
vim | File | 2.78 MB | 0755 |
|
vim.basic | File | 2.78 MB | 0755 |
|
vim.tiny | File | 1.29 MB | 0755 |
|
vimdiff | File | 2.78 MB | 0755 |
|
vimtutor | File | 2.07 KB | 0755 |
|
vm-agent | File | 1.89 MB | 0550 |
|
vmstat | File | 38.25 KB | 0755 |
|
vmwarectrl | File | 14.43 KB | 0755 |
|
volname | File | 14.15 KB | 0755 |
|
vstp | File | 26.16 KB | 0755 |
|
w | File | 22.23 KB | 0755 |
|
w.procps | File | 22.23 KB | 0755 |
|
wall | File | 34.23 KB | 0755 |
|
watch | File | 26.57 KB | 0755 |
|
watchgnupg | File | 18.3 KB | 0755 |
|
wc | File | 46.34 KB | 0755 |
|
wdctl | File | 34.23 KB | 0755 |
|
webmin | File | 14.57 KB | 0755 |
|
wget | File | 531.71 KB | 0755 |
|
whatis | File | 55.21 KB | 0755 |
|
whereis | File | 34.66 KB | 0755 |
|
which | File | 946 B | 0755 |
|
whiptail | File | 34.16 KB | 0755 |
|
who | File | 58.37 KB | 0755 |
|
whoami | File | 38.34 KB | 0755 |
|
whoopsie | File | 66.98 KB | 0755 |
|
whoopsie-preferences | File | 26.15 KB | 0755 |
|
word-list-compress | File | 14.3 KB | 0755 |
|
wpa_passphrase | File | 82.32 KB | 0755 |
|
write | File | 14.15 KB | 2755 |
|
x-session-manager | File | 806 B | 0755 |
|
x-terminal-emulator | File | 2.36 KB | 0755 |
|
x-window-manager | File | 196.32 KB | 0755 |
|
x-www-browser | File | 2.6 KB | 0755 |
|
x11perf | File | 197.46 KB | 0755 |
|
x11perfcomp | File | 2.74 KB | 0755 |
|
x86_64 | File | 26.5 KB | 0755 |
|
x86_64-linux-gnu-cpp | File | 1.1 MB | 0755 |
|
x86_64-linux-gnu-cpp-9 | File | 1.1 MB | 0755 |
|
x86_64-linux-gnu-pkg-config | File | 2.18 KB | 0755 |
|
x86_64-pc-linux-gnu-pkg-config | File | 54.25 KB | 0755 |
|
xargs | File | 74.37 KB | 0755 |
|
xauth | File | 54.97 KB | 0755 |
|
xbiff | File | 24.19 KB | 0755 |
|
xbrlapi | File | 162.48 KB | 0755 |
|
xcalc | File | 47.48 KB | 0755 |
|
xclipboard | File | 26.66 KB | 0755 |
|
xclock | File | 65.14 KB | 0755 |
|
xcmsdb | File | 30.74 KB | 0755 |
|
xconsole | File | 27.28 KB | 0755 |
|
xcursorgen | File | 22.3 KB | 0755 |
|
xcutsel | File | 22.64 KB | 0755 |
|
xdg-dbus-proxy | File | 50.15 KB | 0755 |
|
xdg-desktop-icon | File | 20.15 KB | 0755 |
|
xdg-desktop-menu | File | 42.26 KB | 0755 |
|
xdg-email | File | 26.3 KB | 0755 |
|
xdg-icon-resource | File | 29.32 KB | 0755 |
|
xdg-mime | File | 41.13 KB | 0755 |
|
xdg-open | File | 25.02 KB | 0755 |
|
xdg-screensaver | File | 37.07 KB | 0755 |
|
xdg-settings | File | 37.49 KB | 0755 |
|
xdg-user-dir | File | 234 B | 0755 |
|
xdg-user-dirs-gtk-update | File | 22.07 KB | 0755 |
|
xdg-user-dirs-update | File | 26.07 KB | 0755 |
|
xditview | File | 108.14 KB | 0755 |
|
xdpyinfo | File | 43.07 KB | 0755 |
|
xdriinfo | File | 14.3 KB | 0755 |
|
xedit | File | 673.35 KB | 0755 |
|
xev | File | 34.66 KB | 0755 |
|
xeyes | File | 31.8 KB | 0755 |
|
xfd | File | 40.06 KB | 0755 |
|
xfontsel | File | 47.91 KB | 0755 |
|
xgamma | File | 9.99 KB | 0755 |
|
xgc | File | 78.42 KB | 0755 |
|
xhost | File | 13.99 KB | 0755 |
|
xinit | File | 22.33 KB | 0755 |
|
xinput | File | 62.83 KB | 0755 |
|
xkbbell | File | 14.32 KB | 0755 |
|
xkbcomp | File | 212.09 KB | 0755 |
|
xkbevd | File | 42.39 KB | 0755 |
|
xkbprint | File | 94.34 KB | 0755 |
|
xkbvleds | File | 23.09 KB | 0755 |
|
xkbwatch | File | 23.18 KB | 0755 |
|
xkeystone | File | 16.58 KB | 0755 |
|
xkill | File | 14.3 KB | 0755 |
|
xload | File | 27 KB | 0755 |
|
xlogo | File | 27.27 KB | 0755 |
|
xlsatoms | File | 14.3 KB | 0755 |
|
xlsclients | File | 18.31 KB | 0755 |
|
xlsfonts | File | 26.4 KB | 0755 |
|
xmag | File | 48.42 KB | 0755 |
|
xman | File | 81.2 KB | 0755 |
|
xmessage | File | 27.19 KB | 0755 |
|
xmodmap | File | 34.34 KB | 0755 |
|
xmore | File | 18.58 KB | 0755 |
|
xprop | File | 48.6 KB | 0755 |
|
xqxdecode | File | 18.31 KB | 0755 |
|
xrandr | File | 62.09 KB | 0755 |
|
xrdb | File | 30.09 KB | 0755 |
|
xrefresh | File | 10.07 KB | 0755 |
|
xset | File | 29.99 KB | 0755 |
|
xsetmode | File | 9.99 KB | 0755 |
|
xsetpointer | File | 9.99 KB | 0755 |
|
xsetroot | File | 18 KB | 0755 |
|
xsetwacom | File | 63.7 KB | 0755 |
|
xsm | File | 102.77 KB | 0755 |
|
xstdcmap | File | 14.57 KB | 0755 |
|
xsubpp | File | 5.04 KB | 0755 |
|
xvidtune | File | 39.41 KB | 0755 |
|
xvinfo | File | 18.3 KB | 0755 |
|
xwd | File | 38.31 KB | 0755 |
|
xwininfo | File | 50.38 KB | 0755 |
|
xwud | File | 34.3 KB | 0755 |
|
xxd | File | 18.27 KB | 0755 |
|
xz | File | 78.5 KB | 0755 |
|
xzcat | File | 78.5 KB | 0755 |
|
xzcmp | File | 6.48 KB | 0755 |
|
xzdiff | File | 6.48 KB | 0755 |
|
xzegrep | File | 5.76 KB | 0755 |
|
xzfgrep | File | 5.76 KB | 0755 |
|
xzgrep | File | 5.76 KB | 0755 |
|
xzless | File | 1.76 KB | 0755 |
|
xzmore | File | 2.11 KB | 0755 |
|
yelp | File | 62.23 KB | 0755 |
|
yes | File | 38.34 KB | 0755 |
|
ypdomainname | File | 26.23 KB | 0755 |
|
zcat | File | 1.94 KB | 0755 |
|
zcmp | File | 1.64 KB | 0755 |
|
zdiff | File | 5.76 KB | 0755 |
|
zdump | File | 26.21 KB | 0755 |
|
zegrep | File | 29 B | 0755 |
|
zenity | File | 132.77 KB | 0755 |
|
zfgrep | File | 29 B | 0755 |
|
zforce | File | 2.03 KB | 0755 |
|
zgrep | File | 7.91 KB | 0755 |
|
zip | File | 211.19 KB | 0755 |
|
zipcloak | File | 91.62 KB | 0755 |
|
zipdetails | File | 49.53 KB | 0755 |
|
zipgrep | File | 2.88 KB | 0755 |
|
zipinfo | File | 182.29 KB | 0755 |
|
zipnote | File | 87.39 KB | 0755 |
|
zipsplit | File | 91.39 KB | 0755 |
|
zjsdecode | File | 26.32 KB | 0755 |
|
zless | File | 2.15 KB | 0755 |
|
zmore | File | 1.8 KB | 0755 |
|
znew | File | 4.47 KB | 0755 |
|