Jump to content
Ketarin forum

Compiling Ketarin from Source


GuyHoozdis
 Share

Recommended Posts

I downloaded the Ketarin source from the link provided on the website's mainpage (it's in the second paragraph under the "What's it all About" heading). After extracting the C# source files I open the project/solution in VS2008, clean, and rebuild. I get an error message immediately that I don't have the source code for CDBurnerXP which the project is expecting to find at "..\CDBurnerXP\trunk\...". I wanted to see if anybody else had some input on this before I dig in to the project's configuration files and start changing things.

 

Is there a dependency on CDBurnerXP for Ketarin that I am noobishly not aware yet? I see that Ketarin was, in fact, created as a compliment to that app, but it's just Ketarin that I'm interested in. I've never used Ketarin before, but have been dying to employ it's awesomeness to bring some sanity back into the management of the myriad of Windows tools and utilities that I am otherwise constantly re-downloading and maintaining. I'm really looking forward to this! I came across Ketarin being used in someone else's project a while ago; that's how I came to be aware it's existence. I've read over the docs, the examples, external pad file references, and some community templates/scripts. I downloaded the binaries and source and am ready to dig in! I have run the pre-compiled binaries in a virtual machine before, but I would prefer to build the application from source myself from now on.

 

From the path that is configured for CDBurnerXP, it appears that you guys have a code repository somewhere. Subversion maybe? Perforce or... what is M$ proprietary source control called? How do you feel about github? The license for Ketarin clearly would allow me to take setting up a public github repo, but I'd like to ask if that would offend the developers or maintainers? Maybe you guys already have a "system" and I should figure out how I might fit into what you have going on already.

 

Any input on compiling the source, correcting me if I have any misunderstandings about Ketarin requirements, or the desire to have the source reviewed/QA'd/hosted in a public repo.... any comments or insight would be helpful. Thank you.

Link to comment
Share on other sites

Thank you, Shawn.

 

Is there someone that is actively in charge of maintaining the Ketarin source? I would like to help. Who should I talk to? I found the project listed on Ohloh and I am currently trying to integrate myself into the project there for starters.

 

Are you aware that the Ketarin source that is distributed is not in a build-able state? As an outsider I do not have access to the CDBurnerXP source tree, and the Ketarin source code references some sources files in the CDBurnerXP source tree. I don't really want access to the CDBurner source tree, but I would like to clean up the Ketarin source tree so that it will build nice and easily for the next person.

 

I can give details to whom ever needs to hear them, but the short story is that I went through the Ketarin source and cleaned out the references to source files that live under the CDBurnerXP project. I know Ketarin was only created, quick and dirty, to supply basic functionality for CDBurnerXP. The fact is though, Ketarin itself has gathered a cult following and deserves some proper attention. Like I said, I'll volunteer for that task.

 

At the moment I am going through and re-implementing the functionality that is normally supplied by the handful of source files that reside under the CDBurner project. I looked around briefly, but would you confirm that the CDBurner source tree is not available for me to access? I'm starting down the path of re-implementing the logic already. If you, or the developer in charge, wants to make my life easier; I'm open to that. If the maintainer wants to remain as the lead and have me follow suit with the way they have planned for the project-- no problem. If there is no one responsible for it-- then I'm stepping up.

 

If the maintainer of developer wants to save me the work, and the development faux paux, of duplicating the logic that Ketarin is missing; I can specify the source files that are missing and someone with access can pass me just those files.

 

Thanks again, Shawn.

Link to comment
Share on other sites

Wie Gehts, floele! Thanks for getting back to me.

 

Yes, I did see the CDBurnerXP folder. At first I was only looking at it through the "Solution Explorer" window in VS2008; the *.cs files are not seen from that perspective, not even when I tried to add them. The directory looked empty. Obviously, I made a mistake somewhere there and should have looked a little bit harder. Still, I would say that there is room for me to help you guys and make it dead-simple to build process for the Ketarin source that you provide. That could be as simple as just writing a "how to" for you guys, but I'm totally cool with getting my hands dirty in the code. If you already have a roadmap for Ketarin or just thoughts on how/what you want to do with it, then let me know and I'll follow your lead. If you would like me to take the lead and suggest to you what the roadmap could be, just say the word and I will do that for you.

 

 

As for my current progress building the source...

 

There appears to still be one file missing; "IMirrorControl.cs". The IDE expects that file to be located: "CDBurnerXP\trunk\CsLib\CDBurnerXP\Controls\IMirrorControl.cs" along with the other logic that I did find in the CDBurnerXP folder came with the *.tar.gz I downloaded from your site.

 

As a first attempt to get to a successful build, I reconstructed the expected directory structure using "junction points". I'm trying to model what the "real" build scenario looks like and get a successful build before I go changing too much. Beyond the simple "just write a how-to-build-ketarin" guild that I mentioned, I think the next easiest and lease invasive solution would be to automate what I did manually. That is, create a step in the build process that ensures either:

1) the real CDBurnerXP project has been checked out (as would be the case for developers with access to the CDBurner project)

... or ...

2) Creates a simple skeleton structure that imitates what the "real" directory structure so that the build process "thinks" it is there.

 

That would be fairly simple to do.

 

The longer and more involved solution, and in my opinion also the "right" or "proper" solution, would be to decouple the shared logic that exists between the two projects and package or provide it as its own component so that both CDBurner and Ketarin could use the logic w/o duplicating source files. If this is what you are thinking then we would need to plan a little bit before I started, but the outcome might be something like:

 

1) CDBurner Source - private/restricted access as it is today

2) Ketarin Source - public/open-source as it is today

3) SharedLib - a new component made up of the existing logic that both projects use; public/open-source

 

 

 

* If you aren't familiar with "junction points" see junction.exe from SysInternals to quickly and easiliy make your own.

Link to comment
Share on other sites

I'll add the missing file for the next source release.

 

I know what the issue is and I would also know how to solve it, I am not putting any effort into it though, since the source demand for Ketarin is pretty low.

 

So have fun with the source ;)

Link to comment
Share on other sites

  • 4 months later...

I'm also interested to Build Ketarin from the Source Code.

=> What i have to do to eliminate the errors at the building process?

 

i excluded the CDBurnerXP Folder in VS2008 but there are much more errors!

 

can anyone give a step by step instruction?

 

Waht i want to do:

- Change the FileHippo Download surce to Multilanguage support. Or only the German Language Setups! (I actually found no Beat Version which support the multilingual support from Filehippo)

 

Thanks

Link to comment
Share on other sites

  • 11 months later...

Thanks for that comment, floele. I am looking into how to run .NET programs on Linux.

 

I have the Windows version running over WINE on Linux, but I find it hard to use it to make new "recipes", because the Find function within Variables doesn't work -- it finds all strings that match the first letter in the find string.

 

I have started trying to compile Ketarin on Linux, and I have run into a problem. The function

   InitializeComponent()

is called in quite a few .cs files, but the compiler can't find where this function is defined. Can you help?

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

Hello again, floele. Sorry I didn't notice your reply -- I had forgotten to turn on following on this thread. Have now done so.

 

I'm using MonoDevelop version 2.8.6.3 on Ubuntu Oneiric.

I'm trying to build the whole project, which should involve compiling all files, I think.

I have included the files for CDwriterXP, that the Ketarin files depend on.

 

Thanks, Jim

Link to comment
Share on other sites

  • 8 months later...
Guest sanzoghenzo

Hi all,

I just discovered your program and I already love it, it surely will come in handy for when I'll have to repair my family and friend's pcs.

Unfortunately I'm a Mac OSX user, and I'm trying to avoid installing Windows (in a partition or VM) as much as I can, so I'm trying to find a way to run ketarin on OS X (or even linux, sometimes I use that). What I accomplished so far (a memo for me and for who wants to try):

 

  • Installed Xamarin Studio e Mono MDK, needed to install a previous version (3.8) because of some problems with MessageBox in 3.10
  • I did a checkout of the svn repository.
  • since there's no CDBurnerXP related files, I had to remove the folder in the project and re add it using the folder from the tarball on the main page (is there a way for you to include those files on SVN?)
  • Enabled "unsafe" code in the compiler options
  • For Sqlite to work, I had to use Mono.Data.Sqlite instead of System.Data.SQLite. To maintain cross compatibility, I simply added "#if __MonoCS__", "#else" and "#endif" in every "using" of SQLite. I had to use the same technique to make all the calls to sqlite work, because mono uses "Sqlite.." instead of .NET's "SQLite". I did a little C when I was in college, never used C#, don't know if there's some other way to do that.
  • Now the project compiles without errors, but the app doesn't load because of the native user32.dll calls (the first error is triggered by ObjectListView). There's no equivalents of this library for OS X or Linux, so we should find a way to emulate the NativeMethods in mono/gtk. Don't know where to start, so I'm calling for help!

What a great way to spend a Sunday morning :P

Cheers from Italy!

Link to comment
Share on other sites

Guest snzoghenzo

Ok, the big problem is the ObjectListView class, it has too many calls to user32.dll.

The developer of that class tried it on ubuntu linux, and it worked with some hiccups, but after few revisions dropped the support.

The solution would be using a simple ListView, but that means rewrite most of the code that uses the ObjectListView since they behave differently, or "fixing" the ObjectListView (maybe using a more up-to date version?) to use only managed code, avoiding user32.dll calls. Neither of which I am capable of.

 

[by the way, isn't it illegal to use GPL code (ObjectListView) with closed source code (some parts of CDburnerXP as the website states)?]

 

Link to comment
Share on other sites

  • 2 weeks later...

 

 

[by the way, isn't it illegal to use GPL code (ObjectListView) with closed source code (some parts of CDburnerXP as the website states)?]

 

Actually not, when I started using this list view I paid for a commercial license, so that should pe perfectly fine.

 

 

 

it has too many calls to user32.dll.

 

Is that still a problem with the current state of WinAPI emulation? I don't believe these function cals should be much of a problem. I'm not going to replace the list view just for Unix usage though.

Link to comment
Share on other sites

  • 4 months later...
  • 1 month later...

Hi all, This Thread is already reanimated so i will use it now too:

my problem is, that whenever i try to build from the sourcecode i get 3 errors, with the following texts:
 

Error 1 Unable to create a manifest resource name for "..\CDBurnerXP\trunk\CsLib\CDBurnerXP\Controls\AdvancedListBox.resx". Could not find a part of the path 'C:\Program Files\CDBurnerXP\trunk\CsLib\CDBurnerXP\Controls\AdvancedListBox.cs'. Ketarin
 
Error 2 Unable to create a manifest resource name for "..\CDBurnerXP\trunk\CsLib\CDBurnerXP\Controls\ListBoxPanel.resx". Could not find a part of the path 'C:\Program Files\CDBurnerXP\trunk\CsLib\CDBurnerXP\Controls\ListBoxPanel.cs'. Ketarin
 
Error 3 Unable to create a manifest resource name for "..\CDBurnerXP\trunk\CsLib\CDBurnerXP\Forms\ProgressDialog.resx". Could not find a part of the path 'C:\Program Files\CDBurnerXP\trunk\CsLib\CDBurnerXP\Forms\ProgressDialog.cs'. Ketarin
 
I am unable to find any of the specified paths, do any of you know how to handle this and make it functional, so i can dabbel a bit with the code itself?
Link to comment
Share on other sites

i Couldn't load the source linked on the CDBurenerXP site until i told my system it should use .NET 4.5 instead of .NET 2.0, because i could not find a .NET 2.0 quickly. and when it loaded, the same errors occured.

EDIT: Even after installing .net 2.0 the errors are the same.

Link to comment
Share on other sites

  • 2 weeks later...

I found the problem, it is needed to Re-Implement the CDBurnerXP Files in the directory. Somehow they are not active in the Build available in the Download Link, i Suspect there is a good reason for that.

 

Thanks for any advice here, even the very old and very legitimate advice i couldn't understand because of my inferior knowledge.

 

Sincerely,

Gordon

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.