diff --git a/www/Makefile b/www/Makefile index 4c6716d695e9..55b17bc10a45 100644 --- a/www/Makefile +++ b/www/Makefile @@ -336,6 +336,7 @@ SUBDIR += lua-resty-http SUBDIR += lua-resty-lrucache SUBDIR += lua-resty-session + SUBDIR += lua-resty-session3 SUBDIR += luakit SUBDIR += luakit-devel SUBDIR += lux diff --git a/www/lua-resty-session/Makefile b/www/lua-resty-session/Makefile index 79467f829c00..805670eb2db7 100644 --- a/www/lua-resty-session/Makefile +++ b/www/lua-resty-session/Makefile @@ -1,9 +1,10 @@ PORTNAME= lua-resty-session +PORTREVISION= 1 DISTVERSIONPREFIX=v DISTVERSION= 4.0.5 CATEGORIES= www -MAINTAINER= netchild@FreeBSD.org +MAINTAINER= ports@FreeBSD.org COMMENT= Lua session library for OpenResty / ngx_lua WWW= https://github.com/bungle/lua-resty-session @@ -13,6 +14,8 @@ LICENSE_FILE= ${WRKSRC}/LICENSE RUN_DEPENDS= luajit-openresty>=2.1:lang/luajit-openresty # XXX: deps for filesystem, postgres, redis backends missing +CONFLICTS_INSTALL= lua-resty-session-3* + USE_GITHUB= yes GH_ACCOUNT= bungle diff --git a/www/lua-resty-session3/Makefile b/www/lua-resty-session3/Makefile new file mode 100644 index 000000000000..0d058fb59bac --- /dev/null +++ b/www/lua-resty-session3/Makefile @@ -0,0 +1,60 @@ +PORTNAME= lua-resty-session +DISTVERSIONPREFIX=v +DISTVERSION= 3.10 +CATEGORIES= www + +MAINTAINER= baptiste@bapt.name +COMMENT= Lua session library for OpenResty / ngx_lua Version 3.x +WWW= https://github.com/bungle/lua-resty-session + +LICENSE= BSD2CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= luajit-openresty>=2.1:lang/luajit-openresty +# XXX: deps for filesystem, postgres, redis backends missing + +CONFLICTS_INSTALL= lua-resty-session-4* + +USE_GITHUB= yes +GH_ACCOUNT= bungle + +NO_ARCH= yes +NO_BUILD= yes + +LUA_MODSHAREDIR=${LOCALBASE}/share/lua/5.1 + +PLIST_FILES+= ${LUA_MODSHAREDIR}/resty/session.lua \ + ${LUA_MODSHAREDIR}/resty/session/ciphers/aes.lua \ + ${LUA_MODSHAREDIR}/resty/session/ciphers/none.lua \ + ${LUA_MODSHAREDIR}/resty/session/compressors/none.lua \ + ${LUA_MODSHAREDIR}/resty/session/compressors/zlib.lua \ + ${LUA_MODSHAREDIR}/resty/session/encoders/base16.lua \ + ${LUA_MODSHAREDIR}/resty/session/encoders/base64.lua \ + ${LUA_MODSHAREDIR}/resty/session/encoders/hex.lua \ + ${LUA_MODSHAREDIR}/resty/session/hmac/sha1.lua \ + ${LUA_MODSHAREDIR}/resty/session/identifiers/random.lua \ + ${LUA_MODSHAREDIR}/resty/session/serializers/json.lua \ + ${LUA_MODSHAREDIR}/resty/session/storage/cookie.lua \ + ${LUA_MODSHAREDIR}/resty/session/storage/dshm.lua \ + ${LUA_MODSHAREDIR}/resty/session/storage/memcache.lua \ + ${LUA_MODSHAREDIR}/resty/session/storage/memcached.lua \ + ${LUA_MODSHAREDIR}/resty/session/storage/redis.lua \ + ${LUA_MODSHAREDIR}/resty/session/storage/shm.lua \ + ${LUA_MODSHAREDIR}/resty/session/strategies/default.lua \ + ${LUA_MODSHAREDIR}/resty/session/strategies/regenerate.lua + +PORTDOCS= README.md + +DOCSDIR= ${PREFIX}/share/doc/lua${LUA_VER_STR}/${PORTNAME} + +OPTIONS_DEFINE= DOCS + +do-install: + @${MKDIR} ${STAGEDIR}${LUA_MODSHAREDIR} + @(cd ${WRKSRC}/lib && ${COPYTREE_SHARE} . ${STAGEDIR}${LUA_MODSHAREDIR} "-name *\.lua") + +do-install-DOCS-on: + @${MKDIR} ${STAGEDIR}${DOCSDIR} + @${INSTALL_DATA} ${WRKSRC}/README.md ${STAGEDIR}${DOCSDIR} + +.include diff --git a/www/lua-resty-session3/distinfo b/www/lua-resty-session3/distinfo new file mode 100644 index 000000000000..78c09b6dfda3 --- /dev/null +++ b/www/lua-resty-session3/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1725035042 +SHA256 (bungle-lua-resty-session-v3.10_GH0.tar.gz) = 89ac564760d6a870b12f694dd23f123f8e2d5425c297bc10a8f1738528ec9bce +SIZE (bungle-lua-resty-session-v3.10_GH0.tar.gz) = 32125 diff --git a/www/lua-resty-session3/pkg-descr b/www/lua-resty-session3/pkg-descr new file mode 100644 index 000000000000..2bb13b386f5f --- /dev/null +++ b/www/lua-resty-session3/pkg-descr @@ -0,0 +1,8 @@ +Lua session library for OpenResty / ngx_lua + +Features: + - Sessions are immutable (each save generates a new session), and lockless. + - Session data is AES-256-GCM encrypted with a key derived using HKDF-SHA256. + - Session has a fixed size header that is protected with HMAC-SHA256 MAC with a key derived using HKDF-SHA256. + - Session data can be stored in a stateless cookie or in various backend storages. + - A single session cookie can maintain multiple sessions across different audiences.