You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

README.md 4.3 KiB

7 years ago
Initial Update of Windows Packaging (#438) * Update run.py & .gitignore for windows - Update run.py to execute on windows as SIGQUIT is not available. - Update .gitignore to ignore the generate .pyd files Ref #300, #393 * Update package.py for windows Add package_windows back into package.py - Using cx_freeze for freezing installation - Will be using nsis for actual installer Tested with python 3.5 64bit on windows 10 Ref #393 * Update makefile for windows (+2 misc) - Update the makefile to support windows - Use different bin path in virtualenv - Use pyd instead of so files - Tested with Msys2 - Add *.exe to .gitignore - Fix minor format error in package.py Ref #393 * Add requirements-windows Add the requirements-windows.txt - contains cx-Freeze for bundling Ref #393 * Add initial setup.nsi Initial Version of a NSIS installer script - Multi-user install (install for just one or all) - Registers uninstaller (more values need to finish up) - Tested both single and all install / uninstall and works - Still need to add parameters instead of hardcoded values in some spots - Need to clean up vendor folders / keys if empty on uninstall - Need to add the other dupeGuru languages to the language list - Minor cleanup of script needed as well Ref #393 * Update setup.nsi Updates to setup.nsi including: - Defines from CLI - Version information (MAJOR, MINOR, PATCH) - Bits (64 / 32) - SourcePath (if we wanted something other than build) - Added extra defines to move application specifics to one location - Added extra defines for uninstall information - Added calculation of install size - Added switching between 64 and 32 bit contexts (need to verify functionality) - Updated output file naming - Added NSIS supported languages which are also supported by dupeGuru - Added rest of registry keys for uninstall information - Added missing registry key for installType - Added removeing Vendor folder and registry key if empty on uninstall Should be very close to having this installer script ready to integrate into the package.py script if desired. Ref #393 * Update README & requirements-windows Minor update to README to indicate windows is supported. Add PyQt5 to requirements-windows.txt to make installation easier. * Update packaging for windows - Update package.py to integrate NSIS for windows - Update makefile to deal with a few additional windows issues - Add Windows.md to contain specific windows instructions, if we want this can be merged with README.md - Minor formatting update to setup.nsi Ref #393 * Update README & Windows Instructions - Update the README to include a reference to the Windows instructions. - Add some additional notes into Windows Instructions and remove one incorrect command. - Update .gitignore to ignore all permutations of env* to allow for multiple side by side virtual environments (used to build different versions for windows) Ref: #393 * Update Window.md Fix broken python link and move nsis link for consistency. * More Details in Windows.md Update Windows.md including: - Information on compilier requirements for windows - Notes about the windows 10 sdk - Some clarification around some of the steps - Addition of msys2 links Going to review this a bit more to polish it up. Ref #393.
3 years ago
3 months ago
7 years ago
3 months ago
7 years ago
3 months ago
3 months ago
3 months ago
4 years ago
7 years ago
4 years ago
3 months ago
Initial Update of Windows Packaging (#438) * Update run.py & .gitignore for windows - Update run.py to execute on windows as SIGQUIT is not available. - Update .gitignore to ignore the generate .pyd files Ref #300, #393 * Update package.py for windows Add package_windows back into package.py - Using cx_freeze for freezing installation - Will be using nsis for actual installer Tested with python 3.5 64bit on windows 10 Ref #393 * Update makefile for windows (+2 misc) - Update the makefile to support windows - Use different bin path in virtualenv - Use pyd instead of so files - Tested with Msys2 - Add *.exe to .gitignore - Fix minor format error in package.py Ref #393 * Add requirements-windows Add the requirements-windows.txt - contains cx-Freeze for bundling Ref #393 * Add initial setup.nsi Initial Version of a NSIS installer script - Multi-user install (install for just one or all) - Registers uninstaller (more values need to finish up) - Tested both single and all install / uninstall and works - Still need to add parameters instead of hardcoded values in some spots - Need to clean up vendor folders / keys if empty on uninstall - Need to add the other dupeGuru languages to the language list - Minor cleanup of script needed as well Ref #393 * Update setup.nsi Updates to setup.nsi including: - Defines from CLI - Version information (MAJOR, MINOR, PATCH) - Bits (64 / 32) - SourcePath (if we wanted something other than build) - Added extra defines to move application specifics to one location - Added extra defines for uninstall information - Added calculation of install size - Added switching between 64 and 32 bit contexts (need to verify functionality) - Updated output file naming - Added NSIS supported languages which are also supported by dupeGuru - Added rest of registry keys for uninstall information - Added missing registry key for installType - Added removeing Vendor folder and registry key if empty on uninstall Should be very close to having this installer script ready to integrate into the package.py script if desired. Ref #393 * Update README & requirements-windows Minor update to README to indicate windows is supported. Add PyQt5 to requirements-windows.txt to make installation easier. * Update packaging for windows - Update package.py to integrate NSIS for windows - Update makefile to deal with a few additional windows issues - Add Windows.md to contain specific windows instructions, if we want this can be merged with README.md - Minor formatting update to setup.nsi Ref #393 * Update README & Windows Instructions - Update the README to include a reference to the Windows instructions. - Add some additional notes into Windows Instructions and remove one incorrect command. - Update .gitignore to ignore all permutations of env* to allow for multiple side by side virtual environments (used to build different versions for windows) Ref: #393 * Update Window.md Fix broken python link and move nsis link for consistency. * More Details in Windows.md Update Windows.md including: - Information on compilier requirements for windows - Notes about the windows 10 sdk - Some clarification around some of the steps - Addition of msys2 links Going to review this a bit more to polish it up. Ref #393.
3 years ago
3 months ago
Initial Update of Windows Packaging (#438) * Update run.py & .gitignore for windows - Update run.py to execute on windows as SIGQUIT is not available. - Update .gitignore to ignore the generate .pyd files Ref #300, #393 * Update package.py for windows Add package_windows back into package.py - Using cx_freeze for freezing installation - Will be using nsis for actual installer Tested with python 3.5 64bit on windows 10 Ref #393 * Update makefile for windows (+2 misc) - Update the makefile to support windows - Use different bin path in virtualenv - Use pyd instead of so files - Tested with Msys2 - Add *.exe to .gitignore - Fix minor format error in package.py Ref #393 * Add requirements-windows Add the requirements-windows.txt - contains cx-Freeze for bundling Ref #393 * Add initial setup.nsi Initial Version of a NSIS installer script - Multi-user install (install for just one or all) - Registers uninstaller (more values need to finish up) - Tested both single and all install / uninstall and works - Still need to add parameters instead of hardcoded values in some spots - Need to clean up vendor folders / keys if empty on uninstall - Need to add the other dupeGuru languages to the language list - Minor cleanup of script needed as well Ref #393 * Update setup.nsi Updates to setup.nsi including: - Defines from CLI - Version information (MAJOR, MINOR, PATCH) - Bits (64 / 32) - SourcePath (if we wanted something other than build) - Added extra defines to move application specifics to one location - Added extra defines for uninstall information - Added calculation of install size - Added switching between 64 and 32 bit contexts (need to verify functionality) - Updated output file naming - Added NSIS supported languages which are also supported by dupeGuru - Added rest of registry keys for uninstall information - Added missing registry key for installType - Added removeing Vendor folder and registry key if empty on uninstall Should be very close to having this installer script ready to integrate into the package.py script if desired. Ref #393 * Update README & requirements-windows Minor update to README to indicate windows is supported. Add PyQt5 to requirements-windows.txt to make installation easier. * Update packaging for windows - Update package.py to integrate NSIS for windows - Update makefile to deal with a few additional windows issues - Add Windows.md to contain specific windows instructions, if we want this can be merged with README.md - Minor formatting update to setup.nsi Ref #393 * Update README & Windows Instructions - Update the README to include a reference to the Windows instructions. - Add some additional notes into Windows Instructions and remove one incorrect command. - Update .gitignore to ignore all permutations of env* to allow for multiple side by side virtual environments (used to build different versions for windows) Ref: #393 * Update Window.md Fix broken python link and move nsis link for consistency. * More Details in Windows.md Update Windows.md including: - Information on compilier requirements for windows - Notes about the windows 10 sdk - Some clarification around some of the steps - Addition of msys2 links Going to review this a bit more to polish it up. Ref #393.
3 years ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
3 months ago
7 years ago
7 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. # dupeGuru
  2. [dupeGuru][dupeguru] is a cross-platform (Linux, OS X, Windows) GUI tool to find duplicate files in
  3. a system. It is written mostly in Python 3 and has the peculiarity of using
  4. [multiple GUI toolkits][cross-toolkit], all using the same core Python code. On OS X, the UI layer
  5. is written in Objective-C and uses Cocoa. On Linux, it is written in Python and uses Qt5.
  6. The Cocoa UI of dupeGuru is hosted in a separate repo: https://github.com/arsenetar/dupeguru-cocoa
  7. ## Current status
  8. Still looking for additional help especially with regards to:
  9. * OSX maintenance: reproducing bugs & cocoa version, building package with Cocoa UI.
  10. * Linux maintenance: reproducing bugs, maintaining PPA repository, Debian package.
  11. * Translations: updating missing strings, transifex project at https://www.transifex.com/voltaicideas/dupeguru-1
  12. * Documentation: keeping it up-to-date.
  13. ## Contents of this folder
  14. This folder contains the source for dupeGuru. Its documentation is in `help`, but is also
  15. [available online][documentation] in its built form. Here's how this source tree is organized:
  16. * core: Contains the core logic code for dupeGuru. It's Python code.
  17. * qt: UI code for the Qt toolkit. It's written in Python and uses PyQt.
  18. * images: Images used by the different UI codebases.
  19. * pkg: Skeleton files required to create different packages
  20. * help: Help document, written for Sphinx.
  21. * locale: .po files for localization.
  22. * hscommon: A collection of helpers used across HS applications.
  23. * qtlib: A collection of helpers used across Qt UI codebases of HS applications.
  24. ## How to build dupeGuru from source
  25. ### Windows & macOS specific additional instructions
  26. For windows instructions see the [Windows Instructions](Windows.md).
  27. For macos instructions (qt version) see the [macOS Instructions](macos.md).
  28. ### Prerequisites
  29. * [Python 3.6+][python]
  30. * PyQt5
  31. ### System Setup
  32. When running in a linux based environment the following system packages or equivalents are needed to build:
  33. * python3-pyqt5
  34. * pyqt5-dev-tools (on some systems, see note)
  35. * python3-wheel (for hsaudiotag3k)
  36. * python3-venv (only if using a virtual environment)
  37. * python3-dev
  38. * build-essential
  39. Note: On some linux systems pyrcc5 is not put on the path when installing python3-pyqt5, this will cause some issues with the resource files (and icons). These systems should have a respective pyqt5-dev-tools package, which should also be installed. The presence of pyrcc5 can be checked with `which pyrcc5`. Debian based systems need the extra package, and Arch does not.
  40. To create packages the following are also needed:
  41. * python3-setuptools
  42. * debhelper
  43. ### Building with Make
  44. dupeGuru comes with a makefile that can be used to build and run:
  45. $ make && make run
  46. ### Building without Make
  47. $ cd <dupeGuru directory>
  48. $ python3 -m venv --system-site-packages ./env
  49. $ source ./env/bin/activate
  50. $ pip install -r requirements.txt
  51. $ python build.py
  52. $ python run.py
  53. ### Generating Debian/Ubuntu package
  54. To generate packages the extra requirements in requirements-extra.txt must be installed, the
  55. steps are as follows:
  56. $ cd <dupeGuru directory>
  57. $ python3 -m venv --system-site-packages ./env
  58. $ source ./env/bin/activate
  59. $ pip install -r requirements.txt -r requirements-extra.txt
  60. $ python build.py --clean
  61. $ python package.py
  62. This can be made a one-liner (once in the directory) as:
  63. $ bash -c "python3 -m venv --system-site-packages env && source env/bin/activate && pip install -r requirements.txt -r requirements-extra.txt && python build.py --clean && python package.py"
  64. ## Running tests
  65. The complete test suite is run with [Tox 1.7+][tox]. If you have it installed system-wide, you
  66. don't even need to set up a virtualenv. Just `cd` into the root project folder and run `tox`.
  67. If you don't have Tox system-wide, install it in your virtualenv with `pip install tox` and then
  68. run `tox`.
  69. You can also run automated tests without Tox. Extra requirements for running tests are in
  70. `requirements-extra.txt`. So, you can do `pip install -r requirements-extra.txt` inside your
  71. virtualenv and then `py.test core hscommon`
  72. [dupeguru]: https://dupeguru.voltaicideas.net/
  73. [cross-toolkit]: http://www.hardcoded.net/articles/cross-toolkit-software
  74. [documentation]: http://dupeguru.voltaicideas.net/help/en/
  75. [python]: http://www.python.org/
  76. [pyqt]: http://www.riverbankcomputing.com
  77. [tox]: https://tox.readthedocs.org/en/latest/