PDA

View Full Version : Any plans for a 64 bit native version? What about other unix flavors?


chrestomanci
13-Jan-2008, 04:32 AM
Are there any plans for a 64bit native version of Beyond Compare 3?

I run an AMD 64 bit version of Ubuntu Linux. I suspect that a lot of linux users who have 64 bit hardware run a 64 bit version of the OS, because almost all applications are available in 64 bit versions. I have got the 32 bit Linux build working via a 32 bit chroot environment, but it does not play nice with Subversion because meta chars in pathnames are not properly handled by the chroot scripts.

Anyway, all that pain and flakiness would disappear if there was a native 64bit build. I
dare say there are some windows 64 bit users out there that would also benifit.

While we are considering other platforms, I am confident that a Solaris 10 version would go down well with fellow sysadmins where I work, so If you have got the source code to be portable and compile on non windows systems, the next step to a wider range of platforms should be much easier.

Craig
13-Jan-2008, 08:59 AM
Doesn't Linux just run 32-bit apps normally, with the linker deciding whether to load 32-bit or 64-bit libraries like Windows x64 does?

Past that, no, we don't have any immediate plans to do a 64-bit native Linux compile. Doing so would require switching compilers (from Kylix to FreePascal) and replacing the widget set we're using. Because of limitations in our current compiler/libraries we'll probably end up doing both eventually, but we'd like to get a stable useable 32-bit release out first.

chrestomanci
14-Jan-2008, 04:17 AM
Doesn't Linux just run 32-bit apps normally, with the linker deciding whether to load 32-bit or 64-bit libraries like Windows x64 does?
Unfortunately the dynamic linker is not that smart, and it will attempt use native 64 bit libraries with a 32 bit application. There are plans for a smarter run time dynamic linker that would support 32 and 64 bit versions of the same dynamic libraries side by side, but that is a big project, and probably 18 months out.

In the meantime, the work around is to setup a chroot environment, containing a 32bit linux install, with a complete set of 32 bit libraries and 32 bit only applications. The problem I have found is that is that when you invoke 32 bit applications in the chroot environment, and 'special' characters in the command line arguments cause problems.

DEinspanjer
19-Feb-2008, 10:03 PM
Bleh. I just made exactly the decision mentioned here, I've got a laptop with a Core 2 Duo processor so I felt there was no reason not to install the 64bit Ubuntu 7.10 since Linux treats the 64bit world so much better. I didn't remember this thread about Cirrus not easily working in this environment until I went to install it.

I guess I'll have to learn exactly how to do the chrooted 32bit environment mentioned. It isn't something I'm familiar with so it might be a bit painful.

wstanton
21-Feb-2008, 06:21 AM
While I would like to see a native 64bit version, I have been successful running Cirrus under the 64bit native installation of Ubuntu 7.10. All I had to do was install the ia32-libs and ia32-libs-kde packages.

With these packages load I was not required to run a chroot jail for it.

chrestomanci
22-Feb-2008, 01:10 PM
I guess I'll have to learn exactly how to do the chrooted 32bit environment mentioned. It isn't something I'm familiar with so it might be a bit painful.
Instructions are here:

http://ubuntuforums.org/showthread.php?t=24575

It is not to hard to follow, but the scripts used tend to barf over any special chars in the filename such as spaces, brackets quotes etc, so for this reason you can't integrate a chrooted BC into a linux subversion client.

z00m1n
19-Aug-2008, 09:02 PM
I have to say while I am using BC2 on a daily basis and it is probably one of my most valuable tools, I haven't looked at version 3 yet.

I just started a new job for a Linux company and after a couple of hours in the office, I notice how bitterly I miss BC. It is fantastic to see there is a Linux version, but all my machines run 64bit Linux, so until I can download a native 64bit version, there doesn't seem to be too much real-world benefit in it for me (as in something I would pay and upgrade for).

(Is there a Mac version planned ? I would start saving for a Mac then...)

The chrooted approach reminds me a bit of the S-FTP discussion in v2 with the 3rd party / FTP/SFTP bridge on localhost - it does work, but it would be sooo much better if it was done natively.

Didn't you guys just switch your tools to support Linux instead of Windows only ?

Craig
20-Aug-2008, 07:10 AM
The chrooted approach reminds me a bit of the S-FTP discussion in v2 with the 3rd party / FTP/SFTP bridge on localhost - it does work, but it would be sooo much better if it was done natively.

Any poor integration is as much the fault of Linux as it is ours. I can comfortably run both 32-bit and 64-bit Windows applications without one being better than the other. I still don't understand why Linux can't handle things just as well.

Didn't you guys just switch your tools to support Linux instead of Windows only ?

The compiler and libraries we're using for the Linux port only support 32-bit. We're researching alternatives but it's going to be a while before anything viable comes of that. Windows and Delphi are still our primary development platform and any cross-platform strategy has to work with that. We aren't switching languages just to increase our user base by 10%.

Chris
20-Aug-2008, 04:10 PM
I just got Beyond Compare 3.0.2 for Linux to run on 64-bit Kubuntu 8.04.1. It is pretty painful to setup.

Here are the steps:
1. Install 32-bit compatibility library.
Using the graphical package manager, install the package "ia32-libs". You can also install from a terminal using the command "sudo apt-get install ia32-libs".

2. Install 32-bit version of QT3.
(On older versions of Kubuntu/Ubuntu, you may be able to install the
package "ia32-libs-kde", this package isn't available for Kubuntu 8.04.1 AMD64)

Download the 32-bit .deb package for QT3 from http://packages.ubuntu.com/hardy/i386/libqt3-mt/download.

Extract the contents of the .deb package.
dpkg-deb --extract libqt3-mt_3.3.8-b-0ubuntu3_i386.deb libqt3-mt

Copy the QT3 libraries to Kubuntu's folder for 32-bit libraries.
sudo cp -R libqt3-mt/usr/lib/* /usr/lib32

3. Install Beyond Compare 3 for Linux deb package.
sudo dpkg -i --force-architecture BCompareLinux_080814.deb

4. Run Beyond Compare by typing "bcompare" in a terminal.

NovL
24-Nov-2008, 06:12 PM
Followed steps as posted and this worked.

Here are the steps:

1. Install 32-bit compatibility library ('compat-32bit')
2. Install 32-bit version of QT3 ('qt3')

Had already installed BC3 and got library errors, then installed above packages.

BC started up with no further issues.

Would good if Scooter guys could put this type of info with the product install or make these packages dependencies in the RPM. Windows is still light years ahead in terms of installation process.

iva2k
13-Dec-2008, 12:00 AM
Install BC3 from non-deb (.tar.gz from http://www.scootersoftware.com/download.php) - unpack and run sudo ./install
Then install some needed 32-bit stuff:
sudo apt-get install ia32-libs lib32asound2 libasound2-plugins
Here's a nifty helper script that gets other 32-bit libraries:
cd ~; wget -N boundlesssupremacy.com/Cappy/getlibs/getlibs-all.deb
sudo dpkg -i getlibs-all.deb
sudo getlibs -p libqt3-mt

now run bcompare

That's It!

lsces
21-Jan-2009, 09:37 AM
Well I installed BC3 and ran it from konsole which told me what libraries were missing. That was before I found this thread ;)
I found libqt3 - i586 in the package manager and added that, at which point BC3 starts without a problem. Not sure about the compat-32lib, I've not loaded anything 32 bit, and can't see it on the list, so I presume that libqt3 had everything needed.
I've had a quick scout around and LOVE the fact that OpenOffice documents display in text. It's a few years since I installed BC2 and rely on it heavily, but have never been back for the OO filter on the windows set-up. It's installed now and updated to BC3 on the windows machine!

John Ross
26-Apr-2009, 03:42 PM
I've run bcompare in 64-bit Ubuntu 8.04 for a long time but recently upgraded (fresh install) to 64-bit 9.04. Before I blindly follow Chris K's instructions above and install in 9.04 I wanted to check with the experts to see if there was anything that needed to be changed for the new OS. Any input appreciated! Thanks!

JR

oxygene
13-Jul-2009, 01:33 PM
Hi,
just got it running under Ubuntu 9.04 (x86_64) without the need of any chroot environments. It was already mentioned how to do this in a posting in this thread, but for an older Ubuntu version.


Install the 32bit libs:
sudo aptitude install ia32-libs

Download the .tar.gz version of BeyondCompare3 and extract the archive. Then run
sudo ./install.sh
This will install the software in /usr/local/.

There should be only one missing lib (libqt3-mt) when you try to run bcompare from the console now.

Download the 32 bit version of the libqt3-mt package (get it here (http://packages.ubuntu.com/jaunty/i386/libqt3-mt/download)) and extract it into a temp folder by typing
dpkg-deb --extract libqt3-mt_3.3.8-b-5ubuntu1_i386.deb libqt3-mt
You might need to adapt this line to the actual file name in case the version has changed.

Now copy over the relevant files to the /usr/lib32 folder:
sudo cp libqt-mt/usr/lib/libqt-mt.so.3* /usr/lib32/

Now try to run bcompare from the console again. It should work now!

jkmccarthy
17-Jul-2009, 08:12 PM
I recently installed the latest Linux BC3 rpm on 64-bit Intel Itanium architecture (ia64) Linux, using the IA32 Execution Layer (ia32el) 32-bit emulation package (see http://www.intel.com/cd/software/products/asmo-na/eng/219298.htm). After installing the rpm, I had to make the following modifications in order to run BC3 successfully:

# mv /usr/bin/bcompare /emul/ia32-linux/usr/bin/.

# cd /emul/ia32-linux/usr/bin

# vi bcompare
... to change the definition of BC_LIB to ...
BC_LIB=/emul/ia32-linux/usr/lib/beyondcompare
:wq

# cd /usr/lib/beyondcompare
# ln -s /emul/ia32-linux/usr/lib/beyondcompare/nautilus_compare.sh
# ln -s /emul/ia32-linux/usr/lib/beyondcompare/nautilus_compare_to_selected.sh
# ln -s /emul/ia32-linux/usr/lib/beyondcompare/nautilus_select_for_compare.sh

# cd /usr/bin
# ln -s /emul/ia32-linux/usr/bin/bcompare

... and that's it !

-- Jim

P.S. My distribution is "Scientific Linux v4.6" which, similar to CentOS, is built from RHEL source RPMs, so the above should work on all Red Hat -based ia64 Linux distributions (RHEL, CentOS, Scientific Linux, Fedora, etc.)

ClintAtComputer
27-Jul-2009, 12:40 PM
Not to pile on, but as a 64-bit Ubuntu user I'm hard pressed to think of any developer tools that don't run on 64-bit distros these days. I've heard great things about Beyond Compare, but realistically I'm not likely to even try it unless there is an installation procedure that works out of the box.

Aaron
28-Jul-2009, 10:10 AM
Hello,

Native 64bit support is something we are working on. It is not a simple matter of recompiling since we use QT and Delphi.

As discussed in this post earlier in this thread:
http://www.scootersoftware.com/vbulletin/showpost.php?p=14746&postcount=9

Ubuntu used to include the 32bit compatibility package in their install. They removed it in more recent versions, requiring their users to manually download, extract and install it if they wish to run any legacy applications.

casaben
25-Aug-2009, 04:03 PM
Works on Ubuntu 9.04 64bit.
- Used tar, ran install with prefix=/usr/local/
- installed libqt3-mt from synaptic package manager (was already installed btw)
- wget http://ubuntu.mirrors.tds.net/ubuntu/pool/main/q/qt-x11-free/libqt3-mt_3.3.6-1ubuntu3_i386.deb
- sudo dpkg -x libqt3-mt_3.3.6-1ubuntu3_i386.deb .
- sudo cp ./usr/lib/libqt* /usr/lib32/
(last 3 from post on Ubuntu forums : http://ubuntuforums.org/showpost.php?p=1167982&postcount=62)
- deleted windows because BC was the only reason to keep it installed, really :-)

ubuntuguy
06-Sep-2009, 04:38 AM
Since I'm running the 64 bit version of Ubuntu and I couldn't install the debian package, I thought I'd give the windows version a try under wine.

It works wonderfully. It would be nice to have it native though.

Aaron
08-Sep-2009, 01:14 PM
ubuntuguy,

Did you have trouble following Casaben's steps?

If you install the compatibility libraries first, are you then able to install the deb? Or the tar?

grantroot
04-Nov-2009, 11:29 PM
Works on Ubuntu 9.04 64bit.
- Used tar, ran install with prefix=/usr/local/
- installed libqt3-mt from synaptic package manager (was already installed btw)
- wget http://ubuntu.mirrors.tds.net/ubuntu/pool/main/q/qt-x11-free/libqt3-mt_3.3.6-1ubuntu3_i386.deb
- sudo dpkg -x libqt3-mt_3.3.6-1ubuntu3_i386.deb .
- sudo cp ./usr/lib/libqt* /usr/lib32/
(last 3 from post on Ubuntu forums : http://ubuntuforums.org/showpost.php?p=1167982&postcount=62)
- deleted windows because BC was the only reason to keep it installed, really :-)

These are excellent instructions, thanks! The only thing I'd add is to make sure the version of libqt3-mt you download in step 3 matches the one installed in step 2 (or previously). That eliminated some error messages for me.

SvOlli
07-Nov-2009, 04:04 PM
I could offer a modified .deb-package for 64bit that already contains the libqt3-mt.so library and the correct dependencies to the lib32-package, if I'll get the o.k. from a "Team Scooter"-member here.

KayakJim
10-Nov-2009, 12:30 PM
I could offer a modified .deb-package for 64bit that already contains the libqt3-mt.so library and the correct dependencies to the lib32-package, if I'll get the o.k. from a "Team Scooter"-member here.

That would be awesome!

dr_barnowl
10-Nov-2009, 01:31 PM
Would it be possible to put it up in a Launchpad PPA? (I'm not from Team Scooter, just to be clear).

Craig
10-Nov-2009, 01:47 PM
Guys, we're shareware, you're supposed to pass it around. ;)

To make it more official, here's what the license agreement says:
Distribution of the Software
Provided that you do not copy or distribute the License Key, and you include a copy of this License Agreement, you may (a) make copies of the Software; (b) give exact, unmodified copies of the Software to anyone; and (c) distribute the Software in its unmodified form via electronic means. You are specifically prohibited from charging any fees for any such copies or distributions.

To be clear, "the Software" that has to be an "exact, unmodified copy" is the Beyond Compare executable, not the installer. You're welcome to repackage it however you want. If it will help I'm happy to send anyone the RPM/DEB spec files.

dr_barnowl
10-Nov-2009, 02:49 PM
I think the most elegant would be a package ..

lib32qt3-mt

In the vein of all the existing lib32* packages in the Ubuntu distribution.. this isn't the only instance of an app needing it (I saw a post for Opera although it was dated 2007).

AFAIK the only thing you are getting from the 64-bit libqt3-mt is the config files and Qt3 documentation. I manually installed the qt3 library to /usr/lib32 as this seems to be more consistent.

It works for me without the 64-bit Qt3 library (as you'd expect). This was the only addition I needed to get it working. It looks much prettier once you've copied the default config files to /etc as well :D


# Install BC3 from tar archive.
<blah blah blah>
# Download i3886 package of libqt3-mt and extract
sudo wget http://de.archive.ubuntu.com/ubuntu/pool/main/q/qt-x11-free/libqt3-mt_3.3.8-b-5ubuntu3_i386.deb
dpkg -x libqt3-mt_3.3.8-b-5ubuntu3_i386.deb libqt

# Copy configuration
sudo cp -a libqt/etc/qt3 /etc/ # This may trash your qt3 config if already there

# Install to /usr/lib32
sudo cp -a -t /usr/lib32 libqt/usr/lib/*


I don't think the Launchpad terms allow distributing closed-source software from a PPA but I'm sure an extra .deb package with the library and a 64-bit arch one that depends on it wouldn't be too much hassle for people to install (relatively) manually - it's just another download-and-click.

dr_barnowl
11-Nov-2009, 03:12 AM
Hmm. Seems a mite more complex ; bcompare still works but on my other machine I got complaints about image format plugins being incompatible (because it was trying to load the 64-bit ones. I installed the equivalent 32-bit plugins the same way (in /usr/lib32) and reconfigured /etc/qt3/qt_plugins_3.3rc to point there (I swapped "plastik" as a style for "polymer", which doesn't depend on KDE3) .

It doesn't seem to have made any visual difference, but the moaning about libqmng.so stopped.

Humph. I suspect I will have to learn a lot more about Linux library loading to get to the bottom of this rabbit hole... happily things seem to work well enough with pretty stylings :)

dr_barnowl
31-Dec-2009, 03:01 PM
Tried installing this again using the "casaben" method on a fresh machine running Ubuntu Karmic (9.10) .. I don't know what the missing bits are but when I run from a console I get a lot of

"couldn't open fontconfigs chosen font with Xft!!!"

And lots of square boxes instead of text..

It works fine on my desktop (also Karmic) ; obviously, I'm missing something.

I'm away for the New Year.. I'll try and remember to diff the installed package lists when I get home.

Owdy
02-Jan-2010, 03:44 PM
In openSUSE 11.2 solution is simple:

sudo zypper in qt3-32bit


Done.

Chris
28-Apr-2010, 01:03 PM
We've just released Beyond Compare 3 for Linux version 3.1.11, now with packages for 64-bit Linux.

BC3 for Linux is still a 32-bit application, but the new rpm and deb packages will automatically install 32-bit compatibility libraries for 64-bit systems.

If you're running 64-bit Debian or Ubuntu, you can download the new AMD64 package from our web site. If you're running 64-bit Redhat or another RPM based distro, you can download the RPM package and it will automatically install 32-bit compatibility libraries if they are needed.

The download page is: http://www.scootersoftware.com/download.php

jkmccarthy
31-Jul-2010, 10:30 PM
On Itanium Linux systems with the IA32 Execution Layer (http://www.intel.com/design/itanium/downloads/254318.htm) (ia32el) 32-bit emulation package installed (see my post from 18-Jul-2009 (http://www.scootersoftware.com/vbulletin/showpost.php?p=20005&postcount=15) earlier in this thread), 32-bit applications are installed to an alternate location: instead of /usr/bin and /usr/lib, the RPM installer puts files from *.i386.rpm's into /emul/ia32-linux/usr/bin and /emul/ia32-linux/usr/lib for example. Hence when installing either bcompare-3.1.11 or bcompare-3.2.0 under ia64 Linux, I now encounter the following errors:

cp: cannot stat `/usr/lib/beyondcompare/scootersoftware.repo': No such file or directory
chmod: cannot access `/etc/yum.repos.d/scootersoftware.repo': No such file or directory
error: /usr/lib/beyondcompare/RPM-GPG-KEY-scootersoftware: import read failed(-1).
error: %post(bcompare-3.2.0-12469.i386) scriptlet failed, exit status 1

... apparently because these newer install scripts are looking in /usr/lib for files that (on ia64 with the ia32el package installed) end up instead in /emul/ia32-linux/usr/lib.

With help from Google, I found on www.rpm.org the following hint here (http://www.rpm.org/api/4.4.2.2/config_macros.html)

# A default autorelocation path prefixed to file paths of packages
# that have an incompatible arch. This is used on ia64 to prefix
# /emul/ia32 to i386 file paths, and nowhere else (yet).
#
# XXX Note: escaped %% for use in headerSprintf()
%_autorelocate_path %{nil}

...which may give the BeyondCompare development team a place to start on how to to make the RPM "scriplet" cognizant of the /emul/ia32-linux file path prefix when necessary (on ia64 Linux installations).

Is this something that can be fixed in future Linux RPM install files ?

-- Jim

Aaron
02-Aug-2010, 10:09 AM
Thanks, jkmccarthy. I've created a tracker entry for a developer to look into this when they can.

BC_User
22-Aug-2010, 12:30 PM
We've just released Beyond Compare 3 for Linux version 3.1.11, now with packages for 64-bit Linux.

If you're running 64-bit Redhat or another RPM based distro, you can download the RPM package and it will automatically install 32-bit compatibility libraries if they are needed.


I've just updated an old RH 5.4 64-bit to RH 5.5 and based on your notes returned to trying to get BC3 working. Previously, I gave up because I could not get the shared library issues resolved.

Today, installing 3.1.11, everything seems to go well, except it would still not find the libqt-mt.so.3 library.

When I ran the 3.1.11 install, I had already installed the qt-3.3.6-23.el5.x86_64 package.

Only after I installed package qt-3.3.6-23.el5.i386 did BC run okay.

Should your library dependance be able to resolve that qt-3.3.6-23.el5.i386 still needs to be installed when qt-3.3.6-23.el5.x86_64 already installed.

Thanks.

David
24-Aug-2010, 08:43 AM
We have included our own 32 bit version of libqt-mt.so.3 in the 3.1.11 (and later) distribution of BC . BC is still a 32 bit app and so will still need 32 bit libraries (qt-3.3.6-23.el5.x86_64 would not work). However, since we include our own 32 bit version you should not need to install qt-3.3.6-23.el5.i386.

I believe your are the same user that was seeing the old version number displayed in spite of installing 3.1.11? In my response to that issue I mentioned that it is possible that the old version is still around and runs instead of the new version. If you still have install libqt-mt.3.so then I am definite that this is the case. You need to find the old version and remove it - it is sitting someplace in your path that is searched before the new version is found. Try /usr/local/bin and /usr/local/lib/beyondcompare.