pkgsrc/lang/qore/Makefile

52 lines
1.8 KiB
Makefile
Raw Normal View History

# $NetBSD: Makefile,v 1.18 2018/12/27 15:15:22 joerg Exp $
DISTNAME= qore-0.8.13.5
CATEGORIES= lang
MASTER_SITES= ${MASTER_SITE_GITHUB:=qorelanguage/}
EXTRACT_SUFX= .tar.bz2
GITHUB_RELEASE= release-${PKGVERSION_NOREV}
2016-08-07 12:12:58 +02:00
MAINTAINER= nros@NetBSD.org
COMMENT= Embeddable multithreaded scripting language
HOMEPAGE= http://www.qore.org/
LICENSE= gnu-gpl-v2 OR gnu-lgpl-v2.1 OR mit
GNU_CONFIGURE= yes
USE_LIBTOOL= yes
2016-07-25 23:56:04 +02:00
USE_TOOLS+= bash bison flex gmake pax
2016-07-22 12:34:45 +02:00
USE_LANGUAGES= c c99 c++
PTHREAD_OPTS+= native
FLEX_REQD= 2.5.31
PKGCONFIG_OVERRIDE+= qore.pc.in
Updated lang/qore to version 0.8.13. New features in Qore: * Input/Output stream APIs * Vastly improved type system with complex type support * Improved operators; list, string, binary slice operators, the ".." range operator, improved new, cast<>, and instanceof operators, lazy evaluation of functional and list operators * Improved encryption support including AES encryption, encryption/decryption streams, support for AAD and MACs * Improved HTTPS and SSL security support with addition X.509 certificate support including automatic certificate verification in client and server contexts * Universal connection API * Support for binding output placeholder buffers for result sets that return an SQLStatement object for more efficient piecewise processing of DB stored procedure/function calls that return very large result sets * Strong encapsulation support (ex: private:internal) * Deterministic garbage collection performance improvements with large cycles * Debugging support and APIs including remote network debugging * Language Server Protocol support for Qore in the new astparser module for rich language support in IDEs such as the Visual Studio Code Qore Extension Bug Fixes in Qore: * fixed a bug causing AbstractQuantifiedBidirectionalIterator not being available (issue 968) * BulkSqlUtil module fixes: -fixed the module to work properly even with DB drivers that do not support parameter array binding (issue 1154) * CsvUtil module fixes: -fixed a bug in an error message validating input data (issue 1062) -added an exception when detected headers do not match the fields option (issue 2179) * HttpServer module fixes: -added logic to attempt to mask passwords in log messages (issue 1086) * HttpServerUtil module fixes: -fixed a bug where the msg arg to AbstractAuthenticator::do401() was ignored (issue 1047) * RestHandler module fixes: -added logic to allow sensitive data to be masked in log messages (issue 1086) * SqlUtil module fixes: -fixed a bug in update and upsert statement generation when the given data does not have enough columns to use the unique index found, an error message is generated that contains all the columns names instead of just the column names required by the index (issue 1013) * WebSocketClient module fixes: -fixed a thread lock starvation race condition (issue 2130) * UTF-16 fixes: -fixed a bug comparing strings in UTF-16 encodings (issue 1579) -fixed Qore::substr() and <string>::substr() with strings in UTF-16 encodings (issue 1586) -fixed Qore::trim(), Qore::ltrim(), Qore::rtrim() and the trim operator with strings with UTF-16 encodings (issue 1775) * fixed a bug where break and continue statements were accepted outside of loops (issue 976) * fixed a bug compiling on Solaris SPARC with g++ where MPFR_DECL_INIT() is compiled incorrectly with -O1 or greater (issue 958) * fixed a bug causing an infinite loop in decompression functions (issue 966) * fixed an issue where an internal C++ API (QoreProgram::parseCmdLineDefines()) performed a needless copy of a data structure (issue 1099) * fixed a stack corruption bug with asynchronous I/O on UNIX systems with ReadOnlyFile methods (issue 1106) * fixed bugs with inconsistent conversions of int, float, and boolean values to date/time values, now they are all converted uniformly to relative date/time values (issue 1156) * fixed a bug where Qore allowed code to be declared both public and private without a warning (issue 1187) * fixed a bug where the instanceof operator would return True with objects that did not publically inherit the given class or where the given class is not accessible (issue 1191) * fixed a bug in qpp support of the 'final' class flag (issue 1222) * fixed a bug where the + operator provided access to private members from outside the class (issue 1209) * fixed a bug where different overloaded method variant resolution rules were used at parse time (best match in hierarchy) and runtime (best match in first matching class) in a class hierarchy (issue 1229) * fixed a bug where exceptions in base class constructor calls did not reflect the actual source location (issue 1230) * fixed a bug where runtime function/method variant matching was incorrectly biased towards default matches for missing arguments (issue 1231) * fixed bugs where calls to Socket::upgradeClientToSSL() and Socket::upgradeServerToSSL() were ignored with no exception thrown if the socket was not connected (issue 1258) * fixed a bug where a closure created in an object scope could not be called if the object had been deleted, even if the closure did not refer to the object (issue 1303) * fixed a bug where ord() would return negative numbers for bytes with the high bit set with compilers where char is the same as signed char (issue 1385) * fixed a bug where int(number) returned rounded value instead of the integer part (while int(float) behaved correctly; also cf. initializing a softint value from a number vs. from a float) (issue 1463) * File::read() now uses character semantics for the length argument (issue 1548) * fixed a bug with strongly-typed lvalue assignments with classes created in different Program objects (issue 1551) * fixed a bug where an ASCII string and the same string in a different encoding and with diacritics could incorrectly be marked as equal (issue 1579) * fixed bugs in HTTPClient methods where string message bodies were not converted to the object's character encoding before transmission (issue 1813) * fixed a bug in the reference and *reference assignment restrictions; previously any value was accepted, now only references are accepted as the initial assignment values (issue 1819) * fixed a bug in handling the SqlUtil::BLOB type in the FreetdsSqlUtil module (issue 1852) * fixed a bug in overloaded call variant matching where missing arguments were counted towards the match (issue 1897) * fixed many bugs where parse-time errors could be reported at an incorrect source location; parse-time error location reporting has been completely overhauled and reimplemented for correctness (issue 1930) * fixed a bug where code signatures would accept parameter variables without "$" signs even when %allow-bare-refs was not in effect (issue 1941) * fixed memory leaks in the scanner related to EOF conditions (issue 1976) * rewrote Qore functions gethostbyname(), gethostbyname_long() and gethostbyaddr() to use standard C functions getaddrinfo(3) and getnameinfo(3) internally instead of the deprecated gethostbyname(3) and gethostbyaddr(3) (issue 1952) * fixed cmake builds on Darwin (issue 1980) * fixed a bug where immediate date-time values were not marked with their type at parse time (issue 2001) * fixed a bug where the *data type restriction would allow all types to be assigned at runtime (issue 2002) * Qore::RangeIterator::constructor(int) and Qore::xrange(int) were updated; the second arguments were removed to avoid ambiguity with the other overloaded variants (issue 2016) * fixed a bug where Qore::replace() could get in an infinite loop with arguments with embededed nulls (issue 2098) * fixed a bug in regular expression extraction where an infinite loop could occur (issue 2083) * fixed a bug where a call reference to an object method that crosses Program boundaries could result in a core dump when called due to an error managing thread-local data (issue 2145) * fixed crashes in scanner due to EOF in comments (issue 2175)
2017-10-12 20:17:46 +02:00
REPLACE_QORE= bin/qdbg bin/qdbg-remote bin/qdbg-server
REPLACE_QORE+= bin/qget bin/rest bin/schema-reverse
Update qore to version 0.8.12.10. Changelog from release notes: New Features since Qore 0.8.12.4: * added the SalesforceRestClient module for communicating with Salesforce.com using the REST APIs * module SqlUtil -has support for native default values in tables (issue 1428) -has support for Oracle named types (eg. spatial types) for Schema.qm and SchemaReverse.qm. (issue 1465) Bug Fixes since Qore 0.8.12.4: * module fixes: -FixedLengthUtil: fixes and improvements to errors and exceptions (issue 1828) -HttpServerUtil: eliminated excess logging of all HTTP chunks sent and received (issue 1832) -PgsqlSqlUtil: fixed a bug in setting a comment for a table column (issue 1886) -SqlUtil: fixed a bug in the offset query hash argument in SQL operation methods (issue 1880), fixed a bug that prohibited only columns from the main query to be selected when joins are used (issue 1909) -TableMapper: fixed a bug in flush messages in the InboundTableMapper class (issue 1849) * fixed a bug that could cause spurious parse-time exceptions to be thrown when matching call variants with multiple return types for the same callable object (issue 1928) * fixed the process return code in the output reference in backquote() on Unix/Linux platforms (issue 1884) * fixed a bug where connections were not immediately released back to the DatasourcePool in case of an SQLSTATEMENT-ERROR exception (issue 1836) * eliminated a spurious exception in the SQLStatement class in case of a DatasourcePool timeout (issue 1832) * fixed a crash when the incorrect type was passed to a parameter declared *reference (issue 1815) * fixed a crash when the Qore library exits caused by an error in handling module dependencies with injected modules (issue 1805) * fixed segfault crashes caused by calling object methods with null pointers (issue 1791) * added internal API support to make it easier for DBI drivers to handle lost connections and to allow DBI drivers that must close all open handles before a connection is closed (such as the oracle driver); due to this change, SQLStatement objects based on a DatasourcePool are closed automatically whenever the datasource is returned to the pool (issue 1250) * implemented new parse options to revert the effect of parse options that affect code safety (issue 1895): -%correct-list-parsing -%correct-logic-precedence -%correct-int-assignments -%correct-operators -%loose-args * fixed parse locations of strings and regexes (issue 1905) * fixed a memory leak where references participate in recursive references (issue 1774) * fixed a build issue with clang++ (issue 1768) * fixed a memory leak in the Queue copy constructor when the Queue was used in other objects (such as an event queue, etc; issue 1749) * Mapper module fixes: -fixed bugs handling the allow_dot and allow_output_dot options (issue 1690) -fixed TableMapper bugs introduced in Qore 0.8.12.7 (issue 1754) * fixed a memory leak in %try-module error handling (issue 1690) * fixed a bug in trunc_str() when the string has an invalid multi-byte character at the end of the string and the string is exactly the byte width requested (issue 1693) * fixed a bug where ReadOnlyFile::getchar() did not respect character semantics as documented (issue 1574) * OracleSqlUtil module fixes: -fixed a bug in character_semantics for standalone column (issue 1688) * Mapper module fixes: -fixed a bug in handling "list mode" data such as submitted by InboundTableMapper::queueData() (issue 1736, bug introduced in Qore 0.8.12.7 with the fix for issue 1626) * SqlUtil module fixes: -fixed schema alignment skipping column with name "driver" (issue 1684) -fixed sqlutil schema management: functional indexes are rejected without () in name (issue 1610) * TableMapper module fixes: -fixed a bug in handling "list mode" data with optimized inserts (issue 1736, bug introduced in Qore 0.8.12.7 with the fix for issue 1626) * WebSocketClient module fixes: -added timeout values to Socket and HTTPClient calls (issue 1725) * WebSocketHandler module fixes: -added timeout values to Socket calls (issue 1725) * WebSocketUtil module fixes: -added timeout values to Socket calls (issue 1725) * fixed a bug where a type conversion error in an lvalue assignment could generate a confusing unrelated runtime exception (issue 1697) * fixed a bug where invalid characters in the port specification in a URL were ignored (issue 1728) * fixed a bug with SSL socket communication the remote closing the connection during a send operation could cause the current thread to go into an infinite loop consuming 100% CPU (issue 1729) * fixed a bug in the HashListIterator class iterating hashes with a mix of lists and single values such as used by bulk DML binds; now the single values will appear as the current value for all list elements as per the original design instead of throwing a runtime exception (issue 1738) * fixed bug in internal string generation with size_t arguments that could cause invalid data to be output or crashes on 32-bit platforms (issue 1640) * fixed a runtime memory leak and invalid runtime behavior with undetected recursive lvalue references (issue 1617) * improved prompt collection performance with large graphs of objects by eliminating additional unnecessary graph scans, resulting in further large performance improvements in the garbage collector (issue 1363) * improved InboundTableMapper::queueData() performance (in the TableMapper module) when used with data in hash of lists format to use bulk DML in input and output without internal data conversions (issue 1626) * OracleSqlUtil module fixes: -worked around ORA-22165 from op_in() caused by Oracle's limit on number of collection elements (issue 1660) -fixed a bug in the force option (i.e. cascade) for dropping types (issue 1683) -improved %try-module error reporting and documentation (issue 1648) * fixed a bug in Qore::parse_url() parsing single-character hostnames (issue 1524) * fixed a bug where PO_LOCKDOWN was not set when parsing init and del attributes in user module headers (issue 1535) * fixed a bug parsing exception catch block parameter errors (in debug builds only; issue 1558) * fixed a bug dereferencing binary values with the [] operator; the behavior now corresponds to the documentation (issue 1566) * fixed a bug that would result in a crash if a method were declared both static and abstract (issue 1590) * fixed performance issues with the Mapper module (and by extension the TableMapper module) for mappers with many identity (i.e. 1:1) and constant mappings (issue 1620) * fixed a bug in the BulkInsertOperation class in the BulkSqlUtil module where inserts would fail or silently insert invalid data in the second or later blocks when constant hashes were used (issue 1625) * Mime module: -added support for URL form-encoded messages (issue 1436) * RestClient module: -added support for URL form-encoded messages (issue 1436) -added support for the "rawxml" message body encoding (issue 1437) * fixed handling of invalid compressed data in the following functions (issue 1432): -Qore::gunzip_to_binary() -Qore::gunzip_to_string() -Qore::uncompress_to_binary() -Qore::uncompress_to_string() * fixed @inf@ on Windows (issue 1442): * fixed Qore::parse_url() with single-character usernames (issue 1455) * corrected the error message with SSL reads when the server closes the connection prematurely (issue 1488) * fixed the Host header in HTTP requests to not include the port if the port is the default port for the scheme because it causes some servers to reject the request (issue 1489)
2017-06-13 21:23:31 +02:00
REPLACE_QORE+= bin/sfrest bin/sqlutil doxygen/qdx
CONFIGURE_ARGS+=--with-libsuffix="" --disable-single-compilation-unit
#This is needed in order to comply the with MIT license and binary distribution
#Install docs
licensedir= share/doc/qore/license
INSTALLATION_DIRS+= ${licensedir}
post-install:
${INSTALL_DATA} ${WRKSRC}/COPYING.GPL ${DESTDIR}${PREFIX}/${licensedir}
${INSTALL_DATA} ${WRKSRC}/COPYING.LGPL ${DESTDIR}${PREFIX}/${licensedir}
${INSTALL_DATA} ${WRKSRC}/COPYING.MIT ${DESTDIR}${PREFIX}/${licensedir}
${INSTALL_DATA} ${WRKSRC}/README-LICENSE ${DESTDIR}${PREFIX}/${licensedir}
cd ${WRKSRC}/docs/ && ${PAX} -wr * ${DESTDIR}${PREFIX}/share/doc/qore
${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${DESTDIR}${PREFIX}/share/doc/qore
.include "application.mk"
.include "options.mk"
.include "../../archivers/bzip2/buildlink3.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/pcre/buildlink3.mk"
.include "../../devel/zlib/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../math/mpfr/buildlink3.mk"
.include "../../security/openssl/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"