Age | Commit message (Collapse) | Author | Files | Lines |
|
This manifest was generated with
https://hackage.haskell.org/package/cabal-flatpak in the following
rather convoluted way:
0. Patch cabal-flatpak to always include alex and happy in the build
plan
1. Install cabal-flatpak (on the host system)
2. Generate a build plan for bustle-0.8.0:
cd ~/tmp
cabal unpack bustle-0.8.0
cd bustle-0.8.0
cabal new-build --dry-run --disable-tests --disable-benchmarks --flags=-hgettext
3. Run cabal-flatpak against that plan
4. Build the resulting manifest with --stop-at=libpcap
5. Enter the build environment with `flatpak-builder --run _build/ flatpak/org.freedesktop.Bustle.json bash`
6. Generate a new build plan within that build environment
7. Re-run cabal-flatpak
8. Manually edit the resulting manifest to add a final stanza to run make
Step 0 is needed because gtk2hs has a build-tool dependency on alex and
happy executables, but cabal-flatpak upstream only includes library
dependencies.
Steps 4-7 are needed because cabal on the host system will use whatever
library versions happen to be installed as part of its build plan. These
may conflict with the library versions present in the GHC distribution
used by cabal-flatpak. On my system the result failed to build.
Step 8 is needed because the Cabal-based build system does not install
appdata, icons, ...
|
|
And stop explicitly installing it as a Cabal data file. It was
previously used by the about dialogue, but since the license is now
boring LGPL 2.1 (or later) we use GtkAboutDialog's built-in support for
that license instead.
|
|
|
|
Now that Bustle's license is a straightforward LGPL 2.1 or later, we can
use GtkAboutDialog:license-type rather than showing the full license
text in the dialogue.
Unfortunately this property and the corresponding GtkLicenseType enum
has no gtk2hs binding, but that's never stopped us before.
|
|
|
|
|
|
|
|
Maybe it would be nice to do this as part of the Cabal build…
|
|
|
|
This reverts commit ba56a44aac4585071e4ac09a66401939c3032424.
$ cabal new-build --dry-run --disable-tests --disable-benchmarks
Resolving dependencies...
Error:
Internal libraries only supported with per-component builds.
Per-component builds were disabled because build-type is Custom
In the inplace package 'bustle-0.7.5.1'
|
|
At some point in the past 12 years, Cabal has gaine support for both
internal libraries, and common stanzas.
Using an internal library for everything except Bustle's entrypoint
means tests don't need to list (and build!) all modules they use, and
all the necessary dependencies and flags again.
|
|
This squashes a warning about the License field. As documented at
https://cabal.readthedocs.io/en/stable/developing-packages.html#pkg-field-license,
before 2.2 the license identifiers were a small list which did not
include LGPL-2.1-or-later.
|
|
|
|
|
|
This application doesn't expose any setters, but in principle
GDBusMessage is mutable so these functions are impure.
|
|
This avoids needing two separate implementations of the DBus protocol in
the application, at the cost of writing a hand-written binding for parts
of the GDBusMessage and GVariant API.
|
|
|
|
This was collected before DLT_DBUS was assigned. BustlePcapReader
doesn't contain the workaround to allow DLT_NULL.
|
|
|
|
|
|
Previously, Bustle read directly from dbus-monitor, parsed the pcap
stream, then reserialized it back to a file.
dbus-monitor → bustle → UI
↓
file
Instead, use tee between dbus-monitor and Bustle to write the raw pcap
stream to disk:
dbus-monitor → tee → bustle
↓
file
This makes the code in Bustle quite a bit simpler.
|
|
|
|
Not used on the Haskell side yet.
|
|
Add new icon
Closes #17
See merge request bustle/bustle!19
|
|
These have an old version of Stack which is not compatible with the
latest lts resolver. https://hub.docker.com/u/zenhaskell has them all
marked as "DEPRECATED". OK!
|
|
Fixes #17
|
|
|
|
Drop close-without-saving confirmation dialog
Closes #15
See merge request bustle/bustle!18
|
|
Anecdotally, most users (including me) rarely want to save their logs,
they just want to record them and read them. In any case, all the
temporary logs are actually kept (forever) in $XDG_CACHE_DIR.
Fixes #15.
|
|
|
|
Update license
See merge request bustle/bustle!17
|
|
pcap-monitor: Fix build error
See merge request bustle/bustle!16
|
|
Since we no longer depend on any GPL library, we can proclaim just LGPL.
Specifying a valid SPDX license string will also make it easier
for distros to automatically check if the project is redistributable.
|
|
g_clear_handle_id was introduced in GLib 2.56 so it was not available in our target (GLIB_VERSION_MAX_ALLOWED),
leading to the following error:
c-sources/pcap-monitor.c: In function ‘handle_error’:
c-sources/pcap-monitor.c:415:13: error:
warning: Not available before
415 | g_clear_handle_id (&self->await_both_errors_id, g_source_remove);
| ^~~~~~~~~~~~~~~~~~~~~~~
|
415 | g_clear_handle_id (&self->await_both_errors_id, g_source_remove);
| ^
Weirdly, it did not seem to affect the build status.
|
|
Makefile: allow passing a custom path to pcap-config
See merge request bustle/bustle!15
|
|
Some build systems need to pass a custom location for the pcap-config
script, so let's provide a PCAP_CONFIG variable that allows such
customization. Its default value is pcap-config, which preserves the
backward compatibility.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
|
|
Setup.hs: Don’t import Gettext.hs without hgettext
See merge request bustle/bustle!14
|
|
It is broken and there are no translations anyway.
|
|
Bustle/UI.hs:490:3: error:
• No instance for (Control.Monad.Fail.MonadFail
(Bustle BConfig BState))
arising from a do statement
with the failable pattern ‘[openItem, openTwoItem]’
• In a stmt of a 'do' block:
[openItem, openTwoItem] <- mapM
(getW castToMenuItem) ["open", "openTwo"]
In the expression:
do builder <- io builderNew
io
$ builderAddFromFile builder =<< getDataFileName "data/bustle.ui"
let getW cast name = io $ builderGetObject builder cast name
window <- getW castToWindow "diagramWindow"
....
In an equation for ‘emptyWindow’:
emptyWindow
= do builder <- io builderNew
io
$ builderAddFromFile builder =<< getDataFileName "data/bustle.ui"
let getW cast name = ...
....
|
490 | [openItem, openTwoItem] <- mapM (getW castToMenuItem) ["open", "openTwo"]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
Gettext.hs is broken with Cabal ≥ 2.4 so until we fix it, I made importing it
conditional on the value of `hgettext` flag, so that the builds still work.
|
|
This is used by tools like GNOME Builder to show some project metadata.
|
|
|
|
|
|
It's traditional not to do this because of the likelihood that it will
drift out of date. This does make life a little harder for translators,
but we've never seen one in half a decade...
|
|
This is expected, not an error. We can also just track the next
available fake name, rather than scanning the map each time.
|
|
We don't need any of these maps to be lazy; they will all be
fully-evaluated.
|
|
|
|
|
|
A step towards updating the diagram immediately, too.
|
|
Previously, the filtering mechanism was “hide all messages which involve
one of these names”, although the dialog presented them in the opposite
sense. I often want to say something a bit different: “show only
messages which involve one of these names”.
Implement this with three states for each name: Default, Only, and
Never. The logic for each message is:
* If it involves at least one Never name, hide it
* If there are no Only names, show it
* Otherwise, show it if it involves at least one Only name
|