Skip to content

Commit

Permalink
Merge pull request #1360 from p12tic/release
Browse files Browse the repository at this point in the history
Prepare for v2.4.0
  • Loading branch information
p12tic authored Nov 1, 2021
2 parents fc6d4e4 + 6b729df commit 1738afc
Show file tree
Hide file tree
Showing 34 changed files with 240 additions and 64 deletions.
59 changes: 59 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
Creating a release
==================

This document is documentation intednded for maintainers of Barrier.
It documents the release process of Barrier.

Step 1: Setup environment variables
-----------------------------------

Setup the following environment variable that will be used throughout the rest of the steps.

export VERSION=X.Y.Z

Step 2: Release notes PR
------------------------

Open a new branch (e.g. `release`) and run the following:

towncrier --version ${VERSION} --date `date -u +%F`

This collects the release notes using the `towncrier` tool. Please commit the collected release
notes afterwards.

Certain file names are not properly supported by the `towncrier` tool and it ignores them.
Check `newsfragments` directory for any forgotten release notes

Step 3: Merge the release notes PR
----------------------------------

Step 4: Push git tag
--------------------

Pull the merge commit created on the `master` branch during the step 2.

Create a tag:

git tag -s v${VERSION} -m v${VERSION}

Push the tag:

git push origin master --tags


Step 5: Draft a new release on Github
-------------------------------------

Go to https://github.com/buildbot/buildbot/releases and draft a new release.

Use git tag as the title of the release: `vX.Y.Z`.

Use the release notes generated by the `towncrier` tool as the description of the releases.

Upload the artifacts created by Azure pipelines as the binaries of the release. The following
artifacts should be uploaded to Github:

- the Barrier-X.Y.Z-release.dmg created by the oldest Mac OS task (artifact name is
"Mac Release Disk Image and App XYZ").

- the BarrierSetup-X.Y.Z-release.exe (artifact name is Windows Release Installer).
2 changes: 1 addition & 1 deletion azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,4 +114,4 @@ jobs:
condition: eq(variables['B_BUILD_TYPE'], 'Release')
inputs:
pathtoPublish: build/bundle
artifactName: Mac Release Disk Image and App
artifactName: Mac Release Disk Image and App $(imageName)
19 changes: 10 additions & 9 deletions doc/newsfragments/README.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
This is the directory for news snippets used by towncrier: https://github.com/twisted/towncrier
This is the directory for release note fragments processed by
[towncrier](https://github.com/hawkowl/towncrier).

When changing code in a way that's visible to an end user please make a new file in this directory.
It will be removed and integrated into release notes document upon a release of a new version of
Barrier.
When making a user-visible change create a file in this directory and it will be automatically be
included into the release note document when the next release is published.

towncrier has a few standard types of news fragments, signified by the file extension. These are:
The file extension specifies the type of a change. The following are currently supported:

.feature: Signifying a new feature.
.bugfix: Signifying a bug fix.
.doc: Signifying a documentation improvement.
.removal: Signifying a deprecation or removal of public API.
- .feature: a new feature.
- .bugfix: a bug fix.
- .security: a fix for security issue.
- .doc: a documentation improvement.
- .removal: a deprecation or removal of functionality.
1 change: 0 additions & 1 deletion doc/newsfragments/build-failure-mipsel-riscv.bugfix

This file was deleted.

7 changes: 0 additions & 7 deletions doc/newsfragments/client-certificate-checking.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/client-send-certificate.feature

This file was deleted.

6 changes: 0 additions & 6 deletions doc/newsfragments/close-failed-handshake-connections.bugfix

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/dont-use-openssl-cli.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/drop-target--option.feature

This file was deleted.

2 changes: 0 additions & 2 deletions doc/newsfragments/enable-crypto-by-default.feature

This file was deleted.

6 changes: 0 additions & 6 deletions doc/newsfragments/enforce-maximum-message-length.bugfix

This file was deleted.

3 changes: 0 additions & 3 deletions doc/newsfragments/fingerprint-randomart.feature

This file was deleted.

4 changes: 0 additions & 4 deletions doc/newsfragments/fix-crash-on-ssl-hello.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/fix-x11-paste.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/gui-autostart.feature

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/gui-hotkey-multiple-actions.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/gui-hotkey-special-keys-handling.bugfix

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/keyboard-backlight-media-keys.feature

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/muhenkan-eisu-toggle-keys.feature

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/non-ascii-character-transfer.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/profile-dir-option.feature

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/regenerate-broken-server-cert.bugfix

This file was deleted.

4 changes: 0 additions & 4 deletions doc/newsfragments/sha256-fingerprints.bugfix

This file was deleted.

2 changes: 0 additions & 2 deletions doc/newsfragments/ssl-corrupted-data.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/sun-keyboard-keys.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/translation_chinese.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/translation_slovak.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/use-theme-icons.bugfix

This file was deleted.

1 change: 0 additions & 1 deletion doc/newsfragments/windows-service-path.bugfix

This file was deleted.

94 changes: 94 additions & 0 deletions doc/release_notes/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
Release notes
=============

[comment]: <> (towncrier release notes start)

Barrier `2.4.0` ( `2021-11-01` )
================================

Security fixes
--------------

- Barrier now supports client identity verification (fixes CVE-2021-42072, CVE-2021-42073).

Previously a malicious client could connect to Barrier server without any authentication and
send application-level messages. This made the attack surface of Barrier significantly larger.
Additionally, in case the malicious client got possession of a valid screen name by brute forcing
or other means it could modify the clipboard contents of the server.

To support seamless upgrades from older versions of Barrier this is currently disabled by default.
The feature can be enabled in the settings dialog. If enabled, older clients of Barrier will be
rejected.

- Barrier now uses SHA256 fingerprints for establishing security of encrypted SSL connections.
After upgrading client to new version the existing server fingerprint will need to be approved
again. Client and server will show both SHA1 and SHA256 server fingerprints to allow
interoperability with older versions of Barrier.

Bug fixes
---------

- Fixed build failure on mips*el and riscv64 architecture.
- Fixed reading of configuration on Windows when the paths contain non-ASCII characters
(https://github.com/debauchee/barrier/issues/976, https://github.com/debauchee/barrier/issues/974,
https://github.com/debauchee/barrier/issues/444).
- Barrier no longer uses openssl CLI tool for any operations and hooks into the openssl library directly.
- More X11 clipboard MIME types have been mapped to corresponding converters (https://github.com/debauchee/barrier/issues/344).
- Fixed setup of multiple actions associated with a hotkey.
- Fixed setup of hotkeys with special characters such as comma and semicolon
(https://github.com/debauchee/barrier/issues/778).
- Fixed transfer of non-ASCII characters coming from a Windows server in certain cases
(https://github.com/debauchee/barrier/issues/527).
- Barrier will now regenerate server certificate if it's invalid instead of failing to launch
(https://github.com/debauchee/barrier/issues/802)
- Added support for additional keys on Sun Microsystems USB keyboards
(https://github.com/debauchee/barrier/issues/784).
- Updated Chinese translation.
- Updated Slovak translation.
- Theme icons are now preferred to icons distributed together with Barrier
(https://github.com/debauchee/barrier/issues/471).
- Fixed incorrect setup of Barrier service path on Windows.

Features
--------

- Added `--drop-target` option that improves drag and drop support on Windows when Barrier is
being run as a portable app.
- The `--enable-crypto` command line option has been made the default to reduce chances of
accidental security mishaps when configuring Barrier from command line.
A new `--disable-crypto` command line option has been added to explicitly disable encryption.
- Added support for randomart images for easier comparison of SSL certificate fingerprints.
The algorithm is identical to what OpenSSH uses.
- Implemented a configuration option for Server GUI auto-start.
- Made it possible to use keyboard instead of mouse to modify screen layout.
- Added support for keyboard backlight media keys
- Added support for Eisu_toggle and Muhenkan keys
- Added `--profile-dir` option that allows to select custom profile directory.

Barrier `2.3.4` ( `2021-11-01` )
================================

Security fixes
--------------

- Barrier will now correctly close connections when the app-level handshake fails (fixes CVE-2021-42075).

Previously repeated failing connections would leak file descriptors leading to Barrier being unable
to receive new connections from clients.

- Barrier will now enforce a maximum length of input messages (fixes CVE-2021-42076).

Previously it was possible for a malicious client or server to send excessive length messages
leading to denial of service by resource exhaustion.

- Fixed a bug which caused Barrier to crash when disconnecting a TCP session just after sending Hello message.
This bug allowed an unauthenticated attacker to crash Barrier with only network access.

All of the above security issues have been reported by Matthias Gerstner who was really helpful
resolving them.

Bug fixes
---------

- Fixed a bug in SSL implementation that caused invalid data occasionally being sent to clients
under heavy load.
37 changes: 37 additions & 0 deletions doc/release_notes/index.template.jinja
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
{% for section, _ in sections|dictsort(by='key') %}
{% set underline = "-" %}
{% if section %}
{{section}}
{{ underline * section|length }}{% set underline = "-" %}

{% endif %}
{% if sections[section] %}
{% for category, val in definitions|dictsort if category in sections[section]%}

{{ definitions[category]['name'] }}
{{ underline * definitions[category]['name']|length }}

{% if definitions[category]['showcontent'] %}
{% for text, values in sections[section][category]|dictsort(by='value') %}
- {{ text }}
{% endfor %}
{% else %}
- {{ sections[section][category]['']|sort|join(', ') }}


{% endif %}
{% if sections[section][category]|length == 0 %}

No significant changes.


{% else %}
{% endif %}
{% endfor %}
{% else %}

No significant changes.


{% endif %}
{% endfor %}
39 changes: 39 additions & 0 deletions towncrier.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
[tool.towncrier]
package = ""
directory = "doc/newsfragments"
filename = "doc/release_notes/index.md"
template = "doc/release_notes/index.template.jinja"
title_format = "\nBarrier `{version}` ( `{project_date}` )\n================================\n"
start_string = "[comment]: <> (towncrier release notes start)"
[[tool.towncrier.section]]
path = ""

[[tool.towncrier.type]]
directory = "security"
name = "Security fixes"
showcontent = false

[[tool.towncrier.type]]
directory = "feature"
name = "Features"
showcontent = true

[[tool.towncrier.type]]
directory = "bugfix"
name = "Bug fixes"
showcontent = true

[[tool.towncrier.type]]
directory = "doc"
name = "Improved Documentation"
showcontent = true

[[tool.towncrier.type]]
directory = "removal"
name = "Deprecations and Removals"
showcontent = true

[[tool.towncrier.type]]
directory = "misc"
name = "Miscellaneous"
showcontent = false

0 comments on commit 1738afc

Please sign in to comment.