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
176
pkgs/desktops/gnome/misc/geary/default.nix
Normal file
176
pkgs/desktops/gnome/misc/geary/default.nix
Normal file
|
|
@ -0,0 +1,176 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, vala
|
||||
, enchant2
|
||||
, wrapGAppsHook
|
||||
, meson
|
||||
, ninja
|
||||
, desktop-file-utils
|
||||
, gnome-online-accounts
|
||||
, gsettings-desktop-schemas
|
||||
, adwaita-icon-theme
|
||||
, libpeas
|
||||
, libsecret
|
||||
, gmime3
|
||||
, isocodes
|
||||
, icu
|
||||
, libxml2
|
||||
, gettext
|
||||
, sqlite
|
||||
, gcr
|
||||
, json-glib
|
||||
, itstool
|
||||
, libgee
|
||||
, gnome
|
||||
, webkitgtk
|
||||
, python3
|
||||
, gnutls
|
||||
, cacert
|
||||
, xvfb-run
|
||||
, glibcLocales
|
||||
, dbus
|
||||
, shared-mime-info
|
||||
, libunwind
|
||||
, folks
|
||||
, glib-networking
|
||||
, gobject-introspection
|
||||
, gspell
|
||||
, appstream-glib
|
||||
, libstemmer
|
||||
, libytnef
|
||||
, libhandy
|
||||
, gsound
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "geary";
|
||||
version = "40.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "1c2nd35500ng28223y5pszc7fh8g16njj34f6p5xc9594lvj0mik";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix accessibility issues with initializer of constants (Fix build with vala 0.56)
|
||||
# https://gitlab.gnome.org/GNOME/geary/-/merge_requests/720
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/geary/-/commit/9bd4c82952a0a2c3308c5cc86c0b85650c1fb484.patch";
|
||||
sha256 = "sha256-mSms0MOfw8xHxOrEQwrIv+d4h01xLPgyvX2oWmmFQVw=";
|
||||
})
|
||||
# Util.Cache.Lru: Workaround missing generic type argument (Fix build with vala 0.56)
|
||||
# https://gitlab.gnome.org/GNOME/geary/-/merge_requests/721
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/geary/-/commit/0f75e7a84a39492d0748cec2ba6028e08cae3644.patch";
|
||||
sha256 = "sha256-1ADQqKm3DxtjDGPSThq3c7s5S+q/3u/qr9JQEsLaFMI=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
desktop-file-utils
|
||||
gettext
|
||||
gobject-introspection
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
enchant2
|
||||
folks
|
||||
gcr
|
||||
glib-networking
|
||||
gmime3
|
||||
gnome-online-accounts
|
||||
gsettings-desktop-schemas
|
||||
gsound
|
||||
gspell
|
||||
gtk3
|
||||
isocodes
|
||||
icu
|
||||
json-glib
|
||||
libgee
|
||||
libhandy
|
||||
libpeas
|
||||
libsecret
|
||||
libunwind
|
||||
libstemmer
|
||||
libytnef
|
||||
sqlite
|
||||
webkitgtk
|
||||
];
|
||||
|
||||
checkInputs = [
|
||||
dbus
|
||||
gnutls # for certtool
|
||||
cacert # trust store for glib-networking
|
||||
xvfb-run
|
||||
glibcLocales # required by Geary.ImapDb.DatabaseTest/utf8_case_insensitive_collation
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dprofile=release"
|
||||
"-Dcontractor=enabled" # install the contractor file (Pantheon specific)
|
||||
];
|
||||
|
||||
# NOTE: Remove `build-auxyaml_to_json.py` when no longer needed, see:
|
||||
# https://gitlab.gnome.org/GNOME/geary/commit/f7f72143e0f00ca5e0e6a798691805c53976ae31#0cc1139e3347f573ae1feee5b73dbc8a8a21fcfa
|
||||
postPatch = ''
|
||||
chmod +x build-aux/post_install.py build-aux/git_version.py
|
||||
|
||||
patchShebangs build-aux/post_install.py build-aux/git_version.py
|
||||
|
||||
chmod +x build-aux/yaml_to_json.py
|
||||
patchShebangs build-aux/yaml_to_json.py
|
||||
|
||||
chmod +x desktop/geary-attach
|
||||
'';
|
||||
|
||||
# Some tests time out.
|
||||
doCheck = false;
|
||||
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
NO_AT_BRIDGE=1 \
|
||||
GIO_EXTRA_MODULES=$GIO_EXTRA_MODULES:${glib-networking}/lib/gio/modules \
|
||||
HOME=$TMPDIR \
|
||||
XDG_DATA_DIRS=$XDG_DATA_DIRS:${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${shared-mime-info}/share:${folks}/share/gsettings-schemas/${folks.name} \
|
||||
xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
|
||||
--config-file=${dbus.daemon}/share/dbus-1/session.conf \
|
||||
meson test -v --no-stdsplit
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
# Add geary to path for geary-attach
|
||||
gappsWrapperArgs+=(--prefix PATH : "$out/bin")
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Geary";
|
||||
description = "Mail client for GNOME 3";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.lgpl21Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
105
pkgs/desktops/gnome/misc/gitg/default.nix
Normal file
105
pkgs/desktops/gnome/misc/gitg/default.nix
Normal file
|
|
@ -0,0 +1,105 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, vala
|
||||
, gettext
|
||||
, pkg-config
|
||||
, gtk3
|
||||
, glib
|
||||
, json-glib
|
||||
, wrapGAppsHook
|
||||
, libpeas
|
||||
, bash
|
||||
, gobject-introspection
|
||||
, libsoup
|
||||
, gtksourceview4
|
||||
, gsettings-desktop-schemas
|
||||
, adwaita-icon-theme
|
||||
, gnome
|
||||
, gspell
|
||||
, shared-mime-info
|
||||
, libgee
|
||||
, libgit2-glib
|
||||
, libsecret
|
||||
, meson
|
||||
, ninja
|
||||
, python3
|
||||
, libdazzle
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gitg";
|
||||
version = "41";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "f7Ybn7EPuqVI0j1wZbq9cq1j5iHeVYQMBlzm45hsRik=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fix build with meson 0.61
|
||||
# data/meson.build:8:5: ERROR: Function does not take positional arguments.
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gitg/-/commit/1978973b12848741b08695ec2020bac98584d636.patch";
|
||||
sha256 = "sha256-RzaGPGGiKMgjy0waFqt48rV2yWBGZgC3kHehhVhxktk=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gobject-introspection
|
||||
gettext
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
python3
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
adwaita-icon-theme
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
gtksourceview4
|
||||
gspell
|
||||
json-glib
|
||||
libdazzle
|
||||
libgee
|
||||
libgit2-glib
|
||||
libpeas
|
||||
libsecret
|
||||
libsoup
|
||||
];
|
||||
|
||||
doCheck = false; # FAIL: tests-gitg gtk_style_context_add_provider_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
|
||||
|
||||
postPatch = ''
|
||||
chmod +x meson_post_install.py
|
||||
patchShebangs meson_post_install.py
|
||||
|
||||
substituteInPlace tests/libgitg/test-commit.vala --replace "/bin/bash" "${bash}/bin/bash"
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
# Thumbnailers
|
||||
--prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
|
||||
)
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Gitg";
|
||||
description = "GNOME GUI client to view git repositories";
|
||||
maintainers = with maintainers; [ domenkozar ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
80
pkgs/desktops/gnome/misc/gnome-applets/default.nix
Normal file
80
pkgs/desktops/gnome/misc/gnome-applets/default.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, gettext
|
||||
, itstool
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, gnome-panel
|
||||
, gtk3
|
||||
, glib
|
||||
, libwnck
|
||||
, libgtop
|
||||
, libnotify
|
||||
, upower
|
||||
, wirelesstools
|
||||
, linuxPackages
|
||||
, adwaita-icon-theme
|
||||
, libgweather
|
||||
, gucharmap
|
||||
, tracker
|
||||
, polkit
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-applets";
|
||||
version = "3.44.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "MDlifKknGeSAWH1yT0aXEJw9Em7BUPFPOy4Gkk2576c=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
itstool
|
||||
pkg-config
|
||||
libxml2
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gnome-panel
|
||||
gtk3
|
||||
glib
|
||||
libxml2
|
||||
libwnck
|
||||
libgtop
|
||||
libnotify
|
||||
upower
|
||||
adwaita-icon-theme
|
||||
libgweather
|
||||
gucharmap
|
||||
tracker
|
||||
polkit
|
||||
wirelesstools
|
||||
linuxPackages.cpupower
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
# Don't try to install modules to gnome panel's directory, as it's read only
|
||||
PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Applets for use with the GNOME panel";
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeApplets";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
60
pkgs/desktops/gnome/misc/gnome-autoar/default.nix
Normal file
60
pkgs/desktops/gnome/misc/gnome-autoar/default.nix
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, gnome
|
||||
, gtk3
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, libarchive
|
||||
, vala
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-autoar";
|
||||
version = "0.4.3";
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-autoar/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "e98HiVU0lqvdw8ljsM5zY4BcDALAJf7d68qsx4cknog=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gtk3
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
libarchive
|
||||
glib
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dvapi=true"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-autoar";
|
||||
attrPath = "gnome.gnome-autoar";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.lgpl21Plus;
|
||||
description = "Library to integrate compressed files management with GNOME";
|
||||
};
|
||||
}
|
||||
228
pkgs/desktops/gnome/misc/gnome-flashback/default.nix
Normal file
228
pkgs/desktops/gnome/misc/gnome-flashback/default.nix
Normal file
|
|
@ -0,0 +1,228 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, autoreconfHook
|
||||
, fetchurl
|
||||
, gettext
|
||||
, glib
|
||||
, gnome-bluetooth_1_0
|
||||
, gnome-desktop
|
||||
, gnome-panel
|
||||
, gnome-session
|
||||
, gnome
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
, ibus
|
||||
, libcanberra-gtk3
|
||||
, libpulseaudio
|
||||
, libxkbfile
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, polkit
|
||||
, gdm
|
||||
, systemd
|
||||
, upower
|
||||
, pam
|
||||
, wrapGAppsHook
|
||||
, writeTextFile
|
||||
, xkeyboard_config
|
||||
, xorg
|
||||
, runCommand
|
||||
, buildEnv
|
||||
}:
|
||||
let
|
||||
pname = "gnome-flashback";
|
||||
version = "3.44.0";
|
||||
|
||||
# From data/sessions/Makefile.am
|
||||
requiredComponentsCommon = enableGnomePanel:
|
||||
[ "gnome-flashback" ]
|
||||
++ lib.optional enableGnomePanel "gnome-panel";
|
||||
requiredComponentsGsd = [
|
||||
"org.gnome.SettingsDaemon.A11ySettings"
|
||||
"org.gnome.SettingsDaemon.Color"
|
||||
"org.gnome.SettingsDaemon.Datetime"
|
||||
"org.gnome.SettingsDaemon.Housekeeping"
|
||||
"org.gnome.SettingsDaemon.Keyboard"
|
||||
"org.gnome.SettingsDaemon.MediaKeys"
|
||||
"org.gnome.SettingsDaemon.Power"
|
||||
"org.gnome.SettingsDaemon.PrintNotifications"
|
||||
"org.gnome.SettingsDaemon.Rfkill"
|
||||
"org.gnome.SettingsDaemon.ScreensaverProxy"
|
||||
"org.gnome.SettingsDaemon.Sharing"
|
||||
"org.gnome.SettingsDaemon.Smartcard"
|
||||
"org.gnome.SettingsDaemon.Sound"
|
||||
"org.gnome.SettingsDaemon.UsbProtection"
|
||||
"org.gnome.SettingsDaemon.Wacom"
|
||||
"org.gnome.SettingsDaemon.XSettings"
|
||||
];
|
||||
requiredComponents = wmName: enableGnomePanel: "RequiredComponents=${lib.concatStringsSep ";" ([ wmName ] ++ requiredComponentsCommon enableGnomePanel ++ requiredComponentsGsd)};";
|
||||
|
||||
gnome-flashback = stdenv.mkDerivation rec {
|
||||
name = "${pname}-${version}";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${name}.tar.xz";
|
||||
sha256 = "sha256-HfCDgSfGJG7s2J0cUP+I/IKr9t47MGjlLd5JWkK9VQo=";
|
||||
};
|
||||
|
||||
# make .desktop Execs absolute
|
||||
postPatch = ''
|
||||
patch -p0 <<END_PATCH
|
||||
+++ data/applications/gnome-flashback.desktop.in.in
|
||||
@@ -4 +4 @@
|
||||
-Exec=gnome-flashback
|
||||
+Exec=$out/bin/gnome-flashback
|
||||
END_PATCH
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
# Check that our expected RequiredComponents match the stock session files, but then don't install them.
|
||||
# They can be installed using mkSessionForWm.
|
||||
grep '${requiredComponents "metacity" true}' $out/share/gnome-session/sessions/gnome-flashback-metacity.session || (echo "RequiredComponents have changed, please update gnome-flashback/default.nix."; false)
|
||||
|
||||
rm -r $out/share/gnome-session
|
||||
rm -r $out/share/xsessions
|
||||
rm -r $out/libexec
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gettext
|
||||
libxml2
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gnome-bluetooth_1_0
|
||||
gnome-desktop
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
ibus
|
||||
libcanberra-gtk3
|
||||
libpulseaudio
|
||||
libxkbfile
|
||||
xorg.libXxf86vm
|
||||
polkit
|
||||
gdm
|
||||
gnome-panel
|
||||
systemd
|
||||
upower
|
||||
pam
|
||||
xkeyboard_config
|
||||
];
|
||||
|
||||
doCheck = true;
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
PKG_CONFIG_LIBGNOME_PANEL_LAYOUTSDIR = "${placeholder "out"}/share/gnome-panel/layouts";
|
||||
PKG_CONFIG_LIBGNOME_PANEL_MODULESDIR = "${placeholder "out"}/lib/gnome-panel/modules";
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
|
||||
mkSessionForWm = { wmName, wmLabel, wmCommand, enableGnomePanel, panelModulePackages }:
|
||||
let
|
||||
wmApplication = writeTextFile {
|
||||
name = "gnome-flashback-${wmName}-wm";
|
||||
destination = "/share/applications/${wmName}.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Name=${wmLabel}
|
||||
Exec=${wmCommand}
|
||||
NoDisplay=true
|
||||
X-GNOME-WMName=${wmLabel}
|
||||
X-GNOME-Autostart-Phase=WindowManager
|
||||
X-GNOME-Provides=windowmanager
|
||||
X-GNOME-Autostart-Notify=false
|
||||
'';
|
||||
};
|
||||
|
||||
gnomeSession = writeTextFile {
|
||||
name = "gnome-flashback-${wmName}-gnome-session";
|
||||
destination = "/share/gnome-session/sessions/gnome-flashback-${wmName}.session";
|
||||
text = ''
|
||||
[GNOME Session]
|
||||
Name=GNOME Flashback (${wmLabel})
|
||||
${requiredComponents wmName enableGnomePanel}
|
||||
'';
|
||||
};
|
||||
|
||||
# gnome-panel will only look for applets in a single directory so symlink them into here.
|
||||
panelModulesEnv = buildEnv {
|
||||
name = "gnome-panel-modules-env";
|
||||
# We always want to find the built-in panel applets.
|
||||
paths = [ gnome-panel gnome-flashback ] ++ panelModulePackages;
|
||||
pathsToLink = [ "/lib/gnome-panel/modules" ];
|
||||
};
|
||||
|
||||
executable = stdenv.mkDerivation {
|
||||
name = "gnome-flashback-${wmName}";
|
||||
nativeBuildInputs = [ glib wrapGAppsHook ];
|
||||
buildInputs = [ gnome-flashback ] ++ lib.optionals enableGnomePanel ([ gnome-panel ] ++ panelModulePackages);
|
||||
|
||||
# We want to use the wrapGAppsHook mechanism to wrap gnome-session
|
||||
# with the environment that gnome-flashback and gnome-panel need to
|
||||
# run, including the configured applet packages. This is only possible
|
||||
# in the fixup phase, so turn everything else off.
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
dontInstall = true;
|
||||
dontWrapGApps = true; # We want to do the wrapping ourselves.
|
||||
|
||||
# gnome-flashback and gnome-panel need to be added to XDG_DATA_DIRS so that their .desktop files can be found by gnome-session.
|
||||
preFixup = ''
|
||||
makeWrapper ${gnome-session}/bin/gnome-session $out \
|
||||
--add-flags "--session=gnome-flashback-${wmName}" \
|
||||
--set-default XDG_CURRENT_DESKTOP 'GNOME-Flashback:GNOME' \
|
||||
--prefix XDG_DATA_DIRS : '${lib.makeSearchPath "share" ([ wmApplication gnomeSession gnome-flashback ] ++ lib.optional enableGnomePanel gnome-panel)}' \
|
||||
"''${gappsWrapperArgs[@]}" \
|
||||
${lib.optionalString enableGnomePanel "--set NIX_GNOME_PANEL_MODULESDIR '${panelModulesEnv}/lib/gnome-panel/modules'"}
|
||||
'';
|
||||
};
|
||||
|
||||
in
|
||||
writeTextFile
|
||||
{
|
||||
name = "gnome-flashback-${wmName}-xsession";
|
||||
destination = "/share/xsessions/gnome-flashback-${wmName}.desktop";
|
||||
text = ''
|
||||
[Desktop Entry]
|
||||
Name=GNOME Flashback (${wmLabel})
|
||||
Comment=This session logs you into GNOME Flashback with ${wmLabel}
|
||||
Exec=${executable}
|
||||
TryExec=${wmCommand}
|
||||
Type=Application
|
||||
DesktopNames=GNOME-Flashback;GNOME;
|
||||
'';
|
||||
} // {
|
||||
providedSessions = [ "gnome-flashback-${wmName}" ];
|
||||
};
|
||||
|
||||
mkSystemdTargetForWm = { wmName, wmLabel, wmCommand, enableGnomePanel }:
|
||||
runCommand "gnome-flashback-${wmName}.target" {} ''
|
||||
mkdir -p $out/lib/systemd/user
|
||||
cp -r "${gnome-flashback}/lib/systemd/user/gnome-session@gnome-flashback-metacity.target.d" \
|
||||
"$out/lib/systemd/user/gnome-session@gnome-flashback-${wmName}.target.d"
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "GNOME 2.x-like session for GNOME 3";
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomeFlashback";
|
||||
license = licenses.gpl2;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
};
|
||||
in
|
||||
gnome-flashback
|
||||
37
pkgs/desktops/gnome/misc/gnome-packagekit/default.nix
Normal file
37
pkgs/desktops/gnome/misc/gnome-packagekit/default.nix
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, meson, ninja, gettext, gnome, packagekit, polkit
|
||||
, gtk3, systemd, wrapGAppsHook, desktop-file-utils }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-packagekit";
|
||||
version = "3.32.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gnome-packagekit/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "08rhsisdvx7pnx3rrg5v7c09jbw4grglkdj979gwl4a31j24zjsd";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config meson ninja gettext wrapGAppsHook desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [ gtk3 packagekit systemd polkit ];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs meson_post_install.sh
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = "gnome-packagekit";
|
||||
attrPath = "gnome.gnome-packagekit";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.freedesktop.org/software/PackageKit/";
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl2;
|
||||
description = "Tools for installing software on the GNOME desktop using PackageKit";
|
||||
};
|
||||
}
|
||||
117
pkgs/desktops/gnome/misc/gnome-panel/default.nix
Normal file
117
pkgs/desktops/gnome/misc/gnome-panel/default.nix
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, fetchpatch
|
||||
, autoreconfHook
|
||||
, dconf
|
||||
, evolution-data-server
|
||||
, gdm
|
||||
, geocode-glib
|
||||
, gettext
|
||||
, glib
|
||||
, gnome-desktop
|
||||
, gnome-menus
|
||||
, gnome
|
||||
, gtk3
|
||||
, itstool
|
||||
, libgweather
|
||||
, libsoup
|
||||
, libwnck
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, polkit
|
||||
, systemd
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-panel";
|
||||
version = "3.44.0";
|
||||
|
||||
outputs = [ "out" "dev" "man" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
hash = "sha256-mWVfddAxh2wTDtI8TaIsCZ57zEBIsCVaPDo7vHh7Mao=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Load modules from path in `NIX_GNOME_PANEL_MODULESDIR` environment variable
|
||||
# instead of gnome-panel’s libdir so that the NixOS module can make gnome-panel
|
||||
# load modules from other packages as well.
|
||||
./modulesdir-env-var.patch
|
||||
|
||||
# Add missing geocode-glib-1.0 dependency
|
||||
# https://gitlab.gnome.org/GNOME/gnome-panel/-/merge_requests/49
|
||||
(fetchpatch {
|
||||
url = "https://gitlab.gnome.org/GNOME/gnome-panel/-/commit/f58a43ec4649a25f1a762b36e1401b81cd2b214b.patch";
|
||||
sha256 = "sha256-DFqaNUjkLh4xd81qgQpl+568eUZeWyF8LxdZoTgMfCQ=";
|
||||
})
|
||||
];
|
||||
|
||||
# make .desktop Exec absolute
|
||||
postPatch = ''
|
||||
patch -p0 <<END_PATCH
|
||||
+++ gnome-panel/gnome-panel.desktop.in
|
||||
@@ -7 +7 @@
|
||||
-Exec=gnome-panel
|
||||
+Exec=$out/bin/gnome-panel
|
||||
END_PATCH
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
gappsWrapperArgs+=(
|
||||
--prefix XDG_DATA_DIRS : "${gnome-menus}/share"
|
||||
--prefix XDG_CONFIG_DIRS : "${gnome-menus}/etc/xdg"
|
||||
)
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
gettext
|
||||
itstool
|
||||
libxml2
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
dconf
|
||||
evolution-data-server
|
||||
gdm
|
||||
geocode-glib
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome-menus
|
||||
gtk3
|
||||
libgweather
|
||||
libsoup
|
||||
libwnck
|
||||
polkit
|
||||
systemd
|
||||
];
|
||||
|
||||
configureFlags = [
|
||||
"--enable-eds"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Component of Gnome Flashback that provides panels and default applets for the desktop";
|
||||
homepage = "https://wiki.gnome.org/Projects/GnomePanel";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,31 @@
|
|||
diff --git a/gnome-panel/gp-module-manager.c b/gnome-panel/gp-module-manager.c
|
||||
index 58447fd84..7af99de7d 100644
|
||||
--- a/gnome-panel/gp-module-manager.c
|
||||
+++ b/gnome-panel/gp-module-manager.c
|
||||
@@ -49,8 +49,16 @@ load_modules (GpModuleManager *self)
|
||||
{
|
||||
GDir *dir;
|
||||
const gchar *name;
|
||||
+ const gchar *modules_dir;
|
||||
|
||||
- dir = g_dir_open (MODULESDIR, 0, NULL);
|
||||
+ modules_dir = g_getenv ("NIX_GNOME_PANEL_MODULESDIR");
|
||||
+
|
||||
+ if (!modules_dir) {
|
||||
+ g_warning ("The NIX_GNOME_PANEL_MODULESDIR environment variable was not set, modules will not be loaded.");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ dir = g_dir_open (modules_dir, 0, NULL);
|
||||
if (!dir)
|
||||
return;
|
||||
|
||||
@@ -63,7 +71,7 @@ load_modules (GpModuleManager *self)
|
||||
if (!g_str_has_suffix (name, ".so"))
|
||||
continue;
|
||||
|
||||
- path = g_build_filename (MODULESDIR, name, NULL);
|
||||
+ path = g_build_filename (modules_dir, name, NULL);
|
||||
module = gp_module_new_from_path (path);
|
||||
g_free (path);
|
||||
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
--- a/configure.ac 2019-01-20 20:28:01.309231507 +0100
|
||||
+++ b/configure.ac 2019-01-20 20:31:54.927978927 +0100
|
||||
@@ -137,7 +137,7 @@
|
||||
|
||||
# Find out where the session service file goes
|
||||
# The sad sed hack is recomended by section 27.10 of the automake manual.
|
||||
-DBUS_SESSION_SERVICE_DIR=`pkg-config --variable session_bus_services_dir dbus-1 | sed -e 's,/usr/share,${datarootdir},g'`
|
||||
+DBUS_SESSION_SERVICE_DIR=`pkg-config --variable session_bus_services_dir dbus-1 --define-variable 'datadir=${datadir}'`
|
||||
AC_SUBST(DBUS_SESSION_SERVICE_DIR)
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
92
pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
Normal file
92
pkgs/desktops/gnome/misc/gnome-tweaks/default.nix
Normal file
|
|
@ -0,0 +1,92 @@
|
|||
{ lib
|
||||
, meson
|
||||
, ninja
|
||||
, fetchurl
|
||||
, gdk-pixbuf
|
||||
, gettext
|
||||
, glib
|
||||
, gnome
|
||||
, gnome-desktop
|
||||
, gobject-introspection
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
, itstool
|
||||
, libhandy
|
||||
, libnotify
|
||||
, libsoup
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, python3Packages
|
||||
, wrapGAppsHook }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "gnome-tweaks";
|
||||
version = "42.beta";
|
||||
format = "other";
|
||||
strictDeps = false; # https://github.com/NixOS/nixpkgs/issues/56943
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "g/RMwdyK3HcM2tcXtAPLmmzDwN5Q445vHmeLQ0Aa2Gg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
gobject-introspection
|
||||
itstool
|
||||
libxml2
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gnome-desktop
|
||||
gnome.gnome-settings-daemon
|
||||
gnome.gnome-shell
|
||||
# Makes it possible to select user themes through the `user-theme` extension
|
||||
gnome.gnome-shell-extensions
|
||||
gnome.mutter
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
libhandy
|
||||
libnotify
|
||||
libsoup
|
||||
];
|
||||
|
||||
pythonPath = with python3Packages; [
|
||||
pygobject3
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs meson-postinstall.py
|
||||
'';
|
||||
|
||||
dontWrapGApps = true;
|
||||
|
||||
preFixup = ''
|
||||
makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
wrapPythonProgramsIn "$out/libexec" "$out $pythonPath"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://wiki.gnome.org/Apps/Tweaks";
|
||||
description = "A tool to customize advanced GNOME 3 options";
|
||||
maintainers = teams.gnome.members;
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
86
pkgs/desktops/gnome/misc/gpaste/default.nix
Normal file
86
pkgs/desktops/gnome/misc/gpaste/default.nix
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, appstream-glib
|
||||
, clutter
|
||||
, gjs
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, gtk3
|
||||
, gtk4
|
||||
, libadwaita
|
||||
, meson
|
||||
, mutter
|
||||
, ninja
|
||||
, pango
|
||||
, pkg-config
|
||||
, vala
|
||||
, wrapGAppsHook
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "42.1";
|
||||
pname = "gpaste";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Keruspe";
|
||||
repo = "GPaste";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-A5NZ4NiPVZUr7vPdDuNywLsLrejZ4SCg7+3//ZNRmLY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./fix-paths.patch
|
||||
];
|
||||
|
||||
# TODO: switch to substituteAll with placeholder
|
||||
# https://github.com/NixOS/nix/issues/1846
|
||||
postPatch = ''
|
||||
substituteInPlace src/gnome-shell/extension.js \
|
||||
--subst-var-by typelibPath "${placeholder "out"}/lib/girepository-1.0"
|
||||
substituteInPlace src/gnome-shell/prefs.js \
|
||||
--subst-var-by typelibPath "${placeholder "out"}/lib/girepository-1.0"
|
||||
substituteInPlace src/libgpaste/gpaste/gpaste-settings.c \
|
||||
--subst-var-by gschemasCompiled ${glib.makeSchemaPath (placeholder "out") "${pname}-${version}"}
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
appstream-glib
|
||||
gobject-introspection
|
||||
meson
|
||||
ninja
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
clutter # required by mutter-clutter
|
||||
gjs
|
||||
glib
|
||||
gtk3
|
||||
gtk4
|
||||
libadwaita
|
||||
mutter
|
||||
pango
|
||||
];
|
||||
|
||||
mesonFlags = [
|
||||
"-Dcontrol-center-keybindings-dir=${placeholder "out"}/share/gnome-control-center/keybindings"
|
||||
"-Ddbus-services-dir=${placeholder "out"}/share/dbus-1/services"
|
||||
"-Dsystemd-user-unit-dir=${placeholder "out"}/etc/systemd/user"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
${glib.dev}/bin/glib-compile-schemas "$out/share/glib-2.0/schemas"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Keruspe/GPaste";
|
||||
description = "Clipboard management system with GNOME 3 integration";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
43
pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
Normal file
43
pkgs/desktops/gnome/misc/gpaste/fix-paths.patch
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
diff --git a/src/gnome-shell/extension.js b/src/gnome-shell/extension.js
|
||||
index c8773fd6..9efbed67 100644
|
||||
--- a/src/gnome-shell/extension.js
|
||||
+++ b/src/gnome-shell/extension.js
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
const Config = imports.misc.config;
|
||||
|
||||
+imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
|
||||
+
|
||||
imports.gi.versions.Clutter = Config.LIBMUTTER_API_VERSION;
|
||||
imports.gi.versions.GLib = '2.0';
|
||||
imports.gi.versions.GPaste = '2';
|
||||
diff --git a/src/gnome-shell/prefs.js b/src/gnome-shell/prefs.js
|
||||
index 32244ab2..74b85572 100644
|
||||
--- a/src/gnome-shell/prefs.js
|
||||
+++ b/src/gnome-shell/prefs.js
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
imports.gi.versions.GPasteGtk = '4';
|
||||
|
||||
+imports.gi.GIRepository.Repository.prepend_search_path('@typelibPath@');
|
||||
+
|
||||
const ExtensionUtils = imports.misc.extensionUtils;
|
||||
|
||||
const { GPasteGtk } = imports.gi;
|
||||
diff --git a/src/libgpaste/gpaste/gpaste-settings.c b/src/libgpaste/gpaste/gpaste-settings.c
|
||||
index 7e53eb64..57c399fc 100644
|
||||
--- a/src/libgpaste/gpaste/gpaste-settings.c
|
||||
+++ b/src/libgpaste/gpaste/gpaste-settings.c
|
||||
@@ -1013,7 +1013,11 @@ create_g_settings (void)
|
||||
}
|
||||
else
|
||||
{
|
||||
- return g_settings_new (G_PASTE_SETTINGS_NAME);
|
||||
+ // library used by introspection requires schemas but we cannot set XDG_DATA_DIRS for the library
|
||||
+ GSettingsSchemaSource *schema_source = g_settings_schema_source_new_from_directory ("@gschemasCompiled@", NULL, FALSE, NULL);
|
||||
+ g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, G_PASTE_SETTINGS_NAME, FALSE);
|
||||
+ g_settings_schema_source_unref (schema_source);
|
||||
+ return g_settings_new_full (schema, NULL, NULL);
|
||||
}
|
||||
}
|
||||
|
||||
27
pkgs/desktops/gnome/misc/gtkhtml/default.nix
Normal file
27
pkgs/desktops/gnome/misc/gtkhtml/default.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{ lib, stdenv, fetchurl, pkg-config, gtk3, intltool
|
||||
, gnome, enchant, isocodes, gsettings-desktop-schemas }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gtkhtml";
|
||||
version = "4.10.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/gtkhtml/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "ca3b6424fb2c7ac5d9cb8fdafb69318fa2e825c9cf6ed17d1e38d9b29e5606c3";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript { packageName = "gtkhtml"; attrPath = "gnome.gtkhtml"; };
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ gtk3 intltool gnome.adwaita-icon-theme
|
||||
gsettings-desktop-schemas ];
|
||||
|
||||
propagatedBuildInputs = [ enchant isocodes ];
|
||||
|
||||
meta = with lib; {
|
||||
platforms = platforms.linux;
|
||||
maintainers = teams.gnome.members;
|
||||
};
|
||||
}
|
||||
74
pkgs/desktops/gnome/misc/metacity/default.nix
Normal file
74
pkgs/desktops/gnome/misc/metacity/default.nix
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
{ lib, stdenv
|
||||
, fetchurl
|
||||
, gettext
|
||||
, glib
|
||||
, gnome
|
||||
, gsettings-desktop-schemas
|
||||
, gtk3
|
||||
, xorg
|
||||
, libcanberra-gtk3
|
||||
, libgtop
|
||||
, libstartup_notification
|
||||
, libxml2
|
||||
, pkg-config
|
||||
, substituteAll
|
||||
, wrapGAppsHook
|
||||
, zenity
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "metacity";
|
||||
version = "3.44.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "GcPF150hcfRbqg9jLMiZX4YHvxIxoWAUQ5usm6Flp8A=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
inherit zenity;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
gettext
|
||||
libxml2
|
||||
pkg-config
|
||||
wrapGAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
xorg.libXres
|
||||
xorg.libXpresent
|
||||
xorg.libXdamage
|
||||
glib
|
||||
gsettings-desktop-schemas
|
||||
gtk3
|
||||
libcanberra-gtk3
|
||||
libgtop
|
||||
libstartup_notification
|
||||
zenity
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
description = "Window manager used in Gnome Flashback";
|
||||
homepage = "https://wiki.gnome.org/Projects/Metacity";
|
||||
license = licenses.gpl2;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
11
pkgs/desktops/gnome/misc/metacity/fix-paths.patch
Normal file
11
pkgs/desktops/gnome/misc/metacity/fix-paths.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
--- a/src/core/util.c
|
||||
+++ b/src/core/util.c
|
||||
@@ -424,7 +424,7 @@
|
||||
g_slist_length (columns)*2 +
|
||||
g_slist_length (entries)));
|
||||
|
||||
- argvl[i++] = "zenity";
|
||||
+ argvl[i++] = "@zenity@/bin/zenity";
|
||||
argvl[i++] = type;
|
||||
argvl[i++] = "--display";
|
||||
argvl[i++] = display;
|
||||
75
pkgs/desktops/gnome/misc/nautilus-python/default.nix
Normal file
75
pkgs/desktops/gnome/misc/nautilus-python/default.nix
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, substituteAll
|
||||
, fetchurl
|
||||
, pkg-config
|
||||
, which
|
||||
, gtk-doc
|
||||
, docbook_xsl
|
||||
, docbook_xml_dtd_412
|
||||
, python3
|
||||
, ncurses
|
||||
, nautilus
|
||||
, gtk3
|
||||
, gnome
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "nautilus-python";
|
||||
version = "1.2.3";
|
||||
|
||||
outputs = [ "out" "dev" "doc" ];
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||
sha256 = "161050sx3sdxqcpjkjcpf6wl4kx0jydihga7mcvrj9c2f8ly0g07";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Make PyGObject’s gi library available.
|
||||
(substituteAll {
|
||||
src = ./fix-paths.patch;
|
||||
pythonPaths = lib.concatMapStringsSep ", " (pkg: "'${pkg}/${python3.sitePackages}'") [
|
||||
python3.pkgs.pygobject3
|
||||
];
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
which
|
||||
gtk-doc
|
||||
docbook_xsl
|
||||
docbook_xml_dtd_412
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
python3
|
||||
ncurses # required by python3
|
||||
python3.pkgs.pygobject3
|
||||
nautilus
|
||||
gtk3 # required by libnautilus-extension
|
||||
];
|
||||
|
||||
makeFlags = [
|
||||
"PYTHON_LIB_LOC=${python3}/lib"
|
||||
];
|
||||
|
||||
PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
|
||||
|
||||
passthru = {
|
||||
updateScript = gnome.updateScript {
|
||||
packageName = pname;
|
||||
attrPath = "gnome.${pname}";
|
||||
versionPolicy = "odd-unstable";
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Python bindings for the Nautilus Extension API";
|
||||
homepage = "https://wiki.gnome.org/Projects/NautilusPython";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = teams.gnome.members;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
14
pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
Normal file
14
pkgs/desktops/gnome/misc/nautilus-python/fix-paths.patch
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
diff --git a/src/nautilus-python.c b/src/nautilus-python.c
|
||||
index 843e3c6..466a513 100644
|
||||
--- a/src/nautilus-python.c
|
||||
+++ b/src/nautilus-python.c
|
||||
@@ -184,6 +184,9 @@ nautilus_python_init_python (void) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
+ debug("Add PyGObject to path");
|
||||
+ PyRun_SimpleString("import site;import functools; functools.reduce(lambda k, p: site.addsitedir(p, k), [@pythonPaths@], site._init_pathinfo())");
|
||||
+
|
||||
/* import gobject */
|
||||
debug("init_pygobject");
|
||||
if (!np_init_pygobject()) {
|
||||
82
pkgs/desktops/gnome/misc/pomodoro/default.nix
Normal file
82
pkgs/desktops/gnome/misc/pomodoro/default.nix
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, substituteAll
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, wrapGAppsHook
|
||||
, desktop-file-utils
|
||||
, libcanberra
|
||||
, gst_all_1
|
||||
, vala
|
||||
, gtk3
|
||||
, gom
|
||||
, sqlite
|
||||
, libxml2
|
||||
, glib
|
||||
, gobject-introspection
|
||||
, json-glib
|
||||
, libpeas
|
||||
, gsettings-desktop-schemas
|
||||
, gettext
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "gnome-shell-pomodoro";
|
||||
version = "0.21.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gnome-pomodoro";
|
||||
repo = "gnome-pomodoro";
|
||||
rev = version;
|
||||
sha256 = "sha256-47gZsL1Hg30wtq6NeZdi8gbLHUZJ34KLzxvIg5DqyUk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Our glib setup hooks moves GSettings schemas to a subdirectory to prevent conflicts.
|
||||
# We need to patch the build script so that the extension can find them.
|
||||
(substituteAll {
|
||||
src = ./fix-schema-path.patch;
|
||||
inherit pname version;
|
||||
})
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
meson
|
||||
ninja
|
||||
gettext
|
||||
gobject-introspection
|
||||
libxml2
|
||||
pkg-config
|
||||
vala
|
||||
wrapGAppsHook
|
||||
desktop-file-utils
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
glib
|
||||
gom
|
||||
gsettings-desktop-schemas
|
||||
gst_all_1.gst-plugins-base
|
||||
gst_all_1.gst-plugins-good
|
||||
gst_all_1.gstreamer
|
||||
gtk3
|
||||
json-glib
|
||||
libcanberra
|
||||
libpeas
|
||||
sqlite
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://gnomepomodoro.org/";
|
||||
description = "Time management utility for GNOME based on the pomodoro technique";
|
||||
longDescription = ''
|
||||
This GNOME utility helps to manage time according to Pomodoro Technique.
|
||||
It intends to improve productivity and focus by taking short breaks.
|
||||
'';
|
||||
maintainers = with maintainers; [ ];
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
||||
40
pkgs/desktops/gnome/misc/pomodoro/fix-schema-path.patch
Normal file
40
pkgs/desktops/gnome/misc/pomodoro/fix-schema-path.patch
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
diff --git a/data/meson.build b/data/meson.build
|
||||
index 5e4ce69..982b3c9 100644
|
||||
--- a/data/meson.build
|
||||
+++ b/data/meson.build
|
||||
@@ -31,7 +31,7 @@ i18n.merge_file(
|
||||
|
||||
install_data(
|
||||
'org.gnome.pomodoro.gschema.xml',
|
||||
- install_dir: get_option('datadir') / 'glib-2.0' / 'schemas',
|
||||
+ install_dir: gschema_dir,
|
||||
)
|
||||
|
||||
subdir('icons')
|
||||
diff --git a/meson-post-install.sh b/meson-post-install.sh
|
||||
index bf4013a..c87fba4 100644
|
||||
--- a/meson-post-install.sh
|
||||
+++ b/meson-post-install.sh
|
||||
@@ -7,7 +7,7 @@ datadir="${prefix}/$1"
|
||||
# want/need us to do the below
|
||||
if [ -z "${DESTDIR}" ]; then
|
||||
echo "Compiling GSchema..."
|
||||
- glib-compile-schemas "${datadir}/glib-2.0/schemas"
|
||||
+ glib-compile-schemas "${datadir}/gsettings-schemas/@pname@-@version@/glib-2.0/schemas"
|
||||
|
||||
echo "Updating icon cache..."
|
||||
gtk-update-icon-cache -f -t "${datadir}/icons/hicolor"
|
||||
diff --git a/meson.build b/meson.build
|
||||
index 09857a1..a07d27c 100644
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -40,7 +40,8 @@ add_project_arguments(
|
||||
)
|
||||
|
||||
# We are going to use these variables later on for the plugins
|
||||
-gschema_dir = get_option('prefix') / get_option('datadir') / 'glib-2.0' / 'schemas'
|
||||
+nix_package_name = '@pname@' + '-' + '@version@'
|
||||
+gschema_dir = get_option('prefix') / get_option('datadir') / 'gsettings-schemas' / nix_package_name / 'glib-2.0' / 'schemas'
|
||||
plugin_libdir = get_option('prefix') / get_option('libdir') / meson.project_name() / 'plugins'
|
||||
extension_dir = get_option('prefix') / get_option('datadir') / 'gnome-shell' / 'extensions' / 'pomodoro@arun.codito.in'
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue