/* * pkg - Package structure * https://rawnix.org * * Copyright (c) 2025 zorz@gmx.com * SPDX-License-Identifier: BSD-2-Clause */ #include "pkg.h" #include #include package_t *package_new(const char *name, const char *path) { package_t *p = xmalloc(sizeof(package_t)); p->name = xstrdup(name); p->path = xstrdup(path); p->version = NULL; p->release = NULL; p->description = NULL; p->url = NULL; p->maintainer = NULL; p->depends = xmalloc(sizeof(strarray_t)); p->makedeps = xmalloc(sizeof(strarray_t)); p->provides = xmalloc(sizeof(strarray_t)); p->variant = xmalloc(sizeof(strarray_t)); strarray_init(p->depends); strarray_init(p->makedeps); strarray_init(p->provides); strarray_init(p->variant); p->loaded = false; return p; } void package_free(package_t *p) { if (!p) return; free(p->name); free(p->path); free(p->version); free(p->release); free(p->description); free(p->url); free(p->maintainer); if (p->depends) { strarray_free(p->depends); free(p->depends); } if (p->makedeps) { strarray_free(p->makedeps); free(p->makedeps); } if (p->provides) { strarray_free(p->provides); free(p->provides); } if (p->variant) { strarray_free(p->variant); free(p->variant); } free(p); }