cgit-pink: init at 1.3.0
cgit-pink is a fork of cgit that aims to be better maintained, because cgit doesn't get a lot of attention any more, and almost every patch sent in the last couple of years has been ignored. The build system is exactly the same as cgit's, so I've created a common cgit builder function. This way, improvements to cgit packaging (I've already noticed a couple to make!) can be shared between both packages. If the build systems diverge, we can separate them out in future.
This commit is contained in:
@@ -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 ]);
|
||||
};
|
||||
}
|
||||
@@ -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 ];
|
||||
}) {}
|
||||
|
||||
@@ -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 ];
|
||||
}) {}
|
||||
@@ -25031,9 +25031,8 @@ with pkgs;
|
||||
|
||||
centerim = callPackage ../applications/networking/instant-messengers/centerim { };
|
||||
|
||||
cgit = callPackage ../applications/version-management/git-and-tools/cgit {
|
||||
inherit (python3Packages) python wrapPython pygments markdown;
|
||||
};
|
||||
cgit = callPackage ../applications/version-management/git-and-tools/cgit { };
|
||||
cgit-pink = callPackage ../applications/version-management/git-and-tools/cgit/pink.nix { };
|
||||
|
||||
chatty = callPackage ../applications/networking/instant-messengers/chatty { };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user