public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] dev/zorry:master commit in: buildhost/updatedb/, ebuild/dev-python/gobs/, buildhost/portage_hook/, ...
@ 2011-08-28 14:28 Magnus Granberg
  0 siblings, 0 replies; only message in thread
From: Magnus Granberg @ 2011-08-28 14:28 UTC (permalink / raw
  To: gentoo-commits

commit:     9cb5d0d1120891499913eacd97fcbb9f0f86f71f
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 28 14:27:04 2011 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Aug 28 14:27:04 2011 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=dev/zorry.git;a=commit;h=9cb5d0d1

remove buildhost dir and update Setup.txt

---
 buildhost/README.txt                     |    8 -
 buildhost/buildhost.sql                  | 1747 ------------------------------
 buildhost/buildhost/core.py              |  443 --------
 buildhost/buildhost/sqlbackend.py        |  646 -----------
 buildhost/configsetups/make.conf         |   15 -
 buildhost/etc/buildhost/buildhost.conf   |   13 -
 buildhost/portage_hook/buildhost_hook.py |  315 ------
 buildhost/portage_hook/sqlbackend.py     |  673 ------------
 buildhost/todo.txt                       |   11 -
 buildhost/updatedb/core.py               |  791 --------------
 buildhost/updatedb/sqlbackend.py         |  426 --------
 ebuild/dev-python/gobs/Manifest          |    4 +-
 ebuild/dev-python/gobs/gobs-9999.ebuild  |    3 +-
 gobs/doc/Setup.txt                       |    7 +
 14 files changed, 11 insertions(+), 5091 deletions(-)

diff --git a/buildhost/README.txt b/buildhost/README.txt
deleted file mode 100644
index 3656437..0000000
--- a/buildhost/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-1. Setup the Backend
-Setup the gobs.conf  for the db.
-Change GOBSROOT to point to the git repo with your configs for the profiles/setups.
-Change GOBSCONFIG to the profiles/setup to use on the guest.
-On the guest make a symlink from /etc/portage to the profiles/setups you will use on the guest.
-Import the sqldump to your sql.
-The portage/base/make.conf should be in the base profile/setup
-The portage/all/bashrc should be in all the guest profiles/setups
\ No newline at end of file

diff --git a/buildhost/buildhost.sql b/buildhost/buildhost.sql
deleted file mode 100644
index f5d5c3c..0000000
--- a/buildhost/buildhost.sql
+++ /dev/null
@@ -1,1747 +0,0 @@
---
--- PostgreSQL database dump
---
-
-SET statement_timeout = 0;
-SET client_encoding = 'UTF8';
-SET standard_conforming_strings = off;
-SET check_function_bodies = false;
-SET client_min_messages = warning;
-SET escape_string_warning = off;
-
---
--- Name: buildhost; Type: COMMENT; Schema: -; Owner: pgadmin
---
-
-COMMENT ON DATABASE buildhost IS 'The main db for the buildhost';
-
-
---
--- Name: plpgsql; Type: PROCEDURAL LANGUAGE; Schema: -; Owner: postgres
---
-
-CREATE OR REPLACE PROCEDURAL LANGUAGE plpgsql;
-
-
-ALTER PROCEDURAL LANGUAGE plpgsql OWNER TO postgres;
-
-SET search_path = public, pg_catalog;
-
---
--- Name: ebuild_package; Type: TYPE; Schema: public; Owner: pgadmin
---
-
-CREATE TYPE ebuild_package AS (
-	ebuild integer,
-	package integer
-);
-
-
-ALTER TYPE public.ebuild_package OWNER TO pgadmin;
-
---
--- Name: comparearrays(anyarray, anyarray); Type: FUNCTION; Schema: public; Owner: pgadmin
---
-
-CREATE FUNCTION comparearrays(oldarray anyarray, newarray anyarray) RETURNS anyarray
-    LANGUAGE plpgsql IMMUTABLE
-    AS $$
-  DECLARE 
-  returnArray oldArray%TYPE;
-
-  BEGIN
---figure out if the new array contians the old one if that is true do nothing if not iterate over the old array and remove those that isnt in the new one.
-  IF oldArray <@ newArray=FALSE THEN
-    FOR i IN array_lower(oldArray,1)..array_upper(oldArray,1) LOOP
-      IF newArray@> ARRAY[oldArray[i]] = FALSE THEN
-	SELECT array_append(returnArray, oldArray[i]) into returnArray;
-      END IF;
-    END LOOP;
-   END IF;
-    RETURN returnArray;
-  END;
-
-$$;
-
-
-ALTER FUNCTION public.comparearrays(oldarray anyarray, newarray anyarray) OWNER TO pgadmin;
-
---
--- Name: insert_buildqueue(integer, character varying, character varying[], boolean[], text); Type: FUNCTION; Schema: public; Owner: pgadmin
---
-
-CREATE FUNCTION insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) RETURNS integer
-    LANGUAGE plpgsql
-    AS $$
-  DECLARE
-    oldQid INTEGER[];
-    result BOOLEAN;
-    ret INTEGER;
-
-  BEGIN
-    -- find out if the buildhost haves the ebuild in the query
-    SELECT ARRAY(SELECT queue_id FROM buildqueue WHERE ebuild_id=ebuildID AND config=buildhost) INTO oldQid;
-    -- if not NULL check if the useflags have changed if there is any "new" useflags
-    IF inUseFlags IS NOT NULL AND array_lower(oldQid,1) IS NOT NULL THEN
-      --add the new useflags to a temp table
-      CREATE TEMPORARY TABLE mid(
-	useflag VARCHAR(128) NOT NULL,
-	enabled BOOLEAN NOT NULL
-      );
-      
-      FOR i IN array_lower(inUseFlags,1)..array_upper(inUseFlags,1) LOOP
-	INSERT INTO mid(useflag,enabled) VALUES(inUseFlags[i], inEnabled[i]);
-      END LOOP;
-
-
-    -- finally check if the useflags have changed since the queued version
-      FOR i IN array_lower(oldQid,1)..array_upper(oldQid,1) LOOP
-	PERFORM useflag,enabled FROM mid EXCEPT SELECT useflag,enabled FROM ebuildQueuedWithUses WHERE queue_id=oldQid[i] ORDER BY useflag;
-	ret:=oldQid[i];
-	IF NOT FOUND THEN
-	  PERFORM useflag,enabled FROM ebuildQueuedWithUses WHERE queue_id=oldQid[i] EXCEPT SELECT useflag,enabled FROM mid ORDER BY useflag;
-	  IF FOUND THEN
-	    result:=TRUE;
-	    EXIT;  
-	  END IF;
-	ELSE
-	  result:=TRUE;
-	  EXIT;
-	END IF;
-      END LOOP;
-    -- if result is null the useflags havent changed then dont add the ebuild to the queue
-      IF result IS TRUE THEN
-	INSERT INTO buildqueue(ebuild_id,config,post_message,timestamp) VALUES(ebuildID,buildhost,message,now()) RETURNING queue_id INTO ret;
-	FOR i IN array_lower(inUseFlags,1)..array_upper(inUseFlags,1) LOOP
-	  INSERT INTO useflags(useflag) SELECT inUseFlags[i] WHERE inUseFlags[i] NOT IN(SELECT useflag FROM useflags);
-	  INSERT INTO ebuildQueuedWithUses(useflag,enabled,queue_id) VALUES(inUseFlags[i],inEnabled[i],ret);
-	END LOOP;	
-      END IF;
-      DROP TABLE mid;
-    ELSE
-    --insert a new build with out hassle
-      IF inUseFlags IS NOT NULL THEN -- (oldQid IS EMPTY)
-	INSERT INTO buildqueue(ebuild_id,config,post_message,timestamp) VALUES(ebuildID,buildhost,message,now()) RETURNING queue_id INTO ret;
-	FOR i IN array_lower(inUseFlags,1)..array_upper(inUseFlags,1) LOOP
-	    INSERT INTO useflags(useflag) SELECT inUseFlags[i] WHERE inUseFlags[i] NOT IN(SELECT useflag FROM useflags);
-	    INSERT INTO ebuildQueuedWithUses(useflag,enabled,queue_id) VALUES(inUseFlags[i],inEnabled[i],ret);
-	END LOOP;
-	
-      ELSE
-	-- corner case if the ebuild haves 0 useflags
-	IF array_lower(oldQid,1) IS NULL THEN
-	  INSERT INTO buildqueue(ebuild_id,config,post_message,timestamp) VALUES(ebuildID,buildhost,message,now())RETURNING queue_id INTO ret;	
-
-	ELSE
-	  FOR i IN array_lower(oldQid,1)..array_upper(oldQid,1) LOOP
-	    SElECT queue_id FROM buildqueue WHERE queue_id=oldQid[i] AND queue_id NOT IN(SELECT queue_id FROM ebuildQueuedWithUses WHERE queue_id=oldQid[i]) INTO ret;
-	    IF FOUND THEN
-	      result=TRUE;
-	      EXIT;
-	    END IF;
-	  END LOOP;
-
-	  IF result IS NOT TRUE THEN
-	    -- double corner case where an ebuild exists in the queue with one or more useflags and we are adding a new build with NO useflags
-	    INSERT INTO buildqueue(ebuild_id,config,useflags,post_message,timestamp) VALUES(ebuildID,buildhost,NULL,message,now())RETURNING queue_id INTO ret;
-	  END IF;
-	
-	END IF;	
-      END IF; 
-    END IF;
-    RETURN ret;
-  END;
-$$;
-
-
-ALTER FUNCTION public.insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) OWNER TO pgadmin;
-
---
--- Name: insert_ebuild(character varying, character varying, character varying, character varying, character varying, text, text, text, text, character varying, text, text, text, text, text, text, text, character varying, text, text, boolean); Type: FUNCTION; Schema: public; Owner: pgadmin
---
-
-CREATE FUNCTION insert_ebuild(incategory character varying, inpackage_name character varying, inebuild_version character varying, inlive_version character varying, inebuild_checksum character varying, inebuild_text text, independ text, inrdepend text, inpdepend text, inslot character varying, insrc_url text, inhomepage text, inlicense text, indescription text, ininherited text, inrequired_use text, inprovides text, ineapi character varying, inproperties text, indefined_phases text, inactive boolean) RETURNS integer[]
-    LANGUAGE plpgsql
-    AS $$
-  DECLARE
-    act BOOLEAN;
-    ebuild_package INTEGER[];
-    var INTEGER;
-
-  BEGIN
-  --check if the category exists if not create it
-    INSERT INTO categories(category) SELECT inCategory 
-      WHERE incategory NOT IN(
-	SELECT category FROM categories WHERE category=inCategory);
-
-    --check if the package exists if not create it
-    ebuild_package[0]:= package_id FROM packages WHERE category=inCategory AND package_name=inPackage_name;
-    
-    IF ebuild_package[0] ISNULL THEN
-      INSERT INTO packages VALUES(DEFAULT, inCategory, inPackage_name) RETURNING package_id INTO var;
-      ebuild_package[0]:=var;
-    END IF;
-
-    IF inActive IS NULL OR inActive IS TRUE THEN
-      act=TRUE;
-    END IF;
-
-    --insert the new ebuild and put new ebuild ID into a variable and return it
-    INSERT INTO ebuilds(package_id,ebuild_version,live_version,ebuild_checksum,ebuild_text,depend,rdepend,pdepend,slot,src_url,homepage,license,description,inherited,required_use,provides,eapi,properties,defined_phases,active)
-    VALUES(ebuild_package[0],inEbuild_version,inLive_version,inEbuild_checksum,inEbuild_text,inDepend,inRdepend,inPdepend,inSlot,inSrc_url,inHomepage,inLicense,inDescription,inInherited,inRequired_use,inProvides,inEapi,inProperties,inDefined_phases,act) 
-    RETURNING id INTO var;
-    ebuild_package[1]:=var;
--- if the ebuild was added as active add the current time to the timestamp field
-    
-    IF act IS TRUE THEN
-      UPDATE ebuilds SET timestamp=now() WHERE id=ebuild_package[1]; 
-    END IF;
-
-    RETURN ebuild_package;
-  END;
-$$;
-
-
-ALTER FUNCTION public.insert_ebuild(incategory character varying, inpackage_name character varying, inebuild_version character varying, inlive_version character varying, inebuild_checksum character varying, inebuild_text text, independ text, inrdepend text, inpdepend text, inslot character varying, insrc_url text, inhomepage text, inlicense text, indescription text, ininherited text, inrequired_use text, inprovides text, ineapi character varying, inproperties text, indefined_phases text, inactive boolean) OWNER TO pgadmin;
-
---
--- Name: updateiuse(integer, character varying[]); Type: FUNCTION; Schema: public; Owner: pgadmin
---
-
-CREATE FUNCTION updateiuse(ebuildid integer, iniuses character varying[]) RETURNS void
-    LANGUAGE plpgsql
-    AS $$
-  DECLARE
-   oldIuses VARCHAR[];
-   deletIuses VARCHAR[];
-   explicitNewIuses VARCHAR[];
-
-  BEGIN
-
--- add iuses to the ebuild in question
-
-    IF inIuses IS NOT NULL THEN 
-    --find all the old iuses (if any) that needs to be deleted
-      SELECT ARRAY(SELECT iuse FROM ebuildHavesIuses WHERE ebuild=ebuildID) INTO oldIuses;
-    
-
-      -- IF there is any old iuses we need to find those that needs to be removed (because of updated ebuild etc).
-      IF oldIuses IS NOT NULL THEN
-	SELECT compareArrays(oldIuses,inIuses)INTO deletIuses;
-	IF deletIuses IS NOT NULL THEN
-	  FOR i IN array_lower(deletIuses,1)..array_upper(deletIuses,1) LOOP
-	    DELETE FROM ebuildHavesIuses WHERE ebuild=ebuildID AND iuse=deletIuses[i];
-	  END LOOP;
-	END IF;
-	-- Find all the new iuses that isnt present in the oldIuses array.
-	SELECT compareArrays(inIuses,oldIuses) INTO explicitNewIuses;
-      END IF;
-
-      -- Time to add the new iuses (if any) to the iuses table and
-      -- Then add the new iuses to the ebuildHavesIuses table.
-	IF explicitNewIuses IS NOT NULL THEN
-	  FOR i IN array_lower(explicitNewIuses,1)..array_upper(explicitNewIuses,1) LOOP
-	    INSERT INTO iuses(iuse) SELECT explicitNewIuses[i] 
-	      WHERE explicitNewIuses[i] NOT IN(
-		SELECT iuse FROM iuses WHERE iuse=explicitNewIuses[i]);
-	
-	      INSERT INTO ebuildHavesIuses(ebuild,iuse) VALUES(ebuildID, explicitNewIuses[i]);
-	  END LOOP;
-	END IF;
-    ELSE
-    -- if inIuses is NULL simply delete all isuses 
-      DELETE FROM ebuildHavesIuses WHERE ebuild=ebuildID;
-    END IF;
-  END;
-
-$$;
-
-
-ALTER FUNCTION public.updateiuse(ebuildid integer, iniuses character varying[]) OWNER TO pgadmin;
-
---
--- Name: updatekeywords(integer, character varying[]); Type: FUNCTION; Schema: public; Owner: pgadmin
---
-
-CREATE FUNCTION updatekeywords(ebuildid integer, inkeywords character varying[]) RETURNS void
-    LANGUAGE plpgsql
-    AS $$
-  DECLARE
-   oldKeywords VARCHAR[];
-   deletKeywords VARCHAR[];
-   explicitNewKeywords VARCHAR[];
-
-  BEGIN
-
-    IF inKeywords IS NOT NULL THEN 
-    --find all the old keywords (if any) that needs to be deleted
-      SELECT ARRAY(SELECT keyword FROM ebuildHavesKeywords WHERE ebuild_id=ebuildID) INTO oldKeywords;
-
-      -- IF there is any old keywords we need to find those that needs to be removed (because of updated ebuild etc).
-      IF oldKeywords IS NOT NULL THEN
-	SELECT compareArrays(oldKeywords,inKeywords)INTO deletKeywords;
-	IF deletKeywords IS NOT NULL THEN
-	  FOR i IN array_lower(deletKeywords,1)..array_upper(deletKeywords,1) LOOP
-	    DELETE FROM ebuildHavesKeywords WHERE ebuild_id=ebuildID AND keyword=deletKeywords[i];
-	  END LOOP;
-	END IF;
-	-- Find all the new restrictions that isnt present in the oldKeywords array.
-	SELECT compareArrays(inKeywords,oldKeywords) INTO explicitNewKeywords;
-      END IF;
-
-
-	-- Add the new keywords to the ebuildHavesIuses table.
-	IF explicitNewKeywords IS NOT NULL THEN
-	  FOR i IN array_lower(explicitNewKeywords,1)..array_upper(explicitNewKeywords,1) LOOP
-	      INSERT INTO ebuildHavesKeywords(ebuild_id,keyword) VALUES(ebuildID, explicitNewKeywords[i]);
-	  END LOOP;
-	END IF;
-    ELSE
-      --if inkeywords is NULL then remove all keywords from the ebuild
-      DELETE FROM ebuildHavesKeywords WHERE ebuild_id=ebuildID;
-    END IF;
-  END;
-
-$$;
-
-
-ALTER FUNCTION public.updatekeywords(ebuildid integer, inkeywords character varying[]) OWNER TO pgadmin;
-
---
--- Name: updaterestrictions(integer, character varying[]); Type: FUNCTION; Schema: public; Owner: pgadmin
---
-
-CREATE FUNCTION updaterestrictions(ebuildid integer, inrestrictions character varying[]) RETURNS void
-    LANGUAGE plpgsql
-    AS $$
-  DECLARE
-   oldRestrictions VARCHAR[];
-   deletRestrictions VARCHAR[];
-   explicitNewRestrictions VARCHAR[];
-
-  BEGIN
-
-    IF inRestrictions IS NOT NULL THEN
-    --find all the old restrictions (if any) that needs to be deleted
-      SELECT ARRAY(SELECT restriction FROM ebuildHavesRestrictions WHERE ebuild_id=ebuildID) INTO oldRestrictions;
-
-      -- IF there is any old restrictions we need to find those that needs to be removed (because of updated ebuild etc).
-      IF oldRestrictions IS NOT NULL THEN
-	SELECT compareArrays(oldRestrictions,inRestrictions)INTO deletRestrictions;
-	IF deletRestrictions IS NOT NULL THEN
-	  FOR i IN array_lower(deletRestrictions,1)..array_upper(deletRestrictions,1) LOOP
-	    DELETE FROM ebuildHavesRestrictions WHERE ebuild_id=ebuildID AND restriction=deletRestrictions[i];
-	  END LOOP;
-	END IF;
-	-- Find all the new restrictions that isnt present in the oldRestrictions array.
-	SELECT compareArrays(inRestrictions,oldRestrictions) INTO explicitNewRestrictions;
-      END IF;
-
-
-	-- Add the new restriction to the ebuildHavesRestrictions table.
-	IF explicitNewRestrictions IS NOT NULL THEN
-	  FOR i IN array_lower(explicitNewRestrictions,1)..array_upper(explicitNewRestrictions,1) LOOP
-	       INSERT INTO restrictions(restriction_name) SELECT explicitNewRestrictions[i] 
-		WHERE explicitNewRestrictions[i] NOT IN(
-		  SELECT restriction_name FROM restrictions WHERE restriction_name=explicitNewRestrictions[i]);
-	      INSERT INTO ebuildHavesRestrictions(ebuild_id,restriction) VALUES(ebuildID, explicitNewRestrictions[i]);
-	  END LOOP;
-	END IF;
-    ELSE
-      --delete all restrictions if any on the ebuild
-	DELETE FROM ebuildHavesRestrictions WHERE ebuild_id=ebuildID;
-    END IF;
-  END;
-
-$$;
-
-
-ALTER FUNCTION public.updaterestrictions(ebuildid integer, inrestrictions character varying[]) OWNER TO pgadmin;
-
-SET default_tablespace = '';
-
-SET default_with_oids = false;
-
---
--- Name: buildlog; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE buildlog (
-    build_id integer NOT NULL,
-    ebuild_id integer,
-    config character varying(100),
-    "timestamp" timestamp without time zone NOT NULL,
-    error_summary text,
-    build_error text,
-    logfilename text
-);
-
-
-ALTER TABLE public.buildlog OWNER TO pgadmin;
-
---
--- Name: buildlog_build_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE buildlog_build_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.buildlog_build_id_seq OWNER TO pgadmin;
-
---
--- Name: buildlog_build_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE buildlog_build_id_seq OWNED BY buildlog.build_id;
-
-
---
--- Name: buildqueue; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE buildqueue (
-    queue_id integer NOT NULL,
-    ebuild_id integer,
-    config character varying(100),
-    post_message text,
-    "timestamp" timestamp without time zone
-);
-
-
-ALTER TABLE public.buildqueue OWNER TO pgadmin;
-
---
--- Name: buildqueue_queue_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE buildqueue_queue_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.buildqueue_queue_id_seq OWNER TO pgadmin;
-
---
--- Name: buildqueue_queue_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE buildqueue_queue_id_seq OWNED BY buildqueue.queue_id;
-
-
---
--- Name: categories; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE categories (
-    category character varying(30) NOT NULL
-);
-
-
-ALTER TABLE public.categories OWNER TO pgadmin;
-
---
--- Name: categories_meta; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE categories_meta (
-    category character varying(30) NOT NULL,
-    metadata_xml_checksum character varying(70) NOT NULL,
-    metadata_xml_text text NOT NULL
-);
-
-
-ALTER TABLE public.categories_meta OWNER TO pgadmin;
-
---
--- Name: configs; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE configs (
-    id character varying(100) NOT NULL,
-    profile character varying(30) NOT NULL,
-    arch character varying(10) NOT NULL,
-    default_config boolean DEFAULT false NOT NULL,
-    make_conf_text text NOT NULL,
-    make_conf_checksum character varying(80) NOT NULL,
-    active boolean DEFAULT false NOT NULL,
-    config_error text,
-    updateing boolean DEFAULT false NOT NULL,
-    auto boolean DEFAULT true NOT NULL
-);
-
-
-ALTER TABLE public.configs OWNER TO pgadmin;
-
---
--- Name: ebuildbuildwithuses; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE ebuildbuildwithuses (
-    id integer NOT NULL,
-    useflag character varying(128),
-    enabled boolean NOT NULL,
-    build_id integer
-);
-
-
-ALTER TABLE public.ebuildbuildwithuses OWNER TO pgadmin;
-
---
--- Name: ebuildbuildwithuses_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE ebuildbuildwithuses_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.ebuildbuildwithuses_id_seq OWNER TO pgadmin;
-
---
--- Name: ebuildbuildwithuses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE ebuildbuildwithuses_id_seq OWNED BY ebuildbuildwithuses.id;
-
-
---
--- Name: ebuildhavesiuses; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE ebuildhavesiuses (
-    id integer NOT NULL,
-    ebuild integer,
-    iuse character varying(128)
-);
-
-
-ALTER TABLE public.ebuildhavesiuses OWNER TO pgadmin;
-
---
--- Name: ebuildhavesiuses_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE ebuildhavesiuses_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.ebuildhavesiuses_id_seq OWNER TO pgadmin;
-
---
--- Name: ebuildhavesiuses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE ebuildhavesiuses_id_seq OWNED BY ebuildhavesiuses.id;
-
-
---
--- Name: ebuildhaveskeywords; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE ebuildhaveskeywords (
-    id integer NOT NULL,
-    ebuild_id integer,
-    keyword character varying(25)
-);
-
-
-ALTER TABLE public.ebuildhaveskeywords OWNER TO pgadmin;
-
---
--- Name: ebuildhaveskeywords_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE ebuildhaveskeywords_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.ebuildhaveskeywords_id_seq OWNER TO pgadmin;
-
---
--- Name: ebuildhaveskeywords_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE ebuildhaveskeywords_id_seq OWNED BY ebuildhaveskeywords.id;
-
-
---
--- Name: ebuildhavesrestrictions; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE ebuildhavesrestrictions (
-    ebuildtorestriction_id integer NOT NULL,
-    ebuild_id integer,
-    restriction character varying(20)
-);
-
-
-ALTER TABLE public.ebuildhavesrestrictions OWNER TO pgadmin;
-
---
--- Name: ebuildhavesrestrictions_ebuildtorestriction_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE ebuildhavesrestrictions_ebuildtorestriction_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.ebuildhavesrestrictions_ebuildtorestriction_id_seq OWNER TO pgadmin;
-
---
--- Name: ebuildhavesrestrictions_ebuildtorestriction_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE ebuildhavesrestrictions_ebuildtorestriction_id_seq OWNED BY ebuildhavesrestrictions.ebuildtorestriction_id;
-
-
---
--- Name: ebuildqueuedwithuses; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE ebuildqueuedwithuses (
-    id integer NOT NULL,
-    useflag character varying(128),
-    enabled boolean NOT NULL,
-    queue_id integer
-);
-
-
-ALTER TABLE public.ebuildqueuedwithuses OWNER TO pgadmin;
-
---
--- Name: ebuildqueuedwithuses_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE ebuildqueuedwithuses_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.ebuildqueuedwithuses_id_seq OWNER TO pgadmin;
-
---
--- Name: ebuildqueuedwithuses_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE ebuildqueuedwithuses_id_seq OWNED BY ebuildqueuedwithuses.id;
-
-
---
--- Name: ebuilds; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE ebuilds (
-    id integer NOT NULL,
-    package_id integer,
-    ebuild_version character varying(30) NOT NULL,
-    live_version character varying(30) NOT NULL,
-    ebuild_checksum character varying(70) NOT NULL,
-    ebuild_text text,
-    depend text,
-    rdepend text,
-    pdepend text,
-    slot character varying(30),
-    src_url text NOT NULL,
-    homepage text NOT NULL,
-    license text,
-    description text NOT NULL,
-    inherited text,
-    required_use text,
-    provides text,
-    eapi character varying(5) NOT NULL,
-    properties text,
-    defined_phases text,
-    "timestamp" timestamp without time zone,
-    active boolean NOT NULL
-);
-
-
-ALTER TABLE public.ebuilds OWNER TO pgadmin;
-
---
--- Name: ebuilds_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE ebuilds_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.ebuilds_id_seq OWNER TO pgadmin;
-
---
--- Name: ebuilds_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE ebuilds_id_seq OWNED BY ebuilds.id;
-
-
---
--- Name: iuses; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE iuses (
-    iuse character varying(128) NOT NULL
-);
-
-
-ALTER TABLE public.iuses OWNER TO pgadmin;
-
---
--- Name: keywords; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE keywords (
-    keyword character varying(25) NOT NULL
-);
-
-
-ALTER TABLE public.keywords OWNER TO pgadmin;
-
---
--- Name: manifest; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE manifest (
-    id integer NOT NULL,
-    package_id integer,
-    manifest text NOT NULL,
-    checksum character varying(70) NOT NULL
-);
-
-
-ALTER TABLE public.manifest OWNER TO pgadmin;
-
---
--- Name: manifest_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE manifest_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.manifest_id_seq OWNER TO pgadmin;
-
---
--- Name: manifest_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE manifest_id_seq OWNED BY manifest.id;
-
-
---
--- Name: packages; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE packages (
-    package_id integer NOT NULL,
-    category character varying(30),
-    package_name character varying(75) NOT NULL
-);
-
-
-ALTER TABLE public.packages OWNER TO pgadmin;
-
---
--- Name: packages_meta; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE packages_meta (
-    package_id integer NOT NULL,
-    changelog_text text,
-    changelog_checksum character varying(70),
-    metadata_text text,
-    metadata_checksum character varying(70)
-);
-
-
-ALTER TABLE public.packages_meta OWNER TO pgadmin;
-
---
--- Name: packages_package_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE packages_package_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.packages_package_id_seq OWNER TO pgadmin;
-
---
--- Name: packages_package_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE packages_package_id_seq OWNED BY packages.package_id;
-
-
---
--- Name: qa_problems; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE qa_problems (
-    id integer NOT NULL,
-    problem text NOT NULL,
-    build_id integer
-);
-
-
-ALTER TABLE public.qa_problems OWNER TO pgadmin;
-
---
--- Name: qa_problems_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE qa_problems_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.qa_problems_id_seq OWNER TO pgadmin;
-
---
--- Name: qa_problems_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE qa_problems_id_seq OWNED BY qa_problems.id;
-
-
---
--- Name: repoman_problems; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE repoman_problems (
-    id integer NOT NULL,
-    problem text NOT NULL,
-    build_id integer
-);
-
-
-ALTER TABLE public.repoman_problems OWNER TO pgadmin;
-
---
--- Name: repoman_problems_id_seq; Type: SEQUENCE; Schema: public; Owner: pgadmin
---
-
-CREATE SEQUENCE repoman_problems_id_seq
-    START WITH 1
-    INCREMENT BY 1
-    NO MINVALUE
-    NO MAXVALUE
-    CACHE 1;
-
-
-ALTER TABLE public.repoman_problems_id_seq OWNER TO pgadmin;
-
---
--- Name: repoman_problems_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: pgadmin
---
-
-ALTER SEQUENCE repoman_problems_id_seq OWNED BY repoman_problems.id;
-
-
---
--- Name: restrictions; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE restrictions (
-    restriction_name character varying(20) NOT NULL
-);
-
-
-ALTER TABLE public.restrictions OWNER TO pgadmin;
-
---
--- Name: useflags; Type: TABLE; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE TABLE useflags (
-    useflag character varying(128) NOT NULL
-);
-
-
-ALTER TABLE public.useflags OWNER TO pgadmin;
-
---
--- Name: build_id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE buildlog ALTER COLUMN build_id SET DEFAULT nextval('buildlog_build_id_seq'::regclass);
-
-
---
--- Name: queue_id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE buildqueue ALTER COLUMN queue_id SET DEFAULT nextval('buildqueue_queue_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ebuildbuildwithuses ALTER COLUMN id SET DEFAULT nextval('ebuildbuildwithuses_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ebuildhavesiuses ALTER COLUMN id SET DEFAULT nextval('ebuildhavesiuses_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ebuildhaveskeywords ALTER COLUMN id SET DEFAULT nextval('ebuildhaveskeywords_id_seq'::regclass);
-
-
---
--- Name: ebuildtorestriction_id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ebuildhavesrestrictions ALTER COLUMN ebuildtorestriction_id SET DEFAULT nextval('ebuildhavesrestrictions_ebuildtorestriction_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ebuildqueuedwithuses ALTER COLUMN id SET DEFAULT nextval('ebuildqueuedwithuses_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ebuilds ALTER COLUMN id SET DEFAULT nextval('ebuilds_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE manifest ALTER COLUMN id SET DEFAULT nextval('manifest_id_seq'::regclass);
-
-
---
--- Name: package_id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE packages ALTER COLUMN package_id SET DEFAULT nextval('packages_package_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE qa_problems ALTER COLUMN id SET DEFAULT nextval('qa_problems_id_seq'::regclass);
-
-
---
--- Name: id; Type: DEFAULT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE repoman_problems ALTER COLUMN id SET DEFAULT nextval('repoman_problems_id_seq'::regclass);
-
-
---
--- Name: buildlog_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY buildlog
-    ADD CONSTRAINT buildlog_pkey PRIMARY KEY (build_id);
-
-
---
--- Name: buildqueue_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY buildqueue
-    ADD CONSTRAINT buildqueue_pkey PRIMARY KEY (queue_id);
-
-
---
--- Name: categories_meta_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY categories_meta
-    ADD CONSTRAINT categories_meta_pkey PRIMARY KEY (category);
-
-
---
--- Name: categories_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY categories
-    ADD CONSTRAINT categories_pkey PRIMARY KEY (category);
-
-
---
--- Name: configs_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY configs
-    ADD CONSTRAINT configs_pkey PRIMARY KEY (id);
-
-
---
--- Name: ebuildbuildwithuses_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY ebuildbuildwithuses
-    ADD CONSTRAINT ebuildbuildwithuses_pkey PRIMARY KEY (id);
-
-
---
--- Name: ebuildhavesiuses_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY ebuildhavesiuses
-    ADD CONSTRAINT ebuildhavesiuses_pkey PRIMARY KEY (id);
-
-
---
--- Name: ebuildhaveskeywords_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY ebuildhaveskeywords
-    ADD CONSTRAINT ebuildhaveskeywords_pkey PRIMARY KEY (id);
-
-
---
--- Name: ebuildhavesrestrictions_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY ebuildhavesrestrictions
-    ADD CONSTRAINT ebuildhavesrestrictions_pkey PRIMARY KEY (ebuildtorestriction_id);
-
-
---
--- Name: ebuildqueuedwithuses_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY ebuildqueuedwithuses
-    ADD CONSTRAINT ebuildqueuedwithuses_pkey PRIMARY KEY (id);
-
-
---
--- Name: ebuilds_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY ebuilds
-    ADD CONSTRAINT ebuilds_pkey PRIMARY KEY (id);
-
-
---
--- Name: iuses_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY iuses
-    ADD CONSTRAINT iuses_pkey PRIMARY KEY (iuse);
-
-
---
--- Name: keywords_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY keywords
-    ADD CONSTRAINT keywords_pkey PRIMARY KEY (keyword);
-
-
---
--- Name: manifest_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY manifest
-    ADD CONSTRAINT manifest_pkey PRIMARY KEY (id);
-
-
---
--- Name: packages_meta_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY packages_meta
-    ADD CONSTRAINT packages_meta_pkey PRIMARY KEY (package_id);
-
-
---
--- Name: packages_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY packages
-    ADD CONSTRAINT packages_pkey PRIMARY KEY (package_id);
-
-
---
--- Name: qa_problems_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY qa_problems
-    ADD CONSTRAINT qa_problems_pkey PRIMARY KEY (id);
-
-
---
--- Name: repoman_problems_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY repoman_problems
-    ADD CONSTRAINT repoman_problems_pkey PRIMARY KEY (id);
-
-
---
--- Name: restrictions_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY restrictions
-    ADD CONSTRAINT restrictions_pkey PRIMARY KEY (restriction_name);
-
-
---
--- Name: useflags_pkey; Type: CONSTRAINT; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-ALTER TABLE ONLY useflags
-    ADD CONSTRAINT useflags_pkey PRIMARY KEY (useflag);
-
-
---
--- Name: ebuilbuildwithuses_buildlog_idx; Type: INDEX; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE INDEX ebuilbuildwithuses_buildlog_idx ON ebuildbuildwithuses USING btree (build_id);
-
-
---
--- Name: ebuils_package_id_idx; Type: INDEX; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE INDEX ebuils_package_id_idx ON ebuilds USING btree (package_id);
-
-
---
--- Name: packages_category_idx; Type: INDEX; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE INDEX packages_category_idx ON packages USING btree (category);
-
-
---
--- Name: packages_name_idx; Type: INDEX; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE INDEX packages_name_idx ON packages USING btree (package_name);
-
-
---
--- Name: qa_problems_buildlog_idx; Type: INDEX; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE INDEX qa_problems_buildlog_idx ON qa_problems USING btree (build_id);
-
-
---
--- Name: repoman_problems_buildlog_idx; Type: INDEX; Schema: public; Owner: pgadmin; Tablespace: 
---
-
-CREATE INDEX repoman_problems_buildlog_idx ON repoman_problems USING btree (build_id);
-
-
---
--- Name: buildlog_config_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY buildlog
-    ADD CONSTRAINT buildlog_config_fkey FOREIGN KEY (config) REFERENCES configs(id);
-
-
---
--- Name: buildlog_ebuild_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY buildlog
-    ADD CONSTRAINT buildlog_ebuild_id_fkey FOREIGN KEY (ebuild_id) REFERENCES ebuilds(id);
-
-
---
--- Name: buildqueue_config_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY buildqueue
-    ADD CONSTRAINT buildqueue_config_fkey FOREIGN KEY (config) REFERENCES configs(id);
-
-
---
--- Name: buildqueue_ebuild_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY buildqueue
-    ADD CONSTRAINT buildqueue_ebuild_id_fkey FOREIGN KEY (ebuild_id) REFERENCES ebuilds(id);
-
-
---
--- Name: categories_meta_category_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY categories_meta
-    ADD CONSTRAINT categories_meta_category_fkey FOREIGN KEY (category) REFERENCES categories(category);
-
-
---
--- Name: ebuildbuildwithuses_build_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildbuildwithuses
-    ADD CONSTRAINT ebuildbuildwithuses_build_id_fkey FOREIGN KEY (build_id) REFERENCES buildlog(build_id);
-
-
---
--- Name: ebuildbuildwithuses_useflag_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildbuildwithuses
-    ADD CONSTRAINT ebuildbuildwithuses_useflag_fkey FOREIGN KEY (useflag) REFERENCES useflags(useflag);
-
-
---
--- Name: ebuildhavesiuses_ebuild_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildhavesiuses
-    ADD CONSTRAINT ebuildhavesiuses_ebuild_fkey FOREIGN KEY (ebuild) REFERENCES ebuilds(id);
-
-
---
--- Name: ebuildhavesiuses_iuse_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildhavesiuses
-    ADD CONSTRAINT ebuildhavesiuses_iuse_fkey FOREIGN KEY (iuse) REFERENCES iuses(iuse);
-
-
---
--- Name: ebuildhaveskeywords_ebuild_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildhaveskeywords
-    ADD CONSTRAINT ebuildhaveskeywords_ebuild_id_fkey FOREIGN KEY (ebuild_id) REFERENCES ebuilds(id);
-
-
---
--- Name: ebuildhaveskeywords_keyword_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildhaveskeywords
-    ADD CONSTRAINT ebuildhaveskeywords_keyword_fkey FOREIGN KEY (keyword) REFERENCES keywords(keyword);
-
-
---
--- Name: ebuildhavesrestrictions_ebuild_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildhavesrestrictions
-    ADD CONSTRAINT ebuildhavesrestrictions_ebuild_id_fkey FOREIGN KEY (ebuild_id) REFERENCES ebuilds(id);
-
-
---
--- Name: ebuildhavesrestrictions_restriction_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildhavesrestrictions
-    ADD CONSTRAINT ebuildhavesrestrictions_restriction_fkey FOREIGN KEY (restriction) REFERENCES restrictions(restriction_name);
-
-
---
--- Name: ebuildqueuedwithuses_queue_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildqueuedwithuses
-    ADD CONSTRAINT ebuildqueuedwithuses_queue_id_fkey FOREIGN KEY (queue_id) REFERENCES buildqueue(queue_id);
-
-
---
--- Name: ebuildqueuedwithuses_useflag_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuildqueuedwithuses
-    ADD CONSTRAINT ebuildqueuedwithuses_useflag_fkey FOREIGN KEY (useflag) REFERENCES useflags(useflag);
-
-
---
--- Name: ebuilds_package_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY ebuilds
-    ADD CONSTRAINT ebuilds_package_id_fkey FOREIGN KEY (package_id) REFERENCES packages(package_id);
-
-
---
--- Name: manifest_package_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY manifest
-    ADD CONSTRAINT manifest_package_id_fkey FOREIGN KEY (package_id) REFERENCES packages(package_id);
-
-
---
--- Name: packages_category_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY packages
-    ADD CONSTRAINT packages_category_fkey FOREIGN KEY (category) REFERENCES categories(category);
-
-
---
--- Name: packages_meta_package_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY packages_meta
-    ADD CONSTRAINT packages_meta_package_id_fkey FOREIGN KEY (package_id) REFERENCES packages(package_id);
-
-
---
--- Name: qa_problems_build_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY qa_problems
-    ADD CONSTRAINT qa_problems_build_id_fkey FOREIGN KEY (build_id) REFERENCES buildlog(build_id);
-
-
---
--- Name: repoman_problems_build_id_fkey; Type: FK CONSTRAINT; Schema: public; Owner: pgadmin
---
-
-ALTER TABLE ONLY repoman_problems
-    ADD CONSTRAINT repoman_problems_build_id_fkey FOREIGN KEY (build_id) REFERENCES buildlog(build_id);
-
-
---
--- Name: public; Type: ACL; Schema: -; Owner: postgres
---
-
-REVOKE ALL ON SCHEMA public FROM PUBLIC;
-REVOKE ALL ON SCHEMA public FROM postgres;
-GRANT ALL ON SCHEMA public TO postgres;
-GRANT ALL ON SCHEMA public TO PUBLIC;
-GRANT ALL ON SCHEMA public TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: comparearrays(anyarray, anyarray); Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON FUNCTION comparearrays(oldarray anyarray, newarray anyarray) FROM PUBLIC;
-REVOKE ALL ON FUNCTION comparearrays(oldarray anyarray, newarray anyarray) FROM pgadmin;
-GRANT ALL ON FUNCTION comparearrays(oldarray anyarray, newarray anyarray) TO pgadmin;
-GRANT ALL ON FUNCTION comparearrays(oldarray anyarray, newarray anyarray) TO PUBLIC;
-GRANT ALL ON FUNCTION comparearrays(oldarray anyarray, newarray anyarray) TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: insert_buildqueue(integer, character varying, character varying[], boolean[], text); Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON FUNCTION insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) FROM PUBLIC;
-REVOKE ALL ON FUNCTION insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) FROM pgadmin;
-GRANT ALL ON FUNCTION insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) TO pgadmin;
-GRANT ALL ON FUNCTION insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) TO PUBLIC;
-GRANT ALL ON FUNCTION insert_buildqueue(ebuildid integer, buildhost character varying, inuseflags character varying[], inenabled boolean[], message text) TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: updateiuse(integer, character varying[]); Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON FUNCTION updateiuse(ebuildid integer, iniuses character varying[]) FROM PUBLIC;
-REVOKE ALL ON FUNCTION updateiuse(ebuildid integer, iniuses character varying[]) FROM pgadmin;
-GRANT ALL ON FUNCTION updateiuse(ebuildid integer, iniuses character varying[]) TO pgadmin;
-GRANT ALL ON FUNCTION updateiuse(ebuildid integer, iniuses character varying[]) TO PUBLIC;
-GRANT ALL ON FUNCTION updateiuse(ebuildid integer, iniuses character varying[]) TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: updatekeywords(integer, character varying[]); Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON FUNCTION updatekeywords(ebuildid integer, inkeywords character varying[]) FROM PUBLIC;
-REVOKE ALL ON FUNCTION updatekeywords(ebuildid integer, inkeywords character varying[]) FROM pgadmin;
-GRANT ALL ON FUNCTION updatekeywords(ebuildid integer, inkeywords character varying[]) TO pgadmin;
-GRANT ALL ON FUNCTION updatekeywords(ebuildid integer, inkeywords character varying[]) TO PUBLIC;
-GRANT ALL ON FUNCTION updatekeywords(ebuildid integer, inkeywords character varying[]) TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: updaterestrictions(integer, character varying[]); Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON FUNCTION updaterestrictions(ebuildid integer, inrestrictions character varying[]) FROM PUBLIC;
-REVOKE ALL ON FUNCTION updaterestrictions(ebuildid integer, inrestrictions character varying[]) FROM pgadmin;
-GRANT ALL ON FUNCTION updaterestrictions(ebuildid integer, inrestrictions character varying[]) TO pgadmin;
-GRANT ALL ON FUNCTION updaterestrictions(ebuildid integer, inrestrictions character varying[]) TO PUBLIC;
-GRANT ALL ON FUNCTION updaterestrictions(ebuildid integer, inrestrictions character varying[]) TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: buildlog; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE buildlog FROM PUBLIC;
-REVOKE ALL ON TABLE buildlog FROM pgadmin;
-GRANT ALL ON TABLE buildlog TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,UPDATE ON TABLE buildlog TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: buildlog_build_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE buildlog_build_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE buildlog_build_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE buildlog_build_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE buildlog_build_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: buildqueue; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE buildqueue FROM PUBLIC;
-REVOKE ALL ON TABLE buildqueue FROM pgadmin;
-GRANT ALL ON TABLE buildqueue TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE buildqueue TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: buildqueue_queue_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE buildqueue_queue_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE buildqueue_queue_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE buildqueue_queue_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE buildqueue_queue_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: categories; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE categories FROM PUBLIC;
-REVOKE ALL ON TABLE categories FROM pgadmin;
-GRANT ALL ON TABLE categories TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE categories TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: categories_meta; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE categories_meta FROM PUBLIC;
-REVOKE ALL ON TABLE categories_meta FROM pgadmin;
-GRANT ALL ON TABLE categories_meta TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE categories_meta TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: configs; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE configs FROM PUBLIC;
-REVOKE ALL ON TABLE configs FROM pgadmin;
-GRANT ALL ON TABLE configs TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE configs TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildbuildwithuses; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE ebuildbuildwithuses FROM PUBLIC;
-REVOKE ALL ON TABLE ebuildbuildwithuses FROM pgadmin;
-GRANT ALL ON TABLE ebuildbuildwithuses TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE ebuildbuildwithuses TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildbuildwithuses_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE ebuildbuildwithuses_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE ebuildbuildwithuses_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE ebuildbuildwithuses_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE ebuildbuildwithuses_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildhavesiuses; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE ebuildhavesiuses FROM PUBLIC;
-REVOKE ALL ON TABLE ebuildhavesiuses FROM pgadmin;
-GRANT ALL ON TABLE ebuildhavesiuses TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE ebuildhavesiuses TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildhavesiuses_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE ebuildhavesiuses_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE ebuildhavesiuses_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE ebuildhavesiuses_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE ebuildhavesiuses_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildhaveskeywords; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE ebuildhaveskeywords FROM PUBLIC;
-REVOKE ALL ON TABLE ebuildhaveskeywords FROM pgadmin;
-GRANT ALL ON TABLE ebuildhaveskeywords TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE ebuildhaveskeywords TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildhaveskeywords_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE ebuildhaveskeywords_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE ebuildhaveskeywords_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE ebuildhaveskeywords_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE ebuildhaveskeywords_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildhavesrestrictions; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE ebuildhavesrestrictions FROM PUBLIC;
-REVOKE ALL ON TABLE ebuildhavesrestrictions FROM pgadmin;
-GRANT ALL ON TABLE ebuildhavesrestrictions TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE ebuildhavesrestrictions TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildhavesrestrictions_ebuildtorestriction_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE ebuildhavesrestrictions_ebuildtorestriction_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE ebuildhavesrestrictions_ebuildtorestriction_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE ebuildhavesrestrictions_ebuildtorestriction_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE ebuildhavesrestrictions_ebuildtorestriction_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildqueuedwithuses; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE ebuildqueuedwithuses FROM PUBLIC;
-REVOKE ALL ON TABLE ebuildqueuedwithuses FROM pgadmin;
-GRANT ALL ON TABLE ebuildqueuedwithuses TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE ebuildqueuedwithuses TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuildqueuedwithuses_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE ebuildqueuedwithuses_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE ebuildqueuedwithuses_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE ebuildqueuedwithuses_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE ebuildqueuedwithuses_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuilds; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE ebuilds FROM PUBLIC;
-REVOKE ALL ON TABLE ebuilds FROM pgadmin;
-GRANT ALL ON TABLE ebuilds TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE ebuilds TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: ebuilds_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE ebuilds_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE ebuilds_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE ebuilds_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE ebuilds_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: iuses; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE iuses FROM PUBLIC;
-REVOKE ALL ON TABLE iuses FROM pgadmin;
-GRANT ALL ON TABLE iuses TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE iuses TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: keywords; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE keywords FROM PUBLIC;
-REVOKE ALL ON TABLE keywords FROM pgadmin;
-GRANT ALL ON TABLE keywords TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE keywords TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: manifest; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE manifest FROM PUBLIC;
-REVOKE ALL ON TABLE manifest FROM pgadmin;
-GRANT ALL ON TABLE manifest TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE manifest TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: manifest_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE manifest_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE manifest_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE manifest_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE manifest_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: packages; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE packages FROM PUBLIC;
-REVOKE ALL ON TABLE packages FROM pgadmin;
-GRANT ALL ON TABLE packages TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE packages TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: packages_meta; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE packages_meta FROM PUBLIC;
-REVOKE ALL ON TABLE packages_meta FROM pgadmin;
-GRANT ALL ON TABLE packages_meta TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE packages_meta TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: packages_package_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE packages_package_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE packages_package_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE packages_package_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE packages_package_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: qa_problems; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE qa_problems FROM PUBLIC;
-REVOKE ALL ON TABLE qa_problems FROM pgadmin;
-GRANT ALL ON TABLE qa_problems TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE qa_problems TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: qa_problems_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE qa_problems_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE qa_problems_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE qa_problems_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE qa_problems_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: repoman_problems; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE repoman_problems FROM PUBLIC;
-REVOKE ALL ON TABLE repoman_problems FROM pgadmin;
-GRANT ALL ON TABLE repoman_problems TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE repoman_problems TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: repoman_problems_id_seq; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON SEQUENCE repoman_problems_id_seq FROM PUBLIC;
-REVOKE ALL ON SEQUENCE repoman_problems_id_seq FROM pgadmin;
-GRANT ALL ON SEQUENCE repoman_problems_id_seq TO pgadmin;
-GRANT SELECT,UPDATE ON SEQUENCE repoman_problems_id_seq TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: restrictions; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE restrictions FROM PUBLIC;
-REVOKE ALL ON TABLE restrictions FROM pgadmin;
-GRANT ALL ON TABLE restrictions TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE restrictions TO buildhost WITH GRANT OPTION;
-
-
---
--- Name: useflags; Type: ACL; Schema: public; Owner: pgadmin
---
-
-REVOKE ALL ON TABLE useflags FROM PUBLIC;
-REVOKE ALL ON TABLE useflags FROM pgadmin;
-GRANT ALL ON TABLE useflags TO pgadmin;
-GRANT SELECT,INSERT,REFERENCES,DELETE,UPDATE ON TABLE useflags TO buildhost WITH GRANT OPTION;
-
-
---
--- PostgreSQL database dump complete
---
-

diff --git a/buildhost/buildhost/__init__.py b/buildhost/buildhost/__init__.py
deleted file mode 100644
index e69de29..0000000

diff --git a/buildhost/buildhost/core.py b/buildhost/buildhost/core.py
deleted file mode 100644
index bbe23b6..0000000
--- a/buildhost/buildhost/core.py
+++ /dev/null
@@ -1,443 +0,0 @@
-# -*- coding: utf-8 -*-
-# written 2010 by Magnus Granberg <zorry@gentoo.org>
-# License: GPL-2
-
-"""core module"""
-import sys
-from StringIO import StringIO
-import os
-import re
-import portage
-from _emerge.actions import load_emerge_config
-from _emerge.main import parse_opts, emerge_main
-from _emerge.depgraph import backtrack_depgraph, depgraph, resume_depgraph
-from _emerge.create_depgraph_params import create_depgraph_params
-import _emerge
-import hashlib
-import errno
-import time
-from xml.etree.ElementTree import ElementTree
-
-class get_conf_settings(object):
-  # open the /etc/buildhost/buildhost.conf file and get the needed
-  # settings for the database
-  def get_conf_settings_from_file():
-    configfile = "/etc/buildhost/buildhost.conf"
-    open_conffile = open(configfile, 'r')
-    dataLines = open_conffile.readlines()
-    for line in dataLines:
-      element = line.split('=')
-      if element[0] == 'SQLBACKEND':		# Databas backend (mysql)
-	GetSqlBackend = element[1]
-      if element[0] == 'SQLDB':				# Database
-	GetSqlDB = element[1]
-      if element[0] == 'SQLHOST':			# Host
-	GetSqlHost = element[1]
-      if element[0] == 'SQLUSER':			# User
-	GetSqlUser = element[1]
-      if element[0] == 'SQLPASSWD':			# Password
-	GetSqlPasswd = element[1]
-      if element[0] == 'BUILDCONFIG':	# Buildhost root
-	GetBuildConfig = element[1]
-    open_conffile.close()
-    return GetSqlBackend.rstrip('\n'), GetSqlDB.rstrip('\n'), GetSqlHost.rstrip('\n'), \
-      GetSqlUser.rstrip('\n'), GetSqlPasswd.rstrip('\n'), GetBuildConfig.rstrip('\n')
-
-  Get_BuildHost_settings = get_conf_settings_from_file()
-  SetSqlBackend = Get_BuildHost_settings[0]
-  SetSqlDB = Get_BuildHost_settings[1]
-  SetSqlHost = Get_BuildHost_settings[2]
-  SetSqlUser = Get_BuildHost_settings[3]
-  SetSqlPasswd = Get_BuildHost_settings[4]
-  SetBuildConfig = Get_BuildHost_settings[5]
-
-def init_sql_backend():
-  from sqlbackend import DatabaseConfig		# import DatebaseConfig
-  database = None
-  
-  # Setup the database backent to use mysql
-  if DatabaseConfig.mode == 'pgsql':
-   from sqlbackend import PgSQLPackageDB
-   database = PgSQLPackageDB(DatabaseConfig.settings['sql_pgsql'])
-  return database
-
-def  get_file_text(filename):
-  # Return the filename contents
-  try:
-    textfile = open(filename)
-  except IOError, oe:
-    if oe.errno not in (errno.ENOENT, ):
-      raise
-      return "No file", filename
-
-  text = ""
-  for line in textfile:
-    text += unicode(line, 'utf-8')
-  textfile.close()
-  return text
-
-def check_make_conf(database, config_profile):
-  make_conf_checksum_db = database.get_default_config(config_profile)[0]
-  if make_conf_checksum_db is None:
-     return "1"
-  make_conf_file = "/etc/make.conf"
-    # Check if we can open the file and close it
-    # Check if we have some error in the file (portage.util.getconfig)
-    # Check if we envorment error with the config (settings.validate)
-  make_conf_checksum_tree = portage.checksum.sha256hash(make_conf_file)[0]
-  if make_conf_checksum_tree != make_conf_checksum_db:
-    return "2"
-  # Check if we can open the file and close it
-  # Check if we have some error in the file (portage.util.getconfig)
-  # Check if we envorment error with the config (settings.validate)
-  try:
-    open_make_conf = open(make_conf_file)
-    open_make_conf.close()
-    portage.util.getconfig(make_conf_file, tolerant=0, allow_sourcing=False, expand=True)
-    portage.config()
-    portage.settings.validate()
-    # With errors we return false
-  except Exception as e:
-    return "3"
-  return "4"
-
-def get_iuse(portdb, cpv):
-	"""Gets the current IUSE flags from the tree
-
-	To be used when a gentoolkit package object is not needed
-	@type: cpv: string 
-	@param cpv: cat/pkg-ver
-	@rtype list
-	@returns [] or the list of IUSE flags
-	"""
-	return portdb.aux_get(cpv, ["IUSE"])[0].split()
-	
-def reduce_flag(flag):
-	"""Absolute value function for a USE flag
-
-	@type flag: string
-	@param flag: the use flag to absolute.
-	@rtype: string
-	@return absolute USE flag
-	"""
-	if flag[0] in ["+","-"]:
-		return flag[1:]
-	else:
-		return flag
-
-
-def reduce_flags(the_list):
-	"""Absolute value function for a USE flag list
-
-	@type the_list: list
-	@param the_list: the use flags to absolute.
-	@rtype: list
-	@return absolute USE flags
-	"""
-	r=[]
-	for member in the_list:
-		r.append(reduce_flag(member))
-	return r
-
-
-def filter_flags(settings, use, use_expand_hidden, usemasked, useforced):
-	"""Filter function to remove hidden or otherwise not normally
-	visible USE flags from a list.
-
-	@type use: list
-	@param use: the USE flag list to be filtered.
-	@type use_expand_hidden: list
-	@param  use_expand_hidden: list of flags hidden.
-	@type usemasked: list
-	@param usemasked: list of masked USE flags.
-	@type useforced: list
-	@param useforced: the forced USE flags.
-	@rtype: list
-	@return the filtered USE flags.
-	"""
-	# clean out some environment flags, since they will most probably
-	# be confusing for the user
-	for f in use_expand_hidden:
-		f=f.lower() + "_"
-		for x in use:
-			if f in x:
-				use.remove(x)
-	# clean out any arch's
-	archlist = settings["PORTAGE_ARCHLIST"].split()
-	for a in use[:]:
-		if a in archlist:
-			use.remove(a)
-	# dbl check if any from usemasked  or useforced are still there
-	masked = usemasked + useforced
-	for a in use[:]:
-		if a in masked:
-			use.remove(a)
-	return use
-
-def get_all_cpv_use(settings, portdb, cpv):
-	"""Uses portage to determine final USE flags and settings for an emerge
-
-	@type cpv: string
-	@param cpv: eg cat/pkg-ver
-	@rtype: lists
-	@return  use, use_expand_hidden, usemask, useforce
-	"""
-	use = None
-	settings.unlock()
-	try:
-		settings.setcpv(cpv, use_cache=None, mydb=portdb)
-		use = settings['PORTAGE_USE'].split()
-		use_expand_hidden = settings["USE_EXPAND_HIDDEN"].split()
-		usemask = list(settings.usemask)
-		useforce =  list(settings.useforce)
-	except KeyError:
-		settings.reset()
-		settings.lock()
-		return [], [], [], []
-	# reset cpv filter
-	settings.reset()
-	settings.lock()
-	return use, use_expand_hidden, usemask, useforce
-	
-def get_flags(settings, portdb, cpv):
-	"""Retrieves all information needed to filter out hidden, masked, etc.
-	USE flags for a given package.
-
-	@type cpv: string
-	@param cpv: eg. cat/pkg-ver
-	@type final_setting: boolean
-	@param final_setting: used to also determine the final
-		enviroment USE flag settings and return them as well.
-	@rtype: list or list, list
-	@return IUSE or IUSE, final_flags
-	"""
-	final_use, use_expand_hidden, usemasked, useforced = get_all_cpv_use(settings, portdb, cpv)
-	iuse_flags = filter_flags(settings, get_iuse(portdb, cpv), use_expand_hidden, usemasked, useforced)
-	#flags = filter_flags(use_flags, use_expand_hidden, usemasked, useforced)
-	final_flags = filter_flags(settings, final_use, use_expand_hidden, usemasked, useforced)
-	return iuse_flags, final_flags
-
-def check_configure(database, config_profile):
-  pass_make_conf = check_make_conf(database, config_profile)
-  print pass_make_conf
-  if pass_make_conf == "1":
-    # profile not active or updatedb is runing
-    return False
-  elif pass_make_conf == "2":
-    #  update make.conf
-    return False
-  elif pass_make_conf == "3":
-    # set the config as no working
-    database.make_conf_error(config_profile)
-    return False
-  elif pass_make_conf == "4":
-    # make.conf check OK
-    return True
-
-def check_file_in_manifest(pkgdir, settings, portdb, cpv, build_dict, build_use_flags_list):
-  myfetchlistdict = portage.FetchlistDict(pkgdir, settings, portdb)
-  my_manifest = portage.Manifest(pkgdir, settings['DISTDIR'], fetchlist_dict=myfetchlistdict, manifest1_compat=False, from_scratch=False)
-  if my_manifest.findFile(build_dict['package'] + "-" + build_dict['ebuild_version'] + ".ebuild") is None:
-    return False
-  cpv_fetchmap = portdb.getFetchMap(cpv, useflags=build_use_flags_list, mytree=None)
-  settings.unlock()
-  try:  
-    portage.fetch(cpv_fetchmap, settings, listonly=0, fetchonly=0, locks_in_subdir='.locks', use_locks=1, try_mirrors=1)
-  except:
-    settings.lock()
-    return False
-  settings.lock()
-  if my_manifest.checkCpvHashes(cpv, checkDistfiles=True, onlyDistfiles=False, checkMiscfiles=True) is not None:
-    return False
-  if portdb.fetch_check(cpv, useflags=build_use_flags_list, mysettings=settings, all=False) is not True:
-    return False
-  return True
-
-def get_needed_dep_useflags(cpv, build_use_flags_list):
-  tmpcmdline = []
-  tmpcmdline.append("-p")
-  tmpcmdline.append("--autounmask")
-  tmpcmdline.append("=" + cpv)
-  print tmpcmdline
-  myaction, myopts, myfiles = parse_opts(tmpcmdline, silent=False)
-  print myaction, myopts, myfiles
-  myparams = create_depgraph_params(myopts, myaction)
-  print myparams
-  settings, trees, mtimedb = load_emerge_config()
-  try:
-    success, mydepgraph, favorites = backtrack_depgraph(
-	settings, trees, myopts, myparams, myaction, myfiles, spinner=None)
-    print  success, mydepgraph, favorites
-  except portage.exception.PackageSetNotFound as e:
-	root_config = trees[settings["ROOT"]]["root_config"]
-	display_missing_pkg_set(root_config, e.value)
-	return 1
-  use_changes = None
-  mydepgraph._show_merge_list()
-  mydepgraph.display_problems()
-  if mydepgraph._dynamic_config._needed_use_config_changes:
-      use_changes = {}
-      for pkg, needed_use_config_changes in mydepgraph._dynamic_config._needed_use_config_changes.items():
-	new_use, changes = needed_use_config_changes
-	use_changes[pkg.cpv] = changes
-  print use_changes
-  if use_changes is None:
-    return None
-  iteritems_packages = {}
-  for k, v in use_changes.iteritems():
-    k_package = portage.versions.cpv_getkey(k)
-    iteritems_packages[ k_package ] = v
-  print iteritems_packages
-  return iteritems_packages
-  
-def comper_useflags(settings, portdb, cpv, build_dict):
-  iuse_flags, use_enable = get_flags(settings, portdb, cpv)
-  iuse = []
-  print "use_enable", use_enable
-  build_use_flags_dict = build_dict['build_useflags']
-  print "build_use_flags_dict", build_use_flags_dict
-  build_use_flags_list = []
-  if use_enable == []:
-    if build_use_flags_dict is None:
-      return None
-  for iuse_line in iuse_flags:
-    iuse.append(reduce_flag(iuse_line))
-  iuse_flags_list = list(set(iuse))
-  use_disable = list(set(iuse_flags_list).difference(set(use_enable)))
-  use_flagsDict = {}
-  for x in use_enable:
-    use_flagsDict[x] = True
-  for x in use_disable:
-    use_flagsDict[x] = False
-  print "use_flagsDict", use_flagsDict
-  for k, v in use_flagsDict.iteritems():
-    print "tree use flags", k, v
-    print "db use flags", k, build_use_flags_dict[k]
-  if build_use_flags_dict[k] != v:
-    if build_use_flags_dict[k] is True:
-      build_use_flags_list.append(k)
-    if build_use_flags_dict[k] is False:
-      build_use_flags_list.append("-" + k)
-  if build_use_flags_list == []:
-    build_use_flags_list = None
-  print build_use_flags_list
-  return build_use_flags_list
-
-def get_cpv_build_list(database, build_dict, config_profile):
-  build_cpv_dict = {}
-  cpv_dict = {}
-  cpv_list = "1"
-  settings = portage.config(clone=portage.settings)
-  portdb = portage.portdbapi(mysettings=settings)
-  porttree = portage.portagetree(settings=settings)
-  trees = {"/" : {"porttree":porttree}}
-  dep_keys = ("DEPEND", "RDEPEND", "PDEPEND")
-  pkgdir = os.path.join(settings['PORTDIR'], build_dict['categories'] + "/" + build_dict['package'])
-  ebuild_version_checksum_tree = portage.checksum.sha256hash(pkgdir+ "/" + build_dict['package'] + "-" + build_dict['ebuild_version'] + ".ebuild")[0]
-  print ebuild_version_checksum_tree
-  if ebuild_version_checksum_tree != build_dict['ebuild_checksum']:
-    new_queue_id = database.check_revision(build_dict, config_profile, ebuild_version_checksum_tree)
-    if new_queue_id is None:
-      return None
-      if check_fail_times(build_dict['queue_id'], "cpv_checksum") is False:
-	update_fail_times(build_dict['queue_id'], "cpv_checksum")
-      else:
-	add_cpv_fail(build_dict['queue_id'], "cpv_checksum")
-      return None
-    build_dict = database.get_package_to_build(config_profile, new_queue_id)
-  categories = build_dict['categories']
-  package = build_dict['package']
-  ebuild_version = build_dict['ebuild_version']
-  ebuild_version_useflags = build_dict['build_useflags']
-  build_massage = build_dict['post_message']
-  cpv = unicode(categories + "/" + package + "-" + ebuild_version)
-  cp =  unicode(categories + "/" + package)
-  pkgdir = os.path.join(settings['PORTDIR'], build_dict['categories'] + "/" + build_dict['package'])
-  settings['O'] = pkgdir
-  print portage.getmaskingstatus(cpv, settings=settings, portdb=portdb)
-  if portage.getmaskingstatus(cpv, settings=settings, portdb=portdb) != []:
-    if check_fail_times(build_dict['queue_id'], "cpv_mask") is False:
-      update_fail_times(build_dict['queue_id'], "cpv_mask")
-    else:
-      add_cpv_fail(build_dict['queue_id'], "cpv_mask")
-      return None
-  build_use_flags_list = comper_useflags(settings, portdb, cpv, build_dict)
-  if check_file_in_manifest(pkgdir, settings, portdb, cpv, build_dict, build_use_flags_list) is False:
-    if check_fail_times(build_dict['queue_id'], "cpv_file_manifest") is False:
-      update_fail_times(build_dict['queue_id'], "cpv_file_manifest")
-    else:
-      add_cpv_fail(build_dict['queue_id'], "cpv_file_manifest")
-      return None
-  build_cpv_dict = get_needed_dep_useflags(cpv, build_use_flags_list)
-  print build_cpv_dict, build_use_flags_list, cpv
-  build_use_flags_dict = {}
-  if build_use_flags_list is None:
-    build_use_flags_dict['None'] = None
-  if build_cpv_dict is None:
-    build_cpv_dict = {}
-    build_cpv_dict[cpv] = build_use_flags_dict
-  else:
-    build_cpv_dict[cpv] = build_use_flags_dict
-  print build_cpv_dict
-  return build_cpv_dict
-  
-def main_loop(database, config_profile):
-  repeat = True
-  queue_id_list = 4
-  while repeat:
-    build_cpv_dict = {}
-    build_dict = {}
-    if check_configure(database, config_profile) is not True:
-      # time.sleep(60)
-     continue		# retunr to the start of the function
-    else:
-      build_dict = database.get_package_to_build(config_profile, queue_id_list)
-      print build_dict['ebuild_id'], build_dict['post_message']
-      if build_dict['ebuild_id'] is None:
-	if build_dict['post_message'] is None:
-	# time.sleep(60)
-	  print "build_dict none"
-	  queue_id_list = queue_id_list + 1
-	  print queue_id_list
-	  continue 		# return to the start of the function
-      build_cpv_dict = get_cpv_build_list(database, build_dict, config_profile)
-      if build_cpv_dict is None:
-	queue_id_list = queue_id_list + 1
-	continue		# return to the start of the function
-      build_cpv_list = []
-      for k, v in build_cpv_dict.iteritems():
-	build_use_flags_list = []
-	for x, y in v.iteritems():
-	  if y is True:
-	    build_use_flags_list.append(x)
-	  if y is False:
-	    build_use_flags_list.append("-" + x)
-	print k, build_use_flags_list
-	if build_use_flags_list == []:
-	  build_cpv_list.append("=" + k)
-	else:
-	  build_use_flags = ""
-	  for flags in build_use_flags_list:
-	    build_use_flags = build_use_flags + flags + ","
-	  build_cpv_list.append("=" + k + "[" + build_use_flags + "]")
-	print build_cpv_list
-      argscmd = []
-      argscmd.append("--buildpkg")
-      argscmd.append("--usepkg")
-      argscmd.append("--oneshot")
-      for build_cpv in build_cpv_list:
-	argscmd.append(build_cpv)
-      print argscmd
-      emerge_main(args=argscmd)
-      sys.exit()
-      queue_id_list = queue_id_list + 1
-      
-def main():
-  # Main
-  get_conf_settings.__init__						# Init settings from the configfile
-  database = init_sql_backend()						# Init the Database
-  config_profile = get_conf_settings.SetBuildConfig
-  main_loop(database, config_profile)
-
-if __name__ == "__main__":
-  main()

diff --git a/buildhost/buildhost/sqlbackend.py b/buildhost/buildhost/sqlbackend.py
deleted file mode 100644
index a609be1..0000000
--- a/buildhost/buildhost/sqlbackend.py
+++ /dev/null
@@ -1,646 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import sys, os, re
-
-class DBStateError(Exception):
-    """If the DB is in a state that is not expected, we raise this."""
-    def __init__(self, value):
-        Exception.__init__(self)
-        self.value = value
-    def __str__(self):
-        return repr(self.value)
-
-class DatabaseConfig(object):
-  # No touchy
-  from core import get_conf_settings
-  settings = {}
-  mode = get_conf_settings.SetSqlBackend
-    
-  # Settings for MySQL. You need to create one users in 
-  # your MySQL database.
-  # The  user needs:
-  # DELETE, INSERT, UPDATE, SELECT
-  # Do NOT change these, set the values in the config file /etc/buildhost/buildhost.conf
-  settings['sql_pgsql'] = {}
-  # settings['sql_pgsql']['charset'] = 'utf8'
-  settings['sql_pgsql']['host'] = get_conf_settings.SetSqlHost
-  settings['sql_pgsql']['database'] = get_conf_settings.SetSqlDB
-  settings['sql_pgsql']['user'] = get_conf_settings.SetSqlUser
-  settings['sql_pgsql']['password'] = get_conf_settings.SetSqlPasswd
-    
-class SQLPackageDatabase(object):
-  """we have to store our stuff somewhere
-
-  subclass and redefine init to provide
-  at least self.cursor"""
-
-  # These are set by subclasses
-  db = None
-  cursor = None
-  syntax_placeholder = None
-  syntax_autoincrement = None
-
-  sql = {}
-
-  def get_default_config(self, config_profile):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT make_conf_checksum FROM configs WHERE active = 'True' AND id = %s AND updateing = 'False'"
-    cursor.execute(sqlQ, (config_profile,))
-    return cursor.fetchone()
-  
-  def get_package_to_build(self, config_profile, queue_id):
-    cursor = self.conn.cursor()
-    print queue_id, config_profile
-    # get what to build
-    sqlQ1 = "SELECT ebuild_id, post_message FROM buildqueue WHERE config = %s AND extract(epoch from (NOW()) - timestamp) > 7200 AND queue_id = %s"
-    # get use flags to use
-    sqlQ2 = "SELECT useflag, enabled FROM ebuildqueuedwithuses WHERE queue_id = %s"
-    # get ebuild version (v) and package id
-    sqlQ3 = 'SELECT ebuild_version, package_id, ebuild_checksum FROM ebuilds WHERE id = %s'
-    # get categoriy and package (c, p)
-    sqlQ4 ='SELECT category, package_name FROM packages WHERE package_id = %s'
-    build_dict = {}
-    build_useflags_dict = {}
-    cursor.execute(sqlQ1, (config_profile, queue_id))
-    entries = cursor.fetchone()
-    print entries
-    if entries is None:
-      build_dict['ebuild_id'] = None
-      build_dict['post_message'] = None
-      return build_dict
-    build_dict['queue_id'] = queue_id
-    ebuild_id = entries[0]
-    build_dict['ebuild_id'] = ebuild_id
-    build_dict['post_message'] = entries[1]
-    cursor.execute(sqlQ2, (queue_id,))
-    entries = cursor.fetchall()
-    if entries == []:
-      build_useflags = None
-    else:
-      build_useflags = entries
-    cursor.execute(sqlQ3, (ebuild_id,))
-    entries = cursor.fetchall()[0]
-    build_dict['ebuild_version'] = entries[0]
-    build_dict['package_id'] = entries[1]
-    build_dict['ebuild_checksum'] = entries[2]
-    cursor.execute(sqlQ4, (entries[1],))
-    entries = cursor.fetchall()[0]
-    build_dict['categories'] = entries[0]
-    build_dict['package'] = entries[1]
-    if build_useflags is None:
-      build_dict['build_useflags'] = None
-    else:
-      for x in build_useflags:
-	build_useflags_dict[x[0]] = x[1]
-	build_dict['build_useflags'] = build_useflags_dict
-    print "build_dict", build_dict
-    return build_dict
-
-  def check_revision(self, build_dict, config_profile, ebuild_version_checksum_tree):
-    cursor = self.conn.cursor()
-    sqlQ1 = 'SELECT id FROM ebuilds WHERE ebuild_version = %s AND ebuild_checksum = %s AND package_id = %s'
-    sqlQ2 = 'SELECT queue_id FROM buildqueue WHERE ebuild_id = %s AND config = %s'
-    sqlQ3 = "SELECT useflag FROM ebuildqueuedwithuses WHERE queue_id = %s AND enabled = 'True'"
-    cursor.execute(sqlQ1, (build_dict['ebuild_version'], ebuild_version_checksum_tree, build_dict['package_id']))
-    ebuild_id = cursor.fetchone()[0]
-    print ebuild_id
-    if ebuild_id is None:
-      return None
-    cursor.execute(sqlQ2, (ebuild_id, config_profile))
-    queue_id_list = cursor.fetchall()
-    if queue_id_list is None:
-      return None
-    for queue_id in queue_id_list:
-      cursor.execute(sqlQ3, (queue_id,))
-      entries = cursor.fetchall()
-      if entries == []:
-	build_useflags = None
-      else:
-	build_useflags = entries
-      print build_useflags, build_dict['build_useflags']
-      if build_useflags is build_dict['build_useflags']:
-	print queue_id[0]
-	return queue_id[0]
-    return None
-
-  def get_config_list_all(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id FROM configs'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def update__make_conf(self, configsDict):
-    cursor = self.conn.cursor()
-    
-    sqlQ = 'UPDATE configs SET make_conf_checksum = %s, make_conf_text = %s, active = %s, config_error = %s WHERE id = %s'
-    for k, v in configsDict.iteritems():
-      params = [v['make_conf_checksum_tree'], v['make_conf_text'], v['active'], v['config_error'], k]
-      cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def have_package_db(self, categories, package):
-    cursor = self.conn.cursor()
-    sqlQ ='SELECT package_id FROM packages WHERE category = %s AND package_name = %s'
-    params = categories, package
-    cursor.execute(sqlQ, params)
-    return cursor.fetchone()
-
-  def get_categories_db(self):
-    cursor = self.conn.cursor()
-    sqlQ =' SELECT category FROM categories'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def get_categories_checksum_db(self, categories):
-    cursor = self.conn.cursor()
-    sqlQ =' SELECT metadata_xml_checksum FROM categories_meta WHERE category = %s'
-    cursor.execute(sqlQ, (categories,))
-    return cursor.fetchone()
-
-  def add_new_categories_meta_sql(self, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO categories_meta (category, metadata_xml_checksum, metadata_xml_text) VALUES  ( %s, %s, %s )'
-    params = categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def update_categories_meta_sql(self, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
-    cursor = self.conn.cursor()
-    sqlQ ='UPDATE categories_meta SET metadata_xml_checksum = %s, metadata_xml_text = %s WHERE category = %s'
-    params = (categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree, categories)
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_manifest_sql(self, package_id, get_manifest_text, manifest_checksum_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO manifest (package_id, manifest, checksum) VALUES  ( %s, %s, %s )'
-    params = package_id, get_manifest_text, manifest_checksum_tree
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_package_metadata(self, package_id, package_metadataDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT changelog_checksum FROM packages_meta WHERE package_id = %s'
-    cursor.execute(sqlQ, (package_id,))
-    if cursor.fetchone() is None:
-      sqlQ = 'INSERT INTO packages_meta (package_id, changelog_text, changelog_checksum, metadata_text, metadata_checksum) VALUES  ( %s, %s, %s, %s, %s )'
-      for k, v in package_metadataDict.iteritems():
-	params = package_id, v['changelog_text'], v['changelog_checksum'], v[' metadata_xml_text'], v['metadata_xml_checksum']
-	cursor.execute(sqlQ, params)
-      self.conn.commit()
-
-  def update_new_package_metadata(self, package_id, package_metadataDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT changelog_checksum, metadata_checksum FROM packages_meta WHERE package_id = %s'
-    cursor.execute(sqlQ, package_id)
-    entries = cursor.fetchone()
-    changelog_checksum_db = entries[0]
-    metadata_checksum_db = entries[1]
-    for k, v in package_metadataDict.iteritems():
-      if changelog_checksum_db != v['changelog_checksum']:
-	sqlQ = 'UPDATE packages_meta SET changelog_text = %s, changelog_checksum = %s WHERE package_id = %s'
-	params = v['changelog_text'], v['changelog_checksum'], package_id
-	cursor.execute(sqlQ, params)
-      if metadata_checksum_db != v['metadata_xml_checksum']:
-	sqlQ = 'UPDATE packages_meta SET metadata_text = %s, metadata_checksum = %s WHERE package_id = %s'
-	params = v[' metadata_xml_text'], v['metadata_xml_checksum'], package_id
-	cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def get_manifest_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT checksum FROM manifest WHERE package_id = %s'
-    cursor.execute(sqlQ, package_id)
-    return cursor.fetchone()
-
-  def update_manifest_sql(self, package_id, get_manifest_text, manifest_checksum_tree):
-   cursor = self.conn.cursor()
-   sqlQ = 'UPDATE manifest SET checksum = %s, manifest = %s WHERE package_id = %s'
-   params = (manifest_checksum_tree, get_manifest_text, package_id)
-   cursor.execute(sqlQ, params)
-   self.conn.commit()
-
-  def add_new_metadata(self, metadataDict):
-    for k, v in metadataDict.iteritems():
-      cursor = self.conn.cursor()
-      sqlQ = 'SELECT updaterestrictions( %s, %s )'
-      params = k, v['restrictions']
-      cursor.execute(sqlQ, params)
-      sqlQ = 'SELECT updatekeywords( %s, %s )'
-      params = k, v['keyword']
-      cursor.execute(sqlQ, params)
-      sqlQ = 'SELECT updateiuse( %s, %s )'
-      params = k, v['iuse']
-      cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_package_sql(self, packageDict):
-    #lets have a new cursor for each metod as per best practice
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
-    ebuild_id_list = []
-    package_id_list = []
-    for k, v in packageDict.iteritems():
-      params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
-      v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
-      v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
-      v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
-      v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
-      v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
-      v['ebuild_version_metadata_tree'][16]]
-      cursor.execute(sqlQ, params)
-      mid = cursor.fetchone()
-      mid=mid[0]
-      ebuild_id_list.append(mid[1])
-      package_id_list.append(mid[0])
-    self.conn.commit()
-    # add_new_metadata(metadataDict)
-    return ebuild_id_list, package_id_list
-
-  def add_new_ebuild_sql(packageDict, new_ebuild_list):
-    #lets have a new cursor for each metod as per best practice
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
-    ebuild_id_list = []
-    package_id_list = []
-    for k, v in packageDict.iteritems():
-      for x in new_ebuild_list:
-	if x == v['ebuild_version_tree']:
-	  params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
-	  v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
-	  v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
-	  v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
-	  v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
-	  v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
-	  v['ebuild_version_metadata_tree'][16]]
-	  cursor.execute(sqlQ, params)
-	  mid = cursor.fetchone()
-	  mid=mid[0]
-	  ebuild_id_list.append(mid[1])
-	  package_id_list.append(mid[0])
-    self.conn.commit()
-    # add_new_metadata(metadataDict)
-    return ebuild_id_list, package_id_list
-
-  def update_active_ebuild(self, package_id, ebuild_version_tree):
-    cursor = self.conn.cursor()
-    sqlQ ="UPDATE ebuilds SET active = 'False', timestamp = now() WHERE package_id = %s AND ebuild_version = %s AND active = 'True'"
-    cursor.execute(sqlQ, (package_id, ebuild_version_tree))
-    self.conn.commit()
-
-  sql['SELECT_get_ebuild_id_db'] = """
-    SELECT id
-    FROM packages
-    WHERE category = %s AND ebuild_name = %s AND ebuild_version = %s
-    """
-  def get_ebuild_id_db(self, categories, package, ebuild_version_tree):
-    sql = self.sql['SELECT_get_ebuild_id_db']
-    self.cursor.execute(sql, (categories, package, ebuild_version_tree))
-    entries = self.cursor.fetchone()
-    return entries
-
-  sql['SELECT_get_cpv_from_ebuild_id'] = """
-    SELECT category, ebuild_name, ebuild_version
-    FROM packages
-    WHERE id = %s
-    """
-  def get_cpv_from_ebuild_id(self, ebuild_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT package_id FROM ebuild WHERE id = %s'
-    self.cursor.execute(sql, ebuild_id)
-    entries = self.cursor.fetchone()
-    return entries
-
-  def get_cp_from_package_id(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT ARRAY_TO_STRING(ARRAY[category, package_name] , '/') AS cp FROM packages WHERE package_id = %s"
-    cursor.execute(sqlQ, (package_id,))
-    return cursor.fetchone()
-
-  sql['SELECT_get_keyword_id_db'] = """
-    SELECT id_keyword
-    FROM keywords
-    WHERE ARCH = %s AND stable = %s
-    """
-  def get_keyword_id_db(self, arch, stable):
-    sql = self.sql['SELECT_get_keyword_id_db']
-    self.cursor.execute(sql, (arch, stable))
-    entries = self.cursor.fetchone()
-    return entries
-
-  sql['INSERT_add_new_keywords'] = """
-    INSERT INTO keywordsToEbuild
-    (ebuild_id, id_keyword)
-    VALUES  ( %s, %s )
-    """
-  def add_new_keywords(self, ebuild_id, keyword_id):
-      sql = self.sql['INSERT_add_new_keywords']
-      self.cursor.execute(sql, (ebuild_id, keyword_id))
-      self.db.commit()
-    
-  sql['SELECT_have_package_buildqueue'] = """
-    SELECT useflags
-    FROM buildqueue
-    WHERE  ebuild_id = %s  AND config_id = %s
-    """
-  def have_package_buildqueue(self, ebuild_id, config_id):
-    sql = self.sql['SELECT_have_package_buildqueue']
-    params = (ebuild_id[0], config_id)
-    self.cursor.execute(sql, params)
-    entries = self.cursor.fetchone()
-    return entries
-  
-  def add_new_package_buildqueue(self, ebuild_id, config_id, iuse_flags_list, use_enable, message):
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_buildqueue( %s, %s, %s, %s, %s )"
-    if not iuse_flags_list:
-      iuse_flags_list=None
-      use_enable=None
-    params = ebuild_id, unicode(config_id), iuse_flags_list, use_enable, message
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-   
-  sql['SELECT_get_package_id'] = """
-    SELECT package_id
-    FROM packages
-    WHERE category = %s AND package_name = %s
-    """
-  sql['SELECT_get_ebuild_checksum'] = """
-    SELECT ebuild_checksum
-    FROM ebuild
-    WHERE package_id = %s AND ebuild_version = %s
-    """
-  def get_ebuild_checksum(self, package_id, ebuild_version_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT ebuild_checksum FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = TRUE'
-    cursor.execute(sqlQ, (package_id, ebuild_version_tree))
-    entries = cursor.fetchone()
-    if entries is None:
-      return None
-    return entries[0]
-  
-  sql['UPDATE_update_ebuild_db'] = """
-    UPDATE packages
-    SET ebuild_checksum = %s, ebuild_text = %s,
-    depend = %s, rdepend = %s, pdepend = %s, slot = %s, src_url = %s, homepage = %s, license = %s,
-    description = %s, keywords = %s, inherited = %s, iuse = %s, required_use = %s, provide = %s,
-    eapi = %s, properties = %s, defined_phases = %s
-    WHERE ebuild_id = %s
-    """
-  def update_ebuild_sql(self, ebuild_id, ebuild_version_checksum_tree,
-      ebuild_version_metadata_tree, ebuild_version_text):
-    sql = self.sql['UPDATE_update_ebuild_db']
-    params = (ebuild_version_checksum_tree[0],
-      ebuild_version_text, ebuild_version_metadata_tree[0], ebuild_version_metadata_tree[1],
-      ebuild_version_metadata_tree[12], ebuild_version_metadata_tree[2], ebuild_version_metadata_tree[3],
-      ebuild_version_metadata_tree[5], ebuild_version_metadata_tree[6], ebuild_version_metadata_tree[7],
-      ebuild_version_metadata_tree[9], ebuild_version_metadata_tree[10], ebuild_version_metadata_tree[11],
-      ebuild_version_metadata_tree[13], ebuild_version_metadata_tree[14], ebuild_version_metadata_tree[15],
-      ebuild_version_metadata_tree[16], ebuild_id)
-    self.cursor.execute(sql, params)
-    self.db.commit()
-  
-  sql['SELECT_cp_all_db'] = """
-    SELECT CONCAT_WS('/',categories, package)
-    FROM package
-    WHERE active = '1'
-    """
-  def cp_all_db(self):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT package_id FROM packages"
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def add_old_package(self, old_package_list):
-    cursor = self.conn.cursor()
-    mark_old_list = []
-    sqlQ = "UPDATE ebuilds SET active = 'FALSE', timestamp = NOW() WHERE package_id = %s AND active = 'TRUE' RETURNING package_id"
-    for old_package in old_package_list:
-      cursor.execute(sqlQ, (old_package[0],))
-      entries = cursor.fetchone()
-      if entries is not None:
-	mark_old_list.append(entries[0])
-    self.conn.commit()
-    return mark_old_list
-  
-  sql['UPDATE_add_old_categories'] = """
-    UPDATE categories
-    SET active = '0'
-    WHERE categories = %s
-    """
-  def get_old_categories(self, categories_line):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT package_name FROM packages WHERE category = %s"
-    cursor.execute(sqlQ (categories_line))
-    return cursor.fetchone()
-
-  def del_old_categories(self, real_old_categoriess):
-    cursor = self.conn.cursor()
-    sqlQ = 'DELETE FROM categories categories_meta WHERE category = %s'
-    cursor.execute(sqlQ (real_old_categories))
-    self.conn.commit()
-
-  def add_old_ebuild(self, package_id, old_ebuild_list):
-    cursor = self.conn.cursor()
-    sqlQ1 = "UPDATE ebuilds SET active = 'FALSE' WHERE package_id = %s AND ebuild_version = %s"
-    sqlQ2 = "SELECT id FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = 'TRUE'"
-    sqlQ3 = "SELECT queue_id FROM buildqueue WHERE ebuild_id = %s"
-    sqlQ4 = 'DELETE FROM ebuildqueuedwithuses buildqueue WHERE queue_id = %s'
-    for old_ebuild in  old_ebuild_list:
-      cursor.execute(sqlQ2, (package_id, old_ebuild[0]))
-      ebuild_id_list = cursor.fetchall()
-      if ebuild_id_list is not None:
-	for ebuild_id in ebuild_id_list:
-	  cursor.execute(sqlQ3, (ebuild_id))
-	  queue_id_list = cursor.fetchall()
-	  if queue_id_list is not None:
-	    for queue_id in queue_id_list:
-	      cursor.execute(sqlQ4, (queue_id))
-      cursor.execute(sqlQ1, (package_id, old_ebuild[0]))
-    self.conn.commit()
-    
-  sql['SELECT_cp_all_old_db'] = """
-    SELECT CONCAT_WS('/',categories, package)
-    FROM package
-    WHERE active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def cp_all_old_db(self, old_package_id_list):
-    cursor = self.conn.cursor()
-    old_package_list = []
-    for old_package in old_package_id_list:
-      sqlQ = "SELECT package_id FROM ebuilds WHERE package_id = %s AND active = 'FALSE' AND date_part('days', NOW() - timestamp) < 60"
-      cursor.execute(sqlQ, old_package)
-      entries = cursor.fetchone()
-      if entries is None:
-	old_package_list.append(old_package)
-    return old_package_list
-  
-  sql['DELETE_del_old_ebuild'] = """
-    DELETE FROM ebuild
-    WHERE categories = %s AND package = %s AND active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def del_old_ebuild(self, ebuild_old_list_db):
-    cursor = self.conn.cursor()
-    sqlQ1 ='SELECT id FROM ebuilds WHERE ebuild_version = %s'
-    sqlQ2 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    sqlQ3 = 'DELETE FROM qa_problems repoman_problems ebuildbuildwithuses WHERE build_id = %s'
-    sqlQ4 = 'DELETE FROM ebuildhaveskeywords ebuildhavesiuses ebuildhavesrestrictions buildlog WHERE ebuild_id = %s'
-    for ebuild_version in ebuild_old_list_db:
-      cursor.execute(sqlQ1, (ebuild_version))
-      ebuild_id_list = cursor.fetchall()
-      for ebuild_id in ebuild_id_list:
-	cursor.execute(sqlQ2, ebuild_id)
-	build_id_list = cursor.fetchall()
-	for build_id in build_id_list:
-	  cursor.execute(sqlQ3, build_id)
-	cursor.execute(sqlQ4, ebuild_id)
-    self.conn.commit()
-  
-  sql['DELETE_del_old_package'] = """
-    DELETE FROM package
-    WHERE categories = %s AND package = %s AND active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def del_old_package(self, package_id_list):
-    cursor = self.conn.cursor()
-    sqlQ1 = 'SELECT id FROM ebuilds WHERE package_id = %s'
-    sqlQ2 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    sqlQ3 = 'DELETE FROM qa_problems, repoman_problems, ebuildbuildwithuses WHERE build_id = %s'
-    sqlQ4 = 'DELETE FROM ebuildhaveskeywords, ebuildhavesiuses, ebuildhavesrestrictions, buildlog WHERE ebuild_id = %s'
-    sqlQ5 = 'DELETE FROM ebuilds, manifest, package_meta, packages WHERE package_id = %s'
-    for package_id in package_id_list:
-      cursor.execute(sqlQ1, package_id)
-      ebuild_id_list = cursor.fetchall()
-      for ebuild_id in ebuild_id_list:
-	cursor.execute(sqlQ2, ebuild_id)
-	build_id_list = cursor.fetchall()
-	for build_id in build_id_list:
-	  cursor.execute(sqlQ3, build_id)
-	cursor.execute(sqlQ4, ebuild_id)
-      cursor.execute(sqlQ5, package_id)
-    self.conn.commit()
-
-  sql['DELETE_del_old_categories'] = """
-    DELETE FROM categories
-    WHERE categories = %s AND active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def del_old_package(self, categories):
-    sql = self.sql['DELETE_del_old_categories']
-    self.cursor.execute(sql, (categories))
-    self.db.commit()
-
-  def cp_list_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT ebuild_version FROM ebuilds WHERE active = 'TRUE' AND package_id = %s"
-    cursor.execute(sqlQ, (package_id))
-    return cursor.fetchall()
-
-  def cp_list_old_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ ="SELECT id, ebuild_version FROM ebuilds WHERE active = 'FALSE' AND package_id = %s AND date_part('days', NOW() - timestamp) > 60"
-    cursor.execute(sqlQ, package_id)
-    return cursor.fetchall()
-
-  def add_qa_repoman(self, ebuild_id_list, qa_error, packageDict, config_id):
-    ebuild_i = 0
-    cursor = self.conn.cursor()
-    for k, v in packageDict.iteritems():
-      ebuild_id = ebuild_id_list[ebuild_i]
-      sqlQ = 'INSERT INTO buildlog (ebuild_id, config, error_summary, timestamp ) VALUES  ( %s, %s, %s, now() ) RETURNING build_id'
-      if v['ebuild_error'] != [] or qa_error != []:
-	if v['ebuild_error'] != [] or qa_error == []:
-	  summary = "Repoman"
-	elif v['ebuild_error'] == [] or qa_error != []:
-	  summary = "QA"
-	else:
-	  summary = "QA:Repoman"
-	params = (ebuild_id, config_id, summary)
-	cursor.execute(sqlQ, params)
-	build_id = cursor.fetchone()
-	if v['ebuild_error'] != []:
-	  sqlQ = 'INSERT INTO repoman_problems (problem, build_id ) VALUES ( %s, %s )'
-	  for x in v['ebuild_error']:
-	    params = (x, build_id)
-	    cursor.execute(sqlQ, params)
-	if qa_error != []:
-	  sqlQ = 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s, %s )'
-	  for x in qa_error:
-	    params = (x, build_id)
-	    cursor.execute(sqlQ, params)
-      ebuild_i = ebuild_i +1
-    self.conn.commit()
-
-  sql['SELECT_qa_repoman'] = """
-    SELECT categories, package, ebuild_version, qa, repoman, config, hosts
-    FROM buildlog
-    WHERE ebuild = %sAND build = '' AND config_id = %s
-    """
-  def get_qa_repoman(self, ebuild_id, config_id):
-	sql = self.sql['SELECT_qa_repoman']
-	params = (ebuild_id, config_id)
-	self.cursor.execute(sql, params)
-	entries = self.cursor.fetchall()
-	return entries
-  
-  sql['DELETE_del_qa_repoman'] = """
-    DELETE FROM buildlog
-    WHERE ebuild_id AND build = '' AND config_id = %s
-    """
-  def del_qa_repoman(self, ebuild_id, config_id):
-    sql = self.sql['DELETE_del_qa_repoman']
-    self.cursor.execute(sql, (ebuild_id, config_id))
-    self.db.commit()
-
-  sql['UPDATE_update_qa_repoman'] = """
-    UPDATE buildlog
-    SET qa = %s, repoman = %s
-    WHERE ebuild_id = %s AND build = '' AND config_id = %s
-    """
-  def update_qa_repoman(self, ebuild_id, qa_error, repoman_error, config_id):
-    sql = self.sql['UPDATE_update_qa_repoman']
-    self.cursor.execute(sql, (qa_error, repoman_error, ebuild_id, config_id))
-    self.db.commit()
-
-  def get_arch_db(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT keyword FROM keywords WHERE keyword = %s'
-    cursor.execute(sqlQ, ('ppc',))
-    return cursor.fetchone()
-  
-  def add_new_arch_db(self, arch_list):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO keywords (keyword) VALUES  ( %s )'
-    for arch in arch_list:
-      cursor.execute(sqlQ, (arch,))
-    self.conn.commit()
-
-  sql['INSERT_add_new_restriction_db'] = """
-      INSERT INTO ebuildHavesRestrictions
-      (ebuild_id, restriction)
-      VALUES  ( %s, %s )
-    """
-
-  def closeconnection(self):
-    self.conn.close()
-
-class PgSQLPackageDB(SQLPackageDatabase):
-    """override for MySQL backend"""
-
-    syntax_placeholder = "%s"
-    
-    def __init__(self, config=None):
-        # Do not complain about correct usage of ** magic
-        # pylint: disable-msg=W0142
-        SQLPackageDatabase.__init__(self)
-
-        if config is None or 'database' not in config:
-            print "No configuration available!"
-            sys.exit(1)
-
-        try:
-            import psycopg2
-        except ImportError:
-            print "Please install a recent version of dev-python/psycopg for Python"
-            sys.exit(1)
-
-        self.conn = psycopg2.connect(**config)
-        

diff --git a/buildhost/configsetups/make.conf b/buildhost/configsetups/make.conf
deleted file mode 100644
index b69dfa9..0000000
--- a/buildhost/configsetups/make.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-# This is for the base config
-CHOST="x86_64-pc-linux-gnu"
-ACCEPT_KEYWORDS=""
-ARCH="amd64"
-FEATURES="-metadata-transfer -news"
-ACCEPT_LICENSE="*"
-PORTAGE_TMPDIR=/var/tmp
-PORTDIR=/usr/portage
-DISTDIR=/usr/portage/distfiles
-PORT_LOGDIR="/var/log/portage"
-GENTOO_MIRRORS="ftp://ftp.sunet.se/pub/Linux/distributions/gentoo http://distfiles.gentoo.org http://www.ibiblio.org/pub/Linux/distributions/gentoo"
-SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"
-PORTAGE_TMPFS="/dev/shm"
-PORTAGE_ELOG_CLASSES=""
-PORTAGE_ELOG_SYSTEM=""

diff --git a/buildhost/etc/buildhost/buildhost.conf b/buildhost/etc/buildhost/buildhost.conf
deleted file mode 100644
index 96ed868..0000000
--- a/buildhost/etc/buildhost/buildhost.conf
+++ /dev/null
@@ -1,13 +0,0 @@
-# The Sql Backend
-SQLBACKEND=pgsql
-# The Sql Datebase
-SQLDB=buildhost
-# Sql Host
-SQLHOST=localhost
-# Sql user
-SQLUSER=buildhost
-# Sql Password
-SQLPASSWD=buildhost
-# Buildhost root
-BUILDHOSTROOT=/home/buildhost/
-BUILDCONFIG=jasmin.ume.nu/hardened

diff --git a/buildhost/portage_hook/__init__.py b/buildhost/portage_hook/__init__.py
deleted file mode 100644
index e69de29..0000000

diff --git a/buildhost/portage_hook/buildhost_hook.py b/buildhost/portage_hook/buildhost_hook.py
deleted file mode 100644
index 032638a..0000000
--- a/buildhost/portage_hook/buildhost_hook.py
+++ /dev/null
@@ -1,315 +0,0 @@
-# -*- coding: utf-8 -*-
-# written 2010 by Magnus Granberg <zorry@gentoo.org>
-# License: GPL-2
-
-"""core module"""
-import sys
-from StringIO import StringIO
-import os
-import re
-import codecs
-import portage
-from portage import config
-from portage import os, _encodings, _unicode_decode
-from portage import _unicode_encode
-from repoman.checks import run_checks
-from _emerge.RootConfig import RootConfig
-from _emerge.Package import Package
-import _emerge
-import hashlib
-import errno
-import time
-
-def get_iuse(myportdb, cpv):
-	"""Gets the current IUSE flags from the tree
-
-	To be used when a gentoolkit package object is not needed
-	@type: cpv: string 
-	@param cpv: cat/pkg-ver
-	@rtype list
-	@returns [] or the list of IUSE flags
-	"""
-	return myportdb.aux_get(cpv, ["IUSE"])[0].split()
-	
-def reduce_flag(flag):
-	"""Absolute value function for a USE flag
-
-	@type flag: string
-	@param flag: the use flag to absolute.
-	@rtype: string
-	@return absolute USE flag
-	"""
-	if flag[0] in ["+","-"]:
-		return flag[1:]
-	else:
-		return flag
-
-
-def reduce_flags(the_list):
-	"""Absolute value function for a USE flag list
-
-	@type the_list: list
-	@param the_list: the use flags to absolute.
-	@rtype: list
-	@return absolute USE flags
-	"""
-	r=[]
-	for member in the_list:
-		r.append(reduce_flag(member))
-	return r
-
-
-def filter_flags(mysettings, use, use_expand_hidden, usemasked, useforced):
-	"""Filter function to remove hidden or otherwise not normally
-	visible USE flags from a list.
-
-	@type use: list
-	@param use: the USE flag list to be filtered.
-	@type use_expand_hidden: list
-	@param  use_expand_hidden: list of flags hidden.
-	@type usemasked: list
-	@param usemasked: list of masked USE flags.
-	@type useforced: list
-	@param useforced: the forced USE flags.
-	@rtype: list
-	@return the filtered USE flags.
-	"""
-	# clean out some environment flags, since they will most probably
-	# be confusing for the user
-	for f in use_expand_hidden:
-		f=f.lower() + "_"
-		for x in use:
-			if f in x:
-				use.remove(x)
-	# clean out any arch's
-	archlist = mysettings["PORTAGE_ARCHLIST"].split()
-	for a in use[:]:
-		if a in archlist:
-			use.remove(a)
-	# dbl check if any from usemasked  or useforced are still there
-	masked = usemasked + useforced
-	for a in use[:]:
-		if a in masked:
-			use.remove(a)
-	return use
-
-def get_all_cpv_use(mysettings, myportdb, cpv):
-	"""Uses portage to determine final USE flags and settings for an emerge
-
-	@type cpv: string
-	@param cpv: eg cat/pkg-ver
-	@rtype: lists
-	@return  use, use_expand_hidden, usemask, useforce
-	"""
-	use = mysettings['PORTAGE_USE'].split()
-	use_expand_hidden = mysettings["USE_EXPAND_HIDDEN"].split()
-	usemask = list(mysettings.usemask)
-	useforce =  list(mysettings.useforce)
-	return use, use_expand_hidden, usemask, useforce
-	
-def get_flags(mysettings, myportdb, cpv):
-	"""Retrieves all information needed to filter out hidden, masked, etc.
-	USE flags for a given package.
-
-	@type cpv: string
-	@param cpv: eg. cat/pkg-ver
-	@type final_setting: boolean
-	@param final_setting: used to also determine the final
-		enviroment USE flag settings and return them as well.
-	@rtype: list or list, list
-	@return IUSE or IUSE, final_flags
-	"""
-	final_use, use_expand_hidden, usemasked, useforced = get_all_cpv_use(mysettings, myportdb, cpv)
-	iuse_flags = filter_flags(mysettings, get_iuse(myportdb, cpv), use_expand_hidden, usemasked, useforced)
-	#flags = filter_flags(use_flags, use_expand_hidden, usemasked, useforced)
-	final_flags = filter_flags(mysettings, final_use, use_expand_hidden, usemasked, useforced)
-	return iuse_flags, final_flags
-
-def  get_log_text_list(filename):
-  """Return the log contents as a list"""
-  print "filename", filename
-  try:
-    logfile = open(filename)
-  except IOError, oe:
-    if oe.errno not in (errno.ENOENT, ):
-      raise
-      return None
-  text = []
-  dataLines = logfile.readlines()
-  for i in dataLines:
-      text.append(i)
-  return text
-
-def add_new_ebuild_buildquery_db(database, mysettings, build_dict, ebuild_version_checksum_tree, config_profile):
-  myportdb = portage.portdbapi(mysettings=mysettings)
-  cpv = build_dict['cpv']
-  message = None
-  iuse_flags_list, final_use_list = get_flags(mysettings, myportdb, cpv)
-  iuse = []
-  use_flags_list = []
-  use_enable_list = []
-  for iuse_line in iuse_flags_list:
-    iuse.append(reduce_flag(iuse_line))
-  iuse_flags_list2 = list(set(iuse))
-  use_enable = build_dict['build_useflags']
-  use_disable = list(set(iuse_flags_list2).difference(set(use_enable)))
-  use_flagsDict = {}
-  for x in use_enable:
-    use_flagsDict[x] = True
-  for x in use_disable:
-    use_flagsDict[x] = False
-  for u, s in  use_flagsDict.iteritems():
-	  use_flags_list.append(u)
-	  use_enable_list.append(s)
-  ebuild_id = database.get_ebuild_id_db(build_dict, ebuild_version_checksum_tree)
-  database.add_new_package_buildqueue(ebuild_id, config_profile, use_flags_list, use_enable_list, message)
-
-def check_repoman(settings, portdb, categories, package, ebuild_version_tree, config_id):
-  # We run repoman run_checks on the ebuild
-  pkgdir = settings['PORTDIR'] + "/" + categories + "/" + package
-  full_path = pkgdir + "/" + package + "-" + ebuild_version_tree + ".ebuild"
-  cpv = categories + "/" + package + "-" + ebuild_version_tree
-  root = '/'
-  trees = {
-  root : {'porttree' : portage.portagetree(root, settings=settings)}
-  }
-  root_config = RootConfig(settings, trees[root], None)
-  allvars = set(x for x in portage.auxdbkeys if not x.startswith("UNUSED_"))
-  allvars.update(Package.metadata_keys)
-  allvars = sorted(allvars)
-  myaux = dict(zip(allvars, portdb.aux_get(cpv, allvars)))
-  pkg = Package(cpv=cpv, metadata=myaux, root_config=root_config)
-  fails = []
-  try:
-    # All ebuilds should have utf_8 encoding.
-    f = codecs.open(_unicode_encode(full_path,
-      encoding=_encodings['fs'], errors='strict'),
-    mode='r', encoding=_encodings['repo.content'])
-    try:
-      for check_name, e in run_checks(f, pkg):
-	fails.append(check_name + ": " + e)
-    finally:
-      f.close()
-  except UnicodeDecodeError:
-    # A file.UTF8 failure will have already been recorded above.
-    pass
-  # fails will have a list with repoman errors
-  return fails
- 
-def get_buildlog_info(settings, mode, build_dict, config_profile):
-  logfile_text = get_log_text(settings.get("PORTAGE_LOG_FILE"))
-  # FIXME to support more errors and stuff
-  # Missing QA loging
-  i = 0
-  error_log_list = []
-  qa_error_list = []
-  sum_build_log_list = []
-  for textline in logfile_text:
-    if re.search(" * Package:", textline):
-      error_log_list.append(textline)
-    if re.search(" * Repository:", textline):
-      error_log_list.append(textline)
-    if re.search(" * Maintainer:", textline):
-      error_log_list.append(textline)
-    if re.search(" * USE:", textline):
-      error_log_list.append(textline)
-    if re.search(" * FEATURES:", textline):
-      error_log_list.append(textline)
-    if re.search("Error 1", textline):
-      x = i - 20
-      error_log_list.append(".....\n")
-      while x != i + 3:
-	error_log_list.append(logfile_text[x])
-	x = x +1
-    if re.search(" * ERROR:", textline):
-      x = i
-      endline= True
-      field = textline.split(" ")
-      sum_build_log_list.append("fail")
-      error_log_list.append(".....\n")
-      while endline:
-	try:
-	  error_log_list.append(logfile_text[x])
-	except:
-	  endline = False
-	else:
-	  x = x +1
-    i = i + 1
-  print "build_error:\n", error_log_list
-  print "sum:", sum_build_log_list
-  build_log_dict = {}
-  build_log_dict['error_log_list:'] = error_log_list
-  # Run repoman check_repoman()
-  portdb = portage.portdbapi(mysettings=settings)
-  categories = build_dict['categories']
-  package = build_dict['package']
-  ebuild_version = build_dict['ebuild_version']
-  repoman_error_list = check_repoman(settings, portdb, categories, package, ebuild_version, config_profile)
-  print repoman_error_list
-  if repoman_error_list != []:
-    build_log_dict['repoman_error_list'] = repoman_error_list
-    sum_build_log_list.append("repoman")
-  else:
-    build_log_dict['repoman_error_list'] = None
-  if qa_error_list != []:
-    build_log_dict['qa_error_list'] = qa_error_list
-    sum_build_log_list.append("qa")
-  else:
-    build_log_dict['qa_error_list'] = None
-  build_log_dict['summary_error_list'] = sum_build_log_list
-  return build_log_dict
-  
-def add_buildlog_db(settings, database, build_dict, build_log_dict, config_profile):
-  ebuild_id = build_dict['ebuild_id']
-  queue_id = build_dict['queue_id']
-  sum_build_log_list = build_log_dict['summary_error_list']
-  error_log_list = build_log_dict['error_log_list:']
-  build_error = ""
-  if error_log_list != []:
-    for log_line in error_log_list:
-      build_error = build_error + log_line
-  summary_error = ""
-  if sum_build_log_list != []:
-    for sum_log_line in sum_build_log_list:
-      summary_error = summary_error + " " + sum_log_line
-  logfilename = re.sub("\/var\/log\/portage\/", "",  settings.get("PORTAGE_LOG_FILE"))
-  build_id = database.move_queru_buildlog(queue_id, build_error, summary_error, logfilename, build_log_dict)
-  print "build_id", build_id
- 
-def get_build_dict_db(mysettings, database, config_profile):
-  categories = mysettings['CATEGORY']
-  package = mysettings['PN']
-  ebuild_version = mysettings['PVR']
-  cpv = categories + "/" + package + "-" + ebuild_version
-  print "cpv", cpv
-  package_id = database.have_package_db(categories, package)
-  print "package_id", package_id
-  build_dict = {}
-  mybuild_dict = {}
-  build_dict['ebuild_version'] = ebuild_version
-  build_dict['package_id'] = package_id
-  build_dict['cpv'] = cpv
-  if mysettings.get('PORTAGE_BUILT_USE') is None:
-    build_dict['build_useflags'] = []
-  else:
-    build_dict['build_useflags'] = mysettings.get('PORTAGE_BUILT_USE')
-  pkgdir = os.path.join(mysettings['PORTDIR'], categories + "/" + package)
-  ebuild_version_checksum_tree = portage.checksum.sha256hash(pkgdir+ "/" + package + "-" + ebuild_version + ".ebuild")[0]
-  queue_id = database.check_revision(build_dict, config_profile, ebuild_version_checksum_tree)
-  print "queue_id", queue_id
-  if queue_id is None:
-    add_new_ebuild_buildquery_db(database, mysettings, build_dict, ebuild_version_checksum_tree, config_profile)
-    queue_id = database.check_revision(build_dict, config_profile, ebuild_version_checksum_tree)
-  mybuild_dict = database.get_package_to_build(config_profile, queue_id, new = True)
-  return mybuild_dict
-  
-def main_hook(mysettings, mode):
-  # Main
-  get_conf_settings.__init__						# Init settings from the configfile
-  database = init_sql_backend()						# Init the Database
-  config_profile = get_conf_settings.SetBuildConfig
-  build_dict = get_build_dict_db(mysettings, database, config_profile)
-  build_log_dict = get_buildlog_info(mysettings, mode, build_dict, config_profile)
-  add_buildlog_db(mysettings, database, build_dict, build_log_dict, config_profile)
-  return
-  
\ No newline at end of file

diff --git a/buildhost/portage_hook/sqlbackend.py b/buildhost/portage_hook/sqlbackend.py
deleted file mode 100644
index 89240fc..0000000
--- a/buildhost/portage_hook/sqlbackend.py
+++ /dev/null
@@ -1,673 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import sys, os, re
-
-class DBStateError(Exception):
-    """If the DB is in a state that is not expected, we raise this."""
-    def __init__(self, value):
-        Exception.__init__(self)
-        self.value = value
-    def __str__(self):
-        return repr(self.value)
-
-class DatabaseConfig(object):
-  # No touchy
-  from core import get_conf_settings
-  settings = {}
-  mode = get_conf_settings.SetSqlBackend
-    
-  # Settings for MySQL. You need to create one users in 
-  # your MySQL database.
-  # The  user needs:
-  # DELETE, INSERT, UPDATE, SELECT
-  # Do NOT change these, set the values in the config file /etc/buildhost/buildhost.conf
-  settings['sql_pgsql'] = {}
-  # settings['sql_pgsql']['charset'] = 'utf8'
-  settings['sql_pgsql']['host'] = get_conf_settings.SetSqlHost
-  settings['sql_pgsql']['database'] = get_conf_settings.SetSqlDB
-  settings['sql_pgsql']['user'] = get_conf_settings.SetSqlUser
-  settings['sql_pgsql']['password'] = get_conf_settings.SetSqlPasswd
-    
-class SQLPackageDatabase(object):
-  """we have to store our stuff somewhere
-
-  subclass and redefine init to provide
-  at least self.cursor"""
-
-  # These are set by subclasses
-  db = None
-  cursor = None
-  syntax_placeholder = None
-  syntax_autoincrement = None
-
-  sql = {}
-
-  def get_default_config(self, config_profile):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT make_conf_checksum FROM configs WHERE active = 'True' AND id = %s AND updateing = 'False'"
-    cursor.execute(sqlQ, (config_profile,))
-    return cursor.fetchone()
-  
-  def get_package_to_build(self, config_profile, queue_id, new):
-    cursor = self.conn.cursor()
-    print queue_id, config_profile
-    # get what to build
-    if new is True:
-      sqlQ1 = "SELECT ebuild_id, post_message FROM buildqueue WHERE config = %s AND queue_id = %s"
-    else:
-      sqlQ1 = "SELECT ebuild_id, post_message FROM buildqueue WHERE config = %s AND extract(epoch from (NOW()) - timestamp) > 7200 AND queue_id = %s"
-    # get use flags to use
-    sqlQ2 = "SELECT useflag, enabled FROM ebuildqueuedwithuses WHERE queue_id = %s"
-    # get ebuild version (v) and package id
-    sqlQ3 = 'SELECT ebuild_version, package_id, ebuild_checksum FROM ebuilds WHERE id = %s'
-    # get categoriy and package (c, p)
-    sqlQ4 ='SELECT category, package_name FROM packages WHERE package_id = %s'
-    build_dict = {}
-    build_useflags_dict = {}
-    cursor.execute(sqlQ1, (config_profile, queue_id))
-    entries = cursor.fetchone()
-    print "ebuild_id post_message", entries
-    if entries is None:
-      build_dict['ebuild_id'] = None
-      build_dict['post_message'] = None
-      return build_dict
-    build_dict['queue_id'] = queue_id
-    ebuild_id = entries[0]
-    build_dict['ebuild_id'] = ebuild_id
-    build_dict['post_message'] = entries[1]
-    cursor.execute(sqlQ2, (queue_id,))
-    entries = cursor.fetchall()
-    if entries == []:
-      build_useflags = None
-    else:
-      build_useflags = entries
-    cursor.execute(sqlQ3, (ebuild_id,))
-    entries = cursor.fetchall()[0]
-    build_dict['ebuild_version'] = entries[0]
-    build_dict['package_id'] = entries[1]
-    build_dict['ebuild_checksum'] = entries[2]
-    cursor.execute(sqlQ4, (entries[1],))
-    entries = cursor.fetchall()[0]
-    print "cp", entries
-    build_dict['categories'] = entries[0]
-    build_dict['package'] = entries[1]
-    if build_useflags is None:
-      build_dict['build_useflags'] = None
-    else:
-      for x in build_useflags:
-	build_useflags_dict[x[0]] = x[1]
-	build_dict['build_useflags'] = build_useflags_dict
-    print "build_dict", build_dict
-    return build_dict
-
-  def check_revision(self, build_dict, config_profile, ebuild_version_checksum_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id, ebuild_checksum FROM ebuilds WHERE ebuild_version = %s AND package_id = %s'
-    sqlQ1 = 'SELECT id FROM ebuilds WHERE ebuild_version = %s AND ebuild_checksum = %s AND package_id = %s'
-    sqlQ2 = 'SELECT queue_id FROM buildqueue WHERE ebuild_id = %s AND config = %s'
-    sqlQ3 = "SELECT useflag FROM ebuildqueuedwithuses WHERE queue_id = %s AND enabled = 'True'"
-    print build_dict['ebuild_version'], ebuild_version_checksum_tree, build_dict['package_id']
-    cursor.execute(sqlQ, (build_dict['ebuild_version'], build_dict['package_id']))
-    print cursor.fetchall()
-    cursor.execute(sqlQ1, (build_dict['ebuild_version'], ebuild_version_checksum_tree, build_dict['package_id']))
-    ebuild_id = cursor.fetchone()[0]
-    print "ebuild_id", ebuild_id
-    if ebuild_id is None:
-      return None
-    cursor.execute(sqlQ2, (ebuild_id, config_profile))
-    queue_id_list = cursor.fetchall()
-    print "queue_id_list", queue_id_list
-    if queue_id_list is None:
-      return None
-    for queue_id in queue_id_list:
-      print "queue_id", queue_id[0]
-      cursor.execute(sqlQ3, (queue_id[0],))
-      entries = cursor.fetchall()
-      if entries == []:
-	build_useflags = []
-      else:
-	build_useflags = entries
-      print build_useflags, build_dict['build_useflags']
-      if build_useflags == build_dict['build_useflags']:
-	print queue_id[0]
-	return queue_id[0]
-    return None
-
-  def have_cpv_buildlog_db(self, ebuild_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    cursor.execute(sqlQ, (ebuild_id,))
-    return cursor.fetchall()
-
-  def move_queru_buildlog(self, queue_id, build_error, summary_error, logfilename, build_log_dict):
-    cursor = self.conn.cursor()
-    sum_build_log_list = build_log_dict['summary_error_list']
-    repoman_error_list = build_log_dict['repoman_error_list']
-    qa_error_list = build_log_dict['qa_error_list']
-    sqlQ = 'SELECT make_buildlog( %s, %s, %s, %s, %s, %s)'
-    cursor.execute(sqlQ, (queue_id, summary_error, build_error, logfilename, qa_error_list, repoman_error_list))
-    entries = cursor.fetchone()
-    self.conn.commit()
-    return entries
-    
-
-  def get_config_list_all(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id FROM configs'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def update__make_conf(self, configsDict):
-    cursor = self.conn.cursor()
-    
-    sqlQ = 'UPDATE configs SET make_conf_checksum = %s, make_conf_text = %s, active = %s, config_error = %s WHERE id = %s'
-    for k, v in configsDict.iteritems():
-      params = [v['make_conf_checksum_tree'], v['make_conf_text'], v['active'], v['config_error'], k]
-      cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def have_package_db(self, categories, package):
-    cursor = self.conn.cursor()
-    sqlQ ='SELECT package_id FROM packages WHERE category = %s AND package_name = %s'
-    params = categories, package
-    cursor.execute(sqlQ, params)
-    return cursor.fetchone()[0]
-
-  def get_categories_db(self):
-    cursor = self.conn.cursor()
-    sqlQ =' SELECT category FROM categories'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def get_categories_checksum_db(self, categories):
-    cursor = self.conn.cursor()
-    sqlQ =' SELECT metadata_xml_checksum FROM categories_meta WHERE category = %s'
-    cursor.execute(sqlQ, (categories,))
-    return cursor.fetchone()
-
-  def add_new_categories_meta_sql(self, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO categories_meta (category, metadata_xml_checksum, metadata_xml_text) VALUES  ( %s, %s, %s )'
-    params = categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def update_categories_meta_sql(self, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
-    cursor = self.conn.cursor()
-    sqlQ ='UPDATE categories_meta SET metadata_xml_checksum = %s, metadata_xml_text = %s WHERE category = %s'
-    params = (categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree, categories)
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_manifest_sql(self, package_id, get_manifest_text, manifest_checksum_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO manifest (package_id, manifest, checksum) VALUES  ( %s, %s, %s )'
-    params = package_id, get_manifest_text, manifest_checksum_tree
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_package_metadata(self, package_id, package_metadataDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT changelog_checksum FROM packages_meta WHERE package_id = %s'
-    cursor.execute(sqlQ, (package_id,))
-    if cursor.fetchone() is None:
-      sqlQ = 'INSERT INTO packages_meta (package_id, changelog_text, changelog_checksum, metadata_text, metadata_checksum) VALUES  ( %s, %s, %s, %s, %s )'
-      for k, v in package_metadataDict.iteritems():
-	params = package_id, v['changelog_text'], v['changelog_checksum'], v[' metadata_xml_text'], v['metadata_xml_checksum']
-	cursor.execute(sqlQ, params)
-      self.conn.commit()
-
-  def update_new_package_metadata(self, package_id, package_metadataDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT changelog_checksum, metadata_checksum FROM packages_meta WHERE package_id = %s'
-    cursor.execute(sqlQ, package_id)
-    entries = cursor.fetchone()
-    changelog_checksum_db = entries[0]
-    metadata_checksum_db = entries[1]
-    for k, v in package_metadataDict.iteritems():
-      if changelog_checksum_db != v['changelog_checksum']:
-	sqlQ = 'UPDATE packages_meta SET changelog_text = %s, changelog_checksum = %s WHERE package_id = %s'
-	params = v['changelog_text'], v['changelog_checksum'], package_id
-	cursor.execute(sqlQ, params)
-      if metadata_checksum_db != v['metadata_xml_checksum']:
-	sqlQ = 'UPDATE packages_meta SET metadata_text = %s, metadata_checksum = %s WHERE package_id = %s'
-	params = v[' metadata_xml_text'], v['metadata_xml_checksum'], package_id
-	cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def get_manifest_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT checksum FROM manifest WHERE package_id = %s'
-    cursor.execute(sqlQ, package_id)
-    return cursor.fetchone()
-
-  def update_manifest_sql(self, package_id, get_manifest_text, manifest_checksum_tree):
-   cursor = self.conn.cursor()
-   sqlQ = 'UPDATE manifest SET checksum = %s, manifest = %s WHERE package_id = %s'
-   params = (manifest_checksum_tree, get_manifest_text, package_id)
-   cursor.execute(sqlQ, params)
-   self.conn.commit()
-
-  def add_new_metadata(self, metadataDict):
-    for k, v in metadataDict.iteritems():
-      cursor = self.conn.cursor()
-      sqlQ = 'SELECT updaterestrictions( %s, %s )'
-      params = k, v['restrictions']
-      cursor.execute(sqlQ, params)
-      sqlQ = 'SELECT updatekeywords( %s, %s )'
-      params = k, v['keyword']
-      cursor.execute(sqlQ, params)
-      sqlQ = 'SELECT updateiuse( %s, %s )'
-      params = k, v['iuse']
-      cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_package_sql(self, packageDict):
-    #lets have a new cursor for each metod as per best practice
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
-    ebuild_id_list = []
-    package_id_list = []
-    for k, v in packageDict.iteritems():
-      params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
-      v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
-      v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
-      v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
-      v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
-      v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
-      v['ebuild_version_metadata_tree'][16]]
-      cursor.execute(sqlQ, params)
-      mid = cursor.fetchone()
-      mid=mid[0]
-      ebuild_id_list.append(mid[1])
-      package_id_list.append(mid[0])
-    self.conn.commit()
-    # add_new_metadata(metadataDict)
-    return ebuild_id_list, package_id_list
-
-  def add_new_ebuild_sql(packageDict, new_ebuild_list):
-    #lets have a new cursor for each metod as per best practice
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
-    ebuild_id_list = []
-    package_id_list = []
-    for k, v in packageDict.iteritems():
-      for x in new_ebuild_list:
-	if x == v['ebuild_version_tree']:
-	  params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
-	  v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
-	  v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
-	  v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
-	  v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
-	  v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
-	  v['ebuild_version_metadata_tree'][16]]
-	  cursor.execute(sqlQ, params)
-	  mid = cursor.fetchone()
-	  mid=mid[0]
-	  ebuild_id_list.append(mid[1])
-	  package_id_list.append(mid[0])
-    self.conn.commit()
-    # add_new_metadata(metadataDict)
-    return ebuild_id_list, package_id_list
-
-  def update_active_ebuild(self, package_id, ebuild_version_tree):
-    cursor = self.conn.cursor()
-    sqlQ ="UPDATE ebuilds SET active = 'False', timestamp = now() WHERE package_id = %s AND ebuild_version = %s AND active = 'True'"
-    cursor.execute(sqlQ, (package_id, ebuild_version_tree))
-    self.conn.commit()
-
-  def get_ebuild_id_db(self, build_dict, ebuild_version_checksum_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id FROM ebuilds WHERE ebuild_version = %s AND ebuild_checksum = %s AND package_id = %s'
-    cursor.execute(sqlQ, (build_dict['ebuild_version'], ebuild_version_checksum_tree, build_dict['package_id']))
-    ebuild_id = cursor.fetchone()[0]
-    print ebuild_id
-    if ebuild_id is None:
-      return None
-    return ebuild_id
-
-  sql['SELECT_get_cpv_from_ebuild_id'] = """
-    SELECT category, ebuild_name, ebuild_version
-    FROM packages
-    WHERE id = %s
-    """
-  def get_cpv_from_ebuild_id(self, ebuild_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT package_id FROM ebuild WHERE id = %s'
-    self.cursor.execute(sql, ebuild_id)
-    entries = self.cursor.fetchone()
-    return entries
-
-  def get_cp_from_package_id(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT ARRAY_TO_STRING(ARRAY[category, package_name] , '/') AS cp FROM packages WHERE package_id = %s"
-    cursor.execute(sqlQ, (package_id,))
-    return cursor.fetchone()
-
-  sql['SELECT_get_keyword_id_db'] = """
-    SELECT id_keyword
-    FROM keywords
-    WHERE ARCH = %s AND stable = %s
-    """
-  def get_keyword_id_db(self, arch, stable):
-    sql = self.sql['SELECT_get_keyword_id_db']
-    self.cursor.execute(sql, (arch, stable))
-    entries = self.cursor.fetchone()
-    return entries
-
-  sql['INSERT_add_new_keywords'] = """
-    INSERT INTO keywordsToEbuild
-    (ebuild_id, id_keyword)
-    VALUES  ( %s, %s )
-    """
-  def add_new_keywords(self, ebuild_id, keyword_id):
-      sql = self.sql['INSERT_add_new_keywords']
-      self.cursor.execute(sql, (ebuild_id, keyword_id))
-      self.db.commit()
-    
-  sql['SELECT_have_package_buildqueue'] = """
-    SELECT useflags
-    FROM buildqueue
-    WHERE  ebuild_id = %s  AND config_id = %s
-    """
-  def have_package_buildqueue(self, ebuild_id, config_id):
-    sql = self.sql['SELECT_have_package_buildqueue']
-    params = (ebuild_id[0], config_id)
-    self.cursor.execute(sql, params)
-    entries = self.cursor.fetchone()
-    return entries
-  
-  def add_new_package_buildqueue(self, ebuild_id, config_id, iuse_flags_list, use_enable, message):
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_buildqueue( %s, %s, %s, %s, %s )"
-    if not iuse_flags_list:
-      iuse_flags_list=None
-      use_enable=None
-    params = ebuild_id, unicode(config_id), iuse_flags_list, use_enable, message
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-   
-  sql['SELECT_get_package_id'] = """
-    SELECT package_id
-    FROM packages
-    WHERE category = %s AND package_name = %s
-    """
-  sql['SELECT_get_ebuild_checksum'] = """
-    SELECT ebuild_checksum
-    FROM ebuild
-    WHERE package_id = %s AND ebuild_version = %s
-    """
-  def get_ebuild_checksum(self, package_id, ebuild_version_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT ebuild_checksum FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = TRUE'
-    cursor.execute(sqlQ, (package_id, ebuild_version_tree))
-    entries = cursor.fetchone()
-    if entries is None:
-      return None
-    return entries[0]
-  
-  sql['UPDATE_update_ebuild_db'] = """
-    UPDATE packages
-    SET ebuild_checksum = %s, ebuild_text = %s,
-    depend = %s, rdepend = %s, pdepend = %s, slot = %s, src_url = %s, homepage = %s, license = %s,
-    description = %s, keywords = %s, inherited = %s, iuse = %s, required_use = %s, provide = %s,
-    eapi = %s, properties = %s, defined_phases = %s
-    WHERE ebuild_id = %s
-    """
-  def update_ebuild_sql(self, ebuild_id, ebuild_version_checksum_tree,
-      ebuild_version_metadata_tree, ebuild_version_text):
-    sql = self.sql['UPDATE_update_ebuild_db']
-    params = (ebuild_version_checksum_tree[0],
-      ebuild_version_text, ebuild_version_metadata_tree[0], ebuild_version_metadata_tree[1],
-      ebuild_version_metadata_tree[12], ebuild_version_metadata_tree[2], ebuild_version_metadata_tree[3],
-      ebuild_version_metadata_tree[5], ebuild_version_metadata_tree[6], ebuild_version_metadata_tree[7],
-      ebuild_version_metadata_tree[9], ebuild_version_metadata_tree[10], ebuild_version_metadata_tree[11],
-      ebuild_version_metadata_tree[13], ebuild_version_metadata_tree[14], ebuild_version_metadata_tree[15],
-      ebuild_version_metadata_tree[16], ebuild_id)
-    self.cursor.execute(sql, params)
-    self.db.commit()
-  
-  sql['SELECT_cp_all_db'] = """
-    SELECT CONCAT_WS('/',categories, package)
-    FROM package
-    WHERE active = '1'
-    """
-  def cp_all_db(self):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT package_id FROM packages"
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def add_old_package(self, old_package_list):
-    cursor = self.conn.cursor()
-    mark_old_list = []
-    sqlQ = "UPDATE ebuilds SET active = 'FALSE', timestamp = NOW() WHERE package_id = %s AND active = 'TRUE' RETURNING package_id"
-    for old_package in old_package_list:
-      cursor.execute(sqlQ, (old_package[0],))
-      entries = cursor.fetchone()
-      if entries is not None:
-	mark_old_list.append(entries[0])
-    self.conn.commit()
-    return mark_old_list
-  
-  sql['UPDATE_add_old_categories'] = """
-    UPDATE categories
-    SET active = '0'
-    WHERE categories = %s
-    """
-  def get_old_categories(self, categories_line):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT package_name FROM packages WHERE category = %s"
-    cursor.execute(sqlQ (categories_line))
-    return cursor.fetchone()
-
-  def del_old_categories(self, real_old_categoriess):
-    cursor = self.conn.cursor()
-    sqlQ = 'DELETE FROM categories categories_meta WHERE category = %s'
-    cursor.execute(sqlQ (real_old_categories))
-    self.conn.commit()
-
-  def add_old_ebuild(self, package_id, old_ebuild_list):
-    cursor = self.conn.cursor()
-    sqlQ1 = "UPDATE ebuilds SET active = 'FALSE' WHERE package_id = %s AND ebuild_version = %s"
-    sqlQ2 = "SELECT id FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = 'TRUE'"
-    sqlQ3 = "SELECT queue_id FROM buildqueue WHERE ebuild_id = %s"
-    sqlQ4 = 'DELETE FROM ebuildqueuedwithuses buildqueue WHERE queue_id = %s'
-    for old_ebuild in  old_ebuild_list:
-      cursor.execute(sqlQ2, (package_id, old_ebuild[0]))
-      ebuild_id_list = cursor.fetchall()
-      if ebuild_id_list is not None:
-	for ebuild_id in ebuild_id_list:
-	  cursor.execute(sqlQ3, (ebuild_id))
-	  queue_id_list = cursor.fetchall()
-	  if queue_id_list is not None:
-	    for queue_id in queue_id_list:
-	      cursor.execute(sqlQ4, (queue_id))
-      cursor.execute(sqlQ1, (package_id, old_ebuild[0]))
-    self.conn.commit()
-    
-  sql['SELECT_cp_all_old_db'] = """
-    SELECT CONCAT_WS('/',categories, package)
-    FROM package
-    WHERE active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def cp_all_old_db(self, old_package_id_list):
-    cursor = self.conn.cursor()
-    old_package_list = []
-    for old_package in old_package_id_list:
-      sqlQ = "SELECT package_id FROM ebuilds WHERE package_id = %s AND active = 'FALSE' AND date_part('days', NOW() - timestamp) < 60"
-      cursor.execute(sqlQ, old_package)
-      entries = cursor.fetchone()
-      if entries is None:
-	old_package_list.append(old_package)
-    return old_package_list
-  
-  sql['DELETE_del_old_ebuild'] = """
-    DELETE FROM ebuild
-    WHERE categories = %s AND package = %s AND active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def del_old_ebuild(self, ebuild_old_list_db):
-    cursor = self.conn.cursor()
-    sqlQ1 ='SELECT id FROM ebuilds WHERE ebuild_version = %s'
-    sqlQ2 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    sqlQ3 = 'DELETE FROM qa_problems repoman_problems ebuildbuildwithuses WHERE build_id = %s'
-    sqlQ4 = 'DELETE FROM ebuildhaveskeywords ebuildhavesiuses ebuildhavesrestrictions buildlog WHERE ebuild_id = %s'
-    for ebuild_version in ebuild_old_list_db:
-      cursor.execute(sqlQ1, (ebuild_version))
-      ebuild_id_list = cursor.fetchall()
-      for ebuild_id in ebuild_id_list:
-	cursor.execute(sqlQ2, ebuild_id)
-	build_id_list = cursor.fetchall()
-	for build_id in build_id_list:
-	  cursor.execute(sqlQ3, build_id)
-	cursor.execute(sqlQ4, ebuild_id)
-    self.conn.commit()
-  
-  sql['DELETE_del_old_package'] = """
-    DELETE FROM package
-    WHERE categories = %s AND package = %s AND active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def del_old_package(self, package_id_list):
-    cursor = self.conn.cursor()
-    sqlQ1 = 'SELECT id FROM ebuilds WHERE package_id = %s'
-    sqlQ2 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    sqlQ3 = 'DELETE FROM qa_problems, repoman_problems, ebuildbuildwithuses WHERE build_id = %s'
-    sqlQ4 = 'DELETE FROM ebuildhaveskeywords, ebuildhavesiuses, ebuildhavesrestrictions, buildlog WHERE ebuild_id = %s'
-    sqlQ5 = 'DELETE FROM ebuilds, manifest, package_meta, packages WHERE package_id = %s'
-    for package_id in package_id_list:
-      cursor.execute(sqlQ1, package_id)
-      ebuild_id_list = cursor.fetchall()
-      for ebuild_id in ebuild_id_list:
-	cursor.execute(sqlQ2, ebuild_id)
-	build_id_list = cursor.fetchall()
-	for build_id in build_id_list:
-	  cursor.execute(sqlQ3, build_id)
-	cursor.execute(sqlQ4, ebuild_id)
-      cursor.execute(sqlQ5, package_id)
-    self.conn.commit()
-
-  sql['DELETE_del_old_categories'] = """
-    DELETE FROM categories
-    WHERE categories = %s AND active = '0' AND DATEDIFF(NOW(), timestamp) > 60
-    """
-  def del_old_package(self, categories):
-    sql = self.sql['DELETE_del_old_categories']
-    self.cursor.execute(sql, (categories))
-    self.db.commit()
-
-  def cp_list_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT ebuild_version FROM ebuilds WHERE active = 'TRUE' AND package_id = %s"
-    cursor.execute(sqlQ, (package_id))
-    return cursor.fetchall()
-
-  def cp_list_old_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ ="SELECT id, ebuild_version FROM ebuilds WHERE active = 'FALSE' AND package_id = %s AND date_part('days', NOW() - timestamp) > 60"
-    cursor.execute(sqlQ, package_id)
-    return cursor.fetchall()
-
-  def add_qa_repoman(self, ebuild_id_list, qa_error, packageDict, config_id):
-    ebuild_i = 0
-    cursor = self.conn.cursor()
-    for k, v in packageDict.iteritems():
-      ebuild_id = ebuild_id_list[ebuild_i]
-      sqlQ = 'INSERT INTO buildlog (ebuild_id, config, error_summary, timestamp ) VALUES  ( %s, %s, %s, now() ) RETURNING build_id'
-      if v['ebuild_error'] != [] or qa_error != []:
-	if v['ebuild_error'] != [] or qa_error == []:
-	  summary = "Repoman"
-	elif v['ebuild_error'] == [] or qa_error != []:
-	  summary = "QA"
-	else:
-	  summary = "QA:Repoman"
-	params = (ebuild_id, config_id, summary)
-	cursor.execute(sqlQ, params)
-	build_id = cursor.fetchone()
-	if v['ebuild_error'] != []:
-	  sqlQ = 'INSERT INTO repoman_problems (problem, build_id ) VALUES ( %s, %s )'
-	  for x in v['ebuild_error']:
-	    params = (x, build_id)
-	    cursor.execute(sqlQ, params)
-	if qa_error != []:
-	  sqlQ = 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s, %s )'
-	  for x in qa_error:
-	    params = (x, build_id)
-	    cursor.execute(sqlQ, params)
-      ebuild_i = ebuild_i +1
-    self.conn.commit()
-
-  sql['SELECT_qa_repoman'] = """
-    SELECT categories, package, ebuild_version, qa, repoman, config, hosts
-    FROM buildlog
-    WHERE ebuild = %sAND build = '' AND config_id = %s
-    """
-  def get_qa_repoman(self, ebuild_id, config_id):
-	sql = self.sql['SELECT_qa_repoman']
-	params = (ebuild_id, config_id)
-	self.cursor.execute(sql, params)
-	entries = self.cursor.fetchall()
-	return entries
-  
-  sql['DELETE_del_qa_repoman'] = """
-    DELETE FROM buildlog
-    WHERE ebuild_id AND build = '' AND config_id = %s
-    """
-  def del_qa_repoman(self, ebuild_id, config_id):
-    sql = self.sql['DELETE_del_qa_repoman']
-    self.cursor.execute(sql, (ebuild_id, config_id))
-    self.db.commit()
-
-  sql['UPDATE_update_qa_repoman'] = """
-    UPDATE buildlog
-    SET qa = %s, repoman = %s
-    WHERE ebuild_id = %s AND build = '' AND config_id = %s
-    """
-  def update_qa_repoman(self, ebuild_id, qa_error, repoman_error, config_id):
-    sql = self.sql['UPDATE_update_qa_repoman']
-    self.cursor.execute(sql, (qa_error, repoman_error, ebuild_id, config_id))
-    self.db.commit()
-
-  def get_arch_db(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT keyword FROM keywords WHERE keyword = %s'
-    cursor.execute(sqlQ, ('ppc',))
-    return cursor.fetchone()
-  
-  def add_new_arch_db(self, arch_list):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO keywords (keyword) VALUES  ( %s )'
-    for arch in arch_list:
-      cursor.execute(sqlQ, (arch,))
-    self.conn.commit()
-
-  sql['INSERT_add_new_restriction_db'] = """
-      INSERT INTO ebuildHavesRestrictions
-      (ebuild_id, restriction)
-      VALUES  ( %s, %s )
-    """
-
-  def closeconnection(self):
-    self.conn.close()
-
-class PgSQLPackageDB(SQLPackageDatabase):
-    """override for MySQL backend"""
-
-    syntax_placeholder = "%s"
-    
-    def __init__(self, config=None):
-        # Do not complain about correct usage of ** magic
-        # pylint: disable-msg=W0142
-        SQLPackageDatabase.__init__(self)
-
-        if config is None or 'database' not in config:
-            print "No configuration available!"
-            sys.exit(1)
-
-        try:
-            import psycopg2
-        except ImportError:
-            print "Please install a recent version of dev-python/psycopg for Python"
-            sys.exit(1)
-
-        self.conn = psycopg2.connect(**config)
-        

diff --git a/buildhost/todo.txt b/buildhost/todo.txt
deleted file mode 100644
index 7e97b9b..0000000
--- a/buildhost/todo.txt
+++ /dev/null
@@ -1,11 +0,0 @@
-Updatedb
-1. fix that we support diffrent hosts.
-2. fix the manifest test.
-3 add a repman test on the ebuild file
-4. if it fas a error on the old ebuild with repoman or manifest and it is fixed
-    remove the error in the db
-
-Buildhost
-1 fix that we support diffrent hosts
-2. add test for manifest and digest files
-3. 
\ No newline at end of file

diff --git a/buildhost/updatedb/__init__.py b/buildhost/updatedb/__init__.py
deleted file mode 100644
index e69de29..0000000

diff --git a/buildhost/updatedb/core.py b/buildhost/updatedb/core.py
deleted file mode 100644
index aeaa865..0000000
--- a/buildhost/updatedb/core.py
+++ /dev/null
@@ -1,791 +0,0 @@
-# -*- coding: utf-8 -*-
-# written 2010 by Magnus Granberg <zorry@gentoo.org>
-# License: GPL-2
-
-"""core module"""
-import codecs
-import sys
-import re
-import os
-import portage
-from portage import os, _encodings, _unicode_decode
-from portage.exception import DigestException, FileNotFound, ParseError, PermissionDenied
-from portage.localization import _
-from portage.manifest import Manifest
-from portage.output import EOutput
-from portage import _unicode_encode
-from _emerge.Package import Package
-from _emerge.RootConfig import RootConfig
-from repoman.checks import run_checks
-import hashlib
-import errno
-
-class get_conf_settings(object):
-  # open the /etc/buildhost/buildhost.conf file and get the needed
-  # settings for the database
-  def get_conf_settings_from_file():
-    configfile = "/etc/buildhost/buildhost.conf"
-    open_conffile = open(configfile, 'r')
-    dataLines = open_conffile.readlines()
-    for line in dataLines:
-      element = line.split('=')
-      if element[0] == 'SQLBACKEND':		# Databas backend (mysql)
-	GetSqlBackend = element[1]
-      if element[0] == 'SQLDB':				# Database
-	GetSqlDB = element[1]
-      if element[0] == 'SQLHOST':			# Host
-	GetSqlHost = element[1]
-      if element[0] == 'SQLUSER':			# User
-	GetSqlUser = element[1]
-      if element[0] == 'SQLPASSWD':			# Password
-	GetSqlPasswd = element[1]
-      if element[0] == 'BUILDHOSTROOT':	# Buildhost root
-	GetBuildhostRoot = element[1]
-    open_conffile.close()
-    return GetSqlBackend.rstrip('\n'), GetSqlDB.rstrip('\n'), GetSqlHost.rstrip('\n'), \
-      GetSqlUser.rstrip('\n'), GetSqlPasswd.rstrip('\n'), GetBuildhostRoot.rstrip('\n')
-
-  Get_BuildHost_settings = get_conf_settings_from_file()
-  SetSqlBackend = Get_BuildHost_settings[0]
-  SetSqlDB = Get_BuildHost_settings[1]
-  SetSqlHost = Get_BuildHost_settings[2]
-  SetSqlUser = Get_BuildHost_settings[3]
-  SetSqlPasswd = Get_BuildHost_settings[4]
-  SetBuildhostRoot = Get_BuildHost_settings[5]
-
-def init_sql_backend():
-  from sqlbackend import DatabaseConfig		# import DatebaseConfig
-  database = None
-  
-  # Setup the database backent to use mysql
-  if DatabaseConfig.mode == 'pgsql':
-   from sqlbackend import PgSQLPackageDB
-   database = PgSQLPackageDB(DatabaseConfig.settings['sql_pgsql'])
-  return database
-
-def  get_file_text(filename):
-  # Return the filename contents
-  try:
-    textfile = open(filename)
-  except IOError, oe:
-    if oe.errno not in (errno.ENOENT, ):
-      raise
-      return "No file", filename
-
-  text = ""
-  for line in textfile:
-    text += unicode(line, 'utf-8')
-  textfile.close()
-  return text
-
-def  get_ebuild_text(filename):
-  """Return the ebuild contents"""
-  try:
-    ebuildfile = open(filename)
-  except IOError, oe:
-    if oe.errno not in (errno.ENOENT, ):
-      raise
-      return "No Ebuild file there"
-  text = ""
-  dataLines = ebuildfile.readlines()
-  for i in dataLines:
-      text = text + i + " "
-  line2 = dataLines[2]
-  field = line2.split(" ")
-  ebuildfile.close()
-  try:
-    cvs_revision = field[3]
-  except:
-    cvs_revision = ''
-  return text, cvs_revision
-
-def check_make_conf(database):
-  # FIXME: mark any config updating true in the db when updating the configs
-  # Get the config list
-  config_list_all = database.get_config_list_all()
-  print "Checking configs for changes and errors"
-  configsDict = {}
-  for config_id in config_list_all:
-    attDict={}
-    # Set the config dir
-    check_config_dir = get_conf_settings.SetBuildhostRoot + "config/" + config_id[0] + "/"
-    make_conf_file = check_config_dir + "etc/portage/make.conf"
-    # Check if we can open the file and close it
-    # Check if we have some error in the file (portage.util.getconfig)
-    # Check if we envorment error with the config (settings.validate)
-    try:
-      open_make_conf = open(make_conf_file)
-      open_make_conf.close()
-      portage.util.getconfig(make_conf_file, tolerant=0, allow_sourcing=False, expand=True)
-      settings = portage.config(config_root = check_config_dir)
-      settings.validate()
-      # With errors we update the db on the config and disable the config
-    except Exception as e:
-      attDict['config_error'] = e
-      attDict['active'] = 'False'
-      print "Fail", config_id[0]
-    else:
-      attDict['config_error'] = ''
-      attDict['active'] = 'True'
-      print "Pass", config_id[0]
-    # Get the checksum of make.conf
-    make_conf_checksum_tree = portage.checksum.sha256hash(make_conf_file)[0]
-    # Check if we have change the make.conf and update the db with it
-    attDict['make_conf_text'] = get_file_text(make_conf_file)
-    attDict['make_conf_checksum_tree'] = make_conf_checksum_tree
-    configsDict[config_id]=attDict
-  database.update__make_conf(configsDict)
-  print "Updated configurtions"
-
-def init_portage_settings(database):
-  # check config setup
-  check_make_conf(database)
-  print "Check configs done"
-  # Get default config from the configs table  and default_config=1
-  config_id = database.get_default_config()			# HostConfigDir = table configs id
-  default_config_root = get_conf_settings.SetBuildhostRoot +"config/" + config_id[0] + "/"
-  # Set config_root (PORTAGE_CONFIGROOT)  to default_config_root
-  settings = portage.config(config_root = default_config_root)
-  print "Setting default config to:", config_id[0]
-  return settings
-  
-def get_ebuild_metadata(portdb, ebuild_line):
-  # Get the auxdbkeys infos for the ebuild
-  try:
-    ebuild_auxdb_list = portdb.aux_get(ebuild_line, portage.auxdbkeys)
-  except:
-    ebuild_auxdb_list = []
-  else:
-    for i in range(len(ebuild_auxdb_list)):
-      if ebuild_auxdb_list[i] == '':
-	ebuild_auxdb_list[i] = ''
-  return ebuild_auxdb_list
-
-def change_config(config_id):
-  # Change config_root  config_id = table configs.id
-  BuildHostConfig_root = get_conf_settings.SetBuildhostRoot +"config/" + config_id + "/"
-  settings = portage.config(config_root = BuildHostConfig_root)
-  return settings
-
-def get_iuse(portdb, cpv):
-	"""Gets the current IUSE flags from the tree
-
-	To be used when a gentoolkit package object is not needed
-	@type: cpv: string 
-	@param cpv: cat/pkg-ver
-	@rtype list
-	@returns [] or the list of IUSE flags
-	"""
-	return portdb.aux_get(cpv, ["IUSE"])[0].split()
-	
-def reduce_flag(flag):
-	"""Absolute value function for a USE flag
-
-	@type flag: string
-	@param flag: the use flag to absolute.
-	@rtype: string
-	@return absolute USE flag
-	"""
-	if flag[0] in ["+","-"]:
-		return flag[1:]
-	else:
-		return flag
-
-
-def reduce_flags(the_list):
-	"""Absolute value function for a USE flag list
-
-	@type the_list: list
-	@param the_list: the use flags to absolute.
-	@rtype: list
-	@return absolute USE flags
-	"""
-	r=[]
-	for member in the_list:
-		r.append(reduce_flag(member))
-	return r
-
-
-def filter_flags(settings, use, use_expand_hidden, usemasked, useforced):
-	"""Filter function to remove hidden or otherwise not normally
-	visible USE flags from a list.
-
-	@type use: list
-	@param use: the USE flag list to be filtered.
-	@type use_expand_hidden: list
-	@param  use_expand_hidden: list of flags hidden.
-	@type usemasked: list
-	@param usemasked: list of masked USE flags.
-	@type useforced: list
-	@param useforced: the forced USE flags.
-	@rtype: list
-	@return the filtered USE flags.
-	"""
-	# clean out some environment flags, since they will most probably
-	# be confusing for the user
-	for f in use_expand_hidden:
-		f=f.lower() + "_"
-		for x in use:
-			if f in x:
-				use.remove(x)
-	# clean out any arch's
-	archlist = settings["PORTAGE_ARCHLIST"].split()
-	for a in use[:]:
-		if a in archlist:
-			use.remove(a)
-	# dbl check if any from usemasked  or useforced are still there
-	masked = usemasked + useforced
-	for a in use[:]:
-		if a in masked:
-			use.remove(a)
-	return use
-
-def get_all_cpv_use(settings, portdb, cpv):
-	"""Uses portage to determine final USE flags and settings for an emerge
-
-	@type cpv: string
-	@param cpv: eg cat/pkg-ver
-	@rtype: lists
-	@return  use, use_expand_hidden, usemask, useforce
-	"""
-	use = None
-	settings.unlock()
-	try:
-		settings.setcpv(cpv, use_cache=None, mydb=portdb)
-		use = settings['PORTAGE_USE'].split()
-		use_expand_hidden = settings["USE_EXPAND_HIDDEN"].split()
-		usemask = list(settings.usemask)
-		useforce =  list(settings.useforce)
-	except KeyError:
-		settings.reset()
-		settings.lock()
-		return [], [], [], []
-	# reset cpv filter
-	settings.reset()
-	settings.lock()
-	return use, use_expand_hidden, usemask, useforce
-	
-def get_flags(settings, portdb, cpv):
-	"""Retrieves all information needed to filter out hidden, masked, etc.
-	USE flags for a given package.
-
-	@type cpv: string
-	@param cpv: eg. cat/pkg-ver
-	@type final_setting: boolean
-	@param final_setting: used to also determine the final
-		enviroment USE flag settings and return them as well.
-	@rtype: list or list, list
-	@return IUSE or IUSE, final_flags
-	"""
-	final_use, use_expand_hidden, usemasked, useforced = get_all_cpv_use(settings, portdb, cpv)
-	iuse_flags = filter_flags(settings, get_iuse(portdb, cpv), use_expand_hidden, usemasked, useforced)
-	#flags = filter_flags(use_flags, use_expand_hidden, usemasked, useforced)
-	final_flags = filter_flags(settings, final_use, use_expand_hidden, usemasked, useforced)
-	return iuse_flags, final_flags
-
-def config_match_ebuild(database, categories, package):
-  config_cpv_listDict ={}
-  # Get a list from table configs with default_config=Fales and active = True
-  config_list_all  = database.get_config_list()
-  if config_list_all is ():
-    return config_cpv_list
-  for i in config_list_all:
-    config_id = i[0]
-    # Change config
-    settings2 = change_config(config_id)
-    portdb2 = portage.portdbapi(mysettings=settings2)
-    # Get cpv from portage with the config
-    ebuild_match_list = portdb2.match(categories + "/" + package, use_cache=1)
-    latest_ebuild = ""
-    latest_ebuild_version = unicode("")
-    # Check if could get cpv from portage
-    # and get the lastes ebuild on that config
-    if ebuild_match_list != []:
-      for ebuild_match_line in ebuild_match_list:
-	latest_ebuild = ebuild_match_line
-      # Get the version of cpv
-      latest_ebuild_version = portage.versions.cpv_getversion(latest_ebuild)
-      # Get the iuse and use flags for that config
-      iuse_flags_list, final_use_list = get_flags(settings2, portdb2, latest_ebuild)
-      iuse_flags_list2 = []
-      for iuse_line in iuse_flags_list:
-	iuse_flags_list2.append(reduce_flag(iuse_line))
-      # Dic the needed info
-      attDict = {}
-      attDict = {}
-      attDict['ebuild_version'] = latest_ebuild_version
-      attDict['useflags'] = final_use_list
-      attDict['iuse'] = iuse_flags_list2
-      attDict['package'] = package
-      attDict['categories'] = categories
-      config_cpv_listDict[config_id] = attDict
-    # Clean some cache
-    portdb2.close_caches()
-    portage.portdbapi.portdbapi_instances.remove(portdb2)
-  return config_cpv_listDict
-		
-def add_new_ebuild_buildquery_db(database, ebuild_id_list, packageDict, config_cpv_listDict):
-  # Get the needed info from packageDict and config_cpv_listDict and put that in buildqueue
-  # Only add it if ebuild_version in packageDict and config_cpv_listDict match
-  if config_cpv_listDict != {}:
-    message = None
-    # Unpack config_cpv_listDict
-    for k, v in config_cpv_listDict.iteritems():
-      config_id = k
-      latest_ebuild_version = v['ebuild_version']
-      iuse_flags_list = list(set(v['iuse']))
-      use_enable= v['useflags']
-      use_disable = list(set(iuse_flags_list).difference(set(use_enable)))
-      # Make a dict with enable and disable use flags for ebuildqueuedwithuses
-      use_flagsDict = {}
-      for x in use_enable:
-	use_flagsDict[x] = True
-      for x in use_disable:
-	use_flagsDict[x] = False
-      # Unpack packageDict
-      i = 0
-      for k, v in packageDict.iteritems():
-	ebuild_id = ebuild_id_list[i]
-	use_flags_list = []
-	use_enable_list = []
-	for u, s in  use_flagsDict.iteritems():
-	  use_flags_list.append(u)
-	  use_enable_list.append(s)
-	# Comper ebuild_version and add the ebuild_version to buildqueue
-	if portage.vercmp(v['ebuild_version_tree'], latest_ebuild_version) == 0:
-	  database.add_new_package_buildqueue(ebuild_id, config_id, use_flags_list, use_enable_list, message)
-	  print "B",  config_id, v['categories'] + "/" + v['package'] + "-" + latest_ebuild_version, "USE:", use_enable	# B = Build config cpv use-flags
-	i = i +1
-
-# Copy of portage.digestcheck() but without the writemsg() stuff
-def digestcheck(mysettings, pkgdir):
-	"""
-	Verifies checksums. Assumes all files have been downloaded.
-	@rtype: int
-	@returns: 1 on success and 0 on failure
-	"""
-	myfiles = []
-	justmanifest = None
-	strict=True
-	mysettings['PORTAGE_QUIET'] = '1'
-
-	if mysettings.get("EBUILD_SKIP_MANIFEST") == "1":
-		return 1
-	manifest_path = os.path.join(pkgdir, "Manifest")
-	if not os.path.exists(manifest_path):
-		if strict:
-			return 0
-		else:
-			return 1
-	mf = Manifest(pkgdir, mysettings["DISTDIR"])
-	manifest_empty = True
-	for d in mf.fhashdict.values():
-		if d:
-			manifest_empty = False
-			break
-	if manifest_empty:
-		if strict:
-			return 0
-		else:
-			return 1
-	eout = EOutput()
-	eout.quiet = mysettings.get("PORTAGE_QUIET", None) == "1"
-	try:
-		if strict and "PORTAGE_PARALLEL_FETCHONLY" not in mysettings:
-			eout.ebegin(_("checking ebuild checksums ;-)"))
-			mf.checkTypeHashes("EBUILD")
-			eout.eend(0)
-			eout.ebegin(_("checking auxfile checksums ;-)"))
-			mf.checkTypeHashes("AUX")
-			eout.eend(0)
-			eout.ebegin(_("checking miscfile checksums ;-)"))
-			mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
-			eout.eend(0)
-		for f in myfiles:
-			eout.ebegin(_("checking %s ;-)") % f)
-			ftype = mf.findFile(f)
-			if ftype is None:
-				eout.eend(1)
-				return 0
-			mf.checkFileHashes(ftype, f)
-			eout.eend(0)
-	except FileNotFound as e:
-		eout.eend(1)
-		return 0
-	except DigestException as e:
-		eout.eend(1)
-		return 0
-	# Make sure that all of the ebuilds are actually listed in the Manifest.
-	for f in os.listdir(pkgdir):
-		pf = None
-		if f[-7:] == '.ebuild':
-			pf = f[:-7]
-		if pf is not None and not mf.hasFile("EBUILD", f):
-			if strict:
-				return 0
-	""" epatch will just grab all the patches out of a directory, so we have to
-	make sure there aren't any foreign files that it might grab."""
-	filesdir = os.path.join(pkgdir, "files")
-
-	for parent, dirs, files in os.walk(filesdir):
-		try:
-			parent = _unicode_decode(parent,
-				encoding=_encodings['fs'], errors='strict')
-		except UnicodeDecodeError:
-			parent = _unicode_decode(parent,
-				encoding=_encodings['fs'], errors='replace')
-			if strict:
-				return 0
-			continue
-		for d in dirs:
-			d_bytes = d
-			try:
-				d = _unicode_decode(d,
-					encoding=_encodings['fs'], errors='strict')
-			except UnicodeDecodeError:
-				d = _unicode_decode(d,
-					encoding=_encodings['fs'], errors='replace')
-				if strict:
-					return 0
-				dirs.remove(d_bytes)
-				continue
-			if d.startswith(".") or d == "CVS":
-				dirs.remove(d_bytes)
-		for f in files:
-			try:
-				f = _unicode_decode(f,
-					encoding=_encodings['fs'], errors='strict')
-			except UnicodeDecodeError:
-				f = _unicode_decode(f,
-					encoding=_encodings['fs'], errors='replace')
-				if f.startswith("."):
-					continue
-				f = os.path.join(parent, f)[len(filesdir) + 1:]
-				if strict:
-					return 0
-				continue
-			if f.startswith("."):
-				continue
-			f = os.path.join(parent, f)[len(filesdir) + 1:]
-			file_type = mf.findFile(f)
-			if file_type != "AUX" and not f.startswith("digest-"):
-				if strict:
-					return 0
-	return 1
-
-def check_repoman(settings, portdb, database, categories, package, ebuild_version_tree, config_id):
-  # We run repoman run_checks on the ebuild
-  pkgdir = settings['PORTDIR'] + "/" + categories + "/" + package
-  full_path = pkgdir + "/" + package + "-" + ebuild_version_tree + ".ebuild"
-  cpv = categories + "/" + package + "-" + ebuild_version_tree
-  root = '/'
-  trees = {
-  root : {'porttree' : portage.portagetree(root, settings=settings)}
-  }
-  root_config = RootConfig(settings, trees[root], None)
-  allvars = set(x for x in portage.auxdbkeys if not x.startswith("UNUSED_"))
-  allvars.update(Package.metadata_keys)
-  allvars = sorted(allvars)
-  myaux = dict(zip(allvars, portdb.aux_get(cpv, allvars)))
-  pkg = Package(cpv=cpv, metadata=myaux, root_config=root_config)
-  fails = []
-  try:
-    # All ebuilds should have utf_8 encoding.
-    f = codecs.open(_unicode_encode(full_path,
-      encoding=_encodings['fs'], errors='strict'),
-    mode='r', encoding=_encodings['repo.content'])
-    try:
-      for check_name, e in run_checks(f, pkg):
-	fails.append(check_name + ": " + e)
-    finally:
-      f.close()
-  except UnicodeDecodeError:
-    # A file.UTF8 failure will have already been recorded above.
-    pass
-  # fails will have a list with repoman errors
-  return fails
-
-def get_packageDict(pkgdir, ebuild_line, settings, portdb, database, categories, package, config_id):
-  attDict = {}
-  ebuild_version_tree = portage.versions.cpv_getversion(ebuild_line)
-  ebuild_version_checksum_tree = portage.checksum.sha256hash(pkgdir + "/" + package + "-" + ebuild_version_tree + ".ebuild")[0]
-  ebuild_version_text = get_ebuild_text(pkgdir + "/" + package + "-" + ebuild_version_tree + ".ebuild")
-  repoman_error = check_repoman(settings, portdb, database, categories, package, ebuild_version_tree, config_id)
-  ebuild_version_metadata_tree = get_ebuild_metadata(portdb, ebuild_line)
-  # if there some error to get the metadata we add rubish to the 
-  # ebuild_version_metadata_tree and set ebuild_version_checksum_tree to 0
-  # so it can be updated next time we update the db
-  if ebuild_version_metadata_tree  == []:
-    ebuild_version_metadata_tree = ['','','','','','','','','','','','','','','','','','','','','','','','','']
-    ebuild_version_checksum_tree = ['0']
-  # add the ebuild to the dict packages
-  attDict['categories'] = categories
-  attDict['package'] = package
-  attDict['ebuild_version_tree'] = ebuild_version_tree
-  attDict['ebuild_version_checksum_tree']= ebuild_version_checksum_tree
-  attDict['ebuild_version_metadata_tree'] = ebuild_version_metadata_tree
-  attDict['ebuild_version_text'] = ebuild_version_text[0]
-  attDict['ebuild_version_revision'] = ebuild_version_text[1]
-  attDict['ebuild_error'] = repoman_error
-  return attDict
-
-def get_metadataDict(packageDict, ebuild_id_list):
-  # Make the metadataDict from packageDict
-  ebuild_i = 0
-  metadataDict ={}
-  for k, v in packageDict.iteritems():
-    attDict = {}
-    metadata_restrictions = []
-    for i in v['ebuild_version_metadata_tree'][4].split():
-      metadata_restrictions.append(i)
-    metadata_keyword = []
-    for i in v['ebuild_version_metadata_tree'][8].split():
-      metadata_keyword.append(i)
-    metadata_iuse = []
-    for i in v['ebuild_version_metadata_tree'][10].split():
-      metadata_iuse.append(i)
-    attDict['restrictions'] = metadata_restrictions
-    attDict['keyword'] = metadata_keyword
-    attDict['iuse'] =  metadata_iuse
-    metadataDict[ebuild_id_list[ebuild_i]] = attDict
-    ebuild_i = ebuild_i +1
-  return metadataDict
-
-def get_package_metadataDict(pkgdir, package):
-  # Make package_metadataDict
-  attDict = {}
-  package_metadataDict = {}
-  changelog_checksum_tree = portage.checksum.sha256hash(pkgdir + "/ChangeLog")
-  changelog_text_tree = get_file_text(pkgdir + "/ChangeLog")
-  metadata_xml_checksum_tree = portage.checksum.sha256hash(pkgdir + "/metadata.xml")
-  metadata_xml_text_tree = get_file_text(pkgdir + "/metadata.xml")
-  attDict['changelog_checksum'] =  changelog_checksum_tree[0]
-  attDict['changelog_text'] =  changelog_text_tree
-  attDict['metadata_xml_checksum'] =  metadata_xml_checksum_tree[0]
-  attDict[' metadata_xml_text'] =  metadata_xml_text_tree
-  package_metadataDict[package] = attDict
-  return package_metadataDict
-
-def add_new_package_db(settings, portdb, database, categories, package):
-  # add new categories package ebuild to tables package and ebuilds
-  print "N", categories + "/" + package				# N = New Package
-  pkgdir = settings['PORTDIR'] + "/" + categories + "/" + package		# Get PORTDIR + cp
-  categories_dir = settings['PORTDIR'] + "/" + categories + "/"
-  # Get the ebuild list for cp
-  ebuild_list_tree = portdb.cp_list((categories + "/" + package), use_cache=1, mytree=None)
-  config_cpv_listDict = config_match_ebuild(database, categories, package)
-  config_id  = database.get_default_config()[0]
-  packageDict ={}
-  for ebuild_line in sorted(ebuild_list_tree):
-    # Make the needed packageDict
-    packageDict[ebuild_line] = get_packageDict(pkgdir, ebuild_line, settings, portdb, database, categories, package, config_id)
-  # Add the ebuild to db
-  return_id = database.add_new_package_sql(packageDict)
-  ebuild_id_list = return_id[0]
-  package_id_list = return_id[1]
-  package_id = package_id_list[0]
-  # Add the manifest file to db
-  manifest_checksum_tree = portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
-  get_manifest_text = get_file_text(pkgdir + "/Manifest")
-  database.add_new_manifest_sql(package_id, get_manifest_text, manifest_checksum_tree)
-  # Add metadataDict to db
-  metadataDict = get_metadataDict(packageDict, ebuild_id_list)
-  database.add_new_metadata(metadataDict)
-  # Add any qa and repoman erro for the ebuild to buildlog
-  qa_error = []
-  if not digestcheck(settings, pkgdir):
-    qa_error.append("Manifest: Error in manifest file.")
-    print "QA:", categories + "/" + package, qa_error
-  database.add_qa_repoman(ebuild_id_list, qa_error, packageDict, config_id)
-  # Add the ebuild to the buildqueru table if needed
-  add_new_ebuild_buildquery_db(database, ebuild_id_list, packageDict, config_cpv_listDict)
-  # Add some checksum on some files
-  package_metadataDict = get_package_metadataDict(pkgdir, package)
-  database.add_new_package_metadata(package_id, package_metadataDict)
-  return package_id
-
-def mark_old_ebuild_db(portdb, database, categories, package, package_id, ebuild_list_tree):
-  # Get ebuild list on categories, package in the db
-  ebuild_list_db = database.cp_list_db(package_id)
-  # Check if don't have the ebuild in the tree
-  # Add it to the no active list
-  old_ebuild_list = []
-  for ebuild_line in ebuild_list_db:
-    ebuild_line_db = categories + "/" + package + "-" + ebuild_line[0]
-    if not ebuild_line_db in ebuild_list_tree:
-      old_ebuild_list.append(ebuild_line)
-    # Set no active on ebuilds in the db that no longer in tree
-    if  old_ebuild_list != []:
-      for old_ebuild in  old_ebuild_list:
-	print "O", categories + "/" + package + "-" + old_ebuild[0]
-      database.add_old_ebuild(package_id, old_ebuild_list)
-  # Check if we have older no activ ebuilds then 60 days
-  ebuild_old_list_db = database.cp_list_old_db(package_id)
-  # Delete older ebuilds in the db
-  if ebuild_old_list_db != []:
-    for del_ebuild_old in ebuild_old_list_db:
-      print "D", categories + "/" + package + "-" + del_ebuild_old[1]
-    database.del_old_ebuild(ebuild_old_list_db)
-
-def update_package_db(settings, portdb, database, categories, package, package_id):
-  # Update the categories and package with new info
-  pkgdir = settings['PORTDIR'] + "/" + categories + "/" + package		# Get PORTDIR with cp
-  # Get the checksum from the file in portage tree
-  manifest_checksum_tree = portage.checksum.sha256hash(pkgdir + "/Manifest")[0]
-  # Get the checksum from the db in package table
-  manifest_checksum_db = database.get_manifest_db(package_id)[0]
-  # if we have the same checksum return else update the package
-  ebuild_list_tree = portdb.cp_list((categories + "/" + package), use_cache=1, mytree=None)
-  if manifest_checksum_tree != manifest_checksum_db:
-    print "U", categories + "/" + package		# U = Update
-    # Get the text in Manifest and update it
-    get_manifest_text = get_file_text(pkgdir + "/Manifest")
-    database.update_manifest_sql(package_id, get_manifest_text, manifest_checksum_tree)
-    # Get package_metadataDict and update the db with it
-    package_metadataDict = get_package_metadataDict(pkgdir, package)
-    database.update_new_package_metadata(package_id, package_metadataDict)
-    # Get config_cpv_listDict
-    config_cpv_listDict = config_match_ebuild(database, categories, package)
-    config_id  = database.get_default_config()
-    packageDict ={}
-    for ebuild_line in sorted(ebuild_list_tree):
-      old_ebuild_list = []
-      # split out ebuild version
-      ebuild_version_tree = portage.versions.cpv_getversion(ebuild_line)
-      # Get the checksum of the ebuild in tree and db
-      ebuild_version_checksum_tree = portage.checksum.sha256hash(pkgdir + "/" + package + "-" + ebuild_version_tree + ".ebuild")[0]
-      ebuild_version_manifest_checksum_db = database.get_ebuild_checksum(package_id, ebuild_version_tree)
-      # Check if the checksum have change
-      if ebuild_version_manifest_checksum_db is None or ebuild_version_checksum_tree != ebuild_version_manifest_checksum_db:
-	# Get packageDict for ebuild
-	packageDict[ebuild_line] = get_packageDict(pkgdir, ebuild_line, settings, portdb, database, categories, package, config_id)
-	if ebuild_version_manifest_checksum_db is None:
-	  print "N", categories + "/" + package + "-" + ebuild_version_tree	# N = New ebuild
-	else:
-	  print "U", categories + "/" + package + "-" + ebuild_version_tree	# U = Updated ebuild
-	  # Fix so we can use add_new_package_sql(packageDict) to update the ebuilds
-	  old_ebuild_list.append(ebuild_version_tree)
-	  database.add_old_ebuild(package_id, old_ebuild_list)
-	  database.update_active_ebuild(package_id, ebuild_version_tree)
-    # Use packageDictand and metadataDict to update the db
-    return_id = database.add_new_package_sql(packageDict)
-    ebuild_id_list = return_id[0]
-    metadataDict = get_metadataDict(packageDict, ebuild_id_list)
-    database.add_new_metadata(metadataDict)
-    # Add any qa and repoman erros to buildlog
-    qa_error = []
-    if not digestcheck(settings, pkgdir):
-      qa_error.append("Manifest: Error in manifest file.")
-      print "QA:", categories + "/" + package, qa_error
-    database.add_qa_repoman(ebuild_id_list, qa_error, packageDict, config_id)
-    # Add the ebuild to the buildqueru table if needed
-    add_new_ebuild_buildquery_db(database, ebuild_id_list, packageDict, config_cpv_listDict)
-  # Mark or remove any old ebuilds
-  mark_old_ebuild_db(portdb, database, categories, package, package_id, sorted(ebuild_list_tree))
-
-def update_categories_db(settings, database, categories):
-  # Update categories_meta in the db
-  categories_dir = settings['PORTDIR'] + "/" + categories + "/"
-  categories_metadata_xml_checksum_tree = portage.checksum.sha256hash(categories_dir + "metadata.xml")[0]
-  categories_metadata_xml_text_tree = get_file_text(categories_dir + "metadata.xml")
-  categories_metadata_xml_checksum_db = database.get_categories_checksum_db(categories)
-  if categories_metadata_xml_checksum_db is None:
-    database.add_new_categories_meta_sql(categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree)
-  elif categories_metadata_xml_checksum_db != categories_metadata_xml_checksum_tree:
-    database.update_categories_meta_sql(categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree)
-
-def mark_old_package_db(database, package_id_list_tree):
-  # Get categories/package list from db
-  package_list_db = database.cp_all_db()
-  old_package_id_list = []
-  # Check if don't have the categories/package in the tree
-  # Add it to the no active list
-  for package_line in package_list_db:
-    if not package_line in package_id_list_tree:
-      old_package_id_list.append(package_line)
-  # Set no active on categories/package and ebuilds in the db that no longer in tree
-  if old_package_id_list != []:
-    mark_old_list = database.add_old_package(old_package_id_list)
-    if mark_old_list != []:
-      for x in mark_old_list:
-	element = database.get_cp_from_package_id(x)
-	print "O", element[0]
-    # Check if we have older no activ categories/package then 60 days
-    del_package_id_old_list = database.cp_all_old_db(old_package_id_list)
-  # Delete older  categories/package and ebuilds in the db
-  if del_package_id_old_list != []:
-    for i in del_package_id_old_list:
-	element = database.get_cp_from_package_id(i)
-	print "D", element
-    database.del_old_package(del_package_id_old_list)
-
-def mark_old_categories_db(settings, database):
-  # Get categories list from the tree and db
-  categories_list_tree = settings.categories
-  categories_list_db = database.get_categories_db()
-  categories_old_list = []
-  # Check if don't have the categories in the tree
-  # Add it to the no active list
-  for categories_line in categories_list_db:
-    if not categories_line[0] in categories_list_tree:
-      old_c = database.get_old_categories(categories_line[0])
-      if old_c is not None:
-	categories_old_list.append(categories_line)
-  # Delete older  categories in the db
-  if categories_old_list != []:
-    for real_old_categories in categories_old_list:
-      database.del_old_categories(real_old_categoriess)
-      print "D", real_old_categories
- 
-def update_arch_db(database):
-  # FIXME: check for new keyword
-  # Add arch db (keywords)
-  if database.get_arch_db() is None:
-    arch_list =  portage.archlist
-    for arch in arch_list:
-      if arch[0] not in ["~","-"]:
-	arch_list.append("-" + arch)
-    arch_list.append("-*")
-    database.add_new_arch_db(arch_list)
-
-def update_package_list(mysettings, database):
-  print "Checking categories, package, ebuilds"
-  package_id_list_tree = []
-  portdb = portage.portdbapi(mysettings=mysettings)
-  # Will run some update checks and update package if needed
-  # Get categories/package list from portage
-  package_list_tree = portdb.cp_all()
-  # Run the update package for all package in the list
-  for package_line in sorted(package_list_tree):
-    # split the cp to categories and package
-    element = package_line.split('/')
-    categories = element[0]
-    package = element[1]
-    print "C", categories + "/" + package			# C = Checking
-    # Check if we don't have the cp in the package table
-    package_id = database.have_package_db(categories, package)
-    if package_id is None:
-      # Add new package with ebuilds
-      package_id = add_new_package_db(settings, portdb, database, categories, package)
-      package_id_list_tree.append(package_id)
-      # Ceck if we have the cp in the package table
-    elif package_id is not None:
-      # Update the packages with ebuilds
-      update_package_db(settings, portdb, database, categories, package, package_id)
-      package_id_list_tree.append(package_id)
-    update_categories_db(settings, database, categories)
-  # Remove any old package and categories
-  mark_old_package_db(database, sorted(package_id_list_tree))
-  mark_old_categories_db(settings, database)
-  print "Checking categories, package and ebuilds done"
-
-def main():
-  # Main
-  get_conf_settings.__init__						# Init settings from the configfile
-  database = init_sql_backend()						# Init the Database
-  settings =  init_portage_settings(database)			# Init settings for the default config
-  update_arch_db(database)						# Update the arch db if needed
-  update_package_list(settings, database)				# Update the package db
-  
-if __name__ == "__main__":
-  main()

diff --git a/buildhost/updatedb/sqlbackend.py b/buildhost/updatedb/sqlbackend.py
deleted file mode 100644
index a7ba779..0000000
--- a/buildhost/updatedb/sqlbackend.py
+++ /dev/null
@@ -1,426 +0,0 @@
-# -*- coding: utf-8 -*-
-
-import sys, os, re
-
-class DBStateError(Exception):
-    """If the DB is in a state that is not expected, we raise this."""
-    def __init__(self, value):
-        Exception.__init__(self)
-        self.value = value
-    def __str__(self):
-        return repr(self.value)
-
-class DatabaseConfig(object):
-  # No touchy
-  from core import get_conf_settings
-  settings = {}
-  mode = get_conf_settings.SetSqlBackend
-    
-  # Settings for MySQL. You need to create one users in 
-  # your MySQL database.
-  # The  user needs:
-  # DELETE, INSERT, UPDATE, SELECT
-  # Do NOT change these, set the values in the config file /etc/buildhost/buildhost.conf
-  settings['sql_pgsql'] = {}
-  # settings['sql_pgsql']['charset'] = 'utf8'
-  settings['sql_pgsql']['host'] = get_conf_settings.SetSqlHost
-  settings['sql_pgsql']['database'] = get_conf_settings.SetSqlDB
-  settings['sql_pgsql']['user'] = get_conf_settings.SetSqlUser
-  settings['sql_pgsql']['password'] = get_conf_settings.SetSqlPasswd
-    
-class SQLPackageDatabase(object):
-  """we have to store our stuff somewhere
-
-  subclass and redefine init to provide
-  at least self.cursor"""
-
-  # These are set by subclasses
-  db = None
-  cursor = None
-  syntax_placeholder = None
-  syntax_autoincrement = None
-
-  sql = {}
-
-  def get_default_config(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id FROM configs WHERE default_config = True'
-    cursor.execute(sqlQ)
-    return cursor.fetchone()
-  
-  def get_config_list(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id FROM configs WHERE default_config = False AND active = True'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def get_config_list_all(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT id FROM configs'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def update__make_conf(self, configsDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'UPDATE configs SET make_conf_checksum = %s, make_conf_text = %s, active = %s, config_error = %s WHERE id = %s'
-    for k, v in configsDict.iteritems():
-      params = [v['make_conf_checksum_tree'], v['make_conf_text'], v['active'], v['config_error'], k]
-      cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def have_package_db(self, categories, package):
-    cursor = self.conn.cursor()
-    sqlQ ='SELECT package_id FROM packages WHERE category = %s AND package_name = %s'
-    params = categories, package
-    cursor.execute(sqlQ, params)
-    return cursor.fetchone()
-
-  def get_categories_db(self):
-    cursor = self.conn.cursor()
-    sqlQ =' SELECT category FROM categories'
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def get_categories_checksum_db(self, categories):
-    cursor = self.conn.cursor()
-    sqlQ =' SELECT metadata_xml_checksum FROM categories_meta WHERE category = %s'
-    cursor.execute(sqlQ, (categories,))
-    return cursor.fetchone()
-
-  def add_new_categories_meta_sql(self, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO categories_meta (category, metadata_xml_checksum, metadata_xml_text) VALUES  ( %s, %s, %s )'
-    params = categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def update_categories_meta_sql(self, categories, categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree):
-    cursor = self.conn.cursor()
-    sqlQ ='UPDATE categories_meta SET metadata_xml_checksum = %s, metadata_xml_text = %s WHERE category = %s'
-    params = (categories_metadata_xml_checksum_tree, categories_metadata_xml_text_tree, categories)
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_manifest_sql(self, package_id, get_manifest_text, manifest_checksum_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO manifest (package_id, manifest, checksum) VALUES  ( %s, %s, %s )'
-    params = package_id, get_manifest_text, manifest_checksum_tree
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_package_metadata(self, package_id, package_metadataDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT changelog_checksum FROM packages_meta WHERE package_id = %s'
-    cursor.execute(sqlQ, (package_id,))
-    if cursor.fetchone() is None:
-      sqlQ = 'INSERT INTO packages_meta (package_id, changelog_text, changelog_checksum, metadata_text, metadata_checksum) VALUES  ( %s, %s, %s, %s, %s )'
-      for k, v in package_metadataDict.iteritems():
-	params = package_id, v['changelog_text'], v['changelog_checksum'], v[' metadata_xml_text'], v['metadata_xml_checksum']
-	cursor.execute(sqlQ, params)
-      self.conn.commit()
-
-  def update_new_package_metadata(self, package_id, package_metadataDict):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT changelog_checksum, metadata_checksum FROM packages_meta WHERE package_id = %s'
-    cursor.execute(sqlQ, package_id)
-    entries = cursor.fetchone()
-    changelog_checksum_db = entries[0]
-    metadata_checksum_db = entries[1]
-    for k, v in package_metadataDict.iteritems():
-      if changelog_checksum_db != v['changelog_checksum']:
-	sqlQ = 'UPDATE packages_meta SET changelog_text = %s, changelog_checksum = %s WHERE package_id = %s'
-	params = v['changelog_text'], v['changelog_checksum'], package_id
-	cursor.execute(sqlQ, params)
-      if metadata_checksum_db != v['metadata_xml_checksum']:
-	sqlQ = 'UPDATE packages_meta SET metadata_text = %s, metadata_checksum = %s WHERE package_id = %s'
-	params = v[' metadata_xml_text'], v['metadata_xml_checksum'], package_id
-	cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def get_manifest_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT checksum FROM manifest WHERE package_id = %s'
-    cursor.execute(sqlQ, package_id)
-    return cursor.fetchone()
-
-  def update_manifest_sql(self, package_id, get_manifest_text, manifest_checksum_tree):
-   cursor = self.conn.cursor()
-   sqlQ = 'UPDATE manifest SET checksum = %s, manifest = %s WHERE package_id = %s'
-   params = (manifest_checksum_tree, get_manifest_text, package_id)
-   cursor.execute(sqlQ, params)
-   self.conn.commit()
-
-  def add_new_metadata(self, metadataDict):
-    for k, v in metadataDict.iteritems():
-      cursor = self.conn.cursor()
-      sqlQ = 'SELECT updaterestrictions( %s, %s )'
-      params = k, v['restrictions']
-      cursor.execute(sqlQ, params)
-      sqlQ = 'SELECT updatekeywords( %s, %s )'
-      params = k, v['keyword']
-      cursor.execute(sqlQ, params)
-      sqlQ = 'SELECT updateiuse( %s, %s )'
-      params = k, v['iuse']
-      cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def add_new_package_sql(self, packageDict):
-    #lets have a new cursor for each metod as per best practice
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
-    ebuild_id_list = []
-    package_id_list = []
-    for k, v in packageDict.iteritems():
-      params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
-      v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
-      v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
-      v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
-      v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
-      v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
-      v['ebuild_version_metadata_tree'][16]]
-      cursor.execute(sqlQ, params)
-      mid = cursor.fetchone()
-      mid=mid[0]
-      ebuild_id_list.append(mid[1])
-      package_id_list.append(mid[0])
-    self.conn.commit()
-    # add_new_metadata(metadataDict)
-    return ebuild_id_list, package_id_list
-
-  def add_new_ebuild_sql(packageDict, new_ebuild_list):
-    #lets have a new cursor for each metod as per best practice
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_ebuild( %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, 'True')"
-    ebuild_id_list = []
-    package_id_list = []
-    for k, v in packageDict.iteritems():
-      for x in new_ebuild_list:
-	if x == v['ebuild_version_tree']:
-	  params = [v['categories'], v['package'], v['ebuild_version_tree'], v['ebuild_version_revision'], v['ebuild_version_checksum_tree'],
-	  v['ebuild_version_text'], v['ebuild_version_metadata_tree'][0], v['ebuild_version_metadata_tree'][1],
-	  v['ebuild_version_metadata_tree'][12], v['ebuild_version_metadata_tree'][2], v['ebuild_version_metadata_tree'][3],
-	  v['ebuild_version_metadata_tree'][5],v['ebuild_version_metadata_tree'][6], v['ebuild_version_metadata_tree'][7],
-	  v['ebuild_version_metadata_tree'][9], v['ebuild_version_metadata_tree'][11],
-	  v['ebuild_version_metadata_tree'][13],v['ebuild_version_metadata_tree'][14], v['ebuild_version_metadata_tree'][15],
-	  v['ebuild_version_metadata_tree'][16]]
-	  cursor.execute(sqlQ, params)
-	  mid = cursor.fetchone()
-	  mid=mid[0]
-	  ebuild_id_list.append(mid[1])
-	  package_id_list.append(mid[0])
-    self.conn.commit()
-    # add_new_metadata(metadataDict)
-    return ebuild_id_list, package_id_list
-
-  def update_active_ebuild(self, package_id, ebuild_version_tree):
-    cursor = self.conn.cursor()
-    sqlQ ="UPDATE ebuilds SET active = 'False', timestamp = now() WHERE package_id = %s AND ebuild_version = %s AND active = 'True'"
-    cursor.execute(sqlQ, (package_id, ebuild_version_tree))
-    self.conn.commit()
-
-  def get_cpv_from_ebuild_id(self, ebuild_id):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT package_id FROM ebuild WHERE id = %s'
-    self.cursor.execute(sql, ebuild_id)
-    entries = self.cursor.fetchone()
-    return entries
-
-  def get_cp_from_package_id(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT ARRAY_TO_STRING(ARRAY[category, package_name] , '/') AS cp FROM packages WHERE package_id = %s"
-    cursor.execute(sqlQ, (package_id,))
-    return cursor.fetchone()
-  
-  def add_new_package_buildqueue(self, ebuild_id, config_id, iuse_flags_list, use_enable, message):
-    cursor = self.conn.cursor()
-    sqlQ="SELECT insert_buildqueue( %s, %s, %s, %s, %s )"
-    if not iuse_flags_list:
-      iuse_flags_list=None
-      use_enable=None
-    params = ebuild_id, unicode(config_id), iuse_flags_list, use_enable, message
-    cursor.execute(sqlQ, params)
-    self.conn.commit()
-
-  def get_ebuild_checksum(self, package_id, ebuild_version_tree):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT ebuild_checksum FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = TRUE'
-    cursor.execute(sqlQ, (package_id, ebuild_version_tree))
-    entries = cursor.fetchone()
-    if entries is None:
-      return None
-    return entries[0]
-
-  def add_old_package(self, old_package_list):
-    cursor = self.conn.cursor()
-    mark_old_list = []
-    sqlQ = "UPDATE ebuilds SET active = 'FALSE', timestamp = NOW() WHERE package_id = %s AND active = 'TRUE' RETURNING package_id"
-    for old_package in old_package_list:
-      cursor.execute(sqlQ, (old_package[0],))
-      entries = cursor.fetchone()
-      if entries is not None:
-	mark_old_list.append(entries[0])
-    self.conn.commit()
-    return mark_old_list
-  
-  def get_old_categories(self, categories_line):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT package_name FROM packages WHERE category = %s"
-    cursor.execute(sqlQ (categories_line))
-    return cursor.fetchone()
-
-  def del_old_categories(self, real_old_categoriess):
-    cursor = self.conn.cursor()
-    sqlQ = 'DELETE FROM categories categories_meta WHERE category = %s'
-    cursor.execute(sqlQ (real_old_categories))
-    self.conn.commit()
-
-  def add_old_ebuild(self, package_id, old_ebuild_list):
-    cursor = self.conn.cursor()
-    sqlQ1 = "UPDATE ebuilds SET active = 'FALSE' WHERE package_id = %s AND ebuild_version = %s"
-    sqlQ2 = "SELECT id FROM ebuilds WHERE package_id = %s AND ebuild_version = %s AND active = 'TRUE'"
-    sqlQ3 = "SELECT queue_id FROM buildqueue WHERE ebuild_id = %s"
-    sqlQ4 = 'DELETE FROM ebuildqueuedwithuses buildqueue WHERE queue_id = %s'
-    for old_ebuild in  old_ebuild_list:
-      cursor.execute(sqlQ2, (package_id, old_ebuild[0]))
-      ebuild_id_list = cursor.fetchall()
-      if ebuild_id_list is not None:
-	for ebuild_id in ebuild_id_list:
-	  cursor.execute(sqlQ3, (ebuild_id))
-	  queue_id_list = cursor.fetchall()
-	  if queue_id_list is not None:
-	    for queue_id in queue_id_list:
-	      cursor.execute(sqlQ4, (queue_id))
-      cursor.execute(sqlQ1, (package_id, old_ebuild[0]))
-    self.conn.commit()
-
-  def cp_all_old_db(self, old_package_id_list):
-    cursor = self.conn.cursor()
-    old_package_list = []
-    for old_package in old_package_id_list:
-      sqlQ = "SELECT package_id FROM ebuilds WHERE package_id = %s AND active = 'FALSE' AND date_part('days', NOW() - timestamp) < 60"
-      cursor.execute(sqlQ, old_package)
-      entries = cursor.fetchone()
-      if entries is None:
-	old_package_list.append(old_package)
-    return old_package_list
-  def cp_all_db(self):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT package_id FROM packages"
-    cursor.execute(sqlQ)
-    return cursor.fetchall()
-
-  def del_old_ebuild(self, ebuild_old_list_db):
-    cursor = self.conn.cursor()
-    sqlQ2 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    sqlQ3 = 'DELETE FROM qa_problems repoman_problems  WHERE build_id = %s'
-    sqlQ4 = 'DELETE FROM ebuildhaveskeywords ebuildhavesiuses WHERE ebuild_id = %s'
-    sqlQ5 = 'DELETE FROM ebuildbuildwithuses WHERE build_id = %s'
-    sqlQ6 = 'DELETE FROM ebuildhavesrestrictions buildlog WHERE ebuild_id = %s'
-    for del_ebuild_old in ebuild_old_list_db:
-      cursor.execute(sqlQ2, (del_ebuild_old[0],))
-      build_id_list = cursor.fetchall()
-      for build_id in build_id_list:
-	cursor.execute(sqlQ3, (build_id,))
-	cursor.execute(sqlQ5, (build_id,))
-      cursor.execute(sqlQ4, (del_ebuild_old[0],))
-      cursor.execute(sqlQ6, (del_ebuild_old[0],))
-    self.conn.commit()
-
-  def del_old_package(self, package_id_list):
-    cursor = self.conn.cursor()
-    sqlQ1 = 'SELECT id FROM ebuilds WHERE package_id = %s'
-    sqlQ2 = 'SELECT build_id FROM buildlog WHERE ebuild_id = %s'
-    sqlQ3 = 'DELETE FROM qa_problems, repoman_problems, ebuildbuildwithuses WHERE build_id = %s'
-    sqlQ4 = 'DELETE FROM ebuildhaveskeywords, ebuildhavesiuses, ebuildhavesrestrictions, buildlog WHERE ebuild_id = %s'
-    sqlQ5 = 'DELETE FROM ebuilds, manifest, package_meta, packages WHERE package_id = %s'
-    for package_id in package_id_list:
-      cursor.execute(sqlQ1, package_id)
-      ebuild_id_list = cursor.fetchall()
-      for ebuild_id in ebuild_id_list:
-	cursor.execute(sqlQ2, ebuild_id)
-	build_id_list = cursor.fetchall()
-	for build_id in build_id_list:
-	  cursor.execute(sqlQ3, build_id)
-	cursor.execute(sqlQ4, ebuild_id)
-      cursor.execute(sqlQ5, package_id)
-    self.conn.commit()
-
-  def cp_list_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ = "SELECT ebuild_version FROM ebuilds WHERE active = 'TRUE' AND package_id = %s"
-    cursor.execute(sqlQ, (package_id))
-    return cursor.fetchall()
-
-  def cp_list_old_db(self, package_id):
-    cursor = self.conn.cursor()
-    sqlQ ="SELECT id, ebuild_version FROM ebuilds WHERE active = 'FALSE' AND package_id = %s AND date_part('days', NOW() - timestamp) > 60"
-    cursor.execute(sqlQ, package_id)
-    return cursor.fetchall()
-
-  def add_qa_repoman(self, ebuild_id_list, qa_error, packageDict, config_id):
-    ebuild_i = 0
-    cursor = self.conn.cursor()
-    for k, v in packageDict.iteritems():
-      ebuild_id = ebuild_id_list[ebuild_i]
-      sqlQ = 'INSERT INTO buildlog (ebuild_id, config, error_summary, timestamp ) VALUES  ( %s, %s, %s, now() ) RETURNING build_id'
-      if v['ebuild_error'] != [] or qa_error != []:
-	if v['ebuild_error'] != [] or qa_error == []:
-	  summary = "Repoman"
-	elif v['ebuild_error'] == [] or qa_error != []:
-	  summary = "QA"
-	else:
-	  summary = "QA:Repoman"
-	params = (ebuild_id, config_id, summary)
-	cursor.execute(sqlQ, params)
-	build_id = cursor.fetchone()
-	if v['ebuild_error'] != []:
-	  sqlQ = 'INSERT INTO repoman_problems (problem, build_id ) VALUES ( %s, %s )'
-	  for x in v['ebuild_error']:
-	    params = (x, build_id)
-	    cursor.execute(sqlQ, params)
-	if qa_error != []:
-	  sqlQ = 'INSERT INTO qa_problems (problem, build_id ) VALUES ( %s, %s )'
-	  for x in qa_error:
-	    params = (x, build_id)
-	    cursor.execute(sqlQ, params)
-      ebuild_i = ebuild_i +1
-    self.conn.commit()
-
-  def get_arch_db(self):
-    cursor = self.conn.cursor()
-    sqlQ = 'SELECT keyword FROM keywords WHERE keyword = %s'
-    cursor.execute(sqlQ, ('ppc',))
-    return cursor.fetchone()
-  
-  def add_new_arch_db(self, arch_list):
-    cursor = self.conn.cursor()
-    sqlQ = 'INSERT INTO keywords (keyword) VALUES  ( %s )'
-    for arch in arch_list:
-      cursor.execute(sqlQ, (arch,))
-    self.conn.commit()
-
-  def closeconnection(self):
-    self.conn.close()
-
-class PgSQLPackageDB(SQLPackageDatabase):
-    """override for MySQL backend"""
-
-    syntax_placeholder = "%s"
-    
-    def __init__(self, config=None):
-        # Do not complain about correct usage of ** magic
-        # pylint: disable-msg=W0142
-        SQLPackageDatabase.__init__(self)
-
-        if config is None or 'database' not in config:
-            print "No configuration available!"
-            sys.exit(1)
-
-        try:
-            import psycopg2
-        except ImportError:
-            print "Please install a recent version of dev-python/psycopg for Python"
-            sys.exit(1)
-
-        self.conn = psycopg2.connect(**config)
-        

diff --git a/ebuild/dev-python/gobs/Manifest b/ebuild/dev-python/gobs/Manifest
index fa5e627..ad7e6cb 100644
--- a/ebuild/dev-python/gobs/Manifest
+++ b/ebuild/dev-python/gobs/Manifest
@@ -1,3 +1,3 @@
 AUX gobs.conf 276 RMD160 64e18cf690deb3da863ef96a2405e479493acfce SHA1 acbcc905c9f4637a9aaa111aa71f88e589038aa0 SHA256 3a43b836bf5190eaa442477e1b6af696a3867f993ceb29fe484b833aeadb2c29
-EBUILD gobs-9999.ebuild 1158 RMD160 68f52e03f866e7438c93a3dddce952dcf8c744a2 SHA1 301ee70f5266fe7be07472da36a66c6dca657012 SHA256 1b2b3cb97c0f752dbab6fa9ab51979b2f94f8f23520df505b6e96e104eda9a8d
-MISC gobs-9999.ebuild~ 1156 RMD160 bb70cf36f3d62b45d4d850f211504b6623620b48 SHA1 3a4b5cd5fb451ef9b2c81821efa438ea31e09c1f SHA256 e8f0557d8d9d554f9e65d041ce01495543343cb0c8e8c23305dc8fbb8e6e9b24
+EBUILD gobs-9999.ebuild 1204 RMD160 d3d1b0f892c40548464bf9b4965437659de4372b SHA1 a04c97ace103a641d902721546096b113c5a7fd3 SHA256 3fb5740904a541199ad281b66b188cdf5762765057249b56e3ab5842c46aeade
+MISC gobs-9999.ebuild~ 1158 RMD160 68f52e03f866e7438c93a3dddce952dcf8c744a2 SHA1 301ee70f5266fe7be07472da36a66c6dca657012 SHA256 1b2b3cb97c0f752dbab6fa9ab51979b2f94f8f23520df505b6e96e104eda9a8d

diff --git a/ebuild/dev-python/gobs/gobs-9999.ebuild b/ebuild/dev-python/gobs/gobs-9999.ebuild
index e499bca..8780338 100644
--- a/ebuild/dev-python/gobs/gobs-9999.ebuild
+++ b/ebuild/dev-python/gobs/gobs-9999.ebuild
@@ -43,5 +43,6 @@ src_install() {
 	dobin ${S}/gobs/bin/gobs_updatedb || die
 	dobin ${S}/gobs/bin/gobs_portage_hooks || die
 	dosbin  ${S}/gobs/bin/gobs_buildquerys || die
-	dodoc ${S}/gobs/sql/pgdump.sql.gz
+	dodoc ${S}/gobs/sql/pgdump.sql.gz || die
+	dodoc  ${S}/gobs/doc/Setup.txt || die
 }	
\ No newline at end of file

diff --git a/gobs/doc/Setup.txt b/gobs/doc/Setup.txt
new file mode 100644
index 0000000..956990f
--- /dev/null
+++ b/gobs/doc/Setup.txt
@@ -0,0 +1,7 @@
+1. Setup the Backend
+Setup the gobs.conf  for the db.
+Change GOBSGITREPONAME to point to the git repo with your configs for the profiles/setups.
+Import the *dump.sql.gz to your sql.
+The portage/base/make.conf should be in the base profile/setup
+The portage/all/bashrc should be in all the guest profiles/setups
+The porfiles dir need a dir call config with a parent file that point to base profile



^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-08-28 14:28 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-28 14:28 [gentoo-commits] dev/zorry:master commit in: buildhost/updatedb/, ebuild/dev-python/gobs/, buildhost/portage_hook/, Magnus Granberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox