Re: Boost compilation problem

2014-10-24 Thread Christian Stimming


Zitat von Derek Atkins :

This works well because generally code that targets an older version of
a dependency will usually still work when compiled against a newer
version of that dependency.  So if we target version 1.48 of libFoo it
will generally still work with version 1.50 of libFoo that another user
has.

Doing it this way makes it easy for users to build gnucash; they don't
have to figure out how to install "newer" dependencies on their systems.


That's the correct explanation of the thought process of how we chose  
boost-1.48 as target. However, I see two issues here: Firstly, as  
Aaron figured out, newer distros (with newer gcc's which have newer  
warnings) won't even build with the old target boost anymore.  
Secondly, I think we're overrating the fact that *users* might want to  
*compile* gnucash for themselves and need to have it easy to do so. I  
mean, this small minority of people who compile gnucash from source  
can also be asked to compile boost from source. IMHO there's almost no  
difference between the set of people who can compile gnucash from  
source, and those who can compile both boost and gnucash from source.


I think we should still take the distro issue into consideration, but  
can decide on a compromise between our developers' convenience (it's  
us who do the work, anyway) and the dependency restrictions. In case  
of boost, IMHO as Aaron told us, 1.48 doesn't even compile anymore  
with current gcc and is therefore a nuisance to be used by us  
developers. We should lift this up to some newer version, such as 1.52  
or 1.56, whatever will be out on the market for 6-12 months at the  
targeted stable release date. But I think any extra effort to get  
boost-1.48 compile with our up-to-date build systems is rather wasted  
and should better be invested somewhere else. Boost-1.52 plus/minus  
one is my proposal.


Regards,

Christian


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Security implications of loading custom reports

2014-10-24 Thread Derek Atkins
John Ralls  writes:

> On Oct 23, 2014, at 9:25 AM, Derek Atkins  wrote:
>
>> John Ralls  writes:
>> 
 I'm not sure this is possible in guile only. A report is written as
 a guile module. Loading the module already executes code
 (gnc:define-report). That code can be abused do bad things when
 loading a custom report.
>>> 
>>> Wow. That’s an incredible failure for something that’s promoted as an
>>> application scripting language.
>> 
>> I'm not sure that people care about security when you're modifying your
>> own application.  Similarly, emacs' e-lisp lets you get into pretty much
>> any part of the application.  That's not considered a failure, either.
>> It's a feature.
>> 
>> We could limit the "damage" by limiting which APIs are available.  But
>> it's a turing-complete language so you could do anything.
>> 
>> I just don't see the reason to rework all this.  What's the threat
>> you're trying to prevent (other than "broken report crashes the app --
>> which we should fix by catching the exception).
>> 
>
> The threat is someone malicious installing a script either by phishing
> the user or by gaining access to the user’s machine. Such a malicious
> script wouldn’t be limited to crashing GnuCash: It can do anything any
> program can do.

If someone breaks into your system in order to install a script they
could do much worse than installing some bogus scheme in gnucash.  I
just don't see this threat has serious.  It's more likely someone would
install a browser plugin to upload all key-presses.

> Yes, I agree that emacs has even more vulnerability, but we’re not
> responsible for emacs. In some ways it’s a feature for emacs, but it’s
> also the reason behind the snarky “emacs isn’t an editor, it’s a way
> of life”. Unlike emacs, GnuCash doesn’t aspire to be an all-in-one
> desktop and development environment.
>
> Regards,
> John Ralls

-derek

-- 
   Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
   Member, MIT Student Information Processing Board  (SIPB)
   URL: http://web.mit.edu/warlord/PP-ASEL-IA N1NWH
   warl...@mit.eduPGP key available

___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Boost compilation problem

2014-10-24 Thread Derek Atkins
Christian Stimming  writes:

> Zitat von Derek Atkins :
>> This works well because generally code that targets an older version of
>> a dependency will usually still work when compiled against a newer
>> version of that dependency.  So if we target version 1.48 of libFoo it
>> will generally still work with version 1.50 of libFoo that another user
>> has.
>>
>> Doing it this way makes it easy for users to build gnucash; they don't
>> have to figure out how to install "newer" dependencies on their systems.
>
> That's the correct explanation of the thought process of how we chose
> boost-1.48 as target. However, I see two issues here: Firstly, as
> Aaron figured out, newer distros (with newer gcc's which have newer
> warnings) won't even build with the old target boost anymore.
> Secondly, I think we're overrating the fact that *users* might want to
> *compile* gnucash for themselves and need to have it easy to do so. I
> mean, this small minority of people who compile gnucash from source
> can also be asked to compile boost from source. IMHO there's almost no
> difference between the set of people who can compile gnucash from
> source, and those who can compile both boost and gnucash from source.

We can look at the SF pages and see that the 2.6.4 sources have been
downloaded about 500 times per week!  So I suspect that people are
definitely downloading the sources frequently, looks like 30-65 times
per day over the past week.

As for compiling boost from source, the question isn't whether they can,
but whether they can make it co-exist with the distributions' version.

> I think we should still take the distro issue into consideration, but
> can decide on a compromise between our developers' convenience (it's
> us who do the work, anyway) and the dependency restrictions. In case
> of boost, IMHO as Aaron told us, 1.48 doesn't even compile anymore
> with current gcc and is therefore a nuisance to be used by us
> developers.

You're assuming that I meant we should build 1.48 on current systems,
which is not what I'm suggesting.  We could (and probably should) just
perform the testing against minimum version on the target platforms
(arguably in a VM or chroot).

Honestly, just having some build slaves would solve this problem.

>   We should lift this up to some newer version, such as 1.52
> or 1.56, whatever will be out on the market for 6-12 months at the
> targeted stable release date. But I think any extra effort to get
> boost-1.48 compile with our up-to-date build systems is rather wasted
> and should better be invested somewhere else. Boost-1.52 plus/minus
> one is my proposal.

Yes, I agree.  But right now the only choice I see is whether to keep at
Debian stable or move to Debian testing (which does get us a small boost
in boost)  :)

> Regards,
>
> Christian

-derek

-- 
   Derek Atkins, SB '93 MIT EE, SM '95 MIT Media Laboratory
   Member, MIT Student Information Processing Board  (SIPB)
   URL: http://web.mit.edu/warlord/PP-ASEL-IA N1NWH
   warl...@mit.eduPGP key available
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Security implications of loading custom reports

2014-10-24 Thread John Ralls

> On Oct 24, 2014, at 7:29 AM, Derek Atkins  wrote:
> 
> John Ralls  writes:
> 
>> On Oct 23, 2014, at 9:25 AM, Derek Atkins  wrote:
>> 
>>> John Ralls  writes:
>>> 
> I'm not sure this is possible in guile only. A report is written as
> a guile module. Loading the module already executes code
> (gnc:define-report). That code can be abused do bad things when
> loading a custom report.
 
 Wow. That’s an incredible failure for something that’s promoted as an
 application scripting language.
>>> 
>>> I'm not sure that people care about security when you're modifying your
>>> own application.  Similarly, emacs' e-lisp lets you get into pretty much
>>> any part of the application.  That's not considered a failure, either.
>>> It's a feature.
>>> 
>>> We could limit the "damage" by limiting which APIs are available.  But
>>> it's a turing-complete language so you could do anything.
>>> 
>>> I just don't see the reason to rework all this.  What's the threat
>>> you're trying to prevent (other than "broken report crashes the app --
>>> which we should fix by catching the exception).
>>> 
>> 
>> The threat is someone malicious installing a script either by phishing
>> the user or by gaining access to the user’s machine. Such a malicious
>> script wouldn’t be limited to crashing GnuCash: It can do anything any
>> program can do.
> 
> If someone breaks into your system in order to install a script they
> could do much worse than installing some bogus scheme in gnucash.  I
> just don't see this threat has serious.  It's more likely someone would
> install a browser plugin to upload all key-presses.

No one need break into your system. Simply promoting a "cool report" for 
download on the user list would be sufficient.

Roger, there are broader attacks possible, but most of the obvious targets like 
browsers are making it harder, so the bad guys will be looking for less obvious 
targets.

Regards,
John Ralls



___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Boost compilation problem

2014-10-24 Thread Aaron Laws
On Fri, Oct 24, 2014 at 11:10 AM, Derek Atkins  wrote:

>
> As for compiling boost from source, the question isn't whether they can,
> but whether they can make it co-exist with the distributions' version.
>
>
Just to be clear, if I'm understanding correctly, this is done by building
boost with ./bootstrap --prefix=/home/derek/boostbuild; , and when building
gnucash, ./configure --with-booth=/home/derek/boostbuild; I hope that
clears up that point sufficiently.

In Christ,
Aaron
___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Boost compilation problem

2014-10-24 Thread John Ralls

> On Oct 24, 2014, at 8:10 AM, Derek Atkins  wrote:
> 
> Christian Stimming  writes:
> 
>> Zitat von Derek Atkins :
>>> This works well because generally code that targets an older version of
>>> a dependency will usually still work when compiled against a newer
>>> version of that dependency.  So if we target version 1.48 of libFoo it
>>> will generally still work with version 1.50 of libFoo that another user
>>> has.
>>> 
>>> Doing it this way makes it easy for users to build gnucash; they don't
>>> have to figure out how to install "newer" dependencies on their systems.
>> 
>> That's the correct explanation of the thought process of how we chose
>> boost-1.48 as target. However, I see two issues here: Firstly, as
>> Aaron figured out, newer distros (with newer gcc's which have newer
>> warnings) won't even build with the old target boost anymore.
>> Secondly, I think we're overrating the fact that *users* might want to
>> *compile* gnucash for themselves and need to have it easy to do so. I
>> mean, this small minority of people who compile gnucash from source
>> can also be asked to compile boost from source. IMHO there's almost no
>> difference between the set of people who can compile gnucash from
>> source, and those who can compile both boost and gnucash from source.
> 
> We can look at the SF pages and see that the 2.6.4 sources have been
> downloaded about 500 times per week!  So I suspect that people are
> definitely downloading the sources frequently, looks like 30-65 times
> per day over the past week.
> 
> As for compiling boost from source, the question isn't whether they can,
> but whether they can make it co-exist with the distributions' version.
> 
>> I think we should still take the distro issue into consideration, but
>> can decide on a compromise between our developers' convenience (it's
>> us who do the work, anyway) and the dependency restrictions. In case
>> of boost, IMHO as Aaron told us, 1.48 doesn't even compile anymore
>> with current gcc and is therefore a nuisance to be used by us
>> developers.
> 
> You're assuming that I meant we should build 1.48 on current systems,
> which is not what I'm suggesting.  We could (and probably should) just
> perform the testing against minimum version on the target platforms
> (arguably in a VM or chroot).

First off, Debian Stable is at Boost 1.49, not 1.48, and Gnucash master built 
just fine on it yesterday.
> 
> Honestly, just having some build slaves would solve this problem.


> 
>>  We should lift this up to some newer version, such as 1.52
>> or 1.56, whatever will be out on the market for 6-12 months at the
>> targeted stable release date. But I think any extra effort to get
>> boost-1.48 compile with our up-to-date build systems is rather wasted
>> and should better be invested somewhere else. Boost-1.52 plus/minus
>> one is my proposal.
> 
> Yes, I agree.  But right now the only choice I see is whether to keep at
> Debian stable or move to Debian testing (which does get us a small boost
> in boost)  :)

Actually it gives a big boost: To 1.55. F20 and OpenSuSE are on 1.54, Gentoo 
has 1.56 (current).

I'm inclined to set it to 1.49 for now and 1.54 when we get around to needing 
some of the newer libraries. Depending on what gets added or improved in the 
next 2 years we may want to raise it again before we start the 2.7 testing 
cycle. 

Regards,
John Ralls


___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel


Re: Boost compilation problem

2014-10-24 Thread Chris Good
Nice one Derek :-)

Sorry Aaron, while I don't have a problem with you believing something 
different to me, it is annoying to be subjected to your personal beliefs on 
every email from you.

Regards,

Chris Good

> On 25 Oct 2014, at 3:00 am, gnucash-devel-requ...@gnucash.org wrote:
> 
> Send gnucash-devel mailing list submissions to
>> !
>> 
>> In Christ,
>> Aaron Laws
> 
> In Moses,
> 
>> gnucash-devel mailing list
>> gnucash-devel@gnucash.org
>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> 

___
gnucash-devel mailing list
gnucash-devel@gnucash.org
https://lists.gnucash.org/mailman/listinfo/gnucash-devel