Printable Version of Topic
Click here to view this topic in its original format
The CD Forum > Bootable CDs > Mkisofs_gui Beta


Posted by: bobby100 May 16 2004, 02:13 PM
*screenshot removed*

This is the screenshot of Mkisofs_GUI beta2.

PM me for download link if you want to be beta tester.

* To beta testers: Link is the same as for older development versions

Posted by: midas May 16 2004, 06:16 PM
Is this under the GNU GPL or similar license?

Posted by: bobby100 May 16 2004, 06:59 PM
Final version will be under GPL.
If you are interested in development - PM me. It is done in Borland Delphi.

Posted by: ByteCoder May 16 2004, 09:01 PM
Wow! Awesome GUI with all the basic functions included.

I notice you have an option available to run other parameters... Does that get included in the resulting batch file to be execuated before or after the mkisofs.exe is executed...

The reason I'm asking is because I run Duplicate File Linker on a copied source tree before running mkisofs.exe

main.cmd to automate by bootable CD making process..
CODE

@ECHO OFF
:: -------------------------------------------------------------------------
::
:: SRCD, Super System Resource CD
:: creation and management Script.
:: Added Final ISO creation to the script also.
::
:: -------------------------------------------------------------------------
ECHO.
ECHO    SRCD: Super System Resource CD Compiling Script, v0.7b
ECHO.
verify other 2>nul
SETLOCAL ENABLEEXTENSIONS
IF errorlevel 1 goto _noext
::
:: Setting to current drive and path.
::
%~d0
CD "%~dp0"
@ECHO ON
IF EXIST cd_shell rmdir /S /Q "cd_shell"
MKDIR cd_shell
XCOPY "cd_shell_original" "cd_shell" /E /H /Q
IF EXIST "%~dp0output\i386" RMDIR /s /q "%~dp0output\i386"
IF EXIST "%~dp0output\programs" RMDIR /s /q "%~dp0output\programs"
IF EXIST "%~dp0output" RMDIR /s /q "%~dp0output"
@ECHO OFF
ECHO.
ECHO.
ECHO  SRCD: Please insert/mount Windows XP Pro/SP1
ECHO  SRCD: integrated into one of your optical
ECHO  SRCD: or virtual drive.
ECHO.
ECHO  SRCD: Make sure to choose
ECHO  SRCD: %~dp0output as your
ECHO  SRCD: output directory in pebuilder
ECHO  SRCD: for this script to work
ECHO  SRCD: and don't make the ISO from pebuilder.
ECHO.
ECHO  SRCD: Press Enter when disk is loaded/mounted.
pause > nul
IF EXIST %~dp0new_pe\input.inf ERASE /f /q %~dp0new_pe\input.inf
start /wait %~dp0new_pe\pebuilder.exe
@ECHO ON
IF EXIST "%~dp0pe_stuff\menu\setupldr.ram" COPY "%~dp0pe_stuff\menu\setupldr.ram" "%~dp0output\i386"
IF EXIST "%~dp0pe_stuff\menu\txtsetup.ram" COPY "%~dp0pe_stuff\menu\txtsetup.ram" "%~dp0output\i386"
IF EXIST "%~dp0pe_stuff\menu\nu2menu.xml" COPY /Y "%~dp0pe_stuff\menu\nu2menu.xml" "%~dp0output\programs\nu2menu\nu2menu.xml"
InfCacheBuild.exe %~dp0output
IF EXIST "%~dp0output\i386" XCOPY "%~dp0output\i386" "%~dp0cd_shell\i386" /e /h /q /i
IF EXIST "%~dp0output\programs" XCOPY "%~dp0output\programs" "%~dp0cd_shell\programs" /e /h /q /i
::IF EXIST "%~dp0output\i386" RMDIR /s /q "%~dp0output\i386"
::IF EXIST "%~dp0output\programs" RMDIR /s /q "%~dp0output\programs"
::IF EXIST "%~dp0output" ERASE /q "%~dp0output"
IF EXIST "%~dp0cd_shell\i386" XCOPY "%~dp0cd_shell\i386" "%~dp0cd_shell\PowerXP\i386" /e /h /q /i
IF EXIST "%~dp0cd_shell\bootsect.bin" COPY /Y "%~dp0cd_shell\bootsect.bin" "%~dp0cd_shell\powerxp\i386\bootsect.bin"
IF EXIST "%~dp0cd_shell\programs" XCOPY "%~dp0cd_shell\programs" "%~dp0cd_shell\Erd2003\programs" /e /h /q /i
IF EXIST "%~dp0cd_shell\programs" XCOPY "%~dp0cd_shell\programs" "%~dp0cd_shell\PowerXP\programs" /e /h /q /i
@ECHO OFF
goto _build
::
:: When system extensions couldn't be enabled.
::
:_noext
@ECHO OFF
ECHO  SRCD: Required System Extensions couldn't be enabled.
ECHO  SRCD: Aborting the current process...
goto _end
::
:: Making the final ISO and requesting a name for it.
:: If no name is provided default name of SRCD is used.
::
:_build
@ECHO OFF
ECHO.
ECHO SRCD: Checking for required building files:
for %%i in (mkisofs.exe dfl.exe cygwin1.dll cd_shell\boot\sloader.bin cd_shell\boot\cdshell.ini) do if not exist %%i (
echo SRCD: Required file "%%i" not found.
goto _end)
Set Name=
SET /P Name=Name output file without extension, Max of 30 Characters:
IF '%Name%' =='' SET Name=SRCD
IF NOT '%Name%'=='' SET Name=%Name:~0,30%
ECHO.
::
:: Using Duplicate file linker which will make hardcoded
:: symbolic links to reduce output file when used in
:: conjunction with included version of mkisofs.
::
dfl.exe cd_shell link -d
::
:: CMD Line timestamp modification will take place here once app is ready
:: so that all files and folder in resulting ISO have the same Timestamps.
::
mkisofs.exe -iso-level 4 -follow-links -cache-inodes -J -joliet-long -V "PowerXP SLAX" -appid "CD SHELL/MKISOFS" -publisher "Collective Information Inc." -sysid "Win32" -verbose -N -nobak -eltorito-boot boot/sloader.bin -no-emul-boot -boot-load-size 4 -hide boot/sloader.bin -o C:\%Name%.iso "%~dp0cd_shell"
goto _done
::
:: Showing the final success message along with brief info.
::
:_done
@ECHO OFF
ECHO.
ECHO  SRCD: File %Name%.iso created in c:\ directory.
ECHO  SRCD: Use your favorite ISO burning tool to write it to a CD.
ECHO.
ECHO  SRCD: Press Enter when ready to exit.
ECHO.
Pause > nul
goto _end
::
:: Disabling system extensions that were enabled
:: so variables as well as path parameters are cleared.
::
:_end
ENDLOCAL

Posted by: bobby100 May 16 2004, 09:34 PM
Hmmm... Other options are also for Mkisofs.exe, that is in case that user needs some options to include that aren't included in GUI. He can do this also by editing batch file, but by using this fields in GUI, this Other parameters are saved in template file.

I'm thinking to include one more field in GUI : Comments.
This can be good if someone wants to distribute his templates for Mkisofs_GUI.

Posted by: Allen2 May 16 2004, 10:54 PM
Why not adding a dfl function to your Gui ?
Just an idea not a request.

Posted by: bobby100 May 16 2004, 11:18 PM
@Allen2

I have never used DFL, because I don't have NTFS partitions (if I'm well informed DFL works just on ntfs partitions). If you can give me a bit more instructions - I'll try to integrate that. Give me some examples, or something like that...

Regards

Spasic Boban aka bobby100

Posted by: cdob May 18 2004, 01:04 PM
QUOTE
I have never used DFL, because I don't have NTFS partitions (if I'm well informed DFL works just on ntfs partitions).

DFL dosn't require a NTFS partition, there is a DOS version available. DFL creates symbolik links.

Hard links require a NTFS partition.

Find duplicate files in folder %SourceFolder% and create symbolic links:
dfl %SourceFolder% link -d

Add mkisofs parameters "-follow-links -cache-inodes".

Posted by: bobby100 May 19 2004, 01:37 PM
Progress report:
*screenshot removed*
Not available for download.

Posted by: bobby100 May 21 2004, 06:35 PM
Ok people, first public release available for download, take a look at my homepage:
http://members.chello.at/bobby100/

Changes from last beta:

- name changed to The_GUI
- added file-attributes changer
- added Duplicate File Linker
- added tool to change file names and folders names uppercase and lowercase
- comments saved in template files

To Do for next release:

- ZISO tree maker
- to include some templates in distribution
- bugfixes (if someone reports bugs)
- support for command-line CD recording tools

Advices are welcome

Regards
Spasic Boban aka bobby100

Posted by: Bernd Blaauw May 22 2004, 12:35 AM
you code faster than that I have the time to test things..
continue your excellent project.

(yes, I'm both very lazy and very busy)

Bernd

Posted by: bobby100 May 23 2004, 11:20 AM
One question (maybe bug):

I'v did auto conversion for backslashes to slashes in field "Boot Image" because I saw that only that way works for me (isolinux.bin as loader and lot of floppy images on cd + some DOS programs in folders).
Is that right, or the conversion should be only option?

Posted by: Bernd Blaauw May 23 2004, 04:16 PM
it's correct.
Also the EXACT path+filename should be known.

if I have C:\TEST\ISOLINUX\ISOLINUX.BIN
then
C:\TEST\ISOLINUX\ISOLINUX.BIN will work,
but C:\TeST\ISOLINUX\ISOLINUX.bin won't work.

Also be sure you remove any potential read-only attributes from the isolinux.bin and the boot catalog files.


Posted by: bobby100 May 23 2004, 08:06 PM
@Bernd

Mkisofs searches for boot sector or boot image relatively to root of the CD (or I'm wrong?).
In my program, when user selects boot image, path to the image is converted to be relative to CD root patch, and backslashes are converted to slashes because of cygwin ( \ to / ).
E.g:

CD root = c:\my_cd\

and isolinux.bin is in C:\my_cd\isolinux\isolinux.bin
this is converted to: /isolinux/isolinux.bin

A did this right or not?

Posted by: midas May 23 2004, 10:25 PM
why hasn't anybody made a win32 port of mkisofs?
or am I wrong?

Posted by: cworks May 24 2004, 03:43 AM
it is a win32 console app

WINDOWS EXECUTABLE
32bit for Windows 95 and Windows NT

Posted by: cdob May 24 2004, 09:28 AM
QUOTE (midas)
why hasn't anybody made a win32 port of mkisofs?

Yes, nobody did a complete win32 port.

Actualy, there is a cygwin version. You have to master both windows and unix specification. Normally you don't get problems, but remember backslash \ is a special character for unix.

Posted by: bobby100 May 24 2004, 09:32 AM
...and so this thread is going to be about Win32 port of Mkisofs...

Anybody want to help with my problems, or should I say, do anybody needs that GUI that I'm working on, or not ?

Posted by: aec May 24 2004, 02:03 PM
@bobby100

Nice and useful utility. Thanks for spending time to develop it.

I have one more idea and personal request. It has to do with the -sort sort_file option which, if I have not overlooked, it is missing from your frond end.

This option points at a sort_file with weight definitions that define how the files are stored on the CD. I experimented with this and I realized that one can gain in boot up speed from 15sec to 25sec or even more for CD's with complex directory structures.

This -sort option needs the CD_root_path with slashes / and not backslashes.
The sort_file is a simple text file with lines of filenames/dirnames followed by a positive or negative number, separated by a space or tab.

Anyway, I think the -sort option is important to have. Also, what I would personally find very useful is to use this option to create some kind of a layout manager which would allow the user to arrange the order by which specified folders/files are stored on the CD surface.
Practically this means an interface to select files or folders, assign to them proper weights and write the filename and its weight in the sort_file.

Posted by: bobby100 May 24 2004, 02:31 PM
@aec
Good point. Give me the example how one list should look like.

Posted by: aec May 24 2004, 02:48 PM
@bobby100

Have a look at http://www.911cd.net/forums/index.php?showtopic=6869

Posted by: Bernd Blaauw May 24 2004, 03:02 PM
this can be very important.

Does this sorting-list also affect the amount of time that the building of the ISO file takes?

on my 3GB DVD with BartPE on it it takes about 30 seconds or so before MKISOFS has even found the isolinux\isolinux.bin file.
it seems to just search all directories.

a pure WIN32/DJGPP version of MKISOFS would be great.

Posted by: bobby100 Jun 7 2004, 01:49 PM
@aec
This days I have a bit time to work on this. Can you give me some more info, like:
- weight numbers (min/max values), how to make them editable: +/- buttons or edit box, multiple select needed or not... etc
- folders, they also need weight numbers? That assumes whole folder with files in it, or just folder name ?
- can more files have the same weight number or should I make the routine to check (exclude) to happen something like that? Also this implicate multiple selection on/off
- I saw joker signs in your list, I can't do that, but I think if I allow multiple selection and the list file is generated by the program, that this isn't a problem for user.

My idea is to make something like for Advanced Tools, except that last list will have one more column with editable weight values. After selecting a line from that list (also multiple selection), the +1/-1, +10/-10, +100/-100... buttons will appear, also a edit box to enter the value manually. I was thinking also about list-sorting buttons (alphabeticaly, by weight).

Any advice is wellcome

Posted by: aec Jun 8 2004, 10:07 AM
@bobby100

Here are some answers to your questions.

Q. weight numbers (min/max values),
A. Use integer number between +/- 2147483647

Q. how to make them editable: +/- buttons or edit box,
A. Propably up/down buttons are more convenient but in some cases edit boxes are needed

Q. folders, they also need weight numbers? That assumes whole folder with files in it, or just folder name ?
A. If the filename is a directory name, then all the files in that directory (and sub-directories) will use its weight as their default weight.

Q. can more files have the same weight number or should I make the routine to check (exclude) to happen something like that? Also this implicate multiple selection on/off
A. No problem to have the same weight. These files define a group and within this group they are sorted alpabetically. Multiple selection is OK.

Q. I saw joker signs in your list, I can't do that, but I think if I allow multiple selection and the list file is generated by the program, that this isn't a problem for user.
A. Perhaps you could implement wildcards by using a second editable field that mirrors your initial folder selection.
In this field the user will have the chance to modify appropriately the entry (include wildcards, ...) before adding the entry to the sorting list.

QUOTE
My idea is to make something like for Advanced Tools, except that last list will have one more column with editable weight values.
   After selecting a line from that list (also multiple selection), the +1/-1, +10/-10, +100/-100... buttons will appear, also a edit box to enter the value manually.
   I was thinking also about list-sorting buttons (alphabeticaly, by weight).


The program should suggest a weight value for the next entry. I think that this should be the weight of the entry that the user has currently selected in the sorting list. Then the user may modify the weight using the +/- buttons or the edit box.


The original mkisofs_sort readme is here http://www.fifi.org/doc/mkisofs/README.sort

Regards

Posted by: dani2 Jun 12 2004, 06:36 PM
Hi AEC I am very interested in starting to use your sort listing as my PE disk takes too long to start, but I have a problem... My CD is too large ! So I actually need to use cdimage to create the image. Either that, or is it possible to "optimize" the CD with mkisofs? Opimization means multiple files on the CD have some sort of hardcoded link to them so they don't fill up the CD even more... Thanks for your input!!

Posted by: aec Jun 12 2004, 09:28 PM
@dani2

You may use the Duplicate File Linker (DFL) from Reanimatolog http://bootcd.narod.ru/ with mkisofs to have the same files stored once.

I have not tested this yet but I think, according to the relative documentation, the sort option works also in this case.

Quoting some info for dfl
QUOTE
DFL: Program to find double copies of files and replace it to symbolic links compatible with Win32 or MS-DOS version of mkisofs. It can be used with mkisofs to reduce the size of an ISO image (option -follow-links -cache-inodes).

and for sort option
QUOTE
If a file appears more than once in the source directory tree, then the file is only added once to the CD image - i.e. a hard linked file, or symbolic link if using the -f option. The file will be sorted according to the highest weighting given to any of the linked files.


Posted by: bobby100 Jun 14 2004, 12:49 AM
@aec
What is hapening if folder name contains spaces?

@all
Next step is to integrate CD Recording, so any help on CDrecord and Nerocmd is welcome.
- how to determine max.speed for recorder in CDrecord (or Nerocmd)...
- I don't know what else can occur, I'm still working on sort_list thing, if anyone have expirience with command-line recording tools, please give me suggestions how to implement this

Still don't have enough info on ZISOFS, anyone with expirience on this ?

Posted by: aec Jun 14 2004, 01:09 AM
@bobby100

QUOTE
What is hapening if folder name contains spaces?


No problem. Just write it without quotes. The program considers as filename all the characters from the first character in a line, up to, but not including the last space or tab character on a line.

regards

Posted by: bobby100 Jun 15 2004, 11:13 AM
Sorting thing is mostly done, I have sended the download link to aec to test it, if aec says it's good - it will be included in The_GUI.

Now about CD burning part: I have found NeroAPI for Delphi, but it is under Mozilla licence ( http://www.mozilla.org/MPL/MPL-1.1.html ) and my program was under GPL. Can someone explain the difference to me? My English isn't so good that I can understand it alone.
Second thing is: can I use Crystal icons ( http://www.linuxcult.com/forum/crystal.php ) for my program ( modified to meet my needs ) if my program is GPL (or MPL) ?

regards
Spasic Boban aka bobby100

Posted by: bobby100 Jun 16 2004, 06:05 PM
I did some tests for ZISOfs and I have done some consulting with Reanimatolog.
The results are:
- the compression ratio is 10%-40% for my test files
- it is supported just by linux kernels 2.4.14 or 2.4.9-ac14 or later (it will be decompressed in real-time and the compressed files are used just like normal files)
- you CAN'T use it with BartPE (WinPE, DOS, any other than Linux OS...) system files
- only way that ZISO can be used with Windows is to compress programs (or any non-system files) before cd burning, and to decompress it to RAM (or any other writable media) before using them.
- live-linuxes already come with compressed file-systems (Knoppix and his variants with cloop, Slax with ZISO) so here is no need for ZISO tools to be included in The_GUI (also nobody makes live linuxes from within Win environment).
- it can be used for DOS floppy images (only point where I find it interesting) so let's talk about this: 2.88 mb floppy image contains 500 kb system files that cant be compressed, so there remains 2.3 - 2.4 mb files to compress. Let's say that we gain 500 kb by compress them. Mkzftree for DOS is 170 kb, so as result we gain about 330kb free space. My question is: is it worth of it? Concider that you can compress whole IMG file with gz compression and use it in this form with memdisk (or memdisk plugin for BS and CS). Also new memdisk supports WinImage compressed images (*.imz). If the target is to obtain more space on CD - use compressed images. If you want more space inside floppy image - use CAB or RAR.

Example: PartitionMagic 8.02 goes to 2.88 mb image (1987 kb full). After "zisoing" program files (1822 kb) they are 1529kb. Add mkzftree.exe and cwsdpmi.exe to this (needed for decompression) result = 1699 kb. Add command.com and other files that can't be compressed = 1866kb. Overall result is 121kb free space gained for 2.88 mb floppy image.

Example2: compress programs for BartPE (WinPE). Uncompresse sample folder = 31.6mb(mostly exe and dlls). Compresse = 19.1mb with lot of troubles and general protection faults generated by mkzftree. Same folder compressed with RAR (default compression ratio) = 17.3 mb. Why RAR? In both ZISO and RAR cases you need to uncompress files to RAM drive (if you are using BartPE or WinPE).

My conclusion is - ZISO isn't very usefull to be used with DOS and BartPE (WinPE) environment.
My question is: according to this test and conclusions, do I still should include support for mkzftree in The_GUI? Please, help me to decide.

regards
Boban Spasic aka bobby100

Posted by: Allen2 Jun 16 2004, 09:11 PM
You should remove it for as it won't be of any use for the most of us.
Perhaps, if in a near future, microsoft add some support or someone make a driver to support it, it will be usefull for windows users.
Thanks a lot for your testings, you saved me a lot of time. I didn't have the time to try it in the last two month.

Posted by: bobby100 Jun 17 2004, 06:36 PM
LoL, developing this program makes me to go mad...
In order to have some functions, GUI must capture the output from command-line tools (CLT in further text). This can be done thru piping the stnd_out to some list component inside the GUI. But....
Smart little CLTs don't use standard out, but they use POSIX cygwin out... grrrrr
All that you see in console while mkisofs.exe or cdrecord.exe are writing isn't realy there but in Cygwin console that is inside your windows console window.... grrrr
After the whole job in Cygwin is done, then is complete output parsed to windows console at once ( not even in CR/LF format, but in LF format ) ..... once more: grrrrrrrr........
Ladies and Gentlemans, I'll need a little bit more time to make CDRecord working under the GUI.

Back to one of my previous questions (couple of posts ago): I found NeroAPI for Delphi, but it is under Mozilla Public Licence. Can someone explaint to me what that means, can I use that unit if my program is under GPL or not?
Please help, I'm desperate because I realy don't understand english so good that I can understand those lawyers-alike expresions in MPL and GPL.

Posted by: midas Jun 18 2004, 12:14 AM
If I am not mistaken, the Mozilla license is very similar to GPL type for the exception that te source code does not have to be included alongside with it.
I could be mistaken though...

Posted by: midas Jun 18 2004, 12:15 AM
aha!
http://www.mozilla.org/MPL/MPL-1.1.html

Posted by: bobby100 Jun 18 2004, 11:49 AM
@midas
My friend, I also found and read the MPL, but the problem is that I don't understand it, neither the GPL. My knowledge of English isn't so good...
I asked if someone can help me understanding it. If NeroAPI is MPL, can I release the app that uses it, but under GPL...etc.
Same problem with Crystal Icons (link is a couple of posts ago).

Someone with advices on cygwin console output thing ?

Posted by: Bernd Blaauw Jun 20 2004, 01:39 AM
ehm..Bart's PE Builder also captures MKISOFS output in the PEbuilder window, so it must be possible somehow.

That said, I still haven't used your GUI. My promise controller doesn't recognize my SerialATA disks anymore, and that means no access to my DVD tree on harddisk, so no mastering using your GUI and/or MKISOFS.

Posted by: Alex Kopylov Jun 21 2004, 01:46 AM
@Bernd Blaauw
QUOTE
a pure WIN32/DJGPP version of MKISOFS would be great.

a pure Win32 version (without cygwin1.dll) of cdrtools http://cdrtools.bootcd.ru
@bobby100
that version includes mkisofs with build-in storage optimization (similair to 'cdimage -o'),
which one works faster than original mkisofs with DFL

Posted by: bobby100 Jun 21 2004, 01:56 AM
Alex, those are great news
I'll make The_GUI to match your version of CDRtools.

I have opinnion that this version is better than original one, so I'll remove DFL from The_GUI and some other options that I found useless (transparent compression, boot load segment)

from the link you posted:
" - Option -rock have same effect as option -rational-rock "
Can you explain this?
Should I include just one option in GUI (eg. just "-rock") ?

One little problem, with "old stuff" we could done this DFL, then sorting (with sorting lists), then making iso. How can we do this now ? Now we can sort just plain tree, we can't sort DFL-ed tree anymore.

once more, realy great news...

regards
Boban Spasic

Posted by: Alex Kopylov Jun 21 2004, 02:36 AM
@bobby100
QUOTE
" - Option -rock have same effect as option -rational-rock "
Can you explain this?

-rock (or -R) option requires some information, which one not available under Windows (UNIX GIDs, UIDs and file/dir modes).

-rational-rock (or -r) described in documentation as:
CODE
This is like the -R option, but file ownership and modes are set to more useful values.
The uid and gid are set to zero
[...]
All the file read bits are set true, so that files and directories are globally readable on the client.
[...]
When used on Win32, the execute bit is set on all files.
[...]
See also: -uid -gid, -dir-mode, -file-mode and -new-dir-mode.

QUOTE

Should I include just one option in GUI (eg. just "-rock") ?

I think "-rational-rock" is better.

Posted by: midas Jun 21 2004, 05:53 AM
QUOTE (Alex Kopylov @ Jun 20 2004, 11:46 PM)
@Bernd Blaauw
QUOTE
a pure WIN32/DJGPP version of MKISOFS would be great.

a pure Win32 version (without cygwin1.dll) of cdrtools http://cdrtools.bootcd.ru
@bobby100
that version includes mkisofs with build-in storage optimization (similair to 'cdimage -o'),
which one works faster than original mkisofs with DFL

awesome!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)