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

Closed
ghost opened this issue Sep 11, 2016 · 10 comments
Closed

Rebuild Windows packaging #393

ghost opened this issue Sep 11, 2016 · 10 comments
Labels
enhancement Feature requests and enhancements. Windows Related to running on Windows.

Comments

@ghost
Copy link

ghost 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.

@ghost ghost added enhancement Feature requests and enhancements. Windows Related to running on Windows. labels Sep 11, 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 13, 2016
thekhalifa added a commit to thekhalifa/dupeguru that referenced this issue Nov 14, 2016
@anton87i
Copy link

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

@arsenetar
Copy link
Owner

@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.

@ghost
Copy link
Author

ghost 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?

@arsenetar
Copy link
Owner

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.

@arsenetar
Copy link
Owner

@hsoft I got more updates to the windows packaging. I added a Windows.md for now with some windows specific notes as well. We need to decide if these notes should go into the README.md 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.

@ghost
Copy link
Author

ghost 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.

ghost pushed a commit that referenced this issue Aug 28, 2017
* 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.
@arsenetar
Copy link
Owner

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

@ghost
Copy link
Author

ghost commented Sep 1, 2017

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

@ghost
Copy link
Author

ghost commented Sep 1, 2017

I think that we can close this issue now.

@ghost ghost closed this as completed Sep 1, 2017
@ghost
Copy link
Author

ghost 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.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Feature requests and enhancements. Windows Related to running on Windows.
Projects
None yet
Development

No branches or pull requests

2 participants