Gentoo Archives: gentoo-commits

From: "André Erdmann" <dywi@×××××××.de>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/R_overlay:master commit in: roverlay/config/, roverlay/overlay/
Date: Fri, 02 Aug 2013 13:39:40
Message-Id: 1375450497.f6d66e29da42e30705cebfadcf20bf02b8f07bac.dywi@gentoo
1 commit: f6d66e29da42e30705cebfadcf20bf02b8f07bac
2 Author: André Erdmann <dywi <AT> mailerd <DOT> de>
3 AuthorDate: Fri Aug 2 13:34:39 2013 +0000
4 Commit: André Erdmann <dywi <AT> mailerd <DOT> de>
5 CommitDate: Fri Aug 2 13:34:57 2013 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=f6d66e29
7
8 overlay: create/write metadata/layout.conf
9
10 ---
11 roverlay/config/const.py | 1 +
12 roverlay/overlay/root.py | 52 ++++++++++++++++++++++++++++++++++++++++++++++--
13 2 files changed, 51 insertions(+), 2 deletions(-)
14
15 diff --git a/roverlay/config/const.py b/roverlay/config/const.py
16 index 2dc79c5..64ee0ad 100644
17 --- a/roverlay/config/const.py
18 +++ b/roverlay/config/const.py
19 @@ -79,6 +79,7 @@ _CONSTANTS = dict (
20 name = 'R_Overlay',
21 category = 'sci-R',
22 manifest_implementation = 'default',
23 + masters = [ 'gentoo', ],
24 ),
25
26 EVENT_HOOK = dict (
27
28 diff --git a/roverlay/overlay/root.py b/roverlay/overlay/root.py
29 index 32bab35..c404813 100644
30 --- a/roverlay/overlay/root.py
31 +++ b/roverlay/overlay/root.py
32 @@ -30,7 +30,7 @@ import roverlay.recipe.distmap
33 import roverlay.overlay.additionsdir
34 import roverlay.overlay.category
35 import roverlay.overlay.header
36 -
37 +import roverlay.overlay.pkgdir.base
38
39 class Overlay ( object ):
40 DEFAULT_USE_DESC = (
41 @@ -71,6 +71,7 @@ class Overlay ( object ):
42 use_desc = optional ( 'OVERLAY.use_desc' ),
43 rsuggests_flags = rsuggests_flags,
44 keep_n_ebuilds = optional ( 'OVERLAY.keep_nth_latest' ),
45 + masters = mandatory ( 'OVERLAY.masters' ),
46 **kw
47 )
48 # --- end of new_configured (...) ---
49 @@ -92,6 +93,7 @@ class Overlay ( object ):
50 use_desc=None,
51 runtime_incremental=False,
52 keep_n_ebuilds=None,
53 + masters=None,
54 ):
55 """Initializes an overlay.
56
57 @@ -137,6 +139,7 @@ class Overlay ( object ):
58 self._catlock = threading.Lock()
59 self._categories = dict()
60
61 + self._masters = masters
62 self._rsuggests_flags = rsuggests_flags
63
64 self.skip_manifest = skip_manifest
65 @@ -278,6 +281,10 @@ class Overlay ( object ):
66 raises:
67 * IOError
68 """
69 + NEWLINE = '\n'
70 + EMPTY_STR = ""
71 +
72 +
73 def write_profiles_dir():
74 """Creates and updates the profiles/ dir."""
75 def write_profiles_file ( filename, to_write ):
76 @@ -339,6 +346,46 @@ class Overlay ( object ):
77 write_profiles_file ( 'use.desc', self._use_desc + '\n' )
78 # --- end of write_profiles_dir (...) ---
79
80 + def write_metadata_dir():
81 +
82 + METADATA_DIR = self.physical_location + os.sep + 'metadata'
83 + roverlay.util.dodir ( METADATA_DIR )
84 +
85 + # create layout.conf file
86 + # * create lines
87 + layout_lines = list()
88 + layout_add = layout_lines.append
89 + kv_join = lambda k, v: "{k} = {v}".format ( k=k, v=v )
90 + v_join = lambda v: ' '.join ( v )
91 +
92 + layout_add ( kv_join ( "repo_name", self.name ) )
93 +
94 + if self._masters:
95 + layout_add ( kv_join ( "masters", v_join ( self._masters ) ) )
96 + else:
97 + layout_add ( "masters =" )
98 +
99 +
100 + # strictly speaking,
101 + # declaring cache-formats here is not correct since egencache
102 + # is run as hook
103 + layout_add ( kv_join ( "cache-formats", "md5-dict" ) )
104 +
105 + ##layout_add ( kv_join ( "sign-commits", "false" ) )
106 + ##layout_add ( kv_join ( "sign-manifests", "false" ) )
107 + ##layout_add ( kv_join ( "thin-manifests", "false" ) )
108 +
109 + hashes = roverlay.overlay.pkgdir.base.get_class().HASH_TYPES
110 + if hashes:
111 + layout_add ( kv_join ( "manifest-hashes", v_join ( hashes ) ) )
112 +
113 + # * write it
114 + with open ( METADATA_DIR + os.sep + 'layout.conf', 'wt' ) as FH:
115 + for line in layout_lines:
116 + FH.write ( line )
117 + FH.write ( NEWLINE )
118 + # --- end of write_metadata_dir (...) ---
119 +
120 try:
121 # mkdir overlay root
122 roverlay.util.dodir ( self.physical_location, mkdir_p=True )
123 @@ -346,11 +393,12 @@ class Overlay ( object ):
124 self._import_eclass ( reimport_eclass )
125
126 write_profiles_dir()
127 + write_metadata_dir()
128
129 except IOError as e:
130
131 self.logger.exception ( e )
132 - self.logger.critical ( "^failed to init overlay" )
133 + self.logger.critical ( "failed to init overlay" )
134 raise
135 # --- end of _init_overlay (...) ---