83
86
main::action_build ()
88
sbuild::string_list command;
89
sbuild::environment env(environ);
91
/// @todo Make sbuild binary configurable.
92
command.push_back("/usr/bin/sbuild");
94
/// @todo Handle incrementing debug level.
95
if (sbuild::debug_log_level != sbuild::DEBUG_NONE)
96
command.push_back("--debug");
99
command.push_back("--nolog");
101
if (opts->batch_mode)
102
command.push_back("--batch");
104
for (sbuild::string_list::const_iterator pos = opts->deb_build_options.begin();
105
pos != opts->deb_build_options.end();
108
std::string bopt("--debbuildopt=");
110
command.push_back(bopt);
113
if (!opts->distribution.empty())
115
std::string dist("--dist=");
116
dist += opts->distribution;
117
command.push_back(dist);
120
if (!opts->archive.empty())
122
std::string archive("--archive=");
123
archive += opts->archive;
124
command.push_back(archive);
127
if (!opts->build_arch.empty())
129
std::string arch("--arch=");
130
arch += opts->build_arch;
131
command.push_back(arch);
134
if (opts->build_arch_all)
135
command.push_back("--arch-all");
137
if (opts->build_source)
138
command.push_back("--source");
140
if (opts->force_orig_source)
141
command.push_back("--force-orig-source");
145
std::string binnmu1("--make-binNMU=");
146
binnmu1 += opts->bin_nmu_changelog;
147
command.push_back(binnmu1);
149
std::ostringstream binnmu2;
150
binnmu2.imbue(std::locale::classic());
151
binnmu2 << "--binNMU=";
152
binnmu2 << opts->bin_nmu_version;
153
command.push_back(binnmu2.str());
156
if (!opts->append_version.empty())
158
std::string append("--append-to-version=");
159
append += opts->append_version;
160
command.push_back(append);
163
if (opts->apt_update)
164
command.push_back("apt-update");
166
if (!opts->chroot.empty())
168
std::string chroot("--chroot=");
169
chroot += opts->chroot;
170
command.push_back(chroot);
173
if (!opts->purge_string.empty())
175
std::string purge("--purge=");
176
purge += opts->purge_string;
177
command.push_back(purge);
180
if (!opts->purge_deps_string.empty())
182
std::string purge_deps("--purge-deps=");
183
purge_deps += opts->purge_deps_string;
184
command.push_back(purge_deps);
187
if (!opts->setup_hook_script.empty())
189
std::string setup_hook("--setup-hook=");
190
setup_hook += opts->setup_hook_script;
191
command.push_back(setup_hook);
194
if (!opts->keyid.empty())
196
std::string keyid("--keyid=");
197
keyid += opts->keyid;
198
command.push_back(keyid);
201
if (!opts->maintainer.empty())
203
std::string maintainer("--maintainer=");
204
maintainer += opts->maintainer;
205
command.push_back(maintainer);
208
if (!opts->uploader.empty())
210
std::string uploader("--uploader=");
211
uploader += opts->uploader;
212
command.push_back(uploader);
215
for (sbuild::string_list::const_iterator bd = opts->build_depends.begin();
216
bd != opts->build_depends.end();
219
std::string dep("--add-depends=");
221
command.push_back(dep);
224
for (sbuild::string_list::const_iterator bc = opts->build_conflicts.begin();
225
bc != opts->build_conflicts.end();
228
std::string dep("--add-conflicts=");
230
command.push_back(dep);
233
for (sbuild::string_list::const_iterator bdi = opts->build_depends_indep.begin();
234
bdi != opts->build_depends_indep.end();
237
std::string dep("--add-depends=");
239
command.push_back(dep);
242
for (sbuild::string_list::const_iterator bci = opts->build_conflicts_indep.begin();
243
bci != opts->build_conflicts_indep.end();
246
std::string dep("--add-conflicts=");
248
command.push_back(dep);
251
if (!opts->depends_algorithm.empty())
253
std::string algo("check-depends-algorithm=");
254
algo += opts->depends_algorithm;
255
command.push_back(algo);
258
if (opts->gcc_snapshot)
259
command.push_back("--use-snapshot");
261
std::copy(opts->packages.begin(), opts->packages.end(),
262
std::back_inserter(command));
264
sbuild::log_debug(sbuild::DEBUG_NOTICE)
266
<< sbuild::string_list_to_string(command, ", ")
269
exec(command[0], command, env);
271
// This should never be reached.