portupgrade: Good location for flag file?

Simon L. Nielsen simon at FreeBSD.org
Sat May 21 16:07:03 PDT 2005


On 2005.05.21 15:21:40 +0200, Simon L. Nielsen wrote:
> Hello
> 
> To really get portupgrade to work properly again after my patch for
> CAN-2005-0610 (portupgrade 20041226_2) I need to find a good location
> for the pkgdb.fixme flagfile.  Before 20041226_2 it was in /tmp or
> /var/tmp but for 20041226_2 it was moved to /var/db/pkg, which turned
> out to be a bad idea (see ports/81088 and mails on this list).
> 
> So, I need to have a known static location for pkgdb.fixme which is in
> a directory only writeable by root.  So does anyone suggestions on a
> good location?  The only ones I can come up with, which are not really
> good, are /var/run or /var/db/portupgrade...

Pav suggested simply using /var/db/pkgdb.fixme, so unless somebody has
a better idea I plan to commit the attached patch within the next
couple of days (when my ports mentor gets back).

I noticed a cosmetic bug when using FreeBSD 6-CURRENT make so a fix
for that is also in the patch...

-- 
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	21 May 2005 22:43:28 -0000
@@ -1,46 +1,29 @@
-diff -ru ../orig.pkgtools-20041224/lib/pkgdb.rb ./lib/pkgdb.rb
+diff -ur ../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 @@
++++ ./lib/pkgdb.rb	Sun May 22 00:39:38 2005
+@@ -96,8 +96,7 @@
+     @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')
++    @fixme_file = ENV['PKG_FIXME_FILE'] || "/var/db/pkgdb.fixme"
      @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
+Only in ./lib: pkgdb.rb~
+diff -ur ../orig.pkgtools-20041224/lib/pkgmisc.rb ./lib/pkgmisc.rb
+--- ../orig.pkgtools-20041224/lib/pkgmisc.rb	Wed Mar 23 21:37:47 2005
++++ ./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 +46,30 @@
 +    end
 +    }
 +  $tmpdir=tmpdir
- end
++end
+diff -ur ../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	Sun May 22 00:42:04 2005
+@@ -73,8 +73,7 @@
+     @db_dir = File.expand_path(new_db_dir || ENV['PKG_DBDIR'] || '/var/db/pkg')
  
- 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')
++    @fixme_file = ENV['PKG_FIXME_FILE'] || "/var/db/pkgdb.fixme"
+     close_db
+ 
+     @db_dir
+Only in ./lib: pkgsqldb.rb~
+diff -ur ../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	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
Index: files/patch-Makefile.compat
===================================================================
RCS file: files/patch-Makefile.compat
diff -N files/patch-Makefile.compat
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ files/patch-Makefile.compat	21 May 2005 22:47:52 -0000
@@ -0,0 +1,11 @@
+--- ../orig.pkgtools-20041224/Makefile.compat	Wed Mar 23 21:37:47 2005
++++ Makefile.compat	Sun May 22 00:46:39 2005
+@@ -89,7 +89,7 @@
+ .endif
+ .endif
+ 
+-.endif defined(${group}) && !empty(${group})
++.endif # defined(${group}) && !empty(${group})
+ .endfor
+ 
+ .endif
-------------- 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/20050522/3b0941e4/attachment.bin


More information about the freebsd-ports mailing list