|Summary:||x11-servers/x11rdp: fix build with clang 3.8.0|
|Product:||Ports & Packages||Reporter:||Dimitry Andric <dim>|
|Component:||Individual Port(s)||Assignee:||Raphael Kubo da Costa <rakuco>|
|Severity:||Affects Some People||CC:||meta, mi, rakuco|
|Bug Depends on:|
Description Dimitry Andric 2016-02-14 21:24:18 UTC
Created attachment 166995 [details] Fix ambiguous reference to in6addr_any During a recent exp-run for bug 206074, it was found that x11-servers/x11rdp gives errors with clang 3.8.0 : /wrkdirs/usr/ports/x11-servers/x11rdp/work/x11rdp_xorg71/build_dir/include/X11/Xtrans/Xtranssock.c:1027:50: error: reference to 'in6addr_any' is ambiguous ((struct sockaddr_in6 *)&sockname)->sin6_addr = in6addr_any; ^ This is because Xtranssock.c attempts to redefine in6addr_any as a weak symbol, which does not work with clang 3.8.0. As a fix, I just placed the customized in6addr_any definition between #ifdef __FreeBSD__ guards.  http://package22.nyi.freebsd.org/data/headamd64PR206074-default/2016-02-14_06h53m40s/logs/errors/x11rdp-0.5.0.299_1.log
Comment 1 Mikhail Teterin 2016-02-19 04:02:11 UTC
I would propose, that x11/x11rdp be simple _removed_ in favor of net/xrdp, which appears to be the new name of the project. For example, the port's WWW link is to http://www.xrdp.org/ , which identifies xrdp-v0.6.1 as the latest version.
Comment 2 Koichiro Iwao 2016-02-19 04:27:41 UTC
No, you're misunderstanding. Did you see the port? net/xrdp has runtime dependeny on x11-servers/x11rdp. xrdp and x11rdp are different things. xrdp is a server of RDP protocol. x11rdp is a X server designed to cooperate with xrdp. They work together. Like Xvnc, x11rdp is fundamentally a X server. It is true x11rdp was formerly named Xrdp (capitalize is important). Once Xrdp as a X server and xrdp (all small letters) as a RDP server existed at the same time and they work together. It was very confusing. Thus Xrdp as X server was renamed to x11rdp. Just a historical story.
Comment 3 Koichiro Iwao 2016-02-19 05:11:18 UTC
Created attachment 167166 [details] net/xrdp and x11-servers/x11rdp Please see also xrdp architecture overview. https://github.com/neutrinolabs/xrdp/wiki/XRDP-Architecture-Overview.
Comment 4 Mikhail Teterin 2016-02-19 05:25:47 UTC
(In reply to Koichiro IWAO from comment #2) > xrdp is a server of RDP protocol. x11rdp is a X server > designed to cooperate with xrdp. Ok, why, then, does x11rdp conflict with xrdp-devel? Also, why does the source for x11rdp have to come from your own server -- and include various other bits of Xorg-tree in it?
Comment 5 Koichiro Iwao 2016-02-19 06:28:51 UTC
(In reply to Mikhail Teterin from comment #4) > does x11rdp conflict with xrdp-devel? No, but they're incompatible. Current version of x11-servers/x11rdp is only compatible with xrdp v0.6.x. I'm testing x11rdp-devel which compatible with xrdp-devel in my github repo. https://github.com/metalefty/freebsd-ports/tree/develop/x11-servers However, I'm not going to bring this in ports collection because xrdp project is trying to replace x11rdp with xorgxrdp driver. https://github.com/neutrinolabs/xrdp/wiki/Compiling-rdp-driver I'm also testing xorgxrdp driver in my repo. https://github.com/metalefty/freebsd-ports/tree/develop/x11-drivers/xorg-driver-xrdp With xorgxrdp driver model, xrdp doesn't have to have own Xorg tree. Just load xrdp drivers to existing Xorg installation. I'm contributing to xrdp project to improve FreeBSD compatibility. In near future, things will be simple. When net/xrdp is updated to 0.8.x or higher, x11-servers/x11rdp can be removed. x11-servers/xorg-server with xorgxrdp driver will be used instead of x11rdp. > why does the source for x11rdp have to come from your own server Because it is svn snapshot. svn://server1.xrdp.org/srv/svn/repos/main/x11rdp_xorg71 We can get non-svn-snapshot version is distributed here. Of course this is older than svn snapshot. http://server1.xrdp.org/xrdp/x11rdp_xorg71.tar.gz And one more, repository was migrated to GitHub however x11rdp source wasn't migrated to GitHub meaning x11rdp source compatible with xrdp v0.6.x isn't available on GitHub. AFAIK, ports cannot fetch the source from svn server. Am I correct? If possible, It is not necessary to distribute the source by my own. If distributing source by my own is not recommended, I'm welcome to replace the source from xrdp.org. It means downgrade.
Comment 6 Koichiro Iwao 2016-02-23 00:50:00 UTC
Anyway, simply commit the patch. Don't remove this port. Is there any problems?
Comment 7 commit-hook 2016-03-03 17:17:58 UTC
A commit references this bug: Author: rakuco Date: Thu Mar 3 17:17:53 UTC 2016 New revision: 410064 URL: https://svnweb.freebsd.org/changeset/ports/410064 Log: Fix build with clang 3.8.0. During a recent exp-run for bug 206074, it was found that x11-servers/x11rdp gives errors with clang 3.8.0: /wrkdirs/usr/ports/x11-servers/x11rdp/work/x11rdp_xorg71/build_dir/include/X11/Xtrans/Xtranssock.c:1027:50: error: reference to 'in6addr_any' is ambiguous ((struct sockaddr_in6 *)&sockname)->sin6_addr = in6addr_any; ^ This is because Xtranssock.c attempts to redefine in6addr_any as a weak symbol, which does not work with clang 3.8.0. As a fix, place the customized in6addr_any definition between #ifdef __FreeBSD__ guards. PR: 207192 Submitted by: dim Reviewed by: Koichiro IWAO <firstname.lastname@example.org> (maintainer) Changes: head/x11-servers/x11rdp/files/patch-xtrans-X11R7.0-1.0.0__Xtranssock.c