bin/125932: pkg_add(1) doesn't prompt for root credentials and then fails badly

Bruce Cran bruce at cran.org.uk
Sat Oct 11 18:53:48 UTC 2008


Garrett Cooper wrote:
> Here's a proposed patch for the first set of cleanup to pkg_install:
> <http://pastebin.com/f1cee71c2>, and some fixing to alleviate the
> issue in bin/125932.
>
> Rather than biting off more than I can chew with the perforce project,
> I'm going to work off the changes Anders has made and incrementally
> polish pkg_install (like I should have done last year -_-...)
>
> This patch causes pkg_install to error out at the first sign of
> install failure (which could take a while as it's still using tar(1)
> to extract archives in add/extract.c), BUT in getFileByURL I've
> completely replaced the tar requirement in lib/url.c with
> archive(3)'s, quite handy hooks for writing to files. So don't be
> alarmed when you see that the file has grown 4 times ;)...
>
> This patch hasn't gotten much mileage, other than a few failure and
> success cases, so if others could please take a look at this and
> provide comments I'd much appreciate it.
>
> Cheers,
> -Garrett
>
> PS Packages might not be dumped in the correct spot -- I just chose
> /var/tmp, but if someone could point me to the "industry standard"
> location that portupgrade uses for instance, I'd be more than happy to
> point there.
>   

Which release is the patch against? It doesn't apply cleanly to HEAD 
sources and I don't think it works on 7.1-PRERELEASE either - I can't 
see a version of pkg_install/Makefile from 2008-09-08 in cvsweb.
 
It looks like the ports infrastructure and portmaster put packages in 
/usr/ports/packages.  From portmaster(8):
"The directory pointed to by the PACKAGES variable (by default 
/usr/ports/packages) will be used to store new and backup packages. When 
using 'make package' for the -g option, the ports infrastructure will 
store packages in /usr/ports/packages/All, aka PKGREPOSITORY. When using 
the -b option, portmaster stores its backup packages in 
/usr/ports/packages/portmaster-backup so that you can create both a 
backup package of the newly installed port even if they have the same 
version."

-- 
Bruce Cran


More information about the freebsd-bugs mailing list