diff --git a/.gitignore b/.gitignore index e69de29..19d30f2 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/oath-toolkit-2.0.2.tar.gz diff --git a/oath-toolkit-2.0.2-man-fix.patch b/oath-toolkit-2.0.2-man-fix.patch new file mode 100644 index 0000000..9349065 --- /dev/null +++ b/oath-toolkit-2.0.2-man-fix.patch @@ -0,0 +1,59 @@ +diff --git a/libpskc/man/pskc_get_key_algparm_chall_max.3 b/libpskc/man/pskc_get_key_algparm_chall_max.3 +index 6ae79a3..2001320 100644 +--- a/libpskc/man/pskc_get_key_algparm_chall_max.3 ++++ b/libpskc/man/pskc_get_key_algparm_chall_max.3 +@@ -15,8 +15,8 @@ output variable indicating whether data was provided or not. + Get the PSKC KeyPackage Key AlgorithmParameters ChallengeFormat Max + value. This attribute defines the maximum size of the challenge + accepted by the device for CR mode and MUST be included. If the +-'Encoding' attribute is set to 'DECIMAL', 'HEXADECIMAL', or +-'ALPHANUMERIC', this value indicates the maximum number of ++\&'Encoding' attribute is set to 'DECIMAL', 'HEXADECIMAL', or ++\&'ALPHANUMERIC', this value indicates the maximum number of + digits/characters. If the 'Encoding' attribute is set to 'BASE64' + or 'BINARY', this value indicates the maximum number of bytes of + the unencoded value. +diff --git a/libpskc/man/pskc_get_key_algparm_chall_min.3 b/libpskc/man/pskc_get_key_algparm_chall_min.3 +index 85009d6..6e51e52 100644 +--- a/libpskc/man/pskc_get_key_algparm_chall_min.3 ++++ b/libpskc/man/pskc_get_key_algparm_chall_min.3 +@@ -15,8 +15,8 @@ output variable indicating whether data was provided or not. + Get the PSKC KeyPackage Key AlgorithmParameters ChallengeFormat Min + value. This attribute defines the minimum size of the challenge + accepted by the device for CR mode and MUST be included. If the +-'Encoding' attribute is set to 'DECIMAL', 'HEXADECIMAL', or +-'ALPHANUMERIC', this value indicates the minimum number of ++\&'Encoding' attribute is set to 'DECIMAL', 'HEXADECIMAL', or ++\&'ALPHANUMERIC', this value indicates the minimum number of + digits/characters. If the 'Encoding' attribute is set to 'BASE64' + or 'BINARY', this value indicates the minimum number of bytes of + the unencoded value. +diff --git a/libpskc/man/pskc_get_key_policy_pinmaxlength.3 b/libpskc/man/pskc_get_key_policy_pinmaxlength.3 +index be96a9a..d4ce51e 100644 +--- a/libpskc/man/pskc_get_key_policy_pinmaxlength.3 ++++ b/libpskc/man/pskc_get_key_policy_pinmaxlength.3 +@@ -16,9 +16,9 @@ Get the PSKC KeyPackage Key Policy PINPolicy MaxLength value. This + attribute indicates the maximum length of a PIN that can be set to + protect this key. It MUST NOT be possible to set a PIN longer than + this value. If the 'PINFormat' attribute is set to 'DECIMAL', +-'HEXADECIMAL', or 'ALPHANUMERIC', this value indicates the number ++\&'HEXADECIMAL', or 'ALPHANUMERIC', this value indicates the number + of digits/ characters. If the 'PINFormat' attribute is set to +-'BASE64' or 'BINARY', this value indicates the number of bytes of ++\&'BASE64' or 'BINARY', this value indicates the number of bytes of + the unencoded value. + + If \fIpresent\fP is non\-NULL, it will be 0 if the field is not present +diff --git a/libpskc/man/pskc_get_key_policy_pinminlength.3 b/libpskc/man/pskc_get_key_policy_pinminlength.3 +index c00523d..a5efe53 100644 +--- a/libpskc/man/pskc_get_key_policy_pinminlength.3 ++++ b/libpskc/man/pskc_get_key_policy_pinminlength.3 +@@ -16,7 +16,7 @@ Get the PSKC KeyPackage Key Policy PINPolicy MinLength value. This + attribute indicates the minimum length of a PIN that can be set to + protect the associated key. It MUST NOT be possible to set a PIN + shorter than this value. If the 'PINFormat' attribute is set to +-'DECIMAL', 'HEXADECIMAL', or 'ALPHANUMERIC', this value indicates ++\&'DECIMAL', 'HEXADECIMAL', or 'ALPHANUMERIC', this value indicates + the number of digits/ characters. If the 'PINFormat' attribute is + set to 'BASE64' or 'BINARY', this value indicates the number of + bytes of the unencoded value. diff --git a/oath-toolkit.spec b/oath-toolkit.spec new file mode 100644 index 0000000..d51a18b --- /dev/null +++ b/oath-toolkit.spec @@ -0,0 +1,202 @@ +Name: oath-toolkit +Version: 2.0.2 +Release: 3%{?dist} +License: GPLv3+ +Group: System Environment/Libraries +Summary: One-time password components +BuildRequires: xmlsec1-devel, pam-devel, gtk-doc, libtool, libtool-ltdl-devel +Source: http://download.savannah.gnu.org/releases/%{name}/%{name}-%{version}.tar.gz +URL: http://www.nongnu.org/oath-toolkit/ +# Escape leading single quotes in man pages which are misinterpreted as macros, +# patch sent upstream, upstream ticket #108312 +Patch0: oath-toolkit-2.0.2-man-fix.patch + +%description +The OATH Toolkit provide components for building one-time password +authentication systems. It contains shared libraries, command line tools and a +PAM module. Supported technologies include the event-based HOTP algorithm +(RFC4226) and the time-based TOTP algorithm (RFC6238). OATH stands for Open +AuTHentication, which is the organization that specify the algorithms. For +managing secret key files, the Portable Symmetric Key Container (PSKC) format +described in RFC6030 is supported. + +%package -n liboath +Summary: Library for OATH handling +Group: Development/Libraries +License: LGPLv2+ +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +# https://fedorahosted.org/fpc/ticket/174 +Provides: bundled(gnulib) + +%description -n liboath +OATH stands for Open AuTHentication, which is the organization that +specify the algorithms. Supported technologies include the event-based +HOTP algorithm (RFC4226) and the time-based TOTP algorithm (RFC6238). + +%package -n liboath-devel +Summary: Development files for liboath +Group: Development/Libraries +License: LGPLv2+ +Requires: liboath%{?_isa} = %{version}-%{release} + +%description -n liboath-devel +Development files for liboath. + +%package -n liboath-doc +Summary: Documentation files for liboath +Group: Development/Libraries +License: LGPLv2+ +Requires: liboath = %{version}-%{release} +Requires: gtk-doc +BuildArch: noarch + +%description -n liboath-doc +Documentation files for liboath. + +%package -n libpskc +Summary: Library for PSKC handling +Group: Development/Libraries +License: LGPLv2+ +Requires: xml-common +Requires(post): /sbin/ldconfig +Requires(postun): /sbin/ldconfig +# https://fedorahosted.org/fpc/ticket/174 +Provides: bundled(gnulib) + +%description -n libpskc +Library for managing secret key files, the Portable Symmetric Key +Container (PSKC) format described in RFC6030 is supported. + +%package -n libpskc-devel +Summary: Development files for libpskc +Group: Development/Libraries +License: LGPLv2+ +Requires: libpskc%{?_isa} = %{version}-%{release} + +%description -n libpskc-devel +Development files for libpskc. + +%package -n libpskc-doc +Summary: Documentation files for libpskc +Group: Development/Libraries +License: LGPLv2+ +Requires: libpskc = %{version}-%{release} +Requires: gtk-doc +BuildArch: noarch + +%description -n libpskc-doc +Documentation files for libpskc. + +%package -n oathtool +Summary: A command line tool for generating and validating OTPs +License: GPLv3+ +# https://fedorahosted.org/fpc/ticket/174 +Provides: bundled(gnulib) + +%description -n oathtool +A command line tool for generating and validating OTPs. + +%package -n pskctool +Summary: A command line tool for manipulating PSKC data +# https://fedorahosted.org/fpc/ticket/174 +Provides: bundled(gnulib) + +%description -n pskctool +A command line tool for manipulating PSKC data. + +%package -n pam_oath +Summary: A PAM module for pluggable login authentication for OATH +Group: Development/Libraries +Requires: pam + +%description -n pam_oath +A PAM module for pluggable login authentication for OATH. + +%prep +%setup -q +%patch0 -p1 -b .man-fix + +%build +%configure --with-pam-dir=%{_libdir}/security + +# Kill rpaths and link with --as-needed +for d in liboath libpskc oathtool pam_oath pskctool +do + sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' $d/libtool + sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' $d/libtool + sed -i 's| -shared | -Wl,--as-needed\0|g' $d/libtool +done + +make %{?_smp_mflags} + +%install +make %{?_smp_mflags} DESTDIR=%{buildroot} install + +# Remove static objects and libtool files +rm -f %{buildroot}%{_libdir}/*.{a,la} +rm -f %{buildroot}%{_libdir}/security/*.la + +# Make /etc/liboath directory +mkdir -p -m 0600 %{buildroot}%{_sysconfdir}/liboath + +%post -n liboath -p /sbin/ldconfig + +%postun -n liboath -p /sbin/ldconfig + +%post -n libpskc -p /sbin/ldconfig + +%postun -n libpskc -p /sbin/ldconfig + +%files -n liboath +%doc liboath/COPYING +%attr(0600, root, root) %dir %{_sysconfdir}/liboath +%{_libdir}/liboath.so.* + +%files -n liboath-devel +%{_includedir}/liboath +%{_libdir}/liboath.so +%{_libdir}/pkgconfig/liboath.pc + +%files -n liboath-doc +%{_mandir}/man3/oath* +%{_datadir}/gtk-doc/html/liboath/* + +%files -n libpskc +%doc libpskc/README +%{_libdir}/libpskc.so.* +%{_datadir}/xml/pskc + +%files -n libpskc-devel +%{_includedir}/pskc +%{_libdir}/libpskc.so +%{_libdir}/pkgconfig/libpskc.pc + +%files -n libpskc-doc +%{_mandir}/man3/pskc* +%{_datadir}/gtk-doc/html/libpskc/* + +%files -n oathtool +%doc oathtool/COPYING +%{_bindir}/oathtool +%{_mandir}/man1/oathtool.* + +%files -n pskctool +%{_bindir}/pskctool +%{_mandir}/man1/pskctool.* + +%files -n pam_oath +%doc pam_oath/README pam_oath/COPYING +%{_libdir}/security/pam_oath.so + +%changelog +* Wed Jun 5 2013 Jaroslav Škarvada - 2.0.2-3 +- Fixed requirements according to reviewer comments +- Linked with --as-needed +- Fixed man pages (by man-fix patch) + +* Mon Apr 8 2013 Jaroslav Škarvada - 2.0.2-2 +- Added /etc/liboath directory to hold configuration / user lists + +* Sun Apr 07 2013 Jaroslav Škarvada - 2.0.2-1 +- Initial version diff --git a/sources b/sources index e69de29..a5e2156 100644 --- a/sources +++ b/sources @@ -0,0 +1 @@ +35232dfcaf0e77377f926d561fe5086d oath-toolkit-2.0.2.tar.gz