ports/99647: portupgrade -R portupgrade-2.1.1,2 breaks pkgdb

S Roberts stacey at vickiandstacey.com
Fri Jun 30 15:40:24 UTC 2006


>Number:         99647
>Category:       ports
>Synopsis:       portupgrade -R portupgrade-2.1.1,2 breaks pkgdb
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 30 15:40:19 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator:     S Roberts
>Release:        FreeBSD 6.1-STABLE i386
>Organization:
>Environment:
System: FreeBSD chimera.vickiandstacey.com 6.1-STABLE FreeBSD 6.1-STABLE #0: Sun May 28 11:47:03 BST 2006 sroberts at chimera.vickiandstacey.com:/usr/obj/usr/src/sys/STEEL i386


>Description:
After fresh cvsup of ports tree today, attempts to portupgrade portupgrade to latest in ports
results in broken pkgdb. Here is the output from the portupgrade process:


# portupgrade -R portupgrade-2.1.1,2
--->  Upgrading 'portupgrade-2.1.1,2' to 'portupgrade-2.1.3.1,2' (sysutils/portupgrade)
--->  Building '/usr/ports/sysutils/portupgrade'
===>  Cleaning for ruby-1.8.4_8,1
===>  Cleaning for ruby18-bdb-0.5.9
===>  Cleaning for perl-5.8.8
===>  Cleaning for db41-4.1.25_3
===>  Cleaning for portupgrade-2.1.3.1,2
===>  Vulnerability check disabled, database not found
===>  Found saved configuration for portupgrade-2.0.1_2,1
=> pkgtools-2.1.3.1.tar.bz2 doesn't seem to exist in /usr/ports/distfiles/.
=> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/sem/.
pkgtools-2.1.3.1.tar.bz2                      100% of  107 kB   88 kBps
===>  Extracting for portupgrade-2.1.3.1,2
=> MD5 Checksum OK for pkgtools-2.1.3.1.tar.bz2.
=> SHA256 Checksum OK for pkgtools-2.1.3.1.tar.bz2.
===>   portupgrade-2.1.3.1,2 depends on file: /usr/local/bin/ruby18 - found
===>  Patching for portupgrade-2.1.3.1,2
===>   portupgrade-2.1.3.1,2 depends on file: /usr/local/bin/ruby18 - found
===>   portupgrade-2.1.3.1,2 depends on file: /usr/local/bin/ruby18 - found
===>  Configuring for portupgrade-2.1.3.1,2
===>  Building for portupgrade-2.1.3.1,2
===> bin (all)
Warning: Object directory not changed from original
/usr/ports/sysutils/portupgrade/work/pkgtools-2.1.3.1/bin
/usr/local/bin/ruby18 -wc pkg_fetch
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  pkg_fetch
> .build/pkg_fetch
/usr/local/bin/ruby18 -wc pkg_glob
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  pkg_glob >
.build/pkg_glob
/usr/local/bin/ruby18 -wc pkg_sort
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  pkg_sort >
.build/pkg_sort
/usr/local/bin/ruby18 -wc pkgdb
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  pkgdb >
.build/pkgdb
/usr/local/bin/ruby18 -wc portcvsweb
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  portcvsweb
> .build/portcvsweb
/usr/local/bin/ruby18 -wc portsclean
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  portsclean
> .build/portsclean
/usr/local/bin/ruby18 -wc portsdb
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'  portsdb >
.build/portsdb
/usr/local/bin/ruby18 -wc portupgrade
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'
portupgrade > .build/portupgrade
/usr/local/bin/ruby18 -wc portversion
Syntax OK
/usr/local/bin/ruby18 -pe '  if $. == 1;  if /^#!/;  sub /^#!\s*\S*(\benv\s+)?\bruby/,
"#!/usr/local/bin/ruby18";  else;  $_ = "#!/usr/local/bin/ruby18\n" + $_;  end;  end'
portversion > .build/portversion
gzip -cn pkg_deinstall.1 > pkg_deinstall.1.gz
gzip -cn pkg_fetch.1 > pkg_fetch.1.gz
gzip -cn pkg_glob.1 > pkg_glob.1.gz
gzip -cn pkg_sort.1 > pkg_sort.1.gz
gzip -cn pkgdb.1 > pkgdb.1.gz
gzip -cn portcvsweb.1 > portcvsweb.1.gz
gzip -cn portsclean.1 > portsclean.1.gz
gzip -cn portsdb.1 > portsdb.1.gz
gzip -cn portupgrade.1 > portupgrade.1.gz
gzip -cn portversion.1 > portversion.1.gz
===> etc (all)
Warning: Object directory not changed from original
/usr/ports/sysutils/portupgrade/work/pkgtools-2.1.3.1/etc
/usr/local/bin/ruby18 -p  -e 'sub(%r:/usr/local:, "/usr/local")'  -e 'sub(%r:(/etc/rc\.subr):,
"/usr/local\\1") if !File.exist?("/etc/rc.subr")'  status-pkg.sh > .build/status-pkg.sh
gzip -cn pkgtools.conf.5 > pkgtools.conf.5.gz
===> lib (all)
Warning: Object directory not changed from original
/usr/ports/sysutils/portupgrade/work/pkgtools-2.1.3.1/lib
/usr/local/bin/ruby18 -wc pkg.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkg.rb > .build/pkg.rb
/usr/local/bin/ruby18 -wc pkgdb.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkgdb.rb > .build/pkgdb.rb
/usr/local/bin/ruby18 -wc pkginfo.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkginfo.rb > .build/pkginfo.rb
/usr/local/bin/ruby18 -wc pkgmisc.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkgmisc.rb > .build/pkgmisc.rb
/usr/local/bin/ruby18 -wc pkgtools.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkgtools.rb > .build/pkgtools.rb
/usr/local/bin/ruby18 -wc pkgtsort.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkgtsort.rb > .build/pkgtsort.rb
/usr/local/bin/ruby18 -wc pkgversion.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  pkgversion.rb >
.build/pkgversion.rb
/usr/local/bin/ruby18 -wc portinfo.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  portinfo.rb > .build/portinfo.rb
/usr/local/bin/ruby18 -wc ports.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  ports.rb > .build/ports.rb
/usr/local/bin/ruby18 -wc portsdb.rb
Syntax OK
/usr/local/bin/ruby18 -p  -e 'sub %r:/usr/local:, "/usr/local"'  portsdb.rb > .build/portsdb.rb
===> misc (all)
===> misc/bash (all)
Warning: Object directory not changed from original
/usr/ports/sysutils/portupgrade/work/pkgtools-2.1.3.1/misc/bash
===> misc/tcsh (all)
Warning: Object directory not changed from original
/usr/ports/sysutils/portupgrade/work/pkgtools-2.1.3.1/misc/tcsh
===> misc/zsh (all)
Warning: Object directory not changed from original
/usr/ports/sysutils/portupgrade/work/pkgtools-2.1.3.1/misc/zsh
--->  Backing up the old version
--->  Uninstalling the old version
--->  Deinstalling 'portupgrade-2.1.1,2'
[Updating the pkgdb <format:bdb1_btree> in /var/db/pkg ... - 366 packages found (-1 +0) (...)
done]
--->  Installing the new version via the port
===>  Installing for portupgrade-2.1.3.1,2
===>   portupgrade-2.1.3.1,2 depends on file: /usr/local/bin/ruby18 - found
===>   portupgrade-2.1.3.1,2 depends on file:
/usr/local/lib/ruby/site_ruby/1.8/i386-freebsd6/bdb.so - found
===>   portupgrade-2.1.3.1,2 depends on file: /usr/local/bin/perl5.8.8 - found
===>   Generating temporary packing list
===>  Checking if sysutils/portupgrade already installed
===> bin (install)
install -o root  -g wheel -m 555  .build/pkg_fetch  /usr/local/sbin/pkg_fetch
install -o root  -g wheel -m 555  .build/pkg_glob  /usr/local/sbin/pkg_glob
install -o root  -g wheel -m 555  .build/pkg_sort  /usr/local/sbin/pkg_sort
install -o root  -g wheel -m 555  .build/pkgdb  /usr/local/sbin/pkgdb
install -o root  -g wheel -m 555  .build/portcvsweb  /usr/local/sbin/portcvsweb
install -o root  -g wheel -m 555  .build/portsclean  /usr/local/sbin/portsclean
install -o root  -g wheel -m 555  .build/portsdb  /usr/local/sbin/portsdb
install -o root  -g wheel -m 555  .build/portupgrade  /usr/local/sbin/portupgrade
install -o root  -g wheel -m 555  .build/portversion  /usr/local/sbin/portversion
install -o root -g wheel -m 444 pkg_deinstall.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 pkg_fetch.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 pkg_glob.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 pkg_sort.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 pkgdb.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 portcvsweb.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 portsclean.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 portsdb.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 portupgrade.1.gz  /usr/local/man/man1
install -o root -g wheel -m 444 portversion.1.gz  /usr/local/man/man1
/usr/local/man/man1/pkg_which.1.gz -> /usr/local/man/man1/pkgdb.1.gz
/usr/local/man/man1/portinstall.1.gz -> /usr/local/man/man1/portupgrade.1.gz
/usr/local/man/man1/ports_glob.1.gz -> /usr/local/man/man1/portsdb.1.gz
/usr/local/sbin/pkg_deinstall -> /usr/local/sbin/pkg_glob
/usr/local/sbin/pkg_which -> /usr/local/sbin/pkgdb
/usr/local/sbin/portinstall -> /usr/local/sbin/portupgrade
/usr/local/sbin/ports_glob -> /usr/local/sbin/portsdb
===> etc (install)
install -o root  -g wheel -m 555  .build/status-pkg.sh  /usr/local/etc/pkgtools.status-pkg.sh
install -o root  -g wheel -m 444  pkgtools.conf  /usr/local/etc/pkgtools.conf.sample
install -o root -g wheel -m 444 pkgtools.conf.5.gz  /usr/local/man/man5
===> lib (install)
install -o root -g wheel  -m 444 .build/pkg.rb .build/pkgdb.rb .build/pkginfo.rb
.build/pkgmisc.rb .build/pkgtools.rb .build/pkgtsort.rb .build/pkgversion.rb .build/portinfo.rb
.build/ports.rb .build/portsdb.rb `/usr/local/bin/ruby18 -rrbconfig -e  'puts "%s/%s.%s" %
%w[sitedir MAJOR MINOR].map { |k| Config::CONFIG[k] }'`
===> misc (install)
===> misc/bash (install)
mkdir -p /usr/local/share/examples/pkgtools/bash
install -o root -g wheel  -m 444 complete.sample /usr/local/share/examples/pkgtools/bash
===> misc/tcsh (install)
mkdir -p /usr/local/share/examples/pkgtools/tcsh
install -o root -g wheel  -m 444 complete.sample /usr/local/share/examples/pkgtools/tcsh
===> misc/zsh (install)
mkdir -p /usr/local/share/zsh/site-functions
install -o root -g wheel  -m 444 _pkgtools /usr/local/share/zsh/site-functions
mkdir -p /usr/local/share/doc/pkgtools
install -c -o root -g wheel -m 444  ChangeLog NEWS README /usr/local/share/doc/pkgtools
===>   Running ldconfig
/sbin/ldconfig -m /usr/local/lib/compat/pkg
===>   Installing ldconfig configuration file
===>   Running ldconfig
/sbin/ldconfig -m /usr/local/lib/compat/pkg
if [ ! -f /usr/local/etc/pkgtools.conf ]; then  /bin/cp -p /usr/local/etc/pkgtools.conf.sample
/usr/local/etc/pkgtools.conf;  fi
===>   Registering installation for portupgrade-2.1.3.1,2
===>  Cleaning for ruby-1.8.4_8,1
===>  Cleaning for ruby18-bdb-0.5.9
===>  Cleaning for perl-5.8.8
===>  Cleaning for db41-4.1.25_3
===>  Cleaning for portupgrade-2.1.3.1,2
--->  Cleaning out obsolete shared libraries
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file
type or format -- Invalid argument; rebuild needed] [Rebuilding the pkgdb <format:bdb_btree> in
/var/db/pkg ... /usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:647:in `which': /var/db/pkg/pkgdb.db:
unexpected file type or format -- Invalid argument: Cannot update the pkgdb!]: Cannot update the
pkgdb!] (PkgDB::DBError)        from /usr/local/sbin/portsclean:322:in `libclean'
        from /usr/local/sbin/portsclean:306:in `libclean'
		from /usr/local/sbin/portsclean:153:in `main'
			from /usr/local/lib/ruby/1.8/optparse.rb:815:in `initialize'
				from /usr/local/sbin/portsclean:67:in `main'
					from /usr/local/sbin/portsclean:684
					[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ...
					/var/db/pkg/pkgdb.db: unexpected file type or format --
					Invalid argument; rebuild needed] [Rebuilding the pkgdb
					<format:bdb_btree> in /var/db/pkg ...
					/var/db/pkg/pkgdb.db: unexpected file type or format --
					Invalid argument: Cannot update the pkgdb!]: Cannot
					update the pkgdb!]
					/usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:444:in
					`__system': Command failed [exit code 1]:
					/usr/local/sbin/pkgdb -aFQ (CommandFailedError)
						from
						/usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:467:in
						`__sudo'
							from
							/usr/local/lib/ruby/site_ruby/1.8/pkgtools.rb:473:in
							`xsystem!'
								from
								/usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:960:in
								`autofix!'
									from
									/usr/local/lib/ruby/site_ruby/1.8/pkgdb.rb:956:in
									`autofix'
										from
										/usr/local/sbin/portupgrade:475:in
										`main'
											from
											/usr/local/sbin/portupgrade:714:in
											`main'

											from
											/usr/local/lib/ruby/1.8/optparse.rb:815:in
											`initialize'

											from
											/usr/local/sbin/portupgrade:209:in
											`main'

											from
											/usr/local/sbin/portupgrade:1951
											chimera#



I attempted to run pkgdb -fu to see if this might be of any assistandce:

chimera# pkgdb -fu
--->  Updating the pkgdb
[Rebuilding the pkgdb <format:bdb_btree> in /var/db/pkg ... /var/db/pkg/pkgdb.db: unexpected file
type or format -- Invalid argument: Cannot update the pkgdb!]
chimera#

>How-To-Repeat:

Cvsup ports tree to today's latest
Portupgrade portupgrade

>Fix:
Don't know.
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list