Re: build rebuilds already installed deps



> Why does the garnome build process download and rebuild
> the required deps as gtk2, pango etc. although they are already installed
> with the same version?

Resolving and building (if needed) the dependencies is done using the
LIBDEPS variable used by GAR.

The basic concept is based on building the entire desktop, rather than
some packages only. Thus determining whether a package is already built
is done using some cookies. This mechanism does not check for installed
packages (as in installed on your system), but uses its own cookies. [1]


Speaking of having those packages already installed with the same
version... Where did you get it from (built on your own, or packages)?
Do you have the devel versions installed as well (if packages)?


> Could that be avoided?

It can, but must be done manually. There is no global switch for this.

For any given garball, edit that garball's Makefile. If you comment out
the LIBDEPS line, GAR assumes there are no dependencies required, and
thus will not build them, omitting the behavior you observed.

Missing dependencies (if any) then will fail in configure stage, rarely
during the build, or even can have impact on the proper functionality on
runtime. If you are sure you got all the deps required and they can be
found during configure/build, it should not harm anything.


This command (run in your GARNOME root build tree) will report all
packages with their respective dependencies:

$ find . -name Makefile -maxdepth 3 -mindepth 2 -exec grep -H LIBDEPS {} \;

As you can see from the output, you don't need to adjust every garballs
Makefile that depends on a basic package like gtk-2 for example, as
dependencies are cascaded.

HTH

...guenther


[1] Which means, throwing away the build tree after you are done
compiling will lead to this scenario when building some extra packages
later on. Read on to see how to work around it, if you already got the
deps, but don't have the build tree anymore.


-- 
char *t="\10pse\0r\0dtu\0  ghno\x4e\xc8\x79\xf4\xab\x51\x8a\x10\xf4\xf4\xc4";
main(){ char h,m=h=*t++,*x=t+2*h,c,i,l=*x,s=0; for (i=0;i<l;i++){ i%8? c<<=1:
(c=*++x); c&128 && (s+=h); if (!(h>>=1)||!t[s+h]){ putchar(t[s]);h=m;s=0; }}}




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]