Skip to content
This repository has been archived by the owner on Dec 18, 2022. It is now read-only.

Add Windows build artifact to releases #9

Closed
ghnp5 opened this issue Jul 4, 2021 · 34 comments
Closed

Add Windows build artifact to releases #9

ghnp5 opened this issue Jul 4, 2021 · 34 comments
Assignees
Labels
build Related to the software build process enhancement Idea or request for new feature help wanted Issue seeking extra attention or contributors packaging Release, artifact or package related

Comments

@ghnp5
Copy link

ghnp5 commented Jul 4, 2021

Thank you very much for this fork.

If possible, would you be able to create a build for Windows?
What I see in the Releases page is just a ArchLinux build.

Thanks!!

@ghnp5

This comment has been minimized.

@LumaerisArchive
Copy link

I'm not sure if Cookie Engineer is using Windows on a virtual machine or dual-boot at all. In this case, I can suggest Community Releases. We still need someone who uses macOS, though.

@ghnp5
Copy link
Author

ghnp5 commented Jul 5, 2021

Ok, sorry if I'm wrong, but can that be automated by GitHub Actions?

@emabrey
Copy link
Member

emabrey commented Jul 5, 2021

I use windows and can likely build a windows release, though I've never tried building this specific project from source before so I don't want to count my chicks before they hatch. What version of Windows/Windows SDK would we be targeting? I don't have an IntelliCode Authenticode certificate though, so it wouldn't be signed. It's almost midnight local time for me though, so if someone wants to assign this to me I can handle it in the morning.

@LumaerisArchive
Copy link

Ok, sorry if I'm wrong, but can that be automated by GitHub Actions?

So I read a little bit about GitHub Actions and it seems that they have hosted machines not only on Windows (surprise...), but also on macOS and Linux. So that should help.

@Ristellise
Copy link
Contributor

@Ristellise
Quick windows build. Oddly, github is refusing to upload a zip here.
https://files.catbox.moe/.......zip

Not the right way to do it. No one should trust an .exe inside that zip. That's the whole point of this fork.

The exe should be included in a Release tag from this repo.

Sigh, fine.
If someone wants to deal with creating an installer for it, suit yourselves.

@cookiengineer
Copy link
Contributor

Honestly, I currently don't have a Windows machine to provide signed builds or similar.

I also think that GitHub Actions might help with this, I've seen lots of other projects building their code via AppVeyor. As far as I can tell, their pricing model seems to be free for public projects and 1 concurrent job is enough for a build bot 😄

Currently the codebase also requires InnoSetup, and I have no effing clue how to make it work even when I'm on Windows. InnoSetup makes me think about all the legacy Windows XP problems era and instantly worries me 😟. Maybe someone else can provide more insights and can help out here?

@emabrey
Copy link
Member

emabrey commented Jul 5, 2021

@cookiengineer If you'll assign me to the relevant issues I can try to handle it.

@cookiengineer
Copy link
Contributor

cookiengineer commented Jul 5, 2021

@Ristellise Did you use InnoSetup to create the build or plain ol' MSVC?

@emabrey Would love you to take it over if you want :) Currently there seems to be a Workflow file for the GitHub Action called cmake_build.yml, it might be nice to split it up into 3 different job files so that it's easier to keep track of.

There also seem to be a lot of codesigning already integrated, which we probably should start to tackle at a later point once we've decided on a project name and created the GitHub orga for it.

@LumaerisArchive
Copy link

@cookiengineer, I think you misunderstood something. Inno Setup is used to create installers as it was for many programs but not to build software. So they used plain ol' MSVC for that.

@cookiengineer
Copy link
Contributor

cookiengineer commented Jul 5, 2021

@dsrev I know, but I was referring to the cmake build process, as the CMakeLists.txt includes the InnoSetup step/module from here. As all of the dependencies are built with cmake, I was hoping for a complete working build. A simple make won't cut it, as lots of dependencies are also downloaded and injected via conan (at least on Linux).

@LumaerisArchive
Copy link

Oh, I didn't know about that, to be honest. My bad 😅

@cookiengineer
Copy link
Contributor

They used a lot of cmake proxies for all kinds of things, but that makes it at least traceable when it comes to what is needed. I haven't gone through the wxWidgets fork of Audacity yet, there seem to be quite a lot of modifications compared to upstream HEAD. Tried diffing unsuccessfully with a flooded terminal 😆

@Ristellise
Copy link
Contributor

Ristellise commented Jul 5, 2021

@Ristellise Did you use InnoSetup to create the build or plain ol' MSVC?

Plain ol' MSVC, wanted to just get a Windows Build out without any of the extra fuss.

@Matthew-Beckett
Copy link

@emabrey I'd be quite excited to work with you on package publishing, I don't think I'd be a huge amount of help on the native Windows site, especially the InnoSetup stuff. But I would love to help lift building into somewhere automated and bring this fork up to parity with Audacity's package availability. I.e AUR, Apt Universe, Choclatey, etc...

@LumaerisArchive
Copy link

image

I tried to build with the innosetup target turned on. Everything compiled fine except for that target. I don't know what's wrong, Inno Setup is installed correctly. :/

@amias-channer
Copy link

i would be honoured to help with github actions to make builds and releases for this project.

heres a good primer on how it works
https://blog.devgenius.io/write-your-github-actions-workflow-for-build-windows-application-94e5a989f477

there are quite a lot of options and you will need to decide what will trigger a release and how much testing you want to run.

@golobitch
Copy link

image

I tried to build with the innosetup target turned on. Everything compiled fine except for that target. I don't know what's wrong, Inno Setup is installed correctly. :/

Check output window. Sometimes it show in output window which command fails (like some custom copy, etc.)

@User-green User-green mentioned this issue Jul 5, 2021
@emabrey
Copy link
Member

emabrey commented Jul 6, 2021

[Link to ZIP file deleted by moderator]

Quick windows build. Oddly, github is refusing to upload a zip here.

Unfortunately, I have to delete this link to the ZIP. Not because I'm accusing you of doing anything wrong, I appreciate your help, but because it's not safe to encourage that by making an exception. If we just flat don't allow it, it makes it much easier to identify potentially malicious people. I don't want to delete it, but there is already a fairly severe moderation problem here currently (due to trolls thru no fault of your own) and there is just too much risk that the chan trolls could use something like an EXE in a ZIP as a result. @Ristellise, would you like to help us by telling us exactly what build config/process you used to manually generate the artifact? If so I can put your hard work to use and avoid duplicating efforts.

@emabrey emabrey added build Related to the software build process enhancement Idea or request for new feature help wanted Issue seeking extra attention or contributors labels Jul 6, 2021
@LumaerisArchive
Copy link

@golobitch, alright, I'll try to build it again. Give me a few minutes...

@Ristellise
Copy link
Contributor

Ristellise commented Jul 6, 2021

SNIP

Unfortunately, I have to delete this link to the ZIP. Not because I'm accusing you of doing anything wrong, I appreciate your help, but because it's not safe to encourage that by making an exception. If we just flat don't allow it, it makes it much easier to identify potentially malicious people. I don't want to delete it, but there is already a fairly severe moderation problem here currently (due to trolls thru no fault of your own) and there is just too much risk that the chan trolls could use something like an EXE in a ZIP as a result. @Ristellise, would you like to help us by telling us exactly what build config/process you used to manually generate the artifact? If so I can put your hard work to use and avoid duplicating efforts.

Sure, I used MSVC (2019 afaik) to build it directly. I had cmake installed and exposed as a path env to run it. conan is required via a python installation which I have python preinstalled. conan can be easily built via pip install

Basically the building guide for windows is more or less up to date... or to put it into simpler words on how to build it:

  1. install python 3 which is greater than 3.8
  2. pip install conan / install conan
  3. install cmake. During installation, turn on the system env paths or what they are called.
  4. Install MSVC, make sure c++ desktop compilation is enabled.

Setup by now is done, below is the building steps:

  1. clone the git repo
  2. make a directory and open command prompt and cd into it
  3. cmake .. to tell cmake to select the parent directory to build it
  4. Have patience while conan builds dependencies
  5. once done open up MSVC and build from there
  6. Wait....
  7. Build is done.

PS: Removed Comment. For those quoting, please help to do so.

@LumaerisArchive
Copy link

LumaerisArchive commented Jul 6, 2021

Okay, this time it worked for me. The script for Inno Setup required the PRODUCT_NAME string from the final exe build, which should be in the innosetup/Package folder. But the problem was different - when building Debug the folder innosetup/Package was not created (obviously), and when building Release the folder was created but without some libraries for the program and the exe itself. Luckily, I also enabled the PACKAGE target and I said "Fine, I'll do it myself". Moved everything from the resulting ZIP to the above folder and the innosetup target was built successfully.

image

Can someone fix the innosetup target so that everything is perfect?

@emabrey emabrey changed the title Windows build Add windows build to releases Jul 6, 2021
@emabrey emabrey changed the title Add windows build to releases Add Windows build artifact to releases Jul 6, 2021
@emabrey
Copy link
Member

emabrey commented Jul 6, 2021

@Ristellise Thank you! I had to update my MSVC today (in addition to all the other issues you may be aware of), so I will look at that tomorrow and try to reproduce locally.

@dsrev Fantastic work! That might be best in a separate issue, since I can't immediately begin working on it and it seems like a big enough task to warrant its own issue.

@nofishonfriday
Copy link

nofishonfriday commented Jul 6, 2021

@amias-channer

i would be honoured to help with github actions to make builds and releases for this project.

Automated builds would be best imo.
So just make a pull request with the github actions set up? :)

@AnotherFoxGuy
Copy link
Contributor

Automated builds would be best imo.
So just make a pull request with the github actions set up? :)

GitHub actions is already set up, it only needs to be activated on this repo

@amias-channer
Copy link

amias-channer commented Jul 6, 2021 via email

@peepo5
Copy link

peepo5 commented Jul 6, 2021

Honestly, I currently don't have a Windows machine to provide signed builds or similar.

I also think that GitHub Actions might help with this, I've seen lots of other projects building their code via AppVeyor. As far as I can tell, their pricing model seems to be free for public projects and 1 concurrent job is enough for a build bot smile

Currently the codebase also requires InnoSetup, and I have no effing clue how to make it work even when I'm on Windows. InnoSetup makes me think about all the legacy Windows XP problems era and instantly worries me worried. Maybe someone else can provide more insights and can help out here?

Yes, but that ties the repo into github with is not FOSS. Maybe try an alternative (or ask for donations for a super epic compiling machine). If you want to change the hosting site in the future, github reliance may be bad.

@amias-channer
Copy link

amias-channer commented Jul 7, 2021 via email

@ajayyy
Copy link
Contributor

ajayyy commented Jul 8, 2021

GitHub actions seems to be already building Windows releases

@ajayyy ajayyy closed this as completed Jul 8, 2021
@ajayyy
Copy link
Contributor

ajayyy commented Jul 8, 2021

Maybe we need another issue about signing certificates?

@nunoperalta
Copy link

Can a Release be created, then, please?

@ajayyy
Copy link
Contributor

ajayyy commented Jul 8, 2021

@nunoperalta I think we should wait to change the assets first (logo and name)

For now, you can download a build from master using the links from https://nightly.link/tenacityteam/tenacity/workflows/cmake_build/master (This link always links to the latest build built by GitHub actions)

@trymeouteh
Copy link

Would like to see a Windows EXE installer eventually

@KaKi87
Copy link

KaKi87 commented Sep 29, 2021

Hello, any news on this ? I'm looking forward to downloading an executable setup file for Windows and a DEB or AppImage for Linux. Thanks

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
build Related to the software build process enhancement Idea or request for new feature help wanted Issue seeking extra attention or contributors packaging Release, artifact or package related
Projects
None yet
Development

No branches or pull requests