about summary refs log tree commit diff
path: root/pkgs/by-name/vz/vzic/package.nix
blob: 4e645e096bbf5249d3adb4405bb5c9111d7f9450 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
{
  stdenv,
  lib,
  buildPackages,
  fetchFromGitHub,
  pkg-config,
  glib,
  libical,
}:
stdenv.mkDerivation rec {
  pname = "vzic";
  version = "0-unstable-2024-06-04";

  src = fetchFromGitHub {
    owner = "libical";
    repo = "vzic";
    rev = "354296149e65ca31932c514fddb7435cb47671e9";
    hash = "sha256-L6BIHr3tfw51AoSvZMlP3HWEWXfEaPa8nq1aJOqcNkE=";
  };

  postPatch = ''
    substituteInPlace Makefile \
      --replace-fail 'pkg-config' "$PKG_CONFIG"
  '';

  nativeBuildInputs = [ pkg-config ];

  buildInputs = [
    glib
    libical
  ];

  env = {
    OLSON_DIR = "tzdata2024a";
    PRODUCT_ID = "-//NixOS//NONSGML Citadel calendar//EN";
    TZID_PREFIX = "/NixOS/Olson_%D_1/";
  };

  # no install rule in Makefile
  installPhase = ''
    runHook preInstall

    mkdir -p $out/share/vtimezone
    ${stdenv.hostPlatform.emulator buildPackages} ./vzic --output-dir $out/share/vtimezone
    install -Dm744 vzic $out/bin/vzic

    runHook postInstall
  '';

  meta = {
    homepage = "https://github.com/libical/vzic";
    description = "A program to convert the IANA timezone database files into VTIMEZONE files compatible with the iCalendar specification";
    changelog = "https://github.com/libical/vzic/blob/${src.rev}/ChangeLog";
    mainProgram = "vzic";
    license = with lib.licenses; [ gpl2Plus ];
    maintainers = with lib.maintainers; [ moraxyc ];
    broken = !stdenv.hostPlatform.emulatorAvailable buildPackages;
    platforms = lib.platforms.unix;
  };
}