Compare commits
3 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9c1cdd6642 | ||
|
|
87330de9ef | ||
|
|
9b1a333e10 |
4 changed files with 118 additions and 65 deletions
24
kbd-1.15.5-loadkeys-search-path.patch
Normal file
24
kbd-1.15.5-loadkeys-search-path.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff -up kbd-1.15.5/src/loadkeys.c.orig kbd-1.15.5/src/loadkeys.c
|
||||
--- kbd-1.15.5/src/loadkeys.c.orig 2013-11-19 10:03:28.544600690 +0100
|
||||
+++ kbd-1.15.5/src/loadkeys.c 2013-11-19 10:05:21.018542306 +0100
|
||||
@@ -168,7 +168,7 @@ static void attr_noreturn usage(void)
|
||||
}
|
||||
|
||||
char **dirpath;
|
||||
-char *dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", KERNDIR "/", 0 };
|
||||
+char *dirpath1[] = { "", DATADIR "/" KEYMAPDIR "/**", DATADIR "/" XKBKEYMAPDIR "/", DATADIR "/" LEGACYKEYMAPDIR "/**", KERNDIR "/", 0 };
|
||||
char *dirpath2[] = { 0, 0 };
|
||||
char *suffixes[] = { "", ".kmap", ".map", 0 };
|
||||
|
||||
diff -up kbd-1.15.5/src/paths.h.orig kbd-1.15.5/src/paths.h
|
||||
--- kbd-1.15.5/src/paths.h.orig 2013-11-19 10:02:07.117206075 +0100
|
||||
+++ kbd-1.15.5/src/paths.h 2013-11-19 10:03:07.900722065 +0100
|
||||
@@ -5,6 +5,8 @@
|
||||
* The following five subdirectories are defined:
|
||||
*/
|
||||
#define KEYMAPDIR "keymaps"
|
||||
+#define XKBKEYMAPDIR "keymaps/xkb"
|
||||
+#define LEGACYKEYMAPDIR "keymaps/legacy"
|
||||
#define UNIMAPDIR "unimaps"
|
||||
#define TRANSDIR "consoletrans"
|
||||
#define VIDEOMODEDIR "videomodes"
|
||||
61
kbd-1.15.5-vlock-more-pam.patch
Normal file
61
kbd-1.15.5-vlock-more-pam.patch
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
--- a/src/vlock/auth.c
|
||||
+++ b/src/vlock/auth.c
|
||||
@@ -4,7 +4,7 @@
|
||||
PAM authentication routine for vlock, the VT locking program for linux.
|
||||
|
||||
Copyright (C) 1994-1998 Michael K. Johnson <johnsonm@redhat.com>
|
||||
- Copyright (C) 2002, 2005 Dmitry V. Levin <ldv@altlinux.org>
|
||||
+ Copyright (C) 2002, 2005, 2013 Dmitry V. Levin <ldv@altlinux.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -36,6 +36,25 @@
|
||||
/* Unrecognized PAM error timeout. */
|
||||
#define ERROR_TIMEOUT 10
|
||||
|
||||
+static int
|
||||
+do_account_password_management (pam_handle_t *pamh)
|
||||
+{
|
||||
+ int rc;
|
||||
+
|
||||
+ /* Whether the authenticated user is allowed to log in? */
|
||||
+ rc = pam_acct_mgmt (pamh, 0);
|
||||
+
|
||||
+ /* Do we need to prompt the user for a new password? */
|
||||
+ if (rc == PAM_NEW_AUTHTOK_REQD)
|
||||
+ rc = pam_chauthtok (pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
|
||||
+
|
||||
+ /* Extend the lifetime of the existing credentials. */
|
||||
+ if (rc == PAM_SUCCESS)
|
||||
+ rc = pam_setcred (pamh, PAM_REFRESH_CRED);
|
||||
+
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
int
|
||||
get_password (pam_handle_t * pamh, const char *username, const char *tty)
|
||||
{
|
||||
@@ -84,6 +103,23 @@ get_password (pam_handle_t * pamh, const char *username, const char *tty)
|
||||
switch (rc)
|
||||
{
|
||||
case PAM_SUCCESS:
|
||||
+ rc = do_account_password_management (pamh);
|
||||
+
|
||||
+ if (rc != PAM_SUCCESS)
|
||||
+ {
|
||||
+ /*
|
||||
+ * The user was authenticated but
|
||||
+ * either account or password management
|
||||
+ * returned an error.
|
||||
+ */
|
||||
+ printf ("%s.\n\n\n",
|
||||
+ pam_strerror (pamh, rc));
|
||||
+ fflush (stdout);
|
||||
+ pam_end (pamh, rc);
|
||||
+ pamh = 0;
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
pam_end (pamh, rc);
|
||||
/* Log the fact of console unlocking. */
|
||||
syslog (LOG_NOTICE,
|
||||
95
kbd.spec
95
kbd.spec
|
|
@ -1,6 +1,6 @@
|
|||
Name: kbd
|
||||
Version: 1.15.5
|
||||
Release: 9%{?dist}
|
||||
Release: 12%{?dist}
|
||||
Summary: Tools for configuring the console (keyboard, virtual terminals, etc.)
|
||||
|
||||
Group: System Environment/Base
|
||||
|
|
@ -12,6 +12,7 @@ Source3: kbd-latarcyrheb-16-fixed.tar.bz2
|
|||
Source4: fr-dvorak.tar.bz2
|
||||
Source5: kbd-latarcyrheb-32.tar.bz2
|
||||
Source6: xml2lst.pl
|
||||
Source7: vlock.pamd
|
||||
# Patch0: puts additional information into man pages
|
||||
Patch0: kbd-1.15-keycodes-man.patch
|
||||
# Patch1: sparc modifications
|
||||
|
|
@ -24,6 +25,10 @@ Patch3: kbd-1.15.3-dumpkeys-man.patch
|
|||
Patch4: kbd-1.15.5-loadkeys-regression.patch
|
||||
# Patch5: fixes decimal separator in Swiss German keyboard layout, bz 882529
|
||||
Patch5: kbd-1.15.5-sg-decimal-separator.patch
|
||||
# Patch6: adds xkb and legacy keymaps subdirs to loadkyes search path, bz 1028207
|
||||
Patch6: kbd-1.15.5-loadkeys-search-path.patch
|
||||
# Patch7: implement PAM account and password management, backported from upstream
|
||||
Patch7: kbd-1.15.5-vlock-more-pam.patch
|
||||
|
||||
BuildRequires: bison, flex, gettext, pam-devel
|
||||
BuildRequires: console-setup, xkeyboard-config
|
||||
|
|
@ -65,6 +70,8 @@ cp -fp %{SOURCE6} .
|
|||
%patch3 -p1 -b .dumpkeys-man
|
||||
%patch4 -p1 -b .loadkeys-regression
|
||||
%patch5 -p1 -b .sg-decimal-separator
|
||||
%patch6 -p1 -b .loadkeys-search-path
|
||||
%patch7 -p1 -b .vlock-more-pam
|
||||
|
||||
# 7-bit maps are obsolete; so are non-euro maps
|
||||
pushd data/keymaps/i386
|
||||
|
|
@ -129,6 +136,10 @@ ln -s openvt $RPM_BUILD_ROOT%{_bindir}/open
|
|||
cp -r $RPM_BUILD_ROOT/lib/kbd/locale/ $RPM_BUILD_ROOT%{_datadir}/locale
|
||||
rm -rf $RPM_BUILD_ROOT/lib/kbd/locale
|
||||
|
||||
# Install PAM configuration for vlock
|
||||
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/pam.d
|
||||
install -m 644 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/pam.d/vlock
|
||||
|
||||
# Move original keymaps to legacy directory
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/legacy
|
||||
mv $RPM_BUILD_ROOT/lib/kbd/keymaps/{amiga,atari,i386,include,mac,ppc,sun} $RPM_BUILD_ROOT/lib/kbd/keymaps/legacy
|
||||
|
|
@ -149,70 +160,8 @@ while read line; do
|
|||
ckbcomp "$line" | gzip > $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/"$line".map.gz
|
||||
done < layouts-list-uniq.lst
|
||||
|
||||
# Create symbolic links from the old keymap names to the matching(?) entries of the X11 keymaps
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty
|
||||
mkdir -p $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/dvorak
|
||||
ln -s /lib/kbd/keymaps/xkb/ch-de_nodeadkeys.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/sg.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/nl.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/nl.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/mk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/mk-utf.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/tr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/trq.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/gb.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/uk.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/is.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/is-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/de.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/de.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/latam.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/la-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/us.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/kr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ko.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/de.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/de-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/si.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/slovene.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/hu-qwerty.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/hu101.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/jp.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/jp106.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/hr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/croat.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/fi.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/fi-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/it.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/it2.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/hu.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/hu.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/rs-latin.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sr-latin.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/fi.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/fi.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ch-fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/fr_CH.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/dk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/dk-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/it.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/it.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ua.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ua-utf.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ch-de_nodeadkeys.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/sg-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/be.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/be-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/dk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/dk.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr-pc.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/bg-phonetic.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/bg_pho-utf8.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/it.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/it-ibm.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/cz.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/cz-us-qwertz.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/br.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/br-abnt2.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ro.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ro.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/us-intl.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/us-acentos.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/pt.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/pt-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/de-nodeadkeys.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/de-latin1-nodeadkeys.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/no.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/no.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/bg.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/bg_bds-utf8.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/us-dvorak.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/dvorak/dvorak.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ru.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/ru.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/cz-qwerty.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/cz-lat2.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/pl.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/pl2.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/es.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/es.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ee.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/et.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/sk.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sk-qwerty.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/fr-latin9.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/azerty/fr-latin9.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ch-fr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwertz/fr_CH-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/ca.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/cf.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/se.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sv-latin1.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/rs.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/sr-cy.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/gr.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/gr.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/by.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/by.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/il.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/il.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/kz.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/kazakh.map.gz
|
||||
ln -s /lib/kbd/keymaps/xkb/lt.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/lt.map.gz
|
||||
# defkeymap
|
||||
ln -s /lib/kbd/keymaps/xkb/us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty/defkeymap.map.gz
|
||||
# wipe converted layouts which cannot input ASCII (#1031848)
|
||||
zgrep -L "U+0041" $RPM_BUILD_ROOT/lib/kbd/keymaps/xkb/* | xargs rm -f
|
||||
|
||||
%find_lang %{name}
|
||||
|
||||
|
|
@ -221,6 +170,7 @@ ln -s /lib/kbd/keymaps/xkb/us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty
|
|||
/bin/*
|
||||
%{_bindir}/*
|
||||
%{_mandir}/*/*
|
||||
%config(noreplace) %{_sysconfdir}/pam.d/vlock
|
||||
|
||||
%files misc
|
||||
/lib/kbd
|
||||
|
|
@ -230,6 +180,21 @@ ln -s /lib/kbd/keymaps/xkb/us.map.gz $RPM_BUILD_ROOT/lib/kbd/keymaps/i386/qwerty
|
|||
/lib/kbd/keymaps/legacy
|
||||
|
||||
%changelog
|
||||
* Wed Nov 27 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 1.15.5-12
|
||||
- Fix vlock doesn't perform PAM account management or credential reinitialization
|
||||
(patch by Dmitry V. Levin)
|
||||
Resolves: #913311
|
||||
|
||||
* Thu Nov 21 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 1.15.5-11
|
||||
- Add xkb and legacy keymaps subdirs to loadkyes search path, remove symlink
|
||||
Related: #1028207
|
||||
- Don't convert layouts that can't input ASCII (patch by Adam Williamson)
|
||||
Resolves: #1031848
|
||||
|
||||
* Wed Nov 06 2013 Vitezslav Crhonek <vcrhonek@redhat.com> - 1.15.5-10
|
||||
- Add PAM config for vlock
|
||||
Resolves: #913309
|
||||
|
||||
* Sat Aug 03 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.15.5-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
|
||||
|
||||
|
|
|
|||
3
vlock.pamd
Normal file
3
vlock.pamd
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#%PAM-1.0
|
||||
auth include system-auth
|
||||
account required pam_permit.so
|
||||
Loading…
Add table
Add a link
Reference in a new issue