Skip site navigation (1)Skip section navigation (2)
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>