From c7c7a733842ca1ea4d1224df7ffe499420863539 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 8 Dec 2013 10:34:04 -0500 Subject: [PATCH 1/4] me v6.7.0 --- core_me/__init__.py | 2 +- help/changelog_me | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core_me/__init__.py b/core_me/__init__.py index 530927e4..8d5a3fd7 100644 --- a/core_me/__init__.py +++ b/core_me/__init__.py @@ -1,2 +1,2 @@ -__version__ = '6.6.0' +__version__ = '6.7.0' __appname__ = 'dupeGuru Music Edition' \ No newline at end of file diff --git a/help/changelog_me b/help/changelog_me index 217a3eb7..3425ebf1 100644 --- a/help/changelog_me +++ b/help/changelog_me @@ -1,3 +1,14 @@ +=== 6.7.0 (2013-12-08) + +* Disable symlink/hardlink deletion option when not relevant. (#247) +* Make Cmd+A select all folders in the Folder Selection dialog. [Mac] (#228) +* Make non-numeric delta comparison case insensitive. (#239) +* Fix surrogate-related UnicodeEncodeError on CSV export. (#210) +* Fixed crash on Dupe Count sorting with Delta + Dupes Only. (#238) +* Improved documentation. +* Important internal refactorings. +* Removed the fairware dialog ([More Info](http://www.hardcoded.net/articles/phasing-out-fairware)). + === 6.6.0 (2013-08-18) * Improved delta values to support non-numerical values. (#213) From 3e42ad8469e91bbfd9da63f3ea3e5b85c82c4358 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 7 Dec 2013 17:23:18 -0500 Subject: [PATCH 2/4] Minimum Python version is now 3.3 --- README.md | 28 ++++++++-------------------- build.py | 3 +-- cocoa/inter/app_me.py | 2 -- cocoa/wscript | 2 +- debian/control | 2 +- package.py | 2 +- 6 files changed, 12 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 1e7f1e6c..cc6db596 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ and follow instructions from the script. You can then ignore the rest of the bui Prerequisites are installed through `pip`. However, some of them are not "pip installable" and have to be installed manually. -* All systems: [Python 3.2+][python] and [setuptools][setuptools] +* All systems: [Python 3.3+][python] and [setuptools][setuptools] * Mac OS X: The last XCode to have the 10.6 SDK included. * Windows: Visual Studio 2008, [PyQt 4.7+][pyqt], [cx_Freeze][cxfreeze] and [Advanced Installer][advinst] (you only need the last two if you want to create an installer) @@ -55,17 +55,16 @@ On Ubuntu, the apt-get command to install all pre-requisites is: $ apt-get install python3-dev python3-pyqt4 pyqt4-dev-tools python3-setuptools -## Virtualenv setup +## Setting up the virtual environment -First, you need `pip` and `virtualenv` in your system Python install: +Use Python's built-in `pyvenv` to create a virtual environment in which we're going to install our. +Python-related dependencies. `pyvenv` is built-in Python but, unlike its `virtualenv` predecessor, +it doesn't install setuptools and pip, so it has to be installed manually: - $ sudo easy_install pip - $ sudo pip install virtualenv - -Then, in dupeGuru's source folder, create a virtual environment and activate it: - - $ virtualenv --system-site-packages env + $ pyvenv --system-site-packages env $ source env/bin/activate + $ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python + $ easy_install pip Then, you can install pip requirements in your virtualenv: @@ -73,17 +72,6 @@ Then, you can install pip requirements in your virtualenv: ([osx|win] depends, of course, on your platform. On other platforms, just use requirements.txt). -## Alternative: pyvenv - -If you're on Python 3.3+, you can use the built-in `pyvenv` instead of `virtualenv`. `pyvenv` is -pretty much the same thing as `virtualenv`, except that it doesn't install setuptools and pip, so it -has to be installed manually: - - $ pyvenv --system-site-packages env - $ source env/bin/activate - $ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python - $ easy_install pip - ## Actual building and running With your virtualenv activated, you can build and run dupeGuru with these commands: diff --git a/build.py b/build.py index 2cab8856..3cae2df1 100644 --- a/build.py +++ b/build.py @@ -19,7 +19,7 @@ from setuptools import setup, Extension from hscommon import sphinxgen from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace, - get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, OSXAppStructure, + get_module_version, move_all, copy_all, OSXAppStructure, build_cocoalib_xibless, fix_qt_resource_file, build_cocoa_ext, copy_embeddable_python_dylib, collect_stdlib_dependencies, copy) from hscommon import loc @@ -123,7 +123,6 @@ def build_cocoa(edition, dev): del sys.path[0] # Views are not referenced by python code, so they're not found by the collector. copy_all('build/inter/*.so', op.join(pydep_folder, 'inter')) - copy_sysconfig_files_for_embed(pydep_folder) if not dev: # Important: Don't ever run delete_files_with_pattern('*.py') on dev builds because you'll # be deleting all py files in symlinked folders. diff --git a/cocoa/inter/app_me.py b/cocoa/inter/app_me.py index c6f89428..88e4c1bf 100644 --- a/cocoa/inter/app_me.py +++ b/cocoa/inter/app_me.py @@ -150,8 +150,6 @@ class DupeGuruME(DupeGuruBase): self.dead_tracks = [] def _do_delete(self, j, *args): - # XXX If I read correctly, Python 3.3 will allow us to go fetch inner function easily, so - # we'll be able to replace "op" below with DupeGuruBase._do_delete.op. def op(dupe): j.add_progress() return self._do_delete_dupe(dupe, *args) diff --git a/cocoa/wscript b/cocoa/wscript index 058ea27a..9ce28eec 100644 --- a/cocoa/wscript +++ b/cocoa/wscript @@ -31,7 +31,7 @@ def configure(conf): os.symlink('../build/Python', versioned_dylib_path) # The rest is standard WAF code that you can find the the python and macapp demos. conf.load('compiler_c python') - conf.check_python_version((3,2,0)) + conf.check_python_version((3,3,0)) conf.check_python_headers() conf.env.FRAMEWORK_COCOA = 'Cocoa' conf.env.ARCH_COCOA = ['x86_64'] diff --git a/debian/control b/debian/control index eb4d85b8..ceda8746 100644 --- a/debian/control +++ b/debian/control @@ -8,5 +8,5 @@ Homepage: http://www.hardcoded.net Package: {pkgname} Architecture: {arch} -Depends: python3 (>=3.2), python3-pyqt4 +Depends: python3 (>=3.3), python3-pyqt4 Description: {longname} diff --git a/package.py b/package.py index bc54cf94..ea162abf 100644 --- a/package.py +++ b/package.py @@ -136,7 +136,7 @@ def package_debian_distribution(edition, distribution): def package_debian(edition): print("Packaging for Ubuntu") - for distribution in ['precise', 'quantal', 'raring', 'saucy']: + for distribution in ['raring', 'saucy']: package_debian_distribution(edition, distribution) def package_arch(edition): From 152f5f37ce04056329aaa11195e60ffbc9da9967 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 22 Dec 2013 10:23:54 -0500 Subject: [PATCH 3/4] pe v2.9.0 --- core_pe/__init__.py | 2 +- help/changelog_me | 1 + help/changelog_pe | 13 +++++++++++++ help/changelog_se | 1 + 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core_pe/__init__.py b/core_pe/__init__.py index d54f98bd..7407d973 100644 --- a/core_pe/__init__.py +++ b/core_pe/__init__.py @@ -1,2 +1,2 @@ -__version__ = '2.8.0' +__version__ = '2.9.0' __appname__ = 'dupeGuru Picture Edition' \ No newline at end of file diff --git a/help/changelog_me b/help/changelog_me index 3425ebf1..4b7d7b76 100644 --- a/help/changelog_me +++ b/help/changelog_me @@ -7,6 +7,7 @@ * Fixed crash on Dupe Count sorting with Delta + Dupes Only. (#238) * Improved documentation. * Important internal refactorings. +* Dropped Ubuntu 12.04 and 12.10 support. * Removed the fairware dialog ([More Info](http://www.hardcoded.net/articles/phasing-out-fairware)). === 6.6.0 (2013-08-18) diff --git a/help/changelog_pe b/help/changelog_pe index 7fa4c87e..b6833ef3 100644 --- a/help/changelog_pe +++ b/help/changelog_pe @@ -1,3 +1,16 @@ +=== 2.9.0 (2013-12-22) + +* Read RAW pictures EXIF tags. [Mac] (#234) +* Disable symlink/hardlink deletion option when not relevant. (#247) +* Make Cmd+A select all folders in the Folder Selection dialog. [Mac] (#228) +* Make non-numeric delta comparison case insensitive. (#239) +* Fix surrogate-related UnicodeEncodeError on CSV export. (#210) +* Fixed crash on Dupe Count sorting with Delta + Dupes Only. (#238) +* Improved documentation. +* Important internal refactorings. +* Dropped Ubuntu 12.04 and 12.10 support. +* Removed the fairware dialog ([More Info](http://www.hardcoded.net/articles/phasing-out-fairware)). + === 2.8.0 (2013-08-25) * Improved delta values to support non-numerical values. (#213) diff --git a/help/changelog_se b/help/changelog_se index 8c88a27b..0131eda2 100644 --- a/help/changelog_se +++ b/help/changelog_se @@ -7,6 +7,7 @@ * Fixed crash on Dupe Count sorting with Delta + Dupes Only. (#238) * Improved documentation. * Important internal refactorings. +* Dropped Ubuntu 12.04 and 12.10 support. * Removed the fairware dialog ([More Info](http://www.hardcoded.net/articles/phasing-out-fairware)). === 3.7.1 (2013-08-19) From 25169cfc20dd58b8633c52ccfe8793311b5c0a4f Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 22 Dec 2013 12:13:39 -0500 Subject: [PATCH 4/4] Create an empty site.py in collect_stdlib_dependencies() Since we have Python 3.3 as a minimum requirement, we don't need to patch our site.py with copy_sysconfig_files_for_embed() anymore, but we still need a site.py file on startup. We create it when we collect stdlib deps. --- hscommon/build.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/hscommon/build.py b/hscommon/build.py index 0ede9d0b..0b290dbc 100644 --- a/hscommon/build.py +++ b/hscommon/build.py @@ -448,6 +448,8 @@ def collect_stdlib_dependencies(script, dest_folder, extra_deps=None): # There's a couple of rather big exe files in the distutils folder that we absolutely don't # need. Remove them. delete_files_with_pattern(op.join(dest_folder, 'distutils'), '*.exe') + # And, finally, create an empty "site.py" that Python needs around on startup. + open(op.join(dest_folder, 'site.py'), 'w').close() def fix_qt_resource_file(path): # pyrcc4 under Windows, if the locale is non-english, can produce a source file with a date