opkg: 's/itsy/opkg/'
[oweals/opkg-lede.git] / libopkg / opkg_configure.c
1 /* opkg_configure.c - the opkg package management system
2
3    Carl D. Worth
4
5    Copyright (C) 2001 University of Southern California
6
7    This program is free software; you can redistribute it and/or
8    modify it under the terms of the GNU General Public License as
9    published by the Free Software Foundation; either version 2, or (at
10    your option) any later version.
11
12    This program is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16 */
17
18 #include "includes.h"
19 #include "sprintf_alloc.h"
20 #include "opkg_configure.h"
21 #include "opkg_state.h"
22
23 int opkg_configure(opkg_conf_t *conf, pkg_t *pkg)
24 {
25     int err;
26
27     /* DPKG_INCOMPATIBILITY:
28        dpkg actually does some conffile handling here, rather than at the
29        end of opkg_install(). Do we care? */
30     /* DPKG_INCOMPATIBILITY:
31        dpkg actually includes a version number to this script call */
32
33     char *pkgid;
34     sprintf_alloc (&pkgid, "%s;%s;%s;", pkg->name, pkg->version, pkg->architecture);
35     opkg_set_current_state (conf, OPKG_STATE_CONFIGURING_PKG, pkgid);
36     free (pkgid);
37
38     err = pkg_run_script(conf, pkg, "postinst", "configure");
39     if (err) {
40         opkg_message(conf, OPKG_ERROR, "ERROR: %s.postinst returned %d\n", pkg->name, err);
41         return err;
42     }
43
44     opkg_state_changed++;
45     opkg_set_current_state (conf, OPKG_STATE_NONE, NULL);
46     return 0;
47 }
48