Support razor 0.5 (atomic transactions).
Don't create repositories with multiple roots.
Filter out "other" arches from yum repositories.
Mark win32 binaries as needing elevated privileges.
2 * Copyright (C) 2010 J. Ali Harlow <ali@juiblex.co.uk>
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 #include <glib-object.h>
25 #include "plover-gtk/package.h"
27 G_DEFINE_TYPE(PloverPackage,plover_package,G_TYPE_OBJECT);
29 typedef struct _PloverPackagePrivate {
30 struct razor_set *set;
31 struct razor_package *pkg;
32 PloverPackageFileStore *file_store;
33 } PloverPackagePrivate;
35 #define PLOVER_PACKAGE_GET_PRIVATE(obj)\
36 G_TYPE_INSTANCE_GET_PRIVATE(obj,\
37 PLOVER_TYPE_PACKAGE,PloverPackagePrivate)
44 static guint signals[N_SIGNALS];
46 static void plover_package_dispose(GObject *obj)
48 PloverPackagePrivate *priv=PLOVER_PACKAGE_GET_PRIVATE(obj);
51 g_object_unref(priv->file_store);
52 priv->file_store=NULL;
54 if (G_OBJECT_CLASS(plover_package_parent_class)->dispose)
55 G_OBJECT_CLASS(plover_package_parent_class)->dispose(obj);
58 static void plover_package_class_init(PloverPackageClass *klass)
60 GObjectClass *oclass=G_OBJECT_CLASS(klass);
61 oclass->dispose=plover_package_dispose;
62 g_type_class_add_private(klass,sizeof(PloverPackagePrivate));
63 signals[CHANGED]=g_signal_newv("changed",
64 G_TYPE_FROM_CLASS(klass),G_SIGNAL_RUN_LAST,NULL,NULL,NULL,
65 g_cclosure_marshal_VOID__VOID,G_TYPE_NONE,0,NULL);
68 static void plover_package_init(PloverPackage *package)
72 PloverPackage *plover_package_new(struct razor_set *set,
73 struct razor_package *pkg)
75 PloverPackage *package;
76 PloverPackagePrivate *priv;
77 package=g_object_new(PLOVER_TYPE_PACKAGE,NULL);
78 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
84 const char *plover_package_get_name(PloverPackage *package)
86 PloverPackagePrivate *priv;
87 const char *name=NULL;
88 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
89 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
90 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_NAME,&name,
95 const char *plover_package_get_summary(PloverPackage *package)
97 PloverPackagePrivate *priv;
98 const char *summary=NULL;
99 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
100 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
101 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_SUMMARY,&summary,
106 const char *plover_package_get_version(PloverPackage *package)
108 PloverPackagePrivate *priv;
109 const char *version=NULL;
110 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
111 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
112 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_VERSION,&version,
117 const char *plover_package_get_license(PloverPackage *package)
119 PloverPackagePrivate *priv;
120 const char *license=NULL;
121 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
122 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
123 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_LICENSE,&license,
128 const char *plover_package_get_arch(PloverPackage *package)
130 PloverPackagePrivate *priv;
131 const char *arch=NULL;
132 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
133 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
134 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_ARCH,&arch,
139 const char *plover_package_get_description(PloverPackage *package)
141 PloverPackagePrivate *priv;
142 const char *description=NULL;
143 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
144 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
145 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_DESCRIPTION,
146 &description,RAZOR_DETAIL_LAST);
150 const char *plover_package_get_URL(PloverPackage *package)
152 PloverPackagePrivate *priv;
153 const char *URL=NULL;
154 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
155 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
156 razor_package_get_details(priv->set,priv->pkg,RAZOR_DETAIL_URL,&URL,
161 GdkPixbuf *plover_package_get_icon(PloverPackage *package)
163 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
167 PloverPackageFileStore *plover_package_get_file_store(PloverPackage *package)
169 PloverPackagePrivate *priv;
170 struct razor_file_iterator *iter;
171 g_return_val_if_fail(PLOVER_IS_PACKAGE(package),NULL);
172 priv=PLOVER_PACKAGE_GET_PRIVATE(package);
173 if (!priv->file_store)
175 iter=razor_file_iterator_create(priv->set,priv->pkg,0);
176 priv->file_store=plover_package_file_store_new(iter);
177 razor_file_iterator_destroy(iter);
179 return priv->file_store;