diff options
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/gtksourceview')
5 files changed, 274 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch b/nixpkgs/pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch new file mode 100644 index 000000000000..c87350167c25 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtksourceview/3.x-nix_share_path.patch @@ -0,0 +1,11 @@ +--- a/gtksourceview/gtksourceview-utils.c 2014-07-13 16:13:57.418687726 +0200 ++++ b/gtksourceview/gtksourceview-utils.c 2014-07-13 16:14:20.550847767 +0200 +@@ -68,6 +68,8 @@ + basename, + NULL)); + ++ g_ptr_array_add (dirs, g_build_filename ("@NIX_SHARE_PATH@", SOURCEVIEW_DIR, basename, NULL)); ++ + g_ptr_array_add (dirs, NULL); + + return (gchar**) g_ptr_array_free (dirs, FALSE); diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix new file mode 100644 index 000000000000..dce589dd6474 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtksourceview/3.x.nix @@ -0,0 +1,51 @@ +{ lib, stdenv, fetchurl, pkg-config, atk, cairo, glib, gtk3, pango, vala +, libxml2, perl, intltool, gettext, gobject-introspection, dbus, xvfb-run, shared-mime-info }: + +stdenv.mkDerivation rec { + pname = "gtksourceview"; + version = "3.24.11"; + + src = fetchurl { + url = "mirror://gnome/sources/gtksourceview/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1zbpj283b5ycz767hqz5kdq02wzsga65pp4fykvhg8xj6x50f6v9"; + }; + + propagatedBuildInputs = [ + # Required by gtksourceview-3.0.pc + gtk3 + # Used by gtk_source_language_manager_guess_language + shared-mime-info + ]; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ pkg-config intltool perl gobject-introspection vala ]; + + checkInputs = [ xvfb-run dbus ]; + + buildInputs = [ atk cairo glib pango libxml2 gettext ]; + + preBuild = '' + substituteInPlace gtksourceview/gtksourceview-utils.c --replace "@NIX_SHARE_PATH@" "$out/share" + ''; + + patches = [ ./3.x-nix_share_path.patch ]; + + enableParallelBuilding = true; + + doCheck = stdenv.isLinux; + checkPhase = '' + NO_AT_BRIDGE=1 \ + XDG_DATA_DIRS="$XDG_DATA_DIRS:${shared-mime-info}/share" \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + make check + ''; + + meta = with lib; { + homepage = "https://wiki.gnome.org/Projects/GtkSourceView"; + platforms = with platforms; linux ++ darwin; + license = licenses.lgpl21; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch new file mode 100644 index 000000000000..a35d9a88d0df --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x-nix_share_path.patch @@ -0,0 +1,11 @@ +--- a/gtksourceview/gtksourceutils.c ++++ b/gtksourceview/gtksourceutils.c +@@ -232,6 +232,8 @@ + NULL)); + } + ++ g_ptr_array_add (dirs, g_build_filename (DATADIR, GSV_DATA_SUBDIR, basename, NULL)); ++ + g_ptr_array_add (dirs, NULL); + + return (gchar **) g_ptr_array_free (dirs, FALSE); diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix new file mode 100644 index 000000000000..0095b6ca9e08 --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix @@ -0,0 +1,102 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, atk +, cairo +, glib +, gtk3 +, pango +, fribidi +, vala +, libxml2 +, perl +, gettext +, gnome +, gobject-introspection +, dbus +, xvfb-run +, shared-mime-info +}: + +stdenv.mkDerivation rec { + pname = "gtksourceview"; + version = "4.8.2"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "1k1pava84ywgq62xl5bz8y3zm7z2kz6kkgp423c0y02jrgjyfbc4"; + }; + + patches = [ + # By default, the library loads syntaxes from XDG_DATA_DIRS and user directory + # but not from its own datadr (it assumes it will be in XDG_DATA_DIRS). + # Since this is not generally true with Nix, let’s add $out/share unconditionally. + ./4.x-nix_share_path.patch + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + perl + gobject-introspection + vala + ]; + + buildInputs = [ + atk + cairo + glib + pango + fribidi + libxml2 + ]; + + propagatedBuildInputs = [ + # Required by gtksourceview-4.0.pc + gtk3 + # Used by gtk_source_language_manager_guess_language + shared-mime-info + ]; + + checkInputs = [ + xvfb-run + dbus + ]; + + doCheck = stdenv.isLinux; + + checkPhase = '' + runHook preCheck + + XDG_DATA_DIRS="$XDG_DATA_DIRS:${shared-mime-info}/share" \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --no-rebuild --print-errorlogs + + runHook postCheck + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gtksourceview"; + attrPath = "gtksourceview4"; + versionPolicy = "odd-unstable"; + freeze = true; + }; + }; + + meta = with lib; { + description = "Source code editing widget for GTK"; + homepage = "https://wiki.gnome.org/Projects/GtkSourceView"; + platforms = platforms.unix; + license = licenses.lgpl21Plus; + maintainers = teams.gnome.members; + }; +} diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix new file mode 100644 index 000000000000..e6ad0f1ae36b --- /dev/null +++ b/nixpkgs/pkgs/development/libraries/gtksourceview/5.x.nix @@ -0,0 +1,99 @@ +{ lib +, stdenv +, fetchurl +, meson +, ninja +, pkg-config +, glib +, pcre2 +, gtk4 +, pango +, fribidi +, vala +, libxml2 +, perl +, gettext +, gnome +, gobject-introspection +, dbus +, xvfb-run +, shared-mime-info +}: + +stdenv.mkDerivation rec { + pname = "gtksourceview"; + version = "5.2.0"; + + outputs = [ "out" "dev" ]; + + src = fetchurl { + url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; + sha256 = "ybNPoCZU9WziL6CIJ9idtLqBYxsubX0x6mXRPHKUMOk="; + }; + + patches = [ + # By default, the library loads syntaxes from XDG_DATA_DIRS and user directory + # but not from its own datadr (it assumes it will be in XDG_DATA_DIRS). + # Since this is not generally true with Nix, let’s add $out/share unconditionally. + ./4.x-nix_share_path.patch + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + gettext + perl + gobject-introspection + vala + ]; + + buildInputs = [ + glib + pcre2 + pango + fribidi + libxml2 + ]; + + propagatedBuildInputs = [ + # Required by gtksourceview-5.0.pc + gtk4 + # Used by gtk_source_language_manager_guess_language + shared-mime-info + ]; + + checkInputs = [ + xvfb-run + dbus + ]; + + doCheck = stdenv.isLinux; + + checkPhase = '' + runHook preCheck + + XDG_DATA_DIRS="$XDG_DATA_DIRS:${shared-mime-info}/share" \ + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --no-rebuild --print-errorlogs + + runHook postCheck + ''; + + passthru = { + updateScript = gnome.updateScript { + packageName = "gtksourceview"; + attrPath = "gtksourceview5"; + versionPolicy = "odd-unstable"; + }; + }; + + meta = with lib; { + description = "Source code editing widget for GTK"; + homepage = "https://wiki.gnome.org/Projects/GtkSourceView"; + platforms = platforms.unix; + license = licenses.lgpl21Plus; + maintainers = teams.gnome.members; + }; +} |