update bleeding edge repo management
it now figures out the dist name from the url and the revision is added to the url This way a new version doesn't override the old one and you can keep multiple dist tar.gz files svn path=/nixpkgs/trunk/; revision=13065
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
args:
|
||||
with args;
|
||||
let inherit (builtins) pathExists; in
|
||||
let inherit (builtins) pathExists hasAttr getAttr head; in
|
||||
rec {
|
||||
/*
|
||||
tries to get source in this order
|
||||
@@ -13,13 +13,14 @@ args:
|
||||
managedRepoDir = getConfig [ "bleedingEdgeRepos" "managedRepoDir" ] (builtins.getEnv "HOME" + "/managed_repos");
|
||||
|
||||
sourceByName = name :
|
||||
let localTarGZ = managedRepoDir+"/dist/${name}.tar.gz";
|
||||
let fetchinfo = if (hasAttr name fetchInfos)
|
||||
then (getAttr name fetchInfos) { inherit fetchurl; }
|
||||
else throw "no bleeding edge source attribute found in bleeding-edge-fetch-infos.nix with name ${name}\n"
|
||||
"run NO_FETCH=1 nix-repository-manager <path to nixpkgs> --update <reponame> to add it automatically";
|
||||
localTarGZ = managedRepoDir+"/dist/${ lib.dropPath (head fetchinfo.urls) }"; # hack, dropPath should be implemented as primop
|
||||
fetchInfos = import ../../../misc/bleeding-edge-fetch-infos.nix; in
|
||||
if (getConfig ["bleedingEdgeRepos" "useLocalRepos"] false ) && pathExists localTarGZ
|
||||
then localTarGZ
|
||||
else if __hasAttr name fetchInfos
|
||||
then (__getAttr name fetchInfos) { inherit fetchurl; }
|
||||
else throw "warning, no bleeding edge source attribute found in bleeding-edge-fetch-infos.nix with name ${name}";
|
||||
if (getConfig ["bleedingEdgeRepos" "useLocalRepos"] false )
|
||||
then localTarGZ else fetchinfo;
|
||||
|
||||
repos =
|
||||
let kde4support = builtins.listToAttrs (map (n: lib.nv ("kdesupport_"+n) { type = "svn"; url = "svn://anonsvn.kde.org/home/kde/trunk/kdesupport/${n}"; groups="kdesupport"; })
|
||||
@@ -64,6 +65,8 @@ args:
|
||||
kdepimlibs = { type="svn"; url="svn://anonsvn.kde.org/home/kde/trunk/KDE/kdepimlibs"; groups = "kde"; };
|
||||
kdebase = { type="svn"; url="svn://anonsvn.kde.org/home/kde/trunk/KDE/kdebase"; groups = "kde"; };
|
||||
|
||||
cinelerra = { type="git"; url="git://git.cinelerra.org/j6t/cinelerra.git"; };
|
||||
|
||||
# git repositories
|
||||
hypertable = { type="git"; url="git://scm.hypertable.org/pub/repos/hypertable.git"; groups=""; };
|
||||
} // kde4support // getConfig [ "bleedingEdgeRepos" "repos" ] {};
|
||||
|
||||
Reference in New Issue
Block a user