* build-aux/hydra/demo-os.scm (operating-system)[issue]: Point to shepherd instead of dmd. * ROADMAP: Likewise. * gnu/build/install.scm (directives): Adjust comment.
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Org Mode
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			3.2 KiB
		
	
	
	
		
			Org Mode
		
	
	
	
	
	
| -*- mode: org; coding: utf-8; -*-
 | ||
| 
 | ||
| #+TITLE: Tentative GNU Guix Road Map
 | ||
| 
 | ||
| Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 | ||
| 
 | ||
|   Copying and distribution of this file, with or without modification,
 | ||
|   are permitted in any medium without royalty provided the copyright
 | ||
|   notice and this notice are preserved.
 | ||
| 
 | ||
| The goals of the GNU Guix project are two-fold:
 | ||
| 
 | ||
|   - to build a purely functional package manager, based on Nix and
 | ||
|     Guile;
 | ||
| 
 | ||
|   - to use it to build a practical 100% free software distribution of
 | ||
|     GNU/Linux and possibly other GNU variants, with a focus on the
 | ||
|     promotion and tight integration of GNU components–the GNU system.
 | ||
| 
 | ||
| Since its inception, the project has gone a long way towards that goal.  Below
 | ||
| is a list of items we want for version "1.0" of the Guix System Distribution.
 | ||
| There will be a few 0.x releases by then to give the new features more
 | ||
| exposure and testing.
 | ||
| 
 | ||
| You're welcome to discuss this road map on guix-devel@gnu.org or #guix on
 | ||
| Freenode!
 | ||
| 
 | ||
| * Features scheduled for 1.0
 | ||
| 
 | ||
|   - larger & more robust build farm
 | ||
|     + we need a powerful, dedicated front-end
 | ||
|     + armhf-linux build machine
 | ||
|     + leave Hydra in favor of 'guix publish' + custom code?
 | ||
|   - more OS features
 | ||
|     + LVM support
 | ||
|     + encrypted root
 | ||
|     + configurable name service switch
 | ||
|     + whole-system unit tests, using VMs
 | ||
|   - more service definitions
 | ||
|     + mcron, postfix(?), wicd(?), etc.
 | ||
|   - better 'guix system'
 | ||
|     + 'reconfigure' should be able to restart non-essential services
 | ||
|     + support for '--list-generations' and '--delete-generations'
 | ||
|   - better 'guix pull'
 | ||
|     + using Git to fetch the source instead of re-downloading everything
 | ||
|     + build more quickly
 | ||
|     + install new .mo files and new manual
 | ||
|     + authentication of the Guix source: use signed commits?
 | ||
|   - simplified, purely declarative service list in 'operating-system'
 | ||
|     + it should be possible to inspect the service instance declarations and
 | ||
|       settings
 | ||
|   - GUIs
 | ||
|     + integrate guix-web?
 | ||
|     + guile-ncurses installer?
 | ||
|   - 'guix publish'?
 | ||
| 
 | ||
| * Features for later
 | ||
| 
 | ||
|   - complete GNU/Hurd port
 | ||
|   - use content-based addressing when downloading substitutes to reduce
 | ||
|     bandwidth requirements
 | ||
|     + design nar v2 format where file contents are replaced by their hashes
 | ||
|     + leverage /gnu/store/.links
 | ||
|   - binary origin tracking
 | ||
|     + keep signatures in sqlite.db
 | ||
|     + preserve signatures upon import/export
 | ||
|   - peer-to-peer distribution of updates (GNUnet?)
 | ||
|   - more deterministic builds
 | ||
|     + identify & fix sources of non-determinism in builds
 | ||
|     + strengthen guix-daemon containers to further increase reproducibility
 | ||
|     + trusting-trust: bootstrap with different tool chains
 | ||
|     + fixed-point: re-bootstrap until fixed point is reached
 | ||
|     + distributed validation: compare contents of store items with others
 | ||
|       * resist a hydra.gnu.org compromise
 | ||
|   - reproducible containers: mix of 'guix environment' and 'guix system vm'
 | ||
|   - execute code with least privilege
 | ||
|     + build containers like guix-daemon does
 | ||
|     + provide a Plash-like interface in Bash
 | ||
|   - daemon rewritten in Guile
 | ||
|   - more shepherd integration
 | ||
|     + monitor network interfaces and start/stop events based on that
 | ||
|     + include a DHCP client written in Scheme
 |