summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-08-06Add Flatpak manifest generated by cabal-flatpakcabal-flatpakWill Thompson7-211/+585
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, ...
2020-08-06Replace LICENSE with COPYINGWill Thompson2-44/+31
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.
2020-08-06AboutDialog: bump copyright dateWill Thompson1-1/+1
2020-08-06AboutDialog: use :license-type propertyWill Thompson1-6/+5
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.
2020-07-31NEWS for 0.8.0bustle-0.8.0Will Thompson3-1/+25
2020-07-31appdata: Use spaces throughoutWill Thompson1-69/+69
2020-07-31Makefile: simplify validating appstreamWill Thompson1-4/+1
2020-07-31Makefile: simplify install targetWill Thompson1-11/+7
Maybe it would be nice to do this as part of the Cabal build…
2020-07-30Merge branch 'reduce-dependencies'Will Thompson18-472/+1164
2020-07-29Revert "Simplify Cabal file"Will Thompson2-33/+85
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'
2020-07-29Simplify Cabal fileWill Thompson2-85/+33
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.
2020-07-29cabal: Bump Cabal-VersionWill Thompson1-1/+1
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.
2020-07-29DetailsView: reintroduce special case for error messagesWill Thompson2-11/+12
2020-07-06flatpak: Remove pcap and dbus dependenciesWill Thompson1-45/+0
2020-07-06Remove unsafePerformIO from GDBusMessage bindingWill Thompson3-70/+76
This application doesn't expose any setters, but in principle GDBusMessage is mutable so these functions are impure.
2020-07-02Use GDBusMessage rather than 'dbus' libraryWill Thompson11-286/+530
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.
2020-06-05Use BustlePcapReader rather than 'pcap' bindingWill Thompson3-35/+134
2020-06-05Test: Patch DLT_DBUS into old log fileWill Thompson1-0/+0
This was collected before DLT_DBUS was assigned. BustlePcapReader doesn't contain the workaround to allow DLT_NULL.
2020-06-05reader: Check link typeWill Thompson1-0/+11
2020-06-05reader: Encapsulate libpcapWill Thompson3-25/+38
2020-06-05monitor: Use tee to save pcap streamWill Thompson1-43/+34
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.
2020-06-05Factor out BustlePcapReaderWill Thompson5-49/+365
2020-06-05monitor: include GDBusMessage in ::message-loggedWill Thompson5-16/+72
Not used on the Haskell side yet.
2020-05-15Merge branch '17-new-icon' into 'master'Will Thompson13-396/+295
Add new icon Closes #17 See merge request bustle/bustle!19
2020-05-15Disable Zenhaskell CI jobsWill Thompson1-23/+0
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!
2020-05-15Add new iconWill Thompson11-372/+294
Fixes #17
2020-05-15stack: Update resolver to lts-15.12Will Thompson1-1/+1
2020-02-04Merge branch '15-no-close-confirmation' into 'master'Will Thompson2-39/+12
Drop close-without-saving confirmation dialog Closes #15 See merge request bustle/bustle!18
2020-02-04Drop close-without-saving confirmation dialogWill Thompson1-36/+0
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.
2020-02-04stack: update to lts-14.22Will Thompson1-3/+12
2020-02-03Merge branch 'license-fix' into 'master'Will Thompson3-684/+3
Update license See merge request bustle/bustle!17
2020-02-03Merge branch 'pcap-monitor-fix' into 'master'Will Thompson1-2/+2
pcap-monitor: Fix build error See merge request bustle/bustle!16
2020-01-27Update licenseJan Tojnar3-684/+3
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.
2020-01-26pcap-monitor: Fix build errorJan Tojnar1-2/+2
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.
2020-01-09Merge branch 'pcap-config-variable' into 'master'Will Thompson1-1/+2
Makefile: allow passing a custom path to pcap-config See merge request bustle/bustle!15
2020-01-08Makefile: allow passing a custom path to pcap-configThomas Petazzoni1-1/+2
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>
2019-10-18Merge branch 'no-hgettext' into 'master'Will Thompson3-2/+16
Setup.hs: Don’t import Gettext.hs without hgettext See merge request bustle/bustle!14
2019-10-18cabal: Disable hgettext by defaultJan Tojnar1-1/+1
It is broken and there are no translations anyway.
2019-10-18UI: Fix buildJan Tojnar1-1/+2
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"] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2019-10-18Setup.hs: Don’t import Gettext.hs without hgettextJan Tojnar1-0/+13
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.
2019-03-13Add DOAP fileWill Thompson2-0/+24
This is used by tools like GNOME Builder to show some project metadata.
2019-03-08Bump version to 0.7.5.1Will Thompson1-1/+1
2019-03-08News for 0.7.5bustle-0.7.5Will Thompson3-2/+21
2019-03-08Don't check in messages.potWill Thompson4-328/+1
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...
2019-03-07Renderer: build fake names more quietlyWill Thompson1-15/+7
This is expected, not an error. We can also just track the next available fake name, rather than scanning the map each time.
2019-03-07Renderer: use Data.Map.StrictWill Thompson1-2/+2
We don't need any of these maps to be lazy; they will all be fully-evaluated.
2019-03-07Pcap: drop unused importsWill Thompson1-6/+1
2019-03-07Update diagram immediately when filter changesWill Thompson2-17/+11
2019-03-07FilterDialog: update Reset button state more efficientlyWill Thompson2-24/+50
A step towards updating the diagram immediately, too.
2019-03-07Support "positive" filteringWill Thompson5-51/+145
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