changequote([,])dnl
fi
+
+# gcc default visibility stuff
+
+have_gcc4=no
+AC_MSG_CHECKING(for -fvisibility)
+AC_COMPILE_IFELSE([
+#if defined(__GNUC__) && (__GNUC__ >= 4)
+#else
+#error Need GCC 4.0 for visibility
+#endif
+int main () { return 0; }
+], have_gcc4=yes)
+
+if test "x$have_gcc4" = "xyes"; then
+ CFLAGS="$CFLAGS -fvisibility=hidden"
+fi
+AC_MSG_RESULT($have_gcc4)
+
+
PKG_CHECK_MODULES(CURL, [libcurl])
AC_SUBST(CURL_CFLAGS)
AC_SUBST(CURL_LIBS)
#include "razor-internal.h"
#include "razor.h"
-void
+RAZOR_EXPORT void
razor_importer_begin_package(struct razor_importer *importer,
const char *name,
const char *version,
}
-void
+RAZOR_EXPORT void
razor_importer_finish_package(struct razor_importer *importer)
{
list_set_array(&importer->package->properties,
array_release(&importer->properties);
}
-void
+RAZOR_EXPORT void
razor_importer_add_details(struct razor_importer *importer,
const char *summary,
const char *description,
importer->package->license = hashtable_tokenize(&importer->details_table, license);
}
-void
+RAZOR_EXPORT void
razor_importer_add_property(struct razor_importer *importer,
const char *name,
uint32_t flags,
}
}
-void
+RAZOR_EXPORT void
razor_importer_add_file(struct razor_importer *importer, const char *name)
{
struct import_entry *e;
e->name = strdup(name);
}
-struct razor_importer *
+RAZOR_EXPORT struct razor_importer *
razor_importer_create(void)
{
struct razor_importer *importer;
}
/* Destroy an importer without creating the set. */
-void
+RAZOR_EXPORT void
razor_importer_destroy(struct razor_importer *importer)
{
/* FIXME: write this */
free(pkgs);
}
-struct razor_set *
+RAZOR_EXPORT struct razor_set *
razor_importer_finish(struct razor_importer *importer)
{
struct razor_set *set;
return pi;
}
-struct razor_package_iterator *
+RAZOR_EXPORT struct razor_package_iterator *
razor_package_iterator_create(struct razor_set *set)
{
struct razor_package_iterator *pi;
return pi;
}
-void
+RAZOR_EXPORT void
razor_package_iterator_init_for_property(struct razor_package_iterator *pi,
struct razor_set *set,
struct razor_property *property)
pi->index = list_first(&property->packages, &set->package_pool);
}
-struct razor_package_iterator *
+RAZOR_EXPORT struct razor_package_iterator *
razor_package_iterator_create_for_property(struct razor_set *set,
struct razor_property *property)
{
return razor_package_iterator_create_with_index(set, index);
}
-struct razor_package_iterator *
+RAZOR_EXPORT struct razor_package_iterator *
razor_package_iterator_create_for_file(struct razor_set *set,
const char *filename)
{
return razor_package_iterator_create_with_index(set, index);
}
-int
+RAZOR_EXPORT int
razor_package_iterator_next(struct razor_package_iterator *pi,
struct razor_package **package,
const char **name,
return valid;
}
-void
+RAZOR_EXPORT void
razor_package_iterator_destroy(struct razor_package_iterator *pi)
{
if (pi->free_index)
free(pi);
}
-struct razor_property_iterator *
+RAZOR_EXPORT struct razor_property_iterator *
razor_property_iterator_create(struct razor_set *set,
struct razor_package *package)
{
return pi;
}
-int
+RAZOR_EXPORT int
razor_property_iterator_next(struct razor_property_iterator *pi,
struct razor_property **property,
const char **name,
return valid;
}
-void
+RAZOR_EXPORT void
razor_property_iterator_destroy(struct razor_property_iterator *pi)
{
free(pi);
int count;
};
-struct razor_package_query *
+RAZOR_EXPORT struct razor_package_query *
razor_package_query_create(struct razor_set *set)
{
struct razor_package_query *pq;
return pq;
}
-void
+RAZOR_EXPORT void
razor_package_query_add_package(struct razor_package_query *pq,
struct razor_package *p)
{
pq->vector[p - packages] = 1;
}
-void
+RAZOR_EXPORT void
razor_package_query_add_iterator(struct razor_package_query *pq,
struct razor_package_iterator *pi)
{
}
}
-struct razor_package_iterator *
+RAZOR_EXPORT struct razor_package_iterator *
razor_package_query_finish(struct razor_package_query *pq)
{
struct razor_package_iterator *pi;
#include <stdlib.h>
#include <stdint.h>
+/* GCC visibility */
+#if defined(__GNUC__) && __GNUC__ >= 4
+#define RAZOR_EXPORT __attribute__ ((visibility("default")))
+#else
+#define RAZOR_EXPORT
+#endif
+
+
void *zalloc(size_t size);
struct array {
{ RAZOR_DETAILS_STRING_POOL, offsetof(struct razor_set, details_string_pool) },
};
-struct razor_set *
+RAZOR_EXPORT struct razor_set *
razor_set_create(void)
{
struct razor_set *set;
return set;
}
-struct razor_set *
+RAZOR_EXPORT struct razor_set *
razor_set_open(const char *filename)
{
struct razor_set *set;
return set;
}
-void
+RAZOR_EXPORT void
razor_set_open_details(struct razor_set *set, const char *filename)
{
struct razor_set_section *s;
close(fd);
}
-void
+RAZOR_EXPORT void
razor_set_open_files(struct razor_set *set, const char *filename)
{
struct razor_set_section *s;
close(fd);
}
-void
+RAZOR_EXPORT void
razor_set_destroy(struct razor_set *set)
{
unsigned int size;
return 0;
}
-int
+RAZOR_EXPORT int
razor_set_write_to_fd(struct razor_set *set, int fd,
enum razor_repo_file_type type)
{
}
}
-int
+RAZOR_EXPORT int
razor_set_write(struct razor_set *set, const char *filename,
enum razor_repo_file_type type)
{
return close(fd);
}
-void
+
+RAZOR_EXPORT void
razor_build_evr(char *evr_buf, int size, const char *epoch,
const char *version, const char *release)
{
snprintf(evr_buf, size, "-%s", release);
}
-int
+RAZOR_EXPORT int
razor_versioncmp(const char *s1, const char *s2)
{
const char *p1, *p2;
return *p1 - *p2;
}
-struct razor_package *
+RAZOR_EXPORT struct razor_package *
razor_set_get_package(struct razor_set *set, const char *package)
{
struct razor_package_iterator *pi;
return p;
}
-void
-razor_package_get_details(struct razor_set *set, struct razor_package *package,
+RAZOR_EXPORT void
+razor_package_get_details(struct razor_set *set,
+ struct razor_package *package,
const char **summary, const char **description,
const char **url, const char **license)
{
*license = &pool[package->license];
}
-struct razor_entry *
+RAZOR_EXPORT struct razor_entry *
razor_set_find_entry(struct razor_set *set,
struct razor_entry *dir, const char *pattern)
{
} while (!((e++)->flags & RAZOR_ENTRY_LAST));
}
-void
+RAZOR_EXPORT void
razor_set_list_files(struct razor_set *set, const char *pattern)
{
struct razor_entry *e;
return r;
}
-void
+RAZOR_EXPORT void
razor_set_list_package_files(struct razor_set *set, const char *name)
{
struct razor_package *package;
* requires for a package have been installed before the package.
**/
-void
+RAZOR_EXPORT void
razor_set_diff(struct razor_set *set, struct razor_set *upstream,
razor_diff_callback_t callback, void *data)
{
razor_package_query_add_package(data, package);
}
-struct razor_package_iterator *
+RAZOR_EXPORT struct razor_package_iterator *
razor_set_create_remove_iterator(struct razor_set *set,
struct razor_set *next)
{
return pi;
}
-struct razor_package_iterator *
+RAZOR_EXPORT struct razor_package_iterator *
razor_set_create_install_iterator(struct razor_set *set,
struct razor_set *next)
{
char new_path[PATH_MAX];
};
-int
+RAZOR_EXPORT int
razor_root_create(const char *root)
{
struct stat buf;
return 0;
}
-struct razor_root *
+RAZOR_EXPORT struct razor_root *
razor_root_open(const char *root)
{
struct razor_root *image;
return image;
}
-struct razor_set *
+RAZOR_EXPORT struct razor_set *
razor_root_open_read_only(const char *root)
{
char path[PATH_MAX];
return razor_set_open(path);
}
-struct razor_set *
+RAZOR_EXPORT struct razor_set *
razor_root_get_system_set(struct razor_root *root)
{
return root->system;
}
-int
+RAZOR_EXPORT int
razor_root_close(struct razor_root *root)
{
razor_set_destroy(root->system);
return 0;
}
-void
+RAZOR_EXPORT void
razor_root_update(struct razor_root *root, struct razor_set *next)
{
razor_set_write_to_fd(next, root->fd, RAZOR_REPO_FILE_MAIN);
printf("wrote %s\n", root->new_path);
}
-int
+RAZOR_EXPORT int
razor_root_commit(struct razor_root *root)
{
/* Make it so. */
}
}
-struct razor_rpm *
+RAZOR_EXPORT struct razor_rpm *
razor_rpm_open(const char *filename)
{
struct razor_rpm *rpm;
return l;
}
-int
+RAZOR_EXPORT int
razor_rpm_install(struct razor_rpm *rpm, const char *root)
{
struct installer installer;
return 0;
}
-int
+RAZOR_EXPORT int
razor_rpm_close(struct razor_rpm *rpm)
{
int err;
return err;
}
-int
+RAZOR_EXPORT int
razor_importer_add_rpm(struct razor_importer *importer, struct razor_rpm *rpm)
{
const char *name, *version, *release, *arch, *summary;
}
}
-struct razor_transaction *
+RAZOR_EXPORT struct razor_transaction *
razor_transaction_create(struct razor_set *system, struct razor_set *upstream)
{
struct razor_transaction *trans;
return trans;
}
-void
+RAZOR_EXPORT void
razor_transaction_install_package(struct razor_transaction *trans,
struct razor_package *package)
{
trans->changes++;
}
-void
+RAZOR_EXPORT void
razor_transaction_remove_package(struct razor_transaction *trans,
struct razor_package *package)
{
trans->changes++;
}
-void
+RAZOR_EXPORT void
razor_transaction_update_package(struct razor_transaction *trans,
struct razor_package *package)
{
}
}
-const char *
+RAZOR_EXPORT const char *
razor_property_relation_to_string(struct razor_property *p)
{
switch (p->flags & RAZOR_PROPERTY_RELATION_MASK) {
}
}
-const char *
+RAZOR_EXPORT const char *
razor_property_type_to_string(struct razor_property *p)
{
switch (p->flags & RAZOR_PROPERTY_TYPE_MASK) {
}
}
-void
+RAZOR_EXPORT void
razor_transaction_update_all(struct razor_transaction *trans)
{
struct razor_package *p;
}
}
-int
+RAZOR_EXPORT int
razor_transaction_resolve(struct razor_transaction *trans)
{
int last = 0;
}
}
-int
+RAZOR_EXPORT int
razor_transaction_describe(struct razor_transaction *trans)
{
struct prop_iter rpi;
return unsatisfied;
}
-int
+RAZOR_EXPORT int
razor_transaction_unsatisfied_property(struct razor_transaction *trans,
const char *name,
uint32_t flags,
return 0;
}
-struct razor_set *
+RAZOR_EXPORT struct razor_set *
razor_transaction_finish(struct razor_transaction *trans)
{
struct razor_merger *merger;
return razor_merger_finish(merger);
}
-void
+RAZOR_EXPORT void
razor_transaction_destroy(struct razor_transaction *trans)
{
transaction_set_release(&trans->system);