dumbledore / AlbiteREADER

A feature-rich e-book reader for the Java Mobile platform. Currently works with txt, xhtml and epub files. Supported features include touch scrolling, images, styling and multilingual hyphenation, on-touch dictionaries, units converter, table of contents. Uses the Droid Serif font through it's own font implementation scheme.
http://albite.org/reader_j2me
71 stars 21 forks source link

Build difficulties #203

Closed StevanWhite closed 12 years ago

StevanWhite commented 12 years ago

Hi Svetlin!

I'm trying to build the latest Git pull, on Ubuntu Linux.

There are some issues you problably want to deal with.

I got tired of it for now. If you could un-stick me, i would gladly proceed!

Here are my notes:


$ ant jar

fails due to missing directory. In nbproject/private/private.properties netbeans.user=C:\Users\albus.netbeans\6.9 Tried changing this to nbproject/private but then it can't find build.properties.

So I just made an empty one....

/home/swhite/freeware/AlbiteREADER/nbproject/build-impl.xml:56: Classpath to J2ME Ant extension library (libs.j2me_ant_ext.classpath property) is not set. For example: location of mobility/modules/org-netbeans-mobility-antext.jar file in the IDE installation directory.

HM. where do I get that? netbeans comes with my distro. I'll install that -- nope not there.

http://netbeans.org/community/releases/55/1/relnotes-mobility.html

OK it's to be installed only with the official netbeans installer. The jar file is in /opt/netbeans-7.2/mobility/modules/org-netbeans-modules-mobility-antext.jar

OK stuck this in that same build.properties file libs.j2me_ant_ext.classpath="/opt/netbeans-7.2/mobility/modules/" ??? maybe needed to be the jar file. see later

/home/swhite/freeware/AlbiteREADER/nbproject/build-impl.xml:57: Platform home (platform.home property) is not set. Value of this property should be Java(TM) Platform Micro Edition SDK 3.0 emulator home directory location.

platform.home="/opt/netbeans-7.2/mobility/WTK2.5.2/" just guessing

[taskdef] Could not load definitions from resource org/netbeans/mobility/antext/defs.properties. It could not be found.

libs.j2me_ant_ext.classpath="/opt/netbeans-7.2/mobility/modules/org-netbeans-modules-mobility-antext.jar"

I'm kind of stuck here, having lost my sense of humour.

dumbledore commented 12 years ago

Did you install the full Java version of NetBeans? This is the only one that has support for Java Mobile: http://netbeans.org/downloads/index.html

Thanks!

StevanWhite commented 12 years ago

Yes I think so. (that was the second item in my notes.)

Please note my report was a sequence of problems and resolutions that took a couple of hours. Probably I still have a path wrong.

Please look at the last item.

StevanWhite commented 12 years ago

Oh. I see this thing removed my formatting. That explains the confusion.
Should have tried the preview, I guess Let me try again.

These are notes of a succession of attempts to build the project, which seem to be dying due to various path problems.

The first (an explicit path to something on the C: drive) can't be right.

= = = = = = = = = = = = = = = = = = = = = = = = = = = =

/home/swhite/freeware/AlbiteREADER/nbproject/build-impl.xml:56: Classpath to J2ME Ant extension library (libs.j2me_ant_ext.classpath property) is not set. For example: location of mobility/modules/org-netbeans-mobility-antext.jar file in the IDE installation directory.

HM. where do I get that? netbeans comes with my distro. I'll install that -- nope not there.

http://netbeans.org/community/releases/55/1/relnotes-mobility.html

OK it's to be installed only with the official netbeans installer. The jar file is in /opt/netbeans-7.2/mobility/modules/org-netbeans-modules-mobility-antext.jar

OK stuck this in that same build.properties file libs.j2me_ant_ext.classpath="/opt/netbeans-7.2/mobility/modules/" ??? maybe needed to be the jar file. see later

= = = = = = = = = = = = = = = = = = = = = = = = = = = =

/home/swhite/freeware/AlbiteREADER/nbproject/build-impl.xml:57: Platform home (platform.home property) is not set. Value of this property should be Java(TM) Platform Micro Edition SDK 3.0 emulator home directory location.

platform.home="/opt/netbeans-7.2/mobility/WTK2.5.2/" just guessing

= = = = = = = = = = = = = = = = = = = = = = = = = = = = [taskdef] Could not load definitions from resource org/netbeans/mobility/antext/defs.properties. It could not be found.

libs.j2me_ant_ext.classpath="/opt/netbeans-7.2/mobility/modules/org-netbeans-modules-mobility-antext.jar"

I'm kind of stuck here, having lost my sense of humour.

StevanWhite commented 12 years ago

OK I messed up again. That time I cut off the first item, which is about the explicit path to the C: drive (netbeans.user=C:\Users\albus.netbeans\6.9) But this was at the beginning of the original report.

dumbledore commented 12 years ago

Steven, I presume you're on Ubuntu or something? Please, download the ~ 260MB installer from NetBeans and try to open the project from there. Should work.

StevanWhite commented 12 years ago

Hi again, Svetlin.

I see now this will not work in Linux, even if you repair the paths I suggested. Would it be possible for you to just send me a recent build ? I have a Symbian phone and an Android (the Symbian is my favorite!)

Here's the current state

1) There is in fact a bad path in your source files, as I pointed out. You should fix that.

2) Netbeans creates a project that should be buildable just using "ant", provided the libraries are in place, etc.

Good procedure is to give directions on what variables in the build file the developer should alter, to correctly find these libraries.

3) Your docs mention netbeans nowhere. I guessed I needed its libraries by looking in the Ant build files.

It would be helpful to mention (in a "BUILD" doc, or something)

4) Tragically, Oracle has packaged MIDP 3.X SDK's as Windows installers only. Maybe I can pull the files out, but of course any native librarys will fail to work. I'll give it a shot.

I am trying to write them (for the second time, I think) to correct this stupid move.

Thanks!

dumbledore commented 12 years ago

I see your point.

I use NetBeans to do j2me development and never bothered with ant for this purpose. I've tried cloning the repo and opening it up from NetBeans on a Ubuntu machine and it worked for me.

As with any other open-source software some things people have to do on their own, so I'm sorry I cannot be much help with this and that I'm not interested in support for more general building like stand-alone ant. I don't find this a priority, that's all.

StevanWhite commented 12 years ago

Hi,

I got it to build. It took hours. I really hate IDE's sometimes.

When did you try it in Ubuntu? The netbeans in the very latest Ubuntu, as I said, does not even recognize your directory as a netbeans project. Netbeans 7.2 does however. More marks against IDEs generally.

To make a long story short, the things that worked were these:


1) From the NetBeans "Start Page" (From Help menu) My NetBeans -> Install Plugins Available Plugins

installed Plugin Visual Mobile Designer (I think)

That got rid of the "NetBeans MIDP Components" complaint!

2) the other problem about MIDP 3.0, I'm not sure what it's all about. (I spent an awful amount of time unpacking the Windows installer, hoping the contents could be used. Never worked.)

BUT,

I added a "configuration" DefaultColorPhone from WTK2.5.2, (Unfortunately, I didn't write the exact steps down) and selected that configureation in the project, and built against it, and found... there were now just a few compiler errors..

3) These were all in FolderBrowser.java and they all had to do with logging. I just commented them out,

And it built, and it runs on my phone.


As to Ant: I think you're making a mistake. Generally speaking, it's best to run in as many environments as make sense. It jiggles things around, and that's good. Makes your product more robust. Somebody asked me what was the best complier (for language X).
I said, the best compiler is two compilers.

There is a famous fallacy, that amounts to saying it's OK to exclude anybody who belongs to a minority. I expect you learned from your probability classes, there is a set-theoretic difficulty in that manner of thinking.

StevanWhite commented 12 years ago

I see you already closed this issue, although it seems still open to me.

First, let me say that an ant build now works on my system. (Of course, this is how netbeans builds!)

It was just a matter of having

It would still be helpful to document this stuff, for your own future reference if nothing else.

If I could sort out how to do a diff to see what files changed on my system, I would send you that... but I'm having some difficulty with it (a simple git diff shows a lot of recent changes by you... I wonder if I even have the most recent version.)

dumbledore commented 12 years ago

I see you already closed this issue, although it seems still open to me.

Yes, because I won't be able to support you on this here.

First, let me say that an ant build now works on my system. (Of course, this is how netbeans builds!)

Obviously.

It would still be helpful to document this stuff, for your own future reference if nothing else.

I never had problems with it. For me it is just a matter of downloading NetBeans and opening the project. As I said, I'm not interested in the ant script. I'm not interested in the ability to build Albite outside of netbeans. I'm not saying it's a bad thing, it's just not a priority.

a simple git diff shows a lot of recent changes by you... I wonder if I even have the most recent version

It should show the changes you've made that differ from the head. It can't show my changes as it would mean they haven't been committed, which would mean they couldn't have been pushed in the first place.

Sorry if I'm being unhelpful here, really, you're asking about something I don't find as a priority or a problem. It is a problem for you, but again, I never said I was going to support any usage of the sources (especially trivial things as building them).

StevanWhite commented 12 years ago

I think you have misunderstood me from the beginning, Svetlin. With all due respect, let me defend my position.

There are multiple problems here. I see them because they're in front of me.

First, I am not fixated on an Ant build, yet you seem to be dismissing my remarks on those grounds.

I would have been quite happy, if your documentation had said to download the very latest netbeans, and to open the project with it. But I saw no such instructions.

I first tried Ant, because the documentation said nothing different, and i saw a "build.xml" file, which says "Ant".

It would be helpful for your documentation to state that a build should be done with the very latest version of netbeans. (This would constitute "supporting" me, and other developers like me.)

As it happens, it would take little effort to also support direct builds with Ant. The problems of building with Ant are identical to the ones of building with netbeans.

Second, the project refers to libraries (or plugins or whatever) that aren't in the Linux netbeans distribution, at least. (For all I know, they wouldn't be on the Mac either.) In particular, the MIDP 3.0 stuff. Yet evidently, it is possible to build the thing without these.

I provided you with the measures I took. It would be helpful (for me and other developers, and maybe for you in the future) to tidy that up, sort out just what was going on, and document what had to be changed to get the build to happen.

I think it was just a couple of things: finding them might cost several hours, while documenting them would cost minutes.

I am proposing that we work together on this.

Cheers!

dumbledore commented 12 years ago

I appreciate your urge for correctness!

Sorry if I've been a bit disregarding, truth is I'm very busy and I find questions regarding the build trivial and not worth my attention.

You see, I've never been asked about the build process, and I thought it was somewhat self-explanatory for J2ME developers.

What I can propose to do is update the project page with build requirements and perhaps a short video of how I do it? Hope that will be suit you?

P.S. I hope you understand that I don't get any money out of this, so any support is actually costing me money.

Thanks!

StevanWhite commented 12 years ago

Svetlin,

I'm a poor free software developer myself. Trust me, I understand.

Obviously the build process isn't self-explanatory. Only a small fraction of J2EE developers use netbeans. Most use Eclipse, and they are different.

Really a video would be overkill, and would miss the point entirely. A few lines of text in the documentation would be much better. The question is: what exactly needs to be said (this would also be a question for a video, if it's to address the problems I saw.)

The problem is, it is not at all clear to me we've resolved the issues I was having. I was clicking around furiously, making a lot of guesses.
For example, I don't understand

Also, there is the question of that explicit directory in your build files to a file on your local hard disk. That is not right, and should be remedied.

dumbledore commented 12 years ago

Unfortunately, I think the problem should be addressed to NetBeans. I've no idea for any of your questions. As far as I remember I just installed NetBeans 6.* on my Windows 7 PC and it worked.