Bug 182307 - x11-wm/icewm doesn't run on current
Summary: x11-wm/icewm doesn't run on current
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Only Me
Assignee: Eitan Adler
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-23 00:00 UTC by wolfgang
Modified: 2013-11-04 01:10 UTC (History)
0 users

See Also:


Attachments
icewm.patch (839 bytes, patch)
2013-10-27 00:45 UTC, wolfgang
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description wolfgang 2013-09-23 00:00:00 UTC
icewm does refuse to run with error message:
IceWM: iconv doesn't supply (sufficient) Unicode to UTF-8 converters.

Apparently icewm does not find some function in the new bsd iconv.

Used libs are:
$ ldd /usr/local/bin/icewm
/usr/local/bin/icewm:
        libgdk_pixbuf_xlib-2.0.so.0 => /usr/local/lib/libgdk_pixbuf_xlib-2.0.so.0 (0x28122000)
        libgmodule-2.0.so.0 => /usr/local/lib/libgmodule-2.0.so.0 (0x28130000)
        libgdk_pixbuf-2.0.so.0 => /usr/local/lib/libgdk_pixbuf-2.0.so.0 (0x28133000)
        libgobject-2.0.so.0 => /usr/local/lib/libgobject-2.0.so.0 (0x28150000)
        libglib-2.0.so.0 => /usr/local/lib/libglib-2.0.so.0 (0x28194000)
        libintl.so.9 => /usr/local/lib/libintl.so.9 (0x28288000)
        libXinerama.so.1 => /usr/local/lib/libXinerama.so.1 (0x28291000)
        libSM.so.6 => /usr/local/lib/libSM.so.6 (0x28294000)
        libICE.so.6 => /usr/local/lib/libICE.so.6 (0x2829b000)
        libX11.so.6 => /usr/local/lib/libX11.so.6 (0x282b1000)
        libXrandr.so.2 => /usr/local/lib/libXrandr.so.2 (0x283c8000)
        libXrender.so.1 => /usr/local/lib/libXrender.so.1 (0x283d0000)
        libXext.so.6 => /usr/local/lib/libXext.so.6 (0x283d8000)
        libXft.so.2 => /usr/local/lib/libXft.so.2 (0x283e7000)
        libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x283fa000)
        libfontconfig.so.1 => /usr/local/lib/libfontconfig.so.1 (0x2847d000)
        libc++.so.1 => /usr/lib/libc++.so.1 (0x284bd000)
        libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x28567000)
        libm.so.5 => /lib/libm.so.5 (0x2857e000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x285a0000)
        libthr.so.3 => /lib/libthr.so.3 (0x285ab000)
        libc.so.7 => /lib/libc.so.7 (0x285cd000)
        libgio-2.0.so.0 => /usr/local/lib/libgio-2.0.so.0 (0x28724000)
        libz.so.6 => /lib/libz.so.6 (0x2886a000)
        libpng15.so.15 => /usr/local/lib/libpng15.so.15 (0x2887e000)
        libxcb.so.2 => /usr/local/lib/libxcb.so.2 (0x288aa000)
        libXau.so.6 => /usr/local/lib/libXau.so.6 (0x288c4000)
        libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x288c7000)
        libpthread-stubs.so.0 => /usr/local/lib/libpthread-stubs.so.0 (0x288cc000)
        librpcsvc.so.5 => /usr/lib/librpcsvc.so.5 (0x288ce000)
        libffi.so.6 => /usr/local/lib/libffi.so.6 (0x288d7000)
        libpcre.so.3 => /usr/local/lib/libpcre.so.3 (0x288dd000)
        libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x28944000)
        libbz2.so.4 => /usr/lib/libbz2.so.4 (0x28967000)
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2013-09-30 00:21:37 UTC
Responsible Changed
From-To: freebsd-ports-bugs->eadler

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Eitan Adler freebsd_committer freebsd_triage 2013-10-05 05:53:27 UTC
On Sun, Sep 29, 2013 at 7:21 PM,  <edwin@freebsd.org> wrote:
> Synopsis: x11-wm/icewm doesn't run on current
>
> Responsible-Changed-From-To: freebsd-ports-bugs->eadler
> Responsible-Changed-By: edwin
> Responsible-Changed-When: Sun Sep 29 23:21:37 UTC 2013
> Responsible-Changed-Why:
> Over to maintainer (via the GNATS Auto Assign Tool)
>
> http://www.freebsd.org/cgi/query-pr.cgi?pr=182307

I think this is a bug in upstream iconv and not in the port, but I
will investigate.



-- 
Eitan Adler
Source, Ports, Doc committer
Bugmeister, Ports Security teams
Comment 3 wolfgang 2013-10-08 22:56:03 UTC
* FreeBSD-gnats-submit@FreeBSD.org <FreeBSD-gnats-submit@FreeBSD.org> [130923 01:00]:
> http://www.freebsd.org/cgi/query-pr.cgi?pr=182307

The error message comes from line 102 in ylocale.cc

The problem appears to be an incompatibility between the old libiconv
implementation and the new iconv in libc. icewm checks for existence
of valid conversions between the locale charset and some predefined
Unicode charsets. During that test it creates somewhat nonsensical
calls like
  iconv_t cd = iconv_open("UTF-8", "UCS-4//TRANSLIT");
which work on the libiconv implementation but fail on the libc version.

Looks to me like a bug in icewm, because appending "//TRANSLIT" to
the character encoding string is only defined for the first parameter
of iconv_open().
Comment 4 Eitan Adler freebsd_committer freebsd_triage 2013-10-14 04:56:02 UTC
On Tue, Oct 8, 2013 at 5:56 PM, Wolfgang Zenker
<wolfgang@lyxys.ka.sub.org> wrote:
> * FreeBSD-gnats-submit@FreeBSD.org <FreeBSD-gnats-submit@FreeBSD.org> [130923 01:00]:
>> http://www.freebsd.org/cgi/query-pr.cgi?pr=182307
...

I will try and look into this, but I don't have much time lately.
IMHO its best if this is fixed upstream.


-- 
Eitan Adler
Comment 5 wolfgang 2013-10-27 00:45:17 UTC
Hi,

* Eitan Adler <lists@eitanadler.com> [131014 05:56]:
> On Tue, Oct 8, 2013 at 5:56 PM, Wolfgang Zenker
> <wolfgang@lyxys.ka.sub.org> wrote:
> > * FreeBSD-gnats-submit@FreeBSD.org <FreeBSD-gnats-submit@FreeBSD.org> [130923 01:00]:
> >> http://www.freebsd.org/cgi/query-pr.cgi?pr=182307
> ...

> I will try and look into this, but I don't have much time lately.
> IMHO its best if this is fixed upstream.

I'll try to find out how to submit a bug report upstream, but I have
little hope ...
In the meantime, I use an ugly hack to remove the failing calls
(patch attached) so I can start icewm now.

Wolfgang
Comment 6 dfilter service freebsd_committer freebsd_triage 2013-11-04 01:01:26 UTC
Author: eadler
Date: Mon Nov  4 01:01:18 2013
New Revision: 332658
URL: http://svnweb.freebsd.org/changeset/ports/332658

Log:
  Fix icewm's buggy use of iconv which causes it to fail on 10.x.
  
  PR:		ports/182307
  Submitted by:	Wolfgang Zenker <wolfgang@lyxys.ka.sub.org> (incl. patch and testing)
  PR:		ports/183626
  Submitted by:	Pavlo Greenberg <dog@virtual.org.ua>

Modified:
  head/x11-wm/icewm/files/patch-src_ylocale.cc

Modified: head/x11-wm/icewm/files/patch-src_ylocale.cc
==============================================================================
--- head/x11-wm/icewm/files/patch-src_ylocale.cc	Mon Nov  4 00:14:08 2013	(r332657)
+++ head/x11-wm/icewm/files/patch-src_ylocale.cc	Mon Nov  4 01:01:18 2013	(r332658)
@@ -1,6 +1,20 @@
---- src/ylocale.cc.orig	Mon Aug  7 03:38:14 2006
-+++ src/ylocale.cc	Tue Aug  8 01:00:33 2006
-@@ -149,7 +149,8 @@
+--- src/ylocale.cc.orig	2013-11-03 19:58:39.180727369 -0500
++++ src/ylocale.cc	2013-11-03 19:58:51.540725980 -0500
+@@ -126,8 +126,12 @@ YLocale::~YLocale() {
+ iconv_t YLocale::getConverter (const char *from, const char **&to) {
+     iconv_t cd = (iconv_t) -1;
+ 
++    char *myfrom = (char *)malloc(1 + strlen(from));
++    strcpy(myfrom, from);
++    char *modptr = strstr(myfrom, "//");
++    if (NULL != modptr) *modptr = '\0';
+     while (NULL != *to)
+-        if ((iconv_t) -1 != (cd = iconv_open(*to, from))) return cd;
++        if ((iconv_t) -1 != (cd = iconv_open(*to, myfrom))) return cd;
+         else ++to;
+ 
+     return (iconv_t) -1;
+@@ -149,7 +153,8 @@ YUChar *YLocale::unicodeString(const YLC
          return NULL;
  
      YUChar * uStr(new YUChar[lLen + 1]);
_______________________________________________
svn-ports-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-ports-all
To unsubscribe, send any mail to "svn-ports-all-unsubscribe@freebsd.org"
Comment 7 Eitan Adler freebsd_committer freebsd_triage 2013-11-04 01:03:45 UTC
State Changed
From-To: open->closed

Thanks for the patch and sorry for the delay.  Hopefully this fixes it.