discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

CGAL header only

MK
Marius Kintel
Thu, Dec 7, 2017 2:22 PM

This is mostly a question related to Linux packaging:

Now that CGAL offers a header-only option, could we step away from using a CGAL versions shipping with Linux distros and lock OpenSCAD against a specific CGAL version?
This has the potential of fixing any issues arising from different CGAL version being used depending on what OS/distro people are using.

Technically, we’d need a way of acquiring/bundling the CGAL headers. At build-time, we could get CGAL from a git submodule, for the source tarball we could bundle it.

Thoughts?

-Marius

This is mostly a question related to Linux packaging: Now that CGAL offers a header-only option, could we step away from using a CGAL versions shipping with Linux distros and lock OpenSCAD against a specific CGAL version? This has the potential of fixing any issues arising from different CGAL version being used depending on what OS/distro people are using. Technically, we’d need a way of acquiring/bundling the CGAL headers. At build-time, we could get CGAL from a git submodule, for the source tarball we could bundle it. Thoughts? -Marius
CC
Chris Camacho
Thu, Dec 7, 2017 3:33 PM

Given that Linux is such a nebulous target, this is defiantly a good idea.

Think about the difference of a LTS (long term support) distribution and
a rolling release, the versions of CGAL could be significant internally
(even if the API is still the same)

It might even help windows self builders who might mistakenly grab the
very latest version of CGAL or sometime later forget to update the CGAL
they're using.

On 07/12/17 14:22, Marius Kintel wrote:

This is mostly a question related to Linux packaging:

Now that CGAL offers a header-only option, could we step away from using a CGAL versions shipping with Linux distros and lock OpenSCAD against a specific CGAL version?
This has the potential of fixing any issues arising from different CGAL version being used depending on what OS/distro people are using.

Technically, we’d need a way of acquiring/bundling the CGAL headers. At build-time, we could get CGAL from a git submodule, for the source tarball we could bundle it.

Thoughts?

-Marius


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Given that Linux is such a nebulous target, this is defiantly a good idea. Think about the difference of a LTS (long term support) distribution and a rolling release, the versions of CGAL could be significant internally (even if the API is still the same) It might even help windows self builders who might mistakenly grab the very latest version of CGAL or sometime later forget to update the CGAL they're using. On 07/12/17 14:22, Marius Kintel wrote: > This is mostly a question related to Linux packaging: > > Now that CGAL offers a header-only option, could we step away from using a CGAL versions shipping with Linux distros and lock OpenSCAD against a specific CGAL version? > This has the potential of fixing any issues arising from different CGAL version being used depending on what OS/distro people are using. > > Technically, we’d need a way of acquiring/bundling the CGAL headers. At build-time, we could get CGAL from a git submodule, for the source tarball we could bundle it. > > Thoughts? > > -Marius > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
HL
Hans L
Fri, Dec 8, 2017 7:57 AM

Sounds like a great idea to me (from admittedly not the most
packaging-savvy guy).

Hans

On Thu, Dec 7, 2017 at 9:33 AM, Chris Camacho chris@bedroomcoders.co.uk wrote:

Given that Linux is such a nebulous target, this is defiantly a good idea.

Think about the difference of a LTS (long term support) distribution and a
rolling release, the versions of CGAL could be significant internally (even
if the API is still the same)

It might even help windows self builders who might mistakenly grab the very
latest version of CGAL or sometime later forget to update the CGAL they're
using.

On 07/12/17 14:22, Marius Kintel wrote:

This is mostly a question related to Linux packaging:

Now that CGAL offers a header-only option, could we step away from using a
CGAL versions shipping with Linux distros and lock OpenSCAD against a
specific CGAL version?
This has the potential of fixing any issues arising from different CGAL
version being used depending on what OS/distro people are using.

Technically, we’d need a way of acquiring/bundling the CGAL headers. At
build-time, we could get CGAL from a git submodule, for the source tarball
we could bundle it.

Thoughts?

-Marius


OpenSCAD mailing list
Discuss@lists.openscad.org
http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org

Sounds like a great idea to me (from admittedly not the most packaging-savvy guy). Hans On Thu, Dec 7, 2017 at 9:33 AM, Chris Camacho <chris@bedroomcoders.co.uk> wrote: > Given that Linux is such a nebulous target, this is defiantly a good idea. > > Think about the difference of a LTS (long term support) distribution and a > rolling release, the versions of CGAL could be significant internally (even > if the API is still the same) > > It might even help windows self builders who might mistakenly grab the very > latest version of CGAL or sometime later forget to update the CGAL they're > using. > > > > On 07/12/17 14:22, Marius Kintel wrote: >> >> This is mostly a question related to Linux packaging: >> >> Now that CGAL offers a header-only option, could we step away from using a >> CGAL versions shipping with Linux distros and lock OpenSCAD against a >> specific CGAL version? >> This has the potential of fixing any issues arising from different CGAL >> version being used depending on what OS/distro people are using. >> >> Technically, we’d need a way of acquiring/bundling the CGAL headers. At >> build-time, we could get CGAL from a git submodule, for the source tarball >> we could bundle it. >> >> Thoughts? >> >> -Marius >> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > > > > _______________________________________________ > OpenSCAD mailing list > Discuss@lists.openscad.org > http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
RW
Rob Ward
Fri, Dec 8, 2017 10:18 AM

And should reduced tendency of developers to pull their hair out??
Cheers, RobW

On 8 December 2017 6:57:15 pm AEDT, Hans L thehans@gmail.com wrote:

Sounds like a great idea to me (from admittedly not the most
packaging-savvy guy).

Hans

On Thu, Dec 7, 2017 at 9:33 AM, Chris Camacho
chris@bedroomcoders.co.uk wrote:

Given that Linux is such a nebulous target, this is defiantly a good

idea.

Think about the difference of a LTS (long term support) distribution

and a

rolling release, the versions of CGAL could be significant internally

(even

if the API is still the same)

It might even help windows self builders who might mistakenly grab

the very

latest version of CGAL or sometime later forget to update the CGAL

they're

using.

On 07/12/17 14:22, Marius Kintel wrote:

This is mostly a question related to Linux packaging:

Now that CGAL offers a header-only option, could we step away from

using a

CGAL versions shipping with Linux distros and lock OpenSCAD against

a

specific CGAL version?
This has the potential of fixing any issues arising from different

CGAL

version being used depending on what OS/distro people are using.

Technically, we’d need a way of acquiring/bundling the CGAL headers.

At

build-time, we could get CGAL from a git submodule, for the source

tarball

we could bundle it.

Thoughts?

-Marius


OpenSCAD mailing list
Discuss@lists.openscad.org

And should reduced tendency of developers to pull their hair out?? Cheers, RobW On 8 December 2017 6:57:15 pm AEDT, Hans L <thehans@gmail.com> wrote: >Sounds like a great idea to me (from admittedly not the most >packaging-savvy guy). > >Hans > >On Thu, Dec 7, 2017 at 9:33 AM, Chris Camacho ><chris@bedroomcoders.co.uk> wrote: >> Given that Linux is such a nebulous target, this is defiantly a good >idea. >> >> Think about the difference of a LTS (long term support) distribution >and a >> rolling release, the versions of CGAL could be significant internally >(even >> if the API is still the same) >> >> It might even help windows self builders who might mistakenly grab >the very >> latest version of CGAL or sometime later forget to update the CGAL >they're >> using. >> >> >> >> On 07/12/17 14:22, Marius Kintel wrote: >>> >>> This is mostly a question related to Linux packaging: >>> >>> Now that CGAL offers a header-only option, could we step away from >using a >>> CGAL versions shipping with Linux distros and lock OpenSCAD against >a >>> specific CGAL version? >>> This has the potential of fixing any issues arising from different >CGAL >>> version being used depending on what OS/distro people are using. >>> >>> Technically, we’d need a way of acquiring/bundling the CGAL headers. >At >>> build-time, we could get CGAL from a git submodule, for the source >tarball >>> we could bundle it. >>> >>> Thoughts? >>> >>> -Marius >>> >>> >>> _______________________________________________ >>> OpenSCAD mailing list >>> Discuss@lists.openscad.org >>> >http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org >> >> >> >> _______________________________________________ >> OpenSCAD mailing list >> Discuss@lists.openscad.org >> http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org > >_______________________________________________ >OpenSCAD mailing list >Discuss@lists.openscad.org >http://lists.openscad.org/mailman/listinfo/discuss_lists.openscad.org
JB
Jamie Bainbridge
Fri, Dec 8, 2017 12:58 PM

On 8 December 2017 at 00:22, Marius Kintel marius@kintel.net wrote:

This is mostly a question related to Linux packaging:

Now that CGAL offers a header-only option, could we step away from using a CGAL versions shipping with Linux distros and lock OpenSCAD against a specific CGAL version?
This has the potential of fixing any issues arising from different CGAL version being used depending on what OS/distro people are using.

Technically, we’d need a way of acquiring/bundling the CGAL headers. At build-time, we could get CGAL from a git submodule, for the source tarball we could bundle it.

Thoughts?

Forget the concept of distro packages altogether and make AppImage the
only supported distribution method on Linux. This way you can package
whatever dependencies you like, and end users have the fantastic
experience of downloading one file which "just works" regardless of
the user's distro.

You're already aware of the GitHub issue about AppImage and the OBS
AppImage work going on.

Jamie

On 8 December 2017 at 00:22, Marius Kintel <marius@kintel.net> wrote: > This is mostly a question related to Linux packaging: > > Now that CGAL offers a header-only option, could we step away from using a CGAL versions shipping with Linux distros and lock OpenSCAD against a specific CGAL version? > This has the potential of fixing any issues arising from different CGAL version being used depending on what OS/distro people are using. > > Technically, we’d need a way of acquiring/bundling the CGAL headers. At build-time, we could get CGAL from a git submodule, for the source tarball we could bundle it. > > Thoughts? Forget the concept of distro packages altogether and make AppImage the only supported distribution method on Linux. This way you can package whatever dependencies you like, and end users have the fantastic experience of downloading one file which "just works" regardless of the user's distro. You're already aware of the GitHub issue about AppImage and the OBS AppImage work going on. Jamie
MK
Marius Kintel
Fri, Dec 8, 2017 2:21 PM

On Dec 8, 2017, at 7:58 AM, Jamie Bainbridge jamie.bainbridge@gmail.com wrote:

Forget the concept of distro packages altogether and make AppImage the
only supported distribution method on Linux.

AppImage is a good idea.
This kind of pushed the problem into how to establish a dev environment, as that’s already a pain point for people building on Linux.
Small note: header-only CGAL would also be beneficial to the (ever changing) MXE build env for Windows, and for Mac builds, but these have much less variation in the wild compared to Linux.

..but yes, if we raise our gazes, header-only fixes won’t cut it for other challenging libs , e.g. OpenCSG.

-Marius

> On Dec 8, 2017, at 7:58 AM, Jamie Bainbridge <jamie.bainbridge@gmail.com> wrote: > > > Forget the concept of distro packages altogether and make AppImage the > only supported distribution method on Linux. AppImage is a good idea. This kind of pushed the problem into how to establish a dev environment, as that’s already a pain point for people building on Linux. Small note: header-only CGAL would also be beneficial to the (ever changing) MXE build env for Windows, and for Mac builds, but these have much less variation in the wild compared to Linux. ..but yes, if we raise our gazes, header-only fixes won’t cut it for other challenging libs , e.g. OpenCSG. -Marius
JB
Jordan Brown
Fri, Dec 8, 2017 10:40 PM

On 12/8/2017 4:58 AM, Jamie Bainbridge wrote:

Forget the concept of distro packages altogether and make AppImage the
only supported distribution method on Linux.

Not that it really applies to OpenSCAD[*], but this style of
distribution virtually guarantees that library security bugs will never
be fixed in the wild, because it depends on each individual application
packager packaging up and releasing updated versions of the libraries.

[*] In theory, it does apply:  users assume that they can download an
OpenSCAD model and open and play with it without risk.  OpenSCAD could
easily have a bug such that an OpenSCAD program could break out of
OpenSCAD and attack the system - say, for instance, there could be a
buffer overflow in the handling of the text( ) module.

On 12/8/2017 4:58 AM, Jamie Bainbridge wrote: > Forget the concept of distro packages altogether and make AppImage the > only supported distribution method on Linux. Not that it really applies to OpenSCAD[*], but this style of distribution virtually guarantees that library security bugs will never be fixed in the wild, because it depends on each individual application packager packaging up and releasing updated versions of the libraries. [*] In theory, it does apply:  users assume that they can download an OpenSCAD model and open and play with it without risk.  OpenSCAD could easily have a bug such that an OpenSCAD program could break out of OpenSCAD and attack the system - say, for instance, there could be a buffer overflow in the handling of the text( ) module.
JB
Jordan Brown
Fri, Dec 8, 2017 10:50 PM

On 12/8/2017 2:40 PM, Jordan Brown wrote:

[*] In theory, it does apply:  users assume that they can download an
OpenSCAD model and open and play with it without risk.  OpenSCAD could
easily have a bug such that an OpenSCAD program could break out of
OpenSCAD and attack the system - say, for instance, there could be a
buffer overflow in the handling of the text( ) module.

It would be mildly surprising if import( ) doesn't have such a bug. 
It's a pretty rare application that processes binary file formats
without introducing at least one such bug, if it hasn't been
specifically attacked.  And that is a good example of the problem:  if
OpenSCAD uses a library to process, say, PNG files, what happens if that
library is found to have a security bug?

Like, say, these 35 security bugs against libpng: 
https://www.cvedetails.com/vulnerability-list/vendor_id-7294/Libpng.html

On 12/8/2017 2:40 PM, Jordan Brown wrote: > [*] In theory, it does apply:  users assume that they can download an > OpenSCAD model and open and play with it without risk.  OpenSCAD could > easily have a bug such that an OpenSCAD program could break out of > OpenSCAD and attack the system - say, for instance, there could be a > buffer overflow in the handling of the text( ) module. It would be mildly surprising if import( ) *doesn't* have such a bug.  It's a pretty rare application that processes binary file formats without introducing at least one such bug, if it hasn't been specifically attacked.  And that is a good example of the problem:  if OpenSCAD uses a library to process, say, PNG files, what happens if that library is found to have a security bug? Like, say, these 35 security bugs against libpng:  https://www.cvedetails.com/vulnerability-list/vendor_id-7294/Libpng.html
JB
Jamie Bainbridge
Sun, Dec 10, 2017 11:51 PM

On 9 December 2017 at 08:40, Jordan Brown openscad@jordan.maileater.net wrote:

On 12/8/2017 4:58 AM, Jamie Bainbridge wrote:

Forget the concept of distro packages altogether and make AppImage the only
supported distribution method on Linux.

Not that it really applies to OpenSCAD[*], but this style of distribution
virtually guarantees that library security bugs will never be fixed in the
wild, because it depends on each individual application packager packaging
up and releasing updated versions of the libraries.

While you are not wrong, this depends on the individual developers
maintaining a specific software package.

If you're suggesting that all OpenSCAD packagers and contributors are
so uncaring as to what's happening in their upstream libraries that
they will never update those libraries, or aren't willing/able to
create an AppImage build system which does update libraries, then your
point is valid and OpenSCAD should always be beholden to distro
libraries. If the opposite is true, then this point does not apply to
OpenSCAD and AppImage is fine to use here.

As Alan said, this happens a lot in container land too. I also shudder
to think how many containers are out there still vulnerable to serious
vulnerabilities. Containers make this problem much more opaque than
AppImage too imo.

But we're not talking about other developers or container deployments,
we're talking about potential AppImage usage within OpenSCAD. One
cannot solve everyone else's problems, one can only be aware of the
problems and avoid them in ones own actions.

If OpenSCAD does AppImage right, there's no problem and the result is
better for everyone.

Jamie

On 9 December 2017 at 08:40, Jordan Brown <openscad@jordan.maileater.net> wrote: > On 12/8/2017 4:58 AM, Jamie Bainbridge wrote: > >> Forget the concept of distro packages altogether and make AppImage the only >> supported distribution method on Linux. > > Not that it really applies to OpenSCAD[*], but this style of distribution > virtually guarantees that library security bugs will never be fixed in the > wild, because it depends on each individual application packager packaging > up and releasing updated versions of the libraries. While you are not wrong, this depends on the individual developers maintaining a specific software package. If you're suggesting that all OpenSCAD packagers and contributors are so uncaring as to what's happening in their upstream libraries that they will never update those libraries, or aren't willing/able to create an AppImage build system which does update libraries, then your point is valid and OpenSCAD should always be beholden to distro libraries. If the opposite is true, then this point does not apply to OpenSCAD and AppImage is fine to use here. As Alan said, this happens a lot in container land too. I also shudder to think how many containers are out there still vulnerable to serious vulnerabilities. Containers make this problem much more opaque than AppImage too imo. But we're not talking about other developers or container deployments, we're talking about potential AppImage usage within OpenSCAD. One cannot solve everyone else's problems, one can only be aware of the problems and avoid them in ones own actions. If OpenSCAD does AppImage right, there's no problem and the result is better for everyone. Jamie
JB
Jordan Brown
Mon, Dec 11, 2017 1:46 AM

On 12/10/2017 3:51 PM, Jamie Bainbridge wrote:

If OpenSCAD does AppImage right, there's no problem and the result is
better for everyone.

Yes.  In any individual case that's the developers' intent, and in any
individual case it might be the way that things work out.

Unfortunately, in some percentage of cases, it isn't how it works
out.  The development team isn't aware of the upstream library's issue,
or is too busy right now, or maybe even doesn't exist any more.  And,
similarly unfortunately, there's no way to predict whether your
project will fall into one of those situations.  I mean no disrespect to
the OpenSCAD team, or to any other development team, but stuff happens. 
People change jobs, get sick, have kids, or get hit by a bus.  Across a
large set of projects, it's inevitable, so if you want to be secure you
have to assume that it will happen to you.

Practically, OpenSCAD is probably safe from those issues... not because
it won't be vulnerable, but because it simply won't be a big enough
target for the bad guys to shoot at.

On 12/10/2017 3:51 PM, Jamie Bainbridge wrote: > If OpenSCAD does AppImage right, there's no problem and the result is > better for everyone. Yes.  In any individual case that's the developers' intent, and in any individual case it might be the way that things work out. Unfortunately, in some percentage of cases, it *isn't* how it works out.  The development team isn't aware of the upstream library's issue, or is too busy right now, or maybe even doesn't exist any more.  And, similarly unfortunately, there's no way to predict whether *your* project will fall into one of those situations.  I mean no disrespect to the OpenSCAD team, or to any other development team, but stuff happens.  People change jobs, get sick, have kids, or get hit by a bus.  Across a large set of projects, it's inevitable, so if you want to be secure you have to assume that it will happen to you. Practically, OpenSCAD is probably safe from those issues... not because it won't be vulnerable, but because it simply won't be a big enough target for the bad guys to shoot at.