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

Fix/windows build #1947

Draft
wants to merge 30 commits into
base: master
Choose a base branch
from
Draft

Fix/windows build #1947

wants to merge 30 commits into from

Conversation

uenz
Copy link
Contributor

@uenz uenz commented Jun 27, 2020

Based on pull-request of etinin
Changed to the same git as the MacOS version uses.
Changed to use Windows native OpenSSH.
The requirements are checked and automatically downloaded as a post build step.

@hbons
Copy link
Owner

hbons commented Jun 30, 2020

Thanks! I'll have a proper look at this soon.

@AvtechScientific
Copy link

AvtechScientific commented Mar 14, 2021

Any updates on this?

@svenstaro
Copy link

@hbons any chance to get this merged?

@hbons
Copy link
Owner

hbons commented May 21, 2021

Thanks for this. Most of this looks good, but I cannot except downloads from sources that are not vetted like these:

# in SparkleShare/Windows/postBuild.cmd 
https://github.com/senthilrajasek/tartool/releases/download/1.0.0/TarTool.zip

# in SparkleShare/Windows/sha256.cmd
https://github.com/npocmaka/batch.scripts/blob/master/fileUtils/sha256.bat

Is it possible to do this in a different way?

@uenz
Copy link
Contributor Author

uenz commented May 21, 2021

Its almost a year since request, i cant exactly remember the reasons.
TarTool maybe could be exchanged to Windows 10 tar.exe, which is now part of windows. Not sure if it also was a year ago.
The sha256.bat script is taken from https://github.com/npocmaka/batch.scripts/blob/master/fileUtils/sha256.bat,
which should be legal with the link reference in it. Found no other way to verify a file sha256 with windows.

@AvtechScientific
Copy link

AvtechScientific commented May 21, 2021 via email

@uenz
Copy link
Contributor Author

uenz commented May 21, 2021

I´m aware of git-scm. But that can lead to a path dependency of the buildscript.
I can easily eliminate TarToool.exe from the postBuild script by using the windows tar.exe.
But i cant see your point about sha256.cmd. Its no external dependency dependency and due to the MIT license it should also be legally ok. And it does its job out of the box.

@hbons
Copy link
Owner

hbons commented May 22, 2021

Thanks for the update. It's not really a legal issue, it's just that the sha256 bash script can easily be changed by someone else to run whatever they want.

@uenz
Copy link
Contributor Author

uenz commented May 22, 2021 via email

@AvtechScientific
Copy link

It were nice if the windows version could be updated. Thank you to all of you for your efforts!

Package of linked wix installer was outdated
@hbons hbons added the Windows label Aug 5, 2021
@uenz uenz force-pushed the fix/WindowsBuild branch 2 times, most recently from eda6a04 to ccd7820 Compare August 6, 2021 19:24
@uenz
Copy link
Contributor Author

uenz commented Aug 7, 2021

@hbons Now i think the job for a possible windows version is done. If you don't want the merge all these changes, which I could well understand, i would like to "publish" an unofficial windows build on my fork page so that other could profit from my effort. But only if that is ok for you, because it is your project.

@AvtechScientific
Copy link

@hbons - do you have any objection to the @uenz's fork or do you prefer to merge?

@AvtechScientific
Copy link

@uenz - thank you for the so much awaited update to the Windows front-end. Is there any CI pipeline in your fork that builds the Windows install packages automatically? Here is an example of such CI and here are the artifacts.

@uenz
Copy link
Contributor Author

uenz commented Aug 20, 2021

@AvtechScientific At the moment not. I don´t think that it is that easy because of the gui. I´l have a look.
If you can´t wait for @hbons answer you can download the scoure code and build it for yourself. Steps to do are here.

@AvtechScientific
Copy link

@AvtechScientific At the moment not. I don´t think that it is that easy because of the gui. I´l have a look.
If you can´t wait for @hbons answer you can download the scoure code and build it for yourself. Steps to do are here.

Also the example I have provided has gui. I actually assume it will be easier in the SparkleShare case. Probably this .NET docker image can help. Or maybe .NET and Wix in one image.

@PninimOrg
Copy link

Hi @hbons!

We are a charity where needy people are provided with occupation of digitizing ancient books. We use git as our repository. Since most editors are non-tech-savvy Windows user - we heavily rely on SparkleShare's (old) Windows frontend (which has several acute problems). May I ask you to update/merge it, please?... Thank you for your great tool!

@uenz
Copy link
Contributor Author

uenz commented Sep 3, 2021

Hi @hbons,
thanks to the hintsof @AvtechScientific i´ve a working travis-ci for the windows build. At the moment im struggling a bit with the upload of the build results to github as "nightly build". A update will follow the next days.

@BinyaminPekar
Copy link

Hi @hbons,
thanks to the hintsof @AvtechScientific i´ve a working travis-ci for the windows build. At the moment im struggling a bit with the upload of the build results to github as "nightly build". A update will follow the next days.

That's a great news! Waited for it for years! Thank you!

Copy link
Contributor Author

@uenz uenz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hbons : Here a working ci with deployment for Windows and MacOS.
In travis.yml i changed to jobs syntax and added deployment for windows and macos. Each untagged commit to master triggers a deployment. Commits to all other branches behave like before.
For the publishing it is necessary to set the ENV Variable GITHUB_TOKEN in travis-ci. It must contain an oauth key from github.
Unfortunately the linux docker command does not create an tar.gz file. So no deployment for linux yet.
The deployment publishes as draft, wich is only visible for project members. draft: false publishes directly.
Here is a sample output of the CI.

Here an short explanation of the changes

Changes in MacVersion:

  • Removed Linux and Windows for ReleaseDist in solution to compile without error
  • Fixed missing path in checkGit.sh to let postBuild.sh run without error

Changes in Common Files:

  • openssl is hardcoded without path. So openssl needs to be in path. This is not so good for Windows. So added option to set the path from outside. Default is as before.
  • Added debug output if a command is not found

Changes for Windows:

  • Automated git download
  • For ssh-keyscan, ssh-keygen and ssl use precompiled poweshell versions
  • Fixed missing / not working GUI elements
  • Fixed installer

@BinyaminPekar
Copy link

@uenz: could you, please check and confirm that your SparkleShare-windows-nightly.msi can clone a new project? I was not able to clone my SparkleShare fork on GitHub. However I must admit that it could be due to me messing around with the old and new installation and the Windows' AppData folder... Thank you for the great PR!

@uenz
Copy link
Contributor Author

uenz commented Sep 30, 2021

@BinyaminPekar Its a bit offtopic here, so please file an issue here. Then we get a place for discussion.

@uenz uenz marked this pull request as draft November 2, 2021 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants