Package: fis-gtm / 6.2-000-1

upstream_build_all_encryption_libs Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
From: Amul Shah <Amul.Shah@fisglobal.com>
Forwarded: not-needed
Summary: Build all encryption plugins and create default plugin symlink
Applied-Upstream: V6.2-001
Description: The upstream V6.2-000 CMakeLists.txt file built only one of three
  possible encryption plugin libraries. This meant that the debian fis-gtm
  package was missing a core piece of the distributed binaries. Upstream will
  apply this change to the next release after internal review.
  UPDATE: Build, but do not install the reference encryption plugins due to
  licensing conflicts between the AGPL and the OpenSSL license. Reference
  plugins are built simply to ensure that they could compile on the target
  system provided the correct libraries are installed.
Last-Update: 2014-10-04

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -60,8 +60,6 @@
 set(gt_src_list)
 set(sources_used "")
 set(extralibs "")
-set(GTMCRYPTLIB "GCRYPT")
-set(GTMCRYPTALGO "AES256CFB")
 message("--> OS = ${CMAKE_SYSTEM_NAME} / ARCH = ${CMAKE_SYSTEM_PROCESSOR}")
 # Establish platform
 # Except for Solaris, CMAKE_COMPILER_IS_GNUCC is true
@@ -76,7 +74,6 @@
 else()
   message(FATAL_ERROR "--> OS = ${CMAKE_SYSTEM_NAME} / ARCH = ${CMAKE_SYSTEM_PROCESSOR}")
 endif()
-message("--> Encryption Library = ${GTMCRYPTLIB} / Algorithm = ${GTMCRYPTALGO}")
 
 # Choose where to get bootstrap sources.
 set(GTM_DIST "" CACHE PATH "Existing GT.M Distribution")
@@ -461,14 +458,50 @@
   set(TLS_LIBRARIES ${TLS_LIBRARIES} ${TLSLIB_${tlslib}})
 endforeach()
 
-add_library(libgtmcrypt MODULE ${libgtmcrypt_SOURCES})
-set_target_properties(libgtmcrypt PROPERTIES
-  OUTPUT_NAME gtmcrypt
-  COMPILE_DEFINITIONS "USE_${GTMCRYPTLIB} -DUSE_${GTMCRYPTALGO}"
+# Building the three encryption libraries could by a loop of some sort, but
+# manually creating each target is way easier.
+
+# Library=GCRYPT Algorithm=AES256CFB
+add_library(libgtmcrypt_gcrypt_AES256CFB.so MODULE ${libgtmcrypt_SOURCES})
+set_target_properties(libgtmcrypt_gcrypt_AES256CFB.so PROPERTIES
+  OUTPUT_NAME gtmcrypt_gcrypt_AES256CFB
+  COMPILE_DEFINITIONS "USE_GCRYPT -DUSE_AES256CFB"
+  LIBRARY_OUTPUT_DIRECTORY ${GTM_BINARY_DIR}/plugin
+  )
+target_link_libraries(libgtmcrypt_gcrypt_AES256CFB.so ${GPG_LIBRARIES})
+#install(TARGETS libgtmcrypt_gcrypt_AES256CFB.so DESTINATION ${GTM_INSTALL_DIR}/plugin)
+
+# Establish the default encryption link
+set(default_encr_link   ${GTM_BINARY_DIR}/plugin/libgtmcrypt.so)
+set(default_encr_target libgtmcrypt_gcrypt_AES256CFB.so)
+add_custom_command(
+	OUTPUT ${default_encr_link}
+	COMMAND ${CMAKE_COMMAND} -E create_symlink "${default_encr_target}" "${default_encr_link}"
+	DEPENDS ${GTM_BINARY_DIR}/plugin/${default_encr_target}
+	COMMENT "Generating default_encr symbolic link"
+	)
+add_custom_target(install_default_encr ALL DEPENDS ${default_encr_link})
+#install(FILES ${default_encr_link} DESTINATION ${GTM_INSTALL_DIR}/plugin)
+
+# Library=OPENSSL Algorithm=AES256CFB
+add_library(libgtmcrypt_openssl_AES256CFB MODULE ${libgtmcrypt_SOURCES})
+set_target_properties(libgtmcrypt_openssl_AES256CFB PROPERTIES
+  OUTPUT_NAME gtmcrypt_openssl_AES256CFB
+  COMPILE_DEFINITIONS "USE_OPENSSL -DUSE_AES256CFB"
+  LIBRARY_OUTPUT_DIRECTORY ${GTM_BINARY_DIR}/plugin
+  )
+target_link_libraries(libgtmcrypt_openssl_AES256CFB ${GPG_LIBRARIES} ${TLS_LIBRARIES})
+#install(TARGETS libgtmcrypt_openssl_AES256CFB DESTINATION ${GTM_INSTALL_DIR}/plugin)
+
+# Library=OPENSSL Algorithm=BLOWFISHCFB
+add_library(libgtmcrypt_openssl_BLOWFISHCFB MODULE ${libgtmcrypt_SOURCES})
+set_target_properties(libgtmcrypt_openssl_BLOWFISHCFB PROPERTIES
+  OUTPUT_NAME gtmcrypt_openssl_BLOWFISHCFB
+  COMPILE_DEFINITIONS "USE_OPENSSL -DUSE_BLOWFISHCFB"
   LIBRARY_OUTPUT_DIRECTORY ${GTM_BINARY_DIR}/plugin
   )
-target_link_libraries(libgtmcrypt ${GPG_LIBRARIES})
-install(TARGETS libgtmcrypt DESTINATION ${GTM_INSTALL_DIR}/plugin)
+target_link_libraries(libgtmcrypt_openssl_BLOWFISHCFB ${GPG_LIBRARIES} ${TLS_LIBRARIES})
+#install(TARGETS libgtmcrypt_openssl_BLOWFISHCFB DESTINATION ${GTM_INSTALL_DIR}/plugin)
 
 add_library(libgtmtls MODULE ${libgtmtls_SOURCES})
 set_target_properties(libgtmtls PROPERTIES
@@ -477,15 +510,15 @@
   LIBRARY_OUTPUT_DIRECTORY ${GTM_BINARY_DIR}/plugin
   )
 target_link_libraries(libgtmtls ${TLS_LIBRARIES})
-install(TARGETS libgtmtls DESTINATION ${GTM_INSTALL_DIR}/plugin)
+#install(TARGETS libgtmtls DESTINATION ${GTM_INSTALL_DIR}/plugin)
 
 add_executable(maskpass ${maskpass_SOURCES})
 target_link_libraries(maskpass ${GPG_LIBRARIES} ${TLS_LIBRARIES})
 set_target_properties(maskpass PROPERTIES
-  COMPILE_DEFINITIONS "USE_${GTMCRYPTLIB} -DUSE_SYSLIB_FUNCS"
+  COMPILE_DEFINITIONS "USE_GCRYPT -DUSE_SYSLIB_FUNCS"
   RUNTIME_OUTPUT_DIRECTORY ${GTM_BINARY_DIR}/plugin/gtmcrypt
   )
-install(TARGETS maskpass DESTINATION ${GTM_INSTALL_DIR}/plugin/gtmcrypt)
+#install(TARGETS maskpass DESTINATION ${GTM_INSTALL_DIR}/plugin/gtmcrypt)
 
 # Always copy files into the plugin directory
 foreach(f