Hi Felix,

I have just applied your patch, it's on the git repository now. If you wish
to contribute more patches in the future though it would be appreciated if
you could use the regular github workflow (you create a github fork, you
make your changes there, and then you create a pull request for us to
review and merge easily).

You are likely the first person to cross-compile wfreerdp, I'd be cool if
you add the compilation instructions to our wiki:
https://github.com/FreeRDP/FreeRDP/wiki/Compilation

As for the current state of wfreerdp, it is correct. It is functional, but
only a minimal set of functionality is maintained. A lot of stuff hasn't
been tested, especially virtual channel extensions, and a lot of them would
need to be ported. There is less work in developing a Windows port since
RDP is traditionally "Windows to Windows", but we just don't have dedicated
people working on it. The real focus is getting FreeRDP on non-Windows
systems, where mstsc.exe is not available.

I maintain a basic amount of functionality in wfreerdp such that if someone
wants to dedicate more of their time to it in the future, there will be a
good starting point. I've seen a couple of patches for wfreerdp recently,
but we still do not have people really dedicated to making wfreerdp awesome
or as good as xfreerdp. Two weeks ago I talked with people from the ReactOS
project, apparently they didn't know we had a Windows port and they wanted
to see if they could have that usable on ReactOS. That's a valid use of
wfreerdp, since mstsc is not present on ReactOS. Otherwise, I was thinking
that the main use for wfreerdp would be to have something customizable,
unlike mstsc. Other ideas I had if wfreerdp were to be as polished as
xfreerdp would be to run it through wine: a lot of the work in xfreerdp is
to bridge the "Windows world" with X11, but wine does a lot of the same in
the end.

If you're interested in using wfreerdp, please know that it's not really
considered good for production since only a minimal feature set is
maintained. If you'd like to help extend this set of features currently
supported in wfreerdp, please go ahead, I've been waiting for more help
with it :)

Cheers,
- Marc-Andre

On Sun, Jan 29, 2012 at 5:17 AM, Felix Wolfheimer <
f.wolfhei...@googlemail.com> wrote:

> I tried to cross-compile wfreerdp on my Linux box with a recent
> Mingw-w64 release (Mingw-w64 2.0, gcc 4.7) and found some minor issues
> which I think can be fixed for the next release of FreeRDP as they are
> mostly related to the case sensitive behavior on Linux when include
> files are specified.
> With this patch Freerdp-1.0.0 builds correctly (although with some
> compiler warnings) and the resulting wfreerdp.exe at least shows the
> login screen of one of my terminal servers. I've concluded from the
> discussions on the list and from the bugtracker that wfreerdp at the
> moment is not really considered functional. Is this correct?
>
>
> Index: include/freerdp/types.h
> ==================================================================
> --- include/freerdp/types.h
> +++ include/freerdp/types.h
> @@ -20,11 +20,11 @@
>
>  #ifndef __RDP_TYPES_H
>  #define __RDP_TYPES_H
>
>  #ifdef _WIN32
> -#include <WinDef.h>
> +#include <windef.h>
>  #endif
>
>  /* Base Types */
>
>  #ifdef HAVE_LIMITS_H
> @@ -66,11 +66,12 @@
>  #endif /* HAVE_INTTYPES_H */
>
>  #ifdef HAVE_STDBOOL_H
>
>  #include <stdbool.h>
> -typedef int boolean;
> +typedef unsigned char boolean;
> +
>
>  #else
>
>  #ifndef __cplusplus
>
>
> Index: include/freerdp/window.h
> ==================================================================
> --- include/freerdp/window.h
> +++ include/freerdp/window.h
> @@ -21,11 +21,11 @@
>  #define __UPDATE_WINDOW_H
>
>  #include <freerdp/types.h>
>
>  #ifdef _WIN32
> -#include <Windows.h>
> +#include <windows.h>
>  #endif
>
>  /* Window Order Header Flags */
>  #define WINDOW_ORDER_TYPE_WINDOW                       0x01000000
>  #define WINDOW_ORDER_TYPE_NOTIFY                       0x02000000
>
> Index: libfreerdp-core/listener.c
> ==================================================================
> --- libfreerdp-core/listener.c
> +++ libfreerdp-core/listener.c
> @@ -168,13 +168,20 @@
>        {
>                peer_addr_size = sizeof(peer_addr);
>                peer_sockfd = accept(listener->sockfds[i], (struct sockaddr
> *)&peer_addr, &peer_addr_size);
>                if (peer_sockfd == -1)
>                {
> +#ifdef _WIN32
> +                       int wsa_error = WSAGetLastError();
> +
> +                       /* No data available */
> +                       if (wsa_error == WSAEWOULDBLOCK)
> +                          continue;
> +#else
>                        if (errno == EAGAIN || errno == EWOULDBLOCK)
>                                continue;
> -
> +#endif
>                        perror("accept");
>                        return false;
>                }
>
>                client = freerdp_peer_new(peer_sockfd);
>
> Index: libfreerdp-core/tcp.c
> ==================================================================
> --- libfreerdp-core/tcp.c
> +++ libfreerdp-core/tcp.c
> @@ -218,14 +218,24 @@
>
>        status = send(tcp->sockfd, data, length, MSG_NOSIGNAL);
>
>        if (status < 0)
>        {
> +#ifdef _WIN32
> +               int wsa_error = WSAGetLastError();
> +
> +               /* No data available */
> +               if (wsa_error == WSAEWOULDBLOCK)
> +                       status = 0;
> +                else
> +                        perror("send");
> +#else
>                if (errno == EAGAIN || errno == EWOULDBLOCK)
>                        status = 0;
>                else
>                        perror("send");
> +#endif
>        }
>
>        return status;
>  }
>
>
> Index: libfreerdp-core/tcp.h
> ==================================================================
> --- libfreerdp-core/tcp.h
> +++ libfreerdp-core/tcp.h
> @@ -21,11 +21,11 @@
>  #ifndef __TCP_H
>  #define __TCP_H
>
>  #ifdef _WIN32
>  #include <winsock2.h>
> -#include <Windows.h>
> +#include <windows.h>
>  #include <ws2tcpip.h>
>  #endif
>
>  #include <freerdp/types.h>
>  #include <freerdp/settings.h>
>
> Index: libfreerdp-utils/pcap.c
> ==================================================================
> --- libfreerdp-utils/pcap.c
> +++ libfreerdp-utils/pcap.c
> @@ -24,15 +24,17 @@
>  #include <sys/time.h>
>  #else
>  #include <time.h>
>  #include <sys/timeb.h>
>
> +#if !defined(__MINGW32__) && !defined(__MINGW64__)
>  struct timeval
>  {
>        long tv_sec;
>        long tv_usec;
>  };
> +#endif
>
>  int gettimeofday(struct timeval* tp, void* tz)
>  {
>        struct _timeb timebuffer;
>        _ftime (&timebuffer);
>
> Index: libfreerdp-utils/thread.c
> ==================================================================
> --- libfreerdp-utils/thread.c
> +++ libfreerdp-utils/thread.c
> @@ -21,11 +21,11 @@
>  #include <stdlib.h>
>  #include <string.h>
>  #include <time.h>
>
>  #ifdef _WIN32
> -#include <Windows.h>
> +#include <windows.h>
>  #ifdef _MSC_VER
>  #include <process.h>
>  #endif
>  #endif
>
>
>
>
> ------------------------------------------------------------------------------
> Try before you buy = See our experts in action!
> The most comprehensive online learning library for Microsoft developers
> is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
> Metro Style Apps, more. Free future releases when you subscribe now!
> http://p.sf.net/sfu/learndevnow-dev2
> _______________________________________________
> Freerdp-devel mailing list
> Freerdp-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freerdp-devel
>
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Freerdp-devel mailing list
Freerdp-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freerdp-devel

Reply via email to