components/sudo/Makefile
author Lukas Rovensky <Lukas.Rovensky@oracle.com>
Thu, 03 Mar 2016 05:57:08 -0800
branchs11u3-sru
changeset 5568 d36fc1f41120
parent 4067 4be1f488dda8
child 7409 f574f35f5142
permissions -rw-r--r--
22663737 Upgrade sudo to version 1.8.15 22519409 problem in UTILITY/SUDO

#
# 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, 2016, Oracle and/or its affiliates. All rights reserved.
#

include ../../make-rules/shared-macros.mk

COMPONENT_NAME=		sudo
SRC_VERSION=	1.8.15
SRC_PATCH_VERSION=
ifdef SRC_PATCH_VERSION
COMPONENT_VERSION=	$(SRC_VERSION).$(SRC_PATCH_VERSION)
COMPONENT_SRC=		$(COMPONENT_NAME)-$(SRC_VERSION)p$(SRC_PATCH_VERSION)
else
COMPONENT_VERSION=	$(SRC_VERSION)
COMPONENT_SRC=		$(COMPONENT_NAME)-$(SRC_VERSION)
endif
COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
COMPONENT_ARCHIVE_HASH=	\
    sha256:4316381708324da8b6cb151f655c1a11855207c7c02244d8ffdea5104d7cc308
COMPONENT_ARCHIVE_URL=	http://www.sudo.ws/sudo/dist/$(COMPONENT_ARCHIVE)
COMPONENT_PROJECT_URL=  http://www.sudo.ws/
COMPONENT_BUGDB=	utility/sudo

TPNO=			26593

include $(WS_MAKE_RULES)/prep.mk
include $(WS_MAKE_RULES)/configure.mk
include $(WS_MAKE_RULES)/ips.mk

# Allows zero-sized struct/union declarations and void functions with return
# statements returning a value to work.
CFLAGS += -features=extensions

COMPONENT_PREP_ACTION = ( cd $(@D) ; $(AUTORECONF) -f -I m4 )

CONFIGURE_ENV +=	"CC=$(CC)"
CONFIGURE_ENV +=	"CFLAGS=$(CFLAGS)"
CONFIGURE_ENV +=	"CXX=$(CXX)"
CONFIGURE_ENV +=	"MAKE=$(GMAKE)"
CONFIGURE_ENV +=	"LDFLAGS=$(LDFLAGS)"

CONFIGURE_OPTIONS +=	--with-ldap
CONFIGURE_OPTIONS +=	--with-project
CONFIGURE_OPTIONS +=	--with-rundir=/system/volatile/sudo
CONFIGURE_OPTIONS +=	--with-pam
CONFIGURE_OPTIONS +=	--with-pam-login
CONFIGURE_OPTIONS +=	--disable-pam-session
CONFIGURE_OPTIONS +=	--with-tty-tickets
CONFIGURE_OPTIONS +=	--without-insults
CONFIGURE_OPTIONS +=	--without-lecture
CONFIGURE_OPTIONS +=	--with-ignore-dot
CONFIGURE_OPTIONS +=	--with-solaris-audit
CONFIGURE_OPTIONS +=	--libexecdir=/usr/lib/sudo
CONFIGURE_OPTIONS +=	"sudo_cv_var_nroff_opt_Tascii=no"

COMPONENT_BUILD_ENV +=	CC=$(CC) CXX=$(CXX)
COMPONENT_BUILD_ENV +=	"CFLAGS=$(CFLAGS)"

COMPONENT_INSTALL_TARGETS = install
COMPONENT_INSTALL_ARGS += bindir=$(USRBINDIR)
COMPONENT_INSTALL_ARGS += sbindir=$(USRSBINDIR)

# Avoid calling "chown 0" on installed files
COMPONENT_INSTALL_ARGS += INSTALL_OWNER=

# Enable aslr for this component
ASLR_MODE = $(ASLR_ENABLE)

# common targets

# 64 build corrupts audit logs because of 17561594. Until that is fixed do 32bit build.
build:		$(BUILD_32)

install:	$(INSTALL_32)

VISUDO=$(BUILD_DIR_32)/plugins/sudoers/visudo
test:
	# Since linking with libmd.so (which provides sha2 capability on
	# Solaris) is optional, we have a check here to make sure that the
	# configure script found it correctly.
	# http://www.sudo.ws/bugs/show_bug.cgi?id=641

	# Make sure that sudo is NOT built with it's internal sha2 implementation
	if [[ -n $$( elfdump -s "$(VISUDO)" | grep SHA256Init | grep -v UNDEF ) ]]; then \
		echo "SHA256Init is not an undefined symbol in $(VISUDO)"; \
		exit 1; \
	fi
	# ... but is linked with libmd instead
	if [[ -z $$( elfdump -d "$(VISUDO)" | grep 'NEEDED .* libmd.so' ) ]]; then \
		echo "$(VISUDO) is not linked against libmd.so"; \
		exit 1; \
	fi



REQUIRED_PACKAGES += library/zlib
REQUIRED_PACKAGES += system/library
REQUIRED_PACKAGES += system/library/security/crypto