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

Add ubuntu, buster-arm, fedora, macos and windows packaging #66

Conversation

QuantumEntangledAndy
Copy link
Collaborator

@QuantumEntangledAndy QuantumEntangledAndy commented Aug 10, 2020

This adds packages for various distros of linux and macos.

The debian packages are made with cargo-deb and the fedora with cargo-rpm

The macos package waa originally a homebrew tab but I have since swapped it to a PKG (installer).


Useage

  • Debian, (ubuntu amd64/buster armhf)

    1. Download deb
    2. Install neolink
    apt install ./name_of_downloaded_deb.deb
  • Fedora (amd64)

    1. Download rpm
    2. Install neolink
     yum install ./name_of_downloaded_rpm.rpm
  • Macos

    1. Download PKG
    2. Double click to install
  • Windows

    1. Download msi
    2. Double click to install

Closes #61
Closes #1 🎉 (well not the service part but that should be on the todo list)

@thirtythreeforty
Copy link
Owner

Thanks for this. Sorry I've been quiet for a while, I just bought a house and I'm in the process of moving in. I will try to review Real Soon Now :)

@QuantumEntangledAndy
Copy link
Collaborator Author

Congratulations :). Take your time, moving in takes much longer than we think :).

Also I'm planning to add a window msi using cargo Wix too then we will have all the OSes.

@QuantumEntangledAndy
Copy link
Collaborator Author

So I am trying to setup a windows test environment in Virtual Box. I am having trouble building neolink, as I cannot seem to link glib2 any idea how to resolve this? I've gotten the libraries installed but I am not sure how to set the library search path on windows... sigh

@QuantumEntangledAndy
Copy link
Collaborator Author

Nevermind I got glib and gobject to work but I am struggling to link gstreamer now... The same method I used for glib dosen't seem to work for gstreamer

fyi to those interested used this in the .cargo/config, with the gtk runtime from chocolatley

[target.x86_64-pc-windows-msvc.glib]
rustc-link-search = ["C:\\Program Files (x86)\\GTK2-Runtime\\bin"]

[target.x86_64-pc-windows-msvc.gobject]
rustc-link-search = ["C:\\Program Files (x86)\\GTK2-Runtime\\bin"]

@QuantumEntangledAndy
Copy link
Collaborator Author

Ok I had to add %GSTREAMER_1_0_ROOT_X86_64%\bin to the PATH and then it found it, not sure why rustc-link-search did not find it though

@QuantumEntangledAndy
Copy link
Collaborator Author

I think I have a working msi for neolink, only I couldn't get the dependency check on gstreamer to work correctly. Will look into it when I can

Windows lacks the sed command by default, so just use powershell 
functions instead
@QuantumEntangledAndy
Copy link
Collaborator Author

QuantumEntangledAndy commented Sep 17, 2020

Given our discussion in #59 I am swapping the mac build to use the pkg from gstreamer (since the pkg installer this PR makes for neolink explicitly searches for it in /Library/Framework/Gstreamer.framework)

@QuantumEntangledAndy
Copy link
Collaborator Author

QuantumEntangledAndy commented Sep 17, 2020

So I am relatively happy with how this is working.

There is a further imporement that we could do:

  • We can package gstreamer into the win and mac installers.

This would mean that we would need to ship it bundled together with gstreamer

  • wixtoolset dosen't support remote download for msi (only exe installers)
  • mac pkg times out during download because of its size.

This will mean that it will bump up the size of our packages by about 100-200MB

@thirtythreeforty
Copy link
Owner

wixtoolset dosen't support remote download for msi (only exe installers)

The sanctioned approach for WiX is to use the merge module that Gstreamer ships with their dev package. The merge module will literally merge with the MSI and become a single installable. I've done it before for the MSVC runtime; it's quite clean.

I don't have a strong opinion about the Mac pkg yet.

@QuantumEntangledAndy QuantumEntangledAndy changed the title Add ubuntu, buster-arm, fedora and macos packaging Add ubuntu, buster-arm, fedora, macos and windows packaging Sep 18, 2020
I originally planned to extract the pkg components from the runtime 
deployment pkg and use them. But they are not valid outside of the 
bundle so we have to deploy the whole gstreamer app.
@QuantumEntangledAndy
Copy link
Collaborator Author

  • Win: I have added the merge modules into the msi (havent tested yet as need to get my win VM back up)

  • Mac: I have put gstreamer into the post install script as suggested in the gstraemer docs

@QuantumEntangledAndy
Copy link
Collaborator Author

QuantumEntangledAndy commented Sep 21, 2020

In terms of adding services would you be ok with using nssm

or would you prefer to go down the rust https://github.com/mullvad/windows-service-rs route and implement the expected functions directly into neolink

@QuantumEntangledAndy
Copy link
Collaborator Author

With no progress on my PRs in years I am closing them in favour of working on my own fork

@QuantumEntangledAndy QuantumEntangledAndy deleted the packages branch March 1, 2023 07:23
QuantumEntangledAndy referenced this pull request in kevin-david/neolink May 19, 2023
…fix/mqtt_asyncio

Update mqtt to use tokio
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Creating Packages Implement Windows installer
2 participants