Jens Leinenbach wrote:
> Hi,
> 
> I compiled SKS 1.1.3. for Debian, but I have a lot of trouble with
> directories.
> SKS seems to set all the files based on the directory configured in the
> basedir variable.
> And a basedir of "." didn't work for me.
> 
> So I changed these variables in settings.ml:
> 
> let basedir = ref "/var/lib/sks"
> 
> let base_dbdir = "/var/lib/sks/DB"
> let base_ptree_dbdir = "/var/lib/sks/PTree"
> let base_membership_file = "/etc/sks/membership"
> let base_mailsync_file = "/etc/sks/mailsync"
> let base_dumpdir = "/var/lib/sks/dump"
> let base_msgdir = "/var/spool/sks/messages"
> let base_failed_msgdir = "/var/spool/sks/failed_messages"
>                                                                               
>  
> 
> let dbdir = lazy ( base_dbdir )
> let ptree_dbdir = lazy ( base_ptree_dbdir )
> let membership_file = lazy ( base_membership_file )
> let mailsync_file = lazy ( base_mailsync_file )
> let dumpdir = lazy ( base_dumpdir )
> let msgdir = lazy ( base_msgdir )
> let failed_msgdir = lazy ( base_failed_msgdir )
> 
> 
> But this solves only a part of the directory trouble as I would have to
> change other directories in other files, too.
> At least for Debian, the logfiles should be in /var/log/sks, sksconf in
> /etc/sks, the diff-files should be in /var/spool/sks.
> 
> With the changes of above, all those directories I didn't change are
> still in the basedir....
> 
> What am I doing wrong or are the directory settings really spread all
> over those files?
> Can't we just move all these directory settings centralized to sksconf
> or at least to Makefile.local(.unused)?

Jens,

Here's the last Debian source deb I looked at, sks_1.1.1+dpkgv3-7.

I believe the main patch you want is 500_debian_fhs_patch. Debian changes
locations for most of the SKS files, even names in one or two places.

A number of these patches have been rolled up into the mainline code. I would
have accepted this patch if it looked for the configuration files, first in
basedir, then somewhere like /etc/sks.

I've looked at lots of patches. But I quickly pass on those that would break
an existing SKS installation

-John

--- a/common.ml
+++ b/common.ml
@@ -82,7 +82,7 @@
 
 let set_logfile extension = 
   if !Settings.filelog then
-    let fname = (Filename.concat !Settings.basedir extension) ^ ".log" in
+    let fname = (Filename.concat !Settings.basedir "/var/log/sks/") ^ 
extension ^ ".log" in
     stored_logfile_name := Some fname;
     logfile := open_out_gen [ Open_wronly; Open_creat; Open_append; ] 
       0o600 fname;
@@ -208,8 +208,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.basedir 
"/var/run/sks/db_com_sock"
+let recon_command_name = Filename.concat !Settings.basedir 
"/var/run/sks/recon_com_sock"
 
 let db_command_addr = Unix.ADDR_UNIX db_command_name
 let recon_command_addr = Unix.ADDR_UNIX recon_command_name
--- a/dbserver.ml
+++ b/dbserver.ml
@@ -364,7 +364,7 @@
 
   let convert_web_fname fname =
     if verify_web_fname fname then
-      Filename.concat !Settings.basedir (Filename.concat "web" fname)
+      Filename.concat !Settings.basedir (Filename.concat "/var/lib/sks/www" 
fname)
     else raise (Wserver.Misc_error "Malformed requst")
 
   let supported_extensions = 
--- a/getfileopts.ml
+++ b/getfileopts.ml
@@ -106,7 +106,7 @@
 (**************************************************************)
 (**************************************************************)
 
-let config_fname = "sksconf"
+let config_fname = "/etc/sks/sksconf"
 
 let parse args = 
   Arg.current := 0;
--- a/reconserver.ml
+++ b/reconserver.ml
@@ -188,7 +188,7 @@
        let elements = ZSet.elements results in
        let hashes = hashconvert elements in
        print_hashes (sockaddr_to_string http_addr) hashes;
-       log_diffs (sprintf "diff-%s.txt" (sockaddr_to_name http_addr)) hashes;
+       log_diffs (sprintf "/var/spool/sks/diff-%s.txt" (sockaddr_to_name 
http_addr)) hashes;
        if List.length elements > 0 
        then 
          begin
@@ -225,7 +225,7 @@
        plerror 4 "Reconciliation complete";
        let hashes = hashconvert results in
        print_hashes (sockaddr_to_string http_addr) hashes;
-       log_diffs (sprintf "diff-%s.txt" (sockaddr_to_name http_addr)) hashes;
+       log_diffs (sprintf "/var/spool/sks/diff-%s.txt" (sockaddr_to_name 
http_addr)) hashes;
        match results with
            [] -> []
          | _ ->
--- a/settings.ml
+++ b/settings.ml
@@ -173,7 +173,7 @@
 let command_timeout = ref 60
 let set_command_timeout value = command_timeout := value
 
-let sendmail_cmd = ref "sendmail -t -oi"
+let sendmail_cmd = ref "/usr/lib/sendmail -t -oi"
 let set_sendmail_cmd value = sendmail_cmd := value
 
 let membership_reload_time = ref (60. *. 60. *. 6.)
@@ -197,15 +197,15 @@
        from_addr := Some addr;
        addr
 
-let basedir = ref "."
+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 base_dbdir = "/var/lib/sks/DB"
+let base_ptree_dbdir = "/var/lib/sks/PTree"
+let base_membership_file = "/etc/sks/membership"
+let base_mailsync_file = "/etc/sks/mailsync"
+let base_dumpdir = "/var/lib/sks/dump"
+let base_msgdir = "/var/spool/sks/messages"
+let base_failed_msgdir = "/var/spool/sks/failed_messages"
 
 let dbdir = lazy (Filename.concat !basedir base_dbdir)
 let ptree_dbdir = lazy (Filename.concat !basedir base_ptree_dbdir)
@@ -252,7 +252,7 @@
     ("-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"); 
-    ("-basedir", Arg.Set_string basedir, " Base directory");
+    ("-basedir", Arg.Set_string basedir, " Base directory (Take special care 
if running the Debian package!)");
     ("-stdoutlog", Arg.Clear filelog, 
      " Send log messages to stdout instead of log file");
     ("-diskptree", Arg.Set disk_ptree, 

Attachment: sks_1.1.1+dpkgv3-7.tar.xz
Description: Binary data

_______________________________________________
Sks-devel mailing list
Sks-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/sks-devel

Reply via email to