Add an app store exception to the license v1 APPLIED

Lauri Tirkkonen: 1
 page/buffer: render ctcp actions without bubbles
Simon Ser: 1
 Add an app store exception to the license

 2 files changed, 19 insertions(+), 16 deletions(-)

gentle ping on this.

My apologies, I only noticed this thread just now. Thanks for the ping.
The relicensing looks good to me, so ACK!
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.sr.ht/~emersion/goguma-dev/patches/38217/mbox | git am -3
Learn more about email & git

[PATCH] Add an app store exception to the license Export this patch

Allow developers to distribute the app via the Apple app store.

References: https://lists.sr.ht/~emersion/goguma-dev/%3CZ_HeiV90GoVvfCDQCre3m3XVfYmLcxEI2GkAq56v3hGszfW1uqpqXSjzoQFlJ-SGuRmuvvewHLO4HN7m9Nq53l2y2tYrbp6azs3LtNFCnpo%3D%40emersion.fr%3E

We discussed and decided this was the best course of action.

delthas, Jean, Noah, Pedro: since you own the copyright, can you reply
with an ACK?
 README.md | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 90d9f7705a65..29c097a93241 100644
--- a/README.md
+++ b/README.md
@@ -57,7 +57,12 @@ If you aren't familiar with `git send-email`, you can use the

## License

AGPLv3 (see LICENSE) with an application store exception. As an additional
permission under section 7, you are allowed to distribute the software through
an application store, even if that store has restrictive terms and conditions
that are incompatible with the AGPL, provided that the source is also available
under the AGPL with or without this permission through a channel without those
restrictive terms and conditions.

Copyright (C) 2021 The goguma Contributors

Noah, gentle ping: are you fine with this license change?

(sorry Simon for the duplicated email, was using mutt instead of aerc)

Pedro Lucas Porcellis

[PATCH] page/buffer: render ctcp actions without bubbles Export this patch

On Mon, Aug 14 2023 10:37:36 +0000, Simon Ser wrote:
> On Monday, August 14th, 2023 at 12:34, Lauri Tirkkonen <lauri@hacktheplanet.fi> wrote:
> > sorry for resurrecting an old thread, but I was wondering: are there still plans
> > to make this license change?
> All copyright holders except Noah have accepted the change. We'd need
> their ACK, or someone who hasn't looked at the code would need to
> rewrite their contribution.

Here's my attempt at the latter: from git log,
9df571dc6febd99fe7087cd5d86e3ffbc8051123 looks like the only commit Noah made.
So, I checked out the parent of that commit, and worked from the commit message
and current app behaviour to come up with this diff. It won't apply to master
since I couldn't conceivably work on top of master without reading the existing
code, but I can forward-port this if you deem it sufficient (ie. if I don't need
to avoid looking at master any further :)

 lib/page/buffer.dart | 28 +++++++++++++---------------
 1 file changed, 13 insertions(+), 15 deletions(-)

diff --git a/lib/page/buffer.dart b/lib/page/buffer.dart
index b72b032..d3748ac 100644
--- a/lib/page/buffer.dart
+++ b/lib/page/buffer.dart
@@ -637,13 +637,17 @@ class _MessageItem extends StatelessWidget {
		var colorScheme = ColorScheme.fromSwatch(primarySwatch: colorSwatch);

		//var boxColor = Theme.of(context).accentColor;
		var boxColor = colorScheme.primary;
		var boxAlignment = Alignment.centerLeft;
		var textStyle = DefaultTextStyle.of(context).style.apply(color: colorScheme.onPrimary);
		var textStyle = DefaultTextStyle.of(context).style;
		if (client.isMyNick(sender)) {
			boxColor = Colors.grey[200]!;
			colorScheme = colorScheme.copyWith(primary: Colors.grey[200]!, onPrimary: Colors.black);
			boxAlignment = Alignment.centerRight;
			textStyle = DefaultTextStyle.of(context).style.apply(color: boxColor.computeLuminance() > 0.5 ? Colors.black : Colors.white);
		var boxColor = colorScheme.primary;
		var isAction = (ctcp != null && ctcp.cmd == 'ACTION');
		var bubbleVisible = !isAction;
		if (bubbleVisible) {
			textStyle = textStyle.apply(color: colorScheme.onPrimary);

		const margin = 16.0;
@@ -664,17 +668,11 @@ class _MessageItem extends StatelessWidget {
		var linkStyle = textStyle.apply(decoration: TextDecoration.underline);

		List<InlineSpan> content;
		if (ctcp != null && ctcp.cmd == 'ACTION') {
			textStyle = textStyle.apply(fontStyle: FontStyle.italic);

			String actionText;
			if (ctcp.cmd == 'ACTION') {
				actionText = stripAnsiFormatting(ctcp.param ?? '');
			} else {
				actionText = 'has sent a CTCP "${ctcp.cmd}" command';
		if (ctcp != null && isAction) {
			String actionText = stripAnsiFormatting(ctcp.param ?? '');

			content = [
				TextSpan(text: '\u25CF ', style: textStyle.apply(color: colorScheme.primary)),
				TextSpan(text: ' '),
				linkify(actionText, textStyle: textStyle, linkStyle: linkStyle),
@@ -721,9 +719,9 @@ class _MessageItem extends StatelessWidget {
			child: Container(
				decoration: BoxDecoration(
					borderRadius: BorderRadius.circular(10),
					color: boxColor,
					color: bubbleVisible ? boxColor : boxColor.withAlpha(0),
				padding: EdgeInsets.all(10),
				padding: EdgeInsets.all(bubbleVisible ? 10 : 5),
				child: inner,

Lauri Tirkkonen | lotheac @ IRCnet

gentle ping on this.