summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt2
-rwxr-xr-xPorts/openssh/package.sh2
-rw-r--r--Userland/Libraries/LibC/unistd.h8
-rw-r--r--Userland/Libraries/LibCore/Account.cpp1
-rw-r--r--Userland/Libraries/LibCrypt/crypt.cpp3
-rw-r--r--Userland/Libraries/LibCrypt/crypt.h28
6 files changed, 35 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index da833bb6d4..3d5809188e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -208,7 +208,9 @@ endif()
add_link_options(--sysroot ${CMAKE_BINARY_DIR}/Root)
include_directories(Userland/Libraries/LibC)
+include_directories(Userland/Libraries/LibCrypt)
include_directories(Userland/Libraries/LibM)
+include_directories(Userland/Libraries/LibPthread)
include_directories(Userland/Libraries/LibSystem)
include_directories(Userland/Services)
include_directories(Userland)
diff --git a/Ports/openssh/package.sh b/Ports/openssh/package.sh
index aa67b85d6a..dcfb688dd9 100755
--- a/Ports/openssh/package.sh
+++ b/Ports/openssh/package.sh
@@ -8,6 +8,8 @@ depends="zlib openssl"
useconfigure=true
configopts="--prefix=/usr/local --disable-utmp --disable-strip --sysconfdir=/etc/ssh --with-ssl-dir=${SERENITY_INSTALL_ROOT}/usr/local/lib"
+export LDFLAGS="-lcrypt -lcore"
+
pre_configure() {
run autoreconf
}
diff --git a/Userland/Libraries/LibC/unistd.h b/Userland/Libraries/LibC/unistd.h
index 7f54106434..acfd13c2bc 100644
--- a/Userland/Libraries/LibC/unistd.h
+++ b/Userland/Libraries/LibC/unistd.h
@@ -171,14 +171,6 @@ enum {
long sysconf(int name);
-struct crypt_data {
- int initialized;
- char result[65];
-};
-
-char* crypt(const char* key, const char* salt);
-char* crypt_r(const char* key, const char* salt, struct crypt_data* data);
-
// If opterr is set (the default), print error messages to stderr.
extern int opterr;
// On errors, optopt is set to the erroneous *character*.
diff --git a/Userland/Libraries/LibCore/Account.cpp b/Userland/Libraries/LibCore/Account.cpp
index e357cdd498..869958c604 100644
--- a/Userland/Libraries/LibCore/Account.cpp
+++ b/Userland/Libraries/LibCore/Account.cpp
@@ -9,6 +9,7 @@
#include <AK/ScopeGuard.h>
#include <LibCore/Account.h>
#include <LibCore/File.h>
+#include <crypt.h>
#include <errno.h>
#include <grp.h>
#include <pwd.h>
diff --git a/Userland/Libraries/LibCrypt/crypt.cpp b/Userland/Libraries/LibCrypt/crypt.cpp
index c969d7bc50..bf14db6c91 100644
--- a/Userland/Libraries/LibCrypt/crypt.cpp
+++ b/Userland/Libraries/LibCrypt/crypt.cpp
@@ -6,8 +6,9 @@
#include <AK/Base64.h>
#include <AK/Types.h>
#include <LibCrypto/Hash/SHA2.h>
+#include <crypt.h>
+#include <errno.h>
#include <string.h>
-#include <unistd.h>
extern "C" {
diff --git a/Userland/Libraries/LibCrypt/crypt.h b/Userland/Libraries/LibCrypt/crypt.h
new file mode 100644
index 0000000000..c51744a666
--- /dev/null
+++ b/Userland/Libraries/LibCrypt/crypt.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+/* standard symbolic constants and types
+ *
+ * values from POSIX standard unix specification
+ *
+ * https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/unistd.h.html
+ */
+
+#pragma once
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
+struct crypt_data {
+ int initialized;
+ char result[65];
+};
+
+char* crypt(const char* key, const char* salt);
+char* crypt_r(const char* key, const char* salt, struct crypt_data* data);
+
+__END_DECLS