chrisnharvey / appimager

Tool to help with the development and packaging of AppImages.
MIT License
6 stars 3 forks source link

Use LSB SDK as the build system #4

Open probonopd opened 8 years ago

probonopd commented 8 years ago

If we use the LSB SDK as the build system, then the resulting binaries should be most compatible to systems out there.

http://www.linuxfoundation.org/collaborate/workgroups/lsb/build-lsb-compliant-application

http://ftp.linuxfoundation.org/pub/lsb/bundles/released-5.0.0/sdk/lsb-sdk-5.0.0-3.x86_64.tar.gz

probonopd commented 8 years ago

Here are some instructions that might be useful: https://wiki.linuxfoundation.org/en/Book/HowToDevel

chrisnharvey commented 8 years ago

Sounds like a good idea.

I tried to setup the LSB SDK last night on my Arch Linux machine, but didn't have much luck as it uses RPM packages. I'll give it another go soon to see if I can get it installed (if only they had an AppImage ;))

Do you know how LSB handles dependencies? I'm currently creating an Arch Linux Docker container as we can install almost any version of almost any dependency from https://archive.archlinux.org/

The scripts then parse the AppImage.yml file to get the list of dependencies and versions, and either generates a URL to the package on the Arch Linux archive and downloads and extracts these into the AppDir or installs them in the container for use in compiling the application.

I was unable to find another place that had an archive of pre-compiled Linux libs in multiple versions that we could easily download and extract into our AppDir.

probonopd commented 8 years ago

debian/ubuntu/dpkg comes to mind but like with all binaries you must make sure that the binaries you are using are compiled on an "old enough" base system, otherwise they will not run. A reasonable compromise right now seems to be ubuntu trusty or debian oldstable. See my Stellarium recipe for an example.

I have also had much success using CentOS 6 as a build system,

With LSB, you have to compile everything yourself that is not part of LSB SDK. Which has the advantage that the resulting binaries will run on even more systems.

chrisnharvey commented 8 years ago

You make a very good point.

Can LSB packages be compiled on any distro?

If so, I wonder if we could have a central repository of pre-compiled LSB libraries that AppImager can just download and place into the AppDir?

probonopd commented 8 years ago

There is/was(?) the LSB SI ("Sample Implementation") which basically contains a full system with all the libs that are part of the LSB.