From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from pigeon.gentoo.org ([208.92.234.80] helo=lists.gentoo.org) by finch.gentoo.org with esmtp (Exim 4.60) (envelope-from ) id 1M15IS-0003fr-On for garchives@archives.gentoo.org; Mon, 04 May 2009 21:01:57 +0000 Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 955E4E0327; Mon, 4 May 2009 21:01:38 +0000 (UTC) Received: from mail-bw0-f223.google.com (mail-bw0-f223.google.com [209.85.218.223]) by pigeon.gentoo.org (Postfix) with ESMTP id 2AB88E0327 for ; Mon, 4 May 2009 21:01:38 +0000 (UTC) Received: by bwz23 with SMTP id 23so3740475bwz.34 for ; Mon, 04 May 2009 14:01:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:subject:from:to:content-type :date:message-id:mime-version:x-mailer; bh=Lo1MUNORnGkL3uifgiZcE34Dh7Go3HM/GrQb2mfby/8=; b=EWd2O6LP4hRbxNfueegG8HmF8dwzONHDHd4RGaokSB0xCZyz2flRThHLwFX3uS6SEg mlDwniStzVPkdV99bI/bSLRykemAw64kwLAWevZoWPC25BdQ7rEKtibcA4TtQlQd8HxI Y02DorS4RreDP/zCg0QH2tG44urbxBZwJmKL4= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=subject:from:to:content-type:date:message-id:mime-version:x-mailer; b=nbDLLrwG6ZH+A/NCUkHd5pMnpeYjLfFeuRroNXleDW6qQe4E0/EJlkuzauGoVU9ORp qsGj+XWAxmkhN7vb+balIWAUyH4lg4QJCOKAJvg/i6yiX9n97fuMQ+hexmlZCtdr8JIq 0TZD4i81hlOIxQb7uS7ad3hW0HpMGAYrpRCnI= Received: by 10.103.24.17 with SMTP id b17mr3872150muj.21.1241470897300; Mon, 04 May 2009 14:01:37 -0700 (PDT) Received: from ?10.0.0.3? (89-180-5-202.net.novis.pt [89.180.5.202]) by mx.google.com with ESMTPS id w5sm17417192mue.34.2009.05.04.14.01.36 (version=SSLv3 cipher=RC4-MD5); Mon, 04 May 2009 14:01:36 -0700 (PDT) Subject: [gentoo-dev] Google SoC @ Gentoo - Universal Select Tool From: =?ISO-8859-1?Q?S=E9rgio?= Almeida To: gentoo-dev@lists.gentoo.org Content-Type: multipart/mixed; boundary="=-77P7/nT2bShkyVcp70Uu" Date: Mon, 04 May 2009 22:01:34 +0100 Message-Id: <1241470894.6119.80.camel@thedude> Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-dev@lists.gentoo.org Reply-to: gentoo-dev@lists.gentoo.org Mime-Version: 1.0 X-Mailer: Evolution 2.26.1 X-Archives-Salt: e4c2dbc4-8dcd-477e-9699-13b8ed5c0c8d X-Archives-Hash: e21ea0309ccb181f68f587f8b78d9972 --=-77P7/nT2bShkyVcp70Uu Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Gentoo Dev's, My name is S=C3=A9rgio Almeida, I am Portuguese and I am a student for th= is year's Google SoC coding the Universal Select Tool project for Gentoo being S=C3=A9bastien Fabbro (bicatali) my mentor. Abstract: Universal Select Tool is an utility to manage system configuration. This tool is similar to the unmaintained eselect utility of Gentoo or Exherbo's eclectic. The idea is to create a tool that manages both system settings and user settings with profile creation possibilities. The utility will use mostly concepts from "modules", "softenv", and both "eselect" and "eclectic". My initial proposal does not get in-depth with implementation details and I need to make some decisions as soon as possible. Implementation language will be python as it is easy to maintain, easy to code and faster and more flexible than bash. See attachment for more details. Besides introducing myself, the purpose of this e-mail is a call-to-ideas to all Gentoo developers, mainly all eselect-* and *-config developers. Here are the main interest ideas: * keep eselect structure of modules - actions * symlinking, environment and aliases actions can consist of something like: # module moo comments description "Example Module description" version "Example Module Version" author "moo@farm.moo" # action system moo description "Moo Action Description" symlink "regexp" "regexp" env "regexp" "regexp" alias "regexp" "regexp" # end moo =20 These should get the job done for most of the modules and opens the door to automatic module creation prior to a successful emerge (if some USE flag set) * Actions that consist of code blocks that support any scripting language (what about binaries?) to do more complex actions (full module example): # module moo comments description "Example Module description" version "Example Module Version" author "moo@farm.moo" =20 # action user moo description "Example Module will moo for any user" type runnable runner /bin/bash # file moo.bash #!/bin/bash do_moo() { echo "This is the Example Module mooing" } do_moo() # end moo.bash # end moo * actions can be run system-wide and per-user: # action user moo # action system moo * automatic module loading and profile management can be managed by some env.d python scripts that are user-aware and follow some database =20 I've been given this difficult task of unifying all of these tools together and as you all can understand, I won't be having the time to read through all eselect-* modules and *-config utilities code. Please drop me a line here or at freenode if you have anything to add to these ideas or have any further ideas that can help me on this project. Thank you all in advance. Cheers, S=C3=A9rgio Almeida mephx @ freenode --=-77P7/nT2bShkyVcp70Uu Content-Disposition: attachment; filename="proposal" Content-Type: text/plain; name="proposal"; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Universal Select Tool *Abstract Universal Select Tool is an utility to manage system configuration. This tool is similar to the unmaintained eselect utility of Gentoo or Exherbo's eclectic. The idea is to create a tool that manages both system settings and user settings with profile creation possibilities. The utility will use mostly concepts from "modules", "softenv", and both "eselect" and "eclectic". *Objective The objective of this project is to create a unified configuration utility for gentoo. Why this new tool and not eselect? Gentoo has a set of configuration utilities (eselect-* *-config) that work with global environment settings regarding the system and therefore needed to be contradicted by hand by users to fulfill their need to change it's own defaults. This is a common problem within clusters, shared-servers, etc, basically all multi-user, multi-profile, multi-use environments. Creating this utility makes environment profiles, slots, virtuals and multi-implementations easier to manage, create and manipulate by developers, sysadmins and users. The current available solutions do not work this way and therefore enlarging the gap between configuration unification, profiling and usability. *General Ideas Some modules that this project wants to unite do much more than just update environment variables. Further discussion should be done with all participants in such projects to check if a general tool can be created and if not, what can be split as a module and what can not. Modules will need to be thought in a way that no further *-config and eselect-* utilities need to exist anymore. These utilities will be replaced by a module of it's own that allows the universal select tool to manipulate all available configuration that is specified by the module. Modules will not only specify to the universal select tool what can be changed but also how to make those changes. Modules will be indexed in it's own database file for faster searching, switching, and profile creation and managing. This database will need to be updated by portage upon each successful module-able emerge. *Key features Merging all eselect-* and *-config modules into one unified framework. Quick and easy plugin of new modules when a virtual or several slots of one package exist to allow modul-ization of several packages. Fast. Per-User and Per-System module settings. Create profiles of module settings, Per-User and Per-System. Possible new modules: mysql, tex, intel compiler suite, fortran, etc. *Deliverables an application (probably uselect) and the corresponding ebuild documentation module examples ebuild examples patch to portage (possibly) Programming language is yet to be defined but possibly python, bash or C. *Timeline April 20 - May 23 Get to know code/documentation/use of "modules", "softenv", "eselect", "ecletic" and "portage". Highlight base features and algorithms to reimplement/discard. Make decisions regarding the base of the aplication such as databases, module format/handling, dependencies in portage and user environment handling. Set up a gentoo virtual machine that can be replicated to use as clean sandboxes for testing througout the development with various environments. May 23 - July 3 Choose and setup the build environment for the new utility. Begin implementation of the base features and module system. Create sample modules. (Mid Milestone) July 4 - July 30 Retouch wathever is needed. Implement Portage's module handling part. Create sample ebuild. (Final Milestone) August 1 - August 17 Tests Re-touching Documentation *Biography My name is S=C3=A9rgio Almeida and I live in Lisbon, Portugal. I am 22 years old and Informatics have always been my interest since I first got in touch with a friend's Comodore. I study informatics & computers science engineering @ Instituto Superior T=C3=A9cnico and plan to get my MsC degree in 2012. My main interests are distributed systems and computer/network security. I started working as a sysadmin at the age of 16 at VirtualGames, a game server provider for fun and without any profit. I am currently working as sysadmin at my University's Physics Investigation department. Besides this i play bass in a rock band, =C2=ABdon't disturb my circles=C2=BB and I enjoy listening, composing, re= cording and mixing music. --=-77P7/nT2bShkyVcp70Uu--