On Tue, Jul 07, 2026 at 01:21:05PM +0100, Stuart Henderson wrote:
> On 2026/07/07 13:45, Jeremie Courreges-Anglas wrote:
[...]
> > I've thought about it some more and I'm not sure my initial diff is
> > the way to go anymore.  Seems like zhuk@ made sure portimport and
> > portcheck could be used from any valid ports tree checkout, not just
> > whatever the user happens to be using for builds.

Actually portcheck would whine if ran from an arbitrary location:

  ritchie /tmp/ports/mystuff/devel/libigloo$ /tmp/portimport
  Package(s) would be named: Can't find /tmp/ports/mystuff/devel/libigloo under 
PORTSDIR_PATH=/usr/ports:/usr/ports/mystuff
  Fatal: can't figure out PKGPATH (in /tmp/ports/mystuff/devel/libigloo)
  Fatal: one category in devel should match 
PKGPATH=/tmp/ports/mystuff/devel/libigloo (in /tmp/ports/mystuff/devel/libigloo)
  *** Error 1 in /tmp/ports/mystuff/devel/libigloo 
(/usr/ports/infrastructure/mk/bsd.port.mk:3904 '.BEGIN': @exit 1)

Anyway...

> So maybe dropping
> > mystuff really is the simplest approach, but ENOTIME right now.
> 
> ah that makes sense...

Here's a new diff.  If -p isn't passed, keep using $PWD to determine
portsdir, but as a special case also trim /mystuff from the resulting
path.  mystuff *is* a special case anyway.  This is enough to fix the
pesky error.

While here (to be committed separately):
1. test -z $variable works for the wrong reason, properly quote the variable
  expansion to respect the semantics of -z
2. revert the cvs -R addition, it didn't help fix the issue

  ritchie /tmp/ports/mystuff/devel/libigloo$ /tmp/portimport
  Package(s) would be named: libigloo-0.9.5
  Import would go into: ports/devel/libigloo
  Does this look correct? [y/n] y
  U ports/devel/libigloo/Makefile
  U ports/devel/libigloo/distinfo
  U ports/devel/libigloo/pkg/PLIST
  U ports/devel/libigloo/pkg/DESCR
  
  No conflicts created by this import
  
  Don't forget to commit the devel/Makefile when you're done!
  /tmp/ports/devel
  ritchie /tmp/ports/mystuff/devel/libigloo$ ls /tmp/ports/devel/libigloo
  CVS/      Makefile  distinfo  pkg/

ok?


Index: portimport
===================================================================
RCS file: /cvs/ports/infrastructure/bin/portimport,v
diff -u -p -r1.10 portimport
--- portimport  19 Feb 2020 17:53:18 -0000      1.10
+++ portimport  8 Jul 2026 20:37:15 -0000
@@ -46,7 +46,7 @@ shift $(($OPTIND - 1))
 
 error=false
 pkgpath=$(portcheck "${portcheck_args[@]}") || error=true
-if test -z $pkgpath; then
+if test -z "$pkgpath"; then
        echo >&2 "Can't determine pkgpath"
        exit 1
 fi
@@ -55,7 +55,10 @@ if $error; then
        [[ $ans == +(y|Y) ]] || exit 1
 fi
 
-portsdir=${portsdir:-${PWD%"/$pkgpath"}}
+if [ -z "$portsdir" ]; then
+       portsdir=${PWD%"/$pkgpath"}
+       portsdir=${portsdir%/mystuff}
+fi
 timestamp=$(date '+%Y%m%d')
 [email protected]:/cvs
 
@@ -71,7 +74,7 @@ if [[ $ans == +(y|Y) ]]; then
        cvs -d$cvsroot import ports/$pkgpath $user ${user}_$timestamp
        grep -q "^@new" pkg/P* && echo "New users/groups, remember to commit 
infrastructure/db/user.list!"
        cd "$portsdir/${pkgpath%/*}"
-       cvs -R -d$cvsroot update -AdP ${pkgpath##*/}
+       cvs -d$cvsroot update -AdP ${pkgpath##*/}
        echo "Don't forget to commit the ${pkgpath%/*}/Makefile when you're 
done!"
        pwd
 fi

-- 
jca

Reply via email to