fix: avahi remove /run directory

This commit is contained in:
ngn 2024-08-21 01:33:41 +03:00
parent 962301fdca
commit 68903e4de8
5 changed files with 88 additions and 26 deletions

View File

@ -1,5 +0,0 @@
#!/bin/bash -e
for d in src/*; do
echo "migrating ${d}..."
mp-migrate "${d}"
done

View File

@ -0,0 +1,51 @@
Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org>
Date: 2020-10-19
Initial Package Version: 0.8
Upstream Status: PR, not applied
Origin: Upstream PR (github.com/lathiat/avahi/pull/309)
Description: Fixes a race condition when multiple NICs are in use
when IPv6 is enabled. This will exhibit behavior where
messages about withdrawing address records, registering
access records, and new hostname announcements are
spammed to the log every second.
diff -Naurp avahi-0.8.orig/avahi-core/server.c avahi-0.8/avahi-core/server.c
--- avahi-0.8.orig/avahi-core/server.c 2020-02-16 21:41:24.939967558 -0600
+++ avahi-0.8/avahi-core/server.c 2020-10-19 11:07:22.054861721 -0500
@@ -193,7 +193,7 @@ static void withdraw_rrset(AvahiServer *
withdraw_entry(s, e);
}
-static void incoming_probe(AvahiServer *s, AvahiRecord *record, AvahiInterface *i) {
+static void incoming_probe(AvahiServer *s, AvahiRecord *record, AvahiInterface *i, int from_local_iface) {
AvahiEntry *e, *n;
int ours = 0, won = 0, lost = 0;
@@ -210,7 +210,7 @@ static void incoming_probe(AvahiServer *
if (e->dead)
continue;
- if ((cmp = avahi_record_lexicographical_compare(e->record, record)) == 0) {
+ if ((cmp = avahi_record_lexicographical_compare(e->record, record)) == 0 || from_local_iface) {
ours = 1;
break;
} else {
@@ -639,7 +639,7 @@ static void handle_query_packet(AvahiSer
if (!avahi_key_is_pattern(record->key)) {
if (!from_local_iface)
reflect_probe(s, i, record);
- incoming_probe(s, record, i);
+ incoming_probe(s, record, i, from_local_iface);
}
avahi_record_unref(record);
@@ -961,8 +961,7 @@ static void dispatch_packet(AvahiServer
return;
/* We don't want to reflect local traffic, so we check if this packet is generated locally. */
- if (s->config.enable_reflector)
- from_local_iface = originates_from_local_iface(s, iface, src_address, port);
+ from_local_iface = originates_from_local_iface(s, iface, src_address, port);
if (avahi_dns_packet_check_valid_multicast(p) < 0) {
avahi_log_debug("Received invalid packet.");

View File

@ -1,27 +1,33 @@
NAME="avahi"
DESC="System which facilitates service discovery on a local network"
VERSION="0.8"
FILES=(
"https://github.com/lathiat/avahi/releases/download/v$VERSION/avahi-$VERSION.tar.gz"
"https://www.linuxfromscratch.org/patches/blfs/12.0/avahi-$VERSION-ipv6_race_condition_fix-1.patch"
"https://github.com/lathiat/avahi/releases/download/v${VERSION}/avahi-${VERSION}.tar.gz"
"avahi-${VERSION}-ipv6_race_condition_fix-1.patch"
)
HASHES=(
"229c6aa30674fc43c202b22c5f8c2be7"
"218c909581d0ca2c86c8145bb0797050d987a6b0ae3417949dbe2a6d55c49360"
)
DEPENDS=("glib" "gtk2" "gtk3" "libdaemon" "libglade" "qt5")
DEPENDS=(
"glib" "gtk3" "libdaemon"
"libglade" "qt5" "libcap"
)
BUILD=("doxygen" "gobject-introspection" "graphviz" "libevent")
PACKAGE() {
tar xf $NAME-$VERSION.tar.gz
cd $NAME-$VERSION
tar xf "${NAME}-${VERSION}.tar.gz"
cd "${NAME}-${VERSION}"
patch -Np1 -i ../avahi-$VERSION-ipv6_race_condition_fix-1.patch
patch -Np1 -i "../avahi-${VERSION}-ipv6_race_condition_fix-1.patch"
sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c
./configure \
./configure \
--prefix=/usr \
--sysconfdir=/etc \
--localstatedir=/var \
@ -35,7 +41,10 @@ return; \
--enable-core-docs \
--with-distro=none \
--with-dbus-system-address='unix:path=/run/dbus/system_bus_socket'
make && make DESTDIR="$ROOTDIR" install
cd .. && rm -r $NAME-$VERSION
make
make DESTDIR="${ROOTDIR}" install
rm -rf "${ROOTDIR}/run" # for some reason install scripts creates an empty /run directory
cd .. && rm -r "${NAME}-${VERSION}"
}

View File

@ -33,8 +33,8 @@ PACKAGE() {
cp "${ROOTDIR}/mozconfig" .
export MOZ_DEBUG_FLAGS=" "
export CFLAGS+=" -g0"
export CXXFLAGS+=" -g0"
export CFLAGS+=" -g0 -std=gnu89"
export CXXFLAGS+=" -g0 -std=gnu89"
export RUSTFLAGS="-Cdebuginfo=0"
export MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE=none
@ -43,7 +43,7 @@ PACKAGE() {
ulimit -n 4096
python3 ./mach configure
python3 ./mach build
python3 ./mach build --verbose
DESTDIR="${ROOTDIR}" python3 ./mach install
unset MACH_BUILD_PYTHON_NATIVE_PACKAGE_SOURCE MOZBUILD_STATE_PATH

View File

@ -1,13 +1,20 @@
NAME="nodejs"
DESC="JavaScript runtime built on Chrome's V8 JavaScript engine"
VERSION="18.17.1"
FILES=("https://nodejs.org/dist/v$VERSION/node-v$VERSION.tar.xz")
HASHES=("cfadecca2649bb74daba89d60fbd02e5")
DEPENDS=("which" "c-ares" "icu" "libuv" "nghttp2")
VERSION="20.11.1"
FILES=("https://nodejs.org/dist/v${VERSION}/node-v${VERSION}.tar.xz")
HASHES=("3b2fe4d7a4c8dadb58563d822de6c4f4")
DEPENDS=(
"brotli" "c-ares" "icu"
"nghttp2" "libuv" "openssl"
"zlib"
)
BUILD=("procps-ng" "python3")
PACKAGE() {
tar xf node-v$VERSION.tar.xz
cd node-v$VERSION
tar xf "node-v${VERSION}.tar.xz"
cd "node-v${VERSION}"
./configure --prefix=/usr \
--shared-cares \
@ -16,8 +23,8 @@ PACKAGE() {
--shared-nghttp2 \
--shared-zlib \
--with-intl=system-icu
make && make DESTDIR="$ROOTDIR" install
ln -sf node "$ROOTDIR/usr/share/doc/node-$VERSION"
make && make DESTDIR="${ROOTDIR}" install
ln -sf node "${ROOTDIR}/usr/share/doc/node-${VERSION}"
cd .. && rm -r node-v$VERSION
cd .. && rm -r "node-v${VERSION}"
}