[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: howdee + 3.7 pkg testing
- To: misc_(_at_)_openbsd_(_dot_)_org
- Subject: Re: howdee + 3.7 pkg testing
- From: "harold felton" <hfelton_lists_(_at_)_hotmail_(_dot_)_com>
- Date: Thu, 21 Apr 2005 15:19:06 -0700
From: Stuart Henderson <stu_(_at_)_spacehopper_(_dot_)_org>
To: harold felton <hfelton_lists_(_at_)_hotmail_(_dot_)_com>, misc_(_at_)_openbsd_(_dot_)_org
Subject: Re: howdee + 3.7 pkg testing
Date: Thu, 21 Apr 2005 22:29:12 +0100
--On 21 April 2005 11:40 -0700, harold felton wrote:
im sorry to bother-yall with this, but im still confused about the
'make install' in a port directory does the following:
downloads, unpacks and patches source files
runs configure with options specified by the port Makefile
builds the port in $port_dir/work/$foo
installs the port to fake directory
creates a package *.tgz from fake directory using packing list in
pkg_add's the package it just made
a - if im reading things correctly, then an install will first
create-its-pkg and then basically do everything that the pkg_add
It actually calls the real pkg_add(1), no 'basically do everything' about
it. The only thing that might differ from you calling it manually is where
the .tgz file is obtained from.
"aye - THEREs the rub..." ;) some of the warnings id seen also
mentioned a -m switch, but it is all hazy now and ill just ignore it
as user-error until i setup my -current-ports correctly.
Thus: if 'make install' for a port doesn't work, the created package won't
work. This is absolutely great if you're creating a new port, since you
will quickly know if you missed an important file from the packing list
(and so, creating a working port that makes a broken package). This is
different to some other OS with a ports tree where 'make install' from a
port goes direct to /, so a working port can still make a broken package.
It's really well thought-out. By using systrace during a port build, you
can stop a port's installation routines from writing outside it's specified
directory, helping avoid problems with malicious routines in port source
code, and bugs in port's installers. Of course, you don't need to worry
about this if you use packages.
If you don't understand this stuff about fake directories, experiment -
build ports, install packages, watch what goes on at each stage ('make -n'
helps), examine contents of package .tgz files, ... It's by far the most
effective way to learn.
im going to have to reread this and attempt understanding a bit
more by practicing, i guess. so, to stay with -current and then to
test the packages, i should be "running from source" in /usr/ports.
[since it WILL do a pkg_add at the end like the "easier" way].
otoh, the easiest/best way to stay with -current is to use snapshots.
[while watching the lists, since the month-of-madness will be soon
after the -release is tagged/done - whoohoo...]
i stumbled thru the man-pages and was overwhelmed with systrace
(and bsd.port.mk) since im still a noob, but ill keep at it.
i really appreciate the help/explanations. i now see the twiki and
ports, so maybe itll all "just work". sorry to take up so much bandwidth,
but maybe someone reading the archives will find this thread useful.
[i know _I_ learned alot from skimming the archives earlier.]
thanx again and have fun, h.
Visit your host, monkey.org