Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Aug 2002 18:28:35 -0400 (EDT)
From:      Lukas Karlsson <karlsson@panix.com>
To:        freebsd-stable@freebsd.org
Subject:   pkg_update problem.
Message-ID:  <20020820181333.E29597-100000@starship.alienwebshop.com>

next in thread | raw e-mail | index | archive | help
I've been trying to use pkg_update to upgrade ports on my FreeBSD 4.6.2
Stable system.  The process I've been using is:

	cd /usr/ports/dirt/portname
	make clean
	make
	make package
	pkg_update portname-1.2.3.tbz

The behavior is basically that all the files in the original package file
the MD5 checksum, but it deletes them anyway.  Then it fails to remove all
the files, because they don't exist (because it's already deleted them).
Then it fails to update the +REQUIRED_BY file, because it has the version
number wrong.  Here is an example output for me attempting to upgrade
p5-Storable:

	> sudo pkg_update p5-Storable-2.04.tbz
	Updating p5-Storable packages to version 2.04.
	pkg_delete: `/usr/local/lib/perl5/5.6.1/man/man3/Storable.3.gz' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/Storable.so' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_freeze.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_retrieve.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_store.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_store_fd.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/autosplit.ix' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/fd_retrieve.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/freeze.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/lock_nstore.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/lock_retrieve.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/lock_store.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/nfreeze.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/nstore.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/nstore_fd.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/retrieve.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/store.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/store_fd.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/thaw.al' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/Storable.pm' fails original MD5 checksum - deleted anyway.
	pkg_delete: `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/.packlist' fails original MD5 checksum - deleted anyway.
	pkg_delete: unable to completely remove directory '/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable'
	pkg_delete: couldn't entirely delete package (perhaps the packing list isincorrectly specified?)
	pkg_delete: file `/usr/local/lib/perl5/5.6.1/man/man3/Storable.3.gz' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/Storable.pm' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/.packlist' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/Storable.bs' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/Storable.so' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_freeze.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_retrieve.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_store.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/_store_fd.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/autosplit.ix' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/fd_retrieve.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/freeze.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/lock_nstore.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/lock_retrieve.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/lock_store.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/nfreeze.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/nstore.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/nstore_fd.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/retrieve.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/store.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/store_fd.al' doesn't really exist
	pkg_delete: file `/usr/local/lib/perl5/site_perl/5.6.1/mach/auto/Storable/thaw.al' doesn't really exist
	pkg_delete: couldn't entirely delete package (perhaps the packing list isincorrectly specified?)
	pkg_add: package bsdpan-CPAN-1.61 has no origin recorded
	pkg_add: package bsdpan-DB_File-1.803 has no origin recorded
	pkg_add: package bsdpan-Pod-LaTeX-0.54 has no origin recorded
	pkg_add: package bsdpan-Term-Cap-1.07 has no origin recorded
	pkg_add: package bsdpan-Test-1.20 has no origin recorded
	pkg_add: package bsdpan-Text-Soundex-2.20 has no origin recorded
	pkg_add: package bsdpan-Text-Tabs+Wrap-2001.0929 has no origin recorded
	Can't open /var/db/pkg/p5-Storable-2.04./+REQUIRED_BY, No such file or directory
	>


It's the last line that leads me to believe that the pkg version isn't
being set properly.  A quick look at the source for pkg_update shows this:

	sub get_version($) {
	        my ($pkg) = @_;

	        $pkg =~ /(.+)-([0-9\.]+)/;
	        if (! $2) {
	                return($pkg, "");
	        } else {
	                return ($1, $2);
	        }
	}

The regular expression there is not correct, if you assum that package
filenames will be of the form:

	 some-package-1.2.3.tbz

as they are output by "make package."

Perhaps:

	        $pkg =~ /(.+)-([0-9\.]+\.)/;

or

	        $pkg =~ /(.+)-([0-9\.]+[0-9])/;


would be more appropriate.  Though I'm sure there's an even better fix for
that part of the problem.

However, even after attempting to fix that regular expression, the package
installation still failed (minus the last line, which didn't generate an
error).

I will be happy to look into this more, but the first thing I really
wanted to find out is am I the only person having this problem?

/l

-----------------------------------------------------------------------------
Lukas Karlsson                                             karlsson@panix.com
Cambridge, MA	                                           http://lukwam.com/


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-stable" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020820181333.E29597-100000>