diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2019-12-25 05:15:06 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2019-12-25 05:15:06 +0100 |
commit | ca39dd3a8a93361c262c976038dc4af7ceea2d85 (patch) | |
tree | 816c743ccc467ebedac5c6553b0a8a081cf534c3 /pkgs/desktops | |
parent | d244b77850263501c149435f2ff2de357b9db72c (diff) | |
parent | 760be1f4b221591e75ad0065080720fdb1b4289c (diff) | |
download | nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.gz nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.bz2 nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.lz nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.xz nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.tar.zst nixpkgs-ca39dd3a8a93361c262c976038dc4af7ceea2d85.zip |
Merge branch 'master' into staging-next
Diffstat (limited to 'pkgs/desktops')
89 files changed, 675 insertions, 439 deletions
diff --git a/pkgs/desktops/cdesktopenv/default.nix b/pkgs/desktops/cdesktopenv/default.nix new file mode 100644 index 00000000000..09d53cdd1c5 --- /dev/null +++ b/pkgs/desktops/cdesktopenv/default.nix @@ -0,0 +1,75 @@ +{ stdenv, fetchgit, xorgproto, libX11, bison, ksh, perl, gnum4 +, libXinerama, libXt, libXext, libtirpc, motif, libXft, xbitmaps +, libjpeg, libXmu, libXdmcp, libXScrnSaver, symlinkJoin, bdftopcf +, ncompress, mkfontdir, tcl, libXaw, gcc, glibcLocales, gawk +, autoPatchelfHook, libredirect, makeWrapper, xset, xrdb, fakeroot }: + +let + x11ProjectRoot = symlinkJoin { + name = "x11ProjectRoot"; + paths = [ + bdftopcf mkfontdir + xset # fonts + xrdb # session load + ]; + }; +in stdenv.mkDerivation rec { + version = "2019-11-30"; + name = "cde-${version}"; + + src = fetchgit { + url = "https://git.code.sf.net/p/cdesktopenv/code"; + rev = "5cebd7c4da1afea353a3baef250e31a4cf867bc5"; + sha256 = "06wvnb3n8hn98kxvmrf6v3lyqp8bxpzl8wrixlw9jinmsivfs4b9"; + }; + setSourceRoot = ''export sourceRoot="$(echo */cde)"''; + + buildInputs = [ + libX11 libXinerama libXt libXext libtirpc motif libXft xbitmaps + libjpeg libXmu libXdmcp libXScrnSaver tcl libXaw ksh + ]; + nativeBuildInputs = [ + bison ncompress gawk autoPatchelfHook makeWrapper fakeroot + ]; + + makeFlags = [ + "World" + "BOOTSTRAPCFLAGS=-I${xorgproto}/include/X11" + "IMAKECPP=cpp" + "LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive" + ]; + + preBuild = '' + while IFS= read -r -d ''$'\0' i; do + substituteInPlace "$i" --replace /usr/dt $out/opt/dt + done < <(find "." -type f -exec grep -Iq /usr/dt {} \; -and -print0) + + cat >> config/cf/site.def << EOF +#define MakeFlagsToShellFlags(makeflags,shellcmd) set -e +#define KornShell ${ksh}/bin/ksh +#define PerlCmd ${perl}/bin/perl +#define M4Cmd ${gnum4}/bin/m4 +#define X11ProjectRoot ${x11ProjectRoot} +#define CppCmd ${gcc}/bin/cpp +TIRPCINC = -I${libtirpc.dev}/include/tirpc +EOF + + patchShebangs . + unset AR + ''; + + installPhase = '' + fakeroot admin/IntegTools/dbTools/installCDE -s . -DontRunScripts + + mkdir -p $out/bin + mv $out/opt/dt/bin/dtmail $out/bin + ''; + + meta = with stdenv.lib; { + description = "Common Desktop Environment"; + homepage = https://sourceforge.net/projects/cdesktopenv/; + license = licenses.lgpl2; + maintainers = [ maintainers.gnidorah ]; + platforms = [ "i686-linux" "x86_64-linux" ]; + }; +} diff --git a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix index 3b972718230..522c5ce6b06 100644 --- a/pkgs/desktops/gnome-2/platform/gtkglext/default.nix +++ b/pkgs/desktops/gnome-2/platform/gtkglext/default.nix @@ -1,32 +1,58 @@ -{ stdenv, fetchurl, fetchpatch, pkgconfig, glib, gtk2, libGLU, libGL, pango, pangox_compat, xorg }: +{ stdenv +, fetchFromGitLab +, pkgconfig +, gtk-doc +, autoconf +, automake +, which +, libtool +, gobject-introspection +, glib +, gtk2 +, libGLU +, libGL +, pango +, xorg +}: stdenv.mkDerivation rec { - name = "gtkglext-1.2.0"; + pname = "gtkglext"; + version = "unstable-2019-12-19"; - src = fetchurl { - url = "mirror://gnome/sources/gtkglext/1.2/${name}.tar.bz2"; - sha256 = "0lbz96jwz57hnn52b8rfj54inwpwcc9fkdq6ya043cgnfih77g8n"; + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "Archive"; + repo = pname; + # build fixes + # https://gitlab.gnome.org/Archive/gtkglext/merge_requests/1 + rev = "ad95fbab68398f81d7a5c895276903b0695887e2"; + sha256 = "1d1bp4635nla7d07ci40c7w4drkagdqk8wg93hywvdipmjfb4yqb"; }; - buildInputs = with xorg; - [ pkgconfig glib gtk2 libGLU libGL pango libX11 libXmu ]; - propagatedBuildInputs = [ pangox_compat ]; + nativeBuildInputs = [ + pkgconfig + gtk-doc + autoconf + automake + which + libtool + gobject-introspection + ]; - patches = [ - # The library uses `GTK_WIDGET_REALIZED', `GTK_WIDGET_TOPLEVEL', and - # `GTK_WIDGET_NO_WINDOW', all of which appear to be deprecated nowadays. - (fetchpatch { - name = "02_fix_gtk-2.20_deprecated_symbols.diff"; - url = https://git.gnome.org/browse/gtkglext/patch/?id=d8f285d1397f6c41099c67e668288eecc1cdae67; - sha256 = "1zxak73plhy3m6psil1q9ssvjh9aqrif7kcbcz69y480qfb4ja08"; - }) - # Fix build with glibc ≥ 2.27 - (fetchurl { - url = https://salsa.debian.org/gewo/gtkglext/raw/3b002677c907890c7de002c9f5b4b3ec71d11b31/debian/patches/04_glibc2.27-ftbfs.diff; - sha256 = "1l1swkjkai6pnah23xfsfpbq2fgbhp5pzj3l0ybsx6b858cxqzj5"; - }) + buildInputs = [ + glib + gtk2 + libGLU + libGL + pango + xorg.libX11 + xorg.libXmu ]; + preConfigure = '' + NOCONFIGURE=1 ./autogen.sh + ''; + meta = with stdenv.lib; { homepage = https://projects.gnome.org/gtkglext/; description = "GtkGLExt, an OpenGL extension to GTK"; diff --git a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix index 8ac7ad7f2d2..61ceb55aaf0 100644 --- a/pkgs/desktops/gnome-3/apps/gnome-music/default.nix +++ b/pkgs/desktops/gnome-3/apps/gnome-music/default.nix @@ -29,13 +29,13 @@ python3.pkgs.buildPythonApplication rec { pname = "gnome-music"; - version = "3.34.1"; + version = "3.34.2"; format = "other"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "128griji0ficf9agnlhfqh9wf819zdfcz5bbrr12nkxnhksnqv99"; + sha256 = "19d28ndk3i6b5dqgfv7jr2cpk86vxh0mx1xzagb43xpxaaq02jdr"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix index 0202821f7d5..02b476c2eea 100644 --- a/pkgs/desktops/gnome-3/apps/polari/default.nix +++ b/pkgs/desktops/gnome-3/apps/polari/default.nix @@ -5,13 +5,13 @@ let pname = "polari"; - version = "3.34.0"; + version = "3.34.1"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz"; - sha256 = "09g2ylx2fwm55h28w0c03fxkdvlwmr2yc033m93c4acz1h30rjns"; + sha256 = "0wcfkib673fpys7hcpi5cqc0zgqzqmqvpzjzx4wwmim8lb121x5w"; }; propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ]; diff --git a/pkgs/desktops/gnome-3/core/gnome-session/default.nix b/pkgs/desktops/gnome-3/core/gnome-session/default.nix index d63435ce2e9..459512017c5 100644 --- a/pkgs/desktops/gnome-3/core/gnome-session/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-session/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "gnome-session"; - version = "3.34.1"; + version = "3.34.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-session/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0q366pns99f6wka5ikahqpasnsm72q9pg0c0nnfb2ld7spi1z06p"; + sha256 = "1qgqp97f8k2zi2ydvhds14zsjzfj7cv521r6wx5sw0qacn0p7dwb"; }; patches = [ diff --git a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix index 3d9f901b66b..36da3349c46 100644 --- a/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-settings-daemon/default.nix @@ -41,11 +41,11 @@ stdenv.mkDerivation rec { pname = "gnome-settings-daemon"; - version = "3.34.1"; + version = "3.34.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-settings-daemon/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "07y1gbicz0pbxmdgwrdzyc4byy30wfwpbqgvnx27gnpqmc5s50cr"; + sha256 = "1vfpgbdxkhh9xwvb3ja174jk3gpzj4n3jzcy9ygbjlvy45zfdflz"; }; patches = [ diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix index 92c96001682..44c9e3eff44 100644 --- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "gnome-shell-extensions"; - version = "3.34.1"; + version = "3.34.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "0ny7mk82kpfac977j02860c75d7zn05gvy0h9bphvx0v7ca53bdh"; + sha256 = "1f5l35l3kdkzrv49xmg1sh11vwmgjbg7hx3gb91i39bfl1snxqd1"; }; passthru = { diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix index fb4114a524a..051f0e4b432 100644 --- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix @@ -11,11 +11,11 @@ in stdenv.mkDerivation rec { pname = "gnome-software"; - version = "3.34.1"; + version = "3.34.2"; src = fetchurl { url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1yd806dp1c51ym6sidbfafzcywkbxmzxbr4zz57i0yhfjmwr9mjx"; + sha256 = "1zhi6zkphq0wfm9z2d1rp1ym8x52c7as4r8h2nrcd34mmv02xnm7"; }; patches = [ diff --git a/pkgs/desktops/gnome-3/core/nautilus/default.nix b/pkgs/desktops/gnome-3/core/nautilus/default.nix index 48f47be04bc..e55bf19f528 100644 --- a/pkgs/desktops/gnome-3/core/nautilus/default.nix +++ b/pkgs/desktops/gnome-3/core/nautilus/default.nix @@ -32,11 +32,11 @@ stdenv.mkDerivation rec { pname = "nautilus"; - version = "3.34.1"; + version = "3.34.2"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1wvp0272wky2v1pcx6z27275crb48j9903v6qzf8ki8hlqb2rkip"; + sha256 = "19zqwq4qyyncc5wq3xls0f7rsavnw741k336p2h7kx35p4kf41mv"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/gnome-3/default.nix b/pkgs/desktops/gnome-3/default.nix index 605ef95656c..c7c26cec7c3 100644 --- a/pkgs/desktops/gnome-3/default.nix +++ b/pkgs/desktops/gnome-3/default.nix @@ -138,10 +138,6 @@ lib.makeScope pkgs.newScope (self: with self; { withGnome = true; }; - networkmanagerapplet = pkgs.networkmanagerapplet.override { - withGnome = true; - }; - rygel = callPackage ./core/rygel { }; simple-scan = callPackage ./core/simple-scan { }; @@ -360,4 +356,6 @@ lib.makeScope pkgs.newScope (self: with self; { inherit (pkgs) yelp-tools; # added 2019-11-20 inherit (pkgs) dconf; # added 2019-11-30 + + inherit (pkgs) networkmanagerapplet; # added 2019-12-12 }) diff --git a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix index 8ccf5107046..8f1d193a6d3 100644 --- a/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix +++ b/pkgs/desktops/gnome-3/misc/gnome-autoar/default.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "gnome-autoar"; - version = "0.2.3"; + version = "0.2.4"; outputs = [ "out" "dev" ]; src = fetchurl { url = "mirror://gnome/sources/gnome-autoar/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "02i4zgqqqj56h7bcys6dz7n78m4nj2x4dv1ggjmnrk98n06xpsax"; + sha256 = "0yk56ch46n3wfy633mq31kif9n7v06rlij4vqbsbn6l4z1vw6d0a"; }; passthru = { diff --git a/pkgs/desktops/pantheon/apps/appcenter/default.nix b/pkgs/desktops/pantheon/apps/appcenter/default.nix index adba0b43008..244146771c4 100644 --- a/pkgs/desktops/pantheon/apps/appcenter/default.nix +++ b/pkgs/desktops/pantheon/apps/appcenter/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix index 3c73de6e7a9..1876020a8fe 100644 --- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix @@ -31,8 +31,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix index 4f4244fa03e..5a70fa94c5e 100644 --- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix @@ -38,8 +38,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix index aedc445b05f..7c95d88053d 100644 --- a/pkgs/desktops/pantheon/apps/elementary-camera/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-camera/default.nix @@ -36,8 +36,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/pkgs/desktops/pantheon/apps/elementary-code/default.nix index 355f3ea8d0f..0e692a8e806 100644 --- a/pkgs/desktops/pantheon/apps/elementary-code/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-code/default.nix @@ -40,8 +40,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix index 70d8f63c13c..fb56b3d1b33 100644 --- a/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix @@ -31,8 +31,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix index 1b5de7c168e..1cb81344ea6 100644 --- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix @@ -45,8 +45,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix index 7d235551a80..b5303021772 100644 --- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix @@ -42,8 +42,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix index 50a797a702d..ea74686e504 100644 --- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix @@ -46,8 +46,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix index ce9d0b6c82d..8485a1df9f3 100644 --- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix @@ -30,8 +30,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix index e847a139616..8416898710d 100644 --- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix @@ -33,8 +33,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix index e934a944df8..c8bde494399 100644 --- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix +++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix @@ -32,8 +32,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/sideload/default.nix b/pkgs/desktops/pantheon/apps/sideload/default.nix index 1fcd486263b..f04cb7cd53b 100644 --- a/pkgs/desktops/pantheon/apps/sideload/default.nix +++ b/pkgs/desktops/pantheon/apps/sideload/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix index 7a79f72f1a2..5cd5d365ed9 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix index 6c97c986ae0..d501cba7c06 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix index c15219fbdf8..0d0a7507afe 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix index ca29ab65afc..6f2fefa4873 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix index cafb4014407..501059896f2 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix index eb3066597ed..bd9669e2499 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix index e31355b7b7e..81a694f2ea9 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix index c7f2fcce458..260b340c223 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix index be4614df557..6e050c92d80 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix index a6112495469..bd7fee51d8d 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix index fd1719814b8..fdd3f4f5765 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix index f8fdb01aee6..ab9ecbc5a33 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix index df2051d8040..a8513f0b29b 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix index 10c95dd7b8e..b21fc1c099f 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix index e8d21478cc9..9d457aedc96 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix index 57e7fe6af44..3d240fc6221 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix index cd4b4beb1df..8d8cd1c940a 100644 --- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix index 30f870671ee..03e6ef999eb 100644 --- a/pkgs/desktops/pantheon/apps/switchboard/default.nix +++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix index c0abb172806..cc6b37095fd 100644 --- a/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix +++ b/pkgs/desktops/pantheon/apps/switchboard/wrapper.nix @@ -5,10 +5,14 @@ , switchboard , switchboardPlugs , plugs + # Only useful to disable for development testing. +, useDefaultPlugs ? true }: let - selectedPlugs = if plugs == null then switchboardPlugs else plugs; + selectedPlugs = + if plugs == null then switchboardPlugs + else plugs ++ (lib.optionals useDefaultPlugs switchboardPlugs); in symlinkJoin { name = "${switchboard.name}-with-plugs"; diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix index 34a87a6cb16..be8df39ab06 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix @@ -21,8 +21,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix index 1fba6a949d6..9943415a457 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix @@ -23,8 +23,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix index aff830fda56..c19a465e9b1 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix @@ -19,19 +19,18 @@ stdenv.mkDerivation rec { sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz"; }; - passthru = { - updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; - }; - }; - nativeBuildInputs = [ meson ninja pkgconfig ]; + passthru = { + updateScript = pantheon.updateScript { + attrPath = "pantheon.${pname}"; + }; + }; + meta = with stdenv.lib; { description = "A set of system sounds for elementary"; homepage = https://github.com/elementary/sound-theme; diff --git a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix index 8a497372862..2f3b0ee059f 100644 --- a/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix +++ b/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix @@ -27,8 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/default.nix b/pkgs/desktops/pantheon/default.nix index 9e5391243bd..d4e6b192f20 100644 --- a/pkgs/desktops/pantheon/default.nix +++ b/pkgs/desktops/pantheon/default.nix @@ -3,37 +3,6 @@ lib.makeScope pkgs.newScope (self: with self; { - apps = [ - elementary-calculator elementary-calendar - elementary-camera elementary-code elementary-files - elementary-music elementary-photos elementary-screenshot-tool - elementary-terminal elementary-videos switchboard-with-plugs - ]; - - artwork = [ - elementary-gtk-theme - elementary-icon-theme - elementary-sound-theme - elementary-wallpapers - ]; - - desktop = [ - elementary-default-settings - elementary-session-settings - elementary-shortcut-overlay - gala - wingpanel-with-indicators - ]; - - services = [ - cerbere - elementary-capnet-assist - elementary-settings-daemon - elementary-dpms-helper - pantheon-agent-geoclue2 - pantheon-agent-polkit - ]; - switchboardPlugs = [ switchboard-plug-a11y switchboard-plug-about switchboard-plug-applications switchboard-plug-bluetooth @@ -54,6 +23,8 @@ lib.makeScope pkgs.newScope (self: with self; { wingpanel-indicator-session wingpanel-indicator-sound ]; + nixpkgs-github-update = callPackage ./nixpkgs_github_update { }; + updateScript = callPackage ./update.nix { }; maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ]; @@ -155,9 +126,7 @@ lib.makeScope pkgs.newScope (self: with self; { wingpanel-indicator-keyboard = callPackage ./desktop/wingpanel-indicators/keyboard { }; - wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network { - inherit (gnome3) networkmanagerapplet; - }; + wingpanel-indicator-network = callPackage ./desktop/wingpanel-indicators/network { }; wingpanel-indicator-nightlight = callPackage ./desktop/wingpanel-indicators/nightlight { }; @@ -193,9 +162,7 @@ lib.makeScope pkgs.newScope (self: with self; { switchboard-plug-mouse-touchpad = callPackage ./apps/switchboard-plugs/mouse-touchpad { }; - switchboard-plug-network = callPackage ./apps/switchboard-plugs/network { - inherit (gnome3) networkmanagerapplet; - }; + switchboard-plug-network = callPackage ./apps/switchboard-plugs/network { }; switchboard-plug-notifications = callPackage ./apps/switchboard-plugs/notifications { }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix index f20f1197499..e601c99108b 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix @@ -27,8 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix index 440893935f8..dc0b764d319 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix @@ -41,8 +41,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; xgreeters = linkFarm "pantheon-greeter-xgreeters" [{ diff --git a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix index 2c532f899ab..06b5183c1e0 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix @@ -33,8 +33,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix index 0be2431d33d..e79a85bee95 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix @@ -23,8 +23,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix index 07c9e724fc6..58acdd12147 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix @@ -128,8 +128,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; providedSessions = [ "pantheon" ]; }; diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix index 097c62f344f..2ba5f4becc1 100644 --- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix +++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix @@ -30,8 +30,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix index 4b75b3bff56..baff9871105 100644 --- a/pkgs/desktops/pantheon/desktop/gala/default.nix +++ b/pkgs/desktops/pantheon/desktop/gala/default.nix @@ -37,8 +37,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; - versionPolicy = "master"; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix index ca9abadf9ba..34c29c1b72a 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix @@ -39,8 +39,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix index 965d9800c5b..93ddb0e1dee 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix index b4e9eeef0fd..f6ff962a944 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix index 02421f28164..66f805b9a49 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix index 01a815404a6..fd22de25d63 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix index 3b50866c0ed..9d2669821de 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix index 78512b341bb..e5dabead7c5 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix index b989bada571..12223644971 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix index c80da53986a..72f94252cca 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix index 12654ff5509..ccd233e1a3e 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix index 1fc7304feb2..694166a5d64 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix @@ -31,7 +31,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix index 253c61b7790..596ee816f89 100644 --- a/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix +++ b/pkgs/desktops/pantheon/desktop/wingpanel/wrapper.nix @@ -6,10 +6,14 @@ , wingpanelIndicators , switchboard-with-plugs , indicators ? null + # Only useful to disable for development testing. +, useDefaultIndicators ? true }: let - selectedIndicators = if indicators == null then wingpanelIndicators else indicators; + selectedIndicators = + if indicators == null then wingpanelIndicators + else indicators ++ (lib.optionals useDefaultIndicators wingpanelIndicators); in symlinkJoin { name = "${wingpanel.name}-with-indicators"; diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix index 1b73ac88df5..198be9f3430 100644 --- a/pkgs/desktops/pantheon/granite/default.nix +++ b/pkgs/desktops/pantheon/granite/default.nix @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc b/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc new file mode 100644 index 00000000000..1d953f4bd73 --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc @@ -0,0 +1 @@ +use nix diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs new file mode 100644 index 00000000000..d2cda26eddc --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs @@ -0,0 +1,4 @@ +# Used by "mix format" +[ + inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"] +] diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore b/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore new file mode 100644 index 00000000000..877c95f1f63 --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore @@ -0,0 +1,32 @@ +# The directory Mix will write compiled artifacts to. +_build/ + +# If you run "mix test --cover", coverage assets end up here. +cover/ + +# The directory Mix downloads your dependencies sources to. +deps/ + +# Where third-party dependencies like ExDoc output generated docs. +doc/ + +# Ignore .fetch files in case you like to edit your project deps locally. +.fetch + +# If the VM crashes, it generates a dump, let's ignore it too. +erl_crash.dump + +# Also ignore archive artifacts (built via "mix archive.build"). +*.ez + +# Ignore package tarball (built via "mix hex.build"). +nixpkgs_github_update-*.tar + +# Ignore elixir_ls +.elixir_ls + +# mix escript.build result +nixpkgs_github_update + +# lockfile. only because this is nixpkgs. +mix.lock diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix b/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix new file mode 100644 index 00000000000..834291222cf --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix @@ -0,0 +1,53 @@ +{ lib +, beamPackages +, makeWrapper +, common-updater-scripts +}: + +let + + poison_4 = beamPackages.buildMix { + name = "poison"; + version = "4.0.1"; + + src = beamPackages.fetchHex { + pkg = "poison"; + version = "4.0.1"; + sha256 = "098gdz7xzfmnjzgnnv80nl4h3zl8l9czqqd132vlnfabxbz3d25s"; + }; + }; + + +in + +beamPackages.buildMix { + name = "nixpkgs-github-update"; + version = "0.1.0"; + + src = lib.cleanSource ./.; + + nativeBuildInputs = [ + makeWrapper + ]; + + beamDeps = with beamPackages; [ erlang poison_4 ]; + + buildPhase = '' + export HEX_OFFLINE=1 + export HEX_HOME=`pwd` + export MIX_ENV=prod + export MIX_NO_DEPS=1 + + mix escript.build --no-deps-check + ''; + + installPhase = '' + mkdir -p $out/bin + cp nixpkgs_github_update $out/bin + ''; + + postFixup = '' + wrapProgram $out/bin/nixpkgs_github_update \ + --prefix PATH : "${lib.makeBinPath [ common-updater-scripts ]}" + ''; +} diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex new file mode 100644 index 00000000000..e735c428516 --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex @@ -0,0 +1,71 @@ +defmodule NixpkgsGitHubUpdate.CLI do + @moduledoc """ + Run updates on Nix Expressions that use fetchFromGitHub. + + Arguments the script accepts: + --attribute <attribute_path> + + Example usage: + ``` + ./nixpkgs_github_update --attribute "notes-up" + ``` + """ + alias NixpkgsGitHubUpdate.{Nix, GitHubLatestVersion} + + def help do + IO.puts(""" + Run updates on Nix Expressions that use fetchFromGitHub. + + Arguments the script accepts: + --attribute <attribute_path> + + Example usage: + ./nixpkgs_github_update --attribute "notes-up" + """) + end + + def main([]) do + help() + end + + def main(args) do + opts = parse_args(args) + + attribute = opts[:attribute] + + case Nix.attribute_exists?(attribute) do + true -> update(attribute) + _ -> exit("Requested attribute doesn't exist.") + end + end + + def parse_args(args) do + {options, _, _} = + args + |> OptionParser.parse(strict: [attribute: :string]) + + options + end + + def update(attribute) do + version = + Nix.get_owner_repo(attribute) + |> GitHubLatestVersion.fetch() + |> decode_response() + |> construct_version() + + Nix.update_source_version(attribute, version) + end + + def decode_response({:ok, response}), do: response + + def decode_response({:error, error}) do + IO.puts("Error getting latest release from GitHub: #{error["message"]}") + System.halt(2) + end + + def construct_version(response) do + Map.get(response, "tag_name") + |> String.trim_leading("v") + end +end diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex new file mode 100644 index 00000000000..bd4bb8100ba --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex @@ -0,0 +1,42 @@ +defmodule NixpkgsGitHubUpdate.GitHubLatestVersion do + @user_agent 'httpc' + + def fetch({owner, repo}) do + endpoint = releases_endpoint(owner, repo) + headers = construct_headers() + + :httpc.request(:get, {endpoint, headers}, [], []) + |> handle_response + end + + def releases_endpoint(owner, repo) do + 'https://api.github.com/repos/#{owner}/#{repo}/releases/latest' + end + + def construct_headers do + headers = %{'User-Agent' => @user_agent} + + put_token(headers, get_token()) + |> Map.to_list + end + + defp get_token do + String.to_charlist("#{System.get_env("OAUTH_TOKEN")}") + end + + defp put_token(headers, token) when is_binary(token) do + Map.put_new(headers, 'Authorization', 'token #{token}') + end + + defp put_token(headers, _), do: headers + + def handle_response({_, {{_httpv, status_code, _}, _headers, response}}) do + { + status_code |> check_for_error(), + response |> Poison.Parser.parse!(%{}) + } + end + + defp check_for_error(200), do: :ok + defp check_for_error(_), do: :error +end diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex new file mode 100644 index 00000000000..d5d9af84a6b --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex @@ -0,0 +1,85 @@ +defmodule NixpkgsGitHubUpdate.Nix do + def executable do + nix = System.find_executable("nix") + + if nix == nil do + raise RuntimeError, message: "missing executable for 'nix'" + end + + nix + end + + def eval!(attribute) do + System.cmd( + executable(), + [ + "eval", + "--json", + attribute + ], + stderr_to_stdout: true + ) + |> handle_eval + end + + defp handle_eval({eval_result, 0}) do + case eval_result do + "" -> eval_result + _ -> Poison.Parser.parse!(eval_result, %{}) + end + end + + defp handle_eval({eval_result, _}) do + raise RuntimeError, message: "Error running nix eval: #{eval_result}" + end + + def attribute_exists?(attribute) do + attr_exist_expression = """ + with import <nixpkgs> {}; + + let + attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." "#{attribute}") null pkgs; + in + if attrSet == null then false + else true + """ + + eval!("(#{attr_exist_expression})") + end + + def update_source_version(attribute, version) do + System.cmd("update-source-version", [ + attribute, + version + ]) + end + + def get_url_attr(attribute) do + case attribute_exists?("#{attribute}.src.fetchSubmodules") do + true -> "url" + false -> "urls" + end + end + + def get_owner_repo(attribute) do + url_attr = get_url_attr(attribute) + + eval!("nixpkgs.#{attribute}.src.#{url_attr}") + |> case do + # It's fetchFromGitHub if we got a list + [url | _] -> + URI.parse(url).path + |> String.split("/archive", trim: true) + |> List.first() + |> String.split("/", trim: true) + + # It's fetchgit if we got a plain string + url -> + URI.parse(url).path + |> String.split(".git", trim: true) + |> List.first() + |> String.split("/", trim: true) + end + |> List.to_tuple() + end +end diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs new file mode 100644 index 00000000000..3498c7066a4 --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs @@ -0,0 +1,28 @@ +defmodule NixpkgsGitHubUpdate.MixProject do + use Mix.Project + + def project do + [ + app: :nixpkgs_github_update, + version: "0.1.0", + elixir: "~> 1.9", + escript: [main_module: NixpkgsGitHubUpdate.CLI], + start_permanent: Mix.env() == :prod, + deps: deps() + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger, :inets, :ssl] + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + {:poison, "~> 4.0.1"} + ] + end +end diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix b/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix new file mode 100644 index 00000000000..0bb4e58a6a1 --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix @@ -0,0 +1,19 @@ +with import <nixpkgs> {}; + +let + inherit (lib) optional; +in + +mkShell rec { + name = "nixpkgs-github-update-shell"; + + buildInputs = [ + elixir + erlang + common-updater-scripts + ] + ++ optional stdenv.isLinux libnotify # For ExUnit Notifier on Linux. + ++ optional stdenv.isLinux inotify-tools # For file_system on Linux. + ; + +} diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs new file mode 100644 index 00000000000..c5a57698fed --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs @@ -0,0 +1,49 @@ +defmodule NixTest do + @fake_package "asanotehhhuh" + @fetchgit_package "polybar" + @fetchgithub_package "notes-up" + + use ExUnit.Case + + import NixpkgsGitHubUpdate.Nix + + def check_for_nix(_context) do + try do + executable() + rescue + RuntimeError -> + IO.puts("You need Nix installed to run these tests.") + System.halt(127) + end + + :ok + end + + setup_all :check_for_nix + + describe "evaluation tests" do + test "evaluation handling" do + exists_attr = "nixpkgs.#{@fetchgithub_package}" + + assert is_binary(eval!(exists_attr)) == true + catch_error(eval!(@fake_package) == 1) + end + + # This should always be true or false + test "package exists?" do + assert attribute_exists?(@fetchgithub_package) == true + assert attribute_exists?(@fake_package) == false + end + end + + test "owner repo" do + assert get_url_attr(@fetchgit_package) == "url" + assert get_url_attr(@fetchgithub_package) == "urls" + + assert get_owner_repo(@fetchgit_package) == + {@fetchgit_package, @fetchgit_package} + + assert get_owner_repo(@fetchgithub_package) == + {"Philip-Scott", String.capitalize(@fetchgithub_package)} + end +end diff --git a/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs b/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs new file mode 100644 index 00000000000..869559e709e --- /dev/null +++ b/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs @@ -0,0 +1 @@ +ExUnit.start() diff --git a/pkgs/desktops/pantheon/services/cerbere/default.nix b/pkgs/desktops/pantheon/services/cerbere/default.nix index a8eaf766664..a911440fa5d 100644 --- a/pkgs/desktops/pantheon/services/cerbere/default.nix +++ b/pkgs/desktops/pantheon/services/cerbere/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/services/contractor/default.nix b/pkgs/desktops/pantheon/services/contractor/default.nix index 5061793fa10..68532bdd812 100644 --- a/pkgs/desktops/pantheon/services/contractor/default.nix +++ b/pkgs/desktops/pantheon/services/contractor/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix index b4982fcf6be..d41750f8dfc 100644 --- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix @@ -30,8 +30,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix index fb9d28eaf6b..4ec1df36bea 100644 --- a/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix +++ b/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix @@ -25,8 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - inherit repoName; - attrPath = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix index 1e7f82f134d..0f919c7c94d 100644 --- a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix +++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix index 0259e687bd3..f244e0e4637 100644 --- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix +++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { passthru = { updateScript = pantheon.updateScript { - repoName = pname; + attrPath = "pantheon.${pname}"; }; }; diff --git a/pkgs/desktops/pantheon/update.nix b/pkgs/desktops/pantheon/update.nix index 3bc432c5d32..1137c533016 100644 --- a/pkgs/desktops/pantheon/update.nix +++ b/pkgs/desktops/pantheon/update.nix @@ -1,36 +1,6 @@ -{ runCommand -, nix -, bash -, git -, jq -, nix-prefetch-scripts -, coreutils -, common-updater-scripts -, gnugrep -, gnused -, curl -}: +{ nixpkgs-github-update }: -{ repoName -, attrPath ? repoName -, versionPolicy ? "release" -}: +{ attrPath }: -let - script = ./update.sh; - updateScript = runCommand "update.sh" { - inherit bash git jq nix coreutils gnugrep gnused curl; - # These weren't being substituted - nix_prefetch_scripts = nix-prefetch-scripts; - common_updater_scripts = common-updater-scripts; - } '' - substituteAll ${script} $out - chmod +x $out - ''; - - throwFlag = throw "${versionPolicy} is not a valid versionPolicy - Options are either 'release' or 'master' (defaults to release)."; - - versionFlag = { release = "-r"; master = "-m"; }.${versionPolicy} or throwFlag; - -in [ updateScript versionFlag repoName attrPath ] +[ "${nixpkgs-github-update}/bin/nixpkgs_github_update" "--attribute" attrPath ] diff --git a/pkgs/desktops/pantheon/update.sh b/pkgs/desktops/pantheon/update.sh deleted file mode 100755 index 4897697d94f..00000000000 --- a/pkgs/desktops/pantheon/update.sh +++ /dev/null @@ -1,236 +0,0 @@ -#!@bash@/bin/bash -PATH=@bash@/bin:@nix_prefetch_scripts@/bin:@common_updater_scripts@/bin:@git@/bin:@jq@/bin:@nix@/bin:@gnugrep@/bin:@gnused@/bin:@curl@/bin:$PATH -#!/usr/bin/env bash - -set -eu -o pipefail - -# -# ─── HOW TO USE ───────────────────────────────────────────────────────────────── -# - -function usage ( ) { - cat <<EOF -Usage: update.sh <repo_name> <attr> -EOF -} - -# -# ─── POINTS YOU IN THE RIGHT DIRECTION ────────────────────────────────────────── -# - - function usage_tip ( ) { - echo 'run `update.sh -h` for usage instructions' >&2 - exit 1 - } - -# -# ─── OPTIONS: RELEASE | MASTER ──────────────────────────────────────────────────── -# - - while getopts ":hrm" opt; do - case $opt in - r) - release=1 - master=0 - ;; - m) - master=1 - release=0 - ;; - h) - usage - exit - ;; - ?) - echo "Invalid option: -$OPTARG" >&2 - usage_tip - ;; - esac - done - - shift $((OPTIND-1)) - -# -# ─── FAIL WITH MESSAGE AND NON-ZERO EXIT STATUS ───────────────────────────────── -# - - function fail ( ) { - echo "$1" >&2 - exit 1 - } - -# -# ─── UPDATES PACKAGE TO LATEST TAGGED RELEASE ─────────────────────────────── -# - - function update_to_latest_release ( ) { - repo_name="$1" - attr="$2" - - version=$(get_latest_tag "$repo_name") - fetch=$(fetch "$repo_name" "refs/tags/${version}") - sha256=$(get_hash "${fetch}") - - update-source-version "pantheon.$attr" "$version" "$sha256" - - nix_file=$(get_file_path $attr) - - if [ ! -f "$nix_file" ]; then - fail "Couldn't evaluate 'pantheon.$attr.meta.position' to locate the .nix file!" - fi - - correct_rev "$attr" "$nix_file" "version" - } - -# -# ─── UPDATES PACKAGE TO MASTER ────────────────────────────────────────────────── -# - - function update_to_master ( ) { - repo_name="$1" - attr="$2" - - fetch=$(fetch "$repo_name" "refs/heads/master") - - version=$(get_version "$fetch") - sha256=$(get_hash "$fetch") - proper_version=$(get_master_date "$fetch") - - update-source-version "pantheon.$attr" "$proper_version" "$sha256" - - nix_file=$(get_file_path $attr) - - if [ ! -f "$nix_file" ]; then - fail "Couldn't evaluate 'pantheon.$attr.meta.position' to locate the .nix file!" - fi - - correct_rev "$attr" "$nix_file" '"'$version'"' - } - -# -# ─── GETS THE LATEST TAGGED RELEASE NAME FROM GITHUB ───────────────────── -# - - function get_latest_tag ( ) { - repo_name="$1" - - OAUTH_TOKEN=$(printenv OAUTH_TOKEN) - - if [ -n "$OAUTH_TOKEN" ]; then - curl \ - --silent \ - --show-error \ - --fail \ - -X GET \ - --header "Authorization: token $OAUTH_TOKEN" \ - "https://api.github.com/repos/elementary/$repo_name/releases/latest" \ - | jq -r '.tag_name' - else - curl \ - --silent \ - --show-error \ - --fail \ - -X GET \ - "https://api.github.com/repos/elementary/$repo_name/releases/latest" \ - | jq -r '.tag_name' - fi - } - -# -# ─── FETCHES REPO AND RETURNS RELEVANT INFORMATION ────────────────── -# - - function fetch ( ) { - repo_name="$1" - version="$2" - - base_url="https://github.com/elementary" - full_url="$base_url/$repo_name" - - nix-prefetch-git --quiet --no-deepClone --url "$full_url" --rev "$version" - } - -# -# ─── PARSES GIT REVISION FROM FETCH ───────────────────────────────────────────── -# - - function get_version ( ) { - fetch_info="$1" - - echo "$fetch_info" | jq -r '.rev' - } - -# -# ─── PARSES HASH FROM FETCH ───────────────────────────────────────────────────── -# - - function get_hash ( ) { - fetch_info="$1" - - echo "$fetch_info" | jq -r '.sha256' - } - -# -# ─── PARSES DATE FROM FETCH AND NORMALIZES IT TO NIXPKGS STANDARD ─────────────── -# - - function get_master_date ( ) { - fetch_info="$1" - - full_date=$(echo "$fetch_info" | jq -r '.date') - short_date=$(date -d "$full_date" +"%Y-%m-%d") - - echo "unstable-$short_date" - } - -# -# ─── RETURN NIX EXPRESSION PATH ───────────────────────────────────────────────── -# - - function get_file_path () { - attr="$1" - - nix-instantiate --eval --strict -A "pantheon.$attr.meta.position" | sed -re 's/^"(.*):[0-9]+"$/\1/' - } - -# -# ─── CORRECTS REV VERSION ─────────────────────────────────────────────────────────── -# - - function correct_rev ( ) { - attr="$1" - nix_file="$2" - rev="$3" - - check_pattern1='^\s*rev\s*=\s*"[0-9a-f]{5,40}"' - check_pattern2='^\s*rev\s*=\s*version' - - replace_pattern1='/\brev\b\s*=/ s|\"[0-9a-f]{5,40}\"|'$rev'|' - replace_pattern2='/\brev\b\s*=/ s|version|'$rev'|' - - if [ $(grep -c -P "$check_pattern1" "$nix_file") = 1 ]; then - pattern="$replace_pattern1" - elif [ $(grep -c -P "$check_pattern2" "$nix_file") = 1 ]; then - pattern="$replace_pattern2" - else - fail "Couldn't figure out where out where to patch in the correct version in pantheon.$attr!" - fi - - sed -i.bak "$nix_file" -re "$pattern" - rm -f "$nix_file.bak" - } - - -# -# ─── WHETHER TO UPDATE TO RELEASE OR MASTER ────────────────────────────────── -# - - if [ $release = 1 ]; then - update_to_latest_release $1 $2 - elif [ $master = 1 ]; then - update_to_master $1 $2 - else - exit 1 - fi - -# ──────────────────────────────────────────────────────────────────────────────── diff --git a/pkgs/desktops/xfce/applications/catfish/default.nix b/pkgs/desktops/xfce/applications/catfish/default.nix new file mode 100644 index 00000000000..3c0fbafc784 --- /dev/null +++ b/pkgs/desktops/xfce/applications/catfish/default.nix @@ -0,0 +1,66 @@ +{ stdenv, fetchurl, file, which, intltool, gobject-introspection, + findutils, xdg_utils, dconf, gtk3, python3Packages, + wrapGAppsHook +}: + +python3Packages.buildPythonApplication rec { + pname = "catfish"; + version = "1.4.11"; + + src = fetchurl { + url = "https://archive.xfce.org/src/apps/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2"; + sha256 = "11fdzz3l5mydscs4a398siphxwr6xf3cfyimr0hgpkg3169syyv1"; + }; + + nativeBuildInputs = [ + python3Packages.distutils_extra + file + which + intltool + gobject-introspection # for setup hook populating GI_TYPELIB_PATH + wrapGAppsHook + ]; + + buildInputs = [ + gtk3 + dconf + python3Packages.pyxdg + python3Packages.ptyprocess + python3Packages.pycairo + gobject-introspection # Temporary fix, see https://github.com/NixOS/nixpkgs/issues/56943 + ]; + + propagatedBuildInputs = [ + python3Packages.dbus-python + python3Packages.pygobject3 + python3Packages.pexpect + xdg_utils + findutils + ]; + + # Explicitly set the prefix dir in "setup.py" because setuptools is + # not using "$out" as the prefix when installing catfish data. In + # particular the variable "__catfish_data_directory__" in + # "catfishconfig.py" is being set to a subdirectory in the python + # path in the store. + postPatch = '' + sed -i "/^ if self.root/i\\ self.prefix = \"$out\"" setup.py + ''; + + # Disable check because there is no test in the source distribution + doCheck = false; + + meta = with stdenv.lib; { + homepage = https://docs.xfce.org/apps/catfish/start; + description = "Handy file search tool"; + longDescription = '' + Catfish is a handy file searching tool. The interface is + intentionally lightweight and simple, using only GTK 3. + You can configure it to your needs by using several command line + options. + ''; + license = licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index 793142fdc18..7442ff478f5 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -56,6 +56,8 @@ lib.makeScope pkgs.newScope (self: with self; { #### APPLICATIONS + catfish = callPackage ./applications/catfish { }; + gigolo = callPackage ./applications/gigolo { }; mousepad = callPackage ./applications/mousepad { }; |