diff --git a/CMakeLists.txt b/CMakeLists.txt index 86abc77d6..e3d3784f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -212,10 +212,6 @@ include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/lib ) -if(UNIX OR CYGWIN) - list(APPEND base_OBJS $) -endif() - if(HAVE_SYSTEMD) list(APPEND base_DEPS systemd) endif() diff --git a/lib/base/CMakeLists.txt b/lib/base/CMakeLists.txt index d44254a35..4512ec28f 100644 --- a/lib/base/CMakeLists.txt +++ b/lib/base/CMakeLists.txt @@ -142,9 +142,6 @@ endif() add_library(base OBJECT ${base_SOURCES}) -include_directories(SYSTEM ${icinga2_SOURCE_DIR}/third-party/execvpe) -link_directories(${icinga2_BINARY_DIR}/third-party/execvpe) - include_directories(SYSTEM ${icinga2_SOURCE_DIR}/third-party/mmatch) link_directories(${icinga2_BINARY_DIR}/third-party/mmatch) diff --git a/third-party/CMakeLists.txt b/third-party/CMakeLists.txt index fea750f1d..7167831bd 100644 --- a/third-party/CMakeLists.txt +++ b/third-party/CMakeLists.txt @@ -2,8 +2,4 @@ add_subdirectory(mmatch) -if(UNIX OR CYGWIN) - add_subdirectory(execvpe) -endif() - add_subdirectory(socketpair) diff --git a/third-party/execvpe/CMakeLists.txt b/third-party/execvpe/CMakeLists.txt deleted file mode 100644 index 4dda40a93..000000000 --- a/third-party/execvpe/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -# Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ - -set(execvpe_SOURCES - execvpe.c execvpe.h -) - -add_library(execvpe OBJECT ${execvpe_SOURCES}) - -set_target_properties ( - execvpe PROPERTIES - FOLDER Lib -) diff --git a/third-party/execvpe/execvpe.c b/third-party/execvpe/execvpe.c deleted file mode 100644 index d985df2da..000000000 --- a/third-party/execvpe/execvpe.c +++ /dev/null @@ -1,208 +0,0 @@ -/* Copyright (C) 1991,92, 1995-99, 2002, 2004, 2005, 2007, 2009 - Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library 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. - - The GNU C Library 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 the GNU C Library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 USA. */ - -#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__) -#include -#endif /* !__FreeBSD__ && !__OpenBSD__ && !__NetBSD__ */ -#include -#include -#include -#include -#include -#include -#include "execvpe.h" - -#if !defined(_MSC_VER) && !defined(HAVE_EXECVPE) - -/* The file is accessible but it is not an executable file. Invoke - the shell to interpret it as a script. */ -static void -scripts_argv (const char *file, char *const argv[], int argc, char **new_argv) -{ - /* Construct an argument list for the shell. */ - new_argv[0] = (char *) "/bin/sh"; - new_argv[1] = (char *) file; - while (argc > 1) - { - new_argv[argc] = argv[argc - 1]; - --argc; - } -} - - -/* Execute FILE, searching in the `PATH' environment variable if it contains - no slashes, with arguments ARGV and environment from ENVP. */ -int -icinga2_execvpe (file, argv, envp) - const char *file; - char *const argv[]; - char *const envp[]; -{ - if (*file == '\0') - { - /* We check the simple case first. */ - errno = ENOENT; - return -1; - } - - if (strchr (file, '/') != NULL) - { - /* Don't search when it contains a slash. */ - execve (file, argv, envp); - - if (errno == ENOEXEC) - { - /* Count the arguments. */ - int argc = 0; - while (argv[argc++]) - ; - size_t len = (argc + 1) * sizeof (char *); - char **script_argv; - void *ptr = NULL; - script_argv = alloca (len); - - if (script_argv != NULL) - { - scripts_argv (file, argv, argc, script_argv); - execve (script_argv[0], script_argv, envp); - - free (ptr); - } - } - } - else - { - size_t pathlen; - size_t alloclen = 0; - char *path = getenv ("PATH"); - if (path == NULL) - { - pathlen = confstr (_CS_PATH, (char *) NULL, 0); - alloclen = pathlen + 1; - } - else - pathlen = strlen (path); - - size_t len = strlen (file) + 1; - alloclen += pathlen + len + 1; - - char *name; - name = alloca (alloclen); - - if (path == NULL) - { - /* There is no `PATH' in the environment. - The default search path is the current directory - followed by the path `confstr' returns for `_CS_PATH'. */ - path = name + pathlen + len + 1; - path[0] = ':'; - (void) confstr (_CS_PATH, path + 1, pathlen); - } - - /* Copy the file name at the top. */ - name = (char *) memcpy (name + pathlen + 1, file, len); - /* And add the slash. */ - *--name = '/'; - - char **script_argv = NULL; - bool got_eacces = false; - char *p = path; - do - { - char *startp; - - path = p; - p = strchr (path, ':'); - if (!p) - p = path + strlen(path); - - if (p == path) - /* Two adjacent colons, or a colon at the beginning or the end - of `PATH' means to search the current directory. */ - startp = name + 1; - else - startp = (char *) memcpy (name - (p - path), path, p - path); - - /* Try to execute this name. If it works, execve will not return. */ - execve (startp, argv, envp); - - if (errno == ENOEXEC) - { - if (script_argv == NULL) - { - /* Count the arguments. */ - int argc = 0; - while (argv[argc++]) - ; - size_t arglen = (argc + 1) * sizeof (char *); - script_argv = alloca (arglen); - if (script_argv == NULL) - { - /* A possible EACCES error is not as important as - the ENOMEM. */ - got_eacces = false; - break; - } - scripts_argv (startp, argv, argc, script_argv); - } - - execve (script_argv[0], script_argv, envp); - } - - switch (errno) - { - case EACCES: - /* Record the we got a `Permission denied' error. If we end - up finding no executable we can use, we want to diagnose - that we did find one but were denied access. */ - got_eacces = true; - case ENOENT: - case ESTALE: - case ENOTDIR: - /* Those errors indicate the file is missing or not executable - by us, in which case we want to just try the next path - directory. */ - case ENODEV: - case ETIMEDOUT: - /* Some strange filesystems like AFS return even - stranger error numbers. They cannot reasonably mean - anything else so ignore those, too. */ - break; - - default: - /* Some other error means we found an executable file, but - something went wrong executing it; return the error to our - caller. */ - return -1; - } - } - while (*p++ != '\0'); - - /* We tried every element and none of them worked. */ - if (got_eacces) - /* At least one failure was due to permissions, so report that - error. */ - errno = EACCES; - } - - /* Return the error from the last attempt (probably ENOENT). */ - return -1; -} - -#endif /* !defined(_MSC_VER) && !defined(HAVE_EXECVPE) */ diff --git a/third-party/execvpe/execvpe.h b/third-party/execvpe/execvpe.h deleted file mode 100644 index 5e32d66b6..000000000 --- a/third-party/execvpe/execvpe.h +++ /dev/null @@ -1,18 +0,0 @@ -/* Icinga 2 | (c) 2012 Icinga GmbH | GPLv2+ */ - -#ifndef EXECVPE_H -#define EXECVPE_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#ifndef _MSC_VER -int icinga2_execvpe(const char *file, char *const argv[], char *const envp[]); -#endif /* _MSC_VER */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* EXECVPE_H */