diff options
author | Sandro <sandro.jaeckel@gmail.com> | 2022-03-23 10:41:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-23 10:41:35 +0100 |
commit | 568a402fc430da710d7fa058f6d1e12e01ff5e1f (patch) | |
tree | b226197662dfb24e19e2775ee956befc9312873e /pkgs/applications/version-management | |
parent | 4789fec756f307976a2c19852772bf48184c037c (diff) | |
parent | deab83e11674f1cfbc9d5e5626d12ed9344d8091 (diff) |
Merge pull request #165273 from alyssais/cgit-pink-1.3.0
Diffstat (limited to 'pkgs/applications/version-management')
3 files changed, 110 insertions, 69 deletions
diff --git a/pkgs/applications/version-management/git-and-tools/cgit/common.nix b/pkgs/applications/version-management/git-and-tools/cgit/common.nix new file mode 100644 index 0000000000000..f0e3e4a29d817 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/cgit/common.nix @@ -0,0 +1,78 @@ +{ pname, version, src, gitSrc, buildInputs ? [] +, homepage, repo, description, maintainers +}: + +{ lib, stdenv, openssl, zlib, asciidoc, libxml2, libxslt +, docbook_xsl, pkg-config +, coreutils, gnused, groff, docutils +, gzip, bzip2, lzip, xz, zstd +, python3Packages +}: + +stdenv.mkDerivation { + inherit pname version src gitSrc; + + nativeBuildInputs = [ + pkg-config asciidoc + ] ++ (with python3Packages; [ python wrapPython ]); + buildInputs = buildInputs ++ [ + openssl zlib libxml2 libxslt docbook_xsl + ]; + pythonPath = with python3Packages; [ pygments markdown ]; + + postPatch = '' + sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \ + -e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \ + -e 's|"lzip"|"${lzip}/bin/lzip"|' \ + -e 's|"xz"|"${xz.bin}/bin/xz"|' \ + -e 's|"zstd"|"${zstd}/bin/zstd"|' \ + -i ui-snapshot.c + + substituteInPlace filters/html-converters/man2html \ + --replace 'groff' '${groff}/bin/groff' + + substituteInPlace filters/html-converters/rst2html \ + --replace 'rst2html.py' '${docutils}/bin/rst2html.py' + ''; + + # Give cgit a git source tree and pass configuration parameters (as make + # variables). + preBuild = '' + mkdir -p git + tar --strip-components=1 -xf "$gitSrc" -C git + ''; + + makeFlags = [ + "prefix=$(out)" + "CGIT_SCRIPT_PATH=$(out)/cgit/" + "CC=${stdenv.cc.targetPrefix}cc" + "AR=${stdenv.cc.targetPrefix}ar" + ]; + + # Install manpage. + postInstall = '' + # xmllint fails: + #make install-man + + # bypassing xmllint works: + a2x --no-xmllint -f manpage cgitrc.5.txt + mkdir -p "$out/share/man/man5" + cp cgitrc.5 "$out/share/man/man5" + + wrapPythonProgramsIn "$out/lib/cgit/filters" "$out $pythonPath" + + for script in $out/lib/cgit/filters/*.sh $out/lib/cgit/filters/html-converters/txt2html; do + wrapProgram $script --prefix PATH : '${lib.makeBinPath [ coreutils gnused ]}' + done + ''; + + stripDebugList = [ "cgit" ]; + + meta = { + inherit homepage description; + repositories.git = repo; + license = lib.licenses.gpl2; + platforms = lib.platforms.linux; + maintainers = maintainers ++ (with lib.maintainers; [ qyliss ]); + }; +} diff --git a/pkgs/applications/version-management/git-and-tools/cgit/default.nix b/pkgs/applications/version-management/git-and-tools/cgit/default.nix index b8f7cee7358c9..7d84b286d5f1f 100644 --- a/pkgs/applications/version-management/git-and-tools/cgit/default.nix +++ b/pkgs/applications/version-management/git-and-tools/cgit/default.nix @@ -1,11 +1,6 @@ -{ lib, stdenv, fetchurl, openssl, zlib, asciidoc, libxml2, libxslt -, docbook_xsl, pkg-config, luajit -, coreutils, gnused, groff, docutils -, gzip, bzip2, lzip, xz, zstd -, python, wrapPython, pygments, markdown -}: +{ lib, fetchurl, callPackage, luajit }: -stdenv.mkDerivation rec { +callPackage (import ./common.nix rec { pname = "cgit"; version = "1.2.3"; @@ -22,66 +17,10 @@ stdenv.mkDerivation rec { sha256 = "09lzwa183nblr6l8ib35g2xrjf9wm9yhk3szfvyzkwivdv69c9r2"; }; - nativeBuildInputs = [ pkg-config asciidoc ] ++ [ python wrapPython ]; - buildInputs = [ - openssl zlib libxml2 libxslt docbook_xsl luajit - ]; - pythonPath = [ pygments markdown ]; + buildInputs = [ luajit ]; - postPatch = '' - sed -e 's|"gzip"|"${gzip}/bin/gzip"|' \ - -e 's|"bzip2"|"${bzip2.bin}/bin/bzip2"|' \ - -e 's|"lzip"|"${lzip}/bin/lzip"|' \ - -e 's|"xz"|"${xz.bin}/bin/xz"|' \ - -e 's|"zstd"|"${zstd}/bin/zstd"|' \ - -i ui-snapshot.c - - substituteInPlace filters/html-converters/man2html \ - --replace 'groff' '${groff}/bin/groff' - - substituteInPlace filters/html-converters/rst2html \ - --replace 'rst2html.py' '${docutils}/bin/rst2html.py' - ''; - - # Give cgit a git source tree and pass configuration parameters (as make - # variables). - preBuild = '' - mkdir -p git - tar --strip-components=1 -xf "$gitSrc" -C git - ''; - - makeFlags = [ - "prefix=$(out)" - "CGIT_SCRIPT_PATH=$(out)/cgit/" - "CC=${stdenv.cc.targetPrefix}cc" - "AR=${stdenv.cc.targetPrefix}ar" - ]; - - # Install manpage. - postInstall = '' - # xmllint fails: - #make install-man - - # bypassing xmllint works: - a2x --no-xmllint -f manpage cgitrc.5.txt - mkdir -p "$out/share/man/man5" - cp cgitrc.5 "$out/share/man/man5" - - wrapPythonProgramsIn "$out/lib/cgit/filters" "$out $pythonPath" - - for script in $out/lib/cgit/filters/*.sh $out/lib/cgit/filters/html-converters/txt2html; do - wrapProgram $script --prefix PATH : '${lib.makeBinPath [ coreutils gnused ]}' - done - ''; - - stripDebugList = [ "cgit" ]; - - meta = { - homepage = "https://git.zx2c4.com/cgit/about/"; - repositories.git = "git://git.zx2c4.com/cgit"; - description = "Web frontend for git repositories"; - license = lib.licenses.gpl2; - platforms = lib.platforms.linux; - maintainers = with lib.maintainers; [ bjornfor ]; - }; -} + homepage = "https://git.zx2c4.com/cgit/about/"; + repo = "git://git.zx2c4.com/cgit"; + description = "Web frontend for git repositories"; + maintainers = with lib.maintainers; [ bjornfor ]; +}) {} diff --git a/pkgs/applications/version-management/git-and-tools/cgit/pink.nix b/pkgs/applications/version-management/git-and-tools/cgit/pink.nix new file mode 100644 index 0000000000000..2719bc1225301 --- /dev/null +++ b/pkgs/applications/version-management/git-and-tools/cgit/pink.nix @@ -0,0 +1,24 @@ +{ lib, fetchurl, callPackage }: + +callPackage (import ./common.nix rec { + pname = "cgit-pink"; + version = "1.3.0"; + + src = fetchurl { + url = "https://git.causal.agency/cgit-pink/snapshot/cgit-pink-${version}.tar.gz"; + sha256 = "sha256-oL46NWgqi1VqKNEt0QGBWNXbi2l7nOQDZy1aMivcWuM="; + }; + + # cgit-pink is tightly coupled with git and needs a git source tree to build. + # IMPORTANT: Remember to check which git version cgit-pink needs on every + # version bump (look for "GIT_VER" in the top-level Makefile). + gitSrc = fetchurl { + url = "mirror://kernel/software/scm/git/git-2.35.1.tar.xz"; + sha256 = "sha256-12hSjmRD9logMDYmbxylD50Se6iXUeMurTcRftkZEIA="; + }; + + homepage = "https://git.causal.agency/cgit-pink/about/"; + repo = "https://git.causal.agency/cgit-pink"; + description = "cgit fork aiming for better maintenance"; + maintainers = with lib.maintainers; [ qyliss sternenseemann ]; +}) {} |