Go to file
2018-07-04 18:40:03 +03:00
.gitlab/issue_templates Update the gitlab bug issue template 2018-06-23 13:01:34 +00:00
hammond-data EpisodeMinimal: add lenght as well. 2018-07-03 16:38:08 +03:00
hammond-downloader Models: Change the Query suffix to Model. 2018-06-30 23:02:13 +03:00
hammond-gtk Version bump. 2018-07-04 17:26:56 +03:00
screenshots Rename assets folder to screenshots, and improve the build system. 2018-02-04 01:34:34 +02:00
scripts Add a bash script to run the test-suite. 2018-07-01 00:55:57 +03:00
.gitignore Update gitignore file. 2018-07-01 00:54:28 +03:00
.gitlab-ci.yml CI: disable debian builds fow now. 2018-06-23 22:45:12 +00:00
Cargo.lock Upgrade crossbeam-channel. 2018-06-26 23:37:06 +03:00
Cargo.toml Update deps and bump rss crate. 2018-04-19 08:07:02 +03:00
CHANGELOG.md Update Changelog. 2018-07-04 18:40:03 +03:00
CONTRIBUTING.md Update links to new repo 2018-04-19 17:23:46 -03:00
hammond.doap Update links to new repo 2018-04-19 17:23:46 -03:00
LICENSE Added License. 2017-09-30 22:39:31 +03:00
meson.build Version bump. 2018-07-04 17:26:56 +03:00
org.gnome.Hammond.json Initial playback 2018-06-23 22:45:09 +00:00
README.md Readme: Update the dependencies needed 2018-06-25 17:35:54 +00:00
rustfmt.toml cargo fmt 2018-05-30 16:25:15 +03:00
TODO.md Update the Changelog. 2018-06-05 14:58:29 +03:00

Hammond

A Podcast Client for GNOME written in Rust.

episdes_view shows_view show_widget

Quick start

Hammond can be built and run with Gnome Builder >= 3.28.

Get Builder here

Broken Feeds

Found a feed that does not work in Hammond? Please open an issue and choose the BrokenFeed template so we will know and fix it!

Getting in Touch

If you have any questions regarding the use or development of Hammond, want to discuss design or simply hang out, please join us in #hammond on irc.gnome.org. or matrix.

Note:

There isn't much documentation yet, so you will probably have question about parts of the Code.

Building

Flatpak

Flatpak is the reccomended way of building and installing Hammond.

Building a Flatpak

Download the org.gnome.Hammond.json flatpak manifest from this repo.

# Add flathub repo
flatpak --user remote-add flathub --if-not-exists https://dl.flathub.org/repo/flathub.flatpakrepo
# Add the gnome-nightly repo
flatpak --user remote-add gnome-nightly --if-not-exists https://sdk.gnome.org/gnome-nightly.flatpakrepo
# Install the gnome-nightly Sdk and Platform runtim
flatpak --user install gnome-nightly org.gnome.Sdk org.gnome.Platform
# Install the required rust-stable extension from flathub
flatpak --user install flathub org.freedesktop.Sdk.Extension.rust-stable
flatpak-builder --user --repo=repo hammond org.gnome.Hammond.json --force-clean

To install the resulting flatpak you can do:

flatpak build-bundle repo hammond.flatpak org.gnome.Hammond
flatpak install --user --bundle hammond.flatpak

Building from soure

git clone https://gitlab.gnome.org/World/hammond.git
cd hammond/
meson --prefix=/usr build
ninja -C build
sudo ninja -C build install

Dependencies

  • Rust stable 1.27 or later along with cargo.
  • Gtk+ 3.22 or later
  • Gstreamer 1.12 or later
  • Meson
  • A network connection

Offline build are possible too, but cargo-vendor would have to be setup first

Debian/Ubuntu

apt-get install -yqq cargo rustc libsqlite3-dev libssl-dev libgtk-3-dev meson \
        libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev \
        gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
        gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \
        gstreamer1.0-libav libgstrtspserver-1.0-dev ibgstreamer-plugins-bad1.0-dev

Fedora

dnf install -y rust cargo gtk3-devel glib2-devel openssl-devel sqlite-devel meson \
    gstreamer1-devel gstreamer1-plugins-base-tools gstreamer1-devel-docs \
    gstreamer1-plugins-base-devel gstreamer1-plugins-base-devel-docs \
    gstreamer1-plugins-good gstreamer1-plugins-good-extras \
    gstreamer1-plugins-bad-free gstreamer1-plugins-bad-free-devel \
    gstreamer1-plugins-bad-free-extras

If you happen to build it on other distributions please let me know the names of the corresponding libraries. Feel free to open a MR or an Issue to note it.

Contributing

There alot of thins yet to be done.

If you want to contribute, please check the Contributions Guidelines.

You can start by taking a look at Issues or by opening a New issue.

There are also some minor tasks tagged with TODO: and FIXME: in the source code.

Overview

$ tree -d
├── screenshots         # png's used in the README.md
├── hammond-data        # Storate related stuff, SQLite, XDG setup, RSS Parser.
│   ├── migrations      # Diesel SQL migrations.
│   │   └── ...
│   ├── src
│   └── tests
│       └── feeds       # Raw RSS Feeds used for tests.
├── hammond-downloader  # Really basic, Really crappy downloader.
│   └── src
├── hammond-gtk         # The Gtk+ Client
│   ├── resources       # GResources folder
│   │   └── gtk         # Contains the glade.ui files.
│   └── src
│       ├── stacks      # Contains the gtk Stacks that hold all the different views.
│       └── widgets     # Contains custom widgets such as Show and Episode.

A note about the project's name

The project was named after Allan Moore's character Evey Hammond from the graphic novel V for Vendetta.

It has nothing to do with the horrible headlines on the news.

Acknowledgments

Hammond's design is heavily insired by GNOME Music and Vocal.

We also copied some elements from GNOME News.

And almost the entirety of the build system is copied from the Fractal project.