         options]
     (when (get-in package-systems [package-system :required-arguments])
       (check-required! options (get package-systems package-system)))
-    (let [genrepo
-          (if (get-in package-systems [package-system :constructor])
-            ((get-in package-systems [package-system :constructor])
-             options)
-            (get-in package-systems [package-system :genrepo]))
-          version-comparator
+    (when (not (get-in package-systems [package-system :query-constructor]))
+      (check-required!
+        options
+        {:required-arguments {:repositories ["-R" "--repository"]}}))
+    (let [version-comparator
           (get version-comparators version-comparison)
           requirement-data
           (mapv

  package-systems
  {"apt" {:genrepo apt-pkg/slurp-apt-repo
          :version-comparison "debian"}
   "git" {:constructor git-pkg/make-slurper
          :version-comparison "semver"}
   "degasolv" {:genrepo degasolv-pkg/slurp-degasolv-repo
               :version-comparison "semver"}
   "subproc" {:constructor subproc-pkg/make-slurper
              :required-arguments {:subproc-exe ["-x" "--subproc-exe"]}}})

(defn command-list [commands]

                output-format
                package-system
                present-packages
                requirements
                resolve-strat
                search-strat
