Date: Thu, 28 Oct 2004 01:31:45 -0500 From: "Collin J. Kreklow" <collin@kreklow.us> To: freebsd-current@freebsd.org Cc: Kris Kennaway <kris@obsecurity.org> Subject: Re: Portupgrade -af question Message-ID: <20041028063144.GA20869@jupiter.kreklow.us> In-Reply-To: <20041027211531.GC59489@dragon.nuxi.com> References: <BAY2-DAV3ExvWvqzAoa0000c9e7@hotmail.com> <20041027173212.GA59754@xor.obsecurity.org> <20041027190416.GA70873@ei.bzerk.org> <BAY2-DAV9tPGtPrPrvC000146aa@hotmail.com> <20041027211531.GC59489@dragon.nuxi.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Oct 27, 2004 at 02:15:31PM -0700, David O'Brien wrote: > On Wed, Oct 27, 2004 at 12:34:51PM -0700, Zoltan Frombach wrote: > > >Yes. Wouldn't it be a nice feature for "portupgrade -P" to install the > > >port instead of the package if any non-defaults were defined in > > >pkgtools.conf? > > > > If you really want to add this to portupgrade, it should be optional, > > though. Because someone might have a broken compiler or something and just > > wants to install a binary package quickly. In that case it should be > > possible to force a binary package installation regardless of what's inside > > the pkgtools.conf file. Don't you agree? > > 'portupgrade -PP' can still be used for that. I believe that the attached patch will cause portupgrade to build a port when make options are specified either in pkgtools.conf or with the -m option, unless -PP/--use-packages-only is specified. I am by no means a Ruby expert, but this appears to do the correct thing for all the combinations of MAKE_ARGS, -m, -P and -PP I could come up with. Collin --BOKacYhQ+x31HxR3 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=portupgrade-patch --- /usr/ports/sysutils/portupgrade/work/pkgtools-20040701/bin/portupgrade Wed Jun 30 11:51:46 2004 +++ ./portupgrade Thu Oct 28 01:08:47 2004 @@ -943,35 +943,42 @@ newpkg = newpkgname = nil if (oldpkg < portpkg || $force) && $use_packages - progress_message "Checking for the latest package of '#{origin}'" + make_args = shellwords($make_args) - newpkg, pkgfile = find_pkg(origin) + if make_args.empty? || $use_packages_only + progress_message "Checking for the latest package of '#{origin}'" - if !newpkg || newpkg < oldpkg || newpkg < portpkg - if fetch_pkg(origin, logfile) - newpkg, pkgfile = find_pkg(origin) - end + newpkg, pkgfile = find_pkg(origin) + + if !newpkg || newpkg < oldpkg || newpkg < portpkg + if fetch_pkg(origin, logfile) + newpkg, pkgfile = find_pkg(origin) + end - if !newpkg - warning_message "Could not find the latest version (#{portpkg.version})" - else - progress_message "Located a package version #{newpkg.version} (#{pkgfile})" + if !newpkg + warning_message "Could not find the latest version (#{portpkg.version})" + else + progress_message "Located a package version #{newpkg.version} (#{pkgfile})" - if newpkg < oldpkg - warning_message "Ignoring the package, which is older than what is installed (#{oldpkg.version})" - newpkg = nil - elsif newpkg == oldpkg - warning_message "Ignoring the package, which is the same version as is installed (#{oldpkg.version})" - newpkg = nil - elsif newpkg < portpkg - if $use_packages_only - progress_message "Using it anyway although it is not the latest version (#{portpkg.version}), since -PP/--use-packages-only is specified" - else - warning_message "Ignoring the package which is not the latest version (#{portpkg.version})" + if newpkg < oldpkg + warning_message "Ignoring the package, which is older than what is installed (#{oldpkg.version})" + newpkg = nil + elsif newpkg == oldpkg + warning_message "Ignoring the package, which is the same version as is installed (#{oldpkg.version})" newpkg = nil + elsif newpkg < portpkg + if $use_packages_only + progress_message "Using it anyway although it is not the latest version (#{portpkg.version}), since -PP/--use-packages-only is specified" + else + warning_message "Ignoring the package which is not the latest version (#{portpkg.version})" + newpkg = nil + end end - end + end end + else + warning_message "Custom MAKE_ARGS or -m option, ignoring package" + newpkg = nil end if $fetch_only --BOKacYhQ+x31HxR3--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20041028063144.GA20869>