From cgrzemba at users.sourceforge.net Mon Jun 1 15:47:15 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 1 Jun 2015 13:47:15 +0000 Subject: SF.net SVN: gar:[25040] csw/mgar/pkg/apache24/trunk Message-ID: <3m0d9D6bPvzVY@mail.opencsw.org> Revision: 25040 http://sourceforge.net/p/gar/code/25040 Author: cgrzemba Date: 2015-06-01 13:47:15 +0000 (Mon, 01 Jun 2015) Log Message: ----------- apache24/trunk: fix configuration issues Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/Makefile csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall csw/mgar/pkg/apache24/trunk/files/cswapache24 Modified: csw/mgar/pkg/apache24/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache24/trunk/Makefile 2015-05-31 21:52:29 UTC (rev 25039) +++ csw/mgar/pkg/apache24/trunk/Makefile 2015-06-01 13:47:15 UTC (rev 25040) @@ -106,7 +106,7 @@ # else # MODULE_CONF=$(DESTDIR)$(sysconfdir)/apache2/extra/module.load # endif -MODULE_CONF=$(DESTDIR)$(sysconfdir)/$(MM_LIBDIR)/apache2/extra/module.load +MODULE_CONF=$(DESTDIR)$(sysconfdir)/$(MM_LIBDIR)/apache2/extra/modules.load # Build Configuration CONFIGURE_ARGS += --with-apr=$(prefix) Modified: csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall =================================================================== --- csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall 2015-05-31 21:52:29 UTC (rev 25039) +++ csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall 2015-06-01 13:47:15 UTC (rev 25040) @@ -1 +1 @@ -[ -x /usr/sbin/svccfg ] && /usr/sbin/svccfg -s cswapache24 'setprop config/enable_64bit = :boolean false' +[ -x /usr/sbin/svccfg ] && /usr/sbin/svccfg -s cswapache24 'setprop general/enable_64bit = boolean: false' Modified: csw/mgar/pkg/apache24/trunk/files/cswapache24 =================================================================== --- csw/mgar/pkg/apache24/trunk/files/cswapache24 2015-05-31 21:52:29 UTC (rev 25039) +++ csw/mgar/pkg/apache24/trunk/files/cswapache24 2015-06-01 13:47:15 UTC (rev 25040) @@ -1,4 +1,4 @@ -#!/sbin/ksh +#!/bin/ksh # # Copyright 2004 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. @@ -11,7 +11,7 @@ #RC_KLEV 0,1,2,S #RC_SLEV 3 #FMRI network -ENABLE64=$(/usr/bin/svcprop -p config/enable_64bit ${SMF_FMRI}) +ENABLE64=$(/usr/bin/svcprop -p general/enable_64bit ${SMF_FMRI}) [ ${ENABLE64} = "true" ] && MM=/64 APACHE_HOME=@prefix@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Mon Jun 1 16:02:34 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 1 Jun 2015 14:02:34 +0000 Subject: SF.net SVN: gar:[25041] csw/mgar/pkg/lang-python Message-ID: <3m0dVv4nVmzY1@mail.opencsw.org> Revision: 25041 http://sourceforge.net/p/gar/code/25041 Author: cgrzemba Date: 2015-06-01 14:02:33 +0000 (Mon, 01 Jun 2015) Log Message: ----------- lang-python/bcrypt/trunk: Initial commit version 1.1.1 Added Paths: ----------- csw/mgar/pkg/lang-python/bcrypt/ csw/mgar/pkg/lang-python/bcrypt/Makefile csw/mgar/pkg/lang-python/bcrypt/branches/ csw/mgar/pkg/lang-python/bcrypt/tags/ csw/mgar/pkg/lang-python/bcrypt/trunk/ csw/mgar/pkg/lang-python/bcrypt/trunk/Makefile csw/mgar/pkg/lang-python/bcrypt/trunk/checksums csw/mgar/pkg/lang-python/bcrypt/trunk/files/ Added: csw/mgar/pkg/lang-python/bcrypt/Makefile =================================================================== --- csw/mgar/pkg/lang-python/bcrypt/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/bcrypt/Makefile 2015-06-01 14:02:33 UTC (rev 25041) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/bcrypt/trunk =================================================================== --- csw/mgar/pkg/lang-python/bcrypt/trunk 2015-06-01 13:47:15 UTC (rev 25040) +++ csw/mgar/pkg/lang-python/bcrypt/trunk 2015-06-01 14:02:33 UTC (rev 25041) Property changes on: csw/mgar/pkg/lang-python/bcrypt/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/bcrypt/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/bcrypt/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/bcrypt/trunk/Makefile 2015-06-01 14:02:33 UTC (rev 25041) @@ -0,0 +1,22 @@ +# $Id$ + +NAME = bcrypt +VERSION = 1.1.1 +CATEGORIES = python +GARTYPE = v2 + +DESCRIPTION = Modern password hashing for your software and your servers + +DISTFILES = $(DISTNAME).tar.gz +VENDOR_URL = https://pypi.python.org/pypi/six + +GARCOMPILER = SOS12U4 + +LICENSE = LICENSE + +RUNTIME_DEP_PKGS_CSWpy-bcrypt += CSWlibpython2-7-1-0 +RUNTIME_DEP_PKGS_CSWpy-bcrypt += CSWlibpython2-6-1-0 + +TEST_SCRIPTS = + +include gar/category.mk Property changes on: csw/mgar/pkg/lang-python/bcrypt/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/bcrypt/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/bcrypt/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/bcrypt/trunk/checksums 2015-06-01 14:02:33 UTC (rev 25041) @@ -0,0 +1 @@ +43c5871c6bc7da1efe6a8bae25f90ad8 bcrypt-1.1.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Mon Jun 1 16:43:12 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 1 Jun 2015 14:43:12 +0000 Subject: SF.net SVN: gar:[25042] csw/mgar/pkg/lang-python Message-ID: <3m0fPm6j2PzdV@mail.opencsw.org> Revision: 25042 http://sourceforge.net/p/gar/code/25042 Author: cgrzemba Date: 2015-06-01 14:43:12 +0000 (Mon, 01 Jun 2015) Log Message: ----------- lang-python/cffi/trunk: Initial commit version 1.1.0 Added Paths: ----------- csw/mgar/pkg/lang-python/cffi/ csw/mgar/pkg/lang-python/cffi/Makefile csw/mgar/pkg/lang-python/cffi/branches/ csw/mgar/pkg/lang-python/cffi/tags/ csw/mgar/pkg/lang-python/cffi/trunk/ csw/mgar/pkg/lang-python/cffi/trunk/Makefile csw/mgar/pkg/lang-python/cffi/trunk/checksums csw/mgar/pkg/lang-python/cffi/trunk/files/ Added: csw/mgar/pkg/lang-python/cffi/Makefile =================================================================== --- csw/mgar/pkg/lang-python/cffi/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/cffi/Makefile 2015-06-01 14:43:12 UTC (rev 25042) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/cffi/trunk =================================================================== --- csw/mgar/pkg/lang-python/cffi/trunk 2015-06-01 14:02:33 UTC (rev 25041) +++ csw/mgar/pkg/lang-python/cffi/trunk 2015-06-01 14:43:12 UTC (rev 25042) Property changes on: csw/mgar/pkg/lang-python/cffi/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/cffi/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/cffi/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/cffi/trunk/Makefile 2015-06-01 14:43:12 UTC (rev 25042) @@ -0,0 +1,22 @@ + +NAME = cffi +VERSION = 1.1.0 +CATEGORIES = python +GARTYPE = v2 + +DESCRIPTION = Foreign Function Interface for Python calling C code + +DISTFILES = $(DISTNAME).tar.gz +VENDOR_URL = https://pypi.python.org/pypi/cffi + +GARCOMPILER = SOS12U4 + +LICENSE = LICENSE + +RUNTIME_DEP_PKGS_CSWpy-cffi += CSWlibpython2-7-1-0 +RUNTIME_DEP_PKGS_CSWpy-cffi += CSWlibpython2-6-1-0 +RUNTIME_DEP_PKGS_CSWpy-cffi += CSWlibffi6 + +TEST_SCRIPTS = + +include gar/category.mk Property changes on: csw/mgar/pkg/lang-python/cffi/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/cffi/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/cffi/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/cffi/trunk/checksums 2015-06-01 14:43:12 UTC (rev 25042) @@ -0,0 +1 @@ +b58d43a708e757f63a905c6a0d9ecf7a cffi-1.1.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Mon Jun 1 17:16:56 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 1 Jun 2015 15:16:56 +0000 Subject: SF.net SVN: gar:[25043] csw/mgar/pkg/lang-python Message-ID: <3m0g8l40G6zh1@mail.opencsw.org> Revision: 25043 http://sourceforge.net/p/gar/code/25043 Author: cgrzemba Date: 2015-06-01 15:16:55 +0000 (Mon, 01 Jun 2015) Log Message: ----------- lang-python/cparser/trunk: Initial commit version 2.13 Added Paths: ----------- csw/mgar/pkg/lang-python/cparser/ csw/mgar/pkg/lang-python/cparser/Makefile csw/mgar/pkg/lang-python/cparser/branches/ csw/mgar/pkg/lang-python/cparser/tags/ csw/mgar/pkg/lang-python/cparser/trunk/ csw/mgar/pkg/lang-python/cparser/trunk/Makefile csw/mgar/pkg/lang-python/cparser/trunk/checksums csw/mgar/pkg/lang-python/cparser/trunk/files/ Added: csw/mgar/pkg/lang-python/cparser/Makefile =================================================================== --- csw/mgar/pkg/lang-python/cparser/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/cparser/Makefile 2015-06-01 15:16:55 UTC (rev 25043) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/cparser/trunk =================================================================== --- csw/mgar/pkg/lang-python/cparser/trunk 2015-06-01 14:43:12 UTC (rev 25042) +++ csw/mgar/pkg/lang-python/cparser/trunk 2015-06-01 15:16:55 UTC (rev 25043) Property changes on: csw/mgar/pkg/lang-python/cparser/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/cparser/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/cparser/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/cparser/trunk/Makefile 2015-06-01 15:16:55 UTC (rev 25043) @@ -0,0 +1,18 @@ + +NAME = pycparser +VERSION = 2.13 +CATEGORIES = python +GARTYPE = v2 + +DESCRIPTION = Complete parser of the C language + +DISTFILES = $(DISTNAME).tar.gz +VENDOR_URL = https://pypi.python.org/pypi/pycparser + + +ARCHALL = 1 +LICENSE = LICENSE + +TEST_SCRIPTS = + +include gar/category.mk Property changes on: csw/mgar/pkg/lang-python/cparser/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/cparser/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/cparser/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/cparser/trunk/checksums 2015-06-01 15:16:55 UTC (rev 25043) @@ -0,0 +1 @@ +e4fe1a2d341b22e25da0d22f034ef32f pycparser-2.13.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Mon Jun 1 18:22:32 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Mon, 1 Jun 2015 16:22:32 +0000 Subject: SF.net SVN: gar:[25044] csw/mgar/pkg/openssl1/trunk Message-ID: <3m0hcT0b2rzlH@mail.opencsw.org> Revision: 25044 http://sourceforge.net/p/gar/code/25044 Author: janholzh Date: 2015-06-01 16:22:31 +0000 (Mon, 01 Jun 2015) Log Message: ----------- openssl1/trunk: update fork patch, don't use it with Solaris 9 does not work Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2015-06-01 15:16:55 UTC (rev 25043) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2015-06-01 16:22:31 UTC (rev 25044) @@ -28,7 +28,7 @@ # This recipe can be used to compile openssl with Sun Studio or GCC # Just define the GARCOMPILER to the GNU or SUN -GARCOMPILER = GCC4 +GARCOMPILER = GNU GARCOMPILER_TYPE = $(if $(findstring GCC,$(GARCOMPILER)),GNU,SUN) PACKAGES = CSWlibssl1-0-0 CSWlibssl-dev CSWopenssl-utils @@ -143,7 +143,9 @@ # from https://hg.openindiana.org/upstream/oracle/userland-gate/ # This patch solves a bug with thread and fork safety and is also needed so that # upstream wanboot patch can be applied out of the box +ifneq ($(shell /usr/bin/uname -r),5.9) PATCHFILES += openssl-1.0.1m-fork_safe.patch +endif # support for pkcs11 engine http://blogs.sun.com/chichang1/entry/how_to_integrate_pkcs11_engine ifneq ($(shell /usr/bin/uname -r),5.9) Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch 2015-06-01 15:16:55 UTC (rev 25043) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch 2015-06-01 16:22:31 UTC (rev 25044) @@ -1,6 +1,7 @@ # # This file adds the code to setup internal mutexes and callback function. # PSARC/2014/077 +# PSARC/2015/043 # This change was implemented in-house. The issue was brought up to # the upstream engineers, but there was no commitment. # @@ -23,7 +24,43 @@ static void (MS_FAR *locking_callback) (int mode, int type, const char *file, int line) = 0; static int (MS_FAR *add_lock_callback) (int *pointer, int amount, -@@ -402,6 +405,79 @@ +@@ -373,7 +376,10 @@ + void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*func) + (const char *file, int line)) + { +- dynlock_create_callback = func; ++ /* ++ * we now setup our own dynamic locking callback, and disallow ++ * setting of another locking callback. ++ */ + } + + void CRYPTO_set_dynlock_lock_callback(void (*func) (int mode, +@@ -382,7 +388,10 @@ + const char *file, + int line)) + { +- dynlock_lock_callback = func; ++ /* ++ * we now setup our own dynamic locking callback, and disallow ++ * setting of another locking callback. ++ */ + } + + void CRYPTO_set_dynlock_destroy_callback(void (*func) +@@ -389,7 +398,10 @@ + (struct CRYPTO_dynlock_value *l, + const char *file, int line)) + { +- dynlock_destroy_callback = func; ++ /* ++ * we now setup our own dynamic locking callback, and disallow ++ * setting of another locking callback. ++ */ + } + + void (*CRYPTO_get_locking_callback(void)) (int mode, int type, +@@ -402,6 +414,129@@ return (add_lock_callback); } @@ -33,71 +70,121 @@ + */ +static void solaris_locking_callback(int mode, int type, const char *file, + int line) -+ { -+ if (mode & CRYPTO_LOCK) -+ { -+ pthread_mutex_lock(&solaris_openssl_locks[type]); -+ } -+ else -+ { -+ pthread_mutex_unlock(&solaris_openssl_locks[type]); -+ } -+ } ++{ ++ if (mode & CRYPTO_LOCK) { ++ pthread_mutex_lock(&solaris_openssl_locks[type]); ++ } else { ++ pthread_mutex_unlock(&solaris_openssl_locks[type]); ++ } ++} + + +/* ++ * Implement Solaris's own dynamic locking routines. ++ */ ++static struct CRYPTO_dynlock_value * ++solaris_dynlock_create(const char *file, int line) ++{ ++ int ret; ++ pthread_mutex_t *dynlock; ++ ++ dynlock = OPENSSL_malloc(sizeof(pthread_mutex_t)); ++ if (dynlock == NULL) { ++ return (NULL); ++ } ++ ++ ret = pthread_mutex_init(dynlock, NULL); ++ OPENSSL_assert(ret); ++ ++ return ((struct CRYPTO_dynlock_value *)dynlock); ++} ++ ++static void ++solaris_dynlock_lock(int mode, struct CRYPTO_dynlock_valud *dynlock, ++ const char *file, int line) ++{ ++ int ret; ++ ++ if (mode & CRYPTO_LOCK) { ++ ret = pthread_mutex_lock((pthread_mutex_t *)dynlock); ++ } else { ++ ret = pthread_mutex_unlock((pthread_mutex_t *)dynlock); ++ } ++ ++ OPENSSL_assert(ret == 0); ++} ++ ++static void ++solaris_dynlock_destroy(struct CRYPTO_dynlock_value *dynlock, ++ const char *file, int line) ++{ ++ int ret; ++ ret = pthread_mutex_destroy((pthread_mutex_t *)dynlock); ++ OPENSSL_assert(ret); ++} ++ ++ ++/* + * This function is called when a child process is forked to setup its own + * global locking callback function ptr and mutexes. + */ +static void solaris_fork_child(void) -+ { -+ /* -+ * clear locking_callback to indicate that locks should -+ * be reinitialized. -+ */ -+ locking_callback = NULL; -+ solaris_locking_setup(); -+ } ++{ ++ /* ++ * clear locking_callback to indicate that locks should ++ * be reinitialized. ++ */ ++ locking_callback = NULL; ++ solaris_locking_setup(); ++} + +/* + * This function allocates and initializes the global mutex array, and + * sets the locking callback. + */ +void solaris_locking_setup() -+ { -+ int i; -+ int num_locks; ++{ ++ int i; ++ int num_locks; + -+ /* locking callback is already setup. Nothing to do */ -+ if (locking_callback != NULL) -+ { -+ return; -+ } ++ /* setup the dynlock callback if not already */ ++ if (dynlock_create_callback == NULL) { ++ dynlock_create_callback = solaris_dynlock_create; ++ } ++ if (dynlock_lock_callback == NULL) { ++ dynlock_lock_callback = solaris_dynlock_lock; ++ } ++ if (dynlock_destroy_callback == NULL) { ++ dynlock_destroy_callback = solaris_dynlock_destroy; ++ } + -+ /* -+ * Set atfork handler so that child can setup its own mutexes and -+ * locking callbacks when it is forked -+ */ -+ (void) pthread_atfork(NULL, NULL, solaris_fork_child); ++ /* locking callback is already setup. Nothing to do */ ++ if (locking_callback != NULL) { ++ return; ++ } + -+ /* allocate locks needed by OpenSSL */ -+ num_locks = CRYPTO_num_locks(); -+ solaris_openssl_locks = -+ OPENSSL_malloc(sizeof (pthread_mutex_t) * num_locks); -+ if (solaris_openssl_locks == NULL) -+ { -+ fprintf(stderr, -+ "solaris_locking_setup: memory allocation failure.\n"); -+ abort(); -+ } ++ /* ++ * Set atfork handler so that child can setup its own mutexes and ++ * locking callbacks when it is forked ++ */ ++ (void) pthread_atfork(NULL, NULL, solaris_fork_child); + -+ /* initialize openssl mutexes */ -+ for (i = 0; i < num_locks; i++) -+ { -+ pthread_mutex_init(&solaris_openssl_locks[i], NULL); -+ } -+ locking_callback = solaris_locking_callback; ++ /* allocate locks needed by OpenSSL */ ++ num_locks = CRYPTO_num_locks(); ++ solaris_openssl_locks = ++ OPENSSL_malloc(sizeof (pthread_mutex_t) * num_locks); ++ if (solaris_openssl_locks == NULL) { ++ fprintf(stderr, ++ "solaris_locking_setup: memory allocation failure.\n"); ++ abort(); ++ } + ++ /* initialize openssl mutexes */ ++ for (i = 0; i < num_locks; i++) { ++ pthread_mutex_init(&solaris_openssl_locks[i], NULL); ++ } ++ locking_callback = solaris_locking_callback; ++ +} + void CRYPTO_set_locking_callback(void (*func) (int mode, int type, @@ -109,13 +196,39 @@ OPENSSL_init(); - locking_callback = func; + -+ /* -+ * we now setup our own locking callback and mutexes, and disallow -+ * setting of another locking callback. -+ */ ++ /* ++ * we now setup our own locking callback and mutexes, and disallow ++ * setting of another locking callback. ++ */ } void CRYPTO_set_add_lock_callback(int (*func) (int *num, int mount, int type, +@@ -471,9 +551,10 @@ + + int CRYPTO_THREADID_set_callback(void (*func) (CRYPTO_THREADID *)) + { +- if (threadid_callback) +- return 0; +- threadid_callback = func; ++ /* ++ * Use the backup method (the address of 'errno') to identify the ++ * thread and disallow setting the threadid callback. ++ */ + return 1; + } + +@@ -531,7 +611,10 @@ + + void CRYPTO_set_id_callback(unsigned long (*func) (void)) + { +- id_callback = func; ++ /* ++ * Use the backup method to identify the thread/process. ++ * Setting the id callback is disallowed. ++ */ + } + + unsigned long CRYPTO_thread_id(void) --- openssl-1.0.1f/crypto/cryptlib.h.~1~ Fri Feb 7 10:41:42 2014 +++ openssl-1.0.1f/crypto/cryptlib.h Thu Feb 6 16:04:16 2014 @@ -104,6 +104,8 @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 1 22:16:13 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 1 Jun 2015 20:16:13 +0000 Subject: SF.net SVN: gar:[25045] csw/mgar/pkg/stunnel/trunk Message-ID: <3m0nqK0JVmzxm@mail.opencsw.org> Revision: 25045 http://sourceforge.net/p/gar/code/25045 Author: dmichelsen Date: 2015-06-01 20:16:13 +0000 (Mon, 01 Jun 2015) Log Message: ----------- stunnel/trunk: Update to 5.18, complete rework Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile csw/mgar/pkg/stunnel/trunk/checksums Added Paths: ----------- csw/mgar/pkg/stunnel/trunk/files/cswstunnel.xml Removed Paths: ------------- csw/mgar/pkg/stunnel/trunk/files/0001-Honour-sysconfdir-bindir-and-localstatedir-everywher.patch csw/mgar/pkg/stunnel/trunk/files/0001-Make-stunnel.conf-sample.in-honor-sysconfdir-localst.patch csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.checkinstall csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.cswstunnel csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.postinstall csw/mgar/pkg/stunnel/trunk/files/changelog.CSW Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-01 20:16:13 UTC (rev 25045) @@ -7,7 +7,8 @@ # Test on Solaris 8 / 9 for comparison # NAME = stunnel -VERSION = 5.17 +VERSION = 5.18 +BETA = b4 GARTYPE = v2 DESCRIPTION = Universal SSL Wrapper @@ -19,18 +20,14 @@ the daemon's code. endef -MASTER_SITES = ftp://ftp.stunnel.org/stunnel/ -DISTFILES = $(NAME)-$(VERSION).tar.gz -DISTFILES += CSWstunnel.cswstunnel - -# Use patch until this is fixed: -# https://github.com/dago/stunnel/compare/master...sysconfdir -PATCHFILES += 0001-Honour-sysconfdir-bindir-and-localstatedir-everywher.patch - +MASTER_SITES += https://www.stunnel.org/downloads/ # Upstream moves versions to an obsolete/ subdir over time, consider it too MAJOR_VER = $(firstword $(subst ., ,$(VERSION))) -MASTER_SITES += ftp://ftp.stunnel.org/stunnel/obsolete/$(MAJOR_VER).x/ +MASTER_SITES += https://www.stunnel.org/downloads/archive/$(MAJOR_VER).x/ +MASTER_SITES += https://www.stunnel.org/downloads/beta/ +DISTFILES += $(DISTNAME)$(BETA).tar.gz + VENDOR_URL = http://www.stunnel.org BUILD_DEP_PKGS += CSWlibssl-dev @@ -42,69 +39,32 @@ RUNTIME_DEP_PKGS_CSWstunnel += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSWstunnel += CSWlibwrap1 -# Make stunnel.conf-sample.in honor our $localstatedir. Issue description: -# cf. http://marc.info/?l=stunnel-users&m=128035848632004&w=2 -# Not merged upstream as ./configure without arguments leads to expansions -# that the config file doesn't understand, e.g. sysconfdir='${prefix}/etc' -#PATCHFILES = 0001-Make-stunnel.conf-sample.in-honor-sysconfdir-localst.patch - -CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += $(DIRPATHS) CONFIGURE_ARGS += --with-ssl=$(prefix) CONFIGURE_ARGS += --enable-ipv6 -##CONFIGURE_ARGS += --enable-dh -CONFIGURE_ARGS += --localstatedir=$(localstatedir) -# No test target available -TEST_SCRIPTS = +REINPLACEMENTS += capath +REINPLACE_MATCH_capath = /etc/ssl/certs +REINPLACE_WITH_capath = $(sysconfdir)/ssl/certs +REINPLACE_FILES_capath += tools/stunnel.conf-sample -# tools/Makefile references ssldir, but configure only defines SSLDIR, thus -# we pass ssldir manually as a workaround (according to --with-ssl above). -# Should be reported and fixed upstream. Observed with 4.44. -INSTALL_ARGS = ssldir=$(prefix) +PRESERVECONF += $(sysconfdir)/stunnel/stunnel.conf -# Expand autoconf vars in our init script and mark it for SMF registration -EXPANDVARS = CSWstunnel.cswstunnel -INITSMF = $(sysconfdir)/init.d/cswstunnel +# stunnel installs several random sample scripts, cgi scripts, and +# a .spec file with unadjusted paths. Leave them out for now and +# only include specific files +EXTRA_MERGE_EXCLUDE_FILES += $(docdir)/stunnel/.* -SAMPLECONF = $(sysconfdir)/stunnel.pem -MIGRATE_FILES = stunnel # migrate the /opt/csw/etc/stunnel sub directory +SSLCERT += $(sysconfdir)/stunnel/stunnel -PROTOTYPE_MODIFIERS = restrict -PROTOTYPE_FILES_restrict = $(localstatedir)/lib/stunnel.* -PROTOTYPE_USER_restrict = nobody -PROTOTYPE_GROUP_restrict = nobody +PROTOTYPE_MODIFIERS += smf +PROTOTYPE_FILES_smf += /var/opt/csw/svc/manifest/cswcarbon-cache.xml +PROTOTYPE_CLASS_smf = manifest -EXTRA_PAX_ARGS = -s ',ChangeLog$$,changelog,p' - -# Contains a historic reference to the default install locations -CHECKPKG_OVERRIDES += file-with-bad-content|/usr/local|root/opt/csw/share/doc/stunnel/changelog - include gar/category.mk -# 1) Suppress prompts for openssl sample cert generation (-batch) -# 2) Disable creation of /dev/zero (needs root privs, moved to postinstall) -pre-build-modulated: - perl -pi -e '\ - s|\$$\(openssl\) req|\$$\(openssl\) req -batch|; \ - s|^|#| if (m|/dev/zero|);' \ - $(WORKSRC)/tools/Makefile +post-install: + cd $(DESTDIR)$(sysconfdir)/stunnel && mv stunnel.conf-sample stunnel.conf + echo "# create /etc/opt/csw/stunnel/stunnel.(key|crt)" > $(DESTDIR)$(sysconfdir)/stunnel/stunnel + ginstall -D -m 0644 $(WORKDIR)/cswstunnel.xml $(DESTDIR)/var/opt/csw/svc/manifest/cswstunnel.xml @$(MAKECOOKIE) - -post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(NAME) -post-install-modulated: DOCS=AUTHORS BUGS CREDITS ChangeLog TODO -post-install-modulated: DOCS+= doc/stunnel.*html -post-install-modulated: - ginstall -d $(DESTDIR)$(sysconfdir)/init.d - ginstall -m 755 $(WORKDIR)/CSWstunnel.cswstunnel \ - $(DESTDIR)$(sysconfdir)/init.d/cswstunnel - - # create pidfile directory - ginstall -d $(DESTDIR)$(localstatedir)/run/stunnel - - # stunnel installs several random sample scripts, cgi scripts, and - # a .spec file with unadjusted paths. Leave them out for now and - # only include specific files - rm -rf $(DOCDEST)/* - $(foreach D,$(DOCS),cp $(WORKSRC)/$(D) $(DOCDEST);) - cp $(FILEDIR)/changelog.CSW $(DOCDEST) - @$(MAKECOOKIE) Modified: csw/mgar/pkg/stunnel/trunk/checksums =================================================================== --- csw/mgar/pkg/stunnel/trunk/checksums 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/checksums 2015-06-01 20:16:13 UTC (rev 25045) @@ -1 +1 @@ -e70f001ee190105c5a10a74f4bd54901 stunnel-5.17.tar.gz +cc1f067e80a5be2596be582204a42931 stunnel-5.18b4.tar.gz Deleted: csw/mgar/pkg/stunnel/trunk/files/0001-Honour-sysconfdir-bindir-and-localstatedir-everywher.patch =================================================================== --- csw/mgar/pkg/stunnel/trunk/files/0001-Honour-sysconfdir-bindir-and-localstatedir-everywher.patch 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/files/0001-Honour-sysconfdir-bindir-and-localstatedir-everywher.patch 2015-06-01 20:16:13 UTC (rev 25045) @@ -1,2992 +0,0 @@ -From e7e2f2cd0788d84653ea7ed9e69c02078a9ecece Mon Sep 17 00:00:00 2001 -From: Dagobert Michelsen -Date: Sun, 31 May 2015 22:16:27 +0200 -Subject: [PATCH] Honour sysconfdir, bindir and localstatedir everywhere - ---- - configure.ac | 2 +- - doc/Makefile.am | 8 + - doc/stunnel.pod | 1365 ------------------------------------------ - doc/stunnel.pod.in | 1365 ++++++++++++++++++++++++++++++++++++++++++ - src/Makefile.am | 7 + - src/stunnel3.in | 2 +- - tools/Makefile.am | 14 + - tools/stunnel.conf-sample.in | 20 +- - tools/stunnel.init.in | 16 +- - tools/stunnel.service.in | 2 +- - 10 files changed, 1415 insertions(+), 1386 deletions(-) - delete mode 100644 doc/stunnel.pod - create mode 100644 doc/stunnel.pod.in - -diff --git a/configure.ac b/configure.ac -index 1ee8860..519ed2a 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -441,7 +441,7 @@ CPPFLAGS="$valid_CPPFLAGS" - LIBS="$valid_LIBS" - - AC_MSG_NOTICE([**************************************** write the results]) --AC_CONFIG_FILES([Makefile src/Makefile src/stunnel3 doc/Makefile tools/Makefile tools/stunnel.conf-sample tools/stunnel.init tools/stunnel.service]) -+AC_CONFIG_FILES([Makefile src/Makefile doc/Makefile tools/Makefile]) - AC_OUTPUT - - AC_MSG_NOTICE([**************************************** success]) -diff --git a/doc/Makefile.am b/doc/Makefile.am -index cb64b68..8d0060f 100644 ---- a/doc/Makefile.am -+++ b/doc/Makefile.am -@@ -19,3 +19,11 @@ SUFFIXES = .pod .8 .html - pod2html --noindex --title stunnel.8 --infile=$< --outfile=$@ - rm -f pod2htmd.tmp pod2htmi.tmp - -+edit = sed \ -+ -e 's|@bindir[@]|$(bindir)|g' \ -+ -e 's|@sysconfdir[@]|$(sysconfdir)|g' -+ -+stunnel.pod: Makefile -+ $(edit) '$(srcdir)/$@.in' >$@ -+ -+stunnel.pod: $(srcdir)/stunnel.pod -diff --git a/doc/stunnel.pod b/doc/stunnel.pod -deleted file mode 100644 -index 3fc3d4e..0000000 ---- a/doc/stunnel.pod -+++ /dev/null -@@ -1,1365 +0,0 @@ --=head1 NAME -- --=encoding utf8 -- --stunnel - TLS offloading and load-balancing proxy -- -- --=head1 SYNOPSIS -- --=over 4 -- --=item B -- --B [S] | S<-fd N> | S<-help> | S<-version> | S<-sockets> | S<-options> -- --=item B -- --B [ [ S<-install> | S<-uninstall> | S<-start> | S<-stop> | -- S<-reload> | S<-reopen> | S<-exit> ] [S<-quiet>] [S] ] | -- S<-help> | S<-version> | S<-sockets> | S<-options> -- --=back -- -- --=head1 DESCRIPTION -- --The B program is designed to work as I encryption wrapper --between remote clients and local (I-startable) or remote --servers. The concept is that having non-SSL aware daemons running on --your system you can easily set them up to communicate with clients over --secure SSL channels. -- --B can be used to add SSL functionality to commonly used I --daemons like POP-2, POP-3, and IMAP servers, to standalone daemons like --NNTP, SMTP and HTTP, and in tunneling PPP over network sockets without --changes to the source code. -- --This product includes cryptographic software written by --Eric Young (eay at cryptsoft.com) -- -- --=head1 OPTIONS -- --=over 4 -- --=item B -- --Use specified configuration file -- --=item B<-fd N> (Unix only) -- --Read the config file from specified file descriptor -- --=item B<-help> -- --Print B help menu -- --=item B<-version> -- --Print B version and compile time defaults -- --=item B<-sockets> -- --Print default socket options -- --=item B<-options> -- --Print supported SSL options -- --=item B<-install> (Windows NT and later only) -- --Install NT Service -- --=item B<-uninstall> (Windows NT and later only) -- --Uninstall NT Service -- --=item B<-start> (Windows NT and later only) -- --Start NT Service -- --=item B<-stop> (Windows NT and later only) -- --Stop NT Service -- --=item B<-reload> (Windows NT and later only) -- --Reload configuration file of the running NT Service -- --=item B<-reopen> (Windows NT and later only) -- --Reopen log file of the running NT Service -- --=item B<-exit> (Win32 only) -- --Exit an already started stunnel -- --=item B<-quiet> (Win32 only) -- --Don't display any message boxes -- --=back -- -- --=head1 CONFIGURATION FILE -- --Each line of the configuration file can be either: -- --=over 4 -- --=item * -- --An empty line (ignored). -- --=item * -- --A comment starting with ';' (ignored). -- --=item * -- --An 'option_name = option_value' pair. -- --=item * -- --'[service_name]' indicating a start of a service definition. -- --=back -- --An address parameter of an option may be either: -- --=over 4 -- --=item * -- --A port number. -- --=item * -- --A colon-separated pair of IP address (either IPv4, IPv6, or domain name) and port number. -- --=item * -- --A Unix socket path (Unix only). -- --=back -- --=head2 GLOBAL OPTIONS -- --=over 4 -- --=item B = DIRECTORY (Unix only) -- --directory to chroot B process -- --B keeps B in chrooted jail. I, I, I --and I are located inside the jail and the patches have to be relative --to the directory specified with B. -- --Several functions of the operating system also need their files to be located within chroot jail, e.g.: -- --=over 4 -- --=item * -- --Delayed resolver typically needs /etc/nsswitch.conf and /etc/resolv.conf. -- --=item * -- --Local time in log files needs /etc/timezone. -- --=item * -- --Some other functions may need devices, e.g. /dev/zero or /dev/null. -- --=back -- --=item B = deflate | zlib -- --select data compression algorithm -- --default: no compression -- --deflate is the standard compression method as described in RFC 1951. -- --zlib compression of B or above is not backward compatible with --B. -- --=item B = [FACILITY.]LEVEL -- --debugging level -- --Level is a one of the syslog level names or numbers --emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), --info (6), or debug (7). All logs for the specified level and --all levels numerically less than it will be shown. Use I or --I for greatest debugging output. The default is notice (5). -- --The syslog facility 'daemon' will be used unless a facility name is supplied. --(Facilities are not supported on Win32.) -- --Case is ignored for both facilities and levels. -- --=item B = EGD_PATH (Unix only) -- --path to Entropy Gathering Daemon socket -- --Entropy Gathering Daemon socket to use to feed B random number --generator. (Available only if compiled with B or higher) -- --=item B = auto | ENGINE_ID -- --select hardware engine -- --default: software-only cryptography -- --Here is an example of advanced engine configuration to read private key from an --OpenSC engine -- -- engine=dynamic -- engineCtrl=SO_PATH:/usr/lib/opensc/engine_pkcs11.so -- engineCtrl=ID:pkcs11 -- engineCtrl=LIST_ADD:1 -- engineCtrl=LOAD -- engineCtrl=MODULE_PATH:/usr/lib/pkcs11/opensc-pkcs11.so -- engineCtrl=INIT -- -- [service] -- engineNum=1 -- key=id_45 -- --=item B = COMMAND[:PARAMETER] -- --control hardware engine -- --Special commands "LOAD" and "INIT" can be used to load and initialize the --engine cryptogaphic module. -- --=item B = TASK_LIST -- --set OpenSSL tasks delegated to the current engine -- --The parameter specifies a comma-separated list of task to be delegated to the --current engine. -- --The following tasks may be available, if supported by the engine: ALL, RSA, --DSA, ECDH, ECDSA, DH, RAND, CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1. -- --=item B = yes | no -- --Enable or disable FIPS 140-2 mode. -- --This option allows to disable entering FIPS mode if B was compiled --with FIPS 140-2 support. -- --default: no (since version 5.00) -- --=item B = yes | no (Unix only) -- --foreground mode -- --Stay in foreground (don't fork) and log to stderr --instead of via syslog (unless I is specified). -- --default: background in daemon mode -- --=item B = ICON_FILE (GUI only) -- --GUI icon to be displayed when there are established connections -- --On Windows platform the parameter should be an .ico file containing a 16x16 --pixel image. -- --=item B = ICON_FILE (GUI only) -- --GUI icon to be displayed when no valid configuration is loaded -- --On Windows platform the parameter should be an .ico file containing a 16x16 --pixel image. -- --=item B = ICON_FILE (GUI only) -- --GUI icon to be displayed when there are no established connections -- --On Windows platform the parameter should be an .ico file containing a 16x16 --pixel image. -- --=item B = append | overwrite -- --log file handling -- --This option allows to choose whether the log file (specified with the I --option) is appended or overwritten when opened or re-opened. -- --default: append -- --=item B = FILE -- --append log messages to a file -- --/dev/stdout device can be used to send log messages to the standard --output (for example to log them with daemontools splogger). -- --=item B = FILE (Unix only) -- --pid file location -- --If the argument is empty, then no pid file will be created. -- --I path is relative to I directory if specified. -- --=item B = BYTES -- --bytes to read from random seed files -- --Number of bytes of data read from random seed files. With SSL versions less --than B<0.9.5a>, also determines how many bytes of data are considered --sufficient to seed the PRNG. More recent B versions have a builtin --function to determine when sufficient randomness is available. -- --=item B = FILE -- --path to file with random seed data -- --The SSL library will use data from this file first to seed the random --number generator. -- --=item B = yes | no -- --overwrite the random seed files with new random data -- --default: yes -- --=item B = SERVICE (Unix only) -- --stunnel service name -- --The specified service name is used for syslog and as the I mode service --name for TCP Wrappers. While this option can technically be specified in the --service sections, it is only useful in global options. -- --default: stunnel -- --=item B = GROUP (Unix only) -- --setgid() to the specified group in daemon mode and clear all other groups -- --=item B = USER (Unix only) -- --setuid() to the specified user in daemon mode -- --=item B = a|l|r:OPTION=VALUE[:VALUE] -- --Set an option on accept/local/remote socket -- --The values for linger option are l_onof:l_linger. --The values for time are tv_sec:tv_usec. -- --Examples: -- -- socket = l:SO_LINGER=1:60 -- set one minute timeout for closing local socket -- socket = r:SO_OOBINLINE=yes -- place out-of-band data directly into the -- receive data stream for remote sockets -- socket = a:SO_REUSEADDR=no -- disable address reuse (enabled by default) -- socket = a:SO_BINDTODEVICE=lo -- only accept connections on loopback interface -- --=item B = yes | no (Unix only) -- --enable logging via syslog -- --default: yes -- --=item B = yes | no (WIN32 only) -- --enable the taskbar icon -- --default: yes -- --=back -- -- --=head2 SERVICE-LEVEL OPTIONS -- --Each configuration section begins with service name in square brackets. --The service name is used for libwrap (TCP Wrappers) access control and lets --you distinguish B services in your log files. -- --Note that if you wish to run B in I mode (where it --is provided a network socket by a server such as I, I, --or I) then you should read the section entitled I --below. -- -- --=over 4 -- --=item B = [HOST:]PORT -- --accept connections on specified address -- --If no host specified, defaults to all IPv4 addresses for the local host. -- --To listen on all IPv6 addresses use: -- -- accept = :::PORT -- --=item B = DIRECTORY -- --Certificate Authority directory -- --This is the directory in which B will look for certificates when using --the I. Note that the certificates in this directory should be named --XXXXXXXX.0 where XXXXXXXX is the hash value of the DER encoded subject of the --cert. -- --The hash algorithm has been changed in B. It is required to --c_rehash the directory on upgrade from B to B. -- --I path is relative to I directory if specified. -- --=item B = CERT_FILE -- --Certificate Authority file -- --This file contains multiple CA certificates, used with the I. -- --=item B = PEM_FILE -- --certificate chain PEM file name -- --The certificates must be in PEM format, and must be from the --actual server/client certificate to the self-signed root CA certificate. -- --A certificate is required in server mode, and optional in client mode. -- --=item B = EMAIL -- --email address of the peer certificate subject -- --Multiple I options are allowed in a single service section. --Certificates are accepted if no I option was specified, or the --email address of the peer certificate matches any of the email addresses --specified with I. -- --=item B = HOST -- --host of the peer certificate subject -- --Multiple I options are allowed in a single service section. --Certificates are accepted if no I option was specified, or the host --name of the peer certificate matches any of the hosts specified with --I. -- --=item B = IP -- --IP address of the peer certificate subject -- --Multiple I options are allowed in a single service section. --Certificates are accepted if no I option was specified, or the IP --address of the peer certificate matches any of the IP addresses specified with --I. -- --=item B = CIPHER_LIST -- --Select permitted SSL ciphers -- --A colon delimited list of the ciphers to allow in the SSL connection, --for example DES-CBC3-SHA:IDEA-CBC-MD5. -- --=item B = yes | no -- --client mode (remote service uses SSL) -- --default: no (server mode) -- --=item B = [HOST:]PORT -- --connect to a remote address -- --If no host is specified, the host defaults to localhost. -- --Multiple I options are allowed in a single service section. -- --If host resolves to multiple addresses and/or if multiple I --options are specified, then the remote address is chosen using a --round-robin algorithm. -- --=item B = DIRECTORY -- --Certificate Revocation Lists directory -- --This is the directory in which B will look for CRLs when --using the I. Note that the CRLs in this directory should --be named XXXXXXXX.r0 where XXXXXXXX is the hash value of the CRL. -- --The hash algorithm has been changed in B. It is required to --c_rehash the directory on upgrade from B to B. -- --I path is relative to I directory if specified. -- --=item B = CERT_FILE -- --Certificate Revocation Lists file -- --This file contains multiple CRLs, used with the I. -- --=item B = NID -- --specify ECDH curve name -- --To get a list of supported cuves use: -- -- openssl ecparam -list_curves -- --default: prime256v1 -- --=item B = TYPE -- --connection identifier type -- --This identifier allows to distinguish log entries generated for each of the --connections. -- --Currently supported types: -- --=over 4 -- --=item I -- --The numeric sequential identifier is only unique within a single instance of --B, but very compact. It is most useful for manual log analysis. -- --=item I -- --This alphanumeric identifier is globally unique, but longer than the sequential --number. It is most useful for automated log analysis. -- --=item I -- --The operating system thread identifier is neither unique (even within a single --instance of B) nor short. It is most useful for debugging software --or configuration issues. -- --=back -- --default: sequential -- --=item B = LEVEL -- --debugging level -- --Level is a one of the syslog level names or numbers --emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), --info (6), or debug (7). All logs for the specified level and --all levels numerically less than it will be shown. Use I or --I for greatest debugging output. The default is notice (5). -- --=item B = yes | no -- --delay DNS lookup for I option -- --This option is useful for dynamic DNS, or when DNS is not available during --B startup (road warrior VPN, dial-up configurations). -- --Delayed resolver mode is automatically engaged when stunnel fails to resolve on --startup any of the I targets for a service. -- --Delayed resolver inflicts I. -- --default: no -- --=item B = ENGINE_ID -- --select engine ID for the service -- --=item B = ENGINE_NUMBER -- --select engine number for the service -- --The engines are numbered starting from 1. -- --=item B = EXECUTABLE_PATH -- --execute local inetd-type program -- --I path is relative to I directory if specified. -- --The following environmental variables are set on Unix platform: --REMOTE_HOST, REMOTE_PORT, SSL_CLIENT_DN, SSL_CLIENT_I_DN. -- --=item B = $0 $1 $2 ... -- --arguments for I including program name ($0) -- --Quoting is currently not supported. --Arguments are separated with arbitrary number of whitespaces. -- --=item B = rr | prio -- --Failover strategy for multiple "connect" targets. -- -- rr (round robin) - fair load distribution -- prio (priority) - use the order specified in config file -- --default: rr -- --=item B = USERNAME -- --use IDENT (RFC 1413) username checking -- --=item B = KEY_FILE -- --private key for certificate specified with I option -- --Private key is needed to authenticate certificate owner. --Since this file should be kept secret it should only be readable --to its owner. On Unix systems you can use the following command: -- -- chmod 600 keyfile -- --default: value of I option -- --=item B = yes | no -- --Enable or disable the use of /etc/hosts.allow and /etc/hosts.deny. -- --default: no (since version 5.00) -- --=item B = HOST -- --IP of the outgoing interface is used as source for remote connections. --Use this option to bind a static local IP address, instead. -- --=item B = SERVICE:SERVER_PATTERN (server mode) -- --Use the service as a slave service (a name-based virtual server) for Server --Name Indication TLS extension (RFC 3546). -- --I specifies the master service that accepts client connections --with I option. I specifies the host name to be --redirected. The pattern may start with '*' character, e.g. '*.example.com'. --Multiple slave services are normally specified for a single master service. --I option can also be specified more than once within a single slave --service. -- --This service, as well as the master service, may not be configured in client --mode. -- --I option of the slave service is ignored when I option is --specified, as I connects remote host before TLS handshake. -- --Libwrap checks (Unix only) are performed twice: with master service name after --TCP connection is accepted, and with slave service name during TLS handshake. -- --Option I is only available when compiled with B and later. -- --=item B = SERVER (client mode) -- --Use the parameter as the value of TLS Server Name Indication (RFC 3546) --extension. -- --Option I is only available when compiled with B and later. -- --=item B = URL -- --select OCSP server for certificate verification -- --=item B = yes | no -- --validate certificates with their AIA OCSP responders -- --This option enables I to validate certificates with the list of --OCSP responder URLs retrieved from their AIA (Authority Information Access) --extension. -- --=item B = OCSP_FLAG -- --specify OCSP server flag -- --Several I can be used to specify multiple flags. -- --currently supported flags: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, --NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME -- --=item B = SSL_OPTIONS -- --B library options -- --The parameter is the B option name as described in the --I manual, but without I prefix. --I lists the options found to be allowed in the --current combination of I and the I library used --to build it. -- --Several I can be used to specify multiple options. --An option name can be prepended with a dash ("-") to disable the option. -- --For example, for compatibility with the erroneous Eudora SSL --implementation, the following option can be used: -- -- options = DONT_INSERT_EMPTY_FRAGMENTS -- --default: -- -- options = NO_SSLv2 -- options = NO_SSLv3 -- --=item B = PROTO -- --application protocol to negotiate SSL -- --This option enables initial, protocol-specific negotiation of the SSL/TLS --encryption. --I option should not be used with SSL encryption on a separate port. -- --Currently supported protocols: -- --=over 4 -- --=item I -- --Proprietary (undocummented) extension of CIFS protocol implemented in Samba. --Support for this extension was dropped in Samba 3.0.0. -- --=item I -- --Based on RFC 2817 - I, section 5.2 - I -- --This protocol is only supported in client mode. -- --=item I -- --Based on RFC 2595 - I -- --=item I -- --Based on RFC 4642 - I -- --This protocol is only supported in client mode. -- --=item I -- --Based on --F -- --=item I -- --Based on RFC 2449 - I -- --=item I -- --Haproxy client IP address --F -- --=item I -- --Based on RFC 2487 - I -- --=item I -- --SOCKS versions 4, 4a, and 5 are supported. The SOCKS protocol itself --is encapsulated within SSL/TLS encryption layer to protect the final --destination address. -- --F -- --F -- --The BIND command of the SOCKS protocol is not supported. --The USERID parameter is ignored. -- --See Examples section for sample configuration files for VPN based on SOCKS --encryption. -- --=back -- --=item B = basic | ntlm -- --authentication type for protocol negotiations -- --Currently authentication type only applies to the 'connect' protocol. -- --default: basic -- --=item B = HOST:PORT -- --destination address for protocol negotiations -- --I specifies the final SSL server to be connected by the proxy, --and not the proxy server directly connected by B. --The proxy server should be specified with the 'connect' option. -- --Currently protocol destination address only applies to 'connect' protocol. -- --=item B = PASSWORD -- --password for protocol negotiations -- --=item B = USERNAME -- --username for protocol negotiations -- --=item B = IDENTITY -- --PSK identity for the PSK client -- --I can be used on B clients to select the PSK identity --used for authentication. This option is ignored in server sections. -- --default: the first identity specified in the I file. -- --=item B = FILE -- --file with PSK identities and corresponding keys -- --Each line of the file in the following format: -- -- IDENTITY:KEY -- --The key is required to be at least 20 characters long. --The file should not be world-readable nor world-writable. -- --=item B = yes | no (Unix only) -- --allocate pseudoterminal for 'exec' option -- --=item B = [HOST:]PORT -- --redirect SSL client connections on certificate-based authentication failures -- --This option only works in server mode. --Some protocol negotiations are also incompatible with the I option. -- --=item B = yes | no -- --support SSL renegotiation -- --Applications of the SSL renegotiation include some authentication scenarios, --or re-keying long lasting connections. -- --On the other hand this feature can facilitate a trivial CPU-exhaustion --DoS attack: -- --F -- --Please note that disabling SSL renegotiation does not fully mitigate --this issue. -- --default: yes (if supported by B) -- --=item B = yes | no -- --attempt to use TCP RST flag to indicate an error -- --This option is not supported on some platforms. -- --default: yes -- --=item B = yes | no -- --reconnect a connect+exec section after it's disconnected -- --default: no -- --=item B = NUM_ENTRIES -- --session cache size -- --I specifies the maximum number of the internal session cache --entries. -- --The value of 0 can be used for unlimited size. It is not recommended --for production use due to the risk of memory exhaustion DoS attack. -- --=item B = TIMEOUT -- --session cache timeout -- --This is the number of seconds to keep cached SSL sessions. -- --=item B = HOST:PORT -- --address of sessiond SSL cache server -- --=item B = SSL_VERSION -- --select the SSL protocol version -- --Allowed values: all, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2 -- --=item B = BYTES (except for FORK model) -- --thread stack size -- --=item B = SECONDS -- --time to wait for expected data -- --=item B = SECONDS -- --time to wait for close_notify (set to 0 for buggy MSIE) -- --=item B = SECONDS -- --time to wait to connect a remote host -- --=item B = SECONDS -- --time to keep an idle connection -- --=item B = none | source | destination | both (Unix only) -- --enable transparent proxy support on selected platforms -- --Supported values: -- --=over 4 -- --=item I -- --Disable transparent proxy support. This is the default. -- --=item I -- --Re-write address to appear as if wrapped daemon is connecting --from the SSL client machine instead of the machine running B. -- --This option is currently available in: -- --=over 4 -- --=item Remote mode (I option) on I=2.6.28> -- --This configuration requires B to be executed as root and without --I option. -- --This configuration requires the following setup for iptables and routing --(possibly in /etc/rc.local or equivalent file): -- -- iptables -t mangle -N DIVERT -- iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT -- iptables -t mangle -A DIVERT -j MARK --set-mark 1 -- iptables -t mangle -A DIVERT -j ACCEPT -- ip rule add fwmark 1 lookup 100 -- ip route add local 0.0.0.0/0 dev lo table 100 -- echo 0 >/proc/sys/net/ipv4/conf/lo/rp_filter -- --B must also to be executed as root and without I option. -- --=item Remote mode (I option) on I -- --This configuration requires kernel to be compiled with I --option. --Connected service must be installed on a separate host. --Routing towards the clients has to go through the B box. -- --B must also to be executed as root and without I option. -- --=item Remote mode (I option) on I=8.0> -- --This configuration requires additional firewall and routing setup. --B must also to be executed as root and without I option. -- --=item Local mode (I option) -- --This configuration works by pre-loading I shared library. --_RLD_LIST environment variable is used on Tru64, and LD_PRELOAD variable on --other platforms. -- --=back -- --=item I -- --Original destination is used instead of I option. -- --A service section for transparent destination may look like this: -- -- [transparent] -- client=yes -- accept= -- transparent=destination -- --This configuration requires iptables setup to work, --possibly in /etc/rc.local or equivalent file. -- --For a connect target installed on the same host: -- -- /sbin/iptables -t nat -I OUTPUT -p tcp --dport \ -- -m ! --uid-owner \ -- -j DNAT --to-destination : -- --For a connect target installed on a remote host: -- -- /sbin/iptables -I INPUT -i eth0 -p tcp --dport -j ACCEPT -- /sbin/iptables -t nat -I PREROUTING -p tcp --dport \ -- -i eth0 -j DNAT --to-destination : -- --Transparent destination option is currently only supported on Linux. -- --=item I -- --Use both I and I transparent proxy. -- --=back -- --Two legacy options are also supported for backward compatibility: -- --=over 4 -- --=item I -- --This options has been renamed to I. -- --=item I -- --This options has been renamed to I. -- --=back -- -- --=item B = LEVEL -- --verify peer certificate -- --=over 4 -- --=item level 0 -- --Request and ignore peer certificate. -- --=item level 1 -- --Verify peer certificate if present. -- --=item level 2 -- --Verify peer certificate. -- --=item level 3 -- --Verify peer with locally installed certificate. -- --=item level 4 -- --Ignore CA chain and only verify peer certificate. -- --=item default -- --No verify. -- --=back -- --It is important to understand, that this option was solely designed for access --control and not for authorization. Specifically for level 2 every non-revoked --certificate is accepted regardless of its Common Name. For this reason a --dedicated CA should be used with level 2, and not a generic CA commonly used --for webservers. Level 3 is preferred for point-to-point connections. -- --=back -- -- --=head1 RETURN VALUE -- --B returns zero on success, non-zero on error. -- -- --=head1 SIGNALS -- --The following signals can be used to control B in Unix environment: -- --=over 4 -- --=item SIGHUP -- --Force a reload of the configuration file. -- --Some global options will not be reloaded: -- --=over 4 -- --=item * -- --chroot -- --=item * -- --foreground -- --=item * -- --pid -- --=item * -- --setgid -- --=item * -- --setuid -- --=back -- --The use of 'setuid' option will also prevent B from binding privileged --(<1024) ports during configuration reloading. -- --When 'chroot' option is used, B will look for all its files (including --configuration file, certificates, log file and pid file) within the chroot --jail. -- --=item SIGUSR1 -- --Close and reopen B log file. --This function can be used for log rotation. -- --=item SIGTERM, SIGQUIT, SIGINT -- --Shut B down. -- --=back -- --The result of sending any other signals to the server is undefined. -- -- --=head1 EXAMPLES -- --In order to provide SSL encapsulation to your local I service, use: -- -- [imapd] -- accept = 993 -- exec = /usr/sbin/imapd -- execArgs = imapd -- --or in remote mode: -- -- [imapd] -- accept = 993 -- connect = 143 -- --In order to let your local e-mail client connect to an SSL-enabled I --service on another server, configure the e-mail client to connect to localhost --on port 119 and use: -- -- [imap] -- client = yes -- accept = 143 -- connect = servername:993 -- --If you want to provide tunneling to your I daemon on port 2020, --use something like: -- -- [vpn] -- accept = 2020 -- exec = /usr/sbin/pppd -- execArgs = pppd local -- pty = yes -- --If you want to use B in I mode to launch your imapd --process, you'd use this I. --Note there must be no I<[service_name]> section. -- -- exec = /usr/sbin/imapd -- execArgs = imapd -- --To setup SOCKS VPN configure the following client service: -- -- [socks_client] -- client = yes -- accept = 127.0.0.1:1080 -- connect = vpn_server:9080 -- verify = 4 -- CAfile = stunnel.pem -- --The corresponding configuration on the vpn_server host: -- -- [socks_server] -- protocol = socks -- accept = 9080 -- cert = stunnel.pem -- key = stunnel.key -- --Now test your configuration on the client machine with: -- -- curl --socks4a localhost http://www.example.com/ -- --=head1 NOTES -- --=head2 RESTRICTIONS -- --B cannot be used for the FTP daemon because of the nature --of the FTP protocol which utilizes multiple ports for data transfers. --There are available SSL-enabled versions of FTP and telnet daemons, however. -- -- --=head2 INETD MODE -- --The most common use of B is to listen on a network --port and establish communication with either a new port --via the connect option, or a new program via the I option. --However there is a special case when you wish to have --some other program accept incoming connections and --launch B, for example with I, I, --or I. -- --For example, if you have the following line in I: -- -- imaps stream tcp nowait root /usr/bin/stunnel stunnel /etc/stunnel/imaps.conf -- --In these cases, the I-style program is responsible --for binding a network socket (I above) and handing --it to B when a connection is received. --Thus you do not want B to have any I option. --All the I should be placed in the --global options section, and no I<[service_name]> section --will be present. See the I section for example --configurations. -- --=head2 CERTIFICATES -- --Each SSL-enabled daemon needs to present a valid X.509 certificate --to the peer. It also needs a private key to decrypt the incoming --data. The easiest way to obtain a certificate and a key is to --generate them with the free B package. You can find more --information on certificates generation on pages listed below. -- --The order of contents of the I<.pem> file is important. It should contain the --unencrypted private key first, then a signed certificate (not certificate --request). There should be also empty lines after certificate and private key. --Plaintext certificate information appended on the top of generated certificate --should be discarded. So the file should look like this: -- -- -----BEGIN RSA PRIVATE KEY----- -- [encoded key] -- -----END RSA PRIVATE KEY----- -- [empty line] -- -----BEGIN CERTIFICATE----- -- [encoded certificate] -- -----END CERTIFICATE----- -- [empty line] -- --=head2 RANDOMNESS -- --B needs to seed the PRNG (pseudo random number generator) in --order for SSL to use good randomness. The following sources are loaded --in order until sufficient random data has been gathered: -- --=over 4 -- --=item * -- --The file specified with the I flag. -- --=item * -- --The file specified by the RANDFILE environment variable, if set. -- --=item * -- --The file .rnd in your home directory, if RANDFILE not set. -- --=item * -- --The file specified with '--with-random' at compile time. -- --=item * -- --The contents of the screen if running on Windows. -- --=item * -- --The egd socket specified with the I flag. -- --=item * -- --The egd socket specified with '--with-egd-sock' at compile time. -- --=item * -- --The /dev/urandom device. -- --=back -- --With recent (B or later) version of SSL it will stop loading --random data automatically when sufficient entropy has been gathered. With --previous versions it will continue to gather from all the above sources since --no SSL function exists to tell when enough data is available. -- --Note that on Windows machines that do not have console user interaction --(mouse movements, creating windows, etc.) the screen contents are not --variable enough to be sufficient, and you should provide a random file --for use with the I flag. -- --Note that the file specified with the I flag should contain --random data -- that means it should contain different information --each time B is run. This is handled automatically --unless the I flag is used. If you wish to update this file --manually, the I command in recent versions of B, --would be useful. -- --Important note: If /dev/urandom is available, B often seeds the PRNG --with it while checking the random state. On systems with /dev/urandom --B is likely to use it even though it is listed at the very bottom of --the list above. This is the behaviour of B and not B. -- --=head2 DH PARAMETERS -- --Stunnel 4.40 and later contains hardcoded 2048-bit DH parameters. -- --It is also possible to specify DH parameters in the certificate file: -- -- openssl dhparam 2048 >> stunnel.pem -- --DH parameter generation may take several minutes. -- -- --=head1 FILES -- --=over 4 -- --=item F -- --B configuration file -- --=back -- -- --=head1 BUGS -- --Option I and Win32 command line does not support quoting. -- -- --=head1 SEE ALSO -- --=over 4 -- --=item L -- --access control facility for internet services -- --=item L -- --internet 'super-server' -- --=item F -- --B homepage -- --=item F -- --B project website -- --=back -- -- --=head1 AUTHOR -- --=over 4 -- --=item Micha? Trojnara -- --> -- --=back -- -diff --git a/doc/stunnel.pod.in b/doc/stunnel.pod.in -new file mode 100644 -index 0000000..fa166f2 ---- /dev/null -+++ b/doc/stunnel.pod.in -@@ -0,0 +1,1365 @@ -+=head1 NAME -+ -+=encoding utf8 -+ -+stunnel - TLS offloading and load-balancing proxy -+ -+ -+=head1 SYNOPSIS -+ -+=over 4 -+ -+=item B -+ -+B [S] | S<-fd N> | S<-help> | S<-version> | S<-sockets> | S<-options> -+ -+=item B -+ -+B [ [ S<-install> | S<-uninstall> | S<-start> | S<-stop> | -+ S<-reload> | S<-reopen> | S<-exit> ] [S<-quiet>] [S] ] | -+ S<-help> | S<-version> | S<-sockets> | S<-options> -+ -+=back -+ -+ -+=head1 DESCRIPTION -+ -+The B program is designed to work as I encryption wrapper -+between remote clients and local (I-startable) or remote -+servers. The concept is that having non-SSL aware daemons running on -+your system you can easily set them up to communicate with clients over -+secure SSL channels. -+ -+B can be used to add SSL functionality to commonly used I -+daemons like POP-2, POP-3, and IMAP servers, to standalone daemons like -+NNTP, SMTP and HTTP, and in tunneling PPP over network sockets without -+changes to the source code. -+ -+This product includes cryptographic software written by -+Eric Young (eay at cryptsoft.com) -+ -+ -+=head1 OPTIONS -+ -+=over 4 -+ -+=item B -+ -+Use specified configuration file -+ -+=item B<-fd N> (Unix only) -+ -+Read the config file from specified file descriptor -+ -+=item B<-help> -+ -+Print B help menu -+ -+=item B<-version> -+ -+Print B version and compile time defaults -+ -+=item B<-sockets> -+ -+Print default socket options -+ -+=item B<-options> -+ -+Print supported SSL options -+ -+=item B<-install> (Windows NT and later only) -+ -+Install NT Service -+ -+=item B<-uninstall> (Windows NT and later only) -+ -+Uninstall NT Service -+ -+=item B<-start> (Windows NT and later only) -+ -+Start NT Service -+ -+=item B<-stop> (Windows NT and later only) -+ -+Stop NT Service -+ -+=item B<-reload> (Windows NT and later only) -+ -+Reload configuration file of the running NT Service -+ -+=item B<-reopen> (Windows NT and later only) -+ -+Reopen log file of the running NT Service -+ -+=item B<-exit> (Win32 only) -+ -+Exit an already started stunnel -+ -+=item B<-quiet> (Win32 only) -+ -+Don't display any message boxes -+ -+=back -+ -+ -+=head1 CONFIGURATION FILE -+ -+Each line of the configuration file can be either: -+ -+=over 4 -+ -+=item * -+ -+An empty line (ignored). -+ -+=item * -+ -+A comment starting with ';' (ignored). -+ -+=item * -+ -+An 'option_name = option_value' pair. -+ -+=item * -+ -+'[service_name]' indicating a start of a service definition. -+ -+=back -+ -+An address parameter of an option may be either: -+ -+=over 4 -+ -+=item * -+ -+A port number. -+ -+=item * -+ -+A colon-separated pair of IP address (either IPv4, IPv6, or domain name) and port number. -+ -+=item * -+ -+A Unix socket path (Unix only). -+ -+=back -+ -+=head2 GLOBAL OPTIONS -+ -+=over 4 -+ -+=item B = DIRECTORY (Unix only) -+ -+directory to chroot B process -+ -+B keeps B in chrooted jail. I, I, I -+and I are located inside the jail and the patches have to be relative -+to the directory specified with B. -+ -+Several functions of the operating system also need their files to be located within chroot jail, e.g.: -+ -+=over 4 -+ -+=item * -+ -+Delayed resolver typically needs /etc/nsswitch.conf and /etc/resolv.conf. -+ -+=item * -+ -+Local time in log files needs /etc/timezone. -+ -+=item * -+ -+Some other functions may need devices, e.g. /dev/zero or /dev/null. -+ -+=back -+ -+=item B = deflate | zlib -+ -+select data compression algorithm -+ -+default: no compression -+ -+deflate is the standard compression method as described in RFC 1951. -+ -+zlib compression of B or above is not backward compatible with -+B. -+ -+=item B = [FACILITY.]LEVEL -+ -+debugging level -+ -+Level is a one of the syslog level names or numbers -+emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), -+info (6), or debug (7). All logs for the specified level and -+all levels numerically less than it will be shown. Use I or -+I for greatest debugging output. The default is notice (5). -+ -+The syslog facility 'daemon' will be used unless a facility name is supplied. -+(Facilities are not supported on Win32.) -+ -+Case is ignored for both facilities and levels. -+ -+=item B = EGD_PATH (Unix only) -+ -+path to Entropy Gathering Daemon socket -+ -+Entropy Gathering Daemon socket to use to feed B random number -+generator. (Available only if compiled with B or higher) -+ -+=item B = auto | ENGINE_ID -+ -+select hardware engine -+ -+default: software-only cryptography -+ -+Here is an example of advanced engine configuration to read private key from an -+OpenSC engine -+ -+ engine=dynamic -+ engineCtrl=SO_PATH:/usr/lib/opensc/engine_pkcs11.so -+ engineCtrl=ID:pkcs11 -+ engineCtrl=LIST_ADD:1 -+ engineCtrl=LOAD -+ engineCtrl=MODULE_PATH:/usr/lib/pkcs11/opensc-pkcs11.so -+ engineCtrl=INIT -+ -+ [service] -+ engineNum=1 -+ key=id_45 -+ -+=item B = COMMAND[:PARAMETER] -+ -+control hardware engine -+ -+Special commands "LOAD" and "INIT" can be used to load and initialize the -+engine cryptogaphic module. -+ -+=item B = TASK_LIST -+ -+set OpenSSL tasks delegated to the current engine -+ -+The parameter specifies a comma-separated list of task to be delegated to the -+current engine. -+ -+The following tasks may be available, if supported by the engine: ALL, RSA, -+DSA, ECDH, ECDSA, DH, RAND, CIPHERS, DIGESTS, PKEY, PKEY_CRYPTO, PKEY_ASN1. -+ -+=item B = yes | no -+ -+Enable or disable FIPS 140-2 mode. -+ -+This option allows to disable entering FIPS mode if B was compiled -+with FIPS 140-2 support. -+ -+default: no (since version 5.00) -+ -+=item B = yes | no (Unix only) -+ -+foreground mode -+ -+Stay in foreground (don't fork) and log to stderr -+instead of via syslog (unless I is specified). -+ -+default: background in daemon mode -+ -+=item B = ICON_FILE (GUI only) -+ -+GUI icon to be displayed when there are established connections -+ -+On Windows platform the parameter should be an .ico file containing a 16x16 -+pixel image. -+ -+=item B = ICON_FILE (GUI only) -+ -+GUI icon to be displayed when no valid configuration is loaded -+ -+On Windows platform the parameter should be an .ico file containing a 16x16 -+pixel image. -+ -+=item B = ICON_FILE (GUI only) -+ -+GUI icon to be displayed when there are no established connections -+ -+On Windows platform the parameter should be an .ico file containing a 16x16 -+pixel image. -+ -+=item B = append | overwrite -+ -+log file handling -+ -+This option allows to choose whether the log file (specified with the I -+option) is appended or overwritten when opened or re-opened. -+ -+default: append -+ -+=item B = FILE -+ -+append log messages to a file -+ -+/dev/stdout device can be used to send log messages to the standard -+output (for example to log them with daemontools splogger). -+ -+=item B = FILE (Unix only) -+ -+pid file location -+ -+If the argument is empty, then no pid file will be created. -+ -+I path is relative to I directory if specified. -+ -+=item B = BYTES -+ -+bytes to read from random seed files -+ -+Number of bytes of data read from random seed files. With SSL versions less -+than B<0.9.5a>, also determines how many bytes of data are considered -+sufficient to seed the PRNG. More recent B versions have a builtin -+function to determine when sufficient randomness is available. -+ -+=item B = FILE -+ -+path to file with random seed data -+ -+The SSL library will use data from this file first to seed the random -+number generator. -+ -+=item B = yes | no -+ -+overwrite the random seed files with new random data -+ -+default: yes -+ -+=item B = SERVICE (Unix only) -+ -+stunnel service name -+ -+The specified service name is used for syslog and as the I mode service -+name for TCP Wrappers. While this option can technically be specified in the -+service sections, it is only useful in global options. -+ -+default: stunnel -+ -+=item B = GROUP (Unix only) -+ -+setgid() to the specified group in daemon mode and clear all other groups -+ -+=item B = USER (Unix only) -+ -+setuid() to the specified user in daemon mode -+ -+=item B = a|l|r:OPTION=VALUE[:VALUE] -+ -+Set an option on accept/local/remote socket -+ -+The values for linger option are l_onof:l_linger. -+The values for time are tv_sec:tv_usec. -+ -+Examples: -+ -+ socket = l:SO_LINGER=1:60 -+ set one minute timeout for closing local socket -+ socket = r:SO_OOBINLINE=yes -+ place out-of-band data directly into the -+ receive data stream for remote sockets -+ socket = a:SO_REUSEADDR=no -+ disable address reuse (enabled by default) -+ socket = a:SO_BINDTODEVICE=lo -+ only accept connections on loopback interface -+ -+=item B = yes | no (Unix only) -+ -+enable logging via syslog -+ -+default: yes -+ -+=item B = yes | no (WIN32 only) -+ -+enable the taskbar icon -+ -+default: yes -+ -+=back -+ -+ -+=head2 SERVICE-LEVEL OPTIONS -+ -+Each configuration section begins with service name in square brackets. -+The service name is used for libwrap (TCP Wrappers) access control and lets -+you distinguish B services in your log files. -+ -+Note that if you wish to run B in I mode (where it -+is provided a network socket by a server such as I, I, -+or I) then you should read the section entitled I -+below. -+ -+ -+=over 4 -+ -+=item B = [HOST:]PORT -+ -+accept connections on specified address -+ -+If no host specified, defaults to all IPv4 addresses for the local host. -+ -+To listen on all IPv6 addresses use: -+ -+ accept = :::PORT -+ -+=item B = DIRECTORY -+ -+Certificate Authority directory -+ -+This is the directory in which B will look for certificates when using -+the I. Note that the certificates in this directory should be named -+XXXXXXXX.0 where XXXXXXXX is the hash value of the DER encoded subject of the -+cert. -+ -+The hash algorithm has been changed in B. It is required to -+c_rehash the directory on upgrade from B to B. -+ -+I path is relative to I directory if specified. -+ -+=item B = CERT_FILE -+ -+Certificate Authority file -+ -+This file contains multiple CA certificates, used with the I. -+ -+=item B = PEM_FILE -+ -+certificate chain PEM file name -+ -+The certificates must be in PEM format, and must be from the -+actual server/client certificate to the self-signed root CA certificate. -+ -+A certificate is required in server mode, and optional in client mode. -+ -+=item B = EMAIL -+ -+email address of the peer certificate subject -+ -+Multiple I options are allowed in a single service section. -+Certificates are accepted if no I option was specified, or the -+email address of the peer certificate matches any of the email addresses -+specified with I. -+ -+=item B = HOST -+ -+host of the peer certificate subject -+ -+Multiple I options are allowed in a single service section. -+Certificates are accepted if no I option was specified, or the host -+name of the peer certificate matches any of the hosts specified with -+I. -+ -+=item B = IP -+ -+IP address of the peer certificate subject -+ -+Multiple I options are allowed in a single service section. -+Certificates are accepted if no I option was specified, or the IP -+address of the peer certificate matches any of the IP addresses specified with -+I. -+ -+=item B = CIPHER_LIST -+ -+Select permitted SSL ciphers -+ -+A colon delimited list of the ciphers to allow in the SSL connection, -+for example DES-CBC3-SHA:IDEA-CBC-MD5. -+ -+=item B = yes | no -+ -+client mode (remote service uses SSL) -+ -+default: no (server mode) -+ -+=item B = [HOST:]PORT -+ -+connect to a remote address -+ -+If no host is specified, the host defaults to localhost. -+ -+Multiple I options are allowed in a single service section. -+ -+If host resolves to multiple addresses and/or if multiple I -+options are specified, then the remote address is chosen using a -+round-robin algorithm. -+ -+=item B = DIRECTORY -+ -+Certificate Revocation Lists directory -+ -+This is the directory in which B will look for CRLs when -+using the I. Note that the CRLs in this directory should -+be named XXXXXXXX.r0 where XXXXXXXX is the hash value of the CRL. -+ -+The hash algorithm has been changed in B. It is required to -+c_rehash the directory on upgrade from B to B. -+ -+I path is relative to I directory if specified. -+ -+=item B = CERT_FILE -+ -+Certificate Revocation Lists file -+ -+This file contains multiple CRLs, used with the I. -+ -+=item B = NID -+ -+specify ECDH curve name -+ -+To get a list of supported cuves use: -+ -+ openssl ecparam -list_curves -+ -+default: prime256v1 -+ -+=item B = TYPE -+ -+connection identifier type -+ -+This identifier allows to distinguish log entries generated for each of the -+connections. -+ -+Currently supported types: -+ -+=over 4 -+ -+=item I -+ -+The numeric sequential identifier is only unique within a single instance of -+B, but very compact. It is most useful for manual log analysis. -+ -+=item I -+ -+This alphanumeric identifier is globally unique, but longer than the sequential -+number. It is most useful for automated log analysis. -+ -+=item I -+ -+The operating system thread identifier is neither unique (even within a single -+instance of B) nor short. It is most useful for debugging software -+or configuration issues. -+ -+=back -+ -+default: sequential -+ -+=item B = LEVEL -+ -+debugging level -+ -+Level is a one of the syslog level names or numbers -+emerg (0), alert (1), crit (2), err (3), warning (4), notice (5), -+info (6), or debug (7). All logs for the specified level and -+all levels numerically less than it will be shown. Use I or -+I for greatest debugging output. The default is notice (5). -+ -+=item B = yes | no -+ -+delay DNS lookup for I option -+ -+This option is useful for dynamic DNS, or when DNS is not available during -+B startup (road warrior VPN, dial-up configurations). -+ -+Delayed resolver mode is automatically engaged when stunnel fails to resolve on -+startup any of the I targets for a service. -+ -+Delayed resolver inflicts I. -+ -+default: no -+ -+=item B = ENGINE_ID -+ -+select engine ID for the service -+ -+=item B = ENGINE_NUMBER -+ -+select engine number for the service -+ -+The engines are numbered starting from 1. -+ -+=item B = EXECUTABLE_PATH -+ -+execute local inetd-type program -+ -+I path is relative to I directory if specified. -+ -+The following environmental variables are set on Unix platform: -+REMOTE_HOST, REMOTE_PORT, SSL_CLIENT_DN, SSL_CLIENT_I_DN. -+ -+=item B = $0 $1 $2 ... -+ -+arguments for I including program name ($0) -+ -+Quoting is currently not supported. -+Arguments are separated with arbitrary number of whitespaces. -+ -+=item B = rr | prio -+ -+Failover strategy for multiple "connect" targets. -+ -+ rr (round robin) - fair load distribution -+ prio (priority) - use the order specified in config file -+ -+default: rr -+ -+=item B = USERNAME -+ -+use IDENT (RFC 1413) username checking -+ -+=item B = KEY_FILE -+ -+private key for certificate specified with I option -+ -+Private key is needed to authenticate certificate owner. -+Since this file should be kept secret it should only be readable -+to its owner. On Unix systems you can use the following command: -+ -+ chmod 600 keyfile -+ -+default: value of I option -+ -+=item B = yes | no -+ -+Enable or disable the use of /etc/hosts.allow and /etc/hosts.deny. -+ -+default: no (since version 5.00) -+ -+=item B = HOST -+ -+IP of the outgoing interface is used as source for remote connections. -+Use this option to bind a static local IP address, instead. -+ -+=item B = SERVICE:SERVER_PATTERN (server mode) -+ -+Use the service as a slave service (a name-based virtual server) for Server -+Name Indication TLS extension (RFC 3546). -+ -+I specifies the master service that accepts client connections -+with I option. I specifies the host name to be -+redirected. The pattern may start with '*' character, e.g. '*.example.com'. -+Multiple slave services are normally specified for a single master service. -+I option can also be specified more than once within a single slave -+service. -+ -+This service, as well as the master service, may not be configured in client -+mode. -+ -+I option of the slave service is ignored when I option is -+specified, as I connects remote host before TLS handshake. -+ -+Libwrap checks (Unix only) are performed twice: with master service name after -+TCP connection is accepted, and with slave service name during TLS handshake. -+ -+Option I is only available when compiled with B and later. -+ -+=item B = SERVER (client mode) -+ -+Use the parameter as the value of TLS Server Name Indication (RFC 3546) -+extension. -+ -+Option I is only available when compiled with B and later. -+ -+=item B = URL -+ -+select OCSP server for certificate verification -+ -+=item B = yes | no -+ -+validate certificates with their AIA OCSP responders -+ -+This option enables I to validate certificates with the list of -+OCSP responder URLs retrieved from their AIA (Authority Information Access) -+extension. -+ -+=item B = OCSP_FLAG -+ -+specify OCSP server flag -+ -+Several I can be used to specify multiple flags. -+ -+currently supported flags: NOCERTS, NOINTERN NOSIGS, NOCHAIN, NOVERIFY, -+NOEXPLICIT, NOCASIGN, NODELEGATED, NOCHECKS, TRUSTOTHER, RESPID_KEY, NOTIME -+ -+=item B = SSL_OPTIONS -+ -+B library options -+ -+The parameter is the B option name as described in the -+I manual, but without I prefix. -+I lists the options found to be allowed in the -+current combination of I and the I library used -+to build it. -+ -+Several I can be used to specify multiple options. -+An option name can be prepended with a dash ("-") to disable the option. -+ -+For example, for compatibility with the erroneous Eudora SSL -+implementation, the following option can be used: -+ -+ options = DONT_INSERT_EMPTY_FRAGMENTS -+ -+default: -+ -+ options = NO_SSLv2 -+ options = NO_SSLv3 -+ -+=item B = PROTO -+ -+application protocol to negotiate SSL -+ -+This option enables initial, protocol-specific negotiation of the SSL/TLS -+encryption. -+I option should not be used with SSL encryption on a separate port. -+ -+Currently supported protocols: -+ -+=over 4 -+ -+=item I -+ -+Proprietary (undocummented) extension of CIFS protocol implemented in Samba. -+Support for this extension was dropped in Samba 3.0.0. -+ -+=item I -+ -+Based on RFC 2817 - I, section 5.2 - I -+ -+This protocol is only supported in client mode. -+ -+=item I -+ -+Based on RFC 2595 - I -+ -+=item I -+ -+Based on RFC 4642 - I -+ -+This protocol is only supported in client mode. -+ -+=item I -+ -+Based on -+F -+ -+=item I -+ -+Based on RFC 2449 - I -+ -+=item I -+ -+Haproxy client IP address -+F -+ -+=item I -+ -+Based on RFC 2487 - I -+ -+=item I -+ -+SOCKS versions 4, 4a, and 5 are supported. The SOCKS protocol itself -+is encapsulated within SSL/TLS encryption layer to protect the final -+destination address. -+ -+F -+ -+F -+ -+The BIND command of the SOCKS protocol is not supported. -+The USERID parameter is ignored. -+ -+See Examples section for sample configuration files for VPN based on SOCKS -+encryption. -+ -+=back -+ -+=item B = basic | ntlm -+ -+authentication type for protocol negotiations -+ -+Currently authentication type only applies to the 'connect' protocol. -+ -+default: basic -+ -+=item B = HOST:PORT -+ -+destination address for protocol negotiations -+ -+I specifies the final SSL server to be connected by the proxy, -+and not the proxy server directly connected by B. -+The proxy server should be specified with the 'connect' option. -+ -+Currently protocol destination address only applies to 'connect' protocol. -+ -+=item B = PASSWORD -+ -+password for protocol negotiations -+ -+=item B = USERNAME -+ -+username for protocol negotiations -+ -+=item B = IDENTITY -+ -+PSK identity for the PSK client -+ -+I can be used on B clients to select the PSK identity -+used for authentication. This option is ignored in server sections. -+ -+default: the first identity specified in the I file. -+ -+=item B = FILE -+ -+file with PSK identities and corresponding keys -+ -+Each line of the file in the following format: -+ -+ IDENTITY:KEY -+ -+The key is required to be at least 20 characters long. -+The file should not be world-readable nor world-writable. -+ -+=item B = yes | no (Unix only) -+ -+allocate pseudoterminal for 'exec' option -+ -+=item B = [HOST:]PORT -+ -+redirect SSL client connections on certificate-based authentication failures -+ -+This option only works in server mode. -+Some protocol negotiations are also incompatible with the I option. -+ -+=item B = yes | no -+ -+support SSL renegotiation -+ -+Applications of the SSL renegotiation include some authentication scenarios, -+or re-keying long lasting connections. -+ -+On the other hand this feature can facilitate a trivial CPU-exhaustion -+DoS attack: -+ -+F -+ -+Please note that disabling SSL renegotiation does not fully mitigate -+this issue. -+ -+default: yes (if supported by B) -+ -+=item B = yes | no -+ -+attempt to use TCP RST flag to indicate an error -+ -+This option is not supported on some platforms. -+ -+default: yes -+ -+=item B = yes | no -+ -+reconnect a connect+exec section after it's disconnected -+ -+default: no -+ -+=item B = NUM_ENTRIES -+ -+session cache size -+ -+I specifies the maximum number of the internal session cache -+entries. -+ -+The value of 0 can be used for unlimited size. It is not recommended -+for production use due to the risk of memory exhaustion DoS attack. -+ -+=item B = TIMEOUT -+ -+session cache timeout -+ -+This is the number of seconds to keep cached SSL sessions. -+ -+=item B = HOST:PORT -+ -+address of sessiond SSL cache server -+ -+=item B = SSL_VERSION -+ -+select the SSL protocol version -+ -+Allowed values: all, SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2 -+ -+=item B = BYTES (except for FORK model) -+ -+thread stack size -+ -+=item B = SECONDS -+ -+time to wait for expected data -+ -+=item B = SECONDS -+ -+time to wait for close_notify (set to 0 for buggy MSIE) -+ -+=item B = SECONDS -+ -+time to wait to connect a remote host -+ -+=item B = SECONDS -+ -+time to keep an idle connection -+ -+=item B = none | source | destination | both (Unix only) -+ -+enable transparent proxy support on selected platforms -+ -+Supported values: -+ -+=over 4 -+ -+=item I -+ -+Disable transparent proxy support. This is the default. -+ -+=item I -+ -+Re-write address to appear as if wrapped daemon is connecting -+from the SSL client machine instead of the machine running B. -+ -+This option is currently available in: -+ -+=over 4 -+ -+=item Remote mode (I option) on I=2.6.28> -+ -+This configuration requires B to be executed as root and without -+I option. -+ -+This configuration requires the following setup for iptables and routing -+(possibly in /etc/rc.local or equivalent file): -+ -+ iptables -t mangle -N DIVERT -+ iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT -+ iptables -t mangle -A DIVERT -j MARK --set-mark 1 -+ iptables -t mangle -A DIVERT -j ACCEPT -+ ip rule add fwmark 1 lookup 100 -+ ip route add local 0.0.0.0/0 dev lo table 100 -+ echo 0 >/proc/sys/net/ipv4/conf/lo/rp_filter -+ -+B must also to be executed as root and without I option. -+ -+=item Remote mode (I option) on I -+ -+This configuration requires kernel to be compiled with I -+option. -+Connected service must be installed on a separate host. -+Routing towards the clients has to go through the B box. -+ -+B must also to be executed as root and without I option. -+ -+=item Remote mode (I option) on I=8.0> -+ -+This configuration requires additional firewall and routing setup. -+B must also to be executed as root and without I option. -+ -+=item Local mode (I option) -+ -+This configuration works by pre-loading I shared library. -+_RLD_LIST environment variable is used on Tru64, and LD_PRELOAD variable on -+other platforms. -+ -+=back -+ -+=item I -+ -+Original destination is used instead of I option. -+ -+A service section for transparent destination may look like this: -+ -+ [transparent] -+ client=yes -+ accept= -+ transparent=destination -+ -+This configuration requires iptables setup to work, -+possibly in /etc/rc.local or equivalent file. -+ -+For a connect target installed on the same host: -+ -+ /sbin/iptables -t nat -I OUTPUT -p tcp --dport \ -+ -m ! --uid-owner \ -+ -j DNAT --to-destination : -+ -+For a connect target installed on a remote host: -+ -+ /sbin/iptables -I INPUT -i eth0 -p tcp --dport -j ACCEPT -+ /sbin/iptables -t nat -I PREROUTING -p tcp --dport \ -+ -i eth0 -j DNAT --to-destination : -+ -+Transparent destination option is currently only supported on Linux. -+ -+=item I -+ -+Use both I and I transparent proxy. -+ -+=back -+ -+Two legacy options are also supported for backward compatibility: -+ -+=over 4 -+ -+=item I -+ -+This options has been renamed to I. -+ -+=item I -+ -+This options has been renamed to I. -+ -+=back -+ -+ -+=item B = LEVEL -+ -+verify peer certificate -+ -+=over 4 -+ -+=item level 0 -+ -+Request and ignore peer certificate. -+ -+=item level 1 -+ -+Verify peer certificate if present. -+ -+=item level 2 -+ -+Verify peer certificate. -+ -+=item level 3 -+ -+Verify peer with locally installed certificate. -+ -+=item level 4 -+ -+Ignore CA chain and only verify peer certificate. -+ -+=item default -+ -+No verify. -+ -+=back -+ -+It is important to understand, that this option was solely designed for access -+control and not for authorization. Specifically for level 2 every non-revoked -+certificate is accepted regardless of its Common Name. For this reason a -+dedicated CA should be used with level 2, and not a generic CA commonly used -+for webservers. Level 3 is preferred for point-to-point connections. -+ -+=back -+ -+ -+=head1 RETURN VALUE -+ -+B returns zero on success, non-zero on error. -+ -+ -+=head1 SIGNALS -+ -+The following signals can be used to control B in Unix environment: -+ -+=over 4 -+ -+=item SIGHUP -+ -+Force a reload of the configuration file. -+ -+Some global options will not be reloaded: -+ -+=over 4 -+ -+=item * -+ -+chroot -+ -+=item * -+ -+foreground -+ -+=item * -+ -+pid -+ -+=item * -+ -+setgid -+ -+=item * -+ -+setuid -+ -+=back -+ -+The use of 'setuid' option will also prevent B from binding privileged -+(<1024) ports during configuration reloading. -+ -+When 'chroot' option is used, B will look for all its files (including -+configuration file, certificates, log file and pid file) within the chroot -+jail. -+ -+=item SIGUSR1 -+ -+Close and reopen B log file. -+This function can be used for log rotation. -+ -+=item SIGTERM, SIGQUIT, SIGINT -+ -+Shut B down. -+ -+=back -+ -+The result of sending any other signals to the server is undefined. -+ -+ -+=head1 EXAMPLES -+ -+In order to provide SSL encapsulation to your local I service, use: -+ -+ [imapd] -+ accept = 993 -+ exec = /usr/sbin/imapd -+ execArgs = imapd -+ -+or in remote mode: -+ -+ [imapd] -+ accept = 993 -+ connect = 143 -+ -+In order to let your local e-mail client connect to an SSL-enabled I -+service on another server, configure the e-mail client to connect to localhost -+on port 119 and use: -+ -+ [imap] -+ client = yes -+ accept = 143 -+ connect = servername:993 -+ -+If you want to provide tunneling to your I daemon on port 2020, -+use something like: -+ -+ [vpn] -+ accept = 2020 -+ exec = /usr/sbin/pppd -+ execArgs = pppd local -+ pty = yes -+ -+If you want to use B in I mode to launch your imapd -+process, you'd use this I. -+Note there must be no I<[service_name]> section. -+ -+ exec = /usr/sbin/imapd -+ execArgs = imapd -+ -+To setup SOCKS VPN configure the following client service: -+ -+ [socks_client] -+ client = yes -+ accept = 127.0.0.1:1080 -+ connect = vpn_server:9080 -+ verify = 4 -+ CAfile = stunnel.pem -+ -+The corresponding configuration on the vpn_server host: -+ -+ [socks_server] -+ protocol = socks -+ accept = 9080 -+ cert = stunnel.pem -+ key = stunnel.key -+ -+Now test your configuration on the client machine with: -+ -+ curl --socks4a localhost http://www.example.com/ -+ -+=head1 NOTES -+ -+=head2 RESTRICTIONS -+ -+B cannot be used for the FTP daemon because of the nature -+of the FTP protocol which utilizes multiple ports for data transfers. -+There are available SSL-enabled versions of FTP and telnet daemons, however. -+ -+ -+=head2 INETD MODE -+ -+The most common use of B is to listen on a network -+port and establish communication with either a new port -+via the connect option, or a new program via the I option. -+However there is a special case when you wish to have -+some other program accept incoming connections and -+launch B, for example with I, I, -+or I. -+ -+For example, if you have the following line in I: -+ -+ imaps stream tcp nowait root @bindir@/stunnel stunnel @sysconfdir@/stunnel/imaps.conf -+ -+In these cases, the I-style program is responsible -+for binding a network socket (I above) and handing -+it to B when a connection is received. -+Thus you do not want B to have any I option. -+All the I should be placed in the -+global options section, and no I<[service_name]> section -+will be present. See the I section for example -+configurations. -+ -+=head2 CERTIFICATES -+ -+Each SSL-enabled daemon needs to present a valid X.509 certificate -+to the peer. It also needs a private key to decrypt the incoming -+data. The easiest way to obtain a certificate and a key is to -+generate them with the free B package. You can find more -+information on certificates generation on pages listed below. -+ -+The order of contents of the I<.pem> file is important. It should contain the -+unencrypted private key first, then a signed certificate (not certificate -+request). There should be also empty lines after certificate and private key. -+Plaintext certificate information appended on the top of generated certificate -+should be discarded. So the file should look like this: -+ -+ -----BEGIN RSA PRIVATE KEY----- -+ [encoded key] -+ -----END RSA PRIVATE KEY----- -+ [empty line] -+ -----BEGIN CERTIFICATE----- -+ [encoded certificate] -+ -----END CERTIFICATE----- -+ [empty line] -+ -+=head2 RANDOMNESS -+ -+B needs to seed the PRNG (pseudo random number generator) in -+order for SSL to use good randomness. The following sources are loaded -+in order until sufficient random data has been gathered: -+ -+=over 4 -+ -+=item * -+ -+The file specified with the I flag. -+ -+=item * -+ -+The file specified by the RANDFILE environment variable, if set. -+ -+=item * -+ -+The file .rnd in your home directory, if RANDFILE not set. -+ -+=item * -+ -+The file specified with '--with-random' at compile time. -+ -+=item * -+ -+The contents of the screen if running on Windows. -+ -+=item * -+ -+The egd socket specified with the I flag. -+ -+=item * -+ -+The egd socket specified with '--with-egd-sock' at compile time. -+ -+=item * -+ -+The /dev/urandom device. -+ -+=back -+ -+With recent (B or later) version of SSL it will stop loading -+random data automatically when sufficient entropy has been gathered. With -+previous versions it will continue to gather from all the above sources since -+no SSL function exists to tell when enough data is available. -+ -+Note that on Windows machines that do not have console user interaction -+(mouse movements, creating windows, etc.) the screen contents are not -+variable enough to be sufficient, and you should provide a random file -+for use with the I flag. -+ -+Note that the file specified with the I flag should contain -+random data -- that means it should contain different information -+each time B is run. This is handled automatically -+unless the I flag is used. If you wish to update this file -+manually, the I command in recent versions of B, -+would be useful. -+ -+Important note: If /dev/urandom is available, B often seeds the PRNG -+with it while checking the random state. On systems with /dev/urandom -+B is likely to use it even though it is listed at the very bottom of -+the list above. This is the behaviour of B and not B. -+ -+=head2 DH PARAMETERS -+ -+Stunnel 4.40 and later contains hardcoded 2048-bit DH parameters. -+ -+It is also possible to specify DH parameters in the certificate file: -+ -+ openssl dhparam 2048 >> stunnel.pem -+ -+DH parameter generation may take several minutes. -+ -+ -+=head1 FILES -+ -+=over 4 -+ -+=item F<@sysconfdir@/stunnel/stunnel.conf> -+ -+B configuration file -+ -+=back -+ -+ -+=head1 BUGS -+ -+Option I and Win32 command line does not support quoting. -+ -+ -+=head1 SEE ALSO -+ -+=over 4 -+ -+=item L -+ -+access control facility for internet services -+ -+=item L -+ -+internet 'super-server' -+ -+=item F -+ -+B homepage -+ -+=item F -+ -+B project website -+ -+=back -+ -+ -+=head1 AUTHOR -+ -+=over 4 -+ -+=item Micha? Trojnara -+ -+> -+ -+=back -+ -diff --git a/src/Makefile.am b/src/Makefile.am -index 8fc3fe6..3bcbdfd 100644 ---- a/src/Makefile.am -+++ b/src/Makefile.am -@@ -90,3 +90,10 @@ resources.obj: resources.rc resources.h version.h - mostlyclean-local: - -rm -f *.obj - -+edit = sed \ -+ -e 's|@bindir[@]|$(bindir)|g' -+ -+stunnel3: Makefile -+ $(edit) '$(srcdir)/$@.in' >$@ -+ -+stunnel3: $(srcdir)/stunnel3.in -diff --git a/src/stunnel3.in b/src/stunnel3.in -index db2bce0..eebbdcd 100755 ---- a/src/stunnel3.in -+++ b/src/stunnel3.in -@@ -22,7 +22,7 @@ use POSIX; - use Getopt::Std; - - # Configuration - path to stunnel (version >=4.05) --$stunnel_bin='@prefix@/bin/stunnel'; -+$stunnel_bin='@bindir@/stunnel'; - - # stunnel3 script body begins here - ($read_fd, $write_fd)=POSIX::pipe(); -diff --git a/tools/Makefile.am b/tools/Makefile.am -index 79ef010..375cf91 100644 ---- a/tools/Makefile.am -+++ b/tools/Makefile.am -@@ -37,3 +37,17 @@ cert: - rm -f stunnel.rnd; \ - fi - -+edit = sed \ -+ -e 's|@prefix[@]|$(prefix)|g' \ -+ -e 's|@bindir[@]|$(bindir)|g' \ -+ -e 's|@localstatedir[@]|$(localstatedir)|g' \ -+ -e 's|@sysconfdir[@]|$(sysconfdir)|g' \ -+ -e 's|@DEFAULT_GROUP[@]|$(DEFAULT_GROUP)|g' -+ -+stunnel.conf-sample stunnel.init stunnel.service: Makefile -+ $(edit) '$(srcdir)/$@.in' >$@ -+ -+stunnel.conf-sample: $(srcdir)/stunnel.conf-sample.in -+stunnel.init: $(srcdir)/stunnel.init.in -+stunnel.service: $(srcdir)/stunnel.service.in -+ -diff --git a/tools/stunnel.conf-sample.in b/tools/stunnel.conf-sample.in -index c8f65dc..716c229 100644 ---- a/tools/stunnel.conf-sample.in -+++ b/tools/stunnel.conf-sample.in -@@ -12,7 +12,7 @@ - ;setgid = @DEFAULT_GROUP@ - - ; PID file is created inside the chroot jail (if enabled) --;pid = @prefix@/var/run/stunnel.pid -+;pid = @localstatedir@/run/stunnel.pid - - ; Debugging stuff (may be useful for troubleshooting) - ;foreground = yes -@@ -44,7 +44,7 @@ client = yes - accept = 127.0.0.1:110 - connect = pop.gmail.com:995 - verify = 2 --CApath = /etc/ssl/certs -+CApath = @sysconfdir@/ssl/certs - checkHost = pop.gmail.com - - [gmail-imap] -@@ -52,7 +52,7 @@ client = yes - accept = 127.0.0.1:143 - connect = imap.gmail.com:993 - verify = 2 --CApath = /etc/ssl/certs -+CApath = @sysconfdir@/ssl/certs - checkHost = imap.gmail.com - - [gmail-smtp] -@@ -60,7 +60,7 @@ client = yes - accept = 127.0.0.1:25 - connect = smtp.gmail.com:465 - verify = 2 --CApath = /etc/ssl/certs -+CApath = @sysconfdir@/ssl/certs - checkHost = smtp.gmail.com - - ; ***************************************** Example TLS server mode services -@@ -68,34 +68,34 @@ checkHost = smtp.gmail.com - ;[pop3s] - ;accept = 995 - ;connect = 110 --;cert = @prefix@/etc/stunnel/stunnel.pem -+;cert = @sysconfdir@/stunnel/stunnel.pem - - ;[imaps] - ;accept = 993 - ;connect = 143 --;cert = @prefix@/etc/stunnel/stunnel.pem -+;cert = @sysconfdir@/stunnel/stunnel.pem - - ;[ssmtp] - ;accept = 465 - ;connect = 25 --;cert = @prefix@/etc/stunnel/stunnel.pem -+;cert = @sysconfdir@/stunnel/stunnel.pem - - ; TLS front-end to a web server - ;[https] - ;accept = 443 - ;connect = 80 --;cert = @prefix@/etc/stunnel/stunnel.pem -+;cert = @sysconfdir@/stunnel/stunnel.pem - ; "TIMEOUTclose = 0" is a workaround for a design flaw in Microsoft SChannel - ; Microsoft implementations do not use TLS close-notify alert and thus they - ; are vulnerable to truncation attacks - ;TIMEOUTclose = 0 - - ; Remote shell protected with PSK-authenticated TLS --; Create "@prefix@/etc/stunnel/secrets.txt" containing IDENTITY:KEY pairs -+; Create "@sysconfdir@/stunnel/secrets.txt" containing IDENTITY:KEY pairs - ;[shell] - ;accept = 1337 - ;exec = /bin/sh - ;execArgs = sh -i --;PSKsecrets = @prefix@/etc/stunnel/secrets.txt -+;PSKsecrets = @sysconfdir@/stunnel/secrets.txt - - ; vim:ft=dosini -diff --git a/tools/stunnel.init.in b/tools/stunnel.init.in -index 32a3e64..aa46e9f 100644 ---- a/tools/stunnel.init.in -+++ b/tools/stunnel.init.in -@@ -15,7 +15,7 @@ - ### END INIT INFO - - DEFAULTPIDFILE="/var/run/stunnel.pid" --DAEMON=@prefix@/bin/stunnel -+DAEMON=@bindir@/stunnel - NAME=stunnel - DESC="SSL tunnels" - OPTIONS="" -@@ -100,9 +100,9 @@ if [ "x$OPTIONS" != "x" ]; then - OPTIONS="-- $OPTIONS" - fi - --[ -f /etc/default/stunnel ] && . /etc/default/stunnel -+[ -f @sysconfdir@/default/stunnel ] && . /etc/default/stunnel - if [ "$ENABLED" = "0" ] ; then -- echo "$DESC disabled, see /etc/default/stunnel" -+ echo "$DESC disabled, see @sysconfdir@/default/stunnel" - exit 0 - fi - -@@ -110,15 +110,15 @@ fi - # is in $2. Otherwise, respect /etc/default/stunnel4 setting. If no - # setting there, use /etc/stunnel/*.conf - if [ -n "${2:-}" ]; then -- if [ -e "/etc/stunnel/$2.conf" ]; then -- FILES="/etc/stunnel/$2.conf" -+ if [ -e "@sysconfdir@/stunnel/$2.conf" ]; then -+ FILES="@sysconfdir@/stunnel/$2.conf" - else -- echo >&2 "/etc/stunnel/$2.conf does not exist." -+ echo >&2 "@sysconfdir@/stunnel/$2.conf does not exist." - exit 1 - fi - else - if [ -z "$FILES" ]; then -- FILES="/etc/stunnel/*.conf" -+ FILES="@sysconfdir@/stunnel/*.conf" - fi - fi - -@@ -158,7 +158,7 @@ case "$1" in - querydaemons - ;; - *) -- N=/etc/init.d/$NAME -+ N=@sysconfdir@/init.d/$NAME - echo "Usage: $N {start|stop|status|reload|reopen-logs|restart} []" >&2 - exit 1 - ;; -diff --git a/tools/stunnel.service.in b/tools/stunnel.service.in -index 0f7adfa..7776364 100644 ---- a/tools/stunnel.service.in -+++ b/tools/stunnel.service.in -@@ -3,7 +3,7 @@ Description=SSL tunnel for network daemons - After=syslog.target - - [Service] --ExecStart=@prefix@/bin/stunnel -+ExecStart=@bindir@/stunnel - Type=forking - - [Install] --- -2.3.3 - Deleted: csw/mgar/pkg/stunnel/trunk/files/0001-Make-stunnel.conf-sample.in-honor-sysconfdir-localst.patch =================================================================== --- csw/mgar/pkg/stunnel/trunk/files/0001-Make-stunnel.conf-sample.in-honor-sysconfdir-localst.patch 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/files/0001-Make-stunnel.conf-sample.in-honor-sysconfdir-localst.patch 2015-06-01 20:16:13 UTC (rev 25045) @@ -1,53 +0,0 @@ -From 3eec5691ed3376ab91601c7d98a122ae7cf3f252 Mon Sep 17 00:00:00 2001 -From: Ben Walton -Date: Fri, 22 Jun 2012 02:55:14 +0200 -Subject: [PATCH] make stunnel.conf-sample.in honour sysconfdir and - localstatedir - -Signed-off-by: Ben Walton ---- - tools/stunnel.conf-sample.in | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/tools/stunnel.conf-sample.in b/tools/stunnel.conf-sample.in -index 15dc2d9..b4c3946 100644 ---- a/tools/stunnel.conf-sample.in -+++ b/tools/stunnel.conf-sample.in -@@ -9,7 +9,7 @@ - - ; A copy of some devices and system files is needed within the chroot jail - ; Chroot conflicts with configuration file reload and many other features --chroot = @prefix@/var/lib/stunnel/ -+chroot = @localstatedir@/lib/stunnel/ - ; Chroot jail can be escaped if setuid option is not used - setuid = nobody - setgid = @DEFAULT_GROUP@ -@@ -26,8 +26,8 @@ pid = /stunnel.pid - ; ************************************************************************** - - ; Certificate/key is needed in server mode and optional in client mode --cert = @prefix@/etc/stunnel/mail.pem --;key = @prefix@/etc/stunnel/mail.pem -+cert = @sysconfdir@/stunnel/mail.pem -+;key = @sysconfdir@/stunnel/mail.pem - - ; Authentication stuff needs to be configured to prevent MITM attacks - ; It is not enabled by default! -@@ -36,12 +36,12 @@ cert = @prefix@/etc/stunnel/mail.pem - ; CApath is located inside chroot jail - ;CApath = /certs - ; It's often easier to use CAfile --;CAfile = @prefix@/etc/stunnel/certs.pem -+;CAfile = @sysconfdir@/stunnel/certs.pem - ; Don't forget to c_rehash CRLpath - ; CRLpath is located inside chroot jail - ;CRLpath = /crls - ; Alternatively CRLfile can be used --;CRLfile = @prefix@/etc/stunnel/crls.pem -+;CRLfile = @sysconfdir@/stunnel/crls.pem - - ; Disable support for insecure SSLv2 protocol - options = NO_SSLv2 --- -1.7.10.3 - Deleted: csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.checkinstall =================================================================== --- csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.checkinstall 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.checkinstall 2015-06-01 20:16:13 UTC (rev 25045) @@ -1,17 +0,0 @@ -#!/bin/sh -# -# Make sure we use at least cswclassutils 1.15 (this is where AUTOENABLE -# support was introduced). pkgutil should take care of this sometime, but -# as we don't know whether the system has a recent pkgutil, we do it here -# for now. - -# Use the REV stamp as it is guaranteed to go up and is easier to compare -# than the version field -R=`/bin/pkgparam CSWcswclassutils VERSION | cut -d= -f2 | tr -d .` - -[ "0$R" -ge 20090602 ] && exit 0 - -echo "Please install cswclassutils >= REV=2009-06-02 first." >&2 -echo "Aborting installation." >&2 - -exit 1 Deleted: csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.cswstunnel =================================================================== --- csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.cswstunnel 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.cswstunnel 2015-06-01 20:16:13 UTC (rev 25045) @@ -1,53 +0,0 @@ -#!/bin/sh -# Based on Sample stunnel SysV startup file -# Copyright by Michal Trojnara 2002,2007,2008 -# -# Modified for CSW by Sebastian Kayser -# -# Don't enable SMF service right away -#AUTOENABLE no -# -# For SMF exit codes: see PAGER='less +/exit\ status' man smf_method - -PATH=@sbindir@:@bindir@:/sbin:/bin:/usr/sbin:/usr/bin -DAEMON=@bindir@/stunnel -DEFAULTPIDFILE=@localstatedir@/run/stunnel/stunnel.pid -CONFIG=@sysconfdir@/stunnel/stunnel.conf - -test -f $DAEMON || { echo "ERROR: Couldn't find stunnel binary."; exit 95; } -test -f $CONFIG || { echo "ERROR: Couldn't find stunnel.conf."; exit 96; } - -CHROOT=`grep '^chroot' $CONFIG | sed 's/.*= *//'` -PIDFILE=`grep '^pid' $CONFIG | sed 's/.*= *//'` - -test -z "$DEFAULTPIDFILE" && PIDFILE = $DEFAULTPIDFILE - -case "$1" in - start) - printf "Starting universal SSL tunnel: cswstunnel" - $DAEMON $CONFIG || printf " failed" - echo "." - ;; - stop) - printf "Stopping universal SSL tunnel: cswstunnel" - if test -r $CHROOT/$PIDFILE; then - kill `cat $CHROOT/$PIDFILE` 2> /dev/null || printf " failed" - else - printf " no PID file" - fi - echo "." - ;; - restart|force-reload) - echo "Restarting universal SSL tunnel: cswstunnel" - $0 stop - sleep 1 - $0 start - echo "done." - ;; - *) - echo "Usage: /etc/opt/csw/init.d/cswstunnel {start|stop|restart|force-reload}" >&2 - exit 1 - ;; -esac - -exit 0 Deleted: csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.postinstall =================================================================== --- csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.postinstall 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/files/CSWstunnel.postinstall 2015-06-01 20:16:13 UTC (rev 25045) @@ -1,9 +0,0 @@ -#!/bin/sh -# -# Create required /dev/zero in stunnel chroot directory -# -# Taken from stunnel Makefile. mknod can only be run as root and thus needs -# to be run from postinstall (packaging is done as non-root user). -# -/usr/sbin/mknod /var/opt/csw/lib/stunnel/dev/zero c 13 12 -chmod 666 /var/opt/csw/lib/stunnel/dev/zero Deleted: csw/mgar/pkg/stunnel/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/stunnel/trunk/files/changelog.CSW 2015-06-01 16:22:31 UTC (rev 25044) +++ csw/mgar/pkg/stunnel/trunk/files/changelog.CSW 2015-06-01 20:16:13 UTC (rev 25045) @@ -1,13 +0,0 @@ -stunnel (4.44,REV=2011.09.27) - - * Updated to 4.44 (Closes: #4817, #4606) - * Changed $(sysconfdir) from /opt/csw/etc/stunnel to /etc/opt/csw/stunnel. - - -- Sebastian Kayser Tue, 27 Sep 2011 16:55:08 +0200 - -stunnel (4,27,REV=2009.06.18) - - * Package adopted and updated to 4.27. - * Built with --localstatedir=/var/opt/csw. (Closes: #3029) - - -- Sebastian Kayser Thu, 18 Jun 2009 22:48:30 +0200 Copied: csw/mgar/pkg/stunnel/trunk/files/cswstunnel.xml (from rev 25026, csw/mgar/pkg/lang-python/carbon/trunk/files/cswcarbon-cache.xml) =================================================================== (Binary files differ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 1 22:22:33 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 1 Jun 2015 20:22:33 +0000 Subject: SF.net SVN: gar:[25046] csw/mgar/pkg/stunnel/trunk/Makefile Message-ID: <3m0nxH10z1z117@mail.opencsw.org> Revision: 25046 http://sourceforge.net/p/gar/code/25046 Author: dmichelsen Date: 2015-06-01 20:22:32 +0000 (Mon, 01 Jun 2015) Log Message: ----------- stunnel/trunk: Add missing manifest Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-01 20:16:13 UTC (rev 25045) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-01 20:22:32 UTC (rev 25046) @@ -27,6 +27,7 @@ MASTER_SITES += https://www.stunnel.org/downloads/beta/ DISTFILES += $(DISTNAME)$(BETA).tar.gz +DISTFILES += cswstunnel.xml VENDOR_URL = http://www.stunnel.org This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 1 22:33:18 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 1 Jun 2015 20:33:18 +0000 Subject: SF.net SVN: gar:[25047] csw/mgar/pkg/stunnel/trunk/Makefile Message-ID: <3m0p9l3gl2z13X@mail.opencsw.org> Revision: 25047 http://sourceforge.net/p/gar/code/25047 Author: dmichelsen Date: 2015-06-01 20:33:18 +0000 (Mon, 01 Jun 2015) Log Message: ----------- stunnel/trunk: Add override Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-01 20:22:32 UTC (rev 25046) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-01 20:33:18 UTC (rev 25047) @@ -40,6 +40,9 @@ RUNTIME_DEP_PKGS_CSWstunnel += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSWstunnel += CSWlibwrap1 +# This is the SMF DTD +CHECKPKG_OVERRIDES_CSWstunnel += file-with-bad-content|/usr/share|root/var/opt/csw/svc/manifest/cswstunnel.xml + CONFIGURE_ARGS += $(DIRPATHS) CONFIGURE_ARGS += --with-ssl=$(prefix) CONFIGURE_ARGS += --enable-ipv6 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Tue Jun 2 07:51:50 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Tue, 2 Jun 2015 05:51:50 +0000 Subject: SF.net SVN: gar:[25048] csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile Message-ID: <3m12ZH0mJ3z19d@mail.opencsw.org> Revision: 25048 http://sourceforge.net/p/gar/code/25048 Author: rmottola Date: 2015-06-02 05:51:50 +0000 (Tue, 02 Jun 2015) Log Message: ----------- gcc4/branches/gcc-4.6.x: correct override for gc3 version Modified Paths: -------------- csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile Modified: csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile =================================================================== --- csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile 2015-06-01 20:33:18 UTC (rev 25047) +++ csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile 2015-06-02 05:51:50 UTC (rev 25048) @@ -206,7 +206,7 @@ CHECKPKG_OVERRIDES_CSWlibgij$(JAVA_LIB_VERSION) += no-direct-binding CHECKPKG_OVERRIDES_CSWlibgomp1 += no-direct-binding CHECKPKG_OVERRIDES_CSWlibitm1 += no-direct-binding -CHECKPKG_OVERRIDES_CSWlibobjc-gc4 += no-direct-binding +CHECKPKG_OVERRIDES_CSWlibobjc-gc3 += no-direct-binding CHECKPKG_OVERRIDES_CSWlibobjc3 += no-direct-binding CHECKPKG_OVERRIDES_CSWlibquadmath0 += no-direct-binding CHECKPKG_OVERRIDES_CSWlibssp0 += no-direct-binding This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Tue Jun 2 08:06:14 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 2 Jun 2015 06:06:14 +0000 Subject: SF.net SVN: gar:[25049] csw/mgar/pkg/lang-python/cffi/trunk/Makefile Message-ID: <3m12tl3BPTz1D4@mail.opencsw.org> Revision: 25049 http://sourceforge.net/p/gar/code/25049 Author: cgrzemba Date: 2015-06-02 06:06:13 +0000 (Tue, 02 Jun 2015) Log Message: ----------- lang-python/cffi/trunk: add dependency pycparser Modified Paths: -------------- csw/mgar/pkg/lang-python/cffi/trunk/Makefile Modified: csw/mgar/pkg/lang-python/cffi/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/cffi/trunk/Makefile 2015-06-02 05:51:50 UTC (rev 25048) +++ csw/mgar/pkg/lang-python/cffi/trunk/Makefile 2015-06-02 06:06:13 UTC (rev 25049) @@ -16,6 +16,7 @@ RUNTIME_DEP_PKGS_CSWpy-cffi += CSWlibpython2-7-1-0 RUNTIME_DEP_PKGS_CSWpy-cffi += CSWlibpython2-6-1-0 RUNTIME_DEP_PKGS_CSWpy-cffi += CSWlibffi6 +RUNTIME_DEP_PKGS_CSWpy-cffi += CSWpy-pycparser TEST_SCRIPTS = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Jun 2 09:41:27 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 2 Jun 2015 07:41:27 +0000 Subject: SF.net SVN: gar:[25050] csw/mgar/pkg/openssl1/trunk/files Message-ID: <3m152B2DSZz1HC@mail.opencsw.org> Revision: 25050 http://sourceforge.net/p/gar/code/25050 Author: janholzh Date: 2015-06-02 07:41:26 +0000 (Tue, 02 Jun 2015) Log Message: ----------- openssl1/trunk: update more patches Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-06-02 06:06:13 UTC (rev 25049) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-06-02 07:41:26 UTC (rev 25050) @@ -13,9 +13,9 @@ my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; -my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; +my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o:des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; + my $fips_sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void"; my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void"; - my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::"; Index: crypto/sparccpuid.S =================================================================== diff -ru openssl-1.0.1e/crypto/sparccpuid.S openssl-1.0.1e/crypto/sparccpuid.S @@ -29,20 +29,7 @@ #if defined(__SUNPRO_C) && defined(__sparcv9) # define ABI64 /* They've said -xarch=v9 at command line */ #elif defined(__GNUC__) && defined(__arch64__) -@@ -235,10 +239,10 @@ - .global _sparcv9_vis1_probe - .align 8 - _sparcv9_vis1_probe: -+ .word 0x81b00d80 !fxor %f0,%f0,%f0 - add %sp,BIAS+2,%o1 -- .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - retl -- .word 0x81b00d80 !fxor %f0,%f0,%f0 -+ .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 - .type _sparcv9_vis1_probe,#function - .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe - -@@ -251,7 +255,12 @@ +@@ -241,7 +245,12 @@ ! UltraSPARC IIe 7 ! UltraSPARC III 7 ! UltraSPARC T1 24 @@ -55,7 +42,7 @@ ! Numbers for T2 and SPARC64 V-VII are more than welcomed. ! ! It would be possible to detect specifically US-T1 by instrumenting -@@ -260,6 +269,8 @@ +@@ -250,6 +259,8 @@ .global _sparcv9_vis1_instrument .align 8 _sparcv9_vis1_instrument: @@ -64,9 +51,9 @@ .word 0x91410000 !rd %tick,%o0 .word 0x81b00d80 !fxor %f0,%f0,%f0 .word 0x85b08d82 !fxor %f2,%f2,%f2 -@@ -314,6 +325,30 @@ - .type _sparcv9_fmadd_probe,#function - .size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe +@@ -286,6 +297,30 @@ + .type _sparcv9_vis1_instrument,#function + .size _sparcv9_vis1_instrument,.-_sparcv9_vis1_instrument +.global _sparcv9_rdcfr +.align 8 @@ -95,7 +82,7 @@ .global OPENSSL_cleanse .align 32 OPENSSL_cleanse: -@@ -398,6 +433,102 @@ +@@ -370,6 +405,102 @@ .size OPENSSL_cleanse,.-OPENSSL_cleanse #ifndef _BOOT @@ -203,18 +190,20 @@ diff -ru openssl-1.0.1e/crypto/sparcv9cap.c openssl-1.0.1e/crypto/sparcv9cap.c --- openssl-1.0.1e/crypto/sparcv9cap.c 2011-05-24 17:02:24.000000000 -0700 +++ openssl-1.0.1e/crypto/sparcv9cap.c 2011-07-27 10:48:17.817470000 -0700 -@@ -4,34 +4,58 @@ +@@ -3,36 +3,59 @@ + #include #include - #include #include +#include #include + #include -#define SPARCV9_TICK_PRIVILEGED (1<<0) -#define SPARCV9_PREFER_FPU (1<<1) -#define SPARCV9_VIS1 (1<<2) -#define SPARCV9_VIS2 (1<<3) /* reserved */ -#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ +-#define SPARCV9_BLK (1<<5) +#include "sparc_arch.h" +#if defined(__GNUC__) && defined(__linux) @@ -275,13 +264,11 @@ } unsigned long _sparcv9_rdtick(void); -@@ -39,11 +63,18 @@ +@@ -37,11 +60,16 @@ + + unsigned long _sparcv9_rdtick(void); unsigned long _sparcv9_vis1_instrument(void); - void _sparcv9_vis2_probe(void); - void _sparcv9_fmadd_probe(void); +unsigned long _sparcv9_rdcfr(void); -+void _sparcv9_vis3_probe(void); -+unsigned long _sparcv9_random(void); +#ifndef _BOOT +size_t _sparcv9_vis1_instrument_bus(unsigned int *,size_t); +size_t _sparcv9_vis1_instrument_bus2(unsigned int *,size_t,size_t); @@ -295,7 +282,7 @@ #if defined(__sun) && defined(__SVR4) return gethrtime(); #else -@@ -52,6 +83,24 @@ +@@ -50,6 +80,24 @@ else return _sparcv9_rdtick(); } @@ -320,7 +307,7 @@ #endif #if defined(_BOOT) -@@ -61,7 +110,7 @@ +@@ -59,7 +107,7 @@ */ void OPENSSL_cpuid_setup(void) { @@ -329,7 +316,7 @@ } #elif 0 && defined(__sun) && defined(__SVR4) -@@ -90,11 +139,11 @@ +@@ -88,11 +136,11 @@ if (!strcmp(name, "SUNW,UltraSPARC") || /* covers II,III,IV */ !strncmp(name, "SUNW,UltraSPARC-I", 17)) { @@ -343,7 +330,7 @@ return DI_WALK_TERMINATE; } -@@ -100,7 +149,7 @@ +@@ -98,7 +146,7 @@ } /* This is expected to catch remaining UltraSPARCs, such as T1 */ else if (!strncmp(name, "SUNW,UltraSPARC", 15)) { @@ -352,7 +339,7 @@ return DI_WALK_TERMINATE; } -@@ -119,7 +168,7 @@ +@@ -117,7 +165,7 @@ trigger = 1; if ((e = getenv("OPENSSL_sparcv9cap"))) { @@ -361,7 +348,7 @@ return; } -@@ -126,15 +175,15 @@ +@@ -124,15 +172,15 @@ if (sysinfo(SI_MACHINE, si, sizeof(si)) > 0) { if (strcmp(si, "sun4v")) /* FPU is preferred for all CPUs, but US-T1/2 */ @@ -381,7 +368,7 @@ return; } } -@@ -204,12 +253,14 @@ +@@ -195,7 +241,9 @@ trigger = 1; if ((e = getenv("OPENSSL_sparcv9cap"))) { @@ -392,73 +379,48 @@ return; } +@@ -202,21 +250,48 @@ + (void) getisax(&ui, 1); + /* Initial value, fits UltraSPARC-I&II... */ -- OPENSSL_sparcv9cap_P = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; +- OPENSSL_sparcv9cap_P = SPARCV9_BLK; ++ OPENSSL_sparcv9cap_P[0] = SPARCV9_BLK; - sigfillset(&all_masked); - sigdelset(&all_masked, SIGILL); -@@ -232,18 +283,18 @@ - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_rdtick(); -- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; + if (ui & AV_SPARC_VIS) { +- /* detect UltraSPARC-Tx, see sparccpuid.S for details... */ ++ /* detect UltraSPARC-Tx, see sparccpud.S for details... */ + if (_sparcv9_vis1_instrument() < 7) +- OPENSSL_sparcv9cap_P |= SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_TICK_PRIVILEGED; + if (_sparcv9_vis1_instrument() < 12) { +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1|SPARCV9_PREFER_FPU; ++ OPENSSL_sparcv9cap_P[0] |= (SPARCV9_VIS1 | SPARCV9_PREFER_FPU); + if (ui & AV_SPARC_VIS2) +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; +- } ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; ++ } } - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_vis1_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; - /* detect UltraSPARC-Tx, see sparccpud.S for details... */ - if (_sparcv9_vis1_instrument() >= 12) -- OPENSSL_sparcv9cap_P &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); -+ OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); - else { - _sparcv9_vis2_probe(); -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; - } - } - -@@ -249,13 +300,50 @@ - - if (sigsetjmp(common_jmp, 1) == 0) { - _sparcv9_fmadd_probe(); + if (ui & AV_SPARC_FMAF) - OPENSSL_sparcv9cap_P |= SPARCV9_FMADD; + OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; - } - ++ + /* + * VIS3 flag is tested independently from VIS1, unlike VIS2 that is, + * because VIS3 defines even integer instructions. + */ -+ if (sigsetjmp(common_jmp,1) == 0) { -+ _sparcv9_vis3_probe(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; -+ } ++ if (ui & AV_SPARC_VIS3) ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; + -+ if (sigsetjmp(common_jmp,1) == 0) { -+ (void)_sparcv9_random(); -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_RANDOM; -+ } ++#define AV_T4_MECHS (AV_SPARC_AES | AV_SPARC_DES | AV_SPARC_KASUMI | \ ++ AV_SPARC_CAMELLIA | AV_SPARC_MD5 | AV_SPARC_SHA1 | \ ++ AV_SPARC_SHA256 | AV_SPARC_SHA512 | AV_SPARC_MPMUL | \ ++ AV_SPARC_CRC32C) + -+ /* -+ * In wait for better solution _sparcv9_rdcfr is masked by -+ * VIS3 flag, because it goes to uninterruptable endless -+ * loop on UltraSPARC II running Solaris. Things might be -+ * different on Linux... -+ */ -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && -+ sigsetjmp(common_jmp, 1) == 0) { ++ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && (ui & AV_T4_MECHS)) + OPENSSL_sparcv9cap_P[1] = (unsigned int)_sparcv9_rdcfr(); -+ } + - sigaction(SIGBUS, &bus_oact, NULL); - sigaction(SIGILL, &ill_oact, NULL); - - sigprocmask(SIG_SETMASK, &oset, NULL); -+ + if (sizeof(size_t) == 8) + OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; +#ifdef __linux @@ -2265,5563 +2227,3 @@ {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, {ERR_FUNC(EVP_F_ALG_MODULE_INIT), "ALG_MODULE_INIT"}, -Index: crypto/sparc_arch.h -=================================================================== -diff -uNr openssl-1.0.1m/crypto/sparc_arch.h openssl-1.0.1m/crypto/sparc_arch.h ---- openssl-1.0.1m/crypto/sparc_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/sparc_arch.h 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,101 @@ -+#ifndef __SPARC_ARCH_H__ -+#define __SPARC_ARCH_H__ -+ -+#define SPARCV9_TICK_PRIVILEGED (1<<0) -+#define SPARCV9_PREFER_FPU (1<<1) -+#define SPARCV9_VIS1 (1<<2) -+#define SPARCV9_VIS2 (1<<3) /* reserved */ -+#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ -+#define SPARCV9_BLK (1<<5) /* VIS1 block copy */ -+#define SPARCV9_VIS3 (1<<6) -+#define SPARCV9_RANDOM (1<<7) -+#define SPARCV9_64BIT_STACK (1<<8) -+ -+/* -+ * OPENSSL_sparcv9cap_P[1] is copy of Compatibility Feature Register, -+ * %asr26, SPARC-T4 and later. There is no SPARCV9_CFR bit in -+ * OPENSSL_sparcv9cap_P[0], as %cfr copy is sufficient... -+ */ -+#define CFR_AES 0x00000001 /* Supports AES opcodes */ -+#define CFR_DES 0x00000002 /* Supports DES opcodes */ -+#define CFR_KASUMI 0x00000004 /* Supports KASUMI opcodes */ -+#define CFR_CAMELLIA 0x00000008 /* Supports CAMELLIA opcodes */ -+#define CFR_MD5 0x00000010 /* Supports MD5 opcodes */ -+#define CFR_SHA1 0x00000020 /* Supports SHA1 opcodes */ -+#define CFR_SHA256 0x00000040 /* Supports SHA256 opcodes */ -+#define CFR_SHA512 0x00000080 /* Supports SHA512 opcodes */ -+#define CFR_MPMUL 0x00000100 /* Supports MPMUL opcodes */ -+#define CFR_MONTMUL 0x00000200 /* Supports MONTMUL opcodes */ -+#define CFR_MONTSQR 0x00000400 /* Supports MONTSQR opcodes */ -+#define CFR_CRC32C 0x00000800 /* Supports CRC32C opcodes */ -+ -+#if defined(OPENSSL_PIC) && !defined(__PIC__) -+#define __PIC__ -+#endif -+ -+#if defined(__SUNPRO_C) && defined(__sparcv9) && !defined(__arch64__) -+#define __arch64__ -+#endif -+ -+#define SPARC_PIC_THUNK(reg) \ -+ .align 32; \ -+.Lpic_thunk: \ -+ jmp %o7 + 8; \ -+ add %o7, reg, reg; -+ -+#define SPARC_PIC_THUNK_CALL(reg) \ -+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ -+ call .Lpic_thunk; \ -+ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; -+ -+#if 1 -+#define SPARC_SETUP_GOT_REG(reg) SPARC_PIC_THUNK_CALL(reg) -+#else -+#define SPARC_SETUP_GOT_REG(reg) \ -+ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ -+ call .+8; \ -+ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; \ -+ add %o7, reg, reg -+#endif -+ -+#if defined(__arch64__) -+ -+#define SPARC_LOAD_ADDRESS(SYM, reg) \ -+ setx SYM, %o7, reg; -+#define LDPTR ldx -+#define SIZE_T_CC %xcc -+#define STACK_FRAME 192 -+#define STACK_BIAS 2047 -+#define STACK_7thARG (STACK_BIAS+176) -+ -+#else -+ -+#define SPARC_LOAD_ADDRESS(SYM, reg) \ -+ set SYM, reg; -+#define LDPTR ld -+#define SIZE_T_CC %icc -+#define STACK_FRAME 112 -+#define STACK_BIAS 0 -+#define STACK_7thARG 92 -+#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) SPARC_LOAD_ADDRESS(SYM, reg) -+ -+#endif -+ -+#ifdef __PIC__ -+#undef SPARC_LOAD_ADDRESS -+#undef SPARC_LOAD_ADDRESS_LEAF -+#define SPARC_LOAD_ADDRESS(SYM, reg) \ -+ SPARC_SETUP_GOT_REG(reg); \ -+ sethi %hi(SYM), %o7; \ -+ or %o7, %lo(SYM), %o7; \ -+ LDPTR [reg + %o7], reg; -+#endif -+ -+#ifndef SPARC_LOAD_ADDRESS_LEAF -+#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) \ -+ mov %o7, tmp; \ -+ SPARC_LOAD_ADDRESS(SYM, reg) \ -+ mov tmp, %o7; -+#endif -+ -+#endif /* __SPARC_ARCH_H__ */ -Index: crypto/md5/asm/md5-sparcv9.pl -=================================================================== -diff -uNr openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl ---- openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,434 @@ -+#!/usr/bin/env perl -+ -+# ==================================================================== -+# Written by Andy Polyakov for the OpenSSL -+# project. The module is, however, dual licensed under OpenSSL and -+# CRYPTOGAMS licenses depending on where you obtain it. For further -+# details see http://www.openssl.org/~appro/cryptogams/. -+# -+# Hardware SPARC T4 support by David S. Miller . -+# ==================================================================== -+ -+# MD5 for SPARCv9, 6.9 cycles per byte on UltraSPARC, >40% faster than -+# code generated by Sun C 5.2. -+ -+# SPARC T4 MD5 hardware achieves 3.20 cycles per byte, which is 2.1x -+# faster than software. Multi-process benchmark saturates at 12x -+# single-process result on 8-core processor, or ~11GBps per 2.85GHz -+# socket. -+ -+$bits=32; -+for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } -+if ($bits==64) { $bias=2047; $frame=192; } -+else { $bias=0; $frame=112; } -+ -+$output=shift; -+open STDOUT,">$output"; -+ -+use integer; -+ -+($ctx,$inp,$len)=("%i0","%i1","%i2"); # input arguments -+ -+# 64-bit values -+ at X=("%o0","%o1","%o2","%o3","%o4","%o5","%o7","%g1","%g2"); -+$tx="%g3"; -+($AB,$CD)=("%g4","%g5"); -+ -+# 32-bit values -+ at V=($A,$B,$C,$D)=map("%l$_",(0..3)); -+($t1,$t2,$t3,$saved_asi)=map("%l$_",(4..7)); -+($shr,$shl1,$shl2)=("%i3","%i4","%i5"); -+ -+my @K=( 0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee, -+ 0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501, -+ 0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be, -+ 0x6b901122,0xfd987193,0xa679438e,0x49b40821, -+ -+ 0xf61e2562,0xc040b340,0x265e5a51,0xe9b6c7aa, -+ 0xd62f105d,0x02441453,0xd8a1e681,0xe7d3fbc8, -+ 0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed, -+ 0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a, -+ -+ 0xfffa3942,0x8771f681,0x6d9d6122,0xfde5380c, -+ 0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70, -+ 0x289b7ec6,0xeaa127fa,0xd4ef3085,0x04881d05, -+ 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665, -+ -+ 0xf4292244,0x432aff97,0xab9423a7,0xfc93a039, -+ 0x655b59c3,0x8f0ccc92,0xffeff47d,0x85845dd1, -+ 0x6fa87e4f,0xfe2ce6e0,0xa3014314,0x4e0811a1, -+ 0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391, 0 ); -+ -+sub R0 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (7,12,17,22)[$i%4]; -+ my $j = ($i+1)/2; -+ -+ if ($i&1) { -+ $code.=<<___; -+ srlx @X[$j],$shr, at X[$j] ! align X[`$i+1`] -+ and $b,$t1,$t1 ! round $i -+ sllx @X[$j+1],$shl1,$tx -+ add $t2,$a,$a -+ sllx $tx,$shl2,$tx -+ xor $d,$t1,$t1 -+ or $tx, at X[$j], at X[$j] -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add @X[$j],$t2,$t2 ! X[`$i+1`]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ xor $b,$c,$t1 -+ add $t3,$a,$a -+___ -+ } else { -+ $code.=<<___; -+ srlx @X[$j],32,$tx ! extract X[`2*$j+1`] -+ and $b,$t1,$t1 ! round $i -+ add $t2,$a,$a -+ xor $d,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $tx,$t2,$t2 ! X[`2*$j+1`]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ xor $b,$c,$t1 -+ add $t3,$a,$a -+___ -+ } -+} -+ -+sub R0_1 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (7,12,17,22)[$i%4]; -+ -+$code.=<<___; -+ srlx @X[0],32,$tx ! extract X[1] -+ and $b,$t1,$t1 ! round $i -+ add $t2,$a,$a -+ xor $d,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $tx,$t2,$t2 ! X[1]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ andn $b,$c,$t1 -+ add $t3,$a,$a -+___ -+} -+ -+sub R1 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (5,9,14,20)[$i%4]; -+ my $j = $i<31 ? (1+5*($i+1))%16 : (5+3*($i+1))%16; -+ my $xi = @X[$j/2]; -+ -+$code.=<<___ if ($j&1 && ($xi=$tx)); -+ srlx @X[$j/2],32,$xi ! extract X[$j] -+___ -+$code.=<<___; -+ and $b,$d,$t3 ! round $i -+ add $t2,$a,$a -+ or $t3,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ `$i<31?"andn":"xor"` $b,$c,$t1 -+ add $t3,$a,$a -+___ -+} -+ -+sub R2 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (4,11,16,23)[$i%4]; -+ my $j = $i<47 ? (5+3*($i+1))%16 : (0+7*($i+1))%16; -+ my $xi = @X[$j/2]; -+ -+$code.=<<___ if ($j&1 && ($xi=$tx)); -+ srlx @X[$j/2],32,$xi ! extract X[$j] -+___ -+$code.=<<___; -+ add $t2,$a,$a ! round $i -+ xor $b,$t1,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ or $t2,%lo(@K[$i+1]),$t2 -+ sll $a,$rot,$t3 -+ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ xor $b,$c,$t1 -+ add $t3,$a,$a -+___ -+} -+ -+sub R3 { -+ my ($i,$a,$b,$c,$d) = @_; -+ my $rot = (6,10,15,21)[$i%4]; -+ my $j = (0+7*($i+1))%16; -+ my $xi = @X[$j/2]; -+ -+$code.=<<___; -+ add $t2,$a,$a ! round $i -+___ -+$code.=<<___ if ($j&1 && ($xi=$tx)); -+ srlx @X[$j/2],32,$xi ! extract X[$j] -+___ -+$code.=<<___; -+ orn $b,$d,$t1 -+ sethi %hi(@K[$i+1]),$t2 -+ xor $c,$t1,$t1 -+ or $t2,%lo(@K[$i+1]),$t2 -+ add $t1,$a,$a -+ sll $a,$rot,$t3 -+ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] -+ srl $a,32-$rot,$a -+ add $b,$t3,$t3 -+ add $t3,$a,$a -+___ -+} -+ -+$code.=<<___ if ($bits==64); -+.register %g2,#scratch -+.register %g3,#scratch -+___ -+$code.=<<___; -+#include "sparc_arch.h" -+ -+.section ".text",#alloc,#execinstr -+ -+#ifdef __PIC__ -+SPARC_PIC_THUNK(%g1) -+#endif -+ -+.globl md5_block_asm_data_order -+.align 32 -+md5_block_asm_data_order: -+ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) -+ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] -+ -+ andcc %g1, CFR_MD5, %g0 -+ be .Lsoftware -+ nop -+ -+ mov 4, %g1 -+ andcc %o1, 0x7, %g0 -+ lda [%o0 + %g0]0x88, %f0 ! load context -+ lda [%o0 + %g1]0x88, %f1 -+ add %o0, 8, %o0 -+ lda [%o0 + %g0]0x88, %f2 -+ lda [%o0 + %g1]0x88, %f3 -+ bne,pn %icc, .Lhwunaligned -+ sub %o0, 8, %o0 -+ -+.Lhw_loop: -+ ldd [%o1 + 0x00], %f8 -+ ldd [%o1 + 0x08], %f10 -+ ldd [%o1 + 0x10], %f12 -+ ldd [%o1 + 0x18], %f14 -+ ldd [%o1 + 0x20], %f16 -+ ldd [%o1 + 0x28], %f18 -+ ldd [%o1 + 0x30], %f20 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x38], %f22 -+ add %o1, 0x40, %o1 -+ prefetch [%o1 + 63], 20 -+ -+ .word 0x81b02800 ! MD5 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhw_loop -+ nop -+ -+.Lhwfinish: -+ sta %f0, [%o0 + %g0]0x88 ! store context -+ sta %f1, [%o0 + %g1]0x88 -+ add %o0, 8, %o0 -+ sta %f2, [%o0 + %g0]0x88 -+ sta %f3, [%o0 + %g1]0x88 -+ retl -+ nop -+ -+.align 8 -+.Lhwunaligned: -+ alignaddr %o1, %g0, %o1 -+ -+ ldd [%o1 + 0x00], %f10 -+.Lhwunaligned_loop: -+ ldd [%o1 + 0x08], %f12 -+ ldd [%o1 + 0x10], %f14 -+ ldd [%o1 + 0x18], %f16 -+ ldd [%o1 + 0x20], %f18 -+ ldd [%o1 + 0x28], %f20 -+ ldd [%o1 + 0x30], %f22 -+ ldd [%o1 + 0x38], %f24 -+ subcc %o2, 1, %o2 ! done yet? -+ ldd [%o1 + 0x40], %f26 -+ add %o1, 0x40, %o1 -+ prefetch [%o1 + 63], 20 -+ -+ faligndata %f10, %f12, %f8 -+ faligndata %f12, %f14, %f10 -+ faligndata %f14, %f16, %f12 -+ faligndata %f16, %f18, %f14 -+ faligndata %f18, %f20, %f16 -+ faligndata %f20, %f22, %f18 -+ faligndata %f22, %f24, %f20 -+ faligndata %f24, %f26, %f22 -+ -+ .word 0x81b02800 ! MD5 -+ -+ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop -+ for %f26, %f26, %f10 ! %f10=%f26 -+ -+ ba .Lhwfinish -+ nop -+ -+.align 16 -+.Lsoftware: -+ save %sp,-$frame,%sp -+ -+ rd %asi,$saved_asi -+ wr %g0,0x88,%asi ! ASI_PRIMARY_LITTLE -+ and $inp,7,$shr -+ andn $inp,7,$inp -+ -+ sll $shr,3,$shr ! *=8 -+ mov 56,$shl2 -+ ld [$ctx+0],$A -+ sub $shl2,$shr,$shl2 -+ ld [$ctx+4],$B -+ and $shl2,32,$shl1 -+ add $shl2,8,$shl2 -+ ld [$ctx+8],$C -+ sub $shl2,$shl1,$shl2 ! shr+shl1+shl2==64 -+ ld [$ctx+12],$D -+ nop -+ -+.Loop: -+ cmp $shr,0 ! was inp aligned? -+ ldxa [$inp+0]%asi, at X[0] ! load little-endian input -+ ldxa [$inp+8]%asi, at X[1] -+ ldxa [$inp+16]%asi, at X[2] -+ ldxa [$inp+24]%asi, at X[3] -+ ldxa [$inp+32]%asi, at X[4] -+ sllx $A,32,$AB ! pack A,B -+ ldxa [$inp+40]%asi, at X[5] -+ sllx $C,32,$CD ! pack C,D -+ ldxa [$inp+48]%asi, at X[6] -+ or $B,$AB,$AB -+ ldxa [$inp+56]%asi, at X[7] -+ or $D,$CD,$CD -+ bnz,a,pn %icc,.+8 -+ ldxa [$inp+64]%asi, at X[8] -+ -+ srlx @X[0],$shr, at X[0] ! align X[0] -+ sllx @X[1],$shl1,$tx -+ sethi %hi(@K[0]),$t2 -+ sllx $tx,$shl2,$tx -+ or $t2,%lo(@K[0]),$t2 -+ or $tx, at X[0], at X[0] -+ xor $C,$D,$t1 -+ add @X[0],$t2,$t2 ! X[0]+K[0] -+___ -+ for ($i=0;$i<15;$i++) { &R0($i, at V); unshift(@V,pop(@V)); } -+ for (;$i<16;$i++) { &R0_1($i, at V); unshift(@V,pop(@V)); } -+ for (;$i<32;$i++) { &R1($i, at V); unshift(@V,pop(@V)); } -+ for (;$i<48;$i++) { &R2($i, at V); unshift(@V,pop(@V)); } -+ for (;$i<64;$i++) { &R3($i, at V); unshift(@V,pop(@V)); } -+$code.=<<___; -+ srlx $AB,32,$t1 ! unpack A,B,C,D and accumulate -+ add $inp,64,$inp ! advance inp -+ srlx $CD,32,$t2 -+ add $t1,$A,$A -+ subcc $len,1,$len ! done yet? -+ add $AB,$B,$B -+ add $t2,$C,$C -+ add $CD,$D,$D -+ srl $B,0,$B ! clruw $B -+ bne `$bits==64?"%xcc":"%icc"`,.Loop -+ srl $D,0,$D ! clruw $D -+ -+ st $A,[$ctx+0] ! write out ctx -+ st $B,[$ctx+4] -+ st $C,[$ctx+8] -+ st $D,[$ctx+12] -+ -+ wr %g0,$saved_asi,%asi -+ ret -+ restore -+.type md5_block_asm_data_order,#function -+.size md5_block_asm_data_order,(.-md5_block_asm_data_order) -+ -+.asciz "MD5 block transform for SPARCv9, CRYPTOGAMS by " -+.align 4 -+___ -+ -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my $ref,$opf; -+my %visopf = ( "faligndata" => 0x048, -+ "for" => 0x07c ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+sub unalignaddr { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my $ref="$mnemonic\t$rs1,$rs2,$rd"; -+ -+ foreach ($rs1,$rs2,$rd) { -+ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } -+ else { return $ref; } -+ } -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00300|$rd<<25|$rs1<<14|$rs2, -+ $ref; -+} -+ -+foreach (split("\n",$code)) { -+ s/\`([^\`]*)\`/eval $1/ge; -+ -+ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ -+ &unvis($1,$2,$3,$4) -+ /ge; -+ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ -+ &unalignaddr($1,$2,$3,$4) -+ /ge; -+ -+ print $_,"\n"; -+} -+ -+close STDOUT; -Index: crypto/aes/asm/aest4-sparcv9.pl -=================================================================== -diff -uNr openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl ---- openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,902 @@ -+#!/usr/bin/env perl -+ -+# ==================================================================== -+# Written by David S. Miller and Andy Polyakov -+# . The module is licensed under 2-clause BSD -+# license. October 2012. All rights reserved. -+# ==================================================================== -+ -+###################################################################### -+# AES for SPARC T4. -+# -+# AES round instructions complete in 3 cycles and can be issued every -+# cycle. It means that round calculations should take 4*rounds cycles, -+# because any given round instruction depends on result of *both* -+# previous instructions: -+# -+# |0 |1 |2 |3 |4 -+# |01|01|01| -+# |23|23|23| -+# |01|01|... -+# |23|... -+# -+# Provided that fxor [with IV] takes 3 cycles to complete, critical -+# path length for CBC encrypt would be 3+4*rounds, or in other words -+# it should process one byte in at least (3+4*rounds)/16 cycles. This -+# estimate doesn't account for "collateral" instructions, such as -+# fetching input from memory, xor-ing it with zero-round key and -+# storing the result. Yet, *measured* performance [for data aligned -+# at 64-bit boundary!] deviates from this equation by less than 0.5%: -+# -+# 128-bit key 192- 256- -+# CBC encrypt 2.70/2.90(*) 3.20/3.40 3.70/3.90 -+# (*) numbers after slash are for -+# misaligned data. -+# -+# Out-of-order execution logic managed to fully overlap "collateral" -+# instructions with those on critical path. Amazing! -+# -+# As with Intel AES-NI, question is if it's possible to improve -+# performance of parallelizeable modes by interleaving round -+# instructions. Provided round instruction latency and throughput -+# optimal interleave factor is 2. But can we expect 2x performance -+# improvement? Well, as round instructions can be issued one per -+# cycle, they don't saturate the 2-way issue pipeline and therefore -+# there is room for "collateral" calculations... Yet, 2x speed-up -+# over CBC encrypt remains unattaintable: -+# -+# 128-bit key 192- 256- -+# CBC decrypt 1.64/2.11 1.89/2.37 2.23/2.61 -+# CTR 1.64/2.08(*) 1.89/2.33 2.23/2.61 -+# (*) numbers after slash are for -+# misaligned data. -+# -+# Estimates based on amount of instructions under assumption that -+# round instructions are not pairable with any other instruction -+# suggest that latter is the actual case and pipeline runs -+# underutilized. It should be noted that T4 out-of-order execution -+# logic is so capable that performance gain from 2x interleave is -+# not even impressive, ~7-13% over non-interleaved code, largest -+# for 256-bit keys. -+ -+# To anchor to something else, software implementation processes -+# one byte in 29 cycles with 128-bit key on same processor. Intel -+# Sandy Bridge encrypts byte in 5.07 cycles in CBC mode and decrypts -+# in 0.93, naturally with AES-NI. -+ -+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; -+push(@INC,"${dir}","${dir}../../perlasm"); -+require "sparcv9_modes.pl"; -+ -+&asm_init(@ARGV); -+ -+$::evp=1; # if $evp is set to 0, script generates module with -+# AES_[en|de]crypt, AES_set_[en|de]crypt_key and AES_cbc_encrypt entry -+# points. These however are not fully compatible with openssl/aes.h, -+# because they expect AES_KEY to be aligned at 64-bit boundary. When -+# used through EVP, alignment is arranged at EVP layer. Second thing -+# that is arranged by EVP is at least 32-bit alignment of IV. -+ -+###################################################################### -+# single-round subroutines -+# -+{ -+my ($inp,$out,$key,$rounds,$tmp,$mask)=map("%o$_",(0..5)); -+ -+$code=<<___; -+.text -+ -+.globl aes_t4_encrypt -+.align 32 -+aes_t4_encrypt: -+ andcc $inp, 7, %g1 ! is input aligned? -+ andn $inp, 7, $inp -+ -+ ldx [$key + 0], %g4 -+ ldx [$key + 8], %g5 -+ -+ ldx [$inp + 0], %o4 -+ bz,pt %icc, 1f -+ ldx [$inp + 8], %o5 -+ ldx [$inp + 16], $inp -+ sll %g1, 3, %g1 -+ sub %g0, %g1, %o3 -+ sllx %o4, %g1, %o4 -+ sllx %o5, %g1, %g1 -+ srlx %o5, %o3, %o5 -+ srlx $inp, %o3, %o3 -+ or %o5, %o4, %o4 -+ or %o3, %g1, %o5 -+1: -+ ld [$key + 240], $rounds -+ ldd [$key + 16], %f12 -+ ldd [$key + 24], %f14 -+ xor %g4, %o4, %o4 -+ xor %g5, %o5, %o5 -+ movxtod %o4, %f0 -+ movxtod %o5, %f2 -+ srl $rounds, 1, $rounds -+ ldd [$key + 32], %f16 -+ sub $rounds, 1, $rounds -+ ldd [$key + 40], %f18 -+ add $key, 48, $key -+ -+.Lenc: -+ aes_eround01 %f12, %f0, %f2, %f4 -+ aes_eround23 %f14, %f0, %f2, %f2 -+ ldd [$key + 0], %f12 -+ ldd [$key + 8], %f14 -+ sub $rounds,1,$rounds -+ aes_eround01 %f16, %f4, %f2, %f0 -+ aes_eround23 %f18, %f4, %f2, %f2 -+ ldd [$key + 16], %f16 -+ ldd [$key + 24], %f18 -+ brnz,pt $rounds, .Lenc -+ add $key, 32, $key -+ -+ andcc $out, 7, $tmp ! is output aligned? -+ aes_eround01 %f12, %f0, %f2, %f4 -+ aes_eround23 %f14, %f0, %f2, %f2 -+ aes_eround01_l %f16, %f4, %f2, %f0 -+ aes_eround23_l %f18, %f4, %f2, %f2 -+ -+ bnz,pn %icc, 2f -+ nop -+ -+ std %f0, [$out + 0] -+ retl -+ std %f2, [$out + 8] -+ -+2: alignaddrl $out, %g0, $out -+ mov 0xff, $mask -+ srl $mask, $tmp, $mask -+ -+ faligndata %f0, %f0, %f4 -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ -+ stda %f4, [$out + $mask]0xc0 ! partial store -+ std %f6, [$out + 8] -+ add $out, 16, $out -+ orn %g0, $mask, $mask -+ retl -+ stda %f8, [$out + $mask]0xc0 ! partial store -+.type aes_t4_encrypt,#function -+.size aes_t4_encrypt,.-aes_t4_encrypt -+ -+.globl aes_t4_decrypt -+.align 32 -+aes_t4_decrypt: -+ andcc $inp, 7, %g1 ! is input aligned? -+ andn $inp, 7, $inp -+ -+ ldx [$key + 0], %g4 -+ ldx [$key + 8], %g5 -+ -+ ldx [$inp + 0], %o4 -+ bz,pt %icc, 1f -+ ldx [$inp + 8], %o5 -+ ldx [$inp + 16], $inp -+ sll %g1, 3, %g1 -+ sub %g0, %g1, %o3 -+ sllx %o4, %g1, %o4 -+ sllx %o5, %g1, %g1 -+ srlx %o5, %o3, %o5 -+ srlx $inp, %o3, %o3 -+ or %o5, %o4, %o4 -+ or %o3, %g1, %o5 -+1: -+ ld [$key + 240], $rounds -+ ldd [$key + 16], %f12 -+ ldd [$key + 24], %f14 -+ xor %g4, %o4, %o4 -+ xor %g5, %o5, %o5 -+ movxtod %o4, %f0 -+ movxtod %o5, %f2 -+ srl $rounds, 1, $rounds -+ ldd [$key + 32], %f16 -+ sub $rounds, 1, $rounds -+ ldd [$key + 40], %f18 -+ add $key, 48, $key -+ -+.Ldec: -+ aes_dround01 %f12, %f0, %f2, %f4 -+ aes_dround23 %f14, %f0, %f2, %f2 -+ ldd [$key + 0], %f12 -+ ldd [$key + 8], %f14 -+ sub $rounds,1,$rounds -+ aes_dround01 %f16, %f4, %f2, %f0 -+ aes_dround23 %f18, %f4, %f2, %f2 -+ ldd [$key + 16], %f16 -+ ldd [$key + 24], %f18 -+ brnz,pt $rounds, .Ldec -+ add $key, 32, $key -+ -+ andcc $out, 7, $tmp ! is output aligned? -+ aes_dround01 %f12, %f0, %f2, %f4 -+ aes_dround23 %f14, %f0, %f2, %f2 -+ aes_dround01_l %f16, %f4, %f2, %f0 -+ aes_dround23_l %f18, %f4, %f2, %f2 -+ -+ bnz,pn %icc, 2f -+ nop -+ -+ std %f0, [$out + 0] -+ retl -+ std %f2, [$out + 8] -+ -+2: alignaddrl $out, %g0, $out -+ mov 0xff, $mask -+ srl $mask, $tmp, $mask -+ -+ faligndata %f0, %f0, %f4 -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ -+ stda %f4, [$out + $mask]0xc0 ! partial store -+ std %f6, [$out + 8] -+ add $out, 16, $out -+ orn %g0, $mask, $mask -+ retl -+ stda %f8, [$out + $mask]0xc0 ! partial store -+.type aes_t4_decrypt,#function -+.size aes_t4_decrypt,.-aes_t4_decrypt -+___ -+} -+ -+###################################################################### -+# key setup subroutines -+# -+{ -+my ($inp,$bits,$out,$tmp)=map("%o$_",(0..5)); -+$code.=<<___; -+.globl aes_t4_set_encrypt_key -+.align 32 -+aes_t4_set_encrypt_key: -+.Lset_encrypt_key: -+ and $inp, 7, $tmp -+ alignaddr $inp, %g0, $inp -+ cmp $bits, 192 -+ ldd [$inp + 0], %f0 -+ bl,pt %icc,.L128 -+ ldd [$inp + 8], %f2 -+ -+ be,pt %icc,.L192 -+ ldd [$inp + 16], %f4 -+ brz,pt $tmp, .L256aligned -+ ldd [$inp + 24], %f6 -+ -+ ldd [$inp + 32], %f8 -+ faligndata %f0, %f2, %f0 -+ faligndata %f2, %f4, %f2 -+ faligndata %f4, %f6, %f4 -+ faligndata %f6, %f8, %f6 -+.L256aligned: -+___ -+for ($i=0; $i<6; $i++) { -+ $code.=<<___; -+ std %f0, [$out + `32*$i+0`] -+ aes_kexpand1 %f0, %f6, $i, %f0 -+ std %f2, [$out + `32*$i+8`] -+ aes_kexpand2 %f2, %f0, %f2 -+ std %f4, [$out + `32*$i+16`] -+ aes_kexpand0 %f4, %f2, %f4 -+ std %f6, [$out + `32*$i+24`] -+ aes_kexpand2 %f6, %f4, %f6 -+___ -+} -+$code.=<<___; -+ std %f0, [$out + `32*$i+0`] -+ aes_kexpand1 %f0, %f6, $i, %f0 -+ std %f2, [$out + `32*$i+8`] -+ aes_kexpand2 %f2, %f0, %f2 -+ std %f4, [$out + `32*$i+16`] -+ std %f6, [$out + `32*$i+24`] -+ std %f0, [$out + `32*$i+32`] -+ std %f2, [$out + `32*$i+40`] -+ -+ mov 14, $tmp -+ st $tmp, [$out + 240] -+ retl -+ xor %o0, %o0, %o0 -+ -+.align 16 -+.L192: -+ brz,pt $tmp, .L192aligned -+ nop -+ -+ ldd [$inp + 24], %f6 -+ faligndata %f0, %f2, %f0 -+ faligndata %f2, %f4, %f2 -+ faligndata %f4, %f6, %f4 -+.L192aligned: -+___ -+for ($i=0; $i<7; $i++) { -+ $code.=<<___; -+ std %f0, [$out + `24*$i+0`] -+ aes_kexpand1 %f0, %f4, $i, %f0 -+ std %f2, [$out + `24*$i+8`] -+ aes_kexpand2 %f2, %f0, %f2 -+ std %f4, [$out + `24*$i+16`] -+ aes_kexpand2 %f4, %f2, %f4 -+___ -+} -+$code.=<<___; -+ std %f0, [$out + `24*$i+0`] -+ aes_kexpand1 %f0, %f4, $i, %f0 -+ std %f2, [$out + `24*$i+8`] -+ aes_kexpand2 %f2, %f0, %f2 -+ std %f4, [$out + `24*$i+16`] -+ std %f0, [$out + `24*$i+24`] -+ std %f2, [$out + `24*$i+32`] -+ -+ mov 12, $tmp -+ st $tmp, [$out + 240] -+ retl -+ xor %o0, %o0, %o0 -+ -+.align 16 -+.L128: -+ brz,pt $tmp, .L128aligned -+ nop -+ -+ ldd [$inp + 16], %f4 -+ faligndata %f0, %f2, %f0 -+ faligndata %f2, %f4, %f2 -+.L128aligned: -+___ -+for ($i=0; $i<10; $i++) { -+ $code.=<<___; -+ std %f0, [$out + `16*$i+0`] -+ aes_kexpand1 %f0, %f2, $i, %f0 -+ std %f2, [$out + `16*$i+8`] -+ aes_kexpand2 %f2, %f0, %f2 -+___ -+} -+$code.=<<___; -+ std %f0, [$out + `16*$i+0`] -+ std %f2, [$out + `16*$i+8`] -+ -+ mov 10, $tmp -+ st $tmp, [$out + 240] -+ retl -+ xor %o0, %o0, %o0 -+.type aes_t4_set_encrypt_key,#function -+.size aes_t4_set_encrypt_key,.-aes_t4_set_encrypt_key -+ -+.globl aes_t4_set_decrypt_key -+.align 32 -+aes_t4_set_decrypt_key: -+ mov %o7, %o5 -+ call .Lset_encrypt_key -+ nop -+ -+ mov %o5, %o7 -+ sll $tmp, 4, $inp ! $tmp is number of rounds -+ add $tmp, 2, $tmp -+ add $out, $inp, $inp ! $inp=$out+16*rounds -+ srl $tmp, 2, $tmp ! $tmp=(rounds+2)/4 -+ -+.Lkey_flip: -+ ldd [$out + 0], %f0 -+ ldd [$out + 8], %f2 -+ ldd [$out + 16], %f4 -+ ldd [$out + 24], %f6 -+ ldd [$inp + 0], %f8 -+ ldd [$inp + 8], %f10 -+ ldd [$inp - 16], %f12 -+ ldd [$inp - 8], %f14 -+ sub $tmp, 1, $tmp -+ std %f0, [$inp + 0] -+ std %f2, [$inp + 8] -+ std %f4, [$inp - 16] -+ std %f6, [$inp - 8] -+ std %f8, [$out + 0] -+ std %f10, [$out + 8] -+ std %f12, [$out + 16] -+ std %f14, [$out + 24] -+ add $out, 32, $out -+ brnz $tmp, .Lkey_flip -+ sub $inp, 32, $inp -+ -+ retl -+ xor %o0, %o0, %o0 -+.type aes_t4_set_decrypt_key,#function -+.size aes_t4_set_decrypt_key,.-aes_t4_set_decrypt_key -+___ -+} -+ -+{{{ -+my ($inp,$out,$len,$key,$ivec,$enc)=map("%i$_",(0..5)); -+my ($ileft,$iright,$ooff,$omask,$ivoff)=map("%l$_",(1..7)); -+ -+$code.=<<___; -+.align 32 -+_aes128_loadkey: -+ ldx [$key + 0], %g4 -+ ldx [$key + 8], %g5 -+___ -+for ($i=2; $i<22;$i++) { # load key schedule -+ $code.=<<___; -+ ldd [$key + `8*$i`], %f`12+2*$i` -+___ -+} -+$code.=<<___; -+ retl -+ nop -+.type _aes128_loadkey,#function -+.size _aes128_loadkey,.-_aes128_loadkey -+_aes128_load_enckey=_aes128_loadkey -+_aes128_load_deckey=_aes128_loadkey -+ -+.align 32 -+_aes128_encrypt_1x: -+___ -+for ($i=0; $i<4; $i++) { -+ $code.=<<___; -+ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f4 -+ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_eround01 %f`16+8*$i+4`, %f4, %f2, %f0 -+ aes_eround23 %f`16+8*$i+6`, %f4, %f2, %f2 -+___ -+} -+$code.=<<___; -+ aes_eround01 %f48, %f0, %f2, %f4 -+ aes_eround23 %f50, %f0, %f2, %f2 -+ aes_eround01_l %f52, %f4, %f2, %f0 -+ retl -+ aes_eround23_l %f54, %f4, %f2, %f2 -+.type _aes128_encrypt_1x,#function -+.size _aes128_encrypt_1x,.-_aes128_encrypt_1x -+ -+.align 32 -+_aes128_encrypt_2x: -+___ -+for ($i=0; $i<4; $i++) { -+ $code.=<<___; -+ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f8 -+ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_eround01 %f`16+8*$i+0`, %f4, %f6, %f10 -+ aes_eround23 %f`16+8*$i+2`, %f4, %f6, %f6 -+ aes_eround01 %f`16+8*$i+4`, %f8, %f2, %f0 -+ aes_eround23 %f`16+8*$i+6`, %f8, %f2, %f2 -+ aes_eround01 %f`16+8*$i+4`, %f10, %f6, %f4 -+ aes_eround23 %f`16+8*$i+6`, %f10, %f6, %f6 -+___ -+} -+$code.=<<___; -+ aes_eround01 %f48, %f0, %f2, %f8 -+ aes_eround23 %f50, %f0, %f2, %f2 -+ aes_eround01 %f48, %f4, %f6, %f10 -+ aes_eround23 %f50, %f4, %f6, %f6 -+ aes_eround01_l %f52, %f8, %f2, %f0 -+ aes_eround23_l %f54, %f8, %f2, %f2 -+ aes_eround01_l %f52, %f10, %f6, %f4 -+ retl -+ aes_eround23_l %f54, %f10, %f6, %f6 -+.type _aes128_encrypt_2x,#function -+.size _aes128_encrypt_2x,.-_aes128_encrypt_2x -+ -+.align 32 -+_aes128_decrypt_1x: -+___ -+for ($i=0; $i<4; $i++) { -+ $code.=<<___; -+ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f4 -+ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_dround01 %f`16+8*$i+4`, %f4, %f2, %f0 -+ aes_dround23 %f`16+8*$i+6`, %f4, %f2, %f2 -+___ -+} -+$code.=<<___; -+ aes_dround01 %f48, %f0, %f2, %f4 -+ aes_dround23 %f50, %f0, %f2, %f2 -+ aes_dround01_l %f52, %f4, %f2, %f0 -+ retl -+ aes_dround23_l %f54, %f4, %f2, %f2 -+.type _aes128_decrypt_1x,#function -+.size _aes128_decrypt_1x,.-_aes128_decrypt_1x -+ -+.align 32 -+_aes128_decrypt_2x: -+___ -+for ($i=0; $i<4; $i++) { -+ $code.=<<___; -+ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f8 -+ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_dround01 %f`16+8*$i+0`, %f4, %f6, %f10 -+ aes_dround23 %f`16+8*$i+2`, %f4, %f6, %f6 -+ aes_dround01 %f`16+8*$i+4`, %f8, %f2, %f0 -+ aes_dround23 %f`16+8*$i+6`, %f8, %f2, %f2 -+ aes_dround01 %f`16+8*$i+4`, %f10, %f6, %f4 -+ aes_dround23 %f`16+8*$i+6`, %f10, %f6, %f6 -+___ -+} -+$code.=<<___; -+ aes_dround01 %f48, %f0, %f2, %f8 -+ aes_dround23 %f50, %f0, %f2, %f2 -+ aes_dround01 %f48, %f4, %f6, %f10 -+ aes_dround23 %f50, %f4, %f6, %f6 -+ aes_dround01_l %f52, %f8, %f2, %f0 -+ aes_dround23_l %f54, %f8, %f2, %f2 -+ aes_dround01_l %f52, %f10, %f6, %f4 -+ retl -+ aes_dround23_l %f54, %f10, %f6, %f6 -+.type _aes128_decrypt_2x,#function -+.size _aes128_decrypt_2x,.-_aes128_decrypt_2x -+ -+.align 32 -+_aes192_loadkey: -+_aes256_loadkey: -+ ldx [$key + 0], %g4 -+ ldx [$key + 8], %g5 -+___ -+for ($i=2; $i<26;$i++) { # load key schedule -+ $code.=<<___; -+ ldd [$key + `8*$i`], %f`12+2*$i` -+___ -+} -+$code.=<<___; -+ retl -+ nop -+.type _aes192_loadkey,#function -+.size _aes192_loadkey,.-_aes192_loadkey -+_aes192_load_enckey=_aes192_loadkey -+_aes192_load_deckey=_aes192_loadkey -+_aes256_load_enckey=_aes192_loadkey -+_aes256_load_deckey=_aes192_loadkey -+ -+.align 32 -+_aes192_encrypt_1x: -+___ -+for ($i=0; $i<5; $i++) { -+ $code.=<<___; -+ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f4 -+ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_eround01 %f`16+8*$i+4`, %f4, %f2, %f0 -+ aes_eround23 %f`16+8*$i+6`, %f4, %f2, %f2 -+___ -+} -+$code.=<<___; -+ aes_eround01 %f56, %f0, %f2, %f4 -+ aes_eround23 %f58, %f0, %f2, %f2 -+ aes_eround01_l %f60, %f4, %f2, %f0 -+ retl -+ aes_eround23_l %f62, %f4, %f2, %f2 -+.type _aes192_encrypt_1x,#function -+.size _aes192_encrypt_1x,.-_aes192_encrypt_1x -+ -+.align 32 -+_aes192_encrypt_2x: -+___ -+for ($i=0; $i<5; $i++) { -+ $code.=<<___; -+ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f8 -+ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_eround01 %f`16+8*$i+0`, %f4, %f6, %f10 -+ aes_eround23 %f`16+8*$i+2`, %f4, %f6, %f6 -+ aes_eround01 %f`16+8*$i+4`, %f8, %f2, %f0 -+ aes_eround23 %f`16+8*$i+6`, %f8, %f2, %f2 -+ aes_eround01 %f`16+8*$i+4`, %f10, %f6, %f4 -+ aes_eround23 %f`16+8*$i+6`, %f10, %f6, %f6 -+___ -+} -+$code.=<<___; -+ aes_eround01 %f56, %f0, %f2, %f8 -+ aes_eround23 %f58, %f0, %f2, %f2 -+ aes_eround01 %f56, %f4, %f6, %f10 -+ aes_eround23 %f58, %f4, %f6, %f6 -+ aes_eround01_l %f60, %f8, %f2, %f0 -+ aes_eround23_l %f62, %f8, %f2, %f2 -+ aes_eround01_l %f60, %f10, %f6, %f4 -+ retl -+ aes_eround23_l %f62, %f10, %f6, %f6 -+.type _aes192_encrypt_2x,#function -+.size _aes192_encrypt_2x,.-_aes192_encrypt_2x -+ -+.align 32 -+_aes192_decrypt_1x: -+___ -+for ($i=0; $i<5; $i++) { -+ $code.=<<___; -+ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f4 -+ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_dround01 %f`16+8*$i+4`, %f4, %f2, %f0 -+ aes_dround23 %f`16+8*$i+6`, %f4, %f2, %f2 -+___ -+} -+$code.=<<___; -+ aes_dround01 %f56, %f0, %f2, %f4 -+ aes_dround23 %f58, %f0, %f2, %f2 -+ aes_dround01_l %f60, %f4, %f2, %f0 -+ retl -+ aes_dround23_l %f62, %f4, %f2, %f2 -+.type _aes192_decrypt_1x,#function -+.size _aes192_decrypt_1x,.-_aes192_decrypt_1x -+ -+.align 32 -+_aes192_decrypt_2x: -+___ -+for ($i=0; $i<5; $i++) { -+ $code.=<<___; -+ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f8 -+ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_dround01 %f`16+8*$i+0`, %f4, %f6, %f10 -+ aes_dround23 %f`16+8*$i+2`, %f4, %f6, %f6 -+ aes_dround01 %f`16+8*$i+4`, %f8, %f2, %f0 -+ aes_dround23 %f`16+8*$i+6`, %f8, %f2, %f2 -+ aes_dround01 %f`16+8*$i+4`, %f10, %f6, %f4 -+ aes_dround23 %f`16+8*$i+6`, %f10, %f6, %f6 -+___ -+} -+$code.=<<___; -+ aes_dround01 %f56, %f0, %f2, %f8 -+ aes_dround23 %f58, %f0, %f2, %f2 -+ aes_dround01 %f56, %f4, %f6, %f10 -+ aes_dround23 %f58, %f4, %f6, %f6 -+ aes_dround01_l %f60, %f8, %f2, %f0 -+ aes_dround23_l %f62, %f8, %f2, %f2 -+ aes_dround01_l %f60, %f10, %f6, %f4 -+ retl -+ aes_dround23_l %f62, %f10, %f6, %f6 -+.type _aes192_decrypt_2x,#function -+.size _aes192_decrypt_2x,.-_aes192_decrypt_2x -+ -+.align 32 -+_aes256_encrypt_1x: -+ aes_eround01 %f16, %f0, %f2, %f4 -+ aes_eround23 %f18, %f0, %f2, %f2 -+ ldd [$key + 208], %f16 -+ ldd [$key + 216], %f18 -+ aes_eround01 %f20, %f4, %f2, %f0 -+ aes_eround23 %f22, %f4, %f2, %f2 -+ ldd [$key + 224], %f20 -+ ldd [$key + 232], %f22 -+___ -+for ($i=1; $i<6; $i++) { -+ $code.=<<___; -+ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f4 -+ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_eround01 %f`16+8*$i+4`, %f4, %f2, %f0 -+ aes_eround23 %f`16+8*$i+6`, %f4, %f2, %f2 -+___ -+} -+$code.=<<___; -+ aes_eround01 %f16, %f0, %f2, %f4 -+ aes_eround23 %f18, %f0, %f2, %f2 -+ ldd [$key + 16], %f16 -+ ldd [$key + 24], %f18 -+ aes_eround01_l %f20, %f4, %f2, %f0 -+ aes_eround23_l %f22, %f4, %f2, %f2 -+ ldd [$key + 32], %f20 -+ retl -+ ldd [$key + 40], %f22 -+.type _aes256_encrypt_1x,#function -+.size _aes256_encrypt_1x,.-_aes256_encrypt_1x -+ -+.align 32 -+_aes256_encrypt_2x: -+ aes_eround01 %f16, %f0, %f2, %f8 -+ aes_eround23 %f18, %f0, %f2, %f2 -+ aes_eround01 %f16, %f4, %f6, %f10 -+ aes_eround23 %f18, %f4, %f6, %f6 -+ ldd [$key + 208], %f16 -+ ldd [$key + 216], %f18 -+ aes_eround01 %f20, %f8, %f2, %f0 -+ aes_eround23 %f22, %f8, %f2, %f2 -+ aes_eround01 %f20, %f10, %f6, %f4 -+ aes_eround23 %f22, %f10, %f6, %f6 -+ ldd [$key + 224], %f20 -+ ldd [$key + 232], %f22 -+___ -+for ($i=1; $i<6; $i++) { -+ $code.=<<___; -+ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f8 -+ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_eround01 %f`16+8*$i+0`, %f4, %f6, %f10 -+ aes_eround23 %f`16+8*$i+2`, %f4, %f6, %f6 -+ aes_eround01 %f`16+8*$i+4`, %f8, %f2, %f0 -+ aes_eround23 %f`16+8*$i+6`, %f8, %f2, %f2 -+ aes_eround01 %f`16+8*$i+4`, %f10, %f6, %f4 -+ aes_eround23 %f`16+8*$i+6`, %f10, %f6, %f6 -+___ -+} -+$code.=<<___; -+ aes_eround01 %f16, %f0, %f2, %f8 -+ aes_eround23 %f18, %f0, %f2, %f2 -+ aes_eround01 %f16, %f4, %f6, %f10 -+ aes_eround23 %f18, %f4, %f6, %f6 -+ ldd [$key + 16], %f16 -+ ldd [$key + 24], %f18 -+ aes_eround01_l %f20, %f8, %f2, %f0 -+ aes_eround23_l %f22, %f8, %f2, %f2 -+ aes_eround01_l %f20, %f10, %f6, %f4 -+ aes_eround23_l %f22, %f10, %f6, %f6 -+ ldd [$key + 32], %f20 -+ retl -+ ldd [$key + 40], %f22 -+.type _aes256_encrypt_2x,#function -+.size _aes256_encrypt_2x,.-_aes256_encrypt_2x -+ -+.align 32 -+_aes256_decrypt_1x: -+ aes_dround01 %f16, %f0, %f2, %f4 -+ aes_dround23 %f18, %f0, %f2, %f2 -+ ldd [$key + 208], %f16 -+ ldd [$key + 216], %f18 -+ aes_dround01 %f20, %f4, %f2, %f0 -+ aes_dround23 %f22, %f4, %f2, %f2 -+ ldd [$key + 224], %f20 -+ ldd [$key + 232], %f22 -+___ -+for ($i=1; $i<6; $i++) { -+ $code.=<<___; -+ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f4 -+ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_dround01 %f`16+8*$i+4`, %f4, %f2, %f0 -+ aes_dround23 %f`16+8*$i+6`, %f4, %f2, %f2 -+___ -+} -+$code.=<<___; -+ aes_dround01 %f16, %f0, %f2, %f4 -+ aes_dround23 %f18, %f0, %f2, %f2 -+ ldd [$key + 16], %f16 -+ ldd [$key + 24], %f18 -+ aes_dround01_l %f20, %f4, %f2, %f0 -+ aes_dround23_l %f22, %f4, %f2, %f2 -+ ldd [$key + 32], %f20 -+ retl -+ ldd [$key + 40], %f22 -+.type _aes256_decrypt_1x,#function -+.size _aes256_decrypt_1x,.-_aes256_decrypt_1x -+ -+.align 32 -+_aes256_decrypt_2x: -+ aes_dround01 %f16, %f0, %f2, %f8 -+ aes_dround23 %f18, %f0, %f2, %f2 -+ aes_dround01 %f16, %f4, %f6, %f10 -+ aes_dround23 %f18, %f4, %f6, %f6 -+ ldd [$key + 208], %f16 -+ ldd [$key + 216], %f18 -+ aes_dround01 %f20, %f8, %f2, %f0 -+ aes_dround23 %f22, %f8, %f2, %f2 -+ aes_dround01 %f20, %f10, %f6, %f4 -+ aes_dround23 %f22, %f10, %f6, %f6 -+ ldd [$key + 224], %f20 -+ ldd [$key + 232], %f22 -+___ -+for ($i=1; $i<6; $i++) { -+ $code.=<<___; -+ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f8 -+ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 -+ aes_dround01 %f`16+8*$i+0`, %f4, %f6, %f10 -+ aes_dround23 %f`16+8*$i+2`, %f4, %f6, %f6 -+ aes_dround01 %f`16+8*$i+4`, %f8, %f2, %f0 -+ aes_dround23 %f`16+8*$i+6`, %f8, %f2, %f2 -+ aes_dround01 %f`16+8*$i+4`, %f10, %f6, %f4 -+ aes_dround23 %f`16+8*$i+6`, %f10, %f6, %f6 -+___ -+} -+$code.=<<___; -+ aes_dround01 %f16, %f0, %f2, %f8 -+ aes_dround23 %f18, %f0, %f2, %f2 -+ aes_dround01 %f16, %f4, %f6, %f10 -+ aes_dround23 %f18, %f4, %f6, %f6 -+ ldd [$key + 16], %f16 -+ ldd [$key + 24], %f18 -+ aes_dround01_l %f20, %f8, %f2, %f0 -+ aes_dround23_l %f22, %f8, %f2, %f2 -+ aes_dround01_l %f20, %f10, %f6, %f4 -+ aes_dround23_l %f22, %f10, %f6, %f6 -+ ldd [$key + 32], %f20 -+ retl -+ ldd [$key + 40], %f22 -+.type _aes256_decrypt_2x,#function -+.size _aes256_decrypt_2x,.-_aes256_decrypt_2x -+___ -+ -+&alg_cbc_encrypt_implement("aes",128); -+&alg_cbc_encrypt_implement("aes",192); -+&alg_cbc_encrypt_implement("aes",256); -+ -+&alg_cbc_decrypt_implement("aes",128); -+&alg_cbc_decrypt_implement("aes",192); -+&alg_cbc_decrypt_implement("aes",256); -+ -+if ($::evp) { -+ &alg_ctr32_implement("aes",128); -+ &alg_ctr32_implement("aes",192); -+ &alg_ctr32_implement("aes",256); -+} -+}}} -+ -+if (!$::evp) { -+$code.=<<___; -+.global AES_encrypt -+AES_encrypt=aes_t4_encrypt -+.global AES_decrypt -+AES_decrypt=aes_t4_decrypt -+.global AES_set_encrypt_key -+.align 32 -+AES_set_encrypt_key: -+ andcc %o2, 7, %g0 ! check alignment -+ bnz,a,pn %icc, 1f -+ mov -1, %o0 -+ brz,a,pn %o0, 1f -+ mov -1, %o0 -+ brz,a,pn %o2, 1f -+ mov -1, %o0 -+ andncc %o1, 0x1c0, %g0 -+ bnz,a,pn %icc, 1f -+ mov -2, %o0 -+ cmp %o1, 128 -+ bl,a,pn %icc, 1f -+ mov -2, %o0 -+ b aes_t4_set_encrypt_key -+ nop -+1: retl -+ nop -+.type AES_set_encrypt_key,#function -+.size AES_set_encrypt_key,.-AES_set_encrypt_key -+ -+.global AES_set_decrypt_key -+.align 32 -+AES_set_decrypt_key: -+ andcc %o2, 7, %g0 ! check alignment -+ bnz,a,pn %icc, 1f -+ mov -1, %o0 -+ brz,a,pn %o0, 1f -+ mov -1, %o0 -+ brz,a,pn %o2, 1f -+ mov -1, %o0 -+ andncc %o1, 0x1c0, %g0 -+ bnz,a,pn %icc, 1f -+ mov -2, %o0 -+ cmp %o1, 128 -+ bl,a,pn %icc, 1f -+ mov -2, %o0 -+ b aes_t4_set_decrypt_key -+ nop -+1: retl -+ nop -+.type AES_set_decrypt_key,#function -+.size AES_set_decrypt_key,.-AES_set_decrypt_key -+___ -+ -+my ($inp,$out,$len,$key,$ivec,$enc)=map("%o$_",(0..5)); -+ -+$code.=<<___; -+.globl AES_cbc_encrypt -+.align 32 -+AES_cbc_encrypt: -+ ld [$key + 240], %g1 -+ nop -+ brz $enc, .Lcbc_decrypt -+ cmp %g1, 12 -+ -+ bl,pt %icc, aes128_t4_cbc_encrypt -+ nop -+ be,pn %icc, aes192_t4_cbc_encrypt -+ nop -+ ba aes256_t4_cbc_encrypt -+ nop -+ -+.Lcbc_decrypt: -+ bl,pt %icc, aes128_t4_cbc_decrypt -+ nop -+ be,pn %icc, aes192_t4_cbc_decrypt -+ nop -+ ba aes256_t4_cbc_decrypt -+ nop -+.type AES_cbc_encrypt,#function -+.size AES_cbc_encrypt,.-AES_cbc_encrypt -+___ -+} -+$code.=<<___; -+.asciz "AES for SPARC T4, David S. Miller, Andy Polyakov" -+.align 4 -+___ -+ -+&emit_assembler(); -+ -+close STDOUT; -Index: crypto/des/asm/dest4-sparcv9.pl -=================================================================== -diff -uNr openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl ---- openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,602 @@ -+#!/usr/bin/env perl -+ -+# ==================================================================== -+# Written by David S. Miller and Andy Polyakov -+# . The module is licensed under 2-clause BSD -+# license. March 2013. All rights reserved. -+# ==================================================================== -+ -+###################################################################### -+# DES for SPARC T4. -+# -+# As with other hardware-assisted ciphers CBC encrypt results [for -+# aligned data] are virtually identical to critical path lengths: -+# -+# DES Triple-DES -+# CBC encrypt 4.14/4.15(*) 11.7/11.7 -+# CBC decrypt 1.77/4.11(**) 6.42/7.47 -+# -+# (*) numbers after slash are for -+# misaligned data; -+# (**) this is result for largest -+# block size, unlike all other -+# cases smaller blocks results -+# are better[?]; -+ -+$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; -+push(@INC,"${dir}","${dir}../../perlasm"); -+require "sparcv9_modes.pl"; -+ -+&asm_init(@ARGV); -+ -+$code.=<<___ if ($::abibits==64); -+.register %g2,#scratch -+.register %g3,#scratch -+___ -+ -+$code.=<<___; -+.text -+___ -+ -+{ my ($inp,$out)=("%o0","%o1"); -+ -+$code.=<<___; -+.align 32 -+.globl des_t4_key_expand -+.type des_t4_key_expand,#function -+des_t4_key_expand: -+ andcc $inp, 0x7, %g0 -+ alignaddr $inp, %g0, $inp -+ bz,pt %icc, 1f -+ ldd [$inp + 0x00], %f0 -+ ldd [$inp + 0x08], %f2 -+ faligndata %f0, %f2, %f0 -+1: des_kexpand %f0, 0, %f0 -+ des_kexpand %f0, 1, %f2 -+ std %f0, [$out + 0x00] -+ des_kexpand %f2, 3, %f6 -+ std %f2, [$out + 0x08] -+ des_kexpand %f2, 2, %f4 -+ des_kexpand %f6, 3, %f10 -+ std %f6, [$out + 0x18] -+ des_kexpand %f6, 2, %f8 -+ std %f4, [$out + 0x10] -+ des_kexpand %f10, 3, %f14 -+ std %f10, [$out + 0x28] -+ des_kexpand %f10, 2, %f12 -+ std %f8, [$out + 0x20] -+ des_kexpand %f14, 1, %f16 -+ std %f14, [$out + 0x38] -+ des_kexpand %f16, 3, %f20 -+ std %f12, [$out + 0x30] -+ des_kexpand %f16, 2, %f18 -+ std %f16, [$out + 0x40] -+ des_kexpand %f20, 3, %f24 -+ std %f20, [$out + 0x50] -+ des_kexpand %f20, 2, %f22 -+ std %f18, [$out + 0x48] -+ des_kexpand %f24, 3, %f28 -+ std %f24, [$out + 0x60] -+ des_kexpand %f24, 2, %f26 -+ std %f22, [$out + 0x58] -+ des_kexpand %f28, 1, %f30 -+ std %f28, [$out + 0x70] -+ std %f26, [$out + 0x68] -+ retl -+ std %f30, [$out + 0x78] -+.size des_t4_key_expand,.-des_t4_key_expand -+___ -+} -+{ my ($inp,$out,$len,$key,$ivec) = map("%o$_",(0..4)); -+ my ($ileft,$iright,$omask) = map("%g$_",(1..3)); -+ -+$code.=<<___; -+.globl des_t4_cbc_encrypt -+.align 32 -+des_t4_cbc_encrypt: -+ ld [$ivec + 0], %f0 ! load ivec -+ ld [$ivec + 4], %f1 -+ -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 0xff, $omask -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ sub %g0, $ileft, $iright -+ and $out, 7, %g4 -+ alignaddrl $out, %g0, $out -+ srl $omask, %g4, $omask -+ srlx $len, 3, $len -+ movrz %g4, 0, $omask -+ prefetch [$out], 22 -+ -+ ldd [$key + 0x00], %f4 ! load key schedule -+ ldd [$key + 0x08], %f6 -+ ldd [$key + 0x10], %f8 -+ ldd [$key + 0x18], %f10 -+ ldd [$key + 0x20], %f12 -+ ldd [$key + 0x28], %f14 -+ ldd [$key + 0x30], %f16 -+ ldd [$key + 0x38], %f18 -+ ldd [$key + 0x40], %f20 -+ ldd [$key + 0x48], %f22 -+ ldd [$key + 0x50], %f24 -+ ldd [$key + 0x58], %f26 -+ ldd [$key + 0x60], %f28 -+ ldd [$key + 0x68], %f30 -+ ldd [$key + 0x70], %f32 -+ ldd [$key + 0x78], %f34 -+ -+.Ldes_cbc_enc_loop: -+ ldx [$inp + 0], %g4 -+ brz,pt $ileft, 4f -+ nop -+ -+ ldx [$inp + 8], %g5 -+ sllx %g4, $ileft, %g4 -+ srlx %g5, $iright, %g5 -+ or %g5, %g4, %g4 -+4: -+ movxtod %g4, %f2 -+ prefetch [$inp + 8+63], 20 -+ add $inp, 8, $inp -+ fxor %f2, %f0, %f0 ! ^= ivec -+ prefetch [$out + 63], 22 -+ -+ des_ip %f0, %f0 -+ des_round %f4, %f6, %f0, %f0 -+ des_round %f8, %f10, %f0, %f0 -+ des_round %f12, %f14, %f0, %f0 -+ des_round %f16, %f18, %f0, %f0 -+ des_round %f20, %f22, %f0, %f0 -+ des_round %f24, %f26, %f0, %f0 -+ des_round %f28, %f30, %f0, %f0 -+ des_round %f32, %f34, %f0, %f0 -+ des_iip %f0, %f0 -+ -+ brnz,pn $omask, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ brnz,pt $len, .Ldes_cbc_enc_loop -+ add $out, 8, $out -+ -+ st %f0, [$ivec + 0] ! write out ivec -+ retl -+ st %f1, [$ivec + 4] -+ -+.align 16 -+2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard -+ ! and ~4x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f2 ! handle unaligned output -+ -+ stda %f2, [$out + $omask]0xc0 ! partial store -+ add $out, 8, $out -+ orn %g0, $omask, $omask -+ stda %f2, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .Ldes_cbc_enc_loop+4 -+ orn %g0, $omask, $omask -+ -+ st %f0, [$ivec + 0] ! write out ivec -+ retl -+ st %f1, [$ivec + 4] -+.type des_t4_cbc_encrypt,#function -+.size des_t4_cbc_encrypt,.-des_t4_cbc_encrypt -+ -+.globl des_t4_cbc_decrypt -+.align 32 -+des_t4_cbc_decrypt: -+ ld [$ivec + 0], %f2 ! load ivec -+ ld [$ivec + 4], %f3 -+ -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 0xff, $omask -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ sub %g0, $ileft, $iright -+ and $out, 7, %g4 -+ alignaddrl $out, %g0, $out -+ srl $omask, %g4, $omask -+ srlx $len, 3, $len -+ movrz %g4, 0, $omask -+ prefetch [$out], 22 -+ -+ ldd [$key + 0x78], %f4 ! load key schedule -+ ldd [$key + 0x70], %f6 -+ ldd [$key + 0x68], %f8 -+ ldd [$key + 0x60], %f10 -+ ldd [$key + 0x58], %f12 -+ ldd [$key + 0x50], %f14 -+ ldd [$key + 0x48], %f16 -+ ldd [$key + 0x40], %f18 -+ ldd [$key + 0x38], %f20 -+ ldd [$key + 0x30], %f22 -+ ldd [$key + 0x28], %f24 -+ ldd [$key + 0x20], %f26 -+ ldd [$key + 0x18], %f28 -+ ldd [$key + 0x10], %f30 -+ ldd [$key + 0x08], %f32 -+ ldd [$key + 0x00], %f34 -+ -+.Ldes_cbc_dec_loop: -+ ldx [$inp + 0], %g4 -+ brz,pt $ileft, 4f -+ nop -+ -+ ldx [$inp + 8], %g5 -+ sllx %g4, $ileft, %g4 -+ srlx %g5, $iright, %g5 -+ or %g5, %g4, %g4 -+4: -+ movxtod %g4, %f0 -+ prefetch [$inp + 8+63], 20 -+ add $inp, 8, $inp -+ prefetch [$out + 63], 22 -+ -+ des_ip %f0, %f0 -+ des_round %f4, %f6, %f0, %f0 -+ des_round %f8, %f10, %f0, %f0 -+ des_round %f12, %f14, %f0, %f0 -+ des_round %f16, %f18, %f0, %f0 -+ des_round %f20, %f22, %f0, %f0 -+ des_round %f24, %f26, %f0, %f0 -+ des_round %f28, %f30, %f0, %f0 -+ des_round %f32, %f34, %f0, %f0 -+ des_iip %f0, %f0 -+ -+ fxor %f2, %f0, %f0 ! ^= ivec -+ movxtod %g4, %f2 -+ -+ brnz,pn $omask, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ brnz,pt $len, .Ldes_cbc_dec_loop -+ add $out, 8, $out -+ -+ st %f2, [$ivec + 0] ! write out ivec -+ retl -+ st %f3, [$ivec + 4] -+ -+.align 16 -+2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard -+ ! and ~4x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f0 ! handle unaligned output -+ -+ stda %f0, [$out + $omask]0xc0 ! partial store -+ add $out, 8, $out -+ orn %g0, $omask, $omask -+ stda %f0, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .Ldes_cbc_dec_loop+4 -+ orn %g0, $omask, $omask -+ -+ st %f2, [$ivec + 0] ! write out ivec -+ retl -+ st %f3, [$ivec + 4] -+.type des_t4_cbc_decrypt,#function -+.size des_t4_cbc_decrypt,.-des_t4_cbc_decrypt -+___ -+ -+# One might wonder why does one have back-to-back des_iip/des_ip -+# pairs between EDE passes. Indeed, aren't they inverse of each other? -+# They almost are. Outcome of the pair is 32-bit words being swapped -+# in target register. Consider pair of des_iip/des_ip as a way to -+# perform the due swap, it's actually fastest way in this case. -+ -+$code.=<<___; -+.globl des_t4_ede3_cbc_encrypt -+.align 32 -+des_t4_ede3_cbc_encrypt: -+ ld [$ivec + 0], %f0 ! load ivec -+ ld [$ivec + 4], %f1 -+ -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 0xff, $omask -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ sub %g0, $ileft, $iright -+ and $out, 7, %g4 -+ alignaddrl $out, %g0, $out -+ srl $omask, %g4, $omask -+ srlx $len, 3, $len -+ movrz %g4, 0, $omask -+ prefetch [$out], 22 -+ -+ ldd [$key + 0x00], %f4 ! load key schedule -+ ldd [$key + 0x08], %f6 -+ ldd [$key + 0x10], %f8 -+ ldd [$key + 0x18], %f10 -+ ldd [$key + 0x20], %f12 -+ ldd [$key + 0x28], %f14 -+ ldd [$key + 0x30], %f16 -+ ldd [$key + 0x38], %f18 -+ ldd [$key + 0x40], %f20 -+ ldd [$key + 0x48], %f22 -+ ldd [$key + 0x50], %f24 -+ ldd [$key + 0x58], %f26 -+ ldd [$key + 0x60], %f28 -+ ldd [$key + 0x68], %f30 -+ ldd [$key + 0x70], %f32 -+ ldd [$key + 0x78], %f34 -+ -+.Ldes_ede3_cbc_enc_loop: -+ ldx [$inp + 0], %g4 -+ brz,pt $ileft, 4f -+ nop -+ -+ ldx [$inp + 8], %g5 -+ sllx %g4, $ileft, %g4 -+ srlx %g5, $iright, %g5 -+ or %g5, %g4, %g4 -+4: -+ movxtod %g4, %f2 -+ prefetch [$inp + 8+63], 20 -+ add $inp, 8, $inp -+ fxor %f2, %f0, %f0 ! ^= ivec -+ prefetch [$out + 63], 22 -+ -+ des_ip %f0, %f0 -+ des_round %f4, %f6, %f0, %f0 -+ des_round %f8, %f10, %f0, %f0 -+ des_round %f12, %f14, %f0, %f0 -+ des_round %f16, %f18, %f0, %f0 -+ ldd [$key + 0x100-0x08], %f36 -+ ldd [$key + 0x100-0x10], %f38 -+ des_round %f20, %f22, %f0, %f0 -+ ldd [$key + 0x100-0x18], %f40 -+ ldd [$key + 0x100-0x20], %f42 -+ des_round %f24, %f26, %f0, %f0 -+ ldd [$key + 0x100-0x28], %f44 -+ ldd [$key + 0x100-0x30], %f46 -+ des_round %f28, %f30, %f0, %f0 -+ ldd [$key + 0x100-0x38], %f48 -+ ldd [$key + 0x100-0x40], %f50 -+ des_round %f32, %f34, %f0, %f0 -+ ldd [$key + 0x100-0x48], %f52 -+ ldd [$key + 0x100-0x50], %f54 -+ des_iip %f0, %f0 -+ -+ ldd [$key + 0x100-0x58], %f56 -+ ldd [$key + 0x100-0x60], %f58 -+ des_ip %f0, %f0 -+ ldd [$key + 0x100-0x68], %f60 -+ ldd [$key + 0x100-0x70], %f62 -+ des_round %f36, %f38, %f0, %f0 -+ ldd [$key + 0x100-0x78], %f36 -+ ldd [$key + 0x100-0x80], %f38 -+ des_round %f40, %f42, %f0, %f0 -+ des_round %f44, %f46, %f0, %f0 -+ des_round %f48, %f50, %f0, %f0 -+ ldd [$key + 0x100+0x00], %f40 -+ ldd [$key + 0x100+0x08], %f42 -+ des_round %f52, %f54, %f0, %f0 -+ ldd [$key + 0x100+0x10], %f44 -+ ldd [$key + 0x100+0x18], %f46 -+ des_round %f56, %f58, %f0, %f0 -+ ldd [$key + 0x100+0x20], %f48 -+ ldd [$key + 0x100+0x28], %f50 -+ des_round %f60, %f62, %f0, %f0 -+ ldd [$key + 0x100+0x30], %f52 -+ ldd [$key + 0x100+0x38], %f54 -+ des_round %f36, %f38, %f0, %f0 -+ ldd [$key + 0x100+0x40], %f56 -+ ldd [$key + 0x100+0x48], %f58 -+ des_iip %f0, %f0 -+ -+ ldd [$key + 0x100+0x50], %f60 -+ ldd [$key + 0x100+0x58], %f62 -+ des_ip %f0, %f0 -+ ldd [$key + 0x100+0x60], %f36 -+ ldd [$key + 0x100+0x68], %f38 -+ des_round %f40, %f42, %f0, %f0 -+ ldd [$key + 0x100+0x70], %f40 -+ ldd [$key + 0x100+0x78], %f42 -+ des_round %f44, %f46, %f0, %f0 -+ des_round %f48, %f50, %f0, %f0 -+ des_round %f52, %f54, %f0, %f0 -+ des_round %f56, %f58, %f0, %f0 -+ des_round %f60, %f62, %f0, %f0 -+ des_round %f36, %f38, %f0, %f0 -+ des_round %f40, %f42, %f0, %f0 -+ des_iip %f0, %f0 -+ -+ brnz,pn $omask, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ brnz,pt $len, .Ldes_ede3_cbc_enc_loop -+ add $out, 8, $out -+ -+ st %f0, [$ivec + 0] ! write out ivec -+ retl -+ st %f1, [$ivec + 4] -+ -+.align 16 -+2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard -+ ! and ~2x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f2 ! handle unaligned output -+ -+ stda %f2, [$out + $omask]0xc0 ! partial store -+ add $out, 8, $out -+ orn %g0, $omask, $omask -+ stda %f2, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .Ldes_ede3_cbc_enc_loop+4 -+ orn %g0, $omask, $omask -+ -+ st %f0, [$ivec + 0] ! write out ivec -+ retl -+ st %f1, [$ivec + 4] -+.type des_t4_ede3_cbc_encrypt,#function -+.size des_t4_ede3_cbc_encrypt,.-des_t4_ede3_cbc_encrypt -+ -+.globl des_t4_ede3_cbc_decrypt -+.align 32 -+des_t4_ede3_cbc_decrypt: -+ ld [$ivec + 0], %f2 ! load ivec -+ ld [$ivec + 4], %f3 -+ -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 0xff, $omask -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ sub %g0, $ileft, $iright -+ and $out, 7, %g4 -+ alignaddrl $out, %g0, $out -+ srl $omask, %g4, $omask -+ srlx $len, 3, $len -+ movrz %g4, 0, $omask -+ prefetch [$out], 22 -+ -+ ldd [$key + 0x100+0x78], %f4 ! load key schedule -+ ldd [$key + 0x100+0x70], %f6 -+ ldd [$key + 0x100+0x68], %f8 -+ ldd [$key + 0x100+0x60], %f10 -+ ldd [$key + 0x100+0x58], %f12 -+ ldd [$key + 0x100+0x50], %f14 -+ ldd [$key + 0x100+0x48], %f16 -+ ldd [$key + 0x100+0x40], %f18 -+ ldd [$key + 0x100+0x38], %f20 -+ ldd [$key + 0x100+0x30], %f22 -+ ldd [$key + 0x100+0x28], %f24 -+ ldd [$key + 0x100+0x20], %f26 -+ ldd [$key + 0x100+0x18], %f28 -+ ldd [$key + 0x100+0x10], %f30 -+ ldd [$key + 0x100+0x08], %f32 -+ ldd [$key + 0x100+0x00], %f34 -+ -+.Ldes_ede3_cbc_dec_loop: -+ ldx [$inp + 0], %g4 -+ brz,pt $ileft, 4f -+ nop -+ -+ ldx [$inp + 8], %g5 -+ sllx %g4, $ileft, %g4 -+ srlx %g5, $iright, %g5 -+ or %g5, %g4, %g4 -+4: -+ movxtod %g4, %f0 -+ prefetch [$inp + 8+63], 20 -+ add $inp, 8, $inp -+ prefetch [$out + 63], 22 -+ -+ des_ip %f0, %f0 -+ des_round %f4, %f6, %f0, %f0 -+ des_round %f8, %f10, %f0, %f0 -+ des_round %f12, %f14, %f0, %f0 -+ des_round %f16, %f18, %f0, %f0 -+ ldd [$key + 0x80+0x00], %f36 -+ ldd [$key + 0x80+0x08], %f38 -+ des_round %f20, %f22, %f0, %f0 -+ ldd [$key + 0x80+0x10], %f40 -+ ldd [$key + 0x80+0x18], %f42 -+ des_round %f24, %f26, %f0, %f0 -+ ldd [$key + 0x80+0x20], %f44 -+ ldd [$key + 0x80+0x28], %f46 -+ des_round %f28, %f30, %f0, %f0 -+ ldd [$key + 0x80+0x30], %f48 -+ ldd [$key + 0x80+0x38], %f50 -+ des_round %f32, %f34, %f0, %f0 -+ ldd [$key + 0x80+0x40], %f52 -+ ldd [$key + 0x80+0x48], %f54 -+ des_iip %f0, %f0 -+ -+ ldd [$key + 0x80+0x50], %f56 -+ ldd [$key + 0x80+0x58], %f58 -+ des_ip %f0, %f0 -+ ldd [$key + 0x80+0x60], %f60 -+ ldd [$key + 0x80+0x68], %f62 -+ des_round %f36, %f38, %f0, %f0 -+ ldd [$key + 0x80+0x70], %f36 -+ ldd [$key + 0x80+0x78], %f38 -+ des_round %f40, %f42, %f0, %f0 -+ des_round %f44, %f46, %f0, %f0 -+ des_round %f48, %f50, %f0, %f0 -+ ldd [$key + 0x80-0x08], %f40 -+ ldd [$key + 0x80-0x10], %f42 -+ des_round %f52, %f54, %f0, %f0 -+ ldd [$key + 0x80-0x18], %f44 -+ ldd [$key + 0x80-0x20], %f46 -+ des_round %f56, %f58, %f0, %f0 -+ ldd [$key + 0x80-0x28], %f48 -+ ldd [$key + 0x80-0x30], %f50 -+ des_round %f60, %f62, %f0, %f0 -+ ldd [$key + 0x80-0x38], %f52 -+ ldd [$key + 0x80-0x40], %f54 -+ des_round %f36, %f38, %f0, %f0 -+ ldd [$key + 0x80-0x48], %f56 -+ ldd [$key + 0x80-0x50], %f58 -+ des_iip %f0, %f0 -+ -+ ldd [$key + 0x80-0x58], %f60 -+ ldd [$key + 0x80-0x60], %f62 -+ des_ip %f0, %f0 -+ ldd [$key + 0x80-0x68], %f36 -+ ldd [$key + 0x80-0x70], %f38 -+ des_round %f40, %f42, %f0, %f0 -+ ldd [$key + 0x80-0x78], %f40 -+ ldd [$key + 0x80-0x80], %f42 -+ des_round %f44, %f46, %f0, %f0 -+ des_round %f48, %f50, %f0, %f0 -+ des_round %f52, %f54, %f0, %f0 -+ des_round %f56, %f58, %f0, %f0 -+ des_round %f60, %f62, %f0, %f0 -+ des_round %f36, %f38, %f0, %f0 -+ des_round %f40, %f42, %f0, %f0 -+ des_iip %f0, %f0 -+ -+ fxor %f2, %f0, %f0 ! ^= ivec -+ movxtod %g4, %f2 -+ -+ brnz,pn $omask, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ brnz,pt $len, .Ldes_ede3_cbc_dec_loop -+ add $out, 8, $out -+ -+ st %f2, [$ivec + 0] ! write out ivec -+ retl -+ st %f3, [$ivec + 4] -+ -+.align 16 -+2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f0 ! handle unaligned output -+ -+ stda %f0, [$out + $omask]0xc0 ! partial store -+ add $out, 8, $out -+ orn %g0, $omask, $omask -+ stda %f0, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .Ldes_ede3_cbc_dec_loop+4 -+ orn %g0, $omask, $omask -+ -+ st %f2, [$ivec + 0] ! write out ivec -+ retl -+ st %f3, [$ivec + 4] -+.type des_t4_ede3_cbc_decrypt,#function -+.size des_t4_ede3_cbc_decrypt,.-des_t4_ede3_cbc_decrypt -+___ -+} -+$code.=<<___; -+.asciz "DES for SPARC T4, David S. Miller, Andy Polyakov" -+.align 4 -+___ -+ -+&emit_assembler(); -+ -+close STDOUT; -Index: crypto/perlasm/sparcv9_modes.pl -=================================================================== -diff -uNr openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl ---- openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 2015-03-21 16:27:38.578043100 +0100 -@@ -0,0 +1,1680 @@ -+#!/usr/bin/env perl -+ -+# Specific modes implementations for SPARC Architecture 2011. There -+# is T4 dependency though, an ASI value that is not specified in the -+# Architecture Manual. But as SPARC universe is rather monocultural, -+# we imply that processor capable of executing crypto instructions -+# can handle the ASI in question as well. This means that we ought to -+# keep eyes open when new processors emerge... -+# -+# As for above mentioned ASI. It's so called "block initializing -+# store" which cancels "read" in "read-update-write" on cache lines. -+# This is "cooperative" optimization, as it reduces overall pressure -+# on memory interface. Benefits can't be observed/quantified with -+# usual benchmarks, on the contrary you can notice that single-thread -+# performance for parallelizable modes is ~1.5% worse for largest -+# block sizes [though few percent better for not so long ones]. All -+# this based on suggestions from David Miller. -+ -+sub asm_init { # to be called with @ARGV as argument -+ for (@_) { $::abibits=64 if (/\-m64/ || /\-xarch\=v9/); } -+ if ($::abibits==64) { $::bias=2047; $::frame=192; $::size_t_cc="%xcc"; } -+ else { $::bias=0; $::frame=112; $::size_t_cc="%icc"; } -+} -+ -+# unified interface -+my ($inp,$out,$len,$key,$ivec)=map("%i$_",(0..5)); -+# local variables -+my ($ileft,$iright,$ooff,$omask,$ivoff,$blk_init)=map("%l$_",(0..7)); -+ -+sub alg_cbc_encrypt_implement { -+my ($alg,$bits) = @_; -+ -+$::code.=<<___; -+.globl ${alg}${bits}_t4_cbc_encrypt -+.align 32 -+${alg}${bits}_t4_cbc_encrypt: -+ save %sp, -$::frame, %sp -+ sub $inp, $out, $blk_init ! $inp!=$out -+___ -+$::code.=<<___ if (!$::evp); -+ andcc $ivec, 7, $ivoff -+ alignaddr $ivec, %g0, $ivec -+ -+ ldd [$ivec + 0], %f0 ! load ivec -+ bz,pt %icc, 1f -+ ldd [$ivec + 8], %f2 -+ ldd [$ivec + 16], %f4 -+ faligndata %f0, %f2, %f0 -+ faligndata %f2, %f4, %f2 -+1: -+___ -+$::code.=<<___ if ($::evp); -+ ld [$ivec + 0], %f0 -+ ld [$ivec + 4], %f1 -+ ld [$ivec + 8], %f2 -+ ld [$ivec + 12], %f3 -+___ -+$::code.=<<___; -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ call _${alg}${bits}_load_enckey -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 64, $iright -+ mov 0xff, $omask -+ sub $iright, $ileft, $iright -+ and $out, 7, $ooff -+ cmp $len, 127 -+ movrnz $ooff, 0, $blk_init ! if ( $out&7 || -+ movleu $::size_t_cc, 0, $blk_init ! $len<128 || -+ brnz,pn $blk_init, .L${bits}cbc_enc_blk ! $inp==$out) -+ srl $omask, $ooff, $omask -+ -+ alignaddrl $out, %g0, $out -+ srlx $len, 4, $len -+ prefetch [$out], 22 -+ -+.L${bits}_cbc_enc_loop: -+ ldx [$inp + 0], %o0 -+ brz,pt $ileft, 4f -+ ldx [$inp + 8], %o1 -+ -+ ldx [$inp + 16], %o2 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ sllx %o1, $ileft, %o1 -+ or %g1, %o0, %o0 -+ srlx %o2, $iright, %o2 -+ or %o2, %o1, %o1 -+4: -+ xor %g4, %o0, %o0 ! ^= rk[0] -+ xor %g5, %o1, %o1 -+ movxtod %o0, %f12 -+ movxtod %o1, %f14 -+ -+ fxor %f12, %f0, %f0 ! ^= ivec -+ fxor %f14, %f2, %f2 -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 16+63], 20 -+ call _${alg}${bits}_encrypt_1x -+ add $inp, 16, $inp -+ -+ brnz,pn $ooff, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ brnz,pt $len, .L${bits}_cbc_enc_loop -+ add $out, 16, $out -+___ -+$::code.=<<___ if ($::evp); -+ st %f0, [$ivec + 0] -+ st %f1, [$ivec + 4] -+ st %f2, [$ivec + 8] -+ st %f3, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, 3f -+ nop -+ -+ std %f0, [$ivec + 0] ! write out ivec -+ std %f2, [$ivec + 8] -+___ -+$::code.=<<___; -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f4 ! handle unaligned output -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ -+ stda %f4, [$out + $omask]0xc0 ! partial store -+ std %f6, [$out + 8] -+ add $out, 16, $out -+ orn %g0, $omask, $omask -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_cbc_enc_loop+4 -+ orn %g0, $omask, $omask -+___ -+$::code.=<<___ if ($::evp); -+ st %f0, [$ivec + 0] -+ st %f1, [$ivec + 4] -+ st %f2, [$ivec + 8] -+ st %f3, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, 3f -+ nop -+ -+ std %f0, [$ivec + 0] ! write out ivec -+ std %f2, [$ivec + 8] -+ ret -+ restore -+ -+.align 16 -+3: alignaddrl $ivec, $ivoff, %g0 ! handle unaligned ivec -+ mov 0xff, $omask -+ srl $omask, $ivoff, $omask -+ faligndata %f0, %f0, %f4 -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ stda %f4, [$ivec + $omask]0xc0 -+ std %f6, [$ivec + 8] -+ add $ivec, 16, $ivec -+ orn %g0, $omask, $omask -+ stda %f8, [$ivec + $omask]0xc0 -+___ -+$::code.=<<___; -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}cbc_enc_blk: -+ add $out, $len, $blk_init -+ and $blk_init, 63, $blk_init ! tail -+ sub $len, $blk_init, $len -+ add $blk_init, 15, $blk_init ! round up to 16n -+ srlx $len, 4, $len -+ srl $blk_init, 4, $blk_init -+ -+.L${bits}_cbc_enc_blk_loop: -+ ldx [$inp + 0], %o0 -+ brz,pt $ileft, 5f -+ ldx [$inp + 8], %o1 -+ -+ ldx [$inp + 16], %o2 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ sllx %o1, $ileft, %o1 -+ or %g1, %o0, %o0 -+ srlx %o2, $iright, %o2 -+ or %o2, %o1, %o1 -+5: -+ xor %g4, %o0, %o0 ! ^= rk[0] -+ xor %g5, %o1, %o1 -+ movxtod %o0, %f12 -+ movxtod %o1, %f14 -+ -+ fxor %f12, %f0, %f0 ! ^= ivec -+ fxor %f14, %f2, %f2 -+ prefetch [$inp + 16+63], 20 -+ call _${alg}${bits}_encrypt_1x -+ add $inp, 16, $inp -+ sub $len, 1, $len -+ -+ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ brnz,pt $len, .L${bits}_cbc_enc_blk_loop -+ add $out, 8, $out -+ -+ membar #StoreLoad|#StoreStore -+ brnz,pt $blk_init, .L${bits}_cbc_enc_loop -+ mov $blk_init, $len -+___ -+$::code.=<<___ if ($::evp); -+ st %f0, [$ivec + 0] -+ st %f1, [$ivec + 4] -+ st %f2, [$ivec + 8] -+ st %f3, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, 3b -+ nop -+ -+ std %f0, [$ivec + 0] ! write out ivec -+ std %f2, [$ivec + 8] -+___ -+$::code.=<<___; -+ ret -+ restore -+.type ${alg}${bits}_t4_cbc_encrypt,#function -+.size ${alg}${bits}_t4_cbc_encrypt,.-${alg}${bits}_t4_cbc_encrypt -+___ -+} -+ -+sub alg_cbc_decrypt_implement { -+my ($alg,$bits) = @_; -+ -+$::code.=<<___; -+.globl ${alg}${bits}_t4_cbc_decrypt -+.align 32 -+${alg}${bits}_t4_cbc_decrypt: -+ save %sp, -$::frame, %sp -+ sub $inp, $out, $blk_init ! $inp!=$out -+___ -+$::code.=<<___ if (!$::evp); -+ andcc $ivec, 7, $ivoff -+ alignaddr $ivec, %g0, $ivec -+ -+ ldd [$ivec + 0], %f12 ! load ivec -+ bz,pt %icc, 1f -+ ldd [$ivec + 8], %f14 -+ ldd [$ivec + 16], %f0 -+ faligndata %f12, %f14, %f12 -+ faligndata %f14, %f0, %f14 -+1: -+___ -+$::code.=<<___ if ($::evp); -+ ld [$ivec + 0], %f12 ! load ivec -+ ld [$ivec + 4], %f13 -+ ld [$ivec + 8], %f14 -+ ld [$ivec + 12], %f15 -+___ -+$::code.=<<___; -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ call _${alg}${bits}_load_deckey -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 64, $iright -+ mov 0xff, $omask -+ sub $iright, $ileft, $iright -+ and $out, 7, $ooff -+ cmp $len, 255 -+ movrnz $ooff, 0, $blk_init ! if ( $out&7 || -+ movleu $::size_t_cc, 0, $blk_init ! $len<256 || -+ brnz,pn $blk_init, .L${bits}cbc_dec_blk ! $inp==$out) -+ srl $omask, $ooff, $omask -+ -+ andcc $len, 16, %g0 ! is number of blocks even? -+ srlx $len, 4, $len -+ alignaddrl $out, %g0, $out -+ bz %icc, .L${bits}_cbc_dec_loop2x -+ prefetch [$out], 22 -+.L${bits}_cbc_dec_loop: -+ ldx [$inp + 0], %o0 -+ brz,pt $ileft, 4f -+ ldx [$inp + 8], %o1 -+ -+ ldx [$inp + 16], %o2 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ sllx %o1, $ileft, %o1 -+ or %g1, %o0, %o0 -+ srlx %o2, $iright, %o2 -+ or %o2, %o1, %o1 -+4: -+ xor %g4, %o0, %o2 ! ^= rk[0] -+ xor %g5, %o1, %o3 -+ movxtod %o2, %f0 -+ movxtod %o3, %f2 -+ -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 16+63], 20 -+ call _${alg}${bits}_decrypt_1x -+ add $inp, 16, $inp -+ -+ fxor %f12, %f0, %f0 ! ^= ivec -+ fxor %f14, %f2, %f2 -+ movxtod %o0, %f12 -+ movxtod %o1, %f14 -+ -+ brnz,pn $ooff, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ brnz,pt $len, .L${bits}_cbc_dec_loop2x -+ add $out, 16, $out -+___ -+$::code.=<<___ if ($::evp); -+ st %f12, [$ivec + 0] -+ st %f13, [$ivec + 4] -+ st %f14, [$ivec + 8] -+ st %f15, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec -+ nop -+ -+ std %f12, [$ivec + 0] ! write out ivec -+ std %f14, [$ivec + 8] -+___ -+$::code.=<<___; -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f4 ! handle unaligned output -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ -+ stda %f4, [$out + $omask]0xc0 ! partial store -+ std %f6, [$out + 8] -+ add $out, 16, $out -+ orn %g0, $omask, $omask -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_cbc_dec_loop2x+4 -+ orn %g0, $omask, $omask -+___ -+$::code.=<<___ if ($::evp); -+ st %f12, [$ivec + 0] -+ st %f13, [$ivec + 4] -+ st %f14, [$ivec + 8] -+ st %f15, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec -+ nop -+ -+ std %f12, [$ivec + 0] ! write out ivec -+ std %f14, [$ivec + 8] -+___ -+$::code.=<<___; -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}_cbc_dec_loop2x: -+ ldx [$inp + 0], %o0 -+ ldx [$inp + 8], %o1 -+ ldx [$inp + 16], %o2 -+ brz,pt $ileft, 4f -+ ldx [$inp + 24], %o3 -+ -+ ldx [$inp + 32], %o4 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ or %g1, %o0, %o0 -+ sllx %o1, $ileft, %o1 -+ srlx %o2, $iright, %g1 -+ or %g1, %o1, %o1 -+ sllx %o2, $ileft, %o2 -+ srlx %o3, $iright, %g1 -+ or %g1, %o2, %o2 -+ sllx %o3, $ileft, %o3 -+ srlx %o4, $iright, %o4 -+ or %o4, %o3, %o3 -+4: -+ xor %g4, %o0, %o4 ! ^= rk[0] -+ xor %g5, %o1, %o5 -+ movxtod %o4, %f0 -+ movxtod %o5, %f2 -+ xor %g4, %o2, %o4 -+ xor %g5, %o3, %o5 -+ movxtod %o4, %f4 -+ movxtod %o5, %f6 -+ -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 32+63], 20 -+ call _${alg}${bits}_decrypt_2x -+ add $inp, 32, $inp -+ -+ movxtod %o0, %f8 -+ movxtod %o1, %f10 -+ fxor %f12, %f0, %f0 ! ^= ivec -+ fxor %f14, %f2, %f2 -+ movxtod %o2, %f12 -+ movxtod %o3, %f14 -+ fxor %f8, %f4, %f4 -+ fxor %f10, %f6, %f6 -+ -+ brnz,pn $ooff, 2f -+ sub $len, 2, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ std %f4, [$out + 16] -+ std %f6, [$out + 24] -+ brnz,pt $len, .L${bits}_cbc_dec_loop2x -+ add $out, 32, $out -+___ -+$::code.=<<___ if ($::evp); -+ st %f12, [$ivec + 0] -+ st %f13, [$ivec + 4] -+ st %f14, [$ivec + 8] -+ st %f15, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec -+ nop -+ -+ std %f12, [$ivec + 0] ! write out ivec -+ std %f14, [$ivec + 8] -+___ -+$::code.=<<___; -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f8 ! handle unaligned output -+ faligndata %f0, %f2, %f0 -+ faligndata %f2, %f4, %f2 -+ faligndata %f4, %f6, %f4 -+ faligndata %f6, %f6, %f6 -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ std %f0, [$out + 8] -+ std %f2, [$out + 16] -+ std %f4, [$out + 24] -+ add $out, 32, $out -+ orn %g0, $omask, $omask -+ stda %f6, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_cbc_dec_loop2x+4 -+ orn %g0, $omask, $omask -+___ -+$::code.=<<___ if ($::evp); -+ st %f12, [$ivec + 0] -+ st %f13, [$ivec + 4] -+ st %f14, [$ivec + 8] -+ st %f15, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec -+ nop -+ -+ std %f12, [$ivec + 0] ! write out ivec -+ std %f14, [$ivec + 8] -+ ret -+ restore -+ -+.align 16 -+.L${bits}_cbc_dec_unaligned_ivec: -+ alignaddrl $ivec, $ivoff, %g0 ! handle unaligned ivec -+ mov 0xff, $omask -+ srl $omask, $ivoff, $omask -+ faligndata %f12, %f12, %f0 -+ faligndata %f12, %f14, %f2 -+ faligndata %f14, %f14, %f4 -+ stda %f0, [$ivec + $omask]0xc0 -+ std %f2, [$ivec + 8] -+ add $ivec, 16, $ivec -+ orn %g0, $omask, $omask -+ stda %f4, [$ivec + $omask]0xc0 -+___ -+$::code.=<<___; -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}cbc_dec_blk: -+ add $out, $len, $blk_init -+ and $blk_init, 63, $blk_init ! tail -+ sub $len, $blk_init, $len -+ add $blk_init, 15, $blk_init ! round up to 16n -+ srlx $len, 4, $len -+ srl $blk_init, 4, $blk_init -+ sub $len, 1, $len -+ add $blk_init, 1, $blk_init -+ -+.L${bits}_cbc_dec_blk_loop2x: -+ ldx [$inp + 0], %o0 -+ ldx [$inp + 8], %o1 -+ ldx [$inp + 16], %o2 -+ brz,pt $ileft, 5f -+ ldx [$inp + 24], %o3 -+ -+ ldx [$inp + 32], %o4 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ or %g1, %o0, %o0 -+ sllx %o1, $ileft, %o1 -+ srlx %o2, $iright, %g1 -+ or %g1, %o1, %o1 -+ sllx %o2, $ileft, %o2 -+ srlx %o3, $iright, %g1 -+ or %g1, %o2, %o2 -+ sllx %o3, $ileft, %o3 -+ srlx %o4, $iright, %o4 -+ or %o4, %o3, %o3 -+5: -+ xor %g4, %o0, %o4 ! ^= rk[0] -+ xor %g5, %o1, %o5 -+ movxtod %o4, %f0 -+ movxtod %o5, %f2 -+ xor %g4, %o2, %o4 -+ xor %g5, %o3, %o5 -+ movxtod %o4, %f4 -+ movxtod %o5, %f6 -+ -+ prefetch [$inp + 32+63], 20 -+ call _${alg}${bits}_decrypt_2x -+ add $inp, 32, $inp -+ subcc $len, 2, $len -+ -+ movxtod %o0, %f8 -+ movxtod %o1, %f10 -+ fxor %f12, %f0, %f0 ! ^= ivec -+ fxor %f14, %f2, %f2 -+ movxtod %o2, %f12 -+ movxtod %o3, %f14 -+ fxor %f8, %f4, %f4 -+ fxor %f10, %f6, %f6 -+ -+ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f4, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f6, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ bgu,pt $::size_t_cc, .L${bits}_cbc_dec_blk_loop2x -+ add $out, 8, $out -+ -+ add $blk_init, $len, $len -+ andcc $len, 1, %g0 ! is number of blocks even? -+ membar #StoreLoad|#StoreStore -+ bnz,pt %icc, .L${bits}_cbc_dec_loop -+ srl $len, 0, $len -+ brnz,pn $len, .L${bits}_cbc_dec_loop2x -+ nop -+___ -+$::code.=<<___ if ($::evp); -+ st %f12, [$ivec + 0] ! write out ivec -+ st %f13, [$ivec + 4] -+ st %f14, [$ivec + 8] -+ st %f15, [$ivec + 12] -+___ -+$::code.=<<___ if (!$::evp); -+ brnz,pn $ivoff, 3b -+ nop -+ -+ std %f12, [$ivec + 0] ! write out ivec -+ std %f14, [$ivec + 8] -+___ -+$::code.=<<___; -+ ret -+ restore -+.type ${alg}${bits}_t4_cbc_decrypt,#function -+.size ${alg}${bits}_t4_cbc_decrypt,.-${alg}${bits}_t4_cbc_decrypt -+___ -+} -+ -+sub alg_ctr32_implement { -+my ($alg,$bits) = @_; -+ -+$::code.=<<___; -+.globl ${alg}${bits}_t4_ctr32_encrypt -+.align 32 -+${alg}${bits}_t4_ctr32_encrypt: -+ save %sp, -$::frame, %sp -+ -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ call _${alg}${bits}_load_enckey -+ sllx $len, 4, $len -+ -+ ld [$ivec + 0], %l4 ! counter -+ ld [$ivec + 4], %l5 -+ ld [$ivec + 8], %l6 -+ ld [$ivec + 12], %l7 -+ -+ sllx %l4, 32, %o5 -+ or %l5, %o5, %o5 -+ sllx %l6, 32, %g1 -+ xor %o5, %g4, %g4 ! ^= rk[0] -+ xor %g1, %g5, %g5 -+ movxtod %g4, %f14 ! most significant 64 bits -+ -+ sub $inp, $out, $blk_init ! $inp!=$out -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 64, $iright -+ mov 0xff, $omask -+ sub $iright, $ileft, $iright -+ and $out, 7, $ooff -+ cmp $len, 255 -+ movrnz $ooff, 0, $blk_init ! if ( $out&7 || -+ movleu $::size_t_cc, 0, $blk_init ! $len<256 || -+ brnz,pn $blk_init, .L${bits}_ctr32_blk ! $inp==$out) -+ srl $omask, $ooff, $omask -+ -+ andcc $len, 16, %g0 ! is number of blocks even? -+ alignaddrl $out, %g0, $out -+ bz %icc, .L${bits}_ctr32_loop2x -+ srlx $len, 4, $len -+.L${bits}_ctr32_loop: -+ ldx [$inp + 0], %o0 -+ brz,pt $ileft, 4f -+ ldx [$inp + 8], %o1 -+ -+ ldx [$inp + 16], %o2 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ sllx %o1, $ileft, %o1 -+ or %g1, %o0, %o0 -+ srlx %o2, $iright, %o2 -+ or %o2, %o1, %o1 -+4: -+ xor %g5, %l7, %g1 ! ^= rk[0] -+ add %l7, 1, %l7 -+ movxtod %g1, %f2 -+ srl %l7, 0, %l7 ! clruw -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 16+63], 20 -+___ -+$::code.=<<___ if ($alg eq "aes"); -+ aes_eround01 %f16, %f14, %f2, %f4 -+ aes_eround23 %f18, %f14, %f2, %f2 -+___ -+$::code.=<<___ if ($alg eq "cmll"); -+ camellia_f %f16, %f2, %f14, %f2 -+ camellia_f %f18, %f14, %f2, %f0 -+___ -+$::code.=<<___; -+ call _${alg}${bits}_encrypt_1x+8 -+ add $inp, 16, $inp -+ -+ movxtod %o0, %f10 -+ movxtod %o1, %f12 -+ fxor %f10, %f0, %f0 ! ^= inp -+ fxor %f12, %f2, %f2 -+ -+ brnz,pn $ooff, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ brnz,pt $len, .L${bits}_ctr32_loop2x -+ add $out, 16, $out -+ -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f4 ! handle unaligned output -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ stda %f4, [$out + $omask]0xc0 ! partial store -+ std %f6, [$out + 8] -+ add $out, 16, $out -+ orn %g0, $omask, $omask -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_ctr32_loop2x+4 -+ orn %g0, $omask, $omask -+ -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}_ctr32_loop2x: -+ ldx [$inp + 0], %o0 -+ ldx [$inp + 8], %o1 -+ ldx [$inp + 16], %o2 -+ brz,pt $ileft, 4f -+ ldx [$inp + 24], %o3 -+ -+ ldx [$inp + 32], %o4 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ or %g1, %o0, %o0 -+ sllx %o1, $ileft, %o1 -+ srlx %o2, $iright, %g1 -+ or %g1, %o1, %o1 -+ sllx %o2, $ileft, %o2 -+ srlx %o3, $iright, %g1 -+ or %g1, %o2, %o2 -+ sllx %o3, $ileft, %o3 -+ srlx %o4, $iright, %o4 -+ or %o4, %o3, %o3 -+4: -+ xor %g5, %l7, %g1 ! ^= rk[0] -+ add %l7, 1, %l7 -+ movxtod %g1, %f2 -+ srl %l7, 0, %l7 ! clruw -+ xor %g5, %l7, %g1 -+ add %l7, 1, %l7 -+ movxtod %g1, %f6 -+ srl %l7, 0, %l7 ! clruw -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 32+63], 20 -+___ -+$::code.=<<___ if ($alg eq "aes"); -+ aes_eround01 %f16, %f14, %f2, %f8 -+ aes_eround23 %f18, %f14, %f2, %f2 -+ aes_eround01 %f16, %f14, %f6, %f10 -+ aes_eround23 %f18, %f14, %f6, %f6 -+___ -+$::code.=<<___ if ($alg eq "cmll"); -+ camellia_f %f16, %f2, %f14, %f2 -+ camellia_f %f16, %f6, %f14, %f6 -+ camellia_f %f18, %f14, %f2, %f0 -+ camellia_f %f18, %f14, %f6, %f4 -+___ -+$::code.=<<___; -+ call _${alg}${bits}_encrypt_2x+16 -+ add $inp, 32, $inp -+ -+ movxtod %o0, %f8 -+ movxtod %o1, %f10 -+ movxtod %o2, %f12 -+ fxor %f8, %f0, %f0 ! ^= inp -+ movxtod %o3, %f8 -+ fxor %f10, %f2, %f2 -+ fxor %f12, %f4, %f4 -+ fxor %f8, %f6, %f6 -+ -+ brnz,pn $ooff, 2f -+ sub $len, 2, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ std %f4, [$out + 16] -+ std %f6, [$out + 24] -+ brnz,pt $len, .L${bits}_ctr32_loop2x -+ add $out, 32, $out -+ -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f8 ! handle unaligned output -+ faligndata %f0, %f2, %f0 -+ faligndata %f2, %f4, %f2 -+ faligndata %f4, %f6, %f4 -+ faligndata %f6, %f6, %f6 -+ -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ std %f0, [$out + 8] -+ std %f2, [$out + 16] -+ std %f4, [$out + 24] -+ add $out, 32, $out -+ orn %g0, $omask, $omask -+ stda %f6, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_ctr32_loop2x+4 -+ orn %g0, $omask, $omask -+ -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}_ctr32_blk: -+ add $out, $len, $blk_init -+ and $blk_init, 63, $blk_init ! tail -+ sub $len, $blk_init, $len -+ add $blk_init, 15, $blk_init ! round up to 16n -+ srlx $len, 4, $len -+ srl $blk_init, 4, $blk_init -+ sub $len, 1, $len -+ add $blk_init, 1, $blk_init -+ -+.L${bits}_ctr32_blk_loop2x: -+ ldx [$inp + 0], %o0 -+ ldx [$inp + 8], %o1 -+ ldx [$inp + 16], %o2 -+ brz,pt $ileft, 5f -+ ldx [$inp + 24], %o3 -+ -+ ldx [$inp + 32], %o4 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ or %g1, %o0, %o0 -+ sllx %o1, $ileft, %o1 -+ srlx %o2, $iright, %g1 -+ or %g1, %o1, %o1 -+ sllx %o2, $ileft, %o2 -+ srlx %o3, $iright, %g1 -+ or %g1, %o2, %o2 -+ sllx %o3, $ileft, %o3 -+ srlx %o4, $iright, %o4 -+ or %o4, %o3, %o3 -+5: -+ xor %g5, %l7, %g1 ! ^= rk[0] -+ add %l7, 1, %l7 -+ movxtod %g1, %f2 -+ srl %l7, 0, %l7 ! clruw -+ xor %g5, %l7, %g1 -+ add %l7, 1, %l7 -+ movxtod %g1, %f6 -+ srl %l7, 0, %l7 ! clruw -+ prefetch [$inp + 32+63], 20 -+___ -+$::code.=<<___ if ($alg eq "aes"); -+ aes_eround01 %f16, %f14, %f2, %f8 -+ aes_eround23 %f18, %f14, %f2, %f2 -+ aes_eround01 %f16, %f14, %f6, %f10 -+ aes_eround23 %f18, %f14, %f6, %f6 -+___ -+$::code.=<<___ if ($alg eq "cmll"); -+ camellia_f %f16, %f2, %f14, %f2 -+ camellia_f %f16, %f6, %f14, %f6 -+ camellia_f %f18, %f14, %f2, %f0 -+ camellia_f %f18, %f14, %f6, %f4 -+___ -+$::code.=<<___; -+ call _${alg}${bits}_encrypt_2x+16 -+ add $inp, 32, $inp -+ subcc $len, 2, $len -+ -+ movxtod %o0, %f8 -+ movxtod %o1, %f10 -+ movxtod %o2, %f12 -+ fxor %f8, %f0, %f0 ! ^= inp -+ movxtod %o3, %f8 -+ fxor %f10, %f2, %f2 -+ fxor %f12, %f4, %f4 -+ fxor %f8, %f6, %f6 -+ -+ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f4, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f6, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ bgu,pt $::size_t_cc, .L${bits}_ctr32_blk_loop2x -+ add $out, 8, $out -+ -+ add $blk_init, $len, $len -+ andcc $len, 1, %g0 ! is number of blocks even? -+ membar #StoreLoad|#StoreStore -+ bnz,pt %icc, .L${bits}_ctr32_loop -+ srl $len, 0, $len -+ brnz,pn $len, .L${bits}_ctr32_loop2x -+ nop -+ -+ ret -+ restore -+.type ${alg}${bits}_t4_ctr32_encrypt,#function -+.size ${alg}${bits}_t4_ctr32_encrypt,.-${alg}${bits}_t4_ctr32_encrypt -+___ -+} -+ -+sub alg_xts_implement { -+my ($alg,$bits,$dir) = @_; -+my ($inp,$out,$len,$key1,$key2,$ivec)=map("%i$_",(0..5)); -+my $rem=$ivec; -+ -+$::code.=<<___; -+.globl ${alg}${bits}_t4_xts_${dir}crypt -+.align 32 -+${alg}${bits}_t4_xts_${dir}crypt: -+ save %sp, -$::frame-16, %sp -+ -+ mov $ivec, %o0 -+ add %fp, $::bias-16, %o1 -+ call ${alg}_t4_encrypt -+ mov $key2, %o2 -+ -+ add %fp, $::bias-16, %l7 -+ ldxa [%l7]0x88, %g2 -+ add %fp, $::bias-8, %l7 -+ ldxa [%l7]0x88, %g3 ! %g3:%g2 is tweak -+ -+ sethi %hi(0x76543210), %l7 -+ or %l7, %lo(0x76543210), %l7 -+ bmask %l7, %g0, %g0 ! byte swap mask -+ -+ prefetch [$inp], 20 -+ prefetch [$inp + 63], 20 -+ call _${alg}${bits}_load_${dir}ckey -+ and $len, 15, $rem -+ and $len, -16, $len -+___ -+$code.=<<___ if ($dir eq "de"); -+ mov 0, %l7 -+ movrnz $rem, 16, %l7 -+ sub $len, %l7, $len -+___ -+$code.=<<___; -+ -+ sub $inp, $out, $blk_init ! $inp!=$out -+ and $inp, 7, $ileft -+ andn $inp, 7, $inp -+ sll $ileft, 3, $ileft -+ mov 64, $iright -+ mov 0xff, $omask -+ sub $iright, $ileft, $iright -+ and $out, 7, $ooff -+ cmp $len, 255 -+ movrnz $ooff, 0, $blk_init ! if ( $out&7 || -+ movleu $::size_t_cc, 0, $blk_init ! $len<256 || -+ brnz,pn $blk_init, .L${bits}_xts_${dir}blk ! $inp==$out) -+ srl $omask, $ooff, $omask -+ -+ andcc $len, 16, %g0 ! is number of blocks even? -+___ -+$code.=<<___ if ($dir eq "de"); -+ brz,pn $len, .L${bits}_xts_${dir}steal -+___ -+$code.=<<___; -+ alignaddrl $out, %g0, $out -+ bz %icc, .L${bits}_xts_${dir}loop2x -+ srlx $len, 4, $len -+.L${bits}_xts_${dir}loop: -+ ldx [$inp + 0], %o0 -+ brz,pt $ileft, 4f -+ ldx [$inp + 8], %o1 -+ -+ ldx [$inp + 16], %o2 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ sllx %o1, $ileft, %o1 -+ or %g1, %o0, %o0 -+ srlx %o2, $iright, %o2 -+ or %o2, %o1, %o1 -+4: -+ movxtod %g2, %f12 -+ movxtod %g3, %f14 -+ bshuffle %f12, %f12, %f12 -+ bshuffle %f14, %f14, %f14 -+ -+ xor %g4, %o0, %o0 ! ^= rk[0] -+ xor %g5, %o1, %o1 -+ movxtod %o0, %f0 -+ movxtod %o1, %f2 -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 16+63], 20 -+ call _${alg}${bits}_${dir}crypt_1x -+ add $inp, 16, $inp -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ -+ srax %g3, 63, %l7 ! next tweak value -+ addcc %g2, %g2, %g2 -+ and %l7, 0x87, %l7 -+ addxc %g3, %g3, %g3 -+ xor %l7, %g2, %g2 -+ -+ brnz,pn $ooff, 2f -+ sub $len, 1, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ brnz,pt $len, .L${bits}_xts_${dir}loop2x -+ add $out, 16, $out -+ -+ brnz,pn $rem, .L${bits}_xts_${dir}steal -+ nop -+ -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f4 ! handle unaligned output -+ faligndata %f0, %f2, %f6 -+ faligndata %f2, %f2, %f8 -+ stda %f4, [$out + $omask]0xc0 ! partial store -+ std %f6, [$out + 8] -+ add $out, 16, $out -+ orn %g0, $omask, $omask -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_xts_${dir}loop2x+4 -+ orn %g0, $omask, $omask -+ -+ brnz,pn $rem, .L${bits}_xts_${dir}steal -+ nop -+ -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}_xts_${dir}loop2x: -+ ldx [$inp + 0], %o0 -+ ldx [$inp + 8], %o1 -+ ldx [$inp + 16], %o2 -+ brz,pt $ileft, 4f -+ ldx [$inp + 24], %o3 -+ -+ ldx [$inp + 32], %o4 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ or %g1, %o0, %o0 -+ sllx %o1, $ileft, %o1 -+ srlx %o2, $iright, %g1 -+ or %g1, %o1, %o1 -+ sllx %o2, $ileft, %o2 -+ srlx %o3, $iright, %g1 -+ or %g1, %o2, %o2 -+ sllx %o3, $ileft, %o3 -+ srlx %o4, $iright, %o4 -+ or %o4, %o3, %o3 -+4: -+ movxtod %g2, %f12 -+ movxtod %g3, %f14 -+ bshuffle %f12, %f12, %f12 -+ bshuffle %f14, %f14, %f14 -+ -+ srax %g3, 63, %l7 ! next tweak value -+ addcc %g2, %g2, %g2 -+ and %l7, 0x87, %l7 -+ addxc %g3, %g3, %g3 -+ xor %l7, %g2, %g2 -+ -+ movxtod %g2, %f8 -+ movxtod %g3, %f10 -+ bshuffle %f8, %f8, %f8 -+ bshuffle %f10, %f10, %f10 -+ -+ xor %g4, %o0, %o0 ! ^= rk[0] -+ xor %g5, %o1, %o1 -+ xor %g4, %o2, %o2 ! ^= rk[0] -+ xor %g5, %o3, %o3 -+ movxtod %o0, %f0 -+ movxtod %o1, %f2 -+ movxtod %o2, %f4 -+ movxtod %o3, %f6 -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ fxor %f8, %f4, %f4 ! ^= tweak[0] -+ fxor %f10, %f6, %f6 -+ -+ prefetch [$out + 63], 22 -+ prefetch [$inp + 32+63], 20 -+ call _${alg}${bits}_${dir}crypt_2x -+ add $inp, 32, $inp -+ -+ movxtod %g2, %f8 -+ movxtod %g3, %f10 -+ -+ srax %g3, 63, %l7 ! next tweak value -+ addcc %g2, %g2, %g2 -+ and %l7, 0x87, %l7 -+ addxc %g3, %g3, %g3 -+ xor %l7, %g2, %g2 -+ -+ bshuffle %f8, %f8, %f8 -+ bshuffle %f10, %f10, %f10 -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ fxor %f8, %f4, %f4 -+ fxor %f10, %f6, %f6 -+ -+ brnz,pn $ooff, 2f -+ sub $len, 2, $len -+ -+ std %f0, [$out + 0] -+ std %f2, [$out + 8] -+ std %f4, [$out + 16] -+ std %f6, [$out + 24] -+ brnz,pt $len, .L${bits}_xts_${dir}loop2x -+ add $out, 32, $out -+ -+ fsrc2 %f4, %f0 -+ fsrc2 %f6, %f2 -+ brnz,pn $rem, .L${bits}_xts_${dir}steal -+ nop -+ -+ ret -+ restore -+ -+.align 16 -+2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard -+ ! and ~3x deterioration -+ ! in inp==out case -+ faligndata %f0, %f0, %f8 ! handle unaligned output -+ faligndata %f0, %f2, %f10 -+ faligndata %f2, %f4, %f12 -+ faligndata %f4, %f6, %f14 -+ faligndata %f6, %f6, %f0 -+ -+ stda %f8, [$out + $omask]0xc0 ! partial store -+ std %f10, [$out + 8] -+ std %f12, [$out + 16] -+ std %f14, [$out + 24] -+ add $out, 32, $out -+ orn %g0, $omask, $omask -+ stda %f0, [$out + $omask]0xc0 ! partial store -+ -+ brnz,pt $len, .L${bits}_xts_${dir}loop2x+4 -+ orn %g0, $omask, $omask -+ -+ fsrc2 %f4, %f0 -+ fsrc2 %f6, %f2 -+ brnz,pn $rem, .L${bits}_xts_${dir}steal -+ nop -+ -+ ret -+ restore -+ -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+.align 32 -+.L${bits}_xts_${dir}blk: -+ add $out, $len, $blk_init -+ and $blk_init, 63, $blk_init ! tail -+ sub $len, $blk_init, $len -+ add $blk_init, 15, $blk_init ! round up to 16n -+ srlx $len, 4, $len -+ srl $blk_init, 4, $blk_init -+ sub $len, 1, $len -+ add $blk_init, 1, $blk_init -+ -+.L${bits}_xts_${dir}blk2x: -+ ldx [$inp + 0], %o0 -+ ldx [$inp + 8], %o1 -+ ldx [$inp + 16], %o2 -+ brz,pt $ileft, 5f -+ ldx [$inp + 24], %o3 -+ -+ ldx [$inp + 32], %o4 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ or %g1, %o0, %o0 -+ sllx %o1, $ileft, %o1 -+ srlx %o2, $iright, %g1 -+ or %g1, %o1, %o1 -+ sllx %o2, $ileft, %o2 -+ srlx %o3, $iright, %g1 -+ or %g1, %o2, %o2 -+ sllx %o3, $ileft, %o3 -+ srlx %o4, $iright, %o4 -+ or %o4, %o3, %o3 -+5: -+ movxtod %g2, %f12 -+ movxtod %g3, %f14 -+ bshuffle %f12, %f12, %f12 -+ bshuffle %f14, %f14, %f14 -+ -+ srax %g3, 63, %l7 ! next tweak value -+ addcc %g2, %g2, %g2 -+ and %l7, 0x87, %l7 -+ addxc %g3, %g3, %g3 -+ xor %l7, %g2, %g2 -+ -+ movxtod %g2, %f8 -+ movxtod %g3, %f10 -+ bshuffle %f8, %f8, %f8 -+ bshuffle %f10, %f10, %f10 -+ -+ xor %g4, %o0, %o0 ! ^= rk[0] -+ xor %g5, %o1, %o1 -+ xor %g4, %o2, %o2 ! ^= rk[0] -+ xor %g5, %o3, %o3 -+ movxtod %o0, %f0 -+ movxtod %o1, %f2 -+ movxtod %o2, %f4 -+ movxtod %o3, %f6 -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ fxor %f8, %f4, %f4 ! ^= tweak[0] -+ fxor %f10, %f6, %f6 -+ -+ prefetch [$inp + 32+63], 20 -+ call _${alg}${bits}_${dir}crypt_2x -+ add $inp, 32, $inp -+ -+ movxtod %g2, %f8 -+ movxtod %g3, %f10 -+ -+ srax %g3, 63, %l7 ! next tweak value -+ addcc %g2, %g2, %g2 -+ and %l7, 0x87, %l7 -+ addxc %g3, %g3, %g3 -+ xor %l7, %g2, %g2 -+ -+ bshuffle %f8, %f8, %f8 -+ bshuffle %f10, %f10, %f10 -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ fxor %f8, %f4, %f4 -+ fxor %f10, %f6, %f6 -+ -+ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f4, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ add $out, 8, $out -+ stda %f6, [$out]0xe2 ! ASI_BLK_INIT, T4-specific -+ bgu,pt $::size_t_cc, .L${bits}_xts_${dir}blk2x -+ add $out, 8, $out -+ -+ add $blk_init, $len, $len -+ andcc $len, 1, %g0 ! is number of blocks even? -+ membar #StoreLoad|#StoreStore -+ bnz,pt %icc, .L${bits}_xts_${dir}loop -+ srl $len, 0, $len -+ brnz,pn $len, .L${bits}_xts_${dir}loop2x -+ nop -+ -+ fsrc2 %f4, %f0 -+ fsrc2 %f6, %f2 -+ brnz,pn $rem, .L${bits}_xts_${dir}steal -+ nop -+ -+ ret -+ restore -+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -+___ -+$code.=<<___ if ($dir eq "en"); -+.align 32 -+.L${bits}_xts_${dir}steal: -+ std %f0, [%fp + $::bias-16] ! copy of output -+ std %f2, [%fp + $::bias-8] -+ -+ srl $ileft, 3, $ileft -+ add %fp, $::bias-16, %l7 -+ add $inp, $ileft, $inp ! original $inp+$len&-15 -+ add $out, $ooff, $out ! original $out+$len&-15 -+ mov 0, $ileft -+ nop ! align -+ -+.L${bits}_xts_${dir}stealing: -+ ldub [$inp + $ileft], %o0 -+ ldub [%l7 + $ileft], %o1 -+ dec $rem -+ stb %o0, [%l7 + $ileft] -+ stb %o1, [$out + $ileft] -+ brnz $rem, .L${bits}_xts_${dir}stealing -+ inc $ileft -+ -+ mov %l7, $inp -+ sub $out, 16, $out -+ mov 0, $ileft -+ sub $out, $ooff, $out -+ ba .L${bits}_xts_${dir}loop ! one more time -+ mov 1, $len ! $rem is 0 -+___ -+$code.=<<___ if ($dir eq "de"); -+.align 32 -+.L${bits}_xts_${dir}steal: -+ ldx [$inp + 0], %o0 -+ brz,pt $ileft, 8f -+ ldx [$inp + 8], %o1 -+ -+ ldx [$inp + 16], %o2 -+ sllx %o0, $ileft, %o0 -+ srlx %o1, $iright, %g1 -+ sllx %o1, $ileft, %o1 -+ or %g1, %o0, %o0 -+ srlx %o2, $iright, %o2 -+ or %o2, %o1, %o1 -+8: -+ srax %g3, 63, %l7 ! next tweak value -+ addcc %g2, %g2, %o2 -+ and %l7, 0x87, %l7 -+ addxc %g3, %g3, %o3 -+ xor %l7, %o2, %o2 -+ -+ movxtod %o2, %f12 -+ movxtod %o3, %f14 -+ bshuffle %f12, %f12, %f12 -+ bshuffle %f14, %f14, %f14 -+ -+ xor %g4, %o0, %o0 ! ^= rk[0] -+ xor %g5, %o1, %o1 -+ movxtod %o0, %f0 -+ movxtod %o1, %f2 -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ -+ call _${alg}${bits}_${dir}crypt_1x -+ add $inp, 16, $inp -+ -+ fxor %f12, %f0, %f0 ! ^= tweak[0] -+ fxor %f14, %f2, %f2 -+ -+ std %f0, [%fp + $::bias-16] -+ std %f2, [%fp + $::bias-8] -+ -+ srl $ileft, 3, $ileft -+ add %fp, $::bias-16, %l7 -+ add $inp, $ileft, $inp ! original $inp+$len&-15 -+ add $out, $ooff, $out ! original $out+$len&-15 -+ mov 0, $ileft -+ add $out, 16, $out -+ nop ! align -+ -+.L${bits}_xts_${dir}stealing: -+ ldub [$inp + $ileft], %o0 -+ ldub [%l7 + $ileft], %o1 -+ dec $rem -+ stb %o0, [%l7 + $ileft] -+ stb %o1, [$out + $ileft] -+ brnz $rem, .L${bits}_xts_${dir}stealing -+ inc $ileft -+ -+ mov %l7, $inp -+ sub $out, 16, $out -+ mov 0, $ileft -+ sub $out, $ooff, $out -+ ba .L${bits}_xts_${dir}loop ! one more time -+ mov 1, $len ! $rem is 0 -+___ -+$code.=<<___; -+ ret -+ restore -+.type ${alg}${bits}_t4_xts_${dir}crypt,#function -+.size ${alg}${bits}_t4_xts_${dir}crypt,.-${alg}${bits}_t4_xts_${dir}crypt -+___ -+} -+ -+# Purpose of these subroutines is to explicitly encode VIS instructions, -+# so that one can compile the module without having to specify VIS -+# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. -+# Idea is to reserve for option to produce "universal" binary and let -+# programmer detect if current CPU is VIS capable at run-time. -+sub unvis { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my ($ref,$opf); -+my %visopf = ( "faligndata" => 0x048, -+ "bshuffle" => 0x04c, -+ "fnot2" => 0x066, -+ "fxor" => 0x06c, -+ "fsrc2" => 0x078 ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+ -+sub unvis3 { -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); -+my ($ref,$opf); -+my %visopf = ( "addxc" => 0x011, -+ "addxccc" => 0x013, -+ "umulxhi" => 0x016, -+ "alignaddr" => 0x018, -+ "bmask" => 0x019, -+ "alignaddrl" => 0x01a ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if ($opf=$visopf{$mnemonic}) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%([goli])([0-9])/); -+ $_=$bias{$1}+$2; -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+ -+sub unaes_round { # 4-argument instructions -+my ($mnemonic,$rs1,$rs2,$rs3,$rd)=@_; -+my ($ref,$opf); -+my %aesopf = ( "aes_eround01" => 0, -+ "aes_eround23" => 1, -+ "aes_dround01" => 2, -+ "aes_dround23" => 3, -+ "aes_eround01_l"=> 4, -+ "aes_eround23_l"=> 5, -+ "aes_dround01_l"=> 6, -+ "aes_dround23_l"=> 7, -+ "aes_kexpand1" => 8 ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rs3,$rd"; -+ -+ if (defined($opf=$aesopf{$mnemonic})) { -+ $rs3 = ($rs3 =~ /%f([0-6]*[02468])/) ? (($1|$1>>5)&31) : $rs3; -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 2<<30|$rd<<25|0x19<<19|$rs1<<14|$rs3<<9|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+ -+sub unaes_kexpand { # 3-argument instructions -+my ($mnemonic,$rs1,$rs2,$rd)=@_; -+my ($ref,$opf); -+my %aesopf = ( "aes_kexpand0" => 0x130, -+ "aes_kexpand2" => 0x131 ); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rd"; -+ -+ if (defined($opf=$aesopf{$mnemonic})) { -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; -+ if ($1>=32) { -+ return $ref if ($1&1); -+ # re-encode for upper double register addressing -+ $_=($1|$1>>5)&31; -+ } -+ } -+ -+ return sprintf ".word\t0x%08x !%s", -+ 2<<30|$rd<<25|0x36<<19|$rs1<<14|$opf<<5|$rs2, -+ $ref; -+ } else { -+ return $ref; -+ } -+} -+ -+sub uncamellia_f { # 4-argument instructions -+my ($mnemonic,$rs1,$rs2,$rs3,$rd)=@_; -+my ($ref,$opf); -+ -+ $ref = "$mnemonic\t$rs1,$rs2,$rs3,$rd"; -+ -+ if (1) { -+ $rs3 = ($rs3 =~ /%f([0-6]*[02468])/) ? (($1|$1>>5)&31) : $rs3; -+ foreach ($rs1,$rs2,$rd) { -+ return $ref if (!/%f([0-9]{1,2})/); -+ $_=$1; @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Jun 2 09:53:16 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 2 Jun 2015 07:53:16 +0000 Subject: SF.net SVN: gar:[25051] csw/mgar/pkg/openssl1/trunk/files Message-ID: <3m15Hp1jJHz1KZ@mail.opencsw.org> Revision: 25051 http://sourceforge.net/p/gar/code/25051 Author: janholzh Date: 2015-06-02 07:53:16 +0000 (Tue, 02 Jun 2015) Log Message: ----------- openssl1/trunk: Oracle Moved pachtes around Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch csw/mgar/pkg/openssl1/trunk/files/update-t4-patch.sh csw/mgar/pkg/openssl1/trunk/files/update-wanboot-patch.sh Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-06-02 07:41:26 UTC (rev 25050) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-06-02 07:53:16 UTC (rev 25051) @@ -2227,3 +2227,5563 @@ {ERR_FUNC(EVP_F_AES_XTS), "AES_XTS"}, {ERR_FUNC(EVP_F_AES_XTS_CIPHER), "AES_XTS_CIPHER"}, {ERR_FUNC(EVP_F_ALG_MODULE_INIT), "ALG_MODULE_INIT"}, +Index: crypto/sparc_arch.h +=================================================================== +diff -uNr openssl-1.0.1m/crypto/sparc_arch.h openssl-1.0.1m/crypto/sparc_arch.h +--- openssl-1.0.1m/crypto/sparc_arch.h 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/sparc_arch.h 2015-06-02 09:52:11.809148396 +0200 +@@ -0,0 +1,101 @@ ++#ifndef __SPARC_ARCH_H__ ++#define __SPARC_ARCH_H__ ++ ++#define SPARCV9_TICK_PRIVILEGED (1<<0) ++#define SPARCV9_PREFER_FPU (1<<1) ++#define SPARCV9_VIS1 (1<<2) ++#define SPARCV9_VIS2 (1<<3) /* reserved */ ++#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ ++#define SPARCV9_BLK (1<<5) /* VIS1 block copy */ ++#define SPARCV9_VIS3 (1<<6) ++#define SPARCV9_RANDOM (1<<7) ++#define SPARCV9_64BIT_STACK (1<<8) ++ ++/* ++ * OPENSSL_sparcv9cap_P[1] is copy of Compatibility Feature Register, ++ * %asr26, SPARC-T4 and later. There is no SPARCV9_CFR bit in ++ * OPENSSL_sparcv9cap_P[0], as %cfr copy is sufficient... ++ */ ++#define CFR_AES 0x00000001 /* Supports AES opcodes */ ++#define CFR_DES 0x00000002 /* Supports DES opcodes */ ++#define CFR_KASUMI 0x00000004 /* Supports KASUMI opcodes */ ++#define CFR_CAMELLIA 0x00000008 /* Supports CAMELLIA opcodes */ ++#define CFR_MD5 0x00000010 /* Supports MD5 opcodes */ ++#define CFR_SHA1 0x00000020 /* Supports SHA1 opcodes */ ++#define CFR_SHA256 0x00000040 /* Supports SHA256 opcodes */ ++#define CFR_SHA512 0x00000080 /* Supports SHA512 opcodes */ ++#define CFR_MPMUL 0x00000100 /* Supports MPMUL opcodes */ ++#define CFR_MONTMUL 0x00000200 /* Supports MONTMUL opcodes */ ++#define CFR_MONTSQR 0x00000400 /* Supports MONTSQR opcodes */ ++#define CFR_CRC32C 0x00000800 /* Supports CRC32C opcodes */ ++ ++#if defined(OPENSSL_PIC) && !defined(__PIC__) ++#define __PIC__ ++#endif ++ ++#if defined(__SUNPRO_C) && defined(__sparcv9) && !defined(__arch64__) ++#define __arch64__ ++#endif ++ ++#define SPARC_PIC_THUNK(reg) \ ++ .align 32; \ ++.Lpic_thunk: \ ++ jmp %o7 + 8; \ ++ add %o7, reg, reg; ++ ++#define SPARC_PIC_THUNK_CALL(reg) \ ++ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ ++ call .Lpic_thunk; \ ++ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; ++ ++#if 1 ++#define SPARC_SETUP_GOT_REG(reg) SPARC_PIC_THUNK_CALL(reg) ++#else ++#define SPARC_SETUP_GOT_REG(reg) \ ++ sethi %hi(_GLOBAL_OFFSET_TABLE_-4), reg; \ ++ call .+8; \ ++ or reg, %lo(_GLOBAL_OFFSET_TABLE_+4), reg; \ ++ add %o7, reg, reg ++#endif ++ ++#if defined(__arch64__) ++ ++#define SPARC_LOAD_ADDRESS(SYM, reg) \ ++ setx SYM, %o7, reg; ++#define LDPTR ldx ++#define SIZE_T_CC %xcc ++#define STACK_FRAME 192 ++#define STACK_BIAS 2047 ++#define STACK_7thARG (STACK_BIAS+176) ++ ++#else ++ ++#define SPARC_LOAD_ADDRESS(SYM, reg) \ ++ set SYM, reg; ++#define LDPTR ld ++#define SIZE_T_CC %icc ++#define STACK_FRAME 112 ++#define STACK_BIAS 0 ++#define STACK_7thARG 92 ++#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) SPARC_LOAD_ADDRESS(SYM, reg) ++ ++#endif ++ ++#ifdef __PIC__ ++#undef SPARC_LOAD_ADDRESS ++#undef SPARC_LOAD_ADDRESS_LEAF ++#define SPARC_LOAD_ADDRESS(SYM, reg) \ ++ SPARC_SETUP_GOT_REG(reg); \ ++ sethi %hi(SYM), %o7; \ ++ or %o7, %lo(SYM), %o7; \ ++ LDPTR [reg + %o7], reg; ++#endif ++ ++#ifndef SPARC_LOAD_ADDRESS_LEAF ++#define SPARC_LOAD_ADDRESS_LEAF(SYM, reg, tmp) \ ++ mov %o7, tmp; \ ++ SPARC_LOAD_ADDRESS(SYM, reg) \ ++ mov tmp, %o7; ++#endif ++ ++#endif /* __SPARC_ARCH_H__ */ +Index: crypto/md5/asm/md5-sparcv9.pl +=================================================================== +diff -uNr openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl +--- openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 2015-06-02 09:52:11.809148396 +0200 +@@ -0,0 +1,434 @@ ++#!/usr/bin/env perl ++ ++# ==================================================================== ++# Written by Andy Polyakov for the OpenSSL ++# project. The module is, however, dual licensed under OpenSSL and ++# CRYPTOGAMS licenses depending on where you obtain it. For further ++# details see http://www.openssl.org/~appro/cryptogams/. ++# ++# Hardware SPARC T4 support by David S. Miller . ++# ==================================================================== ++ ++# MD5 for SPARCv9, 6.9 cycles per byte on UltraSPARC, >40% faster than ++# code generated by Sun C 5.2. ++ ++# SPARC T4 MD5 hardware achieves 3.20 cycles per byte, which is 2.1x ++# faster than software. Multi-process benchmark saturates at 12x ++# single-process result on 8-core processor, or ~11GBps per 2.85GHz ++# socket. ++ ++$bits=32; ++for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } ++if ($bits==64) { $bias=2047; $frame=192; } ++else { $bias=0; $frame=112; } ++ ++$output=shift; ++open STDOUT,">$output"; ++ ++use integer; ++ ++($ctx,$inp,$len)=("%i0","%i1","%i2"); # input arguments ++ ++# 64-bit values ++ at X=("%o0","%o1","%o2","%o3","%o4","%o5","%o7","%g1","%g2"); ++$tx="%g3"; ++($AB,$CD)=("%g4","%g5"); ++ ++# 32-bit values ++ at V=($A,$B,$C,$D)=map("%l$_",(0..3)); ++($t1,$t2,$t3,$saved_asi)=map("%l$_",(4..7)); ++($shr,$shl1,$shl2)=("%i3","%i4","%i5"); ++ ++my @K=( 0xd76aa478,0xe8c7b756,0x242070db,0xc1bdceee, ++ 0xf57c0faf,0x4787c62a,0xa8304613,0xfd469501, ++ 0x698098d8,0x8b44f7af,0xffff5bb1,0x895cd7be, ++ 0x6b901122,0xfd987193,0xa679438e,0x49b40821, ++ ++ 0xf61e2562,0xc040b340,0x265e5a51,0xe9b6c7aa, ++ 0xd62f105d,0x02441453,0xd8a1e681,0xe7d3fbc8, ++ 0x21e1cde6,0xc33707d6,0xf4d50d87,0x455a14ed, ++ 0xa9e3e905,0xfcefa3f8,0x676f02d9,0x8d2a4c8a, ++ ++ 0xfffa3942,0x8771f681,0x6d9d6122,0xfde5380c, ++ 0xa4beea44,0x4bdecfa9,0xf6bb4b60,0xbebfbc70, ++ 0x289b7ec6,0xeaa127fa,0xd4ef3085,0x04881d05, ++ 0xd9d4d039,0xe6db99e5,0x1fa27cf8,0xc4ac5665, ++ ++ 0xf4292244,0x432aff97,0xab9423a7,0xfc93a039, ++ 0x655b59c3,0x8f0ccc92,0xffeff47d,0x85845dd1, ++ 0x6fa87e4f,0xfe2ce6e0,0xa3014314,0x4e0811a1, ++ 0xf7537e82,0xbd3af235,0x2ad7d2bb,0xeb86d391, 0 ); ++ ++sub R0 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (7,12,17,22)[$i%4]; ++ my $j = ($i+1)/2; ++ ++ if ($i&1) { ++ $code.=<<___; ++ srlx @X[$j],$shr, at X[$j] ! align X[`$i+1`] ++ and $b,$t1,$t1 ! round $i ++ sllx @X[$j+1],$shl1,$tx ++ add $t2,$a,$a ++ sllx $tx,$shl2,$tx ++ xor $d,$t1,$t1 ++ or $tx, at X[$j], at X[$j] ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add @X[$j],$t2,$t2 ! X[`$i+1`]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ xor $b,$c,$t1 ++ add $t3,$a,$a ++___ ++ } else { ++ $code.=<<___; ++ srlx @X[$j],32,$tx ! extract X[`2*$j+1`] ++ and $b,$t1,$t1 ! round $i ++ add $t2,$a,$a ++ xor $d,$t1,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add $tx,$t2,$t2 ! X[`2*$j+1`]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ xor $b,$c,$t1 ++ add $t3,$a,$a ++___ ++ } ++} ++ ++sub R0_1 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (7,12,17,22)[$i%4]; ++ ++$code.=<<___; ++ srlx @X[0],32,$tx ! extract X[1] ++ and $b,$t1,$t1 ! round $i ++ add $t2,$a,$a ++ xor $d,$t1,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add $tx,$t2,$t2 ! X[1]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ andn $b,$c,$t1 ++ add $t3,$a,$a ++___ ++} ++ ++sub R1 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (5,9,14,20)[$i%4]; ++ my $j = $i<31 ? (1+5*($i+1))%16 : (5+3*($i+1))%16; ++ my $xi = @X[$j/2]; ++ ++$code.=<<___ if ($j&1 && ($xi=$tx)); ++ srlx @X[$j/2],32,$xi ! extract X[$j] ++___ ++$code.=<<___; ++ and $b,$d,$t3 ! round $i ++ add $t2,$a,$a ++ or $t3,$t1,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ `$i<31?"andn":"xor"` $b,$c,$t1 ++ add $t3,$a,$a ++___ ++} ++ ++sub R2 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (4,11,16,23)[$i%4]; ++ my $j = $i<47 ? (5+3*($i+1))%16 : (0+7*($i+1))%16; ++ my $xi = @X[$j/2]; ++ ++$code.=<<___ if ($j&1 && ($xi=$tx)); ++ srlx @X[$j/2],32,$xi ! extract X[$j] ++___ ++$code.=<<___; ++ add $t2,$a,$a ! round $i ++ xor $b,$t1,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ or $t2,%lo(@K[$i+1]),$t2 ++ sll $a,$rot,$t3 ++ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ xor $b,$c,$t1 ++ add $t3,$a,$a ++___ ++} ++ ++sub R3 { ++ my ($i,$a,$b,$c,$d) = @_; ++ my $rot = (6,10,15,21)[$i%4]; ++ my $j = (0+7*($i+1))%16; ++ my $xi = @X[$j/2]; ++ ++$code.=<<___; ++ add $t2,$a,$a ! round $i ++___ ++$code.=<<___ if ($j&1 && ($xi=$tx)); ++ srlx @X[$j/2],32,$xi ! extract X[$j] ++___ ++$code.=<<___; ++ orn $b,$d,$t1 ++ sethi %hi(@K[$i+1]),$t2 ++ xor $c,$t1,$t1 ++ or $t2,%lo(@K[$i+1]),$t2 ++ add $t1,$a,$a ++ sll $a,$rot,$t3 ++ add $xi,$t2,$t2 ! X[$j]+K[`$i+1`] ++ srl $a,32-$rot,$a ++ add $b,$t3,$t3 ++ add $t3,$a,$a ++___ ++} ++ ++$code.=<<___ if ($bits==64); ++.register %g2,#scratch ++.register %g3,#scratch ++___ ++$code.=<<___; ++#include "sparc_arch.h" ++ ++.section ".text",#alloc,#execinstr ++ ++#ifdef __PIC__ ++SPARC_PIC_THUNK(%g1) ++#endif ++ ++.globl md5_block_asm_data_order ++.align 32 ++md5_block_asm_data_order: ++ SPARC_LOAD_ADDRESS_LEAF(OPENSSL_sparcv9cap_P,%g1,%g5) ++ ld [%g1+4],%g1 ! OPENSSL_sparcv9cap_P[1] ++ ++ andcc %g1, CFR_MD5, %g0 ++ be .Lsoftware ++ nop ++ ++ mov 4, %g1 ++ andcc %o1, 0x7, %g0 ++ lda [%o0 + %g0]0x88, %f0 ! load context ++ lda [%o0 + %g1]0x88, %f1 ++ add %o0, 8, %o0 ++ lda [%o0 + %g0]0x88, %f2 ++ lda [%o0 + %g1]0x88, %f3 ++ bne,pn %icc, .Lhwunaligned ++ sub %o0, 8, %o0 ++ ++.Lhw_loop: ++ ldd [%o1 + 0x00], %f8 ++ ldd [%o1 + 0x08], %f10 ++ ldd [%o1 + 0x10], %f12 ++ ldd [%o1 + 0x18], %f14 ++ ldd [%o1 + 0x20], %f16 ++ ldd [%o1 + 0x28], %f18 ++ ldd [%o1 + 0x30], %f20 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x38], %f22 ++ add %o1, 0x40, %o1 ++ prefetch [%o1 + 63], 20 ++ ++ .word 0x81b02800 ! MD5 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhw_loop ++ nop ++ ++.Lhwfinish: ++ sta %f0, [%o0 + %g0]0x88 ! store context ++ sta %f1, [%o0 + %g1]0x88 ++ add %o0, 8, %o0 ++ sta %f2, [%o0 + %g0]0x88 ++ sta %f3, [%o0 + %g1]0x88 ++ retl ++ nop ++ ++.align 8 ++.Lhwunaligned: ++ alignaddr %o1, %g0, %o1 ++ ++ ldd [%o1 + 0x00], %f10 ++.Lhwunaligned_loop: ++ ldd [%o1 + 0x08], %f12 ++ ldd [%o1 + 0x10], %f14 ++ ldd [%o1 + 0x18], %f16 ++ ldd [%o1 + 0x20], %f18 ++ ldd [%o1 + 0x28], %f20 ++ ldd [%o1 + 0x30], %f22 ++ ldd [%o1 + 0x38], %f24 ++ subcc %o2, 1, %o2 ! done yet? ++ ldd [%o1 + 0x40], %f26 ++ add %o1, 0x40, %o1 ++ prefetch [%o1 + 63], 20 ++ ++ faligndata %f10, %f12, %f8 ++ faligndata %f12, %f14, %f10 ++ faligndata %f14, %f16, %f12 ++ faligndata %f16, %f18, %f14 ++ faligndata %f18, %f20, %f16 ++ faligndata %f20, %f22, %f18 ++ faligndata %f22, %f24, %f20 ++ faligndata %f24, %f26, %f22 ++ ++ .word 0x81b02800 ! MD5 ++ ++ bne,pt `$bits==64?"%xcc":"%icc"`, .Lhwunaligned_loop ++ for %f26, %f26, %f10 ! %f10=%f26 ++ ++ ba .Lhwfinish ++ nop ++ ++.align 16 ++.Lsoftware: ++ save %sp,-$frame,%sp ++ ++ rd %asi,$saved_asi ++ wr %g0,0x88,%asi ! ASI_PRIMARY_LITTLE ++ and $inp,7,$shr ++ andn $inp,7,$inp ++ ++ sll $shr,3,$shr ! *=8 ++ mov 56,$shl2 ++ ld [$ctx+0],$A ++ sub $shl2,$shr,$shl2 ++ ld [$ctx+4],$B ++ and $shl2,32,$shl1 ++ add $shl2,8,$shl2 ++ ld [$ctx+8],$C ++ sub $shl2,$shl1,$shl2 ! shr+shl1+shl2==64 ++ ld [$ctx+12],$D ++ nop ++ ++.Loop: ++ cmp $shr,0 ! was inp aligned? ++ ldxa [$inp+0]%asi, at X[0] ! load little-endian input ++ ldxa [$inp+8]%asi, at X[1] ++ ldxa [$inp+16]%asi, at X[2] ++ ldxa [$inp+24]%asi, at X[3] ++ ldxa [$inp+32]%asi, at X[4] ++ sllx $A,32,$AB ! pack A,B ++ ldxa [$inp+40]%asi, at X[5] ++ sllx $C,32,$CD ! pack C,D ++ ldxa [$inp+48]%asi, at X[6] ++ or $B,$AB,$AB ++ ldxa [$inp+56]%asi, at X[7] ++ or $D,$CD,$CD ++ bnz,a,pn %icc,.+8 ++ ldxa [$inp+64]%asi, at X[8] ++ ++ srlx @X[0],$shr, at X[0] ! align X[0] ++ sllx @X[1],$shl1,$tx ++ sethi %hi(@K[0]),$t2 ++ sllx $tx,$shl2,$tx ++ or $t2,%lo(@K[0]),$t2 ++ or $tx, at X[0], at X[0] ++ xor $C,$D,$t1 ++ add @X[0],$t2,$t2 ! X[0]+K[0] ++___ ++ for ($i=0;$i<15;$i++) { &R0($i, at V); unshift(@V,pop(@V)); } ++ for (;$i<16;$i++) { &R0_1($i, at V); unshift(@V,pop(@V)); } ++ for (;$i<32;$i++) { &R1($i, at V); unshift(@V,pop(@V)); } ++ for (;$i<48;$i++) { &R2($i, at V); unshift(@V,pop(@V)); } ++ for (;$i<64;$i++) { &R3($i, at V); unshift(@V,pop(@V)); } ++$code.=<<___; ++ srlx $AB,32,$t1 ! unpack A,B,C,D and accumulate ++ add $inp,64,$inp ! advance inp ++ srlx $CD,32,$t2 ++ add $t1,$A,$A ++ subcc $len,1,$len ! done yet? ++ add $AB,$B,$B ++ add $t2,$C,$C ++ add $CD,$D,$D ++ srl $B,0,$B ! clruw $B ++ bne `$bits==64?"%xcc":"%icc"`,.Loop ++ srl $D,0,$D ! clruw $D ++ ++ st $A,[$ctx+0] ! write out ctx ++ st $B,[$ctx+4] ++ st $C,[$ctx+8] ++ st $D,[$ctx+12] ++ ++ wr %g0,$saved_asi,%asi ++ ret ++ restore ++.type md5_block_asm_data_order,#function ++.size md5_block_asm_data_order,(.-md5_block_asm_data_order) ++ ++.asciz "MD5 block transform for SPARCv9, CRYPTOGAMS by " ++.align 4 ++___ ++ ++# Purpose of these subroutines is to explicitly encode VIS instructions, ++# so that one can compile the module without having to specify VIS ++# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. ++# Idea is to reserve for option to produce "universal" binary and let ++# programmer detect if current CPU is VIS capable at run-time. ++sub unvis { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my $ref,$opf; ++my %visopf = ( "faligndata" => 0x048, ++ "for" => 0x07c ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if ($opf=$visopf{$mnemonic}) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++sub unalignaddr { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); ++my $ref="$mnemonic\t$rs1,$rs2,$rd"; ++ ++ foreach ($rs1,$rs2,$rd) { ++ if (/%([goli])([0-7])/) { $_=$bias{$1}+$2; } ++ else { return $ref; } ++ } ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00300|$rd<<25|$rs1<<14|$rs2, ++ $ref; ++} ++ ++foreach (split("\n",$code)) { ++ s/\`([^\`]*)\`/eval $1/ge; ++ ++ s/\b(f[^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ ++ &unvis($1,$2,$3,$4) ++ /ge; ++ s/\b(alignaddr)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ ++ &unalignaddr($1,$2,$3,$4) ++ /ge; ++ ++ print $_,"\n"; ++} ++ ++close STDOUT; +Index: crypto/aes/asm/aest4-sparcv9.pl +=================================================================== +diff -uNr openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl +--- openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 2015-06-02 09:52:11.809148396 +0200 +@@ -0,0 +1,902 @@ ++#!/usr/bin/env perl ++ ++# ==================================================================== ++# Written by David S. Miller and Andy Polyakov ++# . The module is licensed under 2-clause BSD ++# license. October 2012. All rights reserved. ++# ==================================================================== ++ ++###################################################################### ++# AES for SPARC T4. ++# ++# AES round instructions complete in 3 cycles and can be issued every ++# cycle. It means that round calculations should take 4*rounds cycles, ++# because any given round instruction depends on result of *both* ++# previous instructions: ++# ++# |0 |1 |2 |3 |4 ++# |01|01|01| ++# |23|23|23| ++# |01|01|... ++# |23|... ++# ++# Provided that fxor [with IV] takes 3 cycles to complete, critical ++# path length for CBC encrypt would be 3+4*rounds, or in other words ++# it should process one byte in at least (3+4*rounds)/16 cycles. This ++# estimate doesn't account for "collateral" instructions, such as ++# fetching input from memory, xor-ing it with zero-round key and ++# storing the result. Yet, *measured* performance [for data aligned ++# at 64-bit boundary!] deviates from this equation by less than 0.5%: ++# ++# 128-bit key 192- 256- ++# CBC encrypt 2.70/2.90(*) 3.20/3.40 3.70/3.90 ++# (*) numbers after slash are for ++# misaligned data. ++# ++# Out-of-order execution logic managed to fully overlap "collateral" ++# instructions with those on critical path. Amazing! ++# ++# As with Intel AES-NI, question is if it's possible to improve ++# performance of parallelizeable modes by interleaving round ++# instructions. Provided round instruction latency and throughput ++# optimal interleave factor is 2. But can we expect 2x performance ++# improvement? Well, as round instructions can be issued one per ++# cycle, they don't saturate the 2-way issue pipeline and therefore ++# there is room for "collateral" calculations... Yet, 2x speed-up ++# over CBC encrypt remains unattaintable: ++# ++# 128-bit key 192- 256- ++# CBC decrypt 1.64/2.11 1.89/2.37 2.23/2.61 ++# CTR 1.64/2.08(*) 1.89/2.33 2.23/2.61 ++# (*) numbers after slash are for ++# misaligned data. ++# ++# Estimates based on amount of instructions under assumption that ++# round instructions are not pairable with any other instruction ++# suggest that latter is the actual case and pipeline runs ++# underutilized. It should be noted that T4 out-of-order execution ++# logic is so capable that performance gain from 2x interleave is ++# not even impressive, ~7-13% over non-interleaved code, largest ++# for 256-bit keys. ++ ++# To anchor to something else, software implementation processes ++# one byte in 29 cycles with 128-bit key on same processor. Intel ++# Sandy Bridge encrypts byte in 5.07 cycles in CBC mode and decrypts ++# in 0.93, naturally with AES-NI. ++ ++$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; ++push(@INC,"${dir}","${dir}../../perlasm"); ++require "sparcv9_modes.pl"; ++ ++&asm_init(@ARGV); ++ ++$::evp=1; # if $evp is set to 0, script generates module with ++# AES_[en|de]crypt, AES_set_[en|de]crypt_key and AES_cbc_encrypt entry ++# points. These however are not fully compatible with openssl/aes.h, ++# because they expect AES_KEY to be aligned at 64-bit boundary. When ++# used through EVP, alignment is arranged at EVP layer. Second thing ++# that is arranged by EVP is at least 32-bit alignment of IV. ++ ++###################################################################### ++# single-round subroutines ++# ++{ ++my ($inp,$out,$key,$rounds,$tmp,$mask)=map("%o$_",(0..5)); ++ ++$code=<<___; ++.text ++ ++.globl aes_t4_encrypt ++.align 32 ++aes_t4_encrypt: ++ andcc $inp, 7, %g1 ! is input aligned? ++ andn $inp, 7, $inp ++ ++ ldx [$key + 0], %g4 ++ ldx [$key + 8], %g5 ++ ++ ldx [$inp + 0], %o4 ++ bz,pt %icc, 1f ++ ldx [$inp + 8], %o5 ++ ldx [$inp + 16], $inp ++ sll %g1, 3, %g1 ++ sub %g0, %g1, %o3 ++ sllx %o4, %g1, %o4 ++ sllx %o5, %g1, %g1 ++ srlx %o5, %o3, %o5 ++ srlx $inp, %o3, %o3 ++ or %o5, %o4, %o4 ++ or %o3, %g1, %o5 ++1: ++ ld [$key + 240], $rounds ++ ldd [$key + 16], %f12 ++ ldd [$key + 24], %f14 ++ xor %g4, %o4, %o4 ++ xor %g5, %o5, %o5 ++ movxtod %o4, %f0 ++ movxtod %o5, %f2 ++ srl $rounds, 1, $rounds ++ ldd [$key + 32], %f16 ++ sub $rounds, 1, $rounds ++ ldd [$key + 40], %f18 ++ add $key, 48, $key ++ ++.Lenc: ++ aes_eround01 %f12, %f0, %f2, %f4 ++ aes_eround23 %f14, %f0, %f2, %f2 ++ ldd [$key + 0], %f12 ++ ldd [$key + 8], %f14 ++ sub $rounds,1,$rounds ++ aes_eround01 %f16, %f4, %f2, %f0 ++ aes_eround23 %f18, %f4, %f2, %f2 ++ ldd [$key + 16], %f16 ++ ldd [$key + 24], %f18 ++ brnz,pt $rounds, .Lenc ++ add $key, 32, $key ++ ++ andcc $out, 7, $tmp ! is output aligned? ++ aes_eround01 %f12, %f0, %f2, %f4 ++ aes_eround23 %f14, %f0, %f2, %f2 ++ aes_eround01_l %f16, %f4, %f2, %f0 ++ aes_eround23_l %f18, %f4, %f2, %f2 ++ ++ bnz,pn %icc, 2f ++ nop ++ ++ std %f0, [$out + 0] ++ retl ++ std %f2, [$out + 8] ++ ++2: alignaddrl $out, %g0, $out ++ mov 0xff, $mask ++ srl $mask, $tmp, $mask ++ ++ faligndata %f0, %f0, %f4 ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ ++ stda %f4, [$out + $mask]0xc0 ! partial store ++ std %f6, [$out + 8] ++ add $out, 16, $out ++ orn %g0, $mask, $mask ++ retl ++ stda %f8, [$out + $mask]0xc0 ! partial store ++.type aes_t4_encrypt,#function ++.size aes_t4_encrypt,.-aes_t4_encrypt ++ ++.globl aes_t4_decrypt ++.align 32 ++aes_t4_decrypt: ++ andcc $inp, 7, %g1 ! is input aligned? ++ andn $inp, 7, $inp ++ ++ ldx [$key + 0], %g4 ++ ldx [$key + 8], %g5 ++ ++ ldx [$inp + 0], %o4 ++ bz,pt %icc, 1f ++ ldx [$inp + 8], %o5 ++ ldx [$inp + 16], $inp ++ sll %g1, 3, %g1 ++ sub %g0, %g1, %o3 ++ sllx %o4, %g1, %o4 ++ sllx %o5, %g1, %g1 ++ srlx %o5, %o3, %o5 ++ srlx $inp, %o3, %o3 ++ or %o5, %o4, %o4 ++ or %o3, %g1, %o5 ++1: ++ ld [$key + 240], $rounds ++ ldd [$key + 16], %f12 ++ ldd [$key + 24], %f14 ++ xor %g4, %o4, %o4 ++ xor %g5, %o5, %o5 ++ movxtod %o4, %f0 ++ movxtod %o5, %f2 ++ srl $rounds, 1, $rounds ++ ldd [$key + 32], %f16 ++ sub $rounds, 1, $rounds ++ ldd [$key + 40], %f18 ++ add $key, 48, $key ++ ++.Ldec: ++ aes_dround01 %f12, %f0, %f2, %f4 ++ aes_dround23 %f14, %f0, %f2, %f2 ++ ldd [$key + 0], %f12 ++ ldd [$key + 8], %f14 ++ sub $rounds,1,$rounds ++ aes_dround01 %f16, %f4, %f2, %f0 ++ aes_dround23 %f18, %f4, %f2, %f2 ++ ldd [$key + 16], %f16 ++ ldd [$key + 24], %f18 ++ brnz,pt $rounds, .Ldec ++ add $key, 32, $key ++ ++ andcc $out, 7, $tmp ! is output aligned? ++ aes_dround01 %f12, %f0, %f2, %f4 ++ aes_dround23 %f14, %f0, %f2, %f2 ++ aes_dround01_l %f16, %f4, %f2, %f0 ++ aes_dround23_l %f18, %f4, %f2, %f2 ++ ++ bnz,pn %icc, 2f ++ nop ++ ++ std %f0, [$out + 0] ++ retl ++ std %f2, [$out + 8] ++ ++2: alignaddrl $out, %g0, $out ++ mov 0xff, $mask ++ srl $mask, $tmp, $mask ++ ++ faligndata %f0, %f0, %f4 ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ ++ stda %f4, [$out + $mask]0xc0 ! partial store ++ std %f6, [$out + 8] ++ add $out, 16, $out ++ orn %g0, $mask, $mask ++ retl ++ stda %f8, [$out + $mask]0xc0 ! partial store ++.type aes_t4_decrypt,#function ++.size aes_t4_decrypt,.-aes_t4_decrypt ++___ ++} ++ ++###################################################################### ++# key setup subroutines ++# ++{ ++my ($inp,$bits,$out,$tmp)=map("%o$_",(0..5)); ++$code.=<<___; ++.globl aes_t4_set_encrypt_key ++.align 32 ++aes_t4_set_encrypt_key: ++.Lset_encrypt_key: ++ and $inp, 7, $tmp ++ alignaddr $inp, %g0, $inp ++ cmp $bits, 192 ++ ldd [$inp + 0], %f0 ++ bl,pt %icc,.L128 ++ ldd [$inp + 8], %f2 ++ ++ be,pt %icc,.L192 ++ ldd [$inp + 16], %f4 ++ brz,pt $tmp, .L256aligned ++ ldd [$inp + 24], %f6 ++ ++ ldd [$inp + 32], %f8 ++ faligndata %f0, %f2, %f0 ++ faligndata %f2, %f4, %f2 ++ faligndata %f4, %f6, %f4 ++ faligndata %f6, %f8, %f6 ++.L256aligned: ++___ ++for ($i=0; $i<6; $i++) { ++ $code.=<<___; ++ std %f0, [$out + `32*$i+0`] ++ aes_kexpand1 %f0, %f6, $i, %f0 ++ std %f2, [$out + `32*$i+8`] ++ aes_kexpand2 %f2, %f0, %f2 ++ std %f4, [$out + `32*$i+16`] ++ aes_kexpand0 %f4, %f2, %f4 ++ std %f6, [$out + `32*$i+24`] ++ aes_kexpand2 %f6, %f4, %f6 ++___ ++} ++$code.=<<___; ++ std %f0, [$out + `32*$i+0`] ++ aes_kexpand1 %f0, %f6, $i, %f0 ++ std %f2, [$out + `32*$i+8`] ++ aes_kexpand2 %f2, %f0, %f2 ++ std %f4, [$out + `32*$i+16`] ++ std %f6, [$out + `32*$i+24`] ++ std %f0, [$out + `32*$i+32`] ++ std %f2, [$out + `32*$i+40`] ++ ++ mov 14, $tmp ++ st $tmp, [$out + 240] ++ retl ++ xor %o0, %o0, %o0 ++ ++.align 16 ++.L192: ++ brz,pt $tmp, .L192aligned ++ nop ++ ++ ldd [$inp + 24], %f6 ++ faligndata %f0, %f2, %f0 ++ faligndata %f2, %f4, %f2 ++ faligndata %f4, %f6, %f4 ++.L192aligned: ++___ ++for ($i=0; $i<7; $i++) { ++ $code.=<<___; ++ std %f0, [$out + `24*$i+0`] ++ aes_kexpand1 %f0, %f4, $i, %f0 ++ std %f2, [$out + `24*$i+8`] ++ aes_kexpand2 %f2, %f0, %f2 ++ std %f4, [$out + `24*$i+16`] ++ aes_kexpand2 %f4, %f2, %f4 ++___ ++} ++$code.=<<___; ++ std %f0, [$out + `24*$i+0`] ++ aes_kexpand1 %f0, %f4, $i, %f0 ++ std %f2, [$out + `24*$i+8`] ++ aes_kexpand2 %f2, %f0, %f2 ++ std %f4, [$out + `24*$i+16`] ++ std %f0, [$out + `24*$i+24`] ++ std %f2, [$out + `24*$i+32`] ++ ++ mov 12, $tmp ++ st $tmp, [$out + 240] ++ retl ++ xor %o0, %o0, %o0 ++ ++.align 16 ++.L128: ++ brz,pt $tmp, .L128aligned ++ nop ++ ++ ldd [$inp + 16], %f4 ++ faligndata %f0, %f2, %f0 ++ faligndata %f2, %f4, %f2 ++.L128aligned: ++___ ++for ($i=0; $i<10; $i++) { ++ $code.=<<___; ++ std %f0, [$out + `16*$i+0`] ++ aes_kexpand1 %f0, %f2, $i, %f0 ++ std %f2, [$out + `16*$i+8`] ++ aes_kexpand2 %f2, %f0, %f2 ++___ ++} ++$code.=<<___; ++ std %f0, [$out + `16*$i+0`] ++ std %f2, [$out + `16*$i+8`] ++ ++ mov 10, $tmp ++ st $tmp, [$out + 240] ++ retl ++ xor %o0, %o0, %o0 ++.type aes_t4_set_encrypt_key,#function ++.size aes_t4_set_encrypt_key,.-aes_t4_set_encrypt_key ++ ++.globl aes_t4_set_decrypt_key ++.align 32 ++aes_t4_set_decrypt_key: ++ mov %o7, %o5 ++ call .Lset_encrypt_key ++ nop ++ ++ mov %o5, %o7 ++ sll $tmp, 4, $inp ! $tmp is number of rounds ++ add $tmp, 2, $tmp ++ add $out, $inp, $inp ! $inp=$out+16*rounds ++ srl $tmp, 2, $tmp ! $tmp=(rounds+2)/4 ++ ++.Lkey_flip: ++ ldd [$out + 0], %f0 ++ ldd [$out + 8], %f2 ++ ldd [$out + 16], %f4 ++ ldd [$out + 24], %f6 ++ ldd [$inp + 0], %f8 ++ ldd [$inp + 8], %f10 ++ ldd [$inp - 16], %f12 ++ ldd [$inp - 8], %f14 ++ sub $tmp, 1, $tmp ++ std %f0, [$inp + 0] ++ std %f2, [$inp + 8] ++ std %f4, [$inp - 16] ++ std %f6, [$inp - 8] ++ std %f8, [$out + 0] ++ std %f10, [$out + 8] ++ std %f12, [$out + 16] ++ std %f14, [$out + 24] ++ add $out, 32, $out ++ brnz $tmp, .Lkey_flip ++ sub $inp, 32, $inp ++ ++ retl ++ xor %o0, %o0, %o0 ++.type aes_t4_set_decrypt_key,#function ++.size aes_t4_set_decrypt_key,.-aes_t4_set_decrypt_key ++___ ++} ++ ++{{{ ++my ($inp,$out,$len,$key,$ivec,$enc)=map("%i$_",(0..5)); ++my ($ileft,$iright,$ooff,$omask,$ivoff)=map("%l$_",(1..7)); ++ ++$code.=<<___; ++.align 32 ++_aes128_loadkey: ++ ldx [$key + 0], %g4 ++ ldx [$key + 8], %g5 ++___ ++for ($i=2; $i<22;$i++) { # load key schedule ++ $code.=<<___; ++ ldd [$key + `8*$i`], %f`12+2*$i` ++___ ++} ++$code.=<<___; ++ retl ++ nop ++.type _aes128_loadkey,#function ++.size _aes128_loadkey,.-_aes128_loadkey ++_aes128_load_enckey=_aes128_loadkey ++_aes128_load_deckey=_aes128_loadkey ++ ++.align 32 ++_aes128_encrypt_1x: ++___ ++for ($i=0; $i<4; $i++) { ++ $code.=<<___; ++ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f4 ++ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_eround01 %f`16+8*$i+4`, %f4, %f2, %f0 ++ aes_eround23 %f`16+8*$i+6`, %f4, %f2, %f2 ++___ ++} ++$code.=<<___; ++ aes_eround01 %f48, %f0, %f2, %f4 ++ aes_eround23 %f50, %f0, %f2, %f2 ++ aes_eround01_l %f52, %f4, %f2, %f0 ++ retl ++ aes_eround23_l %f54, %f4, %f2, %f2 ++.type _aes128_encrypt_1x,#function ++.size _aes128_encrypt_1x,.-_aes128_encrypt_1x ++ ++.align 32 ++_aes128_encrypt_2x: ++___ ++for ($i=0; $i<4; $i++) { ++ $code.=<<___; ++ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f8 ++ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_eround01 %f`16+8*$i+0`, %f4, %f6, %f10 ++ aes_eround23 %f`16+8*$i+2`, %f4, %f6, %f6 ++ aes_eround01 %f`16+8*$i+4`, %f8, %f2, %f0 ++ aes_eround23 %f`16+8*$i+6`, %f8, %f2, %f2 ++ aes_eround01 %f`16+8*$i+4`, %f10, %f6, %f4 ++ aes_eround23 %f`16+8*$i+6`, %f10, %f6, %f6 ++___ ++} ++$code.=<<___; ++ aes_eround01 %f48, %f0, %f2, %f8 ++ aes_eround23 %f50, %f0, %f2, %f2 ++ aes_eround01 %f48, %f4, %f6, %f10 ++ aes_eround23 %f50, %f4, %f6, %f6 ++ aes_eround01_l %f52, %f8, %f2, %f0 ++ aes_eround23_l %f54, %f8, %f2, %f2 ++ aes_eround01_l %f52, %f10, %f6, %f4 ++ retl ++ aes_eround23_l %f54, %f10, %f6, %f6 ++.type _aes128_encrypt_2x,#function ++.size _aes128_encrypt_2x,.-_aes128_encrypt_2x ++ ++.align 32 ++_aes128_decrypt_1x: ++___ ++for ($i=0; $i<4; $i++) { ++ $code.=<<___; ++ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f4 ++ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_dround01 %f`16+8*$i+4`, %f4, %f2, %f0 ++ aes_dround23 %f`16+8*$i+6`, %f4, %f2, %f2 ++___ ++} ++$code.=<<___; ++ aes_dround01 %f48, %f0, %f2, %f4 ++ aes_dround23 %f50, %f0, %f2, %f2 ++ aes_dround01_l %f52, %f4, %f2, %f0 ++ retl ++ aes_dround23_l %f54, %f4, %f2, %f2 ++.type _aes128_decrypt_1x,#function ++.size _aes128_decrypt_1x,.-_aes128_decrypt_1x ++ ++.align 32 ++_aes128_decrypt_2x: ++___ ++for ($i=0; $i<4; $i++) { ++ $code.=<<___; ++ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f8 ++ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_dround01 %f`16+8*$i+0`, %f4, %f6, %f10 ++ aes_dround23 %f`16+8*$i+2`, %f4, %f6, %f6 ++ aes_dround01 %f`16+8*$i+4`, %f8, %f2, %f0 ++ aes_dround23 %f`16+8*$i+6`, %f8, %f2, %f2 ++ aes_dround01 %f`16+8*$i+4`, %f10, %f6, %f4 ++ aes_dround23 %f`16+8*$i+6`, %f10, %f6, %f6 ++___ ++} ++$code.=<<___; ++ aes_dround01 %f48, %f0, %f2, %f8 ++ aes_dround23 %f50, %f0, %f2, %f2 ++ aes_dround01 %f48, %f4, %f6, %f10 ++ aes_dround23 %f50, %f4, %f6, %f6 ++ aes_dround01_l %f52, %f8, %f2, %f0 ++ aes_dround23_l %f54, %f8, %f2, %f2 ++ aes_dround01_l %f52, %f10, %f6, %f4 ++ retl ++ aes_dround23_l %f54, %f10, %f6, %f6 ++.type _aes128_decrypt_2x,#function ++.size _aes128_decrypt_2x,.-_aes128_decrypt_2x ++ ++.align 32 ++_aes192_loadkey: ++_aes256_loadkey: ++ ldx [$key + 0], %g4 ++ ldx [$key + 8], %g5 ++___ ++for ($i=2; $i<26;$i++) { # load key schedule ++ $code.=<<___; ++ ldd [$key + `8*$i`], %f`12+2*$i` ++___ ++} ++$code.=<<___; ++ retl ++ nop ++.type _aes192_loadkey,#function ++.size _aes192_loadkey,.-_aes192_loadkey ++_aes192_load_enckey=_aes192_loadkey ++_aes192_load_deckey=_aes192_loadkey ++_aes256_load_enckey=_aes192_loadkey ++_aes256_load_deckey=_aes192_loadkey ++ ++.align 32 ++_aes192_encrypt_1x: ++___ ++for ($i=0; $i<5; $i++) { ++ $code.=<<___; ++ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f4 ++ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_eround01 %f`16+8*$i+4`, %f4, %f2, %f0 ++ aes_eround23 %f`16+8*$i+6`, %f4, %f2, %f2 ++___ ++} ++$code.=<<___; ++ aes_eround01 %f56, %f0, %f2, %f4 ++ aes_eround23 %f58, %f0, %f2, %f2 ++ aes_eround01_l %f60, %f4, %f2, %f0 ++ retl ++ aes_eround23_l %f62, %f4, %f2, %f2 ++.type _aes192_encrypt_1x,#function ++.size _aes192_encrypt_1x,.-_aes192_encrypt_1x ++ ++.align 32 ++_aes192_encrypt_2x: ++___ ++for ($i=0; $i<5; $i++) { ++ $code.=<<___; ++ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f8 ++ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_eround01 %f`16+8*$i+0`, %f4, %f6, %f10 ++ aes_eround23 %f`16+8*$i+2`, %f4, %f6, %f6 ++ aes_eround01 %f`16+8*$i+4`, %f8, %f2, %f0 ++ aes_eround23 %f`16+8*$i+6`, %f8, %f2, %f2 ++ aes_eround01 %f`16+8*$i+4`, %f10, %f6, %f4 ++ aes_eround23 %f`16+8*$i+6`, %f10, %f6, %f6 ++___ ++} ++$code.=<<___; ++ aes_eround01 %f56, %f0, %f2, %f8 ++ aes_eround23 %f58, %f0, %f2, %f2 ++ aes_eround01 %f56, %f4, %f6, %f10 ++ aes_eround23 %f58, %f4, %f6, %f6 ++ aes_eround01_l %f60, %f8, %f2, %f0 ++ aes_eround23_l %f62, %f8, %f2, %f2 ++ aes_eround01_l %f60, %f10, %f6, %f4 ++ retl ++ aes_eround23_l %f62, %f10, %f6, %f6 ++.type _aes192_encrypt_2x,#function ++.size _aes192_encrypt_2x,.-_aes192_encrypt_2x ++ ++.align 32 ++_aes192_decrypt_1x: ++___ ++for ($i=0; $i<5; $i++) { ++ $code.=<<___; ++ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f4 ++ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_dround01 %f`16+8*$i+4`, %f4, %f2, %f0 ++ aes_dround23 %f`16+8*$i+6`, %f4, %f2, %f2 ++___ ++} ++$code.=<<___; ++ aes_dround01 %f56, %f0, %f2, %f4 ++ aes_dround23 %f58, %f0, %f2, %f2 ++ aes_dround01_l %f60, %f4, %f2, %f0 ++ retl ++ aes_dround23_l %f62, %f4, %f2, %f2 ++.type _aes192_decrypt_1x,#function ++.size _aes192_decrypt_1x,.-_aes192_decrypt_1x ++ ++.align 32 ++_aes192_decrypt_2x: ++___ ++for ($i=0; $i<5; $i++) { ++ $code.=<<___; ++ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f8 ++ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_dround01 %f`16+8*$i+0`, %f4, %f6, %f10 ++ aes_dround23 %f`16+8*$i+2`, %f4, %f6, %f6 ++ aes_dround01 %f`16+8*$i+4`, %f8, %f2, %f0 ++ aes_dround23 %f`16+8*$i+6`, %f8, %f2, %f2 ++ aes_dround01 %f`16+8*$i+4`, %f10, %f6, %f4 ++ aes_dround23 %f`16+8*$i+6`, %f10, %f6, %f6 ++___ ++} ++$code.=<<___; ++ aes_dround01 %f56, %f0, %f2, %f8 ++ aes_dround23 %f58, %f0, %f2, %f2 ++ aes_dround01 %f56, %f4, %f6, %f10 ++ aes_dround23 %f58, %f4, %f6, %f6 ++ aes_dround01_l %f60, %f8, %f2, %f0 ++ aes_dround23_l %f62, %f8, %f2, %f2 ++ aes_dround01_l %f60, %f10, %f6, %f4 ++ retl ++ aes_dround23_l %f62, %f10, %f6, %f6 ++.type _aes192_decrypt_2x,#function ++.size _aes192_decrypt_2x,.-_aes192_decrypt_2x ++ ++.align 32 ++_aes256_encrypt_1x: ++ aes_eround01 %f16, %f0, %f2, %f4 ++ aes_eround23 %f18, %f0, %f2, %f2 ++ ldd [$key + 208], %f16 ++ ldd [$key + 216], %f18 ++ aes_eround01 %f20, %f4, %f2, %f0 ++ aes_eround23 %f22, %f4, %f2, %f2 ++ ldd [$key + 224], %f20 ++ ldd [$key + 232], %f22 ++___ ++for ($i=1; $i<6; $i++) { ++ $code.=<<___; ++ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f4 ++ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_eround01 %f`16+8*$i+4`, %f4, %f2, %f0 ++ aes_eround23 %f`16+8*$i+6`, %f4, %f2, %f2 ++___ ++} ++$code.=<<___; ++ aes_eround01 %f16, %f0, %f2, %f4 ++ aes_eround23 %f18, %f0, %f2, %f2 ++ ldd [$key + 16], %f16 ++ ldd [$key + 24], %f18 ++ aes_eround01_l %f20, %f4, %f2, %f0 ++ aes_eround23_l %f22, %f4, %f2, %f2 ++ ldd [$key + 32], %f20 ++ retl ++ ldd [$key + 40], %f22 ++.type _aes256_encrypt_1x,#function ++.size _aes256_encrypt_1x,.-_aes256_encrypt_1x ++ ++.align 32 ++_aes256_encrypt_2x: ++ aes_eround01 %f16, %f0, %f2, %f8 ++ aes_eround23 %f18, %f0, %f2, %f2 ++ aes_eround01 %f16, %f4, %f6, %f10 ++ aes_eround23 %f18, %f4, %f6, %f6 ++ ldd [$key + 208], %f16 ++ ldd [$key + 216], %f18 ++ aes_eround01 %f20, %f8, %f2, %f0 ++ aes_eround23 %f22, %f8, %f2, %f2 ++ aes_eround01 %f20, %f10, %f6, %f4 ++ aes_eround23 %f22, %f10, %f6, %f6 ++ ldd [$key + 224], %f20 ++ ldd [$key + 232], %f22 ++___ ++for ($i=1; $i<6; $i++) { ++ $code.=<<___; ++ aes_eround01 %f`16+8*$i+0`, %f0, %f2, %f8 ++ aes_eround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_eround01 %f`16+8*$i+0`, %f4, %f6, %f10 ++ aes_eround23 %f`16+8*$i+2`, %f4, %f6, %f6 ++ aes_eround01 %f`16+8*$i+4`, %f8, %f2, %f0 ++ aes_eround23 %f`16+8*$i+6`, %f8, %f2, %f2 ++ aes_eround01 %f`16+8*$i+4`, %f10, %f6, %f4 ++ aes_eround23 %f`16+8*$i+6`, %f10, %f6, %f6 ++___ ++} ++$code.=<<___; ++ aes_eround01 %f16, %f0, %f2, %f8 ++ aes_eround23 %f18, %f0, %f2, %f2 ++ aes_eround01 %f16, %f4, %f6, %f10 ++ aes_eround23 %f18, %f4, %f6, %f6 ++ ldd [$key + 16], %f16 ++ ldd [$key + 24], %f18 ++ aes_eround01_l %f20, %f8, %f2, %f0 ++ aes_eround23_l %f22, %f8, %f2, %f2 ++ aes_eround01_l %f20, %f10, %f6, %f4 ++ aes_eround23_l %f22, %f10, %f6, %f6 ++ ldd [$key + 32], %f20 ++ retl ++ ldd [$key + 40], %f22 ++.type _aes256_encrypt_2x,#function ++.size _aes256_encrypt_2x,.-_aes256_encrypt_2x ++ ++.align 32 ++_aes256_decrypt_1x: ++ aes_dround01 %f16, %f0, %f2, %f4 ++ aes_dround23 %f18, %f0, %f2, %f2 ++ ldd [$key + 208], %f16 ++ ldd [$key + 216], %f18 ++ aes_dround01 %f20, %f4, %f2, %f0 ++ aes_dround23 %f22, %f4, %f2, %f2 ++ ldd [$key + 224], %f20 ++ ldd [$key + 232], %f22 ++___ ++for ($i=1; $i<6; $i++) { ++ $code.=<<___; ++ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f4 ++ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_dround01 %f`16+8*$i+4`, %f4, %f2, %f0 ++ aes_dround23 %f`16+8*$i+6`, %f4, %f2, %f2 ++___ ++} ++$code.=<<___; ++ aes_dround01 %f16, %f0, %f2, %f4 ++ aes_dround23 %f18, %f0, %f2, %f2 ++ ldd [$key + 16], %f16 ++ ldd [$key + 24], %f18 ++ aes_dround01_l %f20, %f4, %f2, %f0 ++ aes_dround23_l %f22, %f4, %f2, %f2 ++ ldd [$key + 32], %f20 ++ retl ++ ldd [$key + 40], %f22 ++.type _aes256_decrypt_1x,#function ++.size _aes256_decrypt_1x,.-_aes256_decrypt_1x ++ ++.align 32 ++_aes256_decrypt_2x: ++ aes_dround01 %f16, %f0, %f2, %f8 ++ aes_dround23 %f18, %f0, %f2, %f2 ++ aes_dround01 %f16, %f4, %f6, %f10 ++ aes_dround23 %f18, %f4, %f6, %f6 ++ ldd [$key + 208], %f16 ++ ldd [$key + 216], %f18 ++ aes_dround01 %f20, %f8, %f2, %f0 ++ aes_dround23 %f22, %f8, %f2, %f2 ++ aes_dround01 %f20, %f10, %f6, %f4 ++ aes_dround23 %f22, %f10, %f6, %f6 ++ ldd [$key + 224], %f20 ++ ldd [$key + 232], %f22 ++___ ++for ($i=1; $i<6; $i++) { ++ $code.=<<___; ++ aes_dround01 %f`16+8*$i+0`, %f0, %f2, %f8 ++ aes_dround23 %f`16+8*$i+2`, %f0, %f2, %f2 ++ aes_dround01 %f`16+8*$i+0`, %f4, %f6, %f10 ++ aes_dround23 %f`16+8*$i+2`, %f4, %f6, %f6 ++ aes_dround01 %f`16+8*$i+4`, %f8, %f2, %f0 ++ aes_dround23 %f`16+8*$i+6`, %f8, %f2, %f2 ++ aes_dround01 %f`16+8*$i+4`, %f10, %f6, %f4 ++ aes_dround23 %f`16+8*$i+6`, %f10, %f6, %f6 ++___ ++} ++$code.=<<___; ++ aes_dround01 %f16, %f0, %f2, %f8 ++ aes_dround23 %f18, %f0, %f2, %f2 ++ aes_dround01 %f16, %f4, %f6, %f10 ++ aes_dround23 %f18, %f4, %f6, %f6 ++ ldd [$key + 16], %f16 ++ ldd [$key + 24], %f18 ++ aes_dround01_l %f20, %f8, %f2, %f0 ++ aes_dround23_l %f22, %f8, %f2, %f2 ++ aes_dround01_l %f20, %f10, %f6, %f4 ++ aes_dround23_l %f22, %f10, %f6, %f6 ++ ldd [$key + 32], %f20 ++ retl ++ ldd [$key + 40], %f22 ++.type _aes256_decrypt_2x,#function ++.size _aes256_decrypt_2x,.-_aes256_decrypt_2x ++___ ++ ++&alg_cbc_encrypt_implement("aes",128); ++&alg_cbc_encrypt_implement("aes",192); ++&alg_cbc_encrypt_implement("aes",256); ++ ++&alg_cbc_decrypt_implement("aes",128); ++&alg_cbc_decrypt_implement("aes",192); ++&alg_cbc_decrypt_implement("aes",256); ++ ++if ($::evp) { ++ &alg_ctr32_implement("aes",128); ++ &alg_ctr32_implement("aes",192); ++ &alg_ctr32_implement("aes",256); ++} ++}}} ++ ++if (!$::evp) { ++$code.=<<___; ++.global AES_encrypt ++AES_encrypt=aes_t4_encrypt ++.global AES_decrypt ++AES_decrypt=aes_t4_decrypt ++.global AES_set_encrypt_key ++.align 32 ++AES_set_encrypt_key: ++ andcc %o2, 7, %g0 ! check alignment ++ bnz,a,pn %icc, 1f ++ mov -1, %o0 ++ brz,a,pn %o0, 1f ++ mov -1, %o0 ++ brz,a,pn %o2, 1f ++ mov -1, %o0 ++ andncc %o1, 0x1c0, %g0 ++ bnz,a,pn %icc, 1f ++ mov -2, %o0 ++ cmp %o1, 128 ++ bl,a,pn %icc, 1f ++ mov -2, %o0 ++ b aes_t4_set_encrypt_key ++ nop ++1: retl ++ nop ++.type AES_set_encrypt_key,#function ++.size AES_set_encrypt_key,.-AES_set_encrypt_key ++ ++.global AES_set_decrypt_key ++.align 32 ++AES_set_decrypt_key: ++ andcc %o2, 7, %g0 ! check alignment ++ bnz,a,pn %icc, 1f ++ mov -1, %o0 ++ brz,a,pn %o0, 1f ++ mov -1, %o0 ++ brz,a,pn %o2, 1f ++ mov -1, %o0 ++ andncc %o1, 0x1c0, %g0 ++ bnz,a,pn %icc, 1f ++ mov -2, %o0 ++ cmp %o1, 128 ++ bl,a,pn %icc, 1f ++ mov -2, %o0 ++ b aes_t4_set_decrypt_key ++ nop ++1: retl ++ nop ++.type AES_set_decrypt_key,#function ++.size AES_set_decrypt_key,.-AES_set_decrypt_key ++___ ++ ++my ($inp,$out,$len,$key,$ivec,$enc)=map("%o$_",(0..5)); ++ ++$code.=<<___; ++.globl AES_cbc_encrypt ++.align 32 ++AES_cbc_encrypt: ++ ld [$key + 240], %g1 ++ nop ++ brz $enc, .Lcbc_decrypt ++ cmp %g1, 12 ++ ++ bl,pt %icc, aes128_t4_cbc_encrypt ++ nop ++ be,pn %icc, aes192_t4_cbc_encrypt ++ nop ++ ba aes256_t4_cbc_encrypt ++ nop ++ ++.Lcbc_decrypt: ++ bl,pt %icc, aes128_t4_cbc_decrypt ++ nop ++ be,pn %icc, aes192_t4_cbc_decrypt ++ nop ++ ba aes256_t4_cbc_decrypt ++ nop ++.type AES_cbc_encrypt,#function ++.size AES_cbc_encrypt,.-AES_cbc_encrypt ++___ ++} ++$code.=<<___; ++.asciz "AES for SPARC T4, David S. Miller, Andy Polyakov" ++.align 4 ++___ ++ ++&emit_assembler(); ++ ++close STDOUT; +Index: crypto/des/asm/dest4-sparcv9.pl +=================================================================== +diff -uNr openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl +--- openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 2015-06-02 09:52:11.809148396 +0200 +@@ -0,0 +1,602 @@ ++#!/usr/bin/env perl ++ ++# ==================================================================== ++# Written by David S. Miller and Andy Polyakov ++# . The module is licensed under 2-clause BSD ++# license. March 2013. All rights reserved. ++# ==================================================================== ++ ++###################################################################### ++# DES for SPARC T4. ++# ++# As with other hardware-assisted ciphers CBC encrypt results [for ++# aligned data] are virtually identical to critical path lengths: ++# ++# DES Triple-DES ++# CBC encrypt 4.14/4.15(*) 11.7/11.7 ++# CBC decrypt 1.77/4.11(**) 6.42/7.47 ++# ++# (*) numbers after slash are for ++# misaligned data; ++# (**) this is result for largest ++# block size, unlike all other ++# cases smaller blocks results ++# are better[?]; ++ ++$0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1; ++push(@INC,"${dir}","${dir}../../perlasm"); ++require "sparcv9_modes.pl"; ++ ++&asm_init(@ARGV); ++ ++$code.=<<___ if ($::abibits==64); ++.register %g2,#scratch ++.register %g3,#scratch ++___ ++ ++$code.=<<___; ++.text ++___ ++ ++{ my ($inp,$out)=("%o0","%o1"); ++ ++$code.=<<___; ++.align 32 ++.globl des_t4_key_expand ++.type des_t4_key_expand,#function ++des_t4_key_expand: ++ andcc $inp, 0x7, %g0 ++ alignaddr $inp, %g0, $inp ++ bz,pt %icc, 1f ++ ldd [$inp + 0x00], %f0 ++ ldd [$inp + 0x08], %f2 ++ faligndata %f0, %f2, %f0 ++1: des_kexpand %f0, 0, %f0 ++ des_kexpand %f0, 1, %f2 ++ std %f0, [$out + 0x00] ++ des_kexpand %f2, 3, %f6 ++ std %f2, [$out + 0x08] ++ des_kexpand %f2, 2, %f4 ++ des_kexpand %f6, 3, %f10 ++ std %f6, [$out + 0x18] ++ des_kexpand %f6, 2, %f8 ++ std %f4, [$out + 0x10] ++ des_kexpand %f10, 3, %f14 ++ std %f10, [$out + 0x28] ++ des_kexpand %f10, 2, %f12 ++ std %f8, [$out + 0x20] ++ des_kexpand %f14, 1, %f16 ++ std %f14, [$out + 0x38] ++ des_kexpand %f16, 3, %f20 ++ std %f12, [$out + 0x30] ++ des_kexpand %f16, 2, %f18 ++ std %f16, [$out + 0x40] ++ des_kexpand %f20, 3, %f24 ++ std %f20, [$out + 0x50] ++ des_kexpand %f20, 2, %f22 ++ std %f18, [$out + 0x48] ++ des_kexpand %f24, 3, %f28 ++ std %f24, [$out + 0x60] ++ des_kexpand %f24, 2, %f26 ++ std %f22, [$out + 0x58] ++ des_kexpand %f28, 1, %f30 ++ std %f28, [$out + 0x70] ++ std %f26, [$out + 0x68] ++ retl ++ std %f30, [$out + 0x78] ++.size des_t4_key_expand,.-des_t4_key_expand ++___ ++} ++{ my ($inp,$out,$len,$key,$ivec) = map("%o$_",(0..4)); ++ my ($ileft,$iright,$omask) = map("%g$_",(1..3)); ++ ++$code.=<<___; ++.globl des_t4_cbc_encrypt ++.align 32 ++des_t4_cbc_encrypt: ++ ld [$ivec + 0], %f0 ! load ivec ++ ld [$ivec + 4], %f1 ++ ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 0xff, $omask ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ sub %g0, $ileft, $iright ++ and $out, 7, %g4 ++ alignaddrl $out, %g0, $out ++ srl $omask, %g4, $omask ++ srlx $len, 3, $len ++ movrz %g4, 0, $omask ++ prefetch [$out], 22 ++ ++ ldd [$key + 0x00], %f4 ! load key schedule ++ ldd [$key + 0x08], %f6 ++ ldd [$key + 0x10], %f8 ++ ldd [$key + 0x18], %f10 ++ ldd [$key + 0x20], %f12 ++ ldd [$key + 0x28], %f14 ++ ldd [$key + 0x30], %f16 ++ ldd [$key + 0x38], %f18 ++ ldd [$key + 0x40], %f20 ++ ldd [$key + 0x48], %f22 ++ ldd [$key + 0x50], %f24 ++ ldd [$key + 0x58], %f26 ++ ldd [$key + 0x60], %f28 ++ ldd [$key + 0x68], %f30 ++ ldd [$key + 0x70], %f32 ++ ldd [$key + 0x78], %f34 ++ ++.Ldes_cbc_enc_loop: ++ ldx [$inp + 0], %g4 ++ brz,pt $ileft, 4f ++ nop ++ ++ ldx [$inp + 8], %g5 ++ sllx %g4, $ileft, %g4 ++ srlx %g5, $iright, %g5 ++ or %g5, %g4, %g4 ++4: ++ movxtod %g4, %f2 ++ prefetch [$inp + 8+63], 20 ++ add $inp, 8, $inp ++ fxor %f2, %f0, %f0 ! ^= ivec ++ prefetch [$out + 63], 22 ++ ++ des_ip %f0, %f0 ++ des_round %f4, %f6, %f0, %f0 ++ des_round %f8, %f10, %f0, %f0 ++ des_round %f12, %f14, %f0, %f0 ++ des_round %f16, %f18, %f0, %f0 ++ des_round %f20, %f22, %f0, %f0 ++ des_round %f24, %f26, %f0, %f0 ++ des_round %f28, %f30, %f0, %f0 ++ des_round %f32, %f34, %f0, %f0 ++ des_iip %f0, %f0 ++ ++ brnz,pn $omask, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ brnz,pt $len, .Ldes_cbc_enc_loop ++ add $out, 8, $out ++ ++ st %f0, [$ivec + 0] ! write out ivec ++ retl ++ st %f1, [$ivec + 4] ++ ++.align 16 ++2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard ++ ! and ~4x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f2 ! handle unaligned output ++ ++ stda %f2, [$out + $omask]0xc0 ! partial store ++ add $out, 8, $out ++ orn %g0, $omask, $omask ++ stda %f2, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .Ldes_cbc_enc_loop+4 ++ orn %g0, $omask, $omask ++ ++ st %f0, [$ivec + 0] ! write out ivec ++ retl ++ st %f1, [$ivec + 4] ++.type des_t4_cbc_encrypt,#function ++.size des_t4_cbc_encrypt,.-des_t4_cbc_encrypt ++ ++.globl des_t4_cbc_decrypt ++.align 32 ++des_t4_cbc_decrypt: ++ ld [$ivec + 0], %f2 ! load ivec ++ ld [$ivec + 4], %f3 ++ ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 0xff, $omask ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ sub %g0, $ileft, $iright ++ and $out, 7, %g4 ++ alignaddrl $out, %g0, $out ++ srl $omask, %g4, $omask ++ srlx $len, 3, $len ++ movrz %g4, 0, $omask ++ prefetch [$out], 22 ++ ++ ldd [$key + 0x78], %f4 ! load key schedule ++ ldd [$key + 0x70], %f6 ++ ldd [$key + 0x68], %f8 ++ ldd [$key + 0x60], %f10 ++ ldd [$key + 0x58], %f12 ++ ldd [$key + 0x50], %f14 ++ ldd [$key + 0x48], %f16 ++ ldd [$key + 0x40], %f18 ++ ldd [$key + 0x38], %f20 ++ ldd [$key + 0x30], %f22 ++ ldd [$key + 0x28], %f24 ++ ldd [$key + 0x20], %f26 ++ ldd [$key + 0x18], %f28 ++ ldd [$key + 0x10], %f30 ++ ldd [$key + 0x08], %f32 ++ ldd [$key + 0x00], %f34 ++ ++.Ldes_cbc_dec_loop: ++ ldx [$inp + 0], %g4 ++ brz,pt $ileft, 4f ++ nop ++ ++ ldx [$inp + 8], %g5 ++ sllx %g4, $ileft, %g4 ++ srlx %g5, $iright, %g5 ++ or %g5, %g4, %g4 ++4: ++ movxtod %g4, %f0 ++ prefetch [$inp + 8+63], 20 ++ add $inp, 8, $inp ++ prefetch [$out + 63], 22 ++ ++ des_ip %f0, %f0 ++ des_round %f4, %f6, %f0, %f0 ++ des_round %f8, %f10, %f0, %f0 ++ des_round %f12, %f14, %f0, %f0 ++ des_round %f16, %f18, %f0, %f0 ++ des_round %f20, %f22, %f0, %f0 ++ des_round %f24, %f26, %f0, %f0 ++ des_round %f28, %f30, %f0, %f0 ++ des_round %f32, %f34, %f0, %f0 ++ des_iip %f0, %f0 ++ ++ fxor %f2, %f0, %f0 ! ^= ivec ++ movxtod %g4, %f2 ++ ++ brnz,pn $omask, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ brnz,pt $len, .Ldes_cbc_dec_loop ++ add $out, 8, $out ++ ++ st %f2, [$ivec + 0] ! write out ivec ++ retl ++ st %f3, [$ivec + 4] ++ ++.align 16 ++2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard ++ ! and ~4x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f0 ! handle unaligned output ++ ++ stda %f0, [$out + $omask]0xc0 ! partial store ++ add $out, 8, $out ++ orn %g0, $omask, $omask ++ stda %f0, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .Ldes_cbc_dec_loop+4 ++ orn %g0, $omask, $omask ++ ++ st %f2, [$ivec + 0] ! write out ivec ++ retl ++ st %f3, [$ivec + 4] ++.type des_t4_cbc_decrypt,#function ++.size des_t4_cbc_decrypt,.-des_t4_cbc_decrypt ++___ ++ ++# One might wonder why does one have back-to-back des_iip/des_ip ++# pairs between EDE passes. Indeed, aren't they inverse of each other? ++# They almost are. Outcome of the pair is 32-bit words being swapped ++# in target register. Consider pair of des_iip/des_ip as a way to ++# perform the due swap, it's actually fastest way in this case. ++ ++$code.=<<___; ++.globl des_t4_ede3_cbc_encrypt ++.align 32 ++des_t4_ede3_cbc_encrypt: ++ ld [$ivec + 0], %f0 ! load ivec ++ ld [$ivec + 4], %f1 ++ ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 0xff, $omask ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ sub %g0, $ileft, $iright ++ and $out, 7, %g4 ++ alignaddrl $out, %g0, $out ++ srl $omask, %g4, $omask ++ srlx $len, 3, $len ++ movrz %g4, 0, $omask ++ prefetch [$out], 22 ++ ++ ldd [$key + 0x00], %f4 ! load key schedule ++ ldd [$key + 0x08], %f6 ++ ldd [$key + 0x10], %f8 ++ ldd [$key + 0x18], %f10 ++ ldd [$key + 0x20], %f12 ++ ldd [$key + 0x28], %f14 ++ ldd [$key + 0x30], %f16 ++ ldd [$key + 0x38], %f18 ++ ldd [$key + 0x40], %f20 ++ ldd [$key + 0x48], %f22 ++ ldd [$key + 0x50], %f24 ++ ldd [$key + 0x58], %f26 ++ ldd [$key + 0x60], %f28 ++ ldd [$key + 0x68], %f30 ++ ldd [$key + 0x70], %f32 ++ ldd [$key + 0x78], %f34 ++ ++.Ldes_ede3_cbc_enc_loop: ++ ldx [$inp + 0], %g4 ++ brz,pt $ileft, 4f ++ nop ++ ++ ldx [$inp + 8], %g5 ++ sllx %g4, $ileft, %g4 ++ srlx %g5, $iright, %g5 ++ or %g5, %g4, %g4 ++4: ++ movxtod %g4, %f2 ++ prefetch [$inp + 8+63], 20 ++ add $inp, 8, $inp ++ fxor %f2, %f0, %f0 ! ^= ivec ++ prefetch [$out + 63], 22 ++ ++ des_ip %f0, %f0 ++ des_round %f4, %f6, %f0, %f0 ++ des_round %f8, %f10, %f0, %f0 ++ des_round %f12, %f14, %f0, %f0 ++ des_round %f16, %f18, %f0, %f0 ++ ldd [$key + 0x100-0x08], %f36 ++ ldd [$key + 0x100-0x10], %f38 ++ des_round %f20, %f22, %f0, %f0 ++ ldd [$key + 0x100-0x18], %f40 ++ ldd [$key + 0x100-0x20], %f42 ++ des_round %f24, %f26, %f0, %f0 ++ ldd [$key + 0x100-0x28], %f44 ++ ldd [$key + 0x100-0x30], %f46 ++ des_round %f28, %f30, %f0, %f0 ++ ldd [$key + 0x100-0x38], %f48 ++ ldd [$key + 0x100-0x40], %f50 ++ des_round %f32, %f34, %f0, %f0 ++ ldd [$key + 0x100-0x48], %f52 ++ ldd [$key + 0x100-0x50], %f54 ++ des_iip %f0, %f0 ++ ++ ldd [$key + 0x100-0x58], %f56 ++ ldd [$key + 0x100-0x60], %f58 ++ des_ip %f0, %f0 ++ ldd [$key + 0x100-0x68], %f60 ++ ldd [$key + 0x100-0x70], %f62 ++ des_round %f36, %f38, %f0, %f0 ++ ldd [$key + 0x100-0x78], %f36 ++ ldd [$key + 0x100-0x80], %f38 ++ des_round %f40, %f42, %f0, %f0 ++ des_round %f44, %f46, %f0, %f0 ++ des_round %f48, %f50, %f0, %f0 ++ ldd [$key + 0x100+0x00], %f40 ++ ldd [$key + 0x100+0x08], %f42 ++ des_round %f52, %f54, %f0, %f0 ++ ldd [$key + 0x100+0x10], %f44 ++ ldd [$key + 0x100+0x18], %f46 ++ des_round %f56, %f58, %f0, %f0 ++ ldd [$key + 0x100+0x20], %f48 ++ ldd [$key + 0x100+0x28], %f50 ++ des_round %f60, %f62, %f0, %f0 ++ ldd [$key + 0x100+0x30], %f52 ++ ldd [$key + 0x100+0x38], %f54 ++ des_round %f36, %f38, %f0, %f0 ++ ldd [$key + 0x100+0x40], %f56 ++ ldd [$key + 0x100+0x48], %f58 ++ des_iip %f0, %f0 ++ ++ ldd [$key + 0x100+0x50], %f60 ++ ldd [$key + 0x100+0x58], %f62 ++ des_ip %f0, %f0 ++ ldd [$key + 0x100+0x60], %f36 ++ ldd [$key + 0x100+0x68], %f38 ++ des_round %f40, %f42, %f0, %f0 ++ ldd [$key + 0x100+0x70], %f40 ++ ldd [$key + 0x100+0x78], %f42 ++ des_round %f44, %f46, %f0, %f0 ++ des_round %f48, %f50, %f0, %f0 ++ des_round %f52, %f54, %f0, %f0 ++ des_round %f56, %f58, %f0, %f0 ++ des_round %f60, %f62, %f0, %f0 ++ des_round %f36, %f38, %f0, %f0 ++ des_round %f40, %f42, %f0, %f0 ++ des_iip %f0, %f0 ++ ++ brnz,pn $omask, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ brnz,pt $len, .Ldes_ede3_cbc_enc_loop ++ add $out, 8, $out ++ ++ st %f0, [$ivec + 0] ! write out ivec ++ retl ++ st %f1, [$ivec + 4] ++ ++.align 16 ++2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard ++ ! and ~2x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f2 ! handle unaligned output ++ ++ stda %f2, [$out + $omask]0xc0 ! partial store ++ add $out, 8, $out ++ orn %g0, $omask, $omask ++ stda %f2, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .Ldes_ede3_cbc_enc_loop+4 ++ orn %g0, $omask, $omask ++ ++ st %f0, [$ivec + 0] ! write out ivec ++ retl ++ st %f1, [$ivec + 4] ++.type des_t4_ede3_cbc_encrypt,#function ++.size des_t4_ede3_cbc_encrypt,.-des_t4_ede3_cbc_encrypt ++ ++.globl des_t4_ede3_cbc_decrypt ++.align 32 ++des_t4_ede3_cbc_decrypt: ++ ld [$ivec + 0], %f2 ! load ivec ++ ld [$ivec + 4], %f3 ++ ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 0xff, $omask ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ sub %g0, $ileft, $iright ++ and $out, 7, %g4 ++ alignaddrl $out, %g0, $out ++ srl $omask, %g4, $omask ++ srlx $len, 3, $len ++ movrz %g4, 0, $omask ++ prefetch [$out], 22 ++ ++ ldd [$key + 0x100+0x78], %f4 ! load key schedule ++ ldd [$key + 0x100+0x70], %f6 ++ ldd [$key + 0x100+0x68], %f8 ++ ldd [$key + 0x100+0x60], %f10 ++ ldd [$key + 0x100+0x58], %f12 ++ ldd [$key + 0x100+0x50], %f14 ++ ldd [$key + 0x100+0x48], %f16 ++ ldd [$key + 0x100+0x40], %f18 ++ ldd [$key + 0x100+0x38], %f20 ++ ldd [$key + 0x100+0x30], %f22 ++ ldd [$key + 0x100+0x28], %f24 ++ ldd [$key + 0x100+0x20], %f26 ++ ldd [$key + 0x100+0x18], %f28 ++ ldd [$key + 0x100+0x10], %f30 ++ ldd [$key + 0x100+0x08], %f32 ++ ldd [$key + 0x100+0x00], %f34 ++ ++.Ldes_ede3_cbc_dec_loop: ++ ldx [$inp + 0], %g4 ++ brz,pt $ileft, 4f ++ nop ++ ++ ldx [$inp + 8], %g5 ++ sllx %g4, $ileft, %g4 ++ srlx %g5, $iright, %g5 ++ or %g5, %g4, %g4 ++4: ++ movxtod %g4, %f0 ++ prefetch [$inp + 8+63], 20 ++ add $inp, 8, $inp ++ prefetch [$out + 63], 22 ++ ++ des_ip %f0, %f0 ++ des_round %f4, %f6, %f0, %f0 ++ des_round %f8, %f10, %f0, %f0 ++ des_round %f12, %f14, %f0, %f0 ++ des_round %f16, %f18, %f0, %f0 ++ ldd [$key + 0x80+0x00], %f36 ++ ldd [$key + 0x80+0x08], %f38 ++ des_round %f20, %f22, %f0, %f0 ++ ldd [$key + 0x80+0x10], %f40 ++ ldd [$key + 0x80+0x18], %f42 ++ des_round %f24, %f26, %f0, %f0 ++ ldd [$key + 0x80+0x20], %f44 ++ ldd [$key + 0x80+0x28], %f46 ++ des_round %f28, %f30, %f0, %f0 ++ ldd [$key + 0x80+0x30], %f48 ++ ldd [$key + 0x80+0x38], %f50 ++ des_round %f32, %f34, %f0, %f0 ++ ldd [$key + 0x80+0x40], %f52 ++ ldd [$key + 0x80+0x48], %f54 ++ des_iip %f0, %f0 ++ ++ ldd [$key + 0x80+0x50], %f56 ++ ldd [$key + 0x80+0x58], %f58 ++ des_ip %f0, %f0 ++ ldd [$key + 0x80+0x60], %f60 ++ ldd [$key + 0x80+0x68], %f62 ++ des_round %f36, %f38, %f0, %f0 ++ ldd [$key + 0x80+0x70], %f36 ++ ldd [$key + 0x80+0x78], %f38 ++ des_round %f40, %f42, %f0, %f0 ++ des_round %f44, %f46, %f0, %f0 ++ des_round %f48, %f50, %f0, %f0 ++ ldd [$key + 0x80-0x08], %f40 ++ ldd [$key + 0x80-0x10], %f42 ++ des_round %f52, %f54, %f0, %f0 ++ ldd [$key + 0x80-0x18], %f44 ++ ldd [$key + 0x80-0x20], %f46 ++ des_round %f56, %f58, %f0, %f0 ++ ldd [$key + 0x80-0x28], %f48 ++ ldd [$key + 0x80-0x30], %f50 ++ des_round %f60, %f62, %f0, %f0 ++ ldd [$key + 0x80-0x38], %f52 ++ ldd [$key + 0x80-0x40], %f54 ++ des_round %f36, %f38, %f0, %f0 ++ ldd [$key + 0x80-0x48], %f56 ++ ldd [$key + 0x80-0x50], %f58 ++ des_iip %f0, %f0 ++ ++ ldd [$key + 0x80-0x58], %f60 ++ ldd [$key + 0x80-0x60], %f62 ++ des_ip %f0, %f0 ++ ldd [$key + 0x80-0x68], %f36 ++ ldd [$key + 0x80-0x70], %f38 ++ des_round %f40, %f42, %f0, %f0 ++ ldd [$key + 0x80-0x78], %f40 ++ ldd [$key + 0x80-0x80], %f42 ++ des_round %f44, %f46, %f0, %f0 ++ des_round %f48, %f50, %f0, %f0 ++ des_round %f52, %f54, %f0, %f0 ++ des_round %f56, %f58, %f0, %f0 ++ des_round %f60, %f62, %f0, %f0 ++ des_round %f36, %f38, %f0, %f0 ++ des_round %f40, %f42, %f0, %f0 ++ des_iip %f0, %f0 ++ ++ fxor %f2, %f0, %f0 ! ^= ivec ++ movxtod %g4, %f2 ++ ++ brnz,pn $omask, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ brnz,pt $len, .Ldes_ede3_cbc_dec_loop ++ add $out, 8, $out ++ ++ st %f2, [$ivec + 0] ! write out ivec ++ retl ++ st %f3, [$ivec + 4] ++ ++.align 16 ++2: ldxa [$inp]0x82, %g4 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f0 ! handle unaligned output ++ ++ stda %f0, [$out + $omask]0xc0 ! partial store ++ add $out, 8, $out ++ orn %g0, $omask, $omask ++ stda %f0, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .Ldes_ede3_cbc_dec_loop+4 ++ orn %g0, $omask, $omask ++ ++ st %f2, [$ivec + 0] ! write out ivec ++ retl ++ st %f3, [$ivec + 4] ++.type des_t4_ede3_cbc_decrypt,#function ++.size des_t4_ede3_cbc_decrypt,.-des_t4_ede3_cbc_decrypt ++___ ++} ++$code.=<<___; ++.asciz "DES for SPARC T4, David S. Miller, Andy Polyakov" ++.align 4 ++___ ++ ++&emit_assembler(); ++ ++close STDOUT; +Index: crypto/perlasm/sparcv9_modes.pl +=================================================================== +diff -uNr openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl +--- openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 2015-06-02 09:52:11.809148396 +0200 +@@ -0,0 +1,1680 @@ ++#!/usr/bin/env perl ++ ++# Specific modes implementations for SPARC Architecture 2011. There ++# is T4 dependency though, an ASI value that is not specified in the ++# Architecture Manual. But as SPARC universe is rather monocultural, ++# we imply that processor capable of executing crypto instructions ++# can handle the ASI in question as well. This means that we ought to ++# keep eyes open when new processors emerge... ++# ++# As for above mentioned ASI. It's so called "block initializing ++# store" which cancels "read" in "read-update-write" on cache lines. ++# This is "cooperative" optimization, as it reduces overall pressure ++# on memory interface. Benefits can't be observed/quantified with ++# usual benchmarks, on the contrary you can notice that single-thread ++# performance for parallelizable modes is ~1.5% worse for largest ++# block sizes [though few percent better for not so long ones]. All ++# this based on suggestions from David Miller. ++ ++sub asm_init { # to be called with @ARGV as argument ++ for (@_) { $::abibits=64 if (/\-m64/ || /\-xarch\=v9/); } ++ if ($::abibits==64) { $::bias=2047; $::frame=192; $::size_t_cc="%xcc"; } ++ else { $::bias=0; $::frame=112; $::size_t_cc="%icc"; } ++} ++ ++# unified interface ++my ($inp,$out,$len,$key,$ivec)=map("%i$_",(0..5)); ++# local variables ++my ($ileft,$iright,$ooff,$omask,$ivoff,$blk_init)=map("%l$_",(0..7)); ++ ++sub alg_cbc_encrypt_implement { ++my ($alg,$bits) = @_; ++ ++$::code.=<<___; ++.globl ${alg}${bits}_t4_cbc_encrypt ++.align 32 ++${alg}${bits}_t4_cbc_encrypt: ++ save %sp, -$::frame, %sp ++ sub $inp, $out, $blk_init ! $inp!=$out ++___ ++$::code.=<<___ if (!$::evp); ++ andcc $ivec, 7, $ivoff ++ alignaddr $ivec, %g0, $ivec ++ ++ ldd [$ivec + 0], %f0 ! load ivec ++ bz,pt %icc, 1f ++ ldd [$ivec + 8], %f2 ++ ldd [$ivec + 16], %f4 ++ faligndata %f0, %f2, %f0 ++ faligndata %f2, %f4, %f2 ++1: ++___ ++$::code.=<<___ if ($::evp); ++ ld [$ivec + 0], %f0 ++ ld [$ivec + 4], %f1 ++ ld [$ivec + 8], %f2 ++ ld [$ivec + 12], %f3 ++___ ++$::code.=<<___; ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ call _${alg}${bits}_load_enckey ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 64, $iright ++ mov 0xff, $omask ++ sub $iright, $ileft, $iright ++ and $out, 7, $ooff ++ cmp $len, 127 ++ movrnz $ooff, 0, $blk_init ! if ( $out&7 || ++ movleu $::size_t_cc, 0, $blk_init ! $len<128 || ++ brnz,pn $blk_init, .L${bits}cbc_enc_blk ! $inp==$out) ++ srl $omask, $ooff, $omask ++ ++ alignaddrl $out, %g0, $out ++ srlx $len, 4, $len ++ prefetch [$out], 22 ++ ++.L${bits}_cbc_enc_loop: ++ ldx [$inp + 0], %o0 ++ brz,pt $ileft, 4f ++ ldx [$inp + 8], %o1 ++ ++ ldx [$inp + 16], %o2 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ sllx %o1, $ileft, %o1 ++ or %g1, %o0, %o0 ++ srlx %o2, $iright, %o2 ++ or %o2, %o1, %o1 ++4: ++ xor %g4, %o0, %o0 ! ^= rk[0] ++ xor %g5, %o1, %o1 ++ movxtod %o0, %f12 ++ movxtod %o1, %f14 ++ ++ fxor %f12, %f0, %f0 ! ^= ivec ++ fxor %f14, %f2, %f2 ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 16+63], 20 ++ call _${alg}${bits}_encrypt_1x ++ add $inp, 16, $inp ++ ++ brnz,pn $ooff, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ brnz,pt $len, .L${bits}_cbc_enc_loop ++ add $out, 16, $out ++___ ++$::code.=<<___ if ($::evp); ++ st %f0, [$ivec + 0] ++ st %f1, [$ivec + 4] ++ st %f2, [$ivec + 8] ++ st %f3, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, 3f ++ nop ++ ++ std %f0, [$ivec + 0] ! write out ivec ++ std %f2, [$ivec + 8] ++___ ++$::code.=<<___; ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f4 ! handle unaligned output ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ ++ stda %f4, [$out + $omask]0xc0 ! partial store ++ std %f6, [$out + 8] ++ add $out, 16, $out ++ orn %g0, $omask, $omask ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_cbc_enc_loop+4 ++ orn %g0, $omask, $omask ++___ ++$::code.=<<___ if ($::evp); ++ st %f0, [$ivec + 0] ++ st %f1, [$ivec + 4] ++ st %f2, [$ivec + 8] ++ st %f3, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, 3f ++ nop ++ ++ std %f0, [$ivec + 0] ! write out ivec ++ std %f2, [$ivec + 8] ++ ret ++ restore ++ ++.align 16 ++3: alignaddrl $ivec, $ivoff, %g0 ! handle unaligned ivec ++ mov 0xff, $omask ++ srl $omask, $ivoff, $omask ++ faligndata %f0, %f0, %f4 ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ stda %f4, [$ivec + $omask]0xc0 ++ std %f6, [$ivec + 8] ++ add $ivec, 16, $ivec ++ orn %g0, $omask, $omask ++ stda %f8, [$ivec + $omask]0xc0 ++___ ++$::code.=<<___; ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}cbc_enc_blk: ++ add $out, $len, $blk_init ++ and $blk_init, 63, $blk_init ! tail ++ sub $len, $blk_init, $len ++ add $blk_init, 15, $blk_init ! round up to 16n ++ srlx $len, 4, $len ++ srl $blk_init, 4, $blk_init ++ ++.L${bits}_cbc_enc_blk_loop: ++ ldx [$inp + 0], %o0 ++ brz,pt $ileft, 5f ++ ldx [$inp + 8], %o1 ++ ++ ldx [$inp + 16], %o2 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ sllx %o1, $ileft, %o1 ++ or %g1, %o0, %o0 ++ srlx %o2, $iright, %o2 ++ or %o2, %o1, %o1 ++5: ++ xor %g4, %o0, %o0 ! ^= rk[0] ++ xor %g5, %o1, %o1 ++ movxtod %o0, %f12 ++ movxtod %o1, %f14 ++ ++ fxor %f12, %f0, %f0 ! ^= ivec ++ fxor %f14, %f2, %f2 ++ prefetch [$inp + 16+63], 20 ++ call _${alg}${bits}_encrypt_1x ++ add $inp, 16, $inp ++ sub $len, 1, $len ++ ++ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ brnz,pt $len, .L${bits}_cbc_enc_blk_loop ++ add $out, 8, $out ++ ++ membar #StoreLoad|#StoreStore ++ brnz,pt $blk_init, .L${bits}_cbc_enc_loop ++ mov $blk_init, $len ++___ ++$::code.=<<___ if ($::evp); ++ st %f0, [$ivec + 0] ++ st %f1, [$ivec + 4] ++ st %f2, [$ivec + 8] ++ st %f3, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, 3b ++ nop ++ ++ std %f0, [$ivec + 0] ! write out ivec ++ std %f2, [$ivec + 8] ++___ ++$::code.=<<___; ++ ret ++ restore ++.type ${alg}${bits}_t4_cbc_encrypt,#function ++.size ${alg}${bits}_t4_cbc_encrypt,.-${alg}${bits}_t4_cbc_encrypt ++___ ++} ++ ++sub alg_cbc_decrypt_implement { ++my ($alg,$bits) = @_; ++ ++$::code.=<<___; ++.globl ${alg}${bits}_t4_cbc_decrypt ++.align 32 ++${alg}${bits}_t4_cbc_decrypt: ++ save %sp, -$::frame, %sp ++ sub $inp, $out, $blk_init ! $inp!=$out ++___ ++$::code.=<<___ if (!$::evp); ++ andcc $ivec, 7, $ivoff ++ alignaddr $ivec, %g0, $ivec ++ ++ ldd [$ivec + 0], %f12 ! load ivec ++ bz,pt %icc, 1f ++ ldd [$ivec + 8], %f14 ++ ldd [$ivec + 16], %f0 ++ faligndata %f12, %f14, %f12 ++ faligndata %f14, %f0, %f14 ++1: ++___ ++$::code.=<<___ if ($::evp); ++ ld [$ivec + 0], %f12 ! load ivec ++ ld [$ivec + 4], %f13 ++ ld [$ivec + 8], %f14 ++ ld [$ivec + 12], %f15 ++___ ++$::code.=<<___; ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ call _${alg}${bits}_load_deckey ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 64, $iright ++ mov 0xff, $omask ++ sub $iright, $ileft, $iright ++ and $out, 7, $ooff ++ cmp $len, 255 ++ movrnz $ooff, 0, $blk_init ! if ( $out&7 || ++ movleu $::size_t_cc, 0, $blk_init ! $len<256 || ++ brnz,pn $blk_init, .L${bits}cbc_dec_blk ! $inp==$out) ++ srl $omask, $ooff, $omask ++ ++ andcc $len, 16, %g0 ! is number of blocks even? ++ srlx $len, 4, $len ++ alignaddrl $out, %g0, $out ++ bz %icc, .L${bits}_cbc_dec_loop2x ++ prefetch [$out], 22 ++.L${bits}_cbc_dec_loop: ++ ldx [$inp + 0], %o0 ++ brz,pt $ileft, 4f ++ ldx [$inp + 8], %o1 ++ ++ ldx [$inp + 16], %o2 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ sllx %o1, $ileft, %o1 ++ or %g1, %o0, %o0 ++ srlx %o2, $iright, %o2 ++ or %o2, %o1, %o1 ++4: ++ xor %g4, %o0, %o2 ! ^= rk[0] ++ xor %g5, %o1, %o3 ++ movxtod %o2, %f0 ++ movxtod %o3, %f2 ++ ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 16+63], 20 ++ call _${alg}${bits}_decrypt_1x ++ add $inp, 16, $inp ++ ++ fxor %f12, %f0, %f0 ! ^= ivec ++ fxor %f14, %f2, %f2 ++ movxtod %o0, %f12 ++ movxtod %o1, %f14 ++ ++ brnz,pn $ooff, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ brnz,pt $len, .L${bits}_cbc_dec_loop2x ++ add $out, 16, $out ++___ ++$::code.=<<___ if ($::evp); ++ st %f12, [$ivec + 0] ++ st %f13, [$ivec + 4] ++ st %f14, [$ivec + 8] ++ st %f15, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec ++ nop ++ ++ std %f12, [$ivec + 0] ! write out ivec ++ std %f14, [$ivec + 8] ++___ ++$::code.=<<___; ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f4 ! handle unaligned output ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ ++ stda %f4, [$out + $omask]0xc0 ! partial store ++ std %f6, [$out + 8] ++ add $out, 16, $out ++ orn %g0, $omask, $omask ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_cbc_dec_loop2x+4 ++ orn %g0, $omask, $omask ++___ ++$::code.=<<___ if ($::evp); ++ st %f12, [$ivec + 0] ++ st %f13, [$ivec + 4] ++ st %f14, [$ivec + 8] ++ st %f15, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec ++ nop ++ ++ std %f12, [$ivec + 0] ! write out ivec ++ std %f14, [$ivec + 8] ++___ ++$::code.=<<___; ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}_cbc_dec_loop2x: ++ ldx [$inp + 0], %o0 ++ ldx [$inp + 8], %o1 ++ ldx [$inp + 16], %o2 ++ brz,pt $ileft, 4f ++ ldx [$inp + 24], %o3 ++ ++ ldx [$inp + 32], %o4 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ or %g1, %o0, %o0 ++ sllx %o1, $ileft, %o1 ++ srlx %o2, $iright, %g1 ++ or %g1, %o1, %o1 ++ sllx %o2, $ileft, %o2 ++ srlx %o3, $iright, %g1 ++ or %g1, %o2, %o2 ++ sllx %o3, $ileft, %o3 ++ srlx %o4, $iright, %o4 ++ or %o4, %o3, %o3 ++4: ++ xor %g4, %o0, %o4 ! ^= rk[0] ++ xor %g5, %o1, %o5 ++ movxtod %o4, %f0 ++ movxtod %o5, %f2 ++ xor %g4, %o2, %o4 ++ xor %g5, %o3, %o5 ++ movxtod %o4, %f4 ++ movxtod %o5, %f6 ++ ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 32+63], 20 ++ call _${alg}${bits}_decrypt_2x ++ add $inp, 32, $inp ++ ++ movxtod %o0, %f8 ++ movxtod %o1, %f10 ++ fxor %f12, %f0, %f0 ! ^= ivec ++ fxor %f14, %f2, %f2 ++ movxtod %o2, %f12 ++ movxtod %o3, %f14 ++ fxor %f8, %f4, %f4 ++ fxor %f10, %f6, %f6 ++ ++ brnz,pn $ooff, 2f ++ sub $len, 2, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ std %f4, [$out + 16] ++ std %f6, [$out + 24] ++ brnz,pt $len, .L${bits}_cbc_dec_loop2x ++ add $out, 32, $out ++___ ++$::code.=<<___ if ($::evp); ++ st %f12, [$ivec + 0] ++ st %f13, [$ivec + 4] ++ st %f14, [$ivec + 8] ++ st %f15, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec ++ nop ++ ++ std %f12, [$ivec + 0] ! write out ivec ++ std %f14, [$ivec + 8] ++___ ++$::code.=<<___; ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f8 ! handle unaligned output ++ faligndata %f0, %f2, %f0 ++ faligndata %f2, %f4, %f2 ++ faligndata %f4, %f6, %f4 ++ faligndata %f6, %f6, %f6 ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ std %f0, [$out + 8] ++ std %f2, [$out + 16] ++ std %f4, [$out + 24] ++ add $out, 32, $out ++ orn %g0, $omask, $omask ++ stda %f6, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_cbc_dec_loop2x+4 ++ orn %g0, $omask, $omask ++___ ++$::code.=<<___ if ($::evp); ++ st %f12, [$ivec + 0] ++ st %f13, [$ivec + 4] ++ st %f14, [$ivec + 8] ++ st %f15, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, .L${bits}_cbc_dec_unaligned_ivec ++ nop ++ ++ std %f12, [$ivec + 0] ! write out ivec ++ std %f14, [$ivec + 8] ++ ret ++ restore ++ ++.align 16 ++.L${bits}_cbc_dec_unaligned_ivec: ++ alignaddrl $ivec, $ivoff, %g0 ! handle unaligned ivec ++ mov 0xff, $omask ++ srl $omask, $ivoff, $omask ++ faligndata %f12, %f12, %f0 ++ faligndata %f12, %f14, %f2 ++ faligndata %f14, %f14, %f4 ++ stda %f0, [$ivec + $omask]0xc0 ++ std %f2, [$ivec + 8] ++ add $ivec, 16, $ivec ++ orn %g0, $omask, $omask ++ stda %f4, [$ivec + $omask]0xc0 ++___ ++$::code.=<<___; ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}cbc_dec_blk: ++ add $out, $len, $blk_init ++ and $blk_init, 63, $blk_init ! tail ++ sub $len, $blk_init, $len ++ add $blk_init, 15, $blk_init ! round up to 16n ++ srlx $len, 4, $len ++ srl $blk_init, 4, $blk_init ++ sub $len, 1, $len ++ add $blk_init, 1, $blk_init ++ ++.L${bits}_cbc_dec_blk_loop2x: ++ ldx [$inp + 0], %o0 ++ ldx [$inp + 8], %o1 ++ ldx [$inp + 16], %o2 ++ brz,pt $ileft, 5f ++ ldx [$inp + 24], %o3 ++ ++ ldx [$inp + 32], %o4 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ or %g1, %o0, %o0 ++ sllx %o1, $ileft, %o1 ++ srlx %o2, $iright, %g1 ++ or %g1, %o1, %o1 ++ sllx %o2, $ileft, %o2 ++ srlx %o3, $iright, %g1 ++ or %g1, %o2, %o2 ++ sllx %o3, $ileft, %o3 ++ srlx %o4, $iright, %o4 ++ or %o4, %o3, %o3 ++5: ++ xor %g4, %o0, %o4 ! ^= rk[0] ++ xor %g5, %o1, %o5 ++ movxtod %o4, %f0 ++ movxtod %o5, %f2 ++ xor %g4, %o2, %o4 ++ xor %g5, %o3, %o5 ++ movxtod %o4, %f4 ++ movxtod %o5, %f6 ++ ++ prefetch [$inp + 32+63], 20 ++ call _${alg}${bits}_decrypt_2x ++ add $inp, 32, $inp ++ subcc $len, 2, $len ++ ++ movxtod %o0, %f8 ++ movxtod %o1, %f10 ++ fxor %f12, %f0, %f0 ! ^= ivec ++ fxor %f14, %f2, %f2 ++ movxtod %o2, %f12 ++ movxtod %o3, %f14 ++ fxor %f8, %f4, %f4 ++ fxor %f10, %f6, %f6 ++ ++ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f4, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f6, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ bgu,pt $::size_t_cc, .L${bits}_cbc_dec_blk_loop2x ++ add $out, 8, $out ++ ++ add $blk_init, $len, $len ++ andcc $len, 1, %g0 ! is number of blocks even? ++ membar #StoreLoad|#StoreStore ++ bnz,pt %icc, .L${bits}_cbc_dec_loop ++ srl $len, 0, $len ++ brnz,pn $len, .L${bits}_cbc_dec_loop2x ++ nop ++___ ++$::code.=<<___ if ($::evp); ++ st %f12, [$ivec + 0] ! write out ivec ++ st %f13, [$ivec + 4] ++ st %f14, [$ivec + 8] ++ st %f15, [$ivec + 12] ++___ ++$::code.=<<___ if (!$::evp); ++ brnz,pn $ivoff, 3b ++ nop ++ ++ std %f12, [$ivec + 0] ! write out ivec ++ std %f14, [$ivec + 8] ++___ ++$::code.=<<___; ++ ret ++ restore ++.type ${alg}${bits}_t4_cbc_decrypt,#function ++.size ${alg}${bits}_t4_cbc_decrypt,.-${alg}${bits}_t4_cbc_decrypt ++___ ++} ++ ++sub alg_ctr32_implement { ++my ($alg,$bits) = @_; ++ ++$::code.=<<___; ++.globl ${alg}${bits}_t4_ctr32_encrypt ++.align 32 ++${alg}${bits}_t4_ctr32_encrypt: ++ save %sp, -$::frame, %sp ++ ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ call _${alg}${bits}_load_enckey ++ sllx $len, 4, $len ++ ++ ld [$ivec + 0], %l4 ! counter ++ ld [$ivec + 4], %l5 ++ ld [$ivec + 8], %l6 ++ ld [$ivec + 12], %l7 ++ ++ sllx %l4, 32, %o5 ++ or %l5, %o5, %o5 ++ sllx %l6, 32, %g1 ++ xor %o5, %g4, %g4 ! ^= rk[0] ++ xor %g1, %g5, %g5 ++ movxtod %g4, %f14 ! most significant 64 bits ++ ++ sub $inp, $out, $blk_init ! $inp!=$out ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 64, $iright ++ mov 0xff, $omask ++ sub $iright, $ileft, $iright ++ and $out, 7, $ooff ++ cmp $len, 255 ++ movrnz $ooff, 0, $blk_init ! if ( $out&7 || ++ movleu $::size_t_cc, 0, $blk_init ! $len<256 || ++ brnz,pn $blk_init, .L${bits}_ctr32_blk ! $inp==$out) ++ srl $omask, $ooff, $omask ++ ++ andcc $len, 16, %g0 ! is number of blocks even? ++ alignaddrl $out, %g0, $out ++ bz %icc, .L${bits}_ctr32_loop2x ++ srlx $len, 4, $len ++.L${bits}_ctr32_loop: ++ ldx [$inp + 0], %o0 ++ brz,pt $ileft, 4f ++ ldx [$inp + 8], %o1 ++ ++ ldx [$inp + 16], %o2 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ sllx %o1, $ileft, %o1 ++ or %g1, %o0, %o0 ++ srlx %o2, $iright, %o2 ++ or %o2, %o1, %o1 ++4: ++ xor %g5, %l7, %g1 ! ^= rk[0] ++ add %l7, 1, %l7 ++ movxtod %g1, %f2 ++ srl %l7, 0, %l7 ! clruw ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 16+63], 20 ++___ ++$::code.=<<___ if ($alg eq "aes"); ++ aes_eround01 %f16, %f14, %f2, %f4 ++ aes_eround23 %f18, %f14, %f2, %f2 ++___ ++$::code.=<<___ if ($alg eq "cmll"); ++ camellia_f %f16, %f2, %f14, %f2 ++ camellia_f %f18, %f14, %f2, %f0 ++___ ++$::code.=<<___; ++ call _${alg}${bits}_encrypt_1x+8 ++ add $inp, 16, $inp ++ ++ movxtod %o0, %f10 ++ movxtod %o1, %f12 ++ fxor %f10, %f0, %f0 ! ^= inp ++ fxor %f12, %f2, %f2 ++ ++ brnz,pn $ooff, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ brnz,pt $len, .L${bits}_ctr32_loop2x ++ add $out, 16, $out ++ ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f4 ! handle unaligned output ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ stda %f4, [$out + $omask]0xc0 ! partial store ++ std %f6, [$out + 8] ++ add $out, 16, $out ++ orn %g0, $omask, $omask ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_ctr32_loop2x+4 ++ orn %g0, $omask, $omask ++ ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}_ctr32_loop2x: ++ ldx [$inp + 0], %o0 ++ ldx [$inp + 8], %o1 ++ ldx [$inp + 16], %o2 ++ brz,pt $ileft, 4f ++ ldx [$inp + 24], %o3 ++ ++ ldx [$inp + 32], %o4 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ or %g1, %o0, %o0 ++ sllx %o1, $ileft, %o1 ++ srlx %o2, $iright, %g1 ++ or %g1, %o1, %o1 ++ sllx %o2, $ileft, %o2 ++ srlx %o3, $iright, %g1 ++ or %g1, %o2, %o2 ++ sllx %o3, $ileft, %o3 ++ srlx %o4, $iright, %o4 ++ or %o4, %o3, %o3 ++4: ++ xor %g5, %l7, %g1 ! ^= rk[0] ++ add %l7, 1, %l7 ++ movxtod %g1, %f2 ++ srl %l7, 0, %l7 ! clruw ++ xor %g5, %l7, %g1 ++ add %l7, 1, %l7 ++ movxtod %g1, %f6 ++ srl %l7, 0, %l7 ! clruw ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 32+63], 20 ++___ ++$::code.=<<___ if ($alg eq "aes"); ++ aes_eround01 %f16, %f14, %f2, %f8 ++ aes_eround23 %f18, %f14, %f2, %f2 ++ aes_eround01 %f16, %f14, %f6, %f10 ++ aes_eround23 %f18, %f14, %f6, %f6 ++___ ++$::code.=<<___ if ($alg eq "cmll"); ++ camellia_f %f16, %f2, %f14, %f2 ++ camellia_f %f16, %f6, %f14, %f6 ++ camellia_f %f18, %f14, %f2, %f0 ++ camellia_f %f18, %f14, %f6, %f4 ++___ ++$::code.=<<___; ++ call _${alg}${bits}_encrypt_2x+16 ++ add $inp, 32, $inp ++ ++ movxtod %o0, %f8 ++ movxtod %o1, %f10 ++ movxtod %o2, %f12 ++ fxor %f8, %f0, %f0 ! ^= inp ++ movxtod %o3, %f8 ++ fxor %f10, %f2, %f2 ++ fxor %f12, %f4, %f4 ++ fxor %f8, %f6, %f6 ++ ++ brnz,pn $ooff, 2f ++ sub $len, 2, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ std %f4, [$out + 16] ++ std %f6, [$out + 24] ++ brnz,pt $len, .L${bits}_ctr32_loop2x ++ add $out, 32, $out ++ ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f8 ! handle unaligned output ++ faligndata %f0, %f2, %f0 ++ faligndata %f2, %f4, %f2 ++ faligndata %f4, %f6, %f4 ++ faligndata %f6, %f6, %f6 ++ ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ std %f0, [$out + 8] ++ std %f2, [$out + 16] ++ std %f4, [$out + 24] ++ add $out, 32, $out ++ orn %g0, $omask, $omask ++ stda %f6, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_ctr32_loop2x+4 ++ orn %g0, $omask, $omask ++ ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}_ctr32_blk: ++ add $out, $len, $blk_init ++ and $blk_init, 63, $blk_init ! tail ++ sub $len, $blk_init, $len ++ add $blk_init, 15, $blk_init ! round up to 16n ++ srlx $len, 4, $len ++ srl $blk_init, 4, $blk_init ++ sub $len, 1, $len ++ add $blk_init, 1, $blk_init ++ ++.L${bits}_ctr32_blk_loop2x: ++ ldx [$inp + 0], %o0 ++ ldx [$inp + 8], %o1 ++ ldx [$inp + 16], %o2 ++ brz,pt $ileft, 5f ++ ldx [$inp + 24], %o3 ++ ++ ldx [$inp + 32], %o4 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ or %g1, %o0, %o0 ++ sllx %o1, $ileft, %o1 ++ srlx %o2, $iright, %g1 ++ or %g1, %o1, %o1 ++ sllx %o2, $ileft, %o2 ++ srlx %o3, $iright, %g1 ++ or %g1, %o2, %o2 ++ sllx %o3, $ileft, %o3 ++ srlx %o4, $iright, %o4 ++ or %o4, %o3, %o3 ++5: ++ xor %g5, %l7, %g1 ! ^= rk[0] ++ add %l7, 1, %l7 ++ movxtod %g1, %f2 ++ srl %l7, 0, %l7 ! clruw ++ xor %g5, %l7, %g1 ++ add %l7, 1, %l7 ++ movxtod %g1, %f6 ++ srl %l7, 0, %l7 ! clruw ++ prefetch [$inp + 32+63], 20 ++___ ++$::code.=<<___ if ($alg eq "aes"); ++ aes_eround01 %f16, %f14, %f2, %f8 ++ aes_eround23 %f18, %f14, %f2, %f2 ++ aes_eround01 %f16, %f14, %f6, %f10 ++ aes_eround23 %f18, %f14, %f6, %f6 ++___ ++$::code.=<<___ if ($alg eq "cmll"); ++ camellia_f %f16, %f2, %f14, %f2 ++ camellia_f %f16, %f6, %f14, %f6 ++ camellia_f %f18, %f14, %f2, %f0 ++ camellia_f %f18, %f14, %f6, %f4 ++___ ++$::code.=<<___; ++ call _${alg}${bits}_encrypt_2x+16 ++ add $inp, 32, $inp ++ subcc $len, 2, $len ++ ++ movxtod %o0, %f8 ++ movxtod %o1, %f10 ++ movxtod %o2, %f12 ++ fxor %f8, %f0, %f0 ! ^= inp ++ movxtod %o3, %f8 ++ fxor %f10, %f2, %f2 ++ fxor %f12, %f4, %f4 ++ fxor %f8, %f6, %f6 ++ ++ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f4, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f6, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ bgu,pt $::size_t_cc, .L${bits}_ctr32_blk_loop2x ++ add $out, 8, $out ++ ++ add $blk_init, $len, $len ++ andcc $len, 1, %g0 ! is number of blocks even? ++ membar #StoreLoad|#StoreStore ++ bnz,pt %icc, .L${bits}_ctr32_loop ++ srl $len, 0, $len ++ brnz,pn $len, .L${bits}_ctr32_loop2x ++ nop ++ ++ ret ++ restore ++.type ${alg}${bits}_t4_ctr32_encrypt,#function ++.size ${alg}${bits}_t4_ctr32_encrypt,.-${alg}${bits}_t4_ctr32_encrypt ++___ ++} ++ ++sub alg_xts_implement { ++my ($alg,$bits,$dir) = @_; ++my ($inp,$out,$len,$key1,$key2,$ivec)=map("%i$_",(0..5)); ++my $rem=$ivec; ++ ++$::code.=<<___; ++.globl ${alg}${bits}_t4_xts_${dir}crypt ++.align 32 ++${alg}${bits}_t4_xts_${dir}crypt: ++ save %sp, -$::frame-16, %sp ++ ++ mov $ivec, %o0 ++ add %fp, $::bias-16, %o1 ++ call ${alg}_t4_encrypt ++ mov $key2, %o2 ++ ++ add %fp, $::bias-16, %l7 ++ ldxa [%l7]0x88, %g2 ++ add %fp, $::bias-8, %l7 ++ ldxa [%l7]0x88, %g3 ! %g3:%g2 is tweak ++ ++ sethi %hi(0x76543210), %l7 ++ or %l7, %lo(0x76543210), %l7 ++ bmask %l7, %g0, %g0 ! byte swap mask ++ ++ prefetch [$inp], 20 ++ prefetch [$inp + 63], 20 ++ call _${alg}${bits}_load_${dir}ckey ++ and $len, 15, $rem ++ and $len, -16, $len ++___ ++$code.=<<___ if ($dir eq "de"); ++ mov 0, %l7 ++ movrnz $rem, 16, %l7 ++ sub $len, %l7, $len ++___ ++$code.=<<___; ++ ++ sub $inp, $out, $blk_init ! $inp!=$out ++ and $inp, 7, $ileft ++ andn $inp, 7, $inp ++ sll $ileft, 3, $ileft ++ mov 64, $iright ++ mov 0xff, $omask ++ sub $iright, $ileft, $iright ++ and $out, 7, $ooff ++ cmp $len, 255 ++ movrnz $ooff, 0, $blk_init ! if ( $out&7 || ++ movleu $::size_t_cc, 0, $blk_init ! $len<256 || ++ brnz,pn $blk_init, .L${bits}_xts_${dir}blk ! $inp==$out) ++ srl $omask, $ooff, $omask ++ ++ andcc $len, 16, %g0 ! is number of blocks even? ++___ ++$code.=<<___ if ($dir eq "de"); ++ brz,pn $len, .L${bits}_xts_${dir}steal ++___ ++$code.=<<___; ++ alignaddrl $out, %g0, $out ++ bz %icc, .L${bits}_xts_${dir}loop2x ++ srlx $len, 4, $len ++.L${bits}_xts_${dir}loop: ++ ldx [$inp + 0], %o0 ++ brz,pt $ileft, 4f ++ ldx [$inp + 8], %o1 ++ ++ ldx [$inp + 16], %o2 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ sllx %o1, $ileft, %o1 ++ or %g1, %o0, %o0 ++ srlx %o2, $iright, %o2 ++ or %o2, %o1, %o1 ++4: ++ movxtod %g2, %f12 ++ movxtod %g3, %f14 ++ bshuffle %f12, %f12, %f12 ++ bshuffle %f14, %f14, %f14 ++ ++ xor %g4, %o0, %o0 ! ^= rk[0] ++ xor %g5, %o1, %o1 ++ movxtod %o0, %f0 ++ movxtod %o1, %f2 ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 16+63], 20 ++ call _${alg}${bits}_${dir}crypt_1x ++ add $inp, 16, $inp ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ ++ srax %g3, 63, %l7 ! next tweak value ++ addcc %g2, %g2, %g2 ++ and %l7, 0x87, %l7 ++ addxc %g3, %g3, %g3 ++ xor %l7, %g2, %g2 ++ ++ brnz,pn $ooff, 2f ++ sub $len, 1, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ brnz,pt $len, .L${bits}_xts_${dir}loop2x ++ add $out, 16, $out ++ ++ brnz,pn $rem, .L${bits}_xts_${dir}steal ++ nop ++ ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f4 ! handle unaligned output ++ faligndata %f0, %f2, %f6 ++ faligndata %f2, %f2, %f8 ++ stda %f4, [$out + $omask]0xc0 ! partial store ++ std %f6, [$out + 8] ++ add $out, 16, $out ++ orn %g0, $omask, $omask ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_xts_${dir}loop2x+4 ++ orn %g0, $omask, $omask ++ ++ brnz,pn $rem, .L${bits}_xts_${dir}steal ++ nop ++ ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}_xts_${dir}loop2x: ++ ldx [$inp + 0], %o0 ++ ldx [$inp + 8], %o1 ++ ldx [$inp + 16], %o2 ++ brz,pt $ileft, 4f ++ ldx [$inp + 24], %o3 ++ ++ ldx [$inp + 32], %o4 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ or %g1, %o0, %o0 ++ sllx %o1, $ileft, %o1 ++ srlx %o2, $iright, %g1 ++ or %g1, %o1, %o1 ++ sllx %o2, $ileft, %o2 ++ srlx %o3, $iright, %g1 ++ or %g1, %o2, %o2 ++ sllx %o3, $ileft, %o3 ++ srlx %o4, $iright, %o4 ++ or %o4, %o3, %o3 ++4: ++ movxtod %g2, %f12 ++ movxtod %g3, %f14 ++ bshuffle %f12, %f12, %f12 ++ bshuffle %f14, %f14, %f14 ++ ++ srax %g3, 63, %l7 ! next tweak value ++ addcc %g2, %g2, %g2 ++ and %l7, 0x87, %l7 ++ addxc %g3, %g3, %g3 ++ xor %l7, %g2, %g2 ++ ++ movxtod %g2, %f8 ++ movxtod %g3, %f10 ++ bshuffle %f8, %f8, %f8 ++ bshuffle %f10, %f10, %f10 ++ ++ xor %g4, %o0, %o0 ! ^= rk[0] ++ xor %g5, %o1, %o1 ++ xor %g4, %o2, %o2 ! ^= rk[0] ++ xor %g5, %o3, %o3 ++ movxtod %o0, %f0 ++ movxtod %o1, %f2 ++ movxtod %o2, %f4 ++ movxtod %o3, %f6 ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ fxor %f8, %f4, %f4 ! ^= tweak[0] ++ fxor %f10, %f6, %f6 ++ ++ prefetch [$out + 63], 22 ++ prefetch [$inp + 32+63], 20 ++ call _${alg}${bits}_${dir}crypt_2x ++ add $inp, 32, $inp ++ ++ movxtod %g2, %f8 ++ movxtod %g3, %f10 ++ ++ srax %g3, 63, %l7 ! next tweak value ++ addcc %g2, %g2, %g2 ++ and %l7, 0x87, %l7 ++ addxc %g3, %g3, %g3 ++ xor %l7, %g2, %g2 ++ ++ bshuffle %f8, %f8, %f8 ++ bshuffle %f10, %f10, %f10 ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ fxor %f8, %f4, %f4 ++ fxor %f10, %f6, %f6 ++ ++ brnz,pn $ooff, 2f ++ sub $len, 2, $len ++ ++ std %f0, [$out + 0] ++ std %f2, [$out + 8] ++ std %f4, [$out + 16] ++ std %f6, [$out + 24] ++ brnz,pt $len, .L${bits}_xts_${dir}loop2x ++ add $out, 32, $out ++ ++ fsrc2 %f4, %f0 ++ fsrc2 %f6, %f2 ++ brnz,pn $rem, .L${bits}_xts_${dir}steal ++ nop ++ ++ ret ++ restore ++ ++.align 16 ++2: ldxa [$inp]0x82, %o0 ! avoid read-after-write hazard ++ ! and ~3x deterioration ++ ! in inp==out case ++ faligndata %f0, %f0, %f8 ! handle unaligned output ++ faligndata %f0, %f2, %f10 ++ faligndata %f2, %f4, %f12 ++ faligndata %f4, %f6, %f14 ++ faligndata %f6, %f6, %f0 ++ ++ stda %f8, [$out + $omask]0xc0 ! partial store ++ std %f10, [$out + 8] ++ std %f12, [$out + 16] ++ std %f14, [$out + 24] ++ add $out, 32, $out ++ orn %g0, $omask, $omask ++ stda %f0, [$out + $omask]0xc0 ! partial store ++ ++ brnz,pt $len, .L${bits}_xts_${dir}loop2x+4 ++ orn %g0, $omask, $omask ++ ++ fsrc2 %f4, %f0 ++ fsrc2 %f6, %f2 ++ brnz,pn $rem, .L${bits}_xts_${dir}steal ++ nop ++ ++ ret ++ restore ++ ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++.align 32 ++.L${bits}_xts_${dir}blk: ++ add $out, $len, $blk_init ++ and $blk_init, 63, $blk_init ! tail ++ sub $len, $blk_init, $len ++ add $blk_init, 15, $blk_init ! round up to 16n ++ srlx $len, 4, $len ++ srl $blk_init, 4, $blk_init ++ sub $len, 1, $len ++ add $blk_init, 1, $blk_init ++ ++.L${bits}_xts_${dir}blk2x: ++ ldx [$inp + 0], %o0 ++ ldx [$inp + 8], %o1 ++ ldx [$inp + 16], %o2 ++ brz,pt $ileft, 5f ++ ldx [$inp + 24], %o3 ++ ++ ldx [$inp + 32], %o4 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ or %g1, %o0, %o0 ++ sllx %o1, $ileft, %o1 ++ srlx %o2, $iright, %g1 ++ or %g1, %o1, %o1 ++ sllx %o2, $ileft, %o2 ++ srlx %o3, $iright, %g1 ++ or %g1, %o2, %o2 ++ sllx %o3, $ileft, %o3 ++ srlx %o4, $iright, %o4 ++ or %o4, %o3, %o3 ++5: ++ movxtod %g2, %f12 ++ movxtod %g3, %f14 ++ bshuffle %f12, %f12, %f12 ++ bshuffle %f14, %f14, %f14 ++ ++ srax %g3, 63, %l7 ! next tweak value ++ addcc %g2, %g2, %g2 ++ and %l7, 0x87, %l7 ++ addxc %g3, %g3, %g3 ++ xor %l7, %g2, %g2 ++ ++ movxtod %g2, %f8 ++ movxtod %g3, %f10 ++ bshuffle %f8, %f8, %f8 ++ bshuffle %f10, %f10, %f10 ++ ++ xor %g4, %o0, %o0 ! ^= rk[0] ++ xor %g5, %o1, %o1 ++ xor %g4, %o2, %o2 ! ^= rk[0] ++ xor %g5, %o3, %o3 ++ movxtod %o0, %f0 ++ movxtod %o1, %f2 ++ movxtod %o2, %f4 ++ movxtod %o3, %f6 ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ fxor %f8, %f4, %f4 ! ^= tweak[0] ++ fxor %f10, %f6, %f6 ++ ++ prefetch [$inp + 32+63], 20 ++ call _${alg}${bits}_${dir}crypt_2x ++ add $inp, 32, $inp ++ ++ movxtod %g2, %f8 ++ movxtod %g3, %f10 ++ ++ srax %g3, 63, %l7 ! next tweak value ++ addcc %g2, %g2, %g2 ++ and %l7, 0x87, %l7 ++ addxc %g3, %g3, %g3 ++ xor %l7, %g2, %g2 ++ ++ bshuffle %f8, %f8, %f8 ++ bshuffle %f10, %f10, %f10 ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ fxor %f8, %f4, %f4 ++ fxor %f10, %f6, %f6 ++ ++ stda %f0, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f2, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f4, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ add $out, 8, $out ++ stda %f6, [$out]0xe2 ! ASI_BLK_INIT, T4-specific ++ bgu,pt $::size_t_cc, .L${bits}_xts_${dir}blk2x ++ add $out, 8, $out ++ ++ add $blk_init, $len, $len ++ andcc $len, 1, %g0 ! is number of blocks even? ++ membar #StoreLoad|#StoreStore ++ bnz,pt %icc, .L${bits}_xts_${dir}loop ++ srl $len, 0, $len ++ brnz,pn $len, .L${bits}_xts_${dir}loop2x ++ nop ++ ++ fsrc2 %f4, %f0 ++ fsrc2 %f6, %f2 ++ brnz,pn $rem, .L${bits}_xts_${dir}steal ++ nop ++ ++ ret ++ restore ++!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ++___ ++$code.=<<___ if ($dir eq "en"); ++.align 32 ++.L${bits}_xts_${dir}steal: ++ std %f0, [%fp + $::bias-16] ! copy of output ++ std %f2, [%fp + $::bias-8] ++ ++ srl $ileft, 3, $ileft ++ add %fp, $::bias-16, %l7 ++ add $inp, $ileft, $inp ! original $inp+$len&-15 ++ add $out, $ooff, $out ! original $out+$len&-15 ++ mov 0, $ileft ++ nop ! align ++ ++.L${bits}_xts_${dir}stealing: ++ ldub [$inp + $ileft], %o0 ++ ldub [%l7 + $ileft], %o1 ++ dec $rem ++ stb %o0, [%l7 + $ileft] ++ stb %o1, [$out + $ileft] ++ brnz $rem, .L${bits}_xts_${dir}stealing ++ inc $ileft ++ ++ mov %l7, $inp ++ sub $out, 16, $out ++ mov 0, $ileft ++ sub $out, $ooff, $out ++ ba .L${bits}_xts_${dir}loop ! one more time ++ mov 1, $len ! $rem is 0 ++___ ++$code.=<<___ if ($dir eq "de"); ++.align 32 ++.L${bits}_xts_${dir}steal: ++ ldx [$inp + 0], %o0 ++ brz,pt $ileft, 8f ++ ldx [$inp + 8], %o1 ++ ++ ldx [$inp + 16], %o2 ++ sllx %o0, $ileft, %o0 ++ srlx %o1, $iright, %g1 ++ sllx %o1, $ileft, %o1 ++ or %g1, %o0, %o0 ++ srlx %o2, $iright, %o2 ++ or %o2, %o1, %o1 ++8: ++ srax %g3, 63, %l7 ! next tweak value ++ addcc %g2, %g2, %o2 ++ and %l7, 0x87, %l7 ++ addxc %g3, %g3, %o3 ++ xor %l7, %o2, %o2 ++ ++ movxtod %o2, %f12 ++ movxtod %o3, %f14 ++ bshuffle %f12, %f12, %f12 ++ bshuffle %f14, %f14, %f14 ++ ++ xor %g4, %o0, %o0 ! ^= rk[0] ++ xor %g5, %o1, %o1 ++ movxtod %o0, %f0 ++ movxtod %o1, %f2 ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ ++ call _${alg}${bits}_${dir}crypt_1x ++ add $inp, 16, $inp ++ ++ fxor %f12, %f0, %f0 ! ^= tweak[0] ++ fxor %f14, %f2, %f2 ++ ++ std %f0, [%fp + $::bias-16] ++ std %f2, [%fp + $::bias-8] ++ ++ srl $ileft, 3, $ileft ++ add %fp, $::bias-16, %l7 ++ add $inp, $ileft, $inp ! original $inp+$len&-15 ++ add $out, $ooff, $out ! original $out+$len&-15 ++ mov 0, $ileft ++ add $out, 16, $out ++ nop ! align ++ ++.L${bits}_xts_${dir}stealing: ++ ldub [$inp + $ileft], %o0 ++ ldub [%l7 + $ileft], %o1 ++ dec $rem ++ stb %o0, [%l7 + $ileft] ++ stb %o1, [$out + $ileft] ++ brnz $rem, .L${bits}_xts_${dir}stealing ++ inc $ileft ++ ++ mov %l7, $inp ++ sub $out, 16, $out ++ mov 0, $ileft ++ sub $out, $ooff, $out ++ ba .L${bits}_xts_${dir}loop ! one more time ++ mov 1, $len ! $rem is 0 ++___ ++$code.=<<___; ++ ret ++ restore ++.type ${alg}${bits}_t4_xts_${dir}crypt,#function ++.size ${alg}${bits}_t4_xts_${dir}crypt,.-${alg}${bits}_t4_xts_${dir}crypt ++___ ++} ++ ++# Purpose of these subroutines is to explicitly encode VIS instructions, ++# so that one can compile the module without having to specify VIS ++# extentions on compiler command line, e.g. -xarch=v9 vs. -xarch=v9a. ++# Idea is to reserve for option to produce "universal" binary and let ++# programmer detect if current CPU is VIS capable at run-time. ++sub unvis { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my ($ref,$opf); ++my %visopf = ( "faligndata" => 0x048, ++ "bshuffle" => 0x04c, ++ "fnot2" => 0x066, ++ "fxor" => 0x06c, ++ "fsrc2" => 0x078 ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if ($opf=$visopf{$mnemonic}) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub unvis3 { ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24 ); ++my ($ref,$opf); ++my %visopf = ( "addxc" => 0x011, ++ "addxccc" => 0x013, ++ "umulxhi" => 0x016, ++ "alignaddr" => 0x018, ++ "bmask" => 0x019, ++ "alignaddrl" => 0x01a ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if ($opf=$visopf{$mnemonic}) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%([goli])([0-9])/); ++ $_=$bias{$1}+$2; ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 0x81b00000|$rd<<25|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub unaes_round { # 4-argument instructions ++my ($mnemonic,$rs1,$rs2,$rs3,$rd)=@_; ++my ($ref,$opf); ++my %aesopf = ( "aes_eround01" => 0, ++ "aes_eround23" => 1, ++ "aes_dround01" => 2, ++ "aes_dround23" => 3, ++ "aes_eround01_l"=> 4, ++ "aes_eround23_l"=> 5, ++ "aes_dround01_l"=> 6, ++ "aes_dround23_l"=> 7, ++ "aes_kexpand1" => 8 ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rs3,$rd"; ++ ++ if (defined($opf=$aesopf{$mnemonic})) { ++ $rs3 = ($rs3 =~ /%f([0-6]*[02468])/) ? (($1|$1>>5)&31) : $rs3; ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|$rd<<25|0x19<<19|$rs1<<14|$rs3<<9|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub unaes_kexpand { # 3-argument instructions ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my ($ref,$opf); ++my %aesopf = ( "aes_kexpand0" => 0x130, ++ "aes_kexpand2" => 0x131 ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if (defined($opf=$aesopf{$mnemonic})) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|$rd<<25|0x36<<19|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub uncamellia_f { # 4-argument instructions ++my ($mnemonic,$rs1,$rs2,$rs3,$rd)=@_; ++my ($ref,$opf); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rs3,$rd"; ++ ++ if (1) { ++ $rs3 = ($rs3 =~ /%f([0-6]*[02468])/) ? (($1|$1>>5)&31) : $rs3; ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|$rd<<25|0x19<<19|$rs1<<14|$rs3<<9|0xc<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub uncamellia3 { # 3-argument instructions ++my ($mnemonic,$rs1,$rs2,$rd)=@_; ++my ($ref,$opf); ++my %cmllopf = ( "camellia_fl" => 0x13c, ++ "camellia_fli" => 0x13d ); ++ ++ $ref = "$mnemonic\t$rs1,$rs2,$rd"; ++ ++ if (defined($opf=$cmllopf{$mnemonic})) { ++ foreach ($rs1,$rs2,$rd) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|$rd<<25|0x36<<19|$rs1<<14|$opf<<5|$rs2, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub unmovxtox { # 2-argument instructions ++my ($mnemonic,$rs,$rd)=@_; ++my %bias = ( "g" => 0, "o" => 8, "l" => 16, "i" => 24, "f" => 0 ); ++my ($ref,$opf); ++my %movxopf = ( "movdtox" => 0x110, ++ "movstouw" => 0x111, ++ "movstosw" => 0x113, ++ "movxtod" => 0x118, ++ "movwtos" => 0x119 ); ++ ++ $ref = "$mnemonic\t$rs,$rd"; ++ ++ if (defined($opf=$movxopf{$mnemonic})) { ++ foreach ($rs,$rd) { ++ return $ref if (!/%([fgoli])([0-9]{1,2})/); ++ $_=$bias{$1}+$2; ++ if ($2>=32) { ++ return $ref if ($2&1); ++ # re-encode for upper double register addressing ++ $_=($2|$2>>5)&31; ++ } ++ } ++ ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|$rd<<25|0x36<<19|$opf<<5|$rs, ++ $ref; ++ } else { ++ return $ref; ++ } ++} ++ ++sub undes { ++my ($mnemonic)=shift; ++my @args=@_; ++my ($ref,$opf); ++my %desopf = ( "des_round" => 0b1001, ++ "des_ip" => 0b100110100, ++ "des_iip" => 0b100110101, ++ "des_kexpand" => 0b100110110 ); ++ ++ $ref = "$mnemonic\t".join(",", at _); ++ ++ if (defined($opf=$desopf{$mnemonic})) { # 4-arg ++ if ($mnemonic eq "des_round") { ++ foreach (@args[0..3]) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($1&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|0b011001<<19|$opf<<5|$args[0]<<14|$args[1]|$args[2]<<9|$args[3]<<25, ++ $ref; ++ } elsif ($mnemonic eq "des_kexpand") { # 3-arg ++ foreach (@args[0..2]) { ++ return $ref if (!/(%f)?([0-9]{1,2})/); ++ $_=$2; ++ if ($2>=32) { ++ return $ref if ($2&1); ++ # re-encode for upper double register addressing ++ $_=($2|$2>>5)&31; ++ } ++ } ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|0b110110<<19|$opf<<5|$args[0]<<14|$args[1]|$args[2]<<25, ++ $ref; ++ } else { # 2-arg ++ foreach (@args[0..1]) { ++ return $ref if (!/%f([0-9]{1,2})/); ++ $_=$1; ++ if ($1>=32) { ++ return $ref if ($2&1); ++ # re-encode for upper double register addressing ++ $_=($1|$1>>5)&31; ++ } ++ } ++ return sprintf ".word\t0x%08x !%s", ++ 2<<30|0b110110<<19|$opf<<5|$args[0]<<14|$args[1]<<25, ++ $ref; ++ } ++ } else { ++ return $ref; ++ } ++} ++ ++sub emit_assembler { ++ foreach (split("\n",$::code)) { ++ s/\`([^\`]*)\`/eval $1/ge; ++ ++ s/\b(f[a-z]+2[sd]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})\s*$/$1\t%f0,$2,$3/go; ++ ++ s/\b(aes_[edk][^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*([%fx0-9]+),\s*(%f[0-9]{1,2})/ ++ &unaes_round($1,$2,$3,$4,$5) ++ /geo or ++ s/\b(aes_kexpand[02])\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ ++ &unaes_kexpand($1,$2,$3,$4) ++ /geo or ++ s/\b(camellia_f)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*([%fx0-9]+),\s*(%f[0-9]{1,2})/ ++ &uncamellia_f($1,$2,$3,$4,$5) ++ /geo or ++ s/\b(camellia_[^s]+)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ ++ &uncamellia3($1,$2,$3,$4) ++ /geo or ++ s/\b(des_\w+)\s+(?%f[0-9]{1,2}),\s*(?[%fx0-9]+)(,\s*(?%f[0-9]{1,2})(,\s*(?%f[0-9]{1,2}))?)?/ ++ &undes($1,$+{rs1},$+{rs2},$+{rs3},$+{rs4}) ++ /geo or ++ s/\b(mov[ds]to\w+)\s+(%f[0-9]{1,2}),\s*(%[goli][0-7])/ ++ &unmovxtox($1,$2,$3) ++ /geo or ++ s/\b(mov[xw]to[ds])\s+(%[goli][0-7]),\s*(%f[0-9]{1,2})/ ++ &unmovxtox($1,$2,$3) ++ /geo or ++ s/\b([fb][^\s]*)\s+(%f[0-9]{1,2}),\s*(%f[0-9]{1,2}),\s*(%f[0-9]{1,2})/ ++ &unvis($1,$2,$3,$4) ++ /geo or ++ s/\b(umulxhi|bmask|addxc[c]{0,2}|alignaddr[l]*)\s+(%[goli][0-7]),\s*(%[goli][0-7]),\s*(%[goli][0-7])/ ++ &unvis3($1,$2,$3,$4) ++ /geo; ++ ++ print $_,"\n"; ++ } ++} ++ ++1; +Index: crypto/bn/asm/vis3-mont.pl +=================================================================== +diff -uNr openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl +--- openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl 1970-01-01 01:00:00.000000000 +0100 ++++ openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl 2015-06-02 09:52:11.809148396 +0200 +@@ -0,0 +1,373 @@ ++#!/usr/bin/env perl ++ ++# ==================================================================== ++# Written by Andy Polyakov for the OpenSSL ++# project. The module is, however, dual licensed under OpenSSL and ++# CRYPTOGAMS licenses depending on where you obtain it. For further ++# details see http://www.openssl.org/~appro/cryptogams/. ++# ==================================================================== ++ ++# October 2012. ++# ++# SPARCv9 VIS3 Montgomery multiplicaion procedure suitable for T3 and ++# onward. There are three new instructions used here: umulxhi, ++# addxc[cc] and initializing store. On T3 RSA private key operations ++# are 1.54/1.87/2.11/2.26 times faster for 512/1024/2048/4096-bit key ++# lengths. This is without dedicated squaring procedure. On T4 ++# corresponding coefficients are 1.47/2.10/2.80/2.90x, which is mostly ++# for reference purposes, because T4 has dedicated Montgomery ++# multiplication and squaring *instructions* that deliver even more. ++ ++$bits=32; ++for (@ARGV) { $bits=64 if (/\-m64/ || /\-xarch\=v9/); } ++if ($bits==64) { $bias=2047; $frame=192; } ++else { $bias=0; $frame=112; } ++ ++$code.=<<___ if ($bits==64); ++.register %g2,#scratch ++.register %g3,#scratch ++___ ++$code.=<<___; ++.section ".text",#alloc,#execinstr ++___ ++ ++($n0,$m0,$m1,$lo0,$hi0, $lo1,$hi1,$aj,$alo,$nj,$nlo,$tj)= ++ (map("%g$_",(1..5)),map("%o$_",(0..5,7))); ++ ++# int bn_mul_mont( ++$rp="%o0"; # BN_ULONG *rp, ++$ap="%o1"; # const BN_ULONG *ap, ++$bp="%o2"; # const BN_ULONG *bp, ++$np="%o3"; # const BN_ULONG *np, ++$n0p="%o4"; # const BN_ULONG *n0, ++$num="%o5"; # int num); # caller ensures that num is even ++ # and >=6 ++$code.=<<___; ++.globl bn_mul_mont_vis3 ++.align 32 ++bn_mul_mont_vis3: ++ add %sp, $bias, %g4 ! real top of stack ++ sll $num, 2, $num ! size in bytes ++ add $num, 63, %g5 ++ andn %g5, 63, %g5 ! buffer size rounded up to 64 bytes ++ add %g5, %g5, %g1 ++ add %g5, %g1, %g1 ! 3*buffer size ++ sub %g4, %g1, %g1 ++ andn %g1, 63, %g1 ! align at 64 byte ++ sub %g1, $frame, %g1 ! new top of stack ++ sub %g1, %g4, %g1 ++ ++ save %sp, %g1, %sp ++___ ++ ++# +-------------------------------+<----- %sp ++# . . ++# +-------------------------------+<----- aligned at 64 bytes ++# | __int64 tmp[0] | ++# +-------------------------------+ ++# . . ++# . . ++# +-------------------------------+<----- aligned at 64 bytes ++# | __int64 ap[1..0] | converted ap[] ++# +-------------------------------+ ++# | __int64 np[1..0] | converted np[] ++# +-------------------------------+ ++# | __int64 ap[3..2] | ++# . . ++# . . ++# +-------------------------------+ ++($rp,$ap,$bp,$np,$n0p,$num)=map("%i$_",(0..5)); ++($t0,$t1,$t2,$t3,$cnt,$tp,$bufsz,$anp)=map("%l$_",(0..7)); ++($ovf,$i)=($t0,$t1); ++$code.=<<___; ++ ld [$n0p+0], $t0 ! pull n0[0..1] value ++ add %sp, $bias+$frame, $tp ++ ld [$n0p+4], $t1 ++ add $tp, %g5, $anp ++ ld [$bp+0], $t2 ! m0=bp[0] ++ sllx $t1, 32, $n0 ++ ld [$bp+4], $t3 ++ or $t0, $n0, $n0 ++ add $bp, 8, $bp ++ ++ ld [$ap+0], $t0 ! ap[0] ++ sllx $t3, 32, $m0 ++ ld [$ap+4], $t1 ++ or $t2, $m0, $m0 ++ ++ ld [$ap+8], $t2 ! ap[1] ++ sllx $t1, 32, $aj ++ ld [$ap+12], $t3 ++ or $t0, $aj, $aj ++ add $ap, 16, $ap ++ stxa $aj, [$anp]0xe2 ! converted ap[0] ++ ++ mulx $aj, $m0, $lo0 ! ap[0]*bp[0] ++ umulxhi $aj, $m0, $hi0 ++ ++ ld [$np+0], $t0 ! np[0] ++ sllx $t3, 32, $aj ++ ld [$np+4], $t1 ++ or $t2, $aj, $aj ++ ++ ld [$np+8], $t2 ! np[1] ++ sllx $t1, 32, $nj ++ ld [$np+12], $t3 ++ or $t0, $nj, $nj ++ add $np, 16, $np ++ stx $nj, [$anp+8] ! converted np[0] ++ ++ mulx $lo0, $n0, $m1 ! "tp[0]"*n0 ++ stx $aj, [$anp+16] ! converted ap[1] ++ ++ mulx $aj, $m0, $alo ! ap[1]*bp[0] ++ umulxhi $aj, $m0, $aj ! ahi=aj ++ ++ mulx $nj, $m1, $lo1 ! np[0]*m1 ++ umulxhi $nj, $m1, $hi1 ++ ++ sllx $t3, 32, $nj ++ or $t2, $nj, $nj ++ stx $nj, [$anp+24] ! converted np[1] ++ add $anp, 32, $anp ++ ++ addcc $lo0, $lo1, $lo1 ++ addxc %g0, $hi1, $hi1 ++ ++ mulx $nj, $m1, $nlo ! np[1]*m1 ++ umulxhi $nj, $m1, $nj ! nhi=nj ++ ++ ba .L1st ++ sub $num, 24, $cnt ! cnt=num-3 ++ ++.align 16 ++.L1st: ++ ld [$ap+0], $t0 ! ap[j] ++ addcc $alo, $hi0, $lo0 ++ ld [$ap+4], $t1 ++ addxc $aj, %g0, $hi0 ++ ++ sllx $t1, 32, $aj ++ add $ap, 8, $ap ++ or $t0, $aj, $aj ++ stxa $aj, [$anp]0xe2 ! converted ap[j] ++ ++ ld [$np+0], $t2 ! np[j] ++ addcc $nlo, $hi1, $lo1 ++ ld [$np+4], $t3 ++ addxc $nj, %g0, $hi1 ! nhi=nj ++ ++ sllx $t3, 32, $nj ++ add $np, 8, $np ++ mulx $aj, $m0, $alo ! ap[j]*bp[0] ++ or $t2, $nj, $nj ++ umulxhi $aj, $m0, $aj ! ahi=aj ++ stx $nj, [$anp+8] ! converted np[j] ++ add $anp, 16, $anp ! anp++ ++ @@ Diff output truncated at 100000 characters. @@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From janholzh at users.sourceforge.net Tue Jun 2 10:25:57 2015 From: janholzh at users.sourceforge.net (janholzh at users.sourceforge.net) Date: Tue, 2 Jun 2015 08:25:57 +0000 Subject: SF.net SVN: gar:[25052] csw/mgar/pkg/openssl1/trunk/files Message-ID: <3m160V5MLyz1N8@mail.opencsw.org> Revision: 25052 http://sourceforge.net/p/gar/code/25052 Author: janholzh Date: 2015-06-02 08:25:57 +0000 (Tue, 02 Jun 2015) Log Message: ----------- openssl1/trunk: Use older pachtes again since new one need more work Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch 2015-06-02 07:53:16 UTC (rev 25051) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-fork_safe.patch 2015-06-02 08:25:57 UTC (rev 25052) @@ -1,7 +1,5 @@ -# # This file adds the code to setup internal mutexes and callback function. # PSARC/2014/077 -# PSARC/2015/043 # This change was implemented in-house. The issue was brought up to # the upstream engineers, but there was no commitment. # @@ -24,43 +22,7 @@ static void (MS_FAR *locking_callback) (int mode, int type, const char *file, int line) = 0; static int (MS_FAR *add_lock_callback) (int *pointer, int amount, -@@ -373,7 +376,10 @@ - void CRYPTO_set_dynlock_create_callback(struct CRYPTO_dynlock_value *(*func) - (const char *file, int line)) - { -- dynlock_create_callback = func; -+ /* -+ * we now setup our own dynamic locking callback, and disallow -+ * setting of another locking callback. -+ */ - } - - void CRYPTO_set_dynlock_lock_callback(void (*func) (int mode, -@@ -382,7 +388,10 @@ - const char *file, - int line)) - { -- dynlock_lock_callback = func; -+ /* -+ * we now setup our own dynamic locking callback, and disallow -+ * setting of another locking callback. -+ */ - } - - void CRYPTO_set_dynlock_destroy_callback(void (*func) -@@ -389,7 +398,10 @@ - (struct CRYPTO_dynlock_value *l, - const char *file, int line)) - { -- dynlock_destroy_callback = func; -+ /* -+ * we now setup our own dynamic locking callback, and disallow -+ * setting of another locking callback. -+ */ - } - - void (*CRYPTO_get_locking_callback(void)) (int mode, int type, -@@ -402,6 +414,129@@ +@@ -402,6 +405,79 @@ return (add_lock_callback); } @@ -70,121 +32,71 @@ + */ +static void solaris_locking_callback(int mode, int type, const char *file, + int line) -+{ -+ if (mode & CRYPTO_LOCK) { -+ pthread_mutex_lock(&solaris_openssl_locks[type]); -+ } else { -+ pthread_mutex_unlock(&solaris_openssl_locks[type]); -+ } -+} ++ { ++ if (mode & CRYPTO_LOCK) ++ { ++ pthread_mutex_lock(&solaris_openssl_locks[type]); ++ } ++ else ++ { ++ pthread_mutex_unlock(&solaris_openssl_locks[type]); ++ } ++ } + + +/* -+ * Implement Solaris's own dynamic locking routines. -+ */ -+static struct CRYPTO_dynlock_value * -+solaris_dynlock_create(const char *file, int line) -+{ -+ int ret; -+ pthread_mutex_t *dynlock; -+ -+ dynlock = OPENSSL_malloc(sizeof(pthread_mutex_t)); -+ if (dynlock == NULL) { -+ return (NULL); -+ } -+ -+ ret = pthread_mutex_init(dynlock, NULL); -+ OPENSSL_assert(ret); -+ -+ return ((struct CRYPTO_dynlock_value *)dynlock); -+} -+ -+static void -+solaris_dynlock_lock(int mode, struct CRYPTO_dynlock_valud *dynlock, -+ const char *file, int line) -+{ -+ int ret; -+ -+ if (mode & CRYPTO_LOCK) { -+ ret = pthread_mutex_lock((pthread_mutex_t *)dynlock); -+ } else { -+ ret = pthread_mutex_unlock((pthread_mutex_t *)dynlock); -+ } -+ -+ OPENSSL_assert(ret == 0); -+} -+ -+static void -+solaris_dynlock_destroy(struct CRYPTO_dynlock_value *dynlock, -+ const char *file, int line) -+{ -+ int ret; -+ ret = pthread_mutex_destroy((pthread_mutex_t *)dynlock); -+ OPENSSL_assert(ret); -+} -+ -+ -+/* + * This function is called when a child process is forked to setup its own + * global locking callback function ptr and mutexes. + */ +static void solaris_fork_child(void) -+{ -+ /* -+ * clear locking_callback to indicate that locks should -+ * be reinitialized. -+ */ -+ locking_callback = NULL; -+ solaris_locking_setup(); -+} ++ { ++ /* ++ * clear locking_callback to indicate that locks should ++ * be reinitialized. ++ */ ++ locking_callback = NULL; ++ solaris_locking_setup(); ++ } + +/* + * This function allocates and initializes the global mutex array, and + * sets the locking callback. + */ +void solaris_locking_setup() -+{ -+ int i; -+ int num_locks; ++ { ++ int i; ++ int num_locks; + -+ /* setup the dynlock callback if not already */ -+ if (dynlock_create_callback == NULL) { -+ dynlock_create_callback = solaris_dynlock_create; -+ } -+ if (dynlock_lock_callback == NULL) { -+ dynlock_lock_callback = solaris_dynlock_lock; -+ } -+ if (dynlock_destroy_callback == NULL) { -+ dynlock_destroy_callback = solaris_dynlock_destroy; -+ } ++ /* locking callback is already setup. Nothing to do */ ++ if (locking_callback != NULL) ++ { ++ return; ++ } + -+ /* locking callback is already setup. Nothing to do */ -+ if (locking_callback != NULL) { -+ return; -+ } ++ /* ++ * Set atfork handler so that child can setup its own mutexes and ++ * locking callbacks when it is forked ++ */ ++ (void) pthread_atfork(NULL, NULL, solaris_fork_child); + -+ /* -+ * Set atfork handler so that child can setup its own mutexes and -+ * locking callbacks when it is forked -+ */ -+ (void) pthread_atfork(NULL, NULL, solaris_fork_child); ++ /* allocate locks needed by OpenSSL */ ++ num_locks = CRYPTO_num_locks(); ++ solaris_openssl_locks = ++ OPENSSL_malloc(sizeof (pthread_mutex_t) * num_locks); ++ if (solaris_openssl_locks == NULL) ++ { ++ fprintf(stderr, ++ "solaris_locking_setup: memory allocation failure.\n"); ++ abort(); ++ } + -+ /* allocate locks needed by OpenSSL */ -+ num_locks = CRYPTO_num_locks(); -+ solaris_openssl_locks = -+ OPENSSL_malloc(sizeof (pthread_mutex_t) * num_locks); -+ if (solaris_openssl_locks == NULL) { -+ fprintf(stderr, -+ "solaris_locking_setup: memory allocation failure.\n"); -+ abort(); -+ } ++ /* initialize openssl mutexes */ ++ for (i = 0; i < num_locks; i++) ++ { ++ pthread_mutex_init(&solaris_openssl_locks[i], NULL); ++ } ++ locking_callback = solaris_locking_callback; + -+ /* initialize openssl mutexes */ -+ for (i = 0; i < num_locks; i++) { -+ pthread_mutex_init(&solaris_openssl_locks[i], NULL); -+ } -+ locking_callback = solaris_locking_callback; -+ +} + void CRYPTO_set_locking_callback(void (*func) (int mode, int type, @@ -196,39 +108,13 @@ OPENSSL_init(); - locking_callback = func; + -+ /* -+ * we now setup our own locking callback and mutexes, and disallow -+ * setting of another locking callback. -+ */ ++ /* ++ * we now setup our own locking callback and mutexes, and disallow ++ * setting of another locking callback. ++ */ } void CRYPTO_set_add_lock_callback(int (*func) (int *num, int mount, int type, -@@ -471,9 +551,10 @@ - - int CRYPTO_THREADID_set_callback(void (*func) (CRYPTO_THREADID *)) - { -- if (threadid_callback) -- return 0; -- threadid_callback = func; -+ /* -+ * Use the backup method (the address of 'errno') to identify the -+ * thread and disallow setting the threadid callback. -+ */ - return 1; - } - -@@ -531,7 +611,10 @@ - - void CRYPTO_set_id_callback(unsigned long (*func) (void)) - { -- id_callback = func; -+ /* -+ * Use the backup method to identify the thread/process. -+ * Setting the id callback is disallowed. -+ */ - } - - unsigned long CRYPTO_thread_id(void) --- openssl-1.0.1f/crypto/cryptlib.h.~1~ Fri Feb 7 10:41:42 2014 +++ openssl-1.0.1f/crypto/cryptlib.h Thu Feb 6 16:04:16 2014 @@ -104,6 +104,8 @@ Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-06-02 07:53:16 UTC (rev 25051) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-t4-engine.sparc.5.11.patch 2015-06-02 08:25:57 UTC (rev 25052) @@ -1,4 +1,3 @@ -# # This file adds inline T4 instruction support to OpenSSL upstream code. # The change was brought in from OpenSSL 1.0.2. # @@ -13,9 +12,9 @@ my $ia64_asm="ia64cpuid.o:bn-ia64.o ia64-mont.o::aes_core.o aes_cbc.o aes-ia64.o::md5-ia64.o:sha1-ia64.o sha256-ia64.o sha512-ia64.o::rc4-ia64.o rc4_skey.o:::::ghash-ia64.o::void"; -my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; +my $sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o sparcv9a-mont.o vis3-mont.o sparct4-mont.o sparcv9-gf2m.o:des_enc-sparc.o fcrypt_b.o dest4-sparcv9.o:aes_core.o aes_cbc.o aes-sparcv9.o aest4-sparcv9.o::md5-sparcv9.o:sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; - my $fips_sparcv9_asm="sparcv9cap.o sparccpuid.o:bn-sparcv9.o sparcv9-mont.o:des_enc-sparc.o fcrypt_b.o:aes_core.o aes_cbc.o aes-sparcv9.o:::sha1-sparcv9.o sha256-sparcv9.o sha512-sparcv9.o:::::::ghash-sparcv9.o::void"; my $sparcv8_asm=":sparcv8.o:des_enc-sparc.o fcrypt_b.o:::::::::::::void"; my $alpha_asm="alphacpuid.o:bn_asm.o alpha-mont.o:::::sha1-alpha.o:::::::ghash-alpha.o::void"; + my $mips32_asm=":bn-mips.o::aes_cbc.o aes-mips.o:::sha1-mips.o sha256-mips.o::::::::"; Index: crypto/sparccpuid.S =================================================================== diff -ru openssl-1.0.1e/crypto/sparccpuid.S openssl-1.0.1e/crypto/sparccpuid.S @@ -29,7 +28,20 @@ #if defined(__SUNPRO_C) && defined(__sparcv9) # define ABI64 /* They've said -xarch=v9 at command line */ #elif defined(__GNUC__) && defined(__arch64__) -@@ -241,7 +245,12 @@ +@@ -235,10 +239,10 @@ + .global _sparcv9_vis1_probe + .align 8 + _sparcv9_vis1_probe: ++ .word 0x81b00d80 !fxor %f0,%f0,%f0 + add %sp,BIAS+2,%o1 +- .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 + retl +- .word 0x81b00d80 !fxor %f0,%f0,%f0 ++ .word 0xc19a5a40 !ldda [%o1]ASI_FP16_P,%f0 + .type _sparcv9_vis1_probe,#function + .size _sparcv9_vis1_probe,.-_sparcv9_vis1_probe + +@@ -251,7 +255,12 @@ ! UltraSPARC IIe 7 ! UltraSPARC III 7 ! UltraSPARC T1 24 @@ -42,7 +54,7 @@ ! Numbers for T2 and SPARC64 V-VII are more than welcomed. ! ! It would be possible to detect specifically US-T1 by instrumenting -@@ -250,6 +259,8 @@ +@@ -260,6 +269,8 @@ .global _sparcv9_vis1_instrument .align 8 _sparcv9_vis1_instrument: @@ -51,9 +63,9 @@ .word 0x91410000 !rd %tick,%o0 .word 0x81b00d80 !fxor %f0,%f0,%f0 .word 0x85b08d82 !fxor %f2,%f2,%f2 -@@ -286,6 +297,30 @@ - .type _sparcv9_vis1_instrument,#function - .size _sparcv9_vis1_instrument,.-_sparcv9_vis1_instrument +@@ -314,6 +325,30 @@ + .type _sparcv9_fmadd_probe,#function + .size _sparcv9_fmadd_probe,.-_sparcv9_fmadd_probe +.global _sparcv9_rdcfr +.align 8 @@ -82,7 +94,7 @@ .global OPENSSL_cleanse .align 32 OPENSSL_cleanse: -@@ -370,6 +405,102 @@ +@@ -398,6 +433,102 @@ .size OPENSSL_cleanse,.-OPENSSL_cleanse #ifndef _BOOT @@ -190,20 +202,18 @@ diff -ru openssl-1.0.1e/crypto/sparcv9cap.c openssl-1.0.1e/crypto/sparcv9cap.c --- openssl-1.0.1e/crypto/sparcv9cap.c 2011-05-24 17:02:24.000000000 -0700 +++ openssl-1.0.1e/crypto/sparcv9cap.c 2011-07-27 10:48:17.817470000 -0700 -@@ -3,36 +3,59 @@ - #include +@@ -4,34 +4,58 @@ #include + #include #include +#include #include - #include -#define SPARCV9_TICK_PRIVILEGED (1<<0) -#define SPARCV9_PREFER_FPU (1<<1) -#define SPARCV9_VIS1 (1<<2) -#define SPARCV9_VIS2 (1<<3) /* reserved */ -#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ --#define SPARCV9_BLK (1<<5) +#include "sparc_arch.h" +#if defined(__GNUC__) && defined(__linux) @@ -264,11 +274,13 @@ } unsigned long _sparcv9_rdtick(void); -@@ -37,11 +60,16 @@ - - unsigned long _sparcv9_rdtick(void); +@@ -39,11 +63,18 @@ unsigned long _sparcv9_vis1_instrument(void); + void _sparcv9_vis2_probe(void); + void _sparcv9_fmadd_probe(void); +unsigned long _sparcv9_rdcfr(void); ++void _sparcv9_vis3_probe(void); ++unsigned long _sparcv9_random(void); +#ifndef _BOOT +size_t _sparcv9_vis1_instrument_bus(unsigned int *,size_t); +size_t _sparcv9_vis1_instrument_bus2(unsigned int *,size_t,size_t); @@ -282,7 +294,7 @@ #if defined(__sun) && defined(__SVR4) return gethrtime(); #else -@@ -50,6 +80,24 @@ +@@ -52,6 +83,24 @@ else return _sparcv9_rdtick(); } @@ -307,7 +319,7 @@ #endif #if defined(_BOOT) -@@ -59,7 +107,7 @@ +@@ -61,7 +110,7 @@ */ void OPENSSL_cpuid_setup(void) { @@ -316,7 +328,7 @@ } #elif 0 && defined(__sun) && defined(__SVR4) -@@ -88,11 +136,11 @@ +@@ -90,11 +139,11 @@ if (!strcmp(name, "SUNW,UltraSPARC") || /* covers II,III,IV */ !strncmp(name, "SUNW,UltraSPARC-I", 17)) { @@ -330,7 +342,7 @@ return DI_WALK_TERMINATE; } -@@ -98,7 +146,7 @@ +@@ -100,7 +149,7 @@ } /* This is expected to catch remaining UltraSPARCs, such as T1 */ else if (!strncmp(name, "SUNW,UltraSPARC", 15)) { @@ -339,7 +351,7 @@ return DI_WALK_TERMINATE; } -@@ -117,7 +165,7 @@ +@@ -119,7 +168,7 @@ trigger = 1; if ((e = getenv("OPENSSL_sparcv9cap"))) { @@ -348,7 +360,7 @@ return; } -@@ -124,15 +172,15 @@ +@@ -126,15 +175,15 @@ if (sysinfo(SI_MACHINE, si, sizeof(si)) > 0) { if (strcmp(si, "sun4v")) /* FPU is preferred for all CPUs, but US-T1/2 */ @@ -368,7 +380,7 @@ return; } } -@@ -195,7 +241,9 @@ +@@ -204,12 +253,14 @@ trigger = 1; if ((e = getenv("OPENSSL_sparcv9cap"))) { @@ -379,48 +391,73 @@ return; } -@@ -202,21 +250,48 @@ - (void) getisax(&ui, 1); - /* Initial value, fits UltraSPARC-I&II... */ -- OPENSSL_sparcv9cap_P = SPARCV9_BLK; -+ OPENSSL_sparcv9cap_P[0] = SPARCV9_BLK; +- OPENSSL_sparcv9cap_P = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] = SPARCV9_PREFER_FPU | SPARCV9_TICK_PRIVILEGED; - if (ui & AV_SPARC_VIS) { -- /* detect UltraSPARC-Tx, see sparccpuid.S for details... */ -+ /* detect UltraSPARC-Tx, see sparccpud.S for details... */ - if (_sparcv9_vis1_instrument() < 7) -- OPENSSL_sparcv9cap_P |= SPARCV9_TICK_PRIVILEGED; -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_TICK_PRIVILEGED; - if (_sparcv9_vis1_instrument() < 12) { -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1|SPARCV9_PREFER_FPU; -+ OPENSSL_sparcv9cap_P[0] |= (SPARCV9_VIS1 | SPARCV9_PREFER_FPU); - if (ui & AV_SPARC_VIS2) -- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; -- } -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; -+ } + sigfillset(&all_masked); + sigdelset(&all_masked, SIGILL); +@@ -232,18 +283,18 @@ + + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_rdtick(); +- OPENSSL_sparcv9cap_P &= ~SPARCV9_TICK_PRIVILEGED; ++ OPENSSL_sparcv9cap_P[0] &= ~SPARCV9_TICK_PRIVILEGED; } - if (ui & AV_SPARC_FMAF) + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_vis1_probe(); +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS1; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS1 | SPARCV9_BLK; + /* detect UltraSPARC-Tx, see sparccpud.S for details... */ + if (_sparcv9_vis1_instrument() >= 12) +- OPENSSL_sparcv9cap_P &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); ++ OPENSSL_sparcv9cap_P[0] &= ~(SPARCV9_VIS1 | SPARCV9_PREFER_FPU); + else { + _sparcv9_vis2_probe(); +- OPENSSL_sparcv9cap_P |= SPARCV9_VIS2; ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS2; + } + } + +@@ -249,13 +300,50 @@ + + if (sigsetjmp(common_jmp, 1) == 0) { + _sparcv9_fmadd_probe(); - OPENSSL_sparcv9cap_P |= SPARCV9_FMADD; + OPENSSL_sparcv9cap_P[0] |= SPARCV9_FMADD; -+ + } + + /* + * VIS3 flag is tested independently from VIS1, unlike VIS2 that is, + * because VIS3 defines even integer instructions. + */ -+ if (ui & AV_SPARC_VIS3) -+ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; ++ if (sigsetjmp(common_jmp,1) == 0) { ++ _sparcv9_vis3_probe(); ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_VIS3; ++ } + -+#define AV_T4_MECHS (AV_SPARC_AES | AV_SPARC_DES | AV_SPARC_KASUMI | \ -+ AV_SPARC_CAMELLIA | AV_SPARC_MD5 | AV_SPARC_SHA1 | \ -+ AV_SPARC_SHA256 | AV_SPARC_SHA512 | AV_SPARC_MPMUL | \ -+ AV_SPARC_CRC32C) ++ if (sigsetjmp(common_jmp,1) == 0) { ++ (void)_sparcv9_random(); ++ OPENSSL_sparcv9cap_P[0] |= SPARCV9_RANDOM; ++ } + -+ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && (ui & AV_T4_MECHS)) ++ /* ++ * In wait for better solution _sparcv9_rdcfr is masked by ++ * VIS3 flag, because it goes to uninterruptable endless ++ * loop on UltraSPARC II running Solaris. Things might be ++ * different on Linux... ++ */ ++ if ((OPENSSL_sparcv9cap_P[0]&SPARCV9_VIS3) && ++ sigsetjmp(common_jmp, 1) == 0) { + OPENSSL_sparcv9cap_P[1] = (unsigned int)_sparcv9_rdcfr(); ++ } + + sigaction(SIGBUS, &bus_oact, NULL); + sigaction(SIGILL, &ill_oact, NULL); + + sigprocmask(SIG_SETMASK, &oset, NULL); ++ + if (sizeof(size_t) == 8) + OPENSSL_sparcv9cap_P[0] |= SPARCV9_64BIT_STACK; +#ifdef __linux @@ -2231,7 +2268,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/sparc_arch.h openssl-1.0.1m/crypto/sparc_arch.h --- openssl-1.0.1m/crypto/sparc_arch.h 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/sparc_arch.h 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/sparc_arch.h 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,101 @@ +#ifndef __SPARC_ARCH_H__ +#define __SPARC_ARCH_H__ @@ -2338,7 +2375,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl --- openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/md5/asm/md5-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,434 @@ +#!/usr/bin/env perl + @@ -2778,7 +2815,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl --- openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/aes/asm/aest4-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,902 @@ +#!/usr/bin/env perl + @@ -3686,7 +3723,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl --- openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/des/asm/dest4-sparcv9.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,602 @@ +#!/usr/bin/env perl + @@ -4294,7 +4331,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl --- openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/perlasm/sparcv9_modes.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,1680 @@ +#!/usr/bin/env perl + @@ -5980,7 +6017,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl --- openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/bn/asm/vis3-mont.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,373 @@ +#!/usr/bin/env perl + @@ -6359,7 +6396,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/bn/asm/sparcv9-gf2m.pl openssl-1.0.1m/crypto/bn/asm/sparcv9-gf2m.pl --- openssl-1.0.1m/crypto/bn/asm/sparcv9-gf2m.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/bn/asm/sparcv9-gf2m.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/bn/asm/sparcv9-gf2m.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,198 @@ +#!/usr/bin/env perl +# @@ -6563,7 +6600,7 @@ =================================================================== diff -uNr openssl-1.0.1m/crypto/bn/asm/sparct4-mont.pl openssl-1.0.1m/crypto/bn/asm/sparct4-mont.pl --- openssl-1.0.1m/crypto/bn/asm/sparct4-mont.pl 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-1.0.1m/crypto/bn/asm/sparct4-mont.pl 2015-06-02 09:52:11.809148396 +0200 ++++ openssl-1.0.1m/crypto/bn/asm/sparct4-mont.pl 2015-03-21 16:27:38.578043100 +0100 @@ -0,0 +1,1222 @@ +#!/usr/bin/env perl + Modified: csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch 2015-06-02 07:53:16 UTC (rev 25051) +++ csw/mgar/pkg/openssl1/trunk/files/openssl-1.0.1m-wanboot.patch 2015-06-02 08:25:57 UTC (rev 25052) @@ -1,92 +1,47 @@ -# # This patch file makes the changes neccessary to build wanboot-openssl.o # binary. This is Solaris-specific: not suitable for upstream. # ---- openssl-1.0.0e/crypto/cryptlib.c 2011-06-22 08:39:00.000000000 -0700 -+++ openssl-1.0.0e_patched/crypto/cryptlib.c 2011-12-12 06:17:45.422476900 -0800 -@@ -421,11 +421,13 @@ +--- openssl-1.0.0e/crypto/cryptlib.c 2011-06-22 08:39:00.000000000 -0700 ++++ openssl-1.0.0e_patched/crypto/cryptlib.c 2011-12-12 06:17:45.422476900 -0800 +@@ -412,6 +412,7 @@ static void solaris_locking_callback(int mode, int type, const char *file, int line) - { -+#ifndef _BOOT - if (mode & CRYPTO_LOCK) { - pthread_mutex_lock(&solaris_openssl_locks[type]); - } else { - pthread_mutex_unlock(&solaris_openssl_locks[type]); - } + { ++#ifndef _BOOT + if (mode & CRYPTO_LOCK) + { + pthread_mutex_lock(&solaris_openssl_locks[type]); +@@ -420,6 +421,7 @@ + { + pthread_mutex_unlock(&solaris_openssl_locks[type]); + } +#endif - } + } -@@ -435,6 +437,7 @@ - static struct CRYPTO_dynlock_value * - solaris_dynlock_create(const char *file, int line) - { -+#ifndef _BOOT - int ret; - pthread_mutex_t *dynlock; - -@@ -447,6 +450,9 @@ - OPENSSL_assert(ret); - - return ((struct CRYPTO_dynlock_value *)dynlock); -+#else -+ return (NULL); -+#endif - } - - static void -@@ -453,6 +459,7 @@ - solaris_dynlock_lock(int mode, struct CRYPTO_dynlock_valud *dynlock, - const char *file, int line) - { -+#ifndef _BOOT - int ret; - - if (mode & CRYPTO_LOCK) { -@@ -462,6 +469,7 @@ - } - - OPENSSL_assert(ret == 0); -+#endif - } - - static void -@@ -468,9 +476,11 @@ - solaris_dynlock_destroy(struct CRYPTO_dynlock_value *dynlock, - const char *file, int line) - { -+#ifndef _BOOT - int ret; - ret = pthread_mutex_destroy((pthread_mutex_t *)dynlock); - OPENSSL_assert(ret); -+#endif - } - - -@@ -514,6 +524,12 @@ - } +@@ -453,6 +455,12 @@ + } - /* -+ * pthread_* can't be used in wanboot. -+ * wanboot needs not be thread-safe and mutexes and locking callback -+ * function will not be setup for wanboot. -+ */ -+#ifndef _BOOT -+ /* - * Set atfork handler so that child can setup its own mutexes and - * locking callbacks when it is forked - */ -@@ -534,7 +550,7 @@ - pthread_mutex_init(&solaris_openssl_locks[i], NULL); - } - locking_callback = solaris_locking_callback; + /* ++ * pthread_* can't be used in wanboot. ++ * wanboot needs not be thread-safe and mutexes and locking callback ++ * function will not be setup for wanboot. ++ */ ++#ifndef _BOOT ++ /* + * Set atfork handler so that child can setup its own mutexes and + * locking callbacks when it is forked + */ +@@ -475,7 +483,7 @@ + pthread_mutex_init(&solaris_openssl_locks[i], NULL); + } + locking_callback = solaris_locking_callback; - +#endif } void CRYPTO_set_locking_callback(void (*func) (int mode, int type, -@@ -1084,6 +1100,12 @@ +@@ -1021,6 +1029,12 @@ MessageBox(NULL, buf, _T("OpenSSL: FATAL"), MB_OK | MB_ICONSTOP); } #else @@ -95,36 +50,36 @@ + * OPENSSL_showfatal() is not used anywhere else then here we can safely use + * the code from 0.9.7d version. + */ -+#ifndef _BOOT ++#ifndef _BOOT void OPENSSL_showfatal(const char *fmta, ...) { va_list ap; -@@ -1092,6 +1114,7 @@ +@@ -1029,6 +1043,7 @@ vfprintf(stderr, fmta, ap); va_end(ap); } -+#endif /* _BOOT */ ++#endif /* _BOOT */ int OPENSSL_isservice(void) { -@@ -1101,9 +1124,15 @@ +@@ -1038,9 +1053,15 @@ void OpenSSLDie(const char *file, int line, const char *assertion) { -+#ifndef _BOOT ++#ifndef _BOOT OPENSSL_showfatal ("%s(%d): OpenSSL internal error, assertion failed: %s\n", file, line, assertion); +#else -+ fprintf(stderr, -+ "%s(%d): OpenSSL internal error, assertion failed: %s\n", -+ file,line,assertion); -+#endif ++ fprintf(stderr, ++ "%s(%d): OpenSSL internal error, assertion failed: %s\n", ++ file,line,assertion); ++#endif #if !defined(_WIN32) || defined(__CYGWIN__) abort(); #else ---- openssl-1.0.0e/crypto/err/err_all.c 2009-08-09 07:58:05.000000000 -0700 -+++ openssl-1.0.0e_patched/crypto/err/err_all.c 2011-12-13 05:22:01.205351400 -0800 +--- openssl-1.0.0e/crypto/err/err_all.c 2009-08-09 07:58:05.000000000 -0700 ++++ openssl-1.0.0e_patched/crypto/err/err_all.c 2011-12-13 05:22:01.205351400 -0800 @@ -148,7 +148,9 @@ ERR_load_X509V3_strings(); ERR_load_PKCS12_strings(); @@ -135,14 +90,14 @@ ERR_load_TS_strings(); # ifndef OPENSSL_NO_ENGINE ERR_load_ENGINE_strings(); ---- openssl-1.0.0e/crypto/evp/evp_key.c 2010-03-27 12:27:50.000000000 -0700 -+++ openssl-1.0.0e_patched/crypto/evp/evp_key.c 2011-12-13 05:19:32.956908600 -0800 +--- openssl-1.0.0e/crypto/evp/evp_key.c 2010-03-27 12:27:50.000000000 -0700 ++++ openssl-1.0.0e_patched/crypto/evp/evp_key.c 2011-12-13 05:19:32.956908600 -0800 @@ -83,7 +83,7 @@ else return (prompt_string); } - -+#ifndef _BOOT ++#ifndef _BOOT /* * For historical reasons, the standard function for reading passwords is in * the DES library -- if someone ever wants to disable DES, this function @@ -150,17 +105,17 @@ OPENSSL_cleanse(buff, BUFSIZ); return ret; } -+#endif /* !_BOOT */ ++#endif /* !_BOOT */ int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, const unsigned char *salt, const unsigned char *data, ---- openssl-1.0.0e/crypto/rand/rand_unix.c 2009-04-06 07:31:36.000000000 -0700 -+++ openssl-1.0.0e_patched/crypto/rand/rand_unix.c 2011-12-19 07:28:39.988944800 -0800 +--- openssl-1.0.0e/crypto/rand/rand_unix.c 2009-04-06 07:31:36.000000000 -0700 ++++ openssl-1.0.0e_patched/crypto/rand/rand_unix.c 2011-12-19 07:28:39.988944800 -0800 @@ -122,7 +122,11 @@ # include # include # include -+#ifdef _BOOT ++#ifdef _BOOT +# include +#else # include @@ -228,7 +183,7 @@ } # endif -+#ifndef _BOOT ++#ifndef _BOOT /* put in some default random data, we need more than just this */ l = curr_pid; RAND_add(&l, sizeof(l), 0.0); @@ -236,21 +191,21 @@ l = time(NULL); RAND_add(&l, sizeof(l), 0.0); -+#endif /* !_BOOT */ ++#endif /* !_BOOT */ # if defined(OPENSSL_SYS_BEOS) { ---- openssl-1.0.0e/crypto/rand/randfile.c 2011-03-19 02:44:37.000000000 -0700 -+++ openssl-1.0.0e_patched/crypto/rand/randfile.c 2011-12-13 05:26:51.884824200 -0800 +--- openssl-1.0.0e/crypto/rand/randfile.c 2011-03-19 02:44:37.000000000 -0700 ++++ openssl-1.0.0e_patched/crypto/rand/randfile.c 2011-12-13 05:26:51.884824200 -0800 @@ -57,9 +57,11 @@ */ /* We need to define this to get macros like S_IFBLK and S_IFCHR */ -+#ifndef _BOOT ++#ifndef _BOOT #if !defined(OPENSSL_SYS_VXWORKS) # define _XOPEN_SOURCE 500 #endif -+#endif /* _BOOT */ ++#endif /* _BOOT */ #include #include @@ -258,7 +213,7 @@ return (ret); } -+#ifndef _BOOT ++#ifndef _BOOT int RAND_write_file(const char *file) { unsigned char buf[BUFSIZE]; @@ -268,13 +223,13 @@ } + +#endif /* _BOOT */ ---- openssl-1.0.0e/crypto/x509v3/v3_utl.c 2009-07-27 14:08:53.000000000 -0700 -+++ openssl-1.0.0e_patched/crypto/x509v3/v3_utl.c 2011-12-13 05:10:08.844191400 -0800 +--- openssl-1.0.0e/crypto/x509v3/v3_utl.c 2009-07-27 14:08:53.000000000 -0700 ++++ openssl-1.0.0e_patched/crypto/x509v3/v3_utl.c 2011-12-13 05:10:08.844191400 -0800 @@ -715,9 +715,50 @@ } } -+#if defined(_BOOT) ++#if defined(_BOOT) +/* This function was copied from bio/b_sock.c */ +static int get_ip(const char *str, unsigned char ip[4]) +{ @@ -314,10 +269,10 @@ { int a0, a1, a2, a3; + -+#if defined(_BOOT) -+ if (get_ip(in, v4) != 1) -+ return 0; -+#else /* _BOOT */ ++#if defined(_BOOT) ++ if (get_ip(in, v4) != 1) ++ return 0; ++#else /* _BOOT */ if (sscanf(in, "%d.%d.%d.%d", &a0, &a1, &a2, &a3) != 4) return 0; if ((a0 < 0) || (a0 > 255) || (a1 < 0) || (a1 > 255) @@ -325,17 +280,17 @@ v4[1] = a1; v4[2] = a2; v4[3] = a3; -+#endif /* _BOOT */ ++#endif /* _BOOT */ return 1; } ---- openssl-1.0.0e/e_os.h 2011-12-19 04:17:51.631087400 -0800 -+++ openssl-1.0.0e_patched/e_os.h 2011-12-19 04:15:15.776668900 -0800 +--- openssl-1.0.0e/e_os.h 2011-12-19 04:17:51.631087400 -0800 ++++ openssl-1.0.0e_patched/e_os.h 2011-12-19 04:15:15.776668900 -0800 @@ -213,10 +213,19 @@ # define get_last_socket_error() errno # define clear_socket_error() errno=0 # define ioctlsocket(a,b,c) ioctl(a,b,c) -+#ifdef _BOOT ++#ifdef _BOOT +#include +extern int socket_read(int, void *, size_t, int); +extern int socket_close(int); @@ -353,9 +308,9 @@ # define MS_CALLBACK _far _loadds --- openssl-1.0.0e/crypto/sparcv9cap.c 2010-09-05 12:48:01.000000000 -0700 +++ openssl-1.0.0e_patched/crypto/sparcv9cap.c 2011-12-23 05:24:02.011607700 -0800 -@@ -13,7 +13,11 @@ +@@ -12,7 +12,11 @@ + #define SPARCV9_VIS2 (1<<3) /* reserved */ #define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */ - #define SPARCV9_BLK (1<<5) +#ifndef _BOOT static int OPENSSL_sparcv9cap_P = SPARCV9_TICK_PRIVILEGED; @@ -365,15 +320,15 @@ int bn_mul_mont(BN_ULONG *rp, const BN_ULONG *ap, const BN_ULONG *bp, const BN_ULONG *np, const BN_ULONG *n0, int num) -@@ -34,6 +38,7 @@ - unsigned long _sparcv9_rdtick(void); - unsigned long _sparcv9_vis1_instrument(void); +@@ -36,6 +40,7 @@ + void _sparcv9_vis2_probe(void); + void _sparcv9_fmadd_probe(void); +#ifndef _BOOT unsigned long OPENSSL_rdtsc(void) { if (OPENSSL_sparcv9cap_P & SPARCV9_TICK_PRIVILEGED) -@@ -45,8 +50,19 @@ +@@ -47,8 +52,19 @@ else return _sparcv9_rdtick(); } @@ -396,7 +351,7 @@ * and libmalloc.so.1 (see below for details) --- openssl-1.0.0e/crypto/sparccpuid.S 2010-09-05 12:48:01.000000000 -0700 +++ openssl-1.0.0e_patched/crypto/sparccpuid.S 2012-02-13 07:42:58.259478325 -0800 -@@ -369,8 +369,13 @@ +@@ -397,8 +397,13 @@ .type OPENSSL_cleanse,#function .size OPENSSL_cleanse,.-OPENSSL_cleanse @@ -404,8 +359,8 @@ .section ".init",#alloc,#execinstr call solaris_locking_setup nop - call OPENSSL_cpuid_setup - nop + call OPENSSL_cpuid_setup + nop +#else + nop + nop @@ -416,7 +371,7 @@ p = s->s3->client_random; -+#ifndef _BOOT ++#ifndef _BOOT if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0) +#else + if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE) <= 0) @@ -430,7 +385,7 @@ * Apparently we're using a version-flexible SSL_METHOD (not at its * highest protocol version). */ -+#ifndef _BOOT ++#ifndef _BOOT if (s->ctx->method->version == SSLv23_method()->version) { +#else + if (s->ctx->method->version == TLS1_2_VERSION) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Jun 2 20:14:20 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 2 Jun 2015 18:14:20 +0000 Subject: SF.net SVN: gar:[25053] csw/mgar/pkg/squid/trunk Message-ID: <3m1M2s33vhzBC@mail.opencsw.org> Revision: 25053 http://sourceforge.net/p/gar/code/25053 Author: dmichelsen Date: 2015-06-02 18:14:19 +0000 (Tue, 02 Jun 2015) Log Message: ----------- squid/trunk: Update to 3.5.5 Modified Paths: -------------- csw/mgar/pkg/squid/trunk/Makefile csw/mgar/pkg/squid/trunk/checksums Modified: csw/mgar/pkg/squid/trunk/Makefile =================================================================== --- csw/mgar/pkg/squid/trunk/Makefile 2015-06-02 08:25:57 UTC (rev 25052) +++ csw/mgar/pkg/squid/trunk/Makefile 2015-06-02 18:14:19 UTC (rev 25053) @@ -2,7 +2,7 @@ # $Id$ # NAME = squid -VERSION = 3.5.4 +VERSION = 3.5.5 GARTYPE = v2 DESCRIPTION = High performance Web proxy cache Modified: csw/mgar/pkg/squid/trunk/checksums =================================================================== --- csw/mgar/pkg/squid/trunk/checksums 2015-06-02 08:25:57 UTC (rev 25052) +++ csw/mgar/pkg/squid/trunk/checksums 2015-06-02 18:14:19 UTC (rev 25053) @@ -1 +1 @@ -436d42ced1d9eb9f5d5b364047cc3dba squid-3.5.4.tar.bz2 +6aac5c2e9cbbeabcbf2e9e49a178a931 squid-3.5.5.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Tue Jun 2 23:24:11 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Tue, 2 Jun 2015 21:24:11 +0000 Subject: SF.net SVN: gar:[25054] csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile Message-ID: <3m1RFx5nwVzMV@mail.opencsw.org> Revision: 25054 http://sourceforge.net/p/gar/code/25054 Author: rmottola Date: 2015-06-02 21:24:11 +0000 (Tue, 02 Jun 2015) Log Message: ----------- gcc4/branches/gcc-4.6.x: fix grmiregistry alternative and binary entry Modified Paths: -------------- csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile Modified: csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile =================================================================== --- csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile 2015-06-02 18:14:19 UTC (rev 25053) +++ csw/mgar/pkg/gcc4/branches/gcc-4.6.x/Makefile 2015-06-02 21:24:11 UTC (rev 25054) @@ -454,8 +454,7 @@ ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/gorbd gcc_gjava $(bindir)/gorbd$(PROGRAM_SUFFIX) ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/grmic gcc_gjava $(bindir)/grmic$(PROGRAM_SUFFIX) ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/grmid gcc_gjava $(bindir)/grmid$(PROGRAM_SUFFIX) -ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/grmregistry gcc_gjava $(bindir)/grmregistry$(PROGRAM_SUFFIX) -ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/grmregistry gcc_gjava $(bindir)/rebuild-gcj-db$(PROGRAM_SUFFIX) +ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/grmiregistry gcc_gjava $(bindir)/grmiregistry$(PROGRAM_SUFFIX) ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/gserialver gcc_gjava $(bindir)/gserialver$(PROGRAM_SUFFIX) ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/gtnameserv gcc_gjava $(bindir)/gtnameserv$(PROGRAM_SUFFIX) ALTERNATIVE_$(PKG_VERSION_TOKEN)java += $(bindir)/jcf-dump gcc_gjava $(bindir)/jcf-dump$(PROGRAM_SUFFIX) @@ -527,9 +526,9 @@ CORE_BINARIES = cpp gcc gcov CXX_BINARIES = g\+\+ c\+\+ FORTRAN_BINARIES = gfortran -JAVA_BINARIES = gcj gij aot-compile grmiregistry +JAVA_BINARIES = gcj gij aot-compile JAVA_BINARIES += gappletviewer gc-analyze gcj-dbtool gcjh gjar gjarsigner gjavah -JAVA_BINARIES += gkeytool gnative2ascii gorbd grmic grmid grmregistry +JAVA_BINARIES += gkeytool gnative2ascii gorbd grmic grmid grmiregistry JAVA_BINARIES += gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db include files/scripts.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Jun 3 14:13:16 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 3 Jun 2015 12:13:16 +0000 Subject: SF.net SVN: gar:[25055] csw/mgar/pkg/mailman/trunk Message-ID: <3m1pzx45hKzZ8@mail.opencsw.org> Revision: 25055 http://sourceforge.net/p/gar/code/25055 Author: cgrzemba Date: 2015-06-03 12:13:15 +0000 (Wed, 03 Jun 2015) Log Message: ----------- mailman/trunk: update version, add cswpreservconf Modified Paths: -------------- csw/mgar/pkg/mailman/trunk/Makefile csw/mgar/pkg/mailman/trunk/checksums Modified: csw/mgar/pkg/mailman/trunk/Makefile =================================================================== --- csw/mgar/pkg/mailman/trunk/Makefile 2015-06-02 21:24:11 UTC (rev 25054) +++ csw/mgar/pkg/mailman/trunk/Makefile 2015-06-03 12:13:15 UTC (rev 25055) @@ -6,13 +6,16 @@ # at all # ! Python modules are clearly installed in a wrong plac NAME = mailman -VERSION = 2.1.18 +VERSION = 2.1.20 DESCRIPTION = Mailman mailing list software MASTER_SITES = $(GNU_MIRROR) DISTFILES = $(DISTNAME).tgz +GARCOMPILER = SOS12U4 + + PACKAGES += CSWmailman SPKG_DESC_CSWmailman = Mailman mailing list software # PKGFILES is catchall @@ -22,15 +25,16 @@ # The mailman build system puts files in all sorts of strange places prefix=$(BUILD_PREFIX)/$(NAME) +PRESERVECONF += $(prefix)/Mailman/mm_cfg.py CONFIGURE_ARGS += $(DIRPATHS) CONFIGURE_ARGS += --without-permcheck CONFIGURE_ARGS += --with-python=/opt/csw/bin/python2.7 CONFIGURE_ARGS += --with-mailhost=mailhost CONFIGURE_ARGS += --with-urlhost=example.com -CONFIGURE_ARGS += --with-mail-gid=mail -CONFIGURE_ARGS += --with-cgi-gid=nobody -CONFIGURE_ARGS += --with-var-prefix=/var/opt/csw/mailman +# CONFIGURE_ARGS += --with-mail-gid=mail +CONFIGURE_ARGS += --with-cgi-gid=webservd +CONFIGURE_ARGS += --with-var-prefix=$(localstatedir)/$(NAME) # There is no testsuite TEST_SCRIPTS = Modified: csw/mgar/pkg/mailman/trunk/checksums =================================================================== --- csw/mgar/pkg/mailman/trunk/checksums 2015-06-02 21:24:11 UTC (rev 25054) +++ csw/mgar/pkg/mailman/trunk/checksums 2015-06-03 12:13:15 UTC (rev 25055) @@ -1 +1 @@ -02ce493711248e1d3723356188446d9f mailman-2.1.18.tgz +96819640406f90a12bc28edd3dc09d4a mailman-2.1.20.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Jun 3 15:25:40 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 3 Jun 2015 13:25:40 +0000 Subject: SF.net SVN: gar:[25056] csw/mgar/pkg/ansible/trunk/Makefile Message-ID: <3m1rbL6P2szdD@mail.opencsw.org> Revision: 25056 http://sourceforge.net/p/gar/code/25056 Author: dmichelsen Date: 2015-06-03 13:25:39 +0000 (Wed, 03 Jun 2015) Log Message: ----------- ansible/trunk: Add reinplacements Modified Paths: -------------- csw/mgar/pkg/ansible/trunk/Makefile Modified: csw/mgar/pkg/ansible/trunk/Makefile =================================================================== --- csw/mgar/pkg/ansible/trunk/Makefile 2015-06-03 12:13:15 UTC (rev 25055) +++ csw/mgar/pkg/ansible/trunk/Makefile 2015-06-03 13:25:39 UTC (rev 25056) @@ -68,9 +68,22 @@ REINPLACEMENTS += etc REINPLACE_MATCH_etc = /etc/ansible REINPLACE_WITH_etc = $(sysconfdir)/ansible -REINPLACE_FILES_etc = lib/ansible/constants.py -REINPLACE_FILES_etc = examples/ansible.cfg +REINPLACE_FILES_etc += bin/ansible-galaxy +REINPLACE_FILES_etc += lib/ansible/constants.py +REINPLACE_FILES_etc += lib/ansible/module_utils/urls.py +REINPLACE_FILES_etc += lib/ansible/modules/core/system/setup.py +REINPLACE_FILES_etc += lib/ansible/playbook/__init__.py +REINPLACE_FILES_etc += plugins/inventory/nova.py +REINPLACE_FILES_etc += plugins/inventory/openstack.py +REINPLACE_FILES_etc += docs/man/man1/ansible.1.asciidoc.in +REINPLACE_FILES_etc += docs/man/man1/ansible-galaxy.1 +REINPLACE_FILES_etc += docs/man/man1/ansible-playbook.1.asciidoc.in +REINPLACE_FILES_etc += docs/man/man1/ansible-playbook.1 +REINPLACE_FILES_etc += docs/man/man1/ansible.1 +REINPLACE_FILES_etc += docs/man/man1/ansible-galaxy.1.asciidoc.in +REINPLACE_FILES_etc += examples/ansible.cfg + REINPLACE_USRSHARE += lib/ansible/constants.py REINPLACE_USRSHARE += examples/ansible.cfg This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Jun 3 16:13:44 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 3 Jun 2015 14:13:44 +0000 Subject: SF.net SVN: gar:[25057] csw/mgar/pkg/pv/trunk Message-ID: <3m1sfq3kVhzh4@mail.opencsw.org> Revision: 25057 http://sourceforge.net/p/gar/code/25057 Author: dmichelsen Date: 2015-06-03 14:13:44 +0000 (Wed, 03 Jun 2015) Log Message: ----------- pv/trunk: Update to 1.6.0 Modified Paths: -------------- csw/mgar/pkg/pv/trunk/Makefile csw/mgar/pkg/pv/trunk/checksums Removed Paths: ------------- csw/mgar/pkg/pv/trunk/files/changelog.CSW Modified: csw/mgar/pkg/pv/trunk/Makefile =================================================================== --- csw/mgar/pkg/pv/trunk/Makefile 2015-06-03 13:25:39 UTC (rev 25056) +++ csw/mgar/pkg/pv/trunk/Makefile 2015-06-03 14:13:44 UTC (rev 25057) @@ -1,5 +1,5 @@ NAME = pv -VERSION = 1.5.2 +VERSION = 1.6.0 GARTYPE = v2 DESCRIPTION = Monitor the progress of data through a pipe @@ -26,10 +26,3 @@ TEST_ENV_PATH = /opt/csw/gnu:$(PATH) include gar/category.mk - -post-install-modulated: DOCDEST=$(DESTDIR)$(docdir)/$(NAME) -post-install-modulated: - gunzip $(DESTDIR)$(mandir)/man1/pv.1.gz - ginstall -d -m 755 $(DOCDEST) - cp $(WORKSRC)/doc/NEWS $(FILEDIR)/changelog.CSW $(DOCDEST) - @$(MAKECOOKIE) Modified: csw/mgar/pkg/pv/trunk/checksums =================================================================== --- csw/mgar/pkg/pv/trunk/checksums 2015-06-03 13:25:39 UTC (rev 25056) +++ csw/mgar/pkg/pv/trunk/checksums 2015-06-03 14:13:44 UTC (rev 25057) @@ -1 +1 @@ -fdcd0be1e333602f82a70921b87976b8 pv-1.5.2.tar.bz2 +e163d8963c595b2032666724bc509bcc pv-1.6.0.tar.bz2 Deleted: csw/mgar/pkg/pv/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/pv/trunk/files/changelog.CSW 2015-06-03 13:25:39 UTC (rev 25056) +++ csw/mgar/pkg/pv/trunk/files/changelog.CSW 2015-06-03 14:13:44 UTC (rev 25057) @@ -1,11 +0,0 @@ -pv (1.2.0,REV=2011.05.18) - - * Updated to 1.2.0. - - -- Sebastian Kayser Wed, 18 May 2011 17:35:36 +0200 - -pv (1.1.4,REV=2009.05.10) - - * Recompiled with adjusted GAR build system (Closes: #3573). - - -- Sebastian Kayser Sun, 10 May 2009 18:18:49 +0200 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Jun 3 20:08:56 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 3 Jun 2015 18:08:56 +0000 Subject: SF.net SVN: gar:[25058] csw/mgar/pkg/stunnel/trunk/Makefile Message-ID: <3m1yt96cxkzn1@mail.opencsw.org> Revision: 25058 http://sourceforge.net/p/gar/code/25058 Author: dmichelsen Date: 2015-06-03 18:08:56 +0000 (Wed, 03 Jun 2015) Log Message: ----------- stunnel/trunk: Fix SMF manifest n ame Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-03 14:13:44 UTC (rev 25057) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-03 18:08:56 UTC (rev 25058) @@ -62,7 +62,7 @@ SSLCERT += $(sysconfdir)/stunnel/stunnel PROTOTYPE_MODIFIERS += smf -PROTOTYPE_FILES_smf += /var/opt/csw/svc/manifest/cswcarbon-cache.xml +PROTOTYPE_FILES_smf += /var/opt/csw/svc/manifest/cswstunnel.xml PROTOTYPE_CLASS_smf = manifest include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Jun 4 13:57:02 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 4 Jun 2015 11:57:02 +0000 Subject: SF.net SVN: gar:[25059] csw/mgar/pkg/cpan Message-ID: <3m2QZd3j4tzy8@mail.opencsw.org> Revision: 25059 http://sourceforge.net/p/gar/code/25059 Author: dmichelsen Date: 2015-06-04 11:57:01 +0000 (Thu, 04 Jun 2015) Log Message: ----------- cpan/Net-Graphite/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/cpan/Net-Graphite/ csw/mgar/pkg/cpan/Net-Graphite/branches/ csw/mgar/pkg/cpan/Net-Graphite/tags/ csw/mgar/pkg/cpan/Net-Graphite/trunk/ csw/mgar/pkg/cpan/Net-Graphite/trunk/Makefile csw/mgar/pkg/cpan/Net-Graphite/trunk/checksums csw/mgar/pkg/cpan/Net-Graphite/trunk/files/ Index: csw/mgar/pkg/cpan/Net-Graphite/trunk =================================================================== --- csw/mgar/pkg/cpan/Net-Graphite/trunk 2015-06-03 18:08:56 UTC (rev 25058) +++ csw/mgar/pkg/cpan/Net-Graphite/trunk 2015-06-04 11:57:01 UTC (rev 25059) Property changes on: csw/mgar/pkg/cpan/Net-Graphite/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,2 ## +work + Added: csw/mgar/pkg/cpan/Net-Graphite/trunk/Makefile =================================================================== --- csw/mgar/pkg/cpan/Net-Graphite/trunk/Makefile (rev 0) +++ csw/mgar/pkg/cpan/Net-Graphite/trunk/Makefile 2015-06-04 11:57:01 UTC (rev 25059) @@ -0,0 +1,21 @@ +NAME = Net-Graphite +VERSION = 0.16 +CATEGORIES = cpan +GARTYPE = v2 +AUTHOR = SLANNING + +DESCRIPTION = Unknown +define BLURB +endef + +CATALOG_RELEASE = unstable + +LICENSE_TEXT = This module is licensed under the unknown license + +PACKAGES += CSWpm-net-graphite +CATALOGNAME_CSWpm-net-graphite = pm_net_graphite +SPKG_DESC_CSWpm-net-graphite = Interface to Graphite +# There was no information if this is pure Perl or not. Please remove if necessary. +ARCHALL_CSWpm-net-graphite = 1 + +include gar/category.mk Added: csw/mgar/pkg/cpan/Net-Graphite/trunk/checksums =================================================================== --- csw/mgar/pkg/cpan/Net-Graphite/trunk/checksums (rev 0) +++ csw/mgar/pkg/cpan/Net-Graphite/trunk/checksums 2015-06-04 11:57:01 UTC (rev 25059) @@ -0,0 +1 @@ +20ec5fbe2072c1976e3ae138a860caf6 Net-Graphite-0.16.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Thu Jun 4 19:47:45 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Thu, 4 Jun 2015 17:47:45 +0000 Subject: SF.net SVN: gar:[25060] csw/mgar/pkg/gnupg2/trunk Message-ID: <3m2ZMN6WmFz15C@mail.opencsw.org> Revision: 25060 http://sourceforge.net/p/gar/code/25060 Author: lblume Date: 2015-06-04 17:47:44 +0000 (Thu, 04 Jun 2015) Log Message: ----------- gnupg2/trunk: Bump to 2.0.28 Modified Paths: -------------- csw/mgar/pkg/gnupg2/trunk/Makefile csw/mgar/pkg/gnupg2/trunk/checksums Modified: csw/mgar/pkg/gnupg2/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnupg2/trunk/Makefile 2015-06-04 11:57:01 UTC (rev 25059) +++ csw/mgar/pkg/gnupg2/trunk/Makefile 2015-06-04 17:47:44 UTC (rev 25060) @@ -3,7 +3,7 @@ # $Id$ NAME = gnupg -VERSION = 2.0.27 +VERSION = 2.0.28 GARTYPE = v2 DESCRIPTION = GnuPG is a complete and free replacement for PGP Modified: csw/mgar/pkg/gnupg2/trunk/checksums =================================================================== --- csw/mgar/pkg/gnupg2/trunk/checksums 2015-06-04 11:57:01 UTC (rev 25059) +++ csw/mgar/pkg/gnupg2/trunk/checksums 2015-06-04 17:47:44 UTC (rev 25060) @@ -1 +1 @@ -b35df68881a5ae432b0391b73773c698 gnupg-2.0.27.tar.bz2 +d5cbb97673b99ca234507b74bfe8a29e gnupg-2.0.28.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Fri Jun 5 16:27:06 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Fri, 5 Jun 2015 14:27:06 +0000 Subject: SF.net SVN: gar:[25061] csw/mgar/pkg/smartmontools/trunk Message-ID: <3m35sK3S1sz1Kd@mail.opencsw.org> Revision: 25061 http://sourceforge.net/p/gar/code/25061 Author: lblume Date: 2015-06-05 14:27:06 +0000 (Fri, 05 Jun 2015) Log Message: ----------- smartmontools/trunk: Bump to 6.4 Modified Paths: -------------- csw/mgar/pkg/smartmontools/trunk/Makefile csw/mgar/pkg/smartmontools/trunk/checksums Modified: csw/mgar/pkg/smartmontools/trunk/Makefile =================================================================== --- csw/mgar/pkg/smartmontools/trunk/Makefile 2015-06-04 17:47:44 UTC (rev 25060) +++ csw/mgar/pkg/smartmontools/trunk/Makefile 2015-06-05 14:27:06 UTC (rev 25061) @@ -1,7 +1,7 @@ # $Id$ NAME = smartmontools -VERSION = 6.3 +VERSION = 6.4 GARTYPE = v2 DESCRIPTION = S.M.A.R.T. disk monitoring tools Modified: csw/mgar/pkg/smartmontools/trunk/checksums =================================================================== --- csw/mgar/pkg/smartmontools/trunk/checksums 2015-06-04 17:47:44 UTC (rev 25060) +++ csw/mgar/pkg/smartmontools/trunk/checksums 2015-06-05 14:27:06 UTC (rev 25061) @@ -1 +1 @@ -2ea0c62206e110192a97b59291b17f54 smartmontools-6.3.tar.gz +56812c8312fd123ed40ef65afde1049e smartmontools-6.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Mon Jun 8 10:31:09 2015 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Mon, 8 Jun 2015 08:31:09 +0000 Subject: SF.net SVN: gar:[25062] csw/mgar/pkg/smartmontools/trunk/Makefile Message-ID: <3m4nqJ27q4zdV@mail.opencsw.org> Revision: 25062 http://sourceforge.net/p/gar/code/25062 Author: lblume Date: 2015-06-08 08:31:09 +0000 (Mon, 08 Jun 2015) Log Message: ----------- smartmontools/trunk: The compiler set to GCC4 was mistakenly removed Modified Paths: -------------- csw/mgar/pkg/smartmontools/trunk/Makefile Modified: csw/mgar/pkg/smartmontools/trunk/Makefile =================================================================== --- csw/mgar/pkg/smartmontools/trunk/Makefile 2015-06-05 14:27:06 UTC (rev 25061) +++ csw/mgar/pkg/smartmontools/trunk/Makefile 2015-06-08 08:31:09 UTC (rev 25062) @@ -16,6 +16,8 @@ MASTER_SITES = $(SF_MIRROR) DISTFILES = $(NAME)-$(VERSION).tar.gz +GARCOMPILER = GCC4 + # smartmontools packages built on 5.9 don't work on 5.10: # > Error SMART Thresholds Read failed: I/O error # > Smartctl: SMART Read Thresholds failed. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Tue Jun 9 08:31:00 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 9 Jun 2015 06:31:00 +0000 Subject: SF.net SVN: gar:[25063] csw/mgar/pkg/apache24/trunk/files/cswapache24 Message-ID: <3m5M6C25Svz1Nj@mail.opencsw.org> Revision: 25063 http://sourceforge.net/p/gar/code/25063 Author: cgrzemba Date: 2015-06-09 06:31:00 +0000 (Tue, 09 Jun 2015) Log Message: ----------- apache24/trunk: fix sbin path Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/files/cswapache24 Modified: csw/mgar/pkg/apache24/trunk/files/cswapache24 =================================================================== --- csw/mgar/pkg/apache24/trunk/files/cswapache24 2015-06-08 08:31:09 UTC (rev 25062) +++ csw/mgar/pkg/apache24/trunk/files/cswapache24 2015-06-09 06:31:00 UTC (rev 25063) @@ -12,7 +12,7 @@ #RC_SLEV 3 #FMRI network ENABLE64=$(/usr/bin/svcprop -p general/enable_64bit ${SMF_FMRI}) -[ ${ENABLE64} = "true" ] && MM=/64 +[ ${ENABLE64} = "true" ] && MM=/$(isainfo -n) APACHE_HOME=@prefix@ CONF_FILE=@sysconfdir@/apache2/httpd.conf This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Tue Jun 9 14:13:28 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 9 Jun 2015 12:13:28 +0000 Subject: SF.net SVN: gar:[25064] csw/mgar/pkg/apache24/trunk Message-ID: <3m5VjP432Gz1YC@mail.opencsw.org> Revision: 25064 http://sourceforge.net/p/gar/code/25064 Author: cgrzemba Date: 2015-06-09 12:13:28 +0000 (Tue, 09 Jun 2015) Log Message: ----------- apache24/trunk: add postinstall script Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/Makefile csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall Modified: csw/mgar/pkg/apache24/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache24/trunk/Makefile 2015-06-09 06:31:00 UTC (rev 25063) +++ csw/mgar/pkg/apache24/trunk/Makefile 2015-06-09 12:13:28 UTC (rev 25064) @@ -15,6 +15,7 @@ MASTER_SITES = http://www.eu.apache.org/dist/httpd/ DISTFILES += $(DISTNAME).tar.gz DISTFILES += cswapache24 +DISTFILES += CSWapache24.postinstall EXPANDVARS += cswapache24 PATCHFILES += 0002-Switch-usr-local-for-opt-csw-in-default-cgi-path.patch Modified: csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall =================================================================== --- csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall 2015-06-09 06:31:00 UTC (rev 25063) +++ csw/mgar/pkg/apache24/trunk/files/CSWapache24.postinstall 2015-06-09 12:13:28 UTC (rev 25064) @@ -1 +1,3 @@ -[ -x /usr/sbin/svccfg ] && /usr/sbin/svccfg -s cswapache24 'setprop general/enable_64bit = boolean: false' +[ -x /usr/sbin/svccfg ] && \ + /usr/sbin/svccfg -s cswapache24 'setprop general/enable_64bit = boolean: false' && \ + /usr/sbin/svcadm refresh cswapache24 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From tosmi at users.sourceforge.net Tue Jun 9 22:15:20 2015 From: tosmi at users.sourceforge.net (tosmi at users.sourceforge.net) Date: Tue, 9 Jun 2015 20:15:20 +0000 Subject: SF.net SVN: gar:[25065] csw/mgar/pkg/facter2/trunk Message-ID: <3m5jPH5FZYzH3@mail.opencsw.org> Revision: 25065 http://sourceforge.net/p/gar/code/25065 Author: tosmi Date: 2015-06-09 20:15:20 +0000 (Tue, 09 Jun 2015) Log Message: ----------- facter2/trunk: update to version 2.4.4 Modified Paths: -------------- csw/mgar/pkg/facter2/trunk/Makefile csw/mgar/pkg/facter2/trunk/checksums Modified: csw/mgar/pkg/facter2/trunk/Makefile =================================================================== --- csw/mgar/pkg/facter2/trunk/Makefile 2015-06-09 12:13:28 UTC (rev 25064) +++ csw/mgar/pkg/facter2/trunk/Makefile 2015-06-09 20:15:20 UTC (rev 25065) @@ -3,7 +3,7 @@ # $Id$ NAME = facter2 -VERSION = 2.4.1 +VERSION = 2.4.4 GARTYPE = v2 DISTNAME = facter-$(VERSION) @@ -19,7 +19,7 @@ additional mechanisms for retrieving facts. endef -MASTER_SITES = http://puppetlabs.com/downloads/facter/ +MASTER_SITES = http://downloads.puppetlabs.com/facter/ DISTFILES = facter-$(VERSION).tar.gz SPKG_SOURCEURL = http://puppetlabs.com/ LICENSE = LICENSE Modified: csw/mgar/pkg/facter2/trunk/checksums =================================================================== --- csw/mgar/pkg/facter2/trunk/checksums 2015-06-09 12:13:28 UTC (rev 25064) +++ csw/mgar/pkg/facter2/trunk/checksums 2015-06-09 20:15:20 UTC (rev 25065) @@ -1 +1 @@ -7d4c2128b890c3de6ff9892b1389bc22 facter-2.4.1.tar.gz +97e5daae4c9571013506867f1ba8da0a facter-2.4.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Jun 10 09:41:13 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 10 Jun 2015 07:41:13 +0000 Subject: SF.net SVN: gar:[25066] csw/mgar/pkg/mailman/trunk/Makefile Message-ID: <3m60cl5yLkzbW@mail.opencsw.org> Revision: 25066 http://sourceforge.net/p/gar/code/25066 Author: cgrzemba Date: 2015-06-10 07:41:12 +0000 (Wed, 10 Jun 2015) Log Message: ----------- mailman/trunk: add dependency Modified Paths: -------------- csw/mgar/pkg/mailman/trunk/Makefile Modified: csw/mgar/pkg/mailman/trunk/Makefile =================================================================== --- csw/mgar/pkg/mailman/trunk/Makefile 2015-06-09 20:15:20 UTC (rev 25065) +++ csw/mgar/pkg/mailman/trunk/Makefile 2015-06-10 07:41:12 UTC (rev 25066) @@ -21,6 +21,7 @@ # PKGFILES is catchall RUNTIME_DEP_PKGS_CSWmailman += CSWpython27 RUNTIME_DEP_PKGS_CSWmailman += CSWperl +RUNTIME_DEP_PKGS_CSWmailman += CSWpm_unix_syslog CHECKPKG_OVERRIDES_CSWmailman += surplus-dependency|CSWpython27 # The mailman build system puts files in all sorts of strange places This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Jun 10 11:21:29 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 10 Jun 2015 09:21:29 +0000 Subject: SF.net SVN: gar:[25067] csw/mgar/pkg/mailman/trunk/Makefile Message-ID: <3m62rM0JwHzlc@mail.opencsw.org> Revision: 25067 http://sourceforge.net/p/gar/code/25067 Author: cgrzemba Date: 2015-06-10 09:21:29 +0000 (Wed, 10 Jun 2015) Log Message: ----------- mailman/trunk: fix runtime dependency Modified Paths: -------------- csw/mgar/pkg/mailman/trunk/Makefile Modified: csw/mgar/pkg/mailman/trunk/Makefile =================================================================== --- csw/mgar/pkg/mailman/trunk/Makefile 2015-06-10 07:41:12 UTC (rev 25066) +++ csw/mgar/pkg/mailman/trunk/Makefile 2015-06-10 09:21:29 UTC (rev 25067) @@ -21,8 +21,9 @@ # PKGFILES is catchall RUNTIME_DEP_PKGS_CSWmailman += CSWpython27 RUNTIME_DEP_PKGS_CSWmailman += CSWperl -RUNTIME_DEP_PKGS_CSWmailman += CSWpm_unix_syslog +RUNTIME_DEP_PKGS_CSWmailman += CSWpm-unix-syslog CHECKPKG_OVERRIDES_CSWmailman += surplus-dependency|CSWpython27 +CHECKPKG_OVERRIDES_CSWmailman += surplus-dependency|CSWpm-unix-syslog # The mailman build system puts files in all sorts of strange places prefix=$(BUILD_PREFIX)/$(NAME) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Wed Jun 10 11:53:29 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Wed, 10 Jun 2015 09:53:29 +0000 Subject: SF.net SVN: gar:[25068] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m63YJ00zJzpH@mail.opencsw.org> Revision: 25068 http://sourceforge.net/p/gar/code/25068 Author: claudio_sf Date: 2015-06-10 09:53:28 +0000 (Wed, 10 Jun 2015) Log Message: ----------- perl/trunk: bump version Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 09:21:29 UTC (rev 25067) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 09:53:28 UTC (rev 25068) @@ -1,5 +1,5 @@ NAME = perl -VERSION = 5.20.2 +VERSION = 5.22.0 VERSION_MAJOR = $(shell echo $(VERSION) | cut -f1-2 -d.) #CATEGORIES = lang GARTYPE = v2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Jun 10 14:08:16 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 10 Jun 2015 12:08:16 +0000 Subject: SF.net SVN: gar:[25069] csw/mgar/pkg/postfix/trunk Message-ID: <3m66Xp60ZzztZ@mail.opencsw.org> Revision: 25069 http://sourceforge.net/p/gar/code/25069 Author: cgrzemba Date: 2015-06-10 12:08:15 +0000 (Wed, 10 Jun 2015) Log Message: ----------- postfix/trunk: update version Modified Paths: -------------- csw/mgar/pkg/postfix/trunk/Makefile csw/mgar/pkg/postfix/trunk/checksums Modified: csw/mgar/pkg/postfix/trunk/Makefile =================================================================== --- csw/mgar/pkg/postfix/trunk/Makefile 2015-06-10 09:53:28 UTC (rev 25068) +++ csw/mgar/pkg/postfix/trunk/Makefile 2015-06-10 12:08:15 UTC (rev 25069) @@ -30,7 +30,7 @@ # $Id$ # NAME = postfix -VERSION = 2.9.4 +VERSION = 2.11.5 GARTYPE = v2 DESCRIPTION = A high-performance mail transport agent @@ -50,6 +50,8 @@ UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz LICENSE = LICENSE TLS_LICENSE +GARCOMPILER = GCC4 + # Tag configuration files for handling via cswclassutils CONFIG_BASE := /etc/opt/csw/postfix/ CONFIG_FILES := access Modified: csw/mgar/pkg/postfix/trunk/checksums =================================================================== --- csw/mgar/pkg/postfix/trunk/checksums 2015-06-10 09:53:28 UTC (rev 25068) +++ csw/mgar/pkg/postfix/trunk/checksums 2015-06-10 12:08:15 UTC (rev 25069) @@ -1 +1 @@ -230bc3c00c051946eccd850058d75f6c postfix-2.9.4.tar.gz +8523f6d1de6f522313207524d794ee9c postfix-2.11.5.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Wed Jun 10 14:22:45 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Wed, 10 Jun 2015 12:22:45 +0000 Subject: SF.net SVN: gar:[25070] csw/mgar/pkg/perl/trunk Message-ID: <3m66sg1HJYzx1@mail.opencsw.org> Revision: 25070 http://sourceforge.net/p/gar/code/25070 Author: claudio_sf Date: 2015-06-10 12:22:45 +0000 (Wed, 10 Jun 2015) Log Message: ----------- perl/trunk: remove dir Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile csw/mgar/pkg/perl/trunk/checksums Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 12:08:15 UTC (rev 25069) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 12:22:45 UTC (rev 25070) @@ -20,13 +20,13 @@ VENDOR_URL = http://www.perl.org DISTFILES = $(NAME)-$(VERSION).tar.bz2 PACKAGING_PLATFORMS += solaris10-i386 solaris10-sparc -PACKAGES = CSWperlgcc -PKG_DESC_CSWperlgcc = $(DESCRIPTION) -SPKG_DESC_CSWperlgcc = $(DESCRIPTION) +PACKAGES = CSWperl +PKG_DESC_CSWperlgcc = $(DESCRIPTION) +SPKG_DESC_CSWperlgcc = $(DESCRIPTION) LICENSE = Copying # GCC build (Sun Studio build has been fixed) -GARCOMPILER = GCC5 +GARCOMPILER = GCC MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 MAKE_OPT = $(MAKE_OPT_$(shell hostname)) @@ -37,9 +37,7 @@ # a .git directory will cause failing upstream author tests (the source will be considered blead) NOGITPATCH = 1 -# Let put perl in a separate dir as a migration strategy -prefix = $(BUILD_PREFIX)/perlgcc -EXTRA_RUNPATH_DIRS = $(libdir)/perl/5.20/CORE +EXTRA_RUNPATH_DIRS = $(libdir)/perl/5.22/CORE EXTRA_RUNPATH_ISALIST = $(EXTRA_RUNPATH_DIRS) #EXTRA_LIB = $(prefix)/$(libdir)/perl/5.20/CORE #EXTRA_RUNPATH_LINKER_FLAGS += $(prefix)/$(libdir)/perl/5.20/CORE/libperl.so Modified: csw/mgar/pkg/perl/trunk/checksums =================================================================== --- csw/mgar/pkg/perl/trunk/checksums 2015-06-10 12:08:15 UTC (rev 25069) +++ csw/mgar/pkg/perl/trunk/checksums 2015-06-10 12:22:45 UTC (rev 25070) @@ -1 +1 @@ -21062666f1c627aeb6dbff3c6952738b perl-5.20.2.tar.bz2 +f67b152160431b3180fb766bdc2d02e2 perl-5.22.0.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Wed Jun 10 14:23:42 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Wed, 10 Jun 2015 12:23:42 +0000 Subject: SF.net SVN: gar:[25071] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m66tb1R7rz10M@mail.opencsw.org> Revision: 25071 http://sourceforge.net/p/gar/code/25071 Author: claudio_sf Date: 2015-06-10 12:23:42 +0000 (Wed, 10 Jun 2015) Log Message: ----------- perl/trunk: GCC5 Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 12:22:45 UTC (rev 25070) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 12:23:42 UTC (rev 25071) @@ -26,7 +26,7 @@ LICENSE = Copying # GCC build (Sun Studio build has been fixed) -GARCOMPILER = GCC +GARCOMPILER = GCC5 MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 MAKE_OPT = $(MAKE_OPT_$(shell hostname)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Wed Jun 10 14:25:48 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Wed, 10 Jun 2015 12:25:48 +0000 Subject: SF.net SVN: gar:[25072] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m66x06hw0z12n@mail.opencsw.org> Revision: 25072 http://sourceforge.net/p/gar/code/25072 Author: claudio_sf Date: 2015-06-10 12:25:47 +0000 (Wed, 10 Jun 2015) Log Message: ----------- perl/trunk: GCC4 Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 12:23:42 UTC (rev 25071) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-10 12:25:47 UTC (rev 25072) @@ -26,7 +26,7 @@ LICENSE = Copying # GCC build (Sun Studio build has been fixed) -GARCOMPILER = GCC5 +GARCOMPILER = GCC4 MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 MAKE_OPT = $(MAKE_OPT_$(shell hostname)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Wed Jun 10 16:42:05 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 10 Jun 2015 14:42:05 +0000 Subject: SF.net SVN: gar:[25073] csw/mgar/pkg/apache24/trunk/Makefile Message-ID: <3m69yL08K1z16N@mail.opencsw.org> Revision: 25073 http://sourceforge.net/p/gar/code/25073 Author: cgrzemba Date: 2015-06-10 14:42:05 +0000 (Wed, 10 Jun 2015) Log Message: ----------- apache24/trunk: fix merging Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/Makefile Modified: csw/mgar/pkg/apache24/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache24/trunk/Makefile 2015-06-10 12:25:47 UTC (rev 25072) +++ csw/mgar/pkg/apache24/trunk/Makefile 2015-06-10 14:42:05 UTC (rev 25073) @@ -46,8 +46,9 @@ RUNTIME_DEP_PKGS_CSWapache24 += CSWlibxml2-2 RUNTIME_DEP_PKGS_CSWapache24 += CSWopenldap RUNTIME_DEP_PKGS_CSWapache24 += CSWlighttpd -EXTRA_MERGE_DIRS_isa-extra += /etc/opt/csw/64/apache2/extra +EXTRA_MERGE_SCRIPTS_isa-default64 += copy-apache-modules + # This is because /opt/csw/sbin/sparcv9 is missing, most certainly an checkpkg issue # CHECKPKG_OVERRIDES_CSWapache24 += missing-dependency|CSWbonnie++|or|CSWcollectd|or|CSWleafnode|or|CSWlighttpd|or|CSWlogrotate|or|CSWopenldap|or|CSWproftpd|or|CSWsysstat|or|CSWzabbix-agent|or|CSWzabbix-server @@ -119,6 +120,7 @@ # CONFIGURE_ARGS += --with-mpm=prefork CONFIGURE_ARGS += --enable-layout=OpenCSW CONFIGURE_ARGS += --enable-mods-shared=all +# 389-admin needs the legacy mod_cgi CONFIGURE_ARGS += --enable-cgi CONFIGURE_ARGS += --enable-privileges CONFIGURE_ARGS += --enable-vhost-alias @@ -165,3 +167,10 @@ gsed -e '/APACHECTL=/s/sbin/sbin\$${MM}/' -i $(DESTDIR)/etc/opt/csw/init.d/cswapache24 echo "# create server.(crt|csr)/server.key" > $(DESTDIR)$(sysconfdir)/apache2/server @$(MAKECOOKIE) + +merge-copy-apache-modules: + $(_DBG_MERGE)(cd $(INSTALLISADIR); umask 022 && pcopy \ + -m $(foreach C,$(sysconfdir)/64/apache2/extra/.*,-s ",^\(\.$C\)\$$,\1,p" ) \ + . $(PKGROOT) \ + ) + @$(MAKECOOKIE) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Thu Jun 11 08:29:41 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Thu, 11 Jun 2015 06:29:41 +0000 Subject: SF.net SVN: gar:[25074] csw/mgar/pkg/apache24/trunk Message-ID: <3m6Zzj1Slxz1Jb@mail.opencsw.org> Revision: 25074 http://sourceforge.net/p/gar/code/25074 Author: cgrzemba Date: 2015-06-11 06:29:41 +0000 (Thu, 11 Jun 2015) Log Message: ----------- apache24/trunk: add apachectl 64bit patch Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/apache24/trunk/files/0004-64bit-apachectl.in.patch Modified: csw/mgar/pkg/apache24/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache24/trunk/Makefile 2015-06-10 14:42:05 UTC (rev 25073) +++ csw/mgar/pkg/apache24/trunk/Makefile 2015-06-11 06:29:41 UTC (rev 25074) @@ -20,6 +20,8 @@ PATCHFILES += 0002-Switch-usr-local-for-opt-csw-in-default-cgi-path.patch PATCHFILES += 0003-fix-43561-apxs.patch +PATCHFILES-64 += 0004-64bit-apachectl.in.patch +PATCHFILES += $(PATCHFILES-$(MEMORYMODEL)) #PATCHFILES += 0001-Add-an-OpenCSW-option-to-config.layout.patch DISTFILES += 0001-Add-an-OpenCSW-option-to-config.layout.patch Added: csw/mgar/pkg/apache24/trunk/files/0004-64bit-apachectl.in.patch =================================================================== --- csw/mgar/pkg/apache24/trunk/files/0004-64bit-apachectl.in.patch (rev 0) +++ csw/mgar/pkg/apache24/trunk/files/0004-64bit-apachectl.in.patch 2015-06-11 06:29:41 UTC (rev 25074) @@ -0,0 +1,12 @@ +--- a/support/apachectl.in ++++ b/support/apachectl.in +@@ -76,6 +76,9 @@ if [ "x$ARGV" = "x" ] ; then + ARGV="-h" + fi + ++OPTS_64="-D 64bit" ++HTTPD="$HTTPD $OPTS_64" ++ + case $ACMD in + start|stop|restart|graceful|graceful-stop) + $HTTPD -k $ARGV This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Thu Jun 11 10:53:54 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Thu, 11 Jun 2015 08:53:54 +0000 Subject: SF.net SVN: gar:[25075] csw/mgar/pkg/mailman/trunk Message-ID: <3m6fB6078cz1NR@mail.opencsw.org> Revision: 25075 http://sourceforge.net/p/gar/code/25075 Author: cgrzemba Date: 2015-06-11 08:53:54 +0000 (Thu, 11 Jun 2015) Log Message: ----------- mailman/trunk: add install cswusergroup Modified Paths: -------------- csw/mgar/pkg/mailman/trunk/Makefile csw/mgar/pkg/mailman/trunk/files/cswusergroup Modified: csw/mgar/pkg/mailman/trunk/Makefile =================================================================== --- csw/mgar/pkg/mailman/trunk/Makefile 2015-06-11 06:29:41 UTC (rev 25074) +++ csw/mgar/pkg/mailman/trunk/Makefile 2015-06-11 08:53:54 UTC (rev 25075) @@ -12,6 +12,7 @@ MASTER_SITES = $(GNU_MIRROR) DISTFILES = $(DISTNAME).tgz +DISTFILES += cswusergroup GARCOMPILER = SOS12U4 @@ -44,7 +45,7 @@ PYCOMPILE = 1 EXTRA_MERGE_EXCLUDE_FILES = .*\.py[co] -USERGROUP = /etc/opt/csw/pkg/CSWmailman/cswusergroup +USERGROUP = $(sysconfdir)/pkg/CSW$(NAME)/cswusergroup CHECKPKG_OVERRIDES_CSWmailman += binary-architecture-does-not-match-placement|file=opt/csw/mailman/mail/mailman|arch_id=18|arch_name=sparcv8+ CHECKPKG_OVERRIDES_CSWmailman += binary-architecture-does-not-match-placement|file=opt/csw/mailman/mail/mailman|arch_id=3|arch_name=i386 @@ -53,3 +54,7 @@ include gar/category.mk +post-install: + ginstall -d $(DESTDIR)$(dir $(USERGROUP)) + cd $(WORKDIR) && ginstall cswusergroup $(DESTDIR)$(dir $(USERGROUP)) + $(MAKECOOKIE) Modified: csw/mgar/pkg/mailman/trunk/files/cswusergroup =================================================================== --- csw/mgar/pkg/mailman/trunk/files/cswusergroup 2015-06-11 06:29:41 UTC (rev 25074) +++ csw/mgar/pkg/mailman/trunk/files/cswusergroup 2015-06-11 08:53:54 UTC (rev 25075) @@ -1 +1 @@ -mailman:mailman:GNU Mailman:/dev/null:/bin/false:::NP +mailman:mailman:GNU Mailman:/dev/null:/bin/false:: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Thu Jun 11 15:00:51 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Thu, 11 Jun 2015 13:00:51 +0000 Subject: SF.net SVN: gar:[25076] csw/mgar/pkg/smartmontools/trunk Message-ID: <3m6lgC5XJWz1V4@mail.opencsw.org> Revision: 25076 http://sourceforge.net/p/gar/code/25076 Author: dmichelsen Date: 2015-06-11 13:00:50 +0000 (Thu, 11 Jun 2015) Log Message: ----------- smartmontools/trunk: Preserve configuration Modified Paths: -------------- csw/mgar/pkg/smartmontools/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/smartmontools/trunk/files/CSWsmartmontools.postinstall Modified: csw/mgar/pkg/smartmontools/trunk/Makefile =================================================================== --- csw/mgar/pkg/smartmontools/trunk/Makefile 2015-06-11 08:53:54 UTC (rev 25075) +++ csw/mgar/pkg/smartmontools/trunk/Makefile 2015-06-11 13:00:50 UTC (rev 25076) @@ -39,6 +39,8 @@ CHECKPKG_OVERRIDES_CSWsmartmontools += file-with-bad-content +PRESERVECONF += $(sysconfdir)/smartd.conf + include gar/category.mk # Moving the configuration file. Deleted: csw/mgar/pkg/smartmontools/trunk/files/CSWsmartmontools.postinstall =================================================================== --- csw/mgar/pkg/smartmontools/trunk/files/CSWsmartmontools.postinstall 2015-06-11 08:53:54 UTC (rev 25075) +++ csw/mgar/pkg/smartmontools/trunk/files/CSWsmartmontools.postinstall 2015-06-11 13:00:50 UTC (rev 25076) @@ -1,3 +0,0 @@ -if [ ! -f $BASEDIR/opt/csw/etc/smartd.conf ] ; then - cp $BASEDIR/opt/csw/etc/smartd.conf.CSW $BASEDIR/opt/csw/etc/smartd.conf -fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From sfbsdsx at users.sourceforge.net Thu Jun 11 16:51:31 2015 From: sfbsdsx at users.sourceforge.net (sfbsdsx at users.sourceforge.net) Date: Thu, 11 Jun 2015 14:51:31 +0000 Subject: SF.net SVN: gar:[25077] csw/mgar/pkg/fossil/trunk Message-ID: <3m6p6l5w7Zz2V@mail.opencsw.org> Revision: 25077 http://sourceforge.net/p/gar/code/25077 Author: sfbsdsx Date: 2015-06-11 14:51:31 +0000 (Thu, 11 Jun 2015) Log Message: ----------- fossil/trunk: Update to 1.33 Modified Paths: -------------- csw/mgar/pkg/fossil/trunk/Makefile csw/mgar/pkg/fossil/trunk/checksums Modified: csw/mgar/pkg/fossil/trunk/Makefile =================================================================== --- csw/mgar/pkg/fossil/trunk/Makefile 2015-06-11 13:00:50 UTC (rev 25076) +++ csw/mgar/pkg/fossil/trunk/Makefile 2015-06-11 14:51:31 UTC (rev 25077) @@ -3,7 +3,7 @@ # Recipe sent in by Freddy DISSAUX freddy.dsx free.fr NAME = fossil -VERSION = 1.32 +VERSION = 1.33 GARTYPE = v2 DESCRIPTION = DSCM with built-in wiki, http interface and server, tickets database @@ -18,12 +18,14 @@ VENDOR_URL = http://www.fossil-scm.org/ -BUILD_DEP_PKGS = CSWlibssl-dev +BUILD_DEP_PKGS += CSWlibssl-dev -GARCOMPILER = GNU +BUILD64 = 1 -CONFIGURE_ARGS = $(DIRPATHS) -CONFIGURE_ARGS += --with-openssl=$(includedir) +WORKSRC = $(WORKDIR)/$(NAME)-src-$(VERSION) +CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += --with-openssl=auto +CONFIGURE_ARGS += --disable-fusefs # Remove exec_prefix from DIRPATHS: NODIRPATHS += --exec_prefix @@ -32,6 +34,5 @@ RUNTIME_DEP_PKGS_CSWfossil += CSWlibssl1-0-0 RUNTIME_DEP_PKGS_CSWfossil += CSWlibz1 -RUNTIME_DEP_PKGS_CSWfossil += CSWlibreadline6 include gar/category.mk Modified: csw/mgar/pkg/fossil/trunk/checksums =================================================================== --- csw/mgar/pkg/fossil/trunk/checksums 2015-06-11 13:00:50 UTC (rev 25076) +++ csw/mgar/pkg/fossil/trunk/checksums 2015-06-11 14:51:31 UTC (rev 25077) @@ -1 +1 @@ -ddf352925a795e574925505b9344a58e fossil-src-1.32.tar.gz +53f8145084a2065d6cb734980c172c7e fossil-src-1.33.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From sfbsdsx at users.sourceforge.net Thu Jun 11 19:35:22 2015 From: sfbsdsx at users.sourceforge.net (sfbsdsx at users.sourceforge.net) Date: Thu, 11 Jun 2015 17:35:22 +0000 Subject: SF.net SVN: gar:[25078] csw/mgar/pkg/fossil/trunk/Makefile Message-ID: <3m6sln2KQLz6f@mail.opencsw.org> Revision: 25078 http://sourceforge.net/p/gar/code/25078 Author: sfbsdsx Date: 2015-06-11 17:35:21 +0000 (Thu, 11 Jun 2015) Log Message: ----------- fossil/trunk: Fix BUILD_DEP_PKGS and readline/lineedit Modified Paths: -------------- csw/mgar/pkg/fossil/trunk/Makefile Modified: csw/mgar/pkg/fossil/trunk/Makefile =================================================================== --- csw/mgar/pkg/fossil/trunk/Makefile 2015-06-11 14:51:31 UTC (rev 25077) +++ csw/mgar/pkg/fossil/trunk/Makefile 2015-06-11 17:35:21 UTC (rev 25078) @@ -1,5 +1,6 @@ # $Id$ # TODO (release-critical prefixed with !, non release-critical with *) +# * next release don't use readline anymore (https://www.fossil-scm.org/fossil/info/851485657643dc2c) # Recipe sent in by Freddy DISSAUX freddy.dsx free.fr NAME = fossil @@ -19,16 +20,21 @@ VENDOR_URL = http://www.fossil-scm.org/ BUILD_DEP_PKGS += CSWlibssl-dev +BUILD_DEP_PKGS += CSWlibz-dev BUILD64 = 1 WORKSRC = $(WORKDIR)/$(NAME)-src-$(VERSION) -CONFIGURE_ARGS = $(DIRPATHS) + +NODIRPATHS += --exec_prefix + +CONFIGURE_ARGS = $(DIRPATHS) CONFIGURE_ARGS += --with-openssl=auto +CONFIGURE_ARGS += --with-zlib=$(includedir) CONFIGURE_ARGS += --disable-fusefs +# Find libreadline always fail +CONFIGURE_ARGS += --disable-lineedit -# Remove exec_prefix from DIRPATHS: -NODIRPATHS += --exec_prefix # No test/check target provided by fossil TEST_SCRIPTS = This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 12 11:27:35 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 12 Jun 2015 09:27:35 +0000 Subject: SF.net SVN: gar:[25079] csw/mgar/gar/v2 Message-ID: <3m7GtV0GhDzsd@mail.opencsw.org> Revision: 25079 http://sourceforge.net/p/gar/code/25079 Author: dmichelsen Date: 2015-06-12 09:27:35 +0000 (Fri, 12 Jun 2015) Log Message: ----------- mGAR v2: Update commondirs to match CSWcommon-1.5,REV=2010.12.11 Modified Paths: -------------- csw/mgar/gar/v2/bin/update-commondirs csw/mgar/gar/v2/etc/commondirs-i386 csw/mgar/gar/v2/etc/commondirs-sparc Modified: csw/mgar/gar/v2/bin/update-commondirs =================================================================== --- csw/mgar/gar/v2/bin/update-commondirs 2015-06-11 17:35:21 UTC (rev 25078) +++ csw/mgar/gar/v2/bin/update-commondirs 2015-06-12 09:27:35 UTC (rev 25079) @@ -19,7 +19,7 @@ mkdir $TMPDIR ( cd $TMPDIR - wget http://mirror.opencsw.org/opencsw/current/$1/5.9/common-1.5,REV=2010.12.11-SunOS5.8-$1-CSW.pkg + wget http://mirror.opencsw.org/opencsw/unstable/$1/5.10/common-1.5,REV=2010.12.11-SunOS5.8-$1-CSW.pkg cat common-* | pkgtrans /dev/fd/0 $TMPDIR all ) Modified: csw/mgar/gar/v2/etc/commondirs-i386 =================================================================== --- csw/mgar/gar/v2/etc/commondirs-i386 2015-06-11 17:35:21 UTC (rev 25078) +++ csw/mgar/gar/v2/etc/commondirs-i386 2015-06-12 09:27:35 UTC (rev 25079) @@ -32,9 +32,6 @@ /opt/csw/lib/pentium /opt/csw/man /opt/csw/sbin -/opt/csw/sbin/amd64 -/opt/csw/sbin/i486 -/opt/csw/sbin/pentium /opt/csw/share /opt/csw/share/doc /opt/csw/share/info Modified: csw/mgar/gar/v2/etc/commondirs-sparc =================================================================== --- csw/mgar/gar/v2/etc/commondirs-sparc 2015-06-11 17:35:21 UTC (rev 25078) +++ csw/mgar/gar/v2/etc/commondirs-sparc 2015-06-12 09:27:35 UTC (rev 25079) @@ -36,11 +36,6 @@ /opt/csw/lib/sparcv9 /opt/csw/man /opt/csw/sbin -/opt/csw/sbin/sparc -/opt/csw/sbin/sparcv8 -/opt/csw/sbin/sparcv8plus -/opt/csw/sbin/sparcv8plus+vis -/opt/csw/sbin/sparcv9 /opt/csw/share /opt/csw/share/doc /opt/csw/share/info This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 12 11:56:16 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 12 Jun 2015 09:56:16 +0000 Subject: SF.net SVN: gar:[25080] csw/mgar/pkg/libpng/trunk Message-ID: <3m7HWY3ZNyz10r@mail.opencsw.org> Revision: 25080 http://sourceforge.net/p/gar/code/25080 Author: dmichelsen Date: 2015-06-12 09:56:15 +0000 (Fri, 12 Jun 2015) Log Message: ----------- libpng/trunk: Update to 1.6.17 Modified Paths: -------------- csw/mgar/pkg/libpng/trunk/Makefile csw/mgar/pkg/libpng/trunk/checksums Modified: csw/mgar/pkg/libpng/trunk/Makefile =================================================================== --- csw/mgar/pkg/libpng/trunk/Makefile 2015-06-12 09:27:35 UTC (rev 25079) +++ csw/mgar/pkg/libpng/trunk/Makefile 2015-06-12 09:56:15 UTC (rev 25080) @@ -10,7 +10,7 @@ # pentium_pro NAME = libpng -VERSION = 1.6.16 +VERSION = 1.6.17 GARTYPE = v2 DESCRIPTION = The official library for Portable Network Graphics format (PNG) define BLURB Modified: csw/mgar/pkg/libpng/trunk/checksums =================================================================== --- csw/mgar/pkg/libpng/trunk/checksums 2015-06-12 09:27:35 UTC (rev 25079) +++ csw/mgar/pkg/libpng/trunk/checksums 2015-06-12 09:56:15 UTC (rev 25080) @@ -1 +1 @@ -1a4ad377919ab15b54f6cb6a3ae2622d libpng-1.6.16.tar.gz +134282f1752dcf4cd81a37b8ff421cef libpng-1.6.17.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 12 13:00:17 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 12 Jun 2015 11:00:17 +0000 Subject: SF.net SVN: gar:[25081] csw/mgar/pkg/libpng/branches/libpng15 Message-ID: <3m7JxS1lkWz13j@mail.opencsw.org> Revision: 25081 http://sourceforge.net/p/gar/code/25081 Author: dmichelsen Date: 2015-06-12 11:00:17 +0000 (Fri, 12 Jun 2015) Log Message: ----------- libpng/branches/libpng15: Update to 1.5.22 Modified Paths: -------------- csw/mgar/pkg/libpng/branches/libpng15/Makefile csw/mgar/pkg/libpng/branches/libpng15/checksums Modified: csw/mgar/pkg/libpng/branches/libpng15/Makefile =================================================================== --- csw/mgar/pkg/libpng/branches/libpng15/Makefile 2015-06-12 09:56:15 UTC (rev 25080) +++ csw/mgar/pkg/libpng/branches/libpng15/Makefile 2015-06-12 11:00:17 UTC (rev 25081) @@ -10,7 +10,7 @@ # pentium_pro NAME = libpng -VERSION = 1.5.13 +VERSION = 1.5.22 GARTYPE = v2 DESCRIPTION = The official library for Portable Network Graphics format (PNG) Modified: csw/mgar/pkg/libpng/branches/libpng15/checksums =================================================================== --- csw/mgar/pkg/libpng/branches/libpng15/checksums 2015-06-12 09:56:15 UTC (rev 25080) +++ csw/mgar/pkg/libpng/branches/libpng15/checksums 2015-06-12 11:00:17 UTC (rev 25081) @@ -1 +1 @@ -9c5a584d4eb5fe40d0f1bc2090112c65 libpng-1.5.13.tar.gz +8d10c6267c8da60454ef703c4cb11876 libpng-1.5.22.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Fri Jun 12 14:52:03 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Fri, 12 Jun 2015 12:52:03 +0000 Subject: SF.net SVN: gar:[25082] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m7MQP3TH0z17J@mail.opencsw.org> Revision: 25082 http://sourceforge.net/p/gar/code/25082 Author: claudio_sf Date: 2015-06-12 12:52:02 +0000 (Fri, 12 Jun 2015) Log Message: ----------- perl/trunk: perlgcc -> perl Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 11:00:17 UTC (rev 25081) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 12:52:02 UTC (rev 25082) @@ -21,8 +21,8 @@ DISTFILES = $(NAME)-$(VERSION).tar.bz2 PACKAGING_PLATFORMS += solaris10-i386 solaris10-sparc PACKAGES = CSWperl -PKG_DESC_CSWperlgcc = $(DESCRIPTION) -SPKG_DESC_CSWperlgcc = $(DESCRIPTION) +PKG_DESC_CSWperl = $(DESCRIPTION) +SPKG_DESC_CSWperl = $(DESCRIPTION) LICENSE = Copying # GCC build (Sun Studio build has been fixed) @@ -43,17 +43,17 @@ #EXTRA_RUNPATH_LINKER_FLAGS += $(prefix)/$(libdir)/perl/5.20/CORE/libperl.so # Depends -RUNTIME_DEP_PKGS_CSWperlgcc += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSWperlgcc += CSWlibssp0 -RUNTIME_DEP_PKGS_CSWperlgcc += CSWlibgdbm4 -CHECKPKG_OVERRIDES_CSWperlgcc += missing-dependency|CSWperl -CHECKPKG_OVERRIDES_CSWperlgcc += 64-bit-binaries-missing -CHECKPKG_OVERRIDES_CSWperlgcc += file-with-bad-content -CHECKPKG_OVERRIDES_CSWperlgcc += bad-rpath-entry +RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 +RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 +CHECKPKG_OVERRIDES_CSWperl += missing-dependency|CSWperl +CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing +CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content +CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry # Overridden because "/usr/ccs/bin/elfdump -y " returns output -#CHECKPKG_OVERRIDES_CSWperlgcc += no-direct-binding|/opt/csw/lib/perl/5.18/CORE/libperl.so|is|not|directly|bound|to|soname|libgcc_s.so.1 -#CHECKPKG_OVERRIDES_CSWperlgcc += no-direct-binding|/opt/csw/lib/perl/5.18/CORE/libperl.so|is|not|directly|bound|to|soname|libssp.so.0 +#CHECKPKG_OVERRIDES_CSWperl += no-direct-binding|/opt/csw/lib/perl/5.18/CORE/libperl.so|is|not|directly|bound|to|soname|libgcc_s.so.1 +#CHECKPKG_OVERRIDES_CSWperl += no-direct-binding|/opt/csw/lib/perl/5.18/CORE/libperl.so|is|not|directly|bound|to|soname|libssp.so.0 # Custom configure CONFIGURE_SCRIPTS = perl This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 12 15:03:32 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 12 Jun 2015 13:03:32 +0000 Subject: SF.net SVN: gar:[25083] csw/mgar/pkg/libpng/trunk/Makefile Message-ID: <3m7Mgm5VpXz19s@mail.opencsw.org> Revision: 25083 http://sourceforge.net/p/gar/code/25083 Author: dmichelsen Date: 2015-06-12 13:03:31 +0000 (Fri, 12 Jun 2015) Log Message: ----------- libpng/trunk: Add override Modified Paths: -------------- csw/mgar/pkg/libpng/trunk/Makefile Modified: csw/mgar/pkg/libpng/trunk/Makefile =================================================================== --- csw/mgar/pkg/libpng/trunk/Makefile 2015-06-12 12:52:02 UTC (rev 25082) +++ csw/mgar/pkg/libpng/trunk/Makefile 2015-06-12 13:03:31 UTC (rev 25083) @@ -40,6 +40,9 @@ BUILD_DEP_PKGS_CSWlibpng16-dev += CSWlibz-dev OBSOLETED_BY_CSWlibpng16-dev += CSWlibpng-dev +# This is a false positive, override for now +CHECKPKG_OVERRIDES_CSWlibpng16-dev += file-needed-but-no-package-satisfies-it|/opt/csw/lib/pentium_pro/libpng16.so.16.17.0|CSWlibpng16-dev|contains|symlink|/opt/csw/lib/pentium_pro/libpng16.so|which|needs|the|target|file:|/opt/csw/lib/pentium_pro/libpng16.so.16.17.0 + PACKAGES += CSWlibpng-utils SPKG_DESC_CSWlibpng-utils += $(DESCRIPTION), binary utilities RUNTIME_DEP_PKGS_CSWlibpng-utils += CSWlibpng16-16 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From sfbsdsx at users.sourceforge.net Fri Jun 12 15:23:39 2015 From: sfbsdsx at users.sourceforge.net (sfbsdsx at users.sourceforge.net) Date: Fri, 12 Jun 2015 13:23:39 +0000 Subject: SF.net SVN: gar:[25084] csw/mgar/pkg/libasr/trunk Message-ID: <3m7N6s0Sgbz1Dg@mail.opencsw.org> Revision: 25084 http://sourceforge.net/p/gar/code/25084 Author: sfbsdsx Date: 2015-06-12 13:23:38 +0000 (Fri, 12 Jun 2015) Log Message: ----------- libasr/trunk: Update to 1.0.2 Modified Paths: -------------- csw/mgar/pkg/libasr/trunk/Makefile csw/mgar/pkg/libasr/trunk/checksums Modified: csw/mgar/pkg/libasr/trunk/Makefile =================================================================== --- csw/mgar/pkg/libasr/trunk/Makefile 2015-06-12 13:03:31 UTC (rev 25083) +++ csw/mgar/pkg/libasr/trunk/Makefile 2015-06-12 13:23:38 UTC (rev 25084) @@ -2,7 +2,7 @@ # TODO (release-critical prefixed with !, non release-critical with *) # NAME = libasr -VERSION = 201505061057 +VERSION = 1.0.2 GARTYPE = v2 DESCRIPTION = A free, simple and portable asynchronous resolver library Modified: csw/mgar/pkg/libasr/trunk/checksums =================================================================== --- csw/mgar/pkg/libasr/trunk/checksums 2015-06-12 13:03:31 UTC (rev 25083) +++ csw/mgar/pkg/libasr/trunk/checksums 2015-06-12 13:23:38 UTC (rev 25084) @@ -1 +1 @@ -2a4b768b54892465570ef7488e56b737 libasr-201505061057.tar.gz +2a2832e8c25683bd17f4ce8b37ba940a libasr-1.0.2.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Fri Jun 12 17:18:26 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Fri, 12 Jun 2015 15:18:26 +0000 Subject: SF.net SVN: gar:[25085] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m7QgL4SDbz1RW@mail.opencsw.org> Revision: 25085 http://sourceforge.net/p/gar/code/25085 Author: claudio_sf Date: 2015-06-12 15:18:26 +0000 (Fri, 12 Jun 2015) Log Message: ----------- perl/trunk: perlgcc -> perl Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 13:23:38 UTC (rev 25084) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 15:18:26 UTC (rev 25085) @@ -1,10 +1,9 @@ -NAME = perl -VERSION = 5.22.0 +NAME = perl +VERSION = 5.22.0 VERSION_MAJOR = $(shell echo $(VERSION) | cut -f1-2 -d.) -#CATEGORIES = lang -GARTYPE = v2 - -DESCRIPTION = A high-level, general-purpose programming language +CATEGORIES = lang +GARTYPE = v2 +DESCRIPTION = A high-level, general-purpose programming language define BLURB Perl is a high-level, general-purpose programming language that makes easy things easy and hard things possible. It is optimized for scanning arbitrary @@ -16,28 +15,27 @@ endef #MASTER_SITES = manual:// -MASTER_SITES = http://www.cpan.org/src/5.0/ -VENDOR_URL = http://www.perl.org -DISTFILES = $(NAME)-$(VERSION).tar.bz2 +MASTER_SITES = http://www.cpan.org/src/5.0/ +VENDOR_URL = http://www.perl.org +DISTFILES = $(NAME)-$(VERSION).tar.bz2 PACKAGING_PLATFORMS += solaris10-i386 solaris10-sparc -PACKAGES = CSWperl -PKG_DESC_CSWperl = $(DESCRIPTION) -SPKG_DESC_CSWperl = $(DESCRIPTION) -LICENSE = Copying +PACKAGES = CSWperl +OBSOLETED_BY_CSWperl = CSWperldoc +PKG_DESC_CSWperl = $(DESCRIPTION) +SPKG_DESC_CSWperl = $(DESCRIPTION) +LICENSE = Copying # GCC build (Sun Studio build has been fixed) -GARCOMPILER = GCC4 +GARCOMPILER = GCC4 MAKE_OPT_unstable10s = -j 24 MAKE_OPT_unstable10x = -j 4 -MAKE_OPT = $(MAKE_OPT_$(shell hostname)) -BUILD64 = 1 -ISAEXEC = 1 -IGNORE_DESTDIR = 1 - +MAKE_OPT = $(MAKE_OPT_$(shell hostname)) +BUILD64 = 1 +ISAEXEC = 1 +IGNORE_DESTDIR = 1 # a .git directory will cause failing upstream author tests (the source will be considered blead) -NOGITPATCH = 1 - -EXTRA_RUNPATH_DIRS = $(libdir)/perl/5.22/CORE +NOGITPATCH = 1 +EXTRA_RUNPATH_DIRS = $(libdir)/perl/5.22/CORE EXTRA_RUNPATH_ISALIST = $(EXTRA_RUNPATH_DIRS) #EXTRA_LIB = $(prefix)/$(libdir)/perl/5.20/CORE #EXTRA_RUNPATH_LINKER_FLAGS += $(prefix)/$(libdir)/perl/5.20/CORE/libperl.so @@ -46,6 +44,7 @@ RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 + CHECKPKG_OVERRIDES_CSWperl += missing-dependency|CSWperl CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Fri Jun 12 17:24:07 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Fri, 12 Jun 2015 15:24:07 +0000 Subject: SF.net SVN: gar:[25086] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m7Qns0ZxLz1Tx@mail.opencsw.org> Revision: 25086 http://sourceforge.net/p/gar/code/25086 Author: claudio_sf Date: 2015-06-12 15:24:06 +0000 (Fri, 12 Jun 2015) Log Message: ----------- perl/trunk: perlgcc -> perl Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 15:18:26 UTC (rev 25085) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 15:24:06 UTC (rev 25086) @@ -20,7 +20,7 @@ DISTFILES = $(NAME)-$(VERSION).tar.bz2 PACKAGING_PLATFORMS += solaris10-i386 solaris10-sparc PACKAGES = CSWperl -OBSOLETED_BY_CSWperl = CSWperldoc +OBSOLETED_BY_CSWperl = CSWperldoc CSWpm-cpan-meta CSWpm-test-use-ok CSWpm-test-tester CSWpm-json-pp CSWpm-parse-cpan-meta CSWpm-cpan-meta-yaml CSWpm-module-metadata CSWpm-experimental CSWpm-cpan-meta-requirements CSWpm-perl-ostype PKG_DESC_CSWperl = $(DESCRIPTION) SPKG_DESC_CSWperl = $(DESCRIPTION) LICENSE = Copying @@ -40,12 +40,9 @@ #EXTRA_LIB = $(prefix)/$(libdir)/perl/5.20/CORE #EXTRA_RUNPATH_LINKER_FLAGS += $(prefix)/$(libdir)/perl/5.20/CORE/libperl.so -# Depends RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 - -CHECKPKG_OVERRIDES_CSWperl += missing-dependency|CSWperl CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Fri Jun 12 17:44:20 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Fri, 12 Jun 2015 15:44:20 +0000 Subject: SF.net SVN: gar:[25087] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m7RFB5V6sz1Xf@mail.opencsw.org> Revision: 25087 http://sourceforge.net/p/gar/code/25087 Author: claudio_sf Date: 2015-06-12 15:44:20 +0000 (Fri, 12 Jun 2015) Log Message: ----------- perl/trunk: perlgcc -> perl Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 15:24:06 UTC (rev 25086) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 15:44:20 UTC (rev 25087) @@ -46,6 +46,7 @@ CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry +CHECKPKG_OVERRIDES_CSWpm-cpan-meta-requirements += catalogname-too-long # Overridden because "/usr/ccs/bin/elfdump -y " returns output #CHECKPKG_OVERRIDES_CSWperl += no-direct-binding|/opt/csw/lib/perl/5.18/CORE/libperl.so|is|not|directly|bound|to|soname|libgcc_s.so.1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From jake_goerzen at users.sourceforge.net Fri Jun 12 18:06:21 2015 From: jake_goerzen at users.sourceforge.net (jake_goerzen at users.sourceforge.net) Date: Fri, 12 Jun 2015 16:06:21 +0000 Subject: SF.net SVN: gar:[25088] csw/mgar/pkg/tor/trunk Message-ID: <3m7Rkc1JYdz3M@mail.opencsw.org> Revision: 25088 http://sourceforge.net/p/gar/code/25088 Author: jake_goerzen Date: 2015-06-12 16:06:21 +0000 (Fri, 12 Jun 2015) Log Message: ----------- tor: update to 0.2.6.9 Modified Paths: -------------- csw/mgar/pkg/tor/trunk/Makefile csw/mgar/pkg/tor/trunk/checksums Modified: csw/mgar/pkg/tor/trunk/Makefile =================================================================== --- csw/mgar/pkg/tor/trunk/Makefile 2015-06-12 15:44:20 UTC (rev 25087) +++ csw/mgar/pkg/tor/trunk/Makefile 2015-06-12 16:06:21 UTC (rev 25088) @@ -1,6 +1,6 @@ # $Id$ NAME = tor -VERSION = 0.2.6.8 +VERSION = 0.2.6.9 GARTYPE = v2 DESCRIPTION = Secure network traffic router Modified: csw/mgar/pkg/tor/trunk/checksums =================================================================== --- csw/mgar/pkg/tor/trunk/checksums 2015-06-12 15:44:20 UTC (rev 25087) +++ csw/mgar/pkg/tor/trunk/checksums 2015-06-12 16:06:21 UTC (rev 25088) @@ -1 +1 @@ -20a8c1f8cd7e8c912c4f3f0b67740fa5 tor-0.2.6.8.tar.gz +4a1b334c30d7b37ea72fa33425220d5d tor-0.2.6.9.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Fri Jun 12 19:38:21 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Fri, 12 Jun 2015 17:38:21 +0000 Subject: SF.net SVN: gar:[25089] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m7Tmm0KQ3z6s@mail.opencsw.org> Revision: 25089 http://sourceforge.net/p/gar/code/25089 Author: claudio_sf Date: 2015-06-12 17:38:20 +0000 (Fri, 12 Jun 2015) Log Message: ----------- perl/trunk: perlgcc -> perl Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 16:06:21 UTC (rev 25088) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 17:38:20 UTC (rev 25089) @@ -40,13 +40,6 @@ #EXTRA_LIB = $(prefix)/$(libdir)/perl/5.20/CORE #EXTRA_RUNPATH_LINKER_FLAGS += $(prefix)/$(libdir)/perl/5.20/CORE/libperl.so -RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 -RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 -CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing -CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content -CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry -CHECKPKG_OVERRIDES_CSWpm-cpan-meta-requirements += catalogname-too-long # Overridden because "/usr/ccs/bin/elfdump -y " returns output #CHECKPKG_OVERRIDES_CSWperl += no-direct-binding|/opt/csw/lib/perl/5.18/CORE/libperl.so|is|not|directly|bound|to|soname|libgcc_s.so.1 @@ -93,6 +86,15 @@ BUILD_SCRIPTS = perl TEST_SCRIPTS = perl +# Get it built +RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 +RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 +#CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing +CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content +#CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry +CHECKPKG_OVERRIDES_CSWpm-cpan-meta-requirements += catalogname-too-long + include gar/category.mk # Configure This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 12 19:47:47 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 12 Jun 2015 17:47:47 +0000 Subject: SF.net SVN: gar:[25090] csw/mgar/pkg/stunnel/trunk Message-ID: <3m7Tzd3Cv9z9Y@mail.opencsw.org> Revision: 25090 http://sourceforge.net/p/gar/code/25090 Author: dmichelsen Date: 2015-06-12 17:47:47 +0000 (Fri, 12 Jun 2015) Log Message: ----------- stunnel/trunk: Update to 5.18 Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile csw/mgar/pkg/stunnel/trunk/checksums Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-12 17:38:20 UTC (rev 25089) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-12 17:47:47 UTC (rev 25090) @@ -8,7 +8,7 @@ # NAME = stunnel VERSION = 5.18 -BETA = b4 +# BETA = b4 GARTYPE = v2 DESCRIPTION = Universal SSL Wrapper Modified: csw/mgar/pkg/stunnel/trunk/checksums =================================================================== --- csw/mgar/pkg/stunnel/trunk/checksums 2015-06-12 17:38:20 UTC (rev 25089) +++ csw/mgar/pkg/stunnel/trunk/checksums 2015-06-12 17:47:47 UTC (rev 25090) @@ -1 +1 @@ -cc1f067e80a5be2596be582204a42931 stunnel-5.18b4.tar.gz +04f90ffbb65ffa289a5b1db2c52950f5 stunnel-5.18.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Fri Jun 12 19:50:05 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Fri, 12 Jun 2015 17:50:05 +0000 Subject: SF.net SVN: gar:[25091] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3m7V2G07WfzD2@mail.opencsw.org> Revision: 25091 http://sourceforge.net/p/gar/code/25091 Author: claudio_sf Date: 2015-06-12 17:50:04 +0000 (Fri, 12 Jun 2015) Log Message: ----------- perl/trunk: perlgcc -> perl Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 17:47:47 UTC (rev 25090) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-12 17:50:04 UTC (rev 25091) @@ -1,7 +1,6 @@ NAME = perl VERSION = 5.22.0 VERSION_MAJOR = $(shell echo $(VERSION) | cut -f1-2 -d.) -CATEGORIES = lang GARTYPE = v2 DESCRIPTION = A high-level, general-purpose programming language define BLURB This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 12 20:10:29 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 12 Jun 2015 18:10:29 +0000 Subject: SF.net SVN: gar:[25092] csw/mgar/pkg Message-ID: <3m7VTx05tgzGf@mail.opencsw.org> Revision: 25092 http://sourceforge.net/p/gar/code/25092 Author: dmichelsen Date: 2015-06-12 18:10:29 +0000 (Fri, 12 Jun 2015) Log Message: ----------- libicu55: Initial commit Modified Paths: -------------- csw/mgar/pkg/libicu55/trunk/Makefile csw/mgar/pkg/libicu55/trunk/checksums Added Paths: ----------- csw/mgar/pkg/libicu55/ Modified: csw/mgar/pkg/libicu55/trunk/Makefile =================================================================== --- csw/mgar/pkg/libicu54/trunk/Makefile 2015-01-22 10:25:06 UTC (rev 24584) +++ csw/mgar/pkg/libicu55/trunk/Makefile 2015-06-12 18:10:29 UTC (rev 25092) @@ -1,6 +1,6 @@ # $Id$ NAME = libicu -VERSION = 54.1 +VERSION = 55.1 GARTYPE = v2 DESCRIPTION = International Components for Unicode @@ -15,72 +15,72 @@ LICENSE = license.html -PACKAGES += CSWlibicudata54 -SPKG_DESC_CSWlibicudata54 = International Components for Unicode, libicudata.so.54 -PKGFILES_CSWlibicudata54 += $(call pkgfiles_lib,libicudata.so.54) +PACKAGES += CSWlibicudata55 +SPKG_DESC_CSWlibicudata55 = International Components for Unicode, libicudata.so.55 +PKGFILES_CSWlibicudata55 += $(call pkgfiles_lib,libicudata.so.55) -PACKAGES += CSWlibicui18n54 -SPKG_DESC_CSWlibicui18n54 = International Components for Unicode, libicui18n.so.54 -PKGFILES_CSWlibicui18n54 += $(call pkgfiles_lib,libicui18n.so.54) -RUNTIME_DEP_PKGS_CSWlibicui18n54 += CSWlibicuuc54 -RUNTIME_DEP_PKGS_CSWlibicui18n54 += CSWlibicudata54 +PACKAGES += CSWlibicui18n55 +SPKG_DESC_CSWlibicui18n55 = International Components for Unicode, libicui18n.so.55 +PKGFILES_CSWlibicui18n55 += $(call pkgfiles_lib,libicui18n.so.55) +RUNTIME_DEP_PKGS_CSWlibicui18n55 += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWlibicui18n55 += CSWlibicudata55 -PACKAGES += CSWlibicuio54 -SPKG_DESC_CSWlibicuio54 = International Components for Unicode, libicuio.so.54 -PKGFILES_CSWlibicuio54 += $(call pkgfiles_lib,libicuio.so.54) -RUNTIME_DEP_PKGS_CSWlibicuio54 += CSWlibicui18n54 -RUNTIME_DEP_PKGS_CSWlibicuio54 += CSWlibicuuc54 -RUNTIME_DEP_PKGS_CSWlibicuio54 += CSWlibicudata54 +PACKAGES += CSWlibicuio55 +SPKG_DESC_CSWlibicuio55 = International Components for Unicode, libicuio.so.55 +PKGFILES_CSWlibicuio55 += $(call pkgfiles_lib,libicuio.so.55) +RUNTIME_DEP_PKGS_CSWlibicuio55 += CSWlibicui18n55 +RUNTIME_DEP_PKGS_CSWlibicuio55 += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWlibicuio55 += CSWlibicudata55 -PACKAGES += CSWlibicule54 -SPKG_DESC_CSWlibicule54 = International Components for Unicode, libicule.so.54 -PKGFILES_CSWlibicule54 += $(call pkgfiles_lib,libicule.so.54) -RUNTIME_DEP_PKGS_CSWlibicule54 += CSWlibicuuc54 -RUNTIME_DEP_PKGS_CSWlibicule54 += CSWlibicudata54 +PACKAGES += CSWlibicule55 +SPKG_DESC_CSWlibicule55 = International Components for Unicode, libicule.so.55 +PKGFILES_CSWlibicule55 += $(call pkgfiles_lib,libicule.so.55) +RUNTIME_DEP_PKGS_CSWlibicule55 += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWlibicule55 += CSWlibicudata55 -PACKAGES += CSWlibiculx54 -SPKG_DESC_CSWlibiculx54 = International Components for Unicode, libiculx.so.54 -PKGFILES_CSWlibiculx54 += $(call pkgfiles_lib,libiculx.so.54) -RUNTIME_DEP_PKGS_CSWlibiculx54 += CSWlibicuuc54 -RUNTIME_DEP_PKGS_CSWlibiculx54 += CSWlibicule54 -RUNTIME_DEP_PKGS_CSWlibiculx54 += CSWlibicudata54 +PACKAGES += CSWlibiculx55 +SPKG_DESC_CSWlibiculx55 = International Components for Unicode, libiculx.so.55 +PKGFILES_CSWlibiculx55 += $(call pkgfiles_lib,libiculx.so.55) +RUNTIME_DEP_PKGS_CSWlibiculx55 += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWlibiculx55 += CSWlibicule55 +RUNTIME_DEP_PKGS_CSWlibiculx55 += CSWlibicudata55 -PACKAGES += CSWlibicutest54 -SPKG_DESC_CSWlibicutest54 = International Components for Unicode, libicutest.so.54 -PKGFILES_CSWlibicutest54 += $(call pkgfiles_lib,libicutest.so.54) -RUNTIME_DEP_PKGS_CSWlibicutest54 += CSWlibicutu54 -RUNTIME_DEP_PKGS_CSWlibicutest54 += CSWlibicuuc54 -RUNTIME_DEP_PKGS_CSWlibicutest54 += CSWlibicui18n54 -RUNTIME_DEP_PKGS_CSWlibicutest54 += CSWlibicudata54 +PACKAGES += CSWlibicutest55 +SPKG_DESC_CSWlibicutest55 = International Components for Unicode, libicutest.so.55 +PKGFILES_CSWlibicutest55 += $(call pkgfiles_lib,libicutest.so.55) +RUNTIME_DEP_PKGS_CSWlibicutest55 += CSWlibicutu55 +RUNTIME_DEP_PKGS_CSWlibicutest55 += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWlibicutest55 += CSWlibicui18n55 +RUNTIME_DEP_PKGS_CSWlibicutest55 += CSWlibicudata55 -PACKAGES += CSWlibicutu54 -SPKG_DESC_CSWlibicutu54 = International Components for Unicode, libicutu.so.54 -PKGFILES_CSWlibicutu54 += $(call pkgfiles_lib,libicutu.so.54) -RUNTIME_DEP_PKGS_CSWlibicutu54 += CSWlibicuuc54 -RUNTIME_DEP_PKGS_CSWlibicutu54 += CSWlibicui18n54 -RUNTIME_DEP_PKGS_CSWlibicutu54 += CSWlibicudata54 +PACKAGES += CSWlibicutu55 +SPKG_DESC_CSWlibicutu55 = International Components for Unicode, libicutu.so.55 +PKGFILES_CSWlibicutu55 += $(call pkgfiles_lib,libicutu.so.55) +RUNTIME_DEP_PKGS_CSWlibicutu55 += CSWlibicuuc55 +RUNTIME_DEP_PKGS_CSWlibicutu55 += CSWlibicui18n55 +RUNTIME_DEP_PKGS_CSWlibicutu55 += CSWlibicudata55 -PACKAGES += CSWlibicuuc54 -SPKG_DESC_CSWlibicuuc54 = International Components for Unicode, libicuuc.so.54 -PKGFILES_CSWlibicuuc54 += $(call pkgfiles_lib,libicuuc.so.54) -RUNTIME_DEP_PKGS_CSWlibicuuc54 += CSWlibicudata54 +PACKAGES += CSWlibicuuc55 +SPKG_DESC_CSWlibicuuc55 = International Components for Unicode, libicuuc.so.55 +PKGFILES_CSWlibicuuc55 += $(call pkgfiles_lib,libicuuc.so.55) +RUNTIME_DEP_PKGS_CSWlibicuuc55 += CSWlibicudata55 # This is the presence of /usr/share/lib/zoneinfo which is ok -CHECKPKG_OVERRIDES_CSWlibicuuc54 += file-with-bad-content|/usr/share|root/opt/csw/lib/libicuuc.so.54.1 -CHECKPKG_OVERRIDES_CSWlibicuuc54 += file-with-bad-content|/usr/share|root/opt/csw/lib/sparcv9/libicuuc.so.54.1 -CHECKPKG_OVERRIDES_CSWlibicuuc54 += file-with-bad-content|/usr/share|root/opt/csw/lib/amd64/libicuuc.so.54.1 +CHECKPKG_OVERRIDES_CSWlibicuuc55 += file-with-bad-content|/usr/share|root/opt/csw/lib/libicuuc.so.55.1 +CHECKPKG_OVERRIDES_CSWlibicuuc55 += file-with-bad-content|/usr/share|root/opt/csw/lib/sparcv9/libicuuc.so.55.1 +CHECKPKG_OVERRIDES_CSWlibicuuc55 += file-with-bad-content|/usr/share|root/opt/csw/lib/amd64/libicuuc.so.55.1 PACKAGES += CSWlibicu-dev -SPKG_DESC_CSWlibicu-dev = Development files for libicu.so.54 +SPKG_DESC_CSWlibicu-dev = Development files for libicu.so.55 # This package is PKGFILES catchall -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicudata54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicui18n54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicuio54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicule54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibiculx54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicutest54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicutu54 -RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicuuc54 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicudata55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicui18n55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicuio55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicule55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibiculx55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicutest55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicutu55 +RUNTIME_DEP_PKGS_CSWlibicu-dev += CSWlibicuuc55 # This is a false positive. Override until this is fixed: # http://lists.opencsw.org/pipermail/maintainers/2015-January/019612.html @@ -92,13 +92,13 @@ CHECKPKG_OVERRIDES_CSWlibicu-dev += file-needed-but-no-package-satisfies-it|/opt/csw/lib/icu/current/pkgdata.inc|CSWlibicu-dev|contains|symlink|/opt/csw/lib/icu/pkgdata.inc|which|needs|the|target|file:|/opt/csw/lib/icu/current/pkgdata.inc # For i386 due to different linker settings -CHECKPKG_OVERRIDES_CSWlibicule54 += surplus-dependency|CSWlibicudata54 -CHECKPKG_OVERRIDES_CSWlibicutu54 += surplus-dependency|CSWlibicudata54 -CHECKPKG_OVERRIDES_CSWlibiculx54 += surplus-dependency|CSWlibicudata54 -CHECKPKG_OVERRIDES_CSWlibicuio54 += surplus-dependency|CSWlibicudata54 -CHECKPKG_OVERRIDES_CSWlibicutest54 += surplus-dependency|CSWlibicudata54 -CHECKPKG_OVERRIDES_CSWlibicutest54 += surplus-dependency|CSWlibicui18n54 -CHECKPKG_OVERRIDES_CSWlibicui18n54 += surplus-dependency|CSWlibicudata54 +CHECKPKG_OVERRIDES_CSWlibicule55 += surplus-dependency|CSWlibicudata55 +CHECKPKG_OVERRIDES_CSWlibicutu55 += surplus-dependency|CSWlibicudata55 +CHECKPKG_OVERRIDES_CSWlibiculx55 += surplus-dependency|CSWlibicudata55 +CHECKPKG_OVERRIDES_CSWlibicuio55 += surplus-dependency|CSWlibicudata55 +CHECKPKG_OVERRIDES_CSWlibicutest55 += surplus-dependency|CSWlibicudata55 +CHECKPKG_OVERRIDES_CSWlibicutest55 += surplus-dependency|CSWlibicui18n55 +CHECKPKG_OVERRIDES_CSWlibicui18n55 += surplus-dependency|CSWlibicudata55 DISTNAME = icu WORKSRC = $(WORKDIR)/$(DISTNAME)/source Modified: csw/mgar/pkg/libicu55/trunk/checksums =================================================================== --- csw/mgar/pkg/libicu54/trunk/checksums 2015-01-22 10:25:06 UTC (rev 24584) +++ csw/mgar/pkg/libicu55/trunk/checksums 2015-06-12 18:10:29 UTC (rev 25092) @@ -1 +1 @@ -e844caed8f2ca24c088505b0d6271bc0 icu4c-54_1-src.tgz +e2d523df79d6cb7855c2fbe284f4db29 icu4c-55_1-src.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From cgrzemba at users.sourceforge.net Mon Jun 15 08:50:36 2015 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 15 Jun 2015 06:50:36 +0000 Subject: SF.net SVN: gar:[25093] csw/mgar/pkg/apache24/trunk/Makefile Message-ID: <3m93G43D30z1Sr@mail.opencsw.org> Revision: 25093 http://sourceforge.net/p/gar/code/25093 Author: cgrzemba Date: 2015-06-15 06:50:35 +0000 (Mon, 15 Jun 2015) Log Message: ----------- apache24/trunk: fix runtime dependencies Modified Paths: -------------- csw/mgar/pkg/apache24/trunk/Makefile Modified: csw/mgar/pkg/apache24/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache24/trunk/Makefile 2015-06-12 18:10:29 UTC (rev 25092) +++ csw/mgar/pkg/apache24/trunk/Makefile 2015-06-15 06:50:35 UTC (rev 25093) @@ -46,8 +46,6 @@ RUNTIME_DEP_PKGS_CSWapache24 += CSWlibapr1-0 RUNTIME_DEP_PKGS_CSWapache24 += CSWlibldap2-4-2 RUNTIME_DEP_PKGS_CSWapache24 += CSWlibxml2-2 -RUNTIME_DEP_PKGS_CSWapache24 += CSWopenldap -RUNTIME_DEP_PKGS_CSWapache24 += CSWlighttpd EXTRA_MERGE_SCRIPTS_isa-default64 += copy-apache-modules This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From sfbsdsx at users.sourceforge.net Mon Jun 15 10:25:18 2015 From: sfbsdsx at users.sourceforge.net (sfbsdsx at users.sourceforge.net) Date: Mon, 15 Jun 2015 08:25:18 +0000 Subject: SF.net SVN: gar:[25094] csw/mgar/pkg/libasr/trunk/Makefile Message-ID: <3m95MF6lyhz6N@mail.opencsw.org> Revision: 25094 http://sourceforge.net/p/gar/code/25094 Author: sfbsdsx Date: 2015-06-15 08:25:17 +0000 (Mon, 15 Jun 2015) Log Message: ----------- libasr/trunk: fix typo Modified Paths: -------------- csw/mgar/pkg/libasr/trunk/Makefile Modified: csw/mgar/pkg/libasr/trunk/Makefile =================================================================== --- csw/mgar/pkg/libasr/trunk/Makefile 2015-06-15 06:50:35 UTC (rev 25093) +++ csw/mgar/pkg/libasr/trunk/Makefile 2015-06-15 08:25:17 UTC (rev 25094) @@ -28,7 +28,7 @@ PATCHFILES-5.10 += 0001-add-openbsd-compat-getifaddrs.c.patch PATCHFILES += 0002-fix-possible-MAX-redefinition.patch -PATCHFILES += $(PATHFILES-$(GAROSREL)) +PATCHFILES += $(PATCHFILES-$(GAROSREL)) PACKAGING_PLATFORMS += solaris10-sparc solaris10-i386 PACKAGING_PLATFORMS += solaris11-sparc solaris11-i386 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Jun 16 17:41:37 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 16 Jun 2015 15:41:37 +0000 Subject: SF.net SVN: gar:[25095] csw/mgar/pkg/lang-python/django-tagging/trunk Message-ID: <3m9v0L4qG9zcm@mail.opencsw.org> Revision: 25095 http://sourceforge.net/p/gar/code/25095 Author: dmichelsen Date: 2015-06-16 15:41:36 +0000 (Tue, 16 Jun 2015) Log Message: ----------- lang-python/django-tagging/trunk: Update to 0.4 Modified Paths: -------------- csw/mgar/pkg/lang-python/django-tagging/trunk/Makefile csw/mgar/pkg/lang-python/django-tagging/trunk/checksums Modified: csw/mgar/pkg/lang-python/django-tagging/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-tagging/trunk/Makefile 2015-06-15 08:25:17 UTC (rev 25094) +++ csw/mgar/pkg/lang-python/django-tagging/trunk/Makefile 2015-06-16 15:41:36 UTC (rev 25095) @@ -2,10 +2,10 @@ # Distributed under the terms of the GNU General Public License v2 NAME = django-tagging -VERSION = 0.3.1 +VERSION = 0.4 CATEGORIES = python GARTYPE = v2 -DESCRIPTION = A generig tagging application for Django projects +DESCRIPTION = A generic tagging application for Django projects define BLURB A generic tagging application for Django projects, which allows association of a number of tags with any Model instance and makes retrieval of tags @@ -13,23 +13,24 @@ endef SPKG_SOURCEURL = http://code.google.com/p/django-tagging/downloads/detail?name= -MASTER_SITES = $(GOOGLE_MIRROR) -DISTNAME = $(NAME)-$(VERSION) -DISTFILES = $(DISTNAME).tar.gz -UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz +DISTFILES += $(DISTNAME).tar.gz +# Django-Tagging 0.4 only supports Python 2.7 +MODULATIONS_PYTHON_VERSION = 2_7 +CHECKPKG_OVERRIDES_CSWpy-django-tagging += python-package-missing-py26-files + +BUILD_DEP_PKGS += CSWpy-setuptools + PACKAGES = CSWpy-django-tagging -CATALOGNAME = py_django_tagging +SPKG_DESC_CSWpy-django-tagging = A generic tagging application for Django projects +# PKGFILES is catchall +RUNTIME_DEP_PKGS += CSWpy-django ARCHALL_CSWpy-django-tagging = 1 -BUILD_DEP_PKGS += CSWpysetuptools -RUNTIME_DEP_PKGS += CSWpy-django - # checkpkg can't detect python run time dependencies CHECKPKG_OVERRIDES_CSWpy-django-tagging += surplus-dependency|CSWpy-django - -SKIPTEST=1 +# SKIPTEST=1 #TEST_TARGET = check include gar/category.mk Modified: csw/mgar/pkg/lang-python/django-tagging/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/django-tagging/trunk/checksums 2015-06-15 08:25:17 UTC (rev 25094) +++ csw/mgar/pkg/lang-python/django-tagging/trunk/checksums 2015-06-16 15:41:36 UTC (rev 25095) @@ -1 +1 @@ -a0855f2b044db15f3f8a025fa1016ddf django-tagging-0.3.1.tar.gz +66ce11896494171fef93bde65871bbd7 django-tagging-0.4.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Tue Jun 16 18:20:21 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 16 Jun 2015 16:20:21 +0000 Subject: SF.net SVN: gar:[25096] csw/mgar/pkg/stunnel/trunk Message-ID: <3m9vrv351Xzh3@mail.opencsw.org> Revision: 25096 http://sourceforge.net/p/gar/code/25096 Author: dmichelsen Date: 2015-06-16 16:20:21 +0000 (Tue, 16 Jun 2015) Log Message: ----------- stunnel/trunk: Update to 5.19 Modified Paths: -------------- csw/mgar/pkg/stunnel/trunk/Makefile csw/mgar/pkg/stunnel/trunk/checksums Modified: csw/mgar/pkg/stunnel/trunk/Makefile =================================================================== --- csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-16 15:41:36 UTC (rev 25095) +++ csw/mgar/pkg/stunnel/trunk/Makefile 2015-06-16 16:20:21 UTC (rev 25096) @@ -7,7 +7,7 @@ # Test on Solaris 8 / 9 for comparison # NAME = stunnel -VERSION = 5.18 +VERSION = 5.19 # BETA = b4 GARTYPE = v2 Modified: csw/mgar/pkg/stunnel/trunk/checksums =================================================================== --- csw/mgar/pkg/stunnel/trunk/checksums 2015-06-16 15:41:36 UTC (rev 25095) +++ csw/mgar/pkg/stunnel/trunk/checksums 2015-06-16 16:20:21 UTC (rev 25096) @@ -1 +1 @@ -04f90ffbb65ffa289a5b1db2c52950f5 stunnel-5.18.tar.gz +5642c0feb14f480b8a0739b6eb8b39e5 stunnel-5.19.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Wed Jun 17 16:20:19 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Wed, 17 Jun 2015 14:20:19 +0000 Subject: SF.net SVN: gar:[25097] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3mBT7z097jzyB@mail.opencsw.org> Revision: 25097 http://sourceforge.net/p/gar/code/25097 Author: claudio_sf Date: 2015-06-17 14:20:19 +0000 (Wed, 17 Jun 2015) Log Message: ----------- perl/trunk: Add isaexec depency Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-16 16:20:21 UTC (rev 25096) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-17 14:20:19 UTC (rev 25097) @@ -89,6 +89,7 @@ RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 +RUNTIME_DEP_PKGS_CSWperl += CSWisaexec #CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content #CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Wed Jun 17 18:16:50 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Wed, 17 Jun 2015 16:16:50 +0000 Subject: SF.net SVN: gar:[25098] csw/mgar/pkg/curl/trunk Message-ID: <3mBWkd2sb2z12Z@mail.opencsw.org> Revision: 25098 http://sourceforge.net/p/gar/code/25098 Author: dmichelsen Date: 2015-06-17 16:16:49 +0000 (Wed, 17 Jun 2015) Log Message: ----------- curl/trunk: Update to 7.43.0 Modified Paths: -------------- csw/mgar/pkg/curl/trunk/Makefile csw/mgar/pkg/curl/trunk/checksums Removed Paths: ------------- csw/mgar/pkg/curl/trunk/files/0001-Use-KRB5CONFIG.patch Modified: csw/mgar/pkg/curl/trunk/Makefile =================================================================== --- csw/mgar/pkg/curl/trunk/Makefile 2015-06-17 14:20:19 UTC (rev 25097) +++ csw/mgar/pkg/curl/trunk/Makefile 2015-06-17 16:16:49 UTC (rev 25098) @@ -1,5 +1,5 @@ NAME = curl -VERSION = 7.42.1 +VERSION = 7.43.0 GARTYPE = v2 DESCRIPTION = Command line tool and library for client-side URL transfers @@ -18,10 +18,6 @@ VENDOR_URL = http://curl.haxx.se -# Use patch until this is completely fixed: -# http://sourceforge.net/p/curl/bugs/1486/ -PATCHFILES += 0001-Use-KRB5CONFIG.patch - # Because of OpenSSL 1.0 update PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 Modified: csw/mgar/pkg/curl/trunk/checksums =================================================================== --- csw/mgar/pkg/curl/trunk/checksums 2015-06-17 14:20:19 UTC (rev 25097) +++ csw/mgar/pkg/curl/trunk/checksums 2015-06-17 16:16:49 UTC (rev 25098) @@ -1 +1 @@ -f1e460020a99da039b153e4bf0cd8600 curl-7.42.1.tar.lzma +95df6d1ce9c970289d2997e603d6fd79 curl-7.43.0.tar.lzma Deleted: csw/mgar/pkg/curl/trunk/files/0001-Use-KRB5CONFIG.patch =================================================================== --- csw/mgar/pkg/curl/trunk/files/0001-Use-KRB5CONFIG.patch 2015-06-17 14:20:19 UTC (rev 25097) +++ csw/mgar/pkg/curl/trunk/files/0001-Use-KRB5CONFIG.patch 2015-06-17 16:16:49 UTC (rev 25098) @@ -1,25 +0,0 @@ -From 55d3d0705dc2c26e174a6742b08177c4c3217637 Mon Sep 17 00:00:00 2001 -From: Dagobert Michelsen -Date: Wed, 22 Apr 2015 09:49:56 +0200 -Subject: [PATCH] Use KRB5CONFIG - ---- - configure.ac | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index e676ff3..bfce862 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1194,8 +1194,6 @@ if test x"$want_gss" = xyes; then - if test -z "$GSSAPI_INCS"; then - if test -n "$host_alias" -a -f "$GSSAPI_ROOT/bin/$host_alias-krb5-config"; then - GSSAPI_INCS=`$GSSAPI_ROOT/bin/$host_alias-krb5-config --cflags gssapi` -- elif test -f "$GSSAPI_ROOT/bin/krb5-config"; then -- GSSAPI_INCS=`$GSSAPI_ROOT/bin/krb5-config --cflags gssapi` - elif test -f "$KRB5CONFIG"; then - GSSAPI_INCS=`$KRB5CONFIG --cflags gssapi` - elif test "$GSSAPI_ROOT" != "yes"; then --- -2.3.3 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From claudio_sf at users.sourceforge.net Wed Jun 17 23:58:34 2015 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Wed, 17 Jun 2015 21:58:34 +0000 Subject: SF.net SVN: gar:[25099] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3mBgJh2dJ4z17W@mail.opencsw.org> Revision: 25099 http://sourceforge.net/p/gar/code/25099 Author: claudio_sf Date: 2015-06-17 21:58:34 +0000 (Wed, 17 Jun 2015) Log Message: ----------- perl/trunk: Remove isaexec depency (was implicit) Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2015-06-17 16:16:49 UTC (rev 25098) +++ csw/mgar/pkg/perl/trunk/Makefile 2015-06-17 21:58:34 UTC (rev 25099) @@ -89,7 +89,6 @@ RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 -RUNTIME_DEP_PKGS_CSWperl += CSWisaexec #CHECKPKG_OVERRIDES_CSWperl += 64-bit-binaries-missing CHECKPKG_OVERRIDES_CSWperl += file-with-bad-content #CHECKPKG_OVERRIDES_CSWperl += bad-rpath-entry This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Thu Jun 18 09:36:29 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Thu, 18 Jun 2015 07:36:29 +0000 Subject: SF.net SVN: gar:[25100] csw/mgar/pkg/libcairo/trunk/Makefile Message-ID: <3mBw7X744qz1Fk@mail.opencsw.org> Revision: 25100 http://sourceforge.net/p/gar/code/25100 Author: rmottola Date: 2015-06-18 07:36:29 +0000 (Thu, 18 Jun 2015) Log Message: ----------- libcairo/trunk: update certain dependencies, disable gs for now Modified Paths: -------------- csw/mgar/pkg/libcairo/trunk/Makefile Modified: csw/mgar/pkg/libcairo/trunk/Makefile =================================================================== --- csw/mgar/pkg/libcairo/trunk/Makefile 2015-06-17 21:58:34 UTC (rev 25099) +++ csw/mgar/pkg/libcairo/trunk/Makefile 2015-06-18 07:36:29 UTC (rev 25100) @@ -1,5 +1,5 @@ NAME = cairo -VERSION = 1.12.16 +VERSION = 1.12.18 GARTYPE = v2 GARCOMPILER = SOS12U3 @@ -15,6 +15,7 @@ DISTFILES = $(DISTNAME).tar.xz PACKAGING_PLATFORMS = solaris10-sparc solaris10-i386 +PACKAGING_PLATFORMS = solaris9-sparc solaris9-i386 PATCHFILES += 0001-Remove-cairo_private-from-_cairo_unbounded_rectangle.patch @@ -23,7 +24,7 @@ PKGFILES_CSWlibcairo2 = $(call pkgfiles_lib,libcairo.so.2) RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibxrender RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibpixman1-0 -RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibpng15-15 +RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibpng16-16 RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibz1 RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibfreetype6 RUNTIME_DEP_PKGS_CSWlibcairo2 += CSWlibfontconfig1 @@ -70,19 +71,18 @@ CATALOGNAME_CSWlibcairodoc = libcairo_doc_stub BUILD_DEP_PKGS = CSWgtk-doc -BUILD_DEP_PKGS += CSWpangodevel +BUILD_DEP_PKGS += CSWlibpango-dev BUILD_DEP_PKGS += CSWlibspectre-dev BUILD_DEP_PKGS += CSWpkgconfig -BUILD_DEP_PKGS += CSWlibpng-dev +BUILD_DEP_PKGS += CSWlibpng16-dev BUILD_DEP_PKGS += CSWfontconfig-dev BUILD_DEP_PKGS += CSWlibfreetype-dev BUILD_DEP_PKGS += CSWpoppler-dev -BUILD_DEP_PKGS += CSWghostscript-dev -BUILD_DEP_PKGS += CSWghostscript +#BUILD_DEP_PKGS += CSWghostscript-dev +#BUILD_DEP_PKGS += CSWghostscript BUILD_DEP_PKGS += CSWlibrsvg-dev BUILD_DEP_PKGS += CSWlibxext BUILD_DEP_PKGS += CSWlibxrender -BUILD_DEP_PKGS += CSWlibxrenderdevel BUILD_DEP_PKGS += CSWsunx11devel This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Fri Jun 19 14:20:55 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Fri, 19 Jun 2015 12:20:55 +0000 Subject: SF.net SVN: gar:[25101] csw/mgar/pkg Message-ID: <3mCfQC2Yfmzgy@mail.opencsw.org> Revision: 25101 http://sourceforge.net/p/gar/code/25101 Author: dmichelsen Date: 2015-06-19 12:20:55 +0000 (Fri, 19 Jun 2015) Log Message: ----------- tomcat8: Initial commit Modified Paths: -------------- csw/mgar/pkg/tomcat8/trunk/Makefile csw/mgar/pkg/tomcat8/trunk/checksums Added Paths: ----------- csw/mgar/pkg/tomcat8/ csw/mgar/pkg/tomcat8/trunk/files/cswtomcat8 Removed Paths: ------------- csw/mgar/pkg/tomcat8/trunk/files/LICENSE csw/mgar/pkg/tomcat8/trunk/files/cswtomcat7 Modified: csw/mgar/pkg/tomcat8/trunk/Makefile =================================================================== --- csw/mgar/pkg/tomcat7/trunk/Makefile 2014-11-19 15:00:40 UTC (rev 24362) +++ csw/mgar/pkg/tomcat8/trunk/Makefile 2015-06-19 12:20:55 UTC (rev 25101) @@ -1,35 +1,27 @@ -NAME = tomcat7 -VERSION = 7.0.42 -GARTYPE = v2 +NAME = apache-tomcat +VERSION = 8.0.23 -DESCRIPTION = Apache Jakarta Tomcat 7 Servlet/JSP Container -define BLURB -Apache Tomcat is the servlet container that is used in the official Reference Implementation for the Java Servlet and JavaServer Pages technologies. The Java Servlet and JavaServer Pages specifications are developed by Sun under the Java Community Process. -endef +DESCRIPTION = Apache Jakarta Tomcat 8 Servlet/JSP Container -VENDOR_URL = http://tomcat.apache.org/ -MASTER_SITES = http://apache.mirror.digionline.de/tomcat/tomcat-7/v$(VERSION)/bin/ -UPSTREAM_MASTER_SITES = http://mir2.ovh.net/ftp.apache.org/dist/jakarta/tomcat-7/v$(VERSION)/bin/ -DISTFILES = apache-tomcat-$(VERSION).tar.gz -PKGDIST = apache-tomcat-$(VERSION).tar.gz -DISTFILES += cswusergroup -DISTFILES += cswtomcat7 -DISTFILES += LICENSE +MASTER_SITES = http://ftp.fau.de/apache/tomcat/tomcat-8/v$(VERSION)/bin/ +DISTFILES += $(DISTNAME).tar.gz +DISTFILES += cswusergroup +DISTFILES += cswtomcat8 +#DISTFILES += LICENSE NOGITPATCH = 1 -# We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = v(\d+(?:\.\d+)*) +VENDOR_URL = http://tomcat.apache.org/ -PACKAGES = CSWtomcat7 -CATALOGNAME = tomcat7 -LICENSE = LICENSE -ARCHALL = 1 +PACKAGES += CSWtomcat8 +SPKG_DESC_CSWtomcat8 = Apache Jakarta Tomcat 8 Servlet/JSP Container +# PKGFILES is catchall +RUNTIME_DEP_PKGS_CSWtomcat += CSWjre8 +ARCHALL_CSWtomcat8 = 1 CONFIGURE_SCRIPTS = -BUILD_SCRIPTS = -TEST_SCRIPTS = -INSTALL_SCRIPTS = tomcat -prefix = / +BUILD_SCRIPTS = +TEST_SCRIPTS = +INSTALL_SCRIPTS = tomcat INITSMF = /etc/opt/csw/init.d/csw$(NAME) USERGROUP = /etc/opt/csw/pkg/$(NAME)/cswusergroup @@ -47,29 +39,28 @@ include gar/category.mk -post-extract: - ( mv $(WORKDIR)/apache-tomcat-$(VERSION) $(WORKDIR)/$(DISTNAME) ) - ( for i in temp work logs conf ; do find $(WORKDIR)/$(DISTNAME)/$$i -type d -exec chmod 0750 {} \; ; find $(WORKDIR)/$(DISTNAME)/$$i -type f -exec chmod 0640 {} \; ; done ) +xpost-extract: + ( for i in temp work logs conf ; do find $(WORKSRC)/$$i -type d -exec chmod 0750 {} \; ; find $(WORKSRC)/$$i -type f -exec chmod 0640 {} \; ; done ) @$(MAKECOOKIE) install-tomcat: - ( mkdir -p $(DESTDIR)/etc/opt/csw/init.d ) - ( mkdir -p $(DESTDIR)/etc/opt/csw/pkg/$(NAME) ) - ( mkdir -p $(DESTDIR)/etc/opt/csw/$(NAME) ) - ( mkdir -p $(DESTDIR)/opt/csw/etc/$(NAME) ) - ( mkdir -p $(DESTDIR)/var/opt/csw/$(NAME) ) - ( mkdir -p $(DESTDIR)/opt/csw/share ) - ( cp -fr $(WORKDIR)/$(DISTNAME) $(DESTDIR)/opt/csw/share/$(NAME) ) - ( cp -fr $(FILEDIR)/csw$(NAME) $(DESTDIR)/etc/opt/csw/init.d ) - ( mv $(DESTDIR)/opt/csw/share/$(NAME)/conf $(DESTDIR)/etc/opt/csw/$(NAME)/conf ) - ( mv $(DESTDIR)/opt/csw/share/$(NAME)/logs $(DESTDIR)/var/opt/csw/$(NAME) ) - ( mv $(DESTDIR)/opt/csw/share/$(NAME)/work $(DESTDIR)/var/opt/csw/$(NAME) ) - ( mv $(DESTDIR)/opt/csw/share/$(NAME)/temp $(DESTDIR)/var/opt/csw/$(NAME) ) - ( rm $(DESTDIR)/var/opt/csw/tomcat7/temp/safeToDelete.tmp ) - ( ln -s ../../../../etc/opt/csw/$(NAME)/conf $(DESTDIR)/opt/csw/share/$(NAME)/conf ) - ( ln -s ../../../../var/opt/csw/$(NAME)/logs $(DESTDIR)/opt/csw/share/$(NAME)/logs ) - ( ln -s ../../../../var/opt/csw/$(NAME)/work $(DESTDIR)/opt/csw/share/$(NAME)/work ) - ( ln -s ../../../../var/opt/csw/$(NAME)/temp $(DESTDIR)/opt/csw/share/$(NAME)/temp ) - ( ginstall -m 644 $(FILEDIR)/cswusergroup $(DESTDIR)/etc/opt/csw/pkg/$(NAME) ) + mkdir -p $(DESTDIR)/etc/opt/csw/init.d + mkdir -p $(DESTDIR)/etc/opt/csw/pkg/tomcat8 + mkdir -p $(DESTDIR)/etc/opt/csw/tomcat8 + mkdir -p $(DESTDIR)/opt/csw/etc/tomcat8 + mkdir -p $(DESTDIR)/var/opt/csw/tomcat8 + mkdir -p $(DESTDIR)/opt/csw/share + cp -fr $(WORKDIR)/$(DISTNAME) $(DESTDIR)/opt/csw/share/tomcat8 + mv $(DESTDIR)/opt/csw/share/tomcat8/conf $(DESTDIR)/etc/opt/csw/tomcat8 + mv $(DESTDIR)/opt/csw/share/tomcat8/logs $(DESTDIR)/var/opt/csw/tomcat8 + mv $(DESTDIR)/opt/csw/share/tomcat8/work $(DESTDIR)/var/opt/csw/tomcat8 + mv $(DESTDIR)/opt/csw/share/tomcat8/temp $(DESTDIR)/var/opt/csw/tomcat8 + ln -s ../../../../etc/opt/csw/tomcat8/conf $(DESTDIR)/opt/csw/share/tomcat8/conf + ln -s ../../../../var/opt/csw/tomcat8/logs $(DESTDIR)/opt/csw/share/tomcat8/logs + ln -s ../../../../var/opt/csw/tomcat8/work $(DESTDIR)/opt/csw/share/tomcat8/work + ln -s ../../../../var/opt/csw/tomcat8/temp $(DESTDIR)/opt/csw/share/tomcat8/temp + rm $(DESTDIR)/var/opt/csw/tomcat8/temp/safeToDelete.tmp + #cp -fr $(WORKDIR)/cswtomcat8 $(DESTDIR)/etc/opt/csw/init.d + ginstall -m 644 $(WORKDIR)/cswusergroup $(DESTDIR)/etc/opt/csw/pkg/$(NAME) @$(MAKECOOKIE) Modified: csw/mgar/pkg/tomcat8/trunk/checksums =================================================================== --- csw/mgar/pkg/tomcat7/trunk/checksums 2014-11-19 15:00:40 UTC (rev 24362) +++ csw/mgar/pkg/tomcat8/trunk/checksums 2015-06-19 12:20:55 UTC (rev 25101) @@ -1 +1 @@ -1dd9abf3ae5154677e55a5d4e1fae5ed apache-tomcat-7.0.42.tar.gz +f4381824abf458650f72ec12d8e81fde apache-tomcat-8.0.23.tar.gz Deleted: csw/mgar/pkg/tomcat8/trunk/files/LICENSE =================================================================== --- csw/mgar/pkg/tomcat7/trunk/files/LICENSE 2014-11-19 15:00:40 UTC (rev 24362) +++ csw/mgar/pkg/tomcat8/trunk/files/LICENSE 2015-06-19 12:20:55 UTC (rev 25101) @@ -1,707 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. - - - -APACHE TOMCAT SUBCOMPONENTS: - -Apache Tomcat includes a number of subcomponents with separate copyright notices -and license terms. Your use of these subcomponents is subject to the terms and -conditions of the following licenses. - - -For the jasper-jdt.jar component: - -Eclipse Public License - v 1.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC -LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM -CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - -a) in the case of the initial Contributor, the initial code and documentation -distributed under this Agreement, and - -b) in the case of each subsequent Contributor: - -i) changes to the Program, and - -ii) additions to the Program; - -where such changes and/or additions to the Program originate from and are -distributed by that particular Contributor. A Contribution 'originates' from a -Contributor if it was added to the Program by such Contributor itself or anyone -acting on such Contributor's behalf. Contributions do not include additions to -the Program which: (i) are separate modules of software distributed in -conjunction with the Program under their own license agreement, and (ii) are not -derivative works of the Program. - -"Contributor" means any person or entity that distributes the Program. - -"Licensed Patents" mean patent claims licensable by a Contributor which are -necessarily infringed by the use or sale of its Contribution alone or when -combined with the Program. - -"Program" means the Contributions distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement, -including all Contributors. - -2. GRANT OF RIGHTS - -a) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free copyright license to -reproduce, prepare derivative works of, publicly display, publicly perform, -distribute and sublicense the Contribution of such Contributor, if any, and such -derivative works, in source code and object code form. - -b) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed -Patents to make, use, sell, offer to sell, import and otherwise transfer the -Contribution of such Contributor, if any, in source code and object code form. -This patent license shall apply to the combination of the Contribution and the -Program if, at the time the Contribution is added by the Contributor, such -addition of the Contribution causes such combination to be covered by the -Licensed Patents. The patent license shall not apply to any other combinations -which include the Contribution. No hardware per se is licensed hereunder. - -c) Recipient understands that although each Contributor grants the licenses to -its Contributions set forth herein, no assurances are provided by any -Contributor that the Program does not infringe the patent or other intellectual -property rights of any other entity. Each Contributor disclaims any liability to -Recipient for claims brought by any other entity based on infringement of -intellectual property rights or otherwise. As a condition to exercising the -rights and licenses granted hereunder, each Recipient hereby assumes sole -responsibility to secure any other intellectual property rights needed, if any. -For example, if a third party patent license is required to allow Recipient to -distribute the Program, it is Recipient's responsibility to acquire that license -before distributing the Program. - -d) Each Contributor represents that to its knowledge it has sufficient copyright -rights in its Contribution, if any, to grant the copyright license set forth in -this Agreement. - -3. REQUIREMENTS - -A Contributor may choose to distribute the Program in object code form under its -own license agreement, provided that: - -a) it complies with the terms and conditions of this Agreement; and - -b) its license agreement: - -i) effectively disclaims on behalf of all Contributors all warranties and -conditions, express and implied, including warranties or conditions of title and -non-infringement, and implied warranties or conditions of merchantability and -fitness for a particular purpose; - -ii) effectively excludes on behalf of all Contributors all liability for -damages, including direct, indirect, special, incidental and consequential -damages, such as lost profits; - -iii) states that any provisions which differ from this Agreement are offered by -that Contributor alone and not by any other party; and - -iv) states that source code for the Program is available from such Contributor, -and informs licensees how to obtain it in a reasonable manner on or through a -medium customarily used for software exchange. - -When the Program is made available in source code form: - -a) it must be made available under this Agreement; and - -b) a copy of this Agreement must be included with each copy of the Program. - -Contributors may not remove or alter any copyright notices contained within the -Program. - -Each Contributor must identify itself as the originator of its Contribution, if -any, in a manner that reasonably allows subsequent Recipients to identify the -originator of the Contribution. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities with -respect to end users, business partners and the like. While this license is -intended to facilitate the commercial use of the Program, the Contributor who -includes the Program in a commercial product offering should do so in a manner -which does not create potential liability for other Contributors. Therefore, if -a Contributor includes the Program in a commercial product offering, such -Contributor ("Commercial Contributor") hereby agrees to defend and indemnify -every other Contributor ("Indemnified Contributor") against any losses, damages -and costs (collectively "Losses") arising from claims, lawsuits and other legal -actions brought by a third party against the Indemnified Contributor to the -extent caused by the acts or omissions of such Commercial Contributor in -connection with its distribution of the Program in a commercial product -offering. The obligations in this section do not apply to any claims or Losses -relating to any actual or alleged intellectual property infringement. In order -to qualify, an Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial Contributor -to control, and cooperate with the Commercial Contributor in, the defense and -any related settlement negotiations. The Indemnified Contributor may -participate in any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product -offering, Product X. That Contributor is then a Commercial Contributor. If that -Commercial Contributor then makes performance claims, or offers warranties -related to Product X, those performance claims and warranties are such -Commercial Contributor's responsibility alone. Under this section, the -Commercial Contributor would have to defend claims against the other -Contributors related to those performance claims and warranties, and if a court -requires any other Contributor to pay any damages as a result, the Commercial -Contributor must pay those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, -NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each -Recipient is solely responsible for determining the appropriateness of using and -distributing the Program and assumes all risks associated with its exercise of -rights under this Agreement , including but not limited to the risks and costs -of program errors, compliance with applicable laws, damage to or loss of data, -programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY -CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS -GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under applicable -law, it shall not affect the validity or enforceability of the remainder of the -terms of this Agreement, and without further action by the parties hereto, such -provision shall be reformed to the minimum extent necessary to make such -provision valid and enforceable. - -If Recipient institutes patent litigation against any entity (including a -cross-claim or counterclaim in a lawsuit) alleging that the Program itself -(excluding combinations of the Program with other software or hardware) -infringes such Recipient's patent(s), then such Recipient's rights granted under -Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to -comply with any of the material terms or conditions of this Agreement and does -not cure such failure in a reasonable period of time after becoming aware of -such noncompliance. If all Recipient's rights under this Agreement terminate, -Recipient agrees to cease use and distribution of the Program as soon as -reasonably practicable. However, Recipient's obligations under this Agreement -and any licenses granted by Recipient relating to the Program shall continue and -survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in -order to avoid inconsistency the Agreement is copyrighted and may only be -modified in the following manner. The Agreement Steward reserves the right to -publish new versions (including revisions) of this Agreement from time to time. -No one other than the Agreement Steward has the right to modify this Agreement. -The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation -may assign the responsibility to serve as the Agreement Steward to a suitable -separate entity. Each new version of the Agreement will be given a -distinguishing version number. The Program (including Contributions) may always -be distributed subject to the version of the Agreement under which it was -received. In addition, after a new version of the Agreement is published, -Contributor may elect to distribute the Program (including its Contributions) -under the new version. Except as expressly stated in Sections 2(a) and 2(b) -above, Recipient receives no rights or licenses to the intellectual property of -any Contributor under this Agreement, whether expressly, by implication, -estoppel or otherwise. All rights in the Program not expressly granted under -this Agreement are reserved. - -This Agreement is governed by the laws of the State of New York and the -intellectual property laws of the United States of America. No party to this -Agreement will bring a legal action under this Agreement more than one year -after the cause of action arose. Each party waives its rights to a jury trial in -any resulting litigation. - - -For the Windows Installer component: - - * All NSIS source code, plug-ins, documentation, examples, header files and - graphics, with the exception of the compression modules and where - otherwise noted, are licensed under the zlib/libpng license. - * The zlib compression module for NSIS is licensed under the zlib/libpng - license. - * The bzip2 compression module for NSIS is licensed under the bzip2 license. - * The lzma compression module for NSIS is licensed under the Common Public - License version 1.0. - -zlib/libpng license - -This software is provided 'as-is', without any express or implied warranty. In -no event will the authors be held liable for any damages arising from the use of -this software. - -Permission is granted to anyone to use this software for any purpose, including -commercial applications, and to alter it and redistribute it freely, subject to -the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not claim - that you wrote the original software. If you use this software in a - product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. - -bzip2 license - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. The origin of this software must not be misrepresented; you must not claim - that you wrote the original software. If you use this software in a - product, an acknowledgment in the product documentation would be - appreciated but is not required. - 3. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 4. The name of the author may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS AND ANY EXPRESS OR IMPLIED -WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT -SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT -OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING -IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY -OF SUCH DAMAGE. - -Julian Seward, Cambridge, UK. - -jseward at acm.org -Common Public License version 1.0 - -THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC -LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM -CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. - -1. DEFINITIONS - -"Contribution" means: - -a) in the case of the initial Contributor, the initial code and documentation -distributed under this Agreement, and b) in the case of each subsequent -Contributor: - -i) changes to the Program, and - -ii) additions to the Program; - -where such changes and/or additions to the Program originate from and are -distributed by that particular Contributor. A Contribution 'originates' from a -Contributor if it was added to the Program by such Contributor itself or anyone -acting on such Contributor's behalf. Contributions do not include additions to -the Program which: (i) are separate modules of software distributed in -conjunction with the Program under their own license agreement, and (ii) are not -derivative works of the Program. - -"Contributor" means any person or entity that distributes the Program. - -"Licensed Patents " mean patent claims licensable by a Contributor which are -necessarily infringed by the use or sale of its Contribution alone or when -combined with the Program. - -"Program" means the Contributions distributed in accordance with this Agreement. - -"Recipient" means anyone who receives the Program under this Agreement, -including all Contributors. - -2. GRANT OF RIGHTS - -a) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free copyright license to -reproduce, prepare derivative works of, publicly display, publicly perform, -distribute and sublicense the Contribution of such Contributor, if any, and such -derivative works, in source code and object code form. - -b) Subject to the terms of this Agreement, each Contributor hereby grants -Recipient a non-exclusive, worldwide, royalty-free patent license under Licensed -Patents to make, use, sell, offer to sell, import and otherwise transfer the -Contribution of such Contributor, if any, in source code and object code form. -This patent license shall apply to the combination of the Contribution and the -Program if, at the time the Contribution is added by the Contributor, such -addition of the Contribution causes such combination to be covered by the -Licensed Patents. The patent license shall not apply to any other combinations -which include the Contribution. No hardware per se is licensed hereunder. - -c) Recipient understands that although each Contributor grants the licenses to -its Contributions set forth herein, no assurances are provided by any -Contributor that the Program does not infringe the patent or other intellectual -property rights of any other entity. Each Contributor disclaims any liability to -Recipient for claims brought by any other entity based on infringement of -intellectual property rights or otherwise. As a condition to exercising the -rights and licenses granted hereunder, each Recipient hereby assumes sole -responsibility to secure any other intellectual property rights needed, if any. -For example, if a third party patent license is required to allow Recipient to -distribute the Program, it is Recipient's responsibility to acquire that license -before distributing the Program. - -d) Each Contributor represents that to its knowledge it has sufficient copyright -rights in its Contribution, if any, to grant the copyright license set forth in -this Agreement. - -3. REQUIREMENTS - -A Contributor may choose to distribute the Program in object code form under its -own license agreement, provided that: - -a) it complies with the terms and conditions of this Agreement; and - -b) its license agreement: - -i) effectively disclaims on behalf of all Contributors all warranties and -conditions, express and implied, including warranties or conditions of title and -non-infringement, and implied warranties or conditions of merchantability and -fitness for a particular purpose; - -ii) effectively excludes on behalf of all Contributors all liability for -damages, including direct, indirect, special, incidental and consequential -damages, such as lost profits; - -iii) states that any provisions which differ from this Agreement are offered by -that Contributor alone and not by any other party; and - -iv) states that source code for the Program is available from such Contributor, -and informs licensees how to obtain it in a reasonable manner on or through a -medium customarily used for software exchange. - -When the Program is made available in source code form: - -a) it must be made available under this Agreement; and - -b) a copy of this Agreement must be included with each copy of the Program. - -Contributors may not remove or alter any copyright notices contained within the -Program. - -Each Contributor must identify itself as the originator of its Contribution, if -any, in a manner that reasonably allows subsequent Recipients to identify the -originator of the Contribution. - -4. COMMERCIAL DISTRIBUTION - -Commercial distributors of software may accept certain responsibilities with -respect to end users, business partners and the like. While this license is -intended to facilitate the commercial use of the Program, the Contributor who -includes the Program in a commercial product offering should do so in a manner -which does not create potential liability for other Contributors. Therefore, if -a Contributor includes the Program in a commercial product offering, such -Contributor ("Commercial Contributor") hereby agrees to defend and indemnify -every other Contributor ("Indemnified Contributor") against any losses, damages -and costs (collectively "Losses") arising from claims, lawsuits and other legal -actions brought by a third party against the Indemnified Contributor to the -extent caused by the acts or omissions of such Commercial Contributor in -connection with its distribution of the Program in a commercial product -offering. The obligations in this section do not apply to any claims or Losses -relating to any actual or alleged intellectual property infringement. In order -to qualify, an Indemnified Contributor must: a) promptly notify the Commercial -Contributor in writing of such claim, and b) allow the Commercial Contributor to -control, and cooperate with the Commercial Contributor in, the defense and any -related settlement negotiations. The Indemnified Contributor may participate in -any such claim at its own expense. - -For example, a Contributor might include the Program in a commercial product -offering, Product X. That Contributor is then a Commercial Contributor. If that -Commercial Contributor then makes performance claims, or offers warranties -related to Product X, those performance claims and warranties are such -Commercial Contributor's responsibility alone. Under this section, the -Commercial Contributor would have to defend claims against the other -Contributors related to those performance claims and warranties, and if a court -requires any other Contributor to pay any damages as a result, the Commercial -Contributor must pay those damages. - -5. NO WARRANTY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN -"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR -IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, -NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each -Recipient is solely responsible for determining the appropriateness of using and -distributing the Program and assumes all risks associated with its exercise of -rights under this Agreement, including but not limited to the risks and costs of -program errors, compliance with applicable laws, damage to or loss of data, -programs or equipment, and unavailability or interruption of operations. - -6. DISCLAIMER OF LIABILITY - -EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY -CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST -PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, -STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS -GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. - -7. GENERAL - -If any provision of this Agreement is invalid or unenforceable under applicable -law, it shall not affect the validity or enforceability of the remainder of the -terms of this Agreement, and without further action by the parties hereto, such -provision shall be reformed to the minimum extent necessary to make such -provision valid and enforceable. - -If Recipient institutes patent litigation against a Contributor with respect to -a patent applicable to software (including a cross-claim or counterclaim in a -lawsuit), then any patent licenses granted by that Contributor to such Recipient -under this Agreement shall terminate as of the date such litigation is filed. In -addition, if Recipient institutes patent litigation against any entity -(including a cross-claim or counterclaim in a lawsuit) alleging that the Program -itself (excluding combinations of the Program with other software or hardware) -infringes such Recipient's patent(s), then such Recipient's rights granted under -Section 2(b) shall terminate as of the date such litigation is filed. - -All Recipient's rights under this Agreement shall terminate if it fails to -comply with any of the material terms or conditions of this Agreement and does -not cure such failure in a reasonable period of time after becoming aware of -such noncompliance. If all Recipient's rights under this Agreement terminate, -Recipient agrees to cease use and distribution of the Program as soon as -reasonably practicable. However, Recipient's obligations under this Agreement -and any licenses granted by Recipient relating to the Program shall continue and -survive. - -Everyone is permitted to copy and distribute copies of this Agreement, but in -order to avoid inconsistency the Agreement is copyrighted and may only be -modified in the following manner. The Agreement Steward reserves the right to -publish new versions (including revisions) of this Agreement from time to time. -No one other than the Agreement Steward has the right to modify this Agreement. -IBM is the initial Agreement Steward. IBM may assign the responsibility to serve -as the Agreement Steward to a suitable separate entity. Each new version of the -Agreement will be given a distinguishing version number. The Program (including -Contributions) may always be distributed subject to the version of the Agreement -under which it was received. In addition, after a new version of the Agreement -is published, Contributor may elect to distribute the Program (including its -Contributions) under the new version. Except as expressly stated in Sections -2(a) and 2(b) above, Recipient receives no rights or licenses to the -intellectual property of any Contributor under this Agreement, whether -expressly, by implication, estoppel or otherwise. All rights in the Program not -expressly granted under this Agreement are reserved. - -This Agreement is governed by the laws of the State of New York and the -intellectual property laws of the United States of America. No party to this -Agreement will bring a legal action under this Agreement more than one year -after the cause of action arose. Each party waives its rights to a jury trial in -any resulting litigation. - -Special exception for LZMA compression module - -Igor Pavlov and Amir Szekely, the authors of the LZMA compression module for -NSIS, expressly permit you to statically or dynamically link your code (or bind -by name) to the files from the LZMA compression module for NSIS without -subjecting your linked code to the terms of the Common Public license version -1.0. Any modifications or additions to files from the LZMA compression module -for NSIS, however, are subject to the terms of the Common Public License version -1.0. \ No newline at end of file Deleted: csw/mgar/pkg/tomcat8/trunk/files/cswtomcat7 =================================================================== --- csw/mgar/pkg/tomcat7/trunk/files/cswtomcat7 2014-11-19 15:00:40 UTC (rev 24362) +++ csw/mgar/pkg/tomcat8/trunk/files/cswtomcat7 2015-06-19 12:20:55 UTC (rev 25101) @@ -1,143 +0,0 @@ -#!/sbin/sh - -################################################################## -# -# Configuration file documentation -# -# tomcat7 -# -# This file let you change the values of a few variables used -# by the init script to control the environment of tomcat6 -# The list of variables is described below. -# -# The configuration file can be stored in two different path : -# -# /etc/opt/csw -# This directory contain machine specific config files -# -# /opt/csw/etc -# This directory contain global config files -# -# If there exist a /etc/opt/csw/tomcat7 config file, then the -# environment variables defined in this file are used and the -# /opt/csw/etc/tomcat6/conf/tomcat6 file is ignored even if it -# exist. -# -# If there exist only a /opt/csw/etc/tomcat7/conf/tomcat7 config -# file, then the environnement variables defined in this file are -# used. -# -# If no configuration file exist, all the variables needed by -# tomcat6 are let to their default values (see the values -# below). -# -# In all cases, the default values are defined, and supereded -# by the values stored in the configuration file. This is -# necessary to define an environment usuable by tomcat. -# -# Environment variables documentation -# -# JAVA_HOME -# -# JAVA_HOME specify which version of Java should be used -# by tomcat. You can supered the default value in the tomcat6 -# configuration file. The value of this variable must be a path -# pointing to the root of a valid JRE or JDK (the root dir not -# the bin dir !). The default value is /usr/java. -# -# TOMCAT_USER -# -# TOMCAT_USER variable defines the Solaris user running the -# tomcat server. You can supered the default valude in the -# tomcat6 configuration file. The value of this variable must -# be a valid Solaris user (ie: root, nobody). The default value -# is root. -# -# WARNING : By default the directory permissions are set for -# the root user (no write access for 'nobody'). -# The logs are stored in /opt/csw/share/tomcat6/logs, and do belong -# to root user. If you change the TOMCAT_USER, be sure that this -# user can write in the log directory. -# -# The following permissions may also have to be changed : -# . give read access to the conf directory and all its subdirs -# . give write access to the conf dir to let tomcat create new files -# . give write access to the work dir -# - -################################################################## -# Setting the default values -# -# DO NOT EDIT THE FOLLOWING VALUES. -# -# Use the configuration file to supered their value -# - -SPECIFIC_CONFIG_FILE=/etc/opt/csw/cswtomcat7 -GLOBAL_CONFIG_FILE=/opt/csw/etc/cswtomcat7 - -JAVA_HOME=/usr/java -TOMCAT_USER=tomcat - -################################################################## -# Search for a custom configuration file in the default CSW paths -# - -if [ -f $SPECIFIC_CONFIG_FILE ] -then - echo Using configuration file : $SPECIFIC_CONFIG_FILE - . $SPECIFIC_CONFIG_FILE -else - if [ -f $GLOBAL_CONFIG_FILE ] - then - echo Using configuration file : $GLOBAL_CONFIG_FILE - . $GLOBAL_CONFIG_FILE - fi -fi - -echo "Using Java from : $JAVA_HOME" -echo "Running as : $TOMCAT_USER (please see documentation included in $0 to change user)" - -################################################################## -# Test if java is in the path defined by JAVA_HOME, if not try to -# guess path by testing standard directories -# - -if [ ! -f $JAVA_HOME/bin/java ] -then - echo "Java not found in $JAVA_HOME/bin. Trying /usr/java/bin" - JAVA_HOME=/usr/java - if [ ! -f $JAVA_HOME/bin/java ] - then - echo "Java not found in $JAVA_HOME/bin. Trying /usr/j2se/bin" - JAVA_HOME=/usr/j2se - if [ ! -f $JAVA_HOME/bin/java ] - then - echo "Java not found in $JAVA_HOME/bin" - echo "Java not found !" - exit 1 - fi - fi -fi - -CATALINA_HOME=/opt/csw/share/tomcat7 -export JAVA_HOME -export CATALINA_HOME - -case $1 in -'start') - /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh - ;; -'stop') - /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/shutdown.sh - ;; - -'restart') - /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/shutdown.sh - /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh - ;; -*) - echo "Usage: $0 { start | stop | restart }" - exit 1 - ;; -esac Copied: csw/mgar/pkg/tomcat8/trunk/files/cswtomcat8 (from rev 24362, csw/mgar/pkg/tomcat7/trunk/files/cswtomcat7) =================================================================== --- csw/mgar/pkg/tomcat8/trunk/files/cswtomcat8 (rev 0) +++ csw/mgar/pkg/tomcat8/trunk/files/cswtomcat8 2015-06-19 12:20:55 UTC (rev 25101) @@ -0,0 +1,143 @@ +#!/sbin/sh + +################################################################## +# +# Configuration file documentation +# +# tomcat7 +# +# This file let you change the values of a few variables used +# by the init script to control the environment of tomcat6 +# The list of variables is described below. +# +# The configuration file can be stored in two different path : +# +# /etc/opt/csw +# This directory contain machine specific config files +# +# /opt/csw/etc +# This directory contain global config files +# +# If there exist a /etc/opt/csw/tomcat7 config file, then the +# environment variables defined in this file are used and the +# /opt/csw/etc/tomcat6/conf/tomcat6 file is ignored even if it +# exist. +# +# If there exist only a /opt/csw/etc/tomcat7/conf/tomcat7 config +# file, then the environnement variables defined in this file are +# used. +# +# If no configuration file exist, all the variables needed by +# tomcat6 are let to their default values (see the values +# below). +# +# In all cases, the default values are defined, and supereded +# by the values stored in the configuration file. This is +# necessary to define an environment usuable by tomcat. +# +# Environment variables documentation +# +# JAVA_HOME +# +# JAVA_HOME specify which version of Java should be used +# by tomcat. You can supered the default value in the tomcat6 +# configuration file. The value of this variable must be a path +# pointing to the root of a valid JRE or JDK (the root dir not +# the bin dir !). The default value is /usr/java. +# +# TOMCAT_USER +# +# TOMCAT_USER variable defines the Solaris user running the +# tomcat server. You can supered the default valude in the +# tomcat6 configuration file. The value of this variable must +# be a valid Solaris user (ie: root, nobody). The default value +# is root. +# +# WARNING : By default the directory permissions are set for +# the root user (no write access for 'nobody'). +# The logs are stored in /opt/csw/share/tomcat6/logs, and do belong +# to root user. If you change the TOMCAT_USER, be sure that this +# user can write in the log directory. +# +# The following permissions may also have to be changed : +# . give read access to the conf directory and all its subdirs +# . give write access to the conf dir to let tomcat create new files +# . give write access to the work dir +# + +################################################################## +# Setting the default values +# +# DO NOT EDIT THE FOLLOWING VALUES. +# +# Use the configuration file to supered their value +# + +SPECIFIC_CONFIG_FILE=/etc/opt/csw/cswtomcat7 +GLOBAL_CONFIG_FILE=/opt/csw/etc/cswtomcat7 + +JAVA_HOME=/usr/java +TOMCAT_USER=tomcat + +################################################################## +# Search for a custom configuration file in the default CSW paths +# + +if [ -f $SPECIFIC_CONFIG_FILE ] +then + echo Using configuration file : $SPECIFIC_CONFIG_FILE + . $SPECIFIC_CONFIG_FILE +else + if [ -f $GLOBAL_CONFIG_FILE ] + then + echo Using configuration file : $GLOBAL_CONFIG_FILE + . $GLOBAL_CONFIG_FILE + fi +fi + +echo "Using Java from : $JAVA_HOME" +echo "Running as : $TOMCAT_USER (please see documentation included in $0 to change user)" + +################################################################## +# Test if java is in the path defined by JAVA_HOME, if not try to +# guess path by testing standard directories +# + +if [ ! -f $JAVA_HOME/bin/java ] +then + echo "Java not found in $JAVA_HOME/bin. Trying /usr/java/bin" + JAVA_HOME=/usr/java + if [ ! -f $JAVA_HOME/bin/java ] + then + echo "Java not found in $JAVA_HOME/bin. Trying /usr/j2se/bin" + JAVA_HOME=/usr/j2se + if [ ! -f $JAVA_HOME/bin/java ] + then + echo "Java not found in $JAVA_HOME/bin" + echo "Java not found !" + exit 1 + fi + fi +fi + +CATALINA_HOME=/opt/csw/share/tomcat7 +export JAVA_HOME +export CATALINA_HOME + +case $1 in +'start') + /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh + ;; +'stop') + /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/shutdown.sh + ;; + +'restart') + /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/shutdown.sh + /bin/su $TOMCAT_USER -c $CATALINA_HOME/bin/startup.sh + ;; +*) + echo "Usage: $0 { start | stop | restart }" + exit 1 + ;; +esac This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From rmottola at users.sourceforge.net Sat Jun 20 20:23:54 2015 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Sat, 20 Jun 2015 18:23:54 +0000 Subject: SF.net SVN: gar:[25102] csw/mgar/pkg/libcairo/trunk Message-ID: <3mDQPl73zJz144@mail.opencsw.org> Revision: 25102 http://sourceforge.net/p/gar/code/25102 Author: rmottola Date: 2015-06-20 18:23:53 +0000 (Sat, 20 Jun 2015) Log Message: ----------- libcairo/trunk: remove documentation since ti depents on gtk1 doc Modified Paths: -------------- csw/mgar/pkg/libcairo/trunk/Makefile csw/mgar/pkg/libcairo/trunk/checksums Modified: csw/mgar/pkg/libcairo/trunk/Makefile =================================================================== --- csw/mgar/pkg/libcairo/trunk/Makefile 2015-06-19 12:20:55 UTC (rev 25101) +++ csw/mgar/pkg/libcairo/trunk/Makefile 2015-06-20 18:23:53 UTC (rev 25102) @@ -63,14 +63,14 @@ OBSOLETED_BY_CSWlibcairo-dev = CSWlibcairodevel CATALOGNAME_CSWlibcairodevel = libcairo_devel_stub -PACKAGES += CSWlibcairo-doc -SPKG_DESC_CSWlibcairo-doc = $(DESCRIPTION) documentation -PKGFILES_CSWlibcairo-doc += $(sharedstatedir)/gtk-doc.* -ARCHALL_CSWlibcairo-doc = 1 -OBSOLETED_BY_CSWlibcairo-doc = CSWlibcairodoc -CATALOGNAME_CSWlibcairodoc = libcairo_doc_stub +#PACKAGES += CSWlibcairo-doc +#SPKG_DESC_CSWlibcairo-doc = $(DESCRIPTION) documentation +#PKGFILES_CSWlibcairo-doc += $(sharedstatedir)/gtk-doc.* +#ARCHALL_CSWlibcairo-doc = 1 +#OBSOLETED_BY_CSWlibcairo-doc = CSWlibcairodoc +#CATALOGNAME_CSWlibcairodoc = libcairo_doc_stub -BUILD_DEP_PKGS = CSWgtk-doc +#BUILD_DEP_PKGS = CSWgtk2doc BUILD_DEP_PKGS += CSWlibpango-dev BUILD_DEP_PKGS += CSWlibspectre-dev BUILD_DEP_PKGS += CSWpkgconfig @@ -108,7 +108,7 @@ CONFIGURE_ARGS += --enable-pdf=yes CONFIGURE_ARGS += --enable-svg=yes CONFIGURE_ARGS += --enable-xcb=no -CONFIGURE_ARGS += --enable-gtk-doc +#CONFIGURE_ARGS += --enable-gtk-doc CONFIGURE_ARGS += --enable-test-surfaces=yes PWD:=$(shell pwd) Modified: csw/mgar/pkg/libcairo/trunk/checksums =================================================================== --- csw/mgar/pkg/libcairo/trunk/checksums 2015-06-19 12:20:55 UTC (rev 25101) +++ csw/mgar/pkg/libcairo/trunk/checksums 2015-06-20 18:23:53 UTC (rev 25102) @@ -1 +1 @@ -a1304edcdc99282f478b995ee5f8f854 cairo-1.12.16.tar.xz +8e4ff32b82c3b39387eb6f5c59ef848e cairo-1.12.18.tar.xz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 09:11:20 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 07:11:20 +0000 Subject: SF.net SVN: gar:[25103] csw/mgar/pkg/jdk8/trunk Message-ID: <3mFMNl6RDGz1Ty@mail.opencsw.org> Revision: 25103 http://sourceforge.net/p/gar/code/25103 Author: dmichelsen Date: 2015-06-22 07:11:19 +0000 (Mon, 22 Jun 2015) Log Message: ----------- jdk8/trunk: Update to 1.8.0_45 Modified Paths: -------------- csw/mgar/pkg/jdk8/trunk/Makefile csw/mgar/pkg/jdk8/trunk/checksums Modified: csw/mgar/pkg/jdk8/trunk/Makefile =================================================================== --- csw/mgar/pkg/jdk8/trunk/Makefile 2015-06-20 18:23:53 UTC (rev 25102) +++ csw/mgar/pkg/jdk8/trunk/Makefile 2015-06-22 07:11:19 UTC (rev 25103) @@ -1,6 +1,6 @@ NAME = jre8 -SPKG_VERSION = 1.8.0_40 -VERSION = 8u40 +SPKG_VERSION = 1.8.0_45 +VERSION = 8u45 GARTYPE = v2 DESCRIPTION = Java Development Kit 8 Modified: csw/mgar/pkg/jdk8/trunk/checksums =================================================================== --- csw/mgar/pkg/jdk8/trunk/checksums 2015-06-20 18:23:53 UTC (rev 25102) +++ csw/mgar/pkg/jdk8/trunk/checksums 2015-06-22 07:11:19 UTC (rev 25103) @@ -1,2 +1,2 @@ -a19a70e01caf11fefcf800bafa4c2b77 jdk-8u40-solaris-sparcv9.tar.gz -8b2a0c3a3c6af95c2e579492f3ebbca4 jdk-8u40-solaris-x64.tar.gz +1e4a49f541c7623ac26c43c98580077e jdk-8u45-solaris-sparcv9.tar.gz +3bbffc17b1d2c0af319007167556a1cd jdk-8u45-solaris-x64.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 09:12:39 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 07:12:39 +0000 Subject: SF.net SVN: gar:[25104] csw/mgar/pkg/logstash/trunk Message-ID: <3mFMQB6Bn6z1XP@mail.opencsw.org> Revision: 25104 http://sourceforge.net/p/gar/code/25104 Author: dmichelsen Date: 2015-06-22 07:12:39 +0000 (Mon, 22 Jun 2015) Log Message: ----------- logstash/trunk: Update to 1.5.1 Modified Paths: -------------- csw/mgar/pkg/logstash/trunk/Makefile csw/mgar/pkg/logstash/trunk/checksums Modified: csw/mgar/pkg/logstash/trunk/Makefile =================================================================== --- csw/mgar/pkg/logstash/trunk/Makefile 2015-06-22 07:11:19 UTC (rev 25103) +++ csw/mgar/pkg/logstash/trunk/Makefile 2015-06-22 07:12:39 UTC (rev 25104) @@ -2,7 +2,7 @@ # TODO (release-critical prefixed with !, non release-critical with *) # NAME = logstash -VERSION = 1.4.2 +VERSION = 1.5.1 GARTYPE = v2 DESCRIPTION = A tool for managing events and logs @@ -21,17 +21,19 @@ PACKAGES += CSWlogstash SPKG_DESC_CSWlogstash = A tool for managing events and logs # PKGFILES is catchall -ARCHALL_CSWlogstash = 1 RUNTIME_DEP_PKGS_CSWlogstash += CSWjre8 +# This can not be tracked with checkpkg +CHECKPKG_OVERRIDES_CSWlogstash += surplus-dependency|CSWjre8 # Reorganizing is difficult, delay for now CHECKPKG_OVERRIDES_CSWlogstash += discouraged-path-in-pkgmap +CHECKPKG_OVERRIDES_CSWlogstash += binary-architecture-does-not-match-placement # We use JRuby, so this is ok CHECKPKG_OVERRIDES_CSWlogstash += missing-dependency|CSWlibruby1-9-1-1|or|CSWruby|or|CSWruby18|or|CSWruby191 -# This can not be tracked with checkpkg -CHECKPKG_OVERRIDES_CSWlogstash += surplus-dependency|CSWjre8 +# We don't control the binaries +CHECKPKG_OVERRIDES_CSWlogstash += bad-rpath-entry # This is the DTD for SMF CHECKPKG_OVERRIDES_CSWlogstash += file-with-bad-content|/usr/share|root/var/opt/csw/svc/manifest/cswlogstash.xml @@ -47,12 +49,26 @@ PROTOTYPE_FILES_smf += /var/opt/csw/svc/manifest/cswlogstash.xml PROTOTYPE_CLASS_smf = manifest +REMOVE_FILES-sparc += i386-SunOS +REMOVE_FILES-sparc += x86_64-SunOS +REMOVE_FILES-i386 += sparcv9-SunOS + +CHECKPKG_OVERRIDES_CSWlogstash += binary-wrong-architecture|file=opt/csw/share/logstash/vendor/jruby/lib/jni/x86_64-SunOS/libjffi-1.2.so|pkginfo-says=sparc|actual-binary=i386 + + include gar/category.mk install-custom: ginstall -D -m 0755 $(WORKDIR)/logstash $(DESTDIR)$(bindir)/logstash ginstall -d -m 0755 $(DESTDIR)$(sharedstatedir)/logstash cd $(WORKSRC) && tar cf - . | (cd $(DESTDIR)$(sharedstatedir)/logstash; tar xf -) + @# Having PPC code in the package confuses checkpkg + rm -rf $(DESTDIR)$(sharedstatedir)/logstash/vendor/jruby/lib/jni/Darwin + rm -rf $(DESTDIR)$(sharedstatedir)/logstash/vendor/jruby/lib/jni/*-Linux + rm -rf $(DESTDIR)$(sharedstatedir)/logstash/vendor/jruby/lib/jni/*-Windows + rm -rf $(DESTDIR)$(sharedstatedir)/logstash/vendor/jruby/lib/jni/*-AIX + rm -rf $(DESTDIR)$(sharedstatedir)/logstash/vendor/jruby/lib/jni/*-FreeBSD + rm -rf $(foreach F,$(REMOVE_FILES-$(GARCH)),$(DESTDIR)$(sharedstatedir)/logstash/vendor/jruby/lib/jni/$$F) ginstall -d -m 0755 $(DESTDIR)$(sysconfdir)/logstash/conf.d ginstall -D -m 0644 $(WORKDIR)/cswlogstash.xml $(DESTDIR)/var/opt/csw/svc/manifest/cswlogstash.xml @$(MAKECOOKIE) Modified: csw/mgar/pkg/logstash/trunk/checksums =================================================================== --- csw/mgar/pkg/logstash/trunk/checksums 2015-06-22 07:11:19 UTC (rev 25103) +++ csw/mgar/pkg/logstash/trunk/checksums 2015-06-22 07:12:39 UTC (rev 25104) @@ -1 +1 @@ -6e6be734392e8c7d6d55e23d0bd8d2b3 logstash-1.4.2.tar.gz +43ec8edb6b0f3defc5337d045ebd8d4c logstash-1.5.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 09:20:56 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 07:20:56 +0000 Subject: SF.net SVN: gar:[25105] csw/mgar/pkg/tomcat8/trunk/Makefile Message-ID: <3mFMbk03Vqz2n@mail.opencsw.org> Revision: 25105 http://sourceforge.net/p/gar/code/25105 Author: dmichelsen Date: 2015-06-22 07:20:55 +0000 (Mon, 22 Jun 2015) Log Message: ----------- tomcat8/trunk: Prototype fixes Modified Paths: -------------- csw/mgar/pkg/tomcat8/trunk/Makefile Modified: csw/mgar/pkg/tomcat8/trunk/Makefile =================================================================== --- csw/mgar/pkg/tomcat8/trunk/Makefile 2015-06-22 07:12:39 UTC (rev 25104) +++ csw/mgar/pkg/tomcat8/trunk/Makefile 2015-06-22 07:20:55 UTC (rev 25105) @@ -23,16 +23,18 @@ TEST_SCRIPTS = INSTALL_SCRIPTS = tomcat -INITSMF = /etc/opt/csw/init.d/csw$(NAME) -USERGROUP = /etc/opt/csw/pkg/$(NAME)/cswusergroup -PRESERVECONF = /etc/opt/csw/$(NAME)/conf/.* +INITSMF = /etc/opt/csw/init.d/cswtomcat8 +USERGROUP = /etc/opt/csw/pkg/CSWtomcat8/cswusergroup +PRESERVECONF = /etc/opt/csw/tomcat8/conf/.* -PROTOTYPE_MODIFIERS = varuser etcperm -PROTOTYPE_FILES_varuser = /var/opt/csw/$(NAME)/.* +PROTOTYPE_MODIFIERS += varuser +PROTOTYPE_FILES_varuser = /var/opt/csw/tomcat8/.* PROTOTYPE_USER_varuser = tomcat PROTOTYPE_GROUP_varuser = tomcat PROTOTYPE_CLASS_varuser = ugfiles -PROTOTYPE_FILES_etcperm = /etc/opt/csw/$(NAME)/conf/.*\.CSW + +PROTOTYPE_MODIFIERS += etcperm +PROTOTYPE_FILES_etcperm = /etc/opt/csw/tomcat8/conf/.*\.CSW PROTOTYPE_PERMS_etcperm = 0640 PROTOTYPE_USER_etcperm = tomcat PROTOTYPE_GROUP_etcperm = tomcat This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 09:41:02 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 07:41:02 +0000 Subject: SF.net SVN: gar:[25106] csw/mgar/pkg/opengrok/trunk Message-ID: <3mFN2y5XD6z5J@mail.opencsw.org> Revision: 25106 http://sourceforge.net/p/gar/code/25106 Author: dmichelsen Date: 2015-06-22 07:41:02 +0000 (Mon, 22 Jun 2015) Log Message: ----------- opengrok/trunk: Update to 0.12.1 Modified Paths: -------------- csw/mgar/pkg/opengrok/trunk/Makefile csw/mgar/pkg/opengrok/trunk/checksums Modified: csw/mgar/pkg/opengrok/trunk/Makefile =================================================================== --- csw/mgar/pkg/opengrok/trunk/Makefile 2015-06-22 07:20:55 UTC (rev 25105) +++ csw/mgar/pkg/opengrok/trunk/Makefile 2015-06-22 07:41:02 UTC (rev 25106) @@ -2,7 +2,7 @@ # TODO: Repository under /var/opt/csw/repos NAME = opengrok -VERSION = 0.11.1 +VERSION = 0.12.1 DESCRIPTION = A wicked fast source browser define BLURB @@ -16,44 +16,47 @@ endef MASTER_SITES = http://java.net/projects/opengrok/downloads/download/ -DISTFILES = $(NAME)-$(VERSION).tar.gz +DISTFILES += $(DISTNAME).tar.gz -RUNTIME_DEP_PKGS = CSWectags CSWjavasvn CSWtomcat6 CSWmercurial - VENDOR_URL = http://opengrok.github.io/OpenGrok/ +PACKAGES += CSWopengrok +SPKG_DESC_CSWopengrok = A wicked fast source browser +# PKGFILES is catchall +RUNTIME_DEP_PKGS_CSWopengrok += CSWectags +RUNTIME_DEP_PKGS_CSWopengrok += CSWtomcat8 + +# The binaries are used from within scripts +CHECKPKG_OVERRIDES_CSWopengrok += surplus-dependency|CSWectags +CHECKPKG_OVERRIDES_CSWopengrok += surplus-dependency|CSWtomcat8 + CONFIGURE_SCRIPTS = BUILD_SCRIPTS = TEST_SCRIPTS = - INSTALL_SCRIPTS = custom include gar/category.mk install-custom: @echo " ==> Installing files" - @rm -rf $(DESTDIR)$(prefix)/share/tomcat5/webapps/source - @ginstall -d $(DESTDIR)$(prefix)/share/tomcat5/webapps/source - @(cat $(WORKSRC)/source.war | \ - (cd $(DESTDIR)$(prefix)/share/tomcat5/webapps/source; \ + rm -rf $(DESTDIR)$(prefix)/share/tomcat8/webapps/source + ginstall -d $(DESTDIR)$(prefix)/share/tomcat8/webapps/source + (cat $(WORKSRC)/lib/source.war | \ + (cd $(DESTDIR)$(prefix)/share/tomcat8/webapps/source; \ jar xf /dev/fd/0) \ ) @# For Indexing. Structure of opengrok is opengrok in application root @# directory and all libs in lib/. We use only WEB-INF whose directory structure @# is slightly different. - @gln -s $(DESTDIR)$(prefix)/share/tomcat5/webapps/source/WEB-INF/lib/. \ - $(DESTDIR)$(prefix)/share/tomcat5/webapps/source/WEB-INF/lib/lib + #gln -s $(DESTDIR)$(prefix)/share/tomcat8/webapps/source/WEB-INF/lib/. \ + # $(DESTDIR)$(prefix)/share/tomcat8/webapps/source/WEB-INF/lib/lib - @ginstall -d $(DESTDIR)$(prefix)/share/doc/opengrok - @ginstall $(WORKSRC)/*.txt \ - $(DESTDIR)$(prefix)/share/doc/opengrok/ - @mv $(DESTDIR)$(prefix)/share/tomcat5/webapps/source/WEB-INF/web.xml \ - $(DESTDIR)$(prefix)/share/tomcat5/webapps/source/WEB-INF/web.xml.CSW + ginstall -d $(DESTDIR)$(prefix)/share/doc/opengrok + mv $(DESTDIR)$(prefix)/share/tomcat8/webapps/source/WEB-INF/web.xml \ + $(DESTDIR)$(prefix)/share/tomcat8/webapps/source/WEB-INF/web.xml.CSW @# TODO: Apply XML-Starlet to web.xml - @rm -rf $(DESTDIR)$(prefix)/share/doc/opengrok - @ginstall -d $(DESTDIR)$(prefix)/share/doc/opengrok - @ginstall $(WORKSRC)/*.txt \ - $(DESTDIR)$(prefix)/share/doc/opengrok/ + rm -rf $(DESTDIR)$(prefix)/share/doc/opengrok + ginstall -d $(DESTDIR)$(prefix)/share/doc/opengrok @$(MAKECOOKIE) Modified: csw/mgar/pkg/opengrok/trunk/checksums =================================================================== --- csw/mgar/pkg/opengrok/trunk/checksums 2015-06-22 07:20:55 UTC (rev 25105) +++ csw/mgar/pkg/opengrok/trunk/checksums 2015-06-22 07:41:02 UTC (rev 25106) @@ -1 +1 @@ -91f926bf86d44acd6415f22e7ebb8aa5 opengrok-0.11.1.tar.gz +afc4560c9c9a27454c6d74024aa73ede opengrok-0.12.1.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 10:52:43 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 08:52:43 +0000 Subject: SF.net SVN: gar:[25107] csw/mgar/pkg Message-ID: <3mFPdf2N5zzHH@mail.opencsw.org> Revision: 25107 http://sourceforge.net/p/gar/code/25107 Author: dmichelsen Date: 2015-06-22 08:52:43 +0000 (Mon, 22 Jun 2015) Log Message: ----------- docbook2x/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/docbook2x/ csw/mgar/pkg/docbook2x/Makefile csw/mgar/pkg/docbook2x/branches/ csw/mgar/pkg/docbook2x/tags/ csw/mgar/pkg/docbook2x/trunk/ csw/mgar/pkg/docbook2x/trunk/Makefile csw/mgar/pkg/docbook2x/trunk/checksums csw/mgar/pkg/docbook2x/trunk/files/ Added: csw/mgar/pkg/docbook2x/Makefile =================================================================== --- csw/mgar/pkg/docbook2x/Makefile (rev 0) +++ csw/mgar/pkg/docbook2x/Makefile 2015-06-22 08:52:43 UTC (rev 25107) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/docbook2x/trunk =================================================================== --- csw/mgar/pkg/docbook2x/trunk 2015-06-22 07:41:02 UTC (rev 25106) +++ csw/mgar/pkg/docbook2x/trunk 2015-06-22 08:52:43 UTC (rev 25107) Property changes on: csw/mgar/pkg/docbook2x/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/docbook2x/trunk/Makefile =================================================================== --- csw/mgar/pkg/docbook2x/trunk/Makefile (rev 0) +++ csw/mgar/pkg/docbook2x/trunk/Makefile 2015-06-22 08:52:43 UTC (rev 25107) @@ -0,0 +1,21 @@ +# $Id$ +# TODO (release-critical prefixed with !, non release-critical with *) +# +NAME = docbook2X +VERSION = 0.8.8 +GARTYPE = v2 + +DESCRIPTION = Converts DocBook documents to man and Texinfo format + +MASTER_SITES = $(SF_MIRRORS) +DISTFILES += $(DISTNAME).tar.gz + +VENDOR_URL = http://docbook2x.sourceforge.net + +# Unconditional -Wall +GARCOMPILER = GNU + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk + Property changes on: csw/mgar/pkg/docbook2x/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/docbook2x/trunk/checksums =================================================================== --- csw/mgar/pkg/docbook2x/trunk/checksums (rev 0) +++ csw/mgar/pkg/docbook2x/trunk/checksums 2015-06-22 08:52:43 UTC (rev 25107) @@ -0,0 +1 @@ +b9b76a6af198c4f44574cfd17a322f01 docbook2X-0.8.8.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 11:47:42 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 09:47:42 +0000 Subject: SF.net SVN: gar:[25108] csw/mgar/pkg/docbook2x/trunk/Makefile Message-ID: <3mFQs43RPDzLG@mail.opencsw.org> Revision: 25108 http://sourceforge.net/p/gar/code/25108 Author: dmichelsen Date: 2015-06-22 09:47:42 +0000 (Mon, 22 Jun 2015) Log Message: ----------- docbook2x/trunk: Some more fixes Modified Paths: -------------- csw/mgar/pkg/docbook2x/trunk/Makefile Modified: csw/mgar/pkg/docbook2x/trunk/Makefile =================================================================== --- csw/mgar/pkg/docbook2x/trunk/Makefile 2015-06-22 08:52:43 UTC (rev 25107) +++ csw/mgar/pkg/docbook2x/trunk/Makefile 2015-06-22 09:47:42 UTC (rev 25108) @@ -12,10 +12,26 @@ VENDOR_URL = http://docbook2x.sourceforge.net +BUILD_DEP_PKGS += CSWxalan-j +BUILD_DEP_PKGS += CSWxercesj +BUILD_DEP_PKGS += CSWjre8 + +PACKAGES += CSWdocbook2x +SPKG_DESC_CSWdocbook2x = Converts DocBook documents to man and Texinfo format +# PKGFILES is catchall + # Unconditional -Wall GARCOMPILER = GNU -CONFIGURE_ARGS = $(DIRPATHS) +CONFIGURE_ARGS += $(DIRPATHS) +CONFIGURE_ARGS += --with-xalan-jars=/opt/csw/share/java/xalan.jar +CONFIGURE_ARGS += --with-resolver-jars=/opt/csw/share/java/resolver.jar +EXTRA_CONFIGURE_EXPORTS += JAVA +CONFIGURE_ENV_JAVA = /opt/csw/java/jre/jre8/bin/java + +# Tests access network and try to load lots of funky DTDs +SKIPTEST ?= 1 + include gar/category.mk This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Mon Jun 22 11:56:13 2015 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 22 Jun 2015 09:56:13 +0000 Subject: SF.net SVN: gar:[25109] csw/mgar/pkg Message-ID: <3mFR311GfgzNn@mail.opencsw.org> Revision: 25109 http://sourceforge.net/p/gar/code/25109 Author: dmichelsen Date: 2015-06-22 09:56:12 +0000 (Mon, 22 Jun 2015) Log Message: ----------- jsvc/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/jsvc/ csw/mgar/pkg/jsvc/Makefile csw/mgar/pkg/jsvc/branches/ csw/mgar/pkg/jsvc/tags/ csw/mgar/pkg/jsvc/trunk/ csw/mgar/pkg/jsvc/trunk/Makefile csw/mgar/pkg/jsvc/trunk/checksums csw/mgar/pkg/jsvc/trunk/files/ csw/mgar/pkg/jsvc/trunk/files/jsvc.1 Added: csw/mgar/pkg/jsvc/Makefile =================================================================== --- csw/mgar/pkg/jsvc/Makefile (rev 0) +++ csw/mgar/pkg/jsvc/Makefile 2015-06-22 09:56:12 UTC (rev 25109) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/jsvc/trunk =================================================================== --- csw/mgar/pkg/jsvc/trunk 2015-06-22 09:47:42 UTC (rev 25108) +++ csw/mgar/pkg/jsvc/trunk 2015-06-22 09:56:12 UTC (rev 25109) Property changes on: csw/mgar/pkg/jsvc/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/jsvc/trunk/Makefile =================================================================== --- csw/mgar/pkg/jsvc/trunk/Makefile (rev 0) +++ csw/mgar/pkg/jsvc/trunk/Makefile 2015-06-22 09:56:12 UTC (rev 25109) @@ -0,0 +1,46 @@ +# $Id$ +# TODO (release-critical prefixed with !, non release-critical with *) +# +NAME = commons-daemon +VERSION = 1.0.15 + +DESCRIPTION = Jsvc is a set of libraries and applications for making Java applications run on UNIX more easily + +MASTER_SITES += http://artfiles.org/apache.org//commons/daemon/source/ +DISTNAME = $(NAME)-$(VERSION)-src +DISTFILES += $(DISTNAME).tar.gz +# Generated with +# docbook2man jsvc.1.xml +# and then manually take out three lines after ".de URL" as it confuses nroff +DISTFILES += jsvc.1 + +VENDOR_URL = http://commons.apache.org/proper/commons-daemon/jsvc.html +LICENSE = LICENSE.txt + +PACKAGES += CSWjsvc +SPKG_DESC_CSWjsvc = A set of libraries and applications for making Java applications run on UNIX more easily +# PKGFILES is catchall +RUNTIME_DEP_PKGS_CSWjsvc += CSWjre8 +# checkpkg cannot detect this +CHECKPKG_OVERRIDES_CSWjsvc += surplus-dependency|CSWjre8 + +# This is /usr/local/java +CHECKPKG_OVERRIDES_CSWjsvc += file-with-bad-content|/usr/local|root/opt/csw/bin/jsvc + +WORKSRC = $(WORKDIR)/$(DISTNAME)/src/native/unix + +CONFIGURE_ARGS += $(DIRPATHS) +CONFIGURE_ARGS += --with-java=$(prefix)/java/jdk/jdk8 + +# There is no testsuite +TEST_SCRIPTS = + +# There is no "install" target +INSTALL_SCRIPTS = custom + +include gar/category.mk + +install-custom: + ginstall -D -m 0755 $(WORKSRC)/jsvc $(DESTDIR)$(bindir)/jsvc + ginstall -D -m 0644 $(WORKDIR)/jsvc.1 $(DESTDIR)$(mandir)/man1/jsvc.1 + @$(MAKECOOKIE) Property changes on: csw/mgar/pkg/jsvc/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/jsvc/trunk/checksums =================================================================== --- csw/mgar/pkg/jsvc/trunk/checksums (rev 0) +++ csw/mgar/pkg/jsvc/trunk/checksums 2015-06-22 09:56:12 UTC (rev 25109) @@ -0,0 +1 @@ +e467bc1f332d47ad85d18ea8b8a897c3 commons-daemon-1.0.15-src.tar.gz Added: csw/mgar/pkg/jsvc/trunk/files/jsvc.1 =================================================================== --- csw/mgar/pkg/jsvc/trunk/files/jsvc.1 (rev 0) +++ csw/mgar/pkg/jsvc/trunk/files/jsvc.1 2015-06-22 09:56:12 UTC (rev 25109) @@ -0,0 +1,96 @@ +.\" -*- coding: us-ascii -*- +.if \n(.g .ds T< \\FC +.if \n(.g .ds T> \\F[\n[.fam]] +.if \n(.g .mso www.tmac +.TH JSVC 1 "June 2011" "Jsvc version 1.0.6" "Apache Commons Daemon project" +.SH NAME +jsvc \- application to launch java daemon +.SH SYNOPSIS +'nh +.fi +.ad l +\fBjsvc\fR \kx +.if (\nx>(\n(.l/2)) .nr x (\n(.l/5) +'in \n(.iu+\nxu +[-jvm \fIJVM name\fR] [-client \fIclient JVM\fR] [-server \fIserver JVM\fR] [-classpath \fIpath\fR] [-cp \fIpath\fR] [-java-home \fIdirectory\fR] [-version] [-help] [-?] [-nodetach] [-debug] [-check] [-user \fIuser\fR] [-wait \fIwaittime\fR] [-umask \fImask\fR] [-stop] [-verbose\fI:class|gc|jni\fR] [-outfile \fI/full/path/to/file\fR] [-errfile \fI/full/path/to/file\fR] [-pidfile \fI/full/path/to/file\fR] [-Dproperty=\fIvalue\fR] [-X\fIoption\fR] +'in \n(.iu-\nxu +.ad b +'hy +.SH DESCRIPTION +\fBjsvc\fR executes \fIclassfile\fR +that implements a Daemon interface. +.SH OPTIONS +.TP +\*(T<\fB\-jvm\fR\*(T> JVM name +use a specific Java Virtual Machine. +.TP +\*(T<\fB\-client\fR\*(T> client JVM +use a client Java Virtual Machine. +.TP +\*(T<\fB\-server\fR\*(T> server JVM +use a server Java Virtual Machine. +.TP +\*(T<\fB\-cp/ \-classpath\fR\*(T> directory and zip/jar files +set search path for service classes and resouces +.TP +\*(T<\fB\-java\-home\fR\*(T> directory +set the path of your JDK or JRE installation (or set +the JAVA_HOME environment variable) +.TP +\*(T<\fB\-version\fR\*(T> +show the current Java environment version (to check +correctness of -home and -jvm. Implies -nodetach) +.TP +\*(T<\fB\-help\fR\*(T> +show this help page (implies -nodetach) +.TP +\*(T<\fB\-nodetach\fR\*(T> +don't detach from parent process and become a daemon +.TP +\*(T<\fB\-debug\fR\*(T> +verbosely print debugging information +.TP +\*(T<\fB\-check\fR\*(T> +only check service (implies -nodetach) +.TP +\*(T<\fB\-stop\fR\*(T> +stop the service using the file given in the -pidfile option +.TP +\*(T<\fB\-wait\fR\*(T> waittime +wait up to waittime seconds for the service to start +waittime should multiple of 10 (min=10) +.TP +\*(T<\fB\-umask\fR\*(T> mask +sets the file mode creation mask +.TP +\*(T<\fB\-user\fR\*(T> user +user used to run the daemon (defaults to current user) +.TP +\*(T<\fB\-verbose[:class|gc|jni]\fR\*(T> +enable verbose output +.TP +\*(T<\fB\-outfile\fR\*(T> /full/path/to/file +Location for output from stdout (defaults to +/dev/null). Use the value '&2' to simulate +\&'1>&2', or 'SYSLOG' to send output to the system +log. +.TP +\*(T<\fB\-errfile\fR\*(T> /full/path/to/file +Location for output from stderr (defaults to +/dev/null). Use the value '&1' to simulate +\&'2>&1', or 'SYSLOG' to send output to the system +log. +.TP +\*(T<\fB\-pidfile\fR\*(T> /full/path/to/file +Location for output from the file containing the pid of jsvc +(defaults to /var/run/jsvc.pid) +.TP +\*(T<\fB\-D\fR\*(T>= +set a Java system property +.TP +\*(T<\fB\-X\fR\*(T>