From d562955eac58d3a5089e0f344ea586412a134451 Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Sat, 5 Jan 2013 18:37:52 +0100 Subject: [PATCH] nss-myhostname: integrate into systemd buildsystem Note that there are still some rome for cleanups. In particular, the .la files are now installed, which we probably don't want; and some of the macros in Makefile.am are likely redundan. --- Makefile.am | 21 +++ configure.ac | 20 +++ src/nss-myhostname/Makefile.am | 62 ------- src/nss-myhostname/bootstrap.sh | 66 ------- src/nss-myhostname/configure.ac | 79 -------- src/nss-myhostname/m4/attributes.m4 | 258 --------------------------- src/nss-myhostname/m4/zp_lynx_doc.m4 | 24 --- 7 files changed, 41 insertions(+), 489 deletions(-) delete mode 100644 src/nss-myhostname/Makefile.am delete mode 100755 src/nss-myhostname/bootstrap.sh delete mode 100644 src/nss-myhostname/configure.ac delete mode 100644 src/nss-myhostname/m4/attributes.m4 delete mode 100644 src/nss-myhostname/m4/zp_lynx_doc.m4 diff --git a/Makefile.am b/Makefile.am index 9920bc13f..91bc49dc5 100644 --- a/Makefile.am +++ b/Makefile.am @@ -3549,6 +3549,27 @@ pamlib_LTLIBRARIES = \ pam_systemd.la endif +if HAVE_MYHOSTNAME +libnss_myhostname_la_SOURCES = \ + src/nss-myhostname/nss-myhostname.c \ + src/nss-myhostname/ifconf.h \ + src/nss-myhostname/netlink.c + +libnss_myhostname_la_CFLAGS = \ + $(AM_CFLAGS) + +libnss_myhostname_la_LDFLAGS = \ + $(AM_LDFLAGS) \ + -module \ + -export-dynamic \ + -avoid-version \ + -shared \ + -shrext .so.2 + +lib_LTLIBRARIES += \ + libnss_myhostname.la +endif + # move lib from $(libdir) to $(rootlibdir) and update devel link, if needed libsystemd-login-install-hook: libname=libsystemd-login.so && $(move-to-rootlibdir) diff --git a/configure.ac b/configure.ac index a8d48871d..b9499dc69 100644 --- a/configure.ac +++ b/configure.ac @@ -652,6 +652,25 @@ AC_DEFINE_UNQUOTED(KBD_SETFONT, ["$KBD_SETFONT"], [Path of setfont]) AC_SUBST(KBD_LOADKEYS) AC_SUBST(KBD_SETFONT) +# ------------------------------------------------------------------------------ +have_myhostname=no +AC_ARG_ENABLE(myhostname, AS_HELP_STRING([--disable-nss-myhostname], [disable nss-myhostname support])) +if test "x$enable_myhostname" != "xno"; then + AC_HEADER_STDC + AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h]) + + AC_C_CONST + AC_TYPE_SIZE_T + AC_HEADER_TIME + + AC_FUNC_MALLOC + AC_FUNC_SELECT_ARGTYPES + AC_CHECK_FUNCS([gethostbyaddr gethostbyname gettimeofday inet_ntoa memset select socket strcspn strdup strerror strncasecmp strcasecmp strspn]) + + have_myhostname=yes +fi +AM_CONDITIONAL(HAVE_MYHOSTNAME, [test "$have_myhostname" = "yes"]) + # ------------------------------------------------------------------------------ AC_ARG_WITH(firmware-path, AS_HELP_STRING([--with-firmware-path=DIR[[[:DIR[...]]]]], @@ -835,6 +854,7 @@ AC_MSG_RESULT([ coredump: ${have_coredump} kmod: ${have_kmod} blkid: ${have_blkid} + nss-myhostname: ${have_myhostname} gudev: ${enable_gudev} gintrospection: ${enable_introspection} keymap: ${enable_keymap} diff --git a/src/nss-myhostname/Makefile.am b/src/nss-myhostname/Makefile.am deleted file mode 100644 index 7420f327d..000000000 --- a/src/nss-myhostname/Makefile.am +++ /dev/null @@ -1,62 +0,0 @@ -# This file is part of nss-myhostname. -# -# Copyright 2008 Lennart Poettering -# -# nss-myhostname is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public License -# as published by the Free Software Foundation, either version 2.1 of -# the License, or (at your option) any later version. -# -# nss-myhostname is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with nss-myhostname. If not, If not, see -# . - -ACLOCAL_AMFLAGS = -I m4 - -lib_LTLIBRARIES = libnss_myhostname.la - -EXTRA_DIST=bootstrap.sh README LICENSE -SUBDIRS=doc - -AM_CPPFLAGS = -include $(top_builddir)/config.h - -MAINTAINERCLEANFILES=README -noinst_DATA = README - -README: - rm -f README - $(MAKE) -C doc README - cd $(srcdir) && ln -s doc/README README - -homepage: all dist - test -d $$HOME/homepage/private - mkdir -p $$HOME/homepage/private/projects/nss-myhostname - cp nss-myhostname-@PACKAGE_VERSION@.tar.gz doc/README.html doc/style.css $$HOME/homepage/private/projects/nss-myhostname - ln -sf README.html $$HOME/homepage/private/projects/nss-myhostname/index.html - -.PHONY: homepage - -libnss_myhostname_la_SOURCES = \ - nss-myhostname.c \ - ifconf.h - -libnss_myhostname_la_SOURCES += netlink.c - -libnss_myhostname_la_LDFLAGS = \ - -avoid-version \ - -module \ - -export-dynamic \ - -shrext .so.2 - -install-exec-hook: - rm -f $(DESTDIR)$(libdir)/libnss_myhostname.la - rm -f $(DESTDIR)$(libdir)/libnss_myhostname_minimal.la - -uninstall-hook: - rm -f $(DESTDIR)$(libdir)/libnss_myhostname.so.2 - rm -f $(DESTDIR)$(libdir)/libnss_myhostname_minimal.so.2 diff --git a/src/nss-myhostname/bootstrap.sh b/src/nss-myhostname/bootstrap.sh deleted file mode 100755 index d224f31fb..000000000 --- a/src/nss-myhostname/bootstrap.sh +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/bash - -# This file is part of nss-myhostname. -# -# Copyright 2008 Lennart Poettering -# -# nss-myhostname is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public License -# as published by the Free Software Foundation, either version 2.1 of -# the License, or (at your option) any later version. -# -# nss-myhostname is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with nss-myhostname. If not, If not, see -# . - -VERSION=1.9 - -run_versioned() { - local P - local V - - V=$(echo "$2" | sed -e 's,\.,,g') - - if [ -e "`which $1$V 2> /dev/null`" ] ; then - P="$1$V" - else - if [ -e "`which $1-$2 2> /dev/null`" ] ; then - P="$1-$2" - else - P="$1" - fi - fi - - shift 2 - "$P" "$@" -} - -set -ex - -if [ "x$1" = "xam" ] ; then - run_versioned automake "$VERSION" -a -c --foreign - ./config.status -else - rm -rf autom4te.cache - rm -f config.cache - - touch config.rpath - test "x$LIBTOOLIZE" = "x" && LIBTOOLIZE=libtoolize - - mkdir -p m4 - "$LIBTOOLIZE" -c --force - run_versioned aclocal "$VERSION" -I m4 - run_versioned autoconf 2.59 -Wall - run_versioned autoheader 2.59 - run_versioned automake "$VERSION" --copy --foreign --add-missing - - if test "x$NOCONFIGURE" = "x"; then - CFLAGS="-g -O0" ./configure --sysconfdir=/etc --localstatedir=/var "$@" - make clean - fi -fi diff --git a/src/nss-myhostname/configure.ac b/src/nss-myhostname/configure.ac deleted file mode 100644 index 0902bc600..000000000 --- a/src/nss-myhostname/configure.ac +++ /dev/null @@ -1,79 +0,0 @@ -# -*- Autoconf -*- -# Process this file with autoconf to produce a configure script. - -# This file is part of nss-myhostname. -# -# Copyright 2008 Lennart Poettering -# -# nss-myhostname is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public License -# as published by the Free Software Foundation, either version 2.1 of -# the License, or (at your option) any later version. -# -# nss-myhostname is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with nss-myhostname. If not, If not, see -# . - -AC_PREREQ(2.62) -AC_INIT([nss-myhostname],[0.3],[mzzlubfganzr (at) 0pointer (dot) de]) -AC_CONFIG_SRCDIR([nss-myhostname.c]) -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_MACRO_DIR(m4) -AC_USE_SYSTEM_EXTENSIONS -AC_SYS_LARGEFILE - -AM_INIT_AUTOMAKE([foreign 1.9 -Wall -Wno-portability silent-rules tar-pax subdir-objects dist-bzip2]) - -AC_SUBST(PACKAGE_URL, [http://0pointer.de/lennart/projects/nss-myhostname/]) - -ac_default_prefix="/" - -AC_CANONICAL_HOST - -# Checks for programs. -AC_PROG_CC -AC_PROG_CC_C99 -AC_PROG_CPP - -AC_PROG_INSTALL -AC_PROG_LN_S -AC_PROG_MAKE_SET - -# GCC flags - -DESIRED_FLAGS="-Wall -W -Wextra -pedantic -pipe -Wformat -Wold-style-definition -Wdeclaration-after-statement -Wfloat-equal -Wmissing-declarations -Wmissing-prototypes -Wstrict-prototypes -Wredundant-decls -Wmissing-noreturn -Wshadow -Wendif-labels -Wpointer-arith -Wcast-align -Wwrite-strings -Winline -Wno-unused-parameter -ffast-math -fvisibility=hidden -fdiagnostics-show-option" - -for flag in $DESIRED_FLAGS ; do - CC_CHECK_CFLAGS([$flag], [CFLAGS="$CFLAGS $flag"]) -done - -# libtool stuff -AC_DISABLE_STATIC -LT_PREREQ(2.2) -LT_INIT - -# Checks for header files. -AC_HEADER_STDC -AC_CHECK_HEADERS([arpa/inet.h fcntl.h inttypes.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/time.h unistd.h nss.h sys/ioctl.h]) - -# Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_TYPE_SIZE_T -AC_HEADER_TIME - -# Checks for library functions. -AC_FUNC_MALLOC -AC_FUNC_SELECT_ARGTYPES -AC_CHECK_FUNCS([gethostbyaddr gethostbyname gettimeofday inet_ntoa memset select socket strcspn strdup strerror strncasecmp strcasecmp strspn]) - -# LYNX documentation generation -ZP_LYNX_DOC - -AC_CONFIG_FILES([Makefile doc/Makefile doc/README.html ]) - -AC_OUTPUT diff --git a/src/nss-myhostname/m4/attributes.m4 b/src/nss-myhostname/m4/attributes.m4 deleted file mode 100644 index 9c4a0c89a..000000000 --- a/src/nss-myhostname/m4/attributes.m4 +++ /dev/null @@ -1,258 +0,0 @@ -dnl Macros to check the presence of generic (non-typed) symbols. -dnl Copyright (c) 2006-2007 Diego Pettenò -dnl Copyright (c) 2006-2007 xine project -dnl -dnl This program is free software; you can redistribute it and/or modify -dnl it under the terms of the GNU General Public License as published by -dnl the Free Software Foundation; either version 2, or (at your option) -dnl any later version. -dnl -dnl This program is distributed in the hope that it will be useful, -dnl but WITHOUT ANY WARRANTY; without even the implied warranty of -dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -dnl GNU General Public License for more details. -dnl -dnl You should have received a copy of the GNU General Public License -dnl along with this program; if not, write to the Free Software -dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -dnl 02110-1301, USA. -dnl -dnl As a special exception, the copyright owners of the -dnl macro gives unlimited permission to copy, distribute and modify the -dnl configure scripts that are the output of Autoconf when processing the -dnl Macro. You need not follow the terms of the GNU General Public -dnl License when using or distributing such scripts, even though portions -dnl of the text of the Macro appear in them. The GNU General Public -dnl License (GPL) does govern all other use of the material that -dnl constitutes the Autoconf Macro. -dnl -dnl This special exception to the GPL applies to versions of the -dnl Autoconf Macro released by this project. When you make and -dnl distribute a modified version of the Autoconf Macro, you may extend -dnl this special exception to the GPL to apply to your modified version as -dnl well. - -AC_DEFUN([CC_CHECK_CFLAGS_SILENT], [ - AC_CACHE_VAL(AS_TR_SH([cc_cv_cflags_$1]), - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $1" - AC_COMPILE_IFELSE([int a;], - [eval "AS_TR_SH([cc_cv_cflags_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_cflags_$1])='no'"]) - CFLAGS="$ac_save_CFLAGS" - ]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], - [$2], [$3]) -]) - -AC_DEFUN([CC_CHECK_CFLAGS], [ - AC_CACHE_CHECK([if $CC supports $1 flag], - AS_TR_SH([cc_cv_cflags_$1]), - CC_CHECK_CFLAGS_SILENT([$1]) dnl Don't execute actions here! - ) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_cflags_$1])[ = xyes], - [$2], [$3]) -]) - -AC_DEFUN([CC_CHECK_LDFLAGS], [ - AC_CACHE_CHECK([if $CC supports $1 flag], - AS_TR_SH([cc_cv_ldflags_$1]), - [ac_save_LDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS $1" - AC_LINK_IFELSE([int main() { return 1; }], - [eval "AS_TR_SH([cc_cv_ldflags_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_ldflags_$1])="]) - LDFLAGS="$ac_save_LDFLAGS" - ]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_ldflags_$1])[ = xyes], - [$2], [$3]) -]) - -dnl Check for a -Werror flag or equivalent. -Werror is the GCC -dnl and ICC flag that tells the compiler to treat all the warnings -dnl as fatal. We usually need this option to make sure that some -dnl constructs (like attributes) are not simply ignored. -dnl -dnl Other compilers don't support -Werror per se, but they support -dnl an equivalent flag: -dnl - Sun Studio compiler supports -errwarn=%all -AC_DEFUN([CC_CHECK_WERROR], [ - AC_CACHE_CHECK( - [for $CC way to treat warnings as errors], - [cc_cv_werror], - [CC_CHECK_CFLAGS_SILENT([-Werror], [cc_cv_werror=-Werror], - [CC_CHECK_CFLAGS_SILENT([-errwarn=%all], [cc_cv_werror=-errwarn=%all])]) - ]) -]) - -AC_DEFUN([CC_CHECK_ATTRIBUTE], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if $CC supports __attribute__(( ifelse([$2], , [$1], [$2]) ))], - AS_TR_SH([cc_cv_attribute_$1]), - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_COMPILE_IFELSE([$3], - [eval "AS_TR_SH([cc_cv_attribute_$1])='yes'"], - [eval "AS_TR_SH([cc_cv_attribute_$1])='no'"]) - CFLAGS="$ac_save_CFLAGS" - ]) - - AS_IF([eval test x$]AS_TR_SH([cc_cv_attribute_$1])[ = xyes], - [AC_DEFINE( - AS_TR_CPP([SUPPORT_ATTRIBUTE_$1]), 1, - [Define this if the compiler supports __attribute__(( ifelse([$2], , [$1], [$2]) ))] - ) - $4], - [$5]) -]) - -AC_DEFUN([CC_ATTRIBUTE_CONSTRUCTOR], [ - CC_CHECK_ATTRIBUTE( - [constructor],, - [void __attribute__((constructor)) ctor() { int a; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_FORMAT], [ - CC_CHECK_ATTRIBUTE( - [format], [format(printf, n, n)], - [void __attribute__((format(printf, 1, 2))) printflike(const char *fmt, ...) { fmt = (void *)0; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_FORMAT_ARG], [ - CC_CHECK_ATTRIBUTE( - [format_arg], [format_arg(printf)], - [char *__attribute__((format_arg(1))) gettextlike(const char *fmt) { fmt = (void *)0; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_VISIBILITY], [ - CC_CHECK_ATTRIBUTE( - [visibility_$1], [visibility("$1")], - [void __attribute__((visibility("$1"))) $1_function() { }], - [$2], [$3]) -]) - -AC_DEFUN([CC_ATTRIBUTE_NONNULL], [ - CC_CHECK_ATTRIBUTE( - [nonnull], [nonnull()], - [void __attribute__((nonnull())) some_function(void *foo, void *bar) { foo = (void*)0; bar = (void*)0; }], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_UNUSED], [ - CC_CHECK_ATTRIBUTE( - [unused], , - [void some_function(void *foo, __attribute__((unused)) void *bar);], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_SENTINEL], [ - CC_CHECK_ATTRIBUTE( - [sentinel], , - [void some_function(void *foo, ...) __attribute__((sentinel));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_DEPRECATED], [ - CC_CHECK_ATTRIBUTE( - [deprecated], , - [void some_function(void *foo, ...) __attribute__((deprecated));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_ALIAS], [ - CC_CHECK_ATTRIBUTE( - [alias], [weak, alias], - [void other_function(void *foo) { } - void some_function(void *foo) __attribute__((weak, alias("other_function")));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_MALLOC], [ - CC_CHECK_ATTRIBUTE( - [malloc], , - [void * __attribute__((malloc)) my_alloc(int n);], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_PACKED], [ - CC_CHECK_ATTRIBUTE( - [packed], , - [struct astructure { char a; int b; long c; void *d; } __attribute__((packed));], - [$1], [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_CONST], [ - CC_CHECK_ATTRIBUTE( - [const], , - [int __attribute__((const)) twopow(int n) { return 1 << n; } ], - [$1], [$2]) -]) - -AC_DEFUN([CC_FLAG_VISIBILITY], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if $CC supports -fvisibility=hidden], - [cc_cv_flag_visibility], - [cc_flag_visibility_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - CC_CHECK_CFLAGS_SILENT([-fvisibility=hidden], - cc_cv_flag_visibility='yes', - cc_cv_flag_visibility='no') - CFLAGS="$cc_flag_visibility_save_CFLAGS"]) - - AS_IF([test "x$cc_cv_flag_visibility" = "xyes"], - [AC_DEFINE([SUPPORT_FLAG_VISIBILITY], 1, - [Define this if the compiler supports the -fvisibility flag]) - $1], - [$2]) -]) - -AC_DEFUN([CC_FUNC_EXPECT], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([if compiler has __builtin_expect function], - [cc_cv_func_expect], - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - AC_COMPILE_IFELSE( - [int some_function() { - int a = 3; - return (int)__builtin_expect(a, 3); - }], - [cc_cv_func_expect=yes], - [cc_cv_func_expect=no]) - CFLAGS="$ac_save_CFLAGS" - ]) - - AS_IF([test "x$cc_cv_func_expect" = "xyes"], - [AC_DEFINE([SUPPORT__BUILTIN_EXPECT], 1, - [Define this if the compiler supports __builtin_expect() function]) - $1], - [$2]) -]) - -AC_DEFUN([CC_ATTRIBUTE_ALIGNED], [ - AC_REQUIRE([CC_CHECK_WERROR]) - AC_CACHE_CHECK([highest __attribute__ ((aligned ())) supported], - [cc_cv_attribute_aligned], - [ac_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS $cc_cv_werror" - for cc_attribute_align_try in 64 32 16 8 4 2; do - AC_COMPILE_IFELSE([ - int main() { - static char c __attribute__ ((aligned($cc_attribute_align_try))) = 0; - return c; - }], [cc_cv_attribute_aligned=$cc_attribute_align_try; break]) - done - CFLAGS="$ac_save_CFLAGS" - ]) - - if test "x$cc_cv_attribute_aligned" != "x"; then - AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX], [$cc_cv_attribute_aligned], - [Define the highest alignment supported]) - fi -]) diff --git a/src/nss-myhostname/m4/zp_lynx_doc.m4 b/src/nss-myhostname/m4/zp_lynx_doc.m4 deleted file mode 100644 index 955a6ca0a..000000000 --- a/src/nss-myhostname/m4/zp_lynx_doc.m4 +++ /dev/null @@ -1,24 +0,0 @@ -dnl Macro for enabling LYNX-based documentation generation - -AC_DEFUN([ZP_LYNX_DOC], [ - AC_ARG_ENABLE(lynx, - AS_HELP_STRING([--disable-lynx], - [Turn off lynx usage for documentation generation]),, - [enable_lynx=yes]) - - case "${enable_lynx}" in - yes) - AC_CHECK_PROG(have_lynx, lynx, yes, no) - - if test x$have_lynx = xno ; then - AC_MSG_WARN([*** lynx not found, plain text README will not be built ***]) - fi - ;; - no) - have_lynx=no ;; - *) - AC_MSG_ERROR(bad value ${enableval} for --disable-lynx) ;; - esac - - AM_CONDITIONAL([USE_LYNX], [test "x$have_lynx" = xyes]) -]) -- 2.30.2