diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/grantlee')
5 files changed, 148 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix b/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix new file mode 100644 index 000000000000..b115e1c8d7b6 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix @@ -0,0 +1,55 @@ +{ mkDerivation, lib, fetchFromGitHub, qtbase, qtscript, cmake }: + +mkDerivation rec { + pname = "grantlee"; + version = "5.3.1"; + grantleePluginPrefix = "lib/grantlee/${lib.versions.majorMinor version}"; + + src = fetchFromGitHub { + owner = "steveire"; + repo = "grantlee"; + rev = "v${version}"; + sha256 = "sha256-enP7b6A7Ndew2LJH569fN3IgPu2/KL5rCmU/jmKb9sY="; + }; + + buildInputs = [ qtbase qtscript ]; + nativeBuildInputs = [ cmake ]; + + patches = [ + ./grantlee-nix-profiles.patch + ./grantlee-no-canonicalize-filepath.patch + ]; + + outputs = [ "out" "dev" ]; + postFixup = + # Disabuse CMake of the notion that libraries are in $dev + '' + for way in release debug; do + cmake="$dev/lib/cmake/Grantlee5/GrantleeTargets-$way.cmake" + if [ -f "$cmake" ]; then + sed -i "$cmake" -e "s|\''${_IMPORT_PREFIX}|$out|" + fi + done + ''; + + setupHook = ./setup-hook.sh; + + doCheck = false; # fails all the tests (ctest) + + meta = with lib; { + description = "Qt5 port of Django template system"; + longDescription = '' + Grantlee is a plugin based String Template system written using the Qt + framework. The goals of the project are to make it easier for application + developers to separate the structure of documents from the data they + contain, opening the door for theming. + + The syntax is intended to follow the syntax of the Django template system, + and the design of Django is reused in Grantlee.''; + + homepage = "https://github.com/steveire/grantlee"; + maintainers = [ maintainers.ttuegel ]; + license = licenses.lgpl21; + inherit (qtbase.meta) platforms; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/grantlee/5/grantlee-nix-profiles.patch b/nixpkgs/pkgs/development/libraries/grantlee/5/grantlee-nix-profiles.patch new file mode 100644 index 000000000000..f6c13dbd6d55 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/grantlee/5/grantlee-nix-profiles.patch @@ -0,0 +1,19 @@ +Index: grantlee-5.1.0/templates/lib/engine.cpp +=================================================================== +--- grantlee-5.1.0.orig/templates/lib/engine.cpp ++++ grantlee-5.1.0/templates/lib/engine.cpp +@@ -48,6 +48,14 @@ Engine::Engine(QObject *parent) + + d_ptr->m_pluginDirs = QCoreApplication::instance()->libraryPaths(); + d_ptr->m_pluginDirs << QString::fromLocal8Bit(GRANTLEE_PLUGIN_PATH); ++ ++ // Add library paths derived from NIX_PROFILES. ++ const QByteArrayList profiles = qgetenv("NIX_PROFILES").split(' '); ++ for (const QByteArray &profile: profiles) { ++ if (!profile.isEmpty()) { ++ d_ptr->m_pluginDirs << (QFile::decodeName(profile) + QStringLiteral("/lib")); ++ } ++ } + } + + Engine::~Engine() diff --git a/nixpkgs/pkgs/development/libraries/grantlee/5/grantlee-no-canonicalize-filepath.patch b/nixpkgs/pkgs/development/libraries/grantlee/5/grantlee-no-canonicalize-filepath.patch new file mode 100644 index 000000000000..b29911bcfcdb --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/grantlee/5/grantlee-no-canonicalize-filepath.patch @@ -0,0 +1,27 @@ +Index: grantlee-5.1.0/templates/lib/templateloader.cpp +=================================================================== +--- grantlee-5.1.0.orig/templates/lib/templateloader.cpp ++++ grantlee-5.1.0/templates/lib/templateloader.cpp +@@ -142,10 +142,6 @@ Template FileSystemTemplateLoader::loadByName(const QString &fileName, + + QLatin1Char('/') + fileName); + const QFileInfo fi(file); + +- if (file.exists() +- && !fi.canonicalFilePath().contains( +- QDir(d->m_templateDirs.at(i)).canonicalPath())) +- return {}; + ++i; + } + +@@ -173,11 +169,6 @@ FileSystemTemplateLoader::getMediaUri(co + + QLatin1Char('/') + fileName); + + const QFileInfo fi(file); +- if (!fi.canonicalFilePath().contains( +- QDir(d->m_templateDirs.at(i)).canonicalPath())) { +- ++i; +- continue; +- } + + if (file.exists()) { + auto path = fi.absoluteFilePath(); diff --git a/nixpkgs/pkgs/development/libraries/grantlee/5/setup-hook.sh b/nixpkgs/pkgs/development/libraries/grantlee/5/setup-hook.sh new file mode 100644 index 000000000000..b51cb4a31909 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/grantlee/5/setup-hook.sh @@ -0,0 +1,13 @@ +grantleePluginPrefix=@grantleePluginPrefix@ + +providesGrantleeRuntime() { + [ -d "$1/$grantleePluginPrefix" ] +} + +_grantleeEnvHook() { + if providesGrantleeRuntime "$1"; then + propagatedBuildInputs+=" $1" + propagatedUserEnvPkgs+=" $1" + fi +} +addEnvHooks "$hostOffset" _grantleeEnvHook diff --git a/nixpkgs/pkgs/development/libraries/grantlee/default.nix b/nixpkgs/pkgs/development/libraries/grantlee/default.nix new file mode 100644 index 000000000000..3301d6c47cff --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/grantlee/default.nix @@ -0,0 +1,34 @@ +{ lib, stdenv, fetchurl, qt4, cmake }: + +stdenv.mkDerivation rec { + pname = "grantlee"; + version = "0.5.1"; + +# Upstream download server has country code firewall, so I made a mirror. + src = fetchurl { + urls = [ + "http://downloads.grantlee.org/grantlee-${version}.tar.gz" + "http://www.loegria.net/grantlee/grantlee-${version}.tar.gz" + ]; + sha256 = "1b501xbimizmbmysl1j5zgnp48qw0r2r7lhgmxvzhzlv9jzhj60r"; + }; + + nativeBuildInputs = [ cmake ]; + buildInputs = [ qt4 ]; + + meta = { + description = "Qt4 port of Django template system"; + longDescription = '' + Grantlee is a plugin based String Template system written using the Qt + framework. The goals of the project are to make it easier for application + developers to separate the structure of documents from the data they + contain, opening the door for theming. + + The syntax is intended to follow the syntax of the Django template system, + and the design of Django is reused in Grantlee.''; + + homepage = "https://github.com/steveire/grantlee"; + license = lib.licenses.lgpl21; + inherit (qt4.meta) platforms; + }; +} |