Index: head/databases/postgresql-plruby/Makefile =================================================================== --- head/databases/postgresql-plruby/Makefile (revision 509206) +++ head/databases/postgresql-plruby/Makefile (revision 509207) @@ -1,63 +1,65 @@ # Created by: Akinori MUSHA aka knu # $FreeBSD$ PORTNAME= postgresql-plruby PORTVERSION= 0.5.7 PORTREVISION= 4 CATEGORIES= databases ruby DIST_SUBDIR= ruby MAINTAINER= knu@FreeBSD.org COMMENT= PL/Ruby procedural language for the PostgreSQL database system LICENSE= BSD2CLAUSE RUBY LICENSE_COMB= dual +DEPRECATED= Abandonware +EXPIRATION_DATE= 2019-09-15 BROKEN_powerpc64= fails to build: ruby.h:628:35: call to 'ruby_safe_level_2_error' declared with attribute error: $SAFE=2 to 4 are obsolete USES= uidfix pgsql WANT_PGSQL= server USE_RUBY= yes USE_RUBY_EXTCONF= yes USE_GITHUB= yes GH_ACCOUNT= devrimgunduz POSTGRESQL_PORT?= databases/postgresql${PGSQL_VER_NODOT}-server PGSQL_PORTDIR?= ${PORTSDIR}/${POSTGRESQL_PORT} PGSQL_WRKSRC_CMD= cd ${PGSQL_PORTDIR} && ${MAKE} -V WRKSRC CONFIGURE_ARGS= --with-pg-config="${LOCALBASE}/bin/pg_config" \ --with-pgsql-srcinc="`${PGSQL_WRKSRC_CMD}`/src/include" #CONFIGURE_ARGS+= --with-safe-level=0 #CONFIGURE_ARGS+= --with-main-safe-level=0 #CONFIGURE_ARGS+= --with-timeout=30 INSTALL_TARGET= site-install DOCS= Changes plruby.html plruby.rd OPTIONS_DEFINE= DOCS PKGMESSAGE= ${WRKDIR}/createlang.sql post-fetch: cd ${PGSQL_PORTDIR} && ${MAKE} -DBATCH patch post-build: ${SED} 's,!!PLRUBY_SO!!,${RUBY_SITEARCHLIBDIR}/plruby.so,' \ ${FILESDIR}/createlang.sql > ${WRKDIR}/createlang.sql post-build-DOCS-on: cd ${BUILD_WRKSRC}; ${SETENV} ${MAKE_ENV} ${MAKE} ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} rdoc post-install: @${MKDIR} ${STAGEDIR}${RUBY_MODEXAMPLESDIR}/ ${INSTALL_DATA} ${WRKDIR}/createlang.sql ${STAGEDIR}${RUBY_MODEXAMPLESDIR}/ post-install-DOCS-on: @${MKDIR} ${STAGEDIR}${RUBY_MODDOCDIR} cd ${WRKSRC}/ && ${COPYTREE_SHARE} docs/doc ${STAGEDIR}${RUBY_MODDOCDIR}/ README.markdown && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${RUBY_MODDOCDIR}/ ${FIND} -ds ${STAGEDIR}${RUBY_MODDOCDIR} -type f -print | ${SED} -E -e \ 's,^${STAGEDIR}${PREFIX}/?,,' >> ${TMPPLIST} .include Index: head/databases/postgresql-plruby/files/patch-extconf.rb =================================================================== --- head/databases/postgresql-plruby/files/patch-extconf.rb (revision 509206) +++ head/databases/postgresql-plruby/files/patch-extconf.rb (revision 509207) @@ -1,11 +1,13 @@ ---- extconf.rb.orig 2017-08-31 10:56:23 UTC +--- extconf.rb.orig 2017-05-28 08:47:01 UTC +++ extconf.rb -@@ -122,6 +122,8 @@ end +@@ -122,6 +122,10 @@ end case version_str = `#{pg_config} --version` when /^PostgreSQL ([7-9])\.([0-9]{1,3})(\.[0-9]{1,3})?$/ version = 10 * $1.to_i + $2.to_i ++when /^PostgreSQL 11/ ++ version = 110 +when /^PostgreSQL 10/ + version = 100 else version = 0 end Index: head/databases/postgresql-plruby/files/patch-src_plpl.c =================================================================== --- head/databases/postgresql-plruby/files/patch-src_plpl.c (nonexistent) +++ head/databases/postgresql-plruby/files/patch-src_plpl.c (revision 509207) @@ -0,0 +1,151 @@ +--- src/plpl.c.orig 2019-08-04 04:35:14 UTC ++++ src/plpl.c +@@ -137,12 +137,21 @@ pl_query_name(VALUE obj) + } + res = rb_ary_new2(tpl->dsc->natts); + for (i = 0; i < tpl->dsc->natts; i++) { ++#if PG_VERSION_NUM < 110000 + if (tpl->dsc->attrs[i]->attisdropped) { + attname = ""; + } + else { + attname = NameStr(tpl->dsc->attrs[i]->attname); + } ++#else ++ if (TupleDescAttr(tpl->dsc, i)->attisdropped) { ++ attname = ""; ++ } ++ else { ++ attname = NameStr(TupleDescAttr(tpl->dsc, i)->attname); ++ } ++#endif + rb_ary_push(res, rb_tainted_str_new2(attname)); + } + return res; +@@ -178,6 +187,7 @@ pl_query_type(VALUE obj) + } + res = rb_ary_new2(tpl->dsc->natts); + for (i = 0; i < tpl->dsc->natts; i++) { ++#if PG_VERSION_NUM < 110000 + if (tpl->dsc->attrs[i]->attisdropped) + continue; + PLRUBY_BEGIN(1); +@@ -189,6 +199,19 @@ pl_query_type(VALUE obj) + rb_raise(pl_ePLruby, "Cache lookup for attribute '%s' type %ld failed", + attname, OidGD(tpl->dsc->attrs[i]->atttypid)); + } ++#else ++ if (TupleDescAttr(tpl->dsc, i)->attisdropped) ++ continue; ++ PLRUBY_BEGIN(1); ++ attname = NameStr(TupleDescAttr(tpl->dsc, i)->attname); ++ typeTup = SearchSysCache(TYPEOID, OidGD(TupleDescAttr(tpl->dsc, i)->atttypid), ++ 0, 0, 0); ++ PLRUBY_END; ++ if (!HeapTupleIsValid(typeTup)) { ++ rb_raise(pl_ePLruby, "Cache lookup for attribute '%s' type %ld failed", ++ attname, OidGD(TupleDescAttr(tpl->dsc, i)->atttypid)); ++ } ++#endif + fpgt = (Form_pg_type) GETSTRUCT(typeTup); + rb_ary_push(res, rb_tainted_str_new2(NameStr(fpgt->typname))); + ReleaseSysCache(typeTup); +@@ -588,14 +611,23 @@ pl_tuple_heap(VALUE c, VALUE tuple) + MEMZERO(nulls, char, RARRAY_LEN(c)); + for (i = 0; i < RARRAY_LEN(c); i++) { + if (NIL_P(RARRAY_PTR(c)[i]) || ++#if PG_VERSION_NUM < 110000 + tupdesc->attrs[i]->attisdropped) { ++#else ++ TupleDescAttr(tupdesc, i)->attisdropped) { ++#endif + dvalues[i] = (Datum)0; + nulls[i] = 'n'; + } + else { + nulls[i] = ' '; ++#if PG_VERSION_NUM < 110000 + typid = tupdesc->attrs[i]->atttypid; + if (tupdesc->attrs[i]->attndims != 0 || ++#else ++ typid = TupleDescAttr(tupdesc, i)->atttypid; ++ if (TupleDescAttr(tupdesc, i)->attndims != 0 || ++#endif + tpl->att->attinfuncs[i].fn_addr == (PGFunction)array_in) { + pl_proc_desc prodesc; + FmgrInfo func; +@@ -1088,6 +1120,7 @@ plruby_build_tuple(HeapTuple tuple, TupleDesc tupdesc, + } + + for (i = 0; i < tupdesc->natts; i++) { ++#if PG_VERSION_NUM < 110000 + if (tupdesc->attrs[i]->attisdropped) + continue; + PLRUBY_BEGIN(1); +@@ -1101,7 +1134,21 @@ plruby_build_tuple(HeapTuple tuple, TupleDesc tupdesc, + rb_raise(pl_ePLruby, "Cache lookup for attribute '%s' type %ld failed", + attname, OidGD(tupdesc->attrs[i]->atttypid)); + } ++#else ++ if (TupleDescAttr(tupdesc, i)->attisdropped) ++ continue; ++ PLRUBY_BEGIN(1); ++ attname = NameStr(TupleDescAttr(tupdesc, i)->attname); ++ attr = heap_getattr(tuple, i + 1, tupdesc, &isnull); ++ typeTup = SearchSysCache(TYPEOID, OidGD(TupleDescAttr(tupdesc, i)->atttypid), ++ 0, 0, 0); ++ PLRUBY_END; + ++ if (!HeapTupleIsValid(typeTup)) { ++ rb_raise(pl_ePLruby, "Cache lookup for attribute '%s' type %ld failed", ++ attname, OidGD(TupleDescAttr(tupdesc, i)->atttypid)); ++ } ++#endif + fpgt = (Form_pg_type) GETSTRUCT(typeTup); + typoutput = (Oid) (fpgt->typoutput); + #if PG_PL_VERSION >= 75 +@@ -1115,6 +1162,7 @@ plruby_build_tuple(HeapTuple tuple, TupleDesc tupdesc, + int alen; + + typname = NameStr(fpgt->typname); ++#if PG_VERSION_NUM < 110000 + alen = tupdesc->attrs[i]->attlen; + typeid = tupdesc->attrs[i]->atttypid; + if (strcmp(typname, "text") == 0) { +@@ -1129,6 +1177,22 @@ plruby_build_tuple(HeapTuple tuple, TupleDesc tupdesc, + alen = tupdesc->attrs[i]->atttypmod - 4; + } + } ++#else ++ alen = TupleDescAttr(tupdesc, i)->attlen; ++ typeid = TupleDescAttr(tupdesc, i)->atttypid; ++ if (strcmp(typname, "text") == 0) { ++ alen = -1; ++ } ++ else if (strcmp(typname, "bpchar") == 0 || ++ strcmp(typname, "varchar") == 0) { ++ if (TupleDescAttr(tupdesc, i)->atttypmod == -1) { ++ alen = 0; ++ } ++ else { ++ alen = TupleDescAttr(tupdesc, i)->atttypmod - 4; ++ } ++ } ++#endif + if ((type_ret & RET_DESC_ARR) == RET_DESC_ARR) { + res = rb_ary_new(); + rb_ary_push(res, rb_tainted_str_new2(attname)); +@@ -1190,8 +1254,13 @@ plruby_build_tuple(HeapTuple tuple, TupleDesc tupdesc, + + fmgr_info(typoutput, &finfo); + ++#if PG_VERSION_NUM < 110000 + s = pl_convert_arg(attr, tupdesc->attrs[i]->atttypid, + &finfo, typelem,tupdesc->attrs[i]->attlen); ++#else ++ s = pl_convert_arg(attr, tupdesc->attrs[i].atttypid, ++ &finfo, typelem, TupleDescAttr(tupdesc, i)->attlen); ++#endif + } + PLRUBY_END_PROTECT; + Property changes on: head/databases/postgresql-plruby/files/patch-src_plpl.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property Index: head/databases/postgresql-plruby/files/patch-src_plruby.c =================================================================== --- head/databases/postgresql-plruby/files/patch-src_plruby.c (nonexistent) +++ head/databases/postgresql-plruby/files/patch-src_plruby.c (revision 509207) @@ -0,0 +1,74 @@ +--- src/plruby.c.orig 2019-08-04 04:30:44 UTC ++++ src/plruby.c +@@ -1184,17 +1184,29 @@ for_numvals(obj, argobj) + rb_raise(pl_ePLruby, "invalid attribute '%s'", RSTRING_PTR(key)); + } + attnum -= 1; ++#if PG_VERSION_NUM < 110000 + if (arg->tupdesc->attrs[attnum]->attisdropped) { ++#else ++ if (TupleDescAttr(arg->tupdesc, attnum)->attisdropped) { ++#endif + return Qnil; + } + + PLRUBY_BEGIN(1); + typeTup = SearchSysCache(TYPEOID, ++#if PG_VERSION_NUM < 110000 + OidGD(arg->tupdesc->attrs[attnum]->atttypid), ++#else ++ OidGD(TupleDescAttr(arg->tupdesc, attnum)->atttypid), ++#endif + 0, 0, 0); + if (!HeapTupleIsValid(typeTup)) { + rb_raise(pl_ePLruby, "Cache lookup for attribute '%s' type %ld failed", ++#if PG_VERSION_NUM < 110000 + RSTRING_PTR(key), OidGD(arg->tupdesc->attrs[attnum]->atttypid)); ++#else ++ RSTRING_PTR(key), OidGD(TupleDescAttr(arg->tupdesc, attnum)->atttypid)); ++#endif + } + fpg = (Form_pg_type) GETSTRUCT(typeTup); + ReleaseSysCache(typeTup); +@@ -1226,11 +1238,19 @@ for_numvals(obj, argobj) + else { + arg->modvalues[attnum] = + plruby_to_datum(value, &finfo, ++#if PG_VERSION_NUM < 110000 + arg->tupdesc->attrs[attnum]->atttypid, + fpg->typelem, + (!VARLENA_FIXED_SIZE(arg->tupdesc->attrs[attnum])) + ? arg->tupdesc->attrs[attnum]->attlen + : arg->tupdesc->attrs[attnum]->atttypmod); ++#else ++ TupleDescAttr(arg->tupdesc, attnum)->atttypid, ++ fpg->typelem, ++ (!VARLENA_FIXED_SIZE(TupleDescAttr(arg->tupdesc, attnum))) ++ ? TupleDescAttr(arg->tupdesc, attnum)->attlen ++ : TupleDescAttr(arg->tupdesc, attnum)->atttypmod); ++#endif + } + return Qnil; + } +@@ -1284,12 +1304,21 @@ pl_trigger_handler(struct pl_thread_st *plth) + + tmp = rb_ary_new2(tupdesc->natts); + for (i = 0; i < tupdesc->natts; i++) { ++#if PG_VERSION_NUM < 110000 + if (tupdesc->attrs[i]->attisdropped) { + rb_ary_push(tmp, rb_str_freeze_new2("")); + } + else { + rb_ary_push(tmp, rb_str_freeze_new2(NameStr(tupdesc->attrs[i]->attname))); + } ++#else ++ if (TupleDescAttr(tupdesc, i)->attisdropped) { ++ rb_ary_push(tmp, rb_str_freeze_new2("")); ++ } ++ else { ++ rb_ary_push(tmp, rb_str_freeze_new2(NameStr(TupleDescAttr(tupdesc, i)->attname))); ++ } ++#endif + } + rb_hash_aset(TG, rb_str_freeze_new2("relatts"), rb_ary_freeze(tmp)); + Property changes on: head/databases/postgresql-plruby/files/patch-src_plruby.c ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property