-
-
Notifications
You must be signed in to change notification settings - Fork 204
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
deb/rpm packages #319
deb/rpm packages #319
Conversation
234baed
to
8e1ae77
Compare
You may want to look at OpenSUSE's Open Build Service. I haven't used it myself but it can host repos as well as build packages for a wide variety of distros. OBS project info: http://openbuildservice.org/ As an example, here's a random package I found providing repos for Arch, Debian, Fedora, OpenSUSE, and Ubuntu: project page: https://build.opensuse.org/package/show/home:pbek:QOwnNotes/desktop I believe you can also set up continuous integration. |
Also set correct ruby version and dependencies in the travis config
WIP: - copyright file not working - changelog missing - other vars still need to be tweaked
WIP: - changelog - other rpmlint errors
Also add deploy_bintray_fix, so repo metadata does get recalculated.
And wrap all paths in quotes in postinst, postrm and prerm
Just a suggestion, instead of building for several different distros, why don't test which of the new universal application packages fits better your project.
They can simplify your software distribution. Snap is backed by Canonical, but Flatpak appears to have a lot of push on several distros lately. AppImages applications seams to me the easier for the users to install. |
Yes, I was thinking about that, but there would still be a ton of issues when building those universal packages. Not to mention that it would still be fairly complex. The main thing is though that I don't want to spend even more time on this matter when I don't use the packages myself. I'm basically the only developer of the Twitch GUI and I don't have the time also maintaining those packages, as it is quite a burden. As I've already said multiple times in the other threads, help would be really appreciated. |
Well I'm more of a user level of Linux, but I do follow a Linux show called Linux Unplugged ( http://www.jupiterbroadcasting.com/show/linuxun/ ), one the regular contributors is Mr Alan Pope (AKA Popey) https://twitter.com/popey he works for Canonical and is involved with the snapcraft project if I'm not mistaken, He is, by what I can infer on the show, a very approachable person and may be of more help on this issue. Hopefully this lead will help to alleviate the burden of distributing the application on Linux somehow. Thanks for supporting Linux with your software. P.S. After googling a bit on the issue looks like snap packages can be built automatically from git repos. here is the link https://snapcraft.io/docs/build-snaps/ci-integration This is hosted Today by Mr Alan Pope It may be helpful for the automation of Linux packages.
|
Recommend against snap. Each single snap adds between 6-10 seconds on boot time for me (and many other users). |
I'm going to close this PR now, as I haven't worked on this since at least 2017. I'll leave the branch on the repo though, even if it's very much outdated, just in case... Creating custom deb/rpm packages and hosting them on custom package repositories is something I simply don't want to maintain and invest time in. This is way too complex for someone who's not using these distros. Not to mention all the limitations and restrictions I already had to face during my attempt here. If NW.js was properly packaged on the distros' official repos or otherwise well maintained custom repos for these distros, then packaging Streamlink Twitch GUI would be much more simple, but this isn't the case. Regarding improving the packaging situation on deb/rpm based distros, I guess going the Snap/Flatpak/AppImage route is the way to go. Personally, I dislike both Snap and Flatpak for various reasons (Snap even more), which makes me not want to maintain those packages as well. AppImage on the other hand seems to be a far saner choice and it also can be built and hosted here. However, I haven't built an AppImage yet and only briefly read the docs a year ago. I'm pretty sure that lots of stuff has changed since then. If somebody wants to help with the creation of an AppImage build config, please check out #616. |
This is an attempt at creating packages and custom package repos for deb/rpm based package managers.
Due to restrictions of the build/distribution systems of many Linux distros (Ubuntu ppa, etc.), Streamlink Twitch GUI has to build/use its own packages/repos. The reason for this is the way of how NW.js applications are built (NW.js BLOB + App code).
Related issues:
#145 #149
WIP
This feels like reinventing the wheel somehow. The NWjs project does not have any build/packaging tools like Electron does have, so everyone is implementing their own stuff. This is quite tedious and being the only dev here makes it much harder maintaining all this instead of spending the time implementing new features to the app.
Package host
The host I've chosen for this is bintray, because deb and rpm repos can be easily set up there.
Unfortunately, the traffic is limited, so I'm not sure if this will all work.
There are no hosters with unlimited traffic and all others I know about are also far more expensive.
Building the packages
git clone https://github.com/streamlink/streamlink-twitch-gui.git cd streamlink-twitch-gui git checkout origin/packages sudo npm install -g bower grunt-cli npm install grunt build:prod grunt clean:dist dist:linux64deb:linux64rpm
Requires
ruby
,ruby-dev
andfpm
to be installed (sudo gem install fpm
). Alsodevscripts
andrpm
are required (when building on debian based distros).Checklist
Add an explicit list of NWjs' dependenciesThe deploy script of travis is configured to let bintray sign the packages and repos.
Having issues with signing the packages and the repo. Packages should be signed, but the repo metadata is invalid and DNF is complaining. Needs further investigation.
Other options
Maybe Flatpak packages can be the solution to this mess... The adoption of Flatpak in various distros seems to be much higher with Flatpak than with Snap.