SHA256
1
0
forked from pool/freerdp

Accepting request 112052 from X11:RemoteDesktop

- added freerdp-fix-bitmap-cache.patch fixing a problem with the
  bitmap cache resulting in garbled images
  (https://github.com/FreeRDP/FreeRDP/issues/348)

- split off -plugins subpackage
- specfile cleanup

- rewrote spec for using cmake.
- update to version 1.0.1
  - FreeRDP 1.x series is a complete rewrite now licensed under
    the Apache License 2.0
  - RemoteFX
    - Both encoder and decoder
    - SSE2 and NEON optimization
  - NSCodec
  - RemoteApp
    - Working, minor glitches
  - Multimedia Redirection
    - ffmpeg support
  - Network Level Authentication (NLA)
    - NTLMv2
  - Certificate validation
  - FIPS-compliant RDP security
  - new build system (cmake)
  - added official logo and icon

OBS-URL: https://build.opensuse.org/request/show/112052
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/freerdp?expand=0&rev=5
This commit is contained in:
Stephan Kulow 2012-04-02 17:48:44 +00:00 committed by Git OBS Bridge
commit 6e8b1b6907
6 changed files with 185 additions and 75 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:389a707b491bd1905c8395ede3df61ac73a55d866f8a56354c6442c23c8730e1
size 936410

3
freerdp-1.0.1.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:144175e46a6bd01eea6f1f4f8fc9f33f802733bb06c1f05b5083d58b11df79e0
size 3502100

View File

@ -0,0 +1,51 @@
diff --git a/libfreerdp-cache/bitmap.c b/libfreerdp-cache/bitmap.c
index 99c1005..e3e2303 100644
--- a/libfreerdp-cache/bitmap.c
+++ b/libfreerdp-cache/bitmap.c
@@ -173,9 +173,10 @@ rdpBitmap* bitmap_cache_get(rdpBitmapCache* bitmap_cache, uint32 id, uint32 inde
}
if (index == BITMAP_CACHE_WAITING_LIST_INDEX)
- index = bitmap_cache->cells[id].number - 1;
-
- if (index > bitmap_cache->cells[id].number)
+ {
+ index = bitmap_cache->cells[id].number;
+ }
+ else if (index > bitmap_cache->cells[id].number)
{
printf("get invalid bitmap index %d in cell id: %d\n", index, id);
return NULL;
@@ -195,9 +196,10 @@ void bitmap_cache_put(rdpBitmapCache* bitmap_cache, uint32 id, uint32 index, rdp
}
if (index == BITMAP_CACHE_WAITING_LIST_INDEX)
- index = bitmap_cache->cells[id].number - 1;
-
- if (index > bitmap_cache->cells[id].number)
+ {
+ index = bitmap_cache->cells[id].number;
+ }
+ else if (index > bitmap_cache->cells[id].number)
{
printf("put invalid bitmap index %d in cell id: %d\n", index, id);
return;
@@ -255,7 +257,8 @@ rdpBitmapCache* bitmap_cache_new(rdpSettings* settings)
for (i = 0; i < (int) bitmap_cache->maxCells; i++)
{
bitmap_cache->cells[i].number = settings->bitmapCacheV2CellInfo[i].numEntries;
- bitmap_cache->cells[i].entries = (rdpBitmap**) xzalloc(sizeof(rdpBitmap*) * bitmap_cache->cells[i].number);
+ /* allocate an extra entry for BITMAP_CACHE_WAITING_LIST_INDEX */
+ bitmap_cache->cells[i].entries = (rdpBitmap**) xzalloc(sizeof(rdpBitmap*) * bitmap_cache->cells[i].number + 1);
}
}
@@ -271,7 +274,7 @@ void bitmap_cache_free(rdpBitmapCache* bitmap_cache)
{
for (i = 0; i < (int) bitmap_cache->maxCells; i++)
{
- for (j = 0; j < (int) bitmap_cache->cells[i].number; j++)
+ for (j = 0; j < (int) bitmap_cache->cells[i].number + 1; j++)
{
bitmap = bitmap_cache->cells[i].entries[j];

View File

@ -1,11 +0,0 @@
--- configure.ac.orig 2010-11-17 14:10:59.000000000 +0100
+++ configure.ac 2010-11-17 14:25:59.000000000 +0100
@@ -1,7 +1,6 @@
AC_INIT(freerdp, m4_esyscmd([build-aux/git-version-gen .tarball-version]),
[freerdp-devel@lists.sourceforge.net])
-AM_INIT_AUTOMAKE([1.11 dist-xz color-tests parallel-tests])
-AM_SILENT_RULES([yes]) # make --enable-silent-rules the default.
+AM_INIT_AUTOMAKE([1.10])
AM_CONFIG_HEADER([config.h])
AC_CONFIG_SRCDIR([libfreerdp/freerdp.c])

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Fri Mar 30 12:23:29 UTC 2012 - zawertun@gmail.com
- added freerdp-fix-bitmap-cache.patch fixing a problem with the
bitmap cache resulting in garbled images
(https://github.com/FreeRDP/FreeRDP/issues/348)
-------------------------------------------------------------------
Wed Mar 28 09:37:04 UTC 2012 - gber@opensuse.org
- split off -plugins subpackage
- specfile cleanup
-------------------------------------------------------------------
Tue Mar 6 19:55:41 UTC 2012 - gankov@opensuse.org
- rewrote spec for using cmake.
- update to version 1.0.1
- FreeRDP 1.x series is a complete rewrite now licensed under
the Apache License 2.0
- RemoteFX
- Both encoder and decoder
- SSE2 and NEON optimization
- NSCodec
- RemoteApp
- Working, minor glitches
- Multimedia Redirection
- ffmpeg support
- Network Level Authentication (NLA)
- NTLMv2
- Certificate validation
- FIPS-compliant RDP security
- new build system (cmake)
- added official logo and icon
-------------------------------------------------------------------
Fri Dec 2 13:02:52 UTC 2011 - gber@opensuse.org

View File

@ -1,7 +1,7 @@
#
# spec file for package freerdp
#
# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -16,49 +16,58 @@
#
%define soname 0
%define libname libfreerdp-1_0
Name: freerdp
Version: 0.8.2
Version: 1.0.1
Release: 0
Summary: Remote Desktop Viewer
Url: http://www.freerdp.com/
License: GPL-2.0+
Summary: Remote Desktop Viewer Client
License: Apache-2.0
Group: Productivity/Networking/Other
Source0: http://sourceforge.net/projects/freerdp/files/0.8/freerdp-%{version}.tar.gz
# PATCH-FIX-OPENSUSE freerdp-remove_am_silent_rules.patch pascal.bleser@opensuse.org -- Remove the AM_SILENT_RULES tag, useless and is undefined on older dists when running autoreconf
Patch0: freerdp-remove_am_silent_rules.patch
BuildRequires: automake
BuildRequires: libtool
Url: http://www.freerdp.com/
Source0: https://github.com/downloads/FreeRDP/FreeRDP/%{name}-%{version}.tar.gz
# PATCH-FIX-UPSTREAM freerdp-fix-bitmap-cache.patch zawertun@gmail.com -- Fix a problem with the bitmap cache resulting in garbled images (backported from upstream git)
Patch0: freerdp-fix-bitmap-cache.patch
BuildRequires: cmake
BuildRequires: cups-devel
BuildRequires: ed
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(openssl)
BuildRequires: xmlto
BuildRequires: xorg-x11-devel
BuildRequires: zlib-devel
BuildRequires: pkgconfig(alsa)
BuildRequires: pkgconfig(libpcsclite)
BuildRequires: pkgconfig(libpulse)
BuildRequires: pkgconfig(openssl)
Recommends: libfreerdp-plugins
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: libfreerdp%{soname} = %{version}
%description
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
following the Microsoft Open Specifications.
following the Microsoft Open Specifications. This package provides the client
application.
%package -n libfreerdp%{soname}
%package -n %{libname}
Summary: Remote Desktop Viewer Library
Group: System/Libraries
Provides: libfreerdpchanman%{soname} = %{version}-%{release}
Provides: libfreerdpgdi%{soname} = %{version}-%{release}
Provides: libfreerdpkbd%{soname} = %{version}-%{release}
%description -n libfreerdp%{soname}
%description -n %{libname}
FreeRDP is a client-side implementation of the Remote Desktop Protocol (RDP)
following the Microsoft Open Specifications.
following the Microsoft Open Specifications. This package provides the shared
library.
This package provides the shared library as well as its plugins.
%package -n %{libname}-plugins
Summary: Plugins for %{libname}
Group: System/Libraries
Provides: libfreerdp-plugins = %{version}
Requires: %{libname} = %{version}
%description -n %{libname}-plugins
This package provides plugins for %{libname}.
%package devel
Summary: Development Files for %{name}
Group: Development/Libraries/C and C++
Requires: libfreerdp%{soname} = %{version}
Requires: %{libname} = %{version}
%description devel
This package contains development files necessary for developing applications
@ -66,67 +75,93 @@ based on libfreerdp.
%prep
%setup -q
%patch0
%patch0 -p1
# use a versioned subdirectory for plugins in order to comply with the shared
# library policy
ed -s configure.ac 2>/dev/null <<'EOF'
,s/PLUGIN_PATH='\${libdir}\/freerdp'/PLUGIN_PATH='\${libdir}\/freerdp%{soname}'/
ed -s CMakeLists.txt 2>/dev/null <<'EOF'
,s/FREERDP_PLUGIN_PATH "\${CMAKE_INSTALL_PREFIX}\/\${CMAKE_INSTALL_LIBDIR}\/freerdp"/FREERDP_PLUGIN_PATH "\${CMAKE_INSTALL_PREFIX}\/\${CMAKE_INSTALL_LIBDIR}\/%{libname}"/
w
EOF
%build
autoreconf -fi
%configure \
--disable-static \
--with-ipv6 \
--enable-smartcard \
--with-sound=alsa \
--with-crypto=openssl
make %{?_smp_mflags} V=1
mkdir build
cd build
export CFLAGS="%{optflags}"
cmake \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
-DCMAKE_INSTALL_LIBDIR=%{_lib} \
-DCMAKE_BUILD_TYPE=Release \
-DWITH_ALSA=ON \
-DWITH_PULSEAUDIO=ON \
-DWITH_PCSC=ON \
-DWITH_CUPS=ON \
-DWITH_FFMPEG=OFF \
-DWITH_SSE2=OFF \
..
make %{?_smp_mflags} VERBOSE=1
%install
cd build
%make_install
find "%{buildroot}%{_libdir}" -name '*.la' -exec rm -f {} +
# remove keymaps as we make use of libxkbfile
rm -rf $RPM_BUILD_ROOT/usr/share/freerdp/keymaps/
%post -n libfreerdp%{soname} -p /sbin/ldconfig
%post -n %{libname} -p /sbin/ldconfig
%postun -n libfreerdp%{soname} -p /sbin/ldconfig
%postun -n %{libname} -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc COPYING AUTHORS doc/ipv6.txt doc/ChangeLog
%doc LICENSE README ChangeLog
%{_bindir}/xfreerdp
%{_datadir}/%{name}
%{_mandir}/man1/xfreerdp.1%{ext_man}
%files -n libfreerdp%{soname}
%files -n %{libname}
%defattr(-,root,root)
%doc COPYING
%{_libdir}/libfreerdp.so.%{soname}
%{_libdir}/libfreerdp.so.%{soname}.*
%{_libdir}/libfreerdpchanman.so.%{soname}
%{_libdir}/libfreerdpchanman.so.%{soname}.*
%{_libdir}/libfreerdpgdi.so.%{soname}
%{_libdir}/libfreerdpgdi.so.%{soname}.*
%{_libdir}/libfreerdpkbd.so.%{soname}
%{_libdir}/libfreerdpkbd.so.%{soname}.*
%dir %{_libdir}/freerdp%{soname}
%{_libdir}/freerdp%{soname}/audin.so
%{_libdir}/freerdp%{soname}/cliprdr.so
%{_libdir}/freerdp%{soname}/disk.so
%{_libdir}/freerdp%{soname}/drdynvc.so
%{_libdir}/freerdp%{soname}/parallel.so
%{_libdir}/freerdp%{soname}/pnpdr.so
%{_libdir}/freerdp%{soname}/printer.so
%{_libdir}/freerdp%{soname}/rdpdr.so
%{_libdir}/freerdp%{soname}/rdpsnd.so
%{_libdir}/freerdp%{soname}/serial.so
%doc LICENSE
%{_libdir}/libfreerdp-cache.so.*
%{_libdir}/libfreerdp-channels.so.*
%{_libdir}/libfreerdp-codec.so.*
%{_libdir}/libfreerdp-core.so.*
%{_libdir}/libfreerdp-gdi.so.*
%{_libdir}/libfreerdp-kbd.so.*
%{_libdir}/libfreerdp-rail.so.*
%{_libdir}/libfreerdp-utils.so.*
%files -n %{libname}-plugins
%defattr(-,root,root)
%doc LICENSE
%dir %{_libdir}/%{libname}
%{_libdir}/%{libname}/audin.so
%{_libdir}/%{libname}/audin_alsa.so
%{_libdir}/%{libname}/audin_pulse.so
%{_libdir}/%{libname}/cliprdr.so
%{_libdir}/%{libname}/disk.so
%{_libdir}/%{libname}/drdynvc.so
%{_libdir}/%{libname}/parallel.so
%{_libdir}/%{libname}/printer.so
%{_libdir}/%{libname}/rdpdr.so
%{_libdir}/%{libname}/rdpsnd.so
%{_libdir}/%{libname}/rdpsnd_alsa.so
%{_libdir}/%{libname}/rdpsnd_pulse.so
%{_libdir}/%{libname}/scard.so
%{_libdir}/%{libname}/serial.so
%{_libdir}/%{libname}/rail.so
%{_libdir}/%{libname}/rdpdbg.so
%{_libdir}/%{libname}/tsmf.so
%{_libdir}/%{libname}/tsmf_alsa.so
%{_libdir}/%{libname}/tsmf_pulse.so
%files devel
%defattr(-,root,root)
%{_includedir}/freerdp
%{_libdir}/lib*.so
%dir %{_includedir}/freerdp
%dir %{_includedir}/freerdp/*
%{_includedir}/freerdp/*.h
%{_includedir}/freerdp/*/*.h
%{_libdir}/libfreerdp-*.so
%{_libdir}/pkgconfig/freerdp.pc
%changelog