Porting Photosphere to Windows & Linux

Dear HDRI List,

I hired a programmer friend, Helena Eydelberg-Vileshin, to port Photosphere to wxWidgets under Windows with the intent of offering a cross-platform version. She has nearly completed her arduous task, with just a few bugs to fix and missing features to add. At that point, probably in the next couple of weeks, I will take her code and port it to the other platforms.

I know how to do this on the Mac, although wxWidgets is in flux due to Apple's abandonment of the Carbon library, but I don't know what to do for Linux. I was thinking I could install a "virtual appliance" for one of the available Linux systems under VMWare Fusion:

  http://www.vmware.com/appliances/directory/cat/5793?k=&sort=created

This should permit me to do the development work on my Mac, avoiding the need for another computer or dual-boot system, but I'm open to alternative suggestions. If I did get one of these VA's, which one would be most useful to the community? Would I have to distribute Photosphere in source form with a build system to reach a reasonable number of Linux users? I ask because I still have some hopes of recovering some of my development and documentation costs for Photosphere, which has been in the works for nearly a decade. (For those of you who don't know, I have been distributing the Mac version for free from www.anyhere.com, but since it is also based on Carbon, I can't go any further with it.)

Please vote for your favorite version of Linux, clue me in to how I could create one binary that would run on multiple Linux systems, and share your wxWidgets experience if you have any.

Best,
-Greg

Hi Greg.

I don't have much experience with Linux in a VM (only using Windows) but I
expect that both provide similar features.

I was thinking I could install a "virtual appliance" for one of the
available Linux systems under VMWare Fusion:

       http://www.vmware.com/appliances/directory/cat/5793?k=&sort=created

From this list I would think that either "Ubuntu 10.10" or "Fedora 14

desktop image" would be a good choice. Ubuntu 11.04 is now out but it ships
with a new default desktop which may be confusing (although it's closer to a
Mac if you like your dock on the left side of the screen). In the end it
shouldn't matter because you will have to satisfy a large variety of
distributions/desktops/versions which are in use today.

This should permit me to do the development work on my Mac, avoiding the
need for another computer or dual-boot system, but I'm open to alternative
suggestions.

I assume you can "export" a directory to the guest OS in a Linux VM as you
can on Windows. This allows you to edit your files on the Mac and only go to
Linux when you have to compile. I have a similar setup with Mac/Windows but
it's mostly because a VM on my laptop is noticeably slow and it's not nice
to work in it. Of course you can also use scp,rsync or a source control
system to sync between two directories.

If I did get one of these VA's, which one would be most useful to the
community?

If you want to provide an easy to install binary packages for your app you
will have to install both VMs because they represent different package
managers (RPM based vs. DEB based). I think there is a tool to convert an
*.rpm to a *.deb package but I'm not sure about that. Bernd can give you all
the information you need on *.deb.

If you expect your users to be fairly familiar with their system you can
also just provide *.tgz archives. Matured Linux users will know what to do
with it.

Would I have to distribute Photosphere in source form with a build system
to reach a reasonable number of Linux users?

These days I expect that most Linux users rely on their package manager to
get software installed. If you want to get included in major distributions
like Debian you will have to provide source code, too. However, I don't
think it's a problem for anyone to download a *.deb or *.rpm file and
double-click to install.

I ask because I still have some hopes of recovering some of my development
and documentation costs for Photosphere, which has been in the works for
nearly a decade. (For those of you who don't know, I have been distributing
the Mac version for free from www.anyhere.com, but since it is also based
on Carbon, I can't go any further with it.)

I am a bit out of touch with Linux libraries these days but I remember that
is used to be hell to get the right version for a particular software.
Further GTK (which is used by wxWindows on Linux) is about to release a new
major version which might mess up the GTK based desktops for a while.

I think if you build static binaries you shouldn't be too bothered by all of
this. But then I don't really understand all the details.

Regards,
Thomas

···

On Thu, May 12, 2011 at 11:29 AM, Gregory J. Ward <[email protected]>wrote:

Hi Greg,

I can build you an Ubuntu 10.10 or newer vm for vmware if you would like.

Just because it is Linux does not mean that you have to distribute in source form. I have never really spent time figuring out how the packaging systems work for building and distributing. There must be some tools for this though.

Best,

-Jack

···

--
# Jack de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

On 5/13/2011 12:53 PM, Thomas Bleicher wrote:

Hi Greg.

I don't have much experience with Linux in a VM (only using Windows) but I expect that both provide similar features.

On Thu, May 12, 2011 at 11:29 AM, Gregory J. Ward > <[email protected] <mailto:[email protected]>> wrote:

    I was thinking I could install a "virtual appliance" for one of
    the available Linux systems under VMWare Fusion:

    http://www.vmware.com/appliances/directory/cat/5793?k=&sort=created <http://www.vmware.com/appliances/directory/cat/5793?k=&sort=created>

From this list I would think that either "Ubuntu 10.10" or "Fedora 14 desktop image" would be a good choice. Ubuntu 11.04 is now out but it ships with a new default desktop which may be confusing (although it's closer to a Mac if you like your dock on the left side of the screen). In the end it shouldn't matter because you will have to satisfy a large variety of distributions/desktops/versions which are in use today.

    This should permit me to do the development work on my Mac,
    avoiding the need for another computer or dual-boot system, but
    I'm open to alternative suggestions.

I assume you can "export" a directory to the guest OS in a Linux VM as you can on Windows. This allows you to edit your files on the Mac and only go to Linux when you have to compile. I have a similar setup with Mac/Windows but it's mostly because a VM on my laptop is noticeably slow and it's not nice to work in it. Of course you can also use scp,rsync or a source control system to sync between two directories.

    If I did get one of these VA's, which one would be most useful to
    the community?

If you want to provide an easy to install binary packages for your app you will have to install both VMs because they represent different package managers (RPM based vs. DEB based). I think there is a tool to convert an *.rpm to a *.deb package but I'm not sure about that. Bernd can give you all the information you need on *.deb.

If you expect your users to be fairly familiar with their system you can also just provide *.tgz archives. Matured Linux users will know what to do with it.

    Would I have to distribute Photosphere in source form with a build
    system to reach a reasonable number of Linux users?

These days I expect that most Linux users rely on their package manager to get software installed. If you want to get included in major distributions like Debian you will have to provide source code, too. However, I don't think it's a problem for anyone to download a *.deb or *.rpm file and double-click to install.

    I ask because I still have some hopes of recovering some of my
    development and documentation costs for Photosphere, which has
    been in the works for nearly a decade. (For those of you who
    don't know, I have been distributing the Mac version for free from
    www.anyhere.com <http://www.anyhere.com>, but since it is also
    based on Carbon, I can't go any further with it.)

I am a bit out of touch with Linux libraries these days but I remember that is used to be hell to get the right version for a particular software. Further GTK (which is used by wxWindows on Linux) is about to release a new major version which might mess up the GTK based desktops for a while.

I think if you build static binaries you shouldn't be too bothered by all of this. But then I don't really understand all the details.

Regards,
Thomas

_______________________________________________
HDRI mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/hdri

Hi guys,
do you plan to support the LTS of Ubuntu I think that would be usefull for
your tool too, 'cause not everybody is using the newest OSes...
I think it shouldn't be a problem unless you use very new libraries

greets

Joao

···

2011/5/14 Jack de Valpine <[email protected]>

Hi Greg,

I can build you an Ubuntu 10.10 or newer vm for vmware if you would like.

Just because it is Linux does not mean that you have to distribute in
source form. I have never really spent time figuring out how the packaging
systems work for building and distributing. There must be some tools for
this though.

Best,

-Jack

--
# Jack de Valpine
# president
#
# visarc incorporated
# http://www.visarc.com
#
# channeling technology for superior design and construction

On 5/13/2011 12:53 PM, Thomas Bleicher wrote:

Hi Greg.

I don't have much experience with Linux in a VM (only using Windows) but
I expect that both provide similar features.

On Thu, May 12, 2011 at 11:29 AM, Gregory J. Ward <[email protected]>wrote:

I was thinking I could install a "virtual appliance" for one of the
available Linux systems under VMWare Fusion:

http://www.vmware.com/appliances/directory/cat/5793?k=&sort=created

From this list I would think that either "Ubuntu 10.10" or "Fedora 14
desktop image" would be a good choice. Ubuntu 11.04 is now out but it ships
with a new default desktop which may be confusing (although it's closer to a
Mac if you like your dock on the left side of the screen). In the end it
shouldn't matter because you will have to satisfy a large variety of
distributions/desktops/versions which are in use today.

This should permit me to do the development work on my Mac, avoiding the
need for another computer or dual-boot system, but I'm open to alternative
suggestions.

I assume you can "export" a directory to the guest OS in a Linux VM as
you can on Windows. This allows you to edit your files on the Mac and only
go to Linux when you have to compile. I have a similar setup with
Mac/Windows but it's mostly because a VM on my laptop is noticeably slow and
it's not nice to work in it. Of course you can also use scp,rsync or a
source control system to sync between two directories.

If I did get one of these VA's, which one would be most useful to the
community?

If you want to provide an easy to install binary packages for your app
you will have to install both VMs because they represent different package
managers (RPM based vs. DEB based). I think there is a tool to convert an
*.rpm to a *.deb package but I'm not sure about that. Bernd can give you all
the information you need on *.deb.

If you expect your users to be fairly familiar with their system you can
also just provide *.tgz archives. Matured Linux users will know what to do
with it.

Would I have to distribute Photosphere in source form with a build system
to reach a reasonable number of Linux users?

These days I expect that most Linux users rely on their package manager
to get software installed. If you want to get included in major
distributions like Debian you will have to provide source code, too.
However, I don't think it's a problem for anyone to download a *.deb or
*.rpm file and double-click to install.

I ask because I still have some hopes of recovering some of my development
and documentation costs for Photosphere, which has been in the works for
nearly a decade. (For those of you who don't know, I have been distributing
the Mac version for free from www.anyhere.com, but since it is also based
on Carbon, I can't go any further with it.)

I am a bit out of touch with Linux libraries these days but I remember
that is used to be hell to get the right version for a particular software.
Further GTK (which is used by wxWindows on Linux) is about to release a new
major version which might mess up the GTK based desktops for a while.

I think if you build static binaries you shouldn't be too bothered by all
of this. But then I don't really understand all the details.

Regards,
Thomas

_______________________________________________
HDRI mailing list
[email protected]://www.radiance-online.org/mailman/listinfo/hdri

_______________________________________________
HDRI mailing list
[email protected]
http://www.radiance-online.org/mailman/listinfo/hdri

--
-------------------------------

Thanks Jack, Thomas:

I'm likely to delay the porting of Photosphere to Linux after I get the Mac version working in wxWidgets. Especially given my lack of Linux experience, and that I'm doing this on the side of my two paid positions, I don't want to get overwhelmed into sloppiness.

Lars also had a good (off-list) suggestion to distribute the GUI code in source form and the rest as linked libraries, which could probably be made to work across all Linux installations more easily. That may be the way to go; I'm not sure. The easiest for me of course would be to find someone else to do the work who knows what they're doing, but I've already enlisted and imposed upon two of my friends to help me out. I've compensated them somewhat for their time from my own pocket, but I'm hoping to capitalize on their efforts and get a little revenue stream going in addition. We'll see...

-Greg

···

From: Jack de Valpine <[email protected]>
Date: May 13, 2011 10:11:52 AM PDT

Hi Greg,

I can build you an Ubuntu 10.10 or newer vm for vmware if you would like.

Just because it is Linux does not mean that you have to distribute in source form. I have never really spent time figuring out how the packaging systems work for building and distributing. There must be some tools for this though.

Best,

-Jack
--
On 5/13/2011 12:53 PM, Thomas Bleicher wrote:

Hi Greg.

I don't have much experience with Linux in a VM (only using Windows) but I expect that both provide similar features.
...

Hi Greg and all!

Great news that Photosphere can make a jump into Linux!

Lars' suggestion is great, but there are also some possibilities
to make a cross-distro binary package:
http://listaller.nlinux.org/ or https://launchpad.net/listaller
http://zero-install.sourceforge.net/

Otherwise we can try it the Blender way:
decide on a target amount of money you want to reach to free the source code
and wait for enough people to pay and exceed the target, then free the code ...
I think it's an interesting business model ... and the HDRI community is rather large ...

Other than this, I'm happy to help in my spare time, I've done a bit of wxwidgets
programming and packaging for linux and windoze.

Ciao ciao,

Francesco

Hi Francesco,

Thanks for the links and your helpful offer. Much as I like open source in general, in order for the model to work it needs either (a) the original programmer to remain closely involved, or (b) a generic enough utility that a group of talented programmers will take it over. Radiance definitely falls into the (a) category, and I suspect Photosphere is similar. I probably will free the code at some point, but if I target compensation for the time and money I've sunk into it, we'll never get there. No, I fully expect my eventual decision to be an arbitrary one.

Meanwhile, if you help me port it to Linux, I'll be happy to funnel a good chunk of the proceeds your way. Support requirements mandate that in any case.

Cheers,
-Greg

···

From: Francesco Anselmo <[email protected]>
Date: May 13, 2011 4:10:22 PM PDT

Hi Greg and all!

Great news that Photosphere can make a jump into Linux!

Lars' suggestion is great, but there are also some possibilities
to make a cross-distro binary package:
http://listaller.nlinux.org/ or https://launchpad.net/listaller
http://zero-install.sourceforge.net/

Otherwise we can try it the Blender way:
decide on a target amount of money you want to reach to free the source code
and wait for enough people to pay and exceed the target, then free the code ...
I think it's an interesting business model ... and the HDRI community is rather large ...

Other than this, I'm happy to help in my spare time, I've done a bit of wxwidgets
programming and packaging for linux and windoze.

Ciao ciao,

Francesco

Sure, I understand your point.

Super happy to help!

Francesco

···

On 14 May 2011, at 00:36, Gregory J. Ward wrote:

Hi Francesco,

Thanks for the links and your helpful offer. Much as I like open source in general, in order for the model to work it needs either (a) the original programmer to remain closely involved, or (b) a generic enough utility that a group of talented programmers will take it over. Radiance definitely falls into the (a) category, and I suspect Photosphere is similar. I probably will free the code at some point, but if I target compensation for the time and money I've sunk into it, we'll never get there. No, I fully expect my eventual decision to be an arbitrary one.

Meanwhile, if you help me port it to Linux, I'll be happy to funnel a good chunk of the proceeds your way. Support requirements mandate that in any case.

Cheers,
-Greg

Wonderful. I'll let you know once I get going with the Mac port-back and have things organized enough to pass along.

Cheers,
-Greg

···

From: Francesco Anselmo <[email protected]>
Date: May 15, 2011 12:43:54 AM PDT

Sure, I understand your point.

Super happy to help!

Francesco

On 14 May 2011, at 00:36, Gregory J. Ward wrote:

Hi Francesco,

Thanks for the links and your helpful offer. Much as I like open source in general, in order for the model to work it needs either (a) the original programmer to remain closely involved, or (b) a generic enough utility that a group of talented programmers will take it over. Radiance definitely falls into the (a) category, and I suspect Photosphere is similar. I probably will free the code at some point, but if I target compensation for the time and money I've sunk into it, we'll never get there. No, I fully expect my eventual decision to be an arbitrary one.

Meanwhile, if you help me port it to Linux, I'll be happy to funnel a good chunk of the proceeds your way. Support requirements mandate that in any case.

Cheers,
-Greg