[Sussex] php build in gentoo

Geoff Teale tealeg at member.fsf.org
Thu Apr 10 22:05:01 UTC 2003


On Thursday 10 April 2003 21:29, Dominic wrote:
> It has a dependancy on freetype (1.3.1).  Gentoo has just emerged
> freetype2!

OK.

Firstly.. are you sure it won't work with the newer version of the library 
(this is worth checking).

Secondly you can actually tell Gentoo to merge the older version instead - 
there are two ways:

1, When you do an emerge give it a full path to a freetype-1.3.1.ebuild file 
instead of just doing an emerge freetype (this assumes that 1.3.1 is still 
available in the tree (it should be)).

2. Change the mask file in /usr/portage/profile.  Add a line that reads 
something like:

>freetype-1.3.1

This will tell portage to mask any freetype packages that are later than 1.3.1 
(so 1.3.1 will be built by default).

> So I got the source for both freetype 1.3.1 and ttmkfdir manually, and
> built then myself.  Great, it worked.
>
> But....  With my complete lack of experience with C and makefiles and
> gentoo ( :) ) I don't really know what I have got, where I should put it
> and how to tell emerge that I have done it ( the last bit I guess is emerge
> inject, but I don't want to do this until I know what to do with the 2
> builds I just created).

I don't know about these packages explicitly, but usually the process is:

su -
cd $WHERE_YOUR_SOURCE_IS
./configure
make
make install

... the final stage installs all the files in the correct place.  Note that 
`make install` is only a convention and relies on the developer putting 
"install" as a target in a makefile.  If you want to learn more about 
Makefiles I have the official GNU Make manual here, you're welcome to borrow 
it - alternatively you can get all the GNU manuals online at:

http://www.gnu.org/manual/manual.html

The GNU Make manual for example is at:

http://www.gnu.org/manual/make-3.80/html_node/make_toc.html

Once you have done this, look for an ebuild file for these package version 
(usually you'll find several differents version of each package in the 
/usr/portage/?????/packagename/ directory ) and simply do:

emerge inject /usr/portage/?????/packagename/?????.ebuild

Once this is done emerge will think you have the correct package installed.

> This is all good experience, but.... where do I put these things and how do
> I get emerge to know they're there and utilise them for the rest of the
> build processes?

Hmmm..  it all seems a little too involved.  It may be worth you logging on to 
http://forums.gentoo.org   and simply searching for Apache or PHP - I really 
doubt that anything in the stable Gentoo portage tree is as broken as your 
build seems to be...

-- 
GJT
Free Software Foundation
tealeg at member.fsf.org




More information about the Sussex mailing list