Skip to content

Commit

Permalink
Merge branch 'devel' of https://github.com/neutrinolabs/xrdp
Browse files Browse the repository at this point in the history
Conflicts:
	xorgxrdp
  • Loading branch information
speidy committed Dec 22, 2016
2 parents f422461 + 38253f1 commit 93c55e5
Show file tree
Hide file tree
Showing 295 changed files with 15,500 additions and 9,182 deletions.
24 changes: 14 additions & 10 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,19 +1,23 @@
*~
*.a
aclocal.m4
AUTHORS
autom4te.cache/
ChangeLog
compile
config_ac.h
config_ac-h.in
config.c
config.guess
config.log
config.status
config.sub
configure
depcomp
.deps/
genkeymap/xrdp-genkeymap
install-sh
instfiles/pam.d/xrdp-sesman
keygen/xrdp-keygen
*.la
.libs
libtool
Expand All @@ -22,17 +26,17 @@ ltmain.sh
Makefile
Makefile.in
missing
mkinstalldirs
NEWS
*.o
README
sesman/chansrv/xrdp-chansrv
sesman/sessvc/xrdp-sessvc
sesman/tools/xrdp-dis
sesman/tools/xrdp-sesadmin
sesman/tools/xrdp-sesrun
sesman/tools/xrdp-sestest
sesman/tools/xrdp-xcon
sesman/xrdp-sesman
stamp-h1
xrdp-chansrv
xrdp-genkeymap
xrdp-keygen
xrdp-sesadmin
xrdp-sesman
xrdp-sesrun
xrdp-sessvc
xrdp-sestest
xrdp-dis
xrdp/xrdp
10 changes: 6 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
[submodule "librfxcodec"]
path = librfxcodec
url = git://github.com/neutrinolabs/librfxcodec
[submodule "xorgxrdp"]
path = xorgxrdp
url = git://github.com/neutrinolabs/xorgxrdp
url = https://github.com/neutrinolabs/librfxcodec.git

[submodule "libpainter"]
path = libpainter
url = https://github.com/neutrinolabs/libpainter.git
branch = devel
40 changes: 40 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
sudo: false # use new container
language: c

branches:
except: /^(gh-pages|v[0-9]\..*)/

compiler:
- clang
- gcc
- g++

addons:
apt:
packages:
# xrdp
- libpam0g-dev
- libjpeg-dev
- libfuse-dev
- libmp3lame-dev
- libx11-dev
- libxrandr-dev
- libpixman-1-dev
- nasm
# x11rdp
#- flex
#- bison
#- libxml2-dev
#- intltool
#- xsltproc
#- xutils-dev
#- python-libxml2
#- g++
#- xutils

script:
# disable librfxcodec as no remotefx for v0.9.1 release
#- (cd librfxcodec && ./bootstrap && ./configure && make)
- (./bootstrap && ./configure --enable-ipv6 --enable-jpeg --enable-fuse --enable-mp3lame --enable-pixman && make && make distcheck)
# disable x11rdp build as it takes long time and it is to be deprecated
#- (cd xorg/X11R7.6 && ./buildx.sh default)
Binary file removed Coding_Style.odt
Binary file not shown.
40 changes: 39 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
@@ -1,4 +1,27 @@
EXTRA_DIST = bootstrap COPYING design.txt faq-compile.txt faq-general.txt file-loc.txt install.txt prog_std.txt readme.txt
ACLOCAL_AMFLAGS = -I m4
AM_DISTCHECK_CONFIGURE_FLAGS = --without-systemdsystemunitdir

EXTRA_DIST = \
COPYING \
README.md \
NEWS.md \
astyle_config.as \
bootstrap \
coding_style.md \
description-pak \
design.txt \
faq-compile.txt \
faq-general.txt \
file-loc.txt \
fontdump \
install.txt \
m4 \
postinstall-pak \
readme.txt \
tcutils \
tests \
vrplayer \
xorg

if XRDP_NEUTRINORDP
NEUTRINORDPDIR = neutrinordp
Expand All @@ -12,6 +35,18 @@ else
XRDPVRDIR =
endif

if XRDP_PAINTER
PAINTERDIR = libpainter
else
PAINTERDIR =
endif

if XRDP_RFXCODEC
RFXCODECDIR = librfxcodec
else
RFXCODECDIR =
endif

SUBDIRS = \
common \
vnc \
Expand All @@ -20,11 +55,14 @@ SUBDIRS = \
mc \
$(NEUTRINORDPDIR) \
libxrdp \
$(PAINTERDIR) \
$(RFXCODECDIR) \
xrdp \
sesman \
keygen \
docs \
instfiles \
genkeymap \
xrdpapi \
pkgconfig \
$(XRDPVRDIR)
25 changes: 25 additions & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# Release notes for xrdp v0.9.1 (2016/12/21)
## New features
* New xorgxrdp backend using existing Xorg with additional modules
* Improvements to X11rdp backend
* Support for IPv6 (disabled by default)
* Initial support for RemoteFX Codec (disabled by default)
* Support for TLS security layer (preferred over RDP layer if supported by the client)
* Support for disabling deprecated SSLv3 protocol and for selecting custom cipher suites in xrdp.ini
* Support for bidirectional fastpath (enabled in both directions by default)
* Support clients that don't support drawing orders, such as MS RDP client for Android, ChromeRDP (disabled by default)
* More configurable login screen
* Support for new virtual channels:
* rdpdr: device redirection
* rdpsnd: audio output
* cliprdr: clipboard
* xrdpvr: xrdp video redirection channel (can be used along with NeutrinoRDP client)
* Support for disabling virtual channels globally or by session type
* Allow to specify the path for backends (Xorg, X11rdp, Xvnc)
* Added files for systemd support
* Multi-monitor support
* xrdp-chansrv stroes logs in `${XDG_DATA_HOME}/xrdp` now

## Security fixes
* User's password could be recovered from the Xvnc password file
* X11 authentication was not used
126 changes: 126 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
[![Build Status](https://travis-ci.org/neutrinolabs/xrdp.svg?branch=devel)](https://travis-ci.org/neutrinolabs/xrdp)
[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/neutrinolabs/xrdp)
![Apache-License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)

*Current Version:* 0.9.1

# xrdp - an open source RDP server

## Overview

**xrdp** provides a graphical login to remote machines using Microsoft
Remote Desktop Protocol (RDP). xrdp accepts connections from a variety of
RDP clients: FreeRDP, rdesktop, NeutrinoRDP and Microsoft Remote Desktop
Client (for Windows, Mac OS, iOS and Android).

RDP transport is encrypted using TLS by default.

![demo](https://github.com/neutrinolabs/xrdp/raw/gh-pages/xrdp_demo.gif)

## Features

### Remote Desktop Access

* Connect to a Linux desktop using RDP from anywhere (requires
[xorgxrdp](https://github.com/neutrinolabs/xorgxrdp) Xorg module)
* Reconnect to an existing session
* Session resizing
* RDP/VNC proxy (connect to another RDP/VNC server via xrdp)

### Access to Remote Resources
* two-way clipboard transfer (text, bitmap, file)
* audio redirection
* drive redirection (mount local client drives on remote machine)

## Quick Start

Most Linux distributions should distribute the latest release of xrdp in their
repository. You would need xrdp and xorgxrdp packages for the best
experience. It is recommended that xrdp depends on xorgxrdp, so it should
be sufficient to install xrdp. If xorgxrdp is not provided, use Xvnc
server.

### Ubuntu / Debian
```bash
apt-get install xrdp
```

### RedHat / CentOS / Fedora
```bash
yum install xrdp
```

## Environment

**xrdp** primarily targets to GNU/Linux. Tested on x86, x86_64, SPARC and
PowerPC.

xorgxrdp and RemoteFX Codec have special optimization for x86 and x86_64 using
SIMD instructions.

FreeBSD is not a primary target of xrdp. It is working on FreeBSD except
for the drive redirection feature.

Other operating systems such as Mac OS are not supported so far, but we
welcome your contributions.

## Compiling

See also https://github.com/neutrinolabs/xrdp/wiki#building-from-sources

### Prerequisites

To compile xrdp from the packaged sources, you need basic build tools - a
compiler (**gcc** or **clang**) and the **make** program. Additionally,
you would need **openssl-devel**, **pam-devel**, **libX11-devel**,
**libXfixes-devel**, **libXrandr-devel**. More additional software would
be needed depending on your configuration.

To compile xrdp from a checked out git repository, you would additionally
need **autoconf**, **automake**, **libtool** and **pkgconfig**.

### Get the source and build it

If compiling from the packaged source, unpack the tarball and change to the
resulting directory.

If compiling from a checked out repository, please make sure you've got the submodules
cloned too (use `git clone --recursive https://github.com/neutrinolabs/xrdp`)

Then run following commands to compile and install xrdp:
```bash
./bootstrap
./configure
make
sudo make install
```

## Directory Structure

```
xrdp
├── common ------ common code
├── docs -------- documentation
├── fontdump ---- font dump for Windows
├── genkeymap --- keymap generator
├── instfiles --- installable data file
├── keygen ------ xrdp RSA key pair generator
├── libpainter -- painter library
├── librfxcodec - RFX codec library
├── libxrdp ----- core RDP protocol implementation
├── m4 ---------- Autoconf macros
├── mc ---------- media center module
├── neutrinordp - RDP client module for proxying RDP connections using NeutrinoRDP
├── pkgconfig --- pkg-config configuration
├── rdp --------- RDP client module for connecting to another RDP server
├── sesman ------ session manager for xrdp
├── tcutils ----- QT based utility program for thin clients
├── tests ------- tests for the code
├── vnc --------- VNC client module for xrdp
├── vrplayer ---- QT player redirecting video/audio to clients over xrdpvr channel
├── xorg -------- X11rdp, an Xorg backend for xrdp
├── xrdp -------- main server code
├── xrdpapi ----- virtual channel API
├── xrdpvr ------ API for playing media over RDP
└── xup --------- X11rdp and xorgxrdp client module
```
8 changes: 1 addition & 7 deletions bootstrap
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ then
exit 1
fi

which libtool
which libtool || which libtoolize
if ! test $? -eq 0
then
echo "error, install libtool"
Expand All @@ -28,10 +28,4 @@ then
exit 1
fi

touch configure.ac
touch NEWS
touch AUTHORS
touch README
touch ChangeLog
ln -s ../config.c $PWD/sesman/tools/config.c
autoreconf -fvi
Loading

0 comments on commit 93c55e5

Please sign in to comment.