parallaxinc / PropellerIDE

An easy-to-use, cross-platform IDE for the Parallax Propeller
GNU General Public License v3.0
70 stars 26 forks source link

Enhancement: Packages for other Linux Distros #39

Open galbacarys opened 8 years ago

galbacarys commented 8 years ago

Hey guys,

I don't know if this has been proposed before, but I think it would be hugely beneficial to the community if the PropellerIDE and build tools were available for other packaging systems besides Debian derivatives.

I'm specifically on Arch Linux, and building this repo has been a giant pain since the Qt5 libraries are pretty much entirely modularly packaged in Arch. If the build is still busted in a couple of days I'll post another issue to see if I can get that diagnosed.

But in terms of Linux packaging, I think a lot of people would appreciate a .rpm (especially for school environments-my college uses Scientific Linux, which is a Red Hat derivative) and Arch packages. If no one else knows much about this, I do have a little experience with building .rpm's and may be able to help there.

Another option for Arch specifically would be creating an official AUR build script, which Arch users could pull from the AUR repository and install from source, obviating the need for a full-on extra distribution channel and instead leaning on cloning from git and building locally, but doing so automatically and with dependencies accounted for.

If these resources already exist, I would really appreciate being pointed in the right direction.

Thanks!

~Gabe

bweir commented 8 years ago

Hi there, Gabe,

Haha, it's absolutely been mentioned before, and it's been on my to-do for some time. It's just that its not as simple as that.

Writing packaging scripts is a lot of work, and they usually end up very custom and easy to break. That drives me crazy, so I took all the packaging scripts I was writing for PropellerIDE and began building a tool called Packthing that automates this process.

Packthing takes a config file that describes your project and generates a package compatible with a target platform. This makes it very easy to release new software, and I now use it all over the place.

So, PropellerIDE doesn't have its own packaging scripts. If you were interested in adding an RPM or AUR target to PropellerIDE, you would actually be adding it to Packthing. There is a learning curve, but you could use all the other targets and particularly the debian packager as a reference.

As you can see by the picture in the README, my dream is to support as many targets as humanly possible, so any support you could provide in making that happen would be awesome. Otherwise, I want to add these someday, but I can't guarantee when it'll happen.

You let me know and I'd be happy to help you get started. =P

galbacarys commented 8 years ago

I have a little experience with RPMs (mostly accidentally breaking our buildbot at work), so I'd be happy to give it a whirl!

As for an AUR script, I think so long as I can get the source building properly on my machine that should be pretty trivial. AUR scripts can be as simple as "download this git repo, run these build commands, and install it like an Arch package". So, once my new thinkpad comes in (fingers crossed, Wednesday!) I can look at getting that spun up. If I still have problems building come the end of this week, I'll let you know and see if we can get that reconciled.

~Gabe

bweir commented 8 years ago

Cool, I'll be waiting to hear from you!

On Sun, Apr 10, 2016 at 7:35 PM, Gabe Albacarys notifications@github.com wrote:

I have a little experience with RPMs (mostly accidentally breaking our buildbot at work), so I'd be happy to give it a whirl!

As for an AUR script, I think so long as I can get the source building properly on my machine that should be pretty trivial. AUR scripts can be as simple as "download this git repo, run these build commands, and install it like an Arch package". So, once my new thinkpad comes in (fingers crossed, Wednesday!) I can look at getting that spun up. If I still have problems building come the end of this week, I'll let you know and see if we can get that reconciled.

~Gabe

— You are receiving this because you commented. Reply to this email directly or view it on GitHub https://github.com/parallaxinc/PropellerIDE/issues/39#issuecomment-208129531

Brett Weir, Founder

Engineering Made Awesome 310.245.1775 • brett@lamestation.com • lamestation.com

Kristian-Charboneau commented 8 years ago

Perhaps providing a distro agnostic format like Snap, Flatpak, or AppImage would be a good idea. I haven't packaged anything with those, but I've read that they are supposed to be simpler to package than deb or rpm. I'm not sure if the sandboxing feature would mess things up though, especially with the serial port.

bweir commented 8 years ago

I've been looking at Snappy. It looks promising! However, I am dubious that any packaging system is easier than any other packaging system. My experience dictates packaging is a land of wizardry and arcane knowledge. =|

I'm doing some rework of packthing, which PropellerIDE uses. It hasn't scaled well as the number of packagers has increased, so I'm trying to clean up the implementation. I won't be adding new packagers until this effort is farther along, as its going to make life a lot easier in the long run.

probonopd commented 8 years ago

I would argue that AppImage is the easiest - it is "just" a self-mounting ISO file that gets loop-mounted when executed, and the payload app is then run.