diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for erebos
 
+## 0.1.8.1 -- 2025-03-29
+
+* Fix build from sdist (add missing include)
+
 ## 0.1.8 -- 2025-03-28
 
 * Discovery service without requiring ICE support
diff --git a/erebos.cabal b/erebos.cabal
--- a/erebos.cabal
+++ b/erebos.cabal
@@ -1,7 +1,7 @@
 Cabal-Version:       3.0
 
 Name:                erebos
-Version:             0.1.8
+Version:             0.1.8.1
 Synopsis:            Decentralized messaging and synchronization
 Description:
     Library and simple CLI interface implementing the Erebos identity
@@ -29,6 +29,7 @@
     CHANGELOG.md
 Extra-Source-Files:
     src/Erebos/ICE/pjproject.h
+    src/Erebos/Network/ifaddrs.h
 
 Flag ice
     Description:    Enable peer discovery with ICE support using pjproject
@@ -125,6 +126,8 @@
         src/Erebos/Network/ifaddrs.c
     include-dirs:
         src
+    includes:
+        src/Erebos/Network/ifaddrs.h
 
     if flag(ice)
         exposed-modules:
diff --git a/src/Erebos/Network/ifaddrs.h b/src/Erebos/Network/ifaddrs.h
new file mode 100644
--- /dev/null
+++ b/src/Erebos/Network/ifaddrs.h
@@ -0,0 +1,18 @@
+#include <stddef.h>
+#include <stdint.h>
+
+#ifndef _WIN32
+#include <sys/socket.h>
+#else
+#include <winsock2.h>
+#endif
+
+struct InetAddress
+{
+	int family;
+	uint8_t addr[16];
+} __attribute__((packed));
+
+uint32_t * join_multicast(int fd, size_t * count);
+struct InetAddress * local_addresses( size_t * count );
+uint32_t * broadcast_addresses(void);
