Compare commits

...

5 Commits

Author SHA1 Message Date
865385f6f2 flarum: add email-filter extension 2025-01-16 09:13:07 +08:00
e226551eca mattermost: remove unsupported edition message from menu 2025-01-15 11:28:24 +08:00
a572fe236c mattermost: fix override format 2025-01-15 10:22:16 +08:00
e2c78a5064 mattermost: remove free edition banner spam 2025-01-15 10:00:21 +08:00
0e62d0a78a Fix GRE tunnels restarted before udev service started
This patch adds explicit requirements for network addresses services to run after and only when udevd service is running. Also depend on virt netdev creation service instead of device

Signed-off-by: Egor Savkin <es@m-labs.hk>
2025-01-14 16:40:35 +08:00
5 changed files with 448 additions and 76 deletions

View File

@ -358,6 +358,15 @@ in
};
};
systemd.services."network-addresses-${netifUSA}" = {
after = pkgs.lib.mkOverride 1 [ "network-pre.target" "${netifUSA}-netdev.service" "systemd-udevd.service" ];
requires = [ "systemd-udevd.service" ];
};
systemd.services."network-addresses-${netifAlt}" = {
after = pkgs.lib.mkOverride 1 [ "network-pre.target" "${netifAlt}-netdev.service" "systemd-udevd.service" ];
requires = [ "systemd-udevd.service" ];
};
# https://kb.isc.org/docs/dnssec-key-and-signing-policy
# chown named.named /etc/nixos/named
services.bind = {
@ -948,11 +957,10 @@ in
hydraPath = oa.hydraPath + ":" + super.lib.makeBinPath [ super.jq ];
doCheck = false; # FIXME: ldap tests fail on hydra rebuild, seems unrelated to patches above.
});
mattermost = super.mattermost.overrideAttrs(oa: {
postInstall = oa.postInstall +
''
sed -i.bak "s/FREE EDITION//g" $out/client/*.js $out/client/*.js.map
'';
mattermost = super.mattermost.overrideAttrs(oldAttrs: {
webapp = oldAttrs.webapp.overrideAttrs (webappAttrs: {
patches = webappAttrs.patches or [ ] ++ [ ./mattermost-remove-free-banner.patch ];
});
});
matterbridge = super.matterbridge.overrideAttrs(oa: {
patches = oa.patches or [] ++ [ ./matterbridge-disable-github.patch ];

View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "4fabd8ac0c664ee2d779f1dec28ef2b3",
"content-hash": "4cdb60c860f81068e57be8adcf5d68e6",
"packages": [
{
"name": "axy/backtrace",
@ -1007,22 +1007,22 @@
},
{
"name": "enshrined/svg-sanitize",
"version": "0.15.4",
"version": "0.21.0",
"source": {
"type": "git",
"url": "https://github.com/darylldoyle/svg-sanitizer.git",
"reference": "e50b83a2f1f296ca61394fe88fbfe3e896a84cf4"
"reference": "5e477468fac5c5ce933dce53af3e8e4e58dcccc9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/e50b83a2f1f296ca61394fe88fbfe3e896a84cf4",
"reference": "e50b83a2f1f296ca61394fe88fbfe3e896a84cf4",
"url": "https://api.github.com/repos/darylldoyle/svg-sanitizer/zipball/5e477468fac5c5ce933dce53af3e8e4e58dcccc9",
"reference": "5e477468fac5c5ce933dce53af3e8e4e58dcccc9",
"shasum": ""
},
"require": {
"ext-dom": "*",
"ext-libxml": "*",
"php": "^7.0 || ^8.0"
"php": "^7.1 || ^8.0"
},
"require-dev": {
"phpunit/phpunit": "^6.5 || ^8.5"
@ -1046,9 +1046,9 @@
"description": "An SVG sanitizer for PHP",
"support": {
"issues": "https://github.com/darylldoyle/svg-sanitizer/issues",
"source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.15.4"
"source": "https://github.com/darylldoyle/svg-sanitizer/tree/0.21.0"
},
"time": "2022-02-21T09:13:59+00:00"
"time": "2025-01-13T09:32:25+00:00"
},
{
"name": "fig/http-message-util",
@ -2593,17 +2593,119 @@
"time": "2024-11-20T08:51:17+00:00"
},
{
"name": "fof/polls",
"version": "2.2.9",
"name": "fof/components",
"version": "1.0.0",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfFlarum/polls.git",
"reference": "9d30e39a01bd420e3a37985849699f2c010e3611"
"url": "https://github.com/FriendsOfFlarum/components.git",
"reference": "1e60224260b5a284a385968c6fa99ecd4a89c026"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfFlarum/polls/zipball/9d30e39a01bd420e3a37985849699f2c010e3611",
"reference": "9d30e39a01bd420e3a37985849699f2c010e3611",
"url": "https://api.github.com/repos/FriendsOfFlarum/components/zipball/1e60224260b5a284a385968c6fa99ecd4a89c026",
"reference": "1e60224260b5a284a385968c6fa99ecd4a89c026",
"shasum": ""
},
"require": {
"flarum/core": "^1.0.0"
},
"type": "library",
"autoload": {
"psr-4": {
"FoF\\Components\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "David Sevilla Martín",
"email": "me+fof@datitisev.me",
"role": "Developer"
}
],
"description": "[NOT EXT] Reusable JavaScript components for your Flarum extension",
"keywords": [
"flarum",
"friendsofflarum"
],
"support": {
"issues": "https://github.com/FriendsOfFlarum/components/issues",
"source": "https://github.com/FriendsOfFlarum/components/tree/1.0.0"
},
"funding": [
{
"url": "https://opencollective.com/fof",
"type": "open_collective"
}
],
"time": "2021-05-17T13:47:34+00:00"
},
{
"name": "fof/extend",
"version": "1.3.3",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfFlarum/extend.git",
"reference": "ba55c9b765911cb689592d0de787e3351625e3f0"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfFlarum/extend/zipball/ba55c9b765911cb689592d0de787e3351625e3f0",
"reference": "ba55c9b765911cb689592d0de787e3351625e3f0",
"shasum": ""
},
"require": {
"flarum/core": "^1.0.0"
},
"require-dev": {
"flarum/phpstan": "*",
"league/oauth2-client": "^2.7"
},
"type": "library",
"autoload": {
"psr-4": {
"FoF\\Extend\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "David Sevilla Martin",
"email": "me+fof@datitisev.me",
"role": "Developer"
}
],
"description": "Configurable PHP components for your Flarum extension",
"support": {
"issues": "https://github.com/FriendsOfFlarum/extend/issues",
"source": "https://github.com/FriendsOfFlarum/extend/tree/1.3.3"
},
"funding": [
{
"url": "https://opencollective.com/fof",
"type": "open_collective"
}
],
"time": "2023-11-30T08:13:16+00:00"
},
{
"name": "fof/polls",
"version": "2.2.11",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfFlarum/polls.git",
"reference": "a788a5e8ed15ca297bdf2b8f7e168ac6773352c9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfFlarum/polls/zipball/a788a5e8ed15ca297bdf2b8f7e168ac6773352c9",
"reference": "a788a5e8ed15ca297bdf2b8f7e168ac6773352c9",
"shasum": ""
},
"require": {
@ -2618,15 +2720,6 @@
},
"type": "flarum-extension",
"extra": {
"flarum-extension": {
"title": "FoF Polls",
"category": "discussion",
"icon": {
"name": "fas fa-poll",
"backgroundColor": "#e74c3c",
"color": "#fff"
}
},
"flagrow": {
"discuss": "https://discuss.flarum.org/d/20586"
},
@ -2635,6 +2728,15 @@
"githubActions": true,
"backendTesting": true
}
},
"flarum-extension": {
"icon": {
"name": "fas fa-poll",
"color": "#fff",
"backgroundColor": "#e74c3c"
},
"title": "FoF Polls",
"category": "discussion"
}
},
"autoload": {
@ -2670,7 +2772,7 @@
"type": "website"
}
],
"time": "2024-10-28T22:02:59+00:00"
"time": "2024-12-09T10:44:10+00:00"
},
{
"name": "fof/subscribed",
@ -2699,19 +2801,6 @@
},
"type": "flarum-extension",
"extra": {
"flarum-extension": {
"title": "FoF Subscribed",
"category": "feature",
"icon": {
"name": "fas fa-reply-all",
"backgroundColor": "#e74c3c",
"color": "#fff"
},
"optional-dependencies": [
"flarum/approval",
"flarum/flags"
]
},
"flagrow": {
"discuss": "https://discuss.flarum.org/d/20917"
},
@ -2719,6 +2808,19 @@
"modules": {
"githubActions": true
}
},
"flarum-extension": {
"icon": {
"name": "fas fa-reply-all",
"color": "#fff",
"backgroundColor": "#e74c3c"
},
"title": "FoF Subscribed",
"category": "feature",
"optional-dependencies": [
"flarum/approval",
"flarum/flags"
]
}
},
"autoload": {
@ -2761,26 +2863,26 @@
},
{
"name": "fof/upload",
"version": "1.6.1",
"version": "1.7.0",
"source": {
"type": "git",
"url": "https://github.com/FriendsOfFlarum/upload.git",
"reference": "039544d9a4751cebcf44d2eb079583a6d4dac274"
"reference": "bc66315ea428438a180efbf8a80f9db44454a4ac"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/FriendsOfFlarum/upload/zipball/039544d9a4751cebcf44d2eb079583a6d4dac274",
"reference": "039544d9a4751cebcf44d2eb079583a6d4dac274",
"url": "https://api.github.com/repos/FriendsOfFlarum/upload/zipball/bc66315ea428438a180efbf8a80f9db44454a4ac",
"reference": "bc66315ea428438a180efbf8a80f9db44454a4ac",
"shasum": ""
},
"require": {
"enshrined/svg-sanitize": "^0.15.4",
"enshrined/svg-sanitize": "^0",
"ext-json": "*",
"flarum/core": "^1.8.3",
"guzzlehttp/guzzle": "^6.0 || ^7.0",
"php": "^8.0",
"php": "^8.1",
"ramsey/uuid": "^3.5.2 || ^4",
"softcreatr/php-mime-detector": "^3.0"
"softcreatr/php-mime-detector": "^4.0"
},
"replace": {
"flagrow/upload": "*"
@ -2798,24 +2900,24 @@
},
"type": "flarum-extension",
"extra": {
"flarum-extension": {
"title": "FoF Upload",
"category": "feature",
"icon": {
"name": "fas fa-file-upload",
"backgroundColor": "#e74c3c",
"color": "#fff"
}
},
"flagrow": {
"discuss": "https://discuss.flarum.org/d/4154"
},
"flarum-cli": {
"modules": {
"githubActions": true,
"typescript": true,
"githubActions": true,
"backendTesting": true
}
},
"flarum-extension": {
"icon": {
"name": "fas fa-file-upload",
"color": "#fff",
"backgroundColor": "#e74c3c"
},
"title": "FoF Upload",
"category": "feature"
}
},
"autoload": {
@ -2856,7 +2958,7 @@
"type": "website"
}
],
"time": "2024-11-23T18:33:38+00:00"
"time": "2024-11-30T14:03:04+00:00"
},
{
"name": "franzl/whoops-middleware",
@ -6056,6 +6158,58 @@
},
"time": "2015-06-18T19:15:47+00:00"
},
{
"name": "nyu8/flarum-email-filter",
"version": "1.0.7",
"source": {
"type": "git",
"url": "https://github.com/nyu8/flarum-email-filter.git",
"reference": "a8e09c0d42366fe30f7c203037c8dfa0858f49cb"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/nyu8/flarum-email-filter/zipball/a8e09c0d42366fe30f7c203037c8dfa0858f49cb",
"reference": "a8e09c0d42366fe30f7c203037c8dfa0858f49cb",
"shasum": ""
},
"require": {
"flarum/core": "^1.0",
"fof/components": "^1.0",
"fof/extend": "^1.0"
},
"type": "flarum-extension",
"extra": {
"flarum-extension": {
"icon": {
"name": "fas fa-envelope",
"color": "#ffffff",
"backgroundColor": "#eb5424"
},
"title": "Email Filter"
}
},
"autoload": {
"psr-4": {
"NYU8\\FlarumEmailFilter\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "NYU8",
"email": "dev@nyu8.com"
}
],
"description": "Filter emails registering your Flarum site with whitelist, blacklist and even regular expressions.",
"support": {
"issues": "https://github.com/nyu8/flarum-email-filter/issues",
"source": "https://github.com/nyu8/flarum-email-filter"
},
"time": "2022-04-26T05:45:27+00:00"
},
{
"name": "opis/closure",
"version": "3.6.3",
@ -7076,25 +7230,25 @@
},
{
"name": "softcreatr/php-mime-detector",
"version": "3.2.1",
"version": "4.0.0",
"source": {
"type": "git",
"url": "https://github.com/SoftCreatR/php-mime-detector.git",
"reference": "bd26abae1659901617ed51150063c310e089eef9"
"reference": "ae204590de58cc4655c8fbf9a2dfbcbb21dae4fe"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/SoftCreatR/php-mime-detector/zipball/bd26abae1659901617ed51150063c310e089eef9",
"reference": "bd26abae1659901617ed51150063c310e089eef9",
"url": "https://api.github.com/repos/SoftCreatR/php-mime-detector/zipball/ae204590de58cc4655c8fbf9a2dfbcbb21dae4fe",
"reference": "ae204590de58cc4655c8fbf9a2dfbcbb21dae4fe",
"shasum": ""
},
"require": {
"php": ">=7.1.0"
"php": ">=8.1.0"
},
"require-dev": {
"phpunit/phpunit": ">=7.0",
"roave/security-advisories": "dev-master",
"squizlabs/php_codesniffer": "^3.5"
"phpunit/phpunit": ">=10.0",
"roave/security-advisories": "dev-latest",
"squizlabs/php_codesniffer": "^3.7"
},
"type": "library",
"autoload": {
@ -7135,7 +7289,7 @@
"type": "github"
}
],
"time": "2021-05-30T10:34:43+00:00"
"time": "2024-09-01T17:19:47+00:00"
},
{
"name": "staudenmeir/eloquent-eager-limit",

View File

@ -17,14 +17,13 @@ php.buildComposerProject (finalAttrs: {
};
patches = [
# Add useful extensions from https://github.com/FriendsOfFlarum
# Extensions included: fof/upload, fof/polls, fof/subscribed
./fof-extensions.patch
# Add useful flarum extensions (polls, subscribed, upload, email-filter)
./flarum-extensions.patch
];
composerLock = ./composer.lock;
composerStrictValidation = false;
vendorHash = "sha256-GLE5ZtzZmQ8YbitV6LG744QHoGxlj5TfC5wP2a3eFpU=";
vendorHash = "sha256-rWvIKiQVyfvUprYfm/+Jdq+DO5qymyWp+Xh0c0nY2Cw=";
meta = with lib; {
changelog = "https://github.com/flarum/framework/blob/main/CHANGELOG.md";

View File

@ -1,8 +1,8 @@
diff --git a/composer.json b/composer.json
index c63b5f8..5ad1186 100644
index c63b5f8..4bc00c1 100644
--- a/composer.json
+++ b/composer.json
@@ -37,7 +37,10 @@
@@ -37,7 +37,11 @@
"flarum/sticky": "*",
"flarum/subscriptions": "*",
"flarum/suspend": "*",
@ -10,7 +10,8 @@ index c63b5f8..5ad1186 100644
+ "flarum/tags": "*",
+ "fof/polls": "*",
+ "fof/subscribed": "*",
+ "fof/upload": "*"
+ "fof/upload": "*",
+ "nyu8/flarum-email-filter": "^1.0"
},
"config": {
"preferred-install": "dist",

View File

@ -0,0 +1,210 @@
diff --git webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_team_edition.tsx webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_team_edition.tsx
index 9af4fc7354..60ae3160e8 100644
--- webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_team_edition.tsx
+++ webapp/channels/src/components/global_header/left_controls/product_menu/product_branding_team_edition/product_branding_team_edition.tsx
@@ -9,10 +9,6 @@ import Logo from 'components/common/svg_images_components/logo_dark_blue_svg';
const ProductBrandingTeamEditionContainer = styled.div`
display: flex;
align-items: center;
-
- > * + * {
- margin-left: 8px;
- }
`;
const StyledLogo = styled(Logo)`
@@ -21,23 +17,6 @@ const StyledLogo = styled(Logo)`
}
`;
-const Badge = styled.div`
- display: flex;
- align-self: center;
- padding: 2px 6px;
- position: relative;
- top: 1px;
- border-radius: var(--radius-s);
- margin-left: 12px;
- background: rgba(var(--sidebar-text-rgb), 0.08);
- color: rgba(var(--sidebar-text-rgb), 0.75);
- font-family: 'Open Sans', sans-serif;
- font-size: 10px;
- font-weight: 600;
- letter-spacing: 0.025em;
- line-height: 16px;
-`;
-
const ProductBrandingTeamEdition = (): JSX.Element => {
return (
<ProductBrandingTeamEditionContainer tabIndex={0}>
@@ -45,7 +24,6 @@ const ProductBrandingTeamEdition = (): JSX.Element => {
width={116}
height={20}
/>
- <Badge>{'FREE EDITION'}</Badge>
</ProductBrandingTeamEditionContainer>
);
};
diff --git webapp/channels/src/components/header_footer_route/header.scss webapp/channels/src/components/header_footer_route/header.scss
index e7c76f9861..2841858f44 100644
--- webapp/channels/src/components/header_footer_route/header.scss
+++ webapp/channels/src/components/header_footer_route/header.scss
@@ -39,23 +39,6 @@
width: 170px;
fill: var(--center-channel-color);
}
-
- .freeBadge {
- position: relative;
- top: 1px;
- display: flex;
- align-self: center;
- padding: 2px 6px;
- border-radius: var(--radius-s);
- margin-left: 12px;
- background: rgba(var(--center-channel-color-rgb), 0.08);
- color: rgba(var(--center-channel-color-rgb), 0.75);
- font-family: 'Open Sans', sans-serif;
- font-size: 10px;
- font-weight: 600;
- letter-spacing: 0.025em;
- line-height: 16px;
- }
}
}
@@ -77,12 +60,6 @@
margin-top: 12px;
}
}
-
- &.has-free-banner.has-custom-site-name {
- .header-back-button {
- bottom: -20px;
- }
- }
}
@media screen and (max-width: 699px) {
diff --git webapp/channels/src/components/header_footer_route/header.tsx webapp/channels/src/components/header_footer_route/header.tsx
index 8cd1d8a624..55554fb0ad 100644
--- webapp/channels/src/components/header_footer_route/header.tsx
+++ webapp/channels/src/components/header_footer_route/header.tsx
@@ -25,33 +25,15 @@ const Header = ({alternateLink, backButtonURL, onBackButtonClick}: HeaderProps)
const ariaLabel = SiteName || 'Mattermost';
- let freeBanner = null;
- if (license.IsLicensed === 'false') {
- freeBanner = <><Logo/><span className='freeBadge'>{'FREE EDITION'}</span></>;
- }
-
let title: React.ReactNode = SiteName;
if (title === 'Mattermost') {
- if (freeBanner) {
- title = '';
- } else {
- title = <Logo/>;
- }
+ title = <Logo/>;
}
return (
- <div className={classNames('hfroute-header', {'has-free-banner': freeBanner, 'has-custom-site-name': title})}>
+ <div className={classNames('hfroute-header', {'has-custom-site-name': title})}>
<div className='header-main'>
<div>
- {freeBanner &&
- <Link
- className='header-logo-link'
- to='/'
- aria-label={ariaLabel}
- >
- {freeBanner}
- </Link>
- }
{title &&
<Link
className='header-logo-link'
diff --git webapp/channels/src/components/widgets/menu/menu_items/menu_start_trial.tsx webapp/channels/src/components/widgets/menu/menu_items/menu_start_trial.tsx
index 35646539c4..fbdbb39710 100644
--- webapp/channels/src/components/widgets/menu/menu_items/menu_start_trial.tsx
+++ webapp/channels/src/components/widgets/menu/menu_items/menu_start_trial.tsx
@@ -1,42 +1,17 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
-import React from 'react';
-import {useIntl} from 'react-intl';
import {useSelector} from 'react-redux';
-import styled from 'styled-components';
import {getLicense} from 'mattermost-redux/selectors/entities/general';
-import ExternalLink from 'components/external_link';
-
-import {LicenseLinks} from 'utils/constants';
-
import './menu_item.scss';
-const FreeVersionBadge = styled.div`
- position: relative;
- top: 1px;
- display: flex;
- padding: 2px 6px;
- border-radius: var(--radius-s);
- margin-bottom: 6px;
- background: rgba(var(--center-channel-color-rgb), 0.08);
- color: rgba(var(--center-channel-color-rgb), 0.75);
- font-family: 'Open Sans', sans-serif;
- font-size: 10px;
- font-weight: 600;
- letter-spacing: 0.025em;
- line-height: 16px;
-`;
-
type Props = {
id: string;
}
const MenuStartTrial = (props: Props): JSX.Element | null => {
- const {formatMessage} = useIntl();
-
const license = useSelector(getLicense);
const isCurrentLicensed = license?.IsLicensed;
@@ -44,33 +19,7 @@ const MenuStartTrial = (props: Props): JSX.Element | null => {
return null;
}
- return (
- <li
- className={'MenuStartTrial'}
- role='menuitem'
- id={props.id}
- >
- <FreeVersionBadge>{'FREE EDITION'}</FreeVersionBadge>
- <div className='editionText'>
- {formatMessage(
- {
- id: 'navbar_dropdown.versionText',
- defaultMessage: 'This is the free <link>unsupported</link> edition of Mattermost.',
- },
- {
- link: (msg: React.ReactNode) => (
- <ExternalLink
- location='menu_start_trial.unsupported-link'
- href={LicenseLinks.UNSUPPORTED}
- >
- {msg}
- </ExternalLink>
- ),
- },
- )}
- </div>
- </li>
- );
+ return null;
};
export default MenuStartTrial;