]> source.dussan.org Git - tigervnc.git/commitdiff
Update package builds to meet new minimum requirements.
authorBrian P. Hinz <bphinz@users.sf.net>
Sat, 14 Mar 2015 22:06:14 +0000 (18:06 -0400)
committerBrian P. Hinz <bphinz@users.sf.net>
Sun, 15 Mar 2015 03:14:30 +0000 (23:14 -0400)
el5 and el6 need newer versions of gnutls (and it's prereqs) than are available natively.

contrib/packages/deb/ubuntu-precise/debian/control
contrib/packages/deb/ubuntu-trusty/debian/control
contrib/packages/rpm/el5/SOURCES/tigervnc14-static-build-fixes.patch
contrib/packages/rpm/el5/SPECS/tigervnc.spec
contrib/packages/rpm/el6/SPECS/tigervnc.spec

index a172fe5e6960f29154176462b241b21d0de29373..c69dc2a06b0a5f072ad2ffa31c63d4f90bcff49f 100644 (file)
@@ -3,13 +3,13 @@ Section: x11
 Priority: optional
 Maintainer: Brian P. Hinz <bphinz@users.sourceforge.net>
 Standards-Version: 3.8.4
-Build-Depends: debhelper (>> 7.1), zlib1g-dev, libjpeg-turbo8-dev, libxaw7-dev (>> 4.1.0), perl-modules, xfonts-base, xutils-dev, libx11-dev, libxau-dev, libxext-dev, libxi-dev, libxkbfile-dev, libxmu-dev, libxt-dev, x11proto-core-dev, cmake (>> 2.8), libgnutls-dev, libpam0g-dev, libpng-dev, automake, autoconf, libtool, pkg-config, libpixman-1-dev, x11proto-bigreqs-dev, x11proto-composite-dev, x11proto-damage-dev, x11proto-dri2-dev, x11proto-fixes-dev, x11proto-fonts-dev, x11proto-gl-dev, x11proto-input-dev, x11proto-kb-dev, x11proto-randr-dev, x11proto-render-dev, x11proto-resource-dev, x11proto-scrnsaver-dev, x11proto-video-dev, x11proto-xcmisc-dev, x11proto-xext-dev, x11proto-xf86bigfont-dev, x11proto-xf86dga-dev, x11proto-xf86dri-dev, x11proto-xf86misc-dev, x11proto-xf86vidmode-dev, x11proto-xinerama-dev, libosmesa6-dev, libgl1-mesa-dev, libgl1-mesa-dri, libgl1-mesa-glx, libxfont-dev, x11proto-record-dev, default-jdk, libxtst-dev, libxft-dev, libexpat1-dev, libfontconfig1-dev, libxrender-dev, libt1-dev, libpciaccess-dev, curl, bzip2, quilt, libglu1-mesa-dev, libxcursor-dev, libxinerama-dev, libxfixes-dev, libxdamage-dev
+Build-Depends: debhelper (>> 7.1), zlib1g-dev, libjpeg-turbo8-dev, libxaw7-dev (>> 4.1.0), perl-modules, xfonts-base, xutils-dev, libx11-dev, libxau-dev, libxext-dev, libxi-dev, libxkbfile-dev, libxmu-dev, libxt-dev, x11proto-core-dev, cmake (>> 2.8), libgnutls28-dev, libpam0g-dev, libpng-dev, automake, autoconf, libtool, pkg-config, libpixman-1-dev, x11proto-bigreqs-dev, x11proto-composite-dev, x11proto-damage-dev, x11proto-dri2-dev, x11proto-fixes-dev, x11proto-fonts-dev, x11proto-gl-dev, x11proto-input-dev, x11proto-kb-dev, x11proto-randr-dev, x11proto-render-dev, x11proto-resource-dev, x11proto-scrnsaver-dev, x11proto-video-dev, x11proto-xcmisc-dev, x11proto-xext-dev, x11proto-xf86bigfont-dev, x11proto-xf86dga-dev, x11proto-xf86dri-dev, x11proto-xf86misc-dev, x11proto-xf86vidmode-dev, x11proto-xinerama-dev, libosmesa6-dev, libgl1-mesa-dev, libgl1-mesa-dri, libgl1-mesa-glx, libxfont-dev, x11proto-record-dev, default-jdk, libxtst-dev, libxft-dev, libexpat1-dev, libfontconfig1-dev, libxrender-dev, libt1-dev, libpciaccess-dev, curl, bzip2, quilt, libglu1-mesa-dev, libxcursor-dev, libxinerama-dev, libxfixes-dev, libxdamage-dev
 Homepage: http://www.tigervnc.com
 
 Package: tigervncserver
 Architecture: amd64 i386
 Provides: xserver, vnc-server
-Depends: x11-common | xserver-common, x11-utils, xauth, libbz2-1.0, libc6, libfontenc1, libfreetype6, libgcc1, libgcrypt11, libgl1-mesa-dri, libgnutls26, libgpg-error0, libjpeg-turbo8, libp11-kit0, libpam0g, libpixman-1-0, libstdc++6, libtasn1-3, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxfont1, libxtst6, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3
+Depends: x11-common | xserver-common, x11-utils, xauth, libbz2-1.0, libc6, libfontenc1, libfreetype6, libgcc1, libgl1-mesa-dri, libgnutls28, libjpeg-turbo8, libp11-kit0, libpam0g, libpixman-1-0, libstdc++6, libtasn1-3, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxfont1, libxtst6, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3
 Recommends: xfonts-base, x11-xserver-utils
 Suggests: xtigervncviewer, tigervnc-java
 Description: virtual network computing server software
@@ -30,7 +30,7 @@ Description: virtual network computing server software
 Package: xtigervncviewer
 Architecture: amd64 i386
 Provides: vncviewer, vnc-viewer
-Depends: libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgcrypt11, libgnutls26, libgpg-error0, libjpeg-turbo8, libp11-kit0, libpng12-0, libstdc++6, libtasn1-3, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxft2, libxrender1, zlib1g, libglu1-mesa
+Depends: libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgnutls28, libjpeg-turbo8, libp11-kit0, libpng12-0, libstdc++6, libtasn1-3, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxft2, libxrender1, zlib1g, libglu1-mesa
 Recommends: xfonts-base
 Suggests: tigervncserver, ssh
 Description: virtual network computing client software for X
index 169581cc3b071031e88ee9b56449d674047e45b7..038aa1120aa71ff58439bd8e298c049a180c688b 100644 (file)
@@ -9,7 +9,7 @@ Homepage: http://www.tigervnc.com
 Package: tigervncserver
 Architecture: amd64 i386
 Provides: xserver, vnc-server
-Depends: x11-common | xserver-common, x11-utils, xauth, libbz2-1.0, libc6, libfontenc1, libfreetype6, libgcc1, libgcrypt11, libgl1-mesa-dri, libgnutls28, libgpg-error0, libjpeg-turbo8, libp11-kit0, libpam0g, libpixman-1-0, libstdc++6, libtasn1-3-bin, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxfont1, libxtst6, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3
+Depends: x11-common | xserver-common, x11-utils, xauth, libbz2-1.0, libc6, libfontenc1, libfreetype6, libgcc1, libgl1-mesa-dri, libgnutls28, libjpeg-turbo8, libp11-kit0, libpam0g, libpixman-1-0, libstdc++6, libtasn1-3-bin, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxfont1, libxtst6, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3
 Recommends: xfonts-base, x11-xserver-utils
 Suggests: xtigervncviewer, tigervnc-java
 Description: virtual network computing server software
@@ -30,7 +30,7 @@ Description: virtual network computing server software
 Package: xtigervncviewer
 Architecture: amd64 i386
 Provides: vncviewer, vnc-viewer
-Depends: libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgcrypt11, libgnutls28, libgpg-error0, libjpeg-turbo8, libp11-kit0, libpng12-0, libstdc++6, libtasn1-3-bin, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxft2, libxrender1, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3
+Depends: libc6, libexpat1, libfontconfig1, libfreetype6, libgcc1, libgnutls28, libjpeg-turbo8, libp11-kit0, libpng12-0, libstdc++6, libtasn1-3-bin, libx11-6, libxau6, libxcb1, libxdmcp6, libxext6, libxft2, libxrender1, zlib1g, libglu1-mesa, libxcursor1, libxinerama1, libxfixes3
 Recommends: xfonts-base
 Suggests: tigervncserver, ssh
 Description: virtual network computing client software for X
index 7cad24e84836362d93188eaf9139a24dc8b319bb..686f2f7e4824583977a260f98eba97aafa46ab69 100644 (file)
  
  if(APPLE)
    target_link_libraries(vncviewer "-framework Cocoa" "-framework Carbon")
---- a/CMakeLists.txt   2014-12-26 15:16:04.000000000 -0500
-+++ b/CMakeLists.txt   2015-01-01 23:00:40.000000000 -0500
-@@ -203,6 +203,41 @@
-   add_subdirectory(java)
- endif()
-+# Check for GNUTLS library
-+option(ENABLE_GNUTLS "Enable protocol encryption and advanced authentication" ON)
-+if(ENABLE_GNUTLS)
-+  find_package(GnuTLS)
-+  if (GNUTLS_FOUND)
-+    include_directories(${GNUTLS_INCLUDE_DIR})
-+    add_definitions("-DHAVE_GNUTLS")
-+    add_definitions(${GNUTLS_DEFINITIONS})
-+    
-+    # Detect old version of GnuTLS
-+    set(CMAKE_REQUIRED_FLAGS -I${GNUTLS_INCLUDE_DIR})
-+    set(CMAKE_EXTRA_INCLUDE_FILES gnutls/gnutls.h)
-+    set(CMAKE_REQUIRED_LIBRARIES ${GNUTLS_LIBRARIES})
-+    if(WIN32)
-+      set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ws2_32 user32)
-+    endif()
-+    if(ZLIB_FOUND)
-+      # When we build against the static version of GnuTLS, we also use the
-+      # included version of Zlib, but it isn't built yet, so we have to use the
-+      # system's version (if available) to perform this test.
-+      set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES};-lz)
-+    endif()
-+    check_function_exists(gnutls_transport_set_errno HAVE_GNUTLS_SET_ERRNO)
-+    check_function_exists(gnutls_transport_set_global_errno HAVE_GNUTLS_SET_GLOBAL_ERRNO)
-+    check_function_exists(gnutls_x509_crt_print HAVE_GNUTLS_X509_CRT_PRINT)
-+    check_type_size(gnutls_x509_crt_t GNUTLS_X509_CRT_T)
-+    check_type_size(gnutls_datum_t GNUTLS_DATUM_T)
-+    check_type_size(gnutls_pk_algorithm_t GNUTLS_PK_ALGORITHM_T)
-+    check_type_size(gnutls_sign_algorithm_t GNUTLS_SIGN_ALGORITHM_T)
-+    set(CMAKE_REQUIRED_FLAGS)
-+    set(CMAKE_EXTRA_INCLUDE_FILES) 
-+    set(CMAKE_REQUIRED_LIBRARIES)
-+  endif()
-+endif()
-+
- # Check for FLTK
- set(FLTK_SKIP_FLUID TRUE)
- set(FLTK_SKIP_OPENGL TRUE)
-@@ -228,6 +263,8 @@
-   endif()
- endif()
-+include(cmake/StaticBuild.cmake)
-+
- if(FLTK_FOUND)
-   set(CMAKE_REQUIRED_INCLUDES ${FLTK_INCLUDE_DIR})
-   set(CMAKE_REQUIRED_LIBRARIES ${FLTK_LIBRARIES})
-@@ -263,41 +300,6 @@
-   set(CMAKE_REQUIRED_LIBRARIES)
- endif()
--# Check for GNUTLS library
--option(ENABLE_GNUTLS "Enable protocol encryption and advanced authentication" ON)
--if(ENABLE_GNUTLS)
--  find_package(GnuTLS)
--  if (GNUTLS_FOUND)
--    include_directories(${GNUTLS_INCLUDE_DIR})
--    add_definitions("-DHAVE_GNUTLS")
--    add_definitions(${GNUTLS_DEFINITIONS})
--    
--    # Detect old version of GnuTLS
--    set(CMAKE_REQUIRED_FLAGS -I${GNUTLS_INCLUDE_DIR})
--    set(CMAKE_EXTRA_INCLUDE_FILES gnutls/gnutls.h)
--    set(CMAKE_REQUIRED_LIBRARIES ${GNUTLS_LIBRARIES})
--    if(WIN32)
--      set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ws2_32 user32)
--    endif()
--    if(ZLIB_FOUND)
--      # When we build against the static version of GnuTLS, we also use the
--      # included version of Zlib, but it isn't built yet, so we have to use the
--      # system's version (if available) to perform this test.
--      set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES};-lz)
--    endif()
--    check_function_exists(gnutls_transport_set_errno HAVE_GNUTLS_SET_ERRNO)
--    check_function_exists(gnutls_transport_set_global_errno HAVE_GNUTLS_SET_GLOBAL_ERRNO)
--    check_function_exists(gnutls_x509_crt_print HAVE_GNUTLS_X509_CRT_PRINT)
--    check_type_size(gnutls_x509_crt_t GNUTLS_X509_CRT_T)
--    check_type_size(gnutls_datum_t GNUTLS_DATUM_T)
--    check_type_size(gnutls_pk_algorithm_t GNUTLS_PK_ALGORITHM_T)
--    check_type_size(gnutls_sign_algorithm_t GNUTLS_SIGN_ALGORITHM_T)
--    set(CMAKE_REQUIRED_FLAGS)
--    set(CMAKE_EXTRA_INCLUDE_FILES) 
--    set(CMAKE_REQUIRED_LIBRARIES)
--  endif()
--endif()
--
- # Check for PAM library
- option(ENABLE_PAM "Enable PAM authentication support" ON)
- if(ENABLE_PAM)
-@@ -330,8 +332,6 @@
- add_definitions(-DHAVE_CONFIG_H)
- include_directories(${CMAKE_BINARY_DIR})
--include(cmake/StaticBuild.cmake)
--
- add_subdirectory(common)
- if(WIN32)
index 93c2a78ade7ff9ad9db7a4b3053bf525ccf721d8..41482ca73d5081b38f770978c6ade23effa8fb40 100644 (file)
@@ -5,7 +5,7 @@
 
 Name: tigervnc
 Version: @VERSION@
-Release: 5%{?snap:.%{snap}}%{?dist}
+Release: 6%{?snap:.%{snap}}%{?dist}
 Summary: A TigerVNC remote display system
 
 Group: User Interface/Desktops
@@ -21,6 +21,10 @@ Source9: FindX11.cmake
 Source11: http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz
 Source12: http://downloads.sourceforge.net/project/libjpeg-turbo/1.3.0/libjpeg-turbo-1.3.0.tar.gz
 Source13: http://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.10/libpng-1.5.10.tar.bz2
+Source14: https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.bz2
+Source15: http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.2.tar.gz
+Source16: https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
+Source17: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.13.tar.xz
 
 Source100: http://www.x.org/releases/X11R7.7/src/everything/bigreqsproto-1.1.2.tar.bz2
 Source101: http://www.x.org/releases/X11R7.7/src/everything/compositeproto-0.4.2.tar.bz2
@@ -106,7 +110,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}%{?snap:-%{snap}}-%{release}-root-%(%{_
 # xorg requires newer versions of automake, & autoconf than are available with el5. Use el6 versions.
 BuildRequires: automake >= 1.11, autoconf >= 2.60, libtool >= 1.4, gettext >= 0.14.4, gettext-devel >= 0.14.4, bison-devel, python26
 BuildRequires: desktop-file-utils, java-devel, jpackage-utils
-BuildRequires: gnutls-devel, pam-devel
+BuildRequires: pam-devel
 BuildRequires: cmake28
 BuildRequires: pkgconfig >= 0.20
 BuildRequires: gcc44, gcc44-c++
@@ -114,6 +118,7 @@ BuildRequires: glibc-devel, libstdc++-devel, libpng-devel
 BuildRequires: expat-devel
 BuildRequires: git, gperf, intltool, libtalloc-devel
 BuildRequires: kernel-headers, libatomic_ops-devel
+BuildRequires: xz
 
 BuildRequires: openmotif-devel
 Requires: openmotif, openmotif22
@@ -277,6 +282,10 @@ popd
 
 tar xzf %SOURCE12
 tar xjf %SOURCE13
+tar xjf %SOURCE14
+tar xzf %SOURCE15
+tar xzf %SOURCE16
+xzcat %SOURCE17 | tar xf -
 
 mkdir xorg
 pushd xorg
@@ -415,9 +424,6 @@ pushd %{xorg_buildroot}%{_libdir}
 ln -s `g++44 -print-file-name=libz.a`
 ln -s `g++44 -print-file-name=libgcc.a`
 ln -s `g++44 -print-file-name=libexpat.a`
-ln -s `g++44 -print-file-name=libgnutls.a`
-ln -s `g++44 -print-file-name=libgpg-error.a`
-ln -s `g++44 -print-file-name=libgcrypt.a`
 ln -s `g++44 -print-file-name=libcrypto.a`
 popd
 
@@ -439,14 +445,72 @@ find %{xorg_buildroot}%{_prefix} -type f -name "*.la" -delete
 find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{xorg_buildroot}%{_libdir}|" {} \;
 find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{xorg_buildroot}%{_prefix}|" {} \;
 popd
+popd
 
 export CFLAGS="$RPM_OPT_FLAGS -fPIC -I%{xorg_buildroot}%{_includedir}"
 export CXXFLAGS="$RPM_OPT_FLAGS -fPIC -I%{xorg_buildroot}%{_includedir} -static-libgcc"
 export CPPFLAGS=$CXXFLAGS
-export LDFLAGS="$LDFLAGS -L%{xorg_buildroot}%{_libdir} -L%{xorg_buildroot}%{_libdir}/tigervnc"
+export LDFLAGS="-L%{xorg_buildroot}%{_libdir} -L%{xorg_buildroot}%{_libdir}/tigervnc $LDFLAGS"
 export ACLOCAL="aclocal -I %{xorg_buildroot}%{_datadir}/aclocal"
 export PKG_CONFIG_PATH="%{xorg_buildroot}%{_libdir}/pkgconfig:%{xorg_buildroot}%{_libdir}/tigervnc/pkgconfig:%{xorg_buildroot}%{_datadir}/pkgconfig:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig"
 
+echo "*** Building gmp ***"
+pushd gmp-*
+%ifarch x86_64 s390x ia64 ppc64 alpha sparc64
+LDFLAGS="$LDFLAGS -static" PKG_CONFIG="pkg-config --static" ABI=64 ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared --enable-cxx
+%else
+LDFLAGS="$LDFLAGS -static" PKG_CONFIG="pkg-config --static" ABI=32 ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared --enable-cxx
+%endif
+make %{?_smp_mflags} DESTDIR=%{xorg_buildroot} install
+find %{xorg_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{xorg_buildroot}%{_libdir}|" {} \;
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{xorg_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building libtasn1 ***"
+pushd libtasn1-*
+LDFLAGS="$LDFLAGS -static" PKG_CONFIG="pkg-config --static" ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared
+make %{?_smp_mflags} DESTDIR=%{xorg_buildroot} install
+find %{xorg_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{xorg_buildroot}%{_libdir}|" {} \;
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{xorg_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building nettle ***"
+pushd nettle-*
+autoreconf -fiv
+LDFLAGS="$LDFLAGS -static" PKG_CONFIG="pkg-config --static" ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared --disable-openssl
+make %{?_smp_mflags} DESTDIR=%{xorg_buildroot} install
+find %{xorg_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{xorg_buildroot}%{_libdir}|" {} \;
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{xorg_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building gnutls ***"
+pushd gnutls-*
+LDFLAGS="-L%{xorg_buildroot}%{_libdir} -lgmp $LDFLAGS -static" PKG_CONFIG="pkg-config --static" ./configure \
+  --prefix=%{_prefix} \
+  --libdir=%{_libdir} \
+  --enable-static \
+  --disable-shared \
+  --without-p11-kit \
+  --disable-guile \
+  --disable-srp-authentication \
+  --disable-libdane \
+  --disable-doc \
+  --enable-local-libopts \
+  --without-tpm \
+  --disable-dependency-tracking \
+  --disable-silent-rules \
+  --disable-heartbeat-support
+make %{?_smp_mflags} DESTDIR=%{xorg_buildroot} install
+find %{xorg_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{xorg_buildroot}%{_libdir}|" {} \;
+find %{xorg_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{xorg_buildroot}%{_prefix}|" {} \;
+popd
+
+pushd xorg
+
 echo "*** Building freetype ***"
 pushd freetype-*
 LDFLAGS="$LDFLAGS -static" PKG_CONFIG="pkg-config --static" CFLAGS="$CFLAGS -fno-strict-aliasing" ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared
@@ -741,6 +805,7 @@ export CXXFLAGS=`echo $CXXFLAGS | sed -e 's/ -c //g'`
   -DFLTK_INCLUDE_DIR=%{xorg_buildroot}%{_includedir} \
   -DBUILD_STATIC=1 \
   -DCMAKE_BUILD_TYPE=Release \
+  -DUSE_INCLUDED_ZLIB=0 \
   -DZLIB_INCLUDE_DIR=%{_includedir} \
   -DZLIB_LIBRARY=%{_libdir}/libz.a \
   -DCMAKE_INSTALL_PREFIX=%{_prefix}
@@ -919,6 +984,9 @@ fi
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
+* Sat Mar 14 2015 Brian P. Hinz <bphinz@users.sourceforge.net> 1.4.80-6
+- Build static libraries to meet new minimum requirements
+
 * Sat Mar 07 2015 Brian P. Hinz <bphinz@users.sourceforge.net> 1.4.80-5
 - Don't disable xinerama extension
 
index dd0fb09ecf87adcc65a1df3675e7e952f6e7f0fd..d0e65578a51d7eaa810e20b65265b706cd610257 100644 (file)
@@ -2,7 +2,7 @@
 
 Name: tigervnc
 Version: @VERSION@
-Release: 20%{?snap:.%{snap}}%{?dist}
+Release: 21%{?snap:.%{snap}}%{?dist}
 Summary: A TigerVNC remote display system
 
 Group: User Interface/Desktops
@@ -15,6 +15,11 @@ Source1: vncserver.service
 Source2: vncserver.sysconfig
 Source6: vncviewer.desktop
 Source11: http://fltk.org/pub/fltk/1.3.3/fltk-1.3.3-source.tar.gz
+Source13: http://downloads.sourceforge.net/project/libpng/libpng15/older-releases/1.5.10/libpng-1.5.10.tar.bz2
+Source14: https://ftp.gnu.org/gnu/gmp/gmp-6.0.0a.tar.bz2
+Source15: http://ftp.gnu.org/gnu/libtasn1/libtasn1-4.2.tar.gz
+Source16: https://ftp.gnu.org/gnu/nettle/nettle-2.7.1.tar.gz
+Source17: ftp://ftp.gnutls.org/gcrypt/gnutls/v3.3/gnutls-3.3.13.tar.xz
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires: libX11-devel, automake, autoconf, libtool, gettext, gettext-devel
@@ -25,7 +30,7 @@ BuildRequires: libxkbfile-devel, openssl-devel, libpciaccess-devel
 BuildRequires: mesa-libGL-devel, libXinerama-devel, ImageMagick
 BuildRequires: freetype-devel, libXdmcp-devel
 BuildRequires: desktop-file-utils, java-devel, jpackage-utils
-BuildRequires: libjpeg-turbo-devel, gnutls-devel, pam-devel
+BuildRequires: libjpeg-turbo-devel, pam-devel
 BuildRequires: cmake28
 %ifnarch s390 s390x
 BuildRequires: xorg-x11-server-devel
@@ -142,6 +147,11 @@ This package contains icons for TigerVNC viewer
 %patch11 -p1 -b .gethomedir
 
 tar xzf %SOURCE11
+tar xjf %SOURCE13
+tar xjf %SOURCE14
+tar xzf %SOURCE15
+tar xzf %SOURCE16
+xzcat %SOURCE17 | tar xf -
 
 cp -r /usr/share/xorg-x11-server-source/* unix/xserver
 pushd unix/xserver
@@ -156,31 +166,111 @@ popd
 %build
 %define tigervnc_src_dir %{_builddir}/%{name}-%{version}%{?snap:-%{snap}}
 %define static_lib_buildroot %{tigervnc_src_dir}/build
+mkdir -p %{static_lib_buildroot}%{_libdir}
+
 %ifarch sparcv9 sparc64 s390 s390x
-export CFLAGS="$RPM_OPT_FLAGS -fPIC"
+export CFLAGS="$RPM_OPT_FLAGS -fPIC -I%{static_lib_buildroot}%{_includedir}"
 %else
-export CFLAGS="$RPM_OPT_FLAGS -fpic"
+export CFLAGS="$RPM_OPT_FLAGS -fpic -I%{static_lib_buildroot}%{_includedir}"
 %endif
-export CXXFLAGS="$CFLAGS"
+export CXXFLAGS=$CFLAGS
+export CPPFLAGS=$CXXFLAGS
+export PKG_CONFIG_PATH="%{static_lib_buildroot}%{_libdir}/pkgconfig:%{static_lib_buildroot}%{_datadir}/pkgconfig:%{_libdir}/pkgconfig:%{_datadir}/pkgconfig"
+
+echo "*** Building gmp ***"
+pushd gmp-*
+./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared --enable-cxx --disable-assembly
+make %{?_smp_mflags} DESTDIR=%{static_lib_buildroot} install
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{static_lib_buildroot}%{_libdir}|" {} \;
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{static_lib_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building libtasn1 ***"
+pushd libtasn1-*
+LDFLAGS="-L%{static_lib_buildroot}%{_libdir} $LDFLAGS" ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared
+make %{?_smp_mflags} DESTDIR=%{static_lib_buildroot} install
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{static_lib_buildroot}%{_libdir}|" {} \;
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{static_lib_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building nettle ***"
+pushd nettle-*
+autoreconf -fiv
+LDFLAGS="-L%{static_lib_buildroot}%{_libdir} -Wl,-Bstatic -ltasn1 -lgmp -Wl,-Bdynamic $LDFLAGS" ./configure --prefix=%{_prefix} --libdir=%{_libdir} --enable-static --disable-shared --disable-openssl
+make %{?_smp_mflags} DESTDIR=%{static_lib_buildroot} install
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{static_lib_buildroot}%{_libdir}|" {} \;
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{static_lib_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building gnutls ***"
+pushd gnutls-*
+LDFLAGS="-L%{static_lib_buildroot}%{_libdir} -Wl,-Bstatic -lnettle -lhogweed -ltasn1 -lgmp -Wl,-Bdynamic $LDFLAGS" ./configure \
+  --prefix=%{_prefix} \
+  --libdir=%{_libdir} \
+  --enable-static \
+  --disable-shared \
+  --without-p11-kit \
+  --disable-guile \
+  --disable-srp-authentication \
+  --disable-libdane \
+  --disable-doc \
+  --enable-local-libopts \
+  --without-tpm \
+  --disable-dependency-tracking \
+  --disable-silent-rules \
+  --disable-heartbeat-support
+make %{?_smp_mflags} DESTDIR=%{static_lib_buildroot} install
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.la" -delete
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|libdir=%{_libdir}|libdir=%{static_lib_buildroot}%{_libdir}|" {} \;
+find %{static_lib_buildroot}%{_prefix} -type f -name "*.pc" -exec sed -i -e "s|prefix=%{_prefix}|prefix=%{static_lib_buildroot}%{_prefix}|" {} \;
+popd
+
+echo "*** Building libpng ***"
+pushd libpng-*
+CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" ./configure \
+  --prefix=%{_prefix} \
+  --libdir=%{_libdir} \
+  --disable-shared \
+  --enable-static
+make %{?_smp_mflags}
+make DESTDIR=%{static_lib_buildroot} install
+popd
 
 echo "*** Building fltk ***"
 pushd fltk-*
-%{cmake28} -G"Unix Makefiles" \
-  -DCMAKE_INSTALL_PREFIX=%{_prefix} \
-  -DCMAKE_BUILD_TYPE=Release \
-  -DOPTION_PREFIX_LIB=%{_libdir} \
-  -DOPTION_PREFIX_CONFIG=%{_libdir} \
-  -DOPTION_BUILD_EXAMPLES=off \
-  -DOPTION_USE_SYSTEM_LIBPNG=on
+export CMAKE_PREFIX_PATH="%{static_lib_buildroot}%{_prefix}:%{_prefix}"
+export CMAKE_EXE_LINKER_FLAGS=$LDFLAGS
+export PKG_CONFIG="pkg-config --static"
+CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="-L%{static_lib_buildroot}%{_libdir} -Wl,-Bstatic -lpng -Wl,-Bdynamic $LDFLAGS" ./configure \
+  --prefix=%{_prefix} \
+  --libdir=%{_libdir} \
+  --enable-x11 \
+  --enable-gl \
+  --disable-shared \
+  --enable-localjpeg \
+  --enable-localzlib \
+  --disable-localpng \
+  --enable-xinerama \
+  --enable-xft \
+  --enable-xdbe \
+  --enable-xfixes \
+  --enable-xcursor \
+  --with-x
 make %{?_smp_mflags} 
+make DESTDIR=%{static_lib_buildroot} install
 popd
 
 %{cmake28} -G"Unix Makefiles" \
   -DBUILD_STATIC=off \
   -DCMAKE_INSTALL_PREFIX=%{_prefix} \
-  -DFLTK_LIBRARIES="%{tigervnc_src_dir}/fltk-1.3.3/lib/libfltk.a;%{tigervnc_src_dir}/fltk-1.3.3/lib/libfltk_images.a;-lpng" \
-  -DFLTK_INCLUDE_DIR=%{tigervnc_src_dir}/fltk-1.3.3
-make LDFLAGS="-lpng" %{?_smp_mflags}
+  -DFLTK_LIBRARIES="%{static_lib_buildroot}%{_libdir}/libfltk.a;%{static_lib_buildroot}%{_libdir}/libfltk_images.a;%{static_lib_buildroot}%{_libdir}/libpng.a" \
+  -DFLTK_INCLUDE_DIR=%{static_lib_buildroot}%{_includedir} \
+  -DGNUTLS_INCLUDE_DIR=%{static_lib_buildroot}%{_includedir} \
+  -DGNUTLS_LIBRARY="%{static_lib_buildroot}%{_libdir}/libgnutls.a;%{static_lib_buildroot}%{_libdir}/libtasn1.a;%{static_lib_buildroot}%{_libdir}/libnettle.a;%{static_lib_buildroot}%{_libdir}/libhogweed.a;%{static_lib_buildroot}%{_libdir}/libgmp.a"
+make %{?_smp_mflags}
 
 pushd unix/xserver
 autoreconf -fiv
@@ -336,6 +426,9 @@ fi
 %{_datadir}/icons/hicolor/*/apps/*
 
 %changelog
+* Sat Mar 14 2015 Brian P. Hinz <bphinz@users.sourceforge.net> 1.4.80-21
+- Build static libraries to meet new minimum requirements
+
 * Sat Mar 07 2015 Brian P. Hinz <bphinz@users.sourceforge.net> 1.4.80-20
 - Don't disable xinerama extension