#74 windres 64 bits ?

3.x
open
nobody
None
5
2014-11-24
2011-02-21
Bertrand Florat
No

I get this error message when using launch4j ant script from my Debian Lenny 64bits :

"net.sf.launch4j.BuilderException: net.sf.launch4j.ExecException: java.io.IOException: Cannot run program "/data/build_tools/launch4j/bin/windres": java.io.IOException: error=2, No such file or directory"

Seems like windres 32 bits binary is not executable from a 54 bits Linux or is it me ? Do you know where to find windres 64 bits or at least sources ? (I can't find it so far on lenny repos)

Discussion

  • I found a workaround : install the 32 bits compatibility libraries :

    # sudo apt-get install ia32-libs

    I can now create exe files from my 64 bits Linux CI server.

    (could be good to add this in the launch4j FAQ, don't you think ?)

    Anyway, IMHO, it would be even better to bring a 64 bits ld and windres binaries along with launch4j distribution.

     
  • For the report, our previous workaround works fine but broke our rpm to deb conversion using alien because alien now add fake dependencies to libc6-i386 : "Depends: libc6 (>= 2.7-1), libc6-i386 (>= 2.7-1)".

    We have now to extract the .deb and remove the "Depends:" line from the control file. We use a modified script from [1] using a sed instead of the interactive 'vi'.

    HIH

    ******************
    #!/bin/bash

    # This script drop the fake dependencies to libc6-i386 created by alien when converting the rpm to deb

    if [[ -z "$1" ]]; then
    echo "Syntax: $0 debfile"
    exit 1
    fi

    DEBFILE="$1"
    TMPDIR=`mktemp -d /tmp/deb.XXXXXXXXXX` || exit 1
    OUTPUT=`basename "$DEBFILE" .deb`.modfied.deb

    if [[ -e "$OUTPUT" ]]; then
    echo "$OUTPUT exists."
    rm -f "$OUTPUT"
    fi

    dpkg-deb -x "$DEBFILE" "$TMPDIR"
    dpkg-deb --control "$DEBFILE" "$TMPDIR"/DEBIAN

    if [[ ! -e "$TMPDIR"/DEBIAN/control ]]; then
    echo DEBIAN/control not found.
    rm -r "$TMPDIR"
    exit 1
    fi

    CONTROL="$TMPDIR"/DEBIAN/control

    #Drop the entire Depends line
    sed -i "/^Depends/d" $CONTROL

    echo Building new deb...
    dpkg -b "$TMPDIR" "$OUTPUT"

    rm -r "$TMPDIR"

    #Override the previous .deb, no pitty
    rm "$DEBFILE"
    mv "$OUTPUT" "$DEBFILE"
    **********************

    [1] http://ubuntuforums.org/showthread.php?t=636724

     
  • Grzegorz Kowal
    Grzegorz Kowal
    2013-08-16

    • status: open --> closed
     
  • Grzegorz Kowal
    Grzegorz Kowal
    2013-08-16

    Hello, this is not a bug. Changing to feature request.

     
    Last edit: Grzegorz Kowal 2013-08-16
  • Grzegorz Kowal
    Grzegorz Kowal
    2013-08-16

    • status: closed --> open
     
  • Grzegorz Kowal
    Grzegorz Kowal
    2013-08-16

    Ticket moved from /p/launch4j/bugs/85/

     
  • I still have the same issue when reinstalling launch4j 3.5 on a new Debian 7 server. Actually, it's even worse as I didn't install ia-libs32 which required adding the i686 architecture and may jeopardize the server stability.

    My new workaround under Debian 7 is :
    Backup the provided bin/ld and bin/windres. They can't work on a 64 bits system as stated before (No such file or directory)
    Install gcc and binutils-mingw-w64-x86-64 packages
    * Link to the 32 bits ld and windres provided by mingw :
    $ cd launch4j/bin
    $ ln -s /usr/bin/x86_64-w64-mingw32-ld ./ld
    $ ln -s /usr/bin/x86_64-w64-mingw32-windres ./windres

    It may a good idea to provide these new 64 binaries or at least add this in a FAQ (if not already done). Thanks.