mdns: use git fetcher

* https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz
  is just redirect to unsafe github archives which are regenerated from time to
  time.

* We do have src-uri-bad QA check which prevents to use github archives in SRC_URI
  since 2019:
  21f84fcdd6
  but this cannot catch such redirects, see:

$ wget https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.30.4.tar.gz
--2023-01-31 10:06:02--  https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-878.30.4.tar.gz
Resolving opensource.apple.com (opensource.apple.com)... 17.253.73.203, 17.253.73.206, 2a01:b740:a26:f000::5, ...
Connecting to opensource.apple.com (opensource.apple.com)|17.253.73.203|:443... connected.
HTTP request sent, awaiting response... 302 Redirect
Location: https://github.com/apple-oss-distributions/mDNSResponder/archive/refs/tags/mDNSResponder-878.30.4.tar.gz [following]
--2023-01-31 10:06:02--  https://github.com/apple-oss-distributions/mDNSResponder/archive/refs/tags/mDNSResponder-878.30.4.tar.gz
Resolving github.com (github.com)... 140.82.121.3
Connecting to github.com (github.com)|140.82.121.3|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://codeload.github.com/apple-oss-distributions/mDNSResponder/tar.gz/refs/tags/mDNSResponder-878.30.4 [following]
--2023-01-31 10:06:02--  https://codeload.github.com/apple-oss-distributions/mDNSResponder/tar.gz/refs/tags/mDNSResponder-878.30.4
Resolving codeload.github.com (codeload.github.com)... 140.82.121.10
Connecting to codeload.github.com (codeload.github.com)|140.82.121.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [application/x-gzip]
Saving to: ?mDNSResponder-878.30.4.tar.gz?

* The tarball was regenerated recently as discussed in:
  https://github.com/orgs/community/discussions/45830

* Use top-level directory in S to fix DEBUG_PREFIX_MAP usage
  like the version in master does, the only exception here is that
  there still was top-level Makefile (which fails to set VER with:
  Makefile:26: *** missing separator.  Stop.
  so use the simple one like newer version in master)
* it's already included in master as part of version upgrade in:
  ec96eb577b

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
This commit is contained in:
Martin Jansa 2023-02-15 12:09:18 +01:00 committed by Armin Kuster
parent 5785e5ddd8
commit 30f4c2b3ae
15 changed files with 203 additions and 16 deletions

View File

@ -0,0 +1,175 @@
From 177abf68e5ac5f82c6261af63528f8b6160bca0f Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Tue, 6 Dec 2022 13:28:31 +0000
Subject: [PATCH] make: Add top-level Makefile
Simple top level Makefile that just delegates to mDNSPosix.
Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
Makefile | 154 +------------------------------------------------------
1 file changed, 2 insertions(+), 152 deletions(-)
diff --git a/Makefile b/Makefile
index 8b6fa77..feb6ac6 100644
--- a/Makefile
+++ b/Makefile
@@ -1,152 +1,2 @@
-#
-# Copyright (c) 2003-2018 Apple Inc. All rights reserved.
-#
-# Top level makefile for Build & Integration (B&I).
-#
-# This file is used to facilitate checking the mDNSResponder project directly from git and submitting to B&I at Apple.
-#
-# The various platform directories contain makefiles or projects specific to that platform.
-#
-# B&I builds must respect the following target:
-# install:
-# installsrc:
-# installhdrs:
-# installapi:
-# clean:
-#
-
-include $(MAKEFILEPATH)/pb_makefiles/platform.make
-
-MVERS = "mDNSResponder-1310.140.1"
-
-VER =
-ifneq ($(strip $(GCC_VERSION)),)
- VER = -- GCC_VERSION=$(GCC_VERSION)
-endif
-echo "VER = $(VER)"
-
-projectdir := $(SRCROOT)/mDNSMacOSX
-buildsettings := OBJROOT=$(OBJROOT) SYMROOT=$(SYMROOT) DSTROOT=$(DSTROOT) MVERS=$(MVERS) SDKROOT=$(SDKROOT)
-
-.PHONY: install installSome installEmpty installExtras SystemLibraries installhdrs installapi installsrc java clean
-
-# Sanitizer support
-# Disable Sanitizer instrumentation in LibSystem contributors. See rdar://problem/29952210.
-UNSUPPORTED_SANITIZER_PROJECTS := mDNSResponderSystemLibraries mDNSResponderSystemLibraries_Sim
-PROJECT_SUPPORTS_SANITIZERS := 1
-ifneq ($(words $(filter $(UNSUPPORTED_SANITIZER_PROJECTS), $(RC_ProjectName))), 0)
- PROJECT_SUPPORTS_SANITIZERS := 0
-endif
-ifeq ($(RC_ENABLE_ADDRESS_SANITIZATION),1)
- ifeq ($(PROJECT_SUPPORTS_SANITIZERS),1)
- $(info Enabling Address Sanitizer)
- buildsettings += -enableAddressSanitizer YES
- else
- $(warning WARNING: Address Sanitizer not supported for project $(RC_ProjectName))
- endif
-endif
-ifeq ($(RC_ENABLE_THREAD_SANITIZATION),1)
- ifeq ($(PROJECT_SUPPORTS_SANITIZERS),1)
- $(info Enabling Thread Sanitizer)
- buildsettings += -enableThreadSanitizer YES
- else
- $(warning WARNING: Thread Sanitizer not supported for project $(RC_ProjectName))
- endif
-endif
-ifeq ($(RC_ENABLE_UNDEFINED_BEHAVIOR_SANITIZATION),1)
- ifeq ($(PROJECT_SUPPORTS_SANITIZERS),1)
- $(info Enabling Undefined Behavior Sanitizer)
- buildsettings += -enableUndefinedBehaviorSanitizer YES
- else
- $(warning WARNING: Undefined Behavior Sanitizer not supported for project $(RC_ProjectName))
- endif
-endif
-
-# B&I install build targets
-#
-# For the mDNSResponder build alias, the make target used by B&I depends on the platform:
-#
-# Platform Make Target
-# -------- -----------
-# osx install
-# ios installSome
-# atv installSome
-# watch installSome
-#
-# For the mDNSResponderSystemLibraries and mDNSResponderSystemLibraries_sim build aliases, B&I uses the SystemLibraries
-# target for all platforms.
-
-install:
-ifeq ($(RC_ProjectName), mDNSResponderServices)
-ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx)
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Services-macOS' $(VER)
-else
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Services' $(VER)
-endif
-else ifeq ($(RC_ProjectName), mDNSResponderServices_Sim)
- mkdir -p $(DSTROOT)/AppleInternal
-else
- cd '$(projectdir)'; xcodebuild install $(buildsettings) $(VER)
-endif
-
-installSome:
- cd '$(projectdir)'; xcodebuild install $(buildsettings) $(VER)
-
-installEmpty:
- mkdir -p $(DSTROOT)/AppleInternal
-
-installExtras:
-ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx)
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras-macOS' $(VER)
-else ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), ios)
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras-iOS' $(VER)
-else ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), atv)
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras-tvOS' $(VER)
-else
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target 'Build Extras' $(VER)
-endif
-
-SystemLibraries:
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target SystemLibraries $(VER)
-
-# B&I installhdrs build targets
-
-installhdrs::
-ifeq ($(RC_ProjectName), mDNSResponderServices)
-ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx)
- cd '$(projectdir)'; xcodebuild installhdrs $(buildsettings) -target 'Build Services-macOS' $(VER)
-else
- cd '$(projectdir)'; xcodebuild installhdrs $(buildsettings) -target 'Build Services' $(VER)
-endif
-else ifeq ($(RC_ProjectName), mDNSResponderServices_Sim)
- mkdir -p $(DSTROOT)/AppleInternal
-else ifneq ($(findstring SystemLibraries,$(RC_ProjectName)),)
- cd '$(projectdir)'; xcodebuild installhdrs $(buildsettings) -target SystemLibraries $(VER)
-endif
-
-# B&I installapi build targets
-
-installapi:
-ifeq ($(RC_ProjectName), mDNSResponderServices)
-ifeq ($(RC_PROJECT_COMPILATION_PLATFORM), osx)
- cd '$(projectdir)'; xcodebuild installapi $(buildsettings) -target 'Build Services-macOS' $(VER)
-else
- cd '$(projectdir)'; xcodebuild installapi $(buildsettings) -target 'Build Services' $(VER)
-endif
-else ifeq ($(RC_ProjectName), mDNSResponderServices_Sim)
- mkdir -p $(DSTROOT)/AppleInternal
-else ifneq ($(findstring SystemLibraries,$(RC_ProjectName)),)
- cd '$(projectdir)'; xcodebuild installapi $(buildsettings) -target SystemLibrariesDynamic $(VER)
-endif
-
-# Misc. targets
-
-installsrc:
- ditto . '$(SRCROOT)'
- rm -rf '$(SRCROOT)/mDNSWindows' '$(SRCROOT)/Clients/FirefoxExtension'
-
-java:
- cd '$(projectdir)'; xcodebuild install $(buildsettings) -target libjdns_sd.jnilib $(VER)
-
-clean::
- echo clean
+all clean:
+ cd mDNSPosix && $(MAKE) $@
--
2.38.1

View File

@ -2,28 +2,31 @@ SUMMARY = "Publishes & browses available services on a link according to the Zer
DESCRIPTION = "Bonjour, also known as zero-configuration networking, enables automatic discovery of computers, devices, and services on IP networks."
HOMEPAGE = "http://developer.apple.com/networking/bonjour/"
LICENSE = "Apache-2.0 & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
LIC_FILES_CHKSUM = "file://LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
DEPENDS:append:libc-musl = " musl-nscd"
RPROVIDES:${PN} += "libdns_sd.so"
SRC_URI = "https://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
# matches annotated tag mDNSResponder-1310.140.1
SRCREV = "1d1de95b98fba2077d34c9d78b839a96aa0e1c77"
BRANCH = "rel/mDNSResponder-1310"
SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https;branch=${BRANCH} \
file://mdns.service \
file://0001-mdns-include-stddef.h-for-NULL.patch;patchdir=.. \
file://0002-mdns-cross-compilation-fixes-for-bitbake.patch;patchdir=.. \
file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch;patchdir=.. \
file://0002-Create-subroutine-for-tearing-down-an-interface.patch;patchdir=.. \
file://0003-Track-interface-socket-family.patch;patchdir=.. \
file://0004-Use-list-for-changed-interfaces.patch;patchdir=.. \
file://0006-Remove-unneeded-function.patch;patchdir=.. \
file://0008-Mark-deleted-interfaces-as-being-changed.patch;patchdir=.. \
file://0009-Fix-possible-NULL-dereference.patch;patchdir=.. \
file://0010-Handle-errors-from-socket-calls.patch;patchdir=.. \
file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch;patchdir=.. \
file://0001-dns-sd-Include-missing-headers.patch;patchdir=.. \
file://0001-mdns-include-stddef.h-for-NULL.patch \
file://0002-mdns-cross-compilation-fixes-for-bitbake.patch \
file://0001-Create-subroutine-for-cleaning-recent-interfaces.patch \
file://0002-Create-subroutine-for-tearing-down-an-interface.patch \
file://0003-Track-interface-socket-family.patch \
file://0004-Use-list-for-changed-interfaces.patch \
file://0006-Remove-unneeded-function.patch \
file://0008-Mark-deleted-interfaces-as-being-changed.patch \
file://0009-Fix-possible-NULL-dereference.patch \
file://0010-Handle-errors-from-socket-calls.patch \
file://0011-Change-a-dynamic-allocation-to-file-scope-variable.patch \
file://0001-dns-sd-Include-missing-headers.patch \
file://0006-make-Add-top-level-Makefile.patch \
"
SRC_URI[sha256sum] = "040f6495c18b9f0557bcf9e00cbcfc82b03405f5ba6963dc147730ca0ca90d6f"
CVE_PRODUCT = "apple:mdnsresponder"
@ -42,13 +45,22 @@ CVE_CHECK_IGNORE += "CVE-2007-0613"
PARALLEL_MAKE = ""
S = "${WORKDIR}/mDNSResponder-${PV}/mDNSPosix"
# We install a stub Makefile in the top directory so that the various checks
# in base.bbclass pass their tests for a Makefile, this ensures (that amongst
# other things) the sstate checks will clean the build directory when the
# task hashes changes.
#
# We can't use the approach of setting ${S} to mDNSPosix as we need
# DEBUG_PREFIX_MAP to cover files which come from the Clients directory too.
S = "${WORKDIR}/git"
EXTRA_OEMAKE += "os=linux DEBUG=0 'CC=${CC}' 'LD=${CCLD} ${LDFLAGS}'"
TARGET_CC_ARCH += "${LDFLAGS}"
do_install () {
cd mDNSPosix
install -d ${D}${sbindir}
install -m 0755 build/prod/mdnsd ${D}${sbindir}