diff --git a/apg-2.3.0b-null-crypt.patch b/apg-2.3.0b-null-crypt.patch new file mode 100644 index 0000000..144912b --- /dev/null +++ b/apg-2.3.0b-null-crypt.patch @@ -0,0 +1,69 @@ +diff -Naur apg-2.3.0b-orig/restrict.c apg-2.3.0b/restrict.c +--- apg-2.3.0b-orig/restrict.c 2003-08-07 11:40:39.000000000 -0400 ++++ apg-2.3.0b/restrict.c 2012-04-23 15:01:38.968745907 -0400 +@@ -54,6 +54,10 @@ + FILE *dct; + char *string; + char *tmp; ++ ++ if( pass == NULL) ++ return(-1); ++ + if( (string = (char *) calloc(1,MAX_DICT_STRING_SIZE)) == NULL) + return(-1); + +@@ -140,13 +144,17 @@ + paranoid_bloom_check_pass (char * password, char *filter, USHORT s_len) + { + char * substring; +- int len = strlen(password); /* string length */ ++ int len = 0; + int c_substr_start_pos = 0; /* current start position */ + int substr_len = 0; /* substring length (LEN-I >= substr_len >= 2) */ + int k = 0; /* counter */ + int c = 0; /* counter */ + int ret = 0; + if (s_len < 2) s_len = 2; ++ if(password == NULL) ++ return (-1); ++ ++ len = strlen(password); /* string length */ + if (s_len > len) return (bloom_check_pass(password, filter)); + + #ifdef APG_DEBUG +@@ -203,16 +211,19 @@ + cracklib_check_pass(char *pw, char *dictpath) + { + char * msg; +- msg = FascistCheck(pw,dictpath); +- if (msg == NULL) return (0); +- else ++ if( pw != NULL) + { ++ msg = FascistCheck(pw,dictpath); ++ if (msg == NULL) return (0); ++ else ++ { + #ifdef APG_DEBUG +- fprintf(stdout,"cracklib_check_pass: password --> %s rejected (%s)\n", pw, msg); +- fflush(stdout); ++ fprintf(stdout,"cracklib_check_pass: password --> %s rejected (%s)\n", pw, msg); ++ fflush(stdout); + #endif +- return (1); ++ } + } ++ return (1); + } + #endif + +@@ -245,6 +256,9 @@ + fflush (stdout); + #endif /* APG_DEBUG */ + ++if(word == NULL) ++ return(0); ++ + if ((cond & S_SS) > 0) + for (i=0; i < 94; i++) + if ((smbl[i].type & S_SS) > 0) diff --git a/apg.socket b/apg.socket new file mode 100644 index 0000000..74fd012 --- /dev/null +++ b/apg.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Apg Activation Socket + +[Socket] +ListenStream=129 +Accept=true + +[Install] +WantedBy=sockets.target diff --git a/apg.spec b/apg.spec index 13b235e..c285ed5 100644 --- a/apg.spec +++ b/apg.spec @@ -1,17 +1,25 @@ Summary: Automated Password Generator for random password generation Name: apg - Version: 2.3.0b -Release: 9%{?dist} -License: BSD -Group: System Environment/Base +Release: 51%{?dist} +License: BSD-3-Clause URL: http://www.adel.nursat.kz/%{name}/ +# Unpacked tarball, fixed permissions (chmod 755 all dirs) and reuploaded Source0: http://www.adel.nursat.kz/%{name}/download/%{name}-%{version}.tar.gz -Source1: apg.xinetd +Source1: apg.socket +Source2: apg@.service Patch0: apg-2.3.0b-gen_rand_pass.patch +Patch1: apg-2.3.0b-null-crypt.patch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: systemd-units +BuildRequires: gcc +BuildRequires: make +BuildRequires: libxcrypt-devel +Requires(post): grep +Requires(post): systemd-units +Requires(preun): systemd-units +Requires(postun): systemd-units %description APG (Automated Password Generator) is the tool set for random password @@ -20,7 +28,9 @@ required type and prints them to standard output. %prep %setup -q -%patch0 -p1 -b .gen_rand_pass + +%patch -P 0 -p1 -b .gen_rand_pass +%patch -P 1 -p1 %build # Build server @@ -30,36 +40,191 @@ make CFLAGS="$RPM_OPT_FLAGS" FLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags} cliserv make CFLAGS="$RPM_OPT_FLAGS" FLAGS="$RPM_OPT_FLAGS" %{?_smp_mflags} standalone %install -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT install -D apg %{buildroot}%{_bindir}/apg install -D apgbfm %{buildroot}%{_bindir}/apgbfm install -D apgd %{buildroot}%{_sbindir}/apgd install -D -m 644 doc/man/apg.1 %{buildroot}%{_mandir}/man1/apg.1 install -D -m 644 doc/man/apgbfm.1 %{buildroot}%{_mandir}/man1/apgbfm.1 install -D -m 644 doc/man/apgd.8 %{buildroot}%{_mandir}/man8/apgd.8 +install -d -m 755 %{buildroot}%{_unitdir} -install -D -m 644 %{SOURCE1} %{buildroot}%{_sysconfdir}/xinetd.d/apgd - -%clean -[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT +install -p -m 644 %{SOURCE1} %{buildroot}%{_unitdir}/%{name}.socket +install -p -m 644 %{SOURCE2} %{buildroot}%{_unitdir}/%{name}@.service %post # add a service for apg if it doesn't already exist -if ! grep -q ^pwdgen /etc/services; then +/bin/grep ^pwdgen /etc/services >& /dev/null +if [ $? == 1 ]; then echo -e 'pwdgen\t\t129/tcp\t\t\t# PWDGEN service' >> /etc/services fi +%if 0%{?fedora} > 17 + %systemd_post apg@.service +%else +if [ $1 -eq 1 ]; then + # Initial installation + /bin/systemctl daemon-reload >/dev/null 2>&1 || : +fi +%endif +%preun +%if 0%{?fedora} > 17 + %systemd_preun apg@.service +%else +if [ $1 -eq 0 ]; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable apg@.service > /dev/null 2>&1 || : + /bin/systemctl stop apg@.service > /dev/null 2>&1 || : +fi +%endif + +%postun +%if 0%{?fedora} > 17 + %systemd_postun apg@.service +%else +/bin/systemctl daemon-reload >/dev/null 2>&1 || : +if [ $1 -ge 1 ]; then + # Package upgrade, not uninstall + /bin/systemctl try-restart apg@.service >/dev/null 2>&1 || : +fi +%endif %files -%defattr(-, root, root) %doc CHANGES COPYING README THANKS TODO doc/rfc* %{_bindir}/apg %{_bindir}/apgbfm %{_sbindir}/apgd %{_mandir}/man*/* -%{_sysconfdir}/xinetd.d/apgd +%{_unitdir}/%{name}@.service +%{_unitdir}/%{name}.socket %changelog +* Fri Jan 16 2026 Fedora Release Engineering - 2.3.0b-51 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Wed Jul 23 2025 Fedora Release Engineering - 2.3.0b-50 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Feb 01 2025 Björn Esser - 2.3.0b-49 +- Add explicit BR: libxcrypt-devel + +* Thu Jan 16 2025 Fedora Release Engineering - 2.3.0b-48 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Wed Jul 17 2024 Fedora Release Engineering - 2.3.0b-47 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Mon Jan 22 2024 Fedora Release Engineering - 2.3.0b-46 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Fri Jan 19 2024 Fedora Release Engineering - 2.3.0b-45 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Wed Jul 19 2023 Fedora Release Engineering - 2.3.0b-44 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Wed Mar 08 2023 Gwyn Ciesla - 2.3.0b-43 +- migrated to SPDX license + +* Wed Jan 18 2023 Fedora Release Engineering - 2.3.0b-42 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Jul 20 2022 Fedora Release Engineering - 2.3.0b-41 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Wed Jan 19 2022 Fedora Release Engineering - 2.3.0b-40 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Wed Jul 21 2021 Fedora Release Engineering - 2.3.0b-39 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Tue Jan 26 2021 Fedora Release Engineering - 2.3.0b-38 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Mon Jul 27 2020 Fedora Release Engineering - 2.3.0b-37 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jan 28 2020 Fedora Release Engineering - 2.3.0b-36 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jul 24 2019 Fedora Release Engineering - 2.3.0b-35 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Thu Jan 31 2019 Fedora Release Engineering - 2.3.0b-34 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 14 2019 Björn Esser - 2.3.0b-33 +- Rebuilt for libcrypt.so.2 (#1666033) + +* Sun Jul 15 2018 Kevin Fenzi - 2.3.0b-32 +- Add BuildRequires gcc +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Tue Feb 06 2018 Fedora Release Engineering - 2.3.0b-31 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Feb 06 2018 Fedora Release Engineering - 2.3.0b-30 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 20 2018 Björn Esser - 2.3.0b-29 +- Rebuilt for switch to libxcrypt + +* Wed Aug 02 2017 Fedora Release Engineering - 2.3.0b-28 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.3.0b-27 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 2.3.0b-26 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 03 2016 Fedora Release Engineering - 2.3.0b-25 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 2.3.0b-24 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Fri Aug 15 2014 Fedora Release Engineering - 2.3.0b-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2.3.0b-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 2.3.0b-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu May 16 2013 Kevin Fenzi 2.3.0b-20 +- Fix permissions on systemd files to be 644. Fixes bug #963913 + +* Wed Feb 13 2013 Fedora Release Engineering - 2.3.0b-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Sat Aug 25 2012 Kevin Fenzi 2.3.0b-18 +- Add systemd preset macros. Fixes bug #850026 + +* Wed Jul 18 2012 Fedora Release Engineering - 2.3.0b-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Sun Jun 03 2012 Kevin Fenzi 2.3.0b-16 +- Fix odd space characters in scriptlets. Fixes bug #827815 + +* Wed May 30 2012 Kevin Fenzi 2.3.0b-15 +- Fix typo in scriptlet. Fixes bug #826638 + +* Mon Apr 23 2012 Kevin Fenzi 2.3.0b-14 +- Add patch to handle crypt returning NULL. Fixes bug #815575 + +* Sat Jan 28 2012 Kevin Fenzi 2.3.0b-13 +- Convert to use systemd instead of xinetd. Fixes bug #737168 + +* Thu Jan 12 2012 Fedora Release Engineering - 2.3.0b-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Mar 14 2011 Kevin Fenzi - 2.3.0b-11 +- Add Requires(post) on grep. Fixes bug #684779 + +* Mon Feb 07 2011 Fedora Release Engineering - 2.3.0b-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + * Fri Jul 24 2009 Fedora Release Engineering - 2.3.0b-9 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild @@ -138,4 +303,3 @@ fi * Wed Feb 7 2001 Matthias Saou - Initial RPM release. - diff --git a/apg@.service b/apg@.service new file mode 100644 index 0000000..beafcb2 --- /dev/null +++ b/apg@.service @@ -0,0 +1,7 @@ +[Unit] +Description=Apgd Random Passwords Generator Server +After=local-fs.target + +[Service] +ExecStart=/usr/sbin/apgd -M sncl -EO -a 0 -r /usr/share/dict/words -m 8 -x 8 -t +StandardInput=socket diff --git a/sources b/sources index 14208ed..a8ec9a7 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -bd82400a5a731070ce895313576afe24 apg-2.3.0b.tar.gz +SHA512 (apg-2.3.0b.tar.gz) = 3e6b5a13dcc7fe64c5e3f3a771b6ff2cf2b38505786b198d2f3f1e55a5efcbf4b2edd6be460351e263d02b8e78e2e980c42ca6810fba8fba6f3f2d65ebe3611e