diff --git a/.gitignore b/.gitignore index afd6fe0..fae6099 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,7 @@ yp-tools-2.11.tar.bz2 /yp-tools-2.12.tar.bz2 +/yp-tools-2.14.tar.bz2 +/yp-tools-3.0.1.tar.bz2 +/yp-tools-3.3.tar.bz2 +/yp-tools-yp-tools-4.2.2.tar.gz +/v4.2.3.tar.gz diff --git a/sources b/sources index f56cd79..1320751 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -ce1e06d86caa285fa8cd76fdf103f51e yp-tools-2.12.tar.bz2 +SHA512 (v4.2.3.tar.gz) = 2fcdaaeb8af4c3f62aa571a488c04561356681fc18b919ef728cfc1941578870cce74b136959f49e4ab04f988a79252163c1abe30b357788cb0b5faca7b5d147 diff --git a/yp-tools-2.11-shadow.patch b/yp-tools-2.11-shadow.patch deleted file mode 100644 index 1813ac4..0000000 --- a/yp-tools-2.11-shadow.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up yp-tools-2.11/src/yppasswd.c.shadow yp-tools-2.11/src/yppasswd.c ---- yp-tools-2.11/src/yppasswd.c.shadow 2010-04-20 15:31:59.000000000 +0200 -+++ yp-tools-2.11/src/yppasswd.c 2010-11-19 18:37:14.931766315 +0100 -@@ -449,6 +449,7 @@ verifypassword (struct passwd *pwd, char - - passwdlen = get_passwd_len (pwd->pw_passwd); - if (pwd->pw_passwd[0] -+ && 0 != strcmp (pwd->pw_passwd, "x") /* don't check shadow passwords */ - && !strncmp (pwd->pw_passwd, crypt (pwdstr, pwd->pw_passwd), passwdlen) - && uid) - { diff --git a/yp-tools-2.12-adjunct.patch b/yp-tools-2.12-adjunct.patch index b1dd02d..a32b69d 100644 --- a/yp-tools-2.12-adjunct.patch +++ b/yp-tools-2.12-adjunct.patch @@ -1,12 +1,11 @@ diff -up yp-tools-2.12/src/yppasswd.c.adjunct yp-tools-2.12/src/yppasswd.c --- yp-tools-2.12/src/yppasswd.c.adjunct 2012-04-23 13:17:47.000988833 +0200 +++ yp-tools-2.12/src/yppasswd.c 2012-04-23 13:18:01.209802938 +0200 -@@ -449,7 +449,7 @@ verifypassword (struct passwd *pwd, char - - passwdlen = get_passwd_len (pwd->pw_passwd); - if (pwd->pw_passwd[0] -- && 0 != strcmp (pwd->pw_passwd, "x") /* don't check shadow passwords */ -+ && 0 != strcmp (pwd->pw_passwd, "##") /* don't check passwords using passwd.adjunct feature */ - && uid) - { - char *crypted = crypt(pwdstr, pwd->pw_passwd); +@@ -774,6 +775,7 @@ + /* We can't check the password with shadow passwords enabled. We + * leave the checking to yppasswdd */ + if (uid != 0 && strcmp (pwd->pw_passwd, "x") != 0 && ++ 0 != strncmp (pwd->pw_passwd, "##", 2) && /* don't check passwords using passwd.adjunct feature */ + strcmp (pwd->pw_passwd, hashpass ) != 0) + { + int passwdlen = get_passwd_len (pwd->pw_passwd); diff --git a/yp-tools-2.12-crypt.patch b/yp-tools-2.12-crypt.patch index 6d03d52..5e8ca41 100644 --- a/yp-tools-2.12-crypt.patch +++ b/yp-tools-2.12-crypt.patch @@ -1,30 +1,6 @@ diff -up yp-tools-2.12/src/yppasswd.c.crypt yp-tools-2.12/src/yppasswd.c --- yp-tools-2.12/src/yppasswd.c.crypt 2012-04-23 13:01:35.599721168 +0200 +++ yp-tools-2.12/src/yppasswd.c 2012-04-23 13:16:18.251261293 +0200 -@@ -448,13 +448,19 @@ verifypassword (struct passwd *pwd, char - } - - passwdlen = get_passwd_len (pwd->pw_passwd); -- if (pwd->pw_passwd[0] -+ if (pwd->pw_passwd[0] - && 0 != strcmp (pwd->pw_passwd, "x") /* don't check shadow passwords */ -- && !strncmp (pwd->pw_passwd, crypt (pwdstr, pwd->pw_passwd), passwdlen) - && uid) - { -- fputs (_("You cannot reuse the old password.\n"), stderr); -- return 0; -+ char *crypted = crypt(pwdstr, pwd->pw_passwd); -+ if(crypted == NULL) { -+ fputs (_("crypt() call failed.\n"), stderr); -+ return 0; -+ } -+ if(!strncmp (pwd->pw_passwd, crypted, passwdlen)) { -+ fputs (_("You cannot reuse the old password.\n"), stderr); -+ return 0; -+ } - } - - r = 0; @@ -772,9 +778,16 @@ main (int argc, char **argv) { int passwdlen = get_passwd_len (pwd->pw_passwd); diff --git a/yp-tools-2.12-gethost.patch b/yp-tools-2.12-gethost.patch deleted file mode 100644 index afe782d..0000000 --- a/yp-tools-2.12-gethost.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -up yp-tools-2.12/src/yppoll.c.gethost yp-tools-2.12/src/yppoll.c ---- yp-tools-2.12/src/yppoll.c.gethost 2001-12-08 20:59:10.000000000 +0100 -+++ yp-tools-2.12/src/yppoll.c 2011-05-04 16:18:08.371772310 +0200 -@@ -218,7 +218,10 @@ main (int argc, char **argv) - - hent = gethostbyaddr ((char *)&clnt_saddr.sin_addr.s_addr, - sizeof (clnt_saddr.sin_addr.s_addr), AF_INET); -- hostname = strdup (hent->h_name); -+ if (hent) -+ { -+ hostname = strdup (hent->h_name); -+ } - } - else - { -@@ -261,7 +264,7 @@ main (int argc, char **argv) - &clnt_sock); - if (client == NULL) - { -- fprintf (stderr, _("Can't create connection to %s.\n"), hostname); -+ fprintf (stderr, _("Can't create connection to %s.\n"), hostname ? hostname : "unknown"); - return 1; - } - -@@ -279,7 +282,7 @@ main (int argc, char **argv) - if (clnt_res != TRUE) - { - fprintf (stdout, _("Domain %s is not supported by %s.\n"), domainname, -- hostname); -+ hostname ? hostname : "unknown"); - return 1; - } - diff --git a/yp-tools-2.12-typo.patch b/yp-tools-2.12-typo.patch deleted file mode 100644 index 68ff90a..0000000 --- a/yp-tools-2.12-typo.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up yp-tools-2.12/man/ypmatch.1.in.typo yp-tools-2.12/man/ypmatch.1.in ---- yp-tools-2.12/man/ypmatch.1.in.typo 2011-03-18 13:43:29.462662847 +0100 -+++ yp-tools-2.12/man/ypmatch.1.in 2011-03-18 13:44:26.498770766 +0100 -@@ -5,7 +5,7 @@ - .\" - .\" This program is free software; you can redistribute it and/or modify - .\" it under the terms of the GNU General Public License version 2 as --.\" published bythe Free Software Foundation. -+.\" published by the Free Software Foundation. - .\" - .\" This program is distributed in the hope that it will be useful, - .\" but WITHOUT ANY WARRANTY; without even the implied warranty of diff --git a/yp-tools-3.3-no-nss-nis6.patch b/yp-tools-3.3-no-nss-nis6.patch new file mode 100644 index 0000000..5abab57 --- /dev/null +++ b/yp-tools-3.3-no-nss-nis6.patch @@ -0,0 +1,24 @@ +diff -ru yp-tools-3.3-orig/Makefile.am yp-tools-3.3/Makefile.am +--- yp-tools-3.3-orig/Makefile.am 2014-10-29 15:28:02.000000000 +0100 ++++ yp-tools-3.3/Makefile.am 2014-12-10 18:47:11.864137423 +0100 +@@ -5,7 +5,7 @@ + # + AUTOMAKE_OPTIONS = 1.5 gnits dist-bzip2 + # +-SUBDIRS = lib src nss_nis6 po man etc ++SUBDIRS = lib src po man etc + + CLEANFILES = *~ + +diff -ru yp-tools-3.3-orig/Makefile.in yp-tools-3.3/Makefile.in +--- yp-tools-3.3-orig/Makefile.in 2014-12-05 12:44:37.000000000 +0100 ++++ yp-tools-3.3/Makefile.in 2014-12-10 18:16:20.996550012 +0100 +@@ -382,7 +382,7 @@ + # + AUTOMAKE_OPTIONS = 1.5 gnits dist-bzip2 + # +-SUBDIRS = lib src nss_nis6 po man etc ++SUBDIRS = lib src po man etc + CLEANFILES = *~ + ACLOCAL_AMFLAGS = -I m4 + M4_FILES = m4/getline.m4 diff --git a/yp-tools-4.2.2-strict-prototypes.patch b/yp-tools-4.2.2-strict-prototypes.patch new file mode 100644 index 0000000..546eb6a --- /dev/null +++ b/yp-tools-4.2.2-strict-prototypes.patch @@ -0,0 +1,11 @@ +--- yp-tools-yp-tools-4.2.2/src/yppasswd.c.strict-protorypes 2017-02-21 15:51:03.452034055 +0100 ++++ yp-tools-yp-tools-4.2.2/src/yppasswd.c 2017-02-21 15:51:14.996030455 +0100 +@@ -547,7 +547,7 @@ create_random_salt (char *salt, int num_ + * If other value is set or it is not set at all, SHA-512 is used. + */ + static int +-get_env_hash_id() ++get_env_hash_id(void) + { + const char *v = getenv("YP_PASSWD_HASH"); + if (!v) diff --git a/yp-tools-4.2.3-yppasswd-exclamation_mark.patch b/yp-tools-4.2.3-yppasswd-exclamation_mark.patch new file mode 100644 index 0000000..c85be96 --- /dev/null +++ b/yp-tools-4.2.3-yppasswd-exclamation_mark.patch @@ -0,0 +1,15 @@ +diff -ur yp-tools-4.2.3/src/yppasswd.c yp-tools-4.2.3/src/yppasswd.c +--- yp-tools-4.2.3/src/yppasswd.c 2018-03-27 15:47:48.000000000 +0200 ++++ yp-tools-4.2.3/src/yppasswd.c 2022-08-16 19:02:41.727441211 +0200 +@@ -689,6 +689,11 @@ + } + } + ++ if (strchr(pwd->pw_passwd, '!') != NULL || strchr(pwd->pw_passwd, '*') != NULL) { ++ printf("%s: The account is locked or has no password. Please unlock the account or set an initial password\n", progname); ++ return 1; ++ } ++ + /* Initialize password information */ + memset (&yppwd, '\0', sizeof (yppwd)); + yppwd.newpw.pw_passwd = pwd->pw_passwd; diff --git a/yp-tools-4.2.3-yppasswd.patch b/yp-tools-4.2.3-yppasswd.patch new file mode 100644 index 0000000..4c680e3 --- /dev/null +++ b/yp-tools-4.2.3-yppasswd.patch @@ -0,0 +1,19 @@ + author Filip Januš (fjanus@redhat.com) + date 29. 10. 2019 + + +diff -ur yp-tools-4.2.3/src/yppasswd.c yp-tools-master/src/yppasswd.c +--- yp-tools-4.2.3/src/yppasswd.c 2018-03-27 15:47:48.000000000 +0200 ++++ yp-tools-master/src/yppasswd.c 2019-10-29 12:00:29.000000000 +0100 +@@ -281,6 +281,11 @@ + CLIENT *clnt; + + clnt = clnt_create (master, YPPROG, YPVERS, "udp"); ++ ++ /* clnt_create can return NULL in some cases */ ++ if (clnt == NULL) ++ return NULL; ++ + clnt->cl_auth = authunix_create_default (); + + if (name == NULL) diff --git a/yp-tools.spec b/yp-tools.spec index de1c1e2..9e04312 100644 --- a/yp-tools.spec +++ b/yp-tools.spec @@ -1,23 +1,30 @@ Summary: NIS (or YP) client programs Name: yp-tools -Version: 2.12 -Release: 9%{?dist} -License: GPLv2 -Group: System Environment/Base -Source: ftp://ftp.kernel.org/pub/linux/utils/net/NIS/yp-tools-%{version}.tar.bz2 -# Not sent to upstream -Patch0: yp-tools-2.11-shadow.patch -Patch1: yp-tools-2.12-typo.patch -Patch2: yp-tools-2.12-gethost.patch -Patch3: yp-tools-2.12-hash.patch -Patch4: yp-tools-2.12-crypt.patch -Patch5: yp-tools-2.12-adjunct.patch -Url: http://www.linux-nis.org/nis/yp-tools/index.html -Requires: ypbind +Version: 4.2.3 +Release: 23%{?dist} +License: GPL-2.0-only + +URL: https://www.thkukuk.de/nis/nis/yp-tools/ +Source: https://github.com/thkukuk/yp-tools/archive/v%{version}.tar.gz + +Patch1: yp-tools-2.12-hash.patch +Patch2: yp-tools-2.12-crypt.patch +Patch3: yp-tools-2.12-adjunct.patch +Patch4: yp-tools-4.2.2-strict-prototypes.patch +Patch5: yp-tools-4.2.3-yppasswd.patch +Patch6: yp-tools-4.2.3-yppasswd-exclamation_mark.patch + +BuildRequires: make +BuildRequires: libxcrypt-devel +BuildRequires: autoconf, automake, gettext-devel, libtool, libtirpc-devel, libnsl2-devel +Requires: ypbind >= 3:2.4-2 +Requires: glibc + +%global __filter_GLIBC_PRIVATE 1 %description The Network Information Service (NIS) is a system which provides -network information (login names, passwords, home directories, group +network information (login names, passwords, home directories, groupinformation) to all of the machines on a network. NIS can enable information) to all of the machines on a network. NIS can enable users to login on any machine on the network, as long as the machine has the NIS client programs running and the user's password is @@ -35,35 +42,176 @@ on your network. You will also need to install the ypbind package on every machine running NIS client programs. If you need an NIS server, you'll need to install the ypserv package on one machine on the network. +%package devel +Summary: NIS (or YP) client programs +Requires: yp-tools + +%description devel +Install yp-tools-devel package for developing applications that use yp-tools + + %prep -%setup -q -%patch0 -p1 -b .shadow -%patch1 -p1 -b .typo -%patch2 -p1 -b .gethost -%patch3 -p1 -b .hash -%patch4 -p1 -b .crypt -%patch5 -p1 -b .adjunct +%autosetup -n %{name}-%{version} -p1 + +autoreconf -i -f -v %build + +export CFLAGS="$CFLAGS %{optflags} -Wno-cast-function-type" + +# If needed the yppasswd can be deprecated by --enable-call-passwd %configure --disable-domainname -make + +%make_build %install -rm -rf $RPM_BUILD_ROOT make DESTDIR="$RPM_BUILD_ROOT" INSTALL_PROGRAM=install install %find_lang %name %files -f %{name}.lang -%defattr(-,root,root,-) %doc AUTHORS COPYING README ChangeLog NEWS etc/nsswitch.conf -%doc THANKS TODO -/usr/bin/* +%doc THANKS +%{_bindir}/* + + %{_mandir}/*/* -/usr/sbin/* +%{_sbindir}/* /var/yp/nicknames %changelog +* Fri Jul 17 2026 Fedora Release Engineering - 4.2.3-23 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild + +* Sat Jan 17 2026 Fedora Release Engineering - 4.2.3-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild + +* Fri Jul 25 2025 Fedora Release Engineering - 4.2.3-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild + +* Sat Feb 01 2025 Björn Esser - 4.2.3-20 +- Add explicit BR: libxcrypt-devel + +* Sun Jan 19 2025 Fedora Release Engineering - 4.2.3-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild + +* Sat Jul 20 2024 Fedora Release Engineering - 4.2.3-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + +* Tue Jan 30 2024 Ondrej Sloup - 4.2.3-17 +- Update license tag to the SPDX format (GPL-2.0-only) +- Fix /etc/passwd flags for locked and deactivated account (rhbz#2093381) + +* Sat Jan 27 2024 Fedora Release Engineering - 4.2.3-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Jul 22 2023 Fedora Release Engineering - 4.2.3-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sat Jan 21 2023 Fedora Release Engineering - 4.2.3-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Sat Jul 23 2022 Fedora Release Engineering - 4.2.3-13 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Sat Jan 22 2022 Fedora Release Engineering - 4.2.3-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Nov 12 2021 Björn Esser - 4.2.3-11 +- Rebuild(libnsl2) + +* Fri Jul 23 2021 Fedora Release Engineering - 4.2.3-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Thu Jan 28 2021 Fedora Release Engineering - 4.2.3-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 4.2.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Fri Jan 31 2020 Fedora Release Engineering - 4.2.3-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Oct 29 2019 Filip Januš - 4.2.3-6 +- Add yppasswd patch +- Bug https://bugzilla.redhat.com/show_bug.cgi?id=1671452 +- Pull request https://github.com/thkukuk/yp-tools/pull/7 + +* Sat Jul 27 2019 Fedora Release Engineering - 4.2.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Feb 03 2019 Fedora Release Engineering - 4.2.3-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Mon Jan 14 2019 Björn Esser - 4.2.3-3 +- Rebuilt for libcrypt.so.2 (#1666033) + +* Sat Jul 14 2018 Fedora Release Engineering - 4.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Apr 19 2018 Petr Kubat - 4.2.3-1 +- Update to version 4.2.3 + +* Thu Mar 15 2018 Matej Mužila - 4.2.2-7 +- Disable cast-function-type warning + +* Fri Feb 09 2018 Fedora Release Engineering - 4.2.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Sat Jan 20 2018 Björn Esser - 4.2.2-5 +- Rebuilt for switch to libxcrypt + +* Thu Aug 03 2017 Fedora Release Engineering - 4.2.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Thu Jul 27 2017 Fedora Release Engineering - 4.2.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon May 29 2017 Matej Mužila - 4.2.2-2 +- Require ypbind >= 3:2.4-2 + +* Fri May 19 2017 Matej Mužila - 4.2.2-1 +- Update to version 4.2.2 supporting IPv6 + +* Sat Feb 11 2017 Fedora Release Engineering - 2.14-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Mon Nov 28 2016 Petr Kubat - 2.14-7 +- Modified passwd.adjunct patch by Gilbert E. Detillieux (#1297955) + +* Fri Feb 05 2016 Fedora Release Engineering - 2.14-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Jun 19 2015 Fedora Release Engineering - 2.14-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Mon Aug 18 2014 Fedora Release Engineering - 2.14-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2.14-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sun Aug 04 2013 Fedora Release Engineering - 2.14-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Mon May 06 2013 Honza Horak - 2.14-1 +- New upstream version 2.14 + +* Mon Mar 25 2013 Honza Horak - 2.12-13 +- Fix build for aarch64 + +* Fri Feb 15 2013 Fedora Release Engineering - 2.12-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Sep 24 2012 Honza Horak - 2.12-12 +- Minor spec file fixes + +* Sun Jul 22 2012 Fedora Release Engineering - 2.12-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jul 11 2012 Honza Horak - 2.12-10 +- Minor spec file fixes + * Mon Apr 23 2012 Honza Horak - 2.12-9 - Do not check old passwords using passwd.adjunct feature - Patch from Paul Wouters to handle crypt() returning NULL