Current: To create a new upstart-job (such as mysqld/ httpd) you have to change upstart-jobs/default.nix and write upstart-jobs/yourjob.nix
example: # DHCP client. ++ optional ["networking" "useDHCP"] (import ../upstart-jobs/dhclient.nix { inherit (pkgs) nettools dhcp lib; interfaces = config.get ["networking" "interfaces"]; }) my proposal: Goal: make a service behave more like plugins interface-design: cfg : pkgs : [(your job) (your job)] Benefits: Don't have to modify upstart-jobs/default.nix Thus if you want to run a second mysqld instances just copy the .nix file and add configuration settings to you nixos/configuration.nix file You can find a semi tested draft implementation here: http://rafb.net/p/bDRWJe46.html drawbacks: Doesn't solve all issues What we really need: Think of running two mysqld instances and apache and phpMyAdmin (DB-Web Interface) So we want to add the web application phpMyAdmin to httpd and telling phpMyAdmin which port to use ! How should the configuration look like? let mysql_conf = { port = xxx; }; in { services = { mysql = mysql_conf; httpd = { apps = { phpMyAdmin { mysql = mysql_conf, url_path = "/phpMyAdmin"} } } would be pretty simple and phpMyAdmin knows wether myslqd has been enabled and which port to use additional: < niksnut> btw, maybe the services tree should be merged with the nixos tree I agree. Then the svn repository would look the same way /etc/nixos. does. Marc W. _______________________________________________ nix-dev mailing list nix-dev@cs.uu.nl https://mail.cs.uu.nl/mailman/listinfo/nix-dev