diff --git a/setup-desktop.in b/setup-desktop.in
index 3d7fafe9709b96ce765c07a5e6c5c0fb5b74b57c..34568d28c865e9542401772deee000f35ed4f2d7 100644
--- a/setup-desktop.in
+++ b/setup-desktop.in
@@ -80,8 +80,9 @@ case "$de" in
 		rc-update add lightdm
 		;;
 	gnome)
-		setup-xorg-base ${BROWSER:-firefox} $(apk info --quiet --depends \
-			gnome gnome-apps-core) "$@"
+		setup-xorg-base ${BROWSER:-firefox} "$@"
+		# apk info needs community repos which are enabled with setup-xorg-base
+		apk add $(apk info --quiet --depends gnome gnome-apps-core)
 		rc-update add gdm
 		rc-update add elogind
 		;;
diff --git a/tests/bin/apk b/tests/bin/apk
index aaed957fd0183fae322472dfbe62d6c07d611ed9..7b1296f48436deaca5fc04912b09e6a78d2d2c5a 100755
--- a/tests/bin/apk
+++ b/tests/bin/apk
@@ -58,7 +58,11 @@ case "$cmd" in
 						printf "%s depends on:\n\n"
 					fi
 					case "$pkg" in
-						*gnome*) printf "gnome-shell\ngvfs\n";;
+						*gnome*)
+							if grep -q '^[^#].*community$' etc/apk/repositories; then
+								printf "gnome-shell\ngvfs\n"
+							fi
+							;;
 					esac
 				done
 				;;
diff --git a/tests/setup_desktop_test b/tests/setup_desktop_test
index 026a83f99fb7bc0cd79f9aa403de68a9dff006be..4ece47657f5c793b601f2b2b64e97dcdfdb0490a 100755
--- a/tests/setup_desktop_test
+++ b/tests/setup_desktop_test
@@ -32,6 +32,8 @@ setup_desktop_xfce_body() {
 
 setup_desktop_gnome_body() {
 	init_env
+	mkdir -p etc/apk
+	echo "https://example.tld/main" > etc/apk/repositories
 	atf_check -s exit:0 \
 		-o match:"apk add.*gnome" \
 		-o match:"Starting udev" \