]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/kernstodo
Finish isolinux CDROM implementation
[bacula/bacula] / bacula / kernstodo
index 0852b328665d26b076c961e16653e9265522a5f8..88dcf7f2e5c6ed2d61e0a35d8ec25fed4596995b 100644 (file)
@@ -1,49 +1,86 @@
                  Kern's ToDo List
-                  10 June 2004
-
-1.34.4 Items to do:
-- Implement SIGHUP in Dir
-- Implement fast tree insert (doubly linked list?)
-- Implement "label slots=1,2... pool=yyy barcodes"
-- Do tape alerts -- see tapealert.txt
-- When restore started from console, report jobid.
-- Feedback while the tree is being built.    
-- On Win95
-   The error I when I installed 1.34.2 clients:
-   The BACULA-FD file is  
-   linked to missing export KERNEL32.DLL:GetFileAttributesExA.
-
-Documentation from Christopher Hull on new client job requests:
-===
-The command can be anything that cmd.exe or command.com will recognize 
-as a executable file.  Specifiying the executable's extention is 
-optional, unless there is an ambiguity. (i.e. ls.bat, ls.exe)
-
-The System %Path% will be searched for the command.  (under the 
-envrionment variable dialog you have have both System Environment and 
-User Environment, we believe that only the System environment will be 
-available to bacual-fd, if it is running as a service.) 
-
-System environment varaible can be called out using the %var% syntax and 
-used as either part of the command name or arguments.
-
-When specifiying a full path to an executable if the path or executable 
-name contains whitespace or special characters they will need to be 
-quoted.  Arguments containing whitespace or special characters will also 
-have to be quoted. 
-
-    ClientRunBeforeJob = "\"C:/Program Files/Software 
-Vendor/Executable\" /arg1 /arg2 \"foo bar\""
-
-The special characters  &()[]{}^=;!'+,`~ will need to be quoted if part 
-of a filename or argument.
-
-If someone is logged in a blank "command" window running the commands 
-will be present during the execution of the command. 
-===
+                   31 August 2004
+
+Major development:      
+Project                     Developer
+=======                     =========                         
+IPv6_2                      Meno Abels
+Data encryption             Meno Abels (see projects)
+Communication encryption    Meno Abels  
+Version 1.35                Kern (see below)
+========================================================
+
+1.35 Items to do for release:
+- Restore c: with a prefix into /prefix/c/ to prevent c: and d:
+  files with the same name from overwritting each other.
+- Add new DCR calling sequences everywhere in SD. This will permit 
+  simultaneous use of multiple devices by a single job.
+- Look at patches/bacula_db.b2z postgresql that loops during restore.
+  See Gregory Wright.
+- Perhaps add read/write programs and/or plugins to FileSets.
+- Make sure Qmsgs are dequeued by FD and SD.
+- Check if ACLs allocated at dird_conf.c:1214 are being properly
+  released.
+
+- Add bscan to four-concurrent-jobs regression.
+- Add IPv6 to regression
+- Alternative to static linking "ldd prog" save all binaries listed,
+  restore them and point LD_LIBRARY_PATH to them.
+- Document a get out of jail procedure if everything breaks if 
+  you lost/broke the Catalog -- do the same for "I know my
+  file is there how do I get it back?".
+- Test/doc Tape Alerts
+- Doc update AllFromVol
+- Doc dbcheck eliminate orphaned clients.
+- Doc -p option in stored
+- Document that console commands can be abbreviated.
+- New IP address specification is used as follows:
+    [sdaddresses|diraddresses|fdaddresses] = { [[ip|ipv4|ipv6] = { 
+           [[addr|port] = [^ ]+[\n;]+] }] }
+
+  so it could look for example like this:
+     SDaddresses  = { ip = {
+            addr = 1.2.3.4; port = 1205; }
+        ipv4 = {
+            addr = 1.2.3.4; port = http; }
+        ipv6 = {
+            addr = 1.2.3.4;
+            port = 1205;
+        }
+        ip = {
+            addr = 1.2.3.4
+            port = 1205
+        }
+        ip = {
+            addr = 1.2.3.4
+        }
+        ip = {
+            addr = 201:220:222::2
+        }
+        ip = {
+            addr = bluedot.thun.net
+        }
+     }
+  as a consequence, you can now specify multiple IP addresses and
+  ports to be used. In the case of a server, it will listen on
+  all those that you specify. In the case of connecting to the server,
+  Bacula will attempt connecting to one at a time until it succeeds.
+  And, in a few other special cases, Bacula will use only the first
+  address specified.
+
+  The default port numbers are still the same and the services and hosts 
+  are also resolved by name. So now  you could use the real names for the 
+  port numbers.
+
+  An ip section will allow resolution to either an ipv4 or an ipv6 address.
+  An ipv4 section forces the resolution to be only ipv4, and an ipv6 section
+  forces the resolution to be only ipv6.
+
+   
 
 Documentation to do: (any release a little bit at a time)
 - Document query file format.
+- Add more documentation for bsr files.
 - Document problems with Verify and pruning.
 - Document how to use multiple databases.
 - VXA drives have a "cleaning required"
@@ -65,26 +102,135 @@ Documentation to do: (any release a little bit at a time)
 - Lookup HP tape replacement recommendations (see trouble shooting autochanger)
 - Add more obvious documentation of @ for conf files.
 - Document doing table repair
+  
           
 Testing to do: (painful)
-- Test drive polling!
-- blocksize recognition code.
-- Test if rewind at end of tape waits for tape to rewind.
-- Test cancel at EOM.       
 
-For 1.33 Testing/Documentation:
-- Figure out how to use ssh or stunnel to protect Bacula communications.
-  Add Dan's work to manual See ssl.txt
+
+For 1.37 Testing/Documentation:
+- Add "Allow multiple connections" in Catalog resource to open a new 
+  database connection for each job.
+- Allow Simultaneous Priorities = yes  => run up to Max concurrent jobs even
+  with multiple priorities.
+- Fix find_device in stored/dircmd.c:462 (see code) 
 - Add db check test to regression. Test each function like delete,
   purge, ...
 - If you use restore replace=never, the directory attributes for
   non-existent directories will not be restored properly.
 
+Fix:
+   Kern,
+
+   mt status and tapeinfo output are attached. Default blocksize was
+   originally 512 bytes. I ran the following test on my machine:
+
+   - set defblksize to 512
+   - started bacula, labelled tape, ran job
+   - job completes with the following in log
+           SD termination status:  OK
+           Termination:            Backup OK
+   - restore attempts with blocksize set to 0 or 512 result in the familiar
+           "Volume data error! Wanted block-id BB02, got . Buffer discarded."
+
+
+   # tapeinfo -f /dev/sg0
+   Product Type: Tape Drive
+   Vendor ID: 'SONY    '
+   Product ID: 'TSL-11000       '
+   Revision: 'L100'
+   Attached Changer: Yes
+   SerialNumber: '0010000443'
+   MinBlock:1
+   MaxBlock:16777215
+   SCSI ID: 1
+   SCSI LUN: 0
+   Ready: yes
+   BufferedMode: yes
+   Medium Type: Not Loaded
+   Density Code: 0x26
+   BlockSize: 512
+   DataCompEnabled: no
+   DataCompCapable: yes
+   DataDeCompEnabled: yes
+   CompType: 0x20
+   DeCompType: 0x20
+   BOP: yes
+   Block Position: 0
+
+   # mt -f /dev/nst0 status
+   SCSI 2 tape drive:
+   File number=0, block number=132, partition=0.
+   Tape block size 512 bytes. Density code 0x26 (DDS-4 or QIC-4GB).
+   Soft error count since last status=0
+   General status bits on (1010000):
+    ONLINE IM_REP_EN
+
+
+
 Wish list:  
+- see lzma401.zip in others directory for new compression
+  algorithm/library.
+- Minimal autochanger handling in Bacula and in btape.
+- Look into how tar does not save sockets and the possiblity of
+  not saving them in Bacula (Martin Simmons reported this).
+  The next two lines will show them.
+  localmounts=`awk '/ext/ { print $2 }' /proc/mounts`   # or whatever
+  find $localmounts -xdev -type s -ls
+- Fix restore jobs so that multiple jobs can run if they
+  are not using the same tape(s).
+- Allow the user to select JobType for manual pruning/purging.
+- Look at adding Client run command that will use the
+  port opened by the client.
+- bscan does not put first of two volumes back with all info in
+  bscan-test.
+- Implement the FreeBSD nodump flag in chflags.
+- Figure out how to make named console messages go only to that
+  console and to the non-restricted console (new console class?).
+- Make restricted console prompt for password if *ask* is set or
+  perhaps if password is undefined.
+- Implement "from ISO-date/time every x hours/days/weeks/months" in
+  schedules.
+==== from Marc Schoechlin
+- the help-command should be more verbose
+  (it should explain the paramters of the different 
+  commands in detail)
+  -> it´s time-comsuming to consult the manual anytime
+     you need a special parameter
+  -> maybe it´s more easy to maintain this, if the
+     descriptions of that commands are outsourced to
+     a ceratin-file
+- the cd-command should allow complete paths
+  i.e. cd /foo/bar/foo/bar
+  -> if a customer mails me the path to a certain file,
+     it´s faster to enter the specified directory
+- if the password is not configured in bconsole.conf
+  you should be asked for it.
+  -> sometimes you like to do restore on a customer-machine
+     which shouldn´t know the password for bacula.
+  -> adding the password to the file favours admins
+     to forget to remove the password after usage
+  -> security-aspects
+     the protection of that file is less important
+- long-listed-output of commands should be scrollable
+  like the unix more/less-command does
+  -> if someone runs 200 and more machines, the lists could
+     be a little long and complex
+- command-output should be shown column by column
+  to reduce scrolling and to increase clarity
+  -> see last item
+- lsmark should list the selected files with full
+  paths
+- wildcards for selecting and file and directories would be nice
+- any actions should be interuptable with STRG+C
+- command-expansion would be pretty cool
+====
+- Compaction of Disk space by "migrating" Volumes that have pruned
+  Jobs (what criteria? size, #jobs, time).
+- Add prune all command
+- Document fact that purge can destroy a part of a restore by purging
+  one volume while others remain valid -- perhaps mark Jobs.
 - Add multiple-media-types.txt
 - look at mxt-changer.html
-- Document a get out of jail procedure if everything breaks if you lost/broke
-  the Catalog.
 - Make ? do a help command (no return needed).
 - Implement restore directory.
 - Add All Local Partitions = yes to new style saves.
@@ -107,7 +253,7 @@ Wish list:
 - Add tree pane to left of window.
 - Add progress meter.
 - Polling does not work for restore. It tries a number of times,
-  gives up, and crashes the FD.
+  gives up, and crashes the SD.
 - Lock jcr_chain when doing attach/detach in acquire.c
 - Add assert in free_jcr if attach/detach chain active.
 - Max wait time or max run time causes seg fault -- see runtime-bug.txt
@@ -1088,3 +1234,66 @@ Block Position: 0
   <file-name>
   ...
 - Add regression of btape "fill" 
+==== Done in 1.34.4
+- Implement "label slots=1,2... pool=yyy barcodes"
+- Mark a non-removable disk Volume in error rather than asking sys op to
+  mount it.
+- Implement Fixed storage LabelFormat test.
+- Add reporting in attr despooling.
+- Figure out how to use ssh or stunnel to protect Bacula communications.
+  Add Dan's work to manual See ssl.txt
+
+==== Done in 1.35.0
+- Implement fast tree insert (doubly linked list)
+- Disallow using Internal database
+- Feedback while the restore tree is being built.    
+- Add detection of Whitebox release in ./configure
+- Add InChanger to "list media"
+- Implement second cut of SIGHUP in Dir
+  (Implement resources on a single pointer)
+- Add regular expressions to FileSets (needs testing).
+- Test new despooling error recovery code when partition fills.
+- Sort Scheduled jobs status listing by start time.
+- Add priority to Scheduled jobs status listing.
+- Look at Win32 inc problem when new directory added files not saved???
+- Require resource names to be unique.
+- Make sure that all errors from libacl are printed.
+- Make FD run on Win95 if possible (not really possible).
+- Fix GROUP BYs in all SQL (done by Dan -- thanks)
+- Make entering multiple Storage names in Dir illegal.
+- Make btape release the drive during the "test" append.
+- Fix restore:
+   You have selected the following JobIds: 739,856,797
+   Building directory tree for JobId 739 ...
+   Building directory tree for JobId 856 ...
+   Building directory tree for JobId 797 ...3 
+   Jobs inserted into the tree.
+- Fix errno handling in win32 compat routines.
+- Add better error codes to run_program (10000+)
+- Revisit and revise Disaster Recovery (fix SCSI and RAID 
+  disk detection)
+- When passwords do not match, print message that points the
+  user to the doc.
+- Do tape alerts -- see tapealert.txt
+- Find memory leaks in address_conf.c
+- Network order of port and ip addresses.
+- SetIP in dird/fd_cmds.c is broken.
+- don't use inet_addr() it is deprecated.
+- Fix code in filed.c for init_bsock();
+- Fix code in console.c for init_bsock();
+- Solve the termcap.h problem on Solaris configure.
+- Make Verify jobs require exclusive use of Volume as Restore 
+  jobs do.
+- Fix restore ++++ that get intermingled with "Building directory tree"
+- Fix doc in dirdconf.html for @, where the file must
+  have not a list of files, but 
+   file = xxx
+   file = yyy
+- Test Win32 errno handling.
+- port 1.34.6-block.patch to 1.35
+- Look at Chris' patch for bscan bug.
+- Fix error handling in spooling both data and attribute.
+- Implement Ignore FileSet Change.
+- Doc new duration time input editing.
+- Bacula rescue CDROM implement isolinux