Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 21 May 2015 13:26:23 +0200
From:      Polytropon <>
To:        Jeffry Killen <>
Subject:   Re: ports make search?
Message-ID:  <>
In-Reply-To: <>
References:  <> <> <>

Next in thread | Previous in thread | Raw E-Mail | Index | Archive | Help
On Wed, 20 May 2015 18:46:47 -0700, Jeffry Killen wrote:
> On May 20, 2015, at 5:10 PM, Polytropon wrote:
> > On Wed, 20 May 2015 16:18:26 -0700, Jeffry Killen wrote:
> >> I am in /usr/ports and
> >> did make search name='libjpg'
> >> It says that INDEX_10 must be built
> >>
> >> So now I have excuted the command
> >> make index
> >>
> >> As I type this it appears that the process is completed.
> >>
> >> But it has been going on for around 20 minutes. Is it
> >> common or not unexpected to take that long?
> >
> > If I remember correctly, the index file can be fetched and
> > doesn't need to be built locally (which really takes some
> > time, as you have noticed):
> >
> > 	# make fetchindex
> >
> > When the index is present, things like "make search" will
> > work properly.
> Thanks;
> I notice that in man ports but I am wondering if the fetch version
> would be up to date with what I have?

The INDEX file should match the snapshot of the ports tree
which you downloaded using portsnap, if I have understood
the mechanism correctly. For updates using SVN this _might_
not be the case, but a mismatch would be reported anyway,
so it's easy to try out.

> To overload this thread:
> I wanted to build php56 and let it fly. It got all the way to libjpeg  
> and bailed out
> with the suggestion that I uninstall the version that i installed from  
> ports alone,
> because it is incompatible with the version that php-extensions is  
> trying to build
> and install.
> When I do that and begin the process of installing php56, will it pick  
> up from were
> it left off, or start over from the top?

That depends on the dependency version number, or if a port
requires an "exact" or "at least" version of a dependency.
You can run the

	# make missing

command before you start the build - it will list the things
that are missing (or not matching).

In case you need to restart a build,

	# make clean
	# make
	# make install

is the recommended approach. Running with "partially built stuff"
often isn't a good idea and could lead to non-working results,
as far as I understand. But you probably don't need to rebuild
all the dependencies, so "make clean-recursive" usually isn't

> Precompiled packages might be simpler, but if the prebuild binary does  
> not have
> all the extensions and features that I want, and has many  that I  
> don't need or want.

That is the main "problem" with precompiled ports: They are
being generated from the _default_ options of the port which
are set by its maintainer. This will fit in many cases, but
not in all cases, and if _your_ case is different, you need
to set your individual compile options (which the binary
package doesn't reflect). In conclusion, those options might
change which dependencies a port requires. As you will see,
"make missing" could then lead to a different result.

As far as I know, there will be "flavors" of ports that will
deal with this "problem", but it's not there yet. Just imagine
how many different packages you would need for a port with
n options, and then try to find out how to _name_ those... ;-)

Typical candidates for this scenario are, for example, multi-
media software like mplayer or mencoder, where options might
be "I want _all_ codes, even those which are 'illegal' in my
country" up to "I just want a very small subset of codecs
supported, and I want certain specific compiler optimization
flags to make the encoder run on a low-spec system". This is
something you usually solve by using ports, manually set options,
and maybe even Makefile.local.

Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...

Want to link to this message? Use this URL: <>