Build a portable linux binary?

classic Classic list List threaded Threaded
28 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

tmacchant
>>  Thanks for sharing!

>>
https://wiki.octave.org/Octave_for_Debian_systems
Compiling from source


is also helpful.
(Contents should be updated.)

However, this does not install TeX related packages which  are required for development branch build.
  sudo apt build-dep gnuplot
installs a lot of TeX package (texlive) .

But I should  install "texlive-generic-recommended for development branch build.
  sudo apt install texlive-generic-recommended

unless you already install it.

Tatsuro

Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

roland65
In reply to this post by John W. Eaton
John W. Eaton wrote
> Other options like flatpak seem promising [...]All for
> what?  To avoid updating the OS?

I understand your point, however, as said by Przemek "many people have the
OS imposed on them by their inflexible IT organization". This is indeed the
case in big companies.

Moreover, updating the system is not always desirable. For example, I use
Ubuntu LTS for its stability and long support and I don't want to update
every six months to a semi stable system. But then, the Octave shipped with
Ubuntu LTS is several versions behind...


 



--
Sent from: http://octave.1599824.n4.nabble.com/Octave-Maintainers-f1638794.html

Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

Richard Crozier
In reply to this post by Przemek Klosowski-7

>
> (*) THis is a serious problem that you mention: old distros sometimes
> prevent the use of new packages. At the same time, I am perplexed and
> frustrated when people insist  on simultaneously using some obsolete
> base OS and the newest version of enduser software like Octave. Having
> said that, I do realize that many people have the OS imposed on them by
> their inflexible IT organization.
>
>

It's not just inflexible IT infrastructures, I for one know that
upgrading my laptop OS will take at least a day by the time everything
is done. This is one or more days I don't get paid for, or spend with my
family or whatever (I'm only part time at a university in case you
wonder from my email address). Therefore I use the LTS release of Ubuntu
for as long as possible until forced to upgrade because of the out of
date package situation.

As someone else has pointed out though, actually for me the problem is
that even the latest OS, e.g. Ubuntu 18.04 has an out of date Octave
package in the repositories. For me, I routinely build Octave from
source, but if I want people to use stuff which uses the latest(ish)
features, they have to build Octave too. Remember this is *hard* for
ordinary users who don't even know about make for example.

However, I also get the difficulty of achieving a portable binary,
having tried it myself. I just wish it wasn't so. The Flatpak solution
would be great, if it didn't stop Octave packages linking to non Flatpak
libraries.

Regards,

Richard
The University of Edinburgh is a charitable body, registered in Scotland, with registration number SC005336.
Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

Mike Miller-4
On Sat, Feb 23, 2019 at 09:06:06 +0000, CROZIER Richard wrote:
> As someone else has pointed out though, actually for me the problem is
> that even the latest OS, e.g. Ubuntu 18.04 has an out of date Octave
> package in the repositories. For me, I routinely build Octave from
> source,

Is there anything we here can do as a community to help counter this
belief that Octave from Ubuntu LTS is "out of date"? It's a relative
term. Compared to Octave 3.2, Octave 4.2 is an amazing improvement.

If I have a system with Ubuntu 16.04, which is old but still supported,
I will get Octave 4.0. If I just want Octave, I probably don't care that
it's 4.0, so it's not "out of date" to me, it works perfectly fine. I
will also get GNOME 3.18 and LibreOffice 5, which also work perfectly
fine even though they are not the bleeding edge latest release.

"Stable" distributions will always have applications that are years
behind what developers are working on now, that's how the distribution
model works.

> but if I want people to use stuff which uses the latest(ish)
> features, they have to build Octave too. Remember this is *hard* for
> ordinary users who don't even know about make for example.

I agree, ordinary users should absolutely not be building Octave from
source, unless they want to.

Ordinary users should be installing Octave from some kind of package
manager (apt, dnf, yum, brew, flatpak, snap), or possibly a package
manager inside a chroot, container, or virtual machine. Many viable
options easier than building from source.

Users should absolutely not be downloading some binary tarball from a
web site to install Octave (or any other application).

> The Flatpak solution
> would be great, if it didn't stop Octave packages linking to non Flatpak
> libraries.

I read this is as: the Flatpak solution is great, unless you need to
install one of a small number of Forge packages that depend on
third-party system libraries, right?

I fully support the Flatpak package, and this seems like a niche
objection to me. If it's an important problem to you, can you help? Can
you document which packages don't install because of unavailable system
libraries?

If I maintained a package that linked with, let's say the Speex library,
then I would probably bundle the speex source with my package so it is
downloaded and built inside the package instead of relying on system
libraries.

--
mike

signature.asc (849 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

nrjank


On Sat, Feb 23, 2019 at 14:56 Mike Miller <[hidden email]> wrote:
On Sat, Feb 23, 2019 at 09:06:06 +0000, CROZIER Richard wrote:
> As someone else has pointed out though, actually for me the problem is
> that even the latest OS, e.g. Ubuntu 18.04 has an out of date Octave
> package in the repositories. For me, I routinely build Octave from
> source,

Is there anything we here can do as a community to help counter this
belief that Octave from Ubuntu LTS is "out of date"? It's a relative
term. Compared to Octave 3.2, Octave 4.2 is an amazing improvement.

This whole conversation is, perhaps for the first time in this community, giving me the feeling that I have an advantage by being a windows user. The standard windows model is ‘go get that thing and install it. With few exceptions, everything the program needs to run is self contained.’  Yes, i recognize that that puts more burden on you developers.  But installing an updated binary (think Firefox, libreoffice, etc) is just a necessary process and  sometimes automated. 



If I have a system with Ubuntu 16.04, which is old but still supported,
I will get Octave 4.0. If I just want Octave, I probably don't care that
it's 4.0, so it's not "out of date" to me, it works perfectly fine.

Yet when users on help list ask anything, a frequent response is ‘you’re using an out of date version can you try a more recent one, that was fixed in 4.x’  With windows I can just tell them to go download the more recent binary.  On Linux does that mean ‘go build from source’? How easy is it for someone to use a different package repo to get a newer version? 


I
will also get GNOME 3.18 and LibreOffice 5, which also work perfectly
fine even though they are not the bleeding edge latest release.

But we’re a comparison/replacement product. Libreoffice 5 stands alone as a stable basic product. For some people ‘basic’ usage of octave requires some 2010 matlab compatibility that just isn’t implemented yet. So ‘out of date’ means very different things to different users. A lot was implemented between octave 4 and 5 that could render the product useless for some users. 

I had mentioned a while back that it might be worth generating a comparison function list with past matlab versions and encouraging old missing function implementation so we could verify ‘99% function compatible with matlab 2006’, or similar. We just got a host of newbie users posting homework style questions in help, and at least one ranted about ‘omg this sux none of the functions I want are implemented’.  If it’s  not obvious how a user can check/expect some level of compatibility, and it’s not trivial to upgrade to the newest version to get a recently implemented function, and the only other way is to compile from source, new user retention will be the worse for it. 



> but if I want people to use stuff which uses the latest(ish)
> features, they have to build Octave too. Remember this is *hard* for
> ordinary users who don't even know about make for example.

I agree, ordinary users should absolutely not be building Octave from
source, unless they want to.

In windows, I can at least always be sure I’m getting the latest release, since binary release is the only distro model. If I really really needed some dev function, I’d have to manually implement or crosscompile. But that delta (in time) is typically small. Thanks to you fine folks I never have “we’re up to 5.1 but we haven’t built a win binary since 4.0” problems. When 5.1 comes out, 5.1 is quickly there to download.


Users should absolutely not be downloading some binary tarball from a
web site to install Octave (or any other application).

Again, that’s the lovely (virus ridden) windows model, and lots of people are familiar with that model even if they usually work on linux. I don’t think people would object that heavily even if maybe they “shouldn’t” do it that way.

I’m still thinking the OS agnostic virtual appliance model could be worthwhile.

Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

tmacchant
In reply to this post by roland65
--- jankowskin

>
>
> On Sat, Feb 23, 2019 at 14:56 Mike Miller <[hidden email]> wrote:
> On Sat, Feb 23, 2019 at 09:06:06 +0000, CROZIER Richard wrote:
> > As someone else has pointed out though, actually for me the problem is
> > that even the latest OS, e.g. Ubuntu 18.04 has an out of date Octave
> > package in the repositories. For me, I routinely build Octave from
> > source,
>
> Is there anything we here can do as a community to help counter this
> belief that Octave from Ubuntu LTS is "out of date"? It's a relative
> term. Compared to Octave 3.2, Octave 4.2 is an amazing improvement.
>
> This whole conversation is, perhaps for the first time in this community, giving me the feeling that I have an advantage by being a windows user. The standard windows model is ‘go get that thing and install it. With few exceptions, everything the program needs to run is self contained.’  Yes, i recognize that that puts more burden on you developers.  But installing an updated binary (think Firefox, libreoffice, etc) is just a necessary process and  sometimes automated. 
>
>
>
> If I have a system with Ubuntu 16.04, which is old but still supported,
> I will get Octave 4.0. If I just want Octave, I probably don't care that
> it's 4.0, so it's not "out of date" to me, it works perfectly fine.
> Yet when users on help list ask anything, a frequent response is ‘you’re using an out of date version can you try a more recent one, that was fixed in 4.x’  With windows I can just tell them to go download the more recent binary.  On Linux does that mean ‘go build from source’? How easy is it for someone to use a different package repo to get a newer version? 
>
>
> I
> will also get GNOME 3.18 and LibreOffice 5, which also work perfectly
> fine even though they are not the bleeding edge latest release.
> But we’re a comparison/replacement product. Libreoffice 5 stands alone as a stable basic product. For some people ‘basic’ usage of octave requires some 2010 matlab compatibility that just isn’t implemented yet. So ‘out of date’ means very different things to different users. A lot was implemented between octave 4 and 5 that could render the product useless for some users. 
>
> I had mentioned a while back that it might be worth generating a comparison function list with past matlab versions and encouraging old missing function implementation so we could verify ‘99% function compatible with matlab 2006’, or similar. We just got a host of newbie users posting homework style questions in help, and at least one ranted about ‘omg this sux none of the functions I want are implemented’.  If it’s  not obvious how a user can check/expect some level of compatibility, and it’s not trivial to upgrade to the newest version to get a recently implemented function, and the only other way is to compile from source, new user retention will be the worse for it. 
>
>
>
> > but if I want people to use stuff which uses the latest(ish)
> > features, they have to build Octave too. Remember this is *hard* for
> > ordinary users who don't even know about make for example.
>
> I agree, ordinary users should absolutely not be building Octave from
> source, unless they want to.
> In windows, I can at least always be sure I’m getting the latest release, since binary release is the only distro model. If I really really needed some dev function, I’d have to manually implement or crosscompile. But that delta (in time) is typically small. Thanks to you fine folks I never have “we’re up to 5.1 but we haven’t built a win binary since 4.0” problems. When 5.1 comes out, 5.1 is quickly there to download.
>
>
> Users should absolutely not be downloading some binary tarball from a
> web site to install Octave (or any other application).
>
> Again, that’s the lovely (virus ridden) windows model, and lots of people are familiar with that model even if they usually work on linux. I don’t think people would object that heavily even if maybe they “shouldn’t” do it that way.
>
> I’m still thinking the OS agnostic virtual appliance model could be worthwhile.
>
I have been a windows user since windows 3.1.  During the period, I had been a build tester from 3.0 to 3.6.

From 3.8, mxe-octave started. Since then, I start to use ubuntu and also start linux native build and cross build.

Build software from source has advantage for power users.
One can easily try development snapshot and easily try to do bug fix.
Octave is free and open source software and the relatively easy way to build from source is a strong advantage of linux than windows.

On 64 bit, windows 10, we now use linux and I can restart to build octave on windows.

Tatsuro


Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

tmacchant
In reply to this post by nrjank

>On Sat, Feb 23, 2019 at 14:56 Mike Miller <[hidden email]> wrote:
>
>On Sat, Feb 23, 2019 at 09:06:06 +0000, CROZIER Richard wrote:
>>> As someone else has pointed out though, actually for me the problem is
>>> that even the latest OS, e.g. Ubuntu 18.04 has an out of date Octave
>>> package in the repositories. For me, I routinely build Octave from
>>> source,
>>
>>Is there anything we here can do as a community to help counter this
>>belief that Octave from Ubuntu LTS is "out of date"? It's a relative
>>term. Compared to Octave 3.2, Octave 4.2 is an amazing improvement.
>>
>
>
>This whole conversation is, perhaps for the first time in this community, giving me the feeling that I have an advantage by being a windows user. The standard windows model is ‘go get that thing and install it. With few exceptions, everything the program needs to run is self contained.’  Yes, i recognize that that puts more burden on you developers.  But installing an updated binary (think Firefox, libreoffice, etc) is just a necessary process and  sometimes automated. 
>
On linux, each distribution has own applications and libraries etcs. 
They are updated from mainly security point of view.
Firefox is frequently updated because it is we browser so that security issue is important.
The library update is delicate. If some libraries are updated and sometimes break the link.
And thus version of software by distro is rarely update.


Although, on Ubuntu, there is the PPA system sometimes updates software but it is not always.    



>>If I have a system with Ubuntu 16.04, which is old but still supported,
>>I will get Octave 4.0. If I just want Octave, I probably don't care that
>>it's 4.0, so it's not "out of date" to me, it works perfectly fine.
>
>
>Yet when users on help list ask anything, a frequent response is ‘you’re using an out of date version can you try a more recent one, that was fixed in 4.x’  With windows I can just tell them to go download the more recent binary.  On Linux does that mean ‘go build from source’? How easy is it for someone to use a different package repo to get a newer version? 


>  On Linux does that mean ‘go build from source’?
Yes it was.
For gnuplot, the latest version is delivered on source except for windows.
On linux each distros. prepare each gnuplot.  
But it becomes soon out of date.

So that users should build from source.||

However, build from source on linux is far easy that on windows.

For example gnuplot on ubuntu.

$ sudo apt build-dep gnuplot

This install build tools and libraries that are required to build.

And then source is extracted and execute
$ ./configure
$ make
$ make check
$ sudo make install

It is not so difficult if you do not meet troubles.
(If you met trouble. It is very difficult to get rid of them for ordinary users.) 

>>will also get GNOME 3.18 and LibreOffice 5, which also work perfectly
>>fine even though they are not the bleeding edge latest release.
>
>
>But we’re a comparison/replacement product. Libreoffice 5 stands alone as a stable basic product. For some people ‘basic’ usage of octave requires some 2010 matlab compatibility that just isn’t implemented yet. So ‘out of date’ means very different things to different users. A lot was implemented between octave 4 and 5 that could render the product useless for some users. 
>
>
>I had mentioned a while back that it might be worth generating a comparison function list with past matlab versions and encouraging old missing function implementation so we could verify ‘99% function compatible with matlab 2006’, or similar. We just got a host of newbie users posting homework style questions in help, and at least one ranted about ‘omg this sux none of the functions I want are implemented’.  If it’s  not obvious how a user can check/expect some level of compatibility, and it’s not trivial to upgrade to the newest version to get a recently implemented function, and the only other way is to compile from source, new user retention will be the worse for it. 
>
>>
>>> but if I want people to use stuff which uses the latest(ish)
>>> features, they have to build Octave too. Remember this is *hard* for
>>> ordinary users who don't even know about make for example.
>>
>>I agree, ordinary users should absolutely not be building Octave from
>>source, unless they want to.
>
>
>In windows, I can at least always be sure I’m getting the latest release, since binary release is the only distro model. If I really really needed some dev function, I’d have to manually implement or crosscompile. But that delta (in time) is typically small. Thanks to you fine folks I never have “we’re up to 5.1 but we haven’t built a win binary since 4.0” problems. When 5.1 comes out, 5.1 is quickly there to download.
>
>
>
>>Users should absolutely not be downloading some binary tarball from a
>>web site to install Octave (or any other application).
>>
>
>
>Again, that’s the lovely (virus ridden) windows model, and lots of people are familiar with that model even if they usually work on linux. I don’t think people would object that heavily even if maybe they “shouldn’t” do it that way.
>
>
>I’m still thinking the OS agnostic virtual appliance model could be worthwhile.



Recently, snap and/or flatpak appear and situations are now changing.

Tatsuro

Reply | Threaded
Open this post in threaded view
|

Re: Build a portable linux binary?

tmacchant
In reply to this post by Mike Miller-4


>>  The Flatpak solution
>>  would be great, if it didn't stop Octave packages linking to non
> Flatpak
>>  libraries.
>
> I read this is as: the Flatpak solution is great, unless you need to
> install one of a small number of Forge packages that depend on
> third-party system libraries, right?
>
> I fully support the Flatpak package, and this seems like a niche
> objection to me. If it's an important problem to you, can you help? Can
> you document which packages don't install because of unavailable system
> libraries?
>
> If I maintained a package that linked with, let's say the Speex library,
> then I would probably bundle the speex source with my package so it is
> downloaded and built inside the package instead of relying on system
> libraries.


The original author stated that at the first post

Of course, I know that we could have flatpak or snap packages, but there are 
sand boxes, and as such have issues (permission problems, gui themes, huge 
size, etc.). 

And he hopes the portable version of octave.


Do you have ideas that is independent flatpak?

Tatsuro


12