Instead of patching the path to /public in Discourse's sources, make
the nginx configuration refer to the symlink in the discourse
package which points to the real path.
When there is a mismatch between the path nginx serves and the path
Discourse thinks it serves, we can run into issues like files not
being served - at least when sendfile requests from the ruby app are
processed by nginx. The issue I ran into most recently is that backup
downloads don't work.
Since Discourse refers to the public directory relative to the Rails
root in many places, it's much easier to just sync this path to the
nginx configuration than trying to patch all occurrences in the
sources. This should hopefully mean less potential for breakage in
future Discourse releases, too.
Without the change the build fails as:
watch.c:673:2: error: format not a string literal and no format arguments [-Werror=format-security]
673 | mvprintw(r, context->cols - strlen(help), help);
| ^~~~~~~~
* nfd: init at version 0.7.1
- Add NFD derivation
- Link NFD derivation as a top-level package
* Applied revision suggestions
* Add fetchSubmodules
NFD uses websocket++ 0.8.1-hotfix in their stable release so that it can be built with boost 175.
ndn-cxx is built with boost 169 in nixpkgs, although it could use the newest version, so I'm matching the same version.
* Fixed tests and cleanup
* Fix typo in repo revision
* Add fetch submodules
NFD build script requires the complete websocket++ source in the build directory.
I could not build it reusing the packages websocket++.
* Call to pre and post check hooks
Co-authored-by: Ryan Burns <52847440+r-burns@users.noreply.github.com>
* Default to fetch NFD submodules
* Fix license
Co-authored-by: Ryan Burns <52847440+r-burns@users.noreply.github.com>
* Switch to lib.optional for parameter string
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
* Change prefix as per nix defaults
* Removed redundant prefix environment variable
* Homepage to HTTPS
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Co-authored-by: Ryan Burns <52847440+r-burns@users.noreply.github.com>
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
Add a DiscourseVersion class which handles Discourse's version
numbering properly when sorting - beta versions are sorted lower than
their respective release versions. It can also return both its version
number and equivalent git tag, removing the need for `rev2version` and
manually adding `v` to the front.
Using DiscourseVersion instead of LooseVersion, we can list all
current version number tags from the `discourse` repo and sort them
correctly, giving us the latest one, regardless of type; i.e. we don't
have to filter for only release versions or beta versions anymore.
This also implements the plugin pinning algorithm laid out here:
https://meta.discourse.org/t/pinning-plugin-and-theme-versions-for-older-discourse-installs/156971
to make sure we don't upgrade plugins further than what's compatible
with our currently packaged Discourse version. While it likely won't
matter much most of the time if we continue packaging the beta
versions, it could be helpful if we decide to go back to packaging
release versions or if we run into issues with future upgrades. In
that case, the plugins could still be updated safely even though we're
not on the latest version of Discourse.
Also, add support for updating plugins which keep gem versions in
files at the root of the repo (discourse-prometheus) and replace the
`up-plugin.sh` script with a README file pointing to the plugin
packaging documentation.
Previously the extraComponents added to an overriden package would not
have been considered in hardening measures enforced by the module.
Home Assistant is warning the user about component definitions having
moved away from YAML, so using an override to include support for a
component might become the better way moving forward.