Marcel Telka
2024-04-07 8a23b876d5e0a9d2a1ae972f152fad47a355daa4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, Michal Nowak
# Copyright (c) 2022, Niklas Poslovski
# Copyright (c) 2023, Friedrich Kink
#
 
USE_DEFAULT_TEST_TRANSFORMS= yes
include ../../../make-rules/shared-macros.mk
COMPONENT_TEST_DIR = $(@D)/tests
 
COMPONENT_NAME=        bind
COMPONENT_VERSION=    9.18.25
COMPONENT_SUMMARY=    BIND DNS name server and configuration tools.
COMPONENT_DESCRIPTION=    BIND is open source software that implements the Domain Name System \
                        (DNS) protocols for the Internet.  This package contains the DNS \
                        server 'named' and tools used to setup and validate configuration.
COMPONENT_SRC=        $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE=    $(COMPONENT_SRC).tar.xz
COMPONENT_PROJECT_URL=    https://www.isc.org/software/bind/
COMPONENT_ARCHIVE_HASH=    sha256:5a4a70432a33d009f0e6e9dbb328aae7a5e27507e98e28bf3c0c6b250ccb2ab3
COMPONENT_ARCHIVE_URL=    https://ftp.isc.org/isc/bind9/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
COMPONENT_FMRI=        network/dns/$(COMPONENT_NAME)
COMPONENT_CLASSIFICATION=    Applications/Internet
COMPONENT_LICENSE=    MPL v2.0
COMPONENT_LICENSE_FILE=    COPYRIGHT
 
include $(WS_MAKE_RULES)/common.mk
 
PKG_MACROS += PYVER=$(PYTHON_VERSION)
 
COMPONENT_PREP_ACTION= ( cd $(@D) && autoreconf -fi )
 
# Missing files in build dir without this (mainly man pages).
COMPONENT_PRE_CONFIGURE_ACTION= ( $(CLONEY) $(SOURCE_DIR) $(@D) )
 
CFLAGS += $(CPP_XPG6MODE)
 
# Build.
#
# FYI, The configure options are displayed by 'named -V'.  Previously
# that was overriden by setting CONFIGARGS to hide build server
# pathnames.
 
# default LD_OPTION $(LD_B_DIRECT) causes problems with tests which
# interpose on functions in shared libraries
LD_B_DIRECT=
 
# DNS libraries are in usr/lib/dns - Override settings from configure.mk
CONFIGURE_LIBDIR.64= $(CONFIGURE_PREFIX)/lib/dns/$(MACH64)
 
CONFIGURE_OPTIONS += --disable-dependency-tracking
CONFIGURE_OPTIONS += --disable-static
CONFIGURE_OPTIONS += --sysconfdir=/etc
CONFIGURE_OPTIONS += --localstatedir=/var
CONFIGURE_OPTIONS += --with-openssl=/usr
CONFIGURE_OPTIONS += --enable-warn-error
CONFIGURE_OPTIONS += --enable-fixed-rrset
CONFIGURE_OPTIONS += --enable-full-report
CONFIGURE_OPTIONS += --with-cmocka
CONFIGURE_OPTIONS += --with-gssapi
CONFIGURE_OPTIONS += --with-libidn2
CONFIGURE_OPTIONS += --with-libxml2
CONFIGURE_OPTIONS += --with-json-c
CONFIGURE_OPTIONS += --with-libnghttp2=yes
CONFIGURE_OPTIONS += --enable-pthread-rwlock
CONFIGURE_OPTIONS += --with-readline=readline
CONFIGURE_OPTIONS += --with-tuning=default
CONFIGURE_OPTIONS += --disable-linux-caps
CONFIGURE_OPTIONS += READLINE_CFLAGS=-I/usr/include/readline
CONFIGURE_OPTIONS += READLINE_LIBS="-lreadline -ltermcap"
 
# Install.
#
# Currently manual pages are distributed from pkg:/system/manual@.
# While there are some changes in our manuals, additions to named(1M) for SMF - that could be fixed
# by a patch.
#
# In addition to BIND deliverables we also deliver SMF files and
# migration notes.  There is no need to install these extras into the
# prototype directory, they are simply referenced in relevant manifest
# (p5m) file.
 
COMPONENT_TEST_ENV_CMD =
COMPONENT_TEST_ENV += PATH=$(PATH.gnu)
COMPONENT_TEST_ENV += LC_ALL=C.UTF-8
# The user running the test needs an profiles=Network Management entry in /etc/user_attr in order to successfully run the following ifconfig.sh up script:
COMPONENT_PRE_TEST_ACTION= ( cd $(BUILD_DIR_64)/bin/tests/system && pfexec sh ./ifconfig.sh up )
COMPONENT_POST_TEST_ACTION= ( cd $(BUILD_DIR_64)/bin/tests/system && pfexec sh ./ifconfig.sh down )
 
# If SHELLOPTS is exported (as it is by the userland makefiles),
# then all shell options get exported to child invocations of bash,
# which results in test failures due to nounset and xtrace being
# set unexpectedly, and errors such as "$1: unbound variable" and
# diffs failing due to script tracing in output files.
unexport SHELLOPTS
 
# Fix the hard link direction
PKG_HARDLINKS += usr/bin/named-checkzone
 
# Manually added build dependencies
REQUIRED_PACKAGES += library/cmocka
 
# Auto-generated dependencies
REQUIRED_PACKAGES += SUNWcs
REQUIRED_PACKAGES += database/lmdb
REQUIRED_PACKAGES += library/json-c
REQUIRED_PACKAGES += library/libidn2
REQUIRED_PACKAGES += library/libuv
REQUIRED_PACKAGES += library/libxml2
REQUIRED_PACKAGES += library/nghttp2
REQUIRED_PACKAGES += library/readline
REQUIRED_PACKAGES += library/security/openssl-31
REQUIRED_PACKAGES += library/zlib
REQUIRED_PACKAGES += service/security/kerberos-5
REQUIRED_PACKAGES += shell/ksh93
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/security/gss