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
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(
|
||||
Loading…
Add table
Add a link
Reference in a new issue