git.iko.soy/typeable/nixpkgs
on master help sign in
Merge pull request #160726: dash-to-dock: Build from source again

gnomeExtensions.dash-to-dock: Build from source again

commitbb04f169d0a14d1f73b348a34fe4d862fbd186dd authorpiegames <git@piegames.de> dateSat 19 Feb 2022, 12:18 (5 years ago) parentb27f2f2967a4c2
4 files changed+123−13
pkgs/common-updater/unstable-updater.nix+74−9 pkgs/desktops/gnome/extensions/dash-to-dock/default.nix+48 pkgs/desktops/gnome/extensions/extensionOverrides.nix−4 pkgs/desktops/gnome/extensions/manuallyPackaged.nix+1
pkgs/common-updater/unstable-updater.nix+74−9
@@ -10,38 +10,103 @@
1010# commit.
1111{ url ? null # The git url, if empty it will be set to src.url
1212, branch ? null
13+, stableVersion ? false # Use version format according to RFC 107 (i.e. LAST_TAG+date=YYYY-MM-DD)
14+, tagPrefix ? "" # strip this prefix from a tag name when using stable version
1315}:
1416
1517let
1618 updateScript = writeShellScript "unstable-update-script.sh" ''
1719 set -ex
1820
19− url="$1"
21+ url=""
22+ branch=""
23+ use_stable_version=""
24+ tag_prefix=""
25+
26+ while (( $# > 0 )); do
27+ flag="$1"
28+ shift 1
29+ case "$flag" in
30+ --url=*)
31+ url="''${flag#*=}"
32+ ;;
33+ --branch=*)
34+ branch="''${flag#*=}"
35+ ;;
36+ --use-stable-version)
37+ use_stable_version=1
38+ ;;
39+ --tag-prefix=*)
40+ tag_prefix="''${flag#*=}"
41+ ;;
42+ *)
43+ echo "$0: unknown option ‘''${flag}’"
44+ exit 1
45+ ;;
46+ esac
47+ done
2048
2149 # By default we set url to src.url
2250 if [[ -z "$url" ]]; then
2351 url="$(${nix}/bin/nix-instantiate $systemArg --eval -E \
24− "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.url" \
52+ "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.url or $UPDATE_NIX_ATTR_PATH.src.meta.homepage" \
2553 | tr -d '"')"
2654 fi
2755
2856 # Get info about HEAD from a shallow git clone
2957 tmpdir="$(${coreutils}/bin/mktemp -d)"
30− ${git}/bin/git clone --bare --depth=1 \
31− ${lib.optionalString (branch != null) "--branch ${branch}"} \
32− "$url" "$tmpdir"
58+
59+ cloneArgs=(
60+ --bare
61+ --depth=1
62+ )
63+
64+ if [[ -n "$branch" ]]; then
65+ cloneArgs+=(--branch="$branch")
66+ fi
67+
68+ ${git}/bin/git clone "''${cloneArgs[@]}" "$url" "$tmpdir"
69+
3370 pushd "$tmpdir"
3471 commit_date="$(${git}/bin/git show -s --pretty='format:%cs')"
3572 commit_sha="$(${git}/bin/git show -s --pretty='format:%H')"
73+ if [[ -z "$use_stable_version" ]]; then
74+ new_version="unstable-$commit_date"
75+ else
76+ depth=100
77+ while (( $depth < 10000 )); do
78+ last_tag="$(${git}/bin/git describe --tags --abbrev=0 2> /dev/null || true)"
79+ if [[ -n "$last_tag" ]]; then
80+ break
81+ fi
82+ ${git}/bin/git fetch --depth="$depth" --tags
83+ depth=$(( $depth * 2 ))
84+ done
85+ if [[ -z "$last_tag" ]]; then
86+ echo "Cound not found a tag within last 10000 commits" > /dev/stderr
87+ exit 1
88+ fi
89+ if [[ -n "$tag_prefix" ]]; then
90+ last_tag="''${last_tag#$tag_prefix}"
91+ fi
92+ new_version="$last_tag+date=$commit_date"
93+ fi
3694 popd
37− ${coreutils}/bin/rm -rf "$tmpdir"
95+ # ${coreutils}/bin/rm -rf "$tmpdir"
3896
3997 # update the nix expression
4098 ${common-updater-scripts}/bin/update-source-version \
4199 "$UPDATE_NIX_ATTR_PATH" \
42− "unstable-$commit_date" \
100+ "$new_version" \
43101 --rev="$commit_sha"
44102 '';
45103
46−in [ updateScript url ]
47−
104+in [
105+ updateScript
106+ "--url=${builtins.toString url}"
107+] ++ lib.optionals (branch != null) [
108+ "--branch=${branch}"
109+] ++ lib.optionals stableVersion [
110+ "--use-stable-version"
111+ "--tag-prefix=${tagPrefix}"
112+]
pkgs/desktops/gnome/extensions/dash-to-dock/default.nixnew file+48
@@ -0,0 +1,48 @@
1+{ stdenv
2+, lib
3+, fetchFromGitHub
4+, glib
5+, gettext
6+, sassc
7+, unstableGitUpdater
8+}:
9+
10+stdenv.mkDerivation rec {
11+ pname = "gnome-shell-extension-dash-to-dock";
12+ version = "71+date=2022-01-24";
13+
14+ # Temporarily switched to commit hash because stable version is buggy.
15+ src = fetchFromGitHub {
16+ owner = "micheleg";
17+ repo = "dash-to-dock";
18+ rev = "53114b4e000482a753e8b42dfa10d6057c08d1c6";
19+ sha256 = "Gv78I/dxhc6FpjZWk10uHBfD24tHE4KdkpaAo8UZpwU=";
20+ };
21+
22+ nativeBuildInputs = [
23+ glib
24+ gettext
25+ sassc
26+ ];
27+
28+ makeFlags = [
29+ "INSTALLBASE=${placeholder "out"}/share/gnome-shell/extensions"
30+ ];
31+
32+ passthru = {
33+ extensionUuid = "dash-to-dock@micxgx.gmail.com";
34+ extensionPortalSlug = "dash-to-dock";
35+
36+ updateScript = unstableGitUpdater {
37+ stableVersion = true;
38+ tagPrefix = "extensions.gnome.org-v";
39+ };
40+ };
41+
42+ meta = with lib; {
43+ description = "A dock for the Gnome Shell";
44+ homepage = "https://micheleg.github.io/dash-to-dock/";
45+ license = licenses.gpl2Plus;
46+ maintainers = with maintainers; [ eperuffo jtojnar rhoriguchi ];
47+ };
48+}
pkgs/desktops/gnome/extensions/extensionOverrides.nix−4
@@ -28,10 +28,6 @@ super: lib.trivial.pipe super [
2828 meta.maintainers = with lib.maintainers; [ eperuffo ];
2929 }))
3030
31− (patchExtension "dash-to-dock@micxgx.gmail.com" (old: {
32− meta.maintainers = with lib.maintainers; [ eperuffo jtojnar rhoriguchi ];
33− }))
34−
3531 (patchExtension "ddterm@amezin.github.com" (old: {
3632 # Requires gjs, zenity & vte via the typelib
3733 nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
pkgs/desktops/gnome/extensions/manuallyPackaged.nix+1
@@ -2,6 +2,7 @@
22{
33 "arcmenu@arcmenu.com" = callPackage ./arcmenu { };
44 "clock-override@gnomeshell.kryogenix.org" = callPackage ./clock-override { };
5+ "dash-to-dock@micxgx.gmail.com" = callPackage ./dash-to-dock { };
56 "drop-down-terminal@gs-extensions.zzrough.org" = callPackage ./drop-down-terminal { };
67 "EasyScreenCast@iacopodeenosee.gmail.com" = callPackage ./EasyScreenCast { };
78 "emoji-selector@maestroschan.fr" = callPackage ./emoji-selector { };