I have used Pburn 0.6, 1.0, 1.2.2 and 1.3 with Dingo 394. They all burn and erase well. However, the log box that appears to show progress, for instance, when blanking a disk in 0.6 or 1.0 is absent when using 1.2.2 or 1.3. Is this intentional? Also, the drop-down menu to select the burn function does not disappear until after the function is completed in the later versions.
BS

Regarding verifying, we could make a question dialog --> This may take long time if burn contains many files. Do you want to continue?

Barry
I have now a working Pburn using graft-points. It still uses the symlink directory in /tmp/pburn. So it now burns symlinks as symlinks and still gives the user freedom to edit burning input (files and directories). But what I don't know: will this fix the trouble with the whiteout files?

But now the size calculation does not work, and there will be trouble if there are too many files in the burnlist. This will give mkisofs error - 'argument list too long'......I need some more time._________________Stardust resources

Mike told us the other day that 2 heads thinks better than 1. I guess we need several heads right now.

The situation for DATA burning is:
Pburn strength is the way user can edit input files/directories before burning. You can add a new directory, remove a not wanted file inside a directory you want to burn, and you can give the file on CD/DVD another name than the original file.
Pburn weakness is that symlinks always will point to its source file. The problem occurs when adding an entire directory with symlinks. You may then get more datas than you expected (such as /root/). Also Barry has trouble with this combined with whiteout files (which I don't know a sh** about).

Some refers to TkDVD which is a great app, but it also has its weakness. In a compare you could say that TkDVDs strength is Pburns weakness, and the other way around. While TkDVD burns a chosen filelist as graft-points, Pburn builds a temporary directory which contains symlinks to the actual file, and burns this directory as is with the mkisofs parameter -f (follow symlink).

I have now started an approach to see if it is possible to combine the 2 ways of burning. My idea is to use 'readlink'. This tells us the original source of every symlink in the temporary directory (default in /tmp/pburn/). Now we can build graft-points like 'symlink=`readlink symlink`' . Since 'readlink' only read 1 level of linking, it will point to a symlink in the original directory. The problem will now occur when Barry uses Pburn as backup for a huge amount of files. - mkisofs command will be very complex (many graft-points), and we get the error: 'Argument list too long'. Mkisofs fails and cdrecord has nothing to burn. Now you maybe think. Why not just burn the list in Pburn the same way that TkDVD do. It is certainly possible, but then we will loose all edits (remove, rename, new dir) which is not in the main directory (the list shown).

So I wonder. Did it came any clever ideas while reading this.
- is there a way to split up graft-points. Adding 100 every turn...
- is there another way of adding datas to an iso. mounting *.iso in rox is readonly, so I guess it is not THAT easy.
- other...

I have a 'working' proto if you want to dive along.

Edit: Some load thinking. We keep the temporary directory as it is now. In addition, we split all inputs (adds and edits) into 3 categories.
ADDS: If user add file or directory (add selection, add all), choosen file/directory are written to list 'ADDS'. Here are directories NOT listed recursively, so it will only apply ONE graft-point.
EDITS: If user rename an item in the burnlist this file/directory are written to the list 'EDITS'. This file will get its unique graft-point. All items added to a 'new directory' also needs a unique graft-point. But this is only in the first level of the new directory. It means that if user adds a directory inside this 'new directory' we needs only 1 graft-point for the added directory.
EXCLUDERS: If user remove or rename item it will be written to list 'EXCLUDERS'. This must be checked against original file/dir in case user renames an already renamed file. List with excluded items fits with mkisofs parameter -exclude-list.

Edit 2: This is simpler:
ADDS: If user add file or directory (add selection, add all), choosen file/directory are written to list 'ADDS'. Here directories are NOT listed recursively, so it will only apply ONE graft-point.
If user rename an item in the burnlist this file/directory are also written to the ADDS list. Format of ADDS list is equal the graft-points format: "path/name_on_CD"="/path/original_name". Since ADDS list contains complete information about where it should be placed in iso-filesystem, 'new directory' does not need to be handled else, and renaming doesn't need its own EDITS-list.
EXCLUDERS: If user remove or rename item it will be written to list 'EXCLUDERS'. List with excluded items fits with mkisofs parameter -exclude-list. EXCLUDERS-list must be checked against original file/dir in case user renames an already renamed file.

Edit 3:
My last theory will fail because 'remove' an item in the root-directory on CD/DVD shouldn't be added to EXCLUDERS list. It should only be removed from ADDS list. Pburn needs to know the main directories, and then check against them. A main directory will be the root directory and any 'new directory' made of user in the burnlist. If user renames an item in a main directory it should only be renamed in ADDS list, not added to EXCLUDERS list.

When 'Save' a *.pbn file, Pburn saves all links in /tmp/pburn. To keep graft-points and -exlude-list it also needs to save the files containing ADDS, EXCLUDERS and main directoies.

I have been fiddling with graftpoints, and begins to see where the road is leading us. Including graftpoints affects many functions, but users will only get one checkbox more - Follow symlink. when TRUE, Pburn uses the original burning mode. When FALSE, Pburn will use graftpoints. Default will be FALSE.

There are many functions that are touched by graft-points, and therefor the next release will NOT be stable. When I have managed the graft-point burning mode, I will upload the code. Then it will remain:
- Calculating size when 'follow symlink' is TRUE. I haven't looked at it, and I don't have a solution. This could be tricky...
- Some new Help-text
- Bugfixing - YOU are important.
- Maybe a documentation that explains the underlying structure of the Pburn code.

Here is a test-release of Pburn using a new method for burning (graft-points). It has been a rather complex task, because it touches many different functions. Because of this, there may (sure) be new bugs. It has been very kind of you if you could burn a disc the way you use to do it, and report back if it works as it used to do.

- This release also contains a patch from mikeb: Change order of songs for audio CD (move up/down).
- If getting trouble with this new burning method, you can start Pburn with parameter -f (pburn -f) to use the old burning method.
- Complete changelog will come with stable 1.4.0

It uses the correct font to match my GTK theme when I try it on Puppy 1.x (no - it doesn't work there - the substitutions in line 777 and 75 of func don't work).
It disobeys my GTK font setting in Dingo, and just uses sans._________________DEATH TO SPREADSHEETS
- - -
Classic Puppy quotes
- - -
Beware the demented serfers!

PBURN MAIN STRUCTURE
Pburn makes a iso-image using mkisofs' graft-points. All adds and edits are stored in files (see chapter 'system files') to give information about graft-points and excludelist. In addition there is a clone filesystem in the directory /tmp/pburn/. It mirrors the content shown in Burnlist, but all files and links are only symlinked. Directories are made new to be sure that the clone filesystem will be complete. A symlink directory points to its source, and deeper levels wouldn't exist in the clone system. This clone are used to:
- Navigate into and edit items in deeper levels of burnlist.
- Verify burnt datas. The content on disc are mounted and compared (diff) with the clone system.
- Save a *.pbn file with all adds and edits.
- Run the raw burnmode (pburn -f). This burns /tmp/pburn with 'follow symlink'. Graft-points are not used here.

BUILD BURN COMMAND
When user press the burn-button, Pburn uses the settings in preferences (~$HOME/.pburnrc) and info from mediacheck to build a burning-command. This is done with the function ../pburn/func_build_command. Settings shown in the burn-dialog represent the burning-command. Now when user press the button to start burning, there are 2 ways of actually define burning:
1. Normally Pburn runs ../pburn/func_build_command to update burning-command with the user-changed settings.
2. If user has activated 'Manually edit command', burning uses content of text-field <edit> as its burning-command.

PBURN FILE FORMAT (*.pbn)
Saving a *.pbn file uses 'tar' to pack the clone filesystem into one file. But before this it copies files to determine the status of graft-points. This include:
- /tmp/pburn-graft_points
- /tmp/pburn-exclude
- /tmp/pburn-main_dirs
- /tmp/pburn-isosize_graft_points
- /tmp/pburn-isosize_exclude
They are put into the directory /pburn-graftfiles on burnt disc. When open a *.pbn file, these files are copied back to /tmp/, and removed from the clone filesystem.

CD-TEXT
The func_build_command places the CD-text info into a *.inf file with the same name as the *.wav file. It contains info like this:
Albumperformer= 'Artist on this album'
Performer= 'Artist on this song'
Albumtitle= 'The name of album'
Tracktitle= 'The name of song'
The command 'cdrecord dev=/dev/sr0 -v -dao -useinfo -text *.wav' uses this *.inf file to write CD-text information. Pburn checks the filename for ' - ', and uses this as the separator for artist and song. Note that tao does NOT work with cd-text. Use dao or raw96r. Special characters in CD-text info may give unexpected result. If copy Audio-CD it is also possible to connect to a cddb server. It uses a CDDB-number on the CD and finds the matching number in the database. (To find tags about actual song, see musicbrainz.org). The default connection is: freedb.freedb.org / port 8880. Note that cdda2wav fails with 'cddb=x option', while icedax works. (icedax dev=$INDRIVE -vall cddb=1 -B -Owav pburn).

SLIDESHOW
This special-mode does as follow:
1. convert images to video-stream with ffmpeg
2. join all image-videos to *.m2v. This is video without audio.
3. multiplex audio and video to one videocompatible movie-file. (using ffmpeg)
But since ffmpeg is not the most mature multiplexer, I had to make a workaround to get the DVD load in my cheap DVD-player. If I put a more compatible movie as the first movie, the rest of the slideshow runs ok.

COPY
Copy Audio-CD on-the-fly uses dao, while off-the-fly uses raw96r. This to get bad drives works with at least one of the modes.

BURNFREE
Almost all newer drives has a protection agains buffer underruns. Cdrdao and growisofs turns this on if drive supports it, but cdrecord doesn't. Pburn uses the parameter 'driveropts=burnfree' to activate burnfree. It seems not to harm when using a drive not supporting this. Therefor no setting to disable burnfree.

THEMES
Pburn checks if there exist image-files for chosen theme. Gtkdialog <pixmap> code are set depending on this check. Also it tries to run a unique gtkrc-file in the theme-path. Content of gtkrc-file will appear only in Pburns main-window. All gtk-settings are reset first in ../pburn/func.

SYSTEM FILES (/tmp/pburn-)
-addmode
Differs beetween browse and search.
Add selection/all uses this to determine from what <tree> to add.
-burn
This is what shows up in the Burnlist <tree>.
First sorted -lsdir, then sorted -lsfile.
-burn_burndirs
Directories in Burnlist.
To get all dirs sorted first in -burn.
-burn_burnfiles
Files in Burnlist.
To list all files sorted after directories in -burn.
-burn_burnlist_dir
Where user are in the hierarcy of Burnlist.
/tmp/pburn/ represent / on the burning filesystem.
-burner
Holds burner device.
-dir
This is the active browser dir.
-exec
This is the command executed when burning starts.
-exclude
mkisofs -exclude-list uses this.
-graft_points
mkisofs -graft-points syntax are build here.
-import
Input from imported session(s) are put here.
When open burning dialog, its content are removed from Burnlist.
-info
This is the info-text in main-window.
-isosize
This the human readable of isosize_graft_points - isosize_exclude.
Used by <entry> in main window.
-isosize_graft_points
When add/import - 'du' puts its size here. Sum of list - isosize_exclude = required disc-size.
-isosize_exclude
When remove - 'du' puts its size here. See -isosize_graft_points.
-ls
This is what shows up in the browser <tree>.
First sorted -lsdir, then sorted -lsfile.
-main_dirs
Dirs with its own graft-point. This is the root-directory and when user make 'new directory'.
Remove/rename item not listed in main_dirs require input to -graft_points and -exclude.
-media_type
Detection of inserted disc. CD or DVD (DVD or Blu-ray are both detected as DVD).
-open_dir
*.pbn file opened from menu 'open' or from terminal command 'pburn file'.
-outdir
Temporary storage. Defined in preferences.
-parameters
Contains some of mkisofs parameters.
-renamed
Renamed files not listed in main_dirs. This is used to check if file has been renamed before.
-search
Content of search <tree> in main window.
-SHOW_HIDDEN
Contains the value of variable $SHOW_HIDDEN. Needed to update browsers action without rerender gui.
-splash
This is the value of progressbar in %.
Pburn doesn't show the progress here, but sending 100 exits the splash-dialog.
-splash_image
Image used in splash dialog. Defined by chosen theme.
-system_size
available free size of filesystem used by temporary storage (-outdir).

SYSTEM DIRECTORIES/tmp/pburn/
All adds to the Burnlist will be mirrored here. This is a symlink clone of the original filestructure.
In bash code it is pointed to with variable $TMPDIR
See chapter PBURN MAIN STRUCTURE

KNOWN ISSUES
- GtkDialog: Quit Pburn from window-manager (X-button, upper-right-corner), exits program but doesn't kill PID._________________Stardust resourcesLast edited by zigbert on Sun 25 May 2008, 13:27; edited 3 times in total

2. I think the information button needs information for the "follow symlink" checkbox.

3. Looks like a bug when removing an item with spaces in the name from the "Files to burn list":

Code:

du: cannot access `(01)_01': No such file or directory
du: cannot access `Only': No such file or directory
du: cannot access `Love': No such file or directory
du: cannot access `Is': No such file or directory
du: cannot access `Spoken': No such file or directory
du: cannot access `Here': No such file or directory

That might be enough.
I don't really know enough about it. Presumably it means that all symlinks that have been added to the burn list (even ones that are inside several folders, and you may not be aware of) are followed, so you can end up with a lot bigger image than you expect. It would be good to make this clear.
I think it is an "advanced" option that people usually won't want?
Is it also the same as running pburn -f ?_________________DEATH TO SPREADSHEETS
- - -
Classic Puppy quotes
- - -
Beware the demented serfers!

- It still doesn't obey my GTK theme's font, but I think I was confused. It is supposed to override the whole theme, not just colours, isn't it? I think I was confused because it didn't override my theme when I tried it on Puppy 1, but maybe with an older GTK it can't override it...

- Look what happens if you open pburn when it is already running - that doesn't seem very good.

- When I move a file up and down in the order for an audio CD, or when I add a file, I see lots of this. Should I see this, or is it something bad?

Code:

mv: `/tmp/pburn/(13)_Paul Stookey - Jean Claude.mp3' and `/tmp/pburn/(13)_Paul Stookey - Jean Claude.mp3' are the same file
mv: `/tmp/pburn/(14)_Paul Stookey - How can I keep from singing - Band and Bodyworks.mp3' and `/tmp/pburn/(14)_Paul Stookey - How can I keep from singing - Band and Bodyworks.mp3' are the same file
mv: `/tmp/pburn/(15)_Paul Stookey - Revolution 1x1.mp3' and `/tmp/pburn/(15)_Paul Stookey - Revolution 1x1.mp3' are the same file
mv: `/tmp/pburn/(16)_Paul Stookey - Something New & Fresh - 4D.mp3' and `/tmp/pburn/(16)_Paul Stookey - Something New & Fresh - 4D.mp3' are the same file
mv: `/tmp/pburn/(17)_Paul Stookey - The Minstrel Boy - demo.mp3' and `/tmp/pburn/(17)_Paul Stookey - The Minstrel Boy - demo.mp3' are the same file

Also, we could probably improve the message we get if you click rename, then click OK without changing anything._________________DEATH TO SPREADSHEETS
- - -
Classic Puppy quotes
- - -
Beware the demented serfers!

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot vote in polls in this forumYou cannot attach files in this forumYou can download files in this forum