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
hsoft opened this Issue Sep 11, 2016 · 10 comments

Comments

3 participants
@hsoft
Owner

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

@QuestionableChanges

This comment has been minimized.

Show comment
Hide comment
@QuestionableChanges

QuestionableChanges Mar 25, 2017

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

QuestionableChanges commented Mar 25, 2017

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

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Jul 22, 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

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Jul 22, 2017

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

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Jul 24, 2017

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

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Jul 26, 2017

Add requirements-windows
Add the requirements-windows.txt
- contains cx-Freeze for bundling
Ref #393

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Jul 26, 2017

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

This comment has been minimized.

Show comment
Hide comment
@arsenetar

arsenetar Jul 26, 2017

Collaborator

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

Collaborator

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.

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Jul 27, 2017

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

This comment has been minimized.

Show comment
Hide comment
@hsoft

hsoft Jul 27, 2017

Owner

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

Owner

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?

@arsenetar

This comment has been minimized.

Show comment
Hide comment
@arsenetar

arsenetar Jul 27, 2017

Collaborator

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

Collaborator

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 added a commit to arsenetar/dupeguru that referenced this issue Aug 8, 2017

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

This comment has been minimized.

Show comment
Hide comment
@arsenetar

arsenetar Aug 8, 2017

Collaborator

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

Collaborator

arsenetar commented Aug 8, 2017

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

@hsoft

This comment has been minimized.

Show comment
Hide comment
@hsoft

hsoft Aug 8, 2017

Owner

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.

Owner

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.

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Aug 23, 2017

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

arsenetar added a commit to arsenetar/dupeguru that referenced this issue Aug 26, 2017

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.

hsoft added a commit that referenced this issue Aug 28, 2017

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

This comment has been minimized.

Show comment
Hide comment
@arsenetar

arsenetar Aug 30, 2017

Collaborator

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

Collaborator

arsenetar commented Aug 30, 2017

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

@hsoft

This comment has been minimized.

Show comment
Hide comment
@hsoft

hsoft Sep 1, 2017

Owner

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

Owner

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

@hsoft

This comment has been minimized.

Show comment
Hide comment
@hsoft

hsoft Sep 1, 2017

Owner

I think that we can close this issue now.

Owner

hsoft commented Sep 1, 2017

I think that we can close this issue now.

@hsoft hsoft closed this Sep 1, 2017

@hsoft

This comment has been minimized.

Show comment
Hide comment
@hsoft

hsoft Sep 1, 2017

Owner

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.

Owner

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