Hello Stuart, thanks!
That was _very_ useful. I remember reading this in "Absolute OpenBSD", but it was ~ 2 yrs ago. I had totally forgotten. I am compiling now openoffice3 (I am stubborn) I wonder what will happen to /usr/local/bin/soffice later... this is currently openoffice 2.4.2 I should probably move it to /usr/local/bin/soffice.2.4.2 manually thank you very much again for the detailed information pau 2009/4/28 Stuart Henderson <[email protected]>: > On 2009-04-26, Pau <[email protected]> wrote: >> Hello, >> >>> $ cd /usr/ports/lang/gcc/4.2 >>> $ FLAVOR="c++ fortran objc" make >> >> thanks, it's compiling now... But... what is that supposed to do, >> compared to simply "make"? Can you please elaborate a bit? What kind >> (flavour) of gcc42 will I be "left with"? Remind that this is >> "newbies" and not misc (this was the reason for posting here, because >> I assumed there would be too many basic things to ask), and even if I >> have been using openbsd for everything for three years already, there >> are many things I still do not understand. "I am not a technician", I >> am a Physicist, but I do not put this forward as a (ridiculous) >> argument, I want to know and understand. > > The FLAVOR influences how a port is built; sometimes to choose between > alternative versions which can't be built together (for example, in > bacula you can choose between different mutually-exclusive databases), > other times to add non-standard patches (as in mutt with various patches > like the sidebar), and others to prevent parts from being built (e.g. > here in gcc 4, or php5/extensions). > > You can of course find these in the port's Makefile or files it pulls > in (sometimes you also need to consult Makefile.inc in the parent > directory), but there's an easier way to see the list of possible > flavors: > > $ make show=FLAVORS > c++ fortran objc java ada > > and also the list of default flavors on an i386 machine: > > $ make show=FLAVOR > c++ fortran objc ada > > setting other variables can affect the "make show" output; a simple > but pointless example: > > $ FLAVOR="c++ fortran" make show=FLAVOR > c++ fortran > > or we can pretend we have an amd64 and show the list of default > flavors there: > > $ MACHINE_ARCH=amd64 make show=FLAVOR > c++ fortran objc > > (as you can see here; the ada bootstrap we're having problems with here > is for i386 only; it's not built on amd64). > > > On 2009-04-26, Pau <[email protected]> wrote: >> something's broken.... >> >> I installed it with your FLAVOR and then went to >> /usr/ports/editors/openoffice3 and... look below > > Aha; an opportunity to explain a bit about sub-packages too :-) > they're related but different to FLAVORs. > > If you have software which builds a large set of files, and it's > common for users not to need all of them, the port can build the whole > lot, and produce separate packages from this. Here it's the C compiler, > C++ compiler, standard C++ library, Fortran compiler, Ada compiler, > and Objective C compiler. Let's take a look at some files in some > of the PLISTs here: > > $ cd /usr/ports/lang/gcc/4.2; grep bin/ pkg/PLIST-{main,c++,f95} > pkg/PLIST-main:@bin bin/ecpp > pkg/PLIST-main:@bin bin/egcc > pkg/PLIST-main:bin/egccbug > pkg/PLIST-main:@bin bin/egcov > pkg/PLIST-main:@bin bin/${CONFIG}-egcc > pkg/PLIST-main:@bin bin/${CONFIG}-gcc-${V} > pkg/PLIST-c++:@bin bin/ec++ > pkg/PLIST-c++:@bin bin/eg++ > pkg/PLIST-c++:@bin bin/${CONFIG}-ec++ > pkg/PLIST-c++:@bin bin/${CONFIG}-eg++ > pkg/PLIST-f95:@bin bin/egfortran > pkg/PLIST-f95:@bin bin/${CONFIG}-egfortran > > So at the packaging stage (where the /usr/ports/packages/ARCH/all/*.tgz > files are produced), you get a subset of files in each package, according > to the packing list (pkg/PLIST* and pkg/PFRAG* files). > > This probably isn't the simplest port to demonstrate with, but not too > bad; the FLAVOR affects the set of files produced - this port doesn't > bother building the Fortran compiler unless the FLAVOR is set > appropriately, and it removes -f95 from the list of sub-packages to > build *.tgz for. > > $ make show=MULTI_PACKAGES > -main -c++ -estdc -f95 -objc -ada > > $ FLAVOR="c++ objc" make show=MULTI_PACKAGES > -main -c++ -estdc -objc > > We wanted to remove the Ada compiler because it requires a pre-built > version of the Ada compiler to "bootstrap" from and we don't have the > right libraries to do that; so you can set the FLAVOR how I showed > earlier and check which packages will be built. > >>===> openoffice-3.0.1p2 depends on: gcc-* - found >>===> openoffice-3.0.1p2 depends on: g++-* - not found >>===> Verifying install for g++-* in lang/gcc/4.2 > > so, it found the "gcc" subpackage, the C compiler, but not the "g++" > subpackage. But you already built it; it's there in /usr/ports/packages. > What happened is the "make install" target just installs one of the > subpackages, not the whole lot. You can either "make install-all" for > everything you built, or you manually pkg_add the package you just > built: > > # PKG_PATH=/usr/ports/packages/i386/all/ pkg_add g++ > > (When you "make install" in the OpenBSD ports tree, it always builds > a package, then pkg_add's it. Some other OS do this the other way round; > they install under the live system, then "make package" is an optional > later step e.g. if you want to move the package to a different machine > without rebuilding). > > When openoffice is trying to install g++ as a dependency, it doesn't > know about /usr/ports/packages, it uses the ports tree to attempt the > installation - and it doesn't know anything about gcc's FLAVOR, so > it attempts to re-build the whole lot of gcc, which fails for the > original reason. > >> I think I will wait for the gcc4.2 binary and then try again. I want >> to compile openoffice on my own because i hope to get some speeding up >> factor... probably I could get it by compiling rather than installing >> the binary from an ftp srver... > > The binary packages on ftp are built in exactly the same way as > packages you build yourself from ports; unless you adjust compiler > optimization flags (which except in special circumstances will > waste more of your time than it saves at runtime), there should > be no difference at all between the package you make via ports, > and the packages made in the bulk builds for the ftp servers. > > > _______________________________________________ > Openbsd-newbies mailing list > [email protected] > http://mailman.theapt.org/listinfo/openbsd-newbies > -- Let there be peace on earth. And let it begin with misc _______________________________________________ Openbsd-newbies mailing list [email protected] http://mailman.theapt.org/listinfo/openbsd-newbies
