summaryrefslogtreecommitdiffstats
path: root/pkgs/by-name/x3/x3270/package.nix
blob: 051f408d426010bded6974d0f8b51c271c72273e (plain)
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
{
  stdenv,
  lib,
  libiconv,
  fetchurl,
  m4,
  expat,
  libx11,
  libxt,
  libxaw,
  libxmu,
  bdftopcf,
  mkfontdir,
  font-adobe-100dpi,
  font-adobe-utopia-100dpi,
  font-bh-100dpi,
  font-bh-lucidatypewriter-100dpi,
  font-bitstream-100dpi,
  tcl,
  ncurses,
  openssl,
  python3,
  readline,
}:
let
  majorVersion = "4";
  minorVersion = "5";
  versionSuffix = "ga5";
in
stdenv.mkDerivation (finalAttrs: {
  pname = "x3270";
  version = "${majorVersion}.${minorVersion}${versionSuffix}";

  src = fetchurl {
    url = "https://x3270.bgp.nu/download/0${majorVersion}.0${minorVersion}/suite3270-${finalAttrs.version}-src.tgz";
    hash = "sha256-AVdvpYWYzN09Nm/r+u9h49Hek+tgqT+axrpfr4QUTG8=";
  };

  postPatch = ''
    patchShebangs .
    substituteInPlace Common/mkversion.py --replace-fail "int(os.environ['SOURCE_DATE_EPOCH'])" "1"
  '';

  buildFlags = lib.optional stdenv.hostPlatform.isLinux "unix";

  configureFlags = lib.optionals stdenv.hostPlatform.isDarwin [
    "--enable-c3270"
    "--enable-pr3270"
    "--enable-s3270"
    "--enable-tcl3270"
  ];

  enableParallelBuilding = true;

  preBuild = ''
    if [ -n "$SOURCE_DATE_EPOCH" ]; then
      export SOURCE_DATE_EPOCH="$(date -u -d "@$SOURCE_DATE_EPOCH" '+%a %b %d %H:%M:%S UTC %Y')"
    fi
  '';

  postBuild = ''
    make install.man
  '';

  pathsToLink = [ "/share/man" ];

  nativeBuildInputs = [
    m4
    python3
  ];
  buildInputs = [
    expat
    libx11
    libxt
    libxaw
    libxmu
    bdftopcf
    mkfontdir
    font-adobe-100dpi
    font-adobe-utopia-100dpi
    font-bh-100dpi
    font-bh-lucidatypewriter-100dpi
    font-bitstream-100dpi
    tcl
    ncurses
    expat
    openssl
    readline
  ]
  ++ lib.optionals stdenv.hostPlatform.isDarwin [
    libiconv
  ];

  meta = {
    description = "IBM 3270 terminal emulator for the X Window System";
    homepage = "https://x3270.bgp.nu/index.html";
    license = lib.licenses.bsd3;
    maintainers = [ lib.maintainers.anna328p ];
  };
})