+ mypkgs.unicode = let
+ version = "12.0";
+ version-full = "${version}.0";
+ files = {
+ emoji-data = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-data.txt";
+ sha256 = "03sf7h1d6kb9m5s02lif88jsi5kjszpkfvcymaqxj8ds70ar9pgv";
+ };
+ emoji-sequences = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-sequences.txt";
+ sha256 = "1hghki2rn3n7m4lwpwi2a5wrsf2nij4bxga9ldabx4g0g2k23svs";
+ };
+ emoji-test = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-test.txt";
+ sha256 = "1dqd0fh999mh6naj816ni113m9dimfy3ih9nffjq2lrv9mmlgdck";
+ };
+ emoji-variation-sequences = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-variation-sequences.txt";
+ sha256 = "1cccwx5bl79w4c19vi5dhjqxrph92s8hihp9y8s2cqvdzmgbln7a";
+ };
+ emoji-zwj-sequences = fetchurl {
+ url = "http://www.unicode.org/Public/emoji/${version}/emoji-zwj-sequences.txt";
+ sha256 = "1l791nbijmmhwa7kmvfn8gp26ban512l6mgqpz1mnbq3xm19181n";
+ };
+ };
+ zippedFiles = {
+ UCD = fetchurl {
+ url = "http://www.unicode.org/Public/zipped/${version-full}/UCD.zip";
+ sha256 = "1ighy39cjkmqnv1797wrxjz76mv1fdw7zp5j04q55bkwxsdkvrmh";
+ };
+ Unihan = fetchurl {
+ url = "http://www.unicode.org/Public/zipped/${version-full}/Unihan.zip";
+ sha256 = "1kfdhgg2gm52x3s07bijb5cxjy0jxwhd097k5lqhvzpznprm6ibf";
+ };
+ };
+ in
+ pkgs.runCommand "unicode" {
+ buildInputs = [ libarchive ];
+ } ''
+ mkdir -p $out/share/unicode
+ ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: u: "install -Dm644 ${u} $out/share/unicode/emoji/${n}.txt") files)}
+ ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (n: u: ''
+ install -Dm644 ${u} $out/share/unicode/${n}.zip
+ bsdtar -C "$out/share/unicode" -x -f "$out/share/unicode/${n}.zip"
+ '') zippedFiles)}
+ '';
+
+ mypkgs.dwm = dwm.overrideAttrs(old: rec {
+ postPatch = ''
+ cp ${./patches/dwm_config.h} ./config.h
+ '';
+ });
+
+ mypkgs.nixops = nixops.overrideAttrs (old: {
+ preConfigure = (old.preConfigure or "") + ''
+ sed -i -e "/'keyFile'/s/'path'/'string'/" nixops/backends/__init__.py
+ '';
+ });
+ mypkgs.flrn = let
+ slang = stdenv.mkDerivation rec {
+ name = "slang-debian-patched-${version}";
+ version = "1.4.9";
+ src = fetchurl {
+ url = "ftp://space.mit.edu/pub/davis/slang/v1.4/slang-1.4.9.tar.gz";
+ sha256 = "1y2mg0whqh4b3acd0k17i4biz55bimxg8aaxhmwd165cvspxns9r";
+ };
+ debianPatches = fetchurl {
+ url = "http://archive.debian.org/debian-archive/debian-amd64/pool/main/s/slang/slang_1.4.9dbs-8.diff.gz";
+ sha256 = "0xdq14k5ynqfwpmis1rcggs7m4n921i3bs27icbmbhfg5gb2hap2";
+ };
+ preConfigure = ''
+ cp $debianPatches ./slang.diff.gz
+ gunzip slang.diff.gz
+ patch -p1 < slang.diff
+ for i in debian/patches/*; do
+ patch -p1 < $i
+ done
+ makeFlagsArray=(CFLAGS=" -g -O2 -fno-strength-reduce -DUTF8 -D_REENTRANT -D_XOPEN_SOURCE=500")
+ '';
+ postBuild = ''
+ sed -i "1i#ifndef UTF8\n#define UTF8\n#endif" src/slang.h
+ '';
+ };
+ in
+ stdenv.mkDerivation (fetchedGithub ./fetched/flrn.json // rec {
+ buildInputs = [ libetpan openssl autoconf groff slang yacc ];
+ preConfigure = ''
+ sed -i -e "s/test -e configure/false/" configure.in
+ autoconf
+ sed -i -e '/define CHECK_MAIL/d' src/flrn_config.h
+ sed -i -e '/DEFAULT_DIR_FILE/s@".flrn"@".config/flrn"@' src/flrn_config.h
+ sed -i -e '/DEFAULT_CONFIG_FILE/s@".flrnrc"@"flrnrc"@' src/flrn_config.h
+ sed -i -e '/DEFAULT_FLNEWS_FILE/s@".flnewsrc"@"flnewsrc"@' src/flrn_config.h
+ sed -i -e '/flrn_char chaine/s@18@20@' src/flrn_command.c
+ '';
+ });