From claudio_sf at users.sourceforge.net Sun Jun 1 10:23:23 2014 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 1 Jun 2014 08:23:23 +0000 Subject: SF.net SVN: gar:[23742] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3ghCFv0qfnz17b@mail.opencsw.org> Revision: 23742 http://sourceforge.net/p/gar/code/23742 Author: claudio_sf Date: 2014-06-01 08:23:20 +0000 (Sun, 01 Jun 2014) Log Message: ----------- perl/trunk: Working Makefile for 5.20 Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2014-05-31 20:10:27 UTC (rev 23741) +++ csw/mgar/pkg/perl/trunk/Makefile 2014-06-01 08:23:20 UTC (rev 23742) @@ -132,7 +132,7 @@ # You can always run the test single threaded if needed. test-perl: @echo " ==> Running make $(TEST_TARGET) in $*" - - # workaround gar pwd bug: http://sourceforge.net/apps/trac/gar/ticket/78 + # workaround gar pwd bug (PWD is not changed with cd from Makefile: + # http://sourceforge.net/apps/trac/gar/ticket/78 cd $(WORKSRC) && PWD=`pwd` $(MAKE) $(MAKE_OPT) test @$(MAKECOOKIE) 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 Sun Jun 1 10:35:51 2014 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 1 Jun 2014 08:35:51 +0000 Subject: SF.net SVN: gar:[23743] csw/mgar/pkg/perl/trunk/checksums Message-ID: <3ghCXD2Y3Rz1Ds@mail.opencsw.org> Revision: 23743 http://sourceforge.net/p/gar/code/23743 Author: claudio_sf Date: 2014-06-01 08:35:43 +0000 (Sun, 01 Jun 2014) Log Message: ----------- Add back checksums which was removed by mistake Added Paths: ----------- csw/mgar/pkg/perl/trunk/checksums Added: csw/mgar/pkg/perl/trunk/checksums =================================================================== --- csw/mgar/pkg/perl/trunk/checksums (rev 0) +++ csw/mgar/pkg/perl/trunk/checksums 2014-06-01 08:35:43 UTC (rev 23743) @@ -0,0 +1 @@ +20cbecd4e9e880ee7a50a136c8b1484e perl-5.20.0.tar.bz2 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sun Jun 1 11:49:39 2014 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 1 Jun 2014 09:49:39 +0000 Subject: SF.net SVN: gar:[23744] csw/mgar/pkg Message-ID: <3ghF9S2whdz1LY@mail.opencsw.org> Revision: 23744 http://sourceforge.net/p/gar/code/23744 Author: wahwah Date: 2014-06-01 09:49:29 +0000 (Sun, 01 Jun 2014) Log Message: ----------- arc/trunk: Makefile adjusted according to instructions. It does not build. Added Paths: ----------- csw/mgar/pkg/arc/ csw/mgar/pkg/arc/Makefile csw/mgar/pkg/arc/branches/ csw/mgar/pkg/arc/tags/ csw/mgar/pkg/arc/trunk/ csw/mgar/pkg/arc/trunk/Makefile csw/mgar/pkg/arc/trunk/checksums csw/mgar/pkg/arc/trunk/files/ csw/mgar/pkg/arc/trunk/files/0001-Adjust-Makefile-settings-for-Solaris.patch Added: csw/mgar/pkg/arc/Makefile =================================================================== --- csw/mgar/pkg/arc/Makefile (rev 0) +++ csw/mgar/pkg/arc/Makefile 2014-06-01 09:49:29 UTC (rev 23744) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/arc/trunk =================================================================== --- csw/mgar/pkg/arc/trunk 2014-06-01 08:35:43 UTC (rev 23743) +++ csw/mgar/pkg/arc/trunk 2014-06-01 09:49:29 UTC (rev 23744) Property changes on: csw/mgar/pkg/arc/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1,4 ## +cookies +download +work + Added: svn:externals ## -0,0 +1 ## +gar https://gar.svn.sourceforge.net/svnroot/gar/csw/mgar/gar/v2 Added: csw/mgar/pkg/arc/trunk/Makefile =================================================================== --- csw/mgar/pkg/arc/trunk/Makefile (rev 0) +++ csw/mgar/pkg/arc/trunk/Makefile 2014-06-01 09:49:29 UTC (rev 23744) @@ -0,0 +1,32 @@ +# $Id$ +# TODO (release-critical prefixed with !, non release-critical with *) +# +NAME = arc +VERSION = 5.21p +GARTYPE = v2 + +DESCRIPTION = Based on the MSDOS ARC program + +VENDOR_URL = http://sourceforge.net/projects/arc/ + +MASTER_SITES = $(SF_MIRROR) +DISTFILES = $(DISTNAME).tar.gz + +PACKAGING_PLATFORMS = solaris9-sparc solaris9-i386 + +CONFIGURE_ARGS = $(DIRPATHS) + +CONFIGURE_SCRIPTS = +BUILD_SCRIPTS = custom + +PATCHFILES += 0001-Adjust-Makefile-settings-for-Solaris.patch + +# EXTRA_CFLAGS = -DSYSV=1 -DNEED_ALPHASORT +# EXTRA_INC = /usr/ucbinclude +# EXTRA_LIB = -L/usr/ucb -lucb + +include gar/category.mk + +build-custom: + (cd $(WORKSRC); gmake $(BUILD_ENV) $(PARALLELMFLAGS)) + @$(MAKECOOKIE) Property changes on: csw/mgar/pkg/arc/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/arc/trunk/checksums =================================================================== --- csw/mgar/pkg/arc/trunk/checksums (rev 0) +++ csw/mgar/pkg/arc/trunk/checksums 2014-06-01 09:49:29 UTC (rev 23744) @@ -0,0 +1 @@ +902ce24b23422880d474df6f1d9eba5e arc-5.21p.tar.gz Added: csw/mgar/pkg/arc/trunk/files/0001-Adjust-Makefile-settings-for-Solaris.patch =================================================================== --- csw/mgar/pkg/arc/trunk/files/0001-Adjust-Makefile-settings-for-Solaris.patch (rev 0) +++ csw/mgar/pkg/arc/trunk/files/0001-Adjust-Makefile-settings-for-Solaris.patch 2014-06-01 09:49:29 UTC (rev 23744) @@ -0,0 +1,48 @@ +From 0477e562ed5d6f77e02de98202ac822708eb7a4b Mon Sep 17 00:00:00 2001 +From: Maciej Blizinski +Date: Sun, 1 Jun 2014 11:40:16 +0200 +Subject: [PATCH] Adjust Makefile settings for Solaris + +--- + Makefile | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index c6273d0..4a73a01 100644 +--- a/Makefile ++++ b/Makefile +@@ -39,12 +39,12 @@ PROG = + # (See the Sysvarcstuf shar file) + #SYSTEM = -DGEMDOS=1 -fstrength-reduce -fomit-frame-pointer -finline-functions -fdefer-pop -mpcrel + #SYSTEM = -DBSD=1 +-SYSTEM = -DSYSV=1 ++SYSTEM = -DSYSV=1 -DNEED_ALPHASORT + +-OPT = -O -Wall ++OPT = $(OPTFLAGS) + # For MWC 3.0 on the Atari ST, use: + #CFLAGS = -VCOMPAC -VPEEP +-CFLAGS = $(OPT) $(SYSTEM) ++CFLAGS = $(OPT) $(SYSTEM) $(CPPFLAGS) + + # GNU's gcc is very nice, if you've got it. Otherwise just cc. + #CC = cgcc -mshort -mbaserel +@@ -58,7 +58,7 @@ TMCLOCK = tmclock.o + + # Files needed for System V + #SYSVOBJ = getwd.o rename.o scandir.o utimes.o +-SYSVOBJ = ++SYSVOBJ = scandir.o + + OBJS = arc.o arcadd.o arccode.o arccvt.o arcdata.o arcdel.o arcdos.o \ + arcext.o arcio.o arclst.o arclzw.o arcmatch.o arcpack.o arcrun.o \ +@@ -137,4 +137,4 @@ install: all + install -s -m 0755 -D marc $(DESTDIR)$(PREFIX)/bin/marc + install -m 0644 -D arc.1 $(DESTDIR)$(PREFIX)/share/man/man1/arc.1 + install -m 0644 -D marc.1 $(DESTDIR)$(PREFIX)/share/man/man1/marc.1 +- +\ No newline at end of file ++ +-- +1.7.10.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 Sun Jun 1 19:01:00 2014 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 1 Jun 2014 17:01:00 +0000 Subject: SF.net SVN: gar:[23745] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3ghQlF2DyyzFC@mail.opencsw.org> Revision: 23745 http://sourceforge.net/p/gar/code/23745 Author: claudio_sf Date: 2014-06-01 17:00:55 +0000 (Sun, 01 Jun 2014) Log Message: ----------- perl/trunk: Addition of CSWlibgdbm4 dependency Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2014-06-01 09:49:29 UTC (rev 23744) +++ csw/mgar/pkg/perl/trunk/Makefile 2014-06-01 17:00:55 UTC (rev 23745) @@ -41,6 +41,7 @@ # Depends RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 +RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 OBSOLETED_BY_CSWperl += CSWperldoc CSWpm-parse-cpan-meta CSWpm-cpan-meta CSWpm-cpan-meta-requirements CSWpm-perl-ostype CSWpm-cpan-meta-yaml CSWpm-module-build CSWpm-json-pp CSWpm-module-metadata #OBSOLETED_BY_CSWperl += CSWpm-module-build #OBSOLETED_BY_CSWperl += CSWpm-json-pp 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 Sun Jun 1 21:29:06 2014 From: claudio_sf at users.sourceforge.net (claudio_sf at users.sourceforge.net) Date: Sun, 1 Jun 2014 19:29:06 +0000 Subject: SF.net SVN: gar:[23746] csw/mgar/pkg/perl/trunk/Makefile Message-ID: <3ghV2164gKzNp@mail.opencsw.org> Revision: 23746 http://sourceforge.net/p/gar/code/23746 Author: claudio_sf Date: 2014-06-01 19:29:04 +0000 (Sun, 01 Jun 2014) Log Message: ----------- perl/trunk: 5.20 added experimental.pm to core Modified Paths: -------------- csw/mgar/pkg/perl/trunk/Makefile Modified: csw/mgar/pkg/perl/trunk/Makefile =================================================================== --- csw/mgar/pkg/perl/trunk/Makefile 2014-06-01 17:00:55 UTC (rev 23745) +++ csw/mgar/pkg/perl/trunk/Makefile 2014-06-01 19:29:04 UTC (rev 23746) @@ -42,7 +42,7 @@ RUNTIME_DEP_PKGS_CSWperl += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWperl += CSWlibssp0 RUNTIME_DEP_PKGS_CSWperl += CSWlibgdbm4 -OBSOLETED_BY_CSWperl += CSWperldoc CSWpm-parse-cpan-meta CSWpm-cpan-meta CSWpm-cpan-meta-requirements CSWpm-perl-ostype CSWpm-cpan-meta-yaml CSWpm-module-build CSWpm-json-pp CSWpm-module-metadata +OBSOLETED_BY_CSWperl += CSWperldoc CSWpm-parse-cpan-meta CSWpm-cpan-meta CSWpm-cpan-meta-requirements CSWpm-perl-ostype CSWpm-cpan-meta-yaml CSWpm-module-build CSWpm-json-pp CSWpm-module-metadata CSWpm-experimental #OBSOLETED_BY_CSWperl += CSWpm-module-build #OBSOLETED_BY_CSWperl += CSWpm-json-pp #OBSOLETED_BY_CSWperl += CSWpm-cpan-meta This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Jun 1 22:04:32 2014 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 1 Jun 2014 20:04:32 +0000 Subject: SF.net SVN: gar:[23747] csw/mgar/pkg/coreutils/trunk Message-ID: <3ghVq20bNrzSl@mail.opencsw.org> Revision: 23747 http://sourceforge.net/p/gar/code/23747 Author: bdwalton Date: 2014-06-01 20:04:28 +0000 (Sun, 01 Jun 2014) Log Message: ----------- coreutils/trunk: revert to default GNU compiler; add patches for (now strict errors) compiler warnings Modified Paths: -------------- csw/mgar/pkg/coreutils/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/coreutils/trunk/files/0001-Backport-some-patches-to-suppress-compiler-errors.patch csw/mgar/pkg/coreutils/trunk/files/0002-Avoid-compiler-error-by-casting-the-ignore-option-fr.patch csw/mgar/pkg/coreutils/trunk/files/0003-Only-define-the-out-label-if-it-will-be-used.patch csw/mgar/pkg/coreutils/trunk/files/0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch Modified: csw/mgar/pkg/coreutils/trunk/Makefile =================================================================== --- csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-01 19:29:04 UTC (rev 23746) +++ csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-01 20:04:28 UTC (rev 23747) @@ -8,7 +8,7 @@ # OPT_FLAGS_GCC = -O1 -pipe # building with gcc gets us extra tools (eg: stdbuf) -GARCOMPILER = GCC4 +GARCOMPILER = GNU SHELL = /opt/csw/bin/bash @@ -32,6 +32,13 @@ MASTER_SITES = $(GNU_MIRROR) DISTFILES = $(NAME)-$(VERSION).tar.xz + +PATCHFILES += 0001-Backport-some-patches-to-suppress-compiler-errors.patch +PATCHFILES += 0002-Avoid-compiler-error-by-casting-the-ignore-option-fr.patch +PATCHFILES += 0003-Only-define-the-out-label-if-it-will-be-used.patch +PATCHFILES += 0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch + + # We define upstream file regex so we can be notifed of new upstream # software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz Added: csw/mgar/pkg/coreutils/trunk/files/0001-Backport-some-patches-to-suppress-compiler-errors.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0001-Backport-some-patches-to-suppress-compiler-errors.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0001-Backport-some-patches-to-suppress-compiler-errors.patch 2014-06-01 20:04:28 UTC (rev 23747) @@ -0,0 +1,51 @@ +From 5d13bcc51f639f4106d90206001bc5f6529b2aa5 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sat, 31 May 2014 20:50:02 +0200 +Subject: [PATCH] Backport some patches to suppress compiler errors. + +We need to suppress suggest-attribute=(const|pure) in a few cases. + +Signed-off-by: Ben Walton +--- + lib/fadvise.c | 6 ++++++ + lib/file-has-acl.c | 7 +++++++ + 2 files changed, 13 insertions(+) + +diff --git a/lib/fadvise.c b/lib/fadvise.c +index 8d3af99..5b4c916 100644 +--- a/lib/fadvise.c ++++ b/lib/fadvise.c +@@ -14,6 +14,12 @@ + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + ++/* Without this pragma, gcc suggests that (given !HAVE_POSIX_FADVISE) ++ the the fdadvise function might be candidate for attribute 'const'. */ ++#if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ ++# pragma GCC diagnostic ignored "-Wsuggest-attribute=const" ++#endif ++ + #include + #include "fadvise.h" + +diff --git a/lib/file-has-acl.c b/lib/file-has-acl.c +index bb8bae1..7ea4569 100644 +--- a/lib/file-has-acl.c ++++ b/lib/file-has-acl.c +@@ -23,6 +23,13 @@ + # pragma GCC diagnostic ignored "-Wsuggest-attribute=const" + #endif + ++/* Without this pragma, gcc 4.9 may suggest that the acl_nontrivial ++ and acl_ace_nontrivial functions might be candidates for ++ attribute 'pure' */ ++#if (__GNUC__ == 4 && 9 <= __GNUC_MINOR__) || 4 < __GNUC__ ++# pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" ++#endif ++ + #include + + #include "acl.h" +-- +1.8.4.1 + Added: csw/mgar/pkg/coreutils/trunk/files/0002-Avoid-compiler-error-by-casting-the-ignore-option-fr.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0002-Avoid-compiler-error-by-casting-the-ignore-option-fr.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0002-Avoid-compiler-error-by-casting-the-ignore-option-fr.patch 2014-06-01 20:04:28 UTC (rev 23747) @@ -0,0 +1,32 @@ +From b97eb8aa1e715da0c308460c2f33304968d161b1 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sun, 1 Jun 2014 10:02:30 +0200 +Subject: [PATCH] Avoid compiler error by casting the ignore option from const + char + +The hasmntopt definition on Solaris expects the desired option to be a +char *, but passes a defined constant string. With all errors enabled, +this causes the build to fail. As a hack, cast the constant string to +char *. + +Signed-off-by: Ben Walton +--- + lib/mountlist.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/mountlist.c b/lib/mountlist.c +index b839cd1..74fb548 100644 +--- a/lib/mountlist.c ++++ b/lib/mountlist.c +@@ -134,7 +134,7 @@ + + #undef MNT_IGNORE + #ifdef MNTOPT_IGNORE +-# define MNT_IGNORE(M) hasmntopt (M, MNTOPT_IGNORE) ++# define MNT_IGNORE(M) hasmntopt (M, (char *) MNTOPT_IGNORE) + #else + # define MNT_IGNORE(M) 0 + #endif +-- +1.8.4.1 + Added: csw/mgar/pkg/coreutils/trunk/files/0003-Only-define-the-out-label-if-it-will-be-used.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0003-Only-define-the-out-label-if-it-will-be-used.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0003-Only-define-the-out-label-if-it-will-be-used.patch 2014-06-01 20:04:28 UTC (rev 23747) @@ -0,0 +1,31 @@ +From 1f41af243a161a1591bbca78890dd63c04098b41 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sun, 1 Jun 2014 10:31:35 +0200 +Subject: [PATCH 4/4] Only define the out label if it will be used. + +Signed-off-by: Ben Walton +--- + lib/rename.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/lib/rename.c b/lib/rename.c +index 3e463ea..7822a63 100644 +--- a/lib/rename.c ++++ b/lib/rename.c +@@ -462,7 +462,13 @@ rpl_rename (char const *src, char const *dst) + + ret_val = rename (src_temp, dst_temp); + rename_errno = errno; ++# if (RENAME_TRAILING_SLASH_SOURCE_BUG || RENAME_DEST_EXISTS_BUG \ ++ || RENAME_HARD_LINK_BUG) ++ /* Avoid compiler warnings from gcc 4.9 about unused labels. Only ++ create this label if it will be used. */ + out: ++# endif ++ + if (src_temp != src) + free (src_temp); + if (dst_temp != dst) +-- +1.8.4.1 + Added: csw/mgar/pkg/coreutils/trunk/files/0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch 2014-06-01 20:04:28 UTC (rev 23747) @@ -0,0 +1,31 @@ +From b6215948bf81b5e866ad83f96768eae36a32f273 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sun, 1 Jun 2014 10:50:41 +0200 +Subject: [PATCH] Ensure that dst_exists is used in all cases to avoid compiler + issues. + +Signed-off-by: Ben Walton +--- + lib/rename.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/lib/rename.c b/lib/rename.c +index 7822a63..75ecc68 100644 +--- a/lib/rename.c ++++ b/lib/rename.c +@@ -458,6 +458,12 @@ rpl_rename (char const *src, char const *dst) + goto out; + } + } ++# else ++ /* Avoid compiler warnings/errors for -Werror=unused-but-set-variable */ ++ if (dst_exists) ++ { ++ ; ++ } + # endif /* RENAME_DEST_EXISTS_BUG */ + + ret_val = rename (src_temp, dst_temp); +-- +1.8.4.1 + Added: csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch 2014-06-01 20:04:28 UTC (rev 23747) @@ -0,0 +1,124 @@ +From 947aa78883636ef8e2469d1a89e8e6cb7a142dff Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sun, 1 Jun 2014 19:55:24 +0200 +Subject: [PATCH] src/df.c: Prevent compiler warning by removing block + +gcc 4.9.0 thinks that v may be uninitialized due to the block around the options in a switch/case statement. + +Signed-off-by: Ben Walton +--- + src/df.c | 98 +++++++++++++++++++++++++++++++--------------------------------- + 1 file changed, 48 insertions(+), 50 deletions(-) + +diff --git a/src/df.c b/src/df.c +index 969670e..10541a8 100644 +--- a/src/df.c ++++ b/src/df.c +@@ -967,56 +967,54 @@ get_dev (char const *disk, char const *mount_point, char const* file, + + case PCENT_FIELD: + case IPCENT_FIELD: +- { +- double pct = -1; +- if (! known_value (v->used) || ! known_value (v->available)) +- ; +- else if (!v->negate_used +- && v->used <= TYPE_MAXIMUM (uintmax_t) / 100 +- && v->used + v->available != 0 +- && (v->used + v->available < v->used) +- == v->negate_available) +- { +- uintmax_t u100 = v->used * 100; +- uintmax_t nonroot_total = v->used + v->available; +- pct = u100 / nonroot_total + (u100 % nonroot_total != 0); +- } +- else +- { +- /* The calculation cannot be done easily with integer +- arithmetic. Fall back on floating point. This can suffer +- from minor rounding errors, but doing it exactly requires +- multiple precision arithmetic, and it's not worth the +- aggravation. */ +- double u = v->negate_used ? - (double) - v->used : v->used; +- double a = v->negate_available +- ? - (double) - v->available : v->available; +- double nonroot_total = u + a; +- if (nonroot_total) +- { +- long int lipct = pct = u * 100 / nonroot_total; +- double ipct = lipct; +- +- /* Like 'pct = ceil (dpct);', but avoid ceil so that +- the math library needn't be linked. */ +- if (ipct - 1 < pct && pct <= ipct + 1) +- pct = ipct + (ipct < pct); +- } +- } +- +- if (0 <= pct) +- { +- if (asprintf (&cell, "%.0f%%", pct) == -1) +- cell = NULL; +- } +- else +- cell = strdup ("-"); +- +- if (!cell) +- xalloc_die (); +- +- break; +- } ++ double pct = -1; ++ if (! known_value (v->used) || ! known_value (v->available)) ++ ; ++ else if (!v->negate_used ++ && v->used <= TYPE_MAXIMUM (uintmax_t) / 100 ++ && v->used + v->available != 0 ++ && (v->used + v->available < v->used) ++ == v->negate_available) ++ { ++ uintmax_t u100 = v->used * 100; ++ uintmax_t nonroot_total = v->used + v->available; ++ pct = u100 / nonroot_total + (u100 % nonroot_total != 0); ++ } ++ else ++ { ++ /* The calculation cannot be done easily with integer ++ arithmetic. Fall back on floating point. This can suffer ++ from minor rounding errors, but doing it exactly requires ++ multiple precision arithmetic, and it's not worth the ++ aggravation. */ ++ double u = v->negate_used ? - (double) - v->used : v->used; ++ double a = v->negate_available ++ ? - (double) - v->available : v->available; ++ double nonroot_total = u + a; ++ if (nonroot_total) ++ { ++ long int lipct = pct = u * 100 / nonroot_total; ++ double ipct = lipct; ++ ++ /* Like 'pct = ceil (dpct);', but avoid ceil so that ++ the math library needn't be linked. */ ++ if (ipct - 1 < pct && pct <= ipct + 1) ++ pct = ipct + (ipct < pct); ++ } ++ } ++ ++ if (0 <= pct) ++ { ++ if (asprintf (&cell, "%.0f%%", pct) == -1) ++ cell = NULL; ++ } ++ else ++ cell = strdup ("-"); ++ ++ if (!cell) ++ xalloc_die (); ++ ++ break; + + case FILE_FIELD: + cell = xstrdup (file); +-- +1.8.4.1 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Jun 1 22:10:41 2014 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 1 Jun 2014 20:10:41 +0000 Subject: SF.net SVN: gar:[23748] csw/mgar/pkg/coreutils/trunk/files/0005-src-df. c-Prevent-compiler-warning-by-removing-block.patch Message-ID: <3ghVy14wDJzXY@mail.opencsw.org> Revision: 23748 http://sourceforge.net/p/gar/code/23748 Author: bdwalton Date: 2014-06-01 20:10:39 +0000 (Sun, 01 Jun 2014) Log Message: ----------- drop patch file that should not have been included yet - it is broken Removed Paths: ------------- csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch Deleted: csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch 2014-06-01 20:04:28 UTC (rev 23747) +++ csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-Prevent-compiler-warning-by-removing-block.patch 2014-06-01 20:10:39 UTC (rev 23748) @@ -1,124 +0,0 @@ -From 947aa78883636ef8e2469d1a89e8e6cb7a142dff Mon Sep 17 00:00:00 2001 -From: Ben Walton -Date: Sun, 1 Jun 2014 19:55:24 +0200 -Subject: [PATCH] src/df.c: Prevent compiler warning by removing block - -gcc 4.9.0 thinks that v may be uninitialized due to the block around the options in a switch/case statement. - -Signed-off-by: Ben Walton ---- - src/df.c | 98 +++++++++++++++++++++++++++++++--------------------------------- - 1 file changed, 48 insertions(+), 50 deletions(-) - -diff --git a/src/df.c b/src/df.c -index 969670e..10541a8 100644 ---- a/src/df.c -+++ b/src/df.c -@@ -967,56 +967,54 @@ get_dev (char const *disk, char const *mount_point, char const* file, - - case PCENT_FIELD: - case IPCENT_FIELD: -- { -- double pct = -1; -- if (! known_value (v->used) || ! known_value (v->available)) -- ; -- else if (!v->negate_used -- && v->used <= TYPE_MAXIMUM (uintmax_t) / 100 -- && v->used + v->available != 0 -- && (v->used + v->available < v->used) -- == v->negate_available) -- { -- uintmax_t u100 = v->used * 100; -- uintmax_t nonroot_total = v->used + v->available; -- pct = u100 / nonroot_total + (u100 % nonroot_total != 0); -- } -- else -- { -- /* The calculation cannot be done easily with integer -- arithmetic. Fall back on floating point. This can suffer -- from minor rounding errors, but doing it exactly requires -- multiple precision arithmetic, and it's not worth the -- aggravation. */ -- double u = v->negate_used ? - (double) - v->used : v->used; -- double a = v->negate_available -- ? - (double) - v->available : v->available; -- double nonroot_total = u + a; -- if (nonroot_total) -- { -- long int lipct = pct = u * 100 / nonroot_total; -- double ipct = lipct; -- -- /* Like 'pct = ceil (dpct);', but avoid ceil so that -- the math library needn't be linked. */ -- if (ipct - 1 < pct && pct <= ipct + 1) -- pct = ipct + (ipct < pct); -- } -- } -- -- if (0 <= pct) -- { -- if (asprintf (&cell, "%.0f%%", pct) == -1) -- cell = NULL; -- } -- else -- cell = strdup ("-"); -- -- if (!cell) -- xalloc_die (); -- -- break; -- } -+ double pct = -1; -+ if (! known_value (v->used) || ! known_value (v->available)) -+ ; -+ else if (!v->negate_used -+ && v->used <= TYPE_MAXIMUM (uintmax_t) / 100 -+ && v->used + v->available != 0 -+ && (v->used + v->available < v->used) -+ == v->negate_available) -+ { -+ uintmax_t u100 = v->used * 100; -+ uintmax_t nonroot_total = v->used + v->available; -+ pct = u100 / nonroot_total + (u100 % nonroot_total != 0); -+ } -+ else -+ { -+ /* The calculation cannot be done easily with integer -+ arithmetic. Fall back on floating point. This can suffer -+ from minor rounding errors, but doing it exactly requires -+ multiple precision arithmetic, and it's not worth the -+ aggravation. */ -+ double u = v->negate_used ? - (double) - v->used : v->used; -+ double a = v->negate_available -+ ? - (double) - v->available : v->available; -+ double nonroot_total = u + a; -+ if (nonroot_total) -+ { -+ long int lipct = pct = u * 100 / nonroot_total; -+ double ipct = lipct; -+ -+ /* Like 'pct = ceil (dpct);', but avoid ceil so that -+ the math library needn't be linked. */ -+ if (ipct - 1 < pct && pct <= ipct + 1) -+ pct = ipct + (ipct < pct); -+ } -+ } -+ -+ if (0 <= pct) -+ { -+ if (asprintf (&cell, "%.0f%%", pct) == -1) -+ cell = NULL; -+ } -+ else -+ cell = strdup ("-"); -+ -+ if (!cell) -+ xalloc_die (); -+ -+ break; - - case FILE_FIELD: - cell = xstrdup (file); --- -1.8.4.1 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sun Jun 1 22:24:43 2014 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sun, 1 Jun 2014 20:24:43 +0000 Subject: SF.net SVN: gar:[23749] csw/mgar/pkg/coreutils/trunk Message-ID: <3ghWGB2fkSzdB@mail.opencsw.org> Revision: 23749 http://sourceforge.net/p/gar/code/23749 Author: bdwalton Date: 2014-06-01 20:24:40 +0000 (Sun, 01 Jun 2014) Log Message: ----------- coreutils/trunk: work around another compiler error by initializing a variable in every case Modified Paths: -------------- csw/mgar/pkg/coreutils/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch Modified: csw/mgar/pkg/coreutils/trunk/Makefile =================================================================== --- csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-01 20:10:39 UTC (rev 23748) +++ csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-01 20:24:40 UTC (rev 23749) @@ -37,8 +37,8 @@ PATCHFILES += 0002-Avoid-compiler-error-by-casting-the-ignore-option-fr.patch PATCHFILES += 0003-Only-define-the-out-label-if-it-will-be-used.patch PATCHFILES += 0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch +PATCHFILES += 0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch - # We define upstream file regex so we can be notifed of new upstream # software release UFILES_REGEX = $(NAME)-(\d+(?:\.\d+)*).tar.gz Added: csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch 2014-06-01 20:24:40 UTC (rev 23749) @@ -0,0 +1,39 @@ +From 3497db4f2ed62a01de46e75ab95ad3e77822e427 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sun, 1 Jun 2014 22:21:47 +0200 +Subject: [PATCH] src/df.c:get_dev: Initialize variable v to NULL to avoid + warning + +Gcc 4.9.0 complained that v may have been used prior to +initialization. To avoid this, initialize to NULL. + +Signed-off-by: Ben Walton +--- + src/df.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/df.c b/src/df.c +index 969670e..2431626 100644 +--- a/src/df.c ++++ b/src/df.c +@@ -921,7 +921,7 @@ get_dev (char const *disk, char const *mount_point, char const* file, + char buf[LONGEST_HUMAN_READABLE + 2]; + char *cell; + +- struct field_values_t *v; ++ struct field_values_t *v = NULL; + switch (columns[col]->field_type) + { + case BLOCK_FLD: +@@ -931,7 +931,7 @@ get_dev (char const *disk, char const *mount_point, char const* file, + v = &inode_values; + break; + case OTHER_FLD: +- v = NULL; ++ /* Rely on the NULL initialization. */ + break; + default: + assert (!"bad field_type"); +-- +1.8.4.1 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sun Jun 1 23:08:15 2014 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 1 Jun 2014 21:08:15 +0000 Subject: SF.net SVN: gar:[23750] csw/mgar/gar/v2/go Message-ID: <3ghXDY63hyzkj@mail.opencsw.org> Revision: 23750 http://sourceforge.net/p/gar/code/23750 Author: wahwah Date: 2014-06-01 21:08:13 +0000 (Sun, 01 Jun 2014) Log Message: ----------- Automated catalog integrations: work in progress A basic pipeline is set up. There is no logic yet. Modified Paths: -------------- csw/mgar/gar/v2/go/Makefile csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go Added Paths: ----------- csw/mgar/gar/v2/go/src/opencsw/mantis/ csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go Modified: csw/mgar/gar/v2/go/Makefile =================================================================== --- csw/mgar/gar/v2/go/Makefile 2014-06-01 20:24:40 UTC (rev 23749) +++ csw/mgar/gar/v2/go/Makefile 2014-06-01 21:08:13 UTC (rev 23750) @@ -8,8 +8,6 @@ BINARIES += bin/gen-catalog-index BINARIES += bin/promote-packages -LIBS = diskformat - all: bin $(BINARIES) bin: @@ -19,34 +17,23 @@ mkdir -p opencsw bin/catalog-release-to-disk: src/catalog-release-to-disk/catalog-release-to-disk.o src/opencsw/diskformat/diskformat.o - gccgo -g -o $@ $? + gccgo -g -o $@ $^ bin/gen-catalog-index: src/gen-catalog-index/gen-catalog-index.o src/opencsw/diskformat/diskformat.o - gccgo -g -o $@ $? + gccgo -g -o $@ $^ bin/crashtest: src/crashtest/crashtest.go opencsw/diskformat.o - gccgo -g -o $@ $? + gccgo -g -o $@ $^ -bin/promote-packages: src/promote-packages/promote-packages.go opencsw/diskformat.o - gccgo -g -o $@ $? +bin/promote-packages: src/promote-packages/promote-packages.go opencsw/diskformat.o opencsw/mantis.o + gccgo -g -o $@ $^ opencsw/diskformat.o: opencsw src/opencsw/diskformat/diskformat.o - # Not portable to Linux. But we can't just use 'install' on Solaris. ginstall -m 755 src/opencsw/diskformat/diskformat.o opencsw/diskformat.o -# This is a poor hack, but it gets it to compile. -src/catalog-release-to-disk/catalog-release-to-disk.o: src/opencsw/diskformat/diskformat.o opencsw/diskformat.o - gccgo -o $@ -g -c src/catalog-release-to-disk/catalog-release-to-disk.go +opencsw/mantis.o: opencsw src/opencsw/mantis/mantis.o + ginstall -m 755 src/opencsw/mantis/mantis.o opencsw/mantis.o -src/gen-catalog-index/gen-catalog-index.o: src/opencsw/diskformat/diskformat.o opencsw/diskformat.o - gccgo -o $@ -g -c src/gen-catalog-index/gen-catalog-index.go - -src/promote-packages/promote-packages.o: src/opencsw/diskformat/diskformat.o opencsw/diskformat.o - gccgo -o $@ -g -c src/promote-packages/promote-packages.go - -src/crashtest/crashtest.o: src/opencsw/diskformat/diskformat.o opencsw/diskformat.o - gccgo -o $@ -g -c src/crashtest/crashtest.go - %.o: %.go gccgo -o $@ -g -c $< Modified: csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go =================================================================== --- csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go 2014-06-01 20:24:40 UTC (rev 23749) +++ csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go 2014-06-01 21:08:13 UTC (rev 23750) @@ -92,7 +92,7 @@ // A line in the catalog file; plus the extra description field. // As described in the manual: -// http://www.opencsw.org/manual/for-maintainers/catalog-format.html +// http://www.opencsw.org/manual/for-maintainers/catalog-format.html type Package struct { Catalogname string `json:"catalogname"` Version string `json:"version"` @@ -133,6 +133,30 @@ Pkgs []Package } +// Extra information about a package +type PackageExtra struct { + Basename string `json:"basename"` + Bundle string `json:"bundle"` + Catalogname string `json:"catalogname"` + Category string `json:"category"` + Deps []string `json:"deps"` + I_deps []string `json:"i_deps"` + Inserted_by string `json:"inserted_by"` // decode? + Inserted_on string `json:"inserted_on"` // decode? + Maintainer string `json:"maintainer"` + Md5_sum string `json:"md5_sum"` + Mtime string `json:"mtime"` // decode? + Pkgname string `json:"pkgname"` + Size int `json:"size"` + Version string `json:"version"` +} + +// I'm not sure if this is a good idea +type CatalogExtra struct { + Spec CatalogSpec + PkgsExtra []PackageExtra +} + const ( symlink = iota hardlink @@ -211,7 +235,7 @@ catspecs := make([]CatalogSpec, 0) dec := json.NewDecoder(resp.Body) if err := dec.Decode(&catspecs); err != nil { - log.Println("Failed to decode JSON from", url) + log.Println("Failed to decode JSON from", url, ":", err) return nil, err } @@ -253,6 +277,30 @@ return cws, nil } +func FetchCatalogExtra(cs CatalogSpec) (CatalogExtra, error) { + url := fmt.Sprintf("%s/catalogs/%s/%s/%s/timing/", + PkgdbUrl, cs.Catrel, cs.Arch, cs.Osrel) + log.Println("Making a request to", url) + resp, err := http.Get(url) + if err != nil { + log.Fatalln("Could not retrieve", url, ":", err) + return CatalogExtra{}, err + } + defer resp.Body.Close() + + var pkgs []PackageExtra + dec := json.NewDecoder(resp.Body) + if err := dec.Decode(&pkgs); err != nil { + log.Println("Failed to decode JSON output from", url, ":", err) + return CatalogExtra{}, err + } + + log.Println("Retrieved timing/extra info for", cs, "with", len(pkgs), "packages") + + cws := CatalogExtra{cs, pkgs} + return cws, nil +} + func FilterCatspecs(all_catspecs []CatalogSpec, catrel string) []CatalogSpec { catspecs := make([]CatalogSpec, 0) for _, catspec := range all_catspecs { @@ -788,7 +836,7 @@ all_catspecs, err := GetCatalogSpecsFromDatabase() if err != nil { - log.Fatalln("Could not get the catalog spec list") + log.Fatalln("Could not get the catalog spec list:", err) } // Because of memory constraints, we're only processing 1 catalog in one run catspecs := FilterCatspecs(all_catspecs, catrel) Added: csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go =================================================================== --- csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go (rev 0) +++ csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go 2014-06-01 21:08:13 UTC (rev 23750) @@ -0,0 +1,46 @@ +// Package mantis provides Mantis related code, allowing e.g. to look up +// package bugs. +package mantis + +import ( + "net/http" + "encoding/json" + "log" + +) + +// Matches the data structure in http://www.opencsw.org/buglist/json +// Maybe this should go into a separate package, like opencsw/mantis. +type Bug struct { + bug_assigned_to string `json:"bug_assigned_to"` + bug_assigned_to_fullname string `json:"bug_assigned_to_fullname"` + bug_id string `json:"bug_id"` + bug_last_updated string `json:"bug_last_updated"` + bug_pkg_catalogname string `json:"bug_pkg_catalogname"` + bug_severity string `json:"bug_severity"` + bug_severity_name string `json:"bug_severity_name"` + bug_status string `json:"bug_status"` + bug_status_name string `json:"bug_status_name"` + bug_summary string `json:"bug_summary"` + maintainer_fullname string `json:"maintainer_fullname"` + maintainer_name string `json:"maintainer_name"` + maintainer_status string `json:"maintainer_status"` +} + +// Fetches all bugs from Mantis. +func FetchBugs() ([]Bug, error) { + url := "http://www.opencsw.org/buglist/json" + resp, err := http.Get(url) + if err != nil { + return nil, err + } + defer resp.Body.Close() + + bugs := make([]Bug, 0) + dec := json.NewDecoder(resp.Body) + if err := dec.Decode(&bugs); err != nil { + return nil, err + } + log.Println("Fetched", len(bugs), "bugs from", url) + return bugs, nil +} Modified: csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go =================================================================== --- csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go 2014-06-01 20:24:40 UTC (rev 23749) +++ csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go 2014-06-01 21:08:13 UTC (rev 23750) @@ -6,10 +6,12 @@ import ( // "bufio" + "fmt" "flag" "log" // "os" "opencsw/diskformat" + "opencsw/mantis" ) // Command line flags @@ -36,6 +38,15 @@ toCatspec diskformat.CatalogSpec } +type CatalogWithSpecTransition struct { + fromCat diskformat.CatalogExtra + toCat diskformat.CatalogExtra +} + +type IntegrationResult struct { + noidea string +} + func groupByOsrelAndArch(cs []diskformat.CatalogSpec) map[diskformat.CatalogSpec]diskformat.CatalogSpec { fromIndexed := make(map[diskformat.CatalogSpec]diskformat.CatalogSpec) for _, f := range cs { @@ -61,18 +72,18 @@ return transitions } -func fetchTwo(transition CatalogSpecTransition) (f, t diskformat.CatalogWithSpec) { - chf := make(chan diskformat.CatalogWithSpec) - go func(ch chan diskformat.CatalogWithSpec) { - fromCat, err := diskformat.GetCatalogWithSpec(transition.fromCatspec) +func fetchTwo(transition CatalogSpecTransition) (f, t diskformat.CatalogExtra) { + chf := make(chan diskformat.CatalogExtra) + go func(ch chan diskformat.CatalogExtra) { + fromCat, err := diskformat.FetchCatalogExtra(transition.fromCatspec) if err != nil { log.Fatalln("Could not fetch", fromCat, "error:", err) } ch <- fromCat }(chf) - cht := make(chan diskformat.CatalogWithSpec) - go func(ch chan diskformat.CatalogWithSpec) { - toCat, err := diskformat.GetCatalogWithSpec(transition.toCatspec) + cht := make(chan diskformat.CatalogExtra) + go func(ch chan diskformat.CatalogExtra) { + toCat, err := diskformat.FetchCatalogExtra(transition.toCatspec) if err != nil { log.Fatalln("Could not fetch", toCat, "error:", err) } @@ -92,20 +103,93 @@ // Package addition and removal times are not taken from the catalog, but // from the times when we saw packages appear and/or disappear. // How to test these rules? What should be the output of this function? + log.Println("Example package:", fromCat.PkgsExtra[0]) + log.Println("Example package:", toCat.PkgsExtra[0]) + + // Mantis: + // http://www.opencsw.org/buglist/json } -func main() { - flag.Parse() - log.Println("Program start") +func transitions() []CatalogSpecTransition { all_catspecs, err := diskformat.GetCatalogSpecsFromDatabase() if err != nil { log.Fatalln("Could not get the catalog spec list") } from_catspecs := diskformat.FilterCatspecs(all_catspecs, from_catrel_flag) to_catspecs := diskformat.FilterCatspecs(all_catspecs, to_catrel_flag) - transitions := matchCatspecs(from_catspecs, to_catspecs) - for _, transition := range transitions { - Integrate(transition) + return matchCatspecs(from_catspecs, to_catspecs) +} + +// The idea of creating a pipeline in this fashion is that a function call +// generates a channel and closes it after all data are written to it. +// The closure inside this function looks weird, but its scope is the same as +// the scope of the function, so it quickly becomes natural to read, and keeps +// related pieces of code together. + +func pipeStage1() <-chan CatalogSpecTransition { + out := make(chan CatalogSpecTransition) + go func() { + for _, t := range transitions() { + out <- t + } + close(out) + }() + return out +} + +func pipeStage2(in <-chan CatalogSpecTransition) <-chan CatalogWithSpecTransition { + out := make(chan CatalogWithSpecTransition) + go func() { + for t := range in { + fromCat, toCat := fetchTwo(t) + out <-CatalogWithSpecTransition{fromCat, toCat} + } + close(out) + }() + return out +} + +// Continue from here: write the 3rd stage which just prints the results. +func pipeStage3(in <-chan CatalogWithSpecTransition) <-chan IntegrationResult { + out := make(chan IntegrationResult) + go func() { + for t := range in { + msg := fmt.Sprintf("Processing our fetched data: %+v -> %+v", + t.fromCat.Spec, t.toCat.Spec) + out <-IntegrationResult{msg} + } + close(out) + }() + return out +} + +func mantisChan() <-chan []mantis.Bug { + mch := make(chan []mantis.Bug) + go func(ch chan []mantis.Bug) { + log.Println("Fetching bugs from mantis") + bugs, err := mantis.FetchBugs() + if err != nil { + log.Fatalln("Fetching bugs failed.") + } + log.Println("Fetched", len(bugs), "bugs from Mantis") + ch <-bugs + close(ch) + }(mch) + return mch +} + +func main() { + flag.Parse() + log.Println("Program start") + + mch := mantisChan() + tch := pipeStage1() + cch := pipeStage2(tch) + rch := pipeStage3(cch) + + for r := range rch { + log.Println("Result:", r) } + <-mch } 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 2 10:16:06 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 2 Jun 2014 08:16:06 +0000 Subject: SF.net SVN: gar:[23751] csw/mgar/pkg/cups/trunk Message-ID: <3ghq3319nNz188@mail.opencsw.org> Revision: 23751 http://sourceforge.net/p/gar/code/23751 Author: cgrzemba Date: 2014-06-02 08:16:01 +0000 (Mon, 02 Jun 2014) Log Message: ----------- cups/trunk: revive two patches Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile csw/mgar/pkg/cups/trunk/files/0002-use-posix-shell-in-install.sh.patch csw/mgar/pkg/cups/trunk/files/0007-Solaris-zone-support-in-init-script.patch Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2014-06-01 21:08:13 UTC (rev 23750) +++ csw/mgar/pkg/cups/trunk/Makefile 2014-06-02 08:16:01 UTC (rev 23751) @@ -50,12 +50,11 @@ DISTFILES += CSWcupsclient.README PATCHFILES += 0001-cswcups-for-the-service-name.patch -# PATCHFILES += 0002-use-posix-shell-in-install.sh.patch -# PATCHFILES = 0001-cswcups-for-service-name.patch +PATCHFILES += 0002-use-posix-shell-in-install.sh.patch # PATCHFILES += 0002-Adding-the-refcount-member-to-mime_type_t.patch # PATCHFILES += 0003-Reference-counting-for-printers-only.patch # PATCHFILES += 0006-Fail-compilation-if-no-SSL-impl-chosen.patch -# PATCHFILES += 0007-Solaris-zone-support-in-init-script.patch +PATCHFILES += 0007-Solaris-zone-support-in-init-script.patch # PATCHFILES += CFLAGS-leaking-to-C++-compiler.patch # PATCHFILES += 0008-Adding-CFLAGS-and-CXXFLAGS-to-linker-calls.patch # PATCHFILES += 0009-Add-workaround-for-krb5-config-outputting-CFLAGS.patch Modified: csw/mgar/pkg/cups/trunk/files/0002-use-posix-shell-in-install.sh.patch =================================================================== --- csw/mgar/pkg/cups/trunk/files/0002-use-posix-shell-in-install.sh.patch 2014-06-01 21:08:13 UTC (rev 23750) +++ csw/mgar/pkg/cups/trunk/files/0002-use-posix-shell-in-install.sh.patch 2014-06-02 08:16:01 UTC (rev 23751) @@ -15,7 +15,7 @@ -#!/bin/sh +#!/usr/xpg4/bin/sh # - # "$Id: install-sh 10317 2012-03-01 00:05:55Z mike $" + # "$Id: install-sh 10496 2012-05-22 21:38:54Z mike $" # -- 1.7.10.3 Modified: csw/mgar/pkg/cups/trunk/files/0007-Solaris-zone-support-in-init-script.patch =================================================================== --- csw/mgar/pkg/cups/trunk/files/0007-Solaris-zone-support-in-init-script.patch 2014-06-01 21:08:13 UTC (rev 23750) +++ csw/mgar/pkg/cups/trunk/files/0007-Solaris-zone-support-in-init-script.patch 2014-06-02 08:16:01 UTC (rev 23751) @@ -7,10 +7,10 @@ init/cups.sh.in | 12 +++++++++++- 1 files changed, 11 insertions(+), 1 deletions(-) -diff --git a/init/cups.sh.in b/init/cups.sh.in +diff --git a/scheduler/cups.sh.in b/scheduler/cups.sh.in index 2ff418c..d714b19 100755 ---- a/init/cups.sh.in -+++ b/init/cups.sh.in +--- a/scheduler/cups.sh.in ++++ b/scheduler/cups.sh.in @@ -148,7 +148,7 @@ case "`uname`" in HP-UX* | AIX* | SINIX*) pid=`ps -e | awk '{if (match($4, ".*/cupsd$") || $4 == "cupsd") print $1}'` 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 2 10:20:34 2014 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Mon, 2 Jun 2014 08:20:34 +0000 Subject: SF.net SVN: gar:[23752] csw/mgar/pkg/apache2/trunk Message-ID: <3ghq8864f4z1CT@mail.opencsw.org> Revision: 23752 http://sourceforge.net/p/gar/code/23752 Author: dmichelsen Date: 2014-06-02 08:20:32 +0000 (Mon, 02 Jun 2014) Log Message: ----------- apache2/trunk: Update to 2.2.27 Modified Paths: -------------- csw/mgar/pkg/apache2/trunk/Makefile csw/mgar/pkg/apache2/trunk/checksums Modified: csw/mgar/pkg/apache2/trunk/Makefile =================================================================== --- csw/mgar/pkg/apache2/trunk/Makefile 2014-06-02 08:16:01 UTC (rev 23751) +++ csw/mgar/pkg/apache2/trunk/Makefile 2014-06-02 08:20:32 UTC (rev 23752) @@ -2,7 +2,7 @@ # ! Move ap2xs into devel package NAME = httpd -VERSION = 2.2.26 +VERSION = 2.2.27 GARTYPE = v2 DESCRIPTION = A high performance HTTP server. @@ -138,6 +138,9 @@ CHECKPKG_OVERRIDES_CSWap2worker += catalogname-does-not-match-pkgname|pkgname=CSWap2worker|catalogname=ap2_worker|expected-catalogname=ap2worker CHECKPKG_OVERRIDES_CSWap2prefork += catalogname-does-not-match-pkgname|pkgname=CSWap2prefork|catalogname=ap2_prefork|expected-catalogname=ap2prefork +# This is ok as etc/envvars is preserved and packaged as envvars.CSW +CHECKPKG_OVERRIDES_CSWapache2 += file-needed-but-no-package-satisfies-it|/opt/csw/apache2/etc/envvars|CSWapache2|contains|'/opt/csw/apache2/sbin/envvars'|(a|symlink)|which|needs|the|target|file:|'/opt/csw/apache2/etc/envvars'. + # The SMF support: you don't need to specify cswinitsmf any more. You need to # make sure the the /etc/opt/csw/init.d/cswapache file gets installed during # the post-install stage, and add "INITSMF = /etc/opt/csw/init.d/cswapache" to Modified: csw/mgar/pkg/apache2/trunk/checksums =================================================================== --- csw/mgar/pkg/apache2/trunk/checksums 2014-06-02 08:16:01 UTC (rev 23751) +++ csw/mgar/pkg/apache2/trunk/checksums 2014-06-02 08:20:32 UTC (rev 23752) @@ -1 +1 @@ -8f580ea4f8476d5fb131b772beca33b2 httpd-2.2.26.tar.gz +148eb08e731916a43a33a6ffa25f17c0 httpd-2.2.27.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 2 10:38:33 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 2 Jun 2014 08:38:33 +0000 Subject: SF.net SVN: gar:[23753] csw/mgar/pkg/cups/trunk/Makefile Message-ID: <3ghqXv4HR7z1HH@mail.opencsw.org> Revision: 23753 http://sourceforge.net/p/gar/code/23753 Author: cgrzemba Date: 2014-06-02 08:38:31 +0000 (Mon, 02 Jun 2014) Log Message: ----------- cups/trunk: update runtime dependency Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2014-06-02 08:20:32 UTC (rev 23752) +++ csw/mgar/pkg/cups/trunk/Makefile 2014-06-02 08:38:31 UTC (rev 23753) @@ -220,7 +220,7 @@ PKGFILES_CSWlibcupsimage2 += $(call pkgfiles_lib,libcupsimage.so.2) RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibjpeg7 RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibcups2 -RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibtiff3 +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibtiff5 RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibpng15-15 PACKAGES += CSWlibcupsmime1 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 2 14:28:17 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 2 Jun 2014 12:28:17 +0000 Subject: SF.net SVN: gar:[23754] csw/mgar/pkg/cups/trunk/Makefile Message-ID: <3ghwf43qVLzMt@mail.opencsw.org> Revision: 23754 http://sourceforge.net/p/gar/code/23754 Author: cgrzemba Date: 2014-06-02 12:28:05 +0000 (Mon, 02 Jun 2014) Log Message: ----------- cups/trunk: update arch dependend runtime dependencies Modified Paths: -------------- csw/mgar/pkg/cups/trunk/Makefile Modified: csw/mgar/pkg/cups/trunk/Makefile =================================================================== --- csw/mgar/pkg/cups/trunk/Makefile 2014-06-02 08:38:31 UTC (rev 23753) +++ csw/mgar/pkg/cups/trunk/Makefile 2014-06-02 12:28:05 UTC (rev 23754) @@ -90,13 +90,21 @@ ARCHALL_CSWcups = 1 RUNTIME_DEP_PKGS_CSWcups += CSWcupsd RUNTIME_DEP_PKGS_CSWcups += CSWcupsclient -RUNTIME_DEP_PKGS_CSWcupsd += CSWlibgnutls28 CHECKPKG_OVERRIDES_CSWcups += surplus-dependency|CSWcupsclient PACKAGES += CSWphp5-cups SPKG_DESC_CSWphp5-cups = PHP5 bindings for CUPS PKGFILES_CSWphp5-cups += $(prefix)/php5/.* RUNTIME_DEP_PKGS_CSWphp5-cups += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibz1 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibk5crypto3 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWphp5-cups_sparc += CSWlibgcrypt20 +RUNTIME_DEP_PKGS_CSWphp5-cups += $(RUNTIME_DEP_PKGS_CSWphp5-cups_$(GARCH)) # lib is located in /opt/csw/php5, not in csw standard bin path CHECKPKG_OVERRIDES_CSWphp5-cups += 64-bit-binaries-missing @@ -128,6 +136,7 @@ PKGFILES_CSWcupsd += $(sysconfdir)/cups/snmp.* PKGFILES_CSWcupsd += $(sysconfdir)/cups/ssl.* PKGFILES_CSWcupsd += $(sysconfdir)/init\.d/.* +RUNTIME_DEP_PKGS_CSWcupsd += CSWlibgnutls28 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcups2 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupscgi1 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsdriver1 @@ -136,6 +145,8 @@ RUNTIME_DEP_PKGS_CSWcupsd += CSWlibcupsppdc1 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibdbus1-3 RUNTIME_DEP_PKGS_CSWcupsd_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWcupsd_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWcupsd_sparc += CSWlibiconv2 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibkrb5-3 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibslp1 RUNTIME_DEP_PKGS_CSWcupsd += CSWlibldap2-4-2 @@ -169,6 +180,8 @@ RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcups2 RUNTIME_DEP_PKGS_CSWcupsclient += CSWlibcupsimage2 RUNTIME_DEP_PKGS_CSWcupsclient_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWcupsclient_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWcupsclient_sparc += CSWlibiconv2 RUNTIME_DEP_PKGS_CSWcupsclient += $(RUNTIME_DEP_PKGS_CSWcupsclient_$(GARCH)) PACKAGES += CSWcups-dev @@ -203,17 +216,40 @@ RUNTIME_DEP_PKGS_CSWlibcups2 += CSWlibgnutls28 RUNTIME_DEP_PKGS_CSWlibcups2 += CSWlibz1 RUNTIME_DEP_PKGS_CSWlibcups2_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWlibcups2_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibcups2_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcups2_sparc += CSWlibgcrypt20 +RUNTIME_DEP_PKGS_CSWlibcups2_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWlibcups2_sparc += CSWlibk5crypto3 RUNTIME_DEP_PKGS_CSWlibcups2 += $(RUNTIME_DEP_PKGS_CSWlibcups2_$(GARCH)) PACKAGES += CSWlibcupscgi1 SPKG_DESC_CSWlibcupscgi1 = CUPS libraries, libcupscgi.so.1 PKGFILES_CSWlibcupscgi1 += $(call pkgfiles_lib,libcupscgi.so.1) RUNTIME_DEP_PKGS_CSWlibcupscgi1 += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibz1 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibk5crypto3 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWlibcupscgi1_sparc += CSWlibgcrypt20 +RUNTIME_DEP_PKGS_CSWlibcupscgi1 += $(RUNTIME_DEP_PKGS_CSWlibcupscgi1_$(GARCH)) PACKAGES += CSWlibcupsdriver1 SPKG_DESC_CSWlibcupsdriver1 = CUPS libraries, libcupsdriver.so.1 PKGFILES_CSWlibcupsdriver1 += $(call pkgfiles_lib,libcupsdriver.so.1) RUNTIME_DEP_PKGS_CSWlibcupsdriver1 += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibz1 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibk5crypto3 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1_sparc += CSWlibgcrypt20 +RUNTIME_DEP_PKGS_CSWlibcupsdriver1 += $(RUNTIME_DEP_PKGS_CSWlibcupsdriver1_$(GARCH)) PACKAGES += CSWlibcupsimage2 SPKG_DESC_CSWlibcupsimage2 = CUPS libraries, libcupsimage.so.2 @@ -222,17 +258,41 @@ RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibcups2 RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibtiff5 RUNTIME_DEP_PKGS_CSWlibcupsimage2 += CSWlibpng15-15 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibz1 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWlibcupsimage2_sparc += CSWlibk5crypto3 +RUNTIME_DEP_PKGS_CSWlibcupsimage2 += $(RUNTIME_DEP_PKGS_CSWlibcupsimage2_$(GARCH)) PACKAGES += CSWlibcupsmime1 SPKG_DESC_CSWlibcupsmime1 = CUPS libraries, libcupsmime.so.1 PKGFILES_CSWlibcupsmime1 += $(call pkgfiles_lib,libcupsmime.so.1) RUNTIME_DEP_PKGS_CSWlibcupsmime1 += CSWlibcups2 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibz1 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibk5crypto3 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWlibcupsmime1_sparc += CSWlibgcrypt20 +RUNTIME_DEP_PKGS_CSWlibcupsmime1 += $(RUNTIME_DEP_PKGS_CSWlibcupsmime1_$(GARCH)) + PACKAGES += CSWlibcupsppdc1 SPKG_DESC_CSWlibcupsppdc1 = CUPS libraries, libcupsppdc.so.1 PKGFILES_CSWlibcupsppdc1 += $(call pkgfiles_lib,libcupsppdc.so.1) RUNTIME_DEP_PKGS_CSWlibcupsppdc1 += CSWlibcups2 RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibgpg-error0 +RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibz1 +RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibcom-err3 +RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibkrb5-3 +RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibgnutls28 +RUNTIME_DEP_PKGS_CSWlibcupsppdc1_sparc += CSWlibk5crypto3 RUNTIME_DEP_PKGS_CSWlibcupsppdc1 +=$(RUNTIME_DEP_PKGS_CSWlibcupsppdc1_$(GARCH)) # For some reason -norunpath is not used here, investigate later 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 2 18:23:00 2014 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Mon, 2 Jun 2014 16:23:00 +0000 Subject: SF.net SVN: gar:[23755] csw/mgar/pkg/ImageMagick/trunk Message-ID: <3gj1rr3n01zgZ@mail.opencsw.org> Revision: 23755 http://sourceforge.net/p/gar/code/23755 Author: lblume Date: 2014-06-02 16:22:58 +0000 (Mon, 02 Jun 2014) Log Message: ----------- ImageMagick/trunk: Bump to 6.8.9-2 Modified Paths: -------------- csw/mgar/pkg/ImageMagick/trunk/Makefile csw/mgar/pkg/ImageMagick/trunk/checksums Modified: csw/mgar/pkg/ImageMagick/trunk/Makefile =================================================================== --- csw/mgar/pkg/ImageMagick/trunk/Makefile 2014-06-02 12:28:05 UTC (rev 23754) +++ csw/mgar/pkg/ImageMagick/trunk/Makefile 2014-06-02 16:22:58 UTC (rev 23755) @@ -1,7 +1,7 @@ NAME = imagemagick VERSION = 6.8.9 GARSUBREV = 2 -BETAREV = beta20140517 +#BETAREV = beta20140518 GARTYPE = v2 DESCRIPTION = A comprehensive package supporting automated and interative manipulation of images @@ -12,9 +12,11 @@ PhotoCD, and GIF. endef -MASTER_SITES = ftp://ftp.imagemagick.org/pub/ImageMagick/beta/ +MASTER_SITES = ftp://ftp.imagemagick.org/pub/ImageMagick/ +#MASTER_SITES = ftp://ftp.imagemagick.org/pub/ImageMagick/beta/ DISTNAME = ImageMagick-$(VERSION)-$(GARSUBREV) -DISTFILES = $(DISTNAME)~$(BETAREV).tar.xz +DISTFILES = $(DISTNAME).tar.xz +#DISTFILES = $(DISTNAME)~$(BETAREV).tar.xz DISTFILES += map.ImageMagick # libc 1.22.5 for gnutls Modified: csw/mgar/pkg/ImageMagick/trunk/checksums =================================================================== --- csw/mgar/pkg/ImageMagick/trunk/checksums 2014-06-02 12:28:05 UTC (rev 23754) +++ csw/mgar/pkg/ImageMagick/trunk/checksums 2014-06-02 16:22:58 UTC (rev 23755) @@ -1 +1 @@ -ce58e16225382f55ee5b9ca53791f0b7 ImageMagick-6.8.9-2~beta20140517.tar.xz +c4bbc23fc209e7d43628d28296616cac ImageMagick-6.8.9-2.tar.xz 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 3 10:16:55 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 3 Jun 2014 08:16:55 +0000 Subject: SF.net SVN: gar:[23756] csw/mgar/pkg/389-ds-base/branches/vers1.3.2 Message-ID: <3gjR1c2gb1z5F@mail.opencsw.org> Revision: 23756 http://sourceforge.net/p/gar/code/23756 Author: cgrzemba Date: 2014-06-03 08:16:48 +0000 (Tue, 03 Jun 2014) Log Message: ----------- 389-ds-base/branches/vers1.3.2: update minor version, remove patches for fixed problems in upstream Modified Paths: -------------- csw/mgar/pkg/389-ds-base/branches/vers1.3.2/Makefile csw/mgar/pkg/389-ds-base/branches/vers1.3.2/checksums Modified: csw/mgar/pkg/389-ds-base/branches/vers1.3.2/Makefile =================================================================== --- csw/mgar/pkg/389-ds-base/branches/vers1.3.2/Makefile 2014-06-02 16:22:58 UTC (rev 23755) +++ csw/mgar/pkg/389-ds-base/branches/vers1.3.2/Makefile 2014-06-03 08:16:48 UTC (rev 23756) @@ -2,7 +2,7 @@ # TODO (release-critical prefixed with !, non release-critical with *) # NAME = 389-ds-base -VERSION = 1.3.2.14 +VERSION = 1.3.2.17 GARTYPE = v2 DESCRIPTION = The enterprise-class Open Source LDAP server @@ -53,15 +53,15 @@ # needed at least on GCC4 PATCHFILES += 0015-use-PL_strcasestr-acllas.c.patch PATCHFILES_GCC4 += 0010-no-Crun-Cstd-lib-config.ac.patch -PATCHFILES += 0016-fix-bigendian-utf8compare.c -PATCHFILES += 0017-disable-asm-for-Sparc.patch +# PATCHFILES += 0016-fix-bigendian-utf8compare.c +# PATCHFILES += 0017-disable-asm-for-Sparc.patch # probably only with openLDAP PATCHFILES += 0018-correct-64bit-ptr-bind.c PATCHFILES += 0021-include-lber.h-slapi-plugin.h.patch PATCHFILES += 0022-adjust-mozldap-version-sasl_io.c.patch PATCHFILES += 0024-strndup.patch -PATCHFILES += 0025-posix-winsync.rawentry.patch -PATCHFILES += 0030-reconstruct-memberuid-generation-task.patch +# PATCHFILES += 0025-posix-winsync.rawentry.patch +# PATCHFILES += 0030-reconstruct-memberuid-generation-task.patch PATCHFILES += $(PATCHFILES_$(GARCOMPILER)) BUILD_DEP_PKGS += CSWautoconf Modified: csw/mgar/pkg/389-ds-base/branches/vers1.3.2/checksums =================================================================== --- csw/mgar/pkg/389-ds-base/branches/vers1.3.2/checksums 2014-06-02 16:22:58 UTC (rev 23755) +++ csw/mgar/pkg/389-ds-base/branches/vers1.3.2/checksums 2014-06-03 08:16:48 UTC (rev 23756) @@ -1 +1 @@ -a33110a64020aa9c830ef5a0f00c8058 389-ds-base-1.3.2.14.tar.bz2 +dc8bcbfb823dc8829947382e60b7a508 389-ds-base-1.3.2.17.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 Tue Jun 3 11:18:56 2014 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Tue, 3 Jun 2014 09:18:56 +0000 Subject: SF.net SVN: gar:[23757] csw/mgar/pkg/ImageMagick/trunk/Makefile Message-ID: <3gjSP34fnQzD7@mail.opencsw.org> Revision: 23757 http://sourceforge.net/p/gar/code/23757 Author: lblume Date: 2014-06-03 09:18:54 +0000 (Tue, 03 Jun 2014) Log Message: ----------- ImageMagick/trunk: Adjust for the change of soname number Modified Paths: -------------- csw/mgar/pkg/ImageMagick/trunk/Makefile Modified: csw/mgar/pkg/ImageMagick/trunk/Makefile =================================================================== --- csw/mgar/pkg/ImageMagick/trunk/Makefile 2014-06-03 08:16:48 UTC (rev 23756) +++ csw/mgar/pkg/ImageMagick/trunk/Makefile 2014-06-03 09:18:54 UTC (rev 23757) @@ -75,16 +75,15 @@ RUNTIME_DEP_PKGS_CSWlibmagickwand6q16hdri2 += CSWlibgcc-s1 OBSOLETED_BY_CSWlibmagickwand6q16hdri2 += CSWlibmagickwand6q16hdri1 -PACKAGES += CSWlibmagick++6q16hdri3 -CATALOGNAME_CSWlibmagick++6q16hdri3 = libmagick++6q16hdri3 -PKGFILES_CSWlibmagick++6q16hdri3 += $(call baseisadirs,$(libdir),libMagick\+\+-6\.Q16HDRI\.so\.3\.0\.0) -PKGFILES_CSWlibmagick++6q16hdri3 += $(call baseisadirs,$(libdir),libMagick\+\+-6\.Q16HDRI\.so\.3(\.\d+)*) -SPKG_DESC_CSWlibmagick++6q16hdri3 += Library from ImageMagick, libMagick++-6.Q16HDRI.so.3 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibmagickcore6q16hdri2 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibmagickwand6q16hdri2 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibgcc-s1 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibstdc++6 -OBSOLETED_BY_CSWlibmagick++6q16hdri3 += CSWlibmagick++6q16hdri2 +PACKAGES += CSWlibmagick++6q16hdri4 +CATALOGNAME_CSWlibmagick++6q16hdri4 = libmagick++6q16hdri4 +PKGFILES_CSWlibmagick++6q16hdri4 += $(call baseisadirs,$(libdir),libMagick\+\+-6\.Q16HDRI\.so\.4\.0\.0) +PKGFILES_CSWlibmagick++6q16hdri4 += $(call baseisadirs,$(libdir),libMagick\+\+-6\.Q16HDRI\.so\.4(\.\d+)*) +SPKG_DESC_CSWlibmagick++6q16hdri4 += Library from ImageMagick, libMagick++-6.Q16HDRI.so.4 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibmagickcore6q16hdri2 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibmagickwand6q16hdri2 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibgcc-s1 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibstdc++6 PACKAGES += CSWimagemagick-dev SPKG_DESC_CSWimagemagick-dev = Development files for ImageMagick libraries @@ -95,7 +94,7 @@ RUNTIME_DEP_PKGS_CSWimagemagick-dev += CSWimagemagick RUNTIME_DEP_PKGS_CSWimagemagick-dev += CSWlibmagickcore6q16hdri2 RUNTIME_DEP_PKGS_CSWimagemagick-dev += CSWlibmagickwand6q16hdri2 -RUNTIME_DEP_PKGS_CSWimagemagick-dev += CSWlibmagick++6q16hdri3 +RUNTIME_DEP_PKGS_CSWimagemagick-dev += CSWlibmagick++6q16hdri4 RUNTIME_DEP_PKGS_CSWimagemagick-dev += CSWperl PACKAGES += CSWimagemagick @@ -160,17 +159,17 @@ RUNTIME_DEP_PKGS_CSWimagemagick += CSWlibgdk-pixbuf2-0-0 RUNTIME_DEP_PKGS_CSWimagemagick += CSWlibgio2-0-0 RUNTIME_DEP_PKGS_CSWimagemagick += CSWlibstdc++6 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibltdl7 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibbz2-1-0 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibz1 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibintl8 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibfftw3-3 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibfreetype6 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWliblcms2-2 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWliblqr1-0 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibfontconfig1 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibgomp1 -RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri3 += CSWlibglib2-0-0 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibltdl7 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibbz2-1-0 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibz1 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibintl8 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibfftw3-3 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibfreetype6 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWliblcms2-2 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWliblqr1-0 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibfontconfig1 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibgomp1 +RUNTIME_DEP_PKGS_CSWlibmagick++6q16hdri4 += CSWlibglib2-0-0 endif ### This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From idogan23 at users.sourceforge.net Wed Jun 4 10:21:57 2014 From: idogan23 at users.sourceforge.net (idogan23 at users.sourceforge.net) Date: Wed, 4 Jun 2014 08:21:57 +0000 Subject: SF.net SVN: gar:[23758] csw/mgar/pkg/mule/trunk Message-ID: <3gk34y5DfMz1Gk@mail.opencsw.org> Revision: 23758 http://sourceforge.net/p/gar/code/23758 Author: idogan23 Date: 2014-06-04 08:21:56 +0000 (Wed, 04 Jun 2014) Log Message: ----------- mule: bump version to 3.5.0 Modified Paths: -------------- csw/mgar/pkg/mule/trunk/Makefile csw/mgar/pkg/mule/trunk/checksums Modified: csw/mgar/pkg/mule/trunk/Makefile =================================================================== --- csw/mgar/pkg/mule/trunk/Makefile 2014-06-03 09:18:54 UTC (rev 23757) +++ csw/mgar/pkg/mule/trunk/Makefile 2014-06-04 08:21:56 UTC (rev 23758) @@ -1,5 +1,5 @@ NAME = mule -VERSION = 3.2.1 +VERSION = 3.5.0 GARTYPE = v2 DESCRIPTION = Java based lightweight enterprise service bus @@ -49,7 +49,7 @@ USERGROUP = /etc/opt/csw/pkg/CSWmule/cswusergroup PROTOTYPE_MODIFIERS = mule_ugfiles -MULE_UGFILES = /var/opt/csw/mule/logs /var/opt/csw/mule/pid +MULE_UGFILES = /var/opt/csw/mule/logs /var/opt/csw/mule/pid /opt/csw/mule PROTOTYPE_FILES_mule_ugfiles = $(MULE_UGFILES) PROTOTYPE_USER_mule_ugfiles = mule PROTOTYPE_GROUP_mule_ugfiles = mule Modified: csw/mgar/pkg/mule/trunk/checksums =================================================================== --- csw/mgar/pkg/mule/trunk/checksums 2014-06-03 09:18:54 UTC (rev 23757) +++ csw/mgar/pkg/mule/trunk/checksums 2014-06-04 08:21:56 UTC (rev 23758) @@ -1 +1 @@ -10907926513d4b444f353c1115fd7dd2 mule-standalone-3.2.1.tar.gz +4a94356f7401ac8be30a992a414ca9b9 mule-standalone-3.5.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From slowfranklin at users.sourceforge.net Wed Jun 4 17:56:41 2014 From: slowfranklin at users.sourceforge.net (slowfranklin at users.sourceforge.net) Date: Wed, 4 Jun 2014 15:56:41 +0000 Subject: SF.net SVN: gar:[23759] csw/mgar/pkg/tracker/trunk Message-ID: <3gkF9Y4n6SzFh@mail.opencsw.org> Revision: 23759 http://sourceforge.net/p/gar/code/23759 Author: slowfranklin Date: 2014-06-04 15:56:40 +0000 (Wed, 04 Jun 2014) Log Message: ----------- tracker/trunk: Add nie:mimeType and nfo:fileName to the SQLite indexes Modified Paths: -------------- csw/mgar/pkg/tracker/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/tracker/trunk/files/0001-Ontology-add-indexes-for-nie-mimeType-and-nfo-fileNa.patch Modified: csw/mgar/pkg/tracker/trunk/Makefile =================================================================== --- csw/mgar/pkg/tracker/trunk/Makefile 2014-06-04 08:21:56 UTC (rev 23758) +++ csw/mgar/pkg/tracker/trunk/Makefile 2014-06-04 15:56:40 UTC (rev 23759) @@ -48,6 +48,8 @@ PATCHFILES += 0003-Replace-uuid_unparse_lower-with-uuid_unparse.patch PATCHFILES += 0004-_XOPEN_SOURCE-hides-non-standard-stuff-__EXTENSIONS_.patch PATCHFILES += 0005-exempi-xmp.h-is-missing-a-stdbool.h-include.patch +PATCHFILES += 0001-Ontology-add-indexes-for-nie-mimeType-and-nfo-fileNa.patch +# will be in 1.0.2: PATCHFILES += 0001-libtracker-common-memory-limits-on-systems-with-larg.patch # Packages Added: csw/mgar/pkg/tracker/trunk/files/0001-Ontology-add-indexes-for-nie-mimeType-and-nfo-fileNa.patch =================================================================== --- csw/mgar/pkg/tracker/trunk/files/0001-Ontology-add-indexes-for-nie-mimeType-and-nfo-fileNa.patch (rev 0) +++ csw/mgar/pkg/tracker/trunk/files/0001-Ontology-add-indexes-for-nie-mimeType-and-nfo-fileNa.patch 2014-06-04 15:56:40 UTC (rev 23759) @@ -0,0 +1,60 @@ +From 5111f7a9bbf0186b3b8375adcabf58853cce381d Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Wed, 4 Jun 2014 17:26:42 +0200 +Subject: [PATCH] Ontology: add indexes for nie:mimeType and nfo:fileName + +Enable indexing for "nie:mimeType" and "nfo:fileName", both are +attributes that will be used in queries generated by Netatalk and +Samba. +--- + data/ontologies/30-nie.ontology | 5 +++-- + data/ontologies/33-nfo.ontology | 3 ++- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/data/ontologies/30-nie.ontology b/data/ontologies/30-nie.ontology +index 317a702..bfc6a87 100644 +--- a/data/ontologies/30-nie.ontology ++++ b/data/ontologies/30-nie.ontology +@@ -10,7 +10,7 @@ + + nie: a tracker:Namespace, tracker:Ontology ; + tracker:prefix "nie" ; +- nao:lastModified "2011-02-08T16:00:00Z" . ++ nao:lastModified "2014-06-03T13:06:00Z" . + + nie:DataObject a rdfs:Class ; + rdfs:label "Data Object" ; +@@ -73,7 +73,8 @@ nie:mimeType a rdf:Property ; + rdfs:comment "File Mime Type" ; + nrl:maxCardinality 1 ; + rdfs:domain nie:InformationElement ; +- rdfs:range xsd:string . ++ rdfs:range xsd:string ; ++ tracker:indexed true . + + nie:byteSize a rdf:Property ; + rdfs:label "Size" ; +diff --git a/data/ontologies/33-nfo.ontology b/data/ontologies/33-nfo.ontology +index ac4155f..0c157fe 100644 +--- a/data/ontologies/33-nfo.ontology ++++ b/data/ontologies/33-nfo.ontology +@@ -12,7 +12,7 @@ + + nfo: a tracker:Namespace, tracker:Ontology ; + tracker:prefix "nfo" ; +- nao:lastModified "2014-01-03T02:14:35Z" . ++ nao:lastModified "2014-06-03T13:05:00Z" . + + nfo:Document a rdfs:Class ; + rdfs:label "Document" ; +@@ -500,6 +500,7 @@ nfo:fileName a rdf:Property ; + nrl:maxCardinality 1 ; + rdfs:domain nfo:FileDataObject ; + rdfs:range xsd:string ; ++ tracker:indexed true ; + tracker:fulltextIndexed true ; + tracker:weight 7 . + +-- +1.9.3 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From slowfranklin at users.sourceforge.net Wed Jun 4 19:19:00 2014 From: slowfranklin at users.sourceforge.net (slowfranklin at users.sourceforge.net) Date: Wed, 4 Jun 2014 17:19:00 +0000 Subject: SF.net SVN: gar:[23760] csw/mgar/pkg/netatalk/trunk Message-ID: <3gkH0t62fYzQ3@mail.opencsw.org> Revision: 23760 http://sourceforge.net/p/gar/code/23760 Author: slowfranklin Date: 2014-06-04 17:18:50 +0000 (Wed, 04 Jun 2014) Log Message: ----------- netatalk/trunk: Update to 3.1.2 and include upstream SPARQL optimisation patches Modified Paths: -------------- csw/mgar/pkg/netatalk/trunk/Makefile csw/mgar/pkg/netatalk/trunk/checksums Added Paths: ----------- csw/mgar/pkg/netatalk/trunk/files/0001-Spotlight-SPARQL-query-optimisations.patch csw/mgar/pkg/netatalk/trunk/files/0002-Spotlight-new-options-for-controlling-query-behaviou.patch Modified: csw/mgar/pkg/netatalk/trunk/Makefile =================================================================== --- csw/mgar/pkg/netatalk/trunk/Makefile 2014-06-04 15:56:40 UTC (rev 23759) +++ csw/mgar/pkg/netatalk/trunk/Makefile 2014-06-04 17:18:50 UTC (rev 23760) @@ -2,7 +2,7 @@ # TODO (release-critical prefixed with !, non release-critical with *) # NAME = netatalk -VERSION = 3.1.1 +VERSION = 3.1.2 GARTYPE = v2 DESCRIPTION = Open Source AFP fileserver @@ -53,10 +53,10 @@ PATCHFILES += 0003-Disable-noinst-binary-fails-to-link-on-SPARC.patch PATCHFILES += 0004-Ensure-gsettings-is-called-from-opt-csw-bin.patch -PATCHFILES += 0001-Upstream-patch-to-make-dbus-optional.patch -PATCHFILES += 0001-Disable-dbus.patch -# will be in 3.1.2: -PATCHFILES += 33dd614058f32bbe3c88734654228d8715f2403e.patch +# PATCHFILES += 0001-Disable-dbus.patch +# will be in 3.1.3: +PATCHFILES += 0001-Spotlight-SPARQL-query-optimisations.patch +PATCHFILES += 0002-Spotlight-new-options-for-controlling-query-behaviou.patch PRESERVECONF += $(sysconfdir)/afp.conf PRESERVECONF += $(sysconfdir)/extmap.conf Modified: csw/mgar/pkg/netatalk/trunk/checksums =================================================================== --- csw/mgar/pkg/netatalk/trunk/checksums 2014-06-04 15:56:40 UTC (rev 23759) +++ csw/mgar/pkg/netatalk/trunk/checksums 2014-06-04 17:18:50 UTC (rev 23760) @@ -1 +1 @@ -3a8e63a52d47c3d10d9ef1c4a7e22923 netatalk-3.1.1.tar.gz +aa981b3b33092300ec1a20518ca05689 netatalk-3.1.2.tar.gz Added: csw/mgar/pkg/netatalk/trunk/files/0001-Spotlight-SPARQL-query-optimisations.patch =================================================================== --- csw/mgar/pkg/netatalk/trunk/files/0001-Spotlight-SPARQL-query-optimisations.patch (rev 0) +++ csw/mgar/pkg/netatalk/trunk/files/0001-Spotlight-SPARQL-query-optimisations.patch 2014-06-04 17:18:50 UTC (rev 23760) @@ -0,0 +1,60 @@ +From feb46544b3ca8dcb52f318d05f14ae7ba1b79ec8 Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Wed, 4 Jun 2014 12:11:40 +0200 +Subject: [PATCH 1/2] Spotlight: SPARQL query optimisations + +Use tracker:uri-is-descendant FILTER instead of regex for filtering +results on the base path of the volume. + +Signed-off-by: Ralph Boehme +--- + NEWS | 4 ++++ + etc/spotlight/slmod_sparql_parser.c | 4 ++-- + etc/spotlight/slmod_sparql_parser.y | 4 ++-- + 3 files changed, 8 insertions(+), 4 deletions(-) + +diff --git a/NEWS b/NEWS +index 6cdb7df..f9c9052 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,3 +1,7 @@ ++Changes in 3.1.3 ++================ ++* UPD: Spotlight: more SPARQL query optimisations ++ + Changes in 3.1.2 + ================ + * FIX: Option "vol dbpath" was broken in 3.1.1 +diff --git a/etc/spotlight/slmod_sparql_parser.c b/etc/spotlight/slmod_sparql_parser.c +index bb06ba7..f70d9ef 100644 +--- a/etc/spotlight/slmod_sparql_parser.c ++++ b/etc/spotlight/slmod_sparql_parser.c +@@ -1450,8 +1450,8 @@ yyreduce: + { + ssp_result = talloc_asprintf(ssp_slq, + "SELECT ?url WHERE " +- "{ ?obj nie:url ?url FILTER(regex(?url, '^file://%s/')) . %s} LIMIT 100", +- ssp_slq->slq_vol->v_path, (yyvsp[(1) - (1)].sval)); ++ "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } LIMIT 100", ++ (yyvsp[(1) - (1)].sval), ssp_slq->slq_vol->v_path); + (yyval.sval) = ssp_result; + } + break; +diff --git a/etc/spotlight/slmod_sparql_parser.y b/etc/spotlight/slmod_sparql_parser.y +index be0b903..0763b39 100644 +--- a/etc/spotlight/slmod_sparql_parser.y ++++ b/etc/spotlight/slmod_sparql_parser.y +@@ -73,8 +73,8 @@ line: + expr { + ssp_result = talloc_asprintf(ssp_slq, + "SELECT ?url WHERE " +- "{ ?obj nie:url ?url FILTER(regex(?url, '^file://%s/')) . %s} LIMIT 100", +- ssp_slq->slq_vol->v_path, $1); ++ "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } LIMIT 100", ++ $1, ssp_slq->slq_vol->v_path); + $$ = ssp_result; + } + ; +-- +1.9.3 + Added: csw/mgar/pkg/netatalk/trunk/files/0002-Spotlight-new-options-for-controlling-query-behaviou.patch =================================================================== --- csw/mgar/pkg/netatalk/trunk/files/0002-Spotlight-new-options-for-controlling-query-behaviou.patch (rev 0) +++ csw/mgar/pkg/netatalk/trunk/files/0002-Spotlight-new-options-for-controlling-query-behaviou.patch 2014-06-04 17:18:50 UTC (rev 23760) @@ -0,0 +1,815 @@ +From 371efee757ed56fd9e2f46b39fae625924d2cfc2 Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Wed, 4 Jun 2014 16:36:58 +0200 +Subject: [PATCH 2/2] Spotlight: new options for controlling query behaviour + +Add three options that allow fine grainted control over the resulting +SPARQL queries: + +"sparql results limit = NUMBER", default is unlimited +Useful for limiting the result set for very large systems + +"spotlight attributes = STRING", useful for limiting queries to +attributes that are indexed, many are not. + +"spotlight expr = BOOLEAN", default: yes, useful for disabling the use +of complex queries that will take too long to complete and hang Tracker. + +Signed-off-by: Ralph Boehme +--- + NEWS | 2 + + doc/manpages/man5/afp.conf.5.xml | 39 +++++++++++++- + etc/afpd/afp_dsi.c | 2 +- + etc/afpd/spotlight.c | 15 ++++-- + etc/spotlight/slmod_sparql.c | 8 ++- + etc/spotlight/slmod_sparql_map.c | 101 ++++++++++++++++++++++++------------ + etc/spotlight/slmod_sparql_map.h | 1 + + etc/spotlight/slmod_sparql_parser.c | 82 +++++++++++++++++------------ + etc/spotlight/slmod_sparql_parser.h | 4 +- + etc/spotlight/slmod_sparql_parser.y | 22 ++++++-- + include/atalk/globals.h | 2 + + include/atalk/spotlight.h | 5 +- + libatalk/util/netatalk_conf.c | 3 ++ + man/man5/afp.conf.5.in | 29 ++++++++++- + 14 files changed, 232 insertions(+), 83 deletions(-) + +diff --git a/NEWS b/NEWS +index f9c9052..f4cab3d 100644 +--- a/NEWS ++++ b/NEWS +@@ -1,6 +1,8 @@ + Changes in 3.1.3 + ================ + * UPD: Spotlight: more SPARQL query optimisations ++* UPD: Spotlight: new options "sparql results limit", "spotlight ++ attributes" and "spotlight expr" + + Changes in 3.1.2 + ================ +diff --git a/doc/manpages/man5/afp.conf.5.xml b/doc/manpages/man5/afp.conf.5.xml +index a1e760a..1c42446 100644 +--- a/doc/manpages/man5/afp.conf.5.xml ++++ b/doc/manpages/man5/afp.conf.5.xml +@@ -991,9 +991,20 @@ + + + ++ sparql results limit = ++ NUMBER (default: ++ UNLIMITED) (G) ++ ++ ++ Impose a limit on the number of results queried from Tracker ++ via SPARQL queries. ++ ++ ++ ++ + spotlight = + BOOLEAN (default: +- no) (G)/(V) ++ no) (G) + + + Whether to enable Spotlight searches. Note: once the global +@@ -1004,6 +1015,32 @@ + + + ++ spotlight attributes = ++ COMMA SEPERATED STRING (default: ++ EMPTY) (G) ++ ++ ++ A list of attributes that are allowed to be used in ++ Spotlight searches. By default all attributes can be ++ searched, passing a string limits attributes to elements ++ of the string. Example: spotlight ++ attributes = *,kMDItemTextContent ++ ++ ++ ++ ++ ++ spotlight expr = ++ BOOLEAN (default: ++ yes) (G) ++ ++ ++ Whether to allow the use of logic expression in ++ searches. ++ ++ ++ ++ + start dbus = + BOOLEAN (default: + yes) (G) +diff --git a/etc/afpd/afp_dsi.c b/etc/afpd/afp_dsi.c +index eb4b19f..697aa43 100644 +--- a/etc/afpd/afp_dsi.c ++++ b/etc/afpd/afp_dsi.c +@@ -477,7 +477,7 @@ void afp_over_dsi(AFPObj *obj) + + /* Initialize Spotlight */ + if ((obj->options.flags & OPTION_SPOTLIGHT) && (obj->options.slmod_path)) +- sl_mod_load(obj->options.slmod_path); ++ sl_mod_load(obj); + + ipc_child_state(obj, DSI_RUNNING); + +diff --git a/etc/afpd/spotlight.c b/etc/afpd/spotlight.c +index a3fa587..5654624 100644 +--- a/etc/afpd/spotlight.c ++++ b/etc/afpd/spotlight.c +@@ -283,6 +283,11 @@ static int sl_rpc_openQuery(AFPObj *obj, const DALLOC_CTX *query, DALLOC_CTX *re + slq->slq_state = SLQ_STATE_NEW; + slq->slq_obj = obj; + slq->slq_vol = v; ++ slq->slq_allow_expr = obj->options.flags & OPTION_SPOTLIGHT_EXPR ? true : false; ++ slq->slq_result_limit = obj->options.sparql_limit; ++ ++ LOG(log_info, logtype_sl, "sl_rpc_openQuery: expr: %s, limit: %" PRIu64, ++ slq->slq_allow_expr ? "yes" : "no", slq->slq_result_limit); + + /* convert spotlight query charset to host charset */ + EC_NULL_LOG( sl_query = dalloc_value_for_key(query, "DALLOC_CTX", 0, "DALLOC_CTX", 1, "kMDQueryString") ); +@@ -580,23 +585,23 @@ EC_CLEANUP: + * Spotlight module functions + **************************************************************************************************/ + +-int sl_mod_load(const char *path) ++int sl_mod_load(AFPObj *obj) + { + EC_INIT; + + sl_ctx = talloc_new(NULL); + +- if ((sl_module = mod_open(path)) == NULL) { +- LOG(log_error, logtype_sl, "Failed to load module \'%s\': %s", path, mod_error()); ++ if ((sl_module = mod_open(obj->options.slmod_path)) == NULL) { ++ LOG(log_error, logtype_sl, "Failed to load module \'%s\': %s", obj->options.slmod_path, mod_error()); + EC_FAIL; + } + + if ((sl_module_export = mod_symbol(sl_module, "sl_mod")) == NULL) { +- LOG(log_error, logtype_sl, "sl_mod_load(%s): mod_symbol error for symbol %s", path, "sl_mod"); ++ LOG(log_error, logtype_sl, "sl_mod_load(%s): mod_symbol error for symbol sl_mod", obj->options.slmod_path); + EC_FAIL; + } + +- sl_module_export->sl_mod_init("test"); ++ sl_module_export->sl_mod_init(obj); + + EC_CLEANUP: + EC_EXIT; +diff --git a/etc/spotlight/slmod_sparql.c b/etc/spotlight/slmod_sparql.c +index e59db5a..21e8d38 100644 +--- a/etc/spotlight/slmod_sparql.c ++++ b/etc/spotlight/slmod_sparql.c +@@ -59,7 +59,8 @@ static int sl_mod_init(void *p) + { + EC_INIT; + GError *error = NULL; +- const char *msg = p; ++ AFPObj *obj = (AFPObj *)p; ++ const char *attributes; + + LOG(log_info, logtype_sl, "Initializing Spotlight module"); + +@@ -95,6 +96,11 @@ static int sl_mod_init(void *p) + } + #endif + ++ attributes = atalk_iniparser_getstring(obj->iniconfig, INISEC_GLOBAL, "spotlight attributes", NULL); ++ if (attributes) { ++ configure_spotlight_attributes(attributes); ++ } ++ + EC_CLEANUP: + EC_EXIT; + } +diff --git a/etc/spotlight/slmod_sparql_map.c b/etc/spotlight/slmod_sparql_map.c +index c2c7312..7ac4963 100644 +--- a/etc/spotlight/slmod_sparql_map.c ++++ b/etc/spotlight/slmod_sparql_map.c +@@ -17,6 +17,10 @@ + #endif /* HAVE_CONFIG_H */ + + #include ++#include ++#include ++ ++#include + + #include "slmod_sparql_map.h" + +@@ -24,48 +28,48 @@ + #define SPECIAL NULL + + struct spotlight_sparql_map spotlight_sparql_map[] = { +- /* ssm_spotlight_attr ssm_type, ssm_sparql_attr */ +- {"*", ssmt_fts, "fts:match"}, ++ /* ssm_spotlight_attr ssm_enabled, ssm_type, ssm_sparql_attr */ ++ {"*", true, ssmt_fts, "fts:match"}, + + /* Filesystem metadata */ +- {"kMDItemFSLabel", ssmt_num, NOTSUPPORTED}, +- {"kMDItemDisplayName", ssmt_str, "nfo:fileName"}, +- {"kMDItemFSName", ssmt_str, "nfo:fileName"}, +- {"kMDItemFSContentChangeDate", ssmt_date, "nfo:fileLastModified"}, ++ {"kMDItemFSLabel", true, ssmt_num, NOTSUPPORTED}, ++ {"kMDItemDisplayName", true, ssmt_str, "nfo:fileName"}, ++ {"kMDItemFSName", true, ssmt_str, "nfo:fileName"}, ++ {"kMDItemFSContentChangeDate", true, ssmt_date, "nfo:fileLastModified"}, + + /* Common metadata */ +- {"kMDItemTextContent", ssmt_fts, "fts:match"}, +- {"kMDItemContentCreationDate", ssmt_date, "nie:contentCreated"}, +- {"kMDItemContentModificationDate", ssmt_date, "nfo:fileLastModified"}, +- {"kMDItemAttributeChangeDate", ssmt_date, "nfo:fileLastModified"}, +- {"kMDItemLastUsedDate", ssmt_date, "nfo:fileLastAccessed"}, +- {"kMDItemAuthors", ssmt_str, "dc:creator"}, +- {"kMDItemCopyright", ssmt_str, "nie:copyright"}, +- {"kMDItemCountry", ssmt_str, "nco:country"}, +- {"kMDItemCreator", ssmt_str, "dc:creator"}, +- {"kMDItemDurationSeconds", ssmt_num, "nfo:duration"}, +- {"kMDItemNumberOfPages", ssmt_num, "nfo:pageCount"}, +- {"kMDItemTitle", ssmt_str, "nie:title"}, +- {"_kMDItemGroupId", ssmt_type, SPECIAL}, +- {"kMDItemContentTypeTree", ssmt_type, SPECIAL}, ++ {"kMDItemTextContent", true, ssmt_fts, "fts:match"}, ++ {"kMDItemContentCreationDate", true, ssmt_date, "nie:contentCreated"}, ++ {"kMDItemContentModificationDate", true, ssmt_date, "nfo:fileLastModified"}, ++ {"kMDItemAttributeChangeDate", true, ssmt_date, "nfo:fileLastModified"}, ++ {"kMDItemLastUsedDate", true, ssmt_date, "nfo:fileLastAccessed"}, ++ {"kMDItemAuthors", true, ssmt_str, "dc:creator"}, ++ {"kMDItemCopyright", true, ssmt_str, "nie:copyright"}, ++ {"kMDItemCountry", true, ssmt_str, "nco:country"}, ++ {"kMDItemCreator", true, ssmt_str, "dc:creator"}, ++ {"kMDItemDurationSeconds", true, ssmt_num, "nfo:duration"}, ++ {"kMDItemNumberOfPages", true, ssmt_num, "nfo:pageCount"}, ++ {"kMDItemTitle", true, ssmt_str, "nie:title"}, ++ {"_kMDItemGroupId", true, ssmt_type, SPECIAL}, ++ {"kMDItemContentTypeTree", true, ssmt_type, SPECIAL}, + + /* Image metadata */ +- {"kMDItemPixelWidth", ssmt_num, "nfo:width"}, +- {"kMDItemPixelHeight", ssmt_num, "nfo:height"}, +- {"kMDItemColorSpace", ssmt_str, "nexif:colorSpace"}, +- {"kMDItemBitsPerSample", ssmt_num, "nfo:colorDepth"}, +- {"kMDItemFocalLength", ssmt_num, "nmm:focalLength"}, +- {"kMDItemISOSpeed", ssmt_num, "nmm:isoSpeed"}, +- {"kMDItemOrientation", ssmt_bool, "nfo:orientation"}, +- {"kMDItemResolutionWidthDPI", ssmt_num, "nfo:horizontalResolution"}, +- {"kMDItemResolutionHeightDPI", ssmt_num, "nfo:verticalResolution"}, +- {"kMDItemExposureTimeSeconds", ssmt_num, "nmm:exposureTime"}, ++ {"kMDItemPixelWidth", true, ssmt_num, "nfo:width"}, ++ {"kMDItemPixelHeight", true, ssmt_num, "nfo:height"}, ++ {"kMDItemColorSpace", true, ssmt_str, "nexif:colorSpace"}, ++ {"kMDItemBitsPerSample", true, ssmt_num, "nfo:colorDepth"}, ++ {"kMDItemFocalLength", true, ssmt_num, "nmm:focalLength"}, ++ {"kMDItemISOSpeed", true, ssmt_num, "nmm:isoSpeed"}, ++ {"kMDItemOrientation", true, ssmt_bool, "nfo:orientation"}, ++ {"kMDItemResolutionWidthDPI", true, ssmt_num, "nfo:horizontalResolution"}, ++ {"kMDItemResolutionHeightDPI", true, ssmt_num, "nfo:verticalResolution"}, ++ {"kMDItemExposureTimeSeconds", true, ssmt_num, "nmm:exposureTime"}, + + /* Audio metadata */ +- {"kMDItemComposer", ssmt_str, "nmm:composer"}, +- {"kMDItemMusicalGenre", ssmt_str, "nfo:genre"}, ++ {"kMDItemComposer", true, ssmt_str, "nmm:composer"}, ++ {"kMDItemMusicalGenre", true, ssmt_str, "nfo:genre"}, + +- {NULL, ssmt_str, NULL} ++ {NULL, false, ssmt_str, NULL} + }; + + struct MDTypeMap MDTypeMap[] = { +@@ -99,3 +103,34 @@ struct MDTypeMap MDTypeMap[] = { + {"public.source-code", kMDTypeMapRDF, "http://www.semanticdesktop.org/ontologies/2007/03/22/nfo#SourceCode"}, + {NULL, kMDTypeMapNotSup, NULL} + }; ++ ++void configure_spotlight_attributes(const char *attributes_in) ++{ ++ char *attr, *attributes; ++ int i; ++ ++ for (i = 0; spotlight_sparql_map[i].ssm_spotlight_attr != NULL; i++) ++ spotlight_sparql_map[i].ssm_enabled = false; ++ ++ /* ++ * Go through the attribute map and for every element scan ++ * attributes_in with strtok(). If it's contained, keep it ++ * enabled, otherwise disable it. ++ */ ++ ++ attributes = strdup(attributes_in); ++ ++ for (attr = strtok(attributes, ","); attr; attr = strtok(NULL, ",")) { ++ ++ for (i = 0; spotlight_sparql_map[i].ssm_spotlight_attr != NULL; i++) ++ ++ if (strcmp(attr, spotlight_sparql_map[i].ssm_spotlight_attr) == 0) { ++ LOG(log_info, logtype_sl, "Enabling Spotlight attribute: %s", ++ spotlight_sparql_map[i].ssm_spotlight_attr); ++ spotlight_sparql_map[i].ssm_enabled = true; ++ break; ++ } ++ } ++ ++ free(attributes); ++} +diff --git a/etc/spotlight/slmod_sparql_map.h b/etc/spotlight/slmod_sparql_map.h +index 250894b..3b92474 100644 +--- a/etc/spotlight/slmod_sparql_map.h ++++ b/etc/spotlight/slmod_sparql_map.h +@@ -36,6 +36,7 @@ enum kMDTypeMap { + + struct spotlight_sparql_map { + const char *ssm_spotlight_attr; ++ bool ssm_enabled; + enum ssm_type ssm_type; + const char *ssm_sparql_attr; + }; +diff --git a/etc/spotlight/slmod_sparql_parser.c b/etc/spotlight/slmod_sparql_parser.c +index f70d9ef..66e0f59 100644 +--- a/etc/spotlight/slmod_sparql_parser.c ++++ b/etc/spotlight/slmod_sparql_parser.c +@@ -100,9 +100,10 @@ + /* local vars */ + static gchar *ssp_result; + static char sparqlvar; ++ static char *result_limit; + + /* Line 371 of yacc.c */ +-#line 106 "slmod_sparql_parser.c" ++#line 107 "slmod_sparql_parser.c" + + # ifndef YY_NULL + # if defined __cplusplus && 201103L <= __cplusplus +@@ -176,7 +177,7 @@ extern int yydebug; + typedef union YYSTYPE + { + /* Line 387 of yacc.c */ +-#line 45 "slmod_sparql_parser.y" ++#line 46 "slmod_sparql_parser.y" + + int ival; + const char *sval; +@@ -185,7 +186,7 @@ typedef union YYSTYPE + + + /* Line 387 of yacc.c */ +-#line 189 "slmod_sparql_parser.c" ++#line 190 "slmod_sparql_parser.c" + } YYSTYPE; + # define YYSTYPE_IS_TRIVIAL 1 + # define yystype YYSTYPE /* obsolescent; will be withdrawn */ +@@ -209,7 +210,7 @@ int yyparse (); + #endif /* ! YYPARSE_PARAM */ + /* "%code provides" blocks. */ + /* Line 387 of yacc.c */ +-#line 39 "slmod_sparql_parser.y" ++#line 40 "slmod_sparql_parser.y" + + #define SPRAW_TIME_OFFSET 978307200 + extern int map_spotlight_to_sparql_query(slq_t *slq, gchar **sparql_result); +@@ -217,14 +218,14 @@ int yyparse (); + + + /* Line 387 of yacc.c */ +-#line 221 "slmod_sparql_parser.c" ++#line 222 "slmod_sparql_parser.c" + + #endif /* !YY_YY_SLMOD_SPARQL_PARSER_H_INCLUDED */ + + /* Copy the second part of user declarations. */ + + /* Line 390 of yacc.c */ +-#line 228 "slmod_sparql_parser.c" ++#line 229 "slmod_sparql_parser.c" + + #ifdef short + # undef short +@@ -523,9 +524,9 @@ static const yytype_int8 yyrhs[] = + /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + static const yytype_uint8 yyrline[] = + { +- 0, 67, 67, 69, 73, 83, 89, 95, 96, 97, +- 98, 99, 108, 109, 110, 111, 112, 113, 114, 115, +- 119, 123, 124 ++ 0, 68, 68, 70, 74, 88, 94, 104, 105, 106, ++ 107, 112, 121, 122, 123, 124, 125, 126, 127, 128, ++ 132, 136, 137 + }; + #endif + +@@ -1446,19 +1447,23 @@ yyreduce: + { + case 4: + /* Line 1792 of yacc.c */ +-#line 73 "slmod_sparql_parser.y" ++#line 74 "slmod_sparql_parser.y" + { ++ if (ssp_slq->slq_result_limit) ++ result_limit = talloc_asprintf(ssp_slq, "LIMIT %ld", ssp_slq->slq_result_limit); ++ else ++ result_limit = ""; + ssp_result = talloc_asprintf(ssp_slq, + "SELECT ?url WHERE " +- "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } LIMIT 100", +- (yyvsp[(1) - (1)].sval), ssp_slq->slq_vol->v_path); ++ "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } %s", ++ (yyvsp[(1) - (1)].sval), ssp_slq->slq_vol->v_path, result_limit); + (yyval.sval) = ssp_result; + } + break; + + case 5: + /* Line 1792 of yacc.c */ +-#line 83 "slmod_sparql_parser.y" ++#line 88 "slmod_sparql_parser.y" + { + if ((yyvsp[(1) - (1)].bval) == false) + YYACCEPT; +@@ -1469,8 +1474,12 @@ yyreduce: + + case 6: + /* Line 1792 of yacc.c */ +-#line 89 "slmod_sparql_parser.y" ++#line 94 "slmod_sparql_parser.y" + { ++ if (!ssp_slq->slq_allow_expr) ++ YYABORT; ++ if ((yyvsp[(1) - (3)].sval) == NULL || (yyvsp[(3) - (3)].sval) == NULL) ++ YYABORT; + if (strcmp((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)) != 0) + (yyval.sval) = talloc_asprintf(ssp_slq, "{ %s } UNION { %s }", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)); + else +@@ -1480,31 +1489,35 @@ yyreduce: + + case 7: + /* Line 1792 of yacc.c */ +-#line 95 "slmod_sparql_parser.y" ++#line 104 "slmod_sparql_parser.y" + {(yyval.sval) = (yyvsp[(1) - (1)].sval); if ((yyval.sval) == NULL) YYABORT;} + break; + + case 8: + /* Line 1792 of yacc.c */ +-#line 96 "slmod_sparql_parser.y" ++#line 105 "slmod_sparql_parser.y" + {(yyval.sval) = (yyvsp[(1) - (1)].sval);} + break; + + case 9: + /* Line 1792 of yacc.c */ +-#line 97 "slmod_sparql_parser.y" ++#line 106 "slmod_sparql_parser.y" + {(yyval.sval) = talloc_asprintf(ssp_slq, "%s", (yyvsp[(2) - (3)].sval));} + break; + + case 10: + /* Line 1792 of yacc.c */ +-#line 98 "slmod_sparql_parser.y" +- {(yyval.sval) = talloc_asprintf(ssp_slq, "%s . %s", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval));} ++#line 107 "slmod_sparql_parser.y" ++ { ++ if (!ssp_slq->slq_allow_expr) ++ YYABORT; ++ (yyval.sval) = talloc_asprintf(ssp_slq, "%s . %s", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)); ++} + break; + + case 11: + /* Line 1792 of yacc.c */ +-#line 99 "slmod_sparql_parser.y" ++#line 112 "slmod_sparql_parser.y" + { + if (strcmp((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)) != 0) + (yyval.sval) = talloc_asprintf(ssp_slq, "{ %s } UNION { %s }", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)); +@@ -1515,73 +1528,73 @@ yyreduce: + + case 12: + /* Line 1792 of yacc.c */ +-#line 108 "slmod_sparql_parser.y" ++#line 121 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '=', (yyvsp[(4) - (5)].sval));} + break; + + case 13: + /* Line 1792 of yacc.c */ +-#line 109 "slmod_sparql_parser.y" ++#line 122 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '!', (yyvsp[(4) - (5)].sval));} + break; + + case 14: + /* Line 1792 of yacc.c */ +-#line 110 "slmod_sparql_parser.y" ++#line 123 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '<', (yyvsp[(4) - (5)].sval));} + break; + + case 15: + /* Line 1792 of yacc.c */ +-#line 111 "slmod_sparql_parser.y" ++#line 124 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '>', (yyvsp[(4) - (5)].sval));} + break; + + case 16: + /* Line 1792 of yacc.c */ +-#line 112 "slmod_sparql_parser.y" ++#line 125 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '=', (yyvsp[(4) - (6)].sval));} + break; + + case 17: + /* Line 1792 of yacc.c */ +-#line 113 "slmod_sparql_parser.y" ++#line 126 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '!', (yyvsp[(4) - (6)].sval));} + break; + + case 18: + /* Line 1792 of yacc.c */ +-#line 114 "slmod_sparql_parser.y" ++#line 127 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '<', (yyvsp[(4) - (6)].sval));} + break; + + case 19: + /* Line 1792 of yacc.c */ +-#line 115 "slmod_sparql_parser.y" ++#line 128 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '>', (yyvsp[(4) - (6)].sval));} + break; + + case 20: + /* Line 1792 of yacc.c */ +-#line 119 "slmod_sparql_parser.y" ++#line 132 "slmod_sparql_parser.y" + {(yyval.sval) = map_daterange((yyvsp[(3) - (8)].sval), (yyvsp[(5) - (8)].tval), (yyvsp[(7) - (8)].tval));} + break; + + case 21: + /* Line 1792 of yacc.c */ +-#line 123 "slmod_sparql_parser.y" ++#line 136 "slmod_sparql_parser.y" + {(yyval.tval) = isodate2unix((yyvsp[(3) - (4)].sval));} + break; + + case 22: + /* Line 1792 of yacc.c */ +-#line 124 "slmod_sparql_parser.y" ++#line 137 "slmod_sparql_parser.y" + {(yyval.tval) = atoi((yyvsp[(1) - (1)].sval)) + SPRAW_TIME_OFFSET;} + break; + + + /* Line 1792 of yacc.c */ +-#line 1585 "slmod_sparql_parser.c" ++#line 1598 "slmod_sparql_parser.c" + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires +@@ -1813,7 +1826,7 @@ yyreturn: + + + /* Line 2055 of yacc.c */ +-#line 127 "slmod_sparql_parser.y" ++#line 140 "slmod_sparql_parser.y" + + + static time_t isodate2unix(const char *s) +@@ -1896,7 +1909,7 @@ static const char *map_expr(const char *attr, char op, const char *val) + bstring q = NULL, search = NULL, replace = NULL; + + for (p = spotlight_sparql_map; p->ssm_spotlight_attr; p++) { +- if (strcmp(p->ssm_spotlight_attr, attr) == 0) { ++ if (p->ssm_enabled && (strcmp(p->ssm_spotlight_attr, attr) == 0)) { + if (p->ssm_type != ssmt_type && p->ssm_sparql_attr == NULL) { + yyerror("unsupported Spotlight attribute"); + EC_FAIL; +@@ -2021,6 +2034,7 @@ int main(int argc, char **argv) + struct vol *vol = talloc_zero(ssp_slq, struct vol); + vol->v_path = "/Volumes/test"; + ssp_slq->slq_vol = vol; ++ ssp_slq->slq_allow_expr = true; + sparqlvar = 'a'; + + s = yy_scan_string(argv[1]); +diff --git a/etc/spotlight/slmod_sparql_parser.h b/etc/spotlight/slmod_sparql_parser.h +index 471e16f..9eb22b3 100644 +--- a/etc/spotlight/slmod_sparql_parser.h ++++ b/etc/spotlight/slmod_sparql_parser.h +@@ -84,7 +84,7 @@ extern int yydebug; + typedef union YYSTYPE + { + /* Line 2058 of yacc.c */ +-#line 45 "slmod_sparql_parser.y" ++#line 46 "slmod_sparql_parser.y" + + int ival; + const char *sval; +@@ -117,7 +117,7 @@ int yyparse (); + #endif /* ! YYPARSE_PARAM */ + /* "%code provides" blocks. */ + /* Line 2058 of yacc.c */ +-#line 39 "slmod_sparql_parser.y" ++#line 40 "slmod_sparql_parser.y" + + #define SPRAW_TIME_OFFSET 978307200 + extern int map_spotlight_to_sparql_query(slq_t *slq, gchar **sparql_result); +diff --git a/etc/spotlight/slmod_sparql_parser.y b/etc/spotlight/slmod_sparql_parser.y +index 0763b39..e4069bb 100644 +--- a/etc/spotlight/slmod_sparql_parser.y ++++ b/etc/spotlight/slmod_sparql_parser.y +@@ -34,6 +34,7 @@ + /* local vars */ + static gchar *ssp_result; + static char sparqlvar; ++ static char *result_limit; + %} + + %code provides { +@@ -71,10 +72,14 @@ input: + + line: + expr { ++ if (ssp_slq->slq_result_limit) ++ result_limit = talloc_asprintf(ssp_slq, "LIMIT %ld", ssp_slq->slq_result_limit); ++ else ++ result_limit = ""; + ssp_result = talloc_asprintf(ssp_slq, + "SELECT ?url WHERE " +- "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } LIMIT 100", +- $1, ssp_slq->slq_vol->v_path); ++ "{ %s . ?obj nie:url ?url . FILTER(tracker:uri-is-descendant('file://%s/', ?url)) } %s", ++ $1, ssp_slq->slq_vol->v_path, result_limit); + $$ = ssp_result; + } + ; +@@ -87,6 +92,10 @@ BOOL { + YYABORT; + } + | match OR match { ++ if (!ssp_slq->slq_allow_expr) ++ YYABORT; ++ if ($1 == NULL || $3 == NULL) ++ YYABORT; + if (strcmp($1, $3) != 0) + $$ = talloc_asprintf(ssp_slq, "{ %s } UNION { %s }", $1, $3); + else +@@ -95,7 +104,11 @@ BOOL { + | match {$$ = $1; if ($$ == NULL) YYABORT;} + | function {$$ = $1;} + | OBRACE expr CBRACE {$$ = talloc_asprintf(ssp_slq, "%s", $2);} +-| expr AND expr {$$ = talloc_asprintf(ssp_slq, "%s . %s", $1, $3);} ++| expr AND expr { ++ if (!ssp_slq->slq_allow_expr) ++ YYABORT; ++ $$ = talloc_asprintf(ssp_slq, "%s . %s", $1, $3); ++} + | expr OR expr { + if (strcmp($1, $3) != 0) + $$ = talloc_asprintf(ssp_slq, "{ %s } UNION { %s }", $1, $3); +@@ -206,7 +219,7 @@ static const char *map_expr(const char *attr, char op, const char *val) + bstring q = NULL, search = NULL, replace = NULL; + + for (p = spotlight_sparql_map; p->ssm_spotlight_attr; p++) { +- if (strcmp(p->ssm_spotlight_attr, attr) == 0) { ++ if (p->ssm_enabled && (strcmp(p->ssm_spotlight_attr, attr) == 0)) { + if (p->ssm_type != ssmt_type && p->ssm_sparql_attr == NULL) { + yyerror("unsupported Spotlight attribute"); + EC_FAIL; +@@ -331,6 +344,7 @@ int main(int argc, char **argv) + struct vol *vol = talloc_zero(ssp_slq, struct vol); + vol->v_path = "/Volumes/test"; + ssp_slq->slq_vol = vol; ++ ssp_slq->slq_allow_expr = true; + sparqlvar = 'a'; + + s = yy_scan_string(argv[1]); +diff --git a/include/atalk/globals.h b/include/atalk/globals.h +index 21b8b4e..603b5ca 100644 +--- a/include/atalk/globals.h ++++ b/include/atalk/globals.h +@@ -60,6 +60,7 @@ + #define OPTION_SPOTLIGHT (1 << 13) /* whether to initialize Spotlight support */ + #define OPTION_SPOTLIGHT_VOL (1 << 14) /* whether spotlight shall be enabled by default for volumes */ + #define OPTION_RECVFILE (1 << 15) ++#define OPTION_SPOTLIGHT_EXPR (1 << 16) /* whether to allow Spotlight logic expressions */ + + #define PASSWD_NONE 0 + #define PASSWD_SET (1 << 0) +@@ -130,6 +131,7 @@ struct afp_options { + char *cnid_mysql_pw; + char *cnid_mysql_db; + struct afp_volume_name volfile; ++ uint64_t sparql_limit; + }; + + typedef struct AFPObj { +diff --git a/include/atalk/spotlight.h b/include/atalk/spotlight.h +index 0ca8a24..bafa52f 100644 +--- a/include/atalk/spotlight.h ++++ b/include/atalk/spotlight.h +@@ -43,7 +43,7 @@ struct sl_module_export { + int (*sl_mod_index_file) (const void *); + }; + +-extern int sl_mod_load(const char *path); ++extern int sl_mod_load(AFPObj *obj); + extern void sl_index_file(const char *path); + + /************************************************************************************************** +@@ -105,6 +105,8 @@ typedef struct _slq_t { + size_t slq_cnids_num; /* Size of slq_cnids array */ + const char *slq_path; /* Path to file or dir, used in fetchAttributes */ + void *slq_tracker_cursor; /* Tracker SPARQL query result cursor */ ++ bool slq_allow_expr; /* Whether to allow logic expressions */ ++ uint64_t slq_result_limit; /* Whether to LIMIT SPARQL results, default of 0 means no limit */ + } slq_t; + + /************************************************************************************************** +@@ -114,5 +116,6 @@ typedef struct _slq_t { + extern int afp_spotlight_rpc(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *rbuflen); + extern int sl_pack(DALLOC_CTX *query, char *buf); + extern int sl_unpack(DALLOC_CTX *query, const char *buf); ++extern void configure_spotlight_attributes(const char *attributes); + + #endif /* SPOTLIGHT_H */ +diff --git a/libatalk/util/netatalk_conf.c b/libatalk/util/netatalk_conf.c +index 01e1f16..71acf88 100644 +--- a/libatalk/util/netatalk_conf.c ++++ b/libatalk/util/netatalk_conf.c +@@ -1828,6 +1828,8 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) + options->passwdbits |= PASSWD_NOSAVE; + if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "set password", 0)) + options->passwdbits |= PASSWD_SET; ++ if (atalk_iniparser_getboolean(config, INISEC_GLOBAL, "spotlight expr", 1)) ++ options->flags |= OPTION_SPOTLIGHT_EXPR; + + /* figure out options w values */ + options->loginmesg = atalk_iniparser_getstrdup(config, INISEC_GLOBAL, "login message", NULL); +@@ -1866,6 +1868,7 @@ int afp_config_parse(AFPObj *AFPObj, char *processname) + options->sleep = atalk_iniparser_getint (config, INISEC_GLOBAL, "sleep time", 10); + options->disconnected = atalk_iniparser_getint (config, INISEC_GLOBAL, "disconnect time",24); + options->splice_size = atalk_iniparser_getint (config, INISEC_GLOBAL, "splice size", 64*1024); ++ options->sparql_limit = atalk_iniparser_getint (config, INISEC_GLOBAL, "sparql results limit", 0); + + p = atalk_iniparser_getstring(config, INISEC_GLOBAL, "map acls", "rights"); + if (STRCMP(p, ==, "rights")) +diff --git a/man/man5/afp.conf.5.in b/man/man5/afp.conf.5.in +index e50d634..c6eb838 100644 +--- a/man/man5/afp.conf.5.in ++++ b/man/man5/afp.conf.5.in +@@ -631,13 +631,40 @@ solaris share reservations = \fIBOOLEAN\fR (default: \fIyes\fR) \fB(G)\fR + Use share reservations on Solaris\&. Solaris CIFS server uses this too, so this makes a lock coherent multi protocol server\&. + .RE + .PP +-spotlight = \fIBOOLEAN\fR (default: \fIno\fR) \fB(G)/(V)\fR ++sparql results limit = \fINUMBER\fR (default: \fIUNLIMITED\fR) \fB(G)\fR ++.RS 4 ++Impose a limit on the number of results queried from Tracker via SPARQL queries\&. ++.RE ++.PP ++spotlight = \fIBOOLEAN\fR (default: \fIno\fR) \fB(G)\fR + .RS 4 + Whether to enable Spotlight searches\&. Note: once the global option is enabled, any volume that is not enabled won\*(Aqt be searchable at all\&. See also + \fIdbus daemon\fR + option\&. + .RE + .PP ++spotlight attributes = \fICOMMA SEPERATED STRING\fR (default: \fIEMPTY\fR) \fB(G)\fR ++.RS 4 ++A list of attributes that are allowed to be used in Spotlight searches\&. By default all attributes can be searched, passing a string limits attributes to elements of the string\&. Example: ++.sp ++.if n \{\ ++.RS 4 ++.\} ++.nf ++spotlight ++ attributes = *,kMDItemTextContent ++.fi ++.if n \{\ ++.RE ++.\} ++.sp ++.RE ++.PP ++spotlight expr = \fIBOOLEAN\fR (default: \fIyes\fR) \fB(G)\fR ++.RS 4 ++Whether to allow the use of logic expression in searches\&. ++.RE ++.PP + start dbus = \fIBOOLEAN\fR (default: \fIyes\fR) \fB(G)\fR + .RS 4 + Whether to start a dbus instance for use with Tracker\&. +-- +1.9.3 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Wed Jun 4 20:43:20 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Wed, 4 Jun 2014 18:43:20 +0000 Subject: SF.net SVN: gar:[23761] csw/mgar/pkg/gnutls3/trunk Message-ID: <3gkJsp4B20zYV@mail.opencsw.org> Revision: 23761 http://sourceforge.net/p/gar/code/23761 Author: chninkel Date: 2014-06-04 18:43:13 +0000 (Wed, 04 Jun 2014) Log Message: ----------- gnutls3/trunk: updated to 3.1.25 Modified Paths: -------------- csw/mgar/pkg/gnutls3/trunk/Makefile csw/mgar/pkg/gnutls3/trunk/checksums Modified: csw/mgar/pkg/gnutls3/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnutls3/trunk/Makefile 2014-06-04 17:18:50 UTC (rev 23760) +++ csw/mgar/pkg/gnutls3/trunk/Makefile 2014-06-04 18:43:13 UTC (rev 23761) @@ -1,5 +1,5 @@ NAME = gnutls -VERSION = 3.1.23 +VERSION = 3.1.25 DESCRIPTION = GNU Transport Layer Security libraries and tools define BLURB Modified: csw/mgar/pkg/gnutls3/trunk/checksums =================================================================== --- csw/mgar/pkg/gnutls3/trunk/checksums 2014-06-04 17:18:50 UTC (rev 23760) +++ csw/mgar/pkg/gnutls3/trunk/checksums 2014-06-04 18:43:13 UTC (rev 23761) @@ -1 +1 @@ -eb4bcd0f593a9cc5cb674e903943ff07 gnutls-3.1.23.tar.xz +2118ac8199fd3b3f0509ee4854d1d942 gnutls-3.1.25.tar.xz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From slowfranklin at users.sourceforge.net Wed Jun 4 21:33:20 2014 From: slowfranklin at users.sourceforge.net (slowfranklin at users.sourceforge.net) Date: Wed, 4 Jun 2014 19:33:20 +0000 Subject: SF.net SVN: gar:[23762] csw/mgar/pkg/netatalk/trunk Message-ID: <3gkKzY6fP7zg2@mail.opencsw.org> Revision: 23762 http://sourceforge.net/p/gar/code/23762 Author: slowfranklin Date: 2014-06-04 19:33:17 +0000 (Wed, 04 Jun 2014) Log Message: ----------- netatalk/trunk: Put back patch to disable dbus autostart Modified Paths: -------------- csw/mgar/pkg/netatalk/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus-and-Tracker-autostart.patch Removed Paths: ------------- csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus.patch Modified: csw/mgar/pkg/netatalk/trunk/Makefile =================================================================== --- csw/mgar/pkg/netatalk/trunk/Makefile 2014-06-04 18:43:13 UTC (rev 23761) +++ csw/mgar/pkg/netatalk/trunk/Makefile 2014-06-04 19:33:17 UTC (rev 23762) @@ -53,7 +53,7 @@ PATCHFILES += 0003-Disable-noinst-binary-fails-to-link-on-SPARC.patch PATCHFILES += 0004-Ensure-gsettings-is-called-from-opt-csw-bin.patch -# PATCHFILES += 0001-Disable-dbus.patch +PATCHFILES += 0001-Disable-dbus-and-Tracker-autostart.patch # will be in 3.1.3: PATCHFILES += 0001-Spotlight-SPARQL-query-optimisations.patch PATCHFILES += 0002-Spotlight-new-options-for-controlling-query-behaviou.patch Added: csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus-and-Tracker-autostart.patch =================================================================== --- csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus-and-Tracker-autostart.patch (rev 0) +++ csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus-and-Tracker-autostart.patch 2014-06-04 19:33:17 UTC (rev 23762) @@ -0,0 +1,51 @@ +From 6e2404a5a98b110fd061aa2c6f27686869e156bd Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Wed, 4 Jun 2014 21:30:20 +0200 +Subject: [PATCH] Disable dbus and Tracker autostart + +--- + etc/netatalk/netatalk.c | 28 ---------------------------- + 1 file changed, 28 deletions(-) + +diff --git a/etc/netatalk/netatalk.c b/etc/netatalk/netatalk.c +index 3a470d0..70d25de 100644 +--- a/etc/netatalk/netatalk.c ++++ b/etc/netatalk/netatalk.c +@@ -411,34 +411,6 @@ int main(int argc, char **argv) + sigdelset(&blocksigs, SIGHUP); + sigprocmask(SIG_SETMASK, &blocksigs, NULL); + +-#ifdef HAVE_TRACKER +- if (obj.options.flags & OPTION_SPOTLIGHT) { +- setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path=" _PATH_STATEDIR "spotlight.ipc", 1); +- setenv("XDG_DATA_HOME", _PATH_STATEDIR, 0); +- setenv("XDG_CACHE_HOME", _PATH_STATEDIR, 0); +- setenv("TRACKER_USE_LOG_FILES", "1", 0); +- +- if (atalk_iniparser_getboolean(obj.iniconfig, INISEC_GLOBAL, "start dbus", 1)) { +- dbus_path = atalk_iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon", DBUS_DAEMON_PATH); +- LOG(log_debug, logtype_default, "DBUS: '%s'", dbus_path); +- if ((dbus_pid = run_process(dbus_path, "--config-file=" _PATH_CONFDIR "dbus-session.conf", NULL)) == NETATALK_SRV_ERROR) { +- LOG(log_error, logtype_default, "Error starting '%s'", dbus_path); +- netatalk_exit(EXITERR_CONF); +- } +- +- /* Allow dbus some time to start up */ +- sleep(1); +- } +- +- set_sl_volumes(); +- +- if (atalk_iniparser_getboolean(obj.iniconfig, INISEC_GLOBAL, "start tracker", 1)) { +- system(TRACKER_PREFIX "/bin/tracker-control -s"); +- } +- } +-#endif +- +- + /* run the event loop */ + ret = event_base_dispatch(base); + +-- +1.8.4.1 + Deleted: csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus.patch =================================================================== --- csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus.patch 2014-06-04 18:43:13 UTC (rev 23761) +++ csw/mgar/pkg/netatalk/trunk/files/0001-Disable-dbus.patch 2014-06-04 19:33:17 UTC (rev 23762) @@ -1,48 +0,0 @@ -From 0e56bd27a2801a7d7df210262adb2ec61e6dc03f Mon Sep 17 00:00:00 2001 -From: Ralph Boehme -Date: Sun, 18 May 2014 07:02:00 +0200 -Subject: [PATCH] Disable dbus - ---- - etc/netatalk/netatalk.c | 13 +------------ - 1 file changed, 1 insertion(+), 12 deletions(-) - -diff --git a/etc/netatalk/netatalk.c b/etc/netatalk/netatalk.c -index 640d386..a0e6f80 100644 ---- a/etc/netatalk/netatalk.c -+++ b/etc/netatalk/netatalk.c -@@ -411,22 +411,12 @@ int main(int argc, char **argv) - sigdelset(&blocksigs, SIGHUP); - sigprocmask(SIG_SETMASK, &blocksigs, NULL); - --#ifdef HAVE_TRACKER - if (obj.options.flags & OPTION_SPOTLIGHT) { -+#ifdef HAVE_TRACKER - setenv("DBUS_SESSION_BUS_ADDRESS", "unix:path=" _PATH_STATEDIR "spotlight.ipc", 1); - setenv("XDG_DATA_HOME", _PATH_STATEDIR, 0); - setenv("XDG_CACHE_HOME", _PATH_STATEDIR, 0); - setenv("TRACKER_USE_LOG_FILES", "1", 0); -- -- dbus_path = atalk_iniparser_getstring(obj.iniconfig, INISEC_GLOBAL, "dbus daemon", DBUS_DAEMON_PATH); -- LOG(log_debug, logtype_default, "DBUS: '%s'", dbus_path); -- if ((dbus_pid = run_process(dbus_path, "--config-file=" _PATH_CONFDIR "dbus-session.conf", NULL)) == NETATALK_SRV_ERROR) { -- LOG(log_error, logtype_default, "Error starting '%s'", dbus_path); -- netatalk_exit(EXITERR_CONF); -- } -- -- /* Allow dbus some time to start up */ -- sleep(1); - #endif - - #ifdef HAVE_TRACKER_SPARQL -@@ -437,7 +427,6 @@ int main(int argc, char **argv) - setenv("TRACKER_LANGUAGE_STOPWORDS_DIR", TRACKER_PREFIX "/share/tracker/languages", 0); - #endif - set_sl_volumes(); -- system(TRACKER_PREFIX "/bin/tracker-control -s"); - #endif - } - --- -1.8.4.1 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From slowfranklin at users.sourceforge.net Wed Jun 4 22:47:56 2014 From: slowfranklin at users.sourceforge.net (slowfranklin at users.sourceforge.net) Date: Wed, 4 Jun 2014 20:47:56 +0000 Subject: SF.net SVN: gar:[23763] csw/mgar/pkg/netatalk/trunk Message-ID: <3gkMdh2pzLzsS@mail.opencsw.org> Revision: 23763 http://sourceforge.net/p/gar/code/23763 Author: slowfranklin Date: 2014-06-04 20:47:55 +0000 (Wed, 04 Jun 2014) Log Message: ----------- netatalk/trunk: Add another upstream fix Modified Paths: -------------- csw/mgar/pkg/netatalk/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/netatalk/trunk/files/0003-Spotlight-spotlight-expr-false-broke-the-default-Spo.patch Modified: csw/mgar/pkg/netatalk/trunk/Makefile =================================================================== --- csw/mgar/pkg/netatalk/trunk/Makefile 2014-06-04 19:33:17 UTC (rev 23762) +++ csw/mgar/pkg/netatalk/trunk/Makefile 2014-06-04 20:47:55 UTC (rev 23763) @@ -57,6 +57,7 @@ # will be in 3.1.3: PATCHFILES += 0001-Spotlight-SPARQL-query-optimisations.patch PATCHFILES += 0002-Spotlight-new-options-for-controlling-query-behaviou.patch +PATCHFILES += 0003-Spotlight-spotlight-expr-false-broke-the-default-Spo.patch PRESERVECONF += $(sysconfdir)/afp.conf PRESERVECONF += $(sysconfdir)/extmap.conf Added: csw/mgar/pkg/netatalk/trunk/files/0003-Spotlight-spotlight-expr-false-broke-the-default-Spo.patch =================================================================== --- csw/mgar/pkg/netatalk/trunk/files/0003-Spotlight-spotlight-expr-false-broke-the-default-Spo.patch (rev 0) +++ csw/mgar/pkg/netatalk/trunk/files/0003-Spotlight-spotlight-expr-false-broke-the-default-Spo.patch 2014-06-04 20:47:55 UTC (rev 23763) @@ -0,0 +1,233 @@ +From d6b12788118ea685230333243f762cedf1c4cf1a Mon Sep 17 00:00:00 2001 +From: Ralph Boehme +Date: Wed, 4 Jun 2014 22:42:37 +0200 +Subject: [PATCH 3/3] Spotlight: "spotlight expr = false" broke the default + Spotlight query + +The default Spotlight query a Mac uses is + + *=="test*"cwd || kMDItemTextContent=="test*"cwd + +which is of course using a logic expression. The parser has an extra +rule for catching this (MATCH or MATCH) for the purpose of munging +both expression into a single fts:match SPARQL query. Which means +we shouldn't check whether logic expressions are enabled or not. + +Signed-off-by: Ralph Boehme +--- + etc/spotlight/slmod_sparql_parser.c | 52 ++++++++++++++++++++----------------- + etc/spotlight/slmod_sparql_parser.y | 10 ++++--- + 2 files changed, 35 insertions(+), 27 deletions(-) + +diff --git a/etc/spotlight/slmod_sparql_parser.c b/etc/spotlight/slmod_sparql_parser.c +index 66e0f59..ea7152c 100644 +--- a/etc/spotlight/slmod_sparql_parser.c ++++ b/etc/spotlight/slmod_sparql_parser.c +@@ -524,9 +524,9 @@ static const yytype_int8 yyrhs[] = + /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ + static const yytype_uint8 yyrline[] = + { +- 0, 68, 68, 70, 74, 88, 94, 104, 105, 106, +- 107, 112, 121, 122, 123, 124, 125, 126, 127, 128, +- 132, 136, 137 ++ 0, 68, 68, 70, 74, 88, 94, 102, 103, 104, ++ 105, 112, 125, 126, 127, 128, 129, 130, 131, 132, ++ 136, 140, 141 + }; + #endif + +@@ -1476,8 +1476,6 @@ yyreduce: + /* Line 1792 of yacc.c */ + #line 94 "slmod_sparql_parser.y" + { +- if (!ssp_slq->slq_allow_expr) +- YYABORT; + if ((yyvsp[(1) - (3)].sval) == NULL || (yyvsp[(3) - (3)].sval) == NULL) + YYABORT; + if (strcmp((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)) != 0) +@@ -1489,28 +1487,30 @@ yyreduce: + + case 7: + /* Line 1792 of yacc.c */ +-#line 104 "slmod_sparql_parser.y" ++#line 102 "slmod_sparql_parser.y" + {(yyval.sval) = (yyvsp[(1) - (1)].sval); if ((yyval.sval) == NULL) YYABORT;} + break; + + case 8: + /* Line 1792 of yacc.c */ +-#line 105 "slmod_sparql_parser.y" ++#line 103 "slmod_sparql_parser.y" + {(yyval.sval) = (yyvsp[(1) - (1)].sval);} + break; + + case 9: + /* Line 1792 of yacc.c */ +-#line 106 "slmod_sparql_parser.y" ++#line 104 "slmod_sparql_parser.y" + {(yyval.sval) = talloc_asprintf(ssp_slq, "%s", (yyvsp[(2) - (3)].sval));} + break; + + case 10: + /* Line 1792 of yacc.c */ +-#line 107 "slmod_sparql_parser.y" ++#line 105 "slmod_sparql_parser.y" + { +- if (!ssp_slq->slq_allow_expr) ++ if (!ssp_slq->slq_allow_expr) { ++ yyerror("Spotlight queries with logic expressions are disabled"); + YYABORT; ++ } + (yyval.sval) = talloc_asprintf(ssp_slq, "%s . %s", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)); + } + break; +@@ -1519,6 +1519,10 @@ yyreduce: + /* Line 1792 of yacc.c */ + #line 112 "slmod_sparql_parser.y" + { ++ if (!ssp_slq->slq_allow_expr) { ++ yyerror("Spotlight queries with logic expressions are disabled"); ++ YYABORT; ++ } + if (strcmp((yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)) != 0) + (yyval.sval) = talloc_asprintf(ssp_slq, "{ %s } UNION { %s }", (yyvsp[(1) - (3)].sval), (yyvsp[(3) - (3)].sval)); + else +@@ -1528,73 +1532,73 @@ yyreduce: + + case 12: + /* Line 1792 of yacc.c */ +-#line 121 "slmod_sparql_parser.y" ++#line 125 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '=', (yyvsp[(4) - (5)].sval));} + break; + + case 13: + /* Line 1792 of yacc.c */ +-#line 122 "slmod_sparql_parser.y" ++#line 126 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '!', (yyvsp[(4) - (5)].sval));} + break; + + case 14: + /* Line 1792 of yacc.c */ +-#line 123 "slmod_sparql_parser.y" ++#line 127 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '<', (yyvsp[(4) - (5)].sval));} + break; + + case 15: + /* Line 1792 of yacc.c */ +-#line 124 "slmod_sparql_parser.y" ++#line 128 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (5)].sval), '>', (yyvsp[(4) - (5)].sval));} + break; + + case 16: + /* Line 1792 of yacc.c */ +-#line 125 "slmod_sparql_parser.y" ++#line 129 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '=', (yyvsp[(4) - (6)].sval));} + break; + + case 17: + /* Line 1792 of yacc.c */ +-#line 126 "slmod_sparql_parser.y" ++#line 130 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '!', (yyvsp[(4) - (6)].sval));} + break; + + case 18: + /* Line 1792 of yacc.c */ +-#line 127 "slmod_sparql_parser.y" ++#line 131 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '<', (yyvsp[(4) - (6)].sval));} + break; + + case 19: + /* Line 1792 of yacc.c */ +-#line 128 "slmod_sparql_parser.y" ++#line 132 "slmod_sparql_parser.y" + {(yyval.sval) = map_expr((yyvsp[(1) - (6)].sval), '>', (yyvsp[(4) - (6)].sval));} + break; + + case 20: + /* Line 1792 of yacc.c */ +-#line 132 "slmod_sparql_parser.y" ++#line 136 "slmod_sparql_parser.y" + {(yyval.sval) = map_daterange((yyvsp[(3) - (8)].sval), (yyvsp[(5) - (8)].tval), (yyvsp[(7) - (8)].tval));} + break; + + case 21: + /* Line 1792 of yacc.c */ +-#line 136 "slmod_sparql_parser.y" ++#line 140 "slmod_sparql_parser.y" + {(yyval.tval) = isodate2unix((yyvsp[(3) - (4)].sval));} + break; + + case 22: + /* Line 1792 of yacc.c */ +-#line 137 "slmod_sparql_parser.y" ++#line 141 "slmod_sparql_parser.y" + {(yyval.tval) = atoi((yyvsp[(1) - (1)].sval)) + SPRAW_TIME_OFFSET;} + break; + + + /* Line 1792 of yacc.c */ +-#line 1598 "slmod_sparql_parser.c" ++#line 1602 "slmod_sparql_parser.c" + default: break; + } + /* User semantic actions sometimes alter yychar, and that requires +@@ -1826,7 +1830,7 @@ yyreturn: + + + /* Line 2055 of yacc.c */ +-#line 140 "slmod_sparql_parser.y" ++#line 144 "slmod_sparql_parser.y" + + + static time_t isodate2unix(const char *s) +@@ -2034,7 +2038,7 @@ int main(int argc, char **argv) + struct vol *vol = talloc_zero(ssp_slq, struct vol); + vol->v_path = "/Volumes/test"; + ssp_slq->slq_vol = vol; +- ssp_slq->slq_allow_expr = true; ++ ssp_slq->slq_allow_expr = false; + sparqlvar = 'a'; + + s = yy_scan_string(argv[1]); +diff --git a/etc/spotlight/slmod_sparql_parser.y b/etc/spotlight/slmod_sparql_parser.y +index e4069bb..76d8b5a 100644 +--- a/etc/spotlight/slmod_sparql_parser.y ++++ b/etc/spotlight/slmod_sparql_parser.y +@@ -92,8 +92,6 @@ BOOL { + YYABORT; + } + | match OR match { +- if (!ssp_slq->slq_allow_expr) +- YYABORT; + if ($1 == NULL || $3 == NULL) + YYABORT; + if (strcmp($1, $3) != 0) +@@ -105,11 +103,17 @@ BOOL { + | function {$$ = $1;} + | OBRACE expr CBRACE {$$ = talloc_asprintf(ssp_slq, "%s", $2);} + | expr AND expr { +- if (!ssp_slq->slq_allow_expr) ++ if (!ssp_slq->slq_allow_expr) { ++ yyerror("Spotlight queries with logic expressions are disabled"); + YYABORT; ++ } + $$ = talloc_asprintf(ssp_slq, "%s . %s", $1, $3); + } + | expr OR expr { ++ if (!ssp_slq->slq_allow_expr) { ++ yyerror("Spotlight queries with logic expressions are disabled"); ++ YYABORT; ++ } + if (strcmp($1, $3) != 0) + $$ = talloc_asprintf(ssp_slq, "{ %s } UNION { %s }", $1, $3); + else +-- +1.9.3 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Thu Jun 5 15:08:54 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 13:08:54 +0000 Subject: SF.net SVN: gar:[23764] csw/mgar/pkg/openssl1/trunk Message-ID: <3gknPc44kSzX6@mail.opencsw.org> Revision: 23764 http://sourceforge.net/p/gar/code/23764 Author: chninkel Date: 2014-06-05 13:08:47 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl1/trunk: removed unreleased 1.0.1f with heartbleed backported patch Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/files/changelog.CSW Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-04 20:47:55 UTC (rev 23763) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-05 13:08:47 UTC (rev 23764) @@ -15,7 +15,7 @@ ###### Package information ####### NAME = openssl -VERSION = 1.0.1f +VERSION = 1.0.1g GARTYPE = v2 SONAME=$(shell echo $(VERSION) | tr -d '[a-z]') @@ -311,4 +311,3 @@ post-merge-all: merge-doc install-conf-misc -SPKG_REVSTAMP := $(SPKG_REVSTAMP)_rev=heartbleed Modified: csw/mgar/pkg/openssl1/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/changelog.CSW 2014-06-04 20:47:55 UTC (rev 23763) +++ csw/mgar/pkg/openssl1/trunk/files/changelog.CSW 2014-06-05 13:08:47 UTC (rev 23764) @@ -1,9 +1,3 @@ -openssl (1.0.1g,rev=2014.04.08) unstable - - * 1.0.1g does not build. Revert to 1.0.1f and add backported changes. - - -- Maciej Blizinski Tue, 08 Apr 2014 16:07:48 +0100 - openssl (1.0.1g,rev=2014.04.07) unstable * New upstream release. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Thu Jun 5 15:10:18 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 13:10:18 +0000 Subject: SF.net SVN: gar:[23765] csw/mgar/pkg/openssl1/trunk Message-ID: <3gknR53L1zzbM@mail.opencsw.org> Revision: 23765 http://sourceforge.net/p/gar/code/23765 Author: chninkel Date: 2014-06-05 13:10:16 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl1/trunk: update to 1.0.1h Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/checksums csw/mgar/pkg/openssl1/trunk/files/changelog.CSW Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-05 13:08:47 UTC (rev 23764) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-05 13:10:16 UTC (rev 23765) @@ -15,7 +15,7 @@ ###### Package information ####### NAME = openssl -VERSION = 1.0.1g +VERSION = 1.0.1h GARTYPE = v2 SONAME=$(shell echo $(VERSION) | tr -d '[a-z]') Modified: csw/mgar/pkg/openssl1/trunk/checksums =================================================================== --- csw/mgar/pkg/openssl1/trunk/checksums 2014-06-05 13:08:47 UTC (rev 23764) +++ csw/mgar/pkg/openssl1/trunk/checksums 2014-06-05 13:10:16 UTC (rev 23765) @@ -1 +1 @@ -f26b09c028a0541cab33da697d522b25 openssl-1.0.1f.tar.gz +8d6d684a9430d5cc98a62a5d8fbda8cf openssl-1.0.1h.tar.gz Modified: csw/mgar/pkg/openssl1/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/changelog.CSW 2014-06-05 13:08:47 UTC (rev 23764) +++ csw/mgar/pkg/openssl1/trunk/files/changelog.CSW 2014-06-05 13:10:16 UTC (rev 23765) @@ -1,3 +1,9 @@ +openssl (1.0.1h,rev=2014.05.06) unstable + + * New upstream release. + + -- yann rouillard Thu, 05 Jun 2014 15:09:12 +0200 + openssl (1.0.1g,rev=2014.04.07) unstable * New upstream release. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Thu Jun 5 15:14:44 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 13:14:44 +0000 Subject: SF.net SVN: gar:[23766] csw/mgar/pkg/openssl/trunk Message-ID: <3gknXD06Z4zg3@mail.opencsw.org> Revision: 23766 http://sourceforge.net/p/gar/code/23766 Author: chninkel Date: 2014-06-05 13:14:40 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl/trunk: updated to 0.9.8za Modified Paths: -------------- csw/mgar/pkg/openssl/trunk/Makefile csw/mgar/pkg/openssl/trunk/checksums csw/mgar/pkg/openssl/trunk/files/changelog.CSW Modified: csw/mgar/pkg/openssl/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 13:10:16 UTC (rev 23765) +++ csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 13:14:40 UTC (rev 23766) @@ -13,7 +13,7 @@ ###### Package information ####### NAME = openssl -VERSION = 0.9.8y +VERSION = 0.9.8za GARTYPE = v2 DESCRIPTION = The Open Source toolkit for SSL and TLS @@ -113,7 +113,7 @@ UPSTREAM_MASTER_SITES = http://www.openssl.org/source/ # We define upstream file regex so we can be notifed of new upstream software release -UFILES_REGEX = $(NAME)-(0.9.8[a-z]).tar.gz +UFILES_REGEX = $(NAME)-(0.9.8[a-z][a-z]).tar.gz DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWlibssl0-9-8.prototype-i386 CSWlibssl0-9-8.prototype-sparc Modified: csw/mgar/pkg/openssl/trunk/checksums =================================================================== --- csw/mgar/pkg/openssl/trunk/checksums 2014-06-05 13:10:16 UTC (rev 23765) +++ csw/mgar/pkg/openssl/trunk/checksums 2014-06-05 13:14:40 UTC (rev 23766) @@ -1 +1 @@ -47c7fb37f78c970f1d30aa2f9e9e26d8 openssl-0.9.8y.tar.gz +2f989915f8fea49aa1bc37aa58500cce openssl-0.9.8za.tar.gz Modified: csw/mgar/pkg/openssl/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssl/trunk/files/changelog.CSW 2014-06-05 13:10:16 UTC (rev 23765) +++ csw/mgar/pkg/openssl/trunk/files/changelog.CSW 2014-06-05 13:14:40 UTC (rev 23766) @@ -1,3 +1,9 @@ +openssl (0.9.8za,REV=2014.05.06) unstable + + * New upstream release. + + -- Yann Rouillard Thu, 05 Jun 2014 15:12:30 +0200 + openssl (0.9.8y,REV=2013.07.09) unstable * Removed checkinstall, preinstall and postinstall scripts This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Thu Jun 5 16:11:41 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 14:11:41 +0000 Subject: SF.net SVN: gar:[23767] csw/mgar/pkg/openssl1/trunk Message-ID: <3gkpp95mxrzmW@mail.opencsw.org> Revision: 23767 http://sourceforge.net/p/gar/code/23767 Author: chninkel Date: 2014-06-05 14:11:41 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl1/trunk: remove backported patches Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0076.patch csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0160.patch Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-05 13:14:40 UTC (rev 23766) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-05 14:11:41 UTC (rev 23767) @@ -107,10 +107,6 @@ PATCHFILES += more_configure_targets.patch$(PATCH_SUFFIX) -PATCHFILES += CVE-2014-0076.patch -PATCHFILES += CVE-2014-0160.patch - - #PATCHFILES += fix-test-failure.patch # We install engines libraries in /opt/csw/lib/engines/1.0.0/ Deleted: csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0076.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0076.patch 2014-06-05 13:14:40 UTC (rev 23766) +++ csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0076.patch 2014-06-05 14:11:41 UTC (rev 23767) @@ -1,167 +0,0 @@ -Description: fix side-channel attack on Montgomery ladder implementation -Origin: upstream, http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=4b7a4ba29cafa432fc4266fe6e59e60bc1c96332 -Origin: upstream, http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=40acdb192e035f463d3c39c23fd8a68cf54df378 -Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742923 - -Index: openssl-1.0.1f/crypto/bn/bn.h -=================================================================== ---- openssl-1.0.1f.orig/crypto/bn/bn.h 2014-01-06 08:47:42.000000000 -0500 -+++ openssl-1.0.1f/crypto/bn/bn.h 2014-04-07 15:37:00.924343048 -0400 -@@ -538,6 +538,8 @@ - BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n,BN_CTX *ctx); - -+void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); -+ - /* Deprecated versions */ - #ifndef OPENSSL_NO_DEPRECATED - BIGNUM *BN_generate_prime(BIGNUM *ret,int bits,int safe, -@@ -774,11 +776,20 @@ - - #define bn_fix_top(a) bn_check_top(a) - -+#define bn_check_size(bn, bits) bn_wcheck_size(bn, ((bits+BN_BITS2-1))/BN_BITS2) -+#define bn_wcheck_size(bn, words) \ -+ do { \ -+ const BIGNUM *_bnum2 = (bn); \ -+ assert(words <= (_bnum2)->dmax && words >= (_bnum2)->top); \ -+ } while(0) -+ - #else /* !BN_DEBUG */ - - #define bn_pollute(a) - #define bn_check_top(a) - #define bn_fix_top(a) bn_correct_top(a) -+#define bn_check_size(bn, bits) -+#define bn_wcheck_size(bn, words) - - #endif - -Index: openssl-1.0.1f/crypto/bn/bn_lib.c -=================================================================== ---- openssl-1.0.1f.orig/crypto/bn/bn_lib.c 2014-01-06 08:47:42.000000000 -0500 -+++ openssl-1.0.1f/crypto/bn/bn_lib.c 2014-04-07 15:37:00.924343048 -0400 -@@ -824,3 +824,55 @@ - } - return bn_cmp_words(a,b,cl); - } -+ -+/* -+ * Constant-time conditional swap of a and b. -+ * a and b are swapped if condition is not 0. The code assumes that at most one bit of condition is set. -+ * nwords is the number of words to swap. The code assumes that at least nwords are allocated in both a and b, -+ * and that no more than nwords are used by either a or b. -+ * a and b cannot be the same number -+ */ -+void BN_consttime_swap(BN_ULONG condition, BIGNUM *a, BIGNUM *b, int nwords) -+ { -+ BN_ULONG t; -+ int i; -+ -+ bn_wcheck_size(a, nwords); -+ bn_wcheck_size(b, nwords); -+ -+ assert(a != b); -+ assert((condition & (condition - 1)) == 0); -+ assert(sizeof(BN_ULONG) >= sizeof(int)); -+ -+ condition = ((condition - 1) >> (BN_BITS2 - 1)) - 1; -+ -+ t = (a->top^b->top) & condition; -+ a->top ^= t; -+ b->top ^= t; -+ -+#define BN_CONSTTIME_SWAP(ind) \ -+ do { \ -+ t = (a->d[ind] ^ b->d[ind]) & condition; \ -+ a->d[ind] ^= t; \ -+ b->d[ind] ^= t; \ -+ } while (0) -+ -+ -+ switch (nwords) { -+ default: -+ for (i = 10; i < nwords; i++) -+ BN_CONSTTIME_SWAP(i); -+ /* Fallthrough */ -+ case 10: BN_CONSTTIME_SWAP(9); /* Fallthrough */ -+ case 9: BN_CONSTTIME_SWAP(8); /* Fallthrough */ -+ case 8: BN_CONSTTIME_SWAP(7); /* Fallthrough */ -+ case 7: BN_CONSTTIME_SWAP(6); /* Fallthrough */ -+ case 6: BN_CONSTTIME_SWAP(5); /* Fallthrough */ -+ case 5: BN_CONSTTIME_SWAP(4); /* Fallthrough */ -+ case 4: BN_CONSTTIME_SWAP(3); /* Fallthrough */ -+ case 3: BN_CONSTTIME_SWAP(2); /* Fallthrough */ -+ case 2: BN_CONSTTIME_SWAP(1); /* Fallthrough */ -+ case 1: BN_CONSTTIME_SWAP(0); -+ } -+#undef BN_CONSTTIME_SWAP -+} -Index: openssl-1.0.1f/crypto/ec/ec2_mult.c -=================================================================== ---- openssl-1.0.1f.orig/crypto/ec/ec2_mult.c 2014-01-06 08:47:42.000000000 -0500 -+++ openssl-1.0.1f/crypto/ec/ec2_mult.c 2014-04-07 15:37:00.924343048 -0400 -@@ -208,11 +208,15 @@ - return ret; - } - -+ - /* Computes scalar*point and stores the result in r. - * point can not equal r. -- * Uses algorithm 2P of -+ * Uses a modified algorithm 2P of - * Lopez, J. and Dahab, R. "Fast multiplication on elliptic curves over - * GF(2^m) without precomputation" (CHES '99, LNCS 1717). -+ * -+ * To protect against side-channel attack the function uses constant time swap, -+ * avoiding conditional branches. - */ - static int ec_GF2m_montgomery_point_multiply(const EC_GROUP *group, EC_POINT *r, const BIGNUM *scalar, - const EC_POINT *point, BN_CTX *ctx) -@@ -246,6 +250,11 @@ - x2 = &r->X; - z2 = &r->Y; - -+ bn_wexpand(x1, group->field.top); -+ bn_wexpand(z1, group->field.top); -+ bn_wexpand(x2, group->field.top); -+ bn_wexpand(z2, group->field.top); -+ - if (!BN_GF2m_mod_arr(x1, &point->X, group->poly)) goto err; /* x1 = x */ - if (!BN_one(z1)) goto err; /* z1 = 1 */ - if (!group->meth->field_sqr(group, z2, x1, ctx)) goto err; /* z2 = x1^2 = x^2 */ -@@ -270,16 +279,12 @@ - word = scalar->d[i]; - while (mask) - { -- if (word & mask) -- { -- if (!gf2m_Madd(group, &point->X, x1, z1, x2, z2, ctx)) goto err; -- if (!gf2m_Mdouble(group, x2, z2, ctx)) goto err; -- } -- else -- { -- if (!gf2m_Madd(group, &point->X, x2, z2, x1, z1, ctx)) goto err; -- if (!gf2m_Mdouble(group, x1, z1, ctx)) goto err; -- } -+ BN_consttime_swap(word & mask, x1, x2, group->field.top); -+ BN_consttime_swap(word & mask, z1, z2, group->field.top); -+ if (!gf2m_Madd(group, &point->X, x2, z2, x1, z1, ctx)) goto err; -+ if (!gf2m_Mdouble(group, x1, z1, ctx)) goto err; -+ BN_consttime_swap(word & mask, x1, x2, group->field.top); -+ BN_consttime_swap(word & mask, z1, z2, group->field.top); - mask >>= 1; - } - mask = BN_TBIT; -Index: openssl-1.0.1f/util/libeay.num -=================================================================== ---- openssl-1.0.1f.orig/util/libeay.num 2014-01-06 09:35:55.000000000 -0500 -+++ openssl-1.0.1f/util/libeay.num 2014-04-07 15:37:03.976343033 -0400 -@@ -3511,6 +3511,7 @@ - d2i_ASIdOrRange 3904 EXIST::FUNCTION:RFC3779 - i2d_ASIdentifiers 3905 EXIST::FUNCTION:RFC3779 - CRYPTO_memcmp 3906 EXIST::FUNCTION: -+BN_consttime_swap 3907 EXIST::FUNCTION: - SEED_decrypt 3908 EXIST::FUNCTION:SEED - SEED_encrypt 3909 EXIST::FUNCTION:SEED - SEED_cbc_encrypt 3910 EXIST::FUNCTION:SEED Deleted: csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0160.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0160.patch 2014-06-05 13:14:40 UTC (rev 23766) +++ csw/mgar/pkg/openssl1/trunk/files/CVE-2014-0160.patch 2014-06-05 14:11:41 UTC (rev 23767) @@ -1,94 +0,0 @@ -Description: fix memory disclosure in TLS heartbeat extension -Origin: upstream, http://git.openssl.org/gitweb/?p=openssl.git;a=commit;h=96db9023b881d7cd9f379b0c154650d6c108e9a3 - -Index: openssl-1.0.1c/ssl/d1_both.c -=================================================================== ---- openssl-1.0.1c.orig/ssl/d1_both.c 2014-04-07 15:44:25.208340860 -0400 -+++ openssl-1.0.1c/ssl/d1_both.c 2014-04-07 15:44:25.204340860 -0400 -@@ -1458,26 +1458,36 @@ - unsigned int payload; - unsigned int padding = 16; /* Use minimum padding */ - -- /* Read type and payload length first */ -- hbtype = *p++; -- n2s(p, payload); -- pl = p; -- - if (s->msg_callback) - s->msg_callback(0, s->version, TLS1_RT_HEARTBEAT, - &s->s3->rrec.data[0], s->s3->rrec.length, - s, s->msg_callback_arg); - -+ /* Read type and payload length first */ -+ if (1 + 2 + 16 > s->s3->rrec.length) -+ return 0; /* silently discard */ -+ hbtype = *p++; -+ n2s(p, payload); -+ if (1 + 2 + payload + 16 > s->s3->rrec.length) -+ return 0; /* silently discard per RFC 6520 sec. 4 */ -+ pl = p; -+ - if (hbtype == TLS1_HB_REQUEST) - { - unsigned char *buffer, *bp; -+ unsigned int write_length = 1 /* heartbeat type */ + -+ 2 /* heartbeat length */ + -+ payload + padding; - int r; - -+ if (write_length > SSL3_RT_MAX_PLAIN_LENGTH) -+ return 0; -+ - /* Allocate memory for the response, size is 1 byte - * message type, plus 2 bytes payload length, plus - * payload, plus padding - */ -- buffer = OPENSSL_malloc(1 + 2 + payload + padding); -+ buffer = OPENSSL_malloc(write_length); - bp = buffer; - - /* Enter response type, length and copy payload */ -@@ -1488,11 +1498,11 @@ - /* Random padding */ - RAND_pseudo_bytes(bp, padding); - -- r = dtls1_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, 3 + payload + padding); -+ r = dtls1_write_bytes(s, TLS1_RT_HEARTBEAT, buffer, write_length); - - if (r >= 0 && s->msg_callback) - s->msg_callback(1, s->version, TLS1_RT_HEARTBEAT, -- buffer, 3 + payload + padding, -+ buffer, write_length, - s, s->msg_callback_arg); - - OPENSSL_free(buffer); -Index: openssl-1.0.1c/ssl/t1_lib.c -=================================================================== ---- openssl-1.0.1c.orig/ssl/t1_lib.c 2014-04-07 15:44:25.208340860 -0400 -+++ openssl-1.0.1c/ssl/t1_lib.c 2014-04-07 15:44:25.204340860 -0400 -@@ -2441,16 +2441,20 @@ - unsigned int payload; - unsigned int padding = 16; /* Use minimum padding */ - -- /* Read type and payload length first */ -- hbtype = *p++; -- n2s(p, payload); -- pl = p; -- - if (s->msg_callback) - s->msg_callback(0, s->version, TLS1_RT_HEARTBEAT, - &s->s3->rrec.data[0], s->s3->rrec.length, - s, s->msg_callback_arg); - -+ /* Read type and payload length first */ -+ if (1 + 2 + 16 > s->s3->rrec.length) -+ return 0; /* silently discard */ -+ hbtype = *p++; -+ n2s(p, payload); -+ if (1 + 2 + payload + 16 > s->s3->rrec.length) -+ return 0; /* silently discard per RFC 6520 sec. 4 */ -+ pl = p; -+ - if (hbtype == TLS1_HB_REQUEST) - { - unsigned char *buffer, *bp; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Thu Jun 5 21:47:43 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 19:47:43 +0000 Subject: SF.net SVN: gar:[23768] csw/mgar/pkg/openssl/trunk Message-ID: <3gkyFf4HQjz1Fw@mail.opencsw.org> Revision: 23768 http://sourceforge.net/p/gar/code/23768 Author: chninkel Date: 2014-06-05 19:47:37 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl/trunk: fix a missing limits.h header inclusion Modified Paths: -------------- csw/mgar/pkg/openssl/trunk/Makefile csw/mgar/pkg/openssl/trunk/files/changelog.CSW Added Paths: ----------- csw/mgar/pkg/openssl/trunk/files/0005-add-missing-limits.h-header-inclusion-for-INT_MAX.patch Modified: csw/mgar/pkg/openssl/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 14:11:41 UTC (rev 23767) +++ csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 19:47:37 UTC (rev 23768) @@ -134,7 +134,11 @@ # (patchs taken from Debian Package) PATCHFILES += block_bad_certificates.patch +# the ssl/s3_pkt.c file uses the INT_MAX macro, this requires +# limits.h to be included on Solaris +PATCHFILES += 0005-add-missing-limits.h-header-inclusion-for-INT_MAX.patch + LICENSE=LICENSE ##### Build and installation information ##### Added: csw/mgar/pkg/openssl/trunk/files/0005-add-missing-limits.h-header-inclusion-for-INT_MAX.patch =================================================================== --- csw/mgar/pkg/openssl/trunk/files/0005-add-missing-limits.h-header-inclusion-for-INT_MAX.patch (rev 0) +++ csw/mgar/pkg/openssl/trunk/files/0005-add-missing-limits.h-header-inclusion-for-INT_MAX.patch 2014-06-05 19:47:37 UTC (rev 23768) @@ -0,0 +1,24 @@ +From 0bc7d6f12c9b55be62be61cea2c6d4db98b328e4 Mon Sep 17 00:00:00 2001 +From: Yann Rouillard +Date: Thu, 5 Jun 2014 21:43:06 +0200 +Subject: [PATCH] add missing limits.h header inclusion for INT_MAX + +--- + ssl/s3_pkt.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ssl/s3_pkt.c b/ssl/s3_pkt.c +index c087fee..32a7a29 100644 +--- a/ssl/s3_pkt.c ++++ b/ssl/s3_pkt.c +@@ -111,6 +111,7 @@ + + #include + #include ++#include + #define USE_SOCKETS + #include "ssl_locl.h" + #include +-- +1.8.4.1 + Modified: csw/mgar/pkg/openssl/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssl/trunk/files/changelog.CSW 2014-06-05 14:11:41 UTC (rev 23767) +++ csw/mgar/pkg/openssl/trunk/files/changelog.CSW 2014-06-05 19:47:37 UTC (rev 23768) @@ -1,6 +1,8 @@ openssl (0.9.8za,REV=2014.05.06) unstable * New upstream release. + * add a new patch to fix a missing header inclusion: + 0005-add-missing-limits.h-header-inclusion-for-INT_MAX.patch -- Yann Rouillard Thu, 05 Jun 2014 15:12:30 +0200 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Thu Jun 5 22:22:06 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 20:22:06 +0000 Subject: SF.net SVN: gar:[23769] csw/mgar/pkg/openssl/trunk/Makefile Message-ID: <3gkz1L0MHWz1M5@mail.opencsw.org> Revision: 23769 http://sourceforge.net/p/gar/code/23769 Author: chninkel Date: 2014-06-05 20:21:59 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl/trunk: add a checkpkg override for a false alarm Modified Paths: -------------- csw/mgar/pkg/openssl/trunk/Makefile Modified: csw/mgar/pkg/openssl/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 19:47:37 UTC (rev 23768) +++ csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 20:21:59 UTC (rev 23769) @@ -105,8 +105,9 @@ CHECKPKG_OVERRIDES_CSWlibssl-dev += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl_dev/FAQ CHECKPKG_OVERRIDES_CSWlibssl-dev += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl_dev/INSTALL +# False alert +CHECKPKG_OVERRIDES_CSWopenssl-utils += file-needed-but-no-package-satisfies-it|/etc/opt/csw/ssl/openssl.cnf|CSWopenssl-utils|contains|symlink|/opt/csw/ssl/openssl.cnf|which|needs|the|target|file:|/etc/opt/csw/ssl/openssl.cnf - ###### Upstream and opencsw files information ####### MASTER_SITES = http://www.openssl.org/source/ http://openssl.org/news/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From maciej at opencsw.org Thu Jun 5 23:18:51 2014 From: maciej at opencsw.org (=?UTF-8?Q?Maciej_=28Matchek=29_Blizi=C5=84ski?=) Date: Thu, 5 Jun 2014 22:18:51 +0100 Subject: SF.net SVN: gar:[23769] csw/mgar/pkg/openssl/trunk/Makefile In-Reply-To: <3gkz1L0MHWz1M5@mail.opencsw.org> References: <3gkz1L0MHWz1M5@mail.opencsw.org> Message-ID: On Thu, Jun 5, 2014 at 9:22 PM, wrote: > +# False alert > +CHECKPKG_OVERRIDES_CSWopenssl-utils += file-needed-but-no-package-satisfies-it|/etc/opt/csw/ssl/openssl.cnf|CSWopenssl-utils|contains|symlink|/opt/csw/ssl/openssl.cnf|which|needs|the|target|file:|/etc/opt/csw/ssl/openssl.cnf Hm, I tend to think that there is some legitimacy to this alert. It's not just a spurious false alert out of nowhere. After all, the package does contain a dangling symlink, as far as pkgmap is concerned, that's a fact. :-) Maybe the class action script should create the /opt/csw/etc symlinks? That would keep all this logic in once place. Maciej From chninkel at users.sourceforge.net Fri Jun 6 01:36:01 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 23:36:01 +0000 Subject: SF.net SVN: gar:[23770] csw/mgar/pkg/openssl/trunk Message-ID: <3gl3LR2BXbzHm@mail.opencsw.org> Revision: 23770 http://sourceforge.net/p/gar/code/23770 Author: chninkel Date: 2014-06-05 23:35:58 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl/trunk: remove the CSWlibssl-dev and CSWopenssl-utils packages, they are generated by the openssl1 recipe Modified Paths: -------------- csw/mgar/pkg/openssl/trunk/Makefile Removed Paths: ------------- csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-i386 csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-sparc csw/mgar/pkg/openssl/trunk/files/CSWopenssl-utils.prototype Modified: csw/mgar/pkg/openssl/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 20:21:59 UTC (rev 23769) +++ csw/mgar/pkg/openssl/trunk/Makefile 2014-06-05 23:35:58 UTC (rev 23770) @@ -24,26 +24,12 @@ as a full-strength general-purpose cryptography library. endef -PACKAGES = CSWlibssl0-9-8 CSWlibssl-dev CSWopenssl-utils +PACKAGES = CSWlibssl0-9-8 SPKG_DESC_CSWlibssl0-9-8 = Openssl runtime libraries CATALOGNAME_CSWlibssl0-9-8 = libssl0_9_8 RUNTIME_DEP_PKGS_CSWlibssl0-9-8 = CSWcacertificates -SPKG_DESC_CSWlibssl-dev = Openssl development libraries and headers -CATALOGNAME_CSWlibssl-dev = libssl_dev -RUNTIME_DEP_PKGS_CSWlibssl-dev = CSWlibssl0-9-8 - -SPKG_DESC_CSWopenssl-utils = Openssl binaries and related tools -CATALOGNAME_CSWopenssl-utils = openssl_utils -RUNTIME_DEP_PKGS_CSWopenssl-utils = CSWlibssl0-9-8 -SPKG_CLASSES_CSWopenssl-utils = none cswpreserveconf -OBSOLETED_BY_CSWopenssl-utils = CSWosslutils -CHECKPKG_OVERRIDES_CSWosslutils += surplus-dependency|CSWopenssl-utils - -# we use sun perl not csw one -CHECKPKG_OVERRIDES_CSWopenssl-utils += missing-dependency|CSWperl - #CHECKPKG_OVERRIDES_CSWlibssl0-9-8 += surplus-dependency|CSWcacertificates # this package contains several libraries files and we will not split @@ -78,36 +64,11 @@ CHECKPKG_OVERRIDES_CSWlibssl0-9-8 += no-direct-binding|/opt/csw/lib/pentium_pro/libssl.so.0.9.7|is|not|directly|bound|to|soname|libcrypto.so.0.9.7 endif - -# we do ship .a files in the devel package -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/libcrypto.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/libssl.a -ifeq ($(shell /usr/bin/uname -p),sparc) -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv8plus+vis/libcrypto.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv8plus+vis/libssl.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv9/libcrypto.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/sparcv9/libssl.a -else -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/amd64/libcrypto.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/amd64/libssl.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/pentium_pro/libcrypto.a -CHECKPKG_OVERRIDES_CSWlibssl-dev += discouraged-path-in-pkgmap|/opt/csw/lib/pentium_pro/libssl.a -endif - # the /usr/local references in the documents files are relevant -CHECKPKG_OVERRIDES_CSWopenssl-utils += file-with-bad-content|/usr/local|root/opt/csw/share/doc/openssl_utils/FAQ -CHECKPKG_OVERRIDES_CSWopenssl-utils += file-with-bad-content|/usr/local|root/opt/csw/share/doc/openssl_utils/INSTALL -CHECKPKG_OVERRIDES_CSWopenssl-utils += file-with-bad-content|/usr/local|root/opt/csw/share/doc/openssl_utils/CHANGES CHECKPKG_OVERRIDES_CSWlibssl0-9-8 += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl0_9_8/INSTALL CHECKPKG_OVERRIDES_CSWlibssl0-9-8 += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl0_9_8/FAQ CHECKPKG_OVERRIDES_CSWlibssl0-9-8 += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl0_9_8/CHANGES -CHECKPKG_OVERRIDES_CSWlibssl-dev += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl_dev/CHANGES -CHECKPKG_OVERRIDES_CSWlibssl-dev += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl_dev/FAQ -CHECKPKG_OVERRIDES_CSWlibssl-dev += file-with-bad-content|/usr/local|root/opt/csw/share/doc/libssl_dev/INSTALL -# False alert -CHECKPKG_OVERRIDES_CSWopenssl-utils += file-needed-but-no-package-satisfies-it|/etc/opt/csw/ssl/openssl.cnf|CSWopenssl-utils|contains|symlink|/opt/csw/ssl/openssl.cnf|which|needs|the|target|file:|/etc/opt/csw/ssl/openssl.cnf - ###### Upstream and opencsw files information ####### MASTER_SITES = http://www.openssl.org/source/ http://openssl.org/news/ @@ -118,8 +79,6 @@ DISTFILES = $(NAME)-$(VERSION).tar.gz DISTFILES += CSWlibssl0-9-8.prototype-i386 CSWlibssl0-9-8.prototype-sparc -DISTFILES += CSWlibssl-dev.prototype-i386 CSWlibssl-dev.prototype-sparc -DISTFILES += CSWopenssl-utils.prototype DISTFILES += changelog.CSW README.CSW DOCFILES = CHANGES CHANGES.SSLeay PROBLEMS README FAQ README.ASN1 INSTALL NEWS README.ENGINE @@ -241,19 +200,10 @@ done @$(MAKECOOKIE) -install-certs: - [ -f $(PKGROOT)$(prefix)/ssl/openssl.cnf ] && \ - ginstall -D $(PKGROOT)$(prefix)/ssl/openssl.cnf $(PKGROOT)$(sysconfdir)/ssl/openssl.cnf.CSW - -fix-paths: - gsed -i -e 's,/usr/local/ssl/lib,/opt/csw/etc/ssl,' $(PKGROOT)$(mandir)/man1/ca.1 - gsed -i -e 's,/usr/local/ssl,/opt/csw/ssl,' $(PKGROOT)$(bindir)/c_rehash - @$(MAKECOOKIE) - install-oldlibs: $(addprefix install-oldlibs-,$(OLDLIBS)) install-oldlibs-%: @echo " ==> Installing old libraries $* from archive oldlibs.$*-$(GARCH).tar.gz" cd $(PKGROOT) && gunzip -c $(CURDIR)/$(FILEDIR)/oldlibs.$*-$(GARCH).tar.gz | tar xvf - @$(MAKECOOKIE) -pre-package: install-certs install-oldlibs install-changelog install-doc fix-paths +pre-package: install-oldlibs install-changelog install-doc Deleted: csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-i386 =================================================================== --- csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-i386 2014-06-05 20:21:59 UTC (rev 23769) +++ csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-i386 2014-06-05 23:35:58 UTC (rev 23770) @@ -1,1065 +0,0 @@ -d none /opt/csw/include/openssl 0755 root bin -f none /opt/csw/include/openssl/aes.h 0644 root bin -f none /opt/csw/include/openssl/asn1.h 0644 root bin -f none /opt/csw/include/openssl/asn1_mac.h 0644 root bin -f none /opt/csw/include/openssl/asn1t.h 0644 root bin -f none /opt/csw/include/openssl/bio.h 0644 root bin -f none /opt/csw/include/openssl/blowfish.h 0644 root bin -f none /opt/csw/include/openssl/bn.h 0644 root bin -f none /opt/csw/include/openssl/buffer.h 0644 root bin -f none /opt/csw/include/openssl/cast.h 0644 root bin -f none /opt/csw/include/openssl/comp.h 0644 root bin -f none /opt/csw/include/openssl/conf.h 0644 root bin -f none /opt/csw/include/openssl/conf_api.h 0644 root bin -f none /opt/csw/include/openssl/crypto.h 0644 root bin -f none /opt/csw/include/openssl/des.h 0644 root bin -f none /opt/csw/include/openssl/des_old.h 0644 root bin -f none /opt/csw/include/openssl/dh.h 0644 root bin -f none /opt/csw/include/openssl/dsa.h 0644 root bin -f none /opt/csw/include/openssl/dso.h 0644 root bin -f none /opt/csw/include/openssl/dtls1.h 0644 root bin -f none /opt/csw/include/openssl/e_os2.h 0644 root bin -f none /opt/csw/include/openssl/ebcdic.h 0644 root bin -f none /opt/csw/include/openssl/ec.h 0644 root bin -f none /opt/csw/include/openssl/ecdh.h 0644 root bin -f none /opt/csw/include/openssl/ecdsa.h 0644 root bin -f none /opt/csw/include/openssl/engine.h 0644 root bin -f none /opt/csw/include/openssl/err.h 0644 root bin -f none /opt/csw/include/openssl/evp.h 0644 root bin -f none /opt/csw/include/openssl/hmac.h 0644 root bin -f none /opt/csw/include/openssl/idea.h 0644 root bin -f none /opt/csw/include/openssl/krb5_asn.h 0644 root bin -f none /opt/csw/include/openssl/kssl.h 0644 root bin -f none /opt/csw/include/openssl/lhash.h 0644 root bin -f none /opt/csw/include/openssl/md2.h 0644 root bin -f none /opt/csw/include/openssl/md4.h 0644 root bin -f none /opt/csw/include/openssl/md5.h 0644 root bin -f none /opt/csw/include/openssl/obj_mac.h 0644 root bin -f none /opt/csw/include/openssl/objects.h 0644 root bin -f none /opt/csw/include/openssl/ocsp.h 0644 root bin -f none /opt/csw/include/openssl/opensslconf.h 0644 root bin -f none /opt/csw/include/openssl/opensslv.h 0644 root bin -f none /opt/csw/include/openssl/ossl_typ.h 0644 root bin -f none /opt/csw/include/openssl/pem.h 0644 root bin -f none /opt/csw/include/openssl/pem2.h 0644 root bin -f none /opt/csw/include/openssl/pkcs12.h 0644 root bin -f none /opt/csw/include/openssl/pkcs7.h 0644 root bin -f none /opt/csw/include/openssl/pq_compat.h 0644 root bin -f none /opt/csw/include/openssl/pqueue.h 0644 root bin -f none /opt/csw/include/openssl/rand.h 0644 root bin -f none /opt/csw/include/openssl/rc2.h 0644 root bin -f none /opt/csw/include/openssl/rc4.h 0644 root bin -f none /opt/csw/include/openssl/ripemd.h 0644 root bin -f none /opt/csw/include/openssl/rsa.h 0644 root bin -f none /opt/csw/include/openssl/safestack.h 0644 root bin -f none /opt/csw/include/openssl/sha.h 0644 root bin -f none /opt/csw/include/openssl/ssl.h 0644 root bin -f none /opt/csw/include/openssl/ssl2.h 0644 root bin -f none /opt/csw/include/openssl/ssl23.h 0644 root bin -f none /opt/csw/include/openssl/ssl3.h 0644 root bin -f none /opt/csw/include/openssl/stack.h 0644 root bin -f none /opt/csw/include/openssl/store.h 0644 root bin -f none /opt/csw/include/openssl/symhacks.h 0644 root bin -f none /opt/csw/include/openssl/tls1.h 0644 root bin -f none /opt/csw/include/openssl/tmdiff.h 0644 root bin -f none /opt/csw/include/openssl/txt_db.h 0644 root bin -f none /opt/csw/include/openssl/ui.h 0644 root bin -f none /opt/csw/include/openssl/ui_compat.h 0644 root bin -f none /opt/csw/include/openssl/x509.h 0644 root bin -f none /opt/csw/include/openssl/x509_vfy.h 0644 root bin -f none /opt/csw/include/openssl/x509v3.h 0644 root bin -f none /opt/csw/lib/libssl.a 0644 root bin -f none /opt/csw/lib/libcrypto.a 0644 root bin -s none /opt/csw/lib/libcrypto.so=libcrypto.so.0.9.8 -s none /opt/csw/lib/libssl.so=libssl.so.0.9.8 -d none /opt/csw/lib/pentium_pro 0755 root bin -f none /opt/csw/lib/pentium_pro/libcrypto.a 0644 root bin -f none /opt/csw/lib/pentium_pro/libssl.a 0644 root bin -f none /opt/csw/lib/amd64/libcrypto.a 0644 root bin -f none /opt/csw/lib/amd64/libssl.a 0644 root bin -s none /opt/csw/lib/amd64/libcrypto.so=libcrypto.so.0.9.8 -s none /opt/csw/lib/amd64/libssl.so=libssl.so.0.9.8 -d none /opt/csw/lib/pkgconfig 0755 root bin -f none /opt/csw/lib/pkgconfig/libcrypto.pc 0644 root bin -f none /opt/csw/lib/pkgconfig/libssl.pc 0644 root bin -f none /opt/csw/lib/pkgconfig/openssl.pc 0644 root bin -d none /opt/csw/lib/amd64/pkgconfig 0755 root bin -f none /opt/csw/lib/amd64/pkgconfig/libcrypto.pc 0644 root bin -f none /opt/csw/lib/amd64/pkgconfig/libssl.pc 0644 root bin -f none /opt/csw/lib/amd64/pkgconfig/openssl.pc 0644 root bin -d none /opt/csw/share/doc/libssl_dev 0755 root bin -f none /opt/csw/share/doc/libssl_dev/changelog.CSW 644 root bin -f none /opt/csw/share/doc/libssl_dev/license 644 root bin -f none /opt/csw/share/doc/libssl_dev/CHANGES 644 root bin -f none /opt/csw/share/doc/libssl_dev/CHANGES.SSLeay 644 root bin -f none /opt/csw/share/doc/libssl_dev/PROBLEMS 644 root bin -f none /opt/csw/share/doc/libssl_dev/README 644 root bin -f none /opt/csw/share/doc/libssl_dev/FAQ 644 root bin -f none /opt/csw/share/doc/libssl_dev/README.ASN1 644 root bin -f none /opt/csw/share/doc/libssl_dev/INSTALL 644 root bin -f none /opt/csw/share/doc/libssl_dev/NEWS 644 root bin -f none /opt/csw/share/doc/libssl_dev/README.ENGINE 644 root bin -f none /opt/csw/share/doc/libssl_dev/README.CSW 644 root bin -d none /opt/csw/share/man/man3 0755 root bin -s none /opt/csw/share/man/man3/ASN1_OBJECT_free.3=ASN1_OBJECT_new.3 -f none /opt/csw/share/man/man3/ASN1_OBJECT_new.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_STRING_cmp.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_data.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_dup.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_free.3=ASN1_STRING_new.3 -f none /opt/csw/share/man/man3/ASN1_STRING_length.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_STRING_length_set.3=ASN1_STRING_length.3 -f none /opt/csw/share/man/man3/ASN1_STRING_new.3 0644 root bin -f none /opt/csw/share/man/man3/ASN1_STRING_print_ex.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_STRING_print_ex_fp.3=ASN1_STRING_print_ex.3 -s none /opt/csw/share/man/man3/ASN1_STRING_set.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_type.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_type_new.3=ASN1_STRING_new.3 -f none /opt/csw/share/man/man3/ASN1_generate_nconf.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_generate_v3.3=ASN1_generate_nconf.3 -s none /opt/csw/share/man/man3/BF_cbc_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_cfb64_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_decrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_ecb_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_ofb64_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_options.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_set_key.3=blowfish.3 -s none /opt/csw/share/man/man3/BIO_append_filename.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_callback_ctrl.3=BIO_ctrl.3 -f none /opt/csw/share/man/man3/BIO_ctrl.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_ctrl_get_read_request.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ctrl_get_write_guarantee.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ctrl_pending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_ctrl_reset_read_request.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ctrl_wpending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_debug_callback.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_destroy_bio_pair.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_do_accept.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_do_connect.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_eof.3=BIO_ctrl.3 -f none /opt/csw/share/man/man3/BIO_f_base64.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_buffer.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_cipher.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_md.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_null.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_ssl.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_find_type.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_flush.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_free.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_free_all.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_get_accept_port.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_get_bind_mode.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_get_callback.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_get_callback_arg.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_get_cipher_ctx.3=BIO_f_cipher.3 -s none /opt/csw/share/man/man3/BIO_get_cipher_status.3=BIO_f_cipher.3 -s none /opt/csw/share/man/man3/BIO_get_close.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_get_conn_hostname.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_conn_int_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_conn_ip.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_conn_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_fd.3=BIO_s_fd.3 -s none /opt/csw/share/man/man3/BIO_get_fp.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_get_info_callback.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_get_md.3=BIO_f_md.3 -s none /opt/csw/share/man/man3/BIO_get_md_ctx.3=BIO_f_md.3 -s none /opt/csw/share/man/man3/BIO_get_mem_data.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_get_mem_ptr.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_get_num_renegotiates.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_get_read_request.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_get_retry_BIO.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_get_retry_reason.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_get_ssl.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_get_write_buf_size.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_get_write_guarantee.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_gets.3=BIO_read.3 -s none /opt/csw/share/man/man3/BIO_int_ctrl.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_make_bio_pair.3=BIO_s_bio.3 -f none /opt/csw/share/man/man3/BIO_new.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_new_bio_pair.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_new_buffer_ssl_connect.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_new_fd.3=BIO_s_fd.3 -s none /opt/csw/share/man/man3/BIO_new_file.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_new_fp.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_new_mem_buf.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_new_socket.3=BIO_s_socket.3 -s none /opt/csw/share/man/man3/BIO_new_ssl.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_new_ssl_connect.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_next.3=BIO_find_type.3 -s none /opt/csw/share/man/man3/BIO_pending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_pop.3=BIO_push.3 -s none /opt/csw/share/man/man3/BIO_ptr_ctrl.3=BIO_ctrl.3 -f none /opt/csw/share/man/man3/BIO_push.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_puts.3=BIO_read.3 -f none /opt/csw/share/man/man3/BIO_read.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_read_filename.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_reset.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_retry_type.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_rw_filename.3=BIO_s_file.3 -f none /opt/csw/share/man/man3/BIO_s_accept.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_bio.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_connect.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_fd.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_file.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_mem.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_null.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_socket.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_seek.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_set.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_set_accept_bios.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_set_accept_port.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_set_bind_mode.3=BIO_s_accept.3 -f none /opt/csw/share/man/man3/BIO_set_callback.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_set_callback_arg.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_set_cipher.3=BIO_f_cipher.3 -s none /opt/csw/share/man/man3/BIO_set_close.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_set_conn_hostname.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_conn_int_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_conn_ip.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_conn_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_fd.3=BIO_s_fd.3 -s none /opt/csw/share/man/man3/BIO_set_fp.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_set_info_callback.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_set_md.3=BIO_f_md.3 -s none /opt/csw/share/man/man3/BIO_set_mem_buf.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_set_mem_eof_return.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_set_nbio.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_nbio_accept.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_set_ssl.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_ssl_mode.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_ssl_renegotiate_bytes.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_ssl_renegotiate_timeout.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_write_buf_size.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_should_io_special.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_should_read.3=BIO_should_retry.3 -f none /opt/csw/share/man/man3/BIO_should_retry.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_should_write.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_shutdown_wr.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ssl_copy_session_id.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_ssl_shutdown.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_tell.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_vfree.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_wpending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_write.3=BIO_read.3 -s none /opt/csw/share/man/man3/BIO_write_filename.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BN_BLINDING_convert.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_convert_ex.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_create_param.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_free.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_get_flags.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_get_thread_id.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_invert.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_invert_ex.3=BN_BLINDING_new.3 -f none /opt/csw/share/man/man3/BN_BLINDING_new.3 0644 root bin -s none /opt/csw/share/man/man3/BN_BLINDING_set_flags.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_set_thread_id.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_update.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_CTX_end.3=BN_CTX_start.3 -s none /opt/csw/share/man/man3/BN_CTX_free.3=BN_CTX_new.3 -s none /opt/csw/share/man/man3/BN_CTX_get.3=BN_CTX_start.3 -s none /opt/csw/share/man/man3/BN_CTX_init.3=BN_CTX_new.3 -f none /opt/csw/share/man/man3/BN_CTX_new.3 0644 root bin -f none /opt/csw/share/man/man3/BN_CTX_start.3 0644 root bin -s none /opt/csw/share/man/man3/BN_MONT_CTX_copy.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_free.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_init.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_new.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_set.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_free.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_init.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_new.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_set.3=BN_mod_mul_reciprocal.3 -f none /opt/csw/share/man/man3/BN_add.3 0644 root bin -f none /opt/csw/share/man/man3/BN_add_word.3 0644 root bin -s none /opt/csw/share/man/man3/BN_bin2bn.3=BN_bn2bin.3 -f none /opt/csw/share/man/man3/BN_bn2bin.3 0644 root bin -s none /opt/csw/share/man/man3/BN_bn2dec.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_bn2hex.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_bn2mpi.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_clear.3=BN_new.3 -s none /opt/csw/share/man/man3/BN_clear_bit.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_clear_free.3=BN_new.3 -f none /opt/csw/share/man/man3/BN_cmp.3 0644 root bin -f none /opt/csw/share/man/man3/BN_copy.3 0644 root bin -s none /opt/csw/share/man/man3/BN_dec2bn.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_div.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_div_recp.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_div_word.3=BN_add_word.3 -s none /opt/csw/share/man/man3/BN_dup.3=BN_copy.3 -s none /opt/csw/share/man/man3/BN_exp.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_free.3=BN_new.3 -s none /opt/csw/share/man/man3/BN_from_montgomery.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_gcd.3=BN_add.3 -f none /opt/csw/share/man/man3/BN_generate_prime.3 0644 root bin -s none /opt/csw/share/man/man3/BN_get_word.3=BN_zero.3 -s none /opt/csw/share/man/man3/BN_hex2bn.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_init.3=BN_new.3 -s none /opt/csw/share/man/man3/BN_is_bit_set.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_is_odd.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_is_one.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_is_prime.3=BN_generate_prime.3 -s none /opt/csw/share/man/man3/BN_is_prime_fasttest.3=BN_generate_prime.3 -s none /opt/csw/share/man/man3/BN_is_word.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_is_zero.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_lshift.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_lshift1.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_mask_bits.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_mod.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_add.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_exp.3=BN_add.3 -f none /opt/csw/share/man/man3/BN_mod_inverse.3 0644 root bin -s none /opt/csw/share/man/man3/BN_mod_mul.3=BN_add.3 -f none /opt/csw/share/man/man3/BN_mod_mul_montgomery.3 0644 root bin -f none /opt/csw/share/man/man3/BN_mod_mul_reciprocal.3 0644 root bin -s none /opt/csw/share/man/man3/BN_mod_sqr.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_sub.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_word.3=BN_add_word.3 -s none /opt/csw/share/man/man3/BN_mpi2bn.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_mul.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mul_word.3=BN_add_word.3 -f none /opt/csw/share/man/man3/BN_new.3 0644 root bin -s none /opt/csw/share/man/man3/BN_nnmod.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_num_bits.3=BN_num_bytes.3 -s none /opt/csw/share/man/man3/BN_num_bits_word.3=BN_num_bytes.3 -f none /opt/csw/share/man/man3/BN_num_bytes.3 0644 root bin -s none /opt/csw/share/man/man3/BN_one.3=BN_zero.3 -s none /opt/csw/share/man/man3/BN_print.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_print_fp.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_pseudo_rand.3=BN_rand.3 -f none /opt/csw/share/man/man3/BN_rand.3 0644 root bin -s none /opt/csw/share/man/man3/BN_rshift.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_rshift1.3=BN_set_bit.3 -f none /opt/csw/share/man/man3/BN_set_bit.3 0644 root bin -s none /opt/csw/share/man/man3/BN_set_word.3=BN_zero.3 -s none /opt/csw/share/man/man3/BN_sqr.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_sub.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_sub_word.3=BN_add_word.3 -f none /opt/csw/share/man/man3/BN_swap.3 0644 root bin -s none /opt/csw/share/man/man3/BN_to_montgomery.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_ucmp.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_value_one.3=BN_zero.3 -f none /opt/csw/share/man/man3/BN_zero.3 0644 root bin -s none /opt/csw/share/man/man3/BUF_MEM_free.3=buffer.3 -s none /opt/csw/share/man/man3/BUF_MEM_grow.3=buffer.3 -s none /opt/csw/share/man/man3/BUF_MEM_new.3=buffer.3 -s none /opt/csw/share/man/man3/BUF_strdup.3=buffer.3 -f none /opt/csw/share/man/man3/CONF_modules_free.3 0644 root bin -s none /opt/csw/share/man/man3/CONF_modules_load.3=CONF_modules_load_file.3 -f none /opt/csw/share/man/man3/CONF_modules_load_file.3 0644 root bin -s none /opt/csw/share/man/man3/CONF_modules_unload.3=CONF_modules_free.3 -s none /opt/csw/share/man/man3/CRYPTO_destroy_dynlockid.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_get_ex_data.3=CRYPTO_set_ex_data.3 -s none /opt/csw/share/man/man3/CRYPTO_get_new_dynlockid.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_lock.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_num_locks.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_dynlock_create_callback.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_dynlock_destroy_callback.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_dynlock_lock_callback.3=threads.3 -f none /opt/csw/share/man/man3/CRYPTO_set_ex_data.3 0644 root bin -s none /opt/csw/share/man/man3/CRYPTO_set_id_callback.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_locking_callback.3=threads.3 -s none /opt/csw/share/man/man3/DES_cbc_cksum.3=des.3 -s none /opt/csw/share/man/man3/DES_cfb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_cfb_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_crypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ecb2_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ecb3_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ecb_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede2_cbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede2_cfb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede2_ofb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_cbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_cbcm_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_cfb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_ofb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_enc_read.3=des.3 -s none /opt/csw/share/man/man3/DES_enc_write.3=des.3 -s none /opt/csw/share/man/man3/DES_fcrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_is_weak_key.3=des.3 -s none /opt/csw/share/man/man3/DES_key_sched.3=des.3 -s none /opt/csw/share/man/man3/DES_ncbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ofb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ofb_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_pcbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_quad_cksum.3=des.3 -s none /opt/csw/share/man/man3/DES_random_key.3=des.3 -s none /opt/csw/share/man/man3/DES_set_key.3=des.3 -s none /opt/csw/share/man/man3/DES_set_key_checked.3=des.3 -s none /opt/csw/share/man/man3/DES_set_key_unchecked.3=des.3 -s none /opt/csw/share/man/man3/DES_set_odd_parity.3=des.3 -s none /opt/csw/share/man/man3/DES_string_to_2keys.3=des.3 -s none /opt/csw/share/man/man3/DES_string_to_key.3=des.3 -s none /opt/csw/share/man/man3/DES_xcbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DH_OpenSSL.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_check.3=DH_generate_parameters.3 -s none /opt/csw/share/man/man3/DH_compute_key.3=DH_generate_key.3 -s none /opt/csw/share/man/man3/DH_free.3=DH_new.3 -f none /opt/csw/share/man/man3/DH_generate_key.3 0644 root bin -f none /opt/csw/share/man/man3/DH_generate_parameters.3 0644 root bin -s none /opt/csw/share/man/man3/DH_get_default_method.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_get_ex_data.3=DH_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DH_get_ex_new_index.3 0644 root bin -f none /opt/csw/share/man/man3/DH_new.3 0644 root bin -s none /opt/csw/share/man/man3/DH_new_method.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_set_default_method.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_set_ex_data.3=DH_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DH_set_method.3 0644 root bin -f none /opt/csw/share/man/man3/DH_size.3 0644 root bin -s none /opt/csw/share/man/man3/DHparams_print.3=RSA_print.3 -s none /opt/csw/share/man/man3/DHparams_print_fp.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSA_OpenSSL.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_SIG_free.3=DSA_SIG_new.3 -f none /opt/csw/share/man/man3/DSA_SIG_new.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_do_sign.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_do_verify.3=DSA_do_sign.3 -f none /opt/csw/share/man/man3/DSA_dup_DH.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_free.3=DSA_new.3 -f none /opt/csw/share/man/man3/DSA_generate_key.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_generate_parameters.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_get_default_method.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_get_ex_data.3=DSA_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DSA_get_ex_new_index.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_new.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_new_method.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_print.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSA_print_fp.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSA_set_default_method.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_set_ex_data.3=DSA_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DSA_set_method.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_sign.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_sign_setup.3=DSA_sign.3 -f none /opt/csw/share/man/man3/DSA_size.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_verify.3=DSA_sign.3 -s none /opt/csw/share/man/man3/DSAparams_print.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSAparams_print_fp.3=RSA_print.3 -s none /opt/csw/share/man/man3/ERR_GET_FUNC.3=ERR_GET_LIB.3 -f none /opt/csw/share/man/man3/ERR_GET_LIB.3 0644 root bin -s none /opt/csw/share/man/man3/ERR_GET_REASON.3=ERR_GET_LIB.3 -s none /opt/csw/share/man/man3/ERR_PACK.3=ERR_load_strings.3 -s none /opt/csw/share/man/man3/ERR_add_error_data.3=ERR_put_error.3 -f none /opt/csw/share/man/man3/ERR_clear_error.3 0644 root bin -f none /opt/csw/share/man/man3/ERR_error_string.3 0644 root bin -s none /opt/csw/share/man/man3/ERR_error_string_n.3=ERR_error_string.3 -s none /opt/csw/share/man/man3/ERR_free_strings.3=ERR_load_crypto_strings.3 -s none /opt/csw/share/man/man3/ERR_func_error_string.3=ERR_error_string.3 -f none /opt/csw/share/man/man3/ERR_get_error.3 0644 root bin -s none /opt/csw/share/man/man3/ERR_get_error_line.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_get_error_line_data.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_get_next_error_library.3=ERR_load_strings.3 -s none /opt/csw/share/man/man3/ERR_lib_error_string.3=ERR_error_string.3 -s none /opt/csw/share/man/man3/ERR_load_UI_strings.3=ui.3 -f none /opt/csw/share/man/man3/ERR_load_crypto_strings.3 0644 root bin -f none /opt/csw/share/man/man3/ERR_load_strings.3 0644 root bin -s none /opt/csw/share/man/man3/ERR_peek_error.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_peek_error_line.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_peek_error_line_data.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_peek_last_error.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_peek_last_error_line.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_peek_last_error_line_data.3=ERR_get_error.3 -s none /opt/csw/share/man/man3/ERR_pop_to_mark.3=ERR_set_mark.3 -f none /opt/csw/share/man/man3/ERR_print_errors.3 0644 root bin -s none /opt/csw/share/man/man3/ERR_print_errors_fp.3=ERR_print_errors.3 -f none /opt/csw/share/man/man3/ERR_put_error.3 0644 root bin -s none /opt/csw/share/man/man3/ERR_reason_error_string.3=ERR_error_string.3 -f none /opt/csw/share/man/man3/ERR_remove_state.3 0644 root bin -f none /opt/csw/share/man/man3/ERR_set_mark.3 0644 root bin -f none /opt/csw/share/man/man3/EVP_BytesToKey.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_block_size.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_cipher.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_cleanup.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_ctrl.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_flags.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_get_app_data.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_init.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_iv_length.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_key_length.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_mode.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_nid.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_set_app_data.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_set_key_length.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_set_padding.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_CTX_type.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_asn1_to_param.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_block_size.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_flags.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_iv_length.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_key_length.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_mode.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_nid.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_param_to_asn1.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CIPHER_type.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CipherFinal.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CipherFinal_ex.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CipherInit.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CipherInit_ex.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_CipherUpdate.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_DecryptFinal.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_DecryptFinal_ex.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_DecryptInit.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_DecryptInit_ex.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_DecryptUpdate.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_DigestFinal_ex.3=EVP_DigestInit.3 -f none /opt/csw/share/man/man3/EVP_DigestInit.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_DigestInit_ex.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_DigestUpdate.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_EncryptFinal.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_EncryptFinal_ex.3=EVP_EncryptInit.3 -f none /opt/csw/share/man/man3/EVP_EncryptInit.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_EncryptInit_ex.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_EncryptUpdate.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_MAX_MD_SIZE.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_block_size.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_cleanup.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_copy.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_copy_ex.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_create.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_destroy.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_init.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_md.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_size.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_CTX_type.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_block_size.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_pkey_type.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_size.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_MD_type.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_OpenFinal.3=EVP_OpenInit.3 -f none /opt/csw/share/man/man3/EVP_OpenInit.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_OpenUpdate.3=EVP_OpenInit.3 -s none /opt/csw/share/man/man3/EVP_PKEY_assign_DH.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_assign_DSA.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_assign_EC_KEY.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_assign_RSA.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_free.3=EVP_PKEY_new.3 -s none /opt/csw/share/man/man3/EVP_PKEY_get1_DH.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_get1_DSA.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_get1_EC_KEY.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_get1_RSA.3=EVP_PKEY_set1_RSA.3 -f none /opt/csw/share/man/man3/EVP_PKEY_new.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_PKEY_set1_DH.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_set1_DSA.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_PKEY_set1_EC_KEY.3=EVP_PKEY_set1_RSA.3 -f none /opt/csw/share/man/man3/EVP_PKEY_set1_RSA.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_PKEY_type.3=EVP_PKEY_set1_RSA.3 -s none /opt/csw/share/man/man3/EVP_SealFinal.3=EVP_SealInit.3 -f none /opt/csw/share/man/man3/EVP_SealInit.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_SealUpdate.3=EVP_SealInit.3 -s none /opt/csw/share/man/man3/EVP_SignFinal.3=EVP_SignInit.3 -f none /opt/csw/share/man/man3/EVP_SignInit.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_SignUpdate.3=EVP_SignInit.3 -s none /opt/csw/share/man/man3/EVP_VerifyFinal.3=EVP_VerifyInit.3 -f none /opt/csw/share/man/man3/EVP_VerifyInit.3 0644 root bin -s none /opt/csw/share/man/man3/EVP_VerifyUpdate.3=EVP_VerifyInit.3 -s none /opt/csw/share/man/man3/EVP_dss.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_dss1.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_get_cipherbyname.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_get_cipherbynid.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_get_cipherbyobj.3=EVP_EncryptInit.3 -s none /opt/csw/share/man/man3/EVP_get_digestbyname.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_get_digestbynid.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_get_digestbyobj.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_md2.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_md5.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_md_null.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_mdc2.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_ripemd160.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_sha.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/EVP_sha1.3=EVP_DigestInit.3 -s none /opt/csw/share/man/man3/HMAC.3=hmac.3 -s none /opt/csw/share/man/man3/HMAC_Final.3=hmac.3 -s none /opt/csw/share/man/man3/HMAC_Init.3=hmac.3 -s none /opt/csw/share/man/man3/HMAC_Update.3=hmac.3 -s none /opt/csw/share/man/man3/HMAC_cleanup.3=hmac.3 -s none /opt/csw/share/man/man3/MD2.3=md5.3 -s none /opt/csw/share/man/man3/MD2_Final.3=md5.3 -s none /opt/csw/share/man/man3/MD2_Init.3=md5.3 -s none /opt/csw/share/man/man3/MD2_Update.3=md5.3 -s none /opt/csw/share/man/man3/MD4.3=md5.3 -s none /opt/csw/share/man/man3/MD4_Final.3=md5.3 -s none /opt/csw/share/man/man3/MD4_Init.3=md5.3 -s none /opt/csw/share/man/man3/MD4_Update.3=md5.3 -s none /opt/csw/share/man/man3/MD5.3=md5.3 -s none /opt/csw/share/man/man3/MD5_Final.3=md5.3 -s none /opt/csw/share/man/man3/MD5_Init.3=md5.3 -s none /opt/csw/share/man/man3/MD5_Update.3=md5.3 -s none /opt/csw/share/man/man3/MDC2.3=mdc2.3 -s none /opt/csw/share/man/man3/MDC2_Final.3=mdc2.3 -s none /opt/csw/share/man/man3/MDC2_Init.3=mdc2.3 -s none /opt/csw/share/man/man3/MDC2_Update.3=mdc2.3 -s none /opt/csw/share/man/man3/OBJ_cleanup.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_cmp.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_create.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_dup.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_ln2nid.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_nid2ln.3=OBJ_nid2obj.3 -f none /opt/csw/share/man/man3/OBJ_nid2obj.3 0644 root bin -s none /opt/csw/share/man/man3/OBJ_nid2sn.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_obj2nid.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_obj2txt.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_sn2nid.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_txt2nid.3=OBJ_nid2obj.3 -s none /opt/csw/share/man/man3/OBJ_txt2obj.3=OBJ_nid2obj.3 -f none /opt/csw/share/man/man3/OPENSSL_Applink.3 0644 root bin -f none /opt/csw/share/man/man3/OPENSSL_VERSION_NUMBER.3 0644 root bin -f none /opt/csw/share/man/man3/OPENSSL_config.3 0644 root bin -f none /opt/csw/share/man/man3/OPENSSL_ia32cap.3 0644 root bin -f none /opt/csw/share/man/man3/OPENSSL_load_builtin_modules.3 0644 root bin -s none /opt/csw/share/man/man3/OPENSSL_no_config.3=OPENSSL_config.3 -f none /opt/csw/share/man/man3/OpenSSL_add_all_algorithms.3 0644 root bin -s none /opt/csw/share/man/man3/OpenSSL_add_all_ciphers.3=OpenSSL_add_all_algorithms.3 -s none /opt/csw/share/man/man3/OpenSSL_add_all_digests.3=OpenSSL_add_all_algorithms.3 -s none /opt/csw/share/man/man3/OpenSSL_add_ssl_algorithms.3=SSL_library_init.3 -s none /opt/csw/share/man/man3/PEM.3=pem.3 -f none /opt/csw/share/man/man3/PKCS12_create.3 0644 root bin -f none /opt/csw/share/man/man3/PKCS12_parse.3 0644 root bin -f none /opt/csw/share/man/man3/PKCS7_decrypt.3 0644 root bin -f none /opt/csw/share/man/man3/PKCS7_encrypt.3 0644 root bin -f none /opt/csw/share/man/man3/PKCS7_sign.3 0644 root bin -f none /opt/csw/share/man/man3/PKCS7_verify.3 0644 root bin -s none /opt/csw/share/man/man3/RAND_SSLeay.3=RAND_set_rand_method.3 -f none /opt/csw/share/man/man3/RAND_add.3 0644 root bin -f none /opt/csw/share/man/man3/RAND_bytes.3 0644 root bin -f none /opt/csw/share/man/man3/RAND_cleanup.3 0644 root bin -f none /opt/csw/share/man/man3/RAND_egd.3 0644 root bin -s none /opt/csw/share/man/man3/RAND_event.3=RAND_add.3 -s none /opt/csw/share/man/man3/RAND_file_name.3=RAND_load_file.3 -s none /opt/csw/share/man/man3/RAND_get_rand_method.3=RAND_set_rand_method.3 -f none /opt/csw/share/man/man3/RAND_load_file.3 0644 root bin -s none /opt/csw/share/man/man3/RAND_pseudo_bytes.3=RAND_bytes.3 -s none /opt/csw/share/man/man3/RAND_screen.3=RAND_add.3 -s none /opt/csw/share/man/man3/RAND_seed.3=RAND_add.3 -f none /opt/csw/share/man/man3/RAND_set_rand_method.3 0644 root bin -s none /opt/csw/share/man/man3/RAND_status.3=RAND_add.3 -s none /opt/csw/share/man/man3/RAND_write_file.3=RAND_load_file.3 -s none /opt/csw/share/man/man3/RC4.3=rc4.3 -s none /opt/csw/share/man/man3/RC4_set_key.3=rc4.3 -s none /opt/csw/share/man/man3/RIPEMD160.3=ripemd.3 -s none /opt/csw/share/man/man3/RIPEMD160_Final.3=ripemd.3 -s none /opt/csw/share/man/man3/RIPEMD160_Init.3=ripemd.3 -s none /opt/csw/share/man/man3/RIPEMD160_Update.3=ripemd.3 -s none /opt/csw/share/man/man3/RSA_PKCS1_SSLeay.3=RSA_set_method.3 -s none /opt/csw/share/man/man3/RSA_blinding_off.3=RSA_blinding_on.3 -f none /opt/csw/share/man/man3/RSA_blinding_on.3 0644 root bin -f none /opt/csw/share/man/man3/RSA_check_key.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_flags.3=RSA_set_method.3 -s none /opt/csw/share/man/man3/RSA_free.3=RSA_new.3 -f none /opt/csw/share/man/man3/RSA_generate_key.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_get_default_method.3=RSA_set_method.3 -s none /opt/csw/share/man/man3/RSA_get_ex_data.3=RSA_get_ex_new_index.3 -f none /opt/csw/share/man/man3/RSA_get_ex_new_index.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_get_method.3=RSA_set_method.3 -f none /opt/csw/share/man/man3/RSA_new.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_new_method.3=RSA_set_method.3 -s none /opt/csw/share/man/man3/RSA_null_method.3=RSA_set_method.3 -s none /opt/csw/share/man/man3/RSA_padding_add_PKCS1_OAEP.3=RSA_padding_add_PKCS1_type_1.3 -f none /opt/csw/share/man/man3/RSA_padding_add_PKCS1_type_1.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_padding_add_PKCS1_type_2.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_add_SSLv23.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_add_none.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_check_PKCS1_OAEP.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_check_PKCS1_type_1.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_check_PKCS1_type_2.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_check_SSLv23.3=RSA_padding_add_PKCS1_type_1.3 -s none /opt/csw/share/man/man3/RSA_padding_check_none.3=RSA_padding_add_PKCS1_type_1.3 -f none /opt/csw/share/man/man3/RSA_print.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_print_fp.3=RSA_print.3 -s none /opt/csw/share/man/man3/RSA_private_decrypt.3=RSA_public_encrypt.3 -f none /opt/csw/share/man/man3/RSA_private_encrypt.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_public_decrypt.3=RSA_private_encrypt.3 -f none /opt/csw/share/man/man3/RSA_public_encrypt.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_set_default_method.3=RSA_set_method.3 -s none /opt/csw/share/man/man3/RSA_set_ex_data.3=RSA_get_ex_new_index.3 -f none /opt/csw/share/man/man3/RSA_set_method.3 0644 root bin -f none /opt/csw/share/man/man3/RSA_sign.3 0644 root bin -f none /opt/csw/share/man/man3/RSA_sign_ASN1_OCTET_STRING.3 0644 root bin -f none /opt/csw/share/man/man3/RSA_size.3 0644 root bin -s none /opt/csw/share/man/man3/RSA_verify.3=RSA_sign.3 -s none /opt/csw/share/man/man3/RSA_verify_ASN1_OCTET_STRING.3=RSA_sign_ASN1_OCTET_STRING.3 -s none /opt/csw/share/man/man3/SHA1.3=sha.3 -s none /opt/csw/share/man/man3/SHA1_Final.3=sha.3 -s none /opt/csw/share/man/man3/SHA1_Init.3=sha.3 -s none /opt/csw/share/man/man3/SHA1_Update.3=sha.3 -f none /opt/csw/share/man/man3/SMIME_read_PKCS7.3 0644 root bin -f none /opt/csw/share/man/man3/SMIME_write_PKCS7.3 0644 root bin -s none /opt/csw/share/man/man3/SSL.3=ssl.3 -s none /opt/csw/share/man/man3/SSL_CIPHER_description.3=SSL_CIPHER_get_name.3 -s none /opt/csw/share/man/man3/SSL_CIPHER_get_bits.3=SSL_CIPHER_get_name.3 -f none /opt/csw/share/man/man3/SSL_CIPHER_get_name.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CIPHER_get_version.3=SSL_CIPHER_get_name.3 -f none /opt/csw/share/man/man3/SSL_COMP_add_compression_method.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_add_client_CA.3=SSL_CTX_set_client_CA_list.3 -f none /opt/csw/share/man/man3/SSL_CTX_add_extra_chain_cert.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_add_session.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_callback_ctrl.3=SSL_CTX_ctrl.3 -s none /opt/csw/share/man/man3/SSL_CTX_check_private_key.3=SSL_CTX_use_certificate.3 -f none /opt/csw/share/man/man3/SSL_CTX_ctrl.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_flush_sessions.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_free.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_get_cert_store.3=SSL_CTX_set_cert_store.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_client_CA_list.3=SSL_get_client_CA_list.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_client_cert_cb.3=SSL_CTX_set_client_cert_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_ex_data.3=SSL_CTX_get_ex_new_index.3 -f none /opt/csw/share/man/man3/SSL_CTX_get_ex_new_index.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_get_info_callback.3=SSL_CTX_set_info_callback.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_max_cert_list.3=SSL_CTX_set_max_cert_list.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_mode.3=SSL_CTX_set_mode.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_options.3=SSL_CTX_set_options.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_quiet_shutdown.3=SSL_CTX_set_quiet_shutdown.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_session_cache_mode.3=SSL_CTX_set_session_cache_mode.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_timeout.3=SSL_CTX_set_timeout.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_verify_callback.3=SSL_CTX_get_verify_mode.3 -s none /opt/csw/share/man/man3/SSL_CTX_get_verify_depth.3=SSL_CTX_get_verify_mode.3 -f none /opt/csw/share/man/man3/SSL_CTX_get_verify_mode.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_load_verify_locations.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_need_tmp_rsa.3=SSL_CTX_set_tmp_rsa_callback.3 -f none /opt/csw/share/man/man3/SSL_CTX_new.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_remove_session.3=SSL_CTX_add_session.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_accept.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_accept_good.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_accept_renegotiate.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_cache_full.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_cb_hits.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_connect.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_connect_good.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_connect_renegotiate.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_get_cache_size.3=SSL_CTX_sess_set_cache_size.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_get_get_cb.3=SSL_CTX_sess_set_get_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_get_new_cb.3=SSL_CTX_sess_set_get_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_get_remove_cb.3=SSL_CTX_sess_set_get_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_hits.3=SSL_CTX_sess_number.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_misses.3=SSL_CTX_sess_number.3 -f none /opt/csw/share/man/man3/SSL_CTX_sess_number.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_sess_set_cache_size.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_sess_set_get_cb.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_sess_set_new_cb.3=SSL_CTX_sess_set_get_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_set_remove_cb.3=SSL_CTX_sess_set_get_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_sess_timeouts.3=SSL_CTX_sess_number.3 -f none /opt/csw/share/man/man3/SSL_CTX_sessions.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_cert_store.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_cert_verify_callback.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_cipher_list.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_client_CA_list.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_client_cert_cb.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_default_passwd_cb.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_set_default_passwd_cb_userdata.3=SSL_CTX_set_default_passwd_cb.3 -s none /opt/csw/share/man/man3/SSL_CTX_set_ex_data.3=SSL_CTX_get_ex_new_index.3 -f none /opt/csw/share/man/man3/SSL_CTX_set_generate_session_id.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_info_callback.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_max_cert_list.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_mode.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_msg_callback.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_set_msg_callback_arg.3=SSL_CTX_set_msg_callback.3 -f none /opt/csw/share/man/man3/SSL_CTX_set_options.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_quiet_shutdown.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_session_cache_mode.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_session_id_context.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_ssl_version.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_timeout.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_set_tmp_dh.3=SSL_CTX_set_tmp_dh_callback.3 -f none /opt/csw/share/man/man3/SSL_CTX_set_tmp_dh_callback.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_set_tmp_rsa.3=SSL_CTX_set_tmp_rsa_callback.3 -f none /opt/csw/share/man/man3/SSL_CTX_set_tmp_rsa_callback.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_CTX_set_verify.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_set_verify_depth.3=SSL_CTX_set_verify.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_PrivateKey.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_PrivateKey_ASN1.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_PrivateKey_file.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_RSAPrivateKey.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_RSAPrivateKey_ASN1.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_RSAPrivateKey_file.3=SSL_CTX_use_certificate.3 -f none /opt/csw/share/man/man3/SSL_CTX_use_certificate.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_CTX_use_certificate_ASN1.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_certificate_chain_file.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_CTX_use_certificate_file.3=SSL_CTX_use_certificate.3 -f none /opt/csw/share/man/man3/SSL_SESSION_free.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_SESSION_get_ex_data.3=SSL_SESSION_get_ex_new_index.3 -f none /opt/csw/share/man/man3/SSL_SESSION_get_ex_new_index.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_SESSION_get_time.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_SESSION_get_timeout.3=SSL_SESSION_get_time.3 -s none /opt/csw/share/man/man3/SSL_SESSION_set_ex_data.3=SSL_SESSION_get_ex_new_index.3 -s none /opt/csw/share/man/man3/SSL_SESSION_set_time.3=SSL_SESSION_get_time.3 -f none /opt/csw/share/man/man3/SSL_accept.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_add_client_CA.3=SSL_CTX_set_client_CA_list.3 -s none /opt/csw/share/man/man3/SSL_add_session.3=SSL_CTX_add_session.3 -s none /opt/csw/share/man/man3/SSL_alert_desc_string.3=SSL_alert_type_string.3 -s none /opt/csw/share/man/man3/SSL_alert_desc_string_long.3=SSL_alert_type_string.3 -f none /opt/csw/share/man/man3/SSL_alert_type_string.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_alert_type_string_long.3=SSL_alert_type_string.3 -s none /opt/csw/share/man/man3/SSL_callback_ctrl.3=SSL_CTX_ctrl.3 -s none /opt/csw/share/man/man3/SSL_check_private_key.3=SSL_CTX_use_certificate.3 -f none /opt/csw/share/man/man3/SSL_clear.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_connect.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_ctrl.3=SSL_CTX_ctrl.3 -f none /opt/csw/share/man/man3/SSL_do_handshake.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_flush_sessions.3=SSL_CTX_flush_sessions.3 -f none /opt/csw/share/man/man3/SSL_free.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_SSL_CTX.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_get_accept_state.3=SSL_set_connect_state.3 -s none /opt/csw/share/man/man3/SSL_get_cipher.3=SSL_get_current_cipher.3 -s none /opt/csw/share/man/man3/SSL_get_cipher_bits.3=SSL_get_current_cipher.3 -s none /opt/csw/share/man/man3/SSL_get_cipher_list.3=SSL_get_ciphers.3 -s none /opt/csw/share/man/man3/SSL_get_cipher_name.3=SSL_get_current_cipher.3 -s none /opt/csw/share/man/man3/SSL_get_cipher_version.3=SSL_get_current_cipher.3 -f none /opt/csw/share/man/man3/SSL_get_ciphers.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_client_CA_list.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_current_cipher.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_default_timeout.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_error.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_get_ex_data.3=SSL_get_ex_new_index.3 -f none /opt/csw/share/man/man3/SSL_get_ex_data_X509_STORE_CTX_idx.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_ex_new_index.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_fd.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_get_info_callback.3=SSL_CTX_set_info_callback.3 -s none /opt/csw/share/man/man3/SSL_get_max_cert_list.3=SSL_CTX_set_max_cert_list.3 -s none /opt/csw/share/man/man3/SSL_get_mode.3=SSL_CTX_set_mode.3 -s none /opt/csw/share/man/man3/SSL_get_msg_callback_arg.3=SSL_CTX_set_msg_callback.3 -s none /opt/csw/share/man/man3/SSL_get_options.3=SSL_CTX_set_options.3 -f none /opt/csw/share/man/man3/SSL_get_peer_cert_chain.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_peer_certificate.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_get_quiet_shutdown.3=SSL_CTX_set_quiet_shutdown.3 -f none /opt/csw/share/man/man3/SSL_get_rbio.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_session.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_get_shutdown.3=SSL_set_shutdown.3 -s none /opt/csw/share/man/man3/SSL_get_ssl_method.3=SSL_CTX_set_ssl_version.3 -s none /opt/csw/share/man/man3/SSL_get_verify_callback.3=SSL_CTX_get_verify_mode.3 -s none /opt/csw/share/man/man3/SSL_get_verify_depth.3=SSL_CTX_get_verify_mode.3 -s none /opt/csw/share/man/man3/SSL_get_verify_mode.3=SSL_CTX_get_verify_mode.3 -f none /opt/csw/share/man/man3/SSL_get_verify_result.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_get_version.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_has_matching_session_id.3=SSL_CTX_set_generate_session_id.3 -f none /opt/csw/share/man/man3/SSL_library_init.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_load_client_CA_file.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_load_error_strings.3=ERR_load_crypto_strings.3 -s none /opt/csw/share/man/man3/SSL_need_tmp_rsa.3=SSL_CTX_set_tmp_rsa_callback.3 -f none /opt/csw/share/man/man3/SSL_new.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_pending.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_read.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_remove_session.3=SSL_CTX_add_session.3 -f none /opt/csw/share/man/man3/SSL_rstate_string.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_rstate_string_long.3=SSL_rstate_string.3 -f none /opt/csw/share/man/man3/SSL_session_reused.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_set_bio.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_set_cipher_list.3=SSL_CTX_set_cipher_list.3 -s none /opt/csw/share/man/man3/SSL_set_client_CA_list.3=SSL_CTX_set_client_CA_list.3 -f none /opt/csw/share/man/man3/SSL_set_connect_state.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_set_ex_data.3=SSL_get_ex_new_index.3 -f none /opt/csw/share/man/man3/SSL_set_fd.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_set_generate_session_id.3=SSL_CTX_set_generate_session_id.3 -s none /opt/csw/share/man/man3/SSL_set_info_callback.3=SSL_CTX_set_info_callback.3 -s none /opt/csw/share/man/man3/SSL_set_max_cert_list.3=SSL_CTX_set_max_cert_list.3 -s none /opt/csw/share/man/man3/SSL_set_mode.3=SSL_CTX_set_mode.3 -s none /opt/csw/share/man/man3/SSL_set_msg_callback.3=SSL_CTX_set_msg_callback.3 -s none /opt/csw/share/man/man3/SSL_set_options.3=SSL_CTX_set_options.3 -s none /opt/csw/share/man/man3/SSL_set_quiet_shutdown.3=SSL_CTX_set_quiet_shutdown.3 -f none /opt/csw/share/man/man3/SSL_set_session.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_set_session_id_context.3=SSL_CTX_set_session_id_context.3 -f none /opt/csw/share/man/man3/SSL_set_shutdown.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_set_ssl_method.3=SSL_CTX_set_ssl_version.3 -s none /opt/csw/share/man/man3/SSL_set_tmp_dh.3=SSL_CTX_set_tmp_dh_callback.3 -s none /opt/csw/share/man/man3/SSL_set_tmp_dh_callback.3=SSL_CTX_set_tmp_dh_callback.3 -s none /opt/csw/share/man/man3/SSL_set_tmp_rsa.3=SSL_CTX_set_tmp_rsa_callback.3 -s none /opt/csw/share/man/man3/SSL_set_tmp_rsa_callback.3=SSL_CTX_set_tmp_rsa_callback.3 -s none /opt/csw/share/man/man3/SSL_set_verify.3=SSL_CTX_set_verify.3 -s none /opt/csw/share/man/man3/SSL_set_verify_depth.3=SSL_CTX_set_verify.3 -f none /opt/csw/share/man/man3/SSL_set_verify_result.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_shutdown.3 0644 root bin -f none /opt/csw/share/man/man3/SSL_state_string.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_state_string_long.3=SSL_state_string.3 -s none /opt/csw/share/man/man3/SSL_use_PrivateKey.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_PrivateKey_ASN1.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_PrivateKey_file.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_RSAPrivateKey.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_RSAPrivateKey_ASN1.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_RSAPrivateKey_file.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_certificate.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_certificate_ASN1.3=SSL_CTX_use_certificate.3 -s none /opt/csw/share/man/man3/SSL_use_certificate_file.3=SSL_CTX_use_certificate.3 -f none /opt/csw/share/man/man3/SSL_want.3 0644 root bin -s none /opt/csw/share/man/man3/SSL_want_nothing.3=SSL_want.3 -s none /opt/csw/share/man/man3/SSL_want_read.3=SSL_want.3 -s none /opt/csw/share/man/man3/SSL_want_write.3=SSL_want.3 -s none /opt/csw/share/man/man3/SSL_want_x509_lookup.3=SSL_want.3 -f none /opt/csw/share/man/man3/SSL_write.3 0644 root bin -s none /opt/csw/share/man/man3/SSLeay.3=OPENSSL_VERSION_NUMBER.3 -s none /opt/csw/share/man/man3/SSLeay_add_ssl_algorithms.3=SSL_library_init.3 -s none /opt/csw/share/man/man3/SSLeay_version.3=OPENSSL_VERSION_NUMBER.3 -s none /opt/csw/share/man/man3/UI_OpenSSL.3=ui.3 -s none /opt/csw/share/man/man3/UI_add_error_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_add_info_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_add_input_boolean.3=ui.3 -s none /opt/csw/share/man/man3/UI_add_input_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_add_user_data.3=ui.3 -s none /opt/csw/share/man/man3/UI_add_verify_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_construct_prompt.3=ui.3 -s none /opt/csw/share/man/man3/UI_ctrl.3=ui.3 -s none /opt/csw/share/man/man3/UI_dup_error_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_dup_info_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_dup_input_boolean.3=ui.3 -s none /opt/csw/share/man/man3/UI_dup_input_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_dup_verify_string.3=ui.3 -s none /opt/csw/share/man/man3/UI_free.3=ui.3 -s none /opt/csw/share/man/man3/UI_get0_result.3=ui.3 -s none /opt/csw/share/man/man3/UI_get0_user_data.3=ui.3 -s none /opt/csw/share/man/man3/UI_get_default_method.3=ui.3 -s none /opt/csw/share/man/man3/UI_get_method.3=ui.3 -s none /opt/csw/share/man/man3/UI_new.3=ui.3 -s none /opt/csw/share/man/man3/UI_new_method.3=ui.3 -s none /opt/csw/share/man/man3/UI_process.3=ui.3 -s none /opt/csw/share/man/man3/UI_set_default_method.3=ui.3 -s none /opt/csw/share/man/man3/UI_set_method.3=ui.3 -s none /opt/csw/share/man/man3/X509_NAME_ENTRY_create_by_NID.3=X509_NAME_ENTRY_get_object.3 -s none /opt/csw/share/man/man3/X509_NAME_ENTRY_create_by_OBJ.3=X509_NAME_ENTRY_get_object.3 -s none /opt/csw/share/man/man3/X509_NAME_ENTRY_create_by_txt.3=X509_NAME_ENTRY_get_object.3 -s none /opt/csw/share/man/man3/X509_NAME_ENTRY_get_data.3=X509_NAME_ENTRY_get_object.3 -f none /opt/csw/share/man/man3/X509_NAME_ENTRY_get_object.3 0644 root bin -s none /opt/csw/share/man/man3/X509_NAME_ENTRY_set_data.3=X509_NAME_ENTRY_get_object.3 -s none /opt/csw/share/man/man3/X509_NAME_ENTRY_set_object.3=X509_NAME_ENTRY_get_object.3 -s none /opt/csw/share/man/man3/X509_NAME_add_entry.3=X509_NAME_add_entry_by_txt.3 -s none /opt/csw/share/man/man3/X509_NAME_add_entry_by_NID.3=X509_NAME_add_entry_by_txt.3 -s none /opt/csw/share/man/man3/X509_NAME_add_entry_by_OBJ.3=X509_NAME_add_entry_by_txt.3 -f none /opt/csw/share/man/man3/X509_NAME_add_entry_by_txt.3 0644 root bin -s none /opt/csw/share/man/man3/X509_NAME_delete_entry.3=X509_NAME_add_entry_by_txt.3 -s none /opt/csw/share/man/man3/X509_NAME_entry_count.3=X509_NAME_get_index_by_NID.3 -s none /opt/csw/share/man/man3/X509_NAME_get_entry.3=X509_NAME_get_index_by_NID.3 -f none /opt/csw/share/man/man3/X509_NAME_get_index_by_NID.3 0644 root bin -s none /opt/csw/share/man/man3/X509_NAME_get_index_by_OBJ.3=X509_NAME_get_index_by_NID.3 -s none /opt/csw/share/man/man3/X509_NAME_get_text_by_NID.3=X509_NAME_get_index_by_NID.3 -s none /opt/csw/share/man/man3/X509_NAME_get_text_by_OBJ.3=X509_NAME_get_index_by_NID.3 -s none /opt/csw/share/man/man3/X509_NAME_oneline.3=X509_NAME_print_ex.3 -s none /opt/csw/share/man/man3/X509_NAME_print.3=X509_NAME_print_ex.3 -f none /opt/csw/share/man/man3/X509_NAME_print_ex.3 0644 root bin -s none /opt/csw/share/man/man3/X509_NAME_print_ex_fp.3=X509_NAME_print_ex.3 -s none /opt/csw/share/man/man3/X509_free.3=X509_new.3 -f none /opt/csw/share/man/man3/X509_new.3 0644 root bin -f none /opt/csw/share/man/man3/bio.3 0644 root bin -f none /opt/csw/share/man/man3/blowfish.3 0644 root bin -f none /opt/csw/share/man/man3/bn.3 0644 root bin -s none /opt/csw/share/man/man3/bn_add_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_check_top.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_cmp_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_div_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_dump.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_expand.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_expand2.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_fix_top.3=bn_internal.3 -f none /opt/csw/share/man/man3/bn_internal.3 0644 root bin -s none /opt/csw/share/man/man3/bn_mul_add_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_comba4.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_comba8.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_high.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_low_normal.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_low_recursive.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_normal.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_part_recursive.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_recursive.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_mul_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_print.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_set_high.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_set_low.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_set_max.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_sqr_comba4.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_sqr_comba8.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_sqr_normal.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_sqr_recursive.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_sqr_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_sub_words.3=bn_internal.3 -s none /opt/csw/share/man/man3/bn_wexpand.3=bn_internal.3 -f none /opt/csw/share/man/man3/buffer.3 0644 root bin -f none /opt/csw/share/man/man3/crypto.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_509_CRL_fp.3=d2i_X509_CRL.3 -f none /opt/csw/share/man/man3/d2i_ASN1_OBJECT.3 0644 root bin -f none /opt/csw/share/man/man3/d2i_DHparams.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_DSAPrivateKey.3=d2i_DSAPublicKey.3 -f none /opt/csw/share/man/man3/d2i_DSAPublicKey.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_DSA_PUBKEY.3=d2i_DSAPublicKey.3 -s none /opt/csw/share/man/man3/d2i_DSA_SIG.3=d2i_DSAPublicKey.3 -s none /opt/csw/share/man/man3/d2i_Netscape_RSA.3=d2i_RSAPublicKey.3 -f none /opt/csw/share/man/man3/d2i_PKCS8PrivateKey.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_PKCS8PrivateKey_bio.3=d2i_PKCS8PrivateKey.3 -s none /opt/csw/share/man/man3/d2i_PKCS8PrivateKey_fp.3=d2i_PKCS8PrivateKey.3 -s none /opt/csw/share/man/man3/d2i_RSAPrivateKey.3=d2i_RSAPublicKey.3 -f none /opt/csw/share/man/man3/d2i_RSAPublicKey.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_RSA_PUBKEY.3=d2i_RSAPublicKey.3 -f none /opt/csw/share/man/man3/d2i_SSL_SESSION.3 0644 root bin -f none /opt/csw/share/man/man3/d2i_X509.3 0644 root bin -f none /opt/csw/share/man/man3/d2i_X509_ALGOR.3 0644 root bin -f none /opt/csw/share/man/man3/d2i_X509_CRL.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_X509_CRL_bio.3=d2i_X509_CRL.3 -f none /opt/csw/share/man/man3/d2i_X509_NAME.3 0644 root bin -f none /opt/csw/share/man/man3/d2i_X509_REQ.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_X509_REQ_bio.3=d2i_X509_REQ.3 -s none /opt/csw/share/man/man3/d2i_X509_REQ_fp.3=d2i_X509_REQ.3 -f none /opt/csw/share/man/man3/d2i_X509_SIG.3 0644 root bin -s none /opt/csw/share/man/man3/d2i_X509_bio.3=d2i_X509.3 -s none /opt/csw/share/man/man3/d2i_X509_fp.3=d2i_X509.3 -f none /opt/csw/share/man/man3/des.3 0644 root bin -s none /opt/csw/share/man/man3/des_read_2passwords.3=ui_compat.3 -s none /opt/csw/share/man/man3/des_read_password.3=ui_compat.3 -s none /opt/csw/share/man/man3/des_read_pw.3=ui_compat.3 -s none /opt/csw/share/man/man3/des_read_pw_string.3=ui_compat.3 -f none /opt/csw/share/man/man3/dh.3 0644 root bin -f none /opt/csw/share/man/man3/dsa.3 0644 root bin -f none /opt/csw/share/man/man3/ecdsa.3 0644 root bin -f none /opt/csw/share/man/man3/engine.3 0644 root bin -f none /opt/csw/share/man/man3/err.3 0644 root bin -f none /opt/csw/share/man/man3/evp.3 0644 root bin -f none /opt/csw/share/man/man3/hmac.3 0644 root bin -s none /opt/csw/share/man/man3/i2d_ASN1_OBJECT.3=d2i_ASN1_OBJECT.3 -s none /opt/csw/share/man/man3/i2d_DHparams.3=d2i_DHparams.3 -s none /opt/csw/share/man/man3/i2d_DSAPrivateKey.3=d2i_DSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_DSAPublicKey.3=d2i_DSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_DSA_PUBKEY.3=d2i_DSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_DSA_SIG.3=d2i_DSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_Netscape_RSA.3=d2i_RSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_PKCS8PrivateKey_bio.3=d2i_PKCS8PrivateKey.3 -s none /opt/csw/share/man/man3/i2d_PKCS8PrivateKey_fp.3=d2i_PKCS8PrivateKey.3 -s none /opt/csw/share/man/man3/i2d_PKCS8PrivateKey_nid_bio.3=d2i_PKCS8PrivateKey.3 -s none /opt/csw/share/man/man3/i2d_PKCS8PrivateKey_nid_fp.3=d2i_PKCS8PrivateKey.3 -s none /opt/csw/share/man/man3/i2d_RSAPrivateKey.3=d2i_RSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_RSAPublicKey.3=d2i_RSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_RSA_PUBKEY.3=d2i_RSAPublicKey.3 -s none /opt/csw/share/man/man3/i2d_SSL_SESSION.3=d2i_SSL_SESSION.3 -s none /opt/csw/share/man/man3/i2d_X509.3=d2i_X509.3 -s none /opt/csw/share/man/man3/i2d_X509_ALGOR.3=d2i_X509_ALGOR.3 -s none /opt/csw/share/man/man3/i2d_X509_CRL.3=d2i_X509_CRL.3 -s none /opt/csw/share/man/man3/i2d_X509_CRL_bio.3=d2i_X509_CRL.3 -s none /opt/csw/share/man/man3/i2d_X509_CRL_fp.3=d2i_X509_CRL.3 -s none /opt/csw/share/man/man3/i2d_X509_NAME.3=d2i_X509_NAME.3 -s none /opt/csw/share/man/man3/i2d_X509_REQ.3=d2i_X509_REQ.3 -s none /opt/csw/share/man/man3/i2d_X509_REQ_bio.3=d2i_X509_REQ.3 -s none /opt/csw/share/man/man3/i2d_X509_REQ_fp.3=d2i_X509_REQ.3 -s none /opt/csw/share/man/man3/i2d_X509_SIG.3=d2i_X509_SIG.3 -s none /opt/csw/share/man/man3/i2d_X509_bio.3=d2i_X509.3 -s none /opt/csw/share/man/man3/i2d_X509_fp.3=d2i_X509.3 -s none /opt/csw/share/man/man3/lh_delete.3=lhash.3 -s none /opt/csw/share/man/man3/lh_doall.3=lhash.3 -s none /opt/csw/share/man/man3/lh_doall_arg.3=lhash.3 -s none /opt/csw/share/man/man3/lh_error.3=lhash.3 -s none /opt/csw/share/man/man3/lh_free.3=lhash.3 -s none /opt/csw/share/man/man3/lh_insert.3=lhash.3 -s none /opt/csw/share/man/man3/lh_new.3=lhash.3 -s none /opt/csw/share/man/man3/lh_node_stats.3=lh_stats.3 -s none /opt/csw/share/man/man3/lh_node_stats_bio.3=lh_stats.3 -s none /opt/csw/share/man/man3/lh_node_usage_stats.3=lh_stats.3 -s none /opt/csw/share/man/man3/lh_node_usage_stats_bio.3=lh_stats.3 -s none /opt/csw/share/man/man3/lh_retrieve.3=lhash.3 -f none /opt/csw/share/man/man3/lh_stats.3 0644 root bin -s none /opt/csw/share/man/man3/lh_stats_bio.3=lh_stats.3 -f none /opt/csw/share/man/man3/lhash.3 0644 root bin -f none /opt/csw/share/man/man3/md5.3 0644 root bin -f none /opt/csw/share/man/man3/mdc2.3 0644 root bin -f none /opt/csw/share/man/man3/pem.3 0644 root bin -f none /opt/csw/share/man/man3/rand.3 0644 root bin -f none /opt/csw/share/man/man3/rc4.3 0644 root bin -f none /opt/csw/share/man/man3/ripemd.3 0644 root bin -f none /opt/csw/share/man/man3/rsa.3 0644 root bin -f none /opt/csw/share/man/man3/sha.3 0644 root bin -f none /opt/csw/share/man/man3/ssl.3 0644 root bin -f none /opt/csw/share/man/man3/threads.3 0644 root bin -f none /opt/csw/share/man/man3/ui.3 0644 root bin -f none /opt/csw/share/man/man3/ui_compat.3 0644 root bin -f none /opt/csw/share/man/man3/x509.3 0644 root bin -i checkpkg_override=checkpkg_override.CSWlibssl-dev -i copyright=CSWlibssl-dev.copyright -i depend=CSWlibssl-dev.depend -i pkginfo=CSWlibssl-dev.pkginfo Deleted: csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-sparc =================================================================== --- csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-sparc 2014-06-05 20:21:59 UTC (rev 23769) +++ csw/mgar/pkg/openssl/trunk/files/CSWlibssl-dev.prototype-sparc 2014-06-05 23:35:58 UTC (rev 23770) @@ -1,1064 +0,0 @@ -d none /opt/csw/include/openssl 0755 root bin -f none /opt/csw/include/openssl/aes.h 0644 root bin -f none /opt/csw/include/openssl/asn1.h 0644 root bin -f none /opt/csw/include/openssl/asn1_mac.h 0644 root bin -f none /opt/csw/include/openssl/asn1t.h 0644 root bin -f none /opt/csw/include/openssl/bio.h 0644 root bin -f none /opt/csw/include/openssl/blowfish.h 0644 root bin -f none /opt/csw/include/openssl/bn.h 0644 root bin -f none /opt/csw/include/openssl/buffer.h 0644 root bin -f none /opt/csw/include/openssl/cast.h 0644 root bin -f none /opt/csw/include/openssl/comp.h 0644 root bin -f none /opt/csw/include/openssl/conf.h 0644 root bin -f none /opt/csw/include/openssl/conf_api.h 0644 root bin -f none /opt/csw/include/openssl/crypto.h 0644 root bin -f none /opt/csw/include/openssl/des.h 0644 root bin -f none /opt/csw/include/openssl/des_old.h 0644 root bin -f none /opt/csw/include/openssl/dh.h 0644 root bin -f none /opt/csw/include/openssl/dsa.h 0644 root bin -f none /opt/csw/include/openssl/dso.h 0644 root bin -f none /opt/csw/include/openssl/dtls1.h 0644 root bin -f none /opt/csw/include/openssl/e_os2.h 0644 root bin -f none /opt/csw/include/openssl/ebcdic.h 0644 root bin -f none /opt/csw/include/openssl/ec.h 0644 root bin -f none /opt/csw/include/openssl/ecdh.h 0644 root bin -f none /opt/csw/include/openssl/ecdsa.h 0644 root bin -f none /opt/csw/include/openssl/engine.h 0644 root bin -f none /opt/csw/include/openssl/err.h 0644 root bin -f none /opt/csw/include/openssl/evp.h 0644 root bin -f none /opt/csw/include/openssl/hmac.h 0644 root bin -f none /opt/csw/include/openssl/idea.h 0644 root bin -f none /opt/csw/include/openssl/krb5_asn.h 0644 root bin -f none /opt/csw/include/openssl/kssl.h 0644 root bin -f none /opt/csw/include/openssl/lhash.h 0644 root bin -f none /opt/csw/include/openssl/md2.h 0644 root bin -f none /opt/csw/include/openssl/md4.h 0644 root bin -f none /opt/csw/include/openssl/md5.h 0644 root bin -f none /opt/csw/include/openssl/obj_mac.h 0644 root bin -f none /opt/csw/include/openssl/objects.h 0644 root bin -f none /opt/csw/include/openssl/ocsp.h 0644 root bin -f none /opt/csw/include/openssl/opensslconf.h 0644 root bin -f none /opt/csw/include/openssl/opensslv.h 0644 root bin -f none /opt/csw/include/openssl/ossl_typ.h 0644 root bin -f none /opt/csw/include/openssl/pem.h 0644 root bin -f none /opt/csw/include/openssl/pem2.h 0644 root bin -f none /opt/csw/include/openssl/pkcs12.h 0644 root bin -f none /opt/csw/include/openssl/pkcs7.h 0644 root bin -f none /opt/csw/include/openssl/pq_compat.h 0644 root bin -f none /opt/csw/include/openssl/pqueue.h 0644 root bin -f none /opt/csw/include/openssl/rand.h 0644 root bin -f none /opt/csw/include/openssl/rc2.h 0644 root bin -f none /opt/csw/include/openssl/rc4.h 0644 root bin -f none /opt/csw/include/openssl/ripemd.h 0644 root bin -f none /opt/csw/include/openssl/rsa.h 0644 root bin -f none /opt/csw/include/openssl/safestack.h 0644 root bin -f none /opt/csw/include/openssl/sha.h 0644 root bin -f none /opt/csw/include/openssl/ssl.h 0644 root bin -f none /opt/csw/include/openssl/ssl2.h 0644 root bin -f none /opt/csw/include/openssl/ssl23.h 0644 root bin -f none /opt/csw/include/openssl/ssl3.h 0644 root bin -f none /opt/csw/include/openssl/stack.h 0644 root bin -f none /opt/csw/include/openssl/store.h 0644 root bin -f none /opt/csw/include/openssl/symhacks.h 0644 root bin -f none /opt/csw/include/openssl/tls1.h 0644 root bin -f none /opt/csw/include/openssl/tmdiff.h 0644 root bin -f none /opt/csw/include/openssl/txt_db.h 0644 root bin -f none /opt/csw/include/openssl/ui.h 0644 root bin -f none /opt/csw/include/openssl/ui_compat.h 0644 root bin -f none /opt/csw/include/openssl/x509.h 0644 root bin -f none /opt/csw/include/openssl/x509_vfy.h 0644 root bin -f none /opt/csw/include/openssl/x509v3.h 0644 root bin -f none /opt/csw/lib/libssl.a 0644 root bin -f none /opt/csw/lib/libcrypto.a 0644 root bin -s none /opt/csw/lib/libcrypto.so=libcrypto.so.0.9.8 -s none /opt/csw/lib/libssl.so=libssl.so.0.9.8 -f none /opt/csw/lib/sparcv8plus+vis/libcrypto.a 0644 root bin -f none /opt/csw/lib/sparcv8plus+vis/libssl.a 0644 root bin -f none /opt/csw/lib/sparcv9/libcrypto.a 0644 root bin -f none /opt/csw/lib/sparcv9/libssl.a 0644 root bin -s none /opt/csw/lib/sparcv9/libcrypto.so=libcrypto.so.0.9.8 -s none /opt/csw/lib/sparcv9/libssl.so=libssl.so.0.9.8 -d none /opt/csw/lib/pkgconfig 0755 root bin -f none /opt/csw/lib/pkgconfig/libcrypto.pc 0644 root bin -f none /opt/csw/lib/pkgconfig/libssl.pc 0644 root bin -f none /opt/csw/lib/pkgconfig/openssl.pc 0644 root bin -d none /opt/csw/lib/sparcv9/pkgconfig 0755 root bin -f none /opt/csw/lib/sparcv9/pkgconfig/libssl.pc 0644 root bin -f none /opt/csw/lib/sparcv9/pkgconfig/openssl.pc 0644 root bin -f none /opt/csw/lib/sparcv9/pkgconfig/libcrypto.pc 0644 root bin -d none /opt/csw/share/doc/libssl_dev 0755 root bin -f none /opt/csw/share/doc/libssl_dev/changelog.CSW 644 root bin -f none /opt/csw/share/doc/libssl_dev/license 644 root bin -f none /opt/csw/share/doc/libssl_dev/CHANGES 644 root bin -f none /opt/csw/share/doc/libssl_dev/CHANGES.SSLeay 644 root bin -f none /opt/csw/share/doc/libssl_dev/PROBLEMS 644 root bin -f none /opt/csw/share/doc/libssl_dev/README 644 root bin -f none /opt/csw/share/doc/libssl_dev/FAQ 644 root bin -f none /opt/csw/share/doc/libssl_dev/README.ASN1 644 root bin -f none /opt/csw/share/doc/libssl_dev/INSTALL 644 root bin -f none /opt/csw/share/doc/libssl_dev/NEWS 644 root bin -f none /opt/csw/share/doc/libssl_dev/README.ENGINE 644 root bin -f none /opt/csw/share/doc/libssl_dev/README.CSW 644 root bin -d none /opt/csw/share/man/man3 0755 root bin -s none /opt/csw/share/man/man3/ASN1_OBJECT_free.3=ASN1_OBJECT_new.3 -f none /opt/csw/share/man/man3/ASN1_OBJECT_new.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_STRING_cmp.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_data.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_dup.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_free.3=ASN1_STRING_new.3 -f none /opt/csw/share/man/man3/ASN1_STRING_length.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_STRING_length_set.3=ASN1_STRING_length.3 -f none /opt/csw/share/man/man3/ASN1_STRING_new.3 0644 root bin -f none /opt/csw/share/man/man3/ASN1_STRING_print_ex.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_STRING_print_ex_fp.3=ASN1_STRING_print_ex.3 -s none /opt/csw/share/man/man3/ASN1_STRING_set.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_type.3=ASN1_STRING_length.3 -s none /opt/csw/share/man/man3/ASN1_STRING_type_new.3=ASN1_STRING_new.3 -f none /opt/csw/share/man/man3/ASN1_generate_nconf.3 0644 root bin -s none /opt/csw/share/man/man3/ASN1_generate_v3.3=ASN1_generate_nconf.3 -s none /opt/csw/share/man/man3/BF_cbc_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_cfb64_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_decrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_ecb_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_ofb64_encrypt.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_options.3=blowfish.3 -s none /opt/csw/share/man/man3/BF_set_key.3=blowfish.3 -s none /opt/csw/share/man/man3/BIO_append_filename.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_callback_ctrl.3=BIO_ctrl.3 -f none /opt/csw/share/man/man3/BIO_ctrl.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_ctrl_get_read_request.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ctrl_get_write_guarantee.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ctrl_pending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_ctrl_reset_read_request.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ctrl_wpending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_debug_callback.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_destroy_bio_pair.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_do_accept.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_do_connect.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_eof.3=BIO_ctrl.3 -f none /opt/csw/share/man/man3/BIO_f_base64.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_buffer.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_cipher.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_md.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_null.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_f_ssl.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_find_type.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_flush.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_free.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_free_all.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_get_accept_port.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_get_bind_mode.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_get_callback.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_get_callback_arg.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_get_cipher_ctx.3=BIO_f_cipher.3 -s none /opt/csw/share/man/man3/BIO_get_cipher_status.3=BIO_f_cipher.3 -s none /opt/csw/share/man/man3/BIO_get_close.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_get_conn_hostname.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_conn_int_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_conn_ip.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_conn_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_get_fd.3=BIO_s_fd.3 -s none /opt/csw/share/man/man3/BIO_get_fp.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_get_info_callback.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_get_md.3=BIO_f_md.3 -s none /opt/csw/share/man/man3/BIO_get_md_ctx.3=BIO_f_md.3 -s none /opt/csw/share/man/man3/BIO_get_mem_data.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_get_mem_ptr.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_get_num_renegotiates.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_get_read_request.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_get_retry_BIO.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_get_retry_reason.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_get_ssl.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_get_write_buf_size.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_get_write_guarantee.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_gets.3=BIO_read.3 -s none /opt/csw/share/man/man3/BIO_int_ctrl.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_make_bio_pair.3=BIO_s_bio.3 -f none /opt/csw/share/man/man3/BIO_new.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_new_bio_pair.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_new_buffer_ssl_connect.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_new_fd.3=BIO_s_fd.3 -s none /opt/csw/share/man/man3/BIO_new_file.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_new_fp.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_new_mem_buf.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_new_socket.3=BIO_s_socket.3 -s none /opt/csw/share/man/man3/BIO_new_ssl.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_new_ssl_connect.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_next.3=BIO_find_type.3 -s none /opt/csw/share/man/man3/BIO_pending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_pop.3=BIO_push.3 -s none /opt/csw/share/man/man3/BIO_ptr_ctrl.3=BIO_ctrl.3 -f none /opt/csw/share/man/man3/BIO_push.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_puts.3=BIO_read.3 -f none /opt/csw/share/man/man3/BIO_read.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_read_filename.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_reset.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_retry_type.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_rw_filename.3=BIO_s_file.3 -f none /opt/csw/share/man/man3/BIO_s_accept.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_bio.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_connect.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_fd.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_file.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_mem.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_null.3 0644 root bin -f none /opt/csw/share/man/man3/BIO_s_socket.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_seek.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_set.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_set_accept_bios.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_set_accept_port.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_set_bind_mode.3=BIO_s_accept.3 -f none /opt/csw/share/man/man3/BIO_set_callback.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_set_callback_arg.3=BIO_set_callback.3 -s none /opt/csw/share/man/man3/BIO_set_cipher.3=BIO_f_cipher.3 -s none /opt/csw/share/man/man3/BIO_set_close.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_set_conn_hostname.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_conn_int_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_conn_ip.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_conn_port.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_fd.3=BIO_s_fd.3 -s none /opt/csw/share/man/man3/BIO_set_fp.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BIO_set_info_callback.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_set_md.3=BIO_f_md.3 -s none /opt/csw/share/man/man3/BIO_set_mem_buf.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_set_mem_eof_return.3=BIO_s_mem.3 -s none /opt/csw/share/man/man3/BIO_set_nbio.3=BIO_s_connect.3 -s none /opt/csw/share/man/man3/BIO_set_nbio_accept.3=BIO_s_accept.3 -s none /opt/csw/share/man/man3/BIO_set_ssl.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_ssl_mode.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_ssl_renegotiate_bytes.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_ssl_renegotiate_timeout.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_set_write_buf_size.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_should_io_special.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_should_read.3=BIO_should_retry.3 -f none /opt/csw/share/man/man3/BIO_should_retry.3 0644 root bin -s none /opt/csw/share/man/man3/BIO_should_write.3=BIO_should_retry.3 -s none /opt/csw/share/man/man3/BIO_shutdown_wr.3=BIO_s_bio.3 -s none /opt/csw/share/man/man3/BIO_ssl_copy_session_id.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_ssl_shutdown.3=BIO_f_ssl.3 -s none /opt/csw/share/man/man3/BIO_tell.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_vfree.3=BIO_new.3 -s none /opt/csw/share/man/man3/BIO_wpending.3=BIO_ctrl.3 -s none /opt/csw/share/man/man3/BIO_write.3=BIO_read.3 -s none /opt/csw/share/man/man3/BIO_write_filename.3=BIO_s_file.3 -s none /opt/csw/share/man/man3/BN_BLINDING_convert.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_convert_ex.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_create_param.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_free.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_get_flags.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_get_thread_id.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_invert.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_invert_ex.3=BN_BLINDING_new.3 -f none /opt/csw/share/man/man3/BN_BLINDING_new.3 0644 root bin -s none /opt/csw/share/man/man3/BN_BLINDING_set_flags.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_set_thread_id.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_BLINDING_update.3=BN_BLINDING_new.3 -s none /opt/csw/share/man/man3/BN_CTX_end.3=BN_CTX_start.3 -s none /opt/csw/share/man/man3/BN_CTX_free.3=BN_CTX_new.3 -s none /opt/csw/share/man/man3/BN_CTX_get.3=BN_CTX_start.3 -s none /opt/csw/share/man/man3/BN_CTX_init.3=BN_CTX_new.3 -f none /opt/csw/share/man/man3/BN_CTX_new.3 0644 root bin -f none /opt/csw/share/man/man3/BN_CTX_start.3 0644 root bin -s none /opt/csw/share/man/man3/BN_MONT_CTX_copy.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_free.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_init.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_new.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_MONT_CTX_set.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_free.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_init.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_new.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_RECP_CTX_set.3=BN_mod_mul_reciprocal.3 -f none /opt/csw/share/man/man3/BN_add.3 0644 root bin -f none /opt/csw/share/man/man3/BN_add_word.3 0644 root bin -s none /opt/csw/share/man/man3/BN_bin2bn.3=BN_bn2bin.3 -f none /opt/csw/share/man/man3/BN_bn2bin.3 0644 root bin -s none /opt/csw/share/man/man3/BN_bn2dec.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_bn2hex.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_bn2mpi.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_clear.3=BN_new.3 -s none /opt/csw/share/man/man3/BN_clear_bit.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_clear_free.3=BN_new.3 -f none /opt/csw/share/man/man3/BN_cmp.3 0644 root bin -f none /opt/csw/share/man/man3/BN_copy.3 0644 root bin -s none /opt/csw/share/man/man3/BN_dec2bn.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_div.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_div_recp.3=BN_mod_mul_reciprocal.3 -s none /opt/csw/share/man/man3/BN_div_word.3=BN_add_word.3 -s none /opt/csw/share/man/man3/BN_dup.3=BN_copy.3 -s none /opt/csw/share/man/man3/BN_exp.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_free.3=BN_new.3 -s none /opt/csw/share/man/man3/BN_from_montgomery.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_gcd.3=BN_add.3 -f none /opt/csw/share/man/man3/BN_generate_prime.3 0644 root bin -s none /opt/csw/share/man/man3/BN_get_word.3=BN_zero.3 -s none /opt/csw/share/man/man3/BN_hex2bn.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_init.3=BN_new.3 -s none /opt/csw/share/man/man3/BN_is_bit_set.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_is_odd.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_is_one.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_is_prime.3=BN_generate_prime.3 -s none /opt/csw/share/man/man3/BN_is_prime_fasttest.3=BN_generate_prime.3 -s none /opt/csw/share/man/man3/BN_is_word.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_is_zero.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_lshift.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_lshift1.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_mask_bits.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_mod.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_add.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_exp.3=BN_add.3 -f none /opt/csw/share/man/man3/BN_mod_inverse.3 0644 root bin -s none /opt/csw/share/man/man3/BN_mod_mul.3=BN_add.3 -f none /opt/csw/share/man/man3/BN_mod_mul_montgomery.3 0644 root bin -f none /opt/csw/share/man/man3/BN_mod_mul_reciprocal.3 0644 root bin -s none /opt/csw/share/man/man3/BN_mod_sqr.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_sub.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mod_word.3=BN_add_word.3 -s none /opt/csw/share/man/man3/BN_mpi2bn.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_mul.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_mul_word.3=BN_add_word.3 -f none /opt/csw/share/man/man3/BN_new.3 0644 root bin -s none /opt/csw/share/man/man3/BN_nnmod.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_num_bits.3=BN_num_bytes.3 -s none /opt/csw/share/man/man3/BN_num_bits_word.3=BN_num_bytes.3 -f none /opt/csw/share/man/man3/BN_num_bytes.3 0644 root bin -s none /opt/csw/share/man/man3/BN_one.3=BN_zero.3 -s none /opt/csw/share/man/man3/BN_print.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_print_fp.3=BN_bn2bin.3 -s none /opt/csw/share/man/man3/BN_pseudo_rand.3=BN_rand.3 -f none /opt/csw/share/man/man3/BN_rand.3 0644 root bin -s none /opt/csw/share/man/man3/BN_rshift.3=BN_set_bit.3 -s none /opt/csw/share/man/man3/BN_rshift1.3=BN_set_bit.3 -f none /opt/csw/share/man/man3/BN_set_bit.3 0644 root bin -s none /opt/csw/share/man/man3/BN_set_word.3=BN_zero.3 -s none /opt/csw/share/man/man3/BN_sqr.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_sub.3=BN_add.3 -s none /opt/csw/share/man/man3/BN_sub_word.3=BN_add_word.3 -f none /opt/csw/share/man/man3/BN_swap.3 0644 root bin -s none /opt/csw/share/man/man3/BN_to_montgomery.3=BN_mod_mul_montgomery.3 -s none /opt/csw/share/man/man3/BN_ucmp.3=BN_cmp.3 -s none /opt/csw/share/man/man3/BN_value_one.3=BN_zero.3 -f none /opt/csw/share/man/man3/BN_zero.3 0644 root bin -s none /opt/csw/share/man/man3/BUF_MEM_free.3=buffer.3 -s none /opt/csw/share/man/man3/BUF_MEM_grow.3=buffer.3 -s none /opt/csw/share/man/man3/BUF_MEM_new.3=buffer.3 -s none /opt/csw/share/man/man3/BUF_strdup.3=buffer.3 -f none /opt/csw/share/man/man3/CONF_modules_free.3 0644 root bin -s none /opt/csw/share/man/man3/CONF_modules_load.3=CONF_modules_load_file.3 -f none /opt/csw/share/man/man3/CONF_modules_load_file.3 0644 root bin -s none /opt/csw/share/man/man3/CONF_modules_unload.3=CONF_modules_free.3 -s none /opt/csw/share/man/man3/CRYPTO_destroy_dynlockid.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_get_ex_data.3=CRYPTO_set_ex_data.3 -s none /opt/csw/share/man/man3/CRYPTO_get_new_dynlockid.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_lock.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_num_locks.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_dynlock_create_callback.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_dynlock_destroy_callback.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_dynlock_lock_callback.3=threads.3 -f none /opt/csw/share/man/man3/CRYPTO_set_ex_data.3 0644 root bin -s none /opt/csw/share/man/man3/CRYPTO_set_id_callback.3=threads.3 -s none /opt/csw/share/man/man3/CRYPTO_set_locking_callback.3=threads.3 -s none /opt/csw/share/man/man3/DES_cbc_cksum.3=des.3 -s none /opt/csw/share/man/man3/DES_cfb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_cfb_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_crypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ecb2_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ecb3_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ecb_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede2_cbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede2_cfb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede2_ofb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_cbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_cbcm_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_cfb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ede3_ofb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_enc_read.3=des.3 -s none /opt/csw/share/man/man3/DES_enc_write.3=des.3 -s none /opt/csw/share/man/man3/DES_fcrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_is_weak_key.3=des.3 -s none /opt/csw/share/man/man3/DES_key_sched.3=des.3 -s none /opt/csw/share/man/man3/DES_ncbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ofb64_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_ofb_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_pcbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DES_quad_cksum.3=des.3 -s none /opt/csw/share/man/man3/DES_random_key.3=des.3 -s none /opt/csw/share/man/man3/DES_set_key.3=des.3 -s none /opt/csw/share/man/man3/DES_set_key_checked.3=des.3 -s none /opt/csw/share/man/man3/DES_set_key_unchecked.3=des.3 -s none /opt/csw/share/man/man3/DES_set_odd_parity.3=des.3 -s none /opt/csw/share/man/man3/DES_string_to_2keys.3=des.3 -s none /opt/csw/share/man/man3/DES_string_to_key.3=des.3 -s none /opt/csw/share/man/man3/DES_xcbc_encrypt.3=des.3 -s none /opt/csw/share/man/man3/DH_OpenSSL.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_check.3=DH_generate_parameters.3 -s none /opt/csw/share/man/man3/DH_compute_key.3=DH_generate_key.3 -s none /opt/csw/share/man/man3/DH_free.3=DH_new.3 -f none /opt/csw/share/man/man3/DH_generate_key.3 0644 root bin -f none /opt/csw/share/man/man3/DH_generate_parameters.3 0644 root bin -s none /opt/csw/share/man/man3/DH_get_default_method.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_get_ex_data.3=DH_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DH_get_ex_new_index.3 0644 root bin -f none /opt/csw/share/man/man3/DH_new.3 0644 root bin -s none /opt/csw/share/man/man3/DH_new_method.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_set_default_method.3=DH_set_method.3 -s none /opt/csw/share/man/man3/DH_set_ex_data.3=DH_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DH_set_method.3 0644 root bin -f none /opt/csw/share/man/man3/DH_size.3 0644 root bin -s none /opt/csw/share/man/man3/DHparams_print.3=RSA_print.3 -s none /opt/csw/share/man/man3/DHparams_print_fp.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSA_OpenSSL.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_SIG_free.3=DSA_SIG_new.3 -f none /opt/csw/share/man/man3/DSA_SIG_new.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_do_sign.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_do_verify.3=DSA_do_sign.3 -f none /opt/csw/share/man/man3/DSA_dup_DH.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_free.3=DSA_new.3 -f none /opt/csw/share/man/man3/DSA_generate_key.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_generate_parameters.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_get_default_method.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_get_ex_data.3=DSA_get_ex_new_index.3 -f none /opt/csw/share/man/man3/DSA_get_ex_new_index.3 0644 root bin -f none /opt/csw/share/man/man3/DSA_new.3 0644 root bin -s none /opt/csw/share/man/man3/DSA_new_method.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_print.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSA_print_fp.3=RSA_print.3 -s none /opt/csw/share/man/man3/DSA_set_default_method.3=DSA_set_method.3 -s none /opt/csw/share/man/man3/DSA_set_ex_data.3=DSA_get_ex_new_index.3 @@ 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 chninkel at users.sourceforge.net Fri Jun 6 01:36:52 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Thu, 5 Jun 2014 23:36:52 +0000 Subject: SF.net SVN: gar:[23771] csw/mgar/pkg/openssl/trunk/files Message-ID: <3gl3MC2wFBzKD@mail.opencsw.org> Revision: 23771 http://sourceforge.net/p/gar/code/23771 Author: chninkel Date: 2014-06-05 23:36:51 +0000 (Thu, 05 Jun 2014) Log Message: ----------- openssl/trunk: remove obsolete patches Removed Paths: ------------- csw/mgar/pkg/openssl/trunk/files/pkcs11_engine-0.9.8h.patch.2008-07-29 csw/mgar/pkg/openssl/trunk/files/pkcs11_engine-0.9.8l.patch.2009-11-19 Deleted: csw/mgar/pkg/openssl/trunk/files/pkcs11_engine-0.9.8h.patch.2008-07-29 =================================================================== --- csw/mgar/pkg/openssl/trunk/files/pkcs11_engine-0.9.8h.patch.2008-07-29 2014-06-05 23:35:58 UTC (rev 23770) +++ csw/mgar/pkg/openssl/trunk/files/pkcs11_engine-0.9.8h.patch.2008-07-29 2014-06-05 23:36:51 UTC (rev 23771) @@ -1,10168 +0,0 @@ -diff -urN openssl-0.9.8j/Configure openssl-0.9.8j.new/Configure ---- openssl-0.9.8j/Configure 2008-12-29 01:18:23.000000000 +0100 -+++ openssl-0.9.8j.new/Configure 2009-02-15 22:26:02.669766669 +0100 -@@ -21,6 +21,9 @@ - # --prefix prefix for the OpenSSL include, lib and bin directories - # (Default: the OPENSSLDIR directory) - # -+# --pk11-libname PKCS#11 library name. -+# (Default: none) -+# - # --install_prefix Additional prefix for package builders (empty by - # default). This needn't be set in advance, you can - # just as well use "make INSTALL_PREFIX=/whatever install". -@@ -575,6 +578,8 @@ - my $idx_ranlib = $idx++; - my $idx_arflags = $idx++; - -+my $pk11_libname=""; -+ - my $prefix=""; - my $openssldir=""; - my $exe_ext=""; -@@ -807,6 +812,10 @@ - { - $flags.=$_." "; - } -+ elsif (/^--pk11-libname=(.*)$/) -+ { -+ $pk11_libname=$1; -+ } - elsif (/^--prefix=(.*)$/) - { - $prefix=$1; -@@ -938,6 +947,13 @@ - exit 0; - } - -+if (! $pk11_libname) -+ { -+ print STDERR "You must set --pk11-libname for PKCS#11 library.\n"; -+ print STDERR "See README.pkcs11 for more information.\n"; -+ exit 1; -+ } -+ - if ($target =~ m/^CygWin32(-.*)$/) { - $target = "Cygwin".$1; - } -@@ -1095,6 +1111,8 @@ - if ($flags ne "") { $cflags="$flags$cflags"; } - else { $no_user_cflags=1; } - -+$cflags="-DPK11_LIB_LOCATION=\"$pk11_libname\" $cflags"; -+ - # Kerberos settings. The flavor must be provided from outside, either through - # the script "config" or manually. - if (!$no_krb5) -@@ -1446,6 +1464,7 @@ - s/^VERSION=.*/VERSION=$version/; - s/^MAJOR=.*/MAJOR=$major/; - s/^MINOR=.*/MINOR=$minor/; -+ s/^PK11_LIB_LOCATION=.*/PK11_LIB_LOCATION=$pk11_libname/; - s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=$shlib_version_number/; - s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/; - s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/; -diff -urN openssl-0.9.8j/Makefile.org openssl-0.9.8j.new/Makefile.org ---- openssl-0.9.8j/Makefile.org 2008-12-30 14:26:26.000000000 +0100 -+++ openssl-0.9.8j.new/Makefile.org 2009-02-15 22:26:02.673236044 +0100 -@@ -26,6 +26,9 @@ - INSTALL_PREFIX= - INSTALLTOP=/usr/local/ssl - -+# You must set this through --pk11-libname configure option. -+PK11_LIB_LOCATION= -+ - # Do not edit this manually. Use Configure --openssldir=DIR do change this! - OPENSSLDIR=/usr/local/ssl - -diff -urN openssl-0.9.8j/README.pkcs11 openssl-0.9.8j.new/README.pkcs11 ---- openssl-0.9.8j/README.pkcs11 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-0.9.8j.new/README.pkcs11 2009-02-15 22:26:02.675891756 +0100 -@@ -0,0 +1,159 @@ -+PKCS#11 engine support for OpenSSL 0.9.8h -+========================================= -+ -+[July 29, 2008] -+ -+This patch containing code available in OpenSolaris adds support for PKCS#11 -+engine into OpenSSL and implements PKCS#11 v2.20. It is to be applied against -+OpenSSL 0.9.8h source code distribution as shipped by OpenSSL.Org. Your system -+must provide PKCS#11 backend otherwise the patch is useless. You provide the -+PKCS#11 library name during the build configuration phase, see below. -+ -+Patch can be applied like this: -+ -+ # NOTE: use gtar if on Solaris -+ tar xfzv openssl-0.9.8h.tar.gz -+ # now download the patch to the current directory -+ # ... -+ cd openssl-0.9.8h -+ # NOTE: use gpatch if on Solaris -+ patch -p1 < ../pkcs11_engine-0.9.8h.patch.2008-07-29 -+ -+It is designed to support pure acceleration for RSA, DSA, DH and all the -+symetric ciphers and message digest algorithms that PKCS#11 and OpenSSL share -+except for missing support for patented algorithms MDC2, RC3, RC5 and IDEA. -+ -+According to the PKCS#11 providers installed on your machine, it can support -+following mechanisms: -+ -+ RSA, DSA, DH, RAND, DES-CBC, DES-EDE3-CBC, DES-ECB, DES-EDE3, RC4, -+ AES-128-CBC, AES-192-CBC, AES-256-CBC, AES-128-ECB, AES-192-ECB, -+ AES-256-ECB, AES-128-CTR, AES-192-CTR, AES-256-CTR, MD5, SHA1, SHA224, -+ SHA256, SHA384, SHA512 -+ -+Note that for AES counter mode the application must provide their own EVP -+functions since OpenSSL doesn't support counter mode through EVP yet. You may -+see OpenSSH source code (cipher.c) to get the idea how to do that. -+ -++------------------------------------------------------------------------------+ -+| NOTE: this patch version does NOT contain experimental code for accessing | -+| RSA keys stored in pkcs#11 key stores by reference. Some problems were found | -+| (thanks to all who wrote me!) and due to my ENOTIME problem I'll address | -+| those issues in the next version of the patch that will have that code back, | -+| hopefully fixed. | -++------------------------------------------------------------------------------+ -+ -+You must provide the location of PKCS#11 library in your system to the -+configure script. You will be instructed to do that when you try to run the -+config script: -+ -+ $ ./config -+ Operating system: i86pc-whatever-solaris2 -+ Configuring for solaris-x86-cc -+ You must set --pk11-libname for PKCS#11 library. -+ See README.pkcs11 for more information. -+ -+Taking openCryptoki project on Linux AMD64 box as an example, you would run -+configure like this: -+ -+ ./config --pk11-libname=/usr/lib64/pkcs11/PKCS11_API.so -+ -+To check whether newly built openssl really supports PKCS#11 it's enough to -+run "apps/openssl engine" and look for "(pkcs11) PKCS #11 engine support" in -+the output. -+ -+This patch was tested on Solaris against PKCS#11 engine available from Solaris -+Cryptographic Framework (Solaris 10 and OpenSolaris) and also on Linux using -+PKCS#11 libraries from openCryptoki project (see openCryptoki website -+http://sourceforge.net/projects/opencryptoki for more information). Some Linux -+distributions even ship those libraries with the system. The patch should work -+on any system that is supported by OpenSSL itself and has functional PKCS#11 -+library. -+ -+The patch contains "RSA Security Inc. PKCS #11 Cryptographic Token Interface -+(Cryptoki)" - files cryptoki.h, pkcs11.h, pkcs11f.h and pkcs11t.h which are -+copyrighted by RSA Security Inc., see pkcs11.h for more information. -+ -+Other added/modified code in this patch is copyrighted by Sun Microsystems, -+Inc. and is released under the OpenSSL license (see LICENSE file for more -+information). -+ -+Revisions of patch for 0.9.8 branch -+=================================== -+ -+2008-07-29 -+- update the patch to OpenSSL 0.9.8h version -+- pkcs11t.h updated to the latest version: -+ -+ 6545665 make CKM_AES_CTR available to non-kernel users -+ -+- fixed bugs in the engine code: -+ -+ 6602801 PK11_SESSION cache has to employ reference counting scheme for -+ asymmetric key operations -+ 6605538 pkcs11 functions C_FindObjects[{Init,Final}]() not called -+ atomically -+ 6607307 pkcs#11 engine can't read RSA private keys -+ 6652362 pk11_RSA_finish() is cutting corners -+ 6662112 pk11_destroy_{rsa,dsa,dh}_key_objects() use locking in -+ suboptimal way -+ 6666625 pk11_destroy_{rsa,dsa,dh}_key_objects() should be more -+ resilient to destroy failures -+ 6667273 OpenSSL engine should not use free() but OPENSSL_free() -+ 6670363 PKCS#11 engine fails to reuse existing symmetric keys -+ 6678135 memory corruption in pk11_DH_generate_key() in pkcs#11 engine -+ 6678503 DSA signature conversion in pk11_dsa_do_verify() ignores size -+ of big numbers leading to failures -+ 6706562 pk11_DH_compute_key() returns 0 in case of failure instead of -+ -1 -+ 6706622 pk11_load_{pub,priv}key create corrupted RSA key references -+ 6707129 return values from BN_new() in pk11_DH_generate_key() are not -+ checked -+ 6707274 DSA/RSA/DH PKCS#11 engine operations need to be resistant to -+ structure reuse -+ 6707782 OpenSSL PKCS#11 engine pretends to be aware of -+ OPENSSL_NO_{RSA,DSA,DH} -+ defines but fails miserably -+ 6709966 make check_new_*() to return values to indicate cache hit/miss -+ 6705200 pk11_dh struct initialization in PKCS#11 engine is missing -+ generate_params parameter -+ 6709513 PKCS#11 engine sets IV length even for ECB modes -+ 6728296 buffer length not initialized for C_(En|De)crypt_Final() in the -+ PKCS#11 engine -+ 6728871 PKCS#11 engine must reset global_session in pk11_finish() -+ -+- new features and enhancements: -+ -+ 6562155 OpenSSL pkcs#11 engine needs support for SHA224/256/384/512 -+ 6685012 OpenSSL pkcs#11 engine needs support for new cipher modes -+ 6725903 OpenSSL PKCS#11 engine shouldn't use soft token for symmetric -+ ciphers and digests -+ -+2007-10-15 -+- update for 0.9.8f version -+- update for "6607670 teach pkcs#11 engine how to use keys be reference" -+ -+2007-10-02 -+- draft for "6607670 teach pkcs#11 engine how to use keys be reference" -+- draft for "6607307 pkcs#11 engine can't read RSA private keys" -+ -+2007-09-26 -+- 6375348 Using pkcs11 as the SSLCryptoDevice with Apache/OpenSSL causes -+ significant performance drop -+- 6573196 memory is leaked when OpenSSL is used with PKCS#11 engine -+ -+2007-05-25 -+- 6558630 race in OpenSSL pkcs11 engine when using symetric block ciphers -+ -+2007-05-19 -+- initial patch for 0.9.8e using latest OpenSolaris code -+ -+ -+Feedback -+======== -+ -+Please send feedback to security-discuss at opensolaris.org. The patch was -+created by Jan.Pechanec at Sun.COM from code available in OpenSolaris. -+ -+Latest version should be always available on http://blogs.sun.com/janp. -+ -diff -urN openssl-0.9.8j/crypto/engine/Makefile openssl-0.9.8j.new/crypto/engine/Makefile ---- openssl-0.9.8j/crypto/engine/Makefile 2008-09-17 19:10:59.000000000 +0200 -+++ openssl-0.9.8j.new/crypto/engine/Makefile 2009-02-15 22:29:36.590747863 +0100 -@@ -21,12 +21,14 @@ - eng_table.c eng_pkey.c eng_fat.c eng_all.c \ - tb_rsa.c tb_dsa.c tb_ecdsa.c tb_dh.c tb_ecdh.c tb_rand.c tb_store.c \ - tb_cipher.c tb_digest.c \ -- eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c eng_padlock.c -+ eng_openssl.c eng_cnf.c eng_dyn.c eng_cryptodev.c eng_padlock.c \ -+ hw_pk11.c hw_pk11_pub.c - LIBOBJ= eng_err.o eng_lib.o eng_list.o eng_init.o eng_ctrl.o \ - eng_table.o eng_pkey.o eng_fat.o eng_all.o \ - tb_rsa.o tb_dsa.o tb_ecdsa.o tb_dh.o tb_ecdh.o tb_rand.o tb_store.o \ - tb_cipher.o tb_digest.o \ -- eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o eng_padlock.o -+ eng_openssl.o eng_cnf.o eng_dyn.o eng_cryptodev.o eng_padlock.o \ -+ hw_pk11.o hw_pk11_pub.o - - SRC= $(LIBSRC) - -@@ -286,6 +288,54 @@ - eng_table.o: ../../include/openssl/symhacks.h ../../include/openssl/x509.h - eng_table.o: ../../include/openssl/x509_vfy.h ../cryptlib.h eng_int.h - eng_table.o: eng_table.c -+hw_pk11.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h -+hw_pk11.o: ../../include/openssl/engine.h ../../include/openssl/ossl_typ.h -+hw_pk11.o: ../../include/openssl/bn.h ../../include/openssl/rsa.h -+hw_pk11.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h -+hw_pk11.o: ../../include/openssl/crypto.h ../../include/openssl/stack.h -+hw_pk11.o: ../../include/openssl/safestack.h ../../include/openssl/opensslv.h -+hw_pk11.o: ../../include/openssl/symhacks.h ../../include/openssl/dsa.h -+hw_pk11.o: ../../include/openssl/dh.h ../../include/openssl/rand.h -+hw_pk11.o: ../../include/openssl/ui.h ../../include/openssl/err.h -+hw_pk11.o: ../../include/openssl/lhash.h ../../include/openssl/dso.h -+hw_pk11.o: ../../include/openssl/pem.h ../../include/openssl/evp.h -+hw_pk11.o: ../../include/openssl/md2.h ../../include/openssl/md4.h -+hw_pk11.o: ../../include/openssl/md5.h ../../include/openssl/sha.h -+hw_pk11.o: ../../include/openssl/ripemd.h ../../include/openssl/des.h -+hw_pk11.o: ../../include/openssl/des_old.h ../../include/openssl/ui_compat.h -+hw_pk11.o: ../../include/openssl/rc4.h ../../include/openssl/rc2.h -+hw_pk11.o: ../../crypto/rc5/rc5.h ../../include/openssl/blowfish.h -+hw_pk11.o: ../../include/openssl/cast.h ../../include/openssl/idea.h -+hw_pk11.o: ../../crypto/mdc2/mdc2.h ../../include/openssl/aes.h -+hw_pk11.o: ../../include/openssl/objects.h ../../include/openssl/obj_mac.h -+hw_pk11.o: ../../include/openssl/x509.h ../../include/openssl/buffer.h -+hw_pk11.o: ../../include/openssl/x509_vfy.h ../../include/openssl/pkcs7.h -+hw_pk11.o: ../../include/openssl/pem2.h ../cryptlib.h -+hw_pk11.o: ../../e_os.h hw_pk11_err.c hw_pk11_err.h hw_pk11.c -+hw_pk11_pub.o: ../../include/openssl/e_os2.h ../../include/openssl/opensslconf.h -+hw_pk11_pub.o: ../../include/openssl/engine.h ../../include/openssl/ossl_typ.h -+hw_pk11_pub.o: ../../include/openssl/bn.h ../../include/openssl/rsa.h -+hw_pk11_pub.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h -+hw_pk11_pub.o: ../../include/openssl/crypto.h ../../include/openssl/stack.h -+hw_pk11_pub.o: ../../include/openssl/safestack.h ../../include/openssl/opensslv.h -+hw_pk11_pub.o: ../../include/openssl/symhacks.h ../../include/openssl/dsa.h -+hw_pk11_pub.o: ../../include/openssl/dh.h ../../include/openssl/rand.h -+hw_pk11_pub.o: ../../include/openssl/ui.h ../../include/openssl/err.h -+hw_pk11_pub.o: ../../include/openssl/lhash.h ../../include/openssl/dso.h -+hw_pk11_pub.o: ../../include/openssl/pem.h ../../include/openssl/evp.h -+hw_pk11_pub.o: ../../include/openssl/md2.h ../../include/openssl/md4.h -+hw_pk11_pub.o: ../../include/openssl/md5.h ../../include/openssl/sha.h -+hw_pk11_pub.o: ../../include/openssl/ripemd.h ../../include/openssl/des.h -+hw_pk11_pub.o: ../../include/openssl/des_old.h ../../include/openssl/ui_compat.h -+hw_pk11_pub.o: ../../include/openssl/rc4.h ../../include/openssl/rc2.h -+hw_pk11_pub.o: ../../crypto/rc5/rc5.h ../../include/openssl/blowfish.h -+hw_pk11_pub.o: ../../include/openssl/cast.h ../../include/openssl/idea.h -+hw_pk11_pub.o: ../../crypto/mdc2/mdc2.h ../../include/openssl/aes.h -+hw_pk11_pub.o: ../../include/openssl/objects.h ../../include/openssl/obj_mac.h -+hw_pk11_pub.o: ../../include/openssl/x509.h ../../include/openssl/buffer.h -+hw_pk11_pub.o: ../../include/openssl/x509_vfy.h ../../include/openssl/pkcs7.h -+hw_pk11_pub.o: ../../include/openssl/pem2.h ../cryptlib.h -+hw_pk11_pub.o: ../../e_os.h hw_pk11_err.c hw_pk11_err.h hw_pk11_pub.c - tb_cipher.o: ../../e_os.h ../../include/openssl/asn1.h - tb_cipher.o: ../../include/openssl/bio.h ../../include/openssl/buffer.h - tb_cipher.o: ../../include/openssl/crypto.h ../../include/openssl/e_os2.h -diff -urN openssl-0.9.8j/crypto/engine/cryptoki.h openssl-0.9.8j.new/crypto/engine/cryptoki.h ---- openssl-0.9.8j/crypto/engine/cryptoki.h 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-0.9.8j.new/crypto/engine/cryptoki.h 2009-02-15 22:26:02.684405873 +0100 -@@ -0,0 +1,103 @@ -+/* -+ * CDDL HEADER START -+ * -+ * The contents of this file are subject to the terms of the -+ * Common Development and Distribution License, Version 1.0 only -+ * (the "License"). You may not use this file except in compliance -+ * with the License. -+ * -+ * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE -+ * or http://www.opensolaris.org/os/licensing. -+ * See the License for the specific language governing permissions -+ * and limitations under the License. -+ * -+ * When distributing Covered Code, include this CDDL HEADER in each -+ * file and include the License file at usr/src/OPENSOLARIS.LICENSE. -+ * If applicable, add the following below this CDDL HEADER, with the -+ * fields enclosed by brackets "[]" replaced with your own identifying -+ * information: Portions Copyright [yyyy] [name of copyright owner] -+ * -+ * CDDL HEADER END -+ */ -+/* -+ * Copyright 2003 Sun Microsystems, Inc. All rights reserved. -+ * Use is subject to license terms. -+ */ -+ -+#ifndef _CRYPTOKI_H -+#define _CRYPTOKI_H -+ -+#pragma ident "@(#)cryptoki.h 1.2 05/06/08 SMI" -+ -+#ifdef __cplusplus -+extern "C" { -+#endif -+ -+#ifndef CK_PTR -+#define CK_PTR * -+#endif -+ -+#ifndef CK_DEFINE_FUNCTION -+#define CK_DEFINE_FUNCTION(returnType, name) returnType name -+#endif -+ -+#ifndef CK_DECLARE_FUNCTION -+#define CK_DECLARE_FUNCTION(returnType, name) returnType name -+#endif -+ -+#ifndef CK_DECLARE_FUNCTION_POINTER -+#define CK_DECLARE_FUNCTION_POINTER(returnType, name) returnType (* name) -+#endif -+ -+#ifndef CK_CALLBACK_FUNCTION -+#define CK_CALLBACK_FUNCTION(returnType, name) returnType (* name) -+#endif -+ -+#ifndef NULL_PTR -+#include /* For NULL */ -+#define NULL_PTR NULL -+#endif -+ -+/* -+ * pkcs11t.h defines TRUE and FALSE in a way that upsets lint -+ */ -+#ifndef CK_DISABLE_TRUE_FALSE -+#define CK_DISABLE_TRUE_FALSE -+#ifndef TRUE -+#define TRUE 1 -+#endif /* TRUE */ -+#ifndef FALSE -+#define FALSE 0 -+#endif /* FALSE */ -+#endif /* CK_DISABLE_TRUE_FALSE */ -+ -+#undef CK_PKCS11_FUNCTION_INFO -+ -+#include "pkcs11.h" -+ -+/* Solaris specific functions */ -+ -+#include -+ -+/* -+ * SUNW_C_GetMechSession will initialize the framework and do all -+ * the necessary PKCS#11 calls to create a session capable of -+ * providing operations on the requested mechanism -+ */ -+CK_RV SUNW_C_GetMechSession(CK_MECHANISM_TYPE mech, -+ CK_SESSION_HANDLE_PTR hSession); -+ -+/* -+ * SUNW_C_KeyToObject will create a secret key object for the given -+ * mechanism from the rawkey data. -+ */ -+CK_RV SUNW_C_KeyToObject(CK_SESSION_HANDLE hSession, -+ CK_MECHANISM_TYPE mech, const void *rawkey, size_t rawkey_len, -+ CK_OBJECT_HANDLE_PTR obj); -+ -+ -+#ifdef __cplusplus -+} -+#endif -+ -+#endif /* _CRYPTOKI_H */ -diff -urN openssl-0.9.8j/crypto/engine/eng_all.c openssl-0.9.8j.new/crypto/engine/eng_all.c ---- openssl-0.9.8j/crypto/engine/eng_all.c 2008-06-04 20:01:39.000000000 +0200 -+++ openssl-0.9.8j.new/crypto/engine/eng_all.c 2009-02-15 22:26:02.687356494 +0100 -@@ -110,6 +110,9 @@ - #if defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_NO_CAPIENG) - ENGINE_load_capi(); - #endif -+#ifndef OPENSSL_NO_HW_PKCS11 -+ ENGINE_load_pk11(); -+#endif - #endif - } - -diff -urN openssl-0.9.8j/crypto/engine/engine.h openssl-0.9.8j.new/crypto/engine/engine.h ---- openssl-0.9.8j/crypto/engine/engine.h 2008-06-04 20:01:40.000000000 +0200 -+++ openssl-0.9.8j.new/crypto/engine/engine.h 2009-02-15 22:26:02.691825491 +0100 -@@ -337,6 +337,7 @@ - void ENGINE_load_ubsec(void); - #endif - void ENGINE_load_cryptodev(void); -+void ENGINE_load_pk11(void); - void ENGINE_load_padlock(void); - void ENGINE_load_builtin_engines(void); - #ifndef OPENSSL_NO_CAPIENG -diff -urN openssl-0.9.8j/crypto/engine/hw_pk11.c openssl-0.9.8j.new/crypto/engine/hw_pk11.c ---- openssl-0.9.8j/crypto/engine/hw_pk11.c 1970-01-01 01:00:00.000000000 +0100 -+++ openssl-0.9.8j.new/crypto/engine/hw_pk11.c 2009-02-15 22:26:02.715171244 +0100 -@@ -0,0 +1,3382 @@ -+/* -+ * Copyright 2008 Sun Microsystems, Inc. All rights reserved. -+ * Use is subject to license terms. -+ */ -+ -+#pragma ident "@(#)hw_pk11.c 1.14 08/07/28 SMI" -+ -+/* crypto/engine/hw_pk11.c */ -+/* This product includes software developed by the OpenSSL Project for -+ * use in the OpenSSL Toolkit (http://www.openssl.org/). -+ * -+ * This project also referenced hw_pkcs11-0.9.7b.patch written by -+ * Afchine Madjlessi. -+ */ -+/* ==================================================================== -+ * Copyright (c) 2000-2001 The OpenSSL Project. All rights reserved. -+ * -+ * 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. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in -+ * the documentation and/or other materials provided with the -+ * distribution. -+ * -+ * 3. All advertising materials mentioning features or use of this -+ * software must display the following acknowledgment: -+ * "This product includes software developed by the OpenSSL Project -+ * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" -+ * -+ * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to -+ * endorse or promote products derived from this software without -+ * prior written permission. For written permission, please contact -+ * licensing at OpenSSL.org. -+ * -+ * 5. Products derived from this software may not be called "OpenSSL" -+ * nor may "OpenSSL" appear in their names without prior written -+ * permission of the OpenSSL Project. -+ * -+ * 6. Redistributions of any form whatsoever must retain the following -+ * acknowledgment: -+ * "This product includes software developed by the OpenSSL Project -+ * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" -+ * -+ * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY -+ * EXPRESSED 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 OpenSSL PROJECT OR -+ * ITS CONTRIBUTORS 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. -+ * ==================================================================== -+ * -+ * This product includes cryptographic software written by Eric Young -+ * (eay at cryptsoft.com). This product includes software written by Tim -+ * Hudson (tjh at cryptsoft.com). -+ * -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#ifndef OPENSSL_NO_RSA -+#include -+#endif -+#ifndef OPENSSL_NO_DSA -+#include -+#endif -+#ifndef OPENSSL_NO_DH -+#include -+#endif -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#ifndef OPENSSL_NO_HW -+#ifndef OPENSSL_NO_HW_PK11 -+ -+/* label for debug messages printed on stderr */ -+#define PK11_DBG "PKCS#11 ENGINE DEBUG" -+/* prints a lot of debug messages on stderr about slot selection process */ -+#undef DEBUG_SLOT_SELECTION -+/* -+ * Solaris specific code. See comment at check_hw_mechanisms() for more -+ * information. -+ */ -+#undef SOLARIS_HW_SLOT_SELECTION -+ -+/* -+ * AES counter mode is not supported in the OpenSSL EVP API yet and neither -+ * there are official OIDs for mechanisms based on this mode. With our changes, -+ * an application can define its own EVP calls for AES counter mode and then -+ * it can make use of hardware acceleration through this engine. However, it's -+ * better if we keep AES CTR support code under ifdef's. -+ */ -+#define SOLARIS_AES_CTR -+ -+#include "cryptoki.h" -+#include "pkcs11.h" -+#include "hw_pk11_err.c" -+ -+#ifdef SOLARIS_AES_CTR -+/* -+ * NIDs for AES counter mode that will be defined during the engine -+ * initialization. -+ */ -+int NID_aes_128_ctr = NID_undef; -+int NID_aes_192_ctr = NID_undef; -+int NID_aes_256_ctr = NID_undef; -+#endif /* SOLARIS_AES_CTR */ -+ -+#ifdef SOLARIS_HW_SLOT_SELECTION -+/* -+ * Tables for symmetric ciphers and digest mechs found in the pkcs11_kernel -+ * library. See comment at check_hw_mechanisms() for more information. -+ */ -+int *hw_cnids; -+int *hw_dnids; -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ -+/* -+ * Heads of the free PK11 session lists. We have three groups of algorithms in -+ * the engine. Public key mechanisms, random operations, and symetric ciphers -+ * and digests. We can use a different slot for each group so we must keep a -+ * separate cache of sessions for them. -+ */ -+static struct PK11_SESSION_st *pubkey_free_session = NULL; -+static struct PK11_SESSION_st *rand_free_session = NULL; -+static struct PK11_SESSION_st *free_session = NULL; -+ -+/* Create all secret key objects in a global session so that they are available -+ * to use for other sessions. These other sessions may be opened or closed -+ * without losing the secret key objects */ -+static CK_SESSION_HANDLE global_session = CK_INVALID_HANDLE; -+ -+/* ENGINE level stuff */ -+static int pk11_init(ENGINE *e); -+static int pk11_library_init(ENGINE *e); -+static int pk11_finish(ENGINE *e); -+static int pk11_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)()); -+static int pk11_destroy(ENGINE *e); -+ -+/* RAND stuff */ -+static void pk11_rand_seed(const void *buf, int num); -+static void pk11_rand_add(const void *buf, int num, double add_entropy); -+static void pk11_rand_cleanup(void); -+static int pk11_rand_bytes(unsigned char *buf, int num); -+static int pk11_rand_status(void); -+ -+/* These functions are also used in other files */ -+PK11_SESSION *pk11_get_session(PK11_OPTYPE optype); -+void pk11_return_session(PK11_SESSION *sp, PK11_OPTYPE optype); -+ -+/* active list manipulation functions used here */ -+int pk11_active_delete(CK_OBJECT_HANDLE h); -+ -+#ifndef OPENSSL_NO_RSA -+int pk11_destroy_rsa_key_objects(PK11_SESSION *session); -+int pk11_destroy_rsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock); -+int pk11_destroy_rsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock); -+#endif -+#ifndef OPENSSL_NO_DSA -+int pk11_destroy_dsa_key_objects(PK11_SESSION *session); -+int pk11_destroy_dsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock); -+int pk11_destroy_dsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock); -+#endif -+#ifndef OPENSSL_NO_DH -+int pk11_destroy_dh_key_objects(PK11_SESSION *session); -+int pk11_destroy_dh_object(PK11_SESSION *session, CK_BBOOL uselock); -+#endif -+ -+/* Local helper functions */ -+static int pk11_free_all_sessions(void); -+static int pk11_free_session_list(PK11_SESSION **sp); -+static int pk11_setup_session(PK11_SESSION *sp, PK11_OPTYPE optype); -+static int pk11_destroy_cipher_key_objects(PK11_SESSION *session); -+static int pk11_destroy_object(CK_SESSION_HANDLE session, -+ CK_OBJECT_HANDLE oh); -+static const char *get_PK11_LIBNAME(void); -+static void free_PK11_LIBNAME(void); -+static long set_PK11_LIBNAME(const char *name); -+ -+/* Symmetric cipher and digest support functions */ -+static int cipher_nid_to_pk11(int nid); -+#ifdef SOLARIS_AES_CTR -+static int pk11_add_NID(char *sn, char *ln); -+static int pk11_add_aes_ctr_NIDs(void); -+#endif /* SOLARIS_AES_CTR */ -+static int pk11_usable_ciphers(const int **nids); -+static int pk11_usable_digests(const int **nids); -+static int pk11_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc); -+static int pk11_cipher_final(PK11_SESSION *sp); -+static int pk11_cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, -+ const unsigned char *in, unsigned int inl); -+static int pk11_cipher_cleanup(EVP_CIPHER_CTX *ctx); -+static int pk11_engine_ciphers(ENGINE *e, const EVP_CIPHER **cipher, -+ const int **nids, int nid); -+static int pk11_engine_digests(ENGINE *e, const EVP_MD **digest, -+ const int **nids, int nid); -+static CK_OBJECT_HANDLE pk11_get_cipher_key(EVP_CIPHER_CTX *ctx, -+ const unsigned char *key, CK_KEY_TYPE key_type, PK11_SESSION *sp); -+static int check_new_cipher_key(PK11_SESSION *sp, const unsigned char *key, -+ int key_len); -+static int md_nid_to_pk11(int nid); -+static int pk11_digest_init(EVP_MD_CTX *ctx); -+static int pk11_digest_update(EVP_MD_CTX *ctx,const void *data, -+ size_t count); -+static int pk11_digest_final(EVP_MD_CTX *ctx,unsigned char *md); -+static int pk11_digest_copy(EVP_MD_CTX *to,const EVP_MD_CTX *from); -+static int pk11_digest_cleanup(EVP_MD_CTX *ctx); -+ -+static int pk11_choose_slots(int *any_slot_found); -+static void pk11_find_symmetric_ciphers(CK_FUNCTION_LIST_PTR pflist, -+ CK_SLOT_ID current_slot, int *current_slot_n_cipher, -+ int *local_cipher_nids); -+static void pk11_find_digests(CK_FUNCTION_LIST_PTR pflist, -+ CK_SLOT_ID current_slot, int *current_slot_n_digest, -+ int *local_digest_nids); -+static void pk11_get_symmetric_cipher(CK_FUNCTION_LIST_PTR, int slot_id, -+ CK_MECHANISM_TYPE mech, int *current_slot_n_cipher, int *local_cipher_nids, -+ int id); -+static void pk11_get_digest(CK_FUNCTION_LIST_PTR pflist, int slot_id, -+ CK_MECHANISM_TYPE mech, int *current_slot_n_digest, int *local_digest_nids, -+ int id); -+ -+#ifdef SOLARIS_HW_SLOT_SELECTION -+static int check_hw_mechanisms(void); -+static int nid_in_table(int nid, int *nid_table); -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ -+/* Index for the supported ciphers */ -+enum pk11_cipher_id { -+ PK11_DES_CBC, -+ PK11_DES3_CBC, -+ PK11_DES_ECB, -+ PK11_DES3_ECB, -+ PK11_RC4, -+ PK11_AES_128_CBC, -+ PK11_AES_192_CBC, -+ PK11_AES_256_CBC, -+ PK11_AES_128_ECB, -+ PK11_AES_192_ECB, -+ PK11_AES_256_ECB, -+ PK11_BLOWFISH_CBC, -+#ifdef SOLARIS_AES_CTR -+ PK11_AES_128_CTR, -+ PK11_AES_192_CTR, -+ PK11_AES_256_CTR, -+#endif /* SOLARIS_AES_CTR */ -+ PK11_CIPHER_MAX -+}; -+ -+/* Index for the supported digests */ -+enum pk11_digest_id { -+ PK11_MD5, -+ PK11_SHA1, -+ PK11_SHA224, -+ PK11_SHA256, -+ PK11_SHA384, -+ PK11_SHA512, -+ PK11_DIGEST_MAX -+}; -+ -+#define TRY_OBJ_DESTROY(sess_hdl, obj_hdl, retval, uselock) \ -+ { \ -+ if (uselock) \ -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); \ -+ if (pk11_active_delete(obj_hdl) == 1) \ -+ { \ -+ retval = pk11_destroy_object(sess_hdl, obj_hdl); \ -+ } \ -+ if (uselock) \ -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); \ -+ } -+ -+static int cipher_nids[PK11_CIPHER_MAX]; -+static int digest_nids[PK11_DIGEST_MAX]; -+static int cipher_count = 0; -+static int digest_count = 0; -+static CK_BBOOL pk11_have_rsa = CK_FALSE; -+static CK_BBOOL pk11_have_dsa = CK_FALSE; -+static CK_BBOOL pk11_have_dh = CK_FALSE; -+static CK_BBOOL pk11_have_random = CK_FALSE; -+ -+typedef struct PK11_CIPHER_st -+ { -+ enum pk11_cipher_id id; -+ int nid; -+ int iv_len; -+ int key_len; -+ CK_KEY_TYPE key_type; -+ CK_MECHANISM_TYPE mech_type; -+ } PK11_CIPHER; -+ -+static PK11_CIPHER ciphers[] = -+ { -+ {PK11_DES_CBC, NID_des_cbc, 8, 8, CKK_DES, CKM_DES_CBC, }, -+ {PK11_DES3_CBC, NID_des_ede3_cbc, 8, 24, CKK_DES3, CKM_DES3_CBC, }, -+ {PK11_DES_ECB, NID_des_ecb, 0, 8, CKK_DES, CKM_DES_ECB, }, -+ {PK11_DES3_ECB, NID_des_ede3_ecb, 0, 24, CKK_DES3, CKM_DES3_ECB, }, -+ {PK11_RC4, NID_rc4, 0, 16, CKK_RC4, CKM_RC4, }, -+ {PK11_AES_128_CBC, NID_aes_128_cbc, 16, 16, CKK_AES, CKM_AES_CBC, }, -+ {PK11_AES_192_CBC, NID_aes_192_cbc, 16, 24, CKK_AES, CKM_AES_CBC, }, -+ {PK11_AES_256_CBC, NID_aes_256_cbc, 16, 32, CKK_AES, CKM_AES_CBC, }, -+ {PK11_AES_128_ECB, NID_aes_128_ecb, 0, 16, CKK_AES, CKM_AES_ECB, }, -+ {PK11_AES_192_ECB, NID_aes_192_ecb, 0, 24, CKK_AES, CKM_AES_ECB, }, -+ {PK11_AES_256_ECB, NID_aes_256_ecb, 0, 32, CKK_AES, CKM_AES_ECB, }, -+ {PK11_BLOWFISH_CBC,NID_bf_cbc, 8, 16, CKK_BLOWFISH, CKM_BLOWFISH_CBC,}, -+#ifdef SOLARIS_AES_CTR -+ /* we don't know the correct NIDs until the engine is initialized */ -+ {PK11_AES_128_CTR, NID_undef, 16, 16, CKK_AES, CKM_AES_CTR, }, -+ {PK11_AES_192_CTR, NID_undef, 16, 24, CKK_AES, CKM_AES_CTR, }, -+ {PK11_AES_256_CTR, NID_undef, 16, 32, CKK_AES, CKM_AES_CTR, }, -+#endif /* SOLARIS_AES_CTR */ -+ }; -+ -+typedef struct PK11_DIGEST_st -+ { -+ enum pk11_digest_id id; -+ int nid; -+ CK_MECHANISM_TYPE mech_type; -+ } PK11_DIGEST; -+ -+static PK11_DIGEST digests[] = -+ { -+ {PK11_MD5, NID_md5, CKM_MD5, }, -+ {PK11_SHA1, NID_sha1, CKM_SHA_1, }, -+ {PK11_SHA224, NID_sha224, CKM_SHA224, }, -+ {PK11_SHA256, NID_sha256, CKM_SHA256, }, -+ {PK11_SHA384, NID_sha384, CKM_SHA384, }, -+ {PK11_SHA512, NID_sha512, CKM_SHA512, }, -+ {0, NID_undef, 0xFFFF, }, -+ }; -+ -+/* Structure to be used for the cipher_data/md_data in -+ * EVP_CIPHER_CTX/EVP_MD_CTX structures in order to use the same -+ * pk11 session in multiple cipher_update calls -+ */ -+typedef struct PK11_CIPHER_STATE_st -+ { -+ PK11_SESSION *sp; -+ } PK11_CIPHER_STATE; -+ -+ -+/* -+ * libcrypto EVP stuff - this is how we get wired to EVP so the engine gets -+ * called when libcrypto requests a cipher NID. -+ * -+ * Note how the PK11_CIPHER_STATE is used here. -+ */ -+ -+/* DES CBC EVP */ -+static const EVP_CIPHER pk11_des_cbc = -+ { -+ NID_des_cbc, -+ 8, 8, 8, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+/* 3DES CBC EVP */ -+static const EVP_CIPHER pk11_3des_cbc = -+ { -+ NID_des_ede3_cbc, -+ 8, 24, 8, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+/* -+ * ECB modes don't use an Initial Vector so that's why set_asn1_parameters and -+ * get_asn1_parameters fields are set to NULL. -+ */ -+static const EVP_CIPHER pk11_des_ecb = -+ { -+ NID_des_ecb, -+ 8, 8, 8, -+ EVP_CIPH_ECB_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ NULL, -+ NULL, -+ NULL -+ }; -+ -+static const EVP_CIPHER pk11_3des_ecb = -+ { -+ NID_des_ede3_ecb, -+ 8, 24, 8, -+ EVP_CIPH_ECB_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ NULL, -+ NULL, -+ NULL -+ }; -+ -+ -+static const EVP_CIPHER pk11_aes_128_cbc = -+ { -+ NID_aes_128_cbc, -+ 16, 16, 16, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+static const EVP_CIPHER pk11_aes_192_cbc = -+ { -+ NID_aes_192_cbc, -+ 16, 24, 16, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+static const EVP_CIPHER pk11_aes_256_cbc = -+ { -+ NID_aes_256_cbc, -+ 16, 32, 16, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+/* -+ * ECB modes don't use IV so that's why set_asn1_parameters and -+ * get_asn1_parameters are set to NULL. -+ */ -+static const EVP_CIPHER pk11_aes_128_ecb = -+ { -+ NID_aes_128_ecb, -+ 16, 16, 0, -+ EVP_CIPH_ECB_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ NULL, -+ NULL, -+ NULL -+ }; -+ -+static const EVP_CIPHER pk11_aes_192_ecb = -+ { -+ NID_aes_192_ecb, -+ 16, 24, 0, -+ EVP_CIPH_ECB_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ NULL, -+ NULL, -+ NULL -+ }; -+ -+static const EVP_CIPHER pk11_aes_256_ecb = -+ { -+ NID_aes_256_ecb, -+ 16, 32, 0, -+ EVP_CIPH_ECB_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ NULL, -+ NULL, -+ NULL -+ }; -+ -+#ifdef SOLARIS_AES_CTR -+/* -+ * NID_undef's will be changed to the AES counter mode NIDs as soon they are -+ * created in pk11_library_init(). Note that the need to change these structures -+ * is the reason why we don't define them with the const keyword. -+ */ -+static EVP_CIPHER pk11_aes_128_ctr = -+ { -+ NID_undef, -+ 16, 16, 16, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+static EVP_CIPHER pk11_aes_192_ctr = -+ { -+ NID_undef, -+ 16, 24, 16, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+static EVP_CIPHER pk11_aes_256_ctr = -+ { -+ NID_undef, -+ 16, 32, 16, -+ EVP_CIPH_CBC_MODE, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+#endif /* SOLARIS_AES_CTR */ -+ -+static const EVP_CIPHER pk11_bf_cbc = -+ { -+ NID_bf_cbc, -+ 8, 16, 8, -+ EVP_CIPH_VARIABLE_LENGTH, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ EVP_CIPHER_set_asn1_iv, -+ EVP_CIPHER_get_asn1_iv, -+ NULL -+ }; -+ -+static const EVP_CIPHER pk11_rc4 = -+ { -+ NID_rc4, -+ 1, 16, 0, -+ EVP_CIPH_VARIABLE_LENGTH, -+ pk11_cipher_init, -+ pk11_cipher_do_cipher, -+ pk11_cipher_cleanup, -+ sizeof(PK11_CIPHER_STATE), -+ NULL, -+ NULL, -+ NULL -+ }; -+ -+static const EVP_MD pk11_md5 = -+ { -+ NID_md5, -+ NID_md5WithRSAEncryption, -+ MD5_DIGEST_LENGTH, -+ 0, -+ pk11_digest_init, -+ pk11_digest_update, -+ pk11_digest_final, -+ pk11_digest_copy, -+ pk11_digest_cleanup, -+ EVP_PKEY_RSA_method, -+ MD5_CBLOCK, -+ sizeof(PK11_CIPHER_STATE), -+ }; -+ -+static const EVP_MD pk11_sha1 = -+ { -+ NID_sha1, -+ NID_sha1WithRSAEncryption, -+ SHA_DIGEST_LENGTH, -+ 0, -+ pk11_digest_init, -+ pk11_digest_update, -+ pk11_digest_final, -+ pk11_digest_copy, -+ pk11_digest_cleanup, -+ EVP_PKEY_RSA_method, -+ SHA_CBLOCK, -+ sizeof(PK11_CIPHER_STATE), -+ }; -+ -+static const EVP_MD pk11_sha224 = -+ { -+ NID_sha224, -+ NID_sha224WithRSAEncryption, -+ SHA224_DIGEST_LENGTH, -+ 0, -+ pk11_digest_init, -+ pk11_digest_update, -+ pk11_digest_final, -+ pk11_digest_copy, -+ pk11_digest_cleanup, -+ EVP_PKEY_RSA_method, -+ /* SHA-224 uses the same cblock size as SHA-256 */ -+ SHA256_CBLOCK, -+ sizeof(PK11_CIPHER_STATE), -+ }; -+ -+static const EVP_MD pk11_sha256 = -+ { -+ NID_sha256, -+ NID_sha256WithRSAEncryption, -+ SHA256_DIGEST_LENGTH, -+ 0, -+ pk11_digest_init, -+ pk11_digest_update, -+ pk11_digest_final, -+ pk11_digest_copy, -+ pk11_digest_cleanup, -+ EVP_PKEY_RSA_method, -+ SHA256_CBLOCK, -+ sizeof(PK11_CIPHER_STATE), -+ }; -+ -+static const EVP_MD pk11_sha384 = -+ { -+ NID_sha384, -+ NID_sha384WithRSAEncryption, -+ SHA384_DIGEST_LENGTH, -+ 0, -+ pk11_digest_init, -+ pk11_digest_update, -+ pk11_digest_final, -+ pk11_digest_copy, -+ pk11_digest_cleanup, -+ EVP_PKEY_RSA_method, -+ /* SHA-384 uses the same cblock size as SHA-512 */ -+ SHA512_CBLOCK, -+ sizeof(PK11_CIPHER_STATE), -+ }; -+ -+static const EVP_MD pk11_sha512 = -+ { -+ NID_sha512, -+ NID_sha512WithRSAEncryption, -+ SHA512_DIGEST_LENGTH, -+ 0, -+ pk11_digest_init, -+ pk11_digest_update, -+ pk11_digest_final, -+ pk11_digest_copy, -+ pk11_digest_cleanup, -+ EVP_PKEY_RSA_method, -+ SHA512_CBLOCK, -+ sizeof(PK11_CIPHER_STATE), -+ }; -+ -+/* Initialization function. Sets up various pk11 library components. -+ */ -+/* The definitions for control commands specific to this engine -+ */ -+#define PK11_CMD_SO_PATH ENGINE_CMD_BASE -+static const ENGINE_CMD_DEFN pk11_cmd_defns[] = -+ { -+ { -+ PK11_CMD_SO_PATH, -+ "SO_PATH", -+ "Specifies the path to the 'pkcs#11' shared library", -+ ENGINE_CMD_FLAG_STRING -+ }, -+ {0, NULL, NULL, 0} -+ }; -+ -+ -+static RAND_METHOD pk11_random = -+ { -+ pk11_rand_seed, -+ pk11_rand_bytes, -+ pk11_rand_cleanup, -+ pk11_rand_add, -+ pk11_rand_bytes, -+ pk11_rand_status -+ }; -+ -+ -+/* Constants used when creating the ENGINE -+ */ -+static const char *engine_pk11_id = "pkcs11"; -+static const char *engine_pk11_name = "PKCS #11 engine support"; -+ -+CK_FUNCTION_LIST_PTR pFuncList = NULL; -+static const char PK11_GET_FUNCTION_LIST[] = "C_GetFunctionList"; -+ -+/* Cryptoki library -+ */ -+static const char def_PK11_LIBNAME[] = PK11_LIB_LOCATION; -+ -+static CK_BBOOL true = TRUE; -+static CK_BBOOL false = FALSE; -+static CK_SLOT_ID pubkey_SLOTID = 0; -+static CK_SLOT_ID rand_SLOTID = 0; -+static CK_SLOT_ID SLOTID = 0; -+static int pk11_library_initialized = 0; -+static int pk11_pid = 0; -+ -+static DSO *pk11_dso = NULL; -+ -+/* -+ * This internal function is used by ENGINE_pk11() and "dynamic" ENGINE support. -+ */ -+static int bind_pk11(ENGINE *e) -+ { -+#ifndef OPENSSL_NO_RSA -+ const RSA_METHOD *rsa = NULL; -+ RSA_METHOD *pk11_rsa = PK11_RSA(); -+#endif /* OPENSSL_NO_RSA */ -+ if (!pk11_library_initialized) -+ pk11_library_init(e); -+ -+ if(!ENGINE_set_id(e, engine_pk11_id) || -+ !ENGINE_set_name(e, engine_pk11_name) || -+ !ENGINE_set_ciphers(e, pk11_engine_ciphers) || -+ !ENGINE_set_digests(e, pk11_engine_digests)) -+ return 0; -+#ifndef OPENSSL_NO_RSA -+ if(pk11_have_rsa == CK_TRUE) -+ { -+ if(!ENGINE_set_RSA(e, PK11_RSA()) || -+ !ENGINE_set_load_privkey_function(e, pk11_load_privkey) || -+ !ENGINE_set_load_pubkey_function(e, pk11_load_pubkey)) -+ return 0; -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: registered RSA\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ } -+#endif /* OPENSSL_NO_RSA */ -+#ifndef OPENSSL_NO_DSA -+ if(pk11_have_dsa == CK_TRUE) -+ { -+ if (!ENGINE_set_DSA(e, PK11_DSA())) -+ return 0; -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: registered DSA\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ } -+#endif /* OPENSSL_NO_DSA */ -+#ifndef OPENSSL_NO_DH -+ if(pk11_have_dh == CK_TRUE) -+ { -+ if (!ENGINE_set_DH(e, PK11_DH())) -+ return 0; -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: registered DH\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ } -+#endif /* OPENSSL_NO_DH */ -+ if(pk11_have_random) -+ { -+ if(!ENGINE_set_RAND(e, &pk11_random)) -+ return 0; -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: registered random\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ } -+ if(!ENGINE_set_init_function(e, pk11_init) || -+ !ENGINE_set_destroy_function(e, pk11_destroy) || -+ !ENGINE_set_finish_function(e, pk11_finish) || -+ !ENGINE_set_ctrl_function(e, pk11_ctrl) || -+ !ENGINE_set_cmd_defns(e, pk11_cmd_defns)) -+ return 0; -+ -+/* Apache calls OpenSSL function RSA_blinding_on() once during startup -+ * which in turn calls bn_mod_exp. Since we do not implement bn_mod_exp -+ * here, we wire it back to the OpenSSL software implementation. -+ * Since it is used only once, performance is not a concern. */ -+#ifndef OPENSSL_NO_RSA -+ rsa = RSA_PKCS1_SSLeay(); -+ pk11_rsa->rsa_mod_exp = rsa->rsa_mod_exp; -+ pk11_rsa->bn_mod_exp = rsa->bn_mod_exp; -+#endif /* OPENSSL_NO_RSA */ -+ -+ /* Ensure the pk11 error handling is set up */ -+ ERR_load_pk11_strings(); -+ -+ return 1; -+ } -+ -+/* Dynamic engine support is disabled at a higher level for Solaris -+ */ -+#ifdef ENGINE_DYNAMIC_SUPPORT -+static int bind_helper(ENGINE *e, const char *id) -+ { -+ if (id && (strcmp(id, engine_pk11_id) != 0)) -+ return 0; -+ -+ if (!bind_pk11(e)) -+ return 0; -+ -+ return 1; -+ } -+ -+IMPLEMENT_DYNAMIC_CHECK_FN() -+IMPLEMENT_DYNAMIC_BIND_FN(bind_helper) -+ -+#else -+static ENGINE *engine_pk11(void) -+ { -+ ENGINE *ret = ENGINE_new(); -+ -+ if (!ret) -+ return NULL; -+ -+ if (!bind_pk11(ret)) -+ { -+ ENGINE_free(ret); -+ return NULL; -+ } -+ -+ return ret; -+ } -+ -+void ENGINE_load_pk11(void) -+ { -+ ENGINE *e_pk11 = NULL; -+ -+ /* Do not use dynamic PKCS#11 library on Solaris due to -+ * security reasons. We will link it in statically -+ */ -+ /* Attempt to load PKCS#11 library -+ */ -+ if (!pk11_dso) -+ pk11_dso = DSO_load(NULL, get_PK11_LIBNAME(), NULL, 0); -+ -+ if (pk11_dso == NULL) -+ { -+ PK11err(PK11_F_LOAD, PK11_R_DSO_FAILURE); -+ return; -+ } -+ -+ e_pk11 = engine_pk11(); -+ if (!e_pk11) -+ { -+ DSO_free(pk11_dso); -+ pk11_dso = NULL; -+ return; -+ } -+ -+ /* At this point, the pk11 shared library is either dynamically -+ * loaded or statically linked in. So, initialize the pk11 -+ * library before calling ENGINE_set_default since the latter -+ * needs cipher and digest algorithm information -+ */ -+ if (!pk11_library_init(e_pk11)) -+ { -+ DSO_free(pk11_dso); -+ pk11_dso = NULL; -+ ENGINE_free(e_pk11); -+ return; -+ } -+ -+ ENGINE_add(e_pk11); -+ -+ ENGINE_free(e_pk11); -+ ERR_clear_error(); -+ } -+#endif /* ENGINE_DYNAMIC_SUPPORT */ -+ -+/* These are the static string constants for the DSO file name and -+ * the function symbol names to bind to. -+ */ -+static const char *PK11_LIBNAME = NULL; -+ -+static const char *get_PK11_LIBNAME(void) -+ { -+ if (PK11_LIBNAME) -+ return PK11_LIBNAME; -+ -+ return def_PK11_LIBNAME; -+ } -+ -+static void free_PK11_LIBNAME(void) -+ { -+ if (PK11_LIBNAME) -+ OPENSSL_free((void*)PK11_LIBNAME); -+ -+ PK11_LIBNAME = NULL; -+ } -+ -+static long set_PK11_LIBNAME(const char *name) -+ { -+ free_PK11_LIBNAME(); -+ -+ return ((PK11_LIBNAME = BUF_strdup(name)) != NULL ? 1 : 0); -+ } -+ -+/* Initialization function for the pk11 engine */ -+static int pk11_init(ENGINE *e) -+{ -+ return pk11_library_init(e); -+} -+ -+/* Initialization function. Sets up various pk11 library components. -+ * It selects a slot based on predefined critiera. In the process, it also -+ * count how many ciphers and digests to support. Since the cipher and -+ * digest information is needed when setting default engine, this function -+ * needs to be called before calling ENGINE_set_default. -+ */ -+static int pk11_library_init(ENGINE *e) -+ { -+ CK_C_GetFunctionList p; -+ CK_RV rv = CKR_OK; -+ CK_INFO info; -+ CK_ULONG ul_state_len; -+ int any_slot_found; -+ -+ /* -+ * pk11_library_initialized is set to 0 in pk11_finish() which is called -+ * from ENGINE_finish(). However, if there is still at least one -+ * existing functional reference to the engine (see engine(3) for more -+ * information), pk11_finish() is skipped. For example, this can happen -+ * if an application forgets to clear one cipher context. In case of a -+ * fork() when the application is finishing the engine so that it can be -+ * reinitialized in the child, forgotten functional reference causes -+ * pk11_library_initialized to stay 1. In that case we need the PID -+ * check so that we properly initialize the engine again. -+ */ -+ if (pk11_library_initialized) -+ { -+ if (pk11_pid == getpid()) -+ return 1; -+ else -+ global_session = CK_INVALID_HANDLE; -+ } -+ -+ if (pk11_dso == NULL) -+ { -+ PK11err(PK11_F_LIBRARY_INIT, PK11_R_DSO_FAILURE); -+ goto err; -+ } -+ -+#ifdef SOLARIS_AES_CTR -+ /* -+ * We must do this before we start working with slots since we need all -+ * NIDs there. -+ */ -+ if (pk11_add_aes_ctr_NIDs() == 0) -+ goto err; -+#endif /* SOLARIS_AES_CTR */ -+ -+#ifdef SOLARIS_HW_SLOT_SELECTION -+ if (check_hw_mechanisms() == 0) -+ goto err; -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ -+ /* get the C_GetFunctionList function from the loaded library -+ */ -+ p = (CK_C_GetFunctionList)DSO_bind_func(pk11_dso, -+ PK11_GET_FUNCTION_LIST); -+ if ( !p ) -+ { -+ PK11err(PK11_F_LIBRARY_INIT, PK11_R_DSO_FAILURE); -+ goto err; -+ } -+ -+ /* get the full function list from the loaded library -+ */ -+ rv = p(&pFuncList); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_LIBRARY_INIT, PK11_R_DSO_FAILURE, rv); -+ goto err; -+ } -+ -+ rv = pFuncList->C_Initialize(NULL_PTR); -+ if ((rv != CKR_OK) && (rv != CKR_CRYPTOKI_ALREADY_INITIALIZED)) -+ { -+ PK11err_add_data(PK11_F_LIBRARY_INIT, PK11_R_INITIALIZE, rv); -+ goto err; -+ } -+ -+ rv = pFuncList->C_GetInfo(&info); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_LIBRARY_INIT, PK11_R_GETINFO, rv); -+ goto err; -+ } -+ -+ if (pk11_choose_slots(&any_slot_found) == 0) -+ goto err; -+ -+ /* -+ * The library we use, set in def_PK11_LIBNAME, may not offer any -+ * slot(s). In that case, we must not proceed but we must not return an -+ * error. The reason is that applications that try to set up the PKCS#11 -+ * engine don't exit on error during the engine initialization just -+ * because no slot was present. -+ */ -+ if (any_slot_found == 0) -+ return 1; -+ -+ if (global_session == CK_INVALID_HANDLE) -+ { -+ /* Open the global_session for the new process */ -+ rv = pFuncList->C_OpenSession(SLOTID, CKF_SERIAL_SESSION, -+ NULL_PTR, NULL_PTR, &global_session); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_LIBRARY_INIT, -+ PK11_R_OPENSESSION, rv); -+ goto err; -+ } -+ } -+ -+ /* Disable digest if C_GetOperationState is not supported since -+ * this function is required by OpenSSL digest copy function */ -+ if (pFuncList->C_GetOperationState(global_session, NULL, &ul_state_len) -+ == CKR_FUNCTION_NOT_SUPPORTED) { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: C_GetOperationState() not supported, " -+ "setting digest_count to 0\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ digest_count = 0; -+ } -+ -+ pk11_library_initialized = 1; -+ pk11_pid = getpid(); -+ return 1; -+ -+err: -+ return 0; -+ } -+ -+/* Destructor (complements the "ENGINE_pk11()" constructor) -+ */ -+static int pk11_destroy(ENGINE *e) -+ { -+ free_PK11_LIBNAME(); -+ ERR_unload_pk11_strings(); -+ return 1; -+ } -+ -+/* Termination function to clean up the session, the token, and -+ * the pk11 library. -+ */ -+static int pk11_finish(ENGINE *e) -+ { -+ if (pk11_dso == NULL) -+ { -+ PK11err(PK11_F_FINISH, PK11_R_NOT_LOADED); -+ goto err; -+ } -+ -+ OPENSSL_assert(pFuncList != NULL); -+ -+ if (pk11_free_all_sessions() == 0) -+ goto err; -+ -+ pFuncList->C_CloseSession(global_session); -+ global_session = CK_INVALID_HANDLE; -+ -+ /* -+ * Since we are part of a library (libcrypto.so), calling this function -+ * may have side-effects. -+ */ -+#if 0 -+ pFuncList->C_Finalize(NULL); -+#endif -+ -+ if (!DSO_free(pk11_dso)) -+ { -+ PK11err(PK11_F_FINISH, PK11_R_DSO_FAILURE); -+ goto err; -+ } -+ pk11_dso = NULL; -+ pFuncList = NULL; -+ pk11_library_initialized = 0; -+ pk11_pid = 0; -+ -+ return 1; -+ -+err: -+ return 0; -+ } -+ -+/* Standard engine interface function to set the dynamic library path */ -+static int pk11_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f)()) -+ { -+ int initialized = ((pk11_dso == NULL) ? 0 : 1); -+ -+ switch(cmd) -+ { -+ case PK11_CMD_SO_PATH: -+ if (p == NULL) -+ { -+ PK11err(PK11_F_CTRL, ERR_R_PASSED_NULL_PARAMETER); -+ return 0; -+ } -+ -+ if (initialized) -+ { -+ PK11err(PK11_F_CTRL, PK11_R_ALREADY_LOADED); -+ return 0; -+ } -+ -+ return set_PK11_LIBNAME((const char*)p); -+ default: -+ break; -+ } -+ -+ PK11err(PK11_F_CTRL,PK11_R_CTRL_COMMAND_NOT_IMPLEMENTED); -+ -+ return 0; -+ } -+ -+ -+/* Required function by the engine random interface. It does nothing here -+ */ -+static void pk11_rand_cleanup(void) -+ { -+ return; -+ } -+ -+static void pk11_rand_add(const void *buf, int num, double add) -+ { -+ PK11_SESSION *sp; -+ -+ if ((sp = pk11_get_session(OP_RAND)) == NULL) -+ return; -+ -+ /* Ignore any errors (e.g. CKR_RANDOM_SEED_NOT_SUPPORTED) since -+ * the calling functions do not care anyway -+ */ -+ pFuncList->C_SeedRandom(sp->session, (unsigned char *) buf, num); -+ pk11_return_session(sp, OP_RAND); -+ -+ return; -+ } -+ -+static void pk11_rand_seed(const void *buf, int num) -+ { -+ pk11_rand_add(buf, num, 0); -+ } -+ -+static int pk11_rand_bytes(unsigned char *buf, int num) -+ { -+ CK_RV rv; -+ PK11_SESSION *sp; -+ -+ if ((sp = pk11_get_session(OP_RAND)) == NULL) -+ return 0; -+ -+ rv = pFuncList->C_GenerateRandom(sp->session, buf, num); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_RAND_BYTES, PK11_R_GENERATERANDOM, rv); -+ pk11_return_session(sp, OP_RAND); -+ return 0; -+ } -+ -+ pk11_return_session(sp, OP_RAND); -+ return 1; -+ } -+ -+/* Required function by the engine random interface. It does nothing here -+ */ -+static int pk11_rand_status(void) -+ { -+ return 1; -+ } -+ -+/* -+ * Free all BIGNUM structures from PK11_SESSION. -+ */ -+static void pk11_free_nums(PK11_SESSION *sp) -+ { -+#ifndef OPENSSL_NO_RSA -+ if (sp->rsa_n_num != NULL) -+ BN_free(sp->rsa_n_num); -+ if (sp->rsa_e_num != NULL) -+ BN_free(sp->rsa_e_num); -+ if (sp->rsa_d_num != NULL) -+ BN_free(sp->rsa_d_num); -+#endif -+#ifndef OPENSSL_NO_DSA -+ if (sp->dsa_pub_num != NULL) -+ BN_free(sp->dsa_pub_num); -+ if (sp->dsa_priv_num != NULL) -+ BN_free(sp->dsa_priv_num); -+#endif -+#ifndef OPENSSL_NO_DH -+ if (sp->dh_priv_num != NULL) -+ BN_free(sp->dh_priv_num); -+#endif -+ } -+ -+/* -+ * Get new PK11_SESSION structure ready for use. Every process must have -+ * its own freelist of PK11_SESSION structures so handle fork() here -+ * by destroying the old and creating new freelist. -+ * The returned PK11_SESSION structure is disconnected from the freelist. -+ */ -+PK11_SESSION *pk11_get_session(PK11_OPTYPE optype) -+ { -+ PK11_SESSION *sp, *sp1, *freelist; -+ CK_RV rv; -+ -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ switch (optype) -+ { -+ case OP_PUBKEY: -+ freelist = pubkey_free_session; -+ break; -+ case OP_RAND: -+ freelist = rand_free_session; -+ break; -+ case OP_DIGEST: -+ case OP_CIPHER: -+ freelist = free_session; -+ break; -+ default: -+ PK11err(PK11_F_GET_SESSION, -+ PK11_R_INVALID_OPERATION_TYPE); -+ goto err; -+ } -+ sp = freelist; -+ -+ /* -+ * If the free list is empty, allocate new unitialized (filled -+ * with zeroes) PK11_SESSION structure otherwise return first -+ * structure from the freelist. -+ */ -+ if (sp == NULL) -+ { -+ if ((sp = OPENSSL_malloc(sizeof(PK11_SESSION))) == NULL) -+ { -+ PK11err(PK11_F_GET_SESSION, -+ PK11_R_MALLOC_FAILURE); -+ goto err; -+ } -+ memset(sp, 0, sizeof(PK11_SESSION)); -+ } -+ else -+ { -+ freelist = sp->next; -+ } -+ -+ if (sp->pid != 0 && sp->pid != getpid()) -+ { -+ /* -+ * We are a new process and thus need to free any inherited -+ * PK11_SESSION objects. -+ */ -+ while ((sp1 = freelist) != NULL) -+ { -+ freelist = sp1->next; -+ /* -+ * NOTE: we do not want to call pk11_free_all_sessions() -+ * here because it would close underlying PKCS#11 -+ * sessions and destroy all objects. -+ */ -+ pk11_free_nums(sp1); -+ OPENSSL_free(sp1); -+ } -+ -+ /* Initialize the process */ -+ rv = pFuncList->C_Initialize(NULL_PTR); -+ if ((rv != CKR_OK) && (rv != CKR_CRYPTOKI_ALREADY_INITIALIZED)) -+ { -+ PK11err_add_data(PK11_F_GET_SESSION, PK11_R_INITIALIZE, -+ rv); -+ OPENSSL_free(sp); -+ sp = NULL; -+ goto err; -+ } -+ -+ /* -+ * Choose slot here since the slot table is different on this -+ * process. If we are here then we must have found at least one -+ * usable slot before so we don't need to check any_slot_found. -+ * See pk11_library_init()'s usage of this function for more -+ * information. -+ */ -+#ifdef SOLARIS_HW_SLOT_SELECTION -+ if (check_hw_mechanisms() == 0) -+ goto err; -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ if (pk11_choose_slots(NULL) == 0) -+ goto err; -+ -+ /* Open the global_session for the new process */ -+ rv = pFuncList->C_OpenSession(SLOTID, CKF_SERIAL_SESSION, -+ NULL_PTR, NULL_PTR, &global_session); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_GET_SESSION, PK11_R_OPENSESSION, -+ rv); -+ OPENSSL_free(sp); -+ sp = NULL; -+ goto err; -+ } -+ -+ /* It is an inherited session and needs re-initialization. -+ */ -+ if (pk11_setup_session(sp, optype) == 0) -+ { -+ OPENSSL_free(sp); -+ sp = NULL; -+ } -+ } -+ else if (sp->pid == 0) -+ { -+ /* It is a new session and needs initialization. */ -+ if (pk11_setup_session(sp, optype) == 0) -+ { -+ OPENSSL_free(sp); -+ sp = NULL; -+ } -+ } -+ -+ switch (optype) -+ { -+ case OP_PUBKEY: -+ pubkey_free_session = freelist; -+ break; -+ case OP_RAND: -+ rand_free_session = freelist; -+ break; -+ case OP_DIGEST: -+ case OP_CIPHER: -+ free_session = freelist; -+ break; -+ } -+ -+err: -+ if (sp != NULL) -+ sp->next = NULL; -+ -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ -+ return sp; -+ } -+ -+ -+void pk11_return_session(PK11_SESSION *sp, PK11_OPTYPE optype) -+ { -+ if (sp == NULL || sp->pid != getpid()) -+ return; -+ -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ -+ switch (optype) -+ { -+ case OP_PUBKEY: -+ sp->next = pubkey_free_session; -+ pubkey_free_session = sp; -+ break; -+ case OP_RAND: -+ sp->next = rand_free_session; -+ rand_free_session = sp; -+ break; -+ case OP_DIGEST: -+ case OP_CIPHER: -+ sp->next = free_session; -+ free_session = sp; -+ break; -+ } -+ -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ } -+ -+ -+/* Destroy all objects. This function is called when the engine is finished -+ */ -+static int pk11_free_all_sessions() -+ { -+ int ret = 1; -+ -+#ifndef OPENSSL_NO_RSA -+ (void) pk11_destroy_rsa_key_objects(NULL); -+#endif /* OPENSSL_NO_RSA */ -+#ifndef OPENSSL_NO_DSA -+ (void) pk11_destroy_dsa_key_objects(NULL); -+#endif /* OPENSSL_NO_DSA */ -+#ifndef OPENSSL_NO_DH -+ (void) pk11_destroy_dh_key_objects(NULL); -+#endif /* OPENSSL_NO_DH */ -+ (void) pk11_destroy_cipher_key_objects(NULL); -+ -+ /* -+ * We try to release as much as we can but any error means that we will -+ * return 0 on exit. -+ */ -+ if (pk11_free_session_list(&free_session) == 0) -+ ret = 0; -+ if (pk11_free_session_list(&pubkey_free_session) == 0) -+ ret = 0; -+ if (pk11_free_session_list(&rand_free_session) == 0) -+ ret = 0; -+ -+ return ret; -+ } -+ -+/* -+ * Destroy session structures from the specified linked list. Free as many -+ * sessions as possible but any failure in C_CloseSession() means that we return -+ * an error on return. -+ */ -+static int pk11_free_session_list(PK11_SESSION **sessions) -+ { -+ CK_RV rv; -+ PK11_SESSION *sp = NULL; -+ pid_t mypid = getpid(); -+ int ret = 1; -+ -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ while ((sp = *sessions) != NULL) -+ { -+ if (sp->session != CK_INVALID_HANDLE && sp->pid == mypid) -+ { -+ rv = pFuncList->C_CloseSession(sp->session); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_FREE_ALL_SESSIONS, -+ PK11_R_CLOSESESSION, rv); -+ ret = 0; -+ } -+ } -+ if (sp->session_cipher != CK_INVALID_HANDLE && sp->pid == mypid) -+ { -+ rv = pFuncList->C_CloseSession(sp->session_cipher); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_FREE_ALL_SESSIONS, -+ PK11_R_CLOSESESSION, rv); -+ ret = 0; -+ } -+ } -+ *sessions = sp->next; -+ pk11_free_nums(sp); -+ OPENSSL_free(sp); -+ } -+ -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ return ret; -+ } -+ -+ -+static int pk11_setup_session(PK11_SESSION *sp, PK11_OPTYPE optype) -+ { -+ CK_RV rv; -+ CK_SLOT_ID myslot; -+ -+ switch (optype) -+ { -+ case OP_PUBKEY: -+ myslot = pubkey_SLOTID; -+ break; -+ case OP_RAND: -+ myslot = rand_SLOTID; -+ break; -+ case OP_DIGEST: -+ case OP_CIPHER: -+ myslot = SLOTID; -+ break; -+ default: -+ PK11err(PK11_F_SETUP_SESSION, -+ PK11_R_INVALID_OPERATION_TYPE); -+ return 0; -+ } -+ -+ sp->session = CK_INVALID_HANDLE; -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: myslot=%d optype=%d\n", PK11_DBG, myslot, optype); -+#endif /* DEBUG_SLOT_SELECTION */ -+ rv = pFuncList->C_OpenSession(myslot, CKF_SERIAL_SESSION, -+ NULL_PTR, NULL_PTR, &sp->session); -+ if (rv == CKR_CRYPTOKI_NOT_INITIALIZED) -+ { -+ /* -+ * We are probably a child process so force the -+ * reinitialize of the session -+ */ -+ pk11_library_initialized = 0; -+ (void) pk11_library_init(NULL); -+ rv = pFuncList->C_OpenSession(myslot, CKF_SERIAL_SESSION, -+ NULL_PTR, NULL_PTR, &sp->session); -+ } -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_SETUP_SESSION, PK11_R_OPENSESSION, rv); -+ return 0; -+ } -+ -+ sp->session_cipher = CK_INVALID_HANDLE; -+ rv = pFuncList->C_OpenSession(myslot, CKF_SERIAL_SESSION, -+ NULL_PTR, NULL_PTR, &sp->session_cipher); -+ if (rv != CKR_OK) -+ { -+ (void) pFuncList->C_CloseSession(sp->session); -+ sp->session = CK_INVALID_HANDLE; -+ -+ PK11err_add_data(PK11_F_SETUP_SESSION, PK11_R_OPENSESSION, rv); -+ return 0; -+ } -+ -+ sp->pid = getpid(); -+ sp->rsa_pub_key = CK_INVALID_HANDLE; -+ sp->rsa_priv_key = CK_INVALID_HANDLE; -+ sp->dsa_pub_key = CK_INVALID_HANDLE; -+ sp->dsa_priv_key = CK_INVALID_HANDLE; -+ sp->dh_key = CK_INVALID_HANDLE; -+ sp->cipher_key = CK_INVALID_HANDLE; -+#ifndef OPENSSL_NO_RSA -+ sp->rsa_pub = NULL; -+ sp->rsa_n_num = NULL; -+ sp->rsa_e_num = NULL; -+ sp->rsa_priv = NULL; -+ sp->rsa_d_num = NULL; -+#endif /* OPENSSL_NO_RSA */ -+#ifndef OPENSSL_NO_DSA -+ sp->dsa_pub = NULL; -+ sp->dsa_pub_num = NULL; -+ sp->dsa_priv = NULL; -+ sp->dsa_priv_num = NULL; -+#endif /* OPENSSL_NO_DSA */ -+#ifndef OPENSSL_NO_DH -+ sp->dh = NULL; -+ sp->dh_priv_num = NULL; -+#endif /* OPENSSL_NO_DH */ -+ sp->encrypt = -1; -+ -+ return 1; -+ } -+ -+#ifndef OPENSSL_NO_RSA -+/* Destroy RSA public key from single session. */ -+int pk11_destroy_rsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock) -+ { -+ int ret = 0; -+ -+ if (sp->rsa_pub_key != CK_INVALID_HANDLE) -+ { -+ TRY_OBJ_DESTROY(sp->session, sp->rsa_pub_key, ret, uselock); -+ sp->rsa_pub_key = CK_INVALID_HANDLE; -+ sp->rsa_pub = NULL; -+ if (sp->rsa_n_num != NULL) -+ BN_free(sp->rsa_n_num); -+ sp->rsa_n_num = NULL; -+ if (sp->rsa_e_num != NULL) -+ BN_free(sp->rsa_e_num); -+ sp->rsa_e_num = NULL; -+ } -+ -+ return (ret); -+ } -+ -+/* Destroy RSA private key from single session. */ -+int pk11_destroy_rsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock) -+ { -+ int ret = 0; -+ -+ if (sp->rsa_priv_key != CK_INVALID_HANDLE) -+ { -+ TRY_OBJ_DESTROY(sp->session, sp->rsa_priv_key, ret, uselock); -+ sp->rsa_priv_key = CK_INVALID_HANDLE; -+ sp->rsa_priv = NULL; -+ if (sp->rsa_d_num != NULL) -+ BN_free(sp->rsa_d_num); -+ sp->rsa_d_num = NULL; -+ } -+ -+ return (ret); -+ } -+ -+/* -+ * Destroy RSA key object wrapper. If session is NULL, try to destroy all -+ * objects in the free list. -+ */ -+int pk11_destroy_rsa_key_objects(PK11_SESSION *session) -+ { -+ int ret = 1; -+ PK11_SESSION *sp = NULL; -+ PK11_SESSION *local_free_session; -+ CK_BBOOL uselock = TRUE; -+ -+ if (session != NULL) -+ local_free_session = session; -+ else -+ { -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ local_free_session = pubkey_free_session; -+ uselock = FALSE; -+ } -+ -+ /* -+ * go through the list of sessions and delete key objects -+ */ -+ while ((sp = local_free_session) != NULL) -+ { -+ local_free_session = sp->next; -+ -+ /* -+ * Do not terminate list traversal if one of the -+ * destroy operations fails. -+ */ -+ if (pk11_destroy_rsa_object_pub(sp, uselock) == 0) -+ { -+ ret = 0; -+ continue; -+ } -+ if (pk11_destroy_rsa_object_priv(sp, uselock) == 0) -+ { -+ ret = 0; -+ continue; -+ } -+ } -+ -+ if (session == NULL) -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ -+ return ret; -+ } -+#endif /* OPENSSL_NO_RSA */ -+ -+#ifndef OPENSSL_NO_DSA -+/* Destroy DSA public key from single session. */ -+int pk11_destroy_dsa_object_pub(PK11_SESSION *sp, CK_BBOOL uselock) -+ { -+ int ret = 0; -+ -+ if (sp->dsa_pub_key != CK_INVALID_HANDLE) -+ { -+ TRY_OBJ_DESTROY(sp->session, sp->dsa_pub_key, ret, uselock); -+ sp->dsa_pub_key = CK_INVALID_HANDLE; -+ sp->dsa_pub = NULL; -+ if (sp->dsa_pub_num != NULL) -+ BN_free(sp->dsa_pub_num); -+ sp->dsa_pub_num = NULL; -+ } -+ -+ return (ret); -+ } -+ -+/* Destroy DSA private key from single session. */ -+int pk11_destroy_dsa_object_priv(PK11_SESSION *sp, CK_BBOOL uselock) -+ { -+ int ret = 0; -+ -+ if (sp->dsa_priv_key != CK_INVALID_HANDLE) -+ { -+ TRY_OBJ_DESTROY(sp->session, sp->dsa_priv_key, ret, uselock); -+ sp->dsa_priv_key = CK_INVALID_HANDLE; -+ sp->dsa_priv = NULL; -+ if (sp->dsa_priv_num != NULL) -+ BN_free(sp->dsa_priv_num); -+ sp->dsa_priv_num = NULL; -+ } -+ -+ return (ret); -+ } -+ -+/* -+ * Destroy DSA key object wrapper. If session is NULL, try to destroy all -+ * objects in the free list. -+ */ -+int pk11_destroy_dsa_key_objects(PK11_SESSION *session) -+ { -+ int ret = 1; -+ PK11_SESSION *sp = NULL; -+ PK11_SESSION *local_free_session; -+ CK_BBOOL uselock = TRUE; -+ -+ if (session != NULL) -+ local_free_session = session; -+ else -+ { -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ local_free_session = pubkey_free_session; -+ uselock = FALSE; -+ } -+ -+ /* -+ * go through the list of sessions and delete key objects -+ */ -+ while ((sp = local_free_session) != NULL) -+ { -+ local_free_session = sp->next; -+ -+ /* -+ * Do not terminate list traversal if one of the -+ * destroy operations fails. -+ */ -+ if (pk11_destroy_dsa_object_pub(sp, uselock) == 0) -+ { -+ ret = 0; -+ continue; -+ } -+ if (pk11_destroy_dsa_object_priv(sp, uselock) == 0) -+ { -+ ret = 0; -+ continue; -+ } -+ } -+ -+ if (session == NULL) -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ -+ return ret; -+ } -+#endif /* OPENSSL_NO_DSA */ -+ -+#ifndef OPENSSL_NO_DH -+/* Destroy DH key from single session. */ -+int pk11_destroy_dh_object(PK11_SESSION *sp, CK_BBOOL uselock) -+ { -+ int ret = 0; -+ -+ if (sp->dh_key != CK_INVALID_HANDLE) -+ { -+ TRY_OBJ_DESTROY(sp->session, sp->dh_key, ret, uselock); -+ sp->dh_key = CK_INVALID_HANDLE; -+ sp->dh = NULL; -+ if (sp->dh_priv_num != NULL) -+ BN_free(sp->dh_priv_num); -+ sp->dh_priv_num = NULL; -+ } -+ -+ return (ret); -+ } -+ -+/* -+ * Destroy DH key object wrapper. -+ * -+ * arg0: pointer to PKCS#11 engine session structure -+ * if session is NULL, try to destroy all objects in the free list -+ */ -+int pk11_destroy_dh_key_objects(PK11_SESSION *session) -+ { -+ int ret = 1; -+ PK11_SESSION *sp = NULL; -+ PK11_SESSION *local_free_session; -+ CK_BBOOL uselock = TRUE; -+ -+ if (session != NULL) -+ local_free_session = session; -+ else -+ { -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ local_free_session = pubkey_free_session; -+ uselock = FALSE; -+ } -+ -+ while ((sp = local_free_session) != NULL) -+ { -+ local_free_session = sp->next; -+ -+ /* -+ * Do not terminate list traversal if one of the -+ * destroy operations fails. -+ */ -+ if (pk11_destroy_dh_object(sp, uselock) == 0) -+ { -+ ret = 0; -+ continue; -+ } -+ } -+err: -+ if (session == NULL) -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ -+ return ret; -+ } -+#endif /* OPENSSL_NO_DH */ -+ -+static int pk11_destroy_object(CK_SESSION_HANDLE session, CK_OBJECT_HANDLE oh) -+ { -+ CK_RV rv; -+ rv = pFuncList->C_DestroyObject(session, oh); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DESTROY_OBJECT, PK11_R_DESTROYOBJECT, -+ rv); -+ return 0; -+ } -+ -+ return 1; -+ } -+ -+ -+/* Symmetric ciphers and digests support functions -+ */ -+ -+static int -+cipher_nid_to_pk11(int nid) -+ { -+ int i; -+ -+ for (i = 0; i < PK11_CIPHER_MAX; i++) -+ if (ciphers[i].nid == nid) -+ return (ciphers[i].id); -+ return (-1); -+ } -+ -+static int -+pk11_usable_ciphers(const int **nids) -+ { -+ if (cipher_count > 0) -+ *nids = cipher_nids; -+ else -+ *nids = NULL; -+ return (cipher_count); -+ } -+ -+static int -+pk11_usable_digests(const int **nids) -+ { -+ if (digest_count > 0) -+ *nids = digest_nids; -+ else -+ *nids = NULL; -+ return (digest_count); -+ } -+ -+/* -+ * Init context for encryption or decryption using a symmetric key. -+ */ -+static int pk11_init_symmetric(EVP_CIPHER_CTX *ctx, PK11_CIPHER *pcipher, -+ PK11_SESSION *sp, CK_MECHANISM_PTR pmech) -+ { -+ CK_RV rv; -+#ifdef SOLARIS_AES_CTR -+ CK_AES_CTR_PARAMS ctr_params; -+#endif /* SOLARIS_AES_CTR */ -+ -+ /* -+ * We expect pmech->mechanism to be already set and -+ * pParameter/ulParameterLen initialized to NULL/0 before -+ * pk11_init_symetric() is called. -+ */ -+ OPENSSL_assert(pmech->mechanism != NULL); -+ OPENSSL_assert(pmech->pParameter == NULL); -+ OPENSSL_assert(pmech->ulParameterLen == 0); -+ -+#ifdef SOLARIS_AES_CTR -+ if (ctx->cipher->nid == NID_aes_128_ctr || -+ ctx->cipher->nid == NID_aes_192_ctr || -+ ctx->cipher->nid == NID_aes_256_ctr) -+ { -+ pmech->pParameter = (void *)(&ctr_params); -+ pmech->ulParameterLen = sizeof(ctr_params); -+ /* -+ * For now, we are limited to the fixed length of the counter, -+ * it covers the whole counter block. That's what RFC 4344 -+ * needs. For more information on internal structure of the -+ * counter block, see RFC 3686. If needed in the future, we can -+ * add code so that the counter length can be set via -+ * ENGINE_ctrl() function. -+ */ -+ ctr_params.ulCounterBits = AES_BLOCK_SIZE * 8; -+ OPENSSL_assert(pcipher->iv_len == AES_BLOCK_SIZE); -+ memcpy(ctr_params.cb, ctx->iv, AES_BLOCK_SIZE); -+ } -+ else -+#endif /* SOLARIS_AES_CTR */ -+ { -+ if (pcipher->iv_len > 0) -+ { -+ pmech->pParameter = (void *)ctx->iv; -+ pmech->ulParameterLen = pcipher->iv_len; -+ } -+ } -+ -+ /* if we get here, the encryption needs to be reinitialized */ -+ if (ctx->encrypt) -+ rv = pFuncList->C_EncryptInit(sp->session_cipher, pmech, -+ sp->cipher_key); -+ else -+ rv = pFuncList->C_DecryptInit(sp->session_cipher, pmech, -+ sp->cipher_key); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CIPHER_INIT, ctx->encrypt ? -+ PK11_R_ENCRYPTINIT : PK11_R_DECRYPTINIT, rv); -+ pk11_return_session(sp, OP_CIPHER); -+ return (0); -+ } -+ -+ return (1); -+ } -+ -+static int -+pk11_cipher_init(EVP_CIPHER_CTX *ctx, const unsigned char *key, -+ const unsigned char *iv, int enc) -+ { -+ CK_MECHANISM mech; -+ int index; -+ PK11_CIPHER_STATE *state = (PK11_CIPHER_STATE *) ctx->cipher_data; -+ PK11_SESSION *sp; -+ PK11_CIPHER *p_ciph_table_row; -+ -+ state->sp = NULL; -+ -+ index = cipher_nid_to_pk11(ctx->cipher->nid); -+ if (index < 0 || index >= PK11_CIPHER_MAX) -+ return 0; -+ -+ p_ciph_table_row = &ciphers[index]; -+ /* -+ * iv_len in the ctx->cipher structure is the maximum IV length for the -+ * current cipher and it must be less or equal to the IV length in our -+ * ciphers table. The key length must match precisely. Every application -+ * can define its own EVP functions so this code serves as a sanity -+ * check. -+ * -+ * Note that the reason why the IV length in ctx->cipher might be -+ * greater than the actual length is that OpenSSL uses BLOCK_CIPHER_defs -+ * macro to define functions that return EVP structures for all DES -+ * modes. So, even ECB modes get 8 byte IV. -+ */ -+ if (ctx->cipher->iv_len < p_ciph_table_row->iv_len || -+ ctx->key_len != p_ciph_table_row->key_len) -+ { -+ PK11err(PK11_F_CIPHER_INIT, PK11_R_KEY_OR_IV_LEN_PROBLEM); -+ return 0; -+ } -+ -+ if ((sp = pk11_get_session(OP_CIPHER)) == NULL) -+ return 0; -+ -+ /* if applicable, the mechanism parameter is used for IV */ -+ mech.mechanism = p_ciph_table_row->mech_type; -+ mech.pParameter = NULL; -+ mech.ulParameterLen = 0; -+ -+ /* The key object is destroyed here if it is not the current key -+ */ -+ (void) check_new_cipher_key(sp, key, p_ciph_table_row->key_len); -+ -+ /* If the key is the same and the encryption is also the same, -+ * then just reuse it. However, we must not forget to reinitialize the -+ * context that was finalized in pk11_cipher_cleanup(). -+ */ -+ if (sp->cipher_key != CK_INVALID_HANDLE && sp->encrypt == ctx->encrypt) -+ { -+ state->sp = sp; -+ if (pk11_init_symmetric(ctx, p_ciph_table_row, sp, &mech) == 0) -+ return (0); -+ -+ return (1); -+ } -+ -+ /* Check if the key has been invalidated. If so, a new key object -+ * needs to be created. -+ */ -+ if (sp->cipher_key == CK_INVALID_HANDLE) -+ { -+ sp->cipher_key = pk11_get_cipher_key( -+ ctx, key, p_ciph_table_row->key_type, sp); -+ } -+ -+ if (sp->encrypt != ctx->encrypt && sp->encrypt != -1) -+ { -+ /* The previous encryption/decryption -+ * is different. Need to terminate the previous -+ * active encryption/decryption here -+ */ -+ if (!pk11_cipher_final(sp)) -+ { -+ pk11_return_session(sp, OP_CIPHER); -+ return 0; -+ } -+ } -+ -+ if (sp->cipher_key == CK_INVALID_HANDLE) -+ { -+ pk11_return_session(sp, OP_CIPHER); -+ return 0; -+ } -+ -+ /* now initialize the context with a new key */ -+ if (pk11_init_symmetric(ctx, p_ciph_table_row, sp, &mech) == 0) -+ return (0); -+ -+ sp->encrypt = ctx->encrypt; -+ state->sp = sp; -+ -+ return 1; -+ } -+ -+/* When reusing the same key in an encryption/decryption session for a -+ * decryption/encryption session, we need to close the active session -+ * and recreate a new one. Note that the key is in the global session so -+ * that it needs not be recreated. -+ * -+ * It is more appropriate to use C_En/DecryptFinish here. At the time of this -+ * development, these two functions in the PKCS#11 libraries used return -+ * unexpected errors when passing in 0 length output. It may be a good -+ * idea to try them again if performance is a problem here and fix -+ * C_En/DecryptFinial if there are bugs there causing the problem. -+ */ -+static int -+pk11_cipher_final(PK11_SESSION *sp) -+ { -+ CK_RV rv; -+ -+ rv = pFuncList->C_CloseSession(sp->session_cipher); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CIPHER_FINAL, PK11_R_CLOSESESSION, rv); -+ return 0; -+ } -+ -+ rv = pFuncList->C_OpenSession(SLOTID, CKF_SERIAL_SESSION, -+ NULL_PTR, NULL_PTR, &sp->session_cipher); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CIPHER_FINAL, PK11_R_OPENSESSION, rv); -+ return 0; -+ } -+ -+ return 1; -+ } -+ -+/* An engine interface function. The calling function allocates sufficient -+ * memory for the output buffer "out" to hold the results */ -+static int -+pk11_cipher_do_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out, -+ const unsigned char *in, unsigned int inl) -+ { -+ PK11_CIPHER_STATE *state = (PK11_CIPHER_STATE *) ctx->cipher_data; -+ PK11_SESSION *sp; -+ CK_RV rv; -+ unsigned long outl = inl; -+ -+ if (state == NULL || state->sp == NULL) -+ return 0; -+ -+ sp = (PK11_SESSION *) state->sp; -+ -+ if (!inl) -+ return 1; -+ -+ /* RC4 is the only stream cipher we support */ -+ if (ctx->cipher->nid != NID_rc4 && (inl % ctx->cipher->block_size) != 0) -+ return 0; -+ -+ if (ctx->encrypt) -+ { -+ rv = pFuncList->C_EncryptUpdate(sp->session_cipher, -+ (unsigned char *)in, inl, out, &outl); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CIPHER_DO_CIPHER, -+ PK11_R_ENCRYPTUPDATE, rv); -+ return 0; -+ } -+ } -+ else -+ { -+ rv = pFuncList->C_DecryptUpdate(sp->session_cipher, -+ (unsigned char *)in, inl, out, &outl); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CIPHER_DO_CIPHER, -+ PK11_R_DECRYPTUPDATE, rv); -+ return 0; -+ } -+ } -+ -+ /* for DES_CBC, DES3_CBC, AES_CBC, and RC4, the output size is always -+ * the same size of input -+ * The application has guaranteed to call the block ciphers with -+ * correctly aligned buffers. -+ */ -+ if (inl != outl) -+ return 0; -+ -+ return 1; -+ } -+ -+/* -+ * Return the session to the pool. Calling C_EncryptFinal() and C_DecryptFinal() -+ * here is the right thing because in EVP_DecryptFinal_ex(), engine's -+ * do_cipher() is not even called, and in EVP_EncryptFinal_ex() it is called but -+ * the engine can't find out that it's the finalizing call. We wouldn't -+ * necessarily have to finalize the context here since reinitializing it with -+ * C_(Encrypt|Decrypt)Init() should be fine but for the sake of correctness, -+ * let's do it. Some implementations might leak memory if the previously used -+ * context is initialized without finalizing it first. -+ */ -+static int -+pk11_cipher_cleanup(EVP_CIPHER_CTX *ctx) -+ { -+ CK_RV rv; -+ CK_ULONG len = EVP_MAX_BLOCK_LENGTH; -+ CK_BYTE buf[EVP_MAX_BLOCK_LENGTH]; -+ PK11_CIPHER_STATE *state = ctx->cipher_data; -+ -+ if (state != NULL && state->sp != NULL) -+ { -+ /* -+ * We are not interested in the data here, we just need to get -+ * rid of the context. -+ */ -+ if (ctx->encrypt) -+ rv = pFuncList->C_EncryptFinal( -+ state->sp->session_cipher, buf, &len); -+ else -+ rv = pFuncList->C_DecryptFinal( -+ state->sp->session_cipher, buf, &len); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CIPHER_CLEANUP, ctx->encrypt ? -+ PK11_R_ENCRYPTFINAL : PK11_R_DECRYPTFINAL, rv); -+ pk11_return_session(state->sp, OP_CIPHER); -+ return (0); -+ } -+ -+ pk11_return_session(state->sp, OP_CIPHER); -+ state->sp = NULL; -+ } -+ -+ return (1); -+ } -+ -+/* Registered by the ENGINE when used to find out how to deal with -+ * a particular NID in the ENGINE. This says what we'll do at the -+ * top level - note, that list is restricted by what we answer with -+ */ -+static int -+pk11_engine_ciphers(ENGINE *e, const EVP_CIPHER **cipher, -+ const int **nids, int nid) -+ { -+ if (!cipher) -+ return (pk11_usable_ciphers(nids)); -+ -+ switch (nid) -+ { -+ case NID_des_ede3_cbc: -+ *cipher = &pk11_3des_cbc; -+ break; -+ case NID_des_cbc: -+ *cipher = &pk11_des_cbc; -+ break; -+ case NID_des_ede3_ecb: -+ *cipher = &pk11_3des_ecb; -+ break; -+ case NID_des_ecb: -+ *cipher = &pk11_des_ecb; -+ break; -+ case NID_aes_128_cbc: -+ *cipher = &pk11_aes_128_cbc; -+ break; -+ case NID_aes_192_cbc: -+ *cipher = &pk11_aes_192_cbc; -+ break; -+ case NID_aes_256_cbc: -+ *cipher = &pk11_aes_256_cbc; -+ break; -+ case NID_aes_128_ecb: -+ *cipher = &pk11_aes_128_ecb; -+ break; -+ case NID_aes_192_ecb: -+ *cipher = &pk11_aes_192_ecb; -+ break; -+ case NID_aes_256_ecb: -+ *cipher = &pk11_aes_256_ecb; -+ break; -+ case NID_bf_cbc: -+ *cipher = &pk11_bf_cbc; -+ break; -+ case NID_rc4: -+ *cipher = &pk11_rc4; -+ break; -+ default: -+#ifdef SOLARIS_AES_CTR -+ /* -+ * These can't be in separated cases because the NIDs -+ * here are not constants. -+ */ -+ if (nid == NID_aes_128_ctr) -+ *cipher = &pk11_aes_128_ctr; -+ else if (nid == NID_aes_192_ctr) -+ *cipher = &pk11_aes_192_ctr; -+ else if (nid == NID_aes_256_ctr) -+ *cipher = &pk11_aes_256_ctr; -+ else -+#endif /* SOLARIS_AES_CTR */ -+ *cipher = NULL; -+ break; -+ } -+ return (*cipher != NULL); -+ } -+ -+static int -+pk11_engine_digests(ENGINE *e, const EVP_MD **digest, -+ const int **nids, int nid) -+ { -+ if (!digest) -+ return (pk11_usable_digests(nids)); -+ -+ switch (nid) -+ { -+ case NID_md5: -+ *digest = &pk11_md5; -+ break; -+ case NID_sha1: -+ *digest = &pk11_sha1; -+ break; -+ case NID_sha224: -+ *digest = &pk11_sha224; -+ break; -+ case NID_sha256: -+ *digest = &pk11_sha256; -+ break; -+ case NID_sha384: -+ *digest = &pk11_sha384; -+ break; -+ case NID_sha512: -+ *digest = &pk11_sha512; -+ break; -+ default: -+ *digest = NULL; -+ break; -+ } -+ return (*digest != NULL); -+ } -+ -+ -+/* Create a secret key object in a PKCS#11 session -+ */ -+static CK_OBJECT_HANDLE pk11_get_cipher_key(EVP_CIPHER_CTX *ctx, -+ const unsigned char *key, CK_KEY_TYPE key_type, PK11_SESSION *sp) -+ { -+ CK_RV rv; -+ CK_OBJECT_HANDLE h_key = CK_INVALID_HANDLE; -+ CK_OBJECT_CLASS obj_key = CKO_SECRET_KEY; -+ CK_ULONG ul_key_attr_count = 6; -+ -+ CK_ATTRIBUTE a_key_template[] = -+ { -+ {CKA_CLASS, (void*) NULL, sizeof(CK_OBJECT_CLASS)}, -+ {CKA_KEY_TYPE, (void*) NULL, sizeof(CK_KEY_TYPE)}, -+ {CKA_TOKEN, &false, sizeof(false)}, -+ {CKA_ENCRYPT, &true, sizeof(true)}, -+ {CKA_DECRYPT, &true, sizeof(true)}, -+ {CKA_VALUE, (void*) NULL, 0}, -+ }; -+ -+ /* Create secret key object in global_session. All other sessions -+ * can use the key handles. Here is why: -+ * OpenSSL will call EncryptInit and EncryptUpdate using a secret key. -+ * It may then call DecryptInit and DecryptUpdate using the same key. -+ * To use the same key object, we need to call EncryptFinal with -+ * a 0 length message. Currently, this does not work for 3DES -+ * mechanism. To get around this problem, we close the session and -+ * then create a new session to use the same key object. When a session -+ * is closed, all the object handles will be invalid. Thus, create key -+ * objects in a global session, an individual session may be closed to -+ * terminate the active operation. -+ */ -+ CK_SESSION_HANDLE session = global_session; -+ a_key_template[0].pValue = &obj_key; -+ a_key_template[1].pValue = &key_type; -+ a_key_template[5].pValue = (void *) key; -+ a_key_template[5].ulValueLen = (unsigned long) ctx->key_len; -+ -+ rv = pFuncList->C_CreateObject(session, -+ a_key_template, ul_key_attr_count, &h_key); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_GET_CIPHER_KEY, PK11_R_CREATEOBJECT, -+ rv); -+ goto err; -+ } -+ -+ /* Save the key information used in this session. -+ * The max can be saved is PK11_KEY_LEN_MAX. -+ */ -+ sp->key_len = ctx->key_len > PK11_KEY_LEN_MAX ? -+ PK11_KEY_LEN_MAX : ctx->key_len; -+ memcpy(sp->key, key, sp->key_len); -+err: -+ -+ return h_key; -+ } -+ -+static int -+md_nid_to_pk11(int nid) -+ { -+ int i; -+ -+ for (i = 0; i < PK11_DIGEST_MAX; i++) -+ if (digests[i].nid == nid) -+ return (digests[i].id); -+ return (-1); -+ } -+ -+static int -+pk11_digest_init(EVP_MD_CTX *ctx) -+ { -+ CK_RV rv; -+ CK_MECHANISM mech; -+ int index; -+ PK11_SESSION *sp; -+ PK11_DIGEST *pdp; -+ PK11_CIPHER_STATE *state = (PK11_CIPHER_STATE *) ctx->md_data; -+ -+ state->sp = NULL; -+ -+ index = md_nid_to_pk11(ctx->digest->type); -+ if (index < 0 || index >= PK11_DIGEST_MAX) -+ return 0; -+ -+ pdp = &digests[index]; -+ if ((sp = pk11_get_session(OP_DIGEST)) == NULL) -+ return 0; -+ -+ /* at present, no parameter is needed for supported digests */ -+ mech.mechanism = pdp->mech_type; -+ mech.pParameter = NULL; -+ mech.ulParameterLen = 0; -+ -+ rv = pFuncList->C_DigestInit(sp->session, &mech); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DIGEST_INIT, PK11_R_DIGESTINIT, rv); -+ pk11_return_session(sp, OP_DIGEST); -+ return 0; -+ } -+ -+ state->sp = sp; -+ -+ return 1; -+ } -+ -+static int -+pk11_digest_update(EVP_MD_CTX *ctx,const void *data,size_t count) -+ { -+ CK_RV rv; -+ PK11_CIPHER_STATE *state = (PK11_CIPHER_STATE *) ctx->md_data; -+ -+ /* 0 length message will cause a failure in C_DigestFinal */ -+ if (count == 0) -+ return 1; -+ -+ if (state == NULL || state->sp == NULL) -+ return 0; -+ -+ rv = pFuncList->C_DigestUpdate(state->sp->session, (CK_BYTE *) data, -+ count); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DIGEST_UPDATE, PK11_R_DIGESTUPDATE, rv); -+ pk11_return_session(state->sp, OP_DIGEST); -+ state->sp = NULL; -+ return 0; -+ } -+ -+ return 1; -+ } -+ -+static int -+pk11_digest_final(EVP_MD_CTX *ctx,unsigned char *md) -+ { -+ CK_RV rv; -+ unsigned long len; -+ PK11_CIPHER_STATE *state = (PK11_CIPHER_STATE *) ctx->md_data; -+ len = ctx->digest->md_size; -+ -+ if (state == NULL || state->sp == NULL) -+ return 0; -+ -+ rv = pFuncList->C_DigestFinal(state->sp->session, md, &len); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DIGEST_FINAL, PK11_R_DIGESTFINAL, rv); -+ pk11_return_session(state->sp, OP_DIGEST); -+ state->sp = NULL; -+ return 0; -+ } -+ -+ if (ctx->digest->md_size != len) -+ return 0; -+ -+ /* Final is called and digest is returned, so return the session -+ * to the pool -+ */ -+ pk11_return_session(state->sp, OP_DIGEST); -+ state->sp = NULL; -+ -+ return 1; -+ } -+ -+static int -+pk11_digest_copy(EVP_MD_CTX *to,const EVP_MD_CTX *from) -+ { -+ CK_RV rv; -+ int ret = 0; -+ PK11_CIPHER_STATE *state, *state_to; -+ CK_BYTE_PTR pstate = NULL; -+ CK_ULONG ul_state_len; -+ -+ /* The copy-from state */ -+ state = (PK11_CIPHER_STATE *) from->md_data; -+ if (state == NULL || state->sp == NULL) -+ goto err; -+ -+ /* Initialize the copy-to state */ -+ if (!pk11_digest_init(to)) -+ goto err; -+ state_to = (PK11_CIPHER_STATE *) to->md_data; -+ -+ /* Get the size of the operation state of the copy-from session */ -+ rv = pFuncList->C_GetOperationState(state->sp->session, NULL, -+ &ul_state_len); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DIGEST_COPY, PK11_R_GET_OPERATION_STATE, -+ rv); -+ goto err; -+ } -+ if (ul_state_len == 0) -+ { -+ goto err; -+ } -+ -+ pstate = OPENSSL_malloc(ul_state_len); -+ if (pstate == NULL) -+ { -+ PK11err(PK11_F_DIGEST_COPY, PK11_R_MALLOC_FAILURE); -+ goto err; -+ } -+ -+ /* Get the operation state of the copy-from session */ -+ rv = pFuncList->C_GetOperationState(state->sp->session, pstate, -+ &ul_state_len); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DIGEST_COPY, PK11_R_GET_OPERATION_STATE, -+ rv); -+ goto err; -+ } -+ -+ /* Set the operation state of the copy-to session */ -+ rv = pFuncList->C_SetOperationState(state_to->sp->session, pstate, -+ ul_state_len, 0, 0); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_DIGEST_COPY, PK11_R_SET_OPERATION_STATE, rv); -+ goto err; -+ } -+ -+ ret = 1; -+err: -+ if (pstate != NULL) -+ OPENSSL_free(pstate); -+ -+ return ret; -+ } -+ -+/* Return any pending session state to the pool */ -+static int -+pk11_digest_cleanup(EVP_MD_CTX *ctx) -+ { -+ PK11_CIPHER_STATE *state = ctx->md_data; -+ unsigned char buf[EVP_MAX_MD_SIZE]; -+ -+ if (state != NULL && state->sp != NULL) -+ { -+ /* -+ * If state->sp is not NULL then pk11_digest_final() has not -+ * been called yet. We must call it now to free any memory -+ * that might have been allocated in the token when -+ * pk11_digest_init() was called. -+ */ -+ (void) pk11_digest_final(ctx,buf); -+ pk11_return_session(state->sp, OP_DIGEST); -+ state->sp = NULL; -+ } -+ -+ return 1; -+ } -+ -+/* -+ * Check if the new key is the same as the key object in the session. If the key -+ * is the same, no need to create a new key object. Otherwise, the old key -+ * object needs to be destroyed and a new one will be created. Return 1 for -+ * cache hit, 0 for cache miss. Note that we must check the key length first -+ * otherwise we could end up reusing a different, longer key with the same -+ * prefix. -+ */ -+static int check_new_cipher_key(PK11_SESSION *sp, const unsigned char *key, -+ int key_len) -+ { -+ if (sp->key_len != key_len || memcmp(sp->key, key, key_len) != 0) -+ { -+ (void) pk11_destroy_cipher_key_objects(sp); -+ return (0); -+ } -+ return (1); -+ } -+ -+/* Destroy one or more secret key objects. -+ */ -+static int pk11_destroy_cipher_key_objects(PK11_SESSION *session) -+ { -+ int ret = 0; -+ PK11_SESSION *sp = NULL; -+ PK11_SESSION *local_free_session; -+ -+ CRYPTO_w_lock(CRYPTO_LOCK_PK11_ENGINE); -+ if (session) -+ local_free_session = session; -+ else -+ local_free_session = free_session; -+ while ((sp = local_free_session) != NULL) -+ { -+ local_free_session = sp->next; -+ -+ if (sp->cipher_key != CK_INVALID_HANDLE) -+ { -+ /* The secret key object is created in the -+ * global_session. See pk11_get_cipher_key -+ */ -+ if (pk11_destroy_object(global_session, -+ sp->cipher_key) == 0) -+ goto err; -+ sp->cipher_key = CK_INVALID_HANDLE; -+ } -+ } -+ ret = 1; -+err: -+ CRYPTO_w_unlock(CRYPTO_LOCK_PK11_ENGINE); -+ -+ return ret; -+ } -+ -+ -+/* -+ * Public key mechanisms optionally supported -+ * -+ * CKM_RSA_X_509 -+ * CKM_RSA_PKCS -+ * CKM_DSA -+ * -+ * The first slot that supports at least one of those mechanisms is chosen as a -+ * public key slot. -+ * -+ * Symmetric ciphers optionally supported -+ * -+ * CKM_DES3_CBC -+ * CKM_DES_CBC -+ * CKM_AES_CBC -+ * CKM_DES3_ECB -+ * CKM_DES_ECB -+ * CKM_AES_ECB -+ * CKM_AES_CTR -+ * CKM_RC4 -+ * CKM_BLOWFISH_CBC -+ * -+ * Digests optionally supported -+ * -+ * CKM_MD5 -+ * CKM_SHA_1 -+ * CKM_SHA224 -+ * CKM_SHA256 -+ * CKM_SHA384 -+ * CKM_SHA512 -+ * -+ * The output of this function is a set of global variables indicating which -+ * mechanisms from RSA, DSA, DH and RAND are present, and also two arrays of -+ * mechanisms, one for symmetric ciphers and one for digests. Also, 3 global -+ * variables carry information about which slot was chosen for (a) public key -+ * mechanisms, (b) random operations, and (c) symmetric ciphers and digests. -+ */ -+static int -+pk11_choose_slots(int *any_slot_found) -+ { -+ CK_SLOT_ID_PTR pSlotList = NULL_PTR; -+ CK_ULONG ulSlotCount = 0; -+ CK_MECHANISM_INFO mech_info; -+ CK_TOKEN_INFO token_info; -+ int i; -+ CK_RV rv; -+ CK_SLOT_ID best_slot_sofar; -+ CK_BBOOL found_candidate_slot = CK_FALSE; -+ int slot_n_cipher = 0; -+ int slot_n_digest = 0; -+ CK_SLOT_ID current_slot = 0; -+ int current_slot_n_cipher = 0; -+ int current_slot_n_digest = 0; -+ -+ int local_cipher_nids[PK11_CIPHER_MAX]; -+ int local_digest_nids[PK11_DIGEST_MAX]; -+ -+ /* let's initialize the output parameter */ -+ if (any_slot_found != NULL) -+ *any_slot_found = 0; -+ -+ /* Get slot list for memory allocation */ -+ rv = pFuncList->C_GetSlotList(0, NULL_PTR, &ulSlotCount); -+ -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CHOOSE_SLOT, PK11_R_GETSLOTLIST, rv); -+ return 0; -+ } -+ -+ /* it's not an error if we didn't find any providers */ -+ if (ulSlotCount == 0) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: no crypto providers found\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ return 1; -+ } -+ -+ pSlotList = OPENSSL_malloc(ulSlotCount * sizeof (CK_SLOT_ID)); -+ -+ if (pSlotList == NULL) -+ { -+ PK11err(PK11_F_CHOOSE_SLOT, PK11_R_MALLOC_FAILURE); -+ return 0; -+ } -+ -+ /* Get the slot list for processing */ -+ rv = pFuncList->C_GetSlotList(0, pSlotList, &ulSlotCount); -+ if (rv != CKR_OK) -+ { -+ PK11err_add_data(PK11_F_CHOOSE_SLOT, PK11_R_GETSLOTLIST, rv); -+ OPENSSL_free(pSlotList); -+ return 0; -+ } -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: provider: %s\n", PK11_DBG, def_PK11_LIBNAME); -+ fprintf(stderr, "%s: number of slots: %d\n", PK11_DBG, ulSlotCount); -+ -+ fprintf(stderr, "%s: == checking rand slots ==\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ for (i = 0; i < ulSlotCount; i++) -+ { -+ current_slot = pSlotList[i]; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: checking slot: %d\n", PK11_DBG, i); -+#endif /* DEBUG_SLOT_SELECTION */ -+ /* Check if slot has random support. */ -+ rv = pFuncList->C_GetTokenInfo(current_slot, &token_info); -+ if (rv != CKR_OK) -+ continue; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: token label: %.32s\n", PK11_DBG, token_info.label); -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+ if (token_info.flags & CKF_RNG) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: this token has CKF_RNG flag\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ pk11_have_random = CK_TRUE; -+ break; -+ } -+ } -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: == checking pubkey slots ==\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ for (i = 0; i < ulSlotCount; i++) -+ { -+ CK_BBOOL slot_has_rsa = CK_FALSE; -+ CK_BBOOL slot_has_dsa = CK_FALSE; -+ CK_BBOOL slot_has_dh = CK_FALSE; -+ current_slot = pSlotList[i]; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: checking slot: %d\n", PK11_DBG, i); -+#endif /* DEBUG_SLOT_SELECTION */ -+ rv = pFuncList->C_GetTokenInfo(current_slot, &token_info); -+ if (rv != CKR_OK) -+ continue; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: token label: %.32s\n", PK11_DBG, token_info.label); -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+#ifndef OPENSSL_NO_RSA -+ /* -+ * Check if this slot is capable of signing and -+ * verifying with CKM_RSA_PKCS. -+ */ -+ rv = pFuncList->C_GetMechanismInfo(current_slot, CKM_RSA_PKCS, -+ &mech_info); -+ -+ if (rv == CKR_OK && ((mech_info.flags & CKF_SIGN) && -+ (mech_info.flags & CKF_VERIFY))) -+ { -+ /* -+ * Check if this slot is capable of encryption, -+ * decryption, sign, and verify with CKM_RSA_X_509. -+ */ -+ rv = pFuncList->C_GetMechanismInfo(current_slot, -+ CKM_RSA_X_509, &mech_info); -+ -+ if (rv == CKR_OK && ((mech_info.flags & CKF_SIGN) && -+ (mech_info.flags & CKF_VERIFY) && -+ (mech_info.flags & CKF_ENCRYPT) && -+ (mech_info.flags & CKF_VERIFY_RECOVER) && -+ (mech_info.flags & CKF_DECRYPT))) -+ { -+ slot_has_rsa = CK_TRUE; -+ } -+ } -+#endif /* OPENSSL_NO_RSA */ -+ -+#ifndef OPENSSL_NO_DSA -+ /* -+ * Check if this slot is capable of signing and -+ * verifying with CKM_DSA. -+ */ -+ rv = pFuncList->C_GetMechanismInfo(current_slot, CKM_DSA, -+ &mech_info); -+ if (rv == CKR_OK && ((mech_info.flags & CKF_SIGN) && -+ (mech_info.flags & CKF_VERIFY))) -+ { -+ slot_has_dsa = CK_TRUE; -+ } -+#endif /* OPENSSL_NO_DSA */ -+ -+#ifndef OPENSSL_NO_DH -+ /* -+ * Check if this slot is capable of DH key generataion and -+ * derivation. -+ */ -+ rv = pFuncList->C_GetMechanismInfo(current_slot, -+ CKM_DH_PKCS_KEY_PAIR_GEN, &mech_info); -+ -+ if (rv == CKR_OK && (mech_info.flags & CKF_GENERATE_KEY_PAIR)) -+ { -+ rv = pFuncList->C_GetMechanismInfo(current_slot, -+ CKM_DH_PKCS_DERIVE, &mech_info); -+ if (rv == CKR_OK && (mech_info.flags & CKF_DERIVE)) -+ { -+ slot_has_dh = CK_TRUE; -+ } -+ } -+#endif /* OPENSSL_NO_DH */ -+ -+ if (!found_candidate_slot && -+ (slot_has_rsa || slot_has_dsa || slot_has_dh)) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, -+ "%s: potential slot: %d\n", PK11_DBG, current_slot); -+#endif /* DEBUG_SLOT_SELECTION */ -+ best_slot_sofar = current_slot; -+ pk11_have_rsa = slot_has_rsa; -+ pk11_have_dsa = slot_has_dsa; -+ pk11_have_dh = slot_has_dh; -+ found_candidate_slot = CK_TRUE; -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, -+ "%s: setting found_candidate_slot to CK_TRUE\n", -+ PK11_DBG); -+ fprintf(stderr, -+ "%s: best so far slot: %d\n", PK11_DBG, -+ best_slot_sofar); -+ } -+ else -+ { -+ fprintf(stderr, -+ "%s: no rsa/dsa/dh\n", PK11_DBG); -+ } -+#else -+ } /* if */ -+#endif /* DEBUG_SLOT_SELECTION */ -+ } /* for */ -+ -+ if (found_candidate_slot) -+ { -+ pubkey_SLOTID = best_slot_sofar; -+ } -+ -+ found_candidate_slot = CK_FALSE; -+ best_slot_sofar = 0; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: == checking cipher/digest ==\n", PK11_DBG); -+#endif /* DEBUG_SLOT_SELECTION */ -+ for (i = 0; i < ulSlotCount; i++) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: checking slot: %d\n", PK11_DBG, i); -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+ current_slot = pSlotList[i]; -+ current_slot_n_cipher = 0; -+ current_slot_n_digest = 0; -+ memset(local_cipher_nids, 0, sizeof(local_cipher_nids)); -+ memset(local_digest_nids, 0, sizeof(local_digest_nids)); -+ -+ pk11_find_symmetric_ciphers(pFuncList, current_slot, -+ ¤t_slot_n_cipher, local_cipher_nids); -+ -+ pk11_find_digests(pFuncList, current_slot, -+ ¤t_slot_n_digest, local_digest_nids); -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: current_slot_n_cipher %d\n", PK11_DBG, -+ current_slot_n_cipher); -+ fprintf(stderr, "%s: current_slot_n_digest %d\n", PK11_DBG, -+ current_slot_n_digest); -+ fprintf(stderr, "%s: best so far cipher/digest slot: %d\n", -+ PK11_DBG, best_slot_sofar); -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+ /* -+ * If the current slot supports more ciphers/digests than -+ * the previous best one we change the current best to this one. -+ * otherwise leave it where it is. -+ */ -+ if ((current_slot_n_cipher > slot_n_cipher) || -+ (current_slot_n_digest > slot_n_digest)) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, -+ "%s: changing best so far slot to %d\n", -+ PK11_DBG, current_slot); -+#endif /* DEBUG_SLOT_SELECTION */ -+ best_slot_sofar = SLOTID = current_slot; -+ slot_n_cipher = current_slot_n_cipher; -+ slot_n_digest = current_slot_n_digest; -+ -+ } -+ } -+ -+ if (slot_n_cipher > 0) -+ { -+ cipher_count = slot_n_cipher; -+ memcpy(cipher_nids, local_cipher_nids, -+ sizeof(local_cipher_nids)); -+ } -+ if (slot_n_digest > 0) -+ { -+ digest_count = slot_n_digest; -+ memcpy(digest_nids, local_digest_nids, -+ sizeof(local_digest_nids)); -+ } -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, -+ "%s: chosen pubkey slot: %d\n", PK11_DBG, pubkey_SLOTID); -+ fprintf(stderr, -+ "%s: chosen rand slot: %d\n", PK11_DBG, rand_SLOTID); -+ fprintf(stderr, -+ "%s: chosen cipher/digest slot: %d\n", PK11_DBG, SLOTID); -+ fprintf(stderr, -+ "%s: pk11_have_rsa %d\n", PK11_DBG, pk11_have_rsa); -+ fprintf(stderr, -+ "%s: pk11_have_dsa %d\n", PK11_DBG, pk11_have_dsa); -+ fprintf(stderr, -+ "%s: pk11_have_dh %d\n", PK11_DBG, pk11_have_dh); -+ fprintf(stderr, -+ "%s: pk11_have_random %d\n", PK11_DBG, pk11_have_random); -+ fprintf(stderr, -+ "%s: cipher_count %d\n", PK11_DBG, cipher_count); -+ fprintf(stderr, -+ "%s: digest_count %d\n", PK11_DBG, digest_count); -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+ if (pSlotList != NULL) -+ OPENSSL_free(pSlotList); -+ -+#ifdef SOLARIS_HW_SLOT_SELECTION -+ OPENSSL_free(hw_cnids); -+ OPENSSL_free(hw_dnids); -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ -+ if (any_slot_found != NULL) -+ *any_slot_found = 1; -+ return 1; -+ } -+ -+static void pk11_get_symmetric_cipher(CK_FUNCTION_LIST_PTR pflist, -+ int slot_id, CK_MECHANISM_TYPE mech, int *current_slot_n_cipher, -+ int *local_cipher_nids, int id) -+ { -+ CK_MECHANISM_INFO mech_info; -+ CK_RV rv; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: checking mech: %x", PK11_DBG, mech); -+#endif /* DEBUG_SLOT_SELECTION */ -+ rv = pflist->C_GetMechanismInfo(slot_id, mech, &mech_info); -+ -+ if (rv != CKR_OK) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, " not found\n"); -+#endif /* DEBUG_SLOT_SELECTION */ -+ return; -+ } -+ -+ if ((mech_info.flags & CKF_ENCRYPT) && -+ (mech_info.flags & CKF_DECRYPT)) -+ { -+#ifdef SOLARIS_HW_SLOT_SELECTION -+ if (nid_in_table(ciphers[id].nid, hw_cnids)) -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, " usable\n"); -+#endif /* DEBUG_SLOT_SELECTION */ -+ local_cipher_nids[(*current_slot_n_cipher)++] = -+ ciphers[id].nid; -+ } -+#ifdef SOLARIS_HW_SLOT_SELECTION -+#ifdef DEBUG_SLOT_SELECTION -+ else -+ { -+ fprintf(stderr, " rejected, software implementation only\n"); -+ } -+#endif /* DEBUG_SLOT_SELECTION */ -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ } -+#ifdef DEBUG_SLOT_SELECTION -+ else -+ { -+ fprintf(stderr, " unusable\n"); -+ } -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+ return; -+ } -+ -+static void pk11_get_digest(CK_FUNCTION_LIST_PTR pflist, int slot_id, -+ CK_MECHANISM_TYPE mech, int *current_slot_n_digest, int *local_digest_nids, -+ int id) -+ { -+ CK_MECHANISM_INFO mech_info; -+ CK_RV rv; -+ -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, "%s: checking mech: %x", PK11_DBG, mech); -+#endif /* DEBUG_SLOT_SELECTION */ -+ rv = pflist->C_GetMechanismInfo(slot_id, mech, &mech_info); -+ -+ if (rv != CKR_OK) -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, " not found\n"); -+#endif /* DEBUG_SLOT_SELECTION */ -+ return; -+ } -+ -+ if (mech_info.flags & CKF_DIGEST) -+ { -+#ifdef SOLARIS_HW_SLOT_SELECTION -+ if (nid_in_table(digests[id].nid, hw_dnids)) -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ { -+#ifdef DEBUG_SLOT_SELECTION -+ fprintf(stderr, " usable\n"); -+#endif /* DEBUG_SLOT_SELECTION */ -+ local_digest_nids[(*current_slot_n_digest)++] = -+ digests[id].nid; -+ } -+#ifdef SOLARIS_HW_SLOT_SELECTION -+#ifdef DEBUG_SLOT_SELECTION -+ else -+ { -+ fprintf(stderr, " rejected, software implementation only\n"); -+ } -+#endif /* DEBUG_SLOT_SELECTION */ -+#endif /* SOLARIS_HW_SLOT_SELECTION */ -+ } -+#ifdef DEBUG_SLOT_SELECTION -+ else -+ { -+ fprintf(stderr, " unusable\n"); -+ } -+#endif /* DEBUG_SLOT_SELECTION */ -+ -+ return; -+ } -+ -+#ifdef SOLARIS_AES_CTR -+/* create a new NID when we have no OID for that mechanism */ -+static int pk11_add_NID(char *sn, char *ln) -+ { -+ ASN1_OBJECT *o; -+ int nid; -+ -+ if ((o = ASN1_OBJECT_create(OBJ_new_nid(1), (unsigned char *)"", -+ 1, sn, ln)) == NULL) -+ { -+ return 0; -+ } -+ -+ /* will return NID_undef on error */ -+ nid = OBJ_add_object(o); -+ ASN1_OBJECT_free(o); -+ -+ return (nid); -+ } -+ -+/* -+ * Create new NIDs for AES counter mode. OpenSSL doesn't support them now so we -+ * have to help ourselves here. -+ */ -+static int pk11_add_aes_ctr_NIDs(void) -+ { -+ /* are we already set? */ -+ if (NID_aes_256_ctr != NID_undef) -+ return 1; -+ -+ /* -+ * There are no official names for AES counter modes yet so we just -+ * follow the format of those that exist. -+ */ -+ if ((NID_aes_128_ctr = pk11_add_NID("AES-128-CTR", "aes-128-ctr")) == -+ NID_undef) -+ goto err; -+ ciphers[PK11_AES_128_CTR].nid = pk11_aes_128_ctr.nid = NID_aes_128_ctr; -+ if ((NID_aes_192_ctr = pk11_add_NID("AES-192-CTR", "aes-192-ctr")) == -+ NID_undef) -+ goto err; -+ ciphers[PK11_AES_192_CTR].nid = pk11_aes_192_ctr.nid = NID_aes_192_ctr; -+ if ((NID_aes_256_ctr = pk11_add_NID("AES-256-CTR", "aes-256-ctr")) == -+ NID_undef) -+ goto err; -+ ciphers[PK11_AES_256_CTR].nid = pk11_aes_256_ctr.nid = NID_aes_256_ctr; -+ return 1; -+ -+err: -+ PK11err(PK11_F_ADD_AES_CTR_NIDS, PK11_R_ADD_NID_FAILED); -+ return 0; -+ } -+#endif /* SOLARIS_AES_CTR */ -+ -+/* Find what symmetric ciphers this slot supports. */ -+static void pk11_find_symmetric_ciphers(CK_FUNCTION_LIST_PTR pflist, -+ CK_SLOT_ID current_slot, int *current_slot_n_cipher, int *local_cipher_nids) -+ { -+ int i; -+ -+ for (i = 0; i < PK11_CIPHER_MAX; ++i) -+ { -+ pk11_get_symmetric_cipher(pflist, current_slot, -+ ciphers[i].mech_type, current_slot_n_cipher, -+ local_cipher_nids, ciphers[i].id); -+ } -+ } -+ -+/* Find what digest algorithms this slot supports. */ -+static void pk11_find_digests(CK_FUNCTION_LIST_PTR pflist, -+ CK_SLOT_ID current_slot, int *current_slot_n_digest, int *local_digest_nids) -+ { -+ int i; -+ -+ for (i = 0; i < PK11_DIGEST_MAX; ++i) -+ { -+ pk11_get_digest(pflist, current_slot, digests[i].mech_type, -+ current_slot_n_digest, local_digest_nids, digests[i].id); -+ } -+ } -+ -+#ifdef SOLARIS_HW_SLOT_SELECTION -+/* -+ * It would be great if we could use pkcs11_kernel directly since this library -+ * offers hardware slots only. That's the easiest way to achieve the situation -+ * where we use the hardware accelerators when present and OpenSSL native code -+ * otherwise. That presumes the fact that OpenSSL native code is faster than the -+ * code in the soft token. It's a logical assumption - Crypto Framework has some -+ * inherent overhead so going there for the software implementation of a @@ 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 maciej at opencsw.org Sat Jun 7 20:08:11 2014 From: maciej at opencsw.org (=?UTF-8?Q?Maciej_=28Matchek=29_Blizi=C5=84ski?=) Date: Sat, 7 Jun 2014 19:08:11 +0100 Subject: SF.net SVN: gar:[23769] csw/mgar/pkg/openssl/trunk/Makefile In-Reply-To: References: <3gkz1L0MHWz1M5@mail.opencsw.org> Message-ID: On Fri, Jun 6, 2014 at 12:35 AM, Yann Rouillard wrote: > Hi Maciej, > > We already talked about this case on IRC: the file > /etc/opt/csw/ssl/openssl.cnf is provided by CSWopenssl-utils but it is > registered as /etc/opt/csw/ssl/openssl.cnf.CSW in the pkgmap of the package > as the real /etc/opt/csw/ssl/openssl.cnf is created at install time using > the cswpreserveconf class. > So it's indeed a false alarm as there is a package that provides this file > (the package itself) and there will be no dangling symlink when the package > is installed. We can argue about what's a false alarm and what isn't, what I'm saying is that if you look at the contents of the package, that contents is bad (dangling symlink is in fact there), and that bug is corrected by the postinstall script. In an exaggerated example, you could have a package that has a totally messed up content, and then postinstall kicks in and patches and fixes everything. That would be wrong, wouldn't it? This dangling symlink is a mild example of that. > That can probably be fixed in a another way (but I am not sure I understood > your proposition, is it about creating a custom class action script to > handle the creation of the symlink /opt/csw/ssl/openssl.cnf -> > /etc/opt/csw/ssl/openssl.cnf ?). CAS creates /etc/opt/csw/ssl/openssl.cnf, right? So why shouldn't it create /opt/opt/etc/ssl/openssl.cnf too? Maciej From bdwalton at users.sourceforge.net Sun Jun 8 00:32:23 2014 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 7 Jun 2014 22:32:23 +0000 Subject: SF.net SVN: gar:[23772] csw/mgar/pkg/coreutils/trunk Message-ID: <3gmFpr6VYzz1F2@mail.opencsw.org> Revision: 23772 http://sourceforge.net/p/gar/code/23772 Author: bdwalton Date: 2014-06-07 22:32:16 +0000 (Sat, 07 Jun 2014) Log Message: ----------- coreutils/trunk: disable a noisy compiler option Modified Paths: -------------- csw/mgar/pkg/coreutils/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/coreutils/trunk/files/0006-Remove-wmudflap.-It-s-deprecated-with-gcc-4.9.patch Modified: csw/mgar/pkg/coreutils/trunk/Makefile =================================================================== --- csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-05 23:36:51 UTC (rev 23771) +++ csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-07 22:32:16 UTC (rev 23772) @@ -38,6 +38,7 @@ PATCHFILES += 0003-Only-define-the-out-label-if-it-will-be-used.patch PATCHFILES += 0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch PATCHFILES += 0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch +PATCHFILES += 0006-Remove-wmudflap.-It-s-deprecated-with-gcc-4.9.patch # We define upstream file regex so we can be notifed of new upstream # software release Added: csw/mgar/pkg/coreutils/trunk/files/0006-Remove-wmudflap.-It-s-deprecated-with-gcc-4.9.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0006-Remove-wmudflap.-It-s-deprecated-with-gcc-4.9.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0006-Remove-wmudflap.-It-s-deprecated-with-gcc-4.9.patch 2014-06-07 22:32:16 UTC (rev 23772) @@ -0,0 +1,27 @@ +From 66bf842924e2aedc0b0c9eff472e59baf6ada12a Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sat, 7 Jun 2014 22:53:09 +0200 +Subject: [PATCH] Remove -wmudflap. It's deprecated with gcc 4.9. + +This was already removed in upstream gnulib. + +Signed-off-by: Ben Walton +--- + configure | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/configure b/configure +index 7508b49..331246b 100755 +--- a/configure ++++ b/configure +@@ -62033,7 +62033,6 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } + -Wmissing-include-dirs \ + -Wmissing-parameter-type \ + -Wmissing-prototypes \ +- -Wmudflap \ + -Wmultichar \ + -Wnarrowing \ + -Wnested-externs \ +-- +1.8.4.1 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From wahwah at users.sourceforge.net Sun Jun 8 12:32:20 2014 From: wahwah at users.sourceforge.net (wahwah at users.sourceforge.net) Date: Sun, 8 Jun 2014 10:32:20 +0000 Subject: SF.net SVN: gar:[23773] csw/mgar/gar/v2/go Message-ID: <3gmYnm4H7vz1Tx@mail.opencsw.org> Revision: 23773 http://sourceforge.net/p/gar/code/23773 Author: wahwah Date: 2014-06-08 10:32:17 +0000 (Sun, 08 Jun 2014) Log Message: ----------- Catalog integrations: Work in progress Features missing: - adding dependencies to a group - tracking the times when a package appeared or disappeared in a catalog (for time accounting) - making changes to the testing catalog Modified Paths: -------------- csw/mgar/gar/v2/go/Makefile csw/mgar/gar/v2/go/src/catalog-release-to-disk/catalog-release-to-disk.go csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go Modified: csw/mgar/gar/v2/go/Makefile =================================================================== --- csw/mgar/gar/v2/go/Makefile 2014-06-07 22:32:16 UTC (rev 23772) +++ csw/mgar/gar/v2/go/Makefile 2014-06-08 10:32:17 UTC (rev 23773) @@ -4,7 +4,7 @@ # 2. scp to the web host to replace the old binary BINARIES += bin/catalog-release-to-disk -BINARIES += bin/crashtest +# BINARIES += bin/crashtest BINARIES += bin/gen-catalog-index BINARIES += bin/promote-packages @@ -16,14 +16,14 @@ opencsw: mkdir -p opencsw -bin/catalog-release-to-disk: src/catalog-release-to-disk/catalog-release-to-disk.o src/opencsw/diskformat/diskformat.o +bin/catalog-release-to-disk: opencsw/diskformat.o src/catalog-release-to-disk/catalog-release-to-disk.o gccgo -g -o $@ $^ -bin/gen-catalog-index: src/gen-catalog-index/gen-catalog-index.o src/opencsw/diskformat/diskformat.o +bin/gen-catalog-index: opencsw/diskformat.o src/gen-catalog-index/gen-catalog-index.o gccgo -g -o $@ $^ -bin/crashtest: src/crashtest/crashtest.go opencsw/diskformat.o - gccgo -g -o $@ $^ +# bin/crashtest: src/crashtest/crashtest.go opencsw/diskformat.o +# gccgo -g -o $@ $^ bin/promote-packages: src/promote-packages/promote-packages.go opencsw/diskformat.o opencsw/mantis.o gccgo -g -o $@ $^ @@ -32,7 +32,8 @@ ginstall -m 755 src/opencsw/diskformat/diskformat.o opencsw/diskformat.o opencsw/mantis.o: opencsw src/opencsw/mantis/mantis.o - ginstall -m 755 src/opencsw/mantis/mantis.o opencsw/mantis.o + # ginstall -m 755 src/opencsw/mantis/mantis.o opencsw/mantis.o + cp src/opencsw/mantis/mantis.o opencsw/mantis.o %.o: %.go gccgo -o $@ -g -c $< Modified: csw/mgar/gar/v2/go/src/catalog-release-to-disk/catalog-release-to-disk.go =================================================================== --- csw/mgar/gar/v2/go/src/catalog-release-to-disk/catalog-release-to-disk.go 2014-06-07 22:32:16 UTC (rev 23772) +++ csw/mgar/gar/v2/go/src/catalog-release-to-disk/catalog-release-to-disk.go 2014-06-08 10:32:17 UTC (rev 23773) @@ -23,11 +23,6 @@ flag.StringVar(&catalog_root_flag, "catalog-root", "/export/mirror/opencsw", "Directory where all the catalogs live, and allpkgs is") - flag.StringVar(&diskformat.PkgdbUrl, "pkgdb-url", - "http://buildfarm.opencsw.org/pkgdb/rest", - "Web address of the pkgdb app.") - flag.BoolVar(&diskformat.DryRun, "dry-run", false, - "Dry run mode, no changes on disk are made") } func main() { Modified: csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go =================================================================== --- csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go 2014-06-07 22:32:16 UTC (rev 23772) +++ csw/mgar/gar/v2/go/src/opencsw/diskformat/diskformat.go 2014-06-08 10:32:17 UTC (rev 23773) @@ -1,11 +1,12 @@ -// Package diskformat contains code and utilities to work with OpenCSW catalogs -// in the disk format, as they are provided on the master mirror at -// http://mirror.opencsw.org/ +// Package diskformat works with OpenCSW catalogs in the disk format, as they +// are provided on the master mirror at http://mirror.opencsw.org/ + package diskformat import ( "bufio" "encoding/json" + "flag" "fmt" "log" "net/http" @@ -20,15 +21,29 @@ "time" ) - -// Do not perform any operations on disk. Read data and process them, but do not -// write anything. Variable meant to be controlled by a command line flag. +// When Dry Run is set, do not perform any operations on disk. Read data and +// process them, but do not write anything. Variable meant to be controlled by +// a command line flag. var DryRun bool // Keeping PkgdbUrl as a package global variable is probably not the best idea, // but let's not refactor without a good plan. +var PkgdbWebUrl string var PkgdbUrl string var ReleasesUrl string +func init() { + flag.StringVar(&PkgdbUrl, "pkgdb-url", + "http://buildfarm.opencsw.org/pkgdb/rest", + "Web address of the pkgdb app.") + flag.BoolVar(&DryRun, "dry-run", false, + "Dry run mode, no changes on disk are made") + flag.StringVar(&PkgdbWebUrl, "pkgdb-web-url", + "http://buildfarm.opencsw.org/pkgdb", + "Web address of the pkgdb app.") + flag.StringVar(&ReleasesUrl, "releases-url", + "http://buildfarm.opencsw.org/releases", + "Web address of the releases app.") +} // 3 strings that define a specific catalog, e.g. "unstable sparc 5.10" type CatalogSpec struct { Catrel string @@ -36,6 +51,11 @@ Osrel string } +func (cs CatalogSpec) Url() string { + return fmt.Sprintf("%s/catalogs/%s-%s-%s/", + PkgdbWebUrl, cs.Catrel, cs.Arch, cs.Osrel) +} + func longOsrelAsInt(long_osrel string) int64 { short_osrel := shortenOsrel(long_osrel) fields := strings.Split(short_osrel, ".") @@ -128,6 +148,14 @@ return strings.Join(lst, " ") } +func (p Package) Url() string { + return fmt.Sprintf("%s/srv4/%s/", PkgdbWebUrl, p.Md5_sum) +} + +func (p Package) String() string { + return fmt.Sprintf("%s", p.Filename) +} + type CatalogWithSpec struct { Spec CatalogSpec Pkgs []Package @@ -151,7 +179,15 @@ Version string `json:"version"` } -// I'm not sure if this is a good idea +func (p PackageExtra) Url() string { + return fmt.Sprintf("%s/srv4/%s/", PkgdbWebUrl, p.Md5_sum) +} + +func (p PackageExtra) String() string { + return fmt.Sprintf("%s", p.Basename) +} + +// I'm not sure if this is a good idea. type CatalogExtra struct { Spec CatalogSpec PkgsExtra []PackageExtra @@ -301,6 +337,7 @@ return cws, nil } +// Allows to isolate specs for a given catalog release, e.g. unstable. func FilterCatspecs(all_catspecs []CatalogSpec, catrel string) []CatalogSpec { catspecs := make([]CatalogSpec, 0) for _, catspec := range all_catspecs { Modified: csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go =================================================================== --- csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go 2014-06-07 22:32:16 UTC (rev 23772) +++ csw/mgar/gar/v2/go/src/opencsw/mantis/mantis.go 2014-06-08 10:32:17 UTC (rev 23773) @@ -3,30 +3,34 @@ package mantis import ( - "net/http" "encoding/json" + "fmt" "log" - + "net/http" ) // Matches the data structure in http://www.opencsw.org/buglist/json // Maybe this should go into a separate package, like opencsw/mantis. type Bug struct { - bug_assigned_to string `json:"bug_assigned_to"` - bug_assigned_to_fullname string `json:"bug_assigned_to_fullname"` - bug_id string `json:"bug_id"` - bug_last_updated string `json:"bug_last_updated"` - bug_pkg_catalogname string `json:"bug_pkg_catalogname"` - bug_severity string `json:"bug_severity"` - bug_severity_name string `json:"bug_severity_name"` - bug_status string `json:"bug_status"` - bug_status_name string `json:"bug_status_name"` - bug_summary string `json:"bug_summary"` - maintainer_fullname string `json:"maintainer_fullname"` - maintainer_name string `json:"maintainer_name"` - maintainer_status string `json:"maintainer_status"` + AssignedTo string `json:"bug_assigned_to"` + AssignedToFullname string `json:"bug_assigned_to_fullname"` + Id string `json:"bug_id"` + LastUpdated string `json:"bug_last_updated"` + Catalogname string `json:"bug_pkg_catalogname"` + SeverityId string `json:"bug_severity"` + Severity string `json:"bug_severity_name"` + StatusId string `json:"bug_status"` + Status string `json:"bug_status_name"` + Summary string `json:"bug_summary"` + MaintainerFullname string `json:"maintainer_fullname"` + Maintainer string `json:"maintainer_name"` + MaintainerStatus string `json:"maintainer_status"` } +func (b Bug) Url() string { + return fmt.Sprintf("https://www.opencsw.org/mantis/view.php?id=%s", b.Id) +} + // Fetches all bugs from Mantis. func FetchBugs() ([]Bug, error) { url := "http://www.opencsw.org/buglist/json" Modified: csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go =================================================================== --- csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go 2014-06-07 22:32:16 UTC (rev 23772) +++ csw/mgar/gar/v2/go/src/promote-packages/promote-packages.go 2014-06-08 10:32:17 UTC (rev 23773) @@ -1,15 +1,44 @@ // Command promote-packages analyzes the state of the catalogs, and promotes // packages from one catalog (unstable) to another one, based on a set of // rules. +// +// Packages are put in groups. Groups are defined as: +// - we start with a single package +// - we add the following related packages: +// - all packages from the same bundle +// - all reverse dependencies that aren't present in the target catalog +// - all reverse dependencies (maybe not necessary) +// +// Groups of packages to be promoted are built for each pair of catalogs. +// +// We want to keep catalogs in sync. Groups from each catalog pair are matched. +// When the same group is identified across all catalog pairs, the group is +// scheduled to be promoted in all catalogs. +// +// Features missing: +// - adding dependencies to a group +// - tracking the times when a package appeared or disappeared in a catalog +// (for time accounting) +// - making changes to the testing catalog +// +// This program has to be compiled with gcc-4.8.2, because gcc-4.9.0 produces +// a binary which segfaults (or the go runtime segfauls, hard to tell). +// The bug is filed in the gcc bugzilla: +// https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61303 package main import ( - // "bufio" + "flag" "fmt" - "flag" + "html/template" "log" - // "os" + "os" + "sync" + "time" + "bufio" + "encoding/json" + "opencsw/diskformat" "opencsw/mantis" ) @@ -23,14 +52,6 @@ "Actually, only unstable makes sense here.") flag.StringVar(&to_catrel_flag, "to-catrel", "bratislava", "The testing release.") - flag.BoolVar(&diskformat.DryRun, "dry-run", true, - "Don't make any changes.") - flag.StringVar(&diskformat.PkgdbUrl, "pkgdb-url", - "http://buildfarm.opencsw.org/pkgdb/rest", - "Web address of the pkgdb app.") - flag.StringVar(&diskformat.ReleasesUrl, "releases-url", - "http://buildfarm.opencsw.org/releases", - "Web address of the releases app.") } type CatalogSpecTransition struct { @@ -38,15 +59,157 @@ toCatspec diskformat.CatalogSpec } +// CONTINUE FROM HERE: The challenge is to plug in the time information. We +// need to combine the data from REST with previously serialized data. type CatalogWithSpecTransition struct { fromCat diskformat.CatalogExtra toCat diskformat.CatalogExtra } +// An operation that can be made on a catalog. It is a logical operation. If +// only "removed" is present it means we're removing a package. An upgrade is +// represented as a removal and an addition. +type catalogOperation struct { + Spec diskformat.CatalogSpec + Removed *diskformat.PackageExtra + Added *diskformat.PackageExtra +} + +// Type used to store information about the last time package was seen. +type PackageTimeInfo struct { + Md5sum string `json:"md5_sum"` + Pkgname string `json:"pkgname"` + Present bool `json:"present"` + ChangedAt time.Time `json:"changed_at"` +} + +type CatalogReleaseTimeInfo struct { + Catalogs map[diskformat.CatalogSpec]map[string]PackageTimeInfo `json:"catalogs"` +} + +func (c *CatalogReleaseTimeInfo) Load() error { + const filename = "/home/maciej/.checkpkg/package-times.json" + fo, err := os.Open(filename) + if err != nil { + return err + } + defer fo.Close() + r := bufio.NewReader(fo) + dec := json.NewDecoder(r) + if err = dec.Decode(c); err != nil { + return err + } + return nil +} + +func NewCatalogReleaseTimeInfo() *CatalogReleaseTimeInfo { + c := new(CatalogReleaseTimeInfo) + c.Catalogs = make(map[diskformat.CatalogSpec]map[string]PackageTimeInfo) + return c +} + +// func (c CatalogTimeInfo) Save() error { +// } + +func (c catalogOperation) String() string { + if c.Removed != nil && c.Added != nil { + return fmt.Sprintf("Upgrade: %v %v -> %v in %v", + c.Removed.Catalogname, c.Removed.Version, + c.Added.Version, c.Spec) + } else if c.Removed != nil && c.Added == nil { + return fmt.Sprintf("Removal: %v %v in %v", + c.Removed.Catalogname, c.Removed.Version, + c.Spec) + } + if c.Removed == nil && c.Added != nil { + return fmt.Sprintf("Addition: %v %v in %v", + c.Added.Catalogname, c.Added.Version, + c.Spec) + } + return fmt.Sprintf("What?") +} + +// Returns the identifier of the group to which this operation should belong. +// Ideally, it's the bundle name. +func (c catalogOperation) GroupKey() (string, error) { + if c.Removed != nil && c.Added != nil { + if c.Removed.Bundle == "" && c.Added.Bundle == "" { + return "", fmt.Errorf("Either source or target package's bundle is empty, or both: %v -> %v.", c.Removed, c.Added) + } + if c.Removed.Bundle == "" { + // The removed package doesn't have a bundle but the added package has. + // Let's say that the bundle is defined here. + return c.Added.Bundle, nil + } + // When both package define a bundle, they might not agree. + if c.Removed.Bundle == c.Added.Bundle { + return c.Removed.Bundle, nil + } + return "", fmt.Errorf("It's an upgrade, but bundles don't agree, %v vs %v in %v", + c.Removed.Bundle, c.Added.Bundle, c) + } else if c.Removed != nil { + // Package removal + if c.Removed.Bundle == "" { + return "", fmt.Errorf("Removal, but bundle undefined: %v", c.Removed) + } + return c.Removed.Bundle, nil + } else if c.Added != nil { + // Package addition + if c.Added.Bundle == "" { + return "", fmt.Errorf("Addition, but bundle undefined: %v", c.Removed) + } + return c.Added.Bundle, nil + } + return "", fmt.Errorf("This should never happen: %v", c) +} + +func (c catalogOperation) Catalogname() string { + if c.Removed != nil { + return c.Removed.Catalogname + } + if c.Added != nil { + return c.Added.Catalogname + } + return "catalogname unknown" +} + +type integrationGroup struct { + Key string + Spec diskformat.CatalogSpec + Ops []catalogOperation +} + type IntegrationResult struct { noidea string } +type catalogIntegration struct { + Spec diskformat.CatalogSpec + Groups map[string]*integrationGroup + Badops []catalogOperation +} + +// Cross-catalog integration group. Contains the group name, and all the +// integration groups. Maybe this isn't the best way to represent this. +type CrossCatIntGroup struct { + Key string + Ops map[diskformat.CatalogSpec][]catalogOperation + Bugs []mantis.Bug +} + +func NewCrossCatIntGroup(key string) (*CrossCatIntGroup) { + g := new(CrossCatIntGroup) + g.Key = key + g.Ops = make(map[diskformat.CatalogSpec][]catalogOperation) + g.Bugs = make([]mantis.Bug, 0) + return g +} + +type reportData struct { + Catalogs []catalogIntegration + CrossCatGroups []*CrossCatIntGroup +} + func groupByOsrelAndArch(cs []diskformat.CatalogSpec) map[diskformat.CatalogSpec]diskformat.CatalogSpec { fromIndexed := make(map[diskformat.CatalogSpec]diskformat.CatalogSpec) for _, f := range cs { @@ -92,25 +255,114 @@ return <-chf, <-cht } -func Integrate(transition CatalogSpecTransition) { - // We have the catalogs, now we need to generate commands to integrate the - // catalogs. One of the questions is how do we map replacements from one - // catalog into the other; and how do we group these catalogs. - fromCat, toCat := fetchTwo(transition) - log.Println("Integration from", fromCat.Spec, "to", toCat.Spec) - // Integrations are done by bundle; a group of packages. (or maybe not?) - // Considering deletions as well as additions of packages. - // Package addition and removal times are not taken from the catalog, but - // from the times when we saw packages appear and/or disappear. - // How to test these rules? What should be the output of this function? - log.Println("Example package:", fromCat.PkgsExtra[0]) - log.Println("Example package:", toCat.PkgsExtra[0]) +func byPkgname(c diskformat.CatalogExtra) map[string]*diskformat.PackageExtra { + m := make(map[string]*diskformat.PackageExtra) + // It's the typical gotcha. When we do "for _, pkg := range c.PkgsExtra", we + // must not take the address of pkg, because it's an address to a local + // variable. + for i, _ := range c.PkgsExtra { + pkg := &c.PkgsExtra[i] + if _, ok := m[pkg.Pkgname]; ok { + log.Fatalln("Pkgnames must be unique in a catalog.", + pkg.Pkgname, "occurs more than once in", c.Spec) + } + m[pkg.Pkgname] = pkg + } + return m +} - // Mantis: - // http://www.opencsw.org/buglist/json +func intGroupSane(c diskformat.CatalogExtra, i *integrationGroup) error { + // We probably want to use the existing functionality. + // Make a copy of the catalog, because we need to manipulate it. + + pkgnames := byPkgname(c) + + for _, op := range i.Ops { + if op.Removed != nil { + delete(pkgnames, op.Removed.Pkgname) + } + if op.Added != nil { + pkgnames[op.Added.Pkgname] = op.Added + } + } + + // We have sanity checks for the other catalog format. Let's transform. + pkgs := make([]diskformat.Package, 0) + cws := diskformat.CatalogWithSpec{c.Spec, pkgs} + if !cws.IsSane() { + return fmt.Errorf("Integration group %v has problems.", i.Key) + } + return nil } +func GroupsFromCatalogPair(t CatalogWithSpecTransition) (map[string]*integrationGroup, []catalogOperation) { + // No Mantis integration yet. + log.Println("GroupsFromCatalogPair from", t.fromCat.Spec, + "to", t.toCat.Spec) + // First we need to match a set of operations to perform. Then we group these + // operations. + fromByPkgname := byPkgname(t.fromCat) + toByPkgname := byPkgname(t.toCat) + + oplist := make([]catalogOperation, 0) + + // Packages that are missing or different in the target catalog. + for pkgname, pkgSrcCat := range fromByPkgname { + if pkgDestCat, ok := toByPkgname[pkgname]; ok { + if pkgSrcCat.Version == pkgDestCat.Version { + // Package versions are the same. Nothing to do here. + continue + } + // There is a package with the same pkgname in the target catalog. + op := catalogOperation{t.fromCat.Spec, pkgDestCat, pkgSrcCat} + oplist = append(oplist, op) + } else { + // There is no package with the same pkgname in the target catalog. + op := catalogOperation{t.fromCat.Spec, nil, pkgSrcCat} + oplist = append(oplist, op) + } + } + + // Packages that are only in the target catalog. + for pkgname, topkg := range toByPkgname { + if _, ok := fromByPkgname[pkgname]; !ok { + op := catalogOperation{t.fromCat.Spec, topkg, nil} + oplist = append(oplist, op) + } + } + log.Println("Found", len(oplist), "oplist") + + // We have the operations. Let's form groups. + groups := make(map[string]*integrationGroup) + badops := make([]catalogOperation, 0) + for _, op := range oplist { + key, err := op.GroupKey() + if err != nil { + log.Println("Couldn't get the group key:", op, err) + badops = append(badops, op) + continue + } + log.Println("catalogOperation:", op, "key:", key) + if intgroup, ok := groups[key]; !ok { + oplist := make([]catalogOperation, 0) + intgroup = &integrationGroup{key, op.Spec, oplist} + groups[key] = intgroup + } + groups[key].Ops = append(groups[key].Ops, op) + } + + // We need to make sure that all the dependencies are present in the target + // catalog. We need to mock-apply the group change, and then verify that + // there aren't any missing dependencies there. + for key, group := range groups { + if err := intGroupSane(t.toCat, group); err != nil { + log.Println("Group", key, "it not sane:", err) + } + } + return groups, badops +} + func transitions() []CatalogSpecTransition { all_catspecs, err := diskformat.GetCatalogSpecsFromDatabase() if err != nil { @@ -150,46 +402,185 @@ return out } +func writeReport(rd reportData) { + t := template.Must(template.ParseFiles( + "src/promote-packages/report-template.html")) + fo, err := os.Create("/home/maciej/public_html/promote-packages.html") + if err != nil { + panic(err) + } + defer fo.Close() + log.Println("Writing HTML") + if err := t.Execute(fo, rd); err != nil { + log.Fatal("Could not write the report:", err) + } +} + // Continue from here: write the 3rd stage which just prints the results. -func pipeStage3(in <-chan CatalogWithSpecTransition) <-chan IntegrationResult { +func pipeStage3(in <-chan CatalogWithSpecTransition, mantisBugs <-chan mantis.Bug) <-chan IntegrationResult { out := make(chan IntegrationResult) go func() { + // Catalog timing information + timing := NewCatalogReleaseTimeInfo() + if err := timing.Load(); err != nil { + log.Fatalln("Could not read the timing information:", err, + "If this is the first run, create an empty file with", + "the '{}' contents.") + } + + rd := reportData{make([]catalogIntegration, 0), + make([]*CrossCatIntGroup, 0)} for t := range in { - msg := fmt.Sprintf("Processing our fetched data: %+v -> %+v", + groups, badops := GroupsFromCatalogPair(t) + rd.Catalogs = append( + rd.Catalogs, + catalogIntegration{t.fromCat.Spec, groups, badops}) + msg := fmt.Sprintf("Processed data for: %+v ? %+v", t.fromCat.Spec, t.toCat.Spec) out <-IntegrationResult{msg} } + + groups := make(map[string]*CrossCatIntGroup) + // We're walking the reportData structure and populating the + // CrossCatIntGroup structures. This is about combining updates across all + // catalogs into one group that will be examined as a whole. + + for _, r := range rd.Catalogs { + for key, srcIntGroup := range r.Groups { + var group *CrossCatIntGroup + group, ok := groups[key] + if !ok { + group = NewCrossCatIntGroup(key) + groups[key] = group + } + // We have our CrossCatIntGroup here + if _, ok := group.Ops[srcIntGroup.Spec]; !ok { + group.Ops[srcIntGroup.Spec] = make([]catalogOperation, 0) + } + group.Ops[srcIntGroup.Spec] = append(group.Ops[srcIntGroup.Spec], + srcIntGroup.Ops...) + } + } + + lowSeverities := [...]string{ + "Trivial", + "Minor", + "Feature", + } + + // Add Mantis Bugs, only add blocking bugs. + bugsByCatname := make(map[string][]mantis.Bug) + for bug := range mantisBugs { + // Bugs that aren't blockers. + if bug.Status == "Closed" || bug.Status == "Resolved" { + continue + } + shouldSkip := false + for _, sev := range lowSeverities { + if bug.Severity == sev { + shouldSkip = true + break + } + } + if shouldSkip { + continue + } + c := bug.Catalogname + if _, ok := bugsByCatname[c]; !ok { + bugsByCatname[c] = make([]mantis.Bug, 0) + } + bugsByCatname[c] = append(bugsByCatname[c], bug) + } + + for _, g := range groups { + catNames := make(map[string]bool) + for _, ops := range g.Ops { + for _, op := range ops { + catNames[op.Catalogname()] = true + } + } + for catName, _ := range catNames { + g.Bugs = append(g.Bugs, bugsByCatname[catName]...) + } + } + + for _, g := range groups { + rd.CrossCatGroups = append(rd.CrossCatGroups, g) + } + + // Let's write the HTML report. + var wg sync.WaitGroup + wg.Add(1) + go func(rd reportData) { + log.Println("Starting a goroutine to write the report.") + defer wg.Done() + writeReport(rd) + }(rd) + wg.Wait() + + // We close the channel as the last thing, because we need to make sure + // that the main goroutine doesn't exit before we finish writing the report. close(out) }() return out } -func mantisChan() <-chan []mantis.Bug { - mch := make(chan []mantis.Bug) - go func(ch chan []mantis.Bug) { +func mantisChan() <-chan mantis.Bug { + mch := make(chan mantis.Bug) + go func(ch chan mantis.Bug) { log.Println("Fetching bugs from mantis") bugs, err := mantis.FetchBugs() if err != nil { log.Fatalln("Fetching bugs failed.") } log.Println("Fetched", len(bugs), "bugs from Mantis") - ch <-bugs + for _, bug := range bugs { + ch <-bug + } close(ch) }(mch) return mch } +// From http://blog.golang.org/pipelines +func merge(cs ...<-chan CatalogWithSpecTransition) <-chan CatalogWithSpecTransition { + var wg sync.WaitGroup + out := make(chan CatalogWithSpecTransition) + + // Start an output goroutine for each input channel in cs. output + // copies values from c to out until c is closed, then calls wg.Done. + output := func(c <-chan CatalogWithSpecTransition) { + for n := range c { + out <- n + } + wg.Done() + } + wg.Add(len(cs)) + for _, c := range cs { + go output(c) + } + + // Start a goroutine to close out once all the output goroutines are + // done. This must start after the wg.Add call. + go func() { + wg.Wait() + close(out) + }() + return out +} + func main() { flag.Parse() log.Println("Program start") mch := mantisChan() tch := pipeStage1() - cch := pipeStage2(tch) - rch := pipeStage3(cch) - + cch1 := pipeStage2(tch) + cch2 := pipeStage2(tch) + cch3 := pipeStage2(tch) + cch4 := pipeStage2(tch) + rch := pipeStage3(merge(cch1, cch2, cch3, cch4), mch) for r := range rch { log.Println("Result:", r) } - <-mch } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Sun Jun 8 14:00:05 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Sun, 8 Jun 2014 12:00:05 +0000 Subject: SF.net SVN: gar:[23774] csw/mgar/pkg/openssl1/trunk Message-ID: <3gmbkm35Hlz3Y@mail.opencsw.org> Revision: 23774 http://sourceforge.net/p/gar/code/23774 Author: chninkel Date: 2014-06-08 12:00:02 +0000 (Sun, 08 Jun 2014) Log Message: ----------- openssl1/trunk: fix a compilation issue with the heartbeat_test file Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile csw/mgar/pkg/openssl1/trunk/files/changelog.CSW Added Paths: ----------- csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-08 10:32:17 UTC (rev 23773) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-08 12:00:02 UTC (rev 23774) @@ -162,7 +162,16 @@ PATCHFILES += $(PATCHFILES.$(GARCH).$(GAROSREL)) +# Currently the heartbeat_test test file doesn't compile because it is linked +# dynamically and try to use an internal symbol of libssl. +# See bug report http://rt.openssl.org/Ticket/Display.html?id=3378 +# This patch solves the problem by linking to the static libraries instead of +# dynamic ones (it doesn't matter for a test). +# It has been sent upstream by the Debian Maintainer of the openssl package +# see: https://github.com/openssl/openssl/pull/125 +PATCHFILES += 0011-link-heartbeat_test-with-static-libraries.patch + LICENSE = LICENSE ##### Build and installation information ##### Added: csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch (rev 0) +++ csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch 2014-06-08 12:00:02 UTC (rev 23774) @@ -0,0 +1,41 @@ +From 2e251ba8feaa696f9408a19336d1fbab148df55e Mon Sep 17 00:00:00 2001 +From: Kurt Roeckx +Date: Sat, 7 Jun 2014 13:32:23 +0200 +Subject: [PATCH] Link heartbeat_test with the static version of the libraries + +It's using an internal API that that might not be available in the shared +library. +--- + test/Makefile | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/test/Makefile b/test/Makefile +index f1816ac..1dd7bb9 100644 +--- a/test/Makefile ++++ b/test/Makefile +@@ -420,6 +420,13 @@ BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ + LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ + link_app.$${shlib_target} + ++BUILD_CMD_STATIC=shlib_target=; \ ++ LIBRARIES="$(DLIBSSL) $(DLIBCRYPTO) $(LIBKRB5)"; \ ++ $(MAKE) -f $(TOP)/Makefile.shared -e \ ++ APPNAME=$$target$(EXE_EXT) OBJECTS="$$target.o" \ ++ LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ ++ link_app.$${shlib_target} ++ + $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) + @target=$(RSATEST); $(BUILD_CMD) + +@@ -618,7 +625,7 @@ $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO) + @target=$(V3NAMETEST); $(BUILD_CMD) + + $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) +- @target=$(HEARTBEATTEST); $(BUILD_CMD) ++ @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) + + #$(AESTEST).o: $(AESTEST).c + # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c +-- +1.9.3 + Modified: csw/mgar/pkg/openssl1/trunk/files/changelog.CSW =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/changelog.CSW 2014-06-08 10:32:17 UTC (rev 23773) +++ csw/mgar/pkg/openssl1/trunk/files/changelog.CSW 2014-06-08 12:00:02 UTC (rev 23774) @@ -1,5 +1,12 @@ -openssl (1.0.1h,rev=2014.05.06) unstable +openssl (1.0.1h,rev=2014.06.08) unstable + * Add the 0011-link-heartbeat_test-with-static-libraries patch to solve a + compilation failure for the heartbeat_test file. + + -- yann rouillard Sun, 08 Jun 2014 13:57:57 +0200 + +openssl (1.0.1h,rev=2014.06.06) unstable + * New upstream release. -- yann rouillard Thu, 05 Jun 2014 15:09:12 +0200 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Sun Jun 8 14:45:33 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Sun, 8 Jun 2014 12:45:33 +0000 Subject: SF.net SVN: gar:[23775] csw/mgar/pkg/openssl1/trunk/files/ 0011-link-heartbeat_test-with-static-libraries.patch Message-ID: <3gmcl80W7yz7T@mail.opencsw.org> Revision: 23775 http://sourceforge.net/p/gar/code/23775 Author: chninkel Date: 2014-06-08 12:45:33 +0000 (Sun, 08 Jun 2014) Log Message: ----------- openssl1/trunk: update heartbeat_test static linking patch so that it can be applied on the Opencsw build Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch Modified: csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch =================================================================== --- csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch 2014-06-08 12:00:02 UTC (rev 23774) +++ csw/mgar/pkg/openssl1/trunk/files/0011-link-heartbeat_test-with-static-libraries.patch 2014-06-08 12:45:33 UTC (rev 23775) @@ -10,10 +10,10 @@ 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/test/Makefile b/test/Makefile -index f1816ac..1dd7bb9 100644 +index 005f2e8..d68e8b0 100644 --- a/test/Makefile +++ b/test/Makefile -@@ -420,6 +420,13 @@ BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ +@@ -358,6 +358,13 @@ BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ link_app.$${shlib_target} @@ -24,12 +24,12 @@ + LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \ + link_app.$${shlib_target} + - $(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO) - @target=$(RSATEST); $(BUILD_CMD) + FIPS_BUILD_CMD=shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \ + shlib_target="$(SHLIB_TARGET)"; \ + fi; \ +@@ -476,7 +483,7 @@ $(SRPTEST)$(EXE_EXT): $(SRPTEST).o $(DLIBCRYPTO) + @target=$(SRPTEST); $(BUILD_CMD) -@@ -618,7 +625,7 @@ $(V3NAMETEST)$(EXE_EXT): $(V3NAMETEST).o $(DLIBCRYPTO) - @target=$(V3NAMETEST); $(BUILD_CMD) - $(HEARTBEATTEST)$(EXE_EXT): $(HEARTBEATTEST).o $(DLIBCRYPTO) - @target=$(HEARTBEATTEST); $(BUILD_CMD) + @target=$(HEARTBEATTEST); $(BUILD_CMD_STATIC) @@ -38,4 +38,3 @@ # $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c -- 1.9.3 - This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From dmichelsen at users.sourceforge.net Sun Jun 8 23:17:59 2014 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Sun, 8 Jun 2014 21:17:59 +0000 Subject: SF.net SVN: gar:[23776] csw/mgar/pkg/diffstat/trunk Message-ID: <3gmr6Q5KfzzSm@mail.opencsw.org> Revision: 23776 http://sourceforge.net/p/gar/code/23776 Author: dmichelsen Date: 2014-06-08 21:17:57 +0000 (Sun, 08 Jun 2014) Log Message: ----------- diffstat/trunk: Update to 1.59 Modified Paths: -------------- csw/mgar/pkg/diffstat/trunk/Makefile csw/mgar/pkg/diffstat/trunk/checksums Modified: csw/mgar/pkg/diffstat/trunk/Makefile =================================================================== --- csw/mgar/pkg/diffstat/trunk/Makefile 2014-06-08 12:45:33 UTC (rev 23775) +++ csw/mgar/pkg/diffstat/trunk/Makefile 2014-06-08 21:17:57 UTC (rev 23776) @@ -1,5 +1,5 @@ NAME = diffstat -VERSION = 1.58 +VERSION = 1.59 GARTYPE = v2 DESCRIPTION = A utility which provides statistics based on the output of diff Modified: csw/mgar/pkg/diffstat/trunk/checksums =================================================================== --- csw/mgar/pkg/diffstat/trunk/checksums 2014-06-08 12:45:33 UTC (rev 23775) +++ csw/mgar/pkg/diffstat/trunk/checksums 2014-06-08 21:17:57 UTC (rev 23776) @@ -1 +1 @@ -6d6e13f7dcfe4db5da65c5175260ea47 diffstat-1.58.tgz +1dc7bc48ce846a0686a1af0d091ff8fb diffstat-1.59.tgz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From guengel at users.sourceforge.net Tue Jun 10 09:35:22 2014 From: guengel at users.sourceforge.net (guengel at users.sourceforge.net) Date: Tue, 10 Jun 2014 07:35:22 +0000 Subject: SF.net SVN: gar:[23777] csw/mgar/gar/v2/bin/cswch Message-ID: <3gnjmX05xPz3T@mail.opencsw.org> Revision: 23777 http://sourceforge.net/p/gar/code/23777 Author: guengel Date: 2014-06-10 07:35:18 +0000 (Tue, 10 Jun 2014) Log Message: ----------- v2/bin/cswch: Beefed up documentation a little. Support for ~/.cswch.rc (fullname, email). Added --usage cmd line arg. Modified Paths: -------------- csw/mgar/gar/v2/bin/cswch Modified: csw/mgar/gar/v2/bin/cswch =================================================================== --- csw/mgar/gar/v2/bin/cswch 2014-06-08 21:17:57 UTC (rev 23776) +++ csw/mgar/gar/v2/bin/cswch 2014-06-10 07:35:18 UTC (rev 23777) @@ -1,8 +1,11 @@ #!/usr/bin/env python """Maintain OpenCSW changelog. -The changelog files generated are modeled after the Debian changelog +cswch can maintain two styles of changelog files, namely Debian style +changelog files and Dam style changelog files. +Debian style changelog files are modeled after the Debian changelog + http://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog except that the header line for each entry is somewhat @@ -14,13 +17,45 @@ package (version,REV=revision) + +Dam style changelog files are similar to Debian style changelog files, +except for the header line, which looks like + + package (timestamp) + + +Creating a new changelog file is done by + + cswch create [--dam-style|--deb-style --version ] \ + --log-item .. [--log-paragraph .. ] + +This will create a changelog.CSW file in the files/ directory and add +it to SVN working copy. + + +After creating the changelog file, adding a new changelog entry is a +matter of + + cswch new [--version ] --log-item .. \ + [--log-paragraph .. ] + +where `--version' is only required for Debian style changelogs. + +See + + cswch --help + +for more information. + $Id$ """ +import ConfigParser import argparse import datetime import dateutil.tz import email.utils +import errno import logging import os import pwd @@ -29,7 +64,6 @@ import sys import time import unittest -import errno ### T E S T S ### @@ -288,15 +322,59 @@ return str(self) +class Maintainer(object): + """ + """ + def __init__(self): + self.fullname, self.email = Maintainer._get_maintainer_fallback() + try: + cfg_defaults = { 'fullname': self.fullname, + 'email': self.email } + cfgfile = ConfigParser.ConfigParser(defaults=cfg_defaults) + cfgfile.read(os.path.expanduser('~/.cswch.rc')) + + self.fullname = cfgfile.get('general', 'fullname') + self.email = cfgfile.get('general', 'email') + except ConfigParser.Error: + pass + + + def __str__(self): + return self.fullname + '<' + self.email + '>' + + @classmethod + def _get_maintainer_fallback(cls): + """Derive maintainer name and email. + + Return maintainer and email as tuple. + + """ + return (pwd.getpwnam(Maintainer._logname())[4], + "%s at opencsw.org" % Maintainer._logname()) + + @classmethod + def _logname(cls): + if 'LOGNAME' in os.environ: + return os.environ['LOGNAME'] + else: + return os.getlogin() + + class ChangeLogHeader(object): """Constitutes a changelog header. It has the form - package (version,REV=rev) + package (version,REV=rev) - and marks the start of a changelog entry. + for Debian style ChangeLog files, or + package (timestamp) + + for Dam style ChangeLog files. + + In any case, it marks the start of a changelog entry. + """ def __init__(self, **kwargs): """Initialize ChangeLogHeader @@ -336,7 +414,6 @@ self.timestamp = ChangeLogHeader.get_rfc3339timestamp() self.style = ChangeLogHeader.STYLE_DAM - def __str__(self): """Get the ChangeLog header as string""" @@ -351,7 +428,8 @@ """Parse ChangeLog header Dissect a ChangeLog header into package, version, and - revision. + revision, or package, and timestamp, depending on the style of + the ChangeLog. It will try to parse Debian style and Dam style header lines and set self.style according to the style. @@ -412,7 +490,7 @@ if date_obj is None: timezone = dateutil.tz.tzlocal() date_obj = datetime.datetime.now(timezone) - + return date_obj.strftime('%Y-%m-%dT%H:%M:%S%z') format_str_deb = r'%(package)s (%(version)s,REV=%(rev)s)' @@ -436,9 +514,9 @@ """ def __init__(self, **kwargs): if len(kwargs) == 0: - maintainer = ChangeLogFooter.get_maintainer() - self.maintainer = maintainer[0] - self.email = maintainer[1] + maintainer = Maintainer() + self.maintainer = maintainer.fullname + self.email = maintainer.email self.timestamp = ChangeLogFooter.get_rfc2822timestamp() return @@ -502,22 +580,6 @@ return email.utils.formatdate(time.mktime(date_obj.timetuple()), True) - @classmethod - def get_maintainer(cls): - """Get maintainer name and email. - - Return maintainer and email as tuple. - - """ - if 'LOGNAME' in os.environ: - fullname = pwd.getpwnam(os.environ['LOGNAME'])[4] - m_email = "%s at opencsw.org" % os.environ['LOGNAME'] - else: - fullname = pwd.getpwnam(os.getlogin())[4] - m_email = "%s at opencsw.org" % os.getlogin() - - return (fullname, m_email) - format_str_deb = r' -- %(maintainer)s <%(email)s> %(timestamp)s' parse_re_deb = r' -- (?P[\w\d ]+) <(?P[\w\d@ \.]+)> (?P\w{3}, \d{1,2} \w{3} \d{4} \d{2}:\d{2}:\d{2} (\+|-)\d{4})' compiled_re_deb = re.compile(parse_re_deb) @@ -924,7 +986,7 @@ :param version: has to be None for Dam style log files. """ changelog_file = ChangeLogFile(filename) - + style = changelog_file.changelog_style() if style == ChangeLogHeader.STYLE_DAM and\ version is not None: @@ -963,7 +1025,7 @@ changelog_file.save() -def create_changelog_file(filename, style, overwrite, package, +def create_changelog_file(filename, style, overwrite, package, version, log, register_svn): # For Dam style changelogs, version is expected to be None header = ChangeLogHeader(package=package, version=version) @@ -1011,7 +1073,7 @@ def cond_complain_svn(filename, complain): """Conditionally complain about changelog file not registered in SVN - :param complain: if True and file is not in SVN, complain. Else do nothin. + :param complain: if True and file is not in SVN, complain. Else do nothing. """ changelogfile = ChangeLogFile(filename) if complain and not changelogfile.in_svn(): @@ -1028,8 +1090,8 @@ help='filename to use (default: %(default)s)', default='files/changelog.CSW') parser.add_argument('--no-svn', help="Do not add file to SVN repository or stop complaining about file not registerd with svn.", - default=False, action='store_const', - const=True) + default=False, action='store_const', + const=True) subparser = parser.add_subparsers(help='sub-command help', dest='command') @@ -1047,7 +1109,7 @@ parser_create.add_argument('package', help="package name") parser_create.add_argument('--version', - help="package version (only required for Debian style changelog)", + help="package version (only required for Debian style changelog)", required=False) parser_create.add_argument('--log-item', help="the log entry to be recorded as list item", @@ -1091,6 +1153,8 @@ default=False, action='store_const', const=True) + parser_useage = subparser.add_parser('usage', help="Show a brief usage description") + parser_test = subparser.add_parser('test', help="test cswch") arguments = parser.parse_args() @@ -1117,6 +1181,10 @@ del sys.argv[1:] unittest.main() + if arguments.command == "usage": + print(__doc__) + exit(0) + try: if arguments.command == "create": log = compile_log(arguments.log_item, arguments.log_paragraph) 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 10 10:19:54 2014 From: dmichelsen at users.sourceforge.net (dmichelsen at users.sourceforge.net) Date: Tue, 10 Jun 2014 08:19:54 +0000 Subject: SF.net SVN: gar:[23778] csw/mgar/pkg/nettle/trunk Message-ID: <3gnklh66GRz83@mail.opencsw.org> Revision: 23778 http://sourceforge.net/p/gar/code/23778 Author: dmichelsen Date: 2014-06-10 08:19:51 +0000 (Tue, 10 Jun 2014) Log Message: ----------- nettle/trunk: Update to 3.0 Modified Paths: -------------- csw/mgar/pkg/nettle/trunk/Makefile csw/mgar/pkg/nettle/trunk/checksums Modified: csw/mgar/pkg/nettle/trunk/Makefile =================================================================== --- csw/mgar/pkg/nettle/trunk/Makefile 2014-06-10 07:35:18 UTC (rev 23777) +++ csw/mgar/pkg/nettle/trunk/Makefile 2014-06-10 08:19:51 UTC (rev 23778) @@ -2,7 +2,7 @@ # TODO (release-critical prefixed with !, non release-critical with *) # NAME = nettle -VERSION = 2.7.1 +VERSION = 3.0 GARTYPE = v2 DESCRIPTION = A low-level cryptographic library @@ -18,29 +18,30 @@ VENDOR_URL = http://www.lysator.liu.se/~nisse/nettle/ -LICENSE = COPYING.LIB +LICENSE = COPYING.LESSERv3 -PACKAGES += CSWlibhogweed2 -PKGFILES_CSWlibhogweed2 += $(call pkgfiles_lib,libhogweed.so.2) -SPKG_DESC_CSWlibhogweed2 += A low-level cryptographic library, libhogweed.so.2 -RUNTIME_DEP_PKGS_CSWlibhogweed2 += CSWlibgmp10 -RUNTIME_DEP_PKGS_CSWlibhogweed2 += CSWlibnettle4 +PACKAGES += CSWlibhogweed3 +PKGFILES_CSWlibhogweed3 += $(call pkgfiles_lib,libhogweed.so.3) +SPKG_DESC_CSWlibhogweed3 += A low-level cryptographic library, libhogweed.so.3 +RUNTIME_DEP_PKGS_CSWlibhogweed3 += CSWlibgmp10 +RUNTIME_DEP_PKGS_CSWlibhogweed3 += CSWlibnettle5 -PACKAGES += CSWlibnettle4 -PKGFILES_CSWlibnettle4 += $(call pkgfiles_lib,libnettle.so.4) -SPKG_DESC_CSWlibnettle4 += A low-level cryptographic library, libnettle.so.4 +PACKAGES += CSWlibnettle5 +PKGFILES_CSWlibnettle5 += $(call pkgfiles_lib,libnettle.so.5) +SPKG_DESC_CSWlibnettle5 += A low-level cryptographic library, libnettle.so.5 PACKAGES += CSWlibnettle-dev PKGFILES_CSWlibnettle-dev = $(PKGFILES_DEVEL) -SPKG_DESC_CSWlibnettle-dev = Development files for libnettle.so.4 and libhogweed.so.2 -RUNTIME_DEP_PKGS_CSWlibnettle-dev += CSWlibhogweed2 -RUNTIME_DEP_PKGS_CSWlibnettle-dev += CSWlibnettle4 +SPKG_DESC_CSWlibnettle-dev = Development files for libnettle.so.5 and libhogweed.so.3 +RUNTIME_DEP_PKGS_CSWlibnettle-dev += CSWlibhogweed3 +RUNTIME_DEP_PKGS_CSWlibnettle-dev += CSWlibnettle5 PACKAGES += CSWlibnettle-utils SPKG_DESC_CSWlibnettle-utils = Utility programs for libnettle # PKGFILES is catchall -RUNTIME_DEP_PKGS_CSWlibnettle-utils += CSWlibhogweed2 -RUNTIME_DEP_PKGS_CSWlibnettle-utils += CSWlibnettle4 +RUNTIME_DEP_PKGS_CSWlibnettle-utils += CSWlibhogweed3 +RUNTIME_DEP_PKGS_CSWlibnettle-utils += CSWlibnettle5 +RUNTIME_DEP_PKGS_CSWlibnettle-utils += CSWlibgmp10 # This is just the default location CHECKPKG_OVERRIDES_CSWlibnettle-utils += file-with-bad-content|/usr/local|root/opt/csw/share/info/nettle.info Modified: csw/mgar/pkg/nettle/trunk/checksums =================================================================== --- csw/mgar/pkg/nettle/trunk/checksums 2014-06-10 07:35:18 UTC (rev 23777) +++ csw/mgar/pkg/nettle/trunk/checksums 2014-06-10 08:19:51 UTC (rev 23778) @@ -1 +1 @@ -003d5147911317931dd453520eb234a5 nettle-2.7.1.tar.gz +f64b1bf1e774b7ae6e507318e340250e nettle-3.0.tar.gz This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Tue Jun 10 11:00:25 2014 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Tue, 10 Jun 2014 09:00:25 +0000 Subject: SF.net SVN: gar:[23779] csw/mgar/pkg/bind/trunk/Makefile Message-ID: <3gnlfR04CJzDn@mail.opencsw.org> Revision: 23779 http://sourceforge.net/p/gar/code/23779 Author: bonivart Date: 2014-06-10 09:00:10 +0000 (Tue, 10 Jun 2014) Log Message: ----------- bind/trunk: enable RRL (response rate limiting) Modified Paths: -------------- csw/mgar/pkg/bind/trunk/Makefile Modified: csw/mgar/pkg/bind/trunk/Makefile =================================================================== --- csw/mgar/pkg/bind/trunk/Makefile 2014-06-10 08:19:51 UTC (rev 23778) +++ csw/mgar/pkg/bind/trunk/Makefile 2014-06-10 09:00:10 UTC (rev 23779) @@ -82,6 +82,7 @@ CONFIGURE_ARGS += --sysconfdir=/etc/opt/csw CONFIGURE_ARGS += --localstatedir=/var/opt/csw/named CONFIGURE_ARGS += --with-dlz-ldap=/opt/csw +CONFIGURE_ARGS += --enable-rrl EXTRA_MERGE_EXCLUDE_FILES = .*~ $(libdir)/.*\.a $(libdir)/.*\.la $(mandir)/man1/isc-config.sh.1 $(bindir)/isc-config.sh This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Tue Jun 10 14:03:01 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Tue, 10 Jun 2014 12:03:01 +0000 Subject: SF.net SVN: gar:[23780] csw/mgar/gar/v2/lib/map.solaris10 Message-ID: <3gnqj70bHYzVf@mail.opencsw.org> Revision: 23780 http://sourceforge.net/p/gar/code/23780 Author: chninkel Date: 2014-06-10 12:03:00 +0000 (Tue, 10 Jun 2014) Log Message: ----------- upgrade minimal libc version interface to 1.22.5 Modified Paths: -------------- csw/mgar/gar/v2/lib/map.solaris10 Modified: csw/mgar/gar/v2/lib/map.solaris10 =================================================================== --- csw/mgar/gar/v2/lib/map.solaris10 2014-06-10 09:00:10 UTC (rev 23779) +++ csw/mgar/gar/v2/lib/map.solaris10 2014-06-10 12:03:00 UTC (rev 23780) @@ -1,6 +1,6 @@ # Solaris 10 mapfile with libc Version 1.22.2 which is Update?? Kernel Version # https://github.com/illumos/illumos-gate/blob/master/usr/src/lib/libc/port/mapfile-vers#L339 -libc.so - SUNW_1.22.2 SUNWprivate_1.1 $ADDVERS=SUNW_1.22.2; +libc.so - SUNW_1.22.5 SUNWprivate_1.1 $ADDVERS=SUNW_1.22.5; # https://github.com/illumos/illumos-gate/blob/master/usr/src/lib/libresolv2/common/mapfile-vers#L46 libresolv.so - SUNW_2.2.2 SUNWprivate_2.1 $ADDVERS=SUNW_2.2.2; # https://github.com/illumos/illumos-gate/blob/master/usr/src/lib/libnsl/common/mapfile-vers#L47 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bonivart at users.sourceforge.net Tue Jun 10 14:33:05 2014 From: bonivart at users.sourceforge.net (bonivart at users.sourceforge.net) Date: Tue, 10 Jun 2014 12:33:05 +0000 Subject: SF.net SVN: gar:[23781] csw/mgar/pkg/bind/trunk/Makefile Message-ID: <3gnrMn4d18ztC@mail.opencsw.org> Revision: 23781 http://sourceforge.net/p/gar/code/23781 Author: bonivart Date: 2014-06-10 12:33:01 +0000 (Tue, 10 Jun 2014) Log Message: ----------- bind/trunk: added cflag preventing bug with gcc 4.9 optimization Modified Paths: -------------- csw/mgar/pkg/bind/trunk/Makefile Modified: csw/mgar/pkg/bind/trunk/Makefile =================================================================== --- csw/mgar/pkg/bind/trunk/Makefile 2014-06-10 12:03:00 UTC (rev 23780) +++ csw/mgar/pkg/bind/trunk/Makefile 2014-06-10 12:33:01 UTC (rev 23781) @@ -84,6 +84,9 @@ CONFIGURE_ARGS += --with-dlz-ldap=/opt/csw CONFIGURE_ARGS += --enable-rrl +# Bug in combo of BIND and GCC 4.9 optimization regarding null pointers +EXTRA_CFLAGS += -fno-delete-null-pointer-checks + EXTRA_MERGE_EXCLUDE_FILES = .*~ $(libdir)/.*\.a $(libdir)/.*\.la $(mandir)/man1/isc-config.sh.1 $(bindir)/isc-config.sh #EXTRA_INC = /opt/csw/include This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Wed Jun 11 11:47:47 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Wed, 11 Jun 2014 09:47:47 +0000 Subject: SF.net SVN: gar:[23783] csw/mgar/gar/v2/gar.lib.mk Message-ID: <3gpNff62fqzl8@mail.opencsw.org> Revision: 23783 http://sourceforge.net/p/gar/code/23783 Author: chninkel Date: 2014-06-11 09:47:46 +0000 (Wed, 11 Jun 2014) Log Message: ----------- Fix the usage of MAKEFLAGS so make options are properly passed to sub-Makefile $(MAKE) MAKEFLAGS= is supposed to prevent make flags to be passed to the sub-make command according to http://www.gnu.org/software/make/manual/make.html#Options_002fRecursion. In practice, it doesn't prevent it for the $(MAKE) command called but only for the other sub-make that could be launched by this command. The correct way to achieve what we want is to use the following syntax: MAKEFLAGS= $(MAKE). This allow for instance the "-j" option to be correctly passed to sub-makefiles. Modified Paths: -------------- csw/mgar/gar/v2/gar.lib.mk Modified: csw/mgar/gar/v2/gar.lib.mk =================================================================== --- csw/mgar/gar/v2/gar.lib.mk 2014-06-11 07:25:58 UTC (rev 23782) +++ csw/mgar/gar/v2/gar.lib.mk 2014-06-11 09:47:46 UTC (rev 23783) @@ -872,17 +872,17 @@ # build from a standard gnu-style makefile's default rule. build-%/Makefile: @echo " ==> Running make in $*" - cd $* && /usr/bin/env -i $(BUILD_ENV) $(MAKE) MAKEFLAGS= $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(BUILD_ARGS) + cd $* && /usr/bin/env -i $(BUILD_ENV) MAKEFLAGS= $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(BUILD_ARGS) @$(MAKECOOKIE) build-%/makefile: @echo " ==> Running make in $*" - cd $* && /usr/bin/env -i $(BUILD_ENV) $(MAKE) MAKEFLAGS= $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(BUILD_ARGS) + cd $* && /usr/bin/env -i $(BUILD_ENV) MAKEFLAGS= $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(BUILD_ARGS) @$(MAKECOOKIE) build-%/GNUmakefile: @echo " ==> Running make in $*" - cd $* && /usr/bin/env -i $(BUILD_ENV) $(MAKE) MAKEFLAGS= $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(BUILD_ARGS) + cd $* && /usr/bin/env -i $(BUILD_ENV) MAKEFLAGS= $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(BUILD_OVERRIDE_VARS),$(TTT)="$(BUILD_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(BUILD_ARGS) @$(MAKECOOKIE) build-%/Jamfile: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Wed Jun 11 11:56:06 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Wed, 11 Jun 2014 09:56:06 +0000 Subject: SF.net SVN: gar:[23784] csw/mgar/gar/v2/gar.lib.mk Message-ID: <3gpNrF4n5lzpq@mail.opencsw.org> Revision: 23784 http://sourceforge.net/p/gar/code/23784 Author: chninkel Date: 2014-06-11 09:56:03 +0000 (Wed, 11 Jun 2014) Log Message: ----------- add missing MAKEFLAGS= Modified Paths: -------------- csw/mgar/gar/v2/gar.lib.mk Modified: csw/mgar/gar/v2/gar.lib.mk =================================================================== --- csw/mgar/gar/v2/gar.lib.mk 2014-06-11 09:47:46 UTC (rev 23783) +++ csw/mgar/gar/v2/gar.lib.mk 2014-06-11 09:56:03 UTC (rev 23784) @@ -927,17 +927,17 @@ # build from a standard gnu-style makefile's default rule. clean-%/Makefile: @echo " ==> Running clean in $*" - @cd $* && /usr/bin/env -i $(BUILD_ENV) $(MAKE) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(CLEAN_ARGS) + @cd $* && /usr/bin/env -i $(BUILD_ENV) MAKEFLAGS= $(MAKE) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(CLEAN_ARGS) @rm -f $(COOKIEDIR)/build-$* clean-%/makefile: @echo " ==> Running clean in $*" - @cd $* && $(BUILD_ENV) $(MAKE) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(CLEAN_ARGS) + @cd $* && $(BUILD_ENV) MAKEFLAGS= $(MAKE) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(CLEAN_ARGS) @rm -f $(COOKIEDIR)/build-$* clean-%/GNUmakefile: @echo " ==> Running clean in $*" - @cd $* && $(BUILD_ENV) $(MAKE) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(CLEAN_ARGS) + @cd $* && $(BUILD_ENV) MAKEFLAGS= $(MAKE) $(foreach TTT,$(BUILD_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(CLEAN_ARGS) @rm -f $(COOKIEDIR)/build-$* clean-%/Jamfile: @@ -962,17 +962,17 @@ # Run tests on pre-built sources test-%/Makefile: @echo " ==> Running make $(TEST_TARGET) in $*" - cd $* && /usr/bin/env -i $(TEST_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(TEST_OVERRIDE_VARS),$(TTT)="$(TEST_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(TEST_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(TEST_ARGS) $(TEST_TARGET) + cd $* && /usr/bin/env -i $(TEST_ENV) MAKEFLAGS= $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(TEST_OVERRIDE_VARS),$(TTT)="$(TEST_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(TEST_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(TEST_ARGS) $(TEST_TARGET) @$(MAKECOOKIE) test-%/makefile: @echo " ==> Running make $(TEST_TARGET) in $*" - @cd $* && $(TEST_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(TEST_OVERRIDE_VARS),$(TTT)="$(TEST_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(TEST_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(TEST_ARGS) $(TEST_TARGET) + @cd $* && $(TEST_ENV) MAKEFLAGS= $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(TEST_OVERRIDE_VARS),$(TTT)="$(TEST_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(TEST_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(TEST_ARGS) $(TEST_TARGET) @$(MAKECOOKIE) test-%/GNUmakefile: @echo " ==> Running make $(TEST_TARGET) in $*" - @cd $* && $(TEST_ENV) $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(TEST_OVERRIDE_VARS),$(TTT)="$(TEST_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(TEST_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(TEST_ARGS) $(TEST_TARGET) + @cd $* && $(TEST_ENV) MAKEFLAGS= $(MAKE) $(PARALLELMFLAGS) $(foreach TTT,$(TEST_OVERRIDE_VARS),$(TTT)="$(TEST_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(TEST_OVERRIDE_DIRS),$(TTT)="$($(TTT))") -C $(OBJDIR) $(TEST_ARGS) $(TEST_TARGET) @$(MAKECOOKIE) # Ruby makefiles @@ -1002,17 +1002,17 @@ # just run make install and hope for the best. install-%/Makefile: @echo " ==> Running make install in $*" - @cd $* && /usr/bin/env -i $(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_VARS),$(TTT)="$(INSTALL_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(OBJDIR) $(INSTALL_ARGS) install + @cd $* && /usr/bin/env -i $(INSTALL_ENV) MAKEFLAGS= $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_VARS),$(TTT)="$(INSTALL_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(OBJDIR) $(INSTALL_ARGS) install @$(MAKECOOKIE) install-%/makefile: @echo " ==> Running make install in $*" - @cd $* && $(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_VARS),$(TTT)="$(INSTALL_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(OBJDIR) $(INSTALL_ARGS) install + @cd $* && $(INSTALL_ENV) MAKEFLAGS= $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_VARS),$(TTT)="$(INSTALL_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(OBJDIR) $(INSTALL_ARGS) install @$(MAKECOOKIE) install-%/GNUmakefile: @echo " ==> Running make install in $*" - @cd $* && $(INSTALL_ENV) $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_VARS),$(TTT)="$(INSTALL_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(OBJDIR) $(INSTALL_ARGS) install + @cd $* && $(INSTALL_ENV) MAKEFLAGS= $(MAKE) DESTDIR=$(DESTDIR) $(foreach TTT,$(INSTALL_OVERRIDE_VARS),$(TTT)="$(INSTALL_OVERRIDE_VAR_$(TTT))") $(foreach TTT,$(INSTALL_OVERRIDE_DIRS),$(TTT)="$(DESTDIR)$($(TTT))") -C $(OBJDIR) $(INSTALL_ARGS) install @$(MAKECOOKIE) # Ruby makefiles This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From chninkel at users.sourceforge.net Sat Jun 14 14:35:58 2014 From: chninkel at users.sourceforge.net (chninkel at users.sourceforge.net) Date: Sat, 14 Jun 2014 12:35:58 +0000 Subject: SF.net SVN: gar:[23788] csw/mgar/pkg/openssl1/trunk/Makefile Message-ID: <3grJFR4WtYzvV@mail.opencsw.org> Revision: 23788 http://sourceforge.net/p/gar/code/23788 Author: chninkel Date: 2014-06-14 12:35:55 +0000 (Sat, 14 Jun 2014) Log Message: ----------- openssl1/trunk: improve custom targets Modified Paths: -------------- csw/mgar/pkg/openssl1/trunk/Makefile Modified: csw/mgar/pkg/openssl1/trunk/Makefile =================================================================== --- csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-11 14:57:20 UTC (rev 23787) +++ csw/mgar/pkg/openssl1/trunk/Makefile 2014-06-14 12:35:55 UTC (rev 23788) @@ -326,12 +326,30 @@ NUM_CPUS := $(shell psrinfo | wc -l | awk '{ print $$1 }') package-fast: - PARALLELMODULATIONS=1 PARALLELMFLAGS="--jobs=$(NUM_CPUS) --load-average=$(NUM_CPUS)" $(MAKE) package + PARALLELMODULATIONS=1 PARALLELMFLAGS="-j" $(MAKE) package + #PARALLELMODULATIONS=1 PARALLELMFLAGS="--jobs=$(NUM_CPUS)" $(MAKE) package + #PARALLELMODULATIONS=1 PARALLELMFLAGS="--jobs=$(NUM_CPUS) --load-average=$(NUM_CPUS)" $(MAKE) package platforms-fast: - mkdir -p work - trap "kill -9 `cat $(foreach P,$(PACKAGING_PLATFORMS),$(WORKROOTDIR)/build-$(PACKAGING_HOST_$P).pid) 2>/dev/null`; stty sane" INT; \ + @mkdir -p work + @echo + @echo "Building on all hosts in parallel. Please see the individual logfiles for details:";$(foreach P,$(_PACKAGING_PLATFORMS),echo "- $P: work/build-$(PACKAGING_HOST_$P).log";) + @echo + @trap "cat $(foreach P,$(_PACKAGING_PLATFORMS),work/build-$(PACKAGING_HOST_$P).pid) 2>/dev/null | xargs -L 1 pkill -9 -P &>/dev/null; \ + stty sane" INT; \ $(foreach P,$(_PACKAGING_PLATFORMS),\ - ($(SSH) -t $(PACKAGING_HOST_$P) "$(foreach V,$(_PROPAGATE_ENV),$(if $($V),$V=\"$($V)\")) $(MAKE) -I $(GARDIR) -C $(CURDIR) $(_PASS_GAR_ENV) GAR_PLATFORM=$P package-fast" >work/build-$(PACKAGING_HOST_$P).log 2>&1; echo $$? >work/build-$(PACKAGING_HOST_$P).ret ) & echo $$! >work/build-$(PACKAGING_HOST_$P).pid; ) wait - stty sane + ( $(SSH) -t $(PACKAGING_HOST_$P) "$(foreach V,$(_PROPAGATE_ENV),$(if $($V),$V=\"$($V)\")) $(MAKE) -I $(GARDIR) -C $(CURDIR) $(_PASS_GAR_ENV) GAR_PLATFORM=$P package-fast" >work/build-$(PACKAGING_HOST_$P).log 2>&1; echo $$? >work/build-$(PACKAGING_HOST_$P).ret ) & \ + echo $$! >work/build-$(PACKAGING_HOST_$P).pid; ) wait; stty sane; trap - INT + @$(foreach P,$(_PACKAGING_PLATFORMS),if [ "`cat work/build-$(PACKAGING_HOST_$P).ret`" -ne 0 ]; then \ + FAILED=1; \ + echo "Build error on host $(PACKAGING_HOST_$P). For details, please see"; \ + echo " work/build-$(PACKAGING_HOST_$P).log"; \ + echo "Return code: `cat work/build-$(PACKAGING_HOST_$P).ret`"; \ + echo ; \ + fi;) if [ $${FAILED} -eq 1 ]; then \ + exit 2; \ + fi + @echo + @echo "Calling the standard platforms target to make sure everything is ok..." + @echo $(MAKE) platforms This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From bdwalton at users.sourceforge.net Sat Jun 14 14:43:16 2014 From: bdwalton at users.sourceforge.net (bdwalton at users.sourceforge.net) Date: Sat, 14 Jun 2014 12:43:16 +0000 Subject: SF.net SVN: gar:[23789] csw/mgar/pkg/coreutils/trunk Message-ID: <3grJPk3SgGzym@mail.opencsw.org> Revision: 23789 http://sourceforge.net/p/gar/code/23789 Author: bdwalton Date: 2014-06-14 12:43:12 +0000 (Sat, 14 Jun 2014) Log Message: ----------- coreutils/trunk: disable heavy duty compiler warnings meant for developers Modified Paths: -------------- csw/mgar/pkg/coreutils/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/coreutils/trunk/files/0007-Disable-developer-compiler-warning-error-settings.patch Modified: csw/mgar/pkg/coreutils/trunk/Makefile =================================================================== --- csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-14 12:35:55 UTC (rev 23788) +++ csw/mgar/pkg/coreutils/trunk/Makefile 2014-06-14 12:43:12 UTC (rev 23789) @@ -39,6 +39,7 @@ PATCHFILES += 0004-Ensure-that-dst_exists-is-used-in-all-cases-to-avoid.patch PATCHFILES += 0005-src-df.c-get_dev-Initialize-variable-v-to-NULL-to-av.patch PATCHFILES += 0006-Remove-wmudflap.-It-s-deprecated-with-gcc-4.9.patch +PATCHFILES += 0007-Disable-developer-compiler-warning-error-settings.patch # We define upstream file regex so we can be notifed of new upstream # software release Added: csw/mgar/pkg/coreutils/trunk/files/0007-Disable-developer-compiler-warning-error-settings.patch =================================================================== --- csw/mgar/pkg/coreutils/trunk/files/0007-Disable-developer-compiler-warning-error-settings.patch (rev 0) +++ csw/mgar/pkg/coreutils/trunk/files/0007-Disable-developer-compiler-warning-error-settings.patch 2014-06-14 12:43:12 UTC (rev 23789) @@ -0,0 +1,31 @@ +From c0563d5860dfb6e5f1cbda4da7f055464684d6f2 Mon Sep 17 00:00:00 2001 +From: Ben Walton +Date: Sun, 8 Jun 2014 00:35:33 +0200 +Subject: [PATCH] Disable developer compiler warning/error settings + +Detecting a .git directory enables additional, heavy weight compiler +options. Our patching infrastructure trips this. Upstream now has a +workaround in the codebase, but we'll manually disable it for our use +case. + +Signed-off-by: Ben Walton +--- + configure | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure b/configure +index 331246b..6b30709 100755 +--- a/configure ++++ b/configure +@@ -61755,7 +61755,7 @@ if ac_fn_c_try_cpp "$LINENO"; then : + fi + rm -f conftest.err conftest.i conftest.$ac_ext + +- ++gl_gcc_warnings=no + + fi + +-- +1.8.4.1 + This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From opk at users.sourceforge.net Mon Jun 16 17:07:47 2014 From: opk at users.sourceforge.net (opk at users.sourceforge.net) Date: Mon, 16 Jun 2014 15:07:47 +0000 Subject: SF.net SVN: gar:[23795] csw/mgar/pkg/nmh/trunk Message-ID: <3gsbWl20zqz2y@mail.opencsw.org> Revision: 23795 http://sourceforge.net/p/gar/code/23795 Author: opk Date: 2014-06-16 15:07:42 +0000 (Mon, 16 Jun 2014) Log Message: ----------- update nmh to 1.6 Modified Paths: -------------- csw/mgar/pkg/nmh/trunk/Makefile csw/mgar/pkg/nmh/trunk/checksums Added Paths: ----------- csw/mgar/pkg/nmh/trunk/files/0000-remove-problematic-include.patch Modified: csw/mgar/pkg/nmh/trunk/Makefile =================================================================== --- csw/mgar/pkg/nmh/trunk/Makefile 2014-06-15 16:00:09 UTC (rev 23794) +++ csw/mgar/pkg/nmh/trunk/Makefile 2014-06-16 15:07:42 UTC (rev 23795) @@ -1,6 +1,6 @@ # $Id$ NAME = nmh -VERSION = 1.5 +VERSION = 1.6 GARTYPE = v2 DESCRIPTION = Powerful electronic mail handling system @@ -21,7 +21,8 @@ LICENSE = COPYRIGHT PRESERVECONF = /etc/opt/csw/nmh/mts.conf -PATCHFILES += 0001-use-csw-locations.patch +PATCHFILES += 0000-remove-problematic-include.patch \ + 0001-use-csw-locations.patch CONFIGURE_ARGS = --enable-pop --enable-masquerade='' --with-mts=sendmail \ --prefix=$(prefix) --mandir=$(mandir) --datadir=$(datadir)/nmh \ @@ -30,9 +31,4 @@ EXTRA_MERGE_EXCLUDE_FILES = $(datadir)/doc/nmh/(contrib.*|INSTALL|COPYRIGHT|README.developers|README.manpages) -CHECKPKG_OVERRIDES_CSWnmh += file-with-bad-content|/usr/local|root/opt/csw/share/doc/nmh/FAQ -CHECKPKG_OVERRIDES_CSWnmh += file-with-bad-content|/usr/local|root/opt/csw/share/doc/nmh/MAIL.FILTERING -CHECKPKG_OVERRIDES_CSWnmh += file-with-bad-content|/export/home|root/opt/csw/share/doc/nmh/README-ATTACHMENTS - - include gar/category.mk Modified: csw/mgar/pkg/nmh/trunk/checksums =================================================================== --- csw/mgar/pkg/nmh/trunk/checksums 2014-06-15 16:00:09 UTC (rev 23794) +++ csw/mgar/pkg/nmh/trunk/checksums 2014-06-16 15:07:42 UTC (rev 23795) @@ -1 +1 @@ -5a7bc5a157f4428f7660bb882e842375 nmh-1.5.tar.gz +766ff2d37736aef76243df9c6610cb77 nmh-1.6.tar.gz Added: csw/mgar/pkg/nmh/trunk/files/0000-remove-problematic-include.patch =================================================================== --- csw/mgar/pkg/nmh/trunk/files/0000-remove-problematic-include.patch (rev 0) +++ csw/mgar/pkg/nmh/trunk/files/0000-remove-problematic-include.patch 2014-06-16 15:07:42 UTC (rev 23795) @@ -0,0 +1,24 @@ +From 627944fb7bafc470a64c0f46a5d1ca9116aa64d7 Mon Sep 17 00:00:00 2001 +From: Oliver Kiddle +Date: Mon, 16 Jun 2014 16:42:00 +0200 +Subject: [PATCH] remove problematic include + +--- + sbr/terminal.c | 1 - + 1 file changed, 1 deletion(-) + +diff --git a/sbr/terminal.c b/sbr/terminal.c +index 14eca97..9c5d538 100644 +--- a/sbr/terminal.c ++++ b/sbr/terminal.c +@@ -14,7 +14,6 @@ + #include + + #include +-#include + + #ifdef WINSIZE_IN_PTEM + # include +-- +1.8.4.1 + 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 17 09:11:52 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 07:11:52 +0000 Subject: SF.net SVN: gar:[23796] csw/mgar/pkg/lang-python/django-schedule/trunk/ Makefile Message-ID: <3gt0vy4G1pzd8@mail.opencsw.org> Revision: 23796 http://sourceforge.net/p/gar/code/23796 Author: cgrzemba Date: 2014-06-17 07:11:50 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/django-schedule/trunk: add license Modified Paths: -------------- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile Modified: csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-16 15:07:42 UTC (rev 23795) +++ csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 07:11:50 UTC (rev 23796) @@ -5,7 +5,7 @@ VERSION = 0.5b CATEGORIES = python GARTYPE = v2 -DESCRIPTION = A +DESCRIPTION = A calendaring app for Django define BLURB simple. endef @@ -14,12 +14,13 @@ # DISTNAME = $(NAME)-$(VERSION) # DISTFILES = $(DISTNAME).tar.gz -BUILD_DEP_PKGS += CSWpysetuptools +LICENSE = LICENCSE.txt + +BUILD_DEP_PKGS += CSWpy-setuptools RUNTIME_DEP_PKGS += CSWpy-django # checkpkg can't detect python run time dependencies -# SKIPTEST=1 -#TEST_TARGET = check +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 cgrzemba at users.sourceforge.net Tue Jun 17 09:15:12 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 07:15:12 +0000 Subject: SF.net SVN: gar:[23798] csw/mgar/pkg/lang-python/django-schedule/trunk/ Makefile Message-ID: <3gt0zn21NKzhb@mail.opencsw.org> Revision: 23798 http://sourceforge.net/p/gar/code/23798 Author: cgrzemba Date: 2014-06-17 07:15:12 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/django-schedule/trunk: add override Modified Paths: -------------- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile Modified: csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 07:13:21 UTC (rev 23797) +++ csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 07:15:12 UTC (rev 23798) @@ -18,6 +18,7 @@ BUILD_DEP_PKGS += CSWpy-setuptools RUNTIME_DEP_PKGS += CSWpy-django +CHECKPKG_OVERRIDES_CSWpy-django-schedule += surplus-dependency|CSWpy-django ARCHALL_CSWpy-django-schedule = 1 # checkpkg can't detect python run time dependencies 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 17 09:16:44 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 07:16:44 +0000 Subject: SF.net SVN: gar:[23799] csw/mgar/pkg/lang-python/django-schedule/trunk/ Makefile Message-ID: <3gt11X3lgYzlp@mail.opencsw.org> Revision: 23799 http://sourceforge.net/p/gar/code/23799 Author: cgrzemba Date: 2014-06-17 07:16:43 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/django-schedule/trunk: update version Modified Paths: -------------- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile Modified: csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 07:15:12 UTC (rev 23798) +++ csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 07:16:43 UTC (rev 23799) @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 NAME = django-schedule -VERSION = 0.5b +VERSION = 1.1-alpha CATEGORIES = python GARTYPE = v2 DESCRIPTION = A calendaring app for Django 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 17 15:05:34 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 13:05:34 +0000 Subject: SF.net SVN: gar:[23801] csw/mgar/pkg/lang-python Message-ID: <3gt8m7099nz16G@mail.opencsw.org> Revision: 23801 http://sourceforge.net/p/gar/code/23801 Author: cgrzemba Date: 2014-06-17 13:05:29 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/django-mptt/trunk: Inital commit Added Paths: ----------- csw/mgar/pkg/lang-python/django-mptt/ csw/mgar/pkg/lang-python/django-mptt/Makefile csw/mgar/pkg/lang-python/django-mptt/branches/ csw/mgar/pkg/lang-python/django-mptt/tags/ csw/mgar/pkg/lang-python/django-mptt/trunk/ csw/mgar/pkg/lang-python/django-mptt/trunk/Makefile csw/mgar/pkg/lang-python/django-mptt/trunk/checksums csw/mgar/pkg/lang-python/django-mptt/trunk/files/ Added: csw/mgar/pkg/lang-python/django-mptt/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-mptt/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/django-mptt/Makefile 2014-06-17 13:05:29 UTC (rev 23801) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/django-mptt/trunk =================================================================== --- csw/mgar/pkg/lang-python/django-mptt/trunk 2014-06-17 11:23:41 UTC (rev 23800) +++ csw/mgar/pkg/lang-python/django-mptt/trunk 2014-06-17 13:05:29 UTC (rev 23801) Property changes on: csw/mgar/pkg/lang-python/django-mptt/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/django-mptt/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-mptt/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/django-mptt/trunk/Makefile 2014-06-17 13:05:29 UTC (rev 23801) @@ -0,0 +1,28 @@ +# Copyright 2011 OpenCSW +# Distributed under the terms of the GNU General Public License v2 + +NAME = django-mptt +VERSION = 0.6.1 +CATEGORIES = python +GARTYPE = v2 +DESCRIPTION = Modified Preorder Tree Traversal utilities +define BLURB +Utilities for implementing Modified Preorder Tree Traversal with your Django Models and working with trees of Model instances. +endef + +DISTNAME = $(NAME)-$(VERSION) +DISTFILES = $(DISTNAME).tar.gz + +PACKAGES = CSWpy-django-mptt +ARCHALL_CSWpy-django-mptt = 1 + +BUILD_DEP_PKGS += CSWpy-setuptools +RUNTIME_DEP_PKGS += CSWpy-django + +# checkpkg can't detect python run time dependencies +CHECKPKG_OVERRIDES_CSWpy-django-mptt += surplus-dependency|CSWpy-django + + +# SKIPTEST=1 + +include gar/category.mk Property changes on: csw/mgar/pkg/lang-python/django-mptt/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/django-mptt/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/django-mptt/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/django-mptt/trunk/checksums 2014-06-17 13:05:29 UTC (rev 23801) @@ -0,0 +1 @@ +b7572188f6852a7326e3b3f873ab5027 django-mptt-0.6.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 Tue Jun 17 16:09:04 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 14:09:04 +0000 Subject: SF.net SVN: gar:[23803] csw/mgar/pkg/lang-python Message-ID: <3gtB9Q0c2Lz1D7@mail.opencsw.org> Revision: 23803 http://sourceforge.net/p/gar/code/23803 Author: cgrzemba Date: 2014-06-17 14:09:03 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/django-haystack/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/lang-python/django-haystack/ csw/mgar/pkg/lang-python/django-haystack/Makefile csw/mgar/pkg/lang-python/django-haystack/branches/ csw/mgar/pkg/lang-python/django-haystack/tags/ csw/mgar/pkg/lang-python/django-haystack/trunk/ csw/mgar/pkg/lang-python/django-haystack/trunk/Makefile csw/mgar/pkg/lang-python/django-haystack/trunk/checksums csw/mgar/pkg/lang-python/django-haystack/trunk/files/ Added: csw/mgar/pkg/lang-python/django-haystack/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-haystack/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/django-haystack/Makefile 2014-06-17 14:09:03 UTC (rev 23803) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/django-haystack/trunk =================================================================== --- csw/mgar/pkg/lang-python/django-haystack/trunk 2014-06-17 13:55:24 UTC (rev 23802) +++ csw/mgar/pkg/lang-python/django-haystack/trunk 2014-06-17 14:09:03 UTC (rev 23803) Property changes on: csw/mgar/pkg/lang-python/django-haystack/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/django-haystack/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-haystack/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/django-haystack/trunk/Makefile 2014-06-17 14:09:03 UTC (rev 23803) @@ -0,0 +1,28 @@ +# Copyright 2011 OpenCSW +# Distributed under the terms of the GNU General Public License v2 + +NAME = django-haystack +VERSION = 2.1.0 +CATEGORIES = python +GARTYPE = v2 +DESCRIPTION = Search for Django +define BLURB +Haystack provides modular search for Django. It features a unified, familiar API that allows you to plug in different search backends (such as Solr, Elasticsearch, Whoosh, Xapian, etc.) without having to modify your code. +endef + +DISTNAME = $(NAME)-$(VERSION) +DISTFILES = $(DISTNAME).tar.gz + +PACKAGES = CSWpy-django-haystack +ARCHALL_CSWpy-django-haystack = 1 + +BUILD_DEP_PKGS += CSWpy-setuptools +RUNTIME_DEP_PKGS += CSWpy-django + +# checkpkg can't detect python run time dependencies +CHECKPKG_OVERRIDES_CSWpy-django-haystack += surplus-dependency|CSWpy-django + + +# SKIPTEST=1 + +include gar/category.mk Property changes on: csw/mgar/pkg/lang-python/django-haystack/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/django-haystack/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/django-haystack/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/django-haystack/trunk/checksums 2014-06-17 14:09:03 UTC (rev 23803) @@ -0,0 +1 @@ +0bc74c0d71c30169ddb796c20655fe98 django-haystack-2.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 Tue Jun 17 16:19:27 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 14:19:27 +0000 Subject: SF.net SVN: gar:[23804] csw/mgar/pkg/lang-python Message-ID: <3gtBPL6L8yz1Hw@mail.opencsw.org> Revision: 23804 http://sourceforge.net/p/gar/code/23804 Author: cgrzemba Date: 2014-06-17 14:19:24 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/feedparser/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/lang-python/feedparser/ csw/mgar/pkg/lang-python/feedparser/Makefile csw/mgar/pkg/lang-python/feedparser/branches/ csw/mgar/pkg/lang-python/feedparser/tags/ csw/mgar/pkg/lang-python/feedparser/trunk/ csw/mgar/pkg/lang-python/feedparser/trunk/Makefile csw/mgar/pkg/lang-python/feedparser/trunk/checksums csw/mgar/pkg/lang-python/feedparser/trunk/files/ Added: csw/mgar/pkg/lang-python/feedparser/Makefile =================================================================== --- csw/mgar/pkg/lang-python/feedparser/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/feedparser/Makefile 2014-06-17 14:19:24 UTC (rev 23804) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/feedparser/trunk =================================================================== --- csw/mgar/pkg/lang-python/feedparser/trunk 2014-06-17 14:09:03 UTC (rev 23803) +++ csw/mgar/pkg/lang-python/feedparser/trunk 2014-06-17 14:19:24 UTC (rev 23804) Property changes on: csw/mgar/pkg/lang-python/feedparser/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/feedparser/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/feedparser/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/feedparser/trunk/Makefile 2014-06-17 14:19:24 UTC (rev 23804) @@ -0,0 +1,23 @@ +# Copyright 2009 OpenCSW +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +NAME = feedparser +VERSION = 5.1.3 +CATEGORIES = python +GARTYPE = v2 + +DESCRIPTION = Intelligent schema and data migrations for Django projects +define BLURB +endef + +DISTFILES = $(NAME)-$(VERSION).tar.gz +DISTNAME = $(NAME)-$(VERSION) + +LICENSE = LICENSE + +PACKAGES += CSWpy-feedparser +ARCHALL_CSWpy-feedparser = 1 + +include gar/category.mk + Property changes on: csw/mgar/pkg/lang-python/feedparser/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/feedparser/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/feedparser/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/feedparser/trunk/checksums 2014-06-17 14:19:24 UTC (rev 23804) @@ -0,0 +1 @@ +f2253de78085a1d5738f626fcc1d8f71 feedparser-5.1.3.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 Tue Jun 17 16:22:03 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 14:22:03 +0000 Subject: SF.net SVN: gar:[23805] csw/mgar/pkg/lang-python/feedparser/trunk/Makefile Message-ID: <3gtBSJ1xlWz1MD@mail.opencsw.org> Revision: 23805 http://sourceforge.net/p/gar/code/23805 Author: cgrzemba Date: 2014-06-17 14:22:00 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/feedparser/trunk: update description Modified Paths: -------------- csw/mgar/pkg/lang-python/feedparser/trunk/Makefile Modified: csw/mgar/pkg/lang-python/feedparser/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/feedparser/trunk/Makefile 2014-06-17 14:19:24 UTC (rev 23804) +++ csw/mgar/pkg/lang-python/feedparser/trunk/Makefile 2014-06-17 14:22:00 UTC (rev 23805) @@ -7,8 +7,9 @@ CATEGORIES = python GARTYPE = v2 -DESCRIPTION = Intelligent schema and data migrations for Django projects +DESCRIPTION = RSS feed parser define BLURB +Universal feed parser, handles RSS 0.9x, RSS 1.0, RSS 2.0, CDF, Atom 0.3, and Atom 1.0 feeds endef DISTFILES = $(NAME)-$(VERSION).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 Tue Jun 17 16:57:35 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Tue, 17 Jun 2014 14:57:35 +0000 Subject: SF.net SVN: gar:[23806] csw/mgar/pkg/lang-python/django-schedule/trunk Message-ID: <3gtCFM34s7z1Sk@mail.opencsw.org> Revision: 23806 http://sourceforge.net/p/gar/code/23806 Author: cgrzemba Date: 2014-06-17 14:57:32 +0000 (Tue, 17 Jun 2014) Log Message: ----------- lang-python/django-schedule/trunk: add conf to package: https://github.com/thauber/django-schedule/issues/26 Modified Paths: -------------- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/lang-python/django-schedule/trunk/files/0001-add-schedule.conf.patch Modified: csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 14:22:00 UTC (rev 23805) +++ csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 14:57:32 UTC (rev 23806) @@ -16,6 +16,8 @@ LICENSE = LICENCSE.txt +PATCHFILES += 0001-add-schedule.conf.patch + BUILD_DEP_PKGS += CSWpy-setuptools RUNTIME_DEP_PKGS += CSWpy-django CHECKPKG_OVERRIDES_CSWpy-django-schedule += surplus-dependency|CSWpy-django Added: csw/mgar/pkg/lang-python/django-schedule/trunk/files/0001-add-schedule.conf.patch =================================================================== --- csw/mgar/pkg/lang-python/django-schedule/trunk/files/0001-add-schedule.conf.patch (rev 0) +++ csw/mgar/pkg/lang-python/django-schedule/trunk/files/0001-add-schedule.conf.patch 2014-06-17 14:57:32 UTC (rev 23806) @@ -0,0 +1,10 @@ +--- a/setup.py ++++ b/setup.py +@@ -11,6 +11,7 @@ setup( + url='http://github.com/thauber/django-schedule/tree/master', + packages=[ + 'schedule', ++ 'schedule.conf', + 'schedule.feeds', + 'schedule.management', + 'schedule.management.commands', 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 18 10:49:09 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 18 Jun 2014 08:49:09 +0000 Subject: SF.net SVN: gar:[23809] csw/mgar/pkg/lang-python/django-schedule/trunk/ Makefile Message-ID: <3gtg1r6zRPzdG@mail.opencsw.org> Revision: 23809 http://sourceforge.net/p/gar/code/23809 Author: cgrzemba Date: 2014-06-18 08:49:08 +0000 (Wed, 18 Jun 2014) Log Message: ----------- lang-python/django-schedule/trunk: switch to a more recent fork Modified Paths: -------------- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile Modified: csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-17 17:42:51 UTC (rev 23808) +++ csw/mgar/pkg/lang-python/django-schedule/trunk/Makefile 2014-06-18 08:49:08 UTC (rev 23809) @@ -2,7 +2,7 @@ # Distributed under the terms of the GNU General Public License v2 NAME = django-schedule -VERSION = 1.1-alpha +VERSION = git CATEGORIES = python GARTYPE = v2 DESCRIPTION = A calendaring app for Django @@ -10,13 +10,13 @@ simple. endef -GIT_REPOS = git://github.com/thauber/django-schedule.git +GIT_REPOS = git://github.com/atiberghien/django-schedule.git # DISTNAME = $(NAME)-$(VERSION) # DISTFILES = $(DISTNAME).tar.gz LICENSE = LICENCSE.txt -PATCHFILES += 0001-add-schedule.conf.patch +# PATCHFILES += 0001-add-schedule.conf.patch BUILD_DEP_PKGS += CSWpy-setuptools RUNTIME_DEP_PKGS += CSWpy-django 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 18 12:23:07 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 18 Jun 2014 10:23:07 +0000 Subject: SF.net SVN: gar:[23810] csw/mgar/pkg/lang-python Message-ID: <3gtj6B1t8LzmV@mail.opencsw.org> Revision: 23810 http://sourceforge.net/p/gar/code/23810 Author: cgrzemba Date: 2014-06-18 10:23:03 +0000 (Wed, 18 Jun 2014) Log Message: ----------- lang-python/django-debug-toolbar/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/lang-python/django-debug-toolbar/ csw/mgar/pkg/lang-python/django-debug-toolbar/Makefile csw/mgar/pkg/lang-python/django-debug-toolbar/branches/ csw/mgar/pkg/lang-python/django-debug-toolbar/tags/ csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/ csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/Makefile csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/checksums csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/files/ Added: csw/mgar/pkg/lang-python/django-debug-toolbar/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-debug-toolbar/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/django-debug-toolbar/Makefile 2014-06-18 10:23:03 UTC (rev 23810) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/django-debug-toolbar/trunk =================================================================== --- csw/mgar/pkg/lang-python/django-debug-toolbar/trunk 2014-06-18 08:49:08 UTC (rev 23809) +++ csw/mgar/pkg/lang-python/django-debug-toolbar/trunk 2014-06-18 10:23:03 UTC (rev 23810) Property changes on: csw/mgar/pkg/lang-python/django-debug-toolbar/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/Makefile 2014-06-18 10:23:03 UTC (rev 23810) @@ -0,0 +1,20 @@ +# $Id$ +# TODO (release-critical prefixed with !, non release-critical with *) +# +NAME = django-debug-toolbar +VERSION = 1.2.1 +GARTYPE = v2 +CATEGORIES = python + +DESCRIPTION = Brief description +define BLURB + Long description +endef + +MASTER_SITES = https://pypi.python.org/packages/source/d/django-debug-toolbar/ +DISTFILES = $(DISTNAME).tar.gz + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk + Property changes on: csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/django-debug-toolbar/trunk/checksums 2014-06-18 10:23:03 UTC (rev 23810) @@ -0,0 +1 @@ +16d016c2e041c106ceae50d17d2234b6 django-debug-toolbar-1.2.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 Wed Jun 18 12:43:10 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Wed, 18 Jun 2014 10:43:10 +0000 Subject: SF.net SVN: gar:[23811] csw/mgar/pkg/lang-python Message-ID: <3gtjYJ5jlQzrN@mail.opencsw.org> Revision: 23811 http://sourceforge.net/p/gar/code/23811 Author: cgrzemba Date: 2014-06-18 10:43:06 +0000 (Wed, 18 Jun 2014) Log Message: ----------- lang-python/sqlparse/trunk: Initial commit Added Paths: ----------- csw/mgar/pkg/lang-python/sqlparse/ csw/mgar/pkg/lang-python/sqlparse/Makefile csw/mgar/pkg/lang-python/sqlparse/branches/ csw/mgar/pkg/lang-python/sqlparse/tags/ csw/mgar/pkg/lang-python/sqlparse/trunk/ csw/mgar/pkg/lang-python/sqlparse/trunk/Makefile csw/mgar/pkg/lang-python/sqlparse/trunk/checksums csw/mgar/pkg/lang-python/sqlparse/trunk/files/ Added: csw/mgar/pkg/lang-python/sqlparse/Makefile =================================================================== --- csw/mgar/pkg/lang-python/sqlparse/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/sqlparse/Makefile 2014-06-18 10:43:06 UTC (rev 23811) @@ -0,0 +1,2 @@ +%: + $(MAKE) -C trunk $* Index: csw/mgar/pkg/lang-python/sqlparse/trunk =================================================================== --- csw/mgar/pkg/lang-python/sqlparse/trunk 2014-06-18 10:23:03 UTC (rev 23810) +++ csw/mgar/pkg/lang-python/sqlparse/trunk 2014-06-18 10:43:06 UTC (rev 23811) Property changes on: csw/mgar/pkg/lang-python/sqlparse/trunk ___________________________________________________________________ Added: svn:ignore ## -0,0 +1 ## +work Added: csw/mgar/pkg/lang-python/sqlparse/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/sqlparse/trunk/Makefile (rev 0) +++ csw/mgar/pkg/lang-python/sqlparse/trunk/Makefile 2014-06-18 10:43:06 UTC (rev 23811) @@ -0,0 +1,22 @@ +# $Id$ +# TODO (release-critical prefixed with !, non release-critical with *) +# +NAME = sqlparse +VERSION = 0.1.11 +GARTYPE = v2 +CATEGORIES = python + +DESCRIPTION = Non-validating SQL parser module +define BLURB + Long description +endef + +MASTER_SITES = https://pypi.python.org/packages/source/s/sqlparse/ +DISTFILES = $(DISTNAME).tar.gz + +ARCHALL_CSWpy-sqlparse = 1 + +CONFIGURE_ARGS = $(DIRPATHS) + +include gar/category.mk + Property changes on: csw/mgar/pkg/lang-python/sqlparse/trunk/Makefile ___________________________________________________________________ Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Added: csw/mgar/pkg/lang-python/sqlparse/trunk/checksums =================================================================== --- csw/mgar/pkg/lang-python/sqlparse/trunk/checksums (rev 0) +++ csw/mgar/pkg/lang-python/sqlparse/trunk/checksums 2014-06-18 10:43:06 UTC (rev 23811) @@ -0,0 +1 @@ +abc3315f4970e7ff0f6758d693dc8a45 sqlparse-0.1.11.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 Wed Jun 18 15:30:42 2014 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Wed, 18 Jun 2014 13:30:42 +0000 Subject: SF.net SVN: gar:[23813] csw/mgar/pkg/ImageMagick/trunk/Makefile Message-ID: <3gtnGb3kJ0z15C@mail.opencsw.org> Revision: 23813 http://sourceforge.net/p/gar/code/23813 Author: lblume Date: 2014-06-18 13:30:38 +0000 (Wed, 18 Jun 2014) Log Message: ----------- ImageMagick/trunk: Bump version to 1.0pre4 Modified Paths: -------------- csw/mgar/pkg/ImageMagick/trunk/Makefile Modified: csw/mgar/pkg/ImageMagick/trunk/Makefile =================================================================== --- csw/mgar/pkg/ImageMagick/trunk/Makefile 2014-06-18 10:50:48 UTC (rev 23812) +++ csw/mgar/pkg/ImageMagick/trunk/Makefile 2014-06-18 13:30:38 UTC (rev 23813) @@ -186,8 +186,10 @@ REINPLACE_USRLOCAL += config/mime.xml -EXTRA_LINKER_FLAGS = -lsocket -lnsl -EXTRA_LD_OPTIONS = -z nolazyload +#EXTRA_LINKER_FLAGS = -lsocket -lnsl +#EXTRA_LD_OPTIONS = -z nolazyload +EXTRA_LINKER_FLAGS = -lsocket -lnsl -Wl,-z,nolazyload -Wl,-Bdirect +EXTRA_LD_OPTIONS = -z nolazyload -Bdirect # We especially don't want ISALIST for the above /usr/openwin/lib # This should be reworked after a general rework of ISALIST in GAR This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From lblume at users.sourceforge.net Wed Jun 18 21:14:26 2014 From: lblume at users.sourceforge.net (lblume at users.sourceforge.net) Date: Wed, 18 Jun 2014 19:14:26 +0000 Subject: SF.net SVN: gar:[23816] csw/mgar/pkg/iftop/trunk/Makefile Message-ID: <3gtwvC0vjcz1Pp@mail.opencsw.org> Revision: 23816 http://sourceforge.net/p/gar/code/23816 Author: lblume Date: 2014-06-18 19:14:17 +0000 (Wed, 18 Jun 2014) Log Message: ----------- iftop/trunk: Disable cares that might be the cause of a crash Modified Paths: -------------- csw/mgar/pkg/iftop/trunk/Makefile Modified: csw/mgar/pkg/iftop/trunk/Makefile =================================================================== --- csw/mgar/pkg/iftop/trunk/Makefile 2014-06-18 13:59:22 UTC (rev 23815) +++ csw/mgar/pkg/iftop/trunk/Makefile 2014-06-18 19:14:17 UTC (rev 23816) @@ -18,16 +18,12 @@ BUILD_DEP_PKGS += CSWlibncurses-dev RUNTIME_DEP_PKGS_CSWiftop += CSWlibncurses5 -RUNTIME_DEP_PKGS_CSWiftop += CSWlibcares2 RUNTIME_DEP_PKGS_CSWiftop += CSWlibpcap1 GARCOMPILER = GCC4 -EXTRA_LDFLAGS = -lcares - EXTRA_CPPFLAGS = -I/opt/csw/include/ncurses CONFIGURE_ARGS = $(DIRPATHS) -CONFIGURE_ARGS += --with-resolver=ares include gar/category.mk 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 21 15:20:27 2014 From: rmottola at users.sourceforge.net (rmottola at users.sourceforge.net) Date: Sat, 21 Jun 2014 13:20:27 +0000 Subject: SF.net SVN: gar:[23817] csw/mgar/pkg/gnustep-base/trunk Message-ID: <3gwcvY6Bpgz1CX@mail.opencsw.org> Revision: 23817 http://sourceforge.net/p/gar/code/23817 Author: rmottola Date: 2014-06-21 13:20:23 +0000 (Sat, 21 Jun 2014) Log Message: ----------- gnustep-base/trunk: add configure patch for word alignment Modified Paths: -------------- csw/mgar/pkg/gnustep-base/trunk/Makefile Added Paths: ----------- csw/mgar/pkg/gnustep-base/trunk/files/0001-configure-tweak-align.patch Modified: csw/mgar/pkg/gnustep-base/trunk/Makefile =================================================================== --- csw/mgar/pkg/gnustep-base/trunk/Makefile 2014-06-18 19:14:17 UTC (rev 23816) +++ csw/mgar/pkg/gnustep-base/trunk/Makefile 2014-06-21 13:20:23 UTC (rev 23817) @@ -16,6 +16,8 @@ MASTER_SITES = ftp://ftp.gnustep.org/pub/gnustep/core/ DISTFILES = $(DISTNAME).tar.gz +PATCHFILES += 0001-configure-tweak-align.patch + #we absolutely need GCC for Objective-C support. The only alternative in the future would be clang GARCOMPILER = GNU @@ -41,11 +43,11 @@ @$(MAKECOOKIE) build-sourcegs: - . $(BUILD_PREFIX)/GNUstep/System/Library/Makefiles/GNUstep.sh && cd $(WORKSRC) && /usr/bin/env -i $(BUILD_ENV) && $(MAKE) + . $(BUILD_PREFIX)/GNUstep/System/Library/Makefiles/GNUstep.sh && cd $(WORKSRC) && /usr/bin/env -i $(BUILD_ENV) ; $(MAKE) @$(MAKECOOKIE) install-sourcegs: - . $(BUILD_PREFIX)/GNUstep/System/Library/Makefiles/GNUstep.sh && cd $(WORKSRC) && /usr/bin/env -i $(INSTALL_ENV) && $(MAKE) install DESTDIR=$(DESTDIR) + . $(BUILD_PREFIX)/GNUstep/System/Library/Makefiles/GNUstep.sh && cd $(WORKSRC) && /usr/bin/env -i $(INSTALL_ENV) ; $(MAKE) install @$(MAKECOOKIE) test-none : Added: csw/mgar/pkg/gnustep-base/trunk/files/0001-configure-tweak-align.patch =================================================================== --- csw/mgar/pkg/gnustep-base/trunk/files/0001-configure-tweak-align.patch (rev 0) +++ csw/mgar/pkg/gnustep-base/trunk/files/0001-configure-tweak-align.patch 2014-06-21 13:20:23 UTC (rev 23817) @@ -0,0 +1,19 @@ +--- src.orig/configure 2014/02/02 08:57:42 37670 ++++ src/configure 2014/06/20 08:59:35 37954 +@@ -9341,6 +9341,8 @@ + #-------------------------------------------------------------------- + # Check if short and int values need to be word aligned + #-------------------------------------------------------------------- ++saved_CFLAGS="$CFLAGS" ++CFLAGS="$CFLAGS -O0" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking short/int needs to be word aligned" >&5 + $as_echo_n "checking short/int needs to be word aligned... " >&6; } + if test "$cross_compiling" = yes; then +@@ -21282,6 +21284,7 @@ + fi + + ++CFLAGS="$saved_CFLAGS" + + cat >>confdefs.h <<_ACEOF + #define NEED_WORD_ALIGNMENT $NEED_WORD_ALIGNMENT This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. From guengel at users.sourceforge.net Sun Jun 22 21:24:32 2014 From: guengel at users.sourceforge.net (guengel at users.sourceforge.net) Date: Sun, 22 Jun 2014 19:24:32 +0000 Subject: SF.net SVN: gar:[23818] csw/mgar/pkg/cfengine3/trunk Message-ID: <3gxNyK3FRLzRH@mail.opencsw.org> Revision: 23818 http://sourceforge.net/p/gar/code/23818 Author: guengel Date: 2014-06-22 19:24:25 +0000 (Sun, 22 Jun 2014) Log Message: ----------- New upstream release. Modified Paths: -------------- csw/mgar/pkg/cfengine3/trunk/Makefile csw/mgar/pkg/cfengine3/trunk/checksums csw/mgar/pkg/cfengine3/trunk/files/changelog.CSW Added Paths: ----------- csw/mgar/pkg/cfengine3/trunk/files/0001-Add-include-sys-loadavg.h-to-tests.h.patch csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-where-neccessary-in-unittests.patch csw/mgar/pkg/cfengine3/trunk/files/0003-Fix-lastseen_threaded_load.c.patch csw/mgar/pkg/cfengine3/trunk/files/0004-Disable-acceptance-tests.patch Removed Paths: ------------- csw/mgar/pkg/cfengine3/trunk/files/0000-Disable-acceptance-test.patch csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch csw/mgar/pkg/cfengine3/trunk/files/0003-Make-it-compile-under-solaris-11.patch Modified: csw/mgar/pkg/cfengine3/trunk/Makefile =================================================================== --- csw/mgar/pkg/cfengine3/trunk/Makefile 2014-06-21 13:20:23 UTC (rev 23817) +++ csw/mgar/pkg/cfengine3/trunk/Makefile 2014-06-22 19:24:25 UTC (rev 23818) @@ -1,7 +1,7 @@ # $Id$ # NAME = cfengine3 -VERSION = 3.5.3 +VERSION = 3.6.0 GARTYPE = v2 GARCOMPILER = GCC4 @@ -16,7 +16,7 @@ endef DISTNAME = cfengine-$(VERSION) -MASTER_SITES = http://www.cfengine.com/source-code/download/ +MASTER_SITES = https://s3.amazonaws.com/cfengine.package-repos/tarballs/ DISTFILES = $(DISTNAME).tar.gz DISTFILES += $(NAME)rc DISTFILES += CSW$(NAME)utils.postinstall @@ -38,9 +38,12 @@ # uncomment the next line. Otherwise it is set by default to the value of MASTER_SITES # UPSTREAM_MASTER_SITES = -PATCHFILES += 0000-Disable-acceptance-test.patch -PATCHFILES += 0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch -PATCHFILES += 0003-Make-it-compile-under-solaris-11.patch +#PATCHFILES += 0000-Disable-acceptance-test.patch +#PATCHFILES += 0003-Make-it-compile-under-solaris-11.patch +PATCHFILES += 0001-Add-include-sys-loadavg.h-to-tests.h.patch +PATCHFILES += 0002-Add-z-interpose-where-neccessary-in-unittests.patch +PATCHFILES += 0003-Fix-lastseen_threaded_load.c.patch +PATCHFILES += 0004-Disable-acceptance-tests.patch # # CUSTOM VARIABLES @@ -136,6 +139,8 @@ EXTRA_CONFIGURE_ENV = LIBS="-lsocket -lnsl" include gar/category.mk +# Require GNU id command... +PATH:=/opt/csw/gnu:$(PATH) post-install-modulated: rename-cfengine-dir make-cfengine-workdir install-cfengine-links install-smf-manifests install-cfengine3rc install-cfengine3-csw-doc move-libpromises move-binaries @$(MAKECOOKIE) Modified: csw/mgar/pkg/cfengine3/trunk/checksums =================================================================== --- csw/mgar/pkg/cfengine3/trunk/checksums 2014-06-21 13:20:23 UTC (rev 23817) +++ csw/mgar/pkg/cfengine3/trunk/checksums 2014-06-22 19:24:25 UTC (rev 23818) @@ -1 +1 @@ -c840eb0163924ca657ab180fe5a170b4 cfengine-3.5.3.tar.gz +42b0d3a90a1b60bf25cf63ccd6366f59 cfengine-3.6.0.tar.gz Deleted: csw/mgar/pkg/cfengine3/trunk/files/0000-Disable-acceptance-test.patch =================================================================== --- csw/mgar/pkg/cfengine3/trunk/files/0000-Disable-acceptance-test.patch 2014-06-21 13:20:23 UTC (rev 23817) +++ csw/mgar/pkg/cfengine3/trunk/files/0000-Disable-acceptance-test.patch 2014-06-22 19:24:25 UTC (rev 23818) @@ -1,26 +0,0 @@ -From 4e30aaf0a0122218639f4232424d3e3b4877f2b7 Mon Sep 17 00:00:00 2001 -From: Rafael Ostertag -Date: Sat, 28 Sep 2013 17:26:48 +0200 -Subject: [PATCH] Disable acceptance test. - -Tried to make it work, but didn't succeed, so I gave up... ---- - tests/Makefile.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/Makefile.in b/tests/Makefile.in -index fe93e76..b12df55 100644 ---- a/tests/Makefile.in -+++ b/tests/Makefile.in -@@ -285,7 +285,7 @@ top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ - workdir = @workdir@ --SUBDIRS = unit load acceptance -+SUBDIRS = unit load - all: all-recursive - - .SUFFIXES: --- -1.8.3.4 - Added: csw/mgar/pkg/cfengine3/trunk/files/0001-Add-include-sys-loadavg.h-to-tests.h.patch =================================================================== --- csw/mgar/pkg/cfengine3/trunk/files/0001-Add-include-sys-loadavg.h-to-tests.h.patch (rev 0) +++ csw/mgar/pkg/cfengine3/trunk/files/0001-Add-include-sys-loadavg.h-to-tests.h.patch 2014-06-22 19:24:25 UTC (rev 23818) @@ -0,0 +1,24 @@ +From 86c74524fd8d2d66b1e72e80dd5f28889de5e0c8 Mon Sep 17 00:00:00 2001 +From: Rafael Ostertag +Date: Sat, 21 Jun 2014 11:38:28 +0200 +Subject: [PATCH] Add #include to tests.h. + +--- + tests/unit/test.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/unit/test.h b/tests/unit/test.h +index e4ce568..0cdf1a7 100644 +--- a/tests/unit/test.h ++++ b/tests/unit/test.h +@@ -6,6 +6,7 @@ + #include + #include + #include ++#include + + #pragma GCC diagnostic ignored "-Wunused-parameter" + +-- +1.8.4.1 + Deleted: csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch =================================================================== --- csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch 2014-06-21 13:20:23 UTC (rev 23817) +++ csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-to-evalfunction_test-and-set_domainn.patch 2014-06-22 19:24:25 UTC (rev 23818) @@ -1,34 +0,0 @@ -From 7db6e67b943a7f8d04c0e9d05028239c0727a048 Mon Sep 17 00:00:00 2001 -From: Rafael Ostertag -Date: Thu, 26 Dec 2013 18:26:17 +0100 -Subject: [PATCH] Add -z interpose to evalfunction_test and set_domainname_test - ---- - tests/unit/Makefile.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/tests/unit/Makefile.in b/tests/unit/Makefile.in -index 9304065..cfea627 100644 ---- a/tests/unit/Makefile.in -+++ b/tests/unit/Makefile.in -@@ -205,7 +205,7 @@ domainname_test_DEPENDENCIES = ../../libpromises/libpromises.la \ - libtest.la - evalfunction_test_SOURCES = evalfunction_test.c - evalfunction_test_OBJECTS = evalfunction_test.$(OBJEXT) --evalfunction_test_LDADD = $(LDADD) -+evalfunction_test_LDADD = $(LDADD) -z interpose - evalfunction_test_DEPENDENCIES = ../../libpromises/libpromises.la \ - libtest.la - am_exec_config_test_OBJECTS = exec-config-test.$(OBJEXT) \ -@@ -728,7 +728,7 @@ csv_writer_test_SOURCES = csv_writer_test.c ../../libutils/csv_writer.c - csv_writer_test_LDADD = libtest.la libstr.la - conversion_test_SOURCES = conversion_test.c ../../libpromises/conversion.c - set_domainname_test_SOURCES = set_domainname_test.c --set_domainname_test_LDADD = libstr.la ../../libpromises/libpromises.la -+set_domainname_test_LDADD = -z interpose libstr.la ../../libpromises/libpromises.la - str_test_SOURCES = str_test.c - str_test_LDADD = libstr.la - xml_writer_test_SOURCES = xml_writer_test.c ../../libutils/xml_writer.c --- -1.8.4.1 - Added: csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-where-neccessary-in-unittests.patch =================================================================== --- csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-where-neccessary-in-unittests.patch (rev 0) +++ csw/mgar/pkg/cfengine3/trunk/files/0002-Add-z-interpose-where-neccessary-in-unittests.patch 2014-06-22 19:24:25 UTC (rev 23818) @@ -0,0 +1,34 @@ +From bec3b817f076a97120e0056b4e9e035499855e2c Mon Sep 17 00:00:00 2001 +From: Rafael Ostertag +Date: Sat, 21 Jun 2014 12:02:09 +0200 +Subject: [PATCH] Add '-z interpose' where neccessary in unittests. + +--- + tests/unit/Makefile.in | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/unit/Makefile.in b/tests/unit/Makefile.in +index aa5f106..67f011b 100644 +--- a/tests/unit/Makefile.in ++++ b/tests/unit/Makefile.in +@@ -339,7 +339,7 @@ eval_context_test_DEPENDENCIES = ../../libpromises/libpromises.la \ + libtest.la + evalfunction_test_SOURCES = evalfunction_test.c + evalfunction_test_OBJECTS = evalfunction_test.$(OBJEXT) +-evalfunction_test_LDADD = $(LDADD) ++evalfunction_test_LDADD = $(LDADD) -z interpose + evalfunction_test_DEPENDENCIES = ../../libpromises/libpromises.la \ + libtest.la + am_exec_config_test_OBJECTS = exec-config-test.$(OBJEXT) \ +@@ -1254,7 +1254,7 @@ conversion_test_SOURCES = conversion_test.c ../../libpromises/conversion.c + @BUILTIN_EXTENSIONS_FALSE at cfengine_enterprise_la_LDFLAGS = -avoid-version -module -shared -export-dynamic -rpath / + @BUILTIN_EXTENSIONS_FALSE at EXTRA_enterprise_extension_test_DEPENDENCIES = cfengine-enterprise.la + set_domainname_test_SOURCES = set_domainname_test.c +-set_domainname_test_LDADD = libstr.la ../../libpromises/libpromises.la ++set_domainname_test_LDADD = libstr.la ../../libpromises/libpromises.la -z interpose + str_test_SOURCES = str_test.c + str_test_LDADD = libstr.la + xml_writer_test_SOURCES = xml_writer_test.c ../../libutils/xml_writer.c +-- +1.8.4.1 + Added: csw/mgar/pkg/cfengine3/trunk/files/0003-Fix-lastseen_threaded_load.c.patch =================================================================== --- csw/mgar/pkg/cfengine3/trunk/files/0003-Fix-lastseen_threaded_load.c.patch (rev 0) +++ csw/mgar/pkg/cfengine3/trunk/files/0003-Fix-lastseen_threaded_load.c.patch 2014-06-22 19:24:25 UTC (rev 23818) @@ -0,0 +1,62 @@ +From 86c99cf2011c171e34bc3f016c2f80611312439d Mon Sep 17 00:00:00 2001 +From: Rafael Ostertag +Date: Sun, 22 Jun 2014 20:31:48 +0200 +Subject: [PATCH] Fix lastseen_threaded_load.c. + +--- + tests/load/lastseen_threaded_load.c | 25 ++++++++++++++++++++----- + 1 file changed, 20 insertions(+), 5 deletions(-) + +diff --git a/tests/load/lastseen_threaded_load.c b/tests/load/lastseen_threaded_load.c +index a91c55d..9ff4744 100644 +--- a/tests/load/lastseen_threaded_load.c ++++ b/tests/load/lastseen_threaded_load.c +@@ -17,7 +17,15 @@ + * from child threads and read from the main one. It's only a test, so + * @ediosyncratic please spare me. */ + time_t START_TIME; +-char CFWORKDIR[CF_BUFSIZE]; ++ ++/* ++ * This doesn't work, since CFWORKDIR is defined in libpromises.so. So, whatever ++ * we do to this CFWORKDIR, it ain't be seen by libpromises.so. ++ * ++ * Why it works on FreeBSD, no clue so far... ++ * ++ * char CFWORKDIR[CF_BUFSIZE]; ++ */ + unsigned long lastsaw_COUNTER[MAX_NUM_THREADS]; + unsigned long keycount_COUNTER[MAX_NUM_THREADS]; + unsigned long scanlastseen_COUNTER[MAX_NUM_THREADS]; +@@ -179,7 +187,8 @@ void *scanlastseen_worker_thread(void *arg) + + unsigned long child_COUNTER; + int PIPE_FD[2]; +-bool child_START = false; ++/* Hmm, that should be volatile */ ++volatile bool child_START = false; + + void print_progress_handler(int signum ARG_UNUSED) + { +@@ -203,9 +212,15 @@ void worker_process() + int ret; + + /* 0. Output stdout to pipe. */ +- close(1); +- dup(PIPE_FD[1]); +- close(PIPE_FD[1]); ++ /* Really? ++ * close(1); ++ * dup(PIPE_FD[1]); ++ */ ++ dup2(PIPE_FD[1], 1); ++ /* Is that smart? I believe it should be like that ++ * close(PIPE_FD[1]); ++ */ ++ close(PIPE_FD[0]); + + /* 1a. Register SIGUSR1 handler so that we start/finish the test */ + new_handler = (struct sigaction) { .sa_handler = startstop_handler }; +-- +1.8.4.1 + Deleted: csw/mgar/pkg/cfengine3/trunk/files/0003-Make-it-compile-under-solaris-11.patch =================================================================== --- csw/mgar/pkg/cfengine3/trunk/files/0003-Make-it-compile-under-solaris-11.patch 2014-06-21 13:20:23 UTC (rev 23817) +++ csw/mgar/pkg/cfengine3/trunk/files/0003-Make-it-compile-under-solaris-11.patch 2014-06-22 19:24:25 UTC (rev 23818) @@ -1,2557 +0,0 @@ -From ae4b57fd3c073eecd9c21c0eeb59df73eddd0851 Mon Sep 17 00:00:00 2001 -From: Rafael Ostertag -Date: Fri, 27 Dec 2013 15:54:51 +0100 -Subject: [PATCH] Make it compile under solaris 11. - ---- - cf-agent/cf-agent.c | 4 +- - cf-agent/files_editline.c | 2 +- - cf-agent/files_editxml.c | 2 +- - cf-agent/vercmp.c | 4 +- - cf-agent/verify_environments.c | 2 +- - cf-agent/verify_exec.c | 2 +- - cf-agent/verify_files.c | 4 +- - cf-agent/verify_files_utils.c | 2 +- - cf-agent/verify_methods.c | 2 +- - cf-agent/verify_packages.c | 24 +- - cf-agent/verify_processes.c | 2 +- - cf-agent/verify_services.c | 10 +- - cf-execd/cf-execd.c | 2 +- - cf-gendoc/export_xml.c | 4 +- - cf-gendoc/manual.c | 2 +- - cf-monitord/verify_measurements.c | 2 +- - libpromises/attributes.c | 2 +- - libpromises/bootstrap.c | 6 +- - libpromises/cf3.defs.h | 4 +- - libpromises/conversion.c | 4 +- - libpromises/evalfunction.c | 466 +++++++++++++++++++------------------- - libpromises/expand.c | 30 +-- - libpromises/generic_agent.c | 4 +- - libpromises/policy.c | 4 +- - libpromises/rlist.c | 4 +- - libpromises/scope.c | 18 +- - libpromises/syntax.c | 14 +- - libpromises/syntax.h | 4 +- - libpromises/sysinfo.c | 100 ++++---- - libpromises/unix.c | 28 +-- - libpromises/vars.c | 10 +- - libpromises/verify_reports.c | 2 +- - tests/unit/assoc_test.c | 2 +- - tests/unit/exec-config-test.c | 2 +- - tests/unit/expand_test.c | 30 +-- - tests/unit/scope_test.c | 6 +- - tests/unit/set_domainname_test.c | 2 +- - 37 files changed, 406 insertions(+), 406 deletions(-) - -diff --git a/cf-agent/cf-agent.c b/cf-agent/cf-agent.c -index 61ca750..d969bc9 100644 ---- a/cf-agent/cf-agent.c -+++ b/cf-agent/cf-agent.c -@@ -1311,7 +1311,7 @@ static void DefaultVarPromise(EvalContext *ctx, const Promise *pp) - - switch (dt) - { -- case DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING: - case DATA_TYPE_INT: - case DATA_TYPE_REAL: - -@@ -1327,7 +1327,7 @@ static void DefaultVarPromise(EvalContext *ctx, const Promise *pp) - - break; - -- case DATA_TYPE_STRING_LIST: -+ case CFE_DATA_TYPE_STRING_LIST: - case DATA_TYPE_INT_LIST: - case DATA_TYPE_REAL_LIST: - -diff --git a/cf-agent/files_editline.c b/cf-agent/files_editline.c -index ab8e7a7..12dcde6 100644 ---- a/cf-agent/files_editline.c -+++ b/cf-agent/files_editline.c -@@ -114,7 +114,7 @@ int ScheduleEditLineOperations(EvalContext *ctx, Bundle *bp, Attributes a, const - return false; - } - -- ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, CFE_DATA_TYPE_STRING); - - for (pass = 1; pass < CF_DONEPASSES; pass++) - { -diff --git a/cf-agent/files_editxml.c b/cf-agent/files_editxml.c -index ebe953e..ef5510f 100644 ---- a/cf-agent/files_editxml.c -+++ b/cf-agent/files_editxml.c -@@ -160,7 +160,7 @@ int ScheduleEditXmlOperations(EvalContext *ctx, Bundle *bp, Attributes a, const - return false; - } - -- ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "edit", "filename", edcontext->filename, CFE_DATA_TYPE_STRING); - - for (pass = 1; pass < CF_DONEPASSES; pass++) - { -diff --git a/cf-agent/vercmp.c b/cf-agent/vercmp.c -index ce932a5..3e32cf8 100644 ---- a/cf-agent/vercmp.c -+++ b/cf-agent/vercmp.c -@@ -64,8 +64,8 @@ static VersionCmpResult RunCmpCommand(EvalContext *ctx, const char *command, con - char expanded_command[CF_EXPANDSIZE]; - - { -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v1" }, (Rval) { v1, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v2" }, (Rval) { v2, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v1" }, (Rval) { v1, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "v2" }, (Rval) { v2, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - ExpandScalar(ctx, "cf_pack_context", command, expanded_command); - - ScopeClear("cf_pack_context"); -diff --git a/cf-agent/verify_environments.c b/cf-agent/verify_environments.c -index 67e6fab..fe0471f 100644 ---- a/cf-agent/verify_environments.c -+++ b/cf-agent/verify_environments.c -@@ -136,7 +136,7 @@ void VerifyEnvironmentsPromise(EvalContext *ctx, Promise *pp) - } - - PromiseBanner(pp); -- ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CFE_DATA_TYPE_STRING); - - pexp = ExpandDeRefPromise(ctx, "this", pp); - VerifyEnvironments(ctx, a, pp); -diff --git a/cf-agent/verify_exec.c b/cf-agent/verify_exec.c -index 1dd7a86..b7c46d7 100644 ---- a/cf-agent/verify_exec.c -+++ b/cf-agent/verify_exec.c -@@ -64,7 +64,7 @@ void VerifyExecPromise(EvalContext *ctx, Promise *pp) - - a = GetExecAttributes(ctx, pp); - -- ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CFE_DATA_TYPE_STRING); - - if (!SyntaxCheckExec(a, pp)) - { -diff --git a/cf-agent/verify_files.c b/cf-agent/verify_files.c -index 8e28387..c1e556f 100644 ---- a/cf-agent/verify_files.c -+++ b/cf-agent/verify_files.c -@@ -197,7 +197,7 @@ static void VerifyFilePromise(EvalContext *ctx, char *path, Promise *pp) - } - - ScopeDeleteSpecial("this", "promiser"); -- ScopeNewSpecial(ctx, "this", "promiser", path, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "promiser", path, CFE_DATA_TYPE_STRING); - - thislock = AcquireLock(ctx, path, VUQNAME, CFSTARTTIME, a.transaction, pp, false); - -@@ -589,7 +589,7 @@ static void FindFilePromiserObjects(EvalContext *ctx, Promise *pp) - if (literal) - { - // Prime the promiser temporarily, may override later -- ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CFE_DATA_TYPE_STRING); - VerifyFilePromise(ctx, pp->promiser, pp); - } - else // Default is to expand regex paths -diff --git a/cf-agent/verify_files_utils.c b/cf-agent/verify_files_utils.c -index 85d0637..ef4de98 100644 ---- a/cf-agent/verify_files_utils.c -+++ b/cf-agent/verify_files_utils.c -@@ -124,7 +124,7 @@ int VerifyFileLeaf(EvalContext *ctx, char *path, struct stat *sb, Attributes att - /* We still need to augment the scope of context "this" for commands */ - - ScopeDeleteSpecial("this", "promiser"); -- ScopeNewSpecial(ctx, "this", "promiser", path, DATA_TYPE_STRING); // Parameters may only be scalars -+ ScopeNewSpecial(ctx, "this", "promiser", path, CFE_DATA_TYPE_STRING); // Parameters may only be scalars - - if (attr.transformer != NULL) - { -diff --git a/cf-agent/verify_methods.c b/cf-agent/verify_methods.c -index 14296e2..8288c56 100644 ---- a/cf-agent/verify_methods.c -+++ b/cf-agent/verify_methods.c -@@ -227,7 +227,7 @@ static void GetReturnValue(EvalContext *ctx, char *scope, Promise *pp) - snprintf(newname, CF_BUFSIZE, "%s", result); - } - -- EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(pp)->name, newname }, assoc->rval, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(pp)->name, newname }, assoc->rval, CFE_DATA_TYPE_STRING); - } - } - -diff --git a/cf-agent/verify_packages.c b/cf-agent/verify_packages.c -index fc8823d..38bec73 100644 ---- a/cf-agent/verify_packages.c -+++ b/cf-agent/verify_packages.c -@@ -940,9 +940,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve - - if ((a.packages.package_name_convention) || (a.packages.package_delete_convention)) - { -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { version, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { version, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - - if ((a.packages.package_delete_convention) && (a.packages.package_policy == PACKAGE_ACTION_DELETE)) - { -@@ -1004,9 +1004,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve - if ((a.packages.package_file_repositories != NULL)) - { - { -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - ExpandScalar(ctx, "cf_pack_context_anyver", a.packages.package_name_convention, refAnyVer); - - ScopeClear("cf_pack_context_anyver"); -@@ -1124,9 +1124,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve - if ((a.packages.package_file_repositories != NULL)) - { - { -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "version" }, (Rval) { "(.*)", RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context_anyver", "arch" }, (Rval) { arch, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - ExpandScalar(ctx, "cf_pack_context_anyver", a.packages.package_name_convention, refAnyVer); - - ScopeClear("cf_pack_context_anyver"); -@@ -1189,9 +1189,9 @@ static void SchedulePackageOp(EvalContext *ctx, const char *name, const char *ve - } - - { -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { instVer, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -- EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { instArch, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "name" }, (Rval) { name, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "version" }, (Rval) { instVer, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, "cf_pack_context", "arch" }, (Rval) { instArch, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - ExpandScalar(ctx, "cf_pack_context", a.packages.package_delete_convention, reference2); - id_del = reference2; - -diff --git a/cf-agent/verify_processes.c b/cf-agent/verify_processes.c -index ebd9975..700f0d8 100644 ---- a/cf-agent/verify_processes.c -+++ b/cf-agent/verify_processes.c -@@ -124,7 +124,7 @@ static void VerifyProcesses(EvalContext *ctx, Attributes a, Promise *pp) - } - - ScopeDeleteSpecial("this", "promiser"); -- ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CFE_DATA_TYPE_STRING); - PromiseBanner(pp); - VerifyProcessOp(ctx, PROCESSTABLE, a, pp); - ScopeDeleteSpecial("this", "promiser"); -diff --git a/cf-agent/verify_services.c b/cf-agent/verify_services.c -index 9adb726..613136e 100644 ---- a/cf-agent/verify_services.c -+++ b/cf-agent/verify_services.c -@@ -163,7 +163,7 @@ void VerifyServices(EvalContext *ctx, Attributes a, Promise *pp) - return; - } - -- ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "promiser", pp->promiser, CFE_DATA_TYPE_STRING); - PromiseBanner(pp); - - if (strcmp(a.service.service_type, "windows") == 0) -@@ -229,21 +229,21 @@ static void DoVerifyServices(EvalContext *ctx, Attributes a, Promise *pp) - switch (a.service.service_policy) - { - case SERVICE_POLICY_START: -- ScopeNewSpecial(ctx, "this", "service_policy", "start", DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "service_policy", "start", CFE_DATA_TYPE_STRING); - break; - - case SERVICE_POLICY_RESTART: -- ScopeNewSpecial(ctx, "this", "service_policy", "restart", DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "service_policy", "restart", CFE_DATA_TYPE_STRING); - break; - - case SERVICE_POLICY_RELOAD: -- ScopeNewSpecial(ctx, "this", "service_policy", "reload", DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "service_policy", "reload", CFE_DATA_TYPE_STRING); - break; - - case SERVICE_POLICY_STOP: - case SERVICE_POLICY_DISABLE: - default: -- ScopeNewSpecial(ctx, "this", "service_policy", "stop", DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "service_policy", "stop", CFE_DATA_TYPE_STRING); - break; - } - -diff --git a/cf-execd/cf-execd.c b/cf-execd/cf-execd.c -index 7f25dc2..0ac4cb1 100644 ---- a/cf-execd/cf-execd.c -+++ b/cf-execd/cf-execd.c -@@ -553,7 +553,7 @@ static bool ScheduleRun(EvalContext *ctx, Policy **policy, GenericAgentConfig *c - free(existing_policy_server); - } - -- ScopeNewSpecial(ctx, "sys", "policy_hub", POLICY_SERVER, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "sys", "policy_hub", POLICY_SERVER, CFE_DATA_TYPE_STRING); - - GetNameInfo3(ctx, AGENT_TYPE_EXECUTOR); - GetInterfacesInfo(ctx, AGENT_TYPE_EXECUTOR); -diff --git a/cf-gendoc/export_xml.c b/cf-gendoc/export_xml.c -index e8699ff..1e8463c 100644 ---- a/cf-gendoc/export_xml.c -+++ b/cf-gendoc/export_xml.c -@@ -454,8 +454,8 @@ static void XmlExportType(Writer *writer, const ConstraintSyntax *constraint_syn - break; - } - -- case DATA_TYPE_STRING: -- case DATA_TYPE_STRING_LIST: -+ case CFE_DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING_LIST: - case DATA_TYPE_CONTEXT: - case DATA_TYPE_CONTEXT_LIST: - /* XML ELEMENT -- ACCEPTED-VALUES */ -diff --git a/cf-gendoc/manual.c b/cf-gendoc/manual.c -index f1096ee..18cca16 100644 ---- a/cf-gendoc/manual.c -+++ b/cf-gendoc/manual.c -@@ -249,7 +249,7 @@ void TexinfoManual(EvalContext *ctx, const char *source_dir, const char *output_ - - // scopes const and sys - -- ScopeNewSpecial(ctx, "edit", "filename", "x", DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "edit", "filename", "x", CFE_DATA_TYPE_STRING); - - ScopePutMatch(0, "x"); - -diff --git a/cf-monitord/verify_measurements.c b/cf-monitord/verify_measurements.c -index 1c35a16..6ee995c 100644 ---- a/cf-monitord/verify_measurements.c -+++ b/cf-monitord/verify_measurements.c -@@ -98,7 +98,7 @@ static bool CheckMeasureSanity(Measurement m, Promise *pp) - switch (m.data_type) - { - case DATA_TYPE_COUNTER: -- case DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING: - case DATA_TYPE_INT: - case DATA_TYPE_REAL: - break; -diff --git a/libpromises/attributes.c b/libpromises/attributes.c -index 3b8e1f4..8c95b14 100644 ---- a/libpromises/attributes.c -+++ b/libpromises/attributes.c -@@ -1608,7 +1608,7 @@ Measurement GetMeasurementConstraint(const EvalContext *ctx, const Promise *pp) - - if (m.data_type == DATA_TYPE_NONE) - { -- m.data_type = DATA_TYPE_STRING; -+ m.data_type = CFE_DATA_TYPE_STRING; - } - - m.history_type = ConstraintGetRvalValue(ctx, "history_type", pp, RVAL_TYPE_SCALAR); -diff --git a/libpromises/bootstrap.c b/libpromises/bootstrap.c -index 0cd27f1..c6dbe3f 100644 ---- a/libpromises/bootstrap.c -+++ b/libpromises/bootstrap.c -@@ -113,12 +113,12 @@ void SetPolicyServer(EvalContext *ctx, const char *new_policy_server) - if (new_policy_server) - { - snprintf(POLICY_SERVER, CF_MAX_IP_LEN, "%s", new_policy_server); -- ScopeNewSpecial(ctx, "sys", "policy_hub", new_policy_server, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "sys", "policy_hub", new_policy_server, CFE_DATA_TYPE_STRING); - } - else - { - POLICY_SERVER[0] = '\0'; -- ScopeNewSpecial(ctx, "sys", "policy_hub", "undefined", DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "sys", "policy_hub", "undefined", CFE_DATA_TYPE_STRING); - } - - // Get the timestamp on policy update -@@ -137,7 +137,7 @@ void SetPolicyServer(EvalContext *ctx, const char *new_policy_server) - char timebuf[26]; - cf_strtimestamp_local(sb.st_mtime, timebuf); - -- ScopeNewSpecial(ctx, "sys", "last_policy_update", timebuf, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "sys", "last_policy_update", timebuf, CFE_DATA_TYPE_STRING); - } - - static char *PolicyServerFilename(const char *workdir) -diff --git a/libpromises/cf3.defs.h b/libpromises/cf3.defs.h -index c04c2a1..db6c565 100644 ---- a/libpromises/cf3.defs.h -+++ b/libpromises/cf3.defs.h -@@ -428,10 +428,10 @@ typedef struct FnCall_ FnCall; - - typedef enum - { -- DATA_TYPE_STRING, -+ CFE_DATA_TYPE_STRING, - DATA_TYPE_INT, - DATA_TYPE_REAL, -- DATA_TYPE_STRING_LIST, -+ CFE_DATA_TYPE_STRING_LIST, - DATA_TYPE_INT_LIST, - DATA_TYPE_REAL_LIST, - DATA_TYPE_OPTION, -diff --git a/libpromises/conversion.c b/libpromises/conversion.c -index 4c4b7c6..81a8fe7 100644 ---- a/libpromises/conversion.c -+++ b/libpromises/conversion.c -@@ -274,10 +274,10 @@ FileComparator FileComparatorFromString(const char *s) - - static const char *datatype_strings[] = - { -- [DATA_TYPE_STRING] = "string", -+ [CFE_DATA_TYPE_STRING] = "string", - [DATA_TYPE_INT] = "int", - [DATA_TYPE_REAL] = "real", -- [DATA_TYPE_STRING_LIST] = "slist", -+ [CFE_DATA_TYPE_STRING_LIST] = "slist", - [DATA_TYPE_INT_LIST] = "ilist", - [DATA_TYPE_REAL_LIST] = "rlist", - [DATA_TYPE_OPTION] = "option", -diff --git a/libpromises/evalfunction.c b/libpromises/evalfunction.c -index e714fec..e18970a 100644 ---- a/libpromises/evalfunction.c -+++ b/libpromises/evalfunction.c -@@ -228,7 +228,7 @@ static FnCallResult FnCallAnd(EvalContext *ctx, FnCall *fp, Rlist *finalargs) - /* We need to check all the arguments, ArgTemplate does not check varadic functions */ - for (arg = finalargs; arg; arg = arg->next) - { -- SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1); -+ SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CFE_DATA_TYPE_STRING, "", 1); - if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED) - { - FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err)); -@@ -635,7 +635,7 @@ static FnCallResult FnCallConcat(EvalContext *ctx, FnCall *fp, Rlist *finalargs) - /* We need to check all the arguments, ArgTemplate does not check varadic functions */ - for (arg = finalargs; arg; arg = arg->next) - { -- SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1); -+ SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CFE_DATA_TYPE_STRING, "", 1); - if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED) - { - FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err)); -@@ -684,7 +684,7 @@ static FnCallResult FnCallIfElse(EvalContext *ctx, FnCall *fp, Rlist *finalargs) - /* We need to check all the arguments, ArgTemplate does not check varadic functions */ - for (arg = finalargs; arg; arg = arg->next) - { -- SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1); -+ SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CFE_DATA_TYPE_STRING, "", 1); - if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED) - { - FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err)); -@@ -1611,7 +1611,7 @@ static FnCallResult FnCallGetFields(EvalContext *ctx, FnCall *fp, Rlist *finalar - for (rp = newlist; rp != NULL; rp = rp->next) - { - snprintf(name, CF_MAXVARSIZE - 1, "%s[%d]", array_lval, vcount); -- EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, name }, (Rval) { RlistScalarValue(rp), RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, name }, (Rval) { RlistScalarValue(rp), RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - Log(LOG_LEVEL_VERBOSE, "getfields: defining '%s' => '%s'", name, RlistScalarValue(rp)); - vcount++; - } -@@ -1795,12 +1795,12 @@ static FnCallResult FnCallMapArray(EvalContext *ctx, FnCall *fp, Rlist *finalarg - - if (strlen(index) > 0) - { -- ScopeNewSpecial(ctx, "this", "k", index, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "k", index, CFE_DATA_TYPE_STRING); - - switch (assoc->rval.type) - { - case RVAL_TYPE_SCALAR: -- ScopeNewSpecial(ctx, "this", "v", assoc->rval.item, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "v", assoc->rval.item, CFE_DATA_TYPE_STRING); - ExpandScalar(ctx, PromiseGetBundle(fp->caller)->name, map, expbuf); - - if (strstr(expbuf, "$(this.k)") || strstr(expbuf, "${this.k}") || -@@ -1819,7 +1819,7 @@ static FnCallResult FnCallMapArray(EvalContext *ctx, FnCall *fp, Rlist *finalarg - case RVAL_TYPE_LIST: - for (rp = assoc->rval.item; rp != NULL; rp = rp->next) - { -- ScopeNewSpecial(ctx, "this", "v", rp->item, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "v", rp->item, CFE_DATA_TYPE_STRING); - ExpandScalar(ctx, PromiseGetBundle(fp->caller)->name, map, expbuf); - - if (strstr(expbuf, "$(this.k)") || strstr(expbuf, "${this.k}") || -@@ -1903,7 +1903,7 @@ static FnCallResult FnCallMapList(EvalContext *ctx, FnCall *fp, Rlist *finalargs - return (FnCallResult) { FNCALL_FAILURE }; - } - -- if (retype != DATA_TYPE_STRING_LIST && retype != DATA_TYPE_INT_LIST && retype != DATA_TYPE_REAL_LIST) -+ if (retype != CFE_DATA_TYPE_STRING_LIST && retype != DATA_TYPE_INT_LIST && retype != DATA_TYPE_REAL_LIST) - { - return (FnCallResult) { FNCALL_FAILURE }; - } -@@ -1911,7 +1911,7 @@ static FnCallResult FnCallMapList(EvalContext *ctx, FnCall *fp, Rlist *finalargs - for (const Rlist *rp = RvalRlistValue(rval); rp != NULL; rp = rp->next) - { - const char *current_value = RlistScalarValue(rp); -- ScopeNewSpecial(ctx, "this", "this", current_value, DATA_TYPE_STRING); -+ ScopeNewSpecial(ctx, "this", "this", current_value, CFE_DATA_TYPE_STRING); - - ExpandScalar(ctx, "this", map, expbuf); - -@@ -2051,7 +2051,7 @@ static FnCallResult FnCallSelectServers(EvalContext *ctx, FnCall *fp, Rlist *fin - { - Log(LOG_LEVEL_VERBOSE, "Host '%s' is alive and responding correctly", RlistScalarValue(rp)); - snprintf(buffer, CF_MAXVARSIZE - 1, "%s[%d]", array_lval, count); -- EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - count++; - } - } -@@ -2059,7 +2059,7 @@ static FnCallResult FnCallSelectServers(EvalContext *ctx, FnCall *fp, Rlist *fin - { - Log(LOG_LEVEL_VERBOSE, "Host '%s' is alive", RlistScalarValue(rp)); - snprintf(buffer, CF_MAXVARSIZE - 1, "%s[%d]", array_lval, count); -- EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, buffer }, (Rval) { rp->item, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - - if (IsDefinedClass(ctx, CanonifyName(rp->item), PromiseGetNamespace(fp->caller))) - { -@@ -2099,7 +2099,7 @@ static FnCallResult FnCallShuffle(EvalContext *ctx, FnCall *fp, Rlist *finalargs - return (FnCallResult) { FNCALL_FAILURE }; - } - -- if (list_dtype != DATA_TYPE_STRING_LIST) -+ if (list_dtype != CFE_DATA_TYPE_STRING_LIST) - { - Log(LOG_LEVEL_ERR, "Function '%s' expected a variable that resolves to a string list, got '%s'", fp->name, DataTypeToString(list_dtype)); - return (FnCallResult) { FNCALL_FAILURE }; -@@ -2727,7 +2727,7 @@ static FnCallResult FnCallSort(EvalContext *ctx, FnCall *fp, Rlist *finalargs) - - VarRefDestroy(list_var_lval); - -- if (list_var_dtype != DATA_TYPE_STRING_LIST) -+ if (list_var_dtype != CFE_DATA_TYPE_STRING_LIST) - { - return (FnCallResult) { FNCALL_FAILURE }; - } -@@ -2748,7 +2748,7 @@ static FnCallResult FnCallFormat(EvalContext *ctx, FnCall *fp, Rlist *finalargs) - /* We need to check all the arguments, ArgTemplate does not check varadic functions */ - for (const Rlist *arg = finalargs; arg; arg = arg->next) - { -- SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1); -+ SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CFE_DATA_TYPE_STRING, "", 1); - if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED) - { - FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err)); -@@ -3549,7 +3549,7 @@ static FnCallResult FnCallRegExtract(EvalContext *ctx, FnCall *fp, Rlist *finala - else - { - snprintf(var, CF_MAXVARSIZE - 1, "%s[%s]", arrayname, assoc->lval); -- EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, var }, assoc->rval, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, PromiseGetBundle(fp->caller)->name, var }, assoc->rval, CFE_DATA_TYPE_STRING); - } - } - } -@@ -3766,7 +3766,7 @@ static FnCallResult FnCallReverse(EvalContext *ctx, FnCall *fp, Rlist *finalargs - return (FnCallResult) { FNCALL_FAILURE }; - } - -- if (list_dtype != DATA_TYPE_STRING_LIST) -+ if (list_dtype != CFE_DATA_TYPE_STRING_LIST) - { - Log(LOG_LEVEL_ERR, "Function '%s' expected a variable that resolves to a string list, got '%s'", fp->name, DataTypeToString(list_dtype)); - return (FnCallResult) { FNCALL_FAILURE }; -@@ -3836,7 +3836,7 @@ static FnCallResult FnCallOr(EvalContext *ctx, FnCall *fp, Rlist *finalargs) - /* We need to check all the arguments, ArgTemplate does not check varadic functions */ - for (arg = finalargs; arg; arg = arg->next) - { -- SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, DATA_TYPE_STRING, "", 1); -+ SyntaxTypeMatch err = CheckConstraintTypeMatch(id, (Rval) {arg->item, arg->type}, CFE_DATA_TYPE_STRING, "", 1); - if (err != SYNTAX_TYPE_MATCH_OK && err != SYNTAX_TYPE_MATCH_ERROR_UNEXPANDED) - { - FatalError(ctx, "in %s: %s", id, SyntaxTypeMatchToString(err)); -@@ -4116,7 +4116,7 @@ static FnCallResult ReadList(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Dat - - switch (type) - { -- case DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING: - break; - - case DATA_TYPE_INT: -@@ -4163,7 +4163,7 @@ static FnCallResult ReadList(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Dat - - static FnCallResult FnCallReadStringList(EvalContext *ctx, FnCall *fp, Rlist *args) - { -- return ReadList(ctx, fp, args, DATA_TYPE_STRING); -+ return ReadList(ctx, fp, args, CFE_DATA_TYPE_STRING); - } - - static FnCallResult FnCallReadIntList(EvalContext *ctx, FnCall *fp, Rlist *args) -@@ -4228,7 +4228,7 @@ static FnCallResult ReadArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Da - - switch (type) - { -- case DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING: - case DATA_TYPE_INT: - case DATA_TYPE_REAL: - break; -@@ -4249,14 +4249,14 @@ static FnCallResult ReadArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, Da - - static FnCallResult FnCallReadStringArray(EvalContext *ctx, FnCall *fp, Rlist *args) - { -- return ReadArray(ctx, fp, args, DATA_TYPE_STRING, false); -+ return ReadArray(ctx, fp, args, CFE_DATA_TYPE_STRING, false); - } - - /*********************************************************************/ - - static FnCallResult FnCallReadStringArrayIndex(EvalContext *ctx, FnCall *fp, Rlist *args) - { -- return ReadArray(ctx, fp, args, DATA_TYPE_STRING, true); -+ return ReadArray(ctx, fp, args, CFE_DATA_TYPE_STRING, true); - } - - /*********************************************************************/ -@@ -4327,7 +4327,7 @@ static FnCallResult ParseArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, D - - switch (type) - { -- case DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING: - case DATA_TYPE_INT: - case DATA_TYPE_REAL: - break; -@@ -4348,14 +4348,14 @@ static FnCallResult ParseArray(EvalContext *ctx, FnCall *fp, Rlist *finalargs, D - - static FnCallResult FnCallParseStringArray(EvalContext *ctx, FnCall *fp, Rlist *args) - { -- return ParseArray(ctx, fp, args, DATA_TYPE_STRING, false); -+ return ParseArray(ctx, fp, args, CFE_DATA_TYPE_STRING, false); - } - - /*********************************************************************/ - - static FnCallResult FnCallParseStringArrayIndex(EvalContext *ctx, FnCall *fp, Rlist *args) - { -- return ParseArray(ctx, fp, args, DATA_TYPE_STRING, true); -+ return ParseArray(ctx, fp, args, CFE_DATA_TYPE_STRING, true); - } - - /*********************************************************************/ -@@ -4854,7 +4854,7 @@ static int BuildLineArray(EvalContext *ctx, const Bundle *bundle, char *array_lv - - switch (type) - { -- case DATA_TYPE_STRING: -+ case CFE_DATA_TYPE_STRING: - strncpy(this_rval, rp->item, CF_MAXVARSIZE - 1); - break; - -@@ -5028,7 +5028,7 @@ void ModuleProtocol(EvalContext *ctx, char *command, char *line, int print, cons - if (CheckID(name)) - { - Log(LOG_LEVEL_VERBOSE, "Defined variable '%s' in context '%s' with value '%s'", name, context, content); -- EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { content, RVAL_TYPE_SCALAR }, DATA_TYPE_STRING); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { content, RVAL_TYPE_SCALAR }, CFE_DATA_TYPE_STRING); - } - break; - -@@ -5043,7 +5043,7 @@ void ModuleProtocol(EvalContext *ctx, char *command, char *line, int print, cons - list = RlistParseString(content); - Log(LOG_LEVEL_VERBOSE, "Defined variable '%s' in context '%s' with value '%s'", name, context, content); - -- EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { list, RVAL_TYPE_LIST }, DATA_TYPE_STRING_LIST); -+ EvalContextVariablePut(ctx, (VarRef) { NULL, context, name }, (Rval) { list, RVAL_TYPE_LIST }, CFE_DATA_TYPE_STRING_LIST); - } - break; - -@@ -5095,8 +5095,8 @@ FnCallResult CallFunction(EvalContext *ctx, const FnCallType *function, FnCall * - - FnCallArg ACCESSEDBEFORE_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Newer filename"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Older filename"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Newer filename"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Older filename"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5140,26 +5140,26 @@ FnCallArg LATERTHAN_ARGS[] = - - FnCallArg CANONIFY_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "String containing non-identifier characters"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "String containing non-identifier characters"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg CHANGEDBEFORE_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Newer filename"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Older filename"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Newer filename"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Older filename"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg CLASSIFY_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Input string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Input string"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg CLASSMATCH_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5170,38 +5170,38 @@ FnCallArg CONCAT_ARGS[] = - - FnCallArg COUNTCLASSESMATCHING_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg COUNTLINESMATCHING_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Filename"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Filename"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg DIRNAME_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "File path"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "File path"}, - {NULL, DATA_TYPE_NONE, NULL}, - }; - - FnCallArg DISKFREE_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File system directory"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File system directory"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg ESCAPE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "IP address or string to escape"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "IP address or string to escape"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg EXECRESULT_ARGS[] = - { -- {CF_PATHRANGE, DATA_TYPE_STRING, "Fully qualified command path"}, -+ {CF_PATHRANGE, CFE_DATA_TYPE_STRING, "Fully qualified command path"}, - {"useshell,noshell,powershell", DATA_TYPE_OPTION, "Shell encapsulation option"}, - {NULL, DATA_TYPE_NONE, NULL} - }; -@@ -5210,27 +5210,27 @@ FnCallArg EXECRESULT_ARGS[] = - - FnCallArg FILESTAT_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File object name"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File object name"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg FILESTAT_DETAIL_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File object name"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File object name"}, - {"size,gid,uid,ino,nlink,ctime,atime,mtime,mode,modeoct,permstr,permoct,type,devno,dev_minor,dev_major,basename,dirname", DATA_TYPE_OPTION, "stat() field to get"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg FILESEXIST_ARGS[] = - { -- {CF_NAKEDLRANGE, DATA_TYPE_STRING, "Array identifier containing list"}, -+ {CF_NAKEDLRANGE, CFE_DATA_TYPE_STRING, "Array identifier containing list"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg FILTER_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression or string"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression or string"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {CF_BOOL, DATA_TYPE_OPTION, "Match as regular expression if true, as exact string otherwise"}, - {CF_BOOL, DATA_TYPE_OPTION, "Invert matches"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of matches to return"}, -@@ -5239,95 +5239,95 @@ FnCallArg FILTER_ARGS[] = - - FnCallArg GETFIELDS_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression to match line"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Filename to read"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression to split fields"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Return array name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression to match line"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Filename to read"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression to split fields"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Return array name"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GETINDICES_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine array identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine array identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GETUSERS_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Comma separated list of User names"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Comma separated list of UserID numbers"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Comma separated list of User names"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Comma separated list of UserID numbers"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GETENV_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Name of environment variable"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Name of environment variable"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of characters to read "}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GETGID_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Group name in text"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Group name in text"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GETUID_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "User name in text"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "User name in text"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GREP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg GROUPEXISTS_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Group name or identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Group name or identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg HASH_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Input text"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Input text"}, - {"md5,sha1,sha256,sha512,sha384,crypt", DATA_TYPE_OPTION, "Hash or digest algorithm"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg HASHMATCH_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Filename to hash"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Filename to hash"}, - {"md5,sha1,crypt,cf_sha224,cf_sha256,cf_sha384,cf_sha512", DATA_TYPE_OPTION, "Hash or digest algorithm"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "ASCII representation of hash for comparison"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "ASCII representation of hash for comparison"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg HOST2IP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Host name in ascii"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Host name in ascii"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg IP2HOST_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "IP address (IPv4 or IPv6)"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "IP address (IPv4 or IPv6)"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg HOSTINNETGROUP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Netgroup name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Netgroup name"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg HOSTRANGE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Hostname prefix"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Enumerated range"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Hostname prefix"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Enumerated range"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5341,7 +5341,7 @@ FnCallArg HOSTSSEEN_ARGS[] = - - FnCallArg HOSTSWITHCLASS_ARGS[] = - { -- {"[a-zA-Z0-9_]+", DATA_TYPE_STRING, "Class name to look for"}, -+ {"[a-zA-Z0-9_]+", CFE_DATA_TYPE_STRING, "Class name to look for"}, - {"name,address", DATA_TYPE_OPTION, "Type of return value desired"}, - {NULL, DATA_TYPE_NONE, NULL} - }; -@@ -5353,7 +5353,7 @@ FnCallArg IFELSE_ARGS[] = - - FnCallArg IPRANGE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "IP address range syntax"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "IP address range syntax"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5366,51 +5366,51 @@ FnCallArg IRANGE_ARGS[] = - - FnCallArg ISGREATERTHAN_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Larger string or value"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Smaller string or value"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Larger string or value"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Smaller string or value"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg ISLESSTHAN_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Smaller string or value"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Larger string or value"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Smaller string or value"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Larger string or value"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg ISNEWERTHAN_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Newer file name"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Older file name"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Newer file name"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Older file name"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg ISVARIABLE_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Variable identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Variable identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg JOIN_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Join glue-string"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Join glue-string"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg LASTNODE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Input string"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Link separator, e.g. /,:"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Input string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Link separator, e.g. /,:"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg LDAPARRAY_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Array name"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "URI"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Array name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "URI"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Distinguished name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Filter"}, - {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"}, - {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5418,10 +5418,10 @@ FnCallArg LDAPARRAY_ARGS[] = - - FnCallArg LDAPLIST_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "URI"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Record name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "URI"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Distinguished name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Filter"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Record name"}, - {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"}, - {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5429,10 +5429,10 @@ FnCallArg LDAPLIST_ARGS[] = - - FnCallArg LDAPVALUE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "URI"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Record name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "URI"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Distinguished name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Filter"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Record name"}, - {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"}, - {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5440,29 +5440,29 @@ FnCallArg LDAPVALUE_ARGS[] = - - FnCallArg LSDIRLIST_ARGS[] = - { -- {CF_PATHRANGE, DATA_TYPE_STRING, "Path to base directory"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression to match files or blank"}, -+ {CF_PATHRANGE, CFE_DATA_TYPE_STRING, "Path to base directory"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression to match files or blank"}, - {CF_BOOL, DATA_TYPE_OPTION, "Include the base path in the list"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg MAPLIST_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Pattern based on $(this) as original text"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "The name of the list variable to map"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Pattern based on $(this) as original text"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "The name of the list variable to map"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg MAPARRAY_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Pattern based on $(this.k) and $(this.v) as original text"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "The name of the array variable to map"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Pattern based on $(this.k) and $(this.v) as original text"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "The name of the array variable to map"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg NOT_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Class value"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Class value"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5478,13 +5478,13 @@ FnCallArg OR_ARGS[] = - - FnCallArg SUM_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "A list of arbitrary real values"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "A list of arbitrary real values"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg PRODUCT_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "A list of arbitrary real values"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "A list of arbitrary real values"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5501,24 +5501,24 @@ FnCallArg DATE_ARGS[] = - - FnCallArg PEERS_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name of host list"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Comment regex pattern"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File name of host list"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Comment regex pattern"}, - {CF_VALRANGE, DATA_TYPE_INT, "Peer group size"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg PEERLEADER_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name of host list"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Comment regex pattern"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File name of host list"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Comment regex pattern"}, - {CF_VALRANGE, DATA_TYPE_INT, "Peer group size"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg PEERLEADERS_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name of host list"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Comment regex pattern"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File name of host list"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Comment regex pattern"}, - {CF_VALRANGE, DATA_TYPE_INT, "Peer group size"}, - {NULL, DATA_TYPE_NONE, NULL} - }; -@@ -5532,17 +5532,17 @@ FnCallArg RANDOMINT_ARGS[] = - - FnCallArg READFILE_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File name"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg READSTRINGARRAY_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name to read"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Array identifier to populate"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File name to read"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex matching comments"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to split data"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5550,10 +5550,10 @@ FnCallArg READSTRINGARRAY_ARGS[] = - - FnCallArg PARSESTRINGARRAY_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "A string to parse for input data"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Array identifier to populate"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "A string to parse for input data"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex matching comments"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to split data"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5561,10 +5561,10 @@ FnCallArg PARSESTRINGARRAY_ARGS[] = - - FnCallArg READSTRINGARRAYIDX_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "A string to parse for input data"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Array identifier to populate"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "A string to parse for input data"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex matching comments"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to split data"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5572,10 +5572,10 @@ FnCallArg READSTRINGARRAYIDX_ARGS[] = - - FnCallArg PARSESTRINGARRAYIDX_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Array identifier to populate"}, -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "A string to parse for input data"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Array identifier to populate"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "A string to parse for input data"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex matching comments"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to split data"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5583,9 +5583,9 @@ FnCallArg PARSESTRINGARRAYIDX_ARGS[] = - - FnCallArg READSTRINGLIST_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "File name to read"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex matching comments"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split data"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "File name to read"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex matching comments"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to split data"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of entries to read"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5593,94 +5593,94 @@ FnCallArg READSTRINGLIST_ARGS[] = - - FnCallArg READTCP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Host name or IP address of server socket"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Host name or IP address of server socket"}, - {CF_VALRANGE, DATA_TYPE_INT, "Port number"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Protocol query string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Protocol query string"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of bytes to read"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGARRAY_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine array identifier"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine array identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGCMP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Match string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Match string"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGEXTRACT_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Match string"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "Identifier for back-references"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Match string"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Identifier for back-references"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGISTRYVALUE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Windows registry key"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Windows registry value-id"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Windows registry key"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Windows registry value-id"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGLINE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Filename to search"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Filename to search"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGLIST_ARGS[] = - { -- {CF_NAKEDLRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -+ {CF_NAKEDLRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REGLDAP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "URI"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Distinguished name"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Filter"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Record name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "URI"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Distinguished name"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Filter"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Record name"}, - {"subtree,onelevel,base", DATA_TYPE_OPTION, "Search scope policy"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to match results"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to match results"}, - {"none,ssl,sasl", DATA_TYPE_OPTION, "Security level"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REMOTESCALAR_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Variable identifier"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Hostname or IP address of server"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Variable identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Hostname or IP address of server"}, - {CF_BOOL, DATA_TYPE_OPTION, "Use enryption"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg HUB_KNOWLEDGE_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "Variable identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Variable identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REMOTECLASSESMATCHING_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Server name or address"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Server name or address"}, - {CF_BOOL, DATA_TYPE_OPTION, "Use encryption"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "Return class prefix"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Return class prefix"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg RETURNSZERO_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Fully qualified command path"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Fully qualified command path"}, - {"useshell,noshell,powershell", DATA_TYPE_OPTION, "Shell encapsulation option"}, - {NULL, DATA_TYPE_NONE, NULL} - }; -@@ -5694,48 +5694,48 @@ FnCallArg RRANGE_ARGS[] = - - FnCallArg SELECTSERVERS_ARGS[] = - { -- {CF_NAKEDLRANGE, DATA_TYPE_STRING, "The identifier of a cfengine list of hosts or addresses to contact"}, -+ {CF_NAKEDLRANGE, CFE_DATA_TYPE_STRING, "The identifier of a cfengine list of hosts or addresses to contact"}, - {CF_VALRANGE, DATA_TYPE_INT, "The port number"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "A query string"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "A regular expression to match success"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "A query string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "A regular expression to match success"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of bytes to read from server"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "Name for array of results"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "Name for array of results"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg SPLAYCLASS_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Input string for classification"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Input string for classification"}, - {"daily,hourly", DATA_TYPE_OPTION, "Splay time policy"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg SPLITSTRING_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "A data string"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regex to split on"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "A data string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regex to split on"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of pieces"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg STRCMP_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "String"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "String"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "String"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "String"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg STRFTIME_ARGS[] = - { - {"gmtime,localtime", DATA_TYPE_OPTION, "Use GMT or local time"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "A format string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "A format string"}, - {CF_VALRANGE, DATA_TYPE_INT, "The time as a Unix epoch offset"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg SUBLIST_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {"head,tail", DATA_TYPE_OPTION, "Whether to return elements from the head or from the tail of the list"}, - {CF_VALRANGE, DATA_TYPE_INT, "Maximum number of elements to return"}, - {NULL, DATA_TYPE_NONE, NULL} -@@ -5743,79 +5743,79 @@ FnCallArg SUBLIST_ARGS[] = - - FnCallArg TRANSLATEPATH_ARGS[] = - { -- {CF_ABSPATHRANGE, DATA_TYPE_STRING, "Unix style path"}, -+ {CF_ABSPATHRANGE, CFE_DATA_TYPE_STRING, "Unix style path"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg USEMODULE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Name of module command"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Argument string for the module"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Name of module command"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Argument string for the module"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg UNIQUE_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg NTH_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {CF_VALRANGE, DATA_TYPE_INT, "Offset of element to return"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg EVERY_SOME_NONE_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "Regular expression or string"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Regular expression or string"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg USEREXISTS_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "User name or identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "User name or identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg SORT_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -- {"lex", DATA_TYPE_STRING, "Sorting method: lex"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {"lex", CFE_DATA_TYPE_STRING, "Sorting method: lex"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg REVERSE_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg SHUFFLE_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -- {CF_ANYSTRING, DATA_TYPE_STRING, "Any seed string"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "Any seed string"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg LENGTH_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg SETOP_ARGS[] = - { -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine base list identifier"}, -- {CF_IDRANGE, DATA_TYPE_STRING, "CFEngine filter list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine base list identifier"}, -+ {CF_IDRANGE, CFE_DATA_TYPE_STRING, "CFEngine filter list identifier"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - - FnCallArg FORMAT_ARGS[] = - { -- {CF_ANYSTRING, DATA_TYPE_STRING, "CFEngine format string"}, -+ {CF_ANYSTRING, CFE_DATA_TYPE_STRING, "CFEngine format string"}, - {NULL, DATA_TYPE_NONE, NULL} - }; - -@@ -5830,47 +5830,47 @@ const FnCallType CF_FNCALL_TYPES[] = - FnCallTypeNew("accessedbefore", DATA_TYPE_CONTEXT, ACCESSEDBEFORE_ARGS, &FnCallIsAccessedBefore, "True if arg1 was accessed before arg2 (atime)", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("accumulated", DATA_TYPE_INT, ACCUM_ARGS, &FnCallAccumulatedDate, "Convert an accumulated amount of time into a system representation", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("ago", DATA_TYPE_INT, AGO_ARGS, &FnCallAgoDate, "Convert a time relative to now to an integer system representation", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("and", DATA_TYPE_STRING, AND_ARGS, &FnCallAnd, "Calculate whether all arguments evaluate to true", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("canonify", DATA_TYPE_STRING, CANONIFY_ARGS, &FnCallCanonify, "Convert an abitrary string into a legal class name", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("concat", DATA_TYPE_STRING, CONCAT_ARGS, &FnCallConcat, "Concatenate all arguments into string", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("and", CFE_DATA_TYPE_STRING, AND_ARGS, &FnCallAnd, "Calculate whether all arguments evaluate to true", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("canonify", CFE_DATA_TYPE_STRING, CANONIFY_ARGS, &FnCallCanonify, "Convert an abitrary string into a legal class name", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("concat", CFE_DATA_TYPE_STRING, CONCAT_ARGS, &FnCallConcat, "Concatenate all arguments into string", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("changedbefore", DATA_TYPE_CONTEXT, CHANGEDBEFORE_ARGS, &FnCallIsChangedBefore, "True if arg1 was changed before arg2 (ctime)", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("classify", DATA_TYPE_CONTEXT, CLASSIFY_ARGS, &FnCallClassify, "True if the canonicalization of the argument is a currently defined class", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("classmatch", DATA_TYPE_CONTEXT, CLASSMATCH_ARGS, &FnCallClassMatch, "True if the regular expression matches any currently defined class", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("classesmatching", DATA_TYPE_STRING_LIST, CLASSMATCH_ARGS, &FnCallClassesMatching, "List the defined classes matching regex arg1", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("classesmatching", CFE_DATA_TYPE_STRING_LIST, CLASSMATCH_ARGS, &FnCallClassesMatching, "List the defined classes matching regex arg1", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("countclassesmatching", DATA_TYPE_INT, COUNTCLASSESMATCHING_ARGS, &FnCallCountClassesMatching, "Count the number of defined classes matching regex arg1", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("countlinesmatching", DATA_TYPE_INT, COUNTLINESMATCHING_ARGS, &FnCallCountLinesMatching, "Count the number of lines matching regex arg1 in file arg2", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("difference", DATA_TYPE_STRING_LIST, SETOP_ARGS, &FnCallSetop, "Returns all the unique elements of list arg1 that are not in list arg2", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("dirname", DATA_TYPE_STRING, DIRNAME_ARGS, &FnCallDirname, "Return the parent directory name for given path", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("difference", CFE_DATA_TYPE_STRING_LIST, SETOP_ARGS, &FnCallSetop, "Returns all the unique elements of list arg1 that are not in list arg2", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("dirname", CFE_DATA_TYPE_STRING, DIRNAME_ARGS, &FnCallDirname, "Return the parent directory name for given path", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("diskfree", DATA_TYPE_INT, DISKFREE_ARGS, &FnCallDiskFree, "Return the free space (in KB) available on the directory's current partition (0 if not found)", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("escape", DATA_TYPE_STRING, ESCAPE_ARGS, &FnCallEscape, "Escape regular expression characters in a string", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("escape", CFE_DATA_TYPE_STRING, ESCAPE_ARGS, &FnCallEscape, "Escape regular expression characters in a string", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("every", DATA_TYPE_CONTEXT, EVERY_SOME_NONE_ARGS, &FnCallEverySomeNone, "True if every element in the named list matches the given regular expression", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("execresult", DATA_TYPE_STRING, EXECRESULT_ARGS, &FnCallExecResult, "Execute named command and assign output to variable", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("execresult", CFE_DATA_TYPE_STRING, EXECRESULT_ARGS, &FnCallExecResult, "Execute named command and assign output to variable", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("fileexists", DATA_TYPE_CONTEXT, FILESTAT_ARGS, &FnCallFileStat, "True if the named file can be accessed", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("filesexist", DATA_TYPE_CONTEXT, FILESEXIST_ARGS, &FnCallFileSexist, "True if the named list of files can ALL be accessed", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("filesize", DATA_TYPE_INT, FILESTAT_ARGS, &FnCallFileStat, "Returns the size in bytes of the file", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("filestat", DATA_TYPE_STRING, FILESTAT_DETAIL_ARGS, &FnCallFileStatDetails, "Returns stat() details of the file", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("filter", DATA_TYPE_STRING_LIST, FILTER_ARGS, &FnCallFilter, "Similarly to grep(), filter the list arg2 for matches to arg2. The matching can be as a regular expression or exactly depending on arg3. The matching can be inverted with arg4. A maximum on the number of matches returned can be set with arg5.", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("format", DATA_TYPE_STRING, FORMAT_ARGS, &FnCallFormat, "Applies a list of string values in arg2,arg3... to a string format in arg1 with sprintf() rules", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("getenv", DATA_TYPE_STRING, GETENV_ARGS, &FnCallGetEnv, "Return the environment variable named arg1, truncated at arg2 characters", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("filestat", CFE_DATA_TYPE_STRING, FILESTAT_DETAIL_ARGS, &FnCallFileStatDetails, "Returns stat() details of the file", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("filter", CFE_DATA_TYPE_STRING_LIST, FILTER_ARGS, &FnCallFilter, "Similarly to grep(), filter the list arg2 for matches to arg2. The matching can be as a regular expression or exactly depending on arg3. The matching can be inverted with arg4. A maximum on the number of matches returned can be set with arg5.", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("format", CFE_DATA_TYPE_STRING, FORMAT_ARGS, &FnCallFormat, "Applies a list of string values in arg2,arg3... to a string format in arg1 with sprintf() rules", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("getenv", CFE_DATA_TYPE_STRING, GETENV_ARGS, &FnCallGetEnv, "Return the environment variable named arg1, truncated at arg2 characters", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("getfields", DATA_TYPE_INT, GETFIELDS_ARGS, &FnCallGetFields, "Get an array of fields in the lines matching regex arg1 in file arg2, split on regex arg3 as array name arg4", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("getgid", DATA_TYPE_INT, GETGID_ARGS, &FnCallGetGid, "Return the integer group id of the named group on this host", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("getindices", DATA_TYPE_STRING_LIST, GETINDICES_ARGS, &FnCallGetIndices, "Get a list of keys to the array whose id is the argument and assign to variable", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("getindices", CFE_DATA_TYPE_STRING_LIST, GETINDICES_ARGS, &FnCallGetIndices, "Get a list of keys to the array whose id is the argument and assign to variable", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("getuid", DATA_TYPE_INT, GETUID_ARGS, &FnCallGetUid, "Return the integer user id of the named user on this host", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("getusers", DATA_TYPE_STRING_LIST, GETUSERS_ARGS, &FnCallGetUsers, "Get a list of all system users defined, minus those names defined in arg1 and uids in arg2", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("getvalues", DATA_TYPE_STRING_LIST, GETINDICES_ARGS, &FnCallGetValues, "Get a list of values corresponding to the right hand sides in an array whose id is the argument and assign to variable", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("grep", DATA_TYPE_STRING_LIST, GREP_ARGS, &FnCallGrep, "Extract the sub-list if items matching the regular expression in arg1 of the list named in arg2", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("getusers", CFE_DATA_TYPE_STRING_LIST, GETUSERS_ARGS, &FnCallGetUsers, "Get a list of all system users defined, minus those names defined in arg1 and uids in arg2", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("getvalues", CFE_DATA_TYPE_STRING_LIST, GETINDICES_ARGS, &FnCallGetValues, "Get a list of values corresponding to the right hand sides in an array whose id is the argument and assign to variable", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("grep", CFE_DATA_TYPE_STRING_LIST, GREP_ARGS, &FnCallGrep, "Extract the sub-list if items matching the regular expression in arg1 of the list named in arg2", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("groupexists", DATA_TYPE_CONTEXT, GROUPEXISTS_ARGS, &FnCallGroupExists, "True if group or numerical id exists on this host", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("hash", DATA_TYPE_STRING, HASH_ARGS, &FnCallHash, "Return the hash of arg1, type arg2 and assign to a variable", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("hash", CFE_DATA_TYPE_STRING, HASH_ARGS, &FnCallHash, "Return the hash of arg1, type arg2 and assign to a variable", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("hashmatch", DATA_TYPE_CONTEXT, HASHMATCH_ARGS, &FnCallHashMatch, "Compute the hash of arg1, of type arg2 and test if it matches the value in arg3", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("host2ip", DATA_TYPE_STRING, HOST2IP_ARGS, &FnCallHost2IP, "Returns the primary name-service IP address for the named host", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("ip2host", DATA_TYPE_STRING, IP2HOST_ARGS, &FnCallIP2Host, "Returns the primary name-service host name for the IP address", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("host2ip", CFE_DATA_TYPE_STRING, HOST2IP_ARGS, &FnCallHost2IP, "Returns the primary name-service IP address for the named host", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("ip2host", CFE_DATA_TYPE_STRING, IP2HOST_ARGS, &FnCallIP2Host, "Returns the primary name-service host name for the IP address", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("hostinnetgroup", DATA_TYPE_CONTEXT, HOSTINNETGROUP_ARGS, &FnCallHostInNetgroup, "True if the current host is in the named netgroup", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("hostrange", DATA_TYPE_CONTEXT, HOSTRANGE_ARGS, &FnCallHostRange, "True if the current host lies in the range of enumerated hostnames specified", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("hostsseen", DATA_TYPE_STRING_LIST, HOSTSSEEN_ARGS, &FnCallHostsSeen, "Extract the list of hosts last seen/not seen within the last arg1 hours", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("hostswithclass", DATA_TYPE_STRING_LIST, HOSTSWITHCLASS_ARGS, &FnCallHostsWithClass, "Extract the list of hosts with the given class set from the hub database (enterprise extension)", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("hubknowledge", DATA_TYPE_STRING, HUB_KNOWLEDGE_ARGS, &FnCallHubKnowledge, "Read global knowledge from the hub host by id (enterprise extension)", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("ifelse", DATA_TYPE_STRING, IFELSE_ARGS, &FnCallIfElse, "Do If-ElseIf-ElseIf-...-Else evaluation of arguments", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("intersection", DATA_TYPE_STRING_LIST, SETOP_ARGS, &FnCallSetop, "Returns all the unique elements of list arg1 that are also in list arg2", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("hostsseen", CFE_DATA_TYPE_STRING_LIST, HOSTSSEEN_ARGS, &FnCallHostsSeen, "Extract the list of hosts last seen/not seen within the last arg1 hours", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("hostswithclass", CFE_DATA_TYPE_STRING_LIST, HOSTSWITHCLASS_ARGS, &FnCallHostsWithClass, "Extract the list of hosts with the given class set from the hub database (enterprise extension)", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("hubknowledge", CFE_DATA_TYPE_STRING, HUB_KNOWLEDGE_ARGS, &FnCallHubKnowledge, "Read global knowledge from the hub host by id (enterprise extension)", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("ifelse", CFE_DATA_TYPE_STRING, IFELSE_ARGS, &FnCallIfElse, "Do If-ElseIf-ElseIf-...-Else evaluation of arguments", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("intersection", CFE_DATA_TYPE_STRING_LIST, SETOP_ARGS, &FnCallSetop, "Returns all the unique elements of list arg1 that are also in list arg2", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("iprange", DATA_TYPE_CONTEXT, IPRANGE_ARGS, &FnCallIPRange, "True if the current host lies in the range of IP addresses specified", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("irange", DATA_TYPE_INT_RANGE, IRANGE_ARGS, &FnCallIRange, "Define a range of integer values for cfengine internal use", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("isdir", DATA_TYPE_CONTEXT, FILESTAT_ARGS, &FnCallFileStat, "True if the named object is a directory", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -@@ -5881,64 +5881,64 @@ const FnCallType CF_FNCALL_TYPES[] = - FnCallTypeNew("isnewerthan", DATA_TYPE_CONTEXT, ISNEWERTHAN_ARGS, &FnCallIsNewerThan, "True if arg1 is newer (modified later) than arg2 (mtime)", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("isplain", DATA_TYPE_CONTEXT, FILESTAT_ARGS, &FnCallFileStat, "True if the named object is a plain/regular file", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("isvariable", DATA_TYPE_CONTEXT, ISVARIABLE_ARGS, &FnCallIsVariable, "True if the named variable is defined", false, FNCALL_CATEGORY_UTILS, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("join", DATA_TYPE_STRING, JOIN_ARGS, &FnCallJoin, "Join the items of arg2 into a string, using the conjunction in arg1", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("lastnode", DATA_TYPE_STRING, LASTNODE_ARGS, &FnCallLastNode, "Extract the last of a separated string, e.g. filename from a path", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("join", CFE_DATA_TYPE_STRING, JOIN_ARGS, &FnCallJoin, "Join the items of arg2 into a string, using the conjunction in arg1", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("lastnode", CFE_DATA_TYPE_STRING, LASTNODE_ARGS, &FnCallLastNode, "Extract the last of a separated string, e.g. filename from a path", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("laterthan", DATA_TYPE_CONTEXT, LATERTHAN_ARGS, &FnCallLaterThan, "True if the current time is later than the given date", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("ldaparray", DATA_TYPE_CONTEXT, LDAPARRAY_ARGS, &FnCallLDAPArray, "Extract all values from an ldap record", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("ldaplist", DATA_TYPE_STRING_LIST, LDAPLIST_ARGS, &FnCallLDAPList, "Extract all named values from multiple ldap records", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("ldapvalue", DATA_TYPE_STRING, LDAPVALUE_ARGS, &FnCallLDAPValue, "Extract the first matching named value from ldap", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("ldaplist", CFE_DATA_TYPE_STRING_LIST, LDAPLIST_ARGS, &FnCallLDAPList, "Extract all named values from multiple ldap records", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("ldapvalue", CFE_DATA_TYPE_STRING, LDAPVALUE_ARGS, &FnCallLDAPValue, "Extract the first matching named value from ldap", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("length", DATA_TYPE_INT, LENGTH_ARGS, &FnCallLength, "Return the length of a list", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("lsdir", DATA_TYPE_STRING_LIST, LSDIRLIST_ARGS, &FnCallLsDir, "Return a list of files in a directory matching a regular expression", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("maparray", DATA_TYPE_STRING_LIST, MAPARRAY_ARGS, &FnCallMapArray, "Return a list with each element modified by a pattern based $(this.k) and $(this.v)", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("maplist", DATA_TYPE_STRING_LIST, MAPLIST_ARGS, &FnCallMapList, "Return a list with each element modified by a pattern based $(this)", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("lsdir", CFE_DATA_TYPE_STRING_LIST, LSDIRLIST_ARGS, &FnCallLsDir, "Return a list of files in a directory matching a regular expression", false, FNCALL_CATEGORY_FILES, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("maparray", CFE_DATA_TYPE_STRING_LIST, MAPARRAY_ARGS, &FnCallMapArray, "Return a list with each element modified by a pattern based $(this.k) and $(this.v)", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("maplist", CFE_DATA_TYPE_STRING_LIST, MAPLIST_ARGS, &FnCallMapList, "Return a list with each element modified by a pattern based $(this)", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("none", DATA_TYPE_CONTEXT, EVERY_SOME_NONE_ARGS, &FnCallEverySomeNone, "True if no element in the named list matches the given regular expression", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("not", DATA_TYPE_STRING, NOT_ARGS, &FnCallNot, "Calculate whether argument is false", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("not", CFE_DATA_TYPE_STRING, NOT_ARGS, &FnCallNot, "Calculate whether argument is false", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("now", DATA_TYPE_INT, NOW_ARGS, &FnCallNow, "Convert the current time into system representation", false, FNCALL_CATEGORY_SYSTEM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("nth", DATA_TYPE_STRING, NTH_ARGS, &FnCallNth, "Get the element at arg2 in list arg1", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("nth", CFE_DATA_TYPE_STRING, NTH_ARGS, &FnCallNth, "Get the element at arg2 in list arg1", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("on", DATA_TYPE_INT, DATE_ARGS, &FnCallOn, "Convert an exact date/time to an integer system representation", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("or", DATA_TYPE_STRING, OR_ARGS, &FnCallOr, "Calculate whether any argument evaluates to true", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("or", CFE_DATA_TYPE_STRING, OR_ARGS, &FnCallOr, "Calculate whether any argument evaluates to true", true, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("parseintarray", DATA_TYPE_INT, PARSESTRINGARRAY_ARGS, &FnCallParseIntArray, "Read an array of integers from a file and assign the dimension to a variable", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("parserealarray", DATA_TYPE_INT, PARSESTRINGARRAY_ARGS, &FnCallParseRealArray, "Read an array of real numbers from a file and assign the dimension to a variable", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("parsestringarray", DATA_TYPE_INT, PARSESTRINGARRAY_ARGS, &FnCallParseStringArray, "Read an array of strings from a file and assign the dimension to a variable", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("parsestringarrayidx", DATA_TYPE_INT, PARSESTRINGARRAYIDX_ARGS, &FnCallParseStringArrayIndex, "Read an array of strings from a file and assign the dimension to a variable with integer indeces", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("peers", DATA_TYPE_STRING_LIST, PEERS_ARGS, &FnCallPeers, "Get a list of peers (not including ourself) from the partition to which we belong", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("peerleader", DATA_TYPE_STRING, PEERLEADER_ARGS, &FnCallPeerLeader, "Get the assigned peer-leader of the partition to which we belong", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("peerleaders", DATA_TYPE_STRING_LIST, PEERLEADERS_ARGS, &FnCallPeerLeaders, "Get a list of peer leaders from the named partitioning", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("peers", CFE_DATA_TYPE_STRING_LIST, PEERS_ARGS, &FnCallPeers, "Get a list of peers (not including ourself) from the partition to which we belong", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("peerleader", CFE_DATA_TYPE_STRING, PEERLEADER_ARGS, &FnCallPeerLeader, "Get the assigned peer-leader of the partition to which we belong", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("peerleaders", CFE_DATA_TYPE_STRING_LIST, PEERLEADERS_ARGS, &FnCallPeerLeaders, "Get a list of peer leaders from the named partitioning", false, FNCALL_CATEGORY_COMM, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("product", DATA_TYPE_REAL, PRODUCT_ARGS, &FnCallProduct, "Return the product of a list of reals", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("randomint", DATA_TYPE_INT, RANDOMINT_ARGS, &FnCallRandomInt, "Generate a random integer between the given limits", false, FNCALL_CATEGORY_DATA, SYNTAX_STATUS_NORMAL), -- FnCallTypeNew("readfile", DATA_TYPE_STRING, READFILE_ARGS, &FnCallReadFile, "Read max number of bytes from named file and assign to variable", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), -+ FnCallTypeNew("readfile", CFE_DATA_TYPE_STRING, READFILE_ARGS, &FnCallReadFile, "Read max number of bytes from named file and assign to variable", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("readintarray", DATA_TYPE_INT, READSTRINGARRAY_ARGS, &FnCallReadIntArray, "Read an array of integers from a file and assign the dimension to a variable", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), - FnCallTypeNew("readintlist", DATA_TYPE_INT_LIST, READSTRINGLIST_ARGS, &FnCallReadIntList, "Read and assign a list variable from a file of separated ints", false, FNCALL_CATEGORY_IO, SYNTAX_STATUS_NORMAL), @@ 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 cgrzemba at users.sourceforge.net Mon Jun 23 09:22:14 2014 From: cgrzemba at users.sourceforge.net (cgrzemba at users.sourceforge.net) Date: Mon, 23 Jun 2014 07:22:14 +0000 Subject: SF.net SVN: gar:[23820] csw/mgar/pkg/lang-python/pillow/trunk/Makefile Message-ID: <3gxhs82M0Kzp5@mail.opencsw.org> Revision: 23820 http://sourceforge.net/p/gar/code/23820 Author: cgrzemba Date: 2014-06-23 07:22:10 +0000 (Mon, 23 Jun 2014) Log Message: ----------- lang-python/pillow/trunk: add sparc runtime dependencies Modified Paths: -------------- csw/mgar/pkg/lang-python/pillow/trunk/Makefile Modified: csw/mgar/pkg/lang-python/pillow/trunk/Makefile =================================================================== --- csw/mgar/pkg/lang-python/pillow/trunk/Makefile 2014-06-22 20:04:48 UTC (rev 23819) +++ csw/mgar/pkg/lang-python/pillow/trunk/Makefile 2014-06-23 07:22:10 UTC (rev 23820) @@ -22,7 +22,6 @@ PACKAGES += CSWpy-pillow SPKG_DESC_CSWpy-pillow = $(DESCRIPTION) RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibtiff5 -# RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibwebp4 RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibjpeg7 RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibz1 RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibpython2-7-1-0 @@ -30,11 +29,13 @@ RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibpython2-6-1-0 RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibgcc-s1 RUNTIME_DEP_PKGS_CSWpy-pillow += CSWliblcms2-2 -# RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibtk8-5 -# RUNTIME_DEP_PKGS_CSWpy-pillow += CSWlibtcl8-5 RUNTIME_DEP_PKGS_CSWpy-pillow += CSWpython RUNTIME_DEP_PKGS_CSWpy-pillow += CSWtcl RUNTIME_DEP_PKGS_CSWpy-pillow += CSWtk +RUNTIME_DEP_PKGS_CSWpy-pillow_sparc += CSWlibtk8-5 +RUNTIME_DEP_PKGS_CSWpy-pillow_sparc += CSWlibtcl8-5 +RUNTIME_DEP_PKGS_CSWpy-pillow_sparc += CSWlibwebp4 +RUNTIME_DEP_PKGS_CSWpy-pillow += $(RUNTIME_DEP_PKGS_CSWpy-pillow_$(GARCH)) CHECKPKG_OVERRIDES_CSWpy-pillow += surplus-dependency|CSWtcl CHECKPKG_OVERRIDES_CSWpy-pillow += surplus-dependency|CSWtk CHECKPKG_OVERRIDES_CSWpy-pillow += surplus-dependency|CSWpython This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.