Compare commits

...

17 Commits
8.8.4 ... 8.8.7

Author SHA1 Message Date
Mario Vavti
f57fbaa5dd version 8.8.7 2024-01-19 11:07:23 +01:00
Mario Vavti
aba8002170 Fix regression in Activity::actor_store()
(cherry picked from commit 9cc85adf47)
2024-01-19 10:03:58 +00:00
Mario Vavti
0bdffc4a2d make our jsonld parser happy 2024-01-13 08:49:14 +01:00
Mario Vavti
400dfb4e6b version 8.8.6 2024-01-11 17:57:51 +01:00
Mario
6b951734ce changelog
(cherry picked from commit 000fcfd1ac)
2024-01-11 16:56:13 +00:00
Mario
051e2ed6cd provide some more jsonld builtins
(cherry picked from commit aac406a245)
2024-01-11 16:40:16 +00:00
Mario Vavti
ef2952b5fd libsync: dev branch compatibility 2024-01-11 17:00:47 +01:00
Mario Vavti
d655e1d765 version 8.8.5 2024-01-01 21:30:45 +01:00
Mario Vavti
db70ed006d Merge branch 'dev' 2024-01-01 21:29:53 +01:00
Mario Vavti
ce1dd5c632 changelog 2024-01-01 21:29:15 +01:00
Mario Vavti
9e2a253dda Merge branch 'dev' 2024-01-01 21:21:04 +01:00
Mario
95c645865d Merge branch 'doc-fixes' into 'dev'
docs: Update admin guide requirements

See merge request hubzilla/core!2080
2024-01-01 20:17:52 +00:00
Mario Vavti
f2f9cfaf28 Work around possible loop and use Lib/Config in init 2024-01-01 21:01:47 +01:00
Mario Vavti
62db8c3969 fix php errors and deprecation warnings 2023-12-31 09:55:27 +01:00
Mario Vavti
ae3db366e5 deprecate simplepie idna_convert 2023-12-31 09:54:54 +01:00
Harald Eilertsen
57570c144a doc/admin-guide: Update min php version and reqd extensions. 2023-12-26 15:34:50 +01:00
Mario
c3a235242e do not double process quoted strings 2023-12-21 10:19:26 +00:00
17 changed files with 222 additions and 55 deletions

View File

@@ -1,3 +1,19 @@
Hubzilla 8.8.7 (2024-01-19)
- Fix regression in Activity::actor_store()
Hubzilla 8.8.6 (2024-01-11)
- Provide more builtin jsonld files
- Development branch compatibility in Libsync
Hubzilla 8.8.5 (2024-01-01)
- Fix possible loop if DB is not reachable (introduced in 8.8.3)
- Fix some errors and deprecation warnings with PHP 8.2
- Deprecate simplepie idna_convert in favor of PHP native function
- Fix double processed quoted strings in get_tags()
Hubzilla 8.8.4 (2023-12-20)
- Fix regression introduced in version 8.8.3
- Add test for Lib/Config

View File

@@ -1626,11 +1626,15 @@ class Activity {
}
*/
$url = null;
$ap_hubloc = null;
$url = $person_obj['id'] ?? '';
if (!$url) {
return;
}
$hublocs = self::get_actor_hublocs($url);
$has_zot_hubloc = false;
$ap_hubloc = null;
if ($hublocs) {
foreach ($hublocs as $hub) {
@@ -1654,14 +1658,6 @@ class Activity {
}
}
if (isset($person_obj['id'])) {
$url = $person_obj['id'];
}
if (!$url) {
return;
}
$inbox = $person_obj['inbox'] ?? null;
// invalid AP identity

View File

@@ -51,8 +51,6 @@ class Config {
}
App::$config[$family]['config_loaded'] = true;
}
}
}

View File

@@ -339,6 +339,8 @@ class Libsync {
}
$columns = db_columns('channel');
$disallowed = [
'channel_id', 'channel_account_id', 'channel_primary', 'channel_prvkey',
'channel_address', 'channel_notifyflags', 'channel_removed', 'channel_deleted',
@@ -349,16 +351,16 @@ class Libsync {
'channel_a_delegate'
];
$clean = [];
foreach ($arr['channel'] as $k => $v) {
if (in_array($k, $disallowed))
if (in_array($k, $disallowed)) {
continue;
$clean[$k] = $v;
}
if (count($clean)) {
foreach ($clean as $k => $v) {
dbq("UPDATE channel set " . dbesc($k) . " = '" . dbesc($v) . "' where channel_id = " . intval($channel['channel_id']));
}
if (!in_array($k, $columns)) {
continue;
}
dbq("UPDATE channel set " . dbesc($k) . " = '" . dbesc($v) . "' where channel_id = " . intval($channel['channel_id']));
}
}

View File

@@ -17,11 +17,11 @@ class PhotoGd extends PhotoDriver {
$t = [];
$t['image/jpeg'] = 'jpg';
if(imagetypes() & IMG_PNG)
if(\imagetypes() & IMG_PNG)
$t['image/png'] = 'png';
if(imagetypes() & IMG_GIF)
if(\imagetypes() & IMG_GIF)
$t['image/gif'] = 'gif';
if(imagetypes() & IMG_WEBP)
if(\imagetypes() & IMG_WEBP)
$t['image/webp'] = 'webp';
return $t;

View File

@@ -24,7 +24,7 @@ class Tagadelic {
$x ++;
}
usort($tags,'self::tags_sort');
usort($tags, [self::class, 'tags_sort']);
$range = max(.01, $max - $min) * 1.0001;
@@ -41,4 +41,4 @@ class Tagadelic {
return((strtolower($a[0]) < strtolower($b[0])) ? -1 : 1);
}
}
}

View File

@@ -22,6 +22,7 @@ class Receiver {
protected $prvkey;
protected $rawdata;
protected $sigdata;
protected $hub;
function __construct($handler, $localdata = null) {

View File

@@ -62,7 +62,7 @@ require_once('include/conversation.php');
require_once('include/acl_selectors.php');
define('PLATFORM_NAME', 'hubzilla');
define('STD_VERSION', '8.8.4');
define('STD_VERSION', '8.8.7');
define('ZOT_REVISION', '6.0');
define('DB_UPDATE_VERSION', 1259);
@@ -680,8 +680,8 @@ function sys_boot() {
* Load configs from db. Overwrite configs from .htconfig.php
*/
load_config('system');
load_config('feature');
Config::Load('system');
Config::Load('feature');
App::$session = new Zotlabs\Web\Session();
App::$session->init();

View File

@@ -85,16 +85,16 @@ There are several ways to deploy a new hub.
Example config scripts are available for these platforms in doc/install.
Apache and nginx have the most support.
* PHP 7.1 or later.
* Note that on some shared hosting environments, the _command line_
version of PHP might differ from the _webserver_ version
* PHP 8.1 or later.
Note that on some shared hosting environments, the _command line_
version of PHP might differ from the _webserver_ version
* PHP *command line* access with register_argc_argv set to true in the
php.ini file * and with no hosting provider restrictions on the use of
php.ini file, and with no hosting provider restrictions on the use of
exec() and proc_open().
* curl, gd (with at least jpeg and png support), mysqli, mbstring, zip,
and openssl extensions. The imagick extension is not required but desirable.
* curl, gd (with at least jpeg and png support), pdo-mysql (or pdo-postgres), mbstring, zip,
and openssl extensions. The imagick extension is not required, but recommended.
* xml extension is required if you want webdav to work.

View File

@@ -2061,6 +2061,10 @@ function jsonld_document_loader($url) {
'https://www.w3.org/ns/activitystreams' => 'library/w3org/activitystreams.jsonld',
'https://w3id.org/identity/v1' => 'library/w3org/identity-v1.jsonld',
'https://w3id.org/security/v1' => 'library/w3org/security-v1.jsonld',
'https://www.w3.org/ns/did/v1' => 'library/w3org/did-v1.jsonld',
'https://w3id.org/security/multikey/v1' => 'library/w3org/security-multikey-v1.jsonld',
'https://w3id.org/security/data-integrity/v1' => 'library/w3org/security-data-integrity-v1.jsonld',
'https://purl.archive.org/socialweb/webfinger' => 'library/w3org/socialweb-webfinger.jsonld'
];
$x = debug_backtrace();

View File

@@ -190,7 +190,7 @@ function reload_plugins() {
$plugins = get_config('system', 'addon');
if(strlen($plugins)) {
$r = dbq("SELECT * FROM addon WHERE installed = 1");
if(count($r))
if($r)
$installed = $r;
else
$installed = array();

View File

@@ -3,7 +3,10 @@
require_once("include/network.php");
function system_down() {
http_status(503, 'Service Unavailable');
// Set $skiplog to true here. Otherwise we will run into a loop
// when system_unavailable() -> system_down() is called from Zotlabs\Lib\Config::Load()
// but the DB is not available.
http_status(503, 'Service Unavailable', true);
echo <<< EOT
<html>
<head><title>System Unavailable</title></head>
@@ -12,4 +15,4 @@ Apologies but this site is unavailable at the moment. Please try again later.
</body>
</html>
EOT;
}
}

View File

@@ -904,6 +904,8 @@ function get_tags($s) {
$ret[] = $mtch;
}
}
if(preg_match_all('/([@#\!]\".*?\")/',$s,$match)) {
foreach($match[1] as $mtch) {
$ret[] = $mtch;
@@ -936,6 +938,8 @@ function get_tags($s) {
// or quote remnants from the quoted strings we already picked out earlier
if(strpos($mtch,'&quot'))
continue;
if(strpos($mtch,'"'))
continue;
$ret[] = $mtch;
}
@@ -1639,6 +1643,7 @@ function format_hashtags(&$item) {
$s = '';
$terms = isset($item['term']) ? get_terms_oftype($item['term'], array(TERM_HASHTAG, TERM_COMMUNITYTAG)) : [];
if($terms) {
foreach($terms as $t) {
$term = htmlspecialchars($t['term'], ENT_COMPAT, 'UTF-8', false) ;
@@ -3834,30 +3839,21 @@ function featured_sort($a,$b) {
}
// Be aware that punify will convert domain names and pathnames
function unpunify($s) {
if (function_exists('idn_to_utf8') && isset($s)) {
return idn_to_utf8($s);
}
return $s;
}
function punify($s) {
require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
$x = new idna_convert(['encoding' => 'utf8']);
return $x->encode($s);
if (function_exists('idn_to_ascii') && isset($s)) {
return idn_to_ascii($s);
}
return $s;
}
/**
* Be aware that unpunify() will only convert domain names and not pathnames.
*
* @param string $s
* @return string
*/
function unpunify($s) {
require_once('vendor/simplepie/simplepie/idn/idna_convert.class.php');
$x = new idna_convert(['encoding' => 'utf8']);
return $x->decode($s);
}
function unique_multidim_array($array, $key) {
$temp_array = array();
$i = 0;

View File

@@ -0,0 +1,54 @@
{
"@context": {
"alsoKnownAs": {
"@id": "https://www.w3.org/ns/activitystreams#alsoKnownAs",
"@type": "@id"
},
"assertionMethod": {
"@id": "https://w3id.org/security#assertionMethod",
"@type": "@id",
"@container": "@set"
},
"authentication": {
"@id": "https://w3id.org/security#authenticationMethod",
"@type": "@id",
"@container": "@set"
},
"capabilityDelegation": {
"@id": "https://w3id.org/security#capabilityDelegationMethod",
"@type": "@id",
"@container": "@set"
},
"capabilityInvocation": {
"@id": "https://w3id.org/security#capabilityInvocationMethod",
"@type": "@id",
"@container": "@set"
},
"controller": {
"@id": "https://w3id.org/security#controller",
"@type": "@id"
},
"keyAgreement": {
"@id": "https://w3id.org/security#keyAgreementMethod",
"@type": "@id",
"@container": "@set"
},
"service": {
"@id": "https://www.w3.org/ns/did#service",
"@type": "@id",
"@context": {
"@protected": true,
"id": "@id",
"type": "@type",
"serviceEndpoint": {
"@id": "https://www.w3.org/ns/did#serviceEndpoint",
"@type": "@id"
}
}
},
"verificationMethod": {
"@id": "https://w3id.org/security#verificationMethod",
"@type": "@id"
}
}
}

View File

@@ -0,0 +1,62 @@
{
"@context": {
"id": "@id",
"type": "@type",
"proof": {
"@id": "https://w3id.org/security#proof",
"@type": "@id"
},
"DataIntegrityProof": {
"@id": "https://w3id.org/security#DataIntegrityProof"
},
"challenge": "https://w3id.org/security#challenge",
"created": {
"@id": "http://purl.org/dc/terms/created",
"@type": "http://www.w3.org/2001/XMLSchema#dateTime"
},
"domain": "https://w3id.org/security#domain",
"expires": {
"@id": "https://w3id.org/security#expiration",
"@type": "http://www.w3.org/2001/XMLSchema#dateTime"
},
"nonce": "https://w3id.org/security#nonce",
"cryptosuite": "https://w3id.org/security#cryptosuite",
"proofValue": {
"@id": "https://w3id.org/security#proofValue",
"@type": "https://w3id.org/security#multibase"
},
"verificationMethod": {
"@id": "https://w3id.org/security#verificationMethod",
"@type": "@id"
},
"proofPurpose": {
"@id": "https://w3id.org/security#proofPurpose",
"@type": "@vocab"
},
"assertionMethod": {
"@id": "https://w3id.org/security#assertionMethod",
"@type": "@id",
"@container": "@set"
},
"authentication": {
"@id": "https://w3id.org/security#authenticationMethod",
"@type": "@id",
"@container": "@set"
},
"capabilityInvocation": {
"@id": "https://w3id.org/security#capabilityInvocationMethod",
"@type": "@id",
"@container": "@set"
},
"capabilityDelegation": {
"@id": "https://w3id.org/security#capabilityDelegationMethod",
"@type": "@id",
"@container": "@set"
},
"keyAgreement": {
"@id": "https://w3id.org/security#keyAgreementMethod",
"@type": "@id",
"@container": "@set"
}
}
}

View File

@@ -0,0 +1,25 @@
{
"@context": {
"id": "@id",
"type": "@type",
"Multikey": {
"@id": "https://w3id.org/security#Multikey"
},
"controller": {
"@id": "https://w3id.org/security#controller",
"@type": "@id"
},
"revoked": {
"@id": "https://w3id.org/security#revoked",
"@type": "http://www.w3.org/2001/XMLSchema#dateTime"
},
"publicKeyMultibase": {
"@id": "https://w3id.org/security#publicKeyMultibase",
"@type": "https://w3id.org/security#multibase"
},
"secretKeyMultibase": {
"@id": "https://w3id.org/security#secretKeyMultibase",
"@type": "https://w3id.org/security#multibase"
}
}
}

View File

@@ -0,0 +1,10 @@
{
"@context": {
"wf": "https://purl.archive.org/socialweb/webfinger#",
"xsd": "http://www.w3.org/2001/XMLSchema#",
"webfinger": {
"@id": "wf:webfinger",
"@type": "xsd:string"
}
}
}