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>
