diff --git a/.gitignore b/.gitignore index fae6099..c2fe9dc 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,3 @@ 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 1320751..7c8af04 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (v4.2.3.tar.gz) = 2fcdaaeb8af4c3f62aa571a488c04561356681fc18b919ef728cfc1941578870cce74b136959f49e4ab04f988a79252163c1abe30b357788cb0b5faca7b5d147 +ba1f121c17e3ad65368be173b977cd13 yp-tools-2.14.tar.bz2 diff --git a/yp-tools-2.11-shadow.patch b/yp-tools-2.11-shadow.patch new file mode 100644 index 0000000..b468824 --- /dev/null +++ b/yp-tools-2.11-shadow.patch @@ -0,0 +1,11 @@ +diff -up ./src/yppasswd.c.shadow ./src/yppasswd.c +--- ./src/yppasswd.c.shadow 2010-04-21 11:24:15.000000000 +0200 ++++ ./src/yppasswd.c 2013-05-06 22:31:39.984229577 +0200 +@@ -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 a32b69d..b1dd02d 100644 --- a/yp-tools-2.12-adjunct.patch +++ b/yp-tools-2.12-adjunct.patch @@ -1,11 +1,12 @@ 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 -@@ -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); +@@ -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); diff --git a/yp-tools-2.12-crypt.patch b/yp-tools-2.12-crypt.patch index 5e8ca41..6d03d52 100644 --- a/yp-tools-2.12-crypt.patch +++ b/yp-tools-2.12-crypt.patch @@ -1,6 +1,30 @@ 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-3.3-no-nss-nis6.patch b/yp-tools-3.3-no-nss-nis6.patch deleted file mode 100644 index 5abab57..0000000 --- a/yp-tools-3.3-no-nss-nis6.patch +++ /dev/null @@ -1,24 +0,0 @@ -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 deleted file mode 100644 index 546eb6a..0000000 --- a/yp-tools-4.2.2-strict-prototypes.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100644 index c85be96..0000000 --- a/yp-tools-4.2.3-yppasswd-exclamation_mark.patch +++ /dev/null @@ -1,15 +0,0 @@ -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 deleted file mode 100644 index 4c680e3..0000000 --- a/yp-tools-4.2.3-yppasswd.patch +++ /dev/null @@ -1,19 +0,0 @@ - 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 9e04312..b671a59 100644 --- a/yp-tools.spec +++ b/yp-tools.spec @@ -1,30 +1,22 @@ Summary: NIS (or YP) client programs Name: yp-tools -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 +Version: 2.14 +Release: 5%{?dist} +License: GPLv2 +Group: System Environment/Base +Source: http://www.linux-nis.org/download/yp-tools/yp-tools-%{version}.tar.bz2 +# Not sent to upstream +Patch0: yp-tools-2.11-shadow.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 +BuildRequires: autoconf, automake, gettext-devel +Requires: ypbind %description The Network Information Service (NIS) is a system which provides -network information (login names, passwords, home directories, groupinformation) to all of the machines on a network. NIS can enable +network information (login names, passwords, home directories, group 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 @@ -42,27 +34,17 @@ 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 -%autosetup -n %{name}-%{version} -p1 - -autoreconf -i -f -v +%setup -q +%patch0 -p1 -b .shadow +%patch3 -p1 -b .hash +%patch4 -p1 -b .crypt +%patch5 -p1 -b .adjunct +autoreconf -i -f %build - -export CFLAGS="$CFLAGS %{optflags} -Wno-cast-function-type" - -# If needed the yppasswd can be deprecated by --enable-call-passwd %configure --disable-domainname - -%make_build +make %install make DESTDIR="$RPM_BUILD_ROOT" INSTALL_PROGRAM=install install @@ -71,117 +53,13 @@ make DESTDIR="$RPM_BUILD_ROOT" INSTALL_PROGRAM=install install %files -f %{name}.lang %doc AUTHORS COPYING README ChangeLog NEWS etc/nsswitch.conf -%doc THANKS +%doc THANKS TODO %{_bindir}/* - - %{_mandir}/*/* %{_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