Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebuild Windows packaging #393

hsoft opened this issue Sep 11, 2016 · 10 comments

Rebuild Windows packaging #393

hsoft opened this issue Sep 11, 2016 · 10 comments


Copy link

@hsoft hsoft commented Sep 11, 2016

Windows support has been dropped with v4.0 because the project lacks a Windows maintainer. If you'd like to step up to the task, great! You have to know however that your first challenge will be significant: the build system has to be redone.

The old Windows build system (you can see it if you checkout dupeGuru v3.x) was fragile, hardly reproducable and based on a proprietary system, Advanced Installer. To make the matter worse, it was a very old version.

That doesn't fly anymore. That system has to be remade. You, who would be dupeGuru's Windows maintainer, can use whatever open source tool you want, as long as the build is reproducable by anyone. I will help you in any way I can, but that help is inherently limited: I really don't know much about Windows.

There's a bit more details about this in #300.

thekhalifa added a commit to thekhalifa/dupeguru that referenced this issue Nov 13, 2016
thekhalifa added a commit to thekhalifa/dupeguru that referenced this issue Nov 13, 2016
thekhalifa added a commit to thekhalifa/dupeguru that referenced this issue Nov 14, 2016
Copy link

@QuestionableChanges QuestionableChanges commented Mar 25, 2017

Why was the installer added then removed?
Is someone actively looking into Windows 10 compatibility?

Copy link

@arsenetar arsenetar commented Jul 26, 2017

@hsoft I got some initial work on the installer script committed. Working through an issue with the venv / virtualenv and the --system-site-packages flag. The binary scripts from the system packages are not available in the virtual environment. This mainly just affects the pyrcc5 command in the makefile which I did not catch previously since I still had a cached result from an earlier run (I had turned off the --system-site-packages flag to debug an issue) . Options could be to specify the pyrcc5 command on windows via an environment variable to make or not use the --system-site-packages flag on windows. Unless I am missing something which is due to my local setup.

Copy link
Contributor Author

@hsoft hsoft commented Jul 27, 2017

@arsenetar I remember that I had problems with virtualenvs on windows as well. In my dev env, I didn't use virtualenvs at all. Not clean, but at the time, I didn't see alternatives.

If you don't use --system-site-packages, you're not going to be able to import PyQt5, no?

Copy link

@arsenetar arsenetar commented Jul 27, 2017

@hsoft If I do not use --system-site-packages then I just have to install PyQt5 into the virtualenv (which I have not had any issue doing via pip) and then it works fine.

Copy link

@arsenetar arsenetar commented Aug 8, 2017

@hsoft I got more updates to the windows packaging. I added a for now with some windows specific notes as well. We need to decide if these notes should go into the or if you would like them separate. Other files which are new are requirements-windows.txt and setup.nsi. If we are okay with these files then I will be working through some final testing on the installers and executables then I will be ready ready for a PR.

Side Note: looks like Send2Trash 1.4.0 broke windows functionality, I opened a issue over there. If we want a working dupeGuru on windows Send2Trash needs to be held back or fixed. I have just went back to 1.3.1 for now.

Copy link
Contributor Author

@hsoft hsoft commented Aug 8, 2017

Good news! I think you did the right thing using a separate file for Windows instructions. They're a bit lengthy to fit on the main README. We can add a link to it though.

I haven't looked at your changes with great attention yet, but I will try them when your PR is ready. I will have to dust-off my old win7 ISO and create a VM from it. The good news is that it's going to be a good test for the quality of your instructions: I will really have to start from scratch.

hsoft added a commit that referenced this issue Aug 28, 2017
* Update & .gitignore for windows

- Update to execute on windows as SIGQUIT is not available.
- Update .gitignore to ignore the generate .pyd files
Ref #300, #393

* Update for windows

Add package_windows back into
- 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
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
- 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 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 to integrate NSIS for windows
- Update makefile to deal with a few additional windows issues
- Add to contain specific windows instructions, if we want
this can be merged with
- 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

Fix broken python link and move nsis link for consistency.

* More Details in

Update 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.
Copy link

@arsenetar arsenetar commented Aug 30, 2017

@hsoft Windows Installer builds are on the way, I just sent an email.

Copy link
Contributor Author

@hsoft hsoft commented Sep 1, 2017

@arsenetar Thanks! I've verified that the installer work in my window VM and I've updated dupeGuru's webpage

Copy link
Contributor Author

@hsoft hsoft commented Sep 1, 2017

I think that we can close this issue now.

@hsoft hsoft closed this Sep 1, 2017
Copy link
Contributor Author

@hsoft hsoft commented Sep 1, 2017

Oh, as a closing comment: if anyone's interested in giving @arsenetar a hand, don't hesitate. I think there's a need in the build instructions department because it might be missing some details. If you look at #438, you'll see that I gave up trying to build the thing myself.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants
You can’t perform that action at this time.