uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead
https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948 this can do it nicely. Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
commit
56de2bcd43
30691 changed files with 3076956 additions and 0 deletions
74
pkgs/desktops/gnome/apps/accerciser/default.nix
Normal file
74
pkgs/desktops/gnome/apps/accerciser/default.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ lib
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gtk3
|
||||
, wrapGAppsHook
|
||||
, gobject-introspection
|
||||
, itstool
|
||||
, libxml2
|
||||
, python3
|
||||
, at-spi2-core
|
||||
, dbus
|
||||
, gettext
|
||||
, libwnck
|
||||
, adwaita-icon-theme
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "accerciser";
|
||||
version = "3.38.0";
|
||||
|
||||
format = "other";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0fd9vv2abd2if2qj4nlfy7mpd7rc4sx18zhmxd5ijlnfhkpggbp5";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection # For setup hook
|
||||
itstool
|
||||
libxml2
|
||||
pkg-config
|
||||
dbus
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
at-spi2-core
|
||||
gtk3
|
||||
libwnck
|
||||
];
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
ipython
|
||||
pyatspi
|
||||
pycairo
|
||||
pygobject3
|
||||
setuptools
|
||||
xlib
|
||||
];
|
||||
|
||||
# Strict deps breaks accerciser
|
||||
# and https://github.com/NixOS/nixpkgs/issues/56943
|
||||
strictDeps = false;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "accerciser";
|
||||
attrPath = "gnome.accerciser";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Accerciser";
|
||||
description = "Interactive Python accessibility explorer";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.bsd3;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
114
pkgs/desktops/gnome/apps/cheese/default.nix
Normal file
114
pkgs/desktops/gnome/apps/cheese/default.nix
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, gettext
|
||||
, fetchurl
|
||||
, wrapGAppsHook
|
||||
, gnome-video-effects
|
||||
, libcanberra-gtk3
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, clutter-gtk
|
||||
, clutter-gst
|
||||
, gst_all_1
|
||||
, itstool
|
||||
, vala
|
||||
, docbook_xml_dtd_43
|
||||
, docbook-xsl-nons
|
||||
, appstream-glib
|
||||
, libxslt
|
||||
, gtk-doc
|
||||
, adwaita-icon-theme
|
||||
, librsvg
|
||||
, totem
|
||||
, gdk-pixbuf
|
||||
, gnome
|
||||
, gnome-desktop
|
||||
, libxml2
|
||||
, meson
|
||||
, ninja
|
||||
, dbus
|
||||
, python3
|
||||
, pipewire
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cheese";
|
||||
version = "41.1";
|
||||
|
||||
outputs = [ "out" "man" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/cheese/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "UilgyihzD/ZkOQcLBEGMngpLtVVg11v+CLIY2ixn5Uc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
docbook_xml_dtd_43
|
||||
docbook-xsl-nons
|
||||
gettext
|
||||
gtk-doc
|
||||
itstool
|
||||
libxml2
|
||||
libxslt # for xsltproc
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
glib # for glib-compile-schemas
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
clutter-gst
|
||||
clutter-gtk
|
||||
dbus
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome-video-effects
|
||||
gst_all_1.gst-plugins-bad
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gstreamer
|
||||
gtk3
|
||||
libcanberra-gtk3
|
||||
librsvg
|
||||
pipewire # PipeWire provides a gstreamer plugin for using PipeWire for video
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Effects
|
||||
--prefix XDG_DATA_DIRS : "${gnome-video-effects}/share"
|
||||
# vp8enc preset
|
||||
--prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets"
|
||||
# Thumbnailers
|
||||
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
|
||||
--prefix XDG_DATA_DIRS : "${totem}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "cheese";
|
||||
attrPath = "gnome.cheese";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Cheese";
|
||||
description = "Take photos and videos with your webcam, with fun graphical effects";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
93
pkgs/desktops/gnome/apps/file-roller/default.nix
Normal file
93
pkgs/desktops/gnome/apps/file-roller/default.nix
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, desktop-file-utils
|
||||
, gettext
|
||||
, glibcLocales
|
||||
, itstool
|
||||
, libxml2
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, cpio
|
||||
, file
|
||||
, glib
|
||||
, gnome
|
||||
, gtk3
|
||||
, libhandy
|
||||
, json-glib
|
||||
, libarchive
|
||||
, libnotify
|
||||
, nautilus
|
||||
, unzip
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "file-roller";
|
||||
version = "3.42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "HEOObVPsEP9PLrWyLXu/KKfCqElXq2SnUcHN88UjAsc=";
|
||||
};
|
||||
|
||||
LANG = "en_US.UTF-8"; # postinstall.py
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
glibcLocales
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cpio
|
||||
file
|
||||
glib
|
||||
gnome.adwaita-icon-theme
|
||||
gtk3
|
||||
libhandy
|
||||
json-glib
|
||||
libarchive
|
||||
libnotify
|
||||
nautilus
|
||||
];
|
||||
|
||||
PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
|
||||
|
||||
postPatch = ''
|
||||
chmod +x postinstall.py # patchShebangs requires executable file
|
||||
patchShebangs postinstall.py
|
||||
patchShebangs data/set-mime-type-entry.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
# Workaround because of https://gitlab.gnome.org/GNOME/file-roller/issues/40
|
||||
gappsWrapperArgs+=(
|
||||
--prefix PATH : ${lib.makeBinPath [ unzip ]}
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "file-roller";
|
||||
attrPath = "gnome.file-roller";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/FileRoller";
|
||||
description = "Archive manager for the GNOME desktop environment";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members ++ teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
13
pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch
Normal file
13
pkgs/desktops/gnome/apps/gedit/correct-gir-lib-path.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/gedit/meson.build b/gedit/meson.build
|
||||
index a8683e61a..fc48669f7 100644
|
||||
--- a/gedit/meson.build
|
||||
+++ b/gedit/meson.build
|
||||
@@ -191,7 +191,7 @@ libgedit_shared_lib = shared_library(
|
||||
c_args: libgedit_c_args,
|
||||
link_args: libgedit_link_args,
|
||||
install: true,
|
||||
- install_dir: get_option('libdir') / 'gedit',
|
||||
+ install_dir: get_option('prefix') / get_option('libdir') / 'gedit',
|
||||
)
|
||||
|
||||
# GObject Introspection
|
||||
91
pkgs/desktops/gnome/apps/gedit/default.nix
Normal file
91
pkgs/desktops/gnome/apps/gedit/default.nix
Normal file
|
|
@ -0,0 +1,91 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, meson
|
||||
, fetchurl
|
||||
, python3
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, gtk-mac-integration
|
||||
, glib
|
||||
, adwaita-icon-theme
|
||||
, libpeas
|
||||
, libxml2
|
||||
, gtksourceview4
|
||||
, gsettings-desktop-schemas
|
||||
, wrapGAppsHook
|
||||
, ninja
|
||||
, libsoup
|
||||
, gnome
|
||||
, gspell
|
||||
, perl
|
||||
, itstool
|
||||
, desktop-file-utils
|
||||
, vala
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gedit";
|
||||
version = "42.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gedit/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "fx/UPfURDUw33mVBmT9B8PvD78eQkA6SBTR5ugaZIOk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# We patch gobject-introspection and meson to store absolute paths to libraries in typelibs
|
||||
# but that requires the install_dir is an absolute path.
|
||||
./correct-gir-lib-path.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
perl
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gspell
|
||||
gtk3
|
||||
gtksourceview4
|
||||
libpeas
|
||||
libsoup
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
gtk-mac-integration
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson/post_install.py
|
||||
chmod +x plugins/externaltools/scripts/gedit-tool-merge.pl
|
||||
patchShebangs build-aux/meson/post_install.py
|
||||
patchShebangs plugins/externaltools/scripts/gedit-tool-merge.pl
|
||||
'';
|
||||
|
||||
# Reliably fails to generate gedit-file-browser-enum-types.h in time
|
||||
enableParallelBuilding = false;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gedit";
|
||||
attrPath = "gnome.gedit";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Gedit";
|
||||
description = "Official text editor of the GNOME desktop environment";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
81
pkgs/desktops/gnome/apps/ghex/default.nix
Normal file
81
pkgs/desktops/gnome/apps/ghex/default.nix
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gi-docgen
|
||||
, meson
|
||||
, ninja
|
||||
, gnome
|
||||
, desktop-file-utils
|
||||
, appstream-glib
|
||||
, gettext
|
||||
, itstool
|
||||
, libxml2
|
||||
, gtk4
|
||||
, glib
|
||||
, atk
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook4
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ghex";
|
||||
version = "42.2";
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/ghex/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Rd6Oa4ofMd5amRC+GMB/CaMo2HU434BAOuxa+IF8ljE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
itstool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gi-docgen
|
||||
gobject-introspection
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
atk
|
||||
glib
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgtk_doc=true"
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
# mremap does not exist on darwin
|
||||
"-Dmmap-buffer-backend=false"
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
|
||||
moveToOutput "share/doc" "$devdoc"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "ghex";
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Ghex";
|
||||
description = "Hex editor for GNOME desktop environment";
|
||||
platforms = platforms.unix;
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
97
pkgs/desktops/gnome/apps/gnome-books/default.nix
Normal file
97
pkgs/desktops/gnome/apps/gnome-books/default.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, evince
|
||||
, gjs
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, tracker
|
||||
, tracker-miners
|
||||
, libxslt
|
||||
, webkitgtk
|
||||
, gnome-desktop
|
||||
, libgepub
|
||||
, gnome
|
||||
, gdk-pixbuf
|
||||
, gsettings-desktop-schemas
|
||||
, adwaita-icon-theme
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_42
|
||||
, desktop-file-utils
|
||||
, python3
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-books";
|
||||
version = "40.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0c41l8m2di8h39bmk2fnhpwglwp6qhljmwqqbihzp4ay9976zrc5";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61
|
||||
# https://gitlab.gnome.org/GNOME/gnome-books/-/merge_requests/62
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-books/-/commit/2663dcdaaaa71f067a4c2d0005eecc0fdf940bf5.patch";
|
||||
sha256 = "v2mLzrxSWrkJ0N6seR8jNXX14FsneEPuE9ELLVUe6+E=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
libxslt
|
||||
desktop-file-utils
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_42
|
||||
wrapGAppsHook
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gdk-pixbuf
|
||||
adwaita-icon-theme
|
||||
evince
|
||||
webkitgtk
|
||||
gjs
|
||||
gobject-introspection
|
||||
tracker
|
||||
tracker-miners
|
||||
gnome-desktop
|
||||
libgepub
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-books";
|
||||
attrPath = "gnome.gnome-books";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Books";
|
||||
description = "An e-book manager application for GNOME";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
154
pkgs/desktops/gnome/apps/gnome-boxes/default.nix
Normal file
154
pkgs/desktops/gnome/apps/gnome-boxes/default.nix
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, wrapGAppsHook
|
||||
, pkg-config
|
||||
, gettext
|
||||
, itstool
|
||||
, libvirt-glib
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, libxml2
|
||||
, gtk3
|
||||
, gtksourceview4
|
||||
, gtk-vnc
|
||||
, freerdp
|
||||
, libvirt
|
||||
, spice-gtk
|
||||
, python3
|
||||
, appstream-glib
|
||||
, spice-protocol
|
||||
, libhandy
|
||||
, libsoup
|
||||
, libosinfo
|
||||
, systemd
|
||||
, tracker
|
||||
, tracker-miners
|
||||
, vala
|
||||
, libcap
|
||||
, yajl
|
||||
, gmp
|
||||
, gdbm
|
||||
, cyrus_sasl
|
||||
, gnome
|
||||
, librsvg
|
||||
, desktop-file-utils
|
||||
, mtools
|
||||
, cdrkit
|
||||
, libcdio
|
||||
, libusb1
|
||||
, libarchive
|
||||
, acl
|
||||
, libgudev
|
||||
, libsecret
|
||||
, libcap_ng
|
||||
, numactl
|
||||
, libapparmor
|
||||
, json-glib
|
||||
, webkitgtk
|
||||
, vte
|
||||
, glib-networking
|
||||
, qemu-utils
|
||||
, qemu
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-boxes";
|
||||
version = "42.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "lvXQEbdQjbVhvw0WbA6p6LEhgFxA5dnzYRkkXBUXIIA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix path to libgovf-0.1.so (and libgtk-frdp-0.1.so when enabling rdp meson option)
|
||||
# in the gir file. We patch gobject-introspection to hardcode absolute paths but
|
||||
# our Meson patch will only pass the info when install_dir is absolute as well.
|
||||
./fix-gir-lib-path.patch
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib # for appstream-util
|
||||
desktop-file-utils
|
||||
gettext
|
||||
gobject-introspection
|
||||
itstool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
# Required for USB redirection PolicyKit rules file
|
||||
propagatedUserEnvPkgs = [
|
||||
spice-gtk
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
acl
|
||||
cyrus_sasl
|
||||
freerdp
|
||||
gdbm
|
||||
glib
|
||||
glib-networking
|
||||
gmp
|
||||
gnome.adwaita-icon-theme
|
||||
gtk-vnc
|
||||
gtk3
|
||||
gtksourceview4
|
||||
json-glib
|
||||
libapparmor
|
||||
libarchive
|
||||
libcap
|
||||
libcap_ng
|
||||
libgudev
|
||||
libhandy
|
||||
libosinfo
|
||||
librsvg
|
||||
libsecret
|
||||
libsoup
|
||||
libusb1
|
||||
libvirt
|
||||
libvirt-glib
|
||||
libxml2
|
||||
numactl
|
||||
spice-gtk
|
||||
spice-protocol
|
||||
systemd
|
||||
tracker
|
||||
tracker-miners
|
||||
vte
|
||||
webkitgtk
|
||||
yajl
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(--prefix PATH : "${lib.makeBinPath [ mtools cdrkit libcdio qemu-utils qemu ]}")
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/post_install.py # patchShebangs requires executable file
|
||||
patchShebangs build-aux/post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple GNOME 3 application to access remote or virtual systems";
|
||||
homepage = "https://wiki.gnome.org/Apps/Boxes";
|
||||
license = licenses.lgpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
22
pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patch
Normal file
22
pkgs/desktops/gnome/apps/gnome-boxes/fix-gir-lib-path.patch
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
--- a/subprojects/libovf-glib/govf/meson.build
|
||||
+++ b/subprojects/libovf-glib/govf/meson.build
|
||||
@@ -39,7 +39,7 @@ govf_lib = shared_library('govf-' + api_version,
|
||||
govf_sources,
|
||||
dependencies: govf_deps,
|
||||
install: true,
|
||||
- install_dir: libdir
|
||||
+ install_dir: get_option ('prefix') / libdir
|
||||
)
|
||||
|
||||
govf_dep = declare_dependency(
|
||||
--- a/subprojects/gtk-frdp/src/meson.build
|
||||
+++ b/subprojects/gtk-frdp/src/meson.build
|
||||
@@ -50,7 +50,7 @@ gtk_frdp_lib = shared_library('gtk-frdp-' + api_version,
|
||||
gtk_frdp_sources,
|
||||
dependencies: gtk_frdp_deps,
|
||||
install: true,
|
||||
- install_dir: libdir
|
||||
+ install_dir: get_option ('prefix') / libdir
|
||||
)
|
||||
|
||||
gtk_frdp_dep = declare_dependency(
|
||||
68
pkgs/desktops/gnome/apps/gnome-calendar/default.nix
Normal file
68
pkgs/desktops/gnome/apps/gnome-calendar/default.nix
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, wrapGAppsHook4
|
||||
, libgweather
|
||||
, geoclue2
|
||||
, geocode-glib
|
||||
, gettext
|
||||
, libxml2
|
||||
, gnome
|
||||
, gtk4
|
||||
, evolution-data-server
|
||||
, libical
|
||||
, libsoup
|
||||
, glib
|
||||
, gsettings-desktop-schemas
|
||||
, libadwaita
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-calendar";
|
||||
version = "42.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0SKBy78a+GxyN1/mrZNG7Q4sLziKHq6FjOzmQGCm66g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
libxml2
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
evolution-data-server # waiting for GTK4 port
|
||||
libical
|
||||
libsoup
|
||||
glib
|
||||
libgweather
|
||||
geoclue2
|
||||
geocode-glib
|
||||
gsettings-desktop-schemas
|
||||
libadwaita
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Calendar";
|
||||
description = "Simple and beautiful calendar application for GNOME";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
88
pkgs/desktops/gnome/apps/gnome-characters/default.nix
Normal file
88
pkgs/desktops/gnome/apps/gnome-characters/default.nix
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gettext
|
||||
, gnome
|
||||
, glib
|
||||
, gtk4
|
||||
, pango
|
||||
, wrapGAppsHook4
|
||||
, python3
|
||||
, desktop-file-utils
|
||||
, gobject-introspection
|
||||
, gjs
|
||||
, libunistring
|
||||
, libadwaita
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-desktop
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-characters";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-characters/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "XaD/uBb4prRPMDdEyoJ6NAgBGMHJONjXmvF7f+Z5gPg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
desktop-file-utils
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
|
||||
buildInputs = [
|
||||
gjs
|
||||
glib
|
||||
gnome-desktop # for typelib
|
||||
gsettings-desktop-schemas
|
||||
gtk4
|
||||
libunistring
|
||||
libadwaita
|
||||
pango
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
|
||||
# https://gitlab.gnome.org/GNOME/gnome-characters/-/merge_requests/70
|
||||
substituteInPlace meson_post_install.py \
|
||||
--replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
|
||||
'';
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
postFixup = ''
|
||||
# Fixes https://github.com/NixOS/nixpkgs/issues/31168
|
||||
file="$out/share/org.gnome.Characters/org.gnome.Characters"
|
||||
sed -e $"2iimports.package._findEffectiveEntryPointName = () => \'$(basename $file)\' " \
|
||||
-i $file
|
||||
wrapGApp "$file"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Characters";
|
||||
description = "Simple utility application to find and insert unusual characters";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
86
pkgs/desktops/gnome/apps/gnome-clocks/default.nix
Normal file
86
pkgs/desktops/gnome/apps/gnome-clocks/default.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, pkg-config
|
||||
, wrapGAppsHook
|
||||
, itstool
|
||||
, desktop-file-utils
|
||||
, vala_0_56
|
||||
, gobject-introspection
|
||||
, libxml2
|
||||
, gtk4
|
||||
, glib
|
||||
, gsound
|
||||
, sound-theme-freedesktop
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-desktop
|
||||
, geocode-glib
|
||||
, gnome
|
||||
, gdk-pixbuf
|
||||
, geoclue2
|
||||
, libgweather
|
||||
, libadwaita
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-clocks";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-clocks/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "DnEY20oDLjzqMhLZjLuCjWt88i/gXgxfyLORxqPdb+A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
vala_0_56
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
wrapGAppsHook
|
||||
desktop-file-utils
|
||||
libxml2
|
||||
gobject-introspection # for finding vapi files
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gdk-pixbuf
|
||||
gnome-desktop
|
||||
geocode-glib
|
||||
geoclue2
|
||||
libgweather
|
||||
gsound
|
||||
libadwaita
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Fallback sound theme
|
||||
--prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-clocks";
|
||||
attrPath = "gnome.gnome-clocks";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Clocks";
|
||||
description = "Clock application designed for GNOME 3";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
75
pkgs/desktops/gnome/apps/gnome-connections/default.nix
Normal file
75
pkgs/desktops/gnome/apps/gnome-connections/default.nix
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, vala_0_56
|
||||
, gettext
|
||||
, itstool
|
||||
, python3
|
||||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
, wrapGAppsHook
|
||||
, glib
|
||||
, gtk3
|
||||
, libhandy
|
||||
, libsecret
|
||||
, libxml2
|
||||
, gtk-vnc
|
||||
, gtk-frdp
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-connections";
|
||||
version = "42.1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-2ObnJ0EJHYkt/IQoH2JVUdBWjNSC1I21ik7bivoTd7Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala_0_56
|
||||
gettext
|
||||
itstool
|
||||
python3
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
glib # glib-compile-resources
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk-vnc
|
||||
gtk3
|
||||
libhandy
|
||||
libsecret
|
||||
libxml2
|
||||
gtk-frdp
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson/postinstall.py
|
||||
patchShebangs build-aux/meson/postinstall.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/connections";
|
||||
description = "A remote desktop client for the GNOME desktop environment";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
127
pkgs/desktops/gnome/apps/gnome-documents/default.nix
Normal file
127
pkgs/desktops/gnome/apps/gnome-documents/default.nix
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
{ lib, stdenv
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, evince
|
||||
, gjs
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, tracker
|
||||
, tracker-miners
|
||||
, itstool
|
||||
, libxslt
|
||||
, webkitgtk
|
||||
, libgdata
|
||||
, gnome-desktop
|
||||
, libzapojit
|
||||
, libgepub
|
||||
, gnome
|
||||
, gdk-pixbuf
|
||||
, libsoup
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_42
|
||||
, gobject-introspection
|
||||
, inkscape
|
||||
, poppler_utils
|
||||
, desktop-file-utils
|
||||
, wrapGAppsHook
|
||||
, python3
|
||||
, appstream-glib
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-documents";
|
||||
version = "3.34.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-documents/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1qph567mapg3s1a26k7b8y57g9bklhj2mh8xm758z9zkms20xafq";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix inkscape 1.0 usage
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-documents/commit/0f55a18c40a61e6ae4ec4652604775f139892350.diff";
|
||||
sha256 = "1yrisq69dl1dn7639drlbza20a5ic6xg04ksr9iq4sxdx3xj3d8s";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
libxslt
|
||||
desktop-file-utils
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_42
|
||||
wrapGAppsHook
|
||||
python3
|
||||
appstream-glib
|
||||
|
||||
# building getting started
|
||||
inkscape
|
||||
poppler_utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gdk-pixbuf
|
||||
gnome.adwaita-icon-theme
|
||||
evince
|
||||
libsoup
|
||||
webkitgtk
|
||||
gjs
|
||||
gobject-introspection
|
||||
tracker
|
||||
tracker-miners
|
||||
libgdata
|
||||
gnome-desktop
|
||||
libzapojit
|
||||
libgepub
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgetting_started=true"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
substituteInPlace $out/bin/gnome-documents --replace gapplication "${glib.bin}/bin/gapplication"
|
||||
'';
|
||||
|
||||
preConfigure =
|
||||
# To silence inkscape warnings regarding profile directory
|
||||
''
|
||||
export INKSCAPE_PROFILE_DIR="$(mktemp -d)"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
broken = true; # Tracker 3 not supported and it cannot start Tracker 2.
|
||||
homepage = "https://wiki.gnome.org/Apps/Documents";
|
||||
description = "Document manager application designed to work with GNOME 3";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
79
pkgs/desktops/gnome/apps/gnome-logs/default.nix
Normal file
79
pkgs/desktops/gnome/apps/gnome-logs/default.nix
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, glib
|
||||
, gtk3
|
||||
, wrapGAppsHook
|
||||
, gettext
|
||||
, itstool
|
||||
, libhandy
|
||||
, libxml2
|
||||
, libxslt
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_43
|
||||
, systemd
|
||||
, python3
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-logs";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-logs/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "TV5FFp1r9DkC16npoHk8kW65LaumuoWzXI629nLNq9c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
gettext
|
||||
itstool
|
||||
libxml2
|
||||
libxslt
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_43
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
libhandy
|
||||
systemd
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dman=true"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-logs";
|
||||
attrPath = "gnome.gnome-logs";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Logs";
|
||||
description = "A log viewer for the systemd journal";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
104
pkgs/desktops/gnome/apps/gnome-maps/default.nix
Normal file
104
pkgs/desktops/gnome/apps/gnome-maps/default.nix
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, python3
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gtk3
|
||||
, gobject-introspection
|
||||
, gdk-pixbuf
|
||||
, librest
|
||||
, librsvg
|
||||
, libgweather
|
||||
, geoclue2
|
||||
, wrapGAppsHook
|
||||
, folks
|
||||
, libchamplain
|
||||
, libsoup
|
||||
, gsettings-desktop-schemas
|
||||
, webkitgtk
|
||||
, gjs
|
||||
, libgee
|
||||
, libhandy
|
||||
, geocode-glib
|
||||
, evolution-data-server
|
||||
, gnome-online-accounts
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-maps";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-Xm0bDKfMk56pGq39pWM6hl6oX6VlADaGGyv+8L/QabE=";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
evolution-data-server
|
||||
folks
|
||||
gdk-pixbuf
|
||||
geoclue2
|
||||
geocode-glib
|
||||
gjs
|
||||
gnome-online-accounts
|
||||
gobject-introspection
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
libchamplain
|
||||
libgee
|
||||
libgweather
|
||||
libhandy
|
||||
librest
|
||||
librsvg
|
||||
libsoup
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
|
||||
# The .service file isn't wrapped with the correct environment
|
||||
# so misses GIR files when started. By re-pointing from the gjs
|
||||
# entry point to the wrapped binary we get back to a wrapped
|
||||
# binary.
|
||||
substituteInPlace "data/org.gnome.Maps.service.in" \
|
||||
--replace "Exec=@pkgdatadir@/@app-id@" \
|
||||
"Exec=$out/bin/gnome-maps"
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# “time.js” included by “timeTest” and “translationsTest” depends on “org.gnome.desktop.interface” schema.
|
||||
export XDG_DATA_DIRS="${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:$XDG_DATA_DIRS"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Maps";
|
||||
description = "A map application for GNOME 3";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
112
pkgs/desktops/gnome/apps/gnome-music/default.nix
Normal file
112
pkgs/desktops/gnome/apps/gnome-music/default.nix
Normal file
|
|
@ -0,0 +1,112 @@
|
|||
{ lib
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, fetchurl
|
||||
, gdk-pixbuf
|
||||
, tracker
|
||||
, libxml2
|
||||
, python3
|
||||
, libnotify
|
||||
, wrapGAppsHook4
|
||||
, libmediaart
|
||||
, gobject-introspection
|
||||
, gnome-online-accounts
|
||||
, grilo
|
||||
, grilo-plugins
|
||||
, pkg-config
|
||||
, gtk4
|
||||
, pango
|
||||
, glib
|
||||
, desktop-file-utils
|
||||
, appstream-glib
|
||||
, itstool
|
||||
, gnome
|
||||
, gst_all_1
|
||||
, libsoup
|
||||
, libadwaita
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "gnome-music";
|
||||
version = "42.1";
|
||||
|
||||
format = "other";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "x3R/pqhrVrGK1v+VD/kB5Z7n+sEcaLKmcnr4bq7tgnA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
itstool
|
||||
pkg-config
|
||||
libxml2
|
||||
wrapGAppsHook4
|
||||
desktop-file-utils
|
||||
appstream-glib
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
pango
|
||||
glib
|
||||
libmediaart
|
||||
gnome-online-accounts
|
||||
gobject-introspection
|
||||
gdk-pixbuf
|
||||
python3
|
||||
grilo
|
||||
grilo-plugins
|
||||
libnotify
|
||||
libsoup
|
||||
libadwaita
|
||||
gsettings-desktop-schemas
|
||||
tracker
|
||||
] ++ (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
gst-libav
|
||||
]);
|
||||
|
||||
pythonPath = with python3.pkgs; [
|
||||
pycairo
|
||||
dbus-python
|
||||
pygobject3
|
||||
];
|
||||
|
||||
# Prevent double wrapping, let the Python wrapper use the args in preFixup.
|
||||
dontWrapGApps = true;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
doCheck = false;
|
||||
|
||||
# handle setup hooks better
|
||||
strictDeps = false;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Music";
|
||||
description = "Music player and management application for the GNOME desktop environment";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
86
pkgs/desktops/gnome/apps/gnome-nettool/default.nix
Normal file
86
pkgs/desktops/gnome/apps/gnome-nettool/default.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, desktop-file-utils
|
||||
, itstool
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, glib
|
||||
, gtk3
|
||||
, libgtop
|
||||
, dnsutils
|
||||
, iputils
|
||||
, nmap
|
||||
, inetutils
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-nettool";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "pU8p7vIDiu5pVRyLGcpPdY5eueIJCkvGtWM9/wGIdR8=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61
|
||||
# https://gitlab.gnome.org/GNOME/gnome-nettool/-/merge_requests/3
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-nettool/-/commit/1124c3e1fdb8472d30b7636500229aa16cdc1244.patch";
|
||||
sha256 = "fbpfL8Xb1GsadpQzAdmu8FSPs++bsGCVdcwnzQWttGY=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
itstool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
libgtop
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x postinstall.py
|
||||
patchShebangs postinstall.py
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix PATH : "${lib.makeBinPath [
|
||||
dnsutils # for dig
|
||||
iputils # for ping
|
||||
nmap # for nmap
|
||||
inetutils # for ping6, traceroute, whois
|
||||
]}"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-nettool";
|
||||
description = "A collection of networking tools";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
98
pkgs/desktops/gnome/apps/gnome-notes/default.nix
Normal file
98
pkgs/desktops/gnome/apps/gnome-notes/default.nix
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, wrapGAppsHook
|
||||
, itstool
|
||||
, desktop-file-utils
|
||||
, python3
|
||||
, glib
|
||||
, gtk3
|
||||
, evolution-data-server
|
||||
, gnome-online-accounts
|
||||
, json-glib
|
||||
, libuuid
|
||||
, curl
|
||||
, libhandy
|
||||
, webkitgtk
|
||||
, gnome
|
||||
, libxml2
|
||||
, gsettings-desktop-schemas
|
||||
, tracker
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-notes";
|
||||
version = "40.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/bijiben/${lib.versions.major version}/bijiben-${version}.tar.xz";
|
||||
sha256 = "1gvvb2klkzbmyzwkjgmscdiqcl8lyz9b0rxb4igjz079csq6z805";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61
|
||||
# data/appdata/meson.build:3:5: ERROR: Function does not take positional arguments.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-notes/-/commit/994af76ce5144062d55d141129bf6bf5fab002ee.patch";
|
||||
sha256 = "sha256-z7dPOLZzaqvdqUIDy6+V3dKossRbG0EDjBu2oJCF6b4=";
|
||||
})
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson_post_install.py
|
||||
patchShebangs build-aux/meson_post_install.py
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
json-glib
|
||||
libuuid
|
||||
curl
|
||||
libhandy
|
||||
webkitgtk
|
||||
tracker
|
||||
gnome-online-accounts
|
||||
gsettings-desktop-schemas
|
||||
evolution-data-server
|
||||
gnome.adwaita-icon-theme
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dupdate_mimedb=false"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "bijiben";
|
||||
attrPath = "gnome.gnome-notes";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Note editor designed to remain simple to use";
|
||||
homepage = "https://wiki.gnome.org/Apps/Notes";
|
||||
license = licenses.gpl3;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
60
pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
Normal file
60
pkgs/desktops/gnome/apps/gnome-power-manager/default.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ lib, stdenv
|
||||
, gettext
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, meson
|
||||
, ninja
|
||||
, upower
|
||||
, python3
|
||||
, desktop-file-utils
|
||||
, wrapGAppsHook
|
||||
, gnome }:
|
||||
|
||||
let
|
||||
pname = "gnome-power-manager";
|
||||
version = "3.32.0";
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "0drfn3wcc8l4n07qwv6p0rw2dwcd00hwzda282q62l6sasks2b2g";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
gettext
|
||||
|
||||
# needed by meson_post_install.sh
|
||||
python3
|
||||
glib.dev
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
upower
|
||||
gnome.adwaita-icon-theme
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-power-manager";
|
||||
description = "View battery and power statistics provided by UPower";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
73
pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
Normal file
73
pkgs/desktops/gnome/apps/gnome-sound-recorder/default.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gettext
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
, gjs
|
||||
, glib
|
||||
, gtk4
|
||||
, gdk-pixbuf
|
||||
, gst_all_1
|
||||
, gnome
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, desktop-file-utils
|
||||
, libadwaita
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-sound-recorder";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "TAjDFSgvPr96LabyDg/58McdqlIp/NL+C1wKqqoG8K0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
gobject-introspection
|
||||
wrapGAppsHook
|
||||
python3
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gjs
|
||||
glib
|
||||
gtk4
|
||||
gdk-pixbuf
|
||||
libadwaita
|
||||
] ++ (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad # for gstreamer-player-1.0
|
||||
]);
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson_post_install.py
|
||||
patchShebangs build-aux/meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A simple and modern sound recorder";
|
||||
homepage = "https://wiki.gnome.org/Apps/SoundRecorder";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
69
pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
Normal file
69
pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, meson
|
||||
, fetchurl
|
||||
, python3
|
||||
, pkg-config
|
||||
, gtk4
|
||||
, glib
|
||||
, gtksourceview5
|
||||
, gsettings-desktop-schemas
|
||||
, wrapGAppsHook4
|
||||
, ninja
|
||||
, gnome
|
||||
, enchant
|
||||
, icu
|
||||
, itstool
|
||||
, libadwaita
|
||||
, libxml2
|
||||
, pcre
|
||||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-text-editor";
|
||||
version = "42.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-o8hQgDO/tjqLSKBirB5nssMzugFTh5s4xmGWihA60Vw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
itstool
|
||||
libxml2 # for xmllint
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook4
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
enchant
|
||||
icu
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gtk4
|
||||
gtksourceview5
|
||||
libadwaita
|
||||
pcre
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-text-editor";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-text-editor";
|
||||
description = "A Text Editor for GNOME";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
96
pkgs/desktops/gnome/apps/gnome-todo/default.nix
Normal file
96
pkgs/desktops/gnome/apps/gnome-todo/default.nix
Normal file
|
|
@ -0,0 +1,96 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitLab
|
||||
, fetchpatch
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, gettext
|
||||
, gnome
|
||||
, glib
|
||||
, gtk4
|
||||
, wayland
|
||||
, libadwaita
|
||||
, libpeas
|
||||
, gnome-online-accounts
|
||||
, gsettings-desktop-schemas
|
||||
, libportal-gtk4
|
||||
, evolution-data-server
|
||||
, libical
|
||||
, librest
|
||||
, json-glib
|
||||
, itstool
|
||||
, unstableGitUpdater
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-todo";
|
||||
version = "unstable-2022-05-23";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = "gnome-todo";
|
||||
rev = "ac1d540de63e2540b4eb8a642054862b5793b40a";
|
||||
sha256 = "7fJOXQpapQ8RqJq5tJEWjOxnY9qExz5SbYMWFDREQlY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix build race bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257667
|
||||
(fetchpatch {
|
||||
url = "https://cgit.freebsd.org/ports/plain/deskutils/gnome-todo/files/patch-src_meson.build?id=a4faaf6cf7835014b5f69a337b544ea4ee7f9655";
|
||||
sha256 = "sha256:0ihixyq72yhx6njij7bldsqb80x3y217yh6livknlf5r1wr3hakn";
|
||||
extraPrefix = "";
|
||||
name = "gnome-todo_meson-build.patch";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
python3
|
||||
wrapGAppsHook
|
||||
itstool
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk4
|
||||
wayland # required by gtk header
|
||||
libadwaita
|
||||
libpeas
|
||||
gnome-online-accounts
|
||||
gsettings-desktop-schemas
|
||||
gnome.adwaita-icon-theme
|
||||
|
||||
# Plug-ins
|
||||
libportal-gtk4 # background
|
||||
evolution-data-server # eds
|
||||
libical
|
||||
librest # todoist
|
||||
json-glib # todoist
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/meson/meson_post_install.py
|
||||
patchShebangs build-aux/meson/meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-todo.git";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Personal task manager for GNOME";
|
||||
homepage = "https://wiki.gnome.org/Apps/Todo";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
74
pkgs/desktops/gnome/apps/gnome-weather/default.nix
Normal file
74
pkgs/desktops/gnome/apps/gnome-weather/default.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, wrapGAppsHook
|
||||
, gjs
|
||||
, gobject-introspection
|
||||
, libgweather
|
||||
, meson
|
||||
, ninja
|
||||
, geoclue2
|
||||
, python3
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-weather";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-weather/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "V57mkdhT5bs/9Q6Me0P4Wundfls6ZJ4CwlSi2bgHtGU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
meson
|
||||
ninja
|
||||
wrapGAppsHook
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
gjs
|
||||
gobject-introspection
|
||||
libgweather
|
||||
gnome.adwaita-icon-theme
|
||||
geoclue2
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# The .service file is not wrapped with the correct environment
|
||||
# so misses GIR files when started. By re-pointing from the gjs
|
||||
# entry point to the wrapped binary we get back to a wrapped
|
||||
# binary.
|
||||
substituteInPlace "data/org.gnome.Weather.service.in" \
|
||||
--replace "Exec=@DATA_DIR@/@APP_ID@" \
|
||||
"Exec=$out/bin/gnome-weather"
|
||||
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-weather";
|
||||
attrPath = "gnome.gnome-weather";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Weather";
|
||||
description = "Access current weather conditions and forecasts";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
99
pkgs/desktops/gnome/apps/polari/default.nix
Normal file
99
pkgs/desktops/gnome/apps/polari/default.nix
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, itstool
|
||||
, fetchurl
|
||||
, gdk-pixbuf
|
||||
, telepathy-glib
|
||||
, gjs
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, telepathy-idle
|
||||
, libxml2
|
||||
, desktop-file-utils
|
||||
, pkg-config
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, gtk3
|
||||
, glib
|
||||
, libsecret
|
||||
, libsoup
|
||||
, webkitgtk
|
||||
, gobject-introspection
|
||||
, appstream-glib
|
||||
, gnome
|
||||
, wrapGAppsHook4
|
||||
, telepathy-logger
|
||||
, gspell
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "polari";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "WPFbv1tCwLASPv3td1cR07DyRJl1cwlAOMpVZGHgSTw=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Upstream runs the thumbnailer by passing it to gjs.
|
||||
# If we wrap it in a shell script, gjs can no longer run it.
|
||||
# Let’s change the code to run the script directly by making it executable and having gjs in shebang.
|
||||
./make-thumbnailer-wrappable.patch
|
||||
];
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
telepathy-idle
|
||||
telepathy-logger
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
itstool
|
||||
gettext
|
||||
wrapGAppsHook4
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
gobject-introspection
|
||||
appstream-glib
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
gtk3 # for thumbnailer
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
telepathy-glib
|
||||
telepathy-logger
|
||||
gjs
|
||||
gspell
|
||||
gdk-pixbuf
|
||||
libsecret
|
||||
libsoup
|
||||
webkitgtk # for thumbnailer
|
||||
];
|
||||
|
||||
postFixup = ''
|
||||
wrapGApp "$out/share/polari/thumbnailer.js"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Polari";
|
||||
description = "IRC chat client designed to integrate with the GNOME desktop";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/src/thumbnailer.js b/src/thumbnailer.js
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index ed6350ea..83d832cb
|
||||
--- a/src/thumbnailer.js
|
||||
+++ b/src/thumbnailer.js
|
||||
@@ -1,3 +1,4 @@
|
||||
+#!/usr/bin/env gjs --module
|
||||
import Cairo from 'cairo';
|
||||
import Gdk from 'gi://Gdk?version=3.0';
|
||||
import Gio from 'gi://Gio';
|
||||
diff --git a/src/urlPreview.js b/src/urlPreview.js
|
||||
index 5f7931e4..d2282900 100644
|
||||
--- a/src/urlPreview.js
|
||||
+++ b/src/urlPreview.js
|
||||
@@ -69,7 +69,7 @@ class Thumbnailer {
|
||||
async _generateThumbnail(data) {
|
||||
let { filename, uri } = data;
|
||||
this._subProc = Gio.Subprocess.new(
|
||||
- ['gjs', '--module', `${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
|
||||
+ [`${pkg.pkgdatadir}/thumbnailer.js`, uri, filename],
|
||||
Gio.SubprocessFlags.NONE);
|
||||
try {
|
||||
await this._subProc.wait_async(null);
|
||||
101
pkgs/desktops/gnome/apps/seahorse/default.nix
Normal file
101
pkgs/desktops/gnome/apps/seahorse/default.nix
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, vala
|
||||
, meson
|
||||
, ninja
|
||||
, libpwquality
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, glib-networking
|
||||
, wrapGAppsHook
|
||||
, itstool
|
||||
, gnupg
|
||||
, libsoup
|
||||
, gnome
|
||||
, gpgme
|
||||
, python3
|
||||
, openldap
|
||||
, gcr
|
||||
, libsecret
|
||||
, avahi
|
||||
, p11-kit
|
||||
, openssh
|
||||
, gsettings-desktop-schemas
|
||||
, libhandy
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "seahorse";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-xQys6/jeen4uXx2uC5gjIRR0Epar6NVD45I9YqFT1jA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
itstool
|
||||
wrapGAppsHook
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
glib-networking
|
||||
gcr
|
||||
gsettings-desktop-schemas
|
||||
gnupg
|
||||
gpgme
|
||||
libsecret
|
||||
avahi
|
||||
libsoup
|
||||
p11-kit
|
||||
openssh
|
||||
openldap
|
||||
libpwquality
|
||||
libhandy
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs build-aux/
|
||||
'';
|
||||
|
||||
preCheck = ''
|
||||
# Add “org.gnome.crypto.pgp” GSettings schema to path
|
||||
# to make it available for “gpgme-backend” test.
|
||||
# It is used by Seahorse’s internal “common” library.
|
||||
addToSearchPath XDG_DATA_DIRS "${glib.getSchemaDataDirPath gcr}"
|
||||
# The same test also requires home directory so that it can store settings.
|
||||
export HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Pick up icons from Gcr
|
||||
--prefix XDG_DATA_DIRS : "${gcr}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Seahorse";
|
||||
description = "Application for managing encryption keys and passwords in the GnomeKeyring";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
34
pkgs/desktops/gnome/apps/vinagre/default.nix
Normal file
34
pkgs/desktops/gnome/apps/vinagre/default.nix
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome, vte, libxml2, gtk-vnc, intltool
|
||||
, libsecret, itstool, wrapGAppsHook, librsvg }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "vinagre";
|
||||
version = "3.22.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/vinagre/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "cd1cdbacca25c8d1debf847455155ee798c3e67a20903df8b228d4ece5505e82";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config intltool itstool wrapGAppsHook ];
|
||||
buildInputs = [
|
||||
gtk3 vte libxml2 gtk-vnc libsecret gnome.adwaita-icon-theme librsvg
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-Wno-format-nonliteral";
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "vinagre";
|
||||
attrPath = "gnome.vinagre";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Remote desktop viewer for GNOME";
|
||||
homepage = "https://wiki.gnome.org/Apps/Vinagre";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
44
pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
Normal file
44
pkgs/desktops/gnome/core/adwaita-icon-theme/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ lib, stdenv, fetchurl, fetchpatch, pkg-config, autoreconfHook, intltool, gnome
|
||||
, iconnamingutils, gtk3, gdk-pixbuf, librsvg, hicolor-icon-theme }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "adwaita-icon-theme";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/adwaita-icon-theme/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "XoW1rcje5maQD8rycbpxf33LnQoD2W2uCPnL0n4YseA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "reduce-build-parallelism.patch";
|
||||
url = "https://gitlab.gnome.org/vcunat/adwaita-icon-theme/-/commit/27edeca7927eb2247d7385fccb3f0fd7787471e6.patch";
|
||||
sha256 = "vDWuvz5yRhtn9obTtHRp6J7gJpXDZz1cajyquPGw53I=";
|
||||
})
|
||||
];
|
||||
|
||||
# For convenience, we can specify adwaita-icon-theme only in packages
|
||||
propagatedBuildInputs = [ hicolor-icon-theme ];
|
||||
|
||||
buildInputs = [ gdk-pixbuf librsvg ];
|
||||
|
||||
nativeBuildInputs = [ pkg-config autoreconfHook intltool iconnamingutils gtk3 ];
|
||||
|
||||
dontDropIconThemeCache = true;
|
||||
|
||||
# remove a tree of dirs with no files within
|
||||
postInstall = '' rm -rf "$out/locale" '';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "adwaita-icon-theme";
|
||||
attrPath = "gnome.adwaita-icon-theme";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
platforms = with platforms; linux ++ darwin;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
74
pkgs/desktops/gnome/core/baobab/default.nix
Normal file
74
pkgs/desktops/gnome/core/baobab/default.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, gettext
|
||||
, fetchurl
|
||||
, vala
|
||||
, desktop-file-utils
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, glib
|
||||
, libxml2
|
||||
, wrapGAppsHook4
|
||||
, itstool
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "baobab";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Sxqr5rqxWCs/6nmigpvOfyQVu25QYvJTV67t1TF6UNw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
glib
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook4
|
||||
# Prevents “error: Package `libadwaita-1' not found in specified Vala API
|
||||
# directories or GObject-Introspection GIR directories” with strictDeps,
|
||||
# even though it should only be a runtime dependency.
|
||||
libadwaita
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
libadwaita
|
||||
glib
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
# https://gitlab.gnome.org/GNOME/baobab/-/merge_requests/40
|
||||
substituteInPlace build-aux/post-install.py \
|
||||
--replace "gtk-update-icon-cache" "gtk4-update-icon-cache"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Graphical application to analyse disk usage in any GNOME environment";
|
||||
homepage = "https://wiki.gnome.org/Apps/DiskUsageAnalyzer";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
69
pkgs/desktops/gnome/core/caribou/default.nix
Normal file
69
pkgs/desktops/gnome/core/caribou/default.nix
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
{ fetchurl, lib, stdenv, pkg-config, gnome, glib, gtk3, clutter, dbus, python3, libxml2
|
||||
, libxklavier, libXtst, gtk2, intltool, libxslt, at-spi2-core, autoreconfHook
|
||||
, wrapGAppsHook, libgee, vala }:
|
||||
|
||||
let
|
||||
pname = "caribou";
|
||||
version = "0.4.21";
|
||||
pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 ] );
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "0mfychh1q3dx0b96pjz9a9y112bm9yqyim40yykzxx1hppsdjhww";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix crash in GNOME Flashback
|
||||
# https://bugzilla.gnome.org/show_bug.cgi?id=791001
|
||||
(fetchurl {
|
||||
url = "https://bugzilla.gnome.org/attachment.cgi?id=364774";
|
||||
sha256 = "15k1455grf6knlrxqbjnk7sals1730b0whj30451scp46wyvykvd";
|
||||
})
|
||||
# Stop patching the generated GIR, fixes build with latest vala
|
||||
(fetchurl {
|
||||
url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/c52ce71c49dc8d6109a58d16cc8d491d7bd1d781.patch";
|
||||
sha256 = "sha256-jbF1Ygp8Q0ENN/5aEpROuK5zkufIfn6cGW8dncl7ET4=";
|
||||
})
|
||||
(fetchurl {
|
||||
name = "fix-build-modern-vala.patch";
|
||||
url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/76fbd11575f918fc898cb0f5defe07f67c11ec38.patch";
|
||||
sha256 = "0qy27zk7889hg51nx40afgppcx9iaihxbg3aqz9w35d6fmhr2k2y";
|
||||
})
|
||||
(fetchurl {
|
||||
name = "CVE-2021-3567.patch";
|
||||
url = "https://gitlab.gnome.org/GNOME/caribou/-/commit/d41c8e44b12222a290eaca16703406b113a630c6.patch";
|
||||
sha256 = "1vd2j3823k2p3msv7fq2437p3jvxzbd7hyh07i80g9754ylh92y8";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ pkg-config intltool libxslt libxml2 autoreconfHook wrapGAppsHook vala ];
|
||||
|
||||
buildInputs = [
|
||||
glib gtk3 clutter at-spi2-core dbus pythonEnv python3.pkgs.pygobject3
|
||||
libXtst gtk2
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ libgee libxklavier ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs .
|
||||
substituteInPlace libcaribou/Makefile.am --replace "--shared-library=libcaribou.so.0" "--shared-library=$out/lib/libcaribou.so.0"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "An input assistive technology intended for switch and pointer users";
|
||||
homepage = "https://wiki.gnome.org/Projects/Caribou";
|
||||
license = licenses.lgpl21;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
82
pkgs/desktops/gnome/core/dconf-editor/default.nix
Normal file
82
pkgs/desktops/gnome/core/dconf-editor/default.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, libxslt
|
||||
, pkg-config
|
||||
, glib
|
||||
, gtk3
|
||||
, gnome
|
||||
, python3
|
||||
, dconf
|
||||
, libxml2
|
||||
, gettext
|
||||
, docbook-xsl-nons
|
||||
, wrapGAppsHook
|
||||
, gobject-introspection
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dconf-editor";
|
||||
version = "3.38.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-Vxr0x9rU8Em1PmzXKLea3fCMJ92ra8V7OW0hGGbueeM=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Look for compiled schemas in NIX_GSETTINGS_OVERRIDES_DIR
|
||||
# environment variable, to match what we patched GLib to do.
|
||||
./schema-override-variable.patch
|
||||
|
||||
# Fix build with Meson 0.61.0
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/dconf-editor/-/commit/56474378568e6ff4af8aa912810323e808c1d977.patch";
|
||||
sha256 = "iFyJcskqcmvz7tp1Z9jM9f8WvAhD0L9Vx1hu2c402MA=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
vala
|
||||
libxslt
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
gettext
|
||||
docbook-xsl-nons
|
||||
libxml2
|
||||
gobject-introspection
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
dconf
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "GSettings editor for GNOME";
|
||||
homepage = "https://wiki.gnome.org/Apps/DconfEditor";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
diff --git a/editor/source-manager.vala b/editor/source-manager.vala
|
||||
index 27b2b17a..87f7ba86 100644
|
||||
--- a/editor/source-manager.vala
|
||||
+++ b/editor/source-manager.vala
|
||||
@@ -121,6 +121,9 @@ private class SourceManager : Object
|
||||
source = try_prepend_dir (source, Path.build_filename (system_data_dirs [i], "glib-2.0", "schemas"));
|
||||
string user_data_dir = GLib.Environment.get_user_data_dir ();
|
||||
source = try_prepend_dir (source, Path.build_filename (user_data_dir, "glib-2.0", "schemas"));
|
||||
+ string? nix_var_schema_dir = GLib.Environment.get_variable ("NIX_GSETTINGS_OVERRIDES_DIR");
|
||||
+ if (nix_var_schema_dir != null)
|
||||
+ source = try_prepend_dir (source, (!) nix_var_schema_dir);
|
||||
string? var_schema_dir = GLib.Environment.get_variable ("GSETTINGS_SCHEMA_DIR");
|
||||
if (var_schema_dir != null)
|
||||
source = try_prepend_dir (source, (!) var_schema_dir);
|
||||
147
pkgs/desktops/gnome/core/empathy/default.nix
Normal file
147
pkgs/desktops/gnome/core/empathy/default.nix
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
{ lib, stdenv
|
||||
, intltool
|
||||
, fetchurl
|
||||
, webkitgtk
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, file
|
||||
, librsvg
|
||||
, gnome
|
||||
, gdk-pixbuf
|
||||
, python3
|
||||
, telepathy-glib
|
||||
, telepathy-farstream
|
||||
, clutter-gtk
|
||||
, clutter-gst
|
||||
, gst_all_1
|
||||
, cogl
|
||||
, gnome-online-accounts
|
||||
, gcr
|
||||
, libsecret
|
||||
, folks
|
||||
, libpulseaudio
|
||||
, telepathy-mission-control
|
||||
, telepathy-logger
|
||||
, libnotify
|
||||
, clutter
|
||||
, libsoup
|
||||
, gnutls
|
||||
, evolution-data-server
|
||||
, yelp-xsl
|
||||
, libcanberra-gtk3
|
||||
, p11-kit
|
||||
, farstream
|
||||
, libtool
|
||||
, shared-mime-info
|
||||
, wrapGAppsHook
|
||||
, itstool
|
||||
, libxml2
|
||||
, libxslt
|
||||
, icu
|
||||
, libgee
|
||||
, gsettings-desktop-schemas
|
||||
, isocodes
|
||||
, enchant
|
||||
, libchamplain
|
||||
, geoclue2
|
||||
, geocode-glib
|
||||
, cheese
|
||||
, libgudev
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "empathy";
|
||||
version = "3.25.90";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/empathy/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0sn10fcymc6lyrabk7vx8lpvlaxxkqnmcwj9zdkfa8qf3388k4nc";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
(folks.override { telepathySupport = true; })
|
||||
telepathy-logger
|
||||
evolution-data-server
|
||||
telepathy-mission-control
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
libtool
|
||||
intltool
|
||||
itstool
|
||||
file
|
||||
wrapGAppsHook
|
||||
libxml2
|
||||
libxslt
|
||||
yelp-xsl
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
webkitgtk
|
||||
icu
|
||||
gnome-online-accounts
|
||||
telepathy-glib
|
||||
clutter-gtk
|
||||
clutter-gst
|
||||
cogl
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gcr
|
||||
libsecret
|
||||
libpulseaudio
|
||||
gdk-pixbuf
|
||||
libnotify
|
||||
clutter
|
||||
libsoup
|
||||
gnutls
|
||||
libgee
|
||||
p11-kit
|
||||
libcanberra-gtk3
|
||||
telepathy-farstream
|
||||
farstream
|
||||
gnome.adwaita-icon-theme
|
||||
gsettings-desktop-schemas
|
||||
librsvg
|
||||
|
||||
# Spell-checking
|
||||
enchant
|
||||
isocodes
|
||||
|
||||
# Display maps, location awareness, geocode support
|
||||
libchamplain
|
||||
geoclue2
|
||||
geocode-glib
|
||||
|
||||
# Cheese webcam support, camera monitoring
|
||||
cheese
|
||||
libgudev
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "empathy";
|
||||
versionPolicy = "none";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Empathy";
|
||||
description = "Messaging program which supports text, voice, video chat, and file transfers over many different protocols";
|
||||
maintainers = teams.gnome.members;
|
||||
license = [ licenses.gpl2 ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
109
pkgs/desktops/gnome/core/eog/default.nix
Normal file
109
pkgs/desktops/gnome/core/eog/default.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, itstool
|
||||
, pkg-config
|
||||
, libxml2
|
||||
, libjpeg
|
||||
, libpeas
|
||||
, libportal-gtk3
|
||||
, gnome
|
||||
, gtk3
|
||||
, libhandy
|
||||
, glib
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-desktop
|
||||
, lcms2
|
||||
, gdk-pixbuf
|
||||
, exempi
|
||||
, shared-mime-info
|
||||
, wrapGAppsHook
|
||||
, librsvg
|
||||
, libexif
|
||||
, gobject-introspection
|
||||
, gi-docgen
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "eog";
|
||||
version = "42.2";
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-Dk1Kai7hokCui1hEnwK6LGS3+ZSQ0LiRXX9SyQpYBF4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix path to libeog.so in the gir file.
|
||||
# We patch gobject-introspection to hardcode absolute paths but
|
||||
# our Meson patch will only pass the info when install_dir is absolute as well.
|
||||
./fix-gir-lib-path.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
wrapGAppsHook
|
||||
libxml2 # for xmllint for xml-stripblanks
|
||||
gobject-introspection
|
||||
gi-docgen
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
libjpeg
|
||||
libportal-gtk3
|
||||
gtk3
|
||||
libhandy
|
||||
gdk-pixbuf
|
||||
glib
|
||||
libpeas
|
||||
librsvg
|
||||
lcms2
|
||||
gnome-desktop
|
||||
libexif
|
||||
exempi
|
||||
gsettings-desktop-schemas
|
||||
shared-mime-info
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgtk_doc=true"
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Thumbnailers
|
||||
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
|
||||
--prefix XDG_DATA_DIRS : "${librsvg}/share"
|
||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
|
||||
moveToOutput "share/doc" "$devdoc"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "GNOME image viewer";
|
||||
homepage = "https://wiki.gnome.org/Apps/EyeOfGnome";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
13
pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch
Normal file
13
pkgs/desktops/gnome/core/eog/fix-gir-lib-path.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/meson.build b/src/meson.build
|
||||
index cc9d3856..f909836d 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -165,7 +165,7 @@ libeog = shared_library(
|
||||
link_args: ldflags,
|
||||
link_depends: symbol_map,
|
||||
install: true,
|
||||
- install_dir: eog_pkglibdir,
|
||||
+ install_dir: eog_prefix / eog_pkglibdir,
|
||||
)
|
||||
|
||||
libeog_dep = declare_dependency(
|
||||
129
pkgs/desktops/gnome/core/epiphany/default.nix
Normal file
129
pkgs/desktops/gnome/core/epiphany/default.nix
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, icu
|
||||
, wrapGAppsHook
|
||||
, gnome
|
||||
, libportal-gtk3
|
||||
, libxml2
|
||||
, libxslt
|
||||
, itstool
|
||||
, webkitgtk
|
||||
, libsoup
|
||||
, glib-networking
|
||||
, libsecret
|
||||
, gnome-desktop
|
||||
, libnotify
|
||||
, libarchive
|
||||
, p11-kit
|
||||
, sqlite
|
||||
, gcr
|
||||
, isocodes
|
||||
, desktop-file-utils
|
||||
, python3
|
||||
, nettle
|
||||
, gdk-pixbuf
|
||||
, gst_all_1
|
||||
, json-glib
|
||||
, libdazzle
|
||||
, libhandy
|
||||
, buildPackages
|
||||
, withPantheon ? false
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "epiphany";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "ksAs+IbRDSzP9d5ljhpCDqsx0gu1DnRtQw6VNbSFGS0=";
|
||||
};
|
||||
|
||||
patches = lib.optionals withPantheon [
|
||||
# Pantheon specific patches for epiphany
|
||||
# https://github.com/elementary/browser
|
||||
#
|
||||
# Patch to unlink nav buttons
|
||||
# https://github.com/elementary/browser/pull/18
|
||||
(fetchpatch {
|
||||
url = "https://raw.githubusercontent.com/elementary/browser/cc17559a7ac6effe593712b4f3d0bbefde6e3b62/navigation-buttons.patch";
|
||||
sha256 = "sha256-G1/JUjn/8DyO9sgL/5Kq205KbTOs4EMi4Vf3cJ8FHXU=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
itstool
|
||||
libxslt
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
buildPackages.glib
|
||||
buildPackages.gtk3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gcr
|
||||
gdk-pixbuf
|
||||
glib
|
||||
glib-networking
|
||||
gnome-desktop
|
||||
gst_all_1.gst-libav
|
||||
gst_all_1.gst-plugins-bad
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gst-plugins-ugly
|
||||
gst_all_1.gstreamer
|
||||
gtk3
|
||||
icu
|
||||
isocodes
|
||||
json-glib
|
||||
libdazzle
|
||||
libhandy
|
||||
libportal-gtk3
|
||||
libnotify
|
||||
libarchive
|
||||
libsecret
|
||||
libsoup
|
||||
libxml2
|
||||
nettle
|
||||
p11-kit
|
||||
sqlite
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
# Tests need an X display
|
||||
mesonFlags = [
|
||||
"-Dunit_tests=disabled"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x post_install.py # patchShebangs requires executable file
|
||||
patchShebangs post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Epiphany";
|
||||
description = "WebKit based web browser for GNOME";
|
||||
maintainers = teams.gnome.members ++ teams.pantheon.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
148
pkgs/desktops/gnome/core/evince/default.nix
Normal file
148
pkgs/desktops/gnome/core/evince/default.nix
Normal file
|
|
@ -0,0 +1,148 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gettext
|
||||
, libxml2
|
||||
, appstream
|
||||
, glib
|
||||
, gtk3
|
||||
, pango
|
||||
, atk
|
||||
, gdk-pixbuf
|
||||
, shared-mime-info
|
||||
, itstool
|
||||
, gnome
|
||||
, poppler
|
||||
, ghostscriptX
|
||||
, djvulibre
|
||||
, libspectre
|
||||
, libarchive
|
||||
, libhandy
|
||||
, libsecret
|
||||
, wrapGAppsHook
|
||||
, librsvg
|
||||
, gobject-introspection
|
||||
, yelp-tools
|
||||
, gspell
|
||||
, adwaita-icon-theme
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-desktop
|
||||
, dbus
|
||||
, python3
|
||||
, texlive
|
||||
, gst_all_1
|
||||
, gi-docgen
|
||||
, supportMultimedia ? true # PDF multimedia
|
||||
, libgxps
|
||||
, supportXPS ? true # Open XML Paper Specification via libgxps
|
||||
, withLibsecret ? true
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "evince";
|
||||
version = "42.3";
|
||||
|
||||
outputs = [ "out" "dev" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/evince/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Sa7PhFyUbJbbF7qJ11yAAsWuiWP1BKmwYm0SZ1kUZF4=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream
|
||||
gettext
|
||||
gobject-introspection
|
||||
gi-docgen
|
||||
itstool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
yelp-tools
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
atk
|
||||
dbus # only needed to find the service directory
|
||||
djvulibre
|
||||
gdk-pixbuf
|
||||
ghostscriptX
|
||||
glib
|
||||
gnome-desktop
|
||||
gsettings-desktop-schemas
|
||||
gspell
|
||||
gtk3
|
||||
libarchive
|
||||
libhandy
|
||||
librsvg
|
||||
libspectre
|
||||
libxml2
|
||||
pango
|
||||
poppler
|
||||
texlive.bin.core # kpathsea for DVI support
|
||||
] ++ lib.optionals withLibsecret [
|
||||
libsecret
|
||||
] ++ lib.optionals supportXPS [
|
||||
libgxps
|
||||
] ++ lib.optionals supportMultimedia (with gst_all_1; [
|
||||
gstreamer
|
||||
gst-plugins-base
|
||||
gst-plugins-good
|
||||
gst-plugins-bad
|
||||
gst-plugins-ugly
|
||||
gst-libav
|
||||
]);
|
||||
|
||||
mesonFlags = [
|
||||
"-Dnautilus=false"
|
||||
"-Dps=enabled"
|
||||
] ++ lib.optionals (!withLibsecret) [
|
||||
"-Dkeyring=disabled"
|
||||
] ++ lib.optionals (!supportMultimedia) [
|
||||
"-Dmultimedia=disabled"
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(--prefix XDG_DATA_DIRS : "${shared-mime-info}/share")
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
|
||||
moveToOutput "share/doc" "$devdoc"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Evince";
|
||||
description = "GNOME's document viewer";
|
||||
|
||||
longDescription = ''
|
||||
Evince is a document viewer for multiple document formats. It
|
||||
currently supports PDF, PostScript, DjVu, TIFF and DVI. The goal
|
||||
of Evince is to replace the multiple document viewers that exist
|
||||
on the GNOME Desktop with a single simple application.
|
||||
'';
|
||||
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members ++ teams.pantheon.members;
|
||||
};
|
||||
}
|
||||
142
pkgs/desktops/gnome/core/evolution-data-server/default.nix
Normal file
142
pkgs/desktops/gnome/core/evolution-data-server/default.nix
Normal file
|
|
@ -0,0 +1,142 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, pkg-config
|
||||
, gnome
|
||||
, python3
|
||||
, gobject-introspection
|
||||
, gettext
|
||||
, libsoup
|
||||
, libxml2
|
||||
, libsecret
|
||||
, icu
|
||||
, sqlite
|
||||
, tzdata
|
||||
, libcanberra-gtk3
|
||||
, gcr
|
||||
, p11-kit
|
||||
, db
|
||||
, nspr
|
||||
, nss
|
||||
, libical
|
||||
, gperf
|
||||
, wrapGAppsHook
|
||||
, glib-networking
|
||||
, pcre
|
||||
, vala
|
||||
, cmake
|
||||
, ninja
|
||||
, libkrb5
|
||||
, openldap
|
||||
, webkitgtk
|
||||
, libaccounts-glib
|
||||
, json-glib
|
||||
, glib
|
||||
, gtk3
|
||||
, libphonenumber
|
||||
, gnome-online-accounts
|
||||
, libgweather
|
||||
, libgdata
|
||||
, gsettings-desktop-schemas
|
||||
, boost
|
||||
, protobuf
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "evolution-data-server";
|
||||
version = "3.44.2";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Ltcq/k1rsXD4co+uoJB/7hAhLf3nqfq4L7zIPQ8i8Cg=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit tzdata;
|
||||
})
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
substitute ${./hardcode-gsettings.patch} hardcode-gsettings.patch \
|
||||
--subst-var-by ESD_GSETTINGS_PATH ${glib.makeSchemaPath "$out" "${pname}-${version}"} \
|
||||
--subst-var-by GDS_GSETTINGS_PATH ${glib.getSchemaPath gsettings-desktop-schemas}
|
||||
patches="$patches $PWD/hardcode-gsettings.patch"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
python3
|
||||
gperf
|
||||
wrapGAppsHook
|
||||
gobject-introspection
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
libsoup
|
||||
libxml2
|
||||
gtk3
|
||||
gnome-online-accounts
|
||||
gcr
|
||||
p11-kit
|
||||
libgweather
|
||||
libgdata
|
||||
libaccounts-glib
|
||||
json-glib
|
||||
icu
|
||||
sqlite
|
||||
libkrb5
|
||||
openldap
|
||||
webkitgtk
|
||||
glib-networking
|
||||
libcanberra-gtk3
|
||||
pcre
|
||||
libphonenumber
|
||||
boost
|
||||
protobuf
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
db
|
||||
libsecret
|
||||
nss
|
||||
nspr
|
||||
libical
|
||||
libgdata # needed for GObject inspection, https://gitlab.gnome.org/GNOME/evolution-data-server/-/merge_requests/57/diffs
|
||||
libsoup
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
"-DENABLE_UOA=OFF"
|
||||
"-DENABLE_VALA_BINDINGS=ON"
|
||||
"-DENABLE_INTROSPECTION=ON"
|
||||
"-DCMAKE_SKIP_BUILD_RPATH=OFF"
|
||||
"-DINCLUDE_INSTALL_DIR=${placeholder "dev"}/include"
|
||||
"-DWITH_PHONENUMBER=ON"
|
||||
"-DWITH_GWEATHER4=ON"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "evolution-data-server";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Unified backend for programs that work with contacts, tasks, and calendar information";
|
||||
homepage = "https://wiki.gnome.org/Apps/Evolution";
|
||||
license = licenses.lgpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- a/src/calendar/libecal/e-cal-system-timezone.c
|
||||
+++ b/src/calendar/libecal/e-cal-system-timezone.c
|
||||
@@ -26,7 +26,7 @@
|
||||
#ifdef HAVE_SOLARIS
|
||||
#define SYSTEM_ZONEINFODIR "/usr/share/lib/zoneinfo/tab"
|
||||
#else
|
||||
-#define SYSTEM_ZONEINFODIR "/usr/share/zoneinfo"
|
||||
+#define SYSTEM_ZONEINFODIR "@tzdata@/share/zoneinfo"
|
||||
#endif
|
||||
|
||||
#define ETC_TIMEZONE "/etc/timezone"
|
||||
|
|
@ -0,0 +1,526 @@
|
|||
diff --git a/src/addressbook/libebook/e-book-client.c b/src/addressbook/libebook/e-book-client.c
|
||||
index 2c0557c3c..5955aa55e 100644
|
||||
--- a/src/addressbook/libebook/e-book-client.c
|
||||
+++ b/src/addressbook/libebook/e-book-client.c
|
||||
@@ -1989,7 +1989,20 @@ e_book_client_get_self (ESourceRegistry *registry,
|
||||
|
||||
*out_client = book_client;
|
||||
|
||||
- settings = g_settings_new (SELF_UID_PATH_ID);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ SELF_UID_PATH_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
uid = g_settings_get_string (settings, SELF_UID_KEY);
|
||||
g_object_unref (settings);
|
||||
|
||||
@@ -2057,7 +2070,20 @@ e_book_client_set_self (EBookClient *client,
|
||||
g_return_val_if_fail (
|
||||
e_contact_get_const (contact, E_CONTACT_UID) != NULL, FALSE);
|
||||
|
||||
- settings = g_settings_new (SELF_UID_PATH_ID);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ SELF_UID_PATH_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
g_settings_set_string (
|
||||
settings, SELF_UID_KEY,
|
||||
e_contact_get_const (contact, E_CONTACT_UID));
|
||||
@@ -2093,8 +2119,20 @@ e_book_client_is_self (EContact *contact)
|
||||
* unfortunately the API doesn't allow that.
|
||||
*/
|
||||
g_mutex_lock (&mutex);
|
||||
- if (!settings)
|
||||
- settings = g_settings_new (SELF_UID_PATH_ID);
|
||||
+ if (!settings) {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ SELF_UID_PATH_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
uid = g_settings_get_string (settings, SELF_UID_KEY);
|
||||
g_mutex_unlock (&mutex);
|
||||
|
||||
diff --git a/src/addressbook/libebook/e-book.c b/src/addressbook/libebook/e-book.c
|
||||
index 3396b57c0..ac6420b2e 100644
|
||||
--- a/src/addressbook/libebook/e-book.c
|
||||
+++ b/src/addressbook/libebook/e-book.c
|
||||
@@ -2594,7 +2594,20 @@ e_book_get_self (ESourceRegistry *registry,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
- settings = g_settings_new (SELF_UID_PATH_ID);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ SELF_UID_PATH_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
uid = g_settings_get_string (settings, SELF_UID_KEY);
|
||||
g_object_unref (settings);
|
||||
|
||||
@@ -2649,7 +2662,20 @@ e_book_set_self (EBook *book,
|
||||
g_return_val_if_fail (E_IS_BOOK (book), FALSE);
|
||||
g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
|
||||
|
||||
- settings = g_settings_new (SELF_UID_PATH_ID);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ SELF_UID_PATH_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
g_settings_set_string (
|
||||
settings, SELF_UID_KEY,
|
||||
e_contact_get_const (contact, E_CONTACT_UID));
|
||||
@@ -2677,7 +2703,20 @@ e_book_is_self (EContact *contact)
|
||||
|
||||
g_return_val_if_fail (E_IS_CONTACT (contact), FALSE);
|
||||
|
||||
- settings = g_settings_new (SELF_UID_PATH_ID);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ SELF_UID_PATH_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
uid = g_settings_get_string (settings, SELF_UID_KEY);
|
||||
g_object_unref (settings);
|
||||
|
||||
diff --git a/src/calendar/backends/contacts/e-cal-backend-contacts.c b/src/calendar/backends/contacts/e-cal-backend-contacts.c
|
||||
index de1716941..e83b104f1 100644
|
||||
--- a/src/calendar/backends/contacts/e-cal-backend-contacts.c
|
||||
+++ b/src/calendar/backends/contacts/e-cal-backend-contacts.c
|
||||
@@ -1397,7 +1397,20 @@ e_cal_backend_contacts_init (ECalBackendContacts *cbc)
|
||||
(GDestroyNotify) g_free,
|
||||
(GDestroyNotify) contact_record_free);
|
||||
|
||||
- cbc->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server.calendar",
|
||||
+ FALSE);
|
||||
+ cbc->priv->settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
cbc->priv->notifyid = 0;
|
||||
cbc->priv->update_alarms_id = 0;
|
||||
cbc->priv->alarm_enabled = FALSE;
|
||||
diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
|
||||
index b08a7f301..a49fe39c5 100644
|
||||
--- a/src/calendar/libecal/e-reminder-watcher.c
|
||||
+++ b/src/calendar/libecal/e-reminder-watcher.c
|
||||
@@ -2202,7 +2202,21 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
|
||||
|
||||
watcher->priv = G_TYPE_INSTANCE_GET_PRIVATE (watcher, E_TYPE_REMINDER_WATCHER, EReminderWatcherPrivate);
|
||||
watcher->priv->cancellable = g_cancellable_new ();
|
||||
- watcher->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server.calendar",
|
||||
+ FALSE);
|
||||
+ watcher->priv->settings = g_settings_new_full(schema, NULL,
|
||||
+ NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
watcher->priv->scheduled = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_reminder_watcher_free_rd_slist);
|
||||
watcher->priv->default_zone = icaltimezone_copy (zone);
|
||||
watcher->priv->timers_enabled = TRUE;
|
||||
diff --git a/src/camel/camel-cipher-context.c b/src/camel/camel-cipher-context.c
|
||||
index dcdc3eed0..fd2e428c2 100644
|
||||
--- a/src/camel/camel-cipher-context.c
|
||||
+++ b/src/camel/camel-cipher-context.c
|
||||
@@ -1635,7 +1635,20 @@ camel_cipher_can_load_photos (void)
|
||||
GSettings *settings;
|
||||
gboolean load_photos;
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
load_photos = g_settings_get_boolean (settings, "camel-cipher-load-photos");
|
||||
g_clear_object (&settings);
|
||||
|
||||
diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
|
||||
index 1b3362886..f0811b292 100644
|
||||
--- a/src/camel/camel-gpg-context.c
|
||||
+++ b/src/camel/camel-gpg-context.c
|
||||
@@ -573,7 +573,20 @@ gpg_ctx_get_executable_name (void)
|
||||
GSettings *settings;
|
||||
gchar *path;
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
path = g_settings_get_string (settings, "camel-gpg-binary");
|
||||
g_clear_object (&settings);
|
||||
|
||||
diff --git a/src/libedataserver/e-network-monitor.c b/src/libedataserver/e-network-monitor.c
|
||||
index e0d8b87d6..3a4d5a359 100644
|
||||
--- a/src/libedataserver/e-network-monitor.c
|
||||
+++ b/src/libedataserver/e-network-monitor.c
|
||||
@@ -255,7 +255,20 @@ e_network_monitor_constructed (GObject *object)
|
||||
/* Chain up to parent's method. */
|
||||
G_OBJECT_CLASS (e_network_monitor_parent_class)->constructed (object);
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
g_settings_bind (
|
||||
settings, "network-monitor-gio-name",
|
||||
object, "gio-name",
|
||||
diff --git a/src/libedataserver/e-oauth2-service-google.c b/src/libedataserver/e-oauth2-service-google.c
|
||||
index f0c6f2cbf..0053e3ce6 100644
|
||||
--- a/src/libedataserver/e-oauth2-service-google.c
|
||||
+++ b/src/libedataserver/e-oauth2-service-google.c
|
||||
@@ -69,7 +69,20 @@ eos_google_read_settings (EOAuth2Service *service,
|
||||
if (!value) {
|
||||
GSettings *settings;
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
value = g_settings_get_string (settings, key_name);
|
||||
g_object_unref (settings);
|
||||
|
||||
diff --git a/src/libedataserver/e-oauth2-service-outlook.c b/src/libedataserver/e-oauth2-service-outlook.c
|
||||
index 687c10d3b..684583c35 100644
|
||||
--- a/src/libedataserver/e-oauth2-service-outlook.c
|
||||
+++ b/src/libedataserver/e-oauth2-service-outlook.c
|
||||
@@ -70,7 +70,20 @@ eos_outlook_read_settings (EOAuth2Service *service,
|
||||
if (!value) {
|
||||
GSettings *settings;
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
value = g_settings_get_string (settings, key_name);
|
||||
g_object_unref (settings);
|
||||
|
||||
diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
|
||||
index 682673c16..436f52d5f 100644
|
||||
--- a/src/libedataserver/e-oauth2-service.c
|
||||
+++ b/src/libedataserver/e-oauth2-service.c
|
||||
@@ -95,7 +95,20 @@ eos_default_guess_can_process (EOAuth2Service *service,
|
||||
name_len = strlen (name);
|
||||
hostname_len = strlen (hostname);
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
values = g_settings_get_strv (settings, "oauth2-services-hint");
|
||||
g_object_unref (settings);
|
||||
|
||||
diff --git a/src/libedataserver/e-proxy.c b/src/libedataserver/e-proxy.c
|
||||
index 883379a60..989353494 100644
|
||||
--- a/src/libedataserver/e-proxy.c
|
||||
+++ b/src/libedataserver/e-proxy.c
|
||||
@@ -969,8 +969,37 @@ e_proxy_init (EProxy *proxy)
|
||||
|
||||
proxy->priv->type = PROXY_TYPE_SYSTEM;
|
||||
|
||||
- proxy->priv->evolution_proxy_settings = g_settings_new ("org.gnome.evolution.shell.network-config");
|
||||
- proxy->priv->proxy_settings = g_settings_new ("org.gnome.system.proxy");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution.shell.network-config",
|
||||
+ FALSE);
|
||||
+ proxy->priv->evolution_proxy_settings = g_settings_new_full(schema,
|
||||
+ NULL,
|
||||
+ NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@GDS_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.system.proxy",
|
||||
+ FALSE);
|
||||
+ proxy->priv->proxy_settings = g_settings_new_full(schema,
|
||||
+ NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
proxy->priv->proxy_http_settings = g_settings_get_child (proxy->priv->proxy_settings, "http");
|
||||
proxy->priv->proxy_https_settings = g_settings_get_child (proxy->priv->proxy_settings, "https");
|
||||
proxy->priv->proxy_socks_settings = g_settings_get_child (proxy->priv->proxy_settings, "socks");
|
||||
diff --git a/src/libedataserver/e-source-registry.c b/src/libedataserver/e-source-registry.c
|
||||
index a5a30a3e1..5fbdf8190 100644
|
||||
--- a/src/libedataserver/e-source-registry.c
|
||||
+++ b/src/libedataserver/e-source-registry.c
|
||||
@@ -1749,7 +1749,21 @@ e_source_registry_init (ESourceRegistry *registry)
|
||||
|
||||
g_mutex_init (®istry->priv->sources_lock);
|
||||
|
||||
- registry->priv->settings = g_settings_new (GSETTINGS_SCHEMA);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ GSETTINGS_SCHEMA,
|
||||
+ FALSE);
|
||||
+ registry->priv->settings = g_settings_new_full(schema, NULL,
|
||||
+ NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
|
||||
g_signal_connect (
|
||||
registry->priv->settings, "changed",
|
||||
diff --git a/src/libedataserverui/e-reminders-widget.c b/src/libedataserverui/e-reminders-widget.c
|
||||
index f89cd4a5c..06cca9b5f 100644
|
||||
--- a/src/libedataserverui/e-reminders-widget.c
|
||||
+++ b/src/libedataserverui/e-reminders-widget.c
|
||||
@@ -1650,7 +1650,21 @@ static void
|
||||
e_reminders_widget_init (ERemindersWidget *reminders)
|
||||
{
|
||||
reminders->priv = e_reminders_widget_get_instance_private (reminders);
|
||||
- reminders->priv->settings = g_settings_new ("org.gnome.evolution-data-server.calendar");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server.calendar",
|
||||
+ FALSE);
|
||||
+ reminders->priv->settings = g_settings_new_full(schema, NULL,
|
||||
+ NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
reminders->priv->cancellable = g_cancellable_new ();
|
||||
reminders->priv->is_empty = TRUE;
|
||||
reminders->priv->is_mapped = FALSE;
|
||||
diff --git a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
|
||||
index 6f03053d6..dffc186c7 100644
|
||||
--- a/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
|
||||
+++ b/src/services/evolution-source-registry/evolution-source-registry-autoconfig.c
|
||||
@@ -706,7 +706,20 @@ evolution_source_registry_merge_autoconfig_sources (ESourceRegistryServer *serve
|
||||
gchar *autoconfig_directory;
|
||||
gint ii;
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
|
||||
autoconfig_sources = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, e_autoconfig_free_merge_source_data);
|
||||
|
||||
diff --git a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
|
||||
index d531cb9e2..c5b1c761c 100644
|
||||
--- a/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
|
||||
+++ b/src/services/evolution-source-registry/evolution-source-registry-migrate-proxies.c
|
||||
@@ -61,7 +61,20 @@ evolution_source_registry_migrate_proxies (ESourceRegistryServer *server)
|
||||
extension_name = E_SOURCE_EXTENSION_PROXY;
|
||||
extension = e_source_get_extension (source, extension_name);
|
||||
|
||||
- settings = g_settings_new (NETWORK_CONFIG_SCHEMA_ID);
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ NETWORK_CONFIG_SCHEMA_ID,
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
|
||||
switch (g_settings_get_int (settings, "proxy-type")) {
|
||||
case 1:
|
||||
diff --git a/src/services/evolution-source-registry/evolution-source-registry.c b/src/services/evolution-source-registry/evolution-source-registry.c
|
||||
index 1c0a11382..3e144845e 100644
|
||||
--- a/src/services/evolution-source-registry/evolution-source-registry.c
|
||||
+++ b/src/services/evolution-source-registry/evolution-source-registry.c
|
||||
@@ -181,7 +181,20 @@ main (gint argc,
|
||||
|
||||
reload:
|
||||
|
||||
- settings = g_settings_new ("org.gnome.evolution-data-server");
|
||||
+ {
|
||||
+ GSettingsSchemaSource *schema_source;
|
||||
+ GSettingsSchema *schema;
|
||||
+ schema_source = g_settings_schema_source_new_from_directory("@ESD_GSETTINGS_PATH@",
|
||||
+ g_settings_schema_source_get_default(),
|
||||
+ TRUE,
|
||||
+ NULL);
|
||||
+ schema = g_settings_schema_source_lookup(schema_source,
|
||||
+ "org.gnome.evolution-data-server",
|
||||
+ FALSE);
|
||||
+ settings = g_settings_new_full(schema, NULL, NULL);
|
||||
+ g_settings_schema_source_unref(schema_source);
|
||||
+ g_settings_schema_unref(schema);
|
||||
+ }
|
||||
|
||||
if (!opt_disable_migration && !g_settings_get_boolean (settings, "migrated")) {
|
||||
g_settings_set_boolean (settings, "migrated", TRUE);
|
||||
183
pkgs/desktops/gnome/core/gdm/default.nix
Normal file
183
pkgs/desktops/gnome/core/gdm/default.nix
Normal file
|
|
@ -0,0 +1,183 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, rsync
|
||||
, pkg-config
|
||||
, glib
|
||||
, itstool
|
||||
, libxml2
|
||||
, xorg
|
||||
, accountsservice
|
||||
, libX11
|
||||
, gnome
|
||||
, systemd
|
||||
, dconf
|
||||
, gtk3
|
||||
, libcanberra-gtk3
|
||||
, pam
|
||||
, libgudev
|
||||
, libselinux
|
||||
, keyutils
|
||||
, audit
|
||||
, gobject-introspection
|
||||
, plymouth
|
||||
, librsvg
|
||||
, coreutils
|
||||
, xorgserver
|
||||
, xwayland
|
||||
, dbus
|
||||
, nixos-icons
|
||||
}:
|
||||
|
||||
let
|
||||
|
||||
override = substituteAll {
|
||||
src = ./org.gnome.login-screen.gschema.override;
|
||||
icon = "${nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake-white.svg";
|
||||
};
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gdm";
|
||||
version = "42.0";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gdm/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "oyisl2k3vsF5lx/weCmhJGuYznJBgcEorjKguketOFU=";
|
||||
};
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgdm-xsession=true"
|
||||
# TODO: Setup a default-path? https://gitlab.gnome.org/GNOME/gdm/-/blob/6fc40ac6aa37c8ad87c32f0b1a5d813d34bf7770/meson_options.txt#L6
|
||||
"-Dinitial-vt=${passthru.initialVT}"
|
||||
"-Dudev-dir=${placeholder "out"}/lib/udev/rules.d"
|
||||
"-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
|
||||
"-Dsystemduserunitdir=${placeholder "out"}/lib/systemd/user"
|
||||
"--sysconfdir=/etc"
|
||||
"--localstatedir=/var"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
dconf
|
||||
glib # for glib-compile-schemas
|
||||
itstool
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
rsync
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
audit
|
||||
glib
|
||||
gobject-introspection
|
||||
gtk3
|
||||
keyutils
|
||||
libX11
|
||||
libcanberra-gtk3
|
||||
libgudev
|
||||
libselinux
|
||||
pam
|
||||
plymouth
|
||||
systemd
|
||||
xorg.libXdmcp
|
||||
];
|
||||
|
||||
patches = [
|
||||
# GDM fails to find g-s with the following error in the journal.
|
||||
# gdm-x-session[976]: dbus-run-session: failed to exec 'gnome-session': No such file or directory
|
||||
# https://gitlab.gnome.org/GNOME/gdm/-/merge_requests/92
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gdm/-/commit/ccecd9c975d04da80db4cd547b67a1a94fa83292.patch";
|
||||
sha256 = "5hKS9wjjhuSAYwXct5vS0dPbmPRIINJoLC0Zm1naz6Q=";
|
||||
revert = true;
|
||||
})
|
||||
|
||||
# Change hardcoded paths to nix store paths.
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit coreutils plymouth xorgserver xwayland dbus;
|
||||
})
|
||||
|
||||
# The following patches implement certain environment variables in GDM which are set by
|
||||
# the gdm configuration module (nixos/modules/services/x11/display-managers/gdm.nix).
|
||||
|
||||
./gdm-x-session_extra_args.patch
|
||||
|
||||
# Allow specifying a wrapper for running the session command.
|
||||
./gdm-x-session_session-wrapper.patch
|
||||
|
||||
# Forwards certain environment variables to the gdm-x-session child process
|
||||
# to ensure that the above two patches actually work.
|
||||
./gdm-session-worker_forward-vars.patch
|
||||
|
||||
# Set up the environment properly when launching sessions
|
||||
# https://github.com/NixOS/nixpkgs/issues/48255
|
||||
./reset-environment.patch
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs build-aux/meson_post_install.py
|
||||
|
||||
# Upstream checks some common paths to find an `X` binary. We already know it.
|
||||
echo #!/bin/sh > build-aux/find-x-server.sh
|
||||
echo "echo ${lib.getBin xorg.xorgserver}/bin/X" >> build-aux/find-x-server.sh
|
||||
patchShebangs build-aux/find-x-server.sh
|
||||
'';
|
||||
|
||||
preInstall = ''
|
||||
install -D ${override} ${DESTDIR}/$out/share/glib-2.0/schemas/org.gnome.login-screen.gschema.override
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# Move stuff from DESTDIR to proper location.
|
||||
# We use rsync to merge the directories.
|
||||
rsync --archive "${DESTDIR}/etc" "$out"
|
||||
rm --recursive "${DESTDIR}/etc"
|
||||
for o in $outputs; do
|
||||
rsync --archive "${DESTDIR}/''${!o}" "$(dirname "''${!o}")"
|
||||
rm --recursive "${DESTDIR}/''${!o}"
|
||||
done
|
||||
# Ensure the DESTDIR is removed.
|
||||
rmdir "${DESTDIR}/nix/store" "${DESTDIR}/nix" "${DESTDIR}"
|
||||
|
||||
# We are setting DESTDIR so the post-install script does not compile the schemas.
|
||||
glib-compile-schemas "$out/share/glib-2.0/schemas"
|
||||
'';
|
||||
|
||||
# HACK: We want to install configuration files to $out/etc
|
||||
# but GDM should read them from /etc on a NixOS system.
|
||||
# With autotools, it was possible to override Make variables
|
||||
# at install time but Meson does not support this
|
||||
# so we need to convince it to install all files to a temporary
|
||||
# location using DESTDIR and then move it to proper one in postInstall.
|
||||
DESTDIR = "${placeholder "out"}/dest";
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gdm";
|
||||
attrPath = "gnome.gdm";
|
||||
};
|
||||
|
||||
# Used in GDM NixOS module
|
||||
# Don't remove.
|
||||
initialVT = "7";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A program that manages graphical display servers and handles graphical user logins";
|
||||
homepage = "https://wiki.gnome.org/Projects/GDM";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
93
pkgs/desktops/gnome/core/gdm/fix-paths.patch
Normal file
93
pkgs/desktops/gnome/core/gdm/fix-paths.patch
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
diff --git a/daemon/gdm-local-display-factory.c b/daemon/gdm-local-display-factory.c
|
||||
index 5fbbad68..739718ec 100644
|
||||
--- a/daemon/gdm-local-display-factory.c
|
||||
+++ b/daemon/gdm-local-display-factory.c
|
||||
@@ -233,9 +233,9 @@ struct GdmDisplayServerConfiguration {
|
||||
const char *session_type;
|
||||
} display_server_configuration[] = {
|
||||
#ifdef ENABLE_WAYLAND_SUPPORT
|
||||
- { "wayland", GDM_KEY_WAYLAND_ENABLE, "/usr/bin/Xwayland", "wayland" },
|
||||
+ { "wayland", GDM_KEY_WAYLAND_ENABLE, "@xwayland@/bin/Xwayland", "wayland" },
|
||||
#endif
|
||||
- { "xorg", GDM_KEY_XORG_ENABLE, "/usr/bin/Xorg", "x11" },
|
||||
+ { "xorg", GDM_KEY_XORG_ENABLE, "@xorgserver@/bin/Xorg", "x11" },
|
||||
{ NULL, NULL, NULL },
|
||||
};
|
||||
|
||||
diff --git a/daemon/gdm-manager.c b/daemon/gdm-manager.c
|
||||
index cc61efc9..4c9d15af 100644
|
||||
--- a/daemon/gdm-manager.c
|
||||
+++ b/daemon/gdm-manager.c
|
||||
@@ -148,7 +148,7 @@ plymouth_is_running (void)
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
- res = g_spawn_command_line_sync ("plymouth --ping",
|
||||
+ res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth --ping",
|
||||
NULL, NULL, &status, &error);
|
||||
if (! res) {
|
||||
g_debug ("Could not ping plymouth: %s", error->message);
|
||||
@@ -166,7 +166,7 @@ plymouth_prepare_for_transition (void)
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
- res = g_spawn_command_line_sync ("plymouth deactivate",
|
||||
+ res = g_spawn_command_line_sync ("@plymouth@/bin/plymouth deactivate",
|
||||
NULL, NULL, NULL, &error);
|
||||
if (! res) {
|
||||
g_warning ("Could not deactivate plymouth: %s", error->message);
|
||||
@@ -181,7 +181,7 @@ plymouth_quit_with_transition (void)
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
- res = g_spawn_command_line_async ("plymouth quit --retain-splash", &error);
|
||||
+ res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit --retain-splash", &error);
|
||||
if (! res) {
|
||||
g_warning ("Could not quit plymouth: %s", error->message);
|
||||
g_error_free (error);
|
||||
@@ -197,7 +197,7 @@ plymouth_quit_without_transition (void)
|
||||
GError *error;
|
||||
|
||||
error = NULL;
|
||||
- res = g_spawn_command_line_async ("plymouth quit", &error);
|
||||
+ res = g_spawn_command_line_async ("@plymouth@/bin/plymouth quit", &error);
|
||||
if (! res) {
|
||||
g_warning ("Could not quit plymouth: %s", error->message);
|
||||
g_error_free (error);
|
||||
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c
|
||||
index 4b709731..245ac0cf 100644
|
||||
--- a/daemon/gdm-session.c
|
||||
+++ b/daemon/gdm-session.c
|
||||
@@ -2972,16 +2972,16 @@ gdm_session_start_session (GdmSession *self,
|
||||
*/
|
||||
if (run_launcher) {
|
||||
if (is_x11) {
|
||||
- program = g_strdup_printf (LIBEXECDIR "/gdm-x-session %s\"dbus-run-session -- %s\"",
|
||||
+ program = g_strdup_printf (LIBEXECDIR "/gdm-x-session %s\"@dbus@/bin/dbus-run-session --dbus-daemon=@dbus@/bin/dbus-daemon -- %s\"",
|
||||
register_session ? "--register-session " : "",
|
||||
self->selected_program);
|
||||
} else {
|
||||
- program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"dbus-run-session -- %s\"",
|
||||
+ program = g_strdup_printf (LIBEXECDIR "/gdm-wayland-session %s\"@dbus@/bin/dbus-run-session --dbus-daemon=@dbus@/bin/dbus-daemon -- %s\"",
|
||||
register_session ? "--register-session " : "",
|
||||
self->selected_program);
|
||||
}
|
||||
} else {
|
||||
- program = g_strdup_printf ("dbus-run-session -- %s",
|
||||
+ program = g_strdup_printf ("@dbus@/bin/dbus-run-session --dbus-daemon=@dbus@/bin/dbus-daemon -- %s",
|
||||
self->selected_program);
|
||||
}
|
||||
}
|
||||
diff --git a/data/gdm.service.in b/data/gdm.service.in
|
||||
index 17e8a8de..afc70977 100644
|
||||
--- a/data/gdm.service.in
|
||||
+++ b/data/gdm.service.in
|
||||
@@ -26,7 +26,7 @@ Restart=always
|
||||
IgnoreSIGPIPE=no
|
||||
BusName=org.gnome.DisplayManager
|
||||
EnvironmentFile=-${LANG_CONFIG_FILE}
|
||||
-ExecReload=/bin/kill -SIGHUP $MAINPID
|
||||
+ExecReload=@coreutils@/bin/kill -SIGHUP $MAINPID
|
||||
KeyringMode=shared
|
||||
|
||||
[Install]
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/daemon/gdm-session-worker.c b/daemon/gdm-session-worker.c
|
||||
index 9ef4c5b..94da834 100644
|
||||
--- a/daemon/gdm-session-worker.c
|
||||
+++ b/daemon/gdm-session-worker.c
|
||||
@@ -1515,6 +1515,16 @@ gdm_session_worker_load_env_d (GdmSessionWorker *worker)
|
||||
g_object_unref (dir);
|
||||
}
|
||||
|
||||
+static void
|
||||
+gdm_session_worker_forward_var (GdmSessionWorker *worker, char const *var)
|
||||
+{
|
||||
+ char const *value = g_getenv(var);
|
||||
+ if (value != NULL) {
|
||||
+ g_debug ("forwarding %s= %s", var, value);
|
||||
+ gdm_session_worker_set_environment_variable(worker, var, value);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
gdm_session_worker_accredit_user (GdmSessionWorker *worker,
|
||||
GError **error)
|
||||
@@ -1559,6 +1569,9 @@ gdm_session_worker_accredit_user (GdmSessionWorker *worker,
|
||||
goto out;
|
||||
}
|
||||
|
||||
+ gdm_session_worker_forward_var(worker, "GDM_X_SERVER_EXTRA_ARGS");
|
||||
+ gdm_session_worker_forward_var(worker, "GDM_X_SESSION_WRAPPER");
|
||||
+
|
||||
gdm_session_worker_update_environment_from_passwd_info (worker,
|
||||
uid,
|
||||
gid,
|
||||
38
pkgs/desktops/gnome/core/gdm/gdm-x-session_extra_args.patch
Normal file
38
pkgs/desktops/gnome/core/gdm/gdm-x-session_extra_args.patch
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
diff --git a/daemon/gdm-x-session.c.orig b/daemon/gdm-x-session.c
|
||||
index d835b34..1f4b7f1 100644
|
||||
--- a/daemon/gdm-x-session.c.orig
|
||||
+++ b/daemon/gdm-x-session.c
|
||||
@@ -211,6 +211,7 @@ spawn_x_server (State *state,
|
||||
char *vt_string = NULL;
|
||||
char *display_number;
|
||||
gsize display_number_size;
|
||||
+ gchar **xserver_extra_args = NULL;
|
||||
|
||||
auth_file = prepare_auth_file ();
|
||||
|
||||
@@ -285,6 +286,17 @@ spawn_x_server (State *state,
|
||||
if (state->debug_enabled) {
|
||||
g_ptr_array_add (arguments, "-core");
|
||||
}
|
||||
+
|
||||
+ if (g_getenv ("GDM_X_SERVER_EXTRA_ARGS") != NULL) {
|
||||
+ g_debug ("using GDM_X_SERVER_EXTRA_ARGS: %s", g_getenv("GDM_X_SERVER_EXTRA_ARGS"));
|
||||
+ xserver_extra_args = g_strsplit(g_getenv("GDM_X_SERVER_EXTRA_ARGS"), " ", -1);
|
||||
+ for (gchar **extra_arg = xserver_extra_args; *extra_arg; extra_arg++) {
|
||||
+ if (strlen(*extra_arg) < 1) continue;
|
||||
+ g_debug ("adding: %s", *extra_arg);
|
||||
+ g_ptr_array_add (arguments, *extra_arg);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
g_ptr_array_add (arguments, NULL);
|
||||
|
||||
subprocess = g_subprocess_launcher_spawnv (launcher,
|
||||
@@ -332,6 +344,7 @@ spawn_x_server (State *state,
|
||||
|
||||
is_running = TRUE;
|
||||
out:
|
||||
+ g_strfreev(xserver_extra_args);
|
||||
g_clear_pointer (&auth_file, g_free);
|
||||
g_clear_object (&data_stream);
|
||||
g_clear_object (&subprocess);
|
||||
|
|
@ -0,0 +1,40 @@
|
|||
diff --git a/daemon/gdm-x-session.c b/daemon/gdm-x-session.c
|
||||
index 88fe96f..b1b140a 100644
|
||||
--- a/daemon/gdm-x-session.c
|
||||
+++ b/daemon/gdm-x-session.c
|
||||
@@ -664,18 +664,34 @@ spawn_session (State *state,
|
||||
state->session_command,
|
||||
NULL);
|
||||
} else {
|
||||
+ char const *session_wrapper;
|
||||
+ char *eff_session_command;
|
||||
int ret;
|
||||
char **argv;
|
||||
|
||||
- ret = g_shell_parse_argv (state->session_command,
|
||||
+ session_wrapper = g_getenv("GDM_X_SESSION_WRAPPER");
|
||||
+ if (session_wrapper != NULL) {
|
||||
+ char *quoted_wrapper = g_shell_quote(session_wrapper);
|
||||
+ eff_session_command = g_strjoin(" ", quoted_wrapper, state->session_command, NULL);
|
||||
+ g_free(quoted_wrapper);
|
||||
+ } else {
|
||||
+ eff_session_command = state->session_command;
|
||||
+ }
|
||||
+
|
||||
+ ret = g_shell_parse_argv (eff_session_command,
|
||||
NULL,
|
||||
&argv,
|
||||
&error);
|
||||
|
||||
+ if (session_wrapper != NULL) {
|
||||
+ g_free(eff_session_command);
|
||||
+ }
|
||||
+
|
||||
if (!ret) {
|
||||
g_debug ("could not parse session arguments: %s", error->message);
|
||||
goto out;
|
||||
}
|
||||
+
|
||||
subprocess = g_subprocess_launcher_spawnv (launcher,
|
||||
(const char * const *) argv,
|
||||
&error);
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
[org.gnome.login-screen]
|
||||
logo='@icon@'
|
||||
20
pkgs/desktops/gnome/core/gdm/reset-environment.patch
Normal file
20
pkgs/desktops/gnome/core/gdm/reset-environment.patch
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
--- a/daemon/gdm-wayland-session.c
|
||||
+++ b/daemon/gdm-wayland-session.c
|
||||
@@ -285,6 +285,7 @@ spawn_session (State *state,
|
||||
"WAYLAND_DISPLAY",
|
||||
"WAYLAND_SOCKET",
|
||||
"GNOME_SHELL_SESSION_MODE",
|
||||
+ "__NIXOS_SET_ENVIRONMENT_DONE",
|
||||
NULL };
|
||||
|
||||
g_debug ("Running wayland session");
|
||||
--- a/daemon/gdm-x-session.c
|
||||
+++ b/daemon/gdm-x-session.c
|
||||
@@ -610,6 +610,7 @@ spawn_session (State *state,
|
||||
"WAYLAND_DISPLAY",
|
||||
"WAYLAND_SOCKET",
|
||||
"GNOME_SHELL_SESSION_MODE",
|
||||
+ "__NIXOS_SET_ENVIRONMENT_DONE",
|
||||
NULL };
|
||||
|
||||
g_debug ("Running X session");
|
||||
44
pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
Normal file
44
pkgs/desktops/gnome/core/gnome-backgrounds/default.nix
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-backgrounds";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-backgrounds/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "TH/hoJ9FnF93GJpZglJPzgXYiJRJVdZ5kQ8jRgbBKV0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Makes the database point to stable paths in /run/current-system/sw/share, which don't decay whenever this package's hash changes.
|
||||
# This assumes a nixos + gnome system, where this package is installed in environment.systemPackages,
|
||||
# and /share outputs are included in environment.pathsToLink.
|
||||
./stable-dir.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-backgrounds";
|
||||
attrPath = "gnome.gnome-backgrounds";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Default wallpaper set for GNOME";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-backgrounds";
|
||||
license = licenses.cc-by-sa-30;
|
||||
platforms = platforms.unix;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,9 @@
|
|||
diff --git a/backgrounds/meson.build b/backgrounds/meson.build
|
||||
index 2175a16..cf521df 100644
|
||||
--- a/backgrounds/meson.build
|
||||
+++ b/backgrounds/meson.build
|
||||
@@ -1,5 +1,5 @@
|
||||
dataconf = configuration_data()
|
||||
-dataconf.set('BACKGROUNDDIR', backgrounddir)
|
||||
+dataconf.set('BACKGROUNDDIR', '/run/current-system/sw/share/backgrounds/gnome')
|
||||
dataconf.set('datadir', datadir)
|
||||
97
pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
Normal file
97
pkgs/desktops/gnome/core/gnome-bluetooth/1.0/default.nix
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, gnome
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, gettext
|
||||
, glib
|
||||
, udev
|
||||
, itstool
|
||||
, libxml2
|
||||
, wrapGAppsHook
|
||||
, libnotify
|
||||
, libcanberra-gtk3
|
||||
, gobject-introspection
|
||||
, gtk-doc
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_43
|
||||
, python3
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-bluetooth";
|
||||
version = "3.34.5";
|
||||
|
||||
# TODO: split out "lib"
|
||||
outputs = [ "out" "dev" "devdoc" "man" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "bJSeUsi+zCBU2qzWBJAfZs5c9wml+pHEu3ysyTm1Pqk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61.
|
||||
# sendto/meson.build:24:5: ERROR: Function does not take positional arguments.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-bluetooth/-/commit/755fd758f866d3a3f7ca482942beee749f13a91e.patch";
|
||||
sha256 = "sha256-N0MJ0pYO411o2CTNZHWmEoG2m5TGUjR6YW6HSXHTR/A=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
itstool
|
||||
pkg-config
|
||||
libxml2
|
||||
wrapGAppsHook
|
||||
gobject-introspection
|
||||
gtk-doc
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_43
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
udev
|
||||
libnotify
|
||||
libcanberra-gtk3
|
||||
gnome.adwaita-icon-theme
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dicon_update=false"
|
||||
"-Dgtk_doc=true"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.gnome-bluetooth_1_0";
|
||||
freeze = true;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://help.gnome.org/users/gnome-bluetooth/stable/index.html.en";
|
||||
description = "Application that let you manage Bluetooth in the GNOME destkop";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
83
pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
Normal file
83
pkgs/desktops/gnome/core/gnome-bluetooth/default.nix
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, gnome
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, gettext
|
||||
, glib
|
||||
, udev
|
||||
, upower
|
||||
, itstool
|
||||
, libxml2
|
||||
, wrapGAppsHook
|
||||
, libnotify
|
||||
, gsound
|
||||
, gobject-introspection
|
||||
, gtk-doc
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_43
|
||||
, python3
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-bluetooth";
|
||||
version = "42.0";
|
||||
|
||||
# TODO: split out "lib"
|
||||
outputs = [ "out" "dev" "devdoc" "man" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "PR4nIGc7yaJCYZ3F0jH9bndsGKSdop9DzcQzBVrbAXA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
itstool
|
||||
pkg-config
|
||||
libxml2
|
||||
wrapGAppsHook
|
||||
gobject-introspection
|
||||
gtk-doc
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_43
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk4
|
||||
libadwaita
|
||||
udev
|
||||
upower
|
||||
libnotify
|
||||
gsound
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgtk_doc=true"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-bluetooth";
|
||||
description = "Application that lets you manage Bluetooth in the GNOME desktop";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
81
pkgs/desktops/gnome/core/gnome-calculator/default.nix
Normal file
81
pkgs/desktops/gnome/core/gnome-calculator/default.nix
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, meson
|
||||
, ninja
|
||||
, vala
|
||||
, gettext
|
||||
, itstool
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, libxml2
|
||||
, gtk4
|
||||
, glib
|
||||
, gtksourceview5
|
||||
, wrapGAppsHook
|
||||
, gobject-introspection
|
||||
, gnome
|
||||
, mpfr
|
||||
, gmp
|
||||
, libsoup
|
||||
, libmpc
|
||||
, libadwaita
|
||||
, gsettings-desktop-schemas
|
||||
, libgee
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-calculator";
|
||||
version = "42.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-calculator/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "700k5Cpl3IYOYgbztHC30jPCripNSWXYhZqp6oo5Ws0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
gettext
|
||||
itstool
|
||||
wrapGAppsHook
|
||||
gobject-introspection # for finding vapi files
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
glib
|
||||
libxml2
|
||||
gtksourceview5
|
||||
mpfr
|
||||
gmp
|
||||
libgee
|
||||
gsettings-desktop-schemas
|
||||
libsoup
|
||||
libmpc
|
||||
libadwaita
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
preCheck = ''
|
||||
# Currency conversion test tries to store currency data in $HOME/.cache.
|
||||
export HOME=$TMPDIR
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-calculator";
|
||||
attrPath = "gnome.gnome-calculator";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Calculator";
|
||||
description = "Application that solves mathematical equations and is suitable as a default application in a Desktop environment";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
66
pkgs/desktops/gnome/core/gnome-color-manager/default.nix
Normal file
66
pkgs/desktops/gnome/core/gnome-color-manager/default.nix
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gettext
|
||||
, itstool
|
||||
, desktop-file-utils
|
||||
, gnome
|
||||
, glib
|
||||
, gtk3
|
||||
, libexif
|
||||
, libtiff
|
||||
, colord
|
||||
, colord-gtk
|
||||
, libcanberra-gtk3
|
||||
, lcms2
|
||||
, vte
|
||||
, exiv2
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-color-manager";
|
||||
version = "3.32.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1vpxa2zjz3lkq9ldjg0fl65db9s6b4kcs8nyaqfz3jygma7ifg3w";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
libexif
|
||||
libtiff
|
||||
colord
|
||||
colord-gtk
|
||||
libcanberra-gtk3
|
||||
lcms2
|
||||
vte
|
||||
exiv2
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A set of graphical utilities for color management to be used in the GNOME desktop";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
27
pkgs/desktops/gnome/core/gnome-common/default.nix
Normal file
27
pkgs/desktops/gnome/core/gnome-common/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchurl, which, gnome, autoconf, automake }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-common";
|
||||
version = "3.18.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-common/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "22569e370ae755e04527b76328befc4c73b62bfd4a572499fde116b8318af8cf";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript { packageName = "gnome-common"; attrPath = "gnome.gnome-common"; };
|
||||
};
|
||||
|
||||
patches = [(fetchurl {
|
||||
name = "gnome-common-patch";
|
||||
url = "https://bug697543.bugzilla-attachments.gnome.org/attachment.cgi?id=240935";
|
||||
sha256 = "17abp7czfzirjm7qsn2czd03hdv9kbyhk3lkjxg2xsf5fky7z7jl";
|
||||
})];
|
||||
|
||||
propagatedBuildInputs = [ which autoconf automake ]; # autogen.sh which is using gnome-common tends to require which
|
||||
|
||||
meta = with lib; {
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
83
pkgs/desktops/gnome/core/gnome-contacts/default.nix
Normal file
83
pkgs/desktops/gnome/core/gnome-contacts/default.nix
Normal file
|
|
@ -0,0 +1,83 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, gettext
|
||||
, fetchurl
|
||||
, evolution-data-server
|
||||
, pkg-config
|
||||
, libxslt
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_42
|
||||
, desktop-file-utils
|
||||
, gtk4
|
||||
, glib
|
||||
, libportal
|
||||
, gnome-desktop
|
||||
, gnome-online-accounts
|
||||
, wrapGAppsHook
|
||||
, folks
|
||||
, libgdata
|
||||
, libxml2
|
||||
, gnome
|
||||
, vala
|
||||
, meson
|
||||
, ninja
|
||||
, libadwaita
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-contacts";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-contacts/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "iALDj9wj9SjawSj1O9zx9sow4OHGhIxCzWyEpeIsUhY=";
|
||||
};
|
||||
|
||||
propagatedUserEnvPkgs = [
|
||||
evolution-data-server
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
gettext
|
||||
libxslt
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_42
|
||||
desktop-file-utils
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
glib
|
||||
libportal
|
||||
evolution-data-server
|
||||
gsettings-desktop-schemas
|
||||
folks
|
||||
gnome-desktop
|
||||
libadwaita
|
||||
libxml2
|
||||
gnome-online-accounts
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-contacts";
|
||||
attrPath = "gnome.gnome-contacts";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Contacts";
|
||||
description = "GNOME’s integrated address book";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
180
pkgs/desktops/gnome/core/gnome-control-center/default.nix
Normal file
180
pkgs/desktops/gnome/core/gnome-control-center/default.nix
Normal file
|
|
@ -0,0 +1,180 @@
|
|||
{ fetchurl
|
||||
, lib
|
||||
, stdenv
|
||||
, substituteAll
|
||||
, accountsservice
|
||||
, adwaita-icon-theme
|
||||
, colord
|
||||
, colord-gtk4
|
||||
, cups
|
||||
, docbook-xsl-nons
|
||||
, fontconfig
|
||||
, gdk-pixbuf
|
||||
, gettext
|
||||
, glib
|
||||
, glib-networking
|
||||
, gcr
|
||||
, glibc
|
||||
, gnome-bluetooth
|
||||
, gnome-color-manager
|
||||
, gnome-desktop
|
||||
, gnome-online-accounts
|
||||
, gnome-settings-daemon
|
||||
, gnome
|
||||
, gsettings-desktop-schemas
|
||||
, gsound
|
||||
, gtk4
|
||||
, ibus
|
||||
, libgnomekbd
|
||||
, libgtop
|
||||
, libgudev
|
||||
, libadwaita
|
||||
, libkrb5
|
||||
, libpulseaudio
|
||||
, libpwquality
|
||||
, librsvg
|
||||
, libsecret
|
||||
, libwacom
|
||||
, libxml2
|
||||
, libxslt
|
||||
, meson
|
||||
, modemmanager
|
||||
, mutter
|
||||
, networkmanager
|
||||
, networkmanagerapplet
|
||||
, libnma-gtk4
|
||||
, ninja
|
||||
, pkg-config
|
||||
, polkit
|
||||
, python3
|
||||
, samba
|
||||
, shared-mime-info
|
||||
, sound-theme-freedesktop
|
||||
, tracker
|
||||
, tracker-miners
|
||||
, tzdata
|
||||
, udisks2
|
||||
, upower
|
||||
, libepoxy
|
||||
, gnome-user-share
|
||||
, gnome-remote-desktop
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-control-center";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-eLolewn73cBYh5F00Tg3p5zVnpWoSQEX5Myi5SLJ6wA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./paths.patch;
|
||||
gcm = gnome-color-manager;
|
||||
gnome_desktop = gnome-desktop;
|
||||
inherit glibc libgnomekbd tzdata;
|
||||
inherit cups networkmanagerapplet;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
docbook-xsl-nons
|
||||
gettext
|
||||
libxslt
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
shared-mime-info
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
adwaita-icon-theme
|
||||
colord
|
||||
colord-gtk4
|
||||
libepoxy
|
||||
fontconfig
|
||||
gdk-pixbuf
|
||||
glib
|
||||
glib-networking
|
||||
gcr
|
||||
gnome-bluetooth
|
||||
gnome-desktop
|
||||
gnome-online-accounts
|
||||
gnome-remote-desktop # optional, sharing panel
|
||||
gnome-settings-daemon
|
||||
gnome-user-share # optional, sharing panel
|
||||
gsettings-desktop-schemas
|
||||
gsound
|
||||
gtk4
|
||||
ibus
|
||||
libgtop
|
||||
libgudev
|
||||
libadwaita
|
||||
libkrb5
|
||||
libnma-gtk4
|
||||
libpulseaudio
|
||||
libpwquality
|
||||
librsvg
|
||||
libsecret
|
||||
libwacom
|
||||
libxml2
|
||||
modemmanager
|
||||
mutter # schemas for the keybindings
|
||||
networkmanager
|
||||
polkit
|
||||
samba
|
||||
tracker
|
||||
tracker-miners # for search locations dialog
|
||||
udisks2
|
||||
upower
|
||||
];
|
||||
|
||||
# postPatch = ''
|
||||
# scriptsToPatch=(
|
||||
# build-aux/meson/meson_post_install.py
|
||||
# build-aux/meson/find_xdg_file.py
|
||||
# )
|
||||
# # # patchShebangs requires executable file
|
||||
# # chmod +x "''${scriptsToPatch[@]}"
|
||||
# # patchShebangs "''${scriptsToPatch[@]}"
|
||||
# '';
|
||||
|
||||
preConfigure = ''
|
||||
# For ITS rules
|
||||
addToSearchPath "XDG_DATA_DIRS" "${polkit.out}/share"
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix XDG_DATA_DIRS : "${sound-theme-freedesktop}/share"
|
||||
# Thumbnailers (for setting user profile pictures)
|
||||
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
|
||||
--prefix XDG_DATA_DIRS : "${librsvg}/share"
|
||||
# WM keyboard shortcuts
|
||||
--prefix XDG_DATA_DIRS : "${mutter}/share"
|
||||
)
|
||||
for i in $out/share/applications/*; do
|
||||
substituteInPlace $i --replace "Exec=gnome-control-center" "Exec=$out/bin/gnome-control-center"
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Utilities to configure the GNOME desktop";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
194
pkgs/desktops/gnome/core/gnome-control-center/paths.patch
Normal file
194
pkgs/desktops/gnome/core/gnome-control-center/paths.patch
Normal file
|
|
@ -0,0 +1,194 @@
|
|||
diff --git a/panels/color/cc-color-panel.c b/panels/color/cc-color-panel.c
|
||||
index 603178efc..c363a6a5c 100644
|
||||
--- a/panels/color/cc-color-panel.c
|
||||
+++ b/panels/color/cc-color-panel.c
|
||||
@@ -591,7 +591,7 @@ gcm_prefs_calibrate_cb (CcColorPanel *prefs)
|
||||
|
||||
/* run with modal set */
|
||||
argv = g_ptr_array_new_with_free_func (g_free);
|
||||
- g_ptr_array_add (argv, g_strdup ("gcm-calibrate"));
|
||||
+ g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-calibrate", NULL));
|
||||
g_ptr_array_add (argv, g_strdup ("--device"));
|
||||
g_ptr_array_add (argv, g_strdup (cd_device_get_id (prefs->current_device)));
|
||||
g_ptr_array_add (argv, g_strdup ("--parent-window"));
|
||||
@@ -1029,7 +1029,7 @@ gcm_prefs_profile_view (CcColorPanel *prefs, CdProfile *profile)
|
||||
|
||||
/* open up gcm-viewer as a info pane */
|
||||
argv = g_ptr_array_new_with_free_func (g_free);
|
||||
- g_ptr_array_add (argv, g_strdup ("gcm-viewer"));
|
||||
+ g_ptr_array_add (argv, g_build_filename ("@gcm@", "bin", "gcm-viewer", NULL));
|
||||
g_ptr_array_add (argv, g_strdup ("--profile"));
|
||||
g_ptr_array_add (argv, g_strdup (cd_profile_get_id (profile)));
|
||||
g_ptr_array_add (argv, g_strdup ("--parent-window"));
|
||||
@@ -1275,15 +1275,12 @@ gcm_prefs_device_clicked (CcColorPanel *prefs, CdDevice *device)
|
||||
static void
|
||||
gcm_prefs_profile_clicked (CcColorPanel *prefs, CdProfile *profile, CdDevice *device)
|
||||
{
|
||||
- g_autofree gchar *s = NULL;
|
||||
-
|
||||
/* get profile */
|
||||
g_debug ("selected profile = %s",
|
||||
cd_profile_get_filename (profile));
|
||||
|
||||
/* allow getting profile info */
|
||||
- if (cd_profile_get_filename (profile) != NULL &&
|
||||
- (s = g_find_program_in_path ("gcm-viewer")) != NULL)
|
||||
+ if (cd_profile_get_filename (profile) != NULL)
|
||||
gtk_widget_set_sensitive (prefs->toolbutton_profile_view, TRUE);
|
||||
else
|
||||
gtk_widget_set_sensitive (prefs->toolbutton_profile_view, FALSE);
|
||||
diff --git a/panels/datetime/tz.h b/panels/datetime/tz.h
|
||||
index a2376f8a4..98769e08f 100644
|
||||
--- a/panels/datetime/tz.h
|
||||
+++ b/panels/datetime/tz.h
|
||||
@@ -27,11 +27,7 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
-#ifndef __sun
|
||||
-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
|
||||
-#else
|
||||
-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||
-#endif
|
||||
+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
|
||||
|
||||
typedef struct _TzDB TzDB;
|
||||
typedef struct _TzLocation TzLocation;
|
||||
diff --git a/panels/info-overview/cc-info-overview-panel.c b/panels/info-overview/cc-info-overview-panel.c
|
||||
index bd0e07762..0e71351f8 100644
|
||||
--- a/panels/info-overview/cc-info-overview-panel.c
|
||||
+++ b/panels/info-overview/cc-info-overview-panel.c
|
||||
@@ -172,7 +172,7 @@ load_gnome_version (char **version,
|
||||
gsize length;
|
||||
g_autoptr(VersionData) data = NULL;
|
||||
|
||||
- if (!g_file_get_contents (DATADIR "/gnome/gnome-version.xml",
|
||||
+ if (!g_file_get_contents ("@gnome_desktop@/share/gnome/gnome-version.xml",
|
||||
&contents,
|
||||
&length,
|
||||
&error))
|
||||
diff --git a/panels/keyboard/cc-input-list-box.c b/panels/keyboard/cc-input-list-box.c
|
||||
index 6c2cb5614..8f57159cc 100644
|
||||
--- a/panels/keyboard/cc-input-list-box.c
|
||||
+++ b/panels/keyboard/cc-input-list-box.c
|
||||
@@ -223,10 +223,10 @@ row_layout_cb (CcInputListBox *self,
|
||||
layout_variant = cc_input_source_get_layout_variant (source);
|
||||
|
||||
if (layout_variant && layout_variant[0])
|
||||
- commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"",
|
||||
+ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"",
|
||||
layout, layout_variant);
|
||||
else
|
||||
- commandline = g_strdup_printf ("gkbd-keyboard-display -l %s",
|
||||
+ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s",
|
||||
layout);
|
||||
|
||||
g_spawn_command_line_async (commandline, NULL);
|
||||
diff --git a/panels/network/connection-editor/net-connection-editor.c b/panels/network/connection-editor/net-connection-editor.c
|
||||
index 505b8ee25..62e94009f 100644
|
||||
--- a/panels/network/connection-editor/net-connection-editor.c
|
||||
+++ b/panels/network/connection-editor/net-connection-editor.c
|
||||
@@ -267,9 +267,9 @@ net_connection_editor_do_fallback (NetConnectionEditor *self, const gchar *type)
|
||||
g_autoptr(GError) error = NULL;
|
||||
|
||||
if (self->is_new_connection) {
|
||||
- cmdline = g_strdup_printf ("nm-connection-editor --type='%s' --create", type);
|
||||
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --type='%s' --create", type);
|
||||
} else {
|
||||
- cmdline = g_strdup_printf ("nm-connection-editor --edit='%s'",
|
||||
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit='%s'",
|
||||
nm_connection_get_uuid (self->connection));
|
||||
}
|
||||
|
||||
diff --git a/panels/network/net-device-bluetooth.c b/panels/network/net-device-bluetooth.c
|
||||
index 74dfb0e9a..5f53d1a20 100644
|
||||
--- a/panels/network/net-device-bluetooth.c
|
||||
+++ b/panels/network/net-device-bluetooth.c
|
||||
@@ -90,7 +90,7 @@ nm_device_bluetooth_refresh_ui (NetDeviceBluetooth *self)
|
||||
update_off_switch_from_device_state (self->device_off_switch, state, self);
|
||||
|
||||
/* set up the Options button */
|
||||
- path = g_find_program_in_path ("nm-connection-editor");
|
||||
+ path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->options_button), state != NM_DEVICE_STATE_UNMANAGED && path != NULL);
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ options_button_clicked_cb (NetDeviceBluetooth *self)
|
||||
|
||||
connection = net_device_get_find_connection (self->client, self->device);
|
||||
uuid = nm_connection_get_uuid (connection);
|
||||
- cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
|
||||
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit %s", uuid);
|
||||
g_debug ("Launching '%s'\n", cmdline);
|
||||
if (!g_spawn_command_line_async (cmdline, &error))
|
||||
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
|
||||
@@ -185,7 +185,7 @@ net_device_bluetooth_init (NetDeviceBluetooth *self)
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (self));
|
||||
|
||||
- path = g_find_program_in_path ("nm-connection-editor");
|
||||
+ path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
|
||||
}
|
||||
|
||||
diff --git a/panels/network/net-device-mobile.c b/panels/network/net-device-mobile.c
|
||||
index 34eb86241..50d0a2bed 100644
|
||||
--- a/panels/network/net-device-mobile.c
|
||||
+++ b/panels/network/net-device-mobile.c
|
||||
@@ -508,7 +508,7 @@ options_button_clicked_cb (NetDeviceMobile *self)
|
||||
|
||||
connection = net_device_get_find_connection (self->client, self->device);
|
||||
uuid = nm_connection_get_uuid (connection);
|
||||
- cmdline = g_strdup_printf ("nm-connection-editor --edit %s", uuid);
|
||||
+ cmdline = g_strdup_printf ("@networkmanagerapplet@/bin/nm-connection-editor --edit %s", uuid);
|
||||
g_debug ("Launching '%s'\n", cmdline);
|
||||
if (!g_spawn_command_line_async (cmdline, &error))
|
||||
g_warning ("Failed to launch nm-connection-editor: %s", error->message);
|
||||
@@ -797,7 +797,7 @@ net_device_mobile_init (NetDeviceMobile *self)
|
||||
|
||||
self->cancellable = g_cancellable_new ();
|
||||
|
||||
- path = g_find_program_in_path ("nm-connection-editor");
|
||||
+ path = g_find_program_in_path ("@networkmanagerapplet@/bin/nm-connection-editor");
|
||||
gtk_widget_set_visible (GTK_WIDGET (self->options_button), path != NULL);
|
||||
}
|
||||
|
||||
diff --git a/panels/printers/pp-host.c b/panels/printers/pp-host.c
|
||||
index a31a606e3..ed5133d29 100644
|
||||
--- a/panels/printers/pp-host.c
|
||||
+++ b/panels/printers/pp-host.c
|
||||
@@ -256,7 +256,7 @@ _pp_host_get_snmp_devices_thread (GTask *task,
|
||||
devices = g_ptr_array_new_with_free_func (g_object_unref);
|
||||
|
||||
argv = g_new0 (gchar *, 3);
|
||||
- argv[0] = g_strdup ("/usr/lib/cups/backend/snmp");
|
||||
+ argv[0] = g_strdup ("@cups@/lib/cups/backend/snmp");
|
||||
argv[1] = g_strdup (priv->hostname);
|
||||
|
||||
/* Use SNMP to get printer's informations */
|
||||
diff --git a/panels/user-accounts/run-passwd.c b/panels/user-accounts/run-passwd.c
|
||||
index 86f53d4fc..0b052856f 100644
|
||||
--- a/panels/user-accounts/run-passwd.c
|
||||
+++ b/panels/user-accounts/run-passwd.c
|
||||
@@ -150,7 +150,7 @@ spawn_passwd (PasswdHandler *passwd_handler, GError **error)
|
||||
gchar **envp;
|
||||
gint my_stdin, my_stdout, my_stderr;
|
||||
|
||||
- argv[0] = "/usr/bin/passwd"; /* Is it safe to rely on a hard-coded path? */
|
||||
+ argv[0] = "/run/wrappers/bin/passwd"; /* Is it safe to rely on a hard-coded path? */
|
||||
argv[1] = NULL;
|
||||
|
||||
envp = g_get_environ ();
|
||||
diff --git a/tests/datetime/test-endianess.c b/tests/datetime/test-endianess.c
|
||||
index 9cb92007a..84d2f0fa3 100644
|
||||
--- a/tests/datetime/test-endianess.c
|
||||
+++ b/tests/datetime/test-endianess.c
|
||||
@@ -26,7 +26,7 @@ test_endianess (void)
|
||||
g_autoptr(GDir) dir = NULL;
|
||||
const char *name;
|
||||
|
||||
- dir = g_dir_open ("/usr/share/i18n/locales/", 0, NULL);
|
||||
+ dir = g_dir_open ("@glibc@/share/i18n/locales/", 0, NULL);
|
||||
if (dir == NULL) {
|
||||
/* Try with /usr/share/locale/
|
||||
* https://bugzilla.gnome.org/show_bug.cgi?id=646780 */
|
||||
85
pkgs/desktops/gnome/core/gnome-dictionary/default.nix
Normal file
85
pkgs/desktops/gnome/core/gnome-dictionary/default.nix
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, desktop-file-utils
|
||||
, appstream-glib
|
||||
, libxslt
|
||||
, libxml2
|
||||
, gettext
|
||||
, itstool
|
||||
, wrapGAppsHook
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_43
|
||||
, gnome
|
||||
, gtk3
|
||||
, glib
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-dictionary";
|
||||
version = "40.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-dictionary/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1d8dhcfys788vv27v34i3s3x3jdvdi2kqn2a5p8c937a9hm0qr9f";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix test dependencies with meson 0.57, can be removed on next bump
|
||||
# We need to explicitly depend on the generated files.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-dictionary/-/commit/87c026cfe4acbcfc62d15950f88a71d8d9678c7e.patch";
|
||||
sha256 = "tKesWeOK3OqOxrXm4dZvCZHHdTD7AQbYDjtYDCsLd3A=";
|
||||
})
|
||||
# Fix build with meson 0.61, can be removed on next bump
|
||||
# data/appdata/meson.build:3:5: ERROR: Function does not take positional arguments.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-dictionary/-/commit/cf3f8a67cd6f3059c555ed9cf0f5fba10abb7f68.patch";
|
||||
sha256 = "cIRM6ACqsnEo2JWYvr6EBye5o0BudugZMShCe1U5hz8=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
libxml2
|
||||
gettext
|
||||
itstool
|
||||
desktop-file-utils
|
||||
appstream-glib
|
||||
libxslt
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_43
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gnome.adwaita-icon-theme
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-dictionary";
|
||||
attrPath = "gnome.gnome-dictionary";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Dictionary";
|
||||
description = "Dictionary is the GNOME application to look up definitions";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
86
pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
Normal file
86
pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, gettext
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, udisks2
|
||||
, libhandy
|
||||
, libsecret
|
||||
, libdvdread
|
||||
, meson
|
||||
, ninja
|
||||
, gtk3
|
||||
, glib
|
||||
, wrapGAppsHook
|
||||
, python3
|
||||
, libnotify
|
||||
, itstool
|
||||
, gnome
|
||||
, libxml2
|
||||
, gsettings-desktop-schemas
|
||||
, libcanberra-gtk3
|
||||
, libxslt
|
||||
, docbook-xsl-nons
|
||||
, libpwquality
|
||||
, systemd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-disk-utility";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "sha256-G2VkRU1nQmMiyzv8WlVYZTv8ff7qKuCCWx0IYp8BCQs=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
libxslt
|
||||
docbook-xsl-nons
|
||||
wrapGAppsHook
|
||||
python3
|
||||
libxml2
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
libhandy
|
||||
libsecret
|
||||
libpwquality
|
||||
libnotify
|
||||
libdvdread
|
||||
libcanberra-gtk3
|
||||
udisks2
|
||||
gnome.adwaita-icon-theme
|
||||
systemd
|
||||
gnome.gnome-settings-daemon
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-disk-utility";
|
||||
attrPath = "gnome.gnome-disk-utility";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Disks";
|
||||
description = "A udisks graphical front-end";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "gnome-disks";
|
||||
};
|
||||
}
|
||||
63
pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
Normal file
63
pkgs/desktops/gnome/core/gnome-font-viewer/default.nix
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gtk4
|
||||
, glib
|
||||
, libxml2
|
||||
, gnome-desktop
|
||||
, libadwaita
|
||||
, wrapGAppsHook4
|
||||
, gnome
|
||||
, harfbuzz
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-font-viewer";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-font-viewer/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "z6K43/8hoQWhoCHa36IT8TYn5qF5p3x7Wf3O2sqEjcw=";
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
wrapGAppsHook4
|
||||
libxml2
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
glib
|
||||
gnome-desktop
|
||||
harfbuzz
|
||||
libadwaita
|
||||
];
|
||||
|
||||
# Do not run meson-postinstall.sh
|
||||
preConfigure = "sed -i '2,$ d' meson-postinstall.sh";
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-font-viewer";
|
||||
attrPath = "gnome.gnome-font-viewer";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Program that can preview fonts and create thumbnails for fonts";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-font-viewer";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,62 @@
|
|||
From 1ae0eca39ba6af27f37e2fe81395b91a2761a408 Mon Sep 17 00:00:00 2001
|
||||
Message-Id: <1ae0eca39ba6af27f37e2fe81395b91a2761a408.1600627676.git-series.worldofpeace@protonmail.ch>
|
||||
From: WORLDofPEACE <worldofpeace@protonmail.ch>
|
||||
Date: Sun, 20 Sep 2020 14:46:59 -0400
|
||||
Subject: [PATCH] fix paths
|
||||
|
||||
---
|
||||
gnome-initial-setup/pages/keyboard/cc-input-chooser.c | 6 +++---
|
||||
gnome-initial-setup/pages/timezone/tz.h | 4 ++--
|
||||
3 files changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
|
||||
index 196abf6..613d0e5 100644
|
||||
--- a/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
|
||||
+++ b/gnome-initial-setup/pages/keyboard/cc-input-chooser.c
|
||||
@@ -177,9 +177,9 @@ preview_cb (GtkLabel *label,
|
||||
return TRUE;
|
||||
|
||||
if (variant[0])
|
||||
- commandline = g_strdup_printf ("gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
|
||||
+ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l \"%s\t%s\"", layout, variant);
|
||||
else
|
||||
- commandline = g_strdup_printf ("gkbd-keyboard-display -l %s", layout);
|
||||
+ commandline = g_strdup_printf ("@libgnomekbd@/bin/gkbd-keyboard-display -l %s", layout);
|
||||
g_spawn_command_line_async (commandline, NULL);
|
||||
g_free (commandline);
|
||||
|
||||
@@ -831,7 +831,7 @@ cc_input_chooser_class_init (CcInputChooserClass *klass)
|
||||
g_param_spec_string ("showing-extra", "", "", "",
|
||||
G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
|
||||
|
||||
- signals[CHANGED] =
|
||||
+ signals[CHANGED] =
|
||||
g_signal_new ("changed",
|
||||
G_TYPE_FROM_CLASS (object_class),
|
||||
G_SIGNAL_RUN_FIRST,
|
||||
diff --git a/gnome-initial-setup/pages/timezone/tz.h b/gnome-initial-setup/pages/timezone/tz.h
|
||||
index a2376f8..5cb7bc9 100644
|
||||
--- a/gnome-initial-setup/pages/timezone/tz.h
|
||||
+++ b/gnome-initial-setup/pages/timezone/tz.h
|
||||
@@ -4,7 +4,7 @@
|
||||
* Copyright (C) 2000-2001 Ximian, Inc.
|
||||
*
|
||||
* Authors: Hans Petter Jansson <hpj@ximian.com>
|
||||
- *
|
||||
+ *
|
||||
* Largely based on Michael Fulbright's work on Anaconda.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
@@ -28,7 +28,7 @@
|
||||
G_BEGIN_DECLS
|
||||
|
||||
#ifndef __sun
|
||||
-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
|
||||
+# define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
|
||||
#else
|
||||
# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||
#endif
|
||||
|
||||
base-commit: 5132e206a6bf81964450561d68473ac015760455
|
||||
--
|
||||
git-series 0.9.1
|
||||
108
pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
Normal file
108
pkgs/desktops/gnome/core/gnome-initial-setup/default.nix
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, wrapGAppsHook
|
||||
, gnome
|
||||
, accountsservice
|
||||
, fontconfig
|
||||
, gdm
|
||||
, geoclue2
|
||||
, geocode-glib
|
||||
, glib
|
||||
, gnome-desktop
|
||||
, gnome-online-accounts
|
||||
, gtk3
|
||||
, libgweather
|
||||
, json-glib
|
||||
, krb5
|
||||
, libpwquality
|
||||
, librest
|
||||
, libsecret
|
||||
, networkmanager
|
||||
, pango
|
||||
, polkit
|
||||
, webkitgtk
|
||||
, systemd
|
||||
, libhandy
|
||||
, libnma
|
||||
, tzdata
|
||||
, libgnomekbd
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-initial-setup";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "TYPZiySavhW7Kz5+eurZxH+Ei8p7agkavJCLdlQavns=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./0001-fix-paths.patch;
|
||||
inherit tzdata libgnomekbd;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
systemd
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
accountsservice
|
||||
fontconfig
|
||||
gdm
|
||||
geoclue2
|
||||
geocode-glib
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome-online-accounts
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
json-glib
|
||||
krb5
|
||||
libgweather
|
||||
libhandy
|
||||
libnma
|
||||
libpwquality
|
||||
librest
|
||||
libsecret
|
||||
networkmanager
|
||||
pango
|
||||
polkit
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dcheese=disabled"
|
||||
"-Dibus=disabled"
|
||||
"-Dparental_controls=disabled"
|
||||
"-Dvendor-conf-file=${./vendor.conf}"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Simple, easy, and safe way to prepare a new system";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-initial-setup";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
5
pkgs/desktops/gnome/core/gnome-initial-setup/vendor.conf
Normal file
5
pkgs/desktops/gnome/core/gnome-initial-setup/vendor.conf
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
# Disable pages not right for NixOS
|
||||
# For example user accounts should be preconfigured
|
||||
# and we can't modify system time with systemd.
|
||||
[pages]
|
||||
skip=account;software;password;timezone;
|
||||
104
pkgs/desktops/gnome/core/gnome-keyring/default.nix
Normal file
104
pkgs/desktops/gnome/core/gnome-keyring/default.nix
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, dbus
|
||||
, libgcrypt
|
||||
, pam
|
||||
, python3
|
||||
, glib
|
||||
, libxslt
|
||||
, gettext
|
||||
, gcr
|
||||
, autoreconfHook
|
||||
, libcap_ng
|
||||
, libselinux
|
||||
, p11-kit
|
||||
, openssh
|
||||
, wrapGAppsHook
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_43
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-keyring";
|
||||
version = "42.1";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-keyring/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "x/TQQMx2prf+Z+CO+RBpEcPIDUD8iMv8jiaEpMlG4+Y=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
gettext
|
||||
libxslt
|
||||
# Upstream uses ancient autotools to pre-generate the scripts.
|
||||
autoreconfHook
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_43
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
libgcrypt
|
||||
pam
|
||||
openssh
|
||||
libcap_ng
|
||||
libselinux
|
||||
gcr
|
||||
p11-kit
|
||||
];
|
||||
|
||||
checkInputs = [ dbus python3 ];
|
||||
|
||||
configureFlags = [
|
||||
"--with-pkcs11-config=${placeholder "out"}/etc/pkcs11/" # installation directories
|
||||
"--with-pkcs11-modules=${placeholder "out"}/lib/pkcs11/"
|
||||
];
|
||||
|
||||
# Tends to fail non-deterministically.
|
||||
# - https://github.com/NixOS/nixpkgs/issues/55293
|
||||
# - https://github.com/NixOS/nixpkgs/issues/51121
|
||||
doCheck = false;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs build
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
export HOME=$(mktemp -d)
|
||||
dbus-run-session \
|
||||
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
||||
make check
|
||||
'';
|
||||
|
||||
# Use wrapped gnome-keyring-daemon with cap_ipc_lock=ep
|
||||
postFixup = ''
|
||||
files=($out/etc/xdg/autostart/* $out/share/dbus-1/services/*)
|
||||
|
||||
for file in ''${files[*]}; do
|
||||
substituteInPlace $file \
|
||||
--replace "$out/bin/gnome-keyring-daemon" "/run/wrappers/bin/gnome-keyring-daemon"
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-keyring";
|
||||
attrPath = "gnome.gnome-keyring";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Collection of components in GNOME that store secrets, passwords, keys, certificates and make them available to applications";
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeKeyring";
|
||||
license = licenses.gpl2;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
116
pkgs/desktops/gnome/core/gnome-online-miners/default.nix
Normal file
116
pkgs/desktops/gnome/core/gnome-online-miners/default.nix
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoconf-archive
|
||||
, autoreconfHook
|
||||
, pkg-config
|
||||
, glib
|
||||
, gnome
|
||||
, libxml2
|
||||
, libgdata
|
||||
, grilo
|
||||
, libzapojit
|
||||
, grilo-plugins
|
||||
, gnome-online-accounts
|
||||
, libmediaart
|
||||
, tracker
|
||||
, gfbgraph
|
||||
, librest
|
||||
, libsoup
|
||||
, json-glib
|
||||
, gmp
|
||||
, openssl
|
||||
, dleyna-server
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-online-miners";
|
||||
version = "3.34.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-online-miners/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1n2jz9i8a42zwxx5h8j2gdy6q1vyydh4vl00r0al7w8jzdh24p44";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix use after free
|
||||
# https://gitlab.gnome.org/GNOME/gnome-online-miners/merge_requests/4
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-online-miners/commit/9eb57c6a8cd1a925c508646edae936eee0a8e46b.patch";
|
||||
sha256 = "O1GRnzs33I0mFzrNDFkTGiBKstq5krYg7fwj60367TA=";
|
||||
})
|
||||
|
||||
# Port to Tracker 3
|
||||
# https://gitlab.gnome.org/GNOME/gnome-online-miners/merge_requests/3
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-online-miners/commit/2d3798252807cad9eb061ed2b37e35170c1a1daf.patch";
|
||||
sha256 = "hwrkxroMpTfOwJAPkYQFdDCroZ2qSsvOgDetrJDig20=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-online-miners/commit/1548c0c527f0e4389047448d7d3b6cff55278c8e.patch";
|
||||
sha256 = "U9w81c9Kze7kv5KHeGqvDeSNHzSayVrUG0XYsYMa1sg=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-online-miners/commit/941ebd8890c9ac4f75a1f58ccbea9731f46ad912.patch";
|
||||
sha256 = "JHtDlZ54/BlSiUA3ROHfCTtTKSin3g6JNm8NS6pYML8=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-online-miners/commit/d1681a64bc3f65894af2549e3ba2bffbaf6f539a.patch";
|
||||
sha256 = "9ZEatz5I81UAnjS1qCGWYDQQOxg/qp9Tg3xG/a+3goc=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-online-miners/commit/3d2af8785c84d6e50d8a8e6a2569a4b709184e94.patch";
|
||||
sha256 = "7bdUE2k6g3Z8sdGYEb6pUm1/wbKDe4BHbylXUzfuTG0=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
# patch changes configure.ac
|
||||
autoconf-archive
|
||||
autoreconfHook
|
||||
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
libgdata
|
||||
libxml2
|
||||
libsoup
|
||||
gmp
|
||||
openssl
|
||||
grilo
|
||||
libzapojit
|
||||
grilo-plugins
|
||||
gnome-online-accounts
|
||||
libmediaart
|
||||
tracker
|
||||
gfbgraph
|
||||
json-glib
|
||||
librest
|
||||
dleyna-server
|
||||
];
|
||||
|
||||
NIX_CFLAGS_COMPILE = [
|
||||
"-Wno-error=format-security" # https://gitlab.gnome.org/GNOME/gnome-online-miners/merge_requests/3/diffs#note_942747
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-online-miners";
|
||||
attrPath = "gnome.gnome-online-miners";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeOnlineMiners";
|
||||
description = "A set of crawlers that go through your online content and index them locally in Tracker";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
104
pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
Normal file
104
pkgs/desktops/gnome/core/gnome-remote-desktop/default.nix
Normal file
|
|
@ -0,0 +1,104 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, cairo
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, glib
|
||||
, libepoxy
|
||||
, libdrm
|
||||
, nv-codec-headers-11
|
||||
, pipewire
|
||||
, systemd
|
||||
, libvncserver
|
||||
, libsecret
|
||||
, libnotify
|
||||
, libxkbcommon
|
||||
, gdk-pixbuf
|
||||
, freerdp
|
||||
, fuse3
|
||||
, mesa
|
||||
, libgudev
|
||||
, xvfb-run
|
||||
, dbus
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-remote-desktop";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-wcy82MpwN+9ttz9r8rXdOKM2t9gKKpyY32/4g4eP+dU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
freerdp
|
||||
fuse3
|
||||
gdk-pixbuf # For libnotify
|
||||
glib
|
||||
libepoxy
|
||||
libdrm
|
||||
nv-codec-headers-11
|
||||
libnotify
|
||||
libsecret
|
||||
libvncserver
|
||||
libxkbcommon
|
||||
pipewire
|
||||
systemd
|
||||
] ++ checkInputs;
|
||||
|
||||
checkInputs = [
|
||||
mesa # for gbm
|
||||
libgudev
|
||||
xvfb-run
|
||||
python3.pkgs.dbus-python
|
||||
python3.pkgs.pygobject3
|
||||
dbus # for dbus-run-session
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dsystemd_user_unit_dir=${placeholder "out"}/lib/systemd/user"
|
||||
];
|
||||
|
||||
# Too deep of a rabbit hole.
|
||||
doCheck = false;
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs \
|
||||
tests/vnc-test-runner.sh \
|
||||
tests/run-vnc-tests.py \
|
||||
meson_post_install.py
|
||||
|
||||
substituteInPlace tests/vnc-test-runner.sh \
|
||||
--replace "dbus-run-session" "dbus-run-session --config-file=${dbus}/share/dbus-1/session.conf"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Projects/Mutter/RemoteDesktop";
|
||||
description = "GNOME Remote Desktop server";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
82
pkgs/desktops/gnome/core/gnome-screenshot/default.nix
Normal file
82
pkgs/desktops/gnome/core/gnome-screenshot/default.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, gettext
|
||||
, libxml2
|
||||
, libhandy
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, libcanberra-gtk3
|
||||
, gtk3
|
||||
, glib
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, appstream-glib
|
||||
, desktop-file-utils
|
||||
, gnome
|
||||
, gsettings-desktop-schemas
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-screenshot";
|
||||
version = "41.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Stt97JJkKPdCY9V5ZnPPFC5HILbnaPVGio0JM/mMlZc=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61
|
||||
# https://gitlab.gnome.org/GNOME/gnome-screenshot/-/issues/186
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-screenshot/-/commit/b60dad3c2536c17bd201f74ad8e40eb74385ed9f.patch";
|
||||
sha256 = "Js83h/3xxcw2hsgjzGa5lAYFXVrt6MPhXOTh5dZTx/w=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
appstream-glib
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
libcanberra-gtk3
|
||||
libhandy
|
||||
gnome.adwaita-icon-theme
|
||||
gsettings-desktop-schemas
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
chmod +x build-aux/postinstall.py # patchShebangs requires executable file
|
||||
patchShebangs build-aux/postinstall.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-screenshot";
|
||||
description = "Utility used in the GNOME desktop environment for taking screenshots";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
42
pkgs/desktops/gnome/core/gnome-session/ctl.nix
Normal file
42
pkgs/desktops/gnome/core/gnome-session/ctl.nix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, glib
|
||||
, systemd
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-session-ctl";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nix-community";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
hash = "sha256-XGJVmlxqbJ/1frbzn2TI7BJm449xeLk43xMMqFsLYko=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
systemd
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "gnome-session-ctl extracted from gnome-session for nixpkgs";
|
||||
homepage = "https://github.com/nix-community/gnome-session-ctl";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
138
pkgs/desktops/gnome/core/gnome-session/default.nix
Normal file
138
pkgs/desktops/gnome/core/gnome-session/default.nix
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
{ fetchurl
|
||||
, lib
|
||||
, stdenv
|
||||
, substituteAll
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, glib
|
||||
, gtk3
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-desktop
|
||||
, dbus
|
||||
, json-glib
|
||||
, libICE
|
||||
, xmlto
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_412
|
||||
, python3
|
||||
, libxslt
|
||||
, gettext
|
||||
, makeWrapper
|
||||
, systemd
|
||||
, xorg
|
||||
, libepoxy
|
||||
, bash
|
||||
, gnome-session-ctl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-session";
|
||||
# Also bump ./ctl.nix when bumping major version.
|
||||
version = "42.0";
|
||||
|
||||
outputs = [ "out" "sessions" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-session/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "PMoGBTq2gpJpIJUafalfjMbXLadMaCxG0KBlMzKWnKo=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
gsettings = "${glib.bin}/bin/gsettings";
|
||||
dbusLaunch = "${dbus.lib}/bin/dbus-launch";
|
||||
bash = "${bash}/bin/bash";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
makeWrapper
|
||||
xmlto
|
||||
libxslt
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_412
|
||||
python3
|
||||
dbus # for DTD
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
libICE
|
||||
gnome-desktop
|
||||
json-glib
|
||||
xorg.xtrans
|
||||
gnome.adwaita-icon-theme
|
||||
gnome.gnome-settings-daemon
|
||||
gsettings-desktop-schemas
|
||||
systemd
|
||||
libepoxy
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dsystemd=true"
|
||||
"-Dsystemd_session=default"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py # patchShebangs requires executable file
|
||||
patchShebangs meson_post_install.py
|
||||
|
||||
# Use our provided `gnome-session-ctl`
|
||||
original="@libexecdir@/gnome-session-ctl"
|
||||
replacement="${gnome-session-ctl}/libexec/gnome-session-ctl"
|
||||
|
||||
find data/ -type f -name "*.service.in" -exec sed -i \
|
||||
-e s,$original,$replacement,g \
|
||||
{} +
|
||||
'';
|
||||
|
||||
# We move the GNOME sessions to another output since gnome-session is a dependency of
|
||||
# GDM itself. If we do not hide them, it will show broken GNOME sessions when GDM is
|
||||
# enabled without proper GNOME installation.
|
||||
postInstall = ''
|
||||
mkdir $sessions
|
||||
moveToOutput share/wayland-sessions "$sessions"
|
||||
moveToOutput share/xsessions "$sessions"
|
||||
|
||||
# Our provided one is being used
|
||||
rm -rf $out/libexec/gnome-session-ctl
|
||||
'';
|
||||
|
||||
# `bin/gnome-session` will reset the environment when run in wayland, we
|
||||
# therefor wrap `libexec/gnome-session-binary` instead which is the actual
|
||||
# binary needing wrapping
|
||||
preFixup = ''
|
||||
wrapProgram "$out/libexec/gnome-session-binary" \
|
||||
--prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
|
||||
--suffix XDG_DATA_DIRS : "$out/share:$GSETTINGS_SCHEMAS_PATH" \
|
||||
--suffix XDG_DATA_DIRS : "${gnome.gnome-shell}/share"\
|
||||
--suffix XDG_CONFIG_DIRS : "${gnome.gnome-settings-daemon}/etc/xdg"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-session";
|
||||
attrPath = "gnome.gnome-session";
|
||||
};
|
||||
providedSessions = [
|
||||
"gnome"
|
||||
"gnome-xorg"
|
||||
];
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "GNOME session manager";
|
||||
homepage = "https://wiki.gnome.org/Projects/SessionManagement";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
35
pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
Normal file
35
pkgs/desktops/gnome/core/gnome-session/fix-paths.patch
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
diff --git a/gnome-session/gnome-session.in b/gnome-session/gnome-session.in
|
||||
index b4b1f8fa..99d52cba 100755
|
||||
--- a/gnome-session/gnome-session.in
|
||||
+++ b/gnome-session/gnome-session.in
|
||||
@@ -4,13 +4,15 @@ if [ "x$XDG_SESSION_TYPE" = "xwayland" ] &&
|
||||
[ "x$XDG_SESSION_CLASS" != "xgreeter" ] &&
|
||||
[ -n "$SHELL" ]; then
|
||||
if [ "$1" != '-l' ]; then
|
||||
- exec bash -c "exec -l '$SHELL' -c '$0 -l $*'"
|
||||
+ # Make sure the shell actually sets up the environment.
|
||||
+ unset __NIXOS_SET_ENVIRONMENT_DONE
|
||||
+ exec @bash@ -c "exec -l '$SHELL' -c '$0 -l $*'"
|
||||
else
|
||||
shift
|
||||
fi
|
||||
fi
|
||||
|
||||
-SETTING=$(G_MESSAGES_DEBUG='' gsettings get org.gnome.system.locale region)
|
||||
+SETTING=$(G_MESSAGES_DEBUG='' @gsettings@ get org.gnome.system.locale region)
|
||||
REGION=${SETTING#\'}
|
||||
REGION=${REGION%\'}
|
||||
|
||||
diff --git a/gnome-session/main.c b/gnome-session/main.c
|
||||
index a460a849..9d07898f 100644
|
||||
--- a/gnome-session/main.c
|
||||
+++ b/gnome-session/main.c
|
||||
@@ -215,7 +215,7 @@ require_dbus_session (int argc,
|
||||
}
|
||||
new_argv[i + 2] = NULL;
|
||||
|
||||
- if (!execvp ("dbus-launch", new_argv)) {
|
||||
+ if (!execvp ("@dbusLaunch@", new_argv)) {
|
||||
g_set_error (error,
|
||||
G_SPAWN_ERROR,
|
||||
G_SPAWN_ERROR_FAILED,
|
||||
160
pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix
Normal file
160
pkgs/desktops/gnome/core/gnome-settings-daemon/3.38/default.nix
Normal file
|
|
@ -0,0 +1,160 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, perl
|
||||
, gettext
|
||||
, gtk3
|
||||
, glib
|
||||
, libnotify
|
||||
, libgnomekbd
|
||||
, lcms2
|
||||
, libpulseaudio
|
||||
, alsa-lib
|
||||
, libcanberra-gtk3
|
||||
, upower
|
||||
, colord
|
||||
, libgweather
|
||||
, polkit
|
||||
, gsettings-desktop-schemas
|
||||
, geoclue2
|
||||
, systemd
|
||||
, libgudev
|
||||
, libwacom
|
||||
, libxslt
|
||||
, libxml2
|
||||
, modemmanager
|
||||
, networkmanager
|
||||
, gnome-desktop
|
||||
, geocode-glib
|
||||
, docbook_xsl
|
||||
, wrapGAppsHook
|
||||
, python3
|
||||
, tzdata
|
||||
, nss
|
||||
, gcr
|
||||
, gnome-session-ctl
|
||||
, pantheon
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-settings-daemon";
|
||||
version = "3.38.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "136p3prdqvc0lvrcqs4h7crpnfqnimqklpzjivq5w4g1rhbdbhrj";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch";
|
||||
sha256 = "O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI=";
|
||||
})
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit tzdata;
|
||||
})
|
||||
|
||||
# Adjust to libgweather changes.
|
||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/217
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/82d88014dfca2df7e081712870e1fb017c16b808.patch";
|
||||
sha256 = "H5k/v+M2bRaswt5nrDJFNn4gS4BdB0UfzdjUCT4yLKg=";
|
||||
})
|
||||
|
||||
# Fix build with new meson
|
||||
# plugins/power/meson.build:78:7: ERROR: Function does not take positional arguments.
|
||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/283
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/afa7e4bb9c519e2daf500a6079088669500768c0.patch";
|
||||
sha256 = "8wxJIKPoZyfs1t0zAsb5SVCdt297NUiGmXIBNI6hbCQ=";
|
||||
})
|
||||
# meson.build:86:3: ERROR: The `==` operator of str does not accept objects of type bool (True)
|
||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/249
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/28e28e9e598342c897ae5ca350d0da6f4aea057b.diff";
|
||||
sha256 = "U+suR7wYjLWPqmkJpHm6pPOWL7sjL6GhIFX8MHrBRAY=";
|
||||
})
|
||||
|
||||
# Port to gweather4
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/66cae69ad82cfc59435016fba737ce046ffb7e66.patch";
|
||||
sha256 = "zf8/rkKdQQFNV/qx/jo4kx1KoLl7SUSu4/T1OBGrZ4c=";
|
||||
})
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/commit/f390e6e9d56ce7d3e3a725b8204d81c0b6240515.patch";
|
||||
sha256 = "8mfnlhkSF9ogjVWE+IESzRQzrxHQSwUWsq5OLBM08iM=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
perl
|
||||
gettext
|
||||
libxml2
|
||||
libxslt
|
||||
docbook_xsl
|
||||
wrapGAppsHook
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
modemmanager
|
||||
networkmanager
|
||||
libnotify
|
||||
libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
|
||||
gnome-desktop
|
||||
lcms2
|
||||
libpulseaudio
|
||||
alsa-lib
|
||||
libcanberra-gtk3
|
||||
upower
|
||||
colord
|
||||
libgweather
|
||||
nss
|
||||
polkit
|
||||
geocode-glib
|
||||
geoclue2
|
||||
systemd
|
||||
libgudev
|
||||
libwacom
|
||||
gcr
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dudev_dir=${placeholder "out"}/lib/udev"
|
||||
"-Dgnome_session_ctl_path=${gnome-session-ctl}/libexec/gnome-session-ctl"
|
||||
];
|
||||
|
||||
# Default for release buildtype but passed manually because
|
||||
# we're using plain
|
||||
NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
|
||||
|
||||
postPatch = ''
|
||||
for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
|
||||
chmod +x $f
|
||||
patchShebangs $f
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "GNOME Settings Daemon";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.pantheon.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
--- a/plugins/datetime/tz.h
|
||||
+++ b/plugins/datetime/tz.h
|
||||
@@ -27,11 +27,7 @@
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
-#ifndef __sun
|
||||
-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
|
||||
-#else
|
||||
-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||
-#endif
|
||||
+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
|
||||
|
||||
typedef struct _TzDB TzDB;
|
||||
typedef struct _TzLocation TzLocation;
|
||||
133
pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
Normal file
133
pkgs/desktops/gnome/core/gnome-settings-daemon/default.nix
Normal file
|
|
@ -0,0 +1,133 @@
|
|||
{ lib, stdenv
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, perl
|
||||
, gettext
|
||||
, gtk3
|
||||
, glib
|
||||
, libnotify
|
||||
, libgnomekbd
|
||||
, lcms2
|
||||
, libpulseaudio
|
||||
, alsa-lib
|
||||
, libcanberra-gtk3
|
||||
, upower
|
||||
, colord
|
||||
, libgweather
|
||||
, polkit
|
||||
, gsettings-desktop-schemas
|
||||
, geoclue2
|
||||
, systemd
|
||||
, libgudev
|
||||
, libwacom
|
||||
, libxslt
|
||||
, libxml2
|
||||
, modemmanager
|
||||
, networkmanager
|
||||
, gnome-desktop
|
||||
, geocode-glib
|
||||
, docbook_xsl
|
||||
, wrapGAppsHook
|
||||
, python3
|
||||
, tzdata
|
||||
, nss
|
||||
, gcr
|
||||
, gnome-session-ctl
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-settings-daemon";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-settings-daemon/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "nESXFKqOwSccDbUTffNFgZWUPwXM0KyJNdkzl3cLqwA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# https://gitlab.gnome.org/GNOME/gnome-settings-daemon/-/merge_requests/202
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-settings-daemon/commit/aae1e774dd9de22fe3520cf9eb2bfbf7216f5eb0.patch";
|
||||
sha256 = "O4m0rOW8Zrgu3Q0p0OA8b951VC0FjYbOUk9MLzB9icI=";
|
||||
})
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit tzdata;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
perl
|
||||
gettext
|
||||
libxml2
|
||||
libxslt
|
||||
docbook_xsl
|
||||
wrapGAppsHook
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
modemmanager
|
||||
networkmanager
|
||||
libnotify
|
||||
libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
|
||||
gnome-desktop
|
||||
lcms2
|
||||
libpulseaudio
|
||||
alsa-lib
|
||||
libcanberra-gtk3
|
||||
upower
|
||||
colord
|
||||
libgweather
|
||||
nss
|
||||
polkit
|
||||
geocode-glib
|
||||
geoclue2
|
||||
systemd
|
||||
libgudev
|
||||
libwacom
|
||||
gcr
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dudev_dir=${placeholder "out"}/lib/udev"
|
||||
"-Dgnome_session_ctl_path=${gnome-session-ctl}/libexec/gnome-session-ctl"
|
||||
];
|
||||
|
||||
# Default for release buildtype but passed manually because
|
||||
# we're using plain
|
||||
NIX_CFLAGS_COMPILE = "-DG_DISABLE_CAST_CHECKS";
|
||||
|
||||
|
||||
postPatch = ''
|
||||
for f in gnome-settings-daemon/codegen.py plugins/power/gsd-power-constants-update.pl meson_post_install.py; do
|
||||
chmod +x $f
|
||||
patchShebangs $f
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
--- a/plugins/datetime/tz.h
|
||||
+++ b/plugins/datetime/tz.h
|
||||
@@ -27,11 +27,7 @@
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
-#ifndef __sun
|
||||
-# define TZ_DATA_FILE "/usr/share/zoneinfo/zone.tab"
|
||||
-#else
|
||||
-# define TZ_DATA_FILE "/usr/share/lib/zoneinfo/tab/zone_sun.tab"
|
||||
-#endif
|
||||
+#define TZ_DATA_FILE "@tzdata@/share/zoneinfo/zone.tab"
|
||||
|
||||
typedef struct _TzDB TzDB;
|
||||
typedef struct _TzLocation TzLocation;
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
|
||||
index d7d10fd2..5619d6ad 100644
|
||||
--- a/plugins/power/gsd-backlight.c
|
||||
+++ b/plugins/power/gsd-backlight.c
|
||||
@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
|
||||
proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
|
||||
&error,
|
||||
"pkexec",
|
||||
- LIBEXECDIR "/gsd-backlight-helper",
|
||||
+ "/run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper",
|
||||
g_udev_device_get_sysfs_path (backlight->udev_device),
|
||||
data->value_str, NULL);
|
||||
} else {
|
||||
diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
|
||||
index f16300f8..79d6bd17 100644
|
||||
--- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
|
||||
+++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
|
||||
@@ -25,7 +25,7 @@
|
||||
<allow_inactive>no</allow_inactive>
|
||||
<allow_active>yes</allow_active>
|
||||
</defaults>
|
||||
- <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gsd-backlight-helper</annotate>
|
||||
+ <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/gnome-settings-daemon/gsd-backlight-helper</annotate>
|
||||
</action>
|
||||
|
||||
</policyconfig>
|
||||
78
pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
Normal file
78
pkgs/desktops/gnome/core/gnome-shell-extensions/default.nix
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, pkg-config
|
||||
, glib
|
||||
, gnome
|
||||
, gnome-menus
|
||||
, substituteAll
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-extensions";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-shell-extensions/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "ZXGEQKocLxe7CSIv+AJpn2Qf1RJ5Ih8EyxkZOWjsCzA=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix_gmenu.patch;
|
||||
gmenu_path = "${gnome-menus}/lib/girepository-1.0";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
glib
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dextension_set=all"
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
# The meson build doesn't compile the schemas.
|
||||
# Fixup adapted from export-zips.sh in the source.
|
||||
|
||||
extensiondir=$out/share/gnome-shell/extensions
|
||||
schemadir=${glib.makeSchemaPath "$out" "${pname}-${version}"}
|
||||
|
||||
glib-compile-schemas $schemadir
|
||||
|
||||
for f in $extensiondir/*; do
|
||||
name=`basename ''${f%%@*}`
|
||||
uuid=$name@gnome-shell-extensions.gcampax.github.com
|
||||
schema=$schemadir/org.gnome.shell.extensions.$name.gschema.xml
|
||||
|
||||
if [ -f $schema ]; then
|
||||
mkdir $f/schemas
|
||||
ln -s $schema $f/schemas;
|
||||
glib-compile-schemas $f/schemas
|
||||
fi
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeShell/Extensions";
|
||||
description = "Modify and extend GNOME Shell functionality and behavior";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- a/extensions/apps-menu/extension.js
|
||||
+++ b/extensions/apps-menu/extension.js
|
||||
@@ -1,6 +1,8 @@
|
||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||
/* exported init enable disable */
|
||||
|
||||
+imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
|
||||
+
|
||||
const {
|
||||
Atk, Clutter, Gio, GLib, GMenu, GObject, Gtk, Meta, Shell, St
|
||||
} = imports.gi;
|
||||
220
pkgs/desktops/gnome/core/gnome-shell/default.nix
Normal file
220
pkgs/desktops/gnome/core/gnome-shell/default.nix
Normal file
|
|
@ -0,0 +1,220 @@
|
|||
{ fetchurl
|
||||
, fetchpatch
|
||||
, substituteAll
|
||||
, lib, stdenv
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, json-glib
|
||||
, gettext
|
||||
, libsecret
|
||||
, python3
|
||||
, polkit
|
||||
, networkmanager
|
||||
, gtk-doc
|
||||
, docbook-xsl-nons
|
||||
, at-spi2-core
|
||||
, libstartup_notification
|
||||
, unzip
|
||||
, shared-mime-info
|
||||
, libgweather
|
||||
, librsvg
|
||||
, geoclue2
|
||||
, perl
|
||||
, docbook_xml_dtd_45
|
||||
, desktop-file-utils
|
||||
, libpulseaudio
|
||||
, libical
|
||||
, gobject-introspection
|
||||
, wrapGAppsHook
|
||||
, libxslt
|
||||
, gcr
|
||||
, accountsservice
|
||||
, gdk-pixbuf
|
||||
, gdm
|
||||
, upower
|
||||
, ibus
|
||||
, libnma
|
||||
, libgnomekbd
|
||||
, gnome-desktop
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-keyring
|
||||
, glib
|
||||
, gjs
|
||||
, mutter
|
||||
, evolution-data-server
|
||||
, gtk3
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, sassc
|
||||
, systemd
|
||||
, pipewire
|
||||
, gst_all_1
|
||||
, adwaita-icon-theme
|
||||
, gnome-bluetooth
|
||||
, gnome-clocks
|
||||
, gnome-settings-daemon
|
||||
, gnome-autoar
|
||||
, asciidoc
|
||||
, bash-completion
|
||||
, mesa
|
||||
}:
|
||||
|
||||
# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
|
||||
let
|
||||
pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell";
|
||||
version = "42.2";
|
||||
|
||||
outputs = [ "out" "devdoc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-shell/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "Z+sTzRdeIDGoOMzqkukDdK4OnMumFoP7rNZ/9q/dWQ4=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Hardcode paths to various dependencies so that they can be found at runtime.
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit libgnomekbd unzip;
|
||||
gsettings = "${glib.bin}/bin/gsettings";
|
||||
})
|
||||
|
||||
# Use absolute path for libshew installation to make our patched gobject-introspection
|
||||
# aware of the location to hardcode in the generated GIR file.
|
||||
./shew-gir-path.patch
|
||||
|
||||
# Make D-Bus services wrappable.
|
||||
./wrap-services.patch
|
||||
|
||||
# Fix greeter logo being too big.
|
||||
# https://gitlab.gnome.org/GNOME/gnome-shell/issues/2591
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-shell/commit/ffb8bd5fa7704ce70ce7d053e03549dd15dce5ae.patch";
|
||||
revert = true;
|
||||
sha256 = "14h7ahlxgly0n3sskzq9dhxzbyb04fn80pv74vz1526396676dzl";
|
||||
})
|
||||
|
||||
# Work around failing fingerprint auth
|
||||
(fetchpatch {
|
||||
url = "https://src.fedoraproject.org/rpms/gnome-shell/raw/9a647c460b651aaec0b8a21f046cc289c1999416/f/0001-gdm-Work-around-failing-fingerprint-auth.patch";
|
||||
sha256 = "pFvZli3TilUt6YwdZztpB8Xq7O60XfuWUuPMMVSpqLw=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
docbook-xsl-nons
|
||||
docbook_xml_dtd_45
|
||||
gtk-doc
|
||||
perl
|
||||
wrapGAppsHook
|
||||
sassc
|
||||
desktop-file-utils
|
||||
libxslt.bin
|
||||
asciidoc
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
systemd
|
||||
gsettings-desktop-schemas
|
||||
gnome-keyring
|
||||
glib
|
||||
gcr
|
||||
accountsservice
|
||||
libsecret
|
||||
polkit
|
||||
gdk-pixbuf
|
||||
librsvg
|
||||
networkmanager
|
||||
libstartup_notification
|
||||
gjs
|
||||
mutter
|
||||
libpulseaudio
|
||||
evolution-data-server
|
||||
libical
|
||||
gtk3
|
||||
gtk4
|
||||
libadwaita
|
||||
gdm
|
||||
geoclue2
|
||||
adwaita-icon-theme
|
||||
gnome-bluetooth
|
||||
gnome-clocks # schemas needed
|
||||
at-spi2-core
|
||||
upower
|
||||
ibus
|
||||
gnome-desktop
|
||||
gnome-settings-daemon
|
||||
gobject-introspection
|
||||
mesa
|
||||
|
||||
# recording
|
||||
pipewire
|
||||
gst_all_1.gstreamer
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
|
||||
# not declared at build time, but typelib is needed at runtime
|
||||
libgweather
|
||||
libnma
|
||||
|
||||
# for gnome-extension tool
|
||||
bash-completion
|
||||
gnome-autoar
|
||||
json-glib
|
||||
|
||||
# for tools
|
||||
pythonEnv
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgtk_doc=true"
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/data-to-c.pl
|
||||
|
||||
# We can generate it ourselves.
|
||||
rm -f man/gnome-shell.1
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Until glib’s xdgmime is patched
|
||||
# Fixes “Failed to load resource:///org/gnome/shell/theme/noise-texture.png: Unrecognized image file format”
|
||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# The services need typelibs.
|
||||
for svc in org.gnome.ScreenSaver org.gnome.Shell.Extensions org.gnome.Shell.Notifications org.gnome.Shell.Screencast; do
|
||||
wrapGApp $out/share/gnome-shell/$svc
|
||||
done
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
mozillaPlugin = "/lib/mozilla/plugins";
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-shell";
|
||||
attrPath = "gnome.gnome-shell";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Core user interface for the GNOME 3 desktop";
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeShell";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
|
||||
}
|
||||
36
pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
Normal file
36
pkgs/desktops/gnome/core/gnome-shell/fix-paths.patch
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
diff --git a/data/org.gnome.Shell-disable-extensions.service b/data/org.gnome.Shell-disable-extensions.service
|
||||
index de91167c5..1c9965678 100644
|
||||
--- a/data/org.gnome.Shell-disable-extensions.service
|
||||
+++ b/data/org.gnome.Shell-disable-extensions.service
|
||||
@@ -11,5 +11,5 @@ ConditionPathExists=%t/gnome-shell-disable-extensions
|
||||
[Service]
|
||||
Type=simple
|
||||
# Disable extensions
|
||||
-ExecStart=gsettings set org.gnome.shell disable-user-extensions true
|
||||
+ExecStart=@gsettings@ set org.gnome.shell disable-user-extensions true
|
||||
Restart=no
|
||||
diff --git a/js/ui/extensionDownloader.js b/js/ui/extensionDownloader.js
|
||||
index 8bf4646a6..59e88bb4c 100644
|
||||
--- a/js/ui/extensionDownloader.js
|
||||
+++ b/js/ui/extensionDownloader.js
|
||||
@@ -114,7 +114,7 @@ async function extractExtensionArchive(bytes, dir) {
|
||||
stream.close_async(GLib.PRIORITY_DEFAULT, null);
|
||||
|
||||
const unzip = Gio.Subprocess.new(
|
||||
- ['unzip', '-uod', dir.get_path(), '--', file.get_path()],
|
||||
+ ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()],
|
||||
Gio.SubprocessFlags.NONE);
|
||||
await unzip.wait_check_async(null);
|
||||
}
|
||||
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||
index bc50f3d37..868eb5abf 100644
|
||||
--- a/js/ui/status/keyboard.js
|
||||
+++ b/js/ui/status/keyboard.js
|
||||
@@ -1080,6 +1080,6 @@ class InputSourceIndicator extends PanelMenu.Button {
|
||||
if (xkbVariant.length > 0)
|
||||
description = '%s\t%s'.format(description, xkbVariant);
|
||||
|
||||
- Util.spawn(['gkbd-keyboard-display', '-l', description]);
|
||||
+ Util.spawn(['@libgnomekbd@/bin/gkbd-keyboard-display', '-l', description]);
|
||||
}
|
||||
});
|
||||
11
pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch
Normal file
11
pkgs/desktops/gnome/core/gnome-shell/shew-gir-path.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- a/subprojects/shew/src/meson.build
|
||||
+++ b/subprojects/shew/src/meson.build
|
||||
@@ -13,7 +13,7 @@ shew_sources = [
|
||||
libshew = library(full_name,
|
||||
sources: shew_sources,
|
||||
dependencies: [gtk_dep, x11_dep],
|
||||
- install_dir: pkglibdir,
|
||||
+ install_dir: get_option('prefix') / pkglibdir,
|
||||
install: true,
|
||||
)
|
||||
|
||||
57
pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch
Normal file
57
pkgs/desktops/gnome/core/gnome-shell/wrap-services.patch
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
diff --git a/js/dbusServices/dbus-service.in b/js/dbusServices/dbus-service.in
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 524166102..6d0722a1c
|
||||
--- a/js/dbusServices/dbus-service.in
|
||||
+++ b/js/dbusServices/dbus-service.in
|
||||
@@ -1,3 +1,9 @@
|
||||
+#!@gjs@
|
||||
+
|
||||
+// gjs determines the package name from argv[0], which is .*-wrapped
|
||||
+// so we need to override it to the original one.
|
||||
+imports.package._findEffectiveEntryPointName = () => '@service@'
|
||||
+
|
||||
imports.package.start({
|
||||
name: '@PACKAGE_NAME@',
|
||||
prefix: '@prefix@',
|
||||
diff --git a/js/dbusServices/dbus-service.service.in b/js/dbusServices/dbus-service.service.in
|
||||
index 3b0d09abe..4fd4bb66d 100644
|
||||
--- a/js/dbusServices/dbus-service.service.in
|
||||
+++ b/js/dbusServices/dbus-service.service.in
|
||||
@@ -1,3 +1,3 @@
|
||||
[D-BUS Service]
|
||||
Name=@service@
|
||||
-Exec=@gjs@ @pkgdatadir@/@service@
|
||||
+Exec=@pkgdatadir@/@service@
|
||||
diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
|
||||
index eb941ed90..552051e5a 100644
|
||||
--- a/js/dbusServices/meson.build
|
||||
+++ b/js/dbusServices/meson.build
|
||||
@@ -2,6 +2,7 @@ launcherconf = configuration_data()
|
||||
launcherconf.set('PACKAGE_NAME', meson.project_name())
|
||||
launcherconf.set('prefix', prefix)
|
||||
launcherconf.set('libdir', libdir)
|
||||
+launcherconf.set('gjs', gjs.full_path())
|
||||
|
||||
dbus_services = {
|
||||
'org.gnome.Shell.Extensions': 'extensions',
|
||||
@@ -18,16 +19,17 @@ endif
|
||||
config_dir = '@0@/..'.format(meson.current_build_dir())
|
||||
|
||||
foreach service, dir : dbus_services
|
||||
+ svc_launcherconf = launcherconf
|
||||
+ svc_launcherconf.set('service', service)
|
||||
configure_file(
|
||||
input: 'dbus-service.in',
|
||||
output: service,
|
||||
- configuration: launcherconf,
|
||||
+ configuration: svc_launcherconf,
|
||||
install_dir: pkgdatadir,
|
||||
)
|
||||
|
||||
serviceconf = configuration_data()
|
||||
serviceconf.set('service', service)
|
||||
- serviceconf.set('gjs', gjs.full_path())
|
||||
serviceconf.set('pkgdatadir', pkgdatadir)
|
||||
|
||||
configure_file(
|
||||
120
pkgs/desktops/gnome/core/gnome-software/default.nix
Normal file
120
pkgs/desktops/gnome/core/gnome-software/default.nix
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, substituteAll
|
||||
, pkg-config
|
||||
, meson
|
||||
, ninja
|
||||
, gettext
|
||||
, gnome
|
||||
, wrapGAppsHook
|
||||
, packagekit
|
||||
, ostree
|
||||
, glib
|
||||
, appstream
|
||||
, libsoup
|
||||
, libadwaita
|
||||
, polkit
|
||||
, isocodes
|
||||
, gspell
|
||||
, libxslt
|
||||
, gobject-introspection
|
||||
, flatpak
|
||||
, fwupd
|
||||
, gtk4
|
||||
, gsettings-desktop-schemas
|
||||
, gnome-desktop
|
||||
, libxmlb
|
||||
, json-glib
|
||||
, libsecret
|
||||
, valgrind-light
|
||||
, docbook-xsl-nons
|
||||
, docbook_xml_dtd_42
|
||||
, docbook_xml_dtd_43
|
||||
, gtk-doc
|
||||
, desktop-file-utils
|
||||
, libsysprof-capture
|
||||
}:
|
||||
|
||||
let
|
||||
withFwupd = stdenv.hostPlatform.isx86;
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-software";
|
||||
version = "42.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "6ENJYyp/XQhmzlwMVi5f6oQRoF8ickRBzZqCQgRiMiQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit isocodes;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
wrapGAppsHook
|
||||
libxslt
|
||||
docbook_xml_dtd_42
|
||||
docbook_xml_dtd_43
|
||||
valgrind-light
|
||||
docbook-xsl-nons
|
||||
gtk-doc
|
||||
desktop-file-utils
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk4
|
||||
glib
|
||||
packagekit
|
||||
appstream
|
||||
libsoup
|
||||
libadwaita
|
||||
gsettings-desktop-schemas
|
||||
gnome-desktop
|
||||
gspell
|
||||
json-glib
|
||||
libsecret
|
||||
ostree
|
||||
polkit
|
||||
flatpak
|
||||
libxmlb
|
||||
libsysprof-capture
|
||||
] ++ lib.optionals withFwupd [
|
||||
fwupd
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dgudev=false"
|
||||
# FIXME: package malcontent parental controls
|
||||
"-Dmalcontent=false"
|
||||
# Needs flatpak to upgrade
|
||||
"-Dsoup2=true"
|
||||
] ++ lib.optionals (!withFwupd) [
|
||||
"-Dfwupd=false"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.gnome-software";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Software store that lets you install and update applications and system extensions";
|
||||
homepage = "https://wiki.gnome.org/Apps/Software";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
11
pkgs/desktops/gnome/core/gnome-software/fix-paths.patch
Normal file
11
pkgs/desktops/gnome/core/gnome-software/fix-paths.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- a/src/gs-language.c
|
||||
+++ b/src/gs-language.c
|
||||
@@ -95,7 +95,7 @@
|
||||
g_autoptr(GMarkupParseContext) context = NULL;
|
||||
|
||||
/* find filename */
|
||||
- filename = g_build_filename (DATADIR, "xml", "iso-codes", "iso_639.xml", NULL);
|
||||
+ filename = g_build_filename ("@isocodes@", "share", "xml", "iso-codes", "iso_639.xml", NULL);
|
||||
if (!g_file_test (filename, G_FILE_TEST_EXISTS)) {
|
||||
g_free (filename);
|
||||
filename = g_build_filename ("/usr", "share", "xml", "iso-codes", "iso_639.xml", NULL);
|
||||
73
pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
Normal file
73
pkgs/desktops/gnome/core/gnome-system-monitor/default.nix
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, gettext
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gtkmm3
|
||||
, libxml2
|
||||
, bash
|
||||
, gtk3
|
||||
, libhandy
|
||||
, glib
|
||||
, wrapGAppsHook
|
||||
, meson
|
||||
, ninja
|
||||
, gsettings-desktop-schemas
|
||||
, itstool
|
||||
, gnome
|
||||
, librsvg
|
||||
, gdk-pixbuf
|
||||
, libgtop
|
||||
, systemd
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-system-monitor";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-system-monitor/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "EyOdIgMiAaIr0pgzxXW2hIFnANLeFooVMCI1d8XAddw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
wrapGAppsHook
|
||||
meson
|
||||
ninja
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
bash
|
||||
gtk3
|
||||
libhandy
|
||||
glib
|
||||
libxml2
|
||||
gtkmm3
|
||||
libgtop
|
||||
gdk-pixbuf
|
||||
gnome.adwaita-icon-theme
|
||||
librsvg
|
||||
gsettings-desktop-schemas
|
||||
systemd
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-system-monitor";
|
||||
attrPath = "gnome.gnome-system-monitor";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/SystemMonitor";
|
||||
description = "System Monitor shows you what programs are running and how much processor time, memory, and disk space are being used";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
95
pkgs/desktops/gnome/core/gnome-terminal/default.nix
Normal file
95
pkgs/desktops/gnome/core/gnome-terminal/default.nix
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, libxml2
|
||||
, gnome
|
||||
, dconf
|
||||
, nautilus
|
||||
, glib
|
||||
, gtk3
|
||||
, gsettings-desktop-schemas
|
||||
, vte
|
||||
, gettext
|
||||
, which
|
||||
, libuuid
|
||||
, vala
|
||||
, desktop-file-utils
|
||||
, itstool
|
||||
, wrapGAppsHook
|
||||
, pcre2
|
||||
, libxslt
|
||||
, docbook-xsl-nons
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-terminal";
|
||||
version = "3.44.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-terminal/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "+28g7h/yMamq7asT1dxuWmTJVXESJISLeQCG6IlZ03s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
gettext
|
||||
itstool
|
||||
which
|
||||
libxml2
|
||||
libxslt
|
||||
glib # for glib-compile-schemas
|
||||
docbook-xsl-nons
|
||||
vala
|
||||
desktop-file-utils
|
||||
wrapGAppsHook
|
||||
pcre2
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gtk3
|
||||
gsettings-desktop-schemas
|
||||
vte
|
||||
libuuid
|
||||
dconf
|
||||
nautilus # For extension
|
||||
];
|
||||
|
||||
# Silly build system, it looks for dbus file from gnome-shell in the
|
||||
# installation tree of the package it is configuring.
|
||||
postPatch = ''
|
||||
substituteInPlace src/meson.build \
|
||||
--replace "gt_prefix / gt_dbusinterfacedir / 'org.gnome.ShellSearchProvider2.xml'" \
|
||||
"'${gnome.gnome-shell}/share/dbus-1/interfaces/org.gnome.ShellSearchProvider2.xml'"
|
||||
|
||||
patchShebangs \
|
||||
data/icons/meson_updateiconcache.py \
|
||||
data/meson_desktopfile.py \
|
||||
src/meson_compileschemas.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-terminal";
|
||||
attrPath = "gnome.gnome-terminal";
|
||||
};
|
||||
};
|
||||
|
||||
passthru.tests.test = nixosTests.terminal-emulators.gnome-terminal;
|
||||
|
||||
meta = with lib; {
|
||||
description = "The GNOME Terminal Emulator";
|
||||
homepage = "https://wiki.gnome.org/Apps/Terminal";
|
||||
platforms = platforms.linux;
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
35
pkgs/desktops/gnome/core/gnome-themes-extra/default.nix
Normal file
35
pkgs/desktops/gnome/core/gnome-themes-extra/default.nix
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{ lib, stdenv, fetchurl, intltool, gtk3, gnome, librsvg, pkg-config, pango, atk, gtk2
|
||||
, gdk-pixbuf, hicolor-icon-theme }:
|
||||
|
||||
let
|
||||
pname = "gnome-themes-extra";
|
||||
version = "3.28";
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "06aqg9asq2vqi9wr29bs4v8z2bf4manhbhfghf4nvw01y2zs0jvw";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config intltool ];
|
||||
buildInputs = [ gtk3 librsvg pango atk gtk2 gdk-pixbuf ];
|
||||
propagatedBuildInputs = [ gnome.adwaita-icon-theme hicolor-icon-theme ];
|
||||
|
||||
dontDropIconThemeCache = true;
|
||||
|
||||
postInstall = ''
|
||||
gtk-update-icon-cache "$out"/share/icons/HighContrast
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
70
pkgs/desktops/gnome/core/gnome-tour/default.nix
Normal file
70
pkgs/desktops/gnome/core/gnome-tour/default.nix
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, rustPlatform
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, gtk4
|
||||
, glib
|
||||
, gdk-pixbuf
|
||||
, desktop-file-utils
|
||||
, appstream-glib
|
||||
, wrapGAppsHook
|
||||
, python3
|
||||
, gnome
|
||||
, libadwaita
|
||||
, librsvg
|
||||
, rustc
|
||||
, cargo
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-tour";
|
||||
version = "42.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-/PGsaJBX2oZZaXDsPag1VSHApy6VBj6wWdX+5N6oL08=";
|
||||
};
|
||||
|
||||
cargoVendorDir = "vendor";
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
cargo
|
||||
desktop-file-utils
|
||||
gettext
|
||||
glib # glib-compile-resources
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
rustPlatform.cargoSetupHook
|
||||
rustc
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk4
|
||||
libadwaita
|
||||
librsvg
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gitlab.gnome.org/GNOME/gnome-tour";
|
||||
description = "GNOME Greeter & Tour";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
101
pkgs/desktops/gnome/core/gnome-user-share/default.nix
Normal file
101
pkgs/desktops/gnome/core/gnome-user-share/default.nix
Normal file
|
|
@ -0,0 +1,101 @@
|
|||
{ lib, stdenv
|
||||
, gettext
|
||||
, meson
|
||||
, ninja
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, apacheHttpd
|
||||
, nautilus
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, libxml2
|
||||
, systemd
|
||||
, wrapGAppsHook
|
||||
, itstool
|
||||
, libnotify
|
||||
, mod_dnssd
|
||||
, gnome
|
||||
, libcanberra-gtk3
|
||||
, python3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-user-share";
|
||||
version = "3.34.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "04r9ck9v4i0d31grbli1d4slw2d6dcsfkpaybkwbzi7wnj72l30x";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix gio-unix-2.0 lookup
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-user-share/commit/8772980d4732c15505b15dccff2ca3c97e96d49d.patch";
|
||||
sha256 = "03clzhrx72pq1cbmg2y24hvw4i1xsvrg9ip113fi5bc3w4gcji7p";
|
||||
})
|
||||
# fix compilation with meson >=0.61
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-user-share/-/commit/c31b0a8f33b95c0077cd5ee2102a71a49bee8abe.patch";
|
||||
hash = "sha256-kH+cPBmSErWxsw+IyyjWgENi4I3ZcKjSA9+em8u4DYs=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
sed -e 's,^LoadModule dnssd_module.\+,LoadModule dnssd_module ${mod_dnssd}/modules/mod_dnssd.so,' \
|
||||
-e 's,''${HTTP_MODULES_PATH},${apacheHttpd}/modules,' \
|
||||
-i data/dav_user_2.4.conf
|
||||
'';
|
||||
|
||||
mesonFlags = [
|
||||
"-Dhttpd=${apacheHttpd.out}/bin/httpd"
|
||||
"-Dmodules_path=${apacheHttpd}/modules"
|
||||
"-Dsystemduserunitdir=${placeholder "out"}/etc/systemd/user"
|
||||
# In 3.34.0 it defaults to false but it is silently ignored and always installed.
|
||||
# Let’s add it anyway in case they decide to make build respect the option in the future.
|
||||
"-Dnautilus_extension=true"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
itstool
|
||||
libxml2
|
||||
wrapGAppsHook
|
||||
python3
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
nautilus
|
||||
libnotify
|
||||
libcanberra-gtk3
|
||||
systemd
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://help.gnome.org/users/gnome-user-share/3.8";
|
||||
description = "Service that exports the contents of the Public folder in your home directory on the local network";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
109
pkgs/desktops/gnome/core/gucharmap/default.nix
Normal file
109
pkgs/desktops/gnome/core/gucharmap/default.nix
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, intltool
|
||||
, fetchFromGitLab
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, python3
|
||||
, gtk3
|
||||
, pcre2
|
||||
, glib
|
||||
, desktop-file-utils
|
||||
, gtk-doc
|
||||
, wrapGAppsHook
|
||||
, itstool
|
||||
, libxml2
|
||||
, yelp-tools
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_412
|
||||
, gsettings-desktop-schemas
|
||||
, callPackage
|
||||
, unzip
|
||||
, unicode-character-database
|
||||
, unihan-database
|
||||
, runCommand
|
||||
, symlinkJoin
|
||||
, gobject-introspection
|
||||
, nix-update-script
|
||||
}:
|
||||
|
||||
let
|
||||
# TODO: make upstream patch allowing to use the uncompressed file,
|
||||
# preferably from XDG_DATA_DIRS.
|
||||
# https://gitlab.gnome.org/GNOME/gucharmap/issues/13
|
||||
unihanZip = runCommand "unihan" {} ''
|
||||
mkdir -p $out/share/unicode
|
||||
ln -s ${unihan-database.src} $out/share/unicode/Unihan.zip
|
||||
'';
|
||||
ucd = symlinkJoin {
|
||||
name = "ucd+unihan";
|
||||
paths = [
|
||||
unihanZip
|
||||
unicode-character-database
|
||||
];
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "gucharmap";
|
||||
version = "14.0.3";
|
||||
|
||||
outputs = [ "out" "lib" "dev" "devdoc" ];
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.gnome.org";
|
||||
owner = "GNOME";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-xO34CR+SWxtHuP6G8m0jla0rivVp3ddrsODNo50MhHw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
unzip
|
||||
intltool
|
||||
itstool
|
||||
gtk-doc
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_412
|
||||
yelp-tools
|
||||
libxml2
|
||||
desktop-file-utils
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
pcre2
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Ducd_path=${ucd}/share/unicode"
|
||||
"-Dvapi=false"
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs data/meson_desktopfile.py gucharmap/gen-guch-unicode-tables.pl gucharmap/meson_compileschemas.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = nix-update-script {
|
||||
attrPath = "gnome.gucharmap";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "GNOME Character Map, based on the Unicode Character Database";
|
||||
homepage = "https://wiki.gnome.org/Apps/Gucharmap";
|
||||
license = licenses.gpl3;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
32
pkgs/desktops/gnome/core/libgnome-keyring/default.nix
Normal file
32
pkgs/desktops/gnome/core/libgnome-keyring/default.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ lib, stdenv, fetchurl, glib, dbus, libgcrypt, pkg-config, intltool, gobject-introspection, gnome }:
|
||||
|
||||
let
|
||||
pname = "libgnome-keyring";
|
||||
version = "3.12.0";
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
propagatedBuildInputs = [ glib gobject-introspection dbus libgcrypt ];
|
||||
nativeBuildInputs = [ pkg-config intltool ];
|
||||
|
||||
meta = {
|
||||
description = "Framework for managing passwords and other secrets";
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeKeyring";
|
||||
license = with lib.licenses; [ gpl2Plus lgpl2Plus ];
|
||||
inherit (glib.meta) platforms maintainers;
|
||||
|
||||
longDescription = ''
|
||||
gnome-keyring is a program that keeps password and other secrets for
|
||||
users. The library libgnome-keyring is used by applications to integrate
|
||||
with the gnome-keyring system.
|
||||
'';
|
||||
};
|
||||
}
|
||||
164
pkgs/desktops/gnome/core/mutter/3.38/default.nix
Normal file
164
pkgs/desktops/gnome/core/mutter/3.38/default.nix
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
{ fetchurl
|
||||
, substituteAll
|
||||
, runCommand
|
||||
, lib
|
||||
, stdenv
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gettext
|
||||
, gobject-introspection
|
||||
, cairo
|
||||
, pango
|
||||
, json-glib
|
||||
, libstartup_notification
|
||||
, zenity
|
||||
, libcanberra
|
||||
, ninja
|
||||
, xkeyboard_config
|
||||
, libxkbfile
|
||||
, libXdamage
|
||||
, libxkbcommon
|
||||
, libXtst
|
||||
, libinput
|
||||
, libdrm
|
||||
, gsettings-desktop-schemas
|
||||
, glib
|
||||
, gtk3
|
||||
, gnome-desktop
|
||||
, pipewire
|
||||
, libgudev
|
||||
, libwacom
|
||||
, xwayland
|
||||
, mesa
|
||||
, meson
|
||||
, gnome-settings-daemon
|
||||
, xorgserver
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, sysprof
|
||||
, desktop-file-utils
|
||||
, libcap_ng
|
||||
, egl-wayland
|
||||
, graphene
|
||||
, wayland-protocols
|
||||
, pantheon
|
||||
}:
|
||||
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "mutter";
|
||||
version = "3.38.6";
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/mutter/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "0mxln9azl4krmknq2vmhd15lgpa2q7gh7whiv14nsqbr9iaxmg2x";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
|
||||
# from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
|
||||
./drop-inheritable.patch
|
||||
|
||||
# Fixes issues for users of mutter like in gala.
|
||||
# https://github.com/elementary/gala/issues/605
|
||||
# https://gitlab.gnome.org/GNOME/mutter/issues/536
|
||||
./fix-glitches-in-gala.patch
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit zenity;
|
||||
})
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Degl_device=true"
|
||||
"-Dinstalled_tests=false" # TODO: enable these
|
||||
"-Dwayland_eglstream=true"
|
||||
"-Dprofiler=true"
|
||||
"-Dxwayland_path=${xwayland}/bin/Xwayland"
|
||||
# This should be auto detected, but it looks like it manages a false
|
||||
# positive.
|
||||
"-Dxwayland_initfd=disabled"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
# required for pkg-config to detect mutter-clutter
|
||||
json-glib
|
||||
libXtst
|
||||
libcap_ng
|
||||
graphene
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
mesa # needed for gbm
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
xorgserver # for cvt command
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
egl-wayland
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome-settings-daemon
|
||||
gobject-introspection
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
libcanberra
|
||||
libdrm
|
||||
libgudev
|
||||
libinput
|
||||
libstartup_notification
|
||||
libwacom
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libXdamage
|
||||
pango
|
||||
pipewire
|
||||
sysprof
|
||||
xkeyboard_config
|
||||
xwayland
|
||||
wayland-protocols
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/backends/native/gen-default-modes.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
|
||||
'';
|
||||
|
||||
# Install udev files into our own tree.
|
||||
PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
|
||||
|
||||
passthru = {
|
||||
libdir = "${self}/lib/mutter-7";
|
||||
|
||||
tests = {
|
||||
libdirExists = runCommand "mutter-libdir-exists" {} ''
|
||||
if [[ ! -d ${self.libdir} ]]; then
|
||||
echo "passthru.libdir should contain a directory, “${self.libdir}” is not one."
|
||||
exit 1
|
||||
fi
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A window manager for GNOME";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/mutter";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.pantheon.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
};
|
||||
in self
|
||||
132
pkgs/desktops/gnome/core/mutter/3.38/drop-inheritable.patch
Normal file
132
pkgs/desktops/gnome/core/mutter/3.38/drop-inheritable.patch
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
From e9c772e265b2293af031c79f4bbc99b5847dfe3c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Tor=20Hedin=20Br=C3=B8nner?= <torhedinbronner@gmail.com>
|
||||
Date: Sat, 19 Oct 2019 13:26:05 +0200
|
||||
Subject: [PATCH] drop inheritable
|
||||
|
||||
Adapted from https://gitlab.gnome.org/GNOME/mutter/commit/c53c47ae123b03cc66044d2b846342123ecb3a01
|
||||
|
||||
We only want to drop inheritable though, to prevent the ambient set leaking further than gnome-shell.
|
||||
|
||||
---
|
||||
config.h.meson | 3 +++
|
||||
meson.build | 5 +++++
|
||||
meson_options.txt | 6 ++++++
|
||||
src/core/main.c | 11 +++++++++++
|
||||
src/meson.build | 1 +
|
||||
5 files changed, 26 insertions(+)
|
||||
|
||||
diff --git a/config.h.meson b/config.h.meson
|
||||
index 0bab71848..202fb7ed1 100644
|
||||
--- a/config.h.meson
|
||||
+++ b/config.h.meson
|
||||
@@ -58,6 +58,9 @@
|
||||
/* Xwayland applications allowed to issue keyboard grabs */
|
||||
#mesondefine XWAYLAND_GRAB_DEFAULT_ACCESS_RULES
|
||||
|
||||
+/* Defined if libcap-ng is available */
|
||||
+#mesondefine HAVE_LIBCAPNG
|
||||
+
|
||||
/* XKB base prefix */
|
||||
#mesondefine XKB_BASE
|
||||
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 3322bd3b1..01c8020fa 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -35,6 +35,7 @@ libstartup_notification_req = '>= 0.7'
|
||||
libcanberra_req = '>= 0.26'
|
||||
libwacom_req = '>= 0.13'
|
||||
atk_req = '>= 2.5.3'
|
||||
+libcapng_req = '>= 0.7.9'
|
||||
|
||||
# optional version requirements
|
||||
udev_req = '>= 228'
|
||||
@@ -131,6 +131,7 @@ ice_dep = dependency('ice')
|
||||
atk_dep = dependency('atk', version: atk_req)
|
||||
libcanberra_dep = dependency('libcanberra', version: libcanberra_req)
|
||||
dbus_dep = dependency('dbus-1')
|
||||
+libcapng_dep = dependency('libcap-ng', required: get_option('libcapng'))
|
||||
|
||||
# For now always require X11 support
|
||||
have_x11 = true
|
||||
@@ -256,6 +258,7 @@ have_core_tests = false
|
||||
have_cogl_tests = false
|
||||
have_clutter_tests = false
|
||||
have_installed_tests = false
|
||||
+have_libcapng = libcapng_dep.found()
|
||||
|
||||
if have_tests
|
||||
have_core_tests = get_option('core_tests')
|
||||
@@ -361,6 +364,7 @@ cdata.set('HAVE_LIBWACOM', have_libwacom)
|
||||
cdata.set('HAVE_SM', have_sm)
|
||||
cdata.set('HAVE_STARTUP_NOTIFICATION', have_startup_notification)
|
||||
cdata.set('HAVE_INTROSPECTION', have_introspection)
|
||||
+cdata.set('HAVE_LIBCAPNG', have_libcapng)
|
||||
cdata.set('HAVE_PROFILER', have_profiler)
|
||||
|
||||
xkb_base = xkeyboard_config_dep.get_pkgconfig_variable('xkb_base')
|
||||
@@ -465,6 +465,7 @@ output = [
|
||||
' Introspection............ ' + have_introspection.to_string(),
|
||||
' Profiler................. ' + have_profiler.to_string(),
|
||||
' Xwayland initfd.......... ' + have_xwayland_initfd.to_string(),
|
||||
+ ' libcap-ng................ ' + have_libcapng.to_string(),
|
||||
'',
|
||||
' Tests:',
|
||||
'',
|
||||
diff --git a/meson_options.txt b/meson_options.txt
|
||||
index 73aa7adde..8bfaacd9a 100644
|
||||
--- a/meson_options.txt
|
||||
+++ b/meson_options.txt
|
||||
@@ -152,3 +152,9 @@ option('xwayland_grab_default_access_rules',
|
||||
value: 'gnome-boxes,remote-viewer,virt-viewer,virt-manager,vinagre,vncviewer,Xephyr',
|
||||
description: 'Comma delimited list of applications ressources or class allowed to issue X11 grabs in Xwayland'
|
||||
)
|
||||
+
|
||||
+option('libcapng',
|
||||
+ type: 'feature',
|
||||
+ value: 'auto',
|
||||
+ description: 'Enable libcap-ng support'
|
||||
+)
|
||||
diff --git a/src/core/main.c b/src/core/main.c
|
||||
index 7f4f666d2..b27968f13 100644
|
||||
--- a/src/core/main.c
|
||||
+++ b/src/core/main.c
|
||||
@@ -66,6 +66,10 @@
|
||||
#include <girepository.h>
|
||||
#endif
|
||||
|
||||
+#ifdef HAVE_LIBCAPNG
|
||||
+#include <cap-ng.h>
|
||||
+#endif
|
||||
+
|
||||
#if defined(HAVE_NATIVE_BACKEND) && defined(HAVE_WAYLAND)
|
||||
#include <systemd/sd-login.h>
|
||||
#endif /* HAVE_WAYLAND && HAVE_NATIVE_BACKEND */
|
||||
@@ -670,5 +674,12 @@ int
|
||||
meta_run (void)
|
||||
{
|
||||
meta_start ();
|
||||
+
|
||||
+#ifdef HAVE_LIBCAPNG
|
||||
+ capng_clear(CAPNG_SELECT_BOTH);
|
||||
+ capng_update(CAPNG_ADD, CAPNG_EFFECTIVE|CAPNG_PERMITTED, CAP_SYS_NICE);
|
||||
+ capng_apply(CAPNG_SELECT_BOTH);
|
||||
+#endif
|
||||
+
|
||||
meta_run_main_loop ();
|
||||
meta_finalize ();
|
||||
diff --git a/src/meson.build b/src/meson.build
|
||||
index 90d80734f..a9fffa2c2 100644
|
||||
--- a/src/meson.build
|
||||
+++ b/src/meson.build
|
||||
@@ -18,6 +18,7 @@ mutter_pkg_deps = [
|
||||
glib_dep,
|
||||
gsettings_desktop_schemas_dep,
|
||||
gtk3_dep,
|
||||
+ libcapng_dep,
|
||||
pango_dep,
|
||||
]
|
||||
|
||||
--
|
||||
2.23.0
|
||||
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
From a58ace29db48f98ad59f4f309d49b458c68a6eec Mon Sep 17 00:00:00 2001
|
||||
From: Bobby Rong <rjl931189261@126.com>
|
||||
Date: Wed, 28 Jul 2021 22:08:11 +0800
|
||||
Subject: [PATCH] Fix glitches in gala
|
||||
|
||||
Co-Authored-By: WORLDofPEACE <worldofpeace@protonmail.ch>
|
||||
|
||||
This fixes issues for users of mutter like in gala[0].
|
||||
|
||||
Upstream report: https://gitlab.gnome.org/GNOME/mutter/issues/536
|
||||
[0]: https://github.com/elementary/gala/issues/605
|
||||
---
|
||||
clutter/clutter/clutter-actor.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/clutter/clutter/clutter-actor.c b/clutter/clutter/clutter-actor.c
|
||||
index febfb31918..71906000c0 100644
|
||||
--- a/clutter/clutter/clutter-actor.c
|
||||
+++ b/clutter/clutter/clutter-actor.c
|
||||
@@ -15926,7 +15926,6 @@ _clutter_actor_get_paint_volume_mutable (ClutterActor *self)
|
||||
if (_clutter_actor_get_paint_volume_real (self, &priv->paint_volume))
|
||||
{
|
||||
priv->paint_volume_valid = TRUE;
|
||||
- priv->needs_paint_volume_update = FALSE;
|
||||
return &priv->paint_volume;
|
||||
}
|
||||
else
|
||||
13
pkgs/desktops/gnome/core/mutter/3.38/fix-paths.patch
Normal file
13
pkgs/desktops/gnome/core/mutter/3.38/fix-paths.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/core/util.c b/src/core/util.c
|
||||
index 57b73747d..f424cc81c 100644
|
||||
--- a/src/core/util.c
|
||||
+++ b/src/core/util.c
|
||||
@@ -636,7 +636,7 @@ meta_show_dialog (const char *type,
|
||||
|
||||
args = g_ptr_array_new ();
|
||||
|
||||
- append_argument (args, "zenity");
|
||||
+ append_argument (args, "@zenity@/bin/zenity");
|
||||
append_argument (args, type);
|
||||
|
||||
if (display)
|
||||
165
pkgs/desktops/gnome/core/mutter/default.nix
Normal file
165
pkgs/desktops/gnome/core/mutter/default.nix
Normal file
|
|
@ -0,0 +1,165 @@
|
|||
{ fetchurl
|
||||
, substituteAll
|
||||
, runCommand
|
||||
, lib
|
||||
, stdenv
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gettext
|
||||
, gobject-introspection
|
||||
, cairo
|
||||
, pango
|
||||
, json-glib
|
||||
, libstartup_notification
|
||||
, zenity
|
||||
, libcanberra
|
||||
, ninja
|
||||
, xvfb-run
|
||||
, xkeyboard_config
|
||||
, libxkbfile
|
||||
, libXdamage
|
||||
, libxkbcommon
|
||||
, libXtst
|
||||
, libinput
|
||||
, libdrm
|
||||
, gsettings-desktop-schemas
|
||||
, glib
|
||||
, gtk3
|
||||
, gnome-desktop
|
||||
, pipewire
|
||||
, libgudev
|
||||
, libwacom
|
||||
, xwayland
|
||||
, mesa
|
||||
, meson
|
||||
, gnome-settings-daemon
|
||||
, xorgserver
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, sysprof
|
||||
, desktop-file-utils
|
||||
, libcap_ng
|
||||
, egl-wayland
|
||||
, graphene
|
||||
, wayland-protocols
|
||||
}:
|
||||
|
||||
let self = stdenv.mkDerivation rec {
|
||||
pname = "mutter";
|
||||
version = "42.2";
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/mutter/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "vTDXi+fRcAE6CovMg3zsXubETXcP8AZ03N/CizQms0w=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
|
||||
# from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
|
||||
# ./drop-inheritable.patch
|
||||
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit zenity;
|
||||
})
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Degl_device=true"
|
||||
"-Dinstalled_tests=false" # TODO: enable these
|
||||
"-Dwayland_eglstream=true"
|
||||
"-Dprofiler=true"
|
||||
"-Dxwayland_path=${xwayland}/bin/Xwayland"
|
||||
# This should be auto detected, but it looks like it manages a false
|
||||
# positive.
|
||||
"-Dxwayland_initfd=disabled"
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
# required for pkg-config to detect mutter-clutter
|
||||
json-glib
|
||||
libXtst
|
||||
libcap_ng
|
||||
graphene
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
mesa # needed for gbm
|
||||
meson
|
||||
ninja
|
||||
xvfb-run
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
xorgserver # for cvt command
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
cairo
|
||||
egl-wayland
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome-settings-daemon
|
||||
gobject-introspection
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
libcanberra
|
||||
libdrm
|
||||
libgudev
|
||||
libinput
|
||||
libstartup_notification
|
||||
libwacom
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libXdamage
|
||||
pango
|
||||
pipewire
|
||||
sysprof
|
||||
xkeyboard_config
|
||||
xwayland
|
||||
wayland-protocols
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/backends/native/gen-default-modes.py
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
|
||||
'';
|
||||
|
||||
# Install udev files into our own tree.
|
||||
PKG_CONFIG_UDEV_UDEVDIR = "${placeholder "out"}/lib/udev";
|
||||
|
||||
passthru = {
|
||||
libdir = "${self}/lib/mutter-10";
|
||||
|
||||
tests = {
|
||||
libdirExists = runCommand "mutter-libdir-exists" {} ''
|
||||
if [[ ! -d ${self.libdir} ]]; then
|
||||
echo "passthru.libdir should contain a directory, “${self.libdir}” is not one."
|
||||
exit 1
|
||||
fi
|
||||
touch $out
|
||||
'';
|
||||
};
|
||||
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A window manager for GNOME";
|
||||
homepage = "https://gitlab.gnome.org/GNOME/mutter";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
};
|
||||
in self
|
||||
13
pkgs/desktops/gnome/core/mutter/fix-paths.patch
Normal file
13
pkgs/desktops/gnome/core/mutter/fix-paths.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/core/util.c b/src/core/util.c
|
||||
index 57b73747d..f424cc81c 100644
|
||||
--- a/src/core/util.c
|
||||
+++ b/src/core/util.c
|
||||
@@ -636,7 +636,7 @@ meta_show_dialog (const char *type,
|
||||
|
||||
args = g_ptr_array_new ();
|
||||
|
||||
- append_argument (args, "zenity");
|
||||
+ append_argument (args, "@zenity@/bin/zenity");
|
||||
append_argument (args, type);
|
||||
|
||||
if (display)
|
||||
119
pkgs/desktops/gnome/core/nautilus/default.nix
Normal file
119
pkgs/desktops/gnome/core/nautilus/default.nix
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gettext
|
||||
, libxml2
|
||||
, desktop-file-utils
|
||||
, python3
|
||||
, wrapGAppsHook
|
||||
, gtk3
|
||||
, libhandy
|
||||
, libportal-gtk3
|
||||
, gnome
|
||||
, gnome-autoar
|
||||
, glib-networking
|
||||
, shared-mime-info
|
||||
, libnotify
|
||||
, libexif
|
||||
, libseccomp
|
||||
, librsvg
|
||||
, tracker
|
||||
, tracker-miners
|
||||
, gexiv2
|
||||
, libselinux
|
||||
, gdk-pixbuf
|
||||
, substituteAll
|
||||
, gnome-desktop
|
||||
, gst_all_1
|
||||
, gsettings-desktop-schemas
|
||||
, gobject-introspection
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nautilus";
|
||||
version = "42.2";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "mSEtLrdZlvGBcorQSi4thvJXewZOaKNMi4GnA330zLI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Allow changing extension directory using environment variable.
|
||||
./extension_dir.patch
|
||||
|
||||
# Hardcode required paths.
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit tracker;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
desktop-file-utils
|
||||
gettext
|
||||
gobject-introspection
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gexiv2
|
||||
glib-networking
|
||||
gnome-desktop
|
||||
gnome.adwaita-icon-theme
|
||||
gsettings-desktop-schemas
|
||||
gst_all_1.gst-plugins-base
|
||||
gtk3
|
||||
libhandy
|
||||
libportal-gtk3
|
||||
libexif
|
||||
libnotify
|
||||
libseccomp
|
||||
libselinux
|
||||
shared-mime-info
|
||||
tracker
|
||||
tracker-miners
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
gnome-autoar
|
||||
];
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Thumbnailers
|
||||
--prefix XDG_DATA_DIRS : "${gdk-pixbuf}/share"
|
||||
--prefix XDG_DATA_DIRS : "${librsvg}/share"
|
||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs build-aux/meson/postinstall.py
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "The file manager for GNOME";
|
||||
homepage = "https://wiki.gnome.org/Apps/Files";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
24
pkgs/desktops/gnome/core/nautilus/extension_dir.patch
Normal file
24
pkgs/desktops/gnome/core/nautilus/extension_dir.patch
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
diff --git a/src/nautilus-module.c b/src/nautilus-module.c
|
||||
index 6273a76..4adcc8a 100644
|
||||
--- a/src/nautilus-module.c
|
||||
+++ b/src/nautilus-module.c
|
||||
@@ -242,11 +242,17 @@ void
|
||||
nautilus_module_setup (void)
|
||||
{
|
||||
static gboolean initialized = FALSE;
|
||||
+ const gchar* extensiondir = NULL;
|
||||
|
||||
if (!initialized)
|
||||
{
|
||||
initialized = TRUE;
|
||||
|
||||
- load_module_dir (NAUTILUS_EXTENSIONDIR);
|
||||
+ extensiondir = g_getenv ("NAUTILUS_EXTENSION_DIR");
|
||||
+ if (extensiondir == NULL) {
|
||||
+ extensiondir = NAUTILUS_EXTENSIONDIR;
|
||||
+ }
|
||||
+
|
||||
+ load_module_dir (extensiondir);
|
||||
|
||||
eel_debug_call_at_shutdown (free_module_objects);
|
||||
}
|
||||
13
pkgs/desktops/gnome/core/nautilus/fix-paths.patch
Normal file
13
pkgs/desktops/gnome/core/nautilus/fix-paths.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
diff --git a/src/nautilus-tag-manager.c b/src/nautilus-tag-manager.c
|
||||
index 28b96c996..0b1fad9ab 100644
|
||||
--- a/src/nautilus-tag-manager.c
|
||||
+++ b/src/nautilus-tag-manager.c
|
||||
@@ -962,7 +962,7 @@ child_watch_cb (GPid pid,
|
||||
static void
|
||||
export_tracker2_data (NautilusTagManager *self)
|
||||
{
|
||||
- gchar *argv[] = {"tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL};
|
||||
+ gchar *argv[] = {"@tracker@/bin/tracker3", "export", "--2to3", "files-starred", "--keyfile", NULL};
|
||||
gint stdout_fd;
|
||||
GPid child_pid;
|
||||
g_autoptr (GError) error = NULL;
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue