DELETED .github/workflows/dragonflybsd.yml
Index: .github/workflows/dragonflybsd.yml
==================================================================
--- .github/workflows/dragonflybsd.yml
+++ .github/workflows/dragonflybsd.yml
@@ -1,25 +0,0 @@
-name: dragonflybsd
-on: [push, pull_request]
-jobs:
- tests:
- runs-on: macos-12
- strategy:
- matrix:
- configure_flags:
- -
- - --disable-shared
- - --with-tls=gnutls
- steps:
- - uses: actions/checkout@v3
- - uses: vmactions/dragonflybsd-vm@v0
- with:
- usesh: true
- copyback: false
- prepare: |
- pkg install -y autoconf automake gnutls llvm pkgconf
- run: |
- ./autogen.sh
- ./configure OBJC=clang ${{ matrix.configure_flags }}
- make -j4
- make check
- make install
DELETED .github/workflows/freebsd.yml
Index: .github/workflows/freebsd.yml
==================================================================
--- .github/workflows/freebsd.yml
+++ .github/workflows/freebsd.yml
@@ -1,25 +0,0 @@
-name: freebsd
-on: [push, pull_request]
-jobs:
- tests:
- runs-on: macos-12
- strategy:
- matrix:
- configure_flags:
- -
- - --disable-shared
- - --with-tls=gnutls
- steps:
- - uses: actions/checkout@v3
- - uses: vmactions/freebsd-vm@v0
- with:
- usesh: true
- copyback: false
- prepare: |
- pkg install -y autoconf automake gnutls pkgconf
- run: |
- ./autogen.sh
- ./configure OBJC=clang ${{ matrix.configure_flags }}
- make -j4
- make check
- make install
DELETED .github/workflows/netbsd-gcc.yml
Index: .github/workflows/netbsd-gcc.yml
==================================================================
--- .github/workflows/netbsd-gcc.yml
+++ .github/workflows/netbsd-gcc.yml
@@ -1,25 +0,0 @@
-name: netbsd-gcc
-on: [push, pull_request]
-jobs:
- tests:
- runs-on: macos-12
- strategy:
- matrix:
- configure_flags:
- -
- - --disable-shared
- - --with-tls=gnutls
- steps:
- - uses: actions/checkout@v3
- - uses: vmactions/netbsd-vm@v0
- with:
- usesh: true
- copyback: false
- prepare: |
- pkg_add autoconf automake gnutls pkgconf
- run: |
- ./autogen.sh
- ./configure OBJC=gcc ${{ matrix.configure_flags }}
- make -j4
- make check
- make install
DELETED .github/workflows/netbsd.yml
Index: .github/workflows/netbsd.yml
==================================================================
--- .github/workflows/netbsd.yml
+++ .github/workflows/netbsd.yml
@@ -1,25 +0,0 @@
-name: netbsd
-on: [push, pull_request]
-jobs:
- tests:
- runs-on: macos-12
- strategy:
- matrix:
- configure_flags:
- -
- - --disable-shared
- - --with-tls=gnutls
- steps:
- - uses: actions/checkout@v3
- - uses: vmactions/netbsd-vm@v0
- with:
- usesh: true
- copyback: false
- prepare: |
- pkg_add autoconf automake clang gnutls pkgconf
- run: |
- ./autogen.sh
- ./configure OBJC=clang ${{ matrix.configure_flags }}
- make -j4
- make check
- make install
DELETED .github/workflows/openbsd.yml
Index: .github/workflows/openbsd.yml
==================================================================
--- .github/workflows/openbsd.yml
+++ .github/workflows/openbsd.yml
@@ -1,25 +0,0 @@
-name: openbsd
-on: [push, pull_request]
-jobs:
- tests:
- runs-on: macos-12
- strategy:
- matrix:
- configure_flags:
- -
- - --disable-shared
- - --with-tls=gnutls
- steps:
- - uses: actions/checkout@v3
- - uses: vmactions/openbsd-vm@v0
- with:
- usesh: true
- copyback: false
- prepare: |
- pkg_add autoconf-2.71 automake-1.16.5 gnutls pkgconf
- run: |
- ./autogen.sh
- ./configure OBJC=clang ${{ matrix.configure_flags }}
- make -j4
- make check
- make install
Index: README.md
==================================================================
--- README.md
+++ README.md
@@ -385,20 +385,18 @@
If you have any questions about ObjFW or would like to talk to other ObjFW
users, the following venues are available:
* The [forum](https://objfw.nil.im/forum)
* A [Matrix room](https://matrix.to/#/%23objfw:nil.im)
+ * A [Discord room](https://objfw.nil.im/discord), bridged to the Matrix
+ room above
+ * A [Telegram room](https://t.me/objfw), bridged to the Matrix room above
+ * A [Slack room](https://objfw.nil.im/slack), bridged to the Matrix room
+ above
* An IRC channel named `#objfw` on `irc.oftc.net`
([Web chat](https://webchat.oftc.net/?channels=%23objfw)), bridged to the
Matrix room above
- * A [Slack channel](https://objfw.nil.im/slack), bridged to the Matrix room
- above
- * A [Discord channel](https://objfw.nil.im/discord), bridged to the Matrix
- room above
- * A [Telegram room](https://t.me/objfw), bridged to the Matrix room above
- * A [Gitter room](https://gitter.im/ObjFW/ObjFW), bridged to the Matrix room
- above
Please don't hesitate to join any or all of those!
Donating
Index: configure.ac
==================================================================
--- configure.ac
+++ configure.ac
@@ -1,14 +1,13 @@
-AC_INIT(ObjFW, 1.1dev, js@nil.im, objfw, https://objfw.nil.im/)
+AC_INIT(ObjFW, 1.0.4, js@nil.im, objfw, https://objfw.nil.im/)
AC_CONFIG_SRCDIR(src)
AC_CONFIG_AUX_DIR(build-aux)
AC_CONFIG_MACRO_DIR(build-aux/m4)
AC_DEFINE(OBJFW_VERSION_MAJOR, 1, [The major version of ObjFW])
-AC_DEFINE(OBJFW_VERSION_MINOR, 1, [The minor version of ObjFW])
-dnl This may only be set to 1.1 once 1.1 is released
-AC_SUBST(BUNDLE_VERSION, 1.0.0)
+AC_DEFINE(OBJFW_VERSION_MINOR, 0, [The minor version of ObjFW])
+AC_SUBST(BUNDLE_VERSION, 1.0.4)
AC_SUBST(BUNDLE_SHORT_VERSION, 1.0)
for i in configure.ac build-aux/m4/*; do
AS_IF([test $i -nt configure], [
AC_MSG_ERROR([$i is newer than configure! Run ./autogen.sh!])
@@ -476,29 +475,25 @@
esac
objc_runtime="ObjFW runtime"
AC_CHECK_HEADER(objc/objc.h)
AC_MSG_CHECKING(which Objective C runtime to use)
-AC_ARG_ENABLE(runtime,
- AS_HELP_STRING([--enable-runtime], [use the included runtime]))
AC_ARG_ENABLE(seluid24,
AS_HELP_STRING([--enable-seluid24],
[use 24 bit instead of 16 bit for selector UIDs]))
-AS_IF([test x"$enable_runtime" != x"yes"], [
- AS_IF([test x"$ac_cv_header_objc_objc_h" = x"yes"], [
- AC_EGREP_CPP(egrep_cpp_yes, [
- #import
-
- #ifdef OBJC_BOOL_DEFINED
- egrep_cpp_yes
- #endif
- ], [
- objc_runtime="Apple runtime"
- ], [
- dnl We don't want the GNU runtime
- :
- ])
+AS_IF([test x"$ac_cv_header_objc_objc_h" = x"yes"], [
+ AC_EGREP_CPP(egrep_cpp_yes, [
+ #import
+
+ #ifdef OBJC_BOOL_DEFINED
+ egrep_cpp_yes
+ #endif
+ ], [
+ objc_runtime="Apple runtime"
+ ], [
+ dnl We don't want the GNU runtime
+ :
])
])
AC_MSG_RESULT($objc_runtime)
case "$objc_runtime" in
@@ -1380,10 +1375,21 @@
esac
AC_CHECK_HEADER(sys/socket.h, [
AC_DEFINE(OF_HAVE_SYS_SOCKET_H, 1,
[Whether we have sys/socket.h])
+ ])
+ AC_CHECK_MEMBERS([struct sockaddr.sa_len], [], [], [
+ #ifdef OF_HAVE_SYS_TYPES_H
+ # include
+ #endif
+ #ifdef OF_HAVE_SYS_SOCKET_H
+ # include
+ #endif
+ #ifdef _WIN32
+ # include
+ #endif
])
AC_CHECK_TYPE([struct sockaddr_storage], [
AC_DEFINE(OF_HAVE_SOCKADDR_STORAGE, 1,
[Whether we have struct sockaddr_storage])
], [], [
@@ -1459,12 +1465,10 @@
#ifdef AF_INET6
egrep_cpp_yes
#endif
], [
AC_DEFINE(OF_HAVE_IPV6, 1, [Whether we have IPv6])
-
- AC_CHECK_FUNCS(inet6_getscopeid)
])
], [
dnl Work around a bug in autoconf 2.61 that creates a broken
dnl configure if this branch is empty.
:
@@ -2005,11 +2009,11 @@
AS_IF([test x"$GOBJC" = x"yes"], [
OBJCFLAGS="$OBJCFLAGS -Wwrite-strings -Wpointer-arith"
AC_ARG_ENABLE(werror,
AS_HELP_STRING([--disable-werror], [do not build with -Werror]))
- AS_IF([test x"$enable_werror" != x"no"], [
+ AS_IF([test x"$enable_werror" = x"yes"], [
OBJCFLAGS="$OBJCFLAGS -Werror"
])
old_OBJCFLAGS="$OBJCFLAGS"
OBJCFLAGS="$OBJCFLAGS -Werror"
ADDED misc/keys.asc
Index: misc/keys.asc
==================================================================
--- misc/keys.asc
+++ misc/keys.asc
@@ -0,0 +1,174 @@
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+
+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
+=21Qx
+-----END PGP PUBLIC KEY BLOCK-----
Index: src/OFSocket.h
==================================================================
--- src/OFSocket.h
+++ src/OFSocket.h
@@ -288,11 +288,11 @@
/**
* @brief Converts the specified @ref OFSocketAddress to a string.
*
* @param address The address to convert to a string
- * @return The address as an IP string, without the port
+ * @return The address as a string, without the port
*/
extern OFString *_Nonnull OFSocketAddressString(
const OFSocketAddress *_Nonnull address);
/**
Index: src/OFSocket.m
==================================================================
--- src/OFSocket.m
+++ src/OFSocket.m
@@ -965,11 +965,11 @@
static OFString *
appleTalkString(const OFSocketAddress *address)
{
const struct sockaddr_at *addrAT = &address->sockaddr.at;
- return [OFString stringWithFormat: @"%d.%d",
+ return [OFString stringWithFormat: @"%" PRIu8 ".%" PRIu8,
OFFromBigEndian16(addrAT->sat_net), addrAT->sat_node];
}
OFString *
OFSocketAddressString(const OFSocketAddress *address)
Index: src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m
==================================================================
--- src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m
+++ src/platform/POSIX/OFSystemInfo+NetworkInterfaces.m
@@ -225,13 +225,16 @@
# if defined(OF_HAVE_IPV6) && defined(HAVE_IF_NAMETOINDEX)
if (address.sockaddr.in6.sin6_family == AF_INET6 &&
address.sockaddr.in6.sin6_addr.s6_addr[0] == 0xFE &&
(address.sockaddr.in6.sin6_addr.s6_addr[1] & 0xC0)
== 0x80) {
-# if defined(HAVE_INET6_GETSCOPEID)
- inet6_getscopeid(&address.sockaddr.in6,
- INET6_IS_ADDR_LINKLOCAL);
+# if defined(__KAME__)
+# define addr6 address.sockaddr.in6.sin6_addr.s6_addr
+ address.sockaddr.in6.sin6_scope_id =
+ (addr6[2] << 8) | addr6[3];
+ addr6[2] = addr6[3] = 0;
+# undef addr6
# elif defined(HAVE_IF_NAMETOINDEX)
address.sockaddr.in6.sin6_scope_id =
if_nametoindex(
[name cStringWithEncoding: encoding]);
# endif
@@ -239,15 +242,18 @@
# endif
[addresses addItem: &address];
next:
-# ifdef _SIZEOF_ADDR_IFREQ
- buffer += _SIZEOF_ADDR_IFREQ(*current);
-# else
- buffer += sizeof(struct ifreq);
-# endif
+# ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+ if (current->ifr_addr.sa_len > sizeof(struct sockaddr))
+ buffer += sizeof(struct ifreq) -
+ sizeof(struct sockaddr) +
+ current->ifr_addr.sa_len;
+ else
+# endif
+ buffer += sizeof(struct ifreq);
}
} @finally {
free(ifrs);
closesocket(sock);
}
Index: src/platform/Windows/OFSystemInfo+NetworkInterfaces.m
==================================================================
--- src/platform/Windows/OFSystemInfo+NetworkInterfaces.m
+++ src/platform/Windows/OFSystemInfo+NetworkInterfaces.m
@@ -47,11 +47,10 @@
static OFMutableDictionary OF_GENERIC(OFString *, OFNetworkInterface) *
networkInterfacesFromGetAdaptersAddresses(void)
{
OFMutableDictionary *ret = [OFMutableDictionary dictionary];
- OFStringEncoding encoding = [OFLocale encoding];
ULONG adapterAddressesSize = sizeof(IP_ADAPTER_ADDRESSES);
PIP_ADAPTER_ADDRESSES adapterAddresses;
if ((adapterAddresses = malloc(adapterAddressesSize)) == NULL)
return nil;
@@ -79,12 +78,12 @@
iter != NULL; iter = iter->Next) {
OFString *name;
OFMutableDictionary *interface;
OFNumber *index;
- name = [OFString stringWithCString: iter->AdapterName
- encoding: encoding];
+ name = [OFString stringWithFormat: @"%lu",
+ iter->IfIndex];
if ((interface = [ret objectForKey: name]) == nil) {
interface = [OFMutableDictionary dictionary];
[ret setObject: interface forKey: name];
}
@@ -193,12 +192,11 @@
OFString *name, *IPString;
OFNumber *index;
OFSocketAddress IPv4Address;
OFData *addresses;
- name = [OFString stringWithCString: iter->AdapterName
- encoding: encoding];
+ name = [OFString stringWithFormat: @"%u", iter->Index];
if ((interface = [ret objectForKey: name]) == nil) {
interface = [OFMutableDictionary dictionary];
[ret setObject: interface forKey: name];
}
DELETED src/runtime/lookup-asm/lookup-asm-amd64-macho.S
Index: src/runtime/lookup-asm/lookup-asm-amd64-macho.S
==================================================================
--- src/runtime/lookup-asm/lookup-asm-amd64-macho.S
+++ src/runtime/lookup-asm/lookup-asm-amd64-macho.S
@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2008-2023 Jonathan Schleifer
- *
- * All rights reserved.
- *
- * This file is part of ObjFW. It may be distributed under the terms of the
- * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
- * the packaging of this file.
- *
- * Alternatively, it may be distributed under the terms of the GNU General
- * Public License, either version 2 or 3, which can be found in the file
- * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
- * file.
- */
-
-#include "config.h"
-
-.globl _objc_msg_lookup
-.globl _objc_msg_lookup_stret
-.globl _objc_msg_lookup_super
-.globl _objc_msg_lookup_super_stret
-
-.section __TEXT, __text, regular, pure_instructions
-.macro GENERATE_LOOKUP
-$0:
- testq %rdi, %rdi
- jz returnNilMethod
-
- testb $$1, %dil
- jnz LtaggedPointer_$0
-
- movq (%rdi), %r8
- movq 64(%r8), %r8
-
-Lmain_$0:
- movq (%rsi), %rax
- movzbl %ah, %ecx
- movzbl %al, %edx
-#ifdef OF_SELUID24
- shrl $$16, %eax
-
- movq (%r8,%rax,8), %r8
-#endif
- movq (%r8,%rcx,8), %r8
- movq (%r8,%rdx,8), %rax
-
- testq %rax, %rax
- jz $1
-
- ret
-
-LtaggedPointer_$0:
- movq _objc_taggedPointerSecret@GOTPCREL(%rip), %rax
- xorq (%rax), %rdi
- andb $$0xE, %dil
- movzbl %dil, %r8d
-
- movq _objc_taggedPointerClasses@GOTPCREL(%rip), %rax
- movq (%rax,%r8,4), %r8
- movq 64(%r8), %r8
-
- jmp Lmain_$0
-.endmacro
-
-.macro GENERATE_LOOKUP_SUPER
-$0:
- movq %rdi, %r8
- movq (%rdi), %rdi
- testq %rdi, %rdi
- jz returnNilMethod
-
- movq 8(%r8), %r8
- movq 64(%r8), %r8
- jmp Lmain_$1
-.endmacro
-
-GENERATE_LOOKUP _objc_msg_lookup, _objc_methodNotFound
-GENERATE_LOOKUP _objc_msg_lookup_stret, _objc_methodNotFound_stret
-GENERATE_LOOKUP_SUPER _objc_msg_lookup_super, _objc_msg_lookup
-GENERATE_LOOKUP_SUPER _objc_msg_lookup_super_stret, _objc_msg_lookup_stret
-
-returnNilMethod:
- leaq nilMethod(%rip), %rax
- ret
-
-nilMethod:
- xorq %rax, %rax
- ret
Index: src/runtime/lookup-asm/lookup-asm.S
==================================================================
--- src/runtime/lookup-asm/lookup-asm.S
+++ src/runtime/lookup-asm/lookup-asm.S
@@ -37,16 +37,12 @@
# elif defined(OF_SPARC64)
# include "lookup-asm-sparc64-elf.S"
# elif defined(OF_SPARC)
# include "lookup-asm-sparc-elf.S"
# endif
-#elif defined(OF_MACH_O)
-# if defined(OF_AMD64)
-# include "lookup-asm-amd64-macho.S"
-# endif
#elif defined(OF_WINDOWS)
# if defined(OF_AMD64)
# include "lookup-asm-amd64-win64.S"
# elif defined(OF_X86)
# include "lookup-asm-x86-win32.S"
# endif
#endif
Index: src/runtime/private.h
==================================================================
--- src/runtime/private.h
+++ src/runtime/private.h
@@ -295,14 +295,10 @@
# if defined(OF_AMD64) || defined(OF_X86) || \
defined(OF_POWERPC64) || defined(OF_POWERPC) || \
defined(OF_ARM64) || defined(OF_ARM) || \
defined(OF_MIPS64_N64) || defined(OF_MIPS) || \
defined(OF_SPARC64) || defined(OF_SPARC)
-# define OF_ASM_LOOKUP
-# endif
-#elif defined(OF_MACH_O)
-# if defined(OF_AMD64)
# define OF_ASM_LOOKUP
# endif
#elif defined(OF_WINDOWS)
# if defined(OF_AMD64) || defined(OF_X86)
# define OF_ASM_LOOKUP
Index: tests/OFBlockTests.m
==================================================================
--- tests/OFBlockTests.m
+++ tests/OFBlockTests.m
@@ -28,11 +28,11 @@
extern void *_NSConcreteGlobalBlock;
extern void *_NSConcreteMallocBlock;
#endif
/* Clang on Win32 generates broken code that crashes for global blocks. */
-#if !defined(OF_WINDOWS) || !defined(OF_X86) || !defined(__clang__)
+#if !defined(OF_WINDOWS) || !defined(__clang__)
static void (^globalBlock)(void) = ^ {};
#endif
static int
(^returnStackBlock(void))(void)
@@ -70,11 +70,11 @@
TEST(@"Class of stack block",
(Class)&_NSConcreteStackBlock == objc_getClass("OFStackBlock") &&
[stackBlock isKindOfClass: [OFBlock class]])
-#if !defined(OF_WINDOWS) || !defined(OF_X86) || !defined(__clang__)
+#if !defined(OF_WINDOWS) || !defined(__clang__)
TEST(@"Class of global block",
(Class)&_NSConcreteGlobalBlock == objc_getClass("OFGlobalBlock") &&
[globalBlock isKindOfClass: [OFBlock class]])
#endif
@@ -91,11 +91,11 @@
TEST(@"Copying a stack block and using its copied variable",
(voidBlock = returnStackBlock()) && voidBlock() == 43 &&
voidBlock() == 44 && voidBlock() == 45)
-#if !defined(OF_WINDOWS) || !defined(OF_X86) || !defined(__clang__)
+#if !defined(OF_WINDOWS) || !defined(__clang__)
TEST(@"Copying a global block",
(id)globalBlock == [[globalBlock copy] autorelease])
#endif
#ifndef __clang_analyzer__
@@ -104,11 +104,11 @@
[mallocBlock retainCount] == 2)
#endif
TEST(@"Autorelease a stack block", R([stackBlock autorelease]))
-#if !defined(OF_WINDOWS) || !defined(OF_X86) || !defined(__clang__)
+#if !defined(OF_WINDOWS) || !defined(__clang__)
TEST(@"Autorelease a global block", R([globalBlock autorelease]))
#endif
#ifndef __clang_analyzer__
TEST(@"Autorelease a malloc block", R([mallocBlock autorelease]))