8309e40d6dbe67fcd138d0f1a0d2c529de83dfe7
[project/opkg-lede.git] / opkg_configure.c
1 /* opkg_configure.c - the itsy 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 "opkg.h"
19
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 (OPKG_STATE_CONFIGURING_PKG, pkgid);
36 free (pkgid);
37
38 err = pkg_run_script(conf, pkg, "postinst", "configure");
39 if (err) {
40 printf("ERROR: %s.postinst returned %d\n", pkg->name, err);
41 return err;
42 }
43
44 opkg_state_changed++;
45 opkg_set_current_state (OPKG_STATE_NONE, NULL);
46 return 0;
47 }
48