DEPLOY_DIR_SRC ?= "${DEPLOY_DIR}/source" EXCLUDE_FROM ?= ".pc autom4te.cache" # used as part of a path. make sure it's set DISTRO ?= "openembedded" def get_src_tree(d): workdir = d.getVar('WORKDIR', 1) if not workdir: bb.error("WORKDIR not defined, unable to find source tree.") return s = d.getVar('S', 0) if not s: bb.error("S not defined, unable to find source tree.") return s_tree_raw = s.split('/')[1] s_tree = bb.data.expand(s_tree_raw, d) src_tree_path = os.path.join(workdir, s_tree) try: os.listdir(src_tree_path) except OSError: bb.fatal("Expected to find source tree in '%s' which doesn't exist." % src_tree_path) bb.debug("Assuming source tree is '%s'" % src_tree_path) return s_tree sourcepkg_do_create_orig_tgz(){ mkdir -p ${DEPLOY_DIR_SRC} cd ${WORKDIR} for i in ${EXCLUDE_FROM}; do echo $i >> temp/exclude-from-file done src_tree=${@get_src_tree(d)} echo $src_tree bbnote "Creating .orig.tar.gz in ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz" tar cvzf ${DEPLOY_DIR_SRC}/${P}.orig.tar.gz --exclude-from temp/exclude-from-file $src_tree tar -cf - -C $src_tree -ps . | tar -xf - -C $src_tree.orig } sourcepkg_do_archive_bb() { src_tree=${@get_src_tree(d)} dest=${WORKDIR}/$src_tree/${DISTRO} mkdir -p $dest cp ${FILE} $dest } python sourcepkg_do_dumpdata() { workdir = d.getVar('WORKDIR', 1) distro = d.getVar('DISTRO', 1) s_tree = get_src_tree(d) openembeddeddir = os.path.join(workdir, s_tree, distro) dumpfile = os.path.join(openembeddeddir, bb.data.expand("${P}-${PR}.showdata.dump",d)) try: os.mkdir(openembeddeddir) except OSError: # dir exists pass bb.note("Dumping metadata into '%s'" % dumpfile) f = open(dumpfile, "w") # emit variables and shell functions bb.data.emit_env(f, d, True) # emit the metadata which isnt valid shell for e in d.keys(): if d.getVarFlag(e, 'python'): f.write("\npython %s () {\n%s}\n" % (e, d.getVar(e, 1))) f.close() } sourcepkg_do_create_diff_gz(){ cd ${WORKDIR} for i in ${EXCLUDE_FROM}; do echo $i >> temp/exclude-from-file done src_tree=${@get_src_tree(d)} for i in `find . -maxdepth 1 -type f`; do mkdir -p $src_tree/${DISTRO}/files cp $i $src_tree/${DISTRO}/files done bbnote "Creating .diff.gz in ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz" LC_ALL=C TZ=UTC0 diff --exclude-from=temp/exclude-from-file -Naur $src_tree.orig $src_tree | gzip -c > ${DEPLOY_DIR_SRC}/${P}-${PR}.diff.gz rm -rf $src_tree.orig } EXPORT_FUNCTIONS do_create_orig_tgz do_archive_bb do_dumpdata do_create_diff_gz addtask create_orig_tgz after do_unpack before do_patch addtask archive_bb after do_patch before do_dumpdata addtask dumpdata after archive_bb before do_create_diff_gz addtask create_diff_gz after do_dump_data before do_configure root/meta/classes/syslinux.bbclass
blob: 2f5b6c43d7a6dc53cd8704db43caffea51f06de9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156