You are not logged in.

#1 2010-06-07 06:59:51

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Boost as a split package

Recently I've been using boost threads in some of my apps, until I remembered that they actually need a runtime library and that Arch's boost package has ~120 MB.

This is fine for most situations because boost is mostly only needed at build time, not at runtime. However its a bit much just for adding multithreading to an app smile Other distros (I checked Ubuntu) split boost into several components. libboost-thread + libboost-thread-dev have 385 kB combined.

Likewise, it would (probably, from looking at ubuntu deps) drop akonadis boost dependency from 120 Megs to ~ 1M (libboost-program-options{,-dev}.

What I'm proposing is a separate split package for each runtime component, +1 with all nonruntime sources.

Opinions?

Edit:
The list of packages depending on boost - http://www.archlinux.org/packages/extra/x86_64/boost/
That's currently 30 packages that would (propably) lose a huge dependency.

Edit #2: Feature request at http://bugs.archlinux.org/task/19749

Last edited by schuay (2010-06-09 07:24:53)

Offline

#2 2010-06-07 07:05:13

Pierre
Developer
From: Bonn
Registered: 2004-07-05
Posts: 1,964
Website

Re: Boost as a split package

You should file a feature request in our bug tracker.

Offline

#3 2010-06-07 08:24:58

cleanrock
Member
Registered: 2008-11-17
Posts: 109

Re: Boost as a split package

I think and hope that the "simple arch way" means that reducing number of packages is preffered, in this case i prefer to have one boost package which include everything (as it is now).

Offline

#4 2010-06-07 08:31:25

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Re: Boost as a split package

cleanrock wrote:

I think and hope that the "simple arch way" means that reducing number of packages is preffered, in this case i prefer to have one boost package which include everything (as it is now).

In principle I agree with you, but you don't seriously want a 120M dependency when it could be a few hundred kB?

Pierre, I will file a feature request in a bit (unless everybody seems to be against this idea).

Last edited by schuay (2010-06-07 08:33:04)

Offline

#5 2010-06-07 08:43:45

SiC
Member
From: Liverpool, England
Registered: 2008-01-10
Posts: 430

Re: Boost as a split package

I've used boost in the past, and to be honest, it was nice to just install the lot on arch, and not worry about whether I needed to install all the packages at once.  If people want to split it into smaller packages though, then could we maybe group them into the different categories, so libboost-string etc and then have a meta for all of them :S

Might be more work for the devs, not sure, but as I said I am quite happy with the current situation.

Offline

#6 2010-06-08 08:36:52

quigybo
Member
Registered: 2009-01-15
Posts: 223

Re: Boost as a split package

If possible I would like to voice my support for splitting boost up - or at least filing a feature request and seeing what the devs think about it. I dont have boost installed right now, and there is one package (referencer) I would like to use but avoid installing it because of the size of one of its dependencies - boost at ~120MB. Of course my opinion is only that of a user and not a dev, so I dont know how much work/how feasible this is, but I still think it is a good idea to make this request formal on the bug tracker.

Offline

#7 2010-06-08 11:18:25

wonder
Developer
From: Bucharest, Romania
Registered: 2006-07-05
Posts: 5,941
Website

Re: Boost as a split package

i only say one two words: patches welcomed.

boost is a monster and i don't know how easy is to split this monster easy. note that some modules may depend on other modules. how do you plan to detect that?


Give what you have. To someone, it may be better than you dare to think.

Offline

#8 2010-06-08 11:46:11

ber_t
Member
From: Berlin, Germany
Registered: 2010-03-10
Posts: 214
Website

Re: Boost as a split package

I would like to have multiple boost modules in the arch repository, too.
Maybe we could use BCP (http://www.boost.org/doc/libs/1_43_0/to … index.html) to find the best subsets, both minimal and disjoint.

Offline

#9 2010-06-08 13:43:44

Mr.Elendig
#archlinux@freenode channel op
From: The intertubes
Registered: 2004-11-07
Posts: 4,094

Re: Boost as a split package

I think that schuay  should split boost and put it up on aur for large scale testing smile

If it works nicely and ins't too much work to maintain, then it could be adobted into the main repos.


Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest

Offline

#10 2010-06-08 14:20:29

ninian
Member
From: United Kingdom
Registered: 2008-02-24
Posts: 726
Website

Re: Boost as a split package

I had to install Boost @ 110MB just to use Encfs @ 2MB!
So it would be great if the run-time parts could be separated out.
Thumbs up from me wink

Offline

#11 2010-06-08 15:20:04

ataraxia
Member
From: Pittsburgh
Registered: 2007-05-06
Posts: 1,553

Re: Boost as a split package

Mr.Elendig wrote:

I think that schuay  should split boost and put it up on aur for large scale testing smile

Does AUR support split packages now, then? Or do you want him to implement that while he's at it? smile

Offline

#12 2010-06-08 16:38:16

Mr.Elendig
#archlinux@freenode channel op
From: The intertubes
Registered: 2004-11-07
Posts: 4,094

Re: Boost as a split package

ataraxia wrote:

Does AUR support split packages now, then? Or do you want him to implement that while he's at it? smile

Why would aur need special support for it?


Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest

Offline

#13 2010-06-08 19:16:42

ataraxia
Member
From: Pittsburgh
Registered: 2007-05-06
Posts: 1,553

Re: Boost as a split package

Mr.Elendig wrote:
ataraxia wrote:

Does AUR support split packages now, then? Or do you want him to implement that while he's at it? smile

Why would aur need special support for it?

I seem to recall that AUR does something bad if you upload a split PKGBUILD. It's been a while since I last tried it, though.

Offline

#14 2010-06-08 19:40:54

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: Boost as a split package

No doubt gets sandy about the pkgname being an array rather than a variable.

Sure enough... attempting to upload split PKGBUILD to AUR results in: "Invalid name: only lowercase letters are allowed."

Offline

#15 2010-06-09 06:46:42

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Re: Boost as a split package

Thanks for the replies!

The feature request is now opened at: http://bugs.archlinux.org/task/19749

Offline

#16 2010-06-09 10:56:11

Mr.Elendig
#archlinux@freenode channel op
From: The intertubes
Registered: 2004-11-07
Posts: 4,094

Re: Boost as a split package

ataraxia wrote:
Mr.Elendig wrote:
ataraxia wrote:

Does AUR support split packages now, then? Or do you want him to implement that while he's at it? smile

Why would aur need special support for it?

I seem to recall that AUR does something bad if you upload a split PKGBUILD. It's been a while since I last tried it, though.

There is an easy workaround for that tho:
# pkgname=('real' 'pkg' 'name')
pkgname=('boost-split-edit-the-PKGBUILD')

But yea, it can be a bit iritating.


Evil #archlinux@libera.chat channel op and general support dude.
. files on github, Screenshots, Random pics and the rest

Offline

#17 2010-06-09 11:04:55

JGC
Developer
Registered: 2003-12-03
Posts: 1,664

Re: Boost as a split package

Splitting this into boost-libs and boost will take away 90% of the size taken by boost for applications that link dynamic to boost. This change is backwards compatible for existing packages, all packages linking to boost dynamic should adjust dependencies and add makedepends.

Going further than a splitup in two packages is not going to happen. We did the same splitup for gcc/gcc-libs before, so we can do this with boost also.

Offline

#18 2010-06-09 11:49:14

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Re: Boost as a split package

Awesome, sounds good to me!
Thanks smile

Offline

#19 2010-06-09 21:18:13

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Re: Boost as a split package

Here's a quick hack for boost runtime components:

http://pastebin.org/322086

The only real changes are
1) conversion to a split package, and
2) using build target 'stage' for bjam instead of 'install'

Package sizes are looking pretty good:

-rw-r--r-- 1 me me 138K Jun  9 23:02 boost-date-time-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 185K Jun  9 23:02 boost-filesystem-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 447K Jun  9 23:02 boost-graph-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 131K Jun  9 23:02 boost-iostreams-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 4.9M Jun  9 23:02 boost-math-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 939K Jun  9 23:02 boost-program-options-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 768K Jun  9 23:02 boost-python-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 2.2M Jun  9 23:02 boost-regex-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 782K Jun  9 23:02 boost-serialization-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 191K Jun  9 23:02 boost-signals-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me  26K Jun  9 23:02 boost-system-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 2.5M Jun  9 23:02 boost-test-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me  89K Jun  9 23:02 boost-thread-1.41.0-1-x86_64.pkg.tar.gz
-rw-r--r-- 1 me me 2.4M Jun  9 23:02 boost-wave-1.41.0-1-x86_64.pkg.tar.gz

Not included: boost headers.

Tested boost-thread so far, seems to be working.

Edit: Just noticed that the python dep could be removed for all packages except boost-python.

Last edited by schuay (2010-06-09 21:22:48)

Offline

#20 2010-06-09 23:42:12

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,487
Website

Re: Boost as a split package

Just to save you some work if you are wanting you PKGBUILD to be used in [extra], splitting beyond  "boost" and "boost-libs", with boost-libs containing all the shared libraries, is unlikely to ever occur.

Offline

#21 2010-06-10 08:08:46

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Re: Boost as a split package

Split into boost/boost-libs;

Diff from current PKGBUILD: http://pastebin.org/322674
Entire PKGBUILD: http://pastebin.org/322678

Seems like it only halves the size though:

p -Qi boost{,-libs} | grep Size
Installed Size : 64804.00 K
Installed Size : 59008.00 K

Offline

#22 2010-06-10 08:13:29

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,487
Website

Re: Boost as a split package

There is no need to include static libs in the -libs package.   Only /usr/lib/*.so{.*}

Offline

#23 2010-06-10 08:35:11

schuay
Package Maintainer (PM)
From: Austria
Registered: 2008-08-19
Posts: 564

Re: Boost as a split package

So static libs should be in the main package?

Looking much better now:

$ p -Qi boost{,-libs} | grep Size
Installed Size : 110200.00 K
Installed Size : 13604.00 K

http://pastebin.org/322696

Last edited by schuay (2010-06-10 08:40:26)

Offline

#24 2010-06-10 08:38:20

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,487
Website

Re: Boost as a split package

Yes - those are the numbers Jan reported in the bug report.

Offline

Board footer

Powered by FluxBB