diff -ru sks-1.1.3/build.ml sks-1.1.4/build.ml --- sks-1.1.3/build.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/build.ml 2012-05-06 16:05:40.000000000 +0200 @@ -31,8 +31,8 @@ Keydb.withtxn = false; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Safe @@ -86,11 +86,11 @@ let run () = set_logfile "build"; - if Sys.file_exists (Lazy.force Settings.dbdir) then ( + if Sys.file_exists (!Settings.dbdir) then ( printf "KeyDB directory already exists. Exiting.\n"; exit (-1) ); - Unix.mkdir (Lazy.force Settings.dbdir) 0o700; + Unix.mkdir (!Settings.dbdir) 0o700; Keydb.open_dbs settings; Keydb.set_meta ~key:"filters" ~data:"yminsky.dedup"; diff -ru sks-1.1.3/CHANGELOG sks-1.1.4/CHANGELOG --- sks-1.1.3/CHANGELOG 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/CHANGELOG 2012-05-06 16:05:40.000000000 +0200 @@ -1,3 +1,6 @@ +1.1.4 + - Changed the path configuration to make them easily Debian compatible. + 1.1.3 - Makefile fix for 'make dep' if .depend does not exist. Issue #4 - Makefile fix: sks and sks_add_mail fail to link w/o '-ccopt -pg' diff -ru sks-1.1.3/clean_keydb.ml sks-1.1.4/clean_keydb.ml --- sks-1.1.3/clean_keydb.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/clean_keydb.ml 2012-05-06 16:05:40.000000000 +0200 @@ -44,8 +44,8 @@ Keydb.withtxn = !Settings.transactions; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } (** we need full keydb access because we're playing directly with diff -ru sks-1.1.3/common.ml sks-1.1.4/common.ml --- sks-1.1.3/common.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/common.ml 2012-05-06 16:05:40.000000000 +0200 @@ -85,7 +85,7 @@ let set_logfile extension = if !Settings.filelog then - let fname = (Filename.concat !Settings.basedir extension) ^ ".log" in + let fname = (Filename.concat !Settings.logdir extension) ^ ".log" in stored_logfile_name := Some fname; logfile := open_out_gen [ Open_wronly; Open_creat; Open_append; ] 0o600 fname; @@ -213,8 +213,8 @@ let recon_address = !Settings.recon_address let http_port = !Settings.hkp_port let http_address = !Settings.hkp_address -let db_command_name = Filename.concat !Settings.basedir "db_com_sock" -let recon_command_name = Filename.concat !Settings.basedir "recon_com_sock" +let db_command_name = Filename.concat !Settings.rundir "db_com_sock" +let recon_command_name = Filename.concat !Settings.rundir "recon_com_sock" let db_command_addr = Unix.ADDR_UNIX db_command_name let recon_command_addr = Unix.ADDR_UNIX recon_command_name diff -ru sks-1.1.3/dbserver.ml sks-1.1.4/dbserver.ml --- sks-1.1.3/dbserver.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/dbserver.ml 2012-05-06 16:05:40.000000000 +0200 @@ -42,8 +42,8 @@ Keydb.withtxn = !Settings.transactions; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Safe @@ -51,7 +51,7 @@ code for the DB. *) let withtxn = !Settings.transactions - let dbdir = Lazy.force Settings.dbdir + let dbdir = Settings.dbdir let () = if not withtxn then failwith "Running sks_db without transactions is no longer supported." @@ -390,7 +390,7 @@ let convert_web_fname fname = if verify_web_fname fname then - Filename.concat !Settings.basedir (Filename.concat "web" fname) + Filename.concat !Settings.webdir fname else raise (Wserver.Misc_error "Malformed requst") let supported_extensions = diff -ru sks-1.1.3/fastbuild.ml sks-1.1.4/fastbuild.ml --- sks-1.1.3/fastbuild.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/fastbuild.ml 2012-05-06 16:05:40.000000000 +0200 @@ -34,15 +34,15 @@ Keydb.withtxn = false; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Unsafe let n = match !Settings.n with 0 -> 1 | x -> x let maxkeys = n * 15000 - let dumpdir = Lazy.force Settings.dumpdir + let dumpdir = !Settings.dumpdir let lsdir dir = let dirhandle = Unix.opendir dir in @@ -147,12 +147,12 @@ let run () = set_logfile "fastbuild"; - if Sys.file_exists (Lazy.force Settings.dbdir) then ( + if Sys.file_exists (!Settings.dbdir) then ( perror "KeyDB directory already exists. Exiting."; eprintf "KeyDB directory already exists. Exiting.\n"; exit (-1) ); - Unix.mkdir (Lazy.force Settings.dbdir) 0o700; + Unix.mkdir (!Settings.dbdir) 0o700; Keydb.open_dbs settings; Keydb.set_meta ~key:"filters" ~data:"yminsky.dedup"; diff -ru sks-1.1.3/getfileopts.ml sks-1.1.4/getfileopts.ml --- sks-1.1.3/getfileopts.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/getfileopts.ml 2012-05-06 16:05:40.000000000 +0200 @@ -124,14 +124,14 @@ then ( parse Sys.argv; let from_file_commandline = - fname_convert (Filename.concat !basedir config_fname) + fname_convert (Filename.concat !Settings.confdir config_fname) in parse from_file_commandline ) else ( parse (Sys.argv <|> (0,!pos)); let from_file_commandline = - fname_convert (Filename.concat !basedir config_fname) + fname_convert (Filename.concat !Settings.confdir config_fname) in parse from_file_commandline; parse (Array.append [|""|] (Sys.argv <|> (!pos + 1,0))) diff -ru sks-1.1.3/incdump.ml sks-1.1.4/incdump.ml --- sks-1.1.3/incdump.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/incdump.ml 2012-05-06 16:05:40.000000000 +0200 @@ -30,8 +30,8 @@ Keydb.withtxn = !Settings.transactions; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Unsafe diff -ru sks-1.1.3/mailsync.ml sks-1.1.4/mailsync.ml --- sks-1.1.3/mailsync.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/mailsync.ml 2012-05-06 16:05:40.000000000 +0200 @@ -62,7 +62,7 @@ let demote fname = if Sys.file_exists fname then - let destdir = Lazy.force Settings.failed_msgdir in + let destdir = !Settings.failed_msgdir in if not (Sys.file_exists destdir) then Unix.mkdir destdir 0o700; Sys.rename fname (Filename.concat destdir (Filename.basename fname)) @@ -74,7 +74,7 @@ (** read any mails in queue directory, process them, and remove them *) let rec load_mailed_keys ~addkey () = plerror 7 "checking for key emails"; - let files = try lsdir (Lazy.force Settings.msgdir) with Unix.Unix_error _ -> [] in + let files = try lsdir (!Settings.msgdir) with Unix.Unix_error _ -> [] in let ready_files = List.filter ~f:(fun file -> Filename.check_suffix file ".ready") files in diff -ru sks-1.1.3/membership.ml sks-1.1.4/membership.ml --- sks-1.1.3/membership.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/membership.ml 2012-05-06 16:05:40.000000000 +0200 @@ -110,7 +110,7 @@ end let reload_if_changed () = - let fname = Lazy.force Settings.membership_file in + let fname = !Settings.membership_file in let (mshp,old_mtime) = !membership in match get_mtime fname with | None -> @@ -136,7 +136,7 @@ ) let get_names () = - let file = Lazy.force Settings.membership_file in + let file = !Settings.membership_file in let mshp = if not (Sys.file_exists file) then [||] else ( @@ -158,7 +158,7 @@ | _ -> false let rec choose () = - if Sys.file_exists (Lazy.force Settings.membership_file) then begin + if Sys.file_exists (!Settings.membership_file) then begin reload_if_changed (); let (mshp, _) = !membership in let choice = Random.int (Array.length mshp) in @@ -208,7 +208,7 @@ protect ~f:run ~finally:(fun () -> close_in file) let reload_mailsync_if_changed () = - let fname = Lazy.force Settings.mailsync_file in + let fname = !Settings.mailsync_file in let (msync,old_mtime) = !mailsync_partners in match get_mtime fname with None -> plerror 2 "%s" @@ -218,7 +218,7 @@ let get_mailsync_partners () = let partners = - if Sys.file_exists (Lazy.force Settings.membership_file) then ( + if Sys.file_exists (!Settings.membership_file) then ( reload_mailsync_if_changed (); let (m,mtime) = !mailsync_partners in m diff -ru sks-1.1.3/merge_keyfiles.ml sks-1.1.4/merge_keyfiles.ml --- sks-1.1.3/merge_keyfiles.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/merge_keyfiles.ml 2012-05-06 16:05:40.000000000 +0200 @@ -31,8 +31,8 @@ Keydb.withtxn = false; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Safe @@ -97,7 +97,7 @@ let timer = MTimer.create () let run () = set_logfile "merge"; - if not (Sys.file_exists (Lazy.force Settings.dbdir)) then ( + if not (Sys.file_exists (!Settings.dbdir)) then ( printf "No existing KeyDB database. Exiting.\n"; exit (-1) ); diff -ru sks-1.1.3/pbuild.ml sks-1.1.4/pbuild.ml --- sks-1.1.3/pbuild.ml 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/pbuild.ml 2012-05-06 16:05:40.000000000 +0200 @@ -30,8 +30,8 @@ Keydb.withtxn = false; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = (Lazy.force Settings.dbdir); - Keydb.dumpdir = (Lazy.force Settings.dumpdir); + Keydb.dbdir = (!Settings.dbdir); + Keydb.dumpdir = (!Settings.dumpdir); } module Keydb = Keydb.Safe @@ -43,7 +43,7 @@ bitquantum = !Settings.bitquantum; treetype = `ondisk; max_nodes = !Settings.max_ptree_nodes; - dbdir = Lazy.force Settings.ptree_dbdir; + dbdir = !Settings.ptree_dbdir; cache_bytes = !Settings.ptree_cache_bytes; pagesize = !Settings.ptree_pagesize; } @@ -84,7 +84,7 @@ let run () = set_logfile "pbuild"; - if Sys.file_exists (Lazy.force Settings.ptree_dbdir) then ( + if Sys.file_exists (!Settings.ptree_dbdir) then ( printf "PTree directory already exists. Exiting.\n"; exit (-1) ); diff -ru sks-1.1.3/reconserver.ml sks-1.1.4/reconserver.ml --- sks-1.1.3/reconserver.ml 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/reconserver.ml 2012-05-06 16:05:40.000000000 +0200 @@ -42,7 +42,7 @@ else if !Settings.disk_ptree then `ondisk else `inmem); max_nodes = !Settings.max_ptree_nodes; - dbdir = Lazy.force Settings.ptree_dbdir; + dbdir = !Settings.ptree_dbdir; cache_bytes = !Settings.ptree_cache_bytes; pagesize = !Settings.ptree_pagesize; } diff -ru sks-1.1.3/recoverList.ml sks-1.1.4/recoverList.ml --- sks-1.1.3/recoverList.ml 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/recoverList.ml 2012-05-06 16:05:40.000000000 +0200 @@ -79,7 +79,7 @@ let log_diffs log_fname hashes = if !Settings.log_diffs then begin - let log_fname = Filename.concat !Settings.basedir log_fname in + let log_fname = Filename.concat !Settings.diffdir log_fname in let file = open_out log_fname in protect ~f:(fun () -> List.iter hashes ~f:(fun h -> fprintf file "%s\n" (KeyHash.hexify h))) diff -ru sks-1.1.3/sampleConfig/debian/sksconf sks-1.1.4/sampleConfig/debian/sksconf --- sks-1.1.3/sampleConfig/debian/sksconf 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/sampleConfig/debian/sksconf 2012-05-06 16:25:37.000000000 +0200 @@ -30,3 +30,18 @@ # Runs database statistics calculation on boot (time and cpu expensive) #initial_stat: +#stat_hour: 5 + +# debuglevel 4 is default (max debug level is 10) +#debuglevel: 4 + +# Debian: +basedir: /var/lib/sks +confdir: /etc/sks +dbdir: /var/lib/sks/DB +ptree_dbdir: /var/lib/sks/PTree +dumpdir: /var/lib/sks/dump +webdir: /var/lib/sks/www +logdir: /var/log/sks +rundir: /run/sks +diffdir: /var/spool/sks diff -ru sks-1.1.3/settings.ml sks-1.1.4/settings.ml --- sks-1.1.3/settings.ml 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/settings.ml 2012-05-06 16:05:40.000000000 +0200 @@ -24,6 +24,47 @@ plus functions for assigning new values. This is used by the getopt routines to set preferences *) + +(** Directory settings *) + +(** Default: *) +let basedir = ref "." +let confdir = ref !basedir + + +(** Debian: +let basedir = ref "/var/lib/sks" +let confdir = ref "/etc/sks" +*) + +(** Only use sksconf to change all the following settings! *) +let rundir = ref !basedir +let logdir = ref !basedir +let diffdir = ref !basedir + +let base_webdir = "web" +let base_dbdir = "KDB" + +let base_ptree_dbdir = "PTree" +let base_membership_file = "membership" +let base_mailsync_file = "mailsync" +let base_dumpdir = "dump" +let base_msgdir = "messages" +let base_failed_msgdir = "failed_messages" + +let dbdir = ref (Filename.concat !basedir base_dbdir) +let ptree_dbdir = ref (Filename.concat !basedir base_ptree_dbdir) +let webdir = ref (Filename.concat !basedir base_webdir) +let dumpdir = ref (Filename.concat !basedir base_dumpdir) + +let membership_file = ref (Filename.concat !confdir base_membership_file) +let mailsync_file = ref (Filename.concat !confdir base_mailsync_file) + +let msgdir = ref (Filename.concat !diffdir base_msgdir) +let failed_msgdir = ref (Filename.concat !diffdir base_failed_msgdir) + +(***********************************************************************) + let n = ref 0 let set_n value = n := value @@ -182,7 +223,7 @@ (** whether to send out PKS-style mailsync messages *) let send_mailsyncs = ref true -(** WHether to log hashes of most-recently-found diff *) +(** whether to log hashes of most-recently-found diff *) let log_diffs = ref true let from_addr = ref None @@ -197,23 +238,6 @@ from_addr := Some addr; addr -let basedir = ref "." - -let base_dbdir = "KDB" -let base_ptree_dbdir = "PTree" -let base_membership_file = "membership" -let base_mailsync_file = "mailsync" -let base_dumpdir = "dump" -let base_msgdir = "messages" -let base_failed_msgdir = "failed_messages" - -let dbdir = lazy (Filename.concat !basedir base_dbdir) -let ptree_dbdir = lazy (Filename.concat !basedir base_ptree_dbdir) -let membership_file = lazy (Filename.concat !basedir base_membership_file) -let mailsync_file = lazy (Filename.concat !basedir base_mailsync_file) -let dumpdir = lazy (Filename.concat !basedir base_dumpdir) -let msgdir = lazy (Filename.concat !basedir base_msgdir) -let failed_msgdir = lazy (Filename.concat !basedir base_failed_msgdir) (*****************************************************************) @@ -246,15 +270,23 @@ " Pagesize in bytes for prefix tree db"); ("-ptree_cache", Arg.Int set_ptree_cache_bytes, " Cache size in megs for prefix tree db"); - ("-baseport",Arg.Int set_base_port, " Set base port number"); - ("-logfile",Arg.String (fun _ -> ()), " DEPRECATED. Now ignored."); - ("-recon_port",Arg.Int set_recon_port, " Set recon port number"); - ("-recon_address",Arg.String set_recon_address, " Set recon binding address"); - ("-hkp_port",Arg.Int set_hkp_port, " Set hkp port number"); - ("-hkp_address",Arg.String set_hkp_address, " Set hkp binding address"); - ("-use_port_80",Arg.Set use_port_80, + ("-baseport", Arg.Int set_base_port, " Set base port number"); + ("-logfile", Arg.String (fun _ -> ()), " DEPRECATED. Now ignored."); + ("-recon_port", Arg.Int set_recon_port, " Set recon port number"); + ("-recon_address", Arg.String set_recon_address, " Set recon binding address"); + ("-hkp_port", Arg.Int set_hkp_port, " Set hkp port number"); + ("-hkp_address", Arg.String set_hkp_address, " Set hkp binding address"); + ("-use_port_80", Arg.Set use_port_80, " Have the HKP interface listen on port 80, as well as the hkp_port"); + ("-confdir", Arg.Set_string confdir, " Directory of all config files"); ("-basedir", Arg.Set_string basedir, " Base directory"); + ("-dbdir", Arg.Set_string dbdir, " Database directory"); + ("-ptree_dbdir", Arg.Set_string ptree_dbdir, " PTree database directory"); + ("-webdir", Arg.Set_string webdir, " Webserver directory"); + ("-logdir", Arg.Set_string logdir, " Directory used for logfiles"); + ("-rundir", Arg.Set_string rundir, " Run directory"); + ("-diffdir", Arg.Set_string diffdir, " Diff directory"); + ("-dumpdir", Arg.Set_string dumpdir, " Directory with the keydump files"); ("-stdoutlog", Arg.Clear filelog, " Send log messages to stdout instead of log file"); ("-diskptree", Arg.Set disk_ptree, @@ -324,6 +356,3 @@ let usage_string = "sks command [-mbar mbar] [-q bitquantum] -debug (type \"sks help\" for a list of commands)" - - - diff -ru sks-1.1.3/sksdump.ml sks-1.1.4/sksdump.ml --- sks-1.1.3/sksdump.ml 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/sksdump.ml 2012-05-06 16:05:40.000000000 +0200 @@ -29,8 +29,8 @@ Keydb.withtxn = !Settings.transactions; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Unsafe diff -ru sks-1.1.3/sks.pod sks-1.1.4/sks.pod --- sks-1.1.3/sks.pod 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/sks.pod 2012-05-06 16:05:40.000000000 +0200 @@ -166,9 +166,41 @@ Have the HKP interface listen on port 80, as well as the hkp_port. +=item -confdir + +Set the confguration directory with the files sksconf, membership and mailsync. + =item -basedir -Set base directory. +Set base directory path. + +=item -dbdir + +Set the KDB database directory path. + +=item -ptree_dbdir + +Set the PTree database directory path. + +=item -webdir + +Set the web server directory path. + +=item -logdir + +Set the location of the logfiles directory. + +=item -rundir + +Set the location for the storage of transient state files. + +=item -diffdir + +Set the directory path where the key differences are dumped to. + +=item -dumpdir + +Set the directory path to the keydump files. =item -stdoutlog diff -ru sks-1.1.3/tester.ml sks-1.1.4/tester.ml --- sks-1.1.3/tester.ml 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/tester.ml 2012-05-06 16:05:40.000000000 +0200 @@ -27,8 +27,8 @@ Keydb.withtxn = !Settings.transactions; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } module Keydb = Keydb.Safe diff -ru sks-1.1.3/update_subkeys.ml sks-1.1.4/update_subkeys.ml --- sks-1.1.3/update_subkeys.ml 2012-04-11 04:03:26.000000000 +0200 +++ sks-1.1.4/update_subkeys.ml 2012-05-06 16:05:40.000000000 +0200 @@ -30,8 +30,8 @@ Keydb.withtxn = !Settings.transactions; Keydb.cache_bytes = !Settings.cache_bytes; Keydb.pagesize = !Settings.pagesize; - Keydb.dbdir = Lazy.force Settings.dbdir; - Keydb.dumpdir = Lazy.force Settings.dumpdir; + Keydb.dbdir = !Settings.dbdir; + Keydb.dumpdir = !Settings.dumpdir; } (** we need full keydb access because we're playing directly with diff -ru sks-1.1.3/VERSION sks-1.1.4/VERSION --- sks-1.1.3/VERSION 2012-04-11 04:03:25.000000000 +0200 +++ sks-1.1.4/VERSION 2012-05-06 16:05:40.000000000 +0200 @@ -1 +1 @@ -1.1.3 +1.1.4