Help - Search - Members - Calendar
Full Version: MKISOFS Project Managers - screenshots
The CD Forum > The CD Forum > Bootable CDs
mkisogui
Hey everyone,

I have have been working on a fully featured graphical front end for mkisofs.exe and I require the help of experienced mkisofs users/testers. I have been working on this project for about two weeks and I am pretty much ready to release a private, testing only build. If you can assist me with testing this project, that would be great otherwise I will have no choice but release a public alpha and this will prolong the release date as I will have to do all the testing by myself.

Why do I need private testers? Well, I want to make sure:

  • The generated mkisofs commands are correct
  • The program does not crash
  • The bootable ISO actually boots
  • Suggestion for improvements and bug fixes

The mkisofs.exe is fully integrated into the GUI. There is a left pane (projects), right pane (on the fly option search + help messages), a check-box environment which is the centre section indicating the active mkisofs options and on the bottom there is a preview. Everytime you check/uncheck a mkisofs option the command gets updated. On the second tab you have a config section for the associated project. For example, if the project is GRUB4DOS, the config file would be menu.lst. If the project type is ISOLINUX then the config file would be isolinux.cfg etc

I plan to integrate Qemu too (currently not included) but before I do so, I want to make sure what I have implemented so far works and works as expected. If you are willing to assist me, please p.m. me or reply to this thread.

And of course, here are some screenshots:

http://techopinion.net/images/mpm/mainscreen.png
http://techopinion.net/images/mpm/mainscreen2.png
http://techopinion.net/images/mpm/configsection.png
http://techopinion.net/images/mpm/addimage.png
http://techopinion.net/images/mpm/building.png
http://techopinion.net/images/mpm/buildcompleted.png

P.S. I am not sure if I should call it MKISOFS Project Manager. If you have a better idea for a name please speak up. This is gonna be a freeware of course.
jaclaz
You can count me in thumbsup.gif . (should I be eligible as "experienced" mkisofs user unsure.gif - do you need a Certificate, or are you going to trust people's word for it? wink.gif)

As pre-tester, I feel allowed to share some ideas/thoughts/questions:

Ideas:
Since there is already a mkisofs GUI, TheGUI:
http://members.chello.at/bobby100/The_GUI.htm
http://members.chello.at/bobby100/beta/index.htm
and a mkisofs "frontend" hta gui:
http://mysite.verizon.net/hartsec/make.htm
(both with limited features and a bit outdated)
I would exclude the term "GUI" from the name, and "MKISOFS Project Manager" sounds a bit "longish", what about "MKISOFS Helper" ? unsure.gif
On the other hand, the attention to grub4dos seems like it is/will be a tool oriented towards a multiboot, grub4dos based, iso making tool, if this is the scope, maybe something like "Multiboot ISO maker" would sound more appropriate.


What is actually missing is NOT the description of each option in mkisofs (that can be gathered by the man page or help) , but rather a series of "complete" examples, with the "reason why" and "consequent features".
I.e. this
QUOTE
[iso-level LEVEL]
Sets ISO9660 conformance level (1..3)
or 4 for ISO9660 version 2

is of no practical help for an unexperienced user that won't know what actual iso levels will mean in practice.
It would be nice, if there is a way, to be able to say that with isolevel 4 the CD won't be accessible by MSCDEX, and SHSUCDX is needed or that isolevel 4 is needed for some PE builds, or that Windows 2000 won't like isolevel 4, etc.
I mean, an experienced user will already know (having learned over the years and by trial and error) what each option and, more important, which combination of options may produce as a result, but most other people won't, and having the nice GUI won't be of much help.
In other words, I am trying to understand if the final goal is to produce a (nice thumbsup.gif ) tool for already experienced users or a tool for less experienced ones. unsure.gif

Or maybe include a number of "pre-sets" for "common" projects, like DOS boot disks, PE 1.x boot discs, PE 2.x bootdiscs, Linux boot-discs and a few combinations....:dubbio:

Thoughts:
I am failing to see the utility of a line like:
QUOTE
find --set-root ()/something

hmm.gif

Please do NOT "include" Qemu, there are already too many tools that include it, and versioning may cause a problem.
Same for grub4dos, please allow a pointer for one or more directory where the tools already are and give instructions to manually download and setup them.



Questions:
Which exact mkisofs version will be used?

Will it allow for features like "duplicate once" and "graft points"?

Will it be somehow "embedded" or users will be able to choose a particular "standalone" version (among the sevral ones one may have)?

What is the GUI based on? (anything but .NET is ok with me)

jaclaz
mkisogui
Hi jacklaz,

Thanks for that. Below I have included my responses.


QUOTE
Since there is already a mkisofs GUI, TheGUI: ...
and a mkisofs "frontend" hta gui: ...
(both with limited features and a bit outdated)
I would exclude the term "GUI" from the name, and "MKISOFS Project Manager" sounds a bit "longish", what about "MKISOFS Helper" ? unsure.gif
On the other hand, the attention to grub4dos seems like it is/will be a tool oriented towards a multiboot, grub4dos based, iso making tool, if this is the scope, maybe something like "Multiboot ISO maker" would sound more appropriate.


Hmm I honestly did not know about this one but to me it does indeed look quite limited. My version has no limits, it supports all mkisofs options/parameters including the ones that require input. This was a tricky one, I seriously thought would be the best way of doing this and at the end what I have shown is the result smile.gif I store user entered values in memory -- in an array with the same number of elements as the number of options displayed. You can delete the bundled version of mkisofs and you can replace it with a more (if available) updated one and if the more updated version has more options, they will appear in the list but there is small catch.

This is how it works. You will to need to adopt the config file to the new version and this is easy.

Inside the program folder there is a file called "mkisofs_options" which lists all of the options available in the bundled version of the mkisofs. This file was automatically generated by typing mkisofs -help 2> mkisofs_options. The command would redirect the standard error output to a file rather than the console. For some reason mkisofs likes to generate its help output to the standard error rather than the standard out. After its generation, you will need to slightly modify the generated file.

Here is a small part of what is inside the mkisofs_options file: (in the actual file these are aligned properly)

CODE
  -output-charset CHARSET         |Output charset for file name conversion
  -iso-level LEVEL                    |Set ISO9660 conformance level (1..3) or 4 for ISO9660 version 2 *
  -J, -joliet                                 |Generate Joliet directory information
  -joliet-long                        |Allow Joliet file names to be 103 Unicode characters
  -jcharset CHARSET               |Local charset for Joliet directory information
  -l, -full-iso9660-filenames         |Allow full 31 character filenames for ISO9660 names


The file is read on startup and the check list options are populated. Pay close attention how the file is crafted.

I put the pipe "|" in front of every option manually. This helps me determine where I need to parse the string -- that will separate the help text from the actual option. This is the help text that appears for an option when an option is clicked so the text after the "|" appears in the yellow help text section. You can put your own text after the "|" and next time when the program is started, the new text will appear. The "*" indicates that the option requires an input. Again, I put this manually in front of every option that requires an input. It is a flag for me to determine which option requires an input. That's it. So all you have to do is modify the mkisofs_options file to accommodate the new new version that you bundled.

MKISOFS Helper actually sounds good as well as Multiboot ISO maker. I just need to make sure nobody uses them. I had a few good names but they all seem to be taken. I just do a Google search to find out.

QUOTE
What is actually missing is NOT the description of each option in mkisofs (that can be gathered by the man page or help) , but rather a series of "complete" examples, with the "reason why" and "consequent features".


Exactly, this is where I would need help. The thing is I don't know the meaning of all those options and I am not an expert in mkisofs. If the community is willing to assist me in building this help section, the program can be accommodated for newbies too rather than for experiences users who know what they are doing and no you don't need certificate for this happy71.gif

The only reason I ask for experienced users is so that I am not asked questions in relation to "mkisofs" as I may not be able to answer them and my aim is eliminating bugs in the GUI and making sure everything runs as expected.

QUOTE
In other words, I am trying to understand if the final goal is to produce a (nice thumbsup.gif ) tool for already experienced users or a tool for less experienced ones. unsure.gif


My original aim was (and still is in a way) to produce a tool for experienced users thus using this front end will make things more automated but I do intend to extend it and make it so that it is also acceptable by non-experienced users.

QUOTE
Or maybe include a number of "pre-sets" for "common" projects, like DOS boot disks, PE 1.x boot discs, PE 2.x bootdiscs, Linux boot-discs and a few combinations....:dubbio:


Currently, there is one preset option and this one is actually used when you create a new project but this can easily be changed again as long as the community (experienced users) are willing to assist me. For example I will need help with creating these default options for different projects types. In other words tell me what options need to be on when creating x type of project. Of top of my head I don't know what needs to be selected for each project type e.g: (Linux, Dos etc) hence I will have to do my own research and do the search.....and of course this will prolong the time it takes new features to be added. I do strongly like the different presets idea. This way every time a new project is created it will be guaranteed to work!

QUOTE
I am failing to see the utility of a line like


Hmm are you referring to the actual command or the whole thing -- the "Add ISO/IMG" dialog box? Please let me know. Either way, this is why I need testers. If something is pointless or needs improvements it will either be removed or improved.

As far as the version number, I am using mkisofs 2.01. I am not sure how outdated this is.

In relation to the boot loaders types, well at the moment I am strongly focused on GRUB4DOS as that is what I know the most. Once I make sure this works as expected all one would need to do is replace the bootloader -b grldr with something else as well as the config file in the generated command and of course this will be done automatically.

QUOTE
Will it be somehow "embedded" or users will be able to choose a particular "standalone" version (among the sevral ones one may have)?


Are you referring to the EXE file? The EXE file would require no installation. It is statically linked. All of the program's code is built into the EXE. You just unzip it and run it. Of course I can create a fancy wizard installation smile.gif

QUOTE
What is the GUI based on? (anything but .NET is ok with me)


It is written in C++ Builder 2010, not using .NET.

QUOTE
Will it allow for features like "duplicate once" and "graft points"?


In mkisofs_options file:
QUOTE
-duplicates-once |Optimize storage by encoding duplicate files once


So the answer is yes I guess. The file has all of the mkisofs options and it is read on startup.

Seriously, the program is extremely flexible, you are not limited on options. Every parameter supported on the command line is also supported din the GUI hence the mkisofs_options file which is read on start up. I will do a few touch ups and I will send you a download link.


Feel free to ask any questions.
mkisogui
I am almost done with the test build. Even though it is a pre-alpha, I reckon it is pretty stable, I haven't crashed it or seen any access violations.

A small update with the main screen. I've included an option to give your ISO a volume label and pick your own name for the ISO and I incorporated a "Cancel/Stop Build" button.

http://techopinion.net/images/mpm/MainScreenUpdate.png

Multiboot ISO Maker sounds pretty catchy, I also like Multiboot ISO Builder and MKISOFS Helper. I have chosen to go with "Multiboot ISO Maker" and if someone complains, I'd just rename it to something else.
jaclaz
What i meant was, will your .exe make use (optionally or by default) of an external mkisofs.exe?

And I see that the answer is yes. smile.gif

The actual version of mkisofs is quite an important setting/decision, and being "forced" to a given one would have not been a good idea, as your program may have soon become outdated or however provide a restricted number of options to advanced users.

About:
QUOTE
find --set-root ()/something

I was referring to the actual utility of that particular line, as opposed to a "normal":
CODE
find --set-root /something


jaclaz
mkisogui
Ahh I see, you also have "/". You just need to select it from the Device Priority combo box. Check out the screenshot:

http://techopinion.net/images/mpm/DevicePriority.png

In relation to mkisofs, yes my idea was not to restrict mkisofs to the bundled version. This also applies to included boot loaders for example, in the program folder there is "grldr" and if you want a later version, just replace it. I only included grldr, not the while thing.

Also when a project is created, a project folder within your path is created with the same name as the project name. All of the files reside there and grldr is copied from the program folder to the project folder. Inside the project folder there is "iso_root" folder. Put the live cd files you want in there. A batch file is also created so next time you can recreate your ISO without using the program, you can just run the generated .BAT file inside the folder. This means projects are very portable and you can compile them even without Multiboot ISO Maker. Just run the batch file smile.gif



QUOTE (jaclaz @ Oct 17 2009, 02:04 PM) *
What i meant was, will your .exe make use (optionally or by default) of an external mkisofs.exe?

And I see that the answer is yes. smile.gif

The actual version of mkisofs is quite an important setting/decision, and being "forced" to a given one would have not been a good idea, as your program may have soon become outdated or however provide a restricted number of options to advanced users.

About:

I was referring to the actual utility of that particular line, as opposed to a "normal":
CODE
find --set-root /something


jaclaz
cdob
QUOTE (mkisogui @ Oct 16 2009, 10:29 PM) *
In other words tell me what options need to be on when creating x type of project. Of top of my head I don't know what needs to be selected for each project type

There are different solutions always.
Filecase, file name length, file system or extension is importand.
Given file name case at hard disk is importand too.

Can you uppercase file names at hard disk first. And build the ISO image next?

There are different mkisofs versions:

Alex Kopylov added -duplicates-once and -force-uppercase in 2004.
This unofficial release isn't supported since then.
http://www.wolfgang-brinkmann.de/bcdw_e.html

Jörg Schilling does maintain the current version.
http://cdrecord.berlios.de/old/private/cdrecord.html
Thomas Plank does offer Win32 Binaries http://www.student.tugraz.at/thomas.plank/

Can I use a cygwin version?

XP with XP boot sector file bootsect.bin, ISO9660 names changed to upperacse:
CODE
mkisofs -iso-level 3 -N -D -relaxed-filenames -b bootsect.bin -hide bootsect.bin -hide boot.catalog -no-emul-boot -boot-load-size 4 -o o.iso .


A general approach: long names according to draft ISO9660:1999 with rock ridge extension.
Upperacse required files at hard disk first.
CODE
mkisofs.exe -iso-level 4 -r -D -b grldr -no-emul-boot -boot-load-size 4 -hide boot.catalog -o o.iso .


Can you add collecting files from different directories, graft-points and sort files?

Isolinux from syslinux project support a CD.
Syslinux loader dosn't support a CD. There is no need to add syslinux loader.

What's a .BAT file? NT uses .cmd files.
mkisogui
hi cdob,

Thanks for that helpful reply. Things have changed quite a bit since my first post above (thanks to jaclaz) and those screenshots are very old now. I have implemented some of jaclaz' suggestions but I am trying to implement them all. I will post new screenshots with great improvements within hours of this post. In relation to your questions, I don't think you will be able to use the Cygwin version of mkisofs however you can drop a different version of mkisofs within the program's folder and that would work however to make it compatible you would have to take the suggested steps above and modify mkisofs_options. I have to create a batch file every time the build is started. There is a reason for this. It is needed for capturing mkisofs' output in real time. I chose a batch file as I am kind of used to them back from the dark ages of computing smile.gif

You can use any mkisofs version as the program's internal array of mkisofs options is dynamic, everything is built dynamically, in otherwords, there will be as many options in the program as there are lines in that mkisofs_options file. Every option you put there will appear in the program (in the order you place it).

I will release a public version very soon and everyone can try it out. All these early versions are barely pre-alpha releases and I will attempt to implement every feature requested.
mkisogui
Ok, finally!!

Sorry for my late reply. Things took longer than expected. Here is the very latest screenshot (at the time of writing this post). Big difference...

http://techopinion.net/images/Unofficial.png
mkisogui
Interface has received a complete overhaul.

http://techopinion.net/images/Pre-Alpha.png

A public alpha should be available in a few days.
Nuno Brito
This is an interesting development, some years ago I did something similar but it wasn't as good as yours: http://www.911cd.net/forums//index.php?showtopic=16829

Would you also announce this tool at Boot Land when the beta is available?

http://www.boot-land.net/forums/index.php?showforum=64

It would be my pleasure to pass the news about it on our weekly newsletter to the rest of the community and perhaps help exposing your tool to more people interested in using it.

Thanks.

smile.gif
mkisogui
Not a problem, I will start a different thread for the Beta.

I have done some more changes. The right "filter" pane is now showing the "checked" items as bold entries + latest screenshots of config, properties + build window.

http://techopinion.net/images/MainScreen.png
http://techopinion.net/images/ConfigScreen.png
http://techopinion.net/images/Properties.png
http://techopinion.net/images/Building.png





mkisogui
Hi everyone,

A public alpha version is imminent.

Release Date: By the end of the current week.

More improvements have been done to the GUI + the options are arranged in alphabetical order!

Check it out: http://techopinion.net/images/mbim.png


Cheers,
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2009 Invision Power Services, Inc.