-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Package building on Linux #2556
Comments
If you want a @Umcaruje not sure where the @pbella Can you clarify this requirement please?
If you're ok with a |
I'm looking for something similar to, and that would help with #1620, but a bit different: a Debian, rather than Ubuntu package (similar, but not necessarily the same) To clarify what I mean (I'm spit-balling terms here as best I can given my current knowledge of the details of Linux .deb-based packaging):
I took a look at #1620 but this appears to be a cheat sheet to get to 1 for the Ubuntu repos assuming that 3 already exists. (unless I'm missing something, the cheat sheet doesn't cover how to actually create 3) My original request was for how to take the binary build product from make to create #2 but let's change my request to how to take a snapshot of the source tree from git to create #3 since that will address my immediate need and sounds like it will help get to #1. Once I figure out how to get 3, and then 2, done locally, I would be happy to volunteer to step up as the Debian package manager if that is a job that needs someone to fill. From reading some of the earlier conversation on this subject, I think what Isreal was saying is that with the Debian package in place, since Ubuntu is based on Debian, the Ubuntu package maintainers life is easier. If we don't have anyone available right now who knows the details of how to get from 3 to 1, I'll be happy to start doing some research... (one thing I would need help with doing a 64-bit build with support for 32-bit VSTs... that's something I have not yet been able to get working properly) |
Your response is giving me a headache. If you're looking to make a self-contained installable package for Debian (similar to how Chrome distributes their software for Ubuntu), I think the aforementioned wiki link is in the right direction. We also have some community members that are packaging LMMS for platform such as Ubuntu and KXStudio which can really help with the build process, even if it's not exactly what you're aiming to do. I've taken the initiative to do this for Apple. Toby did this for Windows. Linux shouldn't be all that bad and certainly less work if you can move away from shared libs as easily as Mac allows it. (I've linked the tutorials, but the relevant scripts are in various locations such as cmake, shell scripts, etc I'd be happy to link them specifically per request). |
|
Sorry... the combination of my lack of proper terminology and how packaging works (it is a bit of a different kind of animal given how Debian apps typically are packaged) didn't make for an easy read. I appreciate the pointers and I'll start poking around... |
Well, easier installing of the program is User Expirience, isn't it? Currently its a lot trickier to acquire the newest version of LMMS on Linux than it is for other platforms. |
Well, in that case, everything improves user experience. 😈
I wholeheartedly agree and I've always shared this feeling although I've had push back from the original devs about this topic. I can hunt down the old conversations if needed. |
@pbella Sorry I have been so busy lately I just got in on this thread. This is all explained in the wiki page @tres referred you too.
(then convert the master.zip into a tar.gz file with a name similar to the version... something like lmms-1.1.3.tar.gz)
(type in your message) pbuilder-dist YOURdistro build lmms_version-ubuntu revision number.dsc
of course it is better to manually install the lmms && lmms-common version you specifically made if you have built more than one |
@Israel- thanks, that fills in the blanks for me |
Hello guys, i want contribute with a way to do it. with cpack: this is the recipe. inside main project; |
Hello again, i was uploaded the package to ppa : https://launchpad.net/~skypce/+archive/ubuntu/lmms in lmms/debian/changelog GNU nano 2.2.6 File: changelog lmms (1.1.90-0ubuntu1) trusty; urgency=low
i was copy the original debian/control file from lmms-1.1.90.tar.gz to the new lmms folder. bzr add debian/source/format debuild -S -kyourkey dput ppa:skypce/lmms lmms_1.1.90-0ubuntu1_source.changes /end/ dpkg-buildpackage I was added package depends to the control file. |
For Debian users, I could add the packaging to build experimental packages with |
hello, i can compile lmms amd 64 for ubuntu 14.04 , this is the ppa : 2016-06-14 17:17 GMT-04:00 Olivier Humbert notifications@github.com:
|
I this also 'you' I must admit, that i am totally off my comfort zone in that topic. I cant even say if the topic is legit, or it is some kind of bogus click-for-russian-mail-order-brides :) |
@musikBear good link actually. Here's some more information surrounding the topic of unconventional Linux packaging: http://arstechnica.com/information-technology/2016/06/goodbye-apt-and-yum-ubuntus-snap-apps-are-coming-to-distros-everywhere/ The important part is this:
But this is a relatively new technology and isn't the only one... here's another quote:
So no worries, the forum post is spot-on and now you have some information to share back with the OP. |
Hey Guys, i found this : Packages compatible with all linux distro and with none dependency. enjoy 2016-06-15 8:36 GMT-04:00 Tres Finocchiaro notifications@github.com:
|
I was considering to add the packaging that would work for Debian Jessie and Ubuntu Trusty, but if Snap or AppImage are preferred, I will not add it. Of course, both Debian packaging and Snap package could be added. |
Hello, i was trying to generate a appImage . i was attached the result file. 2016-06-17 16:12 GMT-04:00 Javier Serrano Polo notifications@github.com:
|
hey guys, i can create a AppImage of latest master branch of git. only 2016-06-30 11:46 GMT-04:00 skypce skypce@gmail.com:
|
Rather than the AppImage, we need the steps to build the image and integrate them into the Travis build. |
Sure Guys, i will share with you step by step: Step 2 : When you have the deb package: i use the google-chrome recipe: (https://github.com/probonopd/AppImageKit/wiki/Bundling-Google-Chrome) you can see in right aside a lot of more recipes. Try to run ./AppRunremove deb file from lmms.AppImage |
1 similar comment
Sure Guys, i will share with you step by step: Step 2 : When you have the deb package: i use the google-chrome recipe: (https://github.com/probonopd/AppImageKit/wiki/Bundling-Google-Chrome) you can see in right aside a lot of more recipes. Try to run ./AppRunremove deb file from lmms.AppImage |
There are problems with an AppImage:
I am not sure a package without dependencies is the way to go. Should a big package for Linux be provided? |
In short, yes but this is a cultural adoption by Linux, not necessarily a LMMS decision. If AppImage is lucky enough to actually succeed (I remember all the hype LinSpire had around Click-N-Run) then we may finally be in a positions where applications for Linux "just work". On the contrary, if Linux continues to be of the mindset that everything must be shared libraries, then this idea will continue to fail.
We'd never do that. Ideally, if Wine's available, we use it. If not, we don't. Bundling Wine is arguably the same thing as just making LMMS a Wine bottle to begin with and shipping the entire Windows version as an AppImage. As ridiculous as this sounds, that's what the author of the Packt book used to run LMMS on his Mac per something like this.
Right, we'd have to do the same type of packaging we do today for Mac and Windows where we distribute the exact version used during the build process. Qt for Mac has a tool called
The biggest complaint I can see from users (which is still a problem today) is the redundant LADSPA plugins. We don't really bundle any well known instrument-patches (PAT, SF2, GIG), so that would be a non-issue. I'm not sure the relevance of the samples collection, we'd always want to bundle that AFAIK.
For LMMS, sure. I'd hope it would work this way but I agree we'd have to make sure they're not introduced as shared libraries to the system. That would cause a lot of problems. I too am not sure if this is a good idea, but I'm willing to try it. Currently, LMMS is about 25-30MB on Mac and Windows. Both Mac and Windows ship without the majority of what's needed for LMMS to run, so the majority of dependencies are all bundled and packaged into our installers. It seems wasteful, but it's not a new idea and it's one I would like to see tried on Linux. 👍 |
Sorry about your long answer. The only point was that AppImage requires FUSE. Mounting is a privileged action and LMMS does not require such a privilege. If mounting is not an option, then a self-extractable is the way to go. The AppImage should work like a self-extractable. The file should be small, so we use XZ compression. An issue is that we have tried I do not see the point in using AppImage in our scenario. What would be the advantage? |
Embedding digital signatures sounds like an advantage; we could use AppImage as an improved installer. We should consider AppImage in the future. |
You can
Another one: Portable use cases. Put LMMS on a (Live) USB stick. Be able to run from that. |
Wrote an AppImage recipe that converts the deb from the PPA into an AppImage: Try there AppImage here: Some fine-tuning is expected to be needed. Let me know how it goes. |
I cannot give an answer yet. We need to tweak some libraries for LMMS first (Qt5). We should consider AppImage afterward. |
1 similar comment
I cannot give an answer yet. We need to tweak some libraries for LMMS first (Qt5). We should consider AppImage afterward. |
Any updates in appimage support? |
None, but if you have experience with relinking and packaging Linux applications, please offer some assistance over at #2932, we could use the help! |
I already have problems packaging by myself (AppImageCommunity/pkg2appimage#237) but I can try |
That bug you linked... That script right before the copy is probably bombing out, could be a multitude of reasons but probably a basic script error that's not getting echoed to the screen properly and erroring in the wrong place and never being caught. We're moving to Our packaging problems are more library copying and relinking related. AppImage will be possible once the But we only have a few volunteers and very few with packaging experience, hence the request for help. :) |
Actually you aren't specifying the right extract folder when you extract the tarball, that logic won't work. Also expect everything to use a random directory inside tmp. What is so attractive about AppImage btw? Makeself does the same exact thing and is very universal. |
Please see #2556 (comment) - I have made AppImage no one has commented on so far. If people like, we can also package the build artifacts from Travis CI as AppImages. Let me know if there is interest. |
Providing an AppImage would have, among others, these advantages:
Here is an overview of projects that are already distributing upstream-provided, official AppImages.
Makeself requires you to unpack an archive, adding one more step do do, that can also take some time. Also there is no automatic desktop integration (like with the optional But the other way around, AppImages can entirely replace the need for
|
Every single application I've seen that uses AppImage just works ™. I think that is saying a lot since, even today, downloading and running Linux apps is always a shot in the dark unless you're installing them directly from your distribution's repositories. Just wanted to add that I'm very happy with how it worked for me as an user in the past for other projects. If Debian continues to offer a |
I mean over the tried and trued The diff feature seems OK if a package manager is being used, and signing is good if you know who to trust, but the other points are just describing how a self contained app works, not why it's better than a All serious apps I've installed are |
Tukkek you do know if someone is willing to package and put them in a
ppa repository you can get the latest versions of lmms for your version
of debian/ubuntu from there.
---
Regards,
Jonathan Aquilina
On 2017-05-14 21:44, tukkek wrote:
Every single application I've seen that uses AppImage _just works_(tm). I think that is saying a lot since, even today, downloading and running Linux apps is always a shot in the dark unless you're installing it directly from your distribution's repositories.
Just wanted to add that I'm very happy with how it worked for me as an user in the past for other projects. If Debian continues to offer a `lmms package I'll always install it from the repositories but an AppImage is a great alternative if the Debian version ever goes out-of-date or if I install another distribution in the future.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub [1], or mute the thread [2].
Links:
------
[1] #2556 (comment)
|
Comparing AppImages with @eagles051387 the current Debian package (on the |
so @probonopd I just tried your Appimage, and I must say I'm impressed with this. The size is similar to the one of our windows installers, it also has an option to integrate with your environment and it works like a charm. Also everything works with a click and it's not intrusive to the system. I love it, and I would really be interested if we could provide this to the users, and if we could get an automated Travis task to do this. |
If it doesn't contain the majority of dependent libraries then it won't work cross-distros.
makeself already does this.
makeself already does this.
makeself already does this.
makeself has this ablity, and already discussed here.
makeself can do this.
makeself can do this.
makeself can do this, albeit manually
makeself cannot do this.
I've never signed a
makeself can do this.
rare edge-case but makeself can do this too.
Please don't We also need to know which OSs ship with
Having installed a At the end of the day, I don't believe these tasks are separate. Both system move shared objects and binaries into a directory so an application can be run. What container we wrap the files in is a mostly superficial decision because 1. To validate a "good" signature versus "bad" requires a chain of trust. This is the same on all OSs, really. 2. The |
If your best argument is "makeself does everything that AppImage does" then why are you so invested against AppImage? You just proved they're both on par - except me and others here seem to think AppImage is a better solution. If you have tried to express any reason why
The fact that
So what? The use case is vastly different. They're installing software, which I agree Trying to advance the discussion, though: honestly, does anyone here see a problem offering both an AppImage and a I'm not saying that LMMS should indeterminately and officially maintain two build scripts - just that as long as someone is willing to contribute them in a 100% ready state, there is no downside to offering both files for download. With time, it will become clear which one has the most technical merits or shortcomings and in the future it will be easy enough to drop one of them and maintain the other one if that's necessary. |
I don't think that |
This is the wrong place to cast a vote for a package bundler. If there's limitations, point them out. Anything else is simply wasting valuable developers time. Please stop arguing and keep the content technical or this thread will be locked in favor of a PR. Now to answer the actual content of these long-winded replies...
This isn't a democracy. We accept code that works and the admins that run the project try their best to weight the differences when a conflict arises. Opening a PR is a good way to prove a point. Then we can test the code instead of speculate about it.
We'd all love that, but I remember something being said about setting the file executable. If that's true, it's not a single-click. If we can set executable flag prior to download (or buy a trusted certificate to unlock this) let's talk about that. It's relevant. Although I do agree that double-clicking a file is easier than executing it through terminal, it's still not correcting the packing problems which will occur regardless. It took quite a while to fix the linking and bundling problems with Mac, so if we can focus on the viability of the package instead of the container format, we'll be closer to offering this as a download.
If
This is true for all storage on a live partition. Not sure how this is different. Has someone tried our
I think this is a good selling point but we should also identify projects which have adopted it, especially if they're Qt based so that we can learn from their packaging system.
Well, they aren't necessarily two separate scripts. If an We're just waiting on someone getting a successful bundle. Wrapping the |
I installed an nvidia driver yesterday (they use There is no easy way around this because it's a Linux security feature, making this point near-irrelevant. If it was very easy for people to just automatically set
Today. Who knows what the installer size will be 2 years from now? Nobody can predict the future. This becomes an even bigger issue on live distributions because no matter where the data is extracted at (
If you're not sure then you missed my point entirely: people using Live distributions, very often, will pack their "mobile" apps on a removable device or into the live media itself (if they've built it themselves), avoiding having to redownload whatever applications are needed after every boot. This means that with an AppImage the files reside only on a USB drive or the live media itself (say, a DVD) while with a If you're thinking about the use case of a live CD user downloading the entire package from the website after every boot, then, in the case of a Anyway, I'm not sure if Live sessions should be a concern at all for LMMS, I just brought it up initially because someone mentioned them here prior. It's easy to see though that AppImage makes this a complete non-issue, making it more suitable, at least in this case, for self-contained execution.
Explain to me why, when @probonopd already has a working AppImage, verified by yourself, using a very simple YAML recipe? You were advocating for keeping this discussion strictly towards the benefits of each packaging method. What technical advantages does building an AppImage from scractch have over a deb-based one? |
Two reasons...
No one made claim that it did. It was only a rebuttal to the glittering generality of this statement.
Lets, please avoid
Let's use arguments we can safely measure, but to entertain the question, the project maintainers have a pretty good idea. It forces us a bit off-topic to explain, but we at least have the best idea as we've seen the project grow for several years, so we are in the best place to make an educated guess. 0.4.5 was released in 2009 at
Taking
Thanks for the background information. This is an interesting use-case. I am more familiar with users baking software directly onto the medium. I can see how the FUSE support makes this less burdensome, like plugging in a removable drive and running.
I'm not either, but the live CD argument does raise some good points and the marketing appeal of making the latest LMMS available on a live medium has its merits. So what I'm reading is that AppImage is extremely similar to the way Apple does the DMGs, except:
On a side note, having such a "Portable" installation does carry it's own caveats, mostly caused by working paths and relative paths, but we've done a pretty good job of coding for these caveats. From a support perspective, writing the installer ourselves yields predictable install locations, which is a plus from the project's perspective. The vast user-base creates a lot of support chatter. Controlling the manner in which an application is installed and registered with the OS can offer some advantages. Mac gets around this problem by just having a culture that expects everything dragged to But this is all just chatter until it happens. If someone can prepare a PR for AppImage, we can start debugging and troubleshooting it together. Making it before the 1.2 release would really be beneficial to the community at large (regardless of the container format). |
Neither does
@probonopd can you create a pull request adding your recipe into something the project can use? You mentioned in a previous comment that you were willing to make it happen as a Travis artifact build, if there was any interest. I think it's safe to say now that there is a real interest here.
Seems to me @probonopd is quite ready to deliver on that. |
Since the intent of most recent comments are around "being right" instead of "whats right" by the continual |
Superseded by #3558 (#3688). Some of the conversation in this thread is around packaging for a specific distribution and many of those issues are still valid, however those tasks are currently maintained by the OS packagers themselves. If this changes, we can open a new issue, or discuss on Discord. |
Something that would be very handy would be a means to locally build a Linux package (i.e. a .deb that can be built/installed locally, not THE Linux package) that would make it easier to install/test/remove a given build. This may just be a documentation issue as the existing build process has a package build product that appears to be the input to the package building process but I haven't seen any docs on how to get to a .deb...
The text was updated successfully, but these errors were encountered: