1{
2 lib,
3 stdenv,
4 fetchFromGitHub,
5
6 # native
7 autoreconfHook,
8 glibcLocales,
9 pkg-config,
10
11 # host
12 curl,
13 glib,
14 id3lib,
15 libxml2,
16 taglib,
17}:
18
19stdenv.mkDerivation (finalAttrs: {
20 pname = "castget";
21 # Using unstable version since it doesn't require `ronn`, see:
22 # https://github.com/mlj/castget/commit/e97b179227b4fc7e2e2bc5a373933624c0467daa
23 version = "2.0.1-unstable-2025-01-25";
24
25 src = fetchFromGitHub {
26 owner = "mlj";
27 repo = "castget";
28 rev = "e97b179227b4fc7e2e2bc5a373933624c0467daa";
29 hash = "sha256-3t/N8JO36wjHuzIdWNstRWphC/ZR6KkZX0l9yKarS7c=";
30 };
31
32 # without this, the build fails because of an encoding issue with the manual page.
33 # https://stackoverflow.com/a/17031697/4935114
34 # This requires glibcLocales to be present in the build so it will have an impact.
35 # See https://github.com/NixOS/nixpkgs/issues/8398
36 preBuild = ''
37 export LC_ALL="en_US.UTF-8";
38 '';
39
40 buildInputs = [
41 curl
42 glib
43 id3lib
44 libxml2
45 taglib
46 ];
47 nativeBuildInputs = [
48 autoreconfHook
49 # See comment on locale above
50 glibcLocales
51 pkg-config
52 ];
53
54 meta = {
55 description = "Simple, command-line based RSS enclosure downloader";
56 mainProgram = "castget";
57 longDescription = ''
58 castget is a simple, command-line based RSS enclosure downloader. It is
59 primarily intended for automatic, unattended downloading of podcasts.
60 '';
61 homepage = "https://castget.johndal.com/";
62 changelog = "https://github.com/mlj/castget/blob/${finalAttrs.version}/CHANGES.md";
63 maintainers = with lib.maintainers; [ doronbehar ];
64 license = lib.licenses.gpl2;
65 platforms = lib.platforms.linux;
66 };
67})