Andreas Wacknitz
2024-04-04 8590298b09ebad29af56370cd23105cd0931b389
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
138
139
140
141
142
143
144
145
#
# 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) 2010, 2018, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2019, Michal Nowak
# Copyright (c) 2021, Andreas Wacknitz
# Copyright (c) 2023, Niklas Poslovski
#
 
include ../../../make-rules/shared-macros.mk
 
COMPONENT_NAME=        ntp
HUMAN_VERSION=        4.2.8p17
COMPONENT_REVISION=    3
COMPONENT_VERSION=    $(subst p,.,$(HUMAN_VERSION))
COMPONENT_SUMMARY=    Network Time Protocol Daemon v4
COMPONENT_DESCRIPTION=    Network Time Protocol v4, NTP Daemon and Utilities
COMPONENT_PROJECT_URL=    https://www.ntp.org/
COMPONENT_SRC=        $(COMPONENT_SRC_NAME)-$(HUMAN_VERSION)
COMPONENT_ARCHIVE=    $(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH= sha256:103dd272e6a66c5b8df07dce5e9a02555fcd6f1397bdfb782237328e89d3a866
COMPONENT_ARCHIVE_URL=    https://archive.ntp.org/ntp4/ntp-4.2/$(COMPONENT_ARCHIVE)
COMPONENT_FMRI=    service/network/ntp
COMPONENT_CLASSIFICATION=    System/Services
COMPONENT_LICENSE=    ntp license
COMPONENT_LICENSE_FILE=    COPYRIGHT
 
PATCH_LEVEL = 0
 
ASLR_MODE= $(ASLR_ENABLE)
 
include $(WS_MAKE_RULES)/common.mk
 
COMPONENT_BUILD_ARGS=
 
COMPONENT_PREP_ACTION = ( cd $(@D) && PATH="$(PATH)" autoreconf --force --install )
 
CFLAGS += -D_XOPEN_SOURCE=600 -D__EXTENSIONS__
 
CONFIGURE_BINDIR = $(USRSBINDIR)
CONFIGURE_SBINDIR = $(USRSBINDIR)
 
CONFIGURE_OPTIONS +=    --with-binsubdir=sbin
CONFIGURE_OPTIONS +=    --libexecdir=$(USRLIBDIR)/inet
CONFIGURE_OPTIONS +=    --sysconfdir=$(ETCDIR)/inet
CONFIGURE_OPTIONS +=    --enable-getifaddrs
CONFIGURE_OPTIONS +=    --enable-all-clocks
CONFIGURE_OPTIONS +=    --enable-solarisprivs
CONFIGURE_OPTIONS +=    --enable-debugging
CONFIGURE_OPTIONS +=    --enable-debugg-timing
CONFIGURE_OPTIONS +=    --disable-optional-args
CONFIGURE_OPTIONS +=    --enable-parse-clocks
CONFIGURE_OPTIONS +=    --enable-ignore-dns-errors
# To avoid arc4random_addrandom error
#CONFIGURE_OPTIONS +=   --without-sntp
CONFIGURE_OPTIONS +=    --without-ntpsnmpd
CONFIGURE_OPTIONS +=    --with-crypto=openssl
CONFIGURE_OPTIONS +=    --with-openssl-incdir=$(OPENSSL_INCDIR)
CONFIGURE_OPTIONS +=    --with-openssl-libdir=$(OPENSSL_LIBDIR.64)
CONFIGURE_OPTIONS +=    --disable-problem-tests
# workaround for https://bugs.ntp.org/show_bug.cgi?id=3552
CONFIGURE_OPTIONS +=    --disable-signalled-io
 
BUILD_PKG_DEPENDENCIES =    $(BUILD_TOOLS)
 
COMPONENT_INSTALL_ENV += PATH=$(PATH.gnu)
 
# of the build and test and deleting the extra lines, it is easier to just
# cat together all of the logs. The test TEST_PROGNAME3 tests the system
# log facility, so we have to get rid of the output because the pid is
# different every time. Same for TEST_PROGNAME. We have to edit out the
# syslog format lines to get rid of the time and the pid. And the packet
# processing test uses the current time so it changes.
#
# In addition, we append the config.h file so we know if the configuration
# ever changes. We get rid of the version number which changes every time
# we upgrade and the system string and endian info which is different between
# intel and SPARC.
 
COMPONENT_TEST_CREATE_TRANSFORMS = \
    @if [ -e $(COMPONENT_TEST_MASTER) ]; \
    then \
        print "\#!/bin/sh" > $(COMPONENT_TEST_TRANSFORM_CMD); \
        print '$(FIND) $(BUILD_DIR_64) -name test-\*.log | sort |\\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print ' xargs cat  | grep -v TEST_PROGNAME | \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v unsync |  \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v no-leap |  \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v add-leap |  \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v del-leap |  \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'sed -e "s/4.2..p[0-9]*//" | \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'sed -e "s/^.*\[[0-9]*\]: //" | \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v ^resp | grep -v ^sent \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print '> $(COMPONENT_TEST_SNAPSHOT)' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'cat $(BUILD_DIR_64)/config.h | \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v ENDIAN | grep -v STR_SYSTEM | \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print 'grep -v VERSION | grep -v PACKAGE_STRING \\' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
        print '>> $(COMPONENT_TEST_SNAPSHOT)' \
            >> $(COMPONENT_TEST_TRANSFORM_CMD); \
    else \
        print 'Cannot find $(COMPONENT_TEST_MASTER)'; \
        exit 2; \
    fi
 
# Auto-generated dependencies
PERL_REQUIRED_PACKAGES += runtime/perl
REQUIRED_PACKAGES += SUNWcs
REQUIRED_PACKAGES += library/libedit
REQUIRED_PACKAGES += library/libevent2
REQUIRED_PACKAGES += library/security/openssl-31
REQUIRED_PACKAGES += service/network/dns/mdns
REQUIRED_PACKAGES += shell/ksh93
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/math