Add a new entity called OsinfoInstallScriptAvatar to help the creation of an Avatar file for an install script. If avatar entity needs to be set, just add, in the .xml's script file: <avatar> <image-type>...</image-type> <extension>...</extension> <alpha>...</alpha> <width>...</width> <height>...</height> </avatar> --- data/install-scripts/fedora.xml | 7 + data/install-scripts/windows-sif.xml | 7 + data/schemas/libosinfo.rng | 25 ++- docs/reference/Libosinfo.types | 1 + osinfo/Makefile.am | 2 + osinfo/libosinfo.syms | 7 + osinfo/osinfo.h | 1 + osinfo/osinfo_install_script.c | 13 ++ osinfo/osinfo_install_script.h | 5 + osinfo/osinfo_install_script_avatar.c | 352 ++++++++++++++++++++++++++++++++++ osinfo/osinfo_install_script_avatar.h | 84 ++++++++ osinfo/osinfo_loader.c | 61 ++++++ 12 files changed, 564 insertions(+), 1 deletion(-) create mode 100644 osinfo/osinfo_install_script_avatar.c create mode 100644 osinfo/osinfo_install_script_avatar.h diff --git a/data/install-scripts/fedora.xml b/data/install-scripts/fedora.xml index eef4f4a..f7ee68c 100644 --- a/data/install-scripts/fedora.xml +++ b/data/install-scripts/fedora.xml @@ -113,6 +113,13 @@ reboot <param name="user-password" policy="required"/> <param name="admin-password" policy="required"/> </config> + <avatar> + <image-type>png</image-type> + <extension>.png</extension> + <alpha>true</alpha> + <width>-1</width> + <height>-1</height> + </avatar> <template filename="fedora.ks"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" diff --git a/data/install-scripts/windows-sif.xml b/data/install-scripts/windows-sif.xml index 76f9baf..7c0acfe 100644 --- a/data/install-scripts/windows-sif.xml +++ b/data/install-scripts/windows-sif.xml @@ -70,6 +70,13 @@ <param name="user-realname" policy="required"/> <param name="hostname" policy="required"/> </config> + <avatar> + <image-type>bmp</image-type> + <extension>.bmp</extension> + <alpha>false</alpha> + <width>48</width> + <height>48</height> + </avatar> <template filename="winnt.sif"> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" diff --git a/data/schemas/libosinfo.rng b/data/schemas/libosinfo.rng index 1392f74..4d1906d 100644 --- a/data/schemas/libosinfo.rng +++ b/data/schemas/libosinfo.rng @@ -410,7 +410,7 @@ <element name='profile'> <text/> </element> - <element name='config'> + <element name='config'> <attribute name="name"/> <attribute name="policy"> <ref name='policies'/> @@ -419,6 +419,9 @@ <element name='product-key-format'> <text/> </element> + <optional> + <ref name='avatar'/> + </optional> <element name='template'> <attribute name="filename"/> <choice> @@ -441,6 +444,26 @@ </element> </define> + <define name='avatar'> + <interleaves> + <element name="image-type"/> + </text> + </element> + <element name="extension"/> + </text> + </element> + <element name="alpha"/> + </text> + </element> + <element name="width"/> + </text> + </element> + <element name="height"/> + </text> + </element> + </interleaves> + </define> + <define name="customElement"> <element> <anyName/> diff --git a/docs/reference/Libosinfo.types b/docs/reference/Libosinfo.types index 8744ee6..91b29c6 100644 --- a/docs/reference/Libosinfo.types +++ b/docs/reference/Libosinfo.types @@ -11,6 +11,7 @@ osinfo_filter_get_type osinfo_install_config_get_type osinfo_install_config_param_get_type osinfo_install_script_get_type +osinfo_install_script_avatar_get_type osinfo_install_scriptlist_get_type osinfo_list_get_type osinfo_loader_get_type diff --git a/osinfo/Makefile.am b/osinfo/Makefile.am index 495d2f5..f8df85e 100644 --- a/osinfo/Makefile.am +++ b/osinfo/Makefile.am @@ -61,6 +61,7 @@ libosinfo_1_0_include_HEADERS = \ osinfo_install_config.h \ osinfo_install_config_param.h \ osinfo_install_script.h \ + osinfo_install_script_avatar.h\ osinfo_install_scriptlist.h \ osinfo_product.h \ osinfo_productfilter.h \ @@ -92,6 +93,7 @@ libosinfo_1_0_la_SOURCES = \ osinfo_install_config.c \ osinfo_install_config_param.c \ osinfo_install_script.c \ + osinfo_install_script_avatar.c\ osinfo_install_scriptlist.c \ osinfo_product.c \ osinfo_productfilter.c \ diff --git a/osinfo/libosinfo.syms b/osinfo/libosinfo.syms index c60f726..de75094 100644 --- a/osinfo/libosinfo.syms +++ b/osinfo/libosinfo.syms @@ -285,6 +285,13 @@ LIBOSINFO_0.2.0 { osinfo_install_script_has_config_param; osinfo_install_script_has_config_param_name; osinfo_install_script_get_config_param_list; + osinfo_install_script_avatar_get_type; + osinfo_install_script_avatar_new; + osinfo_install_script_avatar_get_imagetype; + osinfo_install_script_avatar_get_extension; + osinfo_install_script_avatar_has_alpha; + osinfo_install_script_avatar_get_width; + osinfo_install_script_avatar_get_height; osinfo_install_scriptlist_new; osinfo_install_scriptlist_new_filtered; osinfo_install_scriptlist_new_union; diff --git a/osinfo/osinfo.h b/osinfo/osinfo.h index 204569b..8413a2f 100644 --- a/osinfo/osinfo.h +++ b/osinfo/osinfo.h @@ -36,6 +36,7 @@ #include <osinfo/osinfo_install_config.h> #include <osinfo/osinfo_install_config_param.h> #include <osinfo/osinfo_install_script.h> +#include <osinfo/osinfo_install_script_avatar.h> #include <osinfo/osinfo_install_scriptlist.h> #include <osinfo/osinfo_productlist.h> #include <osinfo/osinfo_product.h> diff --git a/osinfo/osinfo_install_script.c b/osinfo/osinfo_install_script.c index bb4e0f3..529cf05 100644 --- a/osinfo/osinfo_install_script.c +++ b/osinfo/osinfo_install_script.c @@ -49,6 +49,7 @@ struct _OsinfoInstallScriptPrivate gchar *output_prefix; gchar *output_filename; GList *config_param_list; + OsinfoInstallScriptAvatar *avatar; }; enum { @@ -374,6 +375,18 @@ const gchar *osinfo_install_script_get_output_filename(OsinfoInstallScript *scri return osinfo_install_script_get_filename(script); } +void osinfo_install_script_set_avatar(OsinfoInstallScript *script, OsinfoInstallScriptAvatar *avatar) +{ + if (script->priv->avatar) + g_object_unref(script->priv->avatar); + script->priv->avatar = avatar; +} + +const OsinfoInstallScriptAvatar *osinfo_install_script_get_avatar(OsinfoInstallScript *script) +{ + return script->priv->avatar; +} + struct _OsinfoInstallScriptGenerateData { GSimpleAsyncResult *res; OsinfoOs *os; diff --git a/osinfo/osinfo_install_script.h b/osinfo/osinfo_install_script.h index a360098..0d28896 100644 --- a/osinfo/osinfo_install_script.h +++ b/osinfo/osinfo_install_script.h @@ -24,6 +24,7 @@ #include <glib-object.h> #include <gio/gio.h> #include <osinfo/osinfo_install_config_param.h> +#include <osinfo/osinfo_install_script_avatar.h> #ifndef __OSINFO_INSTALL_SCRIPT_H__ #define __OSINFO_INSTALL_SCRIPT_H__ @@ -97,6 +98,10 @@ const gchar *osinfo_install_script_get_output_filename(OsinfoInstallScript *scri const gchar *osinfo_install_script_get_filename(OsinfoInstallScript *script); +void osinfo_install_script_set_avatar(OsinfoInstallScript *script, OsinfoInstallScriptAvatar *avatar); + +const OsinfoInstallScriptAvatar *osinfo_install_script_get_avatar(OsinfoInstallScript *script); + void osinfo_install_script_generate_async(OsinfoInstallScript *script, OsinfoOs *os, OsinfoInstallConfig *config, diff --git a/osinfo/osinfo_install_script_avatar.c b/osinfo/osinfo_install_script_avatar.c new file mode 100644 index 0000000..c79a632 --- /dev/null +++ b/osinfo/osinfo_install_script_avatar.c @@ -0,0 +1,352 @@ +/* + * libosinfo: + * + * Copyright (C) 2009-2012 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: + * Fabiano Fidêncio <fabiano@xxxxxxxxxxxx> + */ + +#include <config.h> + +#include <osinfo/osinfo.h> + +G_DEFINE_TYPE (OsinfoInstallScriptAvatar, osinfo_install_script_avatar, OSINFO_TYPE_ENTITY); + +#define OSINFO_INSTALL_SCRIPT_AVATAR_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), OSINFO_TYPE_INSTALL_SCRIPT_AVATAR, OsinfoInstallScriptAvatarPrivate)) + +/** + * SECTION:osinfo_install_script_avatar + * @short_description: The necessary information to create an Avatar for an + * install script + * @see_also: #OsinfoInstallScript + * + * + * #OsinfoInstallScriptAvatar is an entity for representing all necessary + * information to help the creation of an Avatar file, used in an automated + * installation script + */ + +struct _OsinfoInstallScriptAvatarPrivate +{ + gchar *imagetype; + gchar *extension; + gboolean alpha; + gint width; + gint height; +}; + +enum { + PROP_0, + + PROP_IMAGETYPE, + PROP_EXTENSION, + PROP_ALPHA, + PROP_WIDTH, + PROP_HEIGHT, +}; + +static void +osinfo_install_script_avatar_set_property(GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + OsinfoInstallScriptAvatar *avatar = + OSINFO_INSTALL_SCRIPT_AVATAR (object); + + switch (property_id) + { + case PROP_IMAGETYPE: + avatar->priv->imagetype = g_value_dup_string(value); + break; + case PROP_EXTENSION: + avatar->priv->extension = g_value_dup_string(value); + break; + case PROP_ALPHA: + avatar->priv->alpha = g_value_get_boolean(value); + break; + case PROP_WIDTH: + avatar->priv->width = g_value_get_int(value); + break; + case PROP_HEIGHT: + avatar->priv->height = g_value_get_int(value); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + +static void +osinfo_install_script_avatar_get_property(GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + OsinfoInstallScriptAvatar *avatar = + OSINFO_INSTALL_SCRIPT_AVATAR (object); + + switch (property_id) + { + case PROP_IMAGETYPE: + g_value_set_string(value, avatar->priv->imagetype); + break; + case PROP_EXTENSION: + g_value_set_string(value, avatar->priv->extension); + break; + case PROP_ALPHA: + g_value_set_boolean(value, avatar->priv->alpha); + break; + case PROP_WIDTH: + g_value_set_int(value, avatar->priv->width); + break; + case PROP_HEIGHT: + g_value_set_int(value, avatar->priv->height); + break; + default: + /* We don't have any other property... */ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void +osinfo_install_script_avatar_finalize(GObject *object) +{ + OsinfoInstallScriptAvatar *avatar = + OSINFO_INSTALL_SCRIPT_AVATAR(object); + g_free(avatar->priv->imagetype); + g_free(avatar->priv->extension); + + /* Chain up to the parent class */ + G_OBJECT_CLASS (osinfo_install_script_avatar_parent_class)->finalize (object); +} + +/* Init functions */ +static void +osinfo_install_script_avatar_class_init (OsinfoInstallScriptAvatarClass *klass) +{ + GObjectClass *g_klass = G_OBJECT_CLASS (klass); + GParamSpec *pspec; + + g_klass->set_property = osinfo_install_script_avatar_set_property; + g_klass->get_property = osinfo_install_script_avatar_get_property; + + /** + * OsinfoInstallScriptAvatar:imagetype: + * + * The image type of the avatar file. + **/ + pspec = g_param_spec_string("image-type", + "Image-type", + "Avatar image type", + NULL, + G_PARAM_WRITABLE | + G_PARAM_READABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property(g_klass, + PROP_IMAGETYPE, + pspec); + /** + * OsinfoInstallScriptAvatar:extension: + * + * The extension of the avatar file. + **/ + pspec = g_param_spec_string("extension", + "Extension", + "Parameter extension", + NULL, + G_PARAM_WRITABLE | + G_PARAM_READABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property(g_klass, + PROP_EXTENSION, + pspec); + + /** + * OsinfoInstallScriptAvatar:alpha: + * + * The presence of the alpha channel of the avatar file. + **/ + pspec = g_param_spec_boolean("alpha", + "Alpha", + "Parameter alpha", + FALSE, + G_PARAM_WRITABLE | + G_PARAM_READABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property(g_klass, + PROP_ALPHA, + pspec); + + /** + * OsinfoInstallScriptAvatar:width: + * + * The width size (in pixels) of the avatar file. + **/ + pspec = g_param_spec_int("width", + "Width", + "Parameter width", + -1, + G_MAXINT, + -1, + G_PARAM_WRITABLE | + G_PARAM_READABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property(g_klass, + PROP_WIDTH, + pspec); + + /** + * OsinfoInstallScriptAvatar:height: + * + * The height size (in pixels) of the avatar file. + **/ + pspec = g_param_spec_int("height", + "Height", + "Parameter height", + -1, + G_MAXINT, + -1, + G_PARAM_WRITABLE | + G_PARAM_READABLE | + G_PARAM_CONSTRUCT_ONLY | + G_PARAM_STATIC_NAME | + G_PARAM_STATIC_NICK | + G_PARAM_STATIC_BLURB); + g_object_class_install_property(g_klass, + PROP_HEIGHT, + pspec); + + + g_klass->finalize = osinfo_install_script_avatar_finalize; + + g_type_class_add_private (klass, sizeof (OsinfoInstallScriptAvatarPrivate)); +} + +static void +osinfo_install_script_avatar_init (OsinfoInstallScriptAvatar *avatar) +{ + OsinfoInstallScriptAvatarPrivate *priv; + avatar->priv = priv = OSINFO_INSTALL_SCRIPT_AVATAR_GET_PRIVATE(avatar); +} + + +/** + * osinfo_install_script_avatar_new: + * @type: the image type of the avatar file + * @extension: the avatar file extension + * @alpha: the presence of the alpha channel in the avatar file + * @width: the width size (in pixels) of the avatar file + * @height: the height size (in pixels) of the avatar file + * + * Construct a new user avatar file to a #OsinfoInstallScript. + * + * Returns: (transfer full): the new user avatar + */ +OsinfoInstallScriptAvatar *osinfo_install_script_avatar_new(const gchar *mimetype, + const gchar *extension, + gboolean alpha, + gint width, + gint height) +{ + return g_object_new(OSINFO_TYPE_INSTALL_SCRIPT_AVATAR, + "image type", mimetype, + "extension", extension, + "alpha", alpha, + "width", width, + "height", height, + NULL); +} + +/** + * osinfo_install_script_avatar_get_mimetype: + * @avatar: the install script avatar + * + * Returns: (transfer none): the image type of the avatar file + */ +const gchar *osinfo_install_script_avatar_get_imagetype(const OsinfoInstallScriptAvatar *avatar) +{ + return avatar->priv->imagetype; +} + +/** + * osinfo_install_script_avatar_get_extension: + * @avatar: the install script avatar + * + * Returns: (transfer none): the extension of the avatar file + */ +const gchar *osinfo_install_script_avatar_get_extension(const OsinfoInstallScriptAvatar *avatar) +{ + return avatar->priv->extension; +} + +/** + * osinfo_install_script_avatar_has_alpha: + * @avatar: the install script avatar + * + * Returns: (transfer none): the presence of the alpha channel in the avatar file + */ +gboolean osinfo_install_script_avatar_has_alpha(const OsinfoInstallScriptAvatar *avatar) +{ + return avatar->priv->alpha; +} + +/** + * osinfo_install_script_avatar_get_width: + * @avatar: the install script avatar + * + * Returns: (transfer none): the width size (in pixels) of the avatar file + */ +gint osinfo_install_script_avatar_get_width(const OsinfoInstallScriptAvatar *avatar) +{ + return avatar->priv->width; +} + +/** + * osinfo_install_script_avatar_get_height: + * @avatar: the install script avatar + * + * Returns: (transfer none): the heigth size (in pixels) of the avatar file + */ +gint osinfo_install_script_avatar_get_heigth(const OsinfoInstallScriptAvatar *avatar) +{ + return avatar->priv->height; +} + +/* + * Local variables: + * indent-tabs-mode: nil + * c-indent-level: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/osinfo/osinfo_install_script_avatar.h b/osinfo/osinfo_install_script_avatar.h new file mode 100644 index 0000000..0d59be8 --- /dev/null +++ b/osinfo/osinfo_install_script_avatar.h @@ -0,0 +1,84 @@ +/* + * libosinfo: OS installation avatar + * + * Copyright (C) 2009-2012 Red Hat, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Authors: + * Fabiano Fidêncio <fabiano@xxxxxxxxxxxx> + */ + +#include <glib-object.h> + +#ifndef __OSINFO_INSTALL_SCRIPT_AVATAR_H__ +#define __OSINFO_INSTALL_SCRIPT_AVATAR_H__ + +/* + * Type macros. + */ +#define OSINFO_TYPE_INSTALL_SCRIPT_AVATAR (osinfo_install_script_avatar_get_type ()) +#define OSINFO_INSTALL_SCRIPT_AVATAR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), OSINFO_TYPE_INSTALL_SCRIPT_AVATAR, OsinfoInstallScriptAvatar)) +#define OSINFO_IS_INSTALL_SCRIPT_AVATAR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), OSINFO_TYPE_INSTALL_SCRIPT_AVATAR)) +#define OSINFO_INSTALL_SCRIPT_AVATAR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), OSINFO_TYPE_INSTALL_SCRIPT_AVATAR, OsinfoInstallScriptAvatarClass)) +#define OSINFO_IS_INSTALL_SCRIPT_AVATAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), OSINFO_TYPE_INSTALL_SCRIPT_AVATAR)) +#define OSINFO_INSTALL_SCRIPT_AVATAR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), OSINFO_TYPE_INSTALL_SCRIPT_AVATAR, OsinfoInstallScriptAvatarClass)) + +typedef struct _OsinfoInstallScriptAvatar OsinfoInstallScriptAvatar; +typedef struct _OsinfoInstallScriptAvatarClass OsinfoInstallScriptAvatarClass; +typedef struct _OsinfoInstallScriptAvatarPrivate OsinfoInstallScriptAvatarPrivate; + +/* object */ +struct _OsinfoInstallScriptAvatar +{ + OsinfoEntity parent_instance; + /* public */ + + /* private */ + OsinfoInstallScriptAvatarPrivate *priv; +}; + +/* class */ +struct _OsinfoInstallScriptAvatarClass +{ + OsinfoEntityClass parent_class; + + /* class members */ +}; + +GType osinfo_install_script_avatar_get_type(void); + +OsinfoInstallScriptAvatar *osinfo_install_script_avatar_new(const gchar *mimetype, const gchar *extension, gboolean alpha, gint width, gint height); + +const gchar *osinfo_install_script_avatar_get_imagetype(const OsinfoInstallScriptAvatar *avatar); + +const gchar *osinfo_install_script_avatar_get_extension(const OsinfoInstallScriptAvatar *avatar); + +gboolean osinfo_install_script_avatar_has_alpha(const OsinfoInstallScriptAvatar *avatar); + +gint osinfo_install_script_avatar_get_width(const OsinfoInstallScriptAvatar *avatar); + +gint osinfo_install_script_avatar_get_heigth(const OsinfoInstallScriptAvatar *avatar); + + + +#endif /* __OSINFO_INSTALL_CONFIG_PARAM_H__ */ +/* + * Local variables: + * indent-tabs-mode: nil + * c-indent-level: 4 + * c-basic-offset: 4 + * End: + */ diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c index 404e5b9..04524e0 100644 --- a/osinfo/osinfo_loader.c +++ b/osinfo/osinfo_loader.c @@ -568,7 +568,62 @@ static void osinfo_loader_install_config_param(OsinfoLoader *loader, g_free(nodes); } +static void osinfo_loader_install_script_avatar(OsinfoLoader *loader, + OsinfoEntity *entity, + xmlXPathContextPtr ctxt, + xmlNodePtr root, + GError **err) +{ + gchar *imagetype, *extension, *ascii_alpha, *ascii_width, *ascii_height; + OsinfoInstallScriptAvatar *avatar; + gboolean alpha; + gint width, height; + + imagetype = osinfo_loader_string("string(./avatar/image-type)", ctxt, err); + if (error_is_set(err)) + return; + + extension = osinfo_loader_string("string(./avatar/extension)", ctxt, err); + if (error_is_set(err)) + return; + + ascii_alpha = osinfo_loader_string("string(./avatar/alpha)", ctxt, err); + if (error_is_set(err)) + return; + ascii_width = osinfo_loader_string("string(./avatar/width)", ctxt, err); + if (error_is_set(err)) + return; + + ascii_height = osinfo_loader_string("string(./avatar/height)", ctxt, err); + if (error_is_set(err)) + return; + + if (!imagetype || + !extension || + !ascii_alpha || + !ascii_width || + !ascii_height) + return; + + alpha = (g_strcmp0(ascii_alpha, "true") == 0) ? TRUE : FALSE; + width = atoi(ascii_width); + height = atoi(ascii_height); + + avatar = osinfo_install_script_avatar_new(imagetype, + extension, + alpha, + width, + height); + + osinfo_install_script_set_avatar(OSINFO_INSTALL_SCRIPT(entity), avatar); + + g_free(imagetype); + g_free(extension); + g_free(ascii_alpha); + g_free(ascii_width); + g_free(ascii_height); +} static void osinfo_loader_install_script(OsinfoLoader *loader, xmlXPathContextPtr ctxt, @@ -630,6 +685,12 @@ static void osinfo_loader_install_script(OsinfoLoader *loader, root, err); + osinfo_loader_install_script_avatar(loader, + OSINFO_ENTITY(installScript), + ctxt, + root, + err); + osinfo_db_add_install_script(loader->priv->db, installScript); return; -- 1.7.11.4