[138694] trunk/dports/science/uhd

michaelld at macports.org michaelld at macports.org
Thu Jul 16 07:50:09 PDT 2015


Revision: 138694
          https://trac.macports.org/changeset/138694
Author:   michaelld at macports.org
Date:     2015-07-16 07:50:09 -0700 (Thu, 16 Jul 2015)
Log Message:
-----------
uhd*: add forgotten patch!

Added Paths:
-----------
    trunk/dports/science/uhd/files/
    trunk/dports/science/uhd/files/patch-host_utils_uhd_images_downloader.py.in.diff

Added: trunk/dports/science/uhd/files/patch-host_utils_uhd_images_downloader.py.in.diff
===================================================================
--- trunk/dports/science/uhd/files/patch-host_utils_uhd_images_downloader.py.in.diff	                        (rev 0)
+++ trunk/dports/science/uhd/files/patch-host_utils_uhd_images_downloader.py.in.diff	2015-07-16 14:50:09 UTC (rev 138694)
@@ -0,0 +1,362 @@
+--- host/utils/uhd_images_downloader.py.in.orig
++++ host/utils/uhd_images_downloader.py.in
+@@ -1,6 +1,6 @@
+ #!/usr/bin/env python
+ #
+-# Copyright 2012-2014 Ettus Research LLC
++# Copyright 2012-2015 Ettus Research LLC
+ #
+ # 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
+@@ -23,7 +23,7 @@ import math
+ import traceback
+ import shutil
+ import hashlib
+-import urllib2
++import requests
+ import zipfile
+ 
+ from optparse import OptionParser
+@@ -47,8 +47,8 @@ def md5Checksum(filePath):
+                     break
+                 m.update(data)
+             return m.hexdigest()
+-    except Exception, e:
+-        print "Failed to calculated MD5 sum of: %s (%s)" % (filePath, e)
++    except Exception as e:
++        print("Failed to calculated MD5 sum of: %s (%s)" % (filePath, e))
+         raise e
+ 
+ _checksum_fns = {
+@@ -60,16 +60,16 @@ class temporary_directory():
+         try:
+             self.name = tempfile.mkdtemp()
+             return self.name
+-        except Exception, e:
+-            print "Failed to create a temporary directory (%s)" % (e)
++        except Exception as e:
++            print("Failed to create a temporary directory (%s)" % (e))
+             raise e
+ 
+     # Can return 'True' to suppress incoming exception
+     def __exit__(self, type, value, traceback):
+         try:
+             shutil.rmtree(self.name)
+-        except Exception, e:
+-            print "Could not delete temporary directory: %s (%s)" % (self.name, e)
++        except Exception as e:
++            print("Could not delete temporary directory: %s (%s)" % (self.name, e))
+ 
+ class uhd_images_downloader():
+     def __init__(self):
+@@ -77,25 +77,20 @@ class uhd_images_downloader():
+ 
+     def download(self, images_url, filename, buffer_size=_DEFAULT_BUFFER_SIZE, print_progress=False):
+         """ Run the download, show progress """
+-        opener = urllib2.build_opener()
+-        opener.add_headers = [('User-Agent', 'UHD Images Downloader')]
+-        u = opener.open(images_url)
+-        meta = u.info()
+-        filesize = float(meta.getheaders("Content-Length")[0])
++        r = requests.get(images_url, stream=True, headers={'User-Agent': 'UHD Images Downloader'})
++        filesize = float(r.headers['content-length'])
+         filesize_dl = 0
+         with open(filename, "wb") as f:
+-            while True:
+-                buff = u.read(buffer_size)
+-                if not buff:
+-                    break
+-                f.write(buff)
+-                filesize_dl += len(buff)
++            for buff in r.iter_content(chunk_size=buffer_size):
++                if buff:
++                    f.write(buff)
++                    filesize_dl += len(buff)
+                 if print_progress:
+                     status = r"%05d kB / %05d kB (%03d%%)" % (int(math.ceil(filesize_dl/1000.)), int(math.ceil(filesize/1000.)), int(math.ceil(filesize_dl*100.)/filesize))
+                     status += chr(8)*(len(status)+1)
+-                    print status,
++                    sys.stdout.write(status)
+         if print_progress:
+-            print
++            print('')
+         return (filesize, filesize_dl)
+ 
+     def check_directories(self, dirs, print_progress=False):
+@@ -105,23 +100,23 @@ class uhd_images_downloader():
+ 
+         def _check_part(head, tail=None):
+             if print_progress:
+-                print "Checking: %s" % (head)
++                print("Checking: %s" % (head))
+             if tail is not None and tail == "":
+                 return True
+             if not os.path.exists(head):
+                 if print_progress:
+-                    print "Does not exist: %s" % (head)
++                    print("Does not exist: %s" % (head))
+                 return _check_part(*os.path.split(head))
+             if not os.path.isdir(head):
+                 if print_progress:
+-                    print "Is not a directory: %s" % (head)
++                    print("Is not a directory: %s" % (head))
+                 return (False, head)
+             if not os.access(head, os.W_OK):
+                 if print_progress:
+-                    print "Write permission denied on: %s" % (head)
++                    print("Write permission denied on: %s" % (head))
+                 return (False, head)
+             if print_progress:
+-                print "Write permission granted on: %s" % (head)
++                print("Write permission granted on: %s" % (head))
+             return (True, head)
+ 
+         return _check_part(dirs)
+@@ -137,34 +132,34 @@ class uhd_images_downloader():
+     def extract_images_archive(self, archive_path, destination=None, print_progress=False):
+         if not os.path.exists(archive_path):
+             if print_progress:
+-                print "Path does not exist: %s" % (archive_path)
++                print("Path does not exist: %s" % (archive_path))
+             raise Exception("path does not exist: %s" % (archive_path))
+         if print_progress:
+-            print "Archive path: %s" % (archive_path)
++            print("Archive path: %s" % (archive_path))
+         (head, tail) = os.path.split(archive_path)
+ 
+         if not os.access(head, os.W_OK):
+             if print_progress:
+-                print "Write access denied on: %s" % (head)
++                print("Write access denied on: %s" % (head))
+             raise Exception("write access denied on: %s" % (head))
+ 
+         (root, ext) = os.path.splitext(tail)
+         temp_dir = os.path.join(head, root)
+ 
+         if print_progress:
+-            print "Temporary extraction location: %s" % (temp_dir)
++            print("Temporary extraction location: %s" % (temp_dir))
+ 
+         if os.path.exists(temp_dir):
+             if print_progress:
+-                print "Deleting existing location: %s" % (temp_dir)
++                print("Deleting existing location: %s" % (temp_dir))
+             shutil.rmtree(temp_dir)
+ 
+         if print_progress:
+-            print "Creating directory: %s" % (temp_dir)
++            print("Creating directory: %s" % (temp_dir))
+         os.mkdir(temp_dir)
+ 
+         if print_progress:
+-            print "Extracting archive %s to %s" % (archive_path, temp_dir)
++            print("Extracting archive %s to %s" % (archive_path, temp_dir))
+ 
+         images_zip = zipfile.ZipFile(archive_path)
+         images_zip.extractall(temp_dir)
+@@ -175,27 +170,27 @@ class uhd_images_downloader():
+     def install_images(self, source, dest, keep=False, print_progress=False):
+         if not os.path.exists(source):
+             if print_progress:
+-                print "Source path does not exist: %s" % (source)
++                print("Source path does not exist: %s" % (source))
+             return
+ 
+         if keep:
+             if print_progress:
+-                print "Not wiping directory tree (existing files will be overwritten): %s" % (dest)
++                print("Not wiping directory tree (existing files will be overwritten): %s" % (dest))
+         elif os.path.exists(dest):
+             if print_progress:
+-                print "Deleting directory tree: %s" % (dest)
++                print("Deleting directory tree: %s" % (dest))
+             shutil.rmtree(dest)
+ 
+         (head, tail) = os.path.split(source)
+ 
+         if print_progress:
+-            print "Source install path: %s" % (source)
++            print("Source install path: %s" % (source))
+ 
+         uhd_source = os.path.join(source, tail, *_BASE_DIR_STRUCTURE_PARTS)
+ 
+         if print_progress:
+-            print "Copying files from: %s" % (uhd_source)
+-            print "Copying files to:   %s" % (dest)
++            print("Copying files from: %s" % (uhd_source))
++            print("Copying files to:   %s" % (dest))
+ 
+         if keep:
+             # mgrant @ http://stackoverflow.com/questions/12683834/how-to-copy-directory-recursively-in-python-and-overwrite-all
+@@ -222,12 +217,12 @@ def main():
+     ### Set defaults from env variables
+     if os.environ.get("UHD_IMAGES_DIR") != None and os.environ.get("UHD_IMAGES_DIR") != "":
+         default_images_dir = os.environ.get("UHD_IMAGES_DIR")
+-        print "UHD_IMAGES_DIR environment variable is set.\nDefault install location: {0}".format(default_images_dir)
++        print("UHD_IMAGES_DIR environment variable is set.\nDefault install location: {0}".format(default_images_dir))
+     else:
+         default_images_dir = _DEFAULT_INSTALL_PATH
+     if os.environ.get("UHD_IMAGES_BASE_URL") != None and os.environ.get("UHD_IMAGES_BASE_URL") != "":
+         default_base_url = os.environ.get("UHD_IMAGES_BASE_URL")
+-        print "UHD_IMAGES_BASE_URL environment variable is set.\nDefault base URL: {0}".format(default_base_url)
++        print("UHD_IMAGES_BASE_URL environment variable is set.\nDefault base URL: {0}".format(default_base_url))
+     else:
+         default_base_url = _DEFAULT_BASE_URL
+ 
+@@ -244,22 +239,22 @@ def main():
+     parser.add_option("-c", "--checksum",           type="string",          default=_AUTOGEN_IMAGES_CHECKSUM,
+                         help="Validate images archive against this checksum (blank to skip) [default=%default]")
+     parser.add_option("-t", "--checksum-type",      type="string",          default=_IMAGES_CHECKSUM_TYPE,
+-                        help=("Select checksum hash function (options: %s) [default=%%default]" % (",".join(_checksum_fns.keys()))))
++                        help=("Select checksum hash function (options: %s) [default=%%default]" % (",".join(list(_checksum_fns.keys())))))
+     parser.add_option("-k", "--keep",               action="store_true",    default=False,
+                         help="Do not clear images directory before extracting new files [default=%default]")
+     parser.add_option("-v", "--verbose",            action="store_true",    default=False,
+                         help="Enable verbose output [default=%default]")
+     (options, args) = parser.parse_args()
+     if options.buffer_size <= 0:
+-        print "Invalid buffer size: %s" % (options.buffer_size)
++        print("Invalid buffer size: %s" % (options.buffer_size))
+         return 1
+ 
+     ### Select checksum algorithm (MD5)
+     checksum_fn = None
+     if options.checksum != "":
+         options.checksum_type = options.checksum_type.lower()
+-        if not _checksum_fns.has_key(options.checksum_type):
+-            print "Not a supported checksum function: %s" % (options.checksum_type)
++        if options.checksum_type not in _checksum_fns:
++            print("Not a supported checksum function: %s" % (options.checksum_type))
+             return 1
+         checksum_fn = _checksum_fns[options.checksum_type]
+ 
+@@ -275,30 +270,30 @@ def main():
+         base_url_is_local = True
+ 
+     if options.verbose:
+-        print "Requested install location: %s" % (options.install_location)
+-        print "Images base URL:            %s" % (options.base_url)
+-        print "Images filename:            %s" % (options.filename)
+-        print "Images checksum:            %s (%s)" % (options.checksum, _IMAGES_CHECKSUM_TYPE)
+-        print "Final install location:     %s" % (images_dir)
+-        print "Copying locally:            {0}".format("Yes" if base_url_is_local else "No")
++        print("Requested install location: %s" % (options.install_location))
++        print("Images base URL:            %s" % (options.base_url))
++        print("Images filename:            %s" % (options.filename))
++        print("Images checksum:            %s (%s)" % (options.checksum, _IMAGES_CHECKSUM_TYPE))
++        print("Final install location:     %s" % (images_dir))
++        print("Copying locally:            {0}".format("Yes" if base_url_is_local else "No"))
+     else:
+-        print "Images destination:      %s" % (images_dir)
++        print("Images destination:      %s" % (images_dir))
+ 
+     ### Download or copy
+     downloader = uhd_images_downloader()
+     try:
+         (access, last_path) = downloader.check_directories(images_dir, print_progress=options.verbose)
+         if not access:
+-            print "You do not have sufficient permissions to write to: %s" % (last_path)
+-            print "Are you root?"
++            print("You do not have sufficient permissions to write to: %s" % (last_path))
++            print("Are you root?")
+             return 1
+         with temporary_directory() as temp_dir:
+             if options.verbose:
+-                print "Using temporary directory: %s" % (temp_dir)
++                print("Using temporary directory: %s" % (temp_dir))
+             temp_images_dest = os.path.join(temp_dir, options.filename)
+             if not base_url_is_local:
+-                print "Downloading images from: {0}".format(images_url)
+-                print "Downloading images to:   {0}".format(temp_images_dest)
++                print("Downloading images from: {0}".format(images_url))
++                print("Downloading images to:   {0}".format(temp_images_dest))
+                 (reported_size, downloaded_size) = downloader.download(
+                         images_url=images_url,
+                         filename=temp_images_dest,
+@@ -306,12 +301,12 @@ def main():
+                         print_progress=True
+                 )
+                 if options.verbose:
+-                    print "Downloaded %d of %d bytes" % (downloaded_size, reported_size)
++                    print("Downloaded %d of %d bytes" % (downloaded_size, reported_size))
+             else:
+                 local_images_pkg = os.path.join(options.base_url, options.filename)
+-                print "Copying images from:     {0}".format(local_images_pkg)
++                print("Copying images from:     {0}".format(local_images_pkg))
+                 if not os.path.isfile(local_images_pkg):
+-                    print "[ERROR] No such file."
++                    print("[ERROR] No such file.")
+                     return 1
+                 shutil.copyfile(local_images_pkg, temp_images_dest)
+             (checksum_match, calculated_checksum) = downloader.validate_checksum(
+@@ -321,48 +316,46 @@ def main():
+                     print_progress=options.verbose
+             )
+             if options.verbose:
+-                print "Calculated checksum: %s" % (calculated_checksum)
++                print("Calculated checksum: %s" % (calculated_checksum))
+             if checksum_match:
+                 if options.verbose:
+                     if options.checksum == "":
+-                        print "Ignoring checksum"
++                        print("Ignoring checksum")
+                     else:
+-                        print "Checksum OK"
++                        print("Checksum OK")
+                 try:
+                     extract_path = downloader.extract_images_archive(temp_images_dest, print_progress=options.verbose)
+                     if options.verbose:
+-                        print "Image archive extracted to: %s" % (extract_path)
++                        print("Image archive extracted to: %s" % (extract_path))
+                     downloader.install_images(extract_path, images_dir, options.keep, print_progress=options.verbose)
+                     if options.verbose:
+-                        print "Cleaning up temp location: %s" % (extract_path)
++                        print("Cleaning up temp location: %s" % (extract_path))
+                     shutil.rmtree(extract_path)
+-                    print
+-                    print "Images successfully installed to: %s" % (images_dir)
+-                except Exception, e:
+-                    print "Failed to install image archive: %s" % (e)
+-                    print "This is usually a permissions problem."
+-                    print "Please check your file system access rights and try again."
++                    print("\nImages successfully installed to: %s" % (images_dir))
++                except Exception as e:
++                    print("Failed to install image archive: %s" % (e))
++                    print("This is usually a permissions problem.")
++                    print("Please check your file system access rights and try again.")
+                     if options.verbose:
+                         traceback.print_exc()
+                     else:
+-                        print "You can run this again with the '--verbose' flag to see more information"
+-                    print "If the problem persists, please email the output to: %s" % (_CONTACT)
++                        print("You can run this again with the '--verbose' flag to see more information")
++                    print("If the problem persists, please email the output to: %s" % (_CONTACT))
+             else:
+-                print "Checksum of downloaded file is not correct (not installing - see options to override)"
+-                print "Expected:   %s" % (options.checksum)
+-                print "Calculated: %s" % (calculated_checksum)
+-                print "Please try downloading again."
+-                print "If the problem persists, please email the output to: %s" % (_CONTACT)
++                print("Checksum of downloaded file is not correct (not installing - see options to override)")
++                print("Expected:   %s" % (options.checksum))
++                print("Calculated: %s" % (calculated_checksum))
++                print("Please try downloading again.")
++                print("If the problem persists, please email the output to: %s" % (_CONTACT))
+     except KeyboardInterrupt:
+-        print
+-        print "Cancelled at user request"
+-    except Exception, e:
+-        print "Downloader raised an unhandled exception: %s" % (e)
++        print("\nCancelled at user request")
++    except Exception as e:
++        print("Downloader raised an unhandled exception: %s" % (e))
+         if options.verbose:
+             traceback.print_exc()
+         else:
+-            print "You can run this again with the '--verbose' flag to see more information"
+-        print "If the problem persists, please email the output to: %s" % (_CONTACT)
++            print("You can run this again with the '--verbose' flag to see more information")
++        print("If the problem persists, please email the output to: %s" % (_CONTACT))
+         return 1
+     return 0
+ 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20150716/c65bcfbb/attachment-0001.html>


More information about the macports-changes mailing list