portupgrade regression?
Simon L. Nielsen
simon at FreeBSD.org
Thu May 5 06:40:24 PDT 2005
On 2005.04.29 11:10:43 +0200, Simon L. Nielsen wrote:
[portupgrade regression in portupgrade-20041226_2]
> I think I have found the way to fix this both so it works for
> non-root, make pkgdb.db not be updated all the time, and so it does
> not cause new security problems, but I need to work out a few quirks
> (my first version did not work correctly). Hopefully I will get it
> working this weekend, if not I will add a bandaid so you can make it
> work by setting an environment variable.
OK, I think the attached patch should fix the issues so portversion
works again as non-root and the package database is only regenerated
when needed.
I would appreciate if somebody could test the attached patch to
minimize the risk that I have broken something else.
--
Simon L. Nielsen
-------------- next part --------------
Index: Makefile
===================================================================
RCS file: /home/ncvs/ports/sysutils/portupgrade/Makefile,v
retrieving revision 1.195
diff -u -d -r1.195 Makefile
--- Makefile 12 Apr 2005 08:24:48 -0000 1.195
+++ Makefile 5 May 2005 13:27:54 -0000
@@ -7,7 +7,7 @@
PORTNAME= portupgrade
PORTVERSION= 20041226
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= sysutils
MASTER_SITES= ftp://ftp.iDaemons.org/pub/distfiles/ \
${MASTER_SITE_LOCAL}
Index: files/patch-CAN-2005-0610
===================================================================
RCS file: /home/ncvs/ports/sysutils/portupgrade/files/patch-CAN-2005-0610,v
retrieving revision 1.1
diff -u -d -r1.1 patch-CAN-2005-0610
--- files/patch-CAN-2005-0610 12 Apr 2005 08:24:48 -0000 1.1
+++ files/patch-CAN-2005-0610 5 May 2005 13:27:48 -0000
@@ -1,46 +1,34 @@
-diff -ru ../orig.pkgtools-20041224/lib/pkgdb.rb ./lib/pkgdb.rb
---- ../orig.pkgtools-20041224/lib/pkgdb.rb Wed Mar 23 21:37:47 2005
-+++ ./lib/pkgdb.rb Tue Mar 29 00:27:02 2005
-@@ -97,7 +97,7 @@
+diff -ru orig.pkgtools-20041224/lib/pkgdb.rb pkgtools-20041224/lib/pkgdb.rb
+--- orig.pkgtools-20041224/lib/pkgdb.rb Wed Mar 23 21:37:47 2005
++++ pkgtools-20041224/lib/pkgdb.rb Tue May 3 19:37:40 2005
+@@ -96,8 +96,13 @@
+ @db_dir = File.expand_path(new_db_dir || ENV['PKG_DBDIR'] || '/var/db/pkg')
@db_file = File.join(@db_dir, 'pkgdb.db')
- @tmp_dir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
+- @tmp_dir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
- @fixme_file = File.join(@tmp_dir, 'pkgdb.fixme')
-+ @fixme_file = File.join(@db_dir, 'pkgdb.fixme')
++ if ! ENV['PKG_FIXME_FILE'] then
++ if $tmpdir.nil? then
++ init_tmpdir
++ end
++ ENV['PKG_FIXME_FILE'] = $tmpdir + "/pkgdb.fixme"
++ end
++ @fixme_file = ENV['PKG_FIXME_FILE']
@db_filebase = @db_file.sub(/\.db$/, '')
close_db
-diff -ru ../orig.pkgtools-20041224/lib/pkgsqldb.rb ./lib/pkgsqldb.rb
---- ../orig.pkgtools-20041224/lib/pkgsqldb.rb Wed Mar 23 21:37:47 2005
-+++ ./lib/pkgsqldb.rb Tue Mar 29 00:29:51 2005
-@@ -74,7 +74,7 @@
-
- @db_file = File.join(@db_dir, 'pkgdb.sqldb')
- @tmp_dir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
-- @fixme_file = File.join(@tmp_dir, 'pkgdb.fixme')
-+ @fixme_file = File.join(@db_dir, 'pkgdb.fixme')
- close_db
-
- @db_dir
-diff -ru ../orig.pkgtools-20041224/lib/pkgtools.rb ./lib/pkgtools.rb
---- ../orig.pkgtools-20041224/lib/pkgtools.rb Wed Mar 23 21:37:47 2005
-+++ ./lib/pkgtools.rb Wed Mar 30 23:51:50 2005
-@@ -204,7 +204,7 @@
- $ports_dir = $portsdb.ports_dir
- $packages_base = ENV['PACKAGES'] || File.join($ports_dir, 'packages')
- $packages_dir = File.join($packages_base, 'All')
-- $tmpdir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
-+ init_tmpdir
- $pkg_path = ENV['PKG_PATH'] || $packages_dir
-
- $pkg_sites = (ENV['PKG_SITES'] || '').split
-@@ -222,6 +222,31 @@
-
- $portsdb.ignore_categories = config_value(:IGNORE_CATEGORIES) || []
- $portsdb.extra_categories = config_value(:EXTRA_CATEGORIES) || []
-+end
+diff -ru orig.pkgtools-20041224/lib/pkgmisc.rb pkgtools-20041224/lib/pkgmisc.rb
+--- orig.pkgtools-20041224/lib/pkgmisc.rb Wed Mar 23 21:37:47 2005
++++ pkgtools-20041224/lib/pkgmisc.rb Thu May 5 14:09:37 2005
+@@ -95,3 +95,31 @@
+ end
+ end
+ end
+
+def init_tmpdir
++ if ! $tmpdir.nil? && $tmpdir != "" then
++ return
++ end
+ maintmpdir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
+ if !FileTest.directory?(maintmpdir)
+ raise "Temporary directory #{maintmpdir} does not exist"
@@ -63,6 +51,34 @@
+ end
+ }
+ $tmpdir=tmpdir
- end
++end
+diff -ru orig.pkgtools-20041224/lib/pkgsqldb.rb pkgtools-20041224/lib/pkgsqldb.rb
+--- orig.pkgtools-20041224/lib/pkgsqldb.rb Wed Mar 23 21:37:47 2005
++++ pkgtools-20041224/lib/pkgsqldb.rb Tue May 3 19:46:35 2005
+@@ -74,7 +74,13 @@
- def parse_pattern(str, regex = false)
+ @db_file = File.join(@db_dir, 'pkgdb.sqldb')
+ @tmp_dir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
+- @fixme_file = File.join(@tmp_dir, 'pkgdb.fixme')
++ if ! ENV['PKG_FIXME_FILE'] then
++ if $tmpdir.nil? then
++ init_tmpdir
++ end
++ ENV['PKG_FIXME_FILE'] = $tmpdir + "/pkgdb.fixme"
++ end
++ @fixme_file = ENV['PKG_FIXME_FILE']
+ close_db
+
+ @db_dir
+diff -ru orig.pkgtools-20041224/lib/pkgtools.rb pkgtools-20041224/lib/pkgtools.rb
+--- orig.pkgtools-20041224/lib/pkgtools.rb Wed Mar 23 21:37:47 2005
++++ pkgtools-20041224/lib/pkgtools.rb Tue May 3 19:29:59 2005
+@@ -204,7 +204,7 @@
+ $ports_dir = $portsdb.ports_dir
+ $packages_base = ENV['PACKAGES'] || File.join($ports_dir, 'packages')
+ $packages_dir = File.join($packages_base, 'All')
+- $tmpdir = ENV['PKG_TMPDIR'] || ENV['TMPDIR'] || '/var/tmp'
++ init_tmpdir
+ $pkg_path = ENV['PKG_PATH'] || $packages_dir
+
+ $pkg_sites = (ENV['PKG_SITES'] || '').split
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-ports/attachments/20050505/f29fd40d/attachment.bin
More information about the freebsd-ports
mailing list