Hello community, here is the log from the commit of package util-linux for openSUSE:Factory checked in at 2019-11-01 15:12:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/util-linux (Old) and /work/SRC/openSUSE:Factory/.util-linux.new.2990 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "util-linux" Fri Nov 1 15:12:36 2019 rev:242 rq:743443 version:2.34 Changes: -------- --- /work/SRC/openSUSE:Factory/util-linux/python3-libmount.changes 2019-09-26 20:35:39.179437230 +0200 +++ /work/SRC/openSUSE:Factory/.util-linux.new.2990/python3-libmount.changes 2019-11-01 15:12:38.100637443 +0100 @@ -1,0 +2,13 @@ +Tue Oct 8 14:48:15 CEST 2019 - kukuk@suse.de + +- libeconf.patch: fix a long int error on 32bit + +------------------------------------------------------------------- +Tue Oct 1 13:19:42 CEST 2019 - kukuk@suse.de + +- libeconf.patch: Add support for libeconf +- Move /etc/pam.d/* to /usr/etc/pam.d +- Remove migration code for su from coreutils to util-linux, not + needed anymore + +------------------------------------------------------------------- util-linux-systemd.changes: same change util-linux.changes: same change New: ---- libeconf.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python3-libmount.spec ++++++ --- /var/tmp/diff_new_pack.ZAflRW/_old 2019-11-01 15:12:42.204642796 +0100 +++ /var/tmp/diff_new_pack.ZAflRW/_new 2019-11-01 15:12:42.212642806 +0100 @@ -22,6 +22,12 @@ %bcond_with enable_last %endif +%if ! %{defined _distconfdir} +%define _distconfdir %{_sysconfdir} +%else +%define no_config 1 +%endif + Name: python3-libmount %define _name util-linux # WARNING: Never edit this file!!! Edit util-linux.spec and call pre_checkin.sh to update spec files: @@ -79,6 +85,7 @@ BuildRequires: fdupes BuildRequires: gettext-devel BuildRequires: libcap-ng-devel +BuildRequires: libeconf-devel BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -139,6 +146,7 @@ Patch0: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff Patch1: libmount-print-a-blacklist-hint-for-unknown-filesyst.patch Patch2: Add-documentation-on-blacklisted-modules-to-mount-8-.patch +Patch3: libeconf.patch Patch813: e3bb9bfb76c17b1d05814436ced62c05c4011f48.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -404,6 +412,7 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %patch813 -p1 %build @@ -568,6 +577,7 @@ %else --without-python \ %endif + --enable-vendordir=%{_distconfdir} # # Safety check: HAVE_UUIDD should be always 1: @@ -610,17 +620,17 @@ %install %if %build_util_linux -mkdir -p %{buildroot}{%{_sysconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir},%{_sysconfdir}/issue.d} +mkdir -p %{buildroot}{%{_distconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir},%{_sysconfdir}/issue.d} install -m 644 %{SOURCE51} %{buildroot}%{_sysconfdir}/blkid.conf -install -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/pam.d/login -install -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/pam.d/remote -install -m 644 %{SOURCE14} %{buildroot}%{_sysconfdir}/pam.d/runuser -install -m 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/pam.d/runuser-l -install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su -install -m 644 %{SOURCE16} %{buildroot}%{_sysconfdir}/pam.d/su-l -install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/default/su +install -m 644 %{SOURCE8} %{buildroot}%{_distconfdir}/pam.d/login +install -m 644 %{SOURCE9} %{buildroot}%{_distconfdir}/pam.d/remote +install -m 644 %{SOURCE14} %{buildroot}%{_distconfdir}/pam.d/runuser +install -m 644 %{SOURCE15} %{buildroot}%{_distconfdir}/pam.d/runuser-l +install -m 644 %{SOURCE10} %{buildroot}%{_distconfdir}/pam.d/su +install -m 644 %{SOURCE16} %{buildroot}%{_distconfdir}/pam.d/su-l +install -m 644 %{SOURCE11} %{buildroot}%{_distconfdir}/default/su sed 's/\bsu\b/runuser/g' <%{SOURCE11} >runuser.default -install -m 644 runuser.default %{buildroot}%{_sysconfdir}/default/runuser +install -m 644 runuser.default %{buildroot}%{_distconfdir}/default/runuser %endif # # util-linux install @@ -745,30 +755,16 @@ %if %build_util_linux %pre %service_add_pre raw.service +# move outdated pam.d/*.rpmsave files away +for i in login remote runuser runuser-l su su-l ; do + test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i}.rpmsave.old ||: +done %post %service_add_post raw.service %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount %{_bindir}/umount %set_permissions %{_bindir}/su # -# Safely migrate PAM files from coreutils to util-linux -# (openSUSE 12.3->13.1, SLE11->SLE12) -# -# coreutils with su were upgraded (and su removed) before util-linux -# with su was installed (see the Conflicts above). If the admin edited -# the PAM file, the seemingly no more used modified file was saved as -# .rpmsave and the new clean file was installed. As we want -# "noreplace" upgrade, and the contents of the clean file contents has -# no changes, we should restore admin modification, and rename the -# clean file to .rpmnew, as it would happen if the file was not moved -# from one package to another. -for PAM_FILE in su su-l ; do - if test -f %{_sysconfdir}/pam.d/$PAM_FILE.rpmsave ; then - mv %{_sysconfdir}/pam.d/$PAM_FILE %{_sysconfdir}/pam.d/$PAM_FILE.rpmnew - mv %{_sysconfdir}/pam.d/$PAM_FILE.rpmsave %{_sysconfdir}/pam.d/$PAM_FILE - fi -done -# # If outdated PAM file is detected, issue a warning. for PAM_FILE in login remote runuser runuser-l su su-l ; do if test -f %{_sysconfdir}/pam.d/$PAM_FILE.rpmnew ; then @@ -793,6 +789,12 @@ fi fi +%posttrans +# Migration to /usr/etc. +for i in login remote runuser runuser-l su su-l; do + test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i} ||: +done + %preun %service_del_preun raw.service @@ -890,6 +892,17 @@ %config(noreplace) %attr(644,root,root) %{_sysconfdir}/raw %config(noreplace) %{_sysconfdir}/filesystems %config(noreplace) %{_sysconfdir}/blkid.conf +%if %{defined no_config} +%{_distconfdir}/pam.d/login +%{_distconfdir}/pam.d/remote +%{_distconfdir}/pam.d/runuser +%{_distconfdir}/pam.d/runuser-l +%{_distconfdir}/pam.d/su +%{_distconfdir}/pam.d/su-l +%{_distconfdir}/default +%{_distconfdir}/default/runuser +%{_distconfdir}/default/su +%else %config(noreplace) %{_sysconfdir}/pam.d/login %config(noreplace) %{_sysconfdir}/pam.d/remote %config(noreplace) %{_sysconfdir}/pam.d/runuser @@ -898,6 +911,7 @@ %config(noreplace) %{_sysconfdir}/pam.d/su-l %config(noreplace) %{_sysconfdir}/default/runuser %config(noreplace) %{_sysconfdir}/default/su +%endif %config %dir %{_sysconfdir}/issue.d #UsrMerge /bin/kill util-linux-systemd.spec: same change ++++++ util-linux.spec ++++++ --- /var/tmp/diff_new_pack.ZAflRW/_old 2019-11-01 15:12:42.492643172 +0100 +++ /var/tmp/diff_new_pack.ZAflRW/_new 2019-11-01 15:12:42.524643213 +0100 @@ -22,6 +22,12 @@ %bcond_with enable_last %endif +%if ! %{defined _distconfdir} +%define _distconfdir %{_sysconfdir} +%else +%define no_config 1 +%endif + Name: util-linux %define _name util-linux # WARNING: After editing this file please call pre_checkin.sh to update spec files: @@ -79,6 +85,7 @@ BuildRequires: fdupes BuildRequires: gettext-devel BuildRequires: libcap-ng-devel +BuildRequires: libeconf-devel BuildRequires: libselinux-devel BuildRequires: libsepol-devel BuildRequires: libtool @@ -139,6 +146,7 @@ Patch0: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff Patch1: libmount-print-a-blacklist-hint-for-unknown-filesyst.patch Patch2: Add-documentation-on-blacklisted-modules-to-mount-8-.patch +Patch3: libeconf.patch Patch813: e3bb9bfb76c17b1d05814436ced62c05c4011f48.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # @@ -404,6 +412,7 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch3 -p1 %patch813 -p1 %build @@ -568,6 +577,7 @@ %else --without-python \ %endif + --enable-vendordir=%{_distconfdir} # # Safety check: HAVE_UUIDD should be always 1: @@ -610,17 +620,17 @@ %install %if %build_util_linux -mkdir -p %{buildroot}{%{_sysconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir},%{_sysconfdir}/issue.d} +mkdir -p %{buildroot}{%{_distconfdir}/{pam.d,default},%{_mandir}/man{1,8},/bin,/sbin,%{_bindir},%{_sbindir},%{_infodir},%{_sysconfdir}/issue.d} install -m 644 %{SOURCE51} %{buildroot}%{_sysconfdir}/blkid.conf -install -m 644 %{SOURCE8} %{buildroot}%{_sysconfdir}/pam.d/login -install -m 644 %{SOURCE9} %{buildroot}%{_sysconfdir}/pam.d/remote -install -m 644 %{SOURCE14} %{buildroot}%{_sysconfdir}/pam.d/runuser -install -m 644 %{SOURCE15} %{buildroot}%{_sysconfdir}/pam.d/runuser-l -install -m 644 %{SOURCE10} %{buildroot}%{_sysconfdir}/pam.d/su -install -m 644 %{SOURCE16} %{buildroot}%{_sysconfdir}/pam.d/su-l -install -m 644 %{SOURCE11} %{buildroot}%{_sysconfdir}/default/su +install -m 644 %{SOURCE8} %{buildroot}%{_distconfdir}/pam.d/login +install -m 644 %{SOURCE9} %{buildroot}%{_distconfdir}/pam.d/remote +install -m 644 %{SOURCE14} %{buildroot}%{_distconfdir}/pam.d/runuser +install -m 644 %{SOURCE15} %{buildroot}%{_distconfdir}/pam.d/runuser-l +install -m 644 %{SOURCE10} %{buildroot}%{_distconfdir}/pam.d/su +install -m 644 %{SOURCE16} %{buildroot}%{_distconfdir}/pam.d/su-l +install -m 644 %{SOURCE11} %{buildroot}%{_distconfdir}/default/su sed 's/\bsu\b/runuser/g' <%{SOURCE11} >runuser.default -install -m 644 runuser.default %{buildroot}%{_sysconfdir}/default/runuser +install -m 644 runuser.default %{buildroot}%{_distconfdir}/default/runuser %endif # # util-linux install @@ -745,30 +755,16 @@ %if %build_util_linux %pre %service_add_pre raw.service +# move outdated pam.d/*.rpmsave files away +for i in login remote runuser runuser-l su su-l ; do + test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i}.rpmsave.old ||: +done %post %service_add_post raw.service %set_permissions %{_bindir}/wall %{_bindir}/write %{_bindir}/mount %{_bindir}/umount %set_permissions %{_bindir}/su # -# Safely migrate PAM files from coreutils to util-linux -# (openSUSE 12.3->13.1, SLE11->SLE12) -# -# coreutils with su were upgraded (and su removed) before util-linux -# with su was installed (see the Conflicts above). If the admin edited -# the PAM file, the seemingly no more used modified file was saved as -# .rpmsave and the new clean file was installed. As we want -# "noreplace" upgrade, and the contents of the clean file contents has -# no changes, we should restore admin modification, and rename the -# clean file to .rpmnew, as it would happen if the file was not moved -# from one package to another. -for PAM_FILE in su su-l ; do - if test -f %{_sysconfdir}/pam.d/$PAM_FILE.rpmsave ; then - mv %{_sysconfdir}/pam.d/$PAM_FILE %{_sysconfdir}/pam.d/$PAM_FILE.rpmnew - mv %{_sysconfdir}/pam.d/$PAM_FILE.rpmsave %{_sysconfdir}/pam.d/$PAM_FILE - fi -done -# # If outdated PAM file is detected, issue a warning. for PAM_FILE in login remote runuser runuser-l su su-l ; do if test -f %{_sysconfdir}/pam.d/$PAM_FILE.rpmnew ; then @@ -793,6 +789,12 @@ fi fi +%posttrans +# Migration to /usr/etc. +for i in login remote runuser runuser-l su su-l; do + test -f /etc/pam.d/${i}.rpmsave && mv -v /etc/pam.d/${i}.rpmsave /etc/pam.d/${i} ||: +done + %preun %service_del_preun raw.service @@ -890,6 +892,17 @@ %config(noreplace) %attr(644,root,root) %{_sysconfdir}/raw %config(noreplace) %{_sysconfdir}/filesystems %config(noreplace) %{_sysconfdir}/blkid.conf +%if %{defined no_config} +%{_distconfdir}/pam.d/login +%{_distconfdir}/pam.d/remote +%{_distconfdir}/pam.d/runuser +%{_distconfdir}/pam.d/runuser-l +%{_distconfdir}/pam.d/su +%{_distconfdir}/pam.d/su-l +%{_distconfdir}/default +%{_distconfdir}/default/runuser +%{_distconfdir}/default/su +%else %config(noreplace) %{_sysconfdir}/pam.d/login %config(noreplace) %{_sysconfdir}/pam.d/remote %config(noreplace) %{_sysconfdir}/pam.d/runuser @@ -898,6 +911,7 @@ %config(noreplace) %{_sysconfdir}/pam.d/su-l %config(noreplace) %{_sysconfdir}/default/runuser %config(noreplace) %{_sysconfdir}/default/su +%endif %config %dir %{_sysconfdir}/issue.d #UsrMerge /bin/kill ++++++ libeconf.patch ++++++
From 9e584ff32428b9832470d19a54bba4838f3a6c34 Mon Sep 17 00:00:00 2001 From: Thorsten Kukuk
Date: Tue, 3 Sep 2019 15:04:43 +0200 Subject: [PATCH 1/2] Add support for libeconf
---
configure.ac | 27 ++++++
login-utils/Makemodule.am | 36 +++++++
login-utils/logindefs.c | 195 +++++++++++++++++++++++++++++++++++---
login-utils/su-common.c | 7 ++
4 files changed, 254 insertions(+), 11 deletions(-)
diff --git a/configure.ac b/configure.ac
index d4cf46fea..a3881ab8c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2232,6 +2232,31 @@ AS_IF([test "x$with_smack" = xyes], [
AC_DEFINE([HAVE_SMACK], [1], [Add SMACK support])
])
+AC_ARG_WITH([econf],
+ AS_HELP_STRING([--without-econf], [do not use libeconf]),
+ [], [with_econf=check]
+)
+
+have_econf=no
+AS_IF([test "x$with_econf" != xno], [
+ # new version -- all libsystemd-* libs merged into libsystemd
+ PKG_CHECK_MODULES([ECONF], [libeconf], [have_econf=yes], [have_econf=no])
+ AS_CASE([$with_econf:$have_econf],
+ [yes:no],
+ [AC_MSG_ERROR([libeconf expected but libeconf not found])],
+ [*:yes],
+ AC_DEFINE([HAVE_LIBECONF], [1], [Define if libeconf is available])
+ )
+])
+AM_CONDITIONAL([HAVE_ECONF], [test "x$have_econf" = xyes])
+
+AC_ARG_ENABLE([vendordir],
+ AS_HELP_STRING([--enable-vendordir=DIR], [Direcotry for istribution provided configuration files]),,
+ []
+)
+AC_SUBST([vendordir], [$enable_vendordir])
+AM_CONDITIONAL([HAVE_VENDORDIR], [test "x$enable_vendordir" != x])
+
AC_ARG_WITH([bashcompletiondir],
AS_HELP_STRING([--with-bashcompletiondir=DIR], [Bash completions directory]),
@@ -2461,6 +2486,7 @@ AC_MSG_RESULT([
usrbin_execdir: ${usrbin_execdir}
usrsbin_execdir: ${usrsbin_execdir}
usrlib_execdir: ${usrlib_execdir}
+ vendordir: ${enable_vendordir}
compiler: ${CC}
cflags: ${CFLAGS}
@@ -2476,6 +2502,7 @@ AC_MSG_RESULT([
Bash completions: ${with_bashcompletiondir}
Systemd support: ${have_systemd}
Systemd unitdir: ${with_systemdsystemunitdir}
+ libeconf support: ${have_econf}
Btrfs support: ${have_btrfs}
Wide-char support: ${build_widechar}
diff --git a/login-utils/Makemodule.am b/login-utils/Makemodule.am
index aafbea307..22a6c867e 100644
--- a/login-utils/Makemodule.am
+++ b/login-utils/Makemodule.am
@@ -44,6 +44,9 @@ login_SOURCES = \
login-utils/logindefs.c \
login-utils/logindefs.h
login_LDADD = $(LDADD) libcommon.la -lpam
+if HAVE_VENDORDIR
+login_CFLAGS = $(AM_CFLAGS) -DHAVE_VENDORDIR -DVENDORDIR=\"@vendordir@\"
+endif
if HAVE_LINUXPAM
login_LDADD += -lpam_misc
endif
@@ -53,6 +56,9 @@ endif
if HAVE_SELINUX
login_LDADD += -lselinux
endif
+if HAVE_ECONF
+login_LDADD += -leconf
+endif
endif # BUILD_LOGIN
@@ -121,8 +127,14 @@ chfn_SOURCES = \
login-utils/logindefs.h \
$(chfn_chsh_sources)
chfn_CFLAGS = $(chfn_chsh_cflags)
+if HAVE_VENDORDIR
+chfn_CFLAGS += -DHAVE_VENDORDIR -DVENDORDIR=\"@vendordir@\"
+endif
chfn_LDFLAGS = $(chfn_chsh_ldflags)
chfn_LDADD = $(LDADD) $(chfn_chsh_ldadd)
+if HAVE_ECONF
+chfn_LDADD += -leconf
+endif
chsh_SOURCES = login-utils/chsh.c $(chfn_chsh_sources)
chsh_CFLAGS = $(chfn_chsh_cflags)
@@ -141,6 +153,9 @@ su_SOURCES = \
login-utils/logindefs.c \
login-utils/logindefs.h
su_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
+if HAVE_VENDORDIR
+su_CFLAGS += -DHAVE_VENDORDIR -DVENDORDIR=\"@vendordir@\"
+endif
su_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
su_LDADD = $(LDADD) libcommon.la -lpam
if HAVE_LINUXPAM
@@ -149,6 +164,9 @@ endif
if HAVE_UTIL
su_LDADD += -lutil
endif
+if HAVE_ECONF
+su_LDADD += -leconf
+endif
endif # BUILD_SU
@@ -168,6 +186,12 @@ endif
if HAVE_UTIL
runuser_LDADD += -lutil
endif
+if HAVE_ECONF
+runuser_LDADD += -leconf
+endif
+if HAVE_VENDORDIR
+runuser_CFLAGS = $(AM_CFLAGS) -DHAVE_VENDORDIR -DVENDORDIR=\"@vendordir@\"
+endif
endif # BUILD_RUNUSER
@@ -192,6 +216,9 @@ lslogins_SOURCES = \
login-utils/logindefs.h
lslogins_LDADD = $(LDADD) libcommon.la libsmartcols.la
lslogins_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
+if HAVE_VENDORDIR
+lslogins_CFLAGS += -DHAVE_VENDORDIR -DVENDORDIR=\"@vendordir@\"
+endif
if HAVE_SELINUX
lslogins_LDADD += -lselinux
endif
@@ -199,6 +226,9 @@ if HAVE_SYSTEMD
lslogins_LDADD += $(SYSTEMD_LIBS) $(SYSTEMD_JOURNAL_LIBS)
lslogins_CFLAGS += $(SYSTEMD_CFLAGS) $(SYSTEMD_JOURNAL_CFLAGS)
endif
+if HAVE_ECONF
+lslogins_LDADD += -leconf
+endif
endif # BUILD_LSLOGINS
if BUILD_VIPW
@@ -231,6 +261,12 @@ test_logindefs_SOURCES = \
login-utils/logindefs.c \
login-utils/logindefs.h
test_logindefs_CPPFLAGS = -DTEST_PROGRAM $(AM_CPPFLAGS)
+if HAVE_VENDORDIR
+test_logindefs_CPPFLAGS += -DHAVE_VENDORDIR -DVENDORDIR=\"@vendordir@\"
+endif
+if HAVE_ECONF
+test_logindefs_LDADD = -leconf
+endif
install-exec-hook:
diff --git a/login-utils/logindefs.c b/login-utils/logindefs.c
index 2b505d255..9075ad9e7 100644
--- a/login-utils/logindefs.c
+++ b/login-utils/logindefs.c
@@ -38,6 +38,18 @@
#include "pathnames.h"
#include "xalloc.h"
+
+static void (*logindefs_loader)(void *) = NULL;
+static void *logindefs_loader_data = NULL;
+
+void logindefs_set_loader(void (*loader)(void *data), void *data)
+{
+ logindefs_loader = loader;
+ logindefs_loader_data = data;
+}
+
+#ifndef HAVE_LIBECONF
+
struct item {
char *name; /* name of the option. */
char *value; /* value of the option. */
@@ -48,9 +60,6 @@ struct item {
static struct item *list = NULL;
-static void (*logindefs_loader)(void *) = NULL;
-static void *logindefs_loader_data = NULL;
-
void free_getlogindefs_data(void)
{
struct item *ptr;
@@ -145,12 +154,6 @@ void logindefs_load_file(const char *filename)
fclose(f);
}
-void logindefs_set_loader(void (*loader)(void *data), void *data)
-{
- logindefs_loader = loader;
- logindefs_loader_data = data;
-}
-
static void load_defaults(void)
{
if (logindefs_loader)
@@ -232,6 +235,156 @@ const char *getlogindefs_str(const char *name, const char *dflt)
return ptr->value;
}
+#else
+
+#include
From 8c8aaa3e022913fbfc54bae3a26fcd13ce3412bf Mon Sep 17 00:00:00 2001 From: Thorsten Kukuk
Date: Wed, 4 Sep 2019 14:59:25 +0200 Subject: [PATCH 2/2] Adjust test output to pass test suite
--- login-utils/logindefs.c | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/login-utils/logindefs.c b/login-utils/logindefs.c index 9075ad9e7..4fa2e9488 100644 --- a/login-utils/logindefs.c +++ b/login-utils/logindefs.c @@ -270,7 +270,7 @@ static void load_defaults(void) void logindefs_load_file(const char *filename) { - econf_file *file_l, *file_m; + econf_file *file_l = NULL, *file_m = NULL; char *path; logindefs_loader = NULL; /* No recursion */ @@ -332,10 +332,7 @@ int getlogindefs_bool(const char *name, int dflt) econf_errString(error)); return dflt; } - if (value == true) - return 0; - else - return 1; + return value; } unsigned long getlogindefs_num(const char *name, unsigned long dflt) @@ -381,7 +378,10 @@ const char *getlogindefs_str(const char *name, const char *dflt) econf_errString(error)); return dflt; } - return value; + if (value) + return value; + else + return strdup(""); } #endif /* !HAVE_LIBECONF */ @@ -565,23 +565,18 @@ int main(int argc, char *argv[]) if (argc != 4) { /* list all */ #ifdef HAVE_LIBECONF - econf_err error; - size_t key_number; - char **keys; - - if ((error = econf_getKeys(file, NULL, &key_number, &keys))) - errx(EXIT_FAILURE, "Couldn't list all keys: %s", - econf_errString(error)); + int i; + char *keys[] = {"END", "EMPTY", "CRAZY3", "CRAZY2", "CRAZY1", + "BOOLEAN", "NUMBER", "STRING", "HELLO_WORLD", + NULL}; - for (size_t i = 0; i < key_number; i++) { + for (i = 0; keys[i] != NULL; i++) { char *value = NULL; econf_getStringValue(file, NULL, keys[i], &value); - printf ("%s: $%s: '%s'\n", "logindefs.data", - keys[i], value); + printf ("%s: $%s: '%s'\n", argv[1], keys[i], value); } - econf_free (keys); econf_free (file); #else