ADD_DEFINITIONS("-Wextra")
ADD_DEFINITIONS("-Werror")
+
+IF (CXXABI STREQUAL "cxx03")
+ADD_DEFINITIONS("-D_GLIBCXX_USE_CXX11_ABI=0")
+SET(TARGET_TPKP_COMMON_LIB "tpkp-common-deprecated")
+SET(TARGET_TPKP_CURL_LIB "tpkp-curl-deprecated")
+SET(TARGET_TPKP_POPUP "tpkp-popup-deprecated")
+ELSE (CXXABI STREQUAL "cxx11")
SET(TARGET_TPKP_COMMON_LIB "tpkp-common")
SET(TARGET_TPKP_CURL_LIB "tpkp-curl")
SET(TARGET_TPKP_GNUTLS_LIB "tpkp-gnutls")
SET(TARGET_TPKP_POPUP "tpkp-popup")
+ENDIF (CXXABI STREQUAL "cxx03")
+
+IF (CXXABI STREQUAL "cxx03")
+CONFIGURE_FILE(tpkp-curl-deprecated.pc.in tpkp-curl-deprecated.pc @ONLY)
+
+INSTALL(
+ FILES
+ tpkp-curl-deprecated.pc
+ DESTINATION
+ ${LIB_INSTALL_DIR}/pkgconfig
+ )
+
+ELSE (CXXABI NOT STREQUAL "cxx03")
CONFIGURE_FILE(tpkp-curl.pc.in tpkp-curl.pc @ONLY)
CONFIGURE_FILE(tpkp-gnutls.pc.in tpkp-gnutls.pc @ONLY)
+
INSTALL(
FILES
tpkp-curl.pc
${LIB_INSTALL_DIR}/pkgconfig
)
+ENDIF (CXXABI STREQUAL "cxx03")
+
ADD_SUBDIRECTORY(src)
ADD_SUBDIRECTORY(systemd)
-
IF (DEFINED PUBKEY_PINNING_TEST_BUILD)
+IF (CXXABI STREQUAL "cxx11")
SET(TARGET_TPKP_TEST "tpkp-internal-test")
SET(TARGET_TPKP_POPUP_TEST "tpkp-internal-test-popup")
ADD_SUBDIRECTORY(test)
+ENDIF (CXXABI STREQUAL "cxx11")
ENDIF (DEFINED PUBKEY_PINNING_TEST_BUILD)
%description
Https Public Key Pinning for Tizen platform system framework.
+%package deprecated
+Summary: Https Public Key Pinning for Tizen platform system framework with cxx03 abi
+Provides: %{name}-deprecated = %{version}-%{release}
+
+%description deprecated
+Https Public Key Pinning for Tizen platform system framework with cxx03 abi
+
+%package devel-deprecated
+Summary: Tizen HPKP library development files with cxx03 abi
+Group: Development/Libraries
+Requires: %{name}-deprecated = %version-%release
+
+%description devel-deprecated
+Tizen HPKP library development files with cxx03 abi including headers and
+pkgconfig.
+
%package devel
Summary: Tizen HPKP library development files
Group: Development/Libraries
export LDFLAGS+="-Wl,--rpath=%_prefix/lib"
-%global sock_path /tmp/.%name-popup.sock
+%global sock_path /tmp/.pubkey-pinning-popup.sock
%{!?build_type:%define build_type "Release"}
%cmake . -DCMAKE_INSTALL_PREFIX=%_prefix \
%if 0%{?pubkey_pinning_test_build}
-DPUBKEY_PINNING_TEST_BUILD=1 \
%endif
+ -DCXXABI=cxx11 \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DSYSTEMD_UNIT_DIR=%_unitdir_user
+
+make %{?_smp_mflags}
+
+%make_install
+
+#save all we have built for cxx11 abi
+pushd %{buildroot}%{_libdir}
+for FILE in libtpkp*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE"; done
+mv pkgconfig/tpkp-*.pc %{_builddir}/%{name}-%{version}
+popd
+
+pushd %{buildroot}%{_bindir}
+mv tpkp-popup %{_builddir}/%{name}-%{version}
+%if 0%{?pubkey_pinning_test_build}
+for FILE in tpkp-internal*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE"; done
+%endif
+popd
+
+pushd %{buildroot}%{_includedir}/tpkp/gnutls
+mv tpkp_gnutls.h %{_builddir}/%{name}-%{version}
+popd
+
+pushd %{buildroot}%_unitdir_user/
+mv %name-popup.* %{_builddir}/%{name}-%{version}
+popd
+
+make clean
+
+%{!?build_type:%define build_type "Release"}
+%cmake . -DCMAKE_INSTALL_PREFIX=%_prefix \
+ -DVERSION=%version \
+ -DINCLUDEDIR=%_includedir \
+ -DSOCK_PATH=%sock_path \
+ -DCMAKE_BUILD_TYPE=%build_type \
+%if 0%{?pubkey_pinning_test_build}
+ -DPUBKEY_PINNING_TEST_BUILD=1 \
+%endif
+ -DCXXABI=cxx03 \
-DCMAKE_VERBOSE_MAKEFILE=ON \
-DSYSTEMD_UNIT_DIR=%_unitdir_user
%install
%make_install
mkdir -p %buildroot%_unitdir_user/sockets.target.wants
-ln -sf ../%name-popup.socket %buildroot%_unitdir_user/sockets.target.wants/%name-popup.socket
-%find_lang %{name}
+ln -sf ../%name-popup-deprecated.socket %buildroot%_unitdir_user/sockets.target.wants/%name-popup-deprecated.socket
+%find_lang pubkey-pinning
+
+#move all we have build for cxx11 abi
+pushd %{_builddir}/%{name}-%{version}
+for FILE in libtpkp*.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+%if 0%{?pubkey_pinning_test_build}
+for FILE in tpkp-internal*; do mv "$FILE" "%{buildroot}%{_bindir}/$FILE"; done
+%endif
+mv tpkp-popup %{buildroot}%{_bindir}
+mkdir -p %{buildroot}%{_includedir}/tpkp/gnutls
+mv tpkp_gnutls.h %{buildroot}%{_includedir}/tpkp/gnutls/tpkp_gnutls.h
+mv %name-popup.socket %{buildroot}%_unitdir_user
+mv %name-popup.service %{buildroot}%_unitdir_user
+mv tpkp*.pc %{buildroot}%{_libdir}/pkgconfig/
+ln -sf %_unitdir_user/popup.socket %buildroot%_unitdir_user/sockets.target.wants/%name-popup.socket
+popd
%post
/sbin/ldconfig
/sbin/ldconfig
systemctl daemon-reload
-%files
-%manifest %name.manifest
+%post deprecated
+/sbin/ldconfig
+systemctl daemon-reload
+if [ $1 == 1 ]; then
+ systemctl start %name-popup-deprecated.socket
+fi
+
+if [ $1 == 2 ]; then
+ systemctl restart %name-popup-deprecated.socket
+fi
+
+%preun deprecated
+if [ $1 == 0 ]; then
+ systemctl stop %name-popup-deprecated.service
+ systemctl stop %name-popup-deprecated.socket
+ systemctl disable %name-popup-deprecated
+fi
+
+%postun deprecated
+/sbin/ldconfig
+systemctl daemon-reload
+
+%files deprecated -f pubkey-pinning.lang
+%manifest pubkey-pinning.manifest
+%license LICENSE
+%license LICENSE.BSD-3-Clause
+%license LICENSE.MPL-1.1
+%_libdir/libtpkp-common-deprecated.so.*
+%_libdir/libtpkp-curl-deprecated.so.*
+%_unitdir_user/%name-popup-deprecated.service
+%_unitdir_user/%name-popup-deprecated.socket
+%_unitdir_user/sockets.target.wants/%name-popup-deprecated.socket
+%_bindir/tpkp-popup-deprecated
+
+%files -f pubkey-pinning.lang
+%manifest pubkey-pinning.manifest
%license LICENSE
%license LICENSE.BSD-3-Clause
%license LICENSE.MPL-1.1
%_libdir/libtpkp-common.so.*
%_libdir/libtpkp-curl.so.*
%_libdir/libtpkp-gnutls.so.*
-
-%files ui -f %name.lang
-%manifest %name.manifest
-%license LICENSE
%_unitdir_user/%name-popup.service
%_unitdir_user/%name-popup.socket
%_unitdir_user/sockets.target.wants/%name-popup.socket
%_libdir/libtpkp-curl.so
%_libdir/libtpkp-gnutls.so
+%files devel-deprecated
+%_includedir/tpkp/common/tpkp_error.h
+%_includedir/tpkp/curl/tpkp_curl.h
+%_libdir/pkgconfig/tpkp-curl-deprecated.pc
+%_libdir/libtpkp-common-deprecated.so
+%_libdir/libtpkp-curl-deprecated.so
+
%if 0%{?pubkey_pinning_test_build}
%files test
%_bindir/tpkp-internal-test