.gear/rules | 2 + .../tags/77d01d55243d306fafa606188a9d286ff1e95b8a | 6 + .gear/tags/list | 1 + Makefile | 2 +- etc/vztt.conf.in | 2 +- include/template.h | 3 +- include/util.h | 4 - include/vzcommon.h | 6 +- scripts/ovz-template-converter.in | 10 +- src/apt.c | 50 +++---- src/cache.c | 1 + src/env_compat.c | 6 - src/misc.c | 2 +- src/modify.c | 1 - src/pfcache.c | 2 +- src/template.c | 16 +- src/tmplset.c | 19 ++- src/transaction.c | 21 +-- src/util.c | 45 ------ src/vztt.c | 1 + src/yum.c | 19 +-- src/zypper.c | 6 - targets.list | 2 + vztt.spec | 165 +++++++++++++++++++++ 24 files changed, 250 insertions(+), 142 deletions(-) diff --git a/.gear/rules b/.gear/rules new file mode 100644 index 0000000..26340af --- /dev/null +++ b/.gear/rules @@ -0,0 +1,2 @@ +tar: v@version@:. +diff: v@version@:. . name=@name@-@version@.patch diff --git a/.gear/tags/77d01d55243d306fafa606188a9d286ff1e95b8a b/.gear/tags/77d01d55243d306fafa606188a9d286ff1e95b8a new file mode 100644 index 0000000..b43689d --- /dev/null +++ b/.gear/tags/77d01d55243d306fafa606188a9d286ff1e95b8a @@ -0,0 +1,6 @@ +object 714062f92464d46e41f3728239a201d08572faa8 +type commit +tag v7.0.83.5 +tagger Apache 1649453105 +0300 + +AUTO v7.0.83.5 tag diff --git a/.gear/tags/list b/.gear/tags/list new file mode 100644 index 0000000..f3302a5 --- /dev/null +++ b/.gear/tags/list @@ -0,0 +1 @@ +77d01d55243d306fafa606188a9d286ff1e95b8a v7.0.83.5 diff --git a/Makefile b/Makefile index 2f41033..395a33a 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ MANDIR=$(DESTDIR)/usr/share/man MAN8DIR=$(MANDIR)/man8 MAN5DIR=$(MANDIR)/man5 CONFDIR=$(DESTDIR)/etc/vztt -VZCONFDIR=$(DESTDIR)/vz/template/conf/vztt +VZCONFDIR=$(DESTDIR)/var/lib/vz/template/conf/vztt INCDIR=$(DESTDIR)/usr/include/vz LIBEXECDIR=$(DESTDIR)/usr/libexec diff --git a/etc/vztt.conf.in b/etc/vztt.conf.in index 2516771..210a34c 100644 --- a/etc/vztt.conf.in +++ b/etc/vztt.conf.in @@ -33,5 +33,5 @@ #ARCHIVE="lz4" # Attention: Do not add *_SERVER variable to this file. -# Use /vz/template/conf/vztt/url.map +# Use /var/lib/vz/template/conf/vztt/url.map diff --git a/include/template.h b/include/template.h index 44d31e1..5b1ce4a 100644 --- a/include/template.h +++ b/include/template.h @@ -226,7 +226,8 @@ int app_tmpl_list_add(struct app_tmpl_list *ls, struct app_tmpl *tmpl); /* find app template with name in list */ struct app_tmpl_list_el *app_tmpl_list_find( struct app_tmpl_list *ls, - char *name); + char *name, + int need_reorder); /* remove element from list and return pointer to previous elem This function does not free content */ diff --git a/include/util.h b/include/util.h index 4d0ed14..7310380 100644 --- a/include/util.h +++ b/include/util.h @@ -322,10 +322,6 @@ int create_ve_layout(unsigned long velayout, char *ve_private); int create_veroot_unjump_checker(struct Transaction *pm, struct string_list *envs); -int get_ploop_disk_stats(const char *ctid, struct vzctl_disk_stats *stats); - -int set_trusted(const char *ctid, const char *flag); - #ifdef __cplusplus } #endif diff --git a/include/vzcommon.h b/include/vzcommon.h index 961d1b9..8d1181b 100644 --- a/include/vzcommon.h +++ b/include/vzcommon.h @@ -65,7 +65,7 @@ /* TODO: defined in vzctl/libvzctl.h */ #undef VZ_DIR -#define VZ_DIR "/vz/" +#define VZ_DIR "/var/lib/vz/" #define TEMPLATE_DIR VZ_DIR "template/" #define PM_LIST_SUBDIR "list/" @@ -77,8 +77,8 @@ #define MAXVERSIONLEN 100 #define VZCTLPATH "/dev/vzctl" #define VZCTL "/usr/sbin/vzctl" -#define VZ_PKGENV_DIR "/vz/pkgenv/" -#define VZ_TMP_DIR "/vz/tmp/" +#define VZ_PKGENV_DIR "/var/lib/vz/pkgenv/" +#define VZ_TMP_DIR "/var/lib/vz/tmp/" #define TAR "tar" #define PRL_COMPRESS "prlcompress" #define PRL_COMPRESS_FP "/bin/" PRL_COMPRESS diff --git a/scripts/ovz-template-converter.in b/scripts/ovz-template-converter.in index 973d4a3..aaf1b3c 100755 --- a/scripts/ovz-template-converter.in +++ b/scripts/ovz-template-converter.in @@ -95,6 +95,8 @@ if (not len(templateinfo) in (3, 4)): print("Error: Incorrect template file format", args.template, "(should be distribution-version-arch[-setname].tar.gz)") sys.exit(73) +dist = templateinfo[0] + arch = templateinfo[2] if arch != "x86_64" and arch != "x86": print("Error: Incorrect architecture or template file format", args.template, "(should be distribution-version-arch[-setname].tar.gz)") @@ -194,7 +196,7 @@ except: print("Error: Failed to create cache file tarball") sys.exit(73) try: - subprocess.call(["lz4", "-1", tarpath, lz4path], **kwargs) + subprocess.call(["lz4", "-9", tarpath, lz4path], **kwargs) except: print("Error: Failed to LZ4-compress cache file tarball") sys.exit(73) @@ -226,4 +228,8 @@ if (not os.path.exists(defaultconfpath)): package_manager_file = ''.join([defaultconfpath, "/", "package_manager"]) if (not os.path.exists(package_manager_file)): - writeconfig(package_manager_file, '') + writeconfig(package_manager_file, 'rpm') + +distribution_file = ''.join([defaultconfpath, "/", "distribution"]) +if (not os.path.exists(distribution_file)): + writeconfig(distribution_file, dist) diff --git a/src/apt.c b/src/apt.c index a48a10b..03c170f 100644 --- a/src/apt.c +++ b/src/apt.c @@ -694,8 +694,7 @@ static int apt_run( struct AptTransaction *apt, const char *cmd, \ const char *action, \ - struct string_list *packages, - const char *ctid) + struct string_list *packages) { int rc; struct string_list args; @@ -734,22 +733,20 @@ static int apt_run( /* add proxy in environments */ if ((rc = add_proxy_env(&apt->http_proxy, HTTP_PROXY, &envs))) - goto cleanup; + return rc; if ((rc = add_proxy_env(&apt->ftp_proxy, FTP_PROXY, &envs))) - goto cleanup; + return rc; if ((rc = add_proxy_env(&apt->https_proxy, HTTPS_PROXY, &envs))) - goto cleanup; + return rc; /* add templates environments too */ if ((rc = add_tmpl_envs(apt->tdata, &envs))) - goto cleanup; - - if (!EMPTY_CTID(ctid)) - set_trusted(ctid, "1"); + return rc; /* run cmd from chroot environment */ - rc = run_from_chroot((char *)cmd, apt->envdir, apt->debug, \ - apt->ign_pm_err, &args, &envs, apt->osrelease); + if ((rc = run_from_chroot((char *)cmd, apt->envdir, apt->debug, \ + apt->ign_pm_err, &args, &envs, apt->osrelease))) + return rc; apt_remove_config(apt); @@ -757,30 +754,21 @@ static int apt_run( string_list_clean(&args); string_list_clean(&envs); -cleanup: - if (!EMPTY_CTID(ctid)) - set_trusted(ctid, "0"); - return rc; + return 0; } /* run dpkg command */ -static int dpkg_run(struct AptTransaction *apt, char *cmd, struct string_list *args, const char* ctid) +static int dpkg_run(struct AptTransaction *apt, char *cmd, struct string_list *args) { int rc; struct string_list envs; string_list_init(&envs); - if (!EMPTY_CTID(ctid)) - set_trusted(ctid, "1"); - /* run cmd from chroot environment */ rc = run_from_chroot(cmd, apt->envdir, apt->debug, apt->ign_pm_err, args, &envs, apt->osrelease); - if (!EMPTY_CTID(ctid)) - set_trusted(ctid, "0"); - return rc; } @@ -805,7 +793,7 @@ int apt_update_metadata(struct Transaction *pm, const char *name) will created in template area */ pm->data_source = OPT_DATASOURCE_REMOTE; string_list_add(&apt->options, "APT::Get::List-Cleanup=false"); - rc = apt_run(apt, APT_GET_BIN, "update", NULL, pm->ctid); + rc = apt_run(apt, APT_GET_BIN, "update", NULL); pm->data_source = data_source; if (rc) return rc; @@ -824,7 +812,7 @@ int apt_update_metadata(struct Transaction *pm, const char *name) /* get full packages list and update metadata */ pm->data_source = OPT_DATASOURCE_REMOTE; - rc = apt_run(apt, APT_CACHE_BIN, "pkgnames", NULL, pm->ctid); + rc = apt_run(apt, APT_CACHE_BIN, "pkgnames", NULL); pm->data_source = data_source; if (rc) return rc; @@ -995,7 +983,7 @@ int apt_action( progress(progress_stage, 0, apt->progress_fd); - rc = apt_run(apt, bin, cmd, packages, pm->ctid); + rc = apt_run(apt, bin, cmd, packages); progress(progress_stage, 100, apt->progress_fd); @@ -1766,7 +1754,7 @@ int apt_create_init_cache( string_list_add(&apt->dpkg_options, "--force-overwrite"); string_list_add(&apt->dpkg_options, "--force-downgrade"); apt->download_only = 1; - if ((rc = apt_run(apt, APT_GET_BIN, "install", &ls, pm->ctid))) + if ((rc = apt_run(apt, APT_GET_BIN, "install", &ls))) return rc; apt->download_only = 0; string_list_clean(&pm->options); @@ -1805,7 +1793,7 @@ int apt_create_init_cache( apt_get_pkg_dirname(pkg, buf+strlen(buf), sizeof(buf)-strlen(buf)); strncat(buf, DEB_EXT, sizeof(buf)-strlen(buf)-1); string_list_add(&opts, buf); - if ((rc = dpkg_run(apt, DPKG_BIN, &opts, pm->ctid))) + if ((rc = dpkg_run(apt, DPKG_BIN, &opts))) goto cleanup; } progress(PROGRESS_PKGMAN_INST_PACKAGES1, 100, pm->progress_fd); @@ -1834,7 +1822,7 @@ int apt_create_init_cache( strncat(buf, DEB_EXT, sizeof(buf)-strlen(buf)-1); string_list_add(&opts, buf); - if ((rc = dpkg_run(apt, DPKG_BIN, &opts, pm->ctid))) + if ((rc = dpkg_run(apt, DPKG_BIN, &opts))) goto cleanup; } @@ -1924,7 +1912,7 @@ int apt_create_post_init_cache( strncat(path, DEB_EXT, sizeof(path)-strlen(path)-1); string_list_add(&opts, path); } - if ((rc = dpkg_run(apt, DPKG_BIN, &opts, pm->ctid))) + if ((rc = dpkg_run(apt, DPKG_BIN, &opts))) goto cleanup; } @@ -1961,7 +1949,7 @@ int apt_create_post_init_cache( } if (string_list_size(packages1)) { - if ((rc = dpkg_run(apt, DPKG_BIN, &opts, pm->ctid))) + if ((rc = dpkg_run(apt, DPKG_BIN, &opts))) goto cleanup; snprintf(cmd, sizeof(cmd), \ @@ -2364,7 +2352,7 @@ int apt_last_repair_fetch( data_source = pm->data_source; pm->data_source = OPT_DATASOURCE_REMOTE; string_list_add(&pm->options, "APT::Get::List-Cleanup=false"); - rc = apt_run(apt, APT_GET_BIN, "update", NULL, pm->ctid); + rc = apt_run(apt, APT_GET_BIN, "update", NULL); string_list_clean(&pm->options); pm->data_source = data_source; if (rc) diff --git a/src/cache.c b/src/cache.c index b2250bd..d495e6c 100644 --- a/src/cache.c +++ b/src/cache.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include diff --git a/src/env_compat.c b/src/env_compat.c index 92c763a..464470d 100644 --- a/src/env_compat.c +++ b/src/env_compat.c @@ -755,16 +755,10 @@ static int remove_pkg_byrpm(struct Transaction *pm, if ((rc = add_tmpl_envs(pm->tdata, &envs))) return rc; - if (!EMPTY_CTID(pm->ctid)) - set_trusted(pm->ctid, "1"); - /* run cmd from chroot environment */ rc = run_from_chroot("/usr/lib/rpm/rpmi", pm->envdir, pm->debug, pm->ign_pm_err, &args, &envs, pm->osrelease); - if (!EMPTY_CTID(pm->ctid)) - set_trusted(pm->ctid, "0"); - /* free mem */ string_list_clean(&args); string_list_clean(&envs); diff --git a/src/misc.c b/src/misc.c index 74473c5..aefa8b2 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1662,7 +1662,7 @@ int vztt2_remove_app_template(char *app, struct options_vztt *opts_vztt) goto cleanup_0; /* check that this template really exist */ - if ((a = app_tmpl_list_find(&tmpl->avail_apps, app)) == NULL) { + if ((a = app_tmpl_list_find(&tmpl->avail_apps, app, 0)) == NULL) { vztt_logger(0, 0, "EZ apptemplate %s for %s does not exist", \ app, opts_vztt->for_obj); rc = VZT_TMPL_NOT_EXIST; diff --git a/src/modify.c b/src/modify.c index a3ea3bb..24b4950 100644 --- a/src/modify.c +++ b/src/modify.c @@ -174,7 +174,6 @@ static int cmd_modify( if ((rc = tmpl_lock(&gc, tmpl->base, LOCK_READ, opts_vztt->flags, &lockdata))) goto cleanup_3; - switch(cmd) { case VZPKG_INSTALL: /* Install packages into VE */ diff --git a/src/pfcache.c b/src/pfcache.c index f2ef18b..7d8dc16 100644 --- a/src/pfcache.c +++ b/src/pfcache.c @@ -33,7 +33,7 @@ #include #include #include -#include +#include #include #include #include diff --git a/src/template.c b/src/template.c index ac4cb20..b5b7042 100644 --- a/src/template.c +++ b/src/template.c @@ -921,13 +921,25 @@ int app_tmpl_list_add(struct app_tmpl_list *ls, struct app_tmpl *tmpl) /* find app template with name in list */ struct app_tmpl_list_el *app_tmpl_list_find( struct app_tmpl_list *ls, - char *name) + char *name, + int need_reorder) { struct app_tmpl_list_el *p; for (p = ls->tqh_first; p != NULL; p = p->e.tqe_next) { - if (strcmp(name, p->tmpl->name) == 0) + if (strcmp(name, p->tmpl->name) == 0) { + /* Move found template to the end of the queue. + This will bring the list of templates to the same + order as order of cmdline arguments. + So e.g. scripts of templates will be launched in the + same order as templates are listed in the cmdline + */ + if (need_reorder == 1) { + TAILQ_REMOVE(ls, p, e); + TAILQ_INSERT_TAIL(ls, p, e); + } return p; + } } return NULL; } diff --git a/src/tmplset.c b/src/tmplset.c index 7fd599d..9447c94 100644 --- a/src/tmplset.c +++ b/src/tmplset.c @@ -751,7 +751,7 @@ int tmplset_init( string_list_init(&tmpls); string_list_for_each(apps, p) { - a = app_tmpl_list_find(&(*tmpl)->avail_apps, p->s); + a = app_tmpl_list_find(&(*tmpl)->avail_apps, p->s, 0); if (a == NULL) { not_found = 1; string_list_add(&tmpls, p->s); @@ -780,7 +780,7 @@ int tmplset_init( /* find available apps in and copy to used apps list in success*/ string_list_for_each(apps, p) { - a = app_tmpl_list_find(&(*tmpl)->avail_apps, p->s); + a = app_tmpl_list_find(&(*tmpl)->avail_apps, p->s, 0); if (a == NULL) { vztt_logger(0, 0, "App template %s not found", p->s); rc = VZT_TMPL_NOT_EXIST; @@ -913,7 +913,14 @@ int tmplset_mark( return 0; } + struct string_list found; + string_list_init(&found); + string_list_for_each(ls, p) { + if (string_list_find(&found, p->s)) { + continue; + } + string_list_add(&found, p->s); if (mask & TMPLSET_MARK_OS) { if (strcmp(t->os->name, p->s) == 0) t->os->marker = 1; @@ -925,13 +932,13 @@ int tmplset_mark( } } if (mask & TMPLSET_MARK_AVAIL_APP_LIST) { - if ((a = app_tmpl_list_find(&t->avail_apps, p->s))) { + if ((a = app_tmpl_list_find(&t->avail_apps, p->s, 1))) { a->tmpl->marker = 1; continue; } } if (mask & TMPLSET_MARK_USED_APP_LIST) { - if ((a = app_tmpl_list_find(&t->used_apps, p->s))) { + if ((a = app_tmpl_list_find(&t->used_apps, p->s, 1))) { a->tmpl->marker = 1; continue; } @@ -1702,7 +1709,7 @@ int tmplset_find_upgrade( in packages mode */ continue; } - d = app_tmpl_list_find(&(*dst)->avail_apps, s->tmpl->name); + d = app_tmpl_list_find(&(*dst)->avail_apps, s->tmpl->name, 0); if (d != NULL) { rc = app_tmpl_list_add(&(*dst)->used_apps, d->tmpl); if (rc) @@ -1823,7 +1830,7 @@ int tmplset_check_for_update( if (strcmp(t->os->name, s->s) == 0) continue; } - if (app_tmpl_list_find(&t->used_apps, s->s) == NULL) { + if (app_tmpl_list_find(&t->used_apps, s->s, 0) == NULL) { if (rc == 0) vztt_logger(0, 0, "Template(s) "\ "does not installed into CT:"); diff --git a/src/transaction.c b/src/transaction.c index 2f7c05f..e85157d 100644 --- a/src/transaction.c +++ b/src/transaction.c @@ -469,7 +469,6 @@ int add_tmpl_envs( return rc; } -#define VIRT_OSRELEASE "/proc/sys/kernel/virt_osrelease" #define K_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c)) #define OSRELEASE_SIZE 10 #define STACK_SIZE 2 * 4096 @@ -538,7 +537,7 @@ static int run_clone(void *data) { struct clone_params *params; char osrelease[OSRELEASE_SIZE] = ""; - int dir_fd, fd, osrelease_fd; + int dir_fd, fd; int rc = 0; params = data; @@ -547,24 +546,6 @@ static int run_clone(void *data) if ((rc = change_osrelease(params->osrelease, osrelease, OSRELEASE_SIZE))) return rc; - /* Apply the osrelease hack */ - if (osrelease[0] != '\0') - { - if ((osrelease_fd = open(VIRT_OSRELEASE, - O_RDWR | O_TRUNC)) < 0) { - vztt_logger(-1, errno, "Can't open " VIRT_OSRELEASE); - return VZT_CANT_OPEN; - } - if ((write(osrelease_fd, osrelease, - strlen(osrelease))) <= 0) - { - vztt_logger(-1, errno, "Can't write to " VIRT_OSRELEASE); - close(osrelease_fd); - return VZT_CANT_WRITE; - } - close(osrelease_fd); - } - /* open /dev/null in root, because of it is absent in environments */ fd = open("/dev/null", O_WRONLY); diff --git a/src/util.c b/src/util.c index c6a14d0..7666cd9 100644 --- a/src/util.c +++ b/src/util.c @@ -2178,48 +2178,3 @@ int create_veroot_unjump_checker(struct Transaction *pm, struct string_list *env return rc; } - -int get_ploop_disk_stats(const char *ctid, struct vzctl_disk_stats *stats) { - int rc = 0, err; - struct vzctl_env_handle *h; - - h = vzctl2_env_open(ctid, VZCTL_CONF_SKIP_NON_EXISTS, &err); - if (h == NULL) { - vztt_logger(0, 0, "vzctl2_env_open %s: %s", - ctid, vzctl2_get_last_error()); - return VZT_CANT_LOCK; - } - - rc = vzctl2_env_get_disk_stats(h, "{00000000-0000-0000-0000-000000000000}", stats, sizeof(*stats)); - - vzctl2_env_close(h); - - return rc; -} - -int set_trusted(const char *ctid, const char *flag) { - int rc = 0, fd = 0; - struct vzctl_disk_stats st = {}; - char buf[PATH_MAX]; - - if ((rc = get_ploop_disk_stats(ctid, &st))) - return vztt_error(VZT_PLOOP_ERROR, rc, "Failed to get ploop stats"); - - snprintf(buf, sizeof(buf), "/sys/devices/virtual/block/%s/ptune/trusted", st.device + 5); - - if ((fd = open(buf, O_WRONLY)) == -1) { - rc = VZT_PLOOP_ERROR; - vztt_logger(2, errno, "Can't open ploop trusted %s", buf); - goto cleanup; - } - - if (write(fd, flag, 1) == -1) { - rc = VZT_PLOOP_ERROR; - vztt_logger(2, errno, "Can't write ploop trusted %s", buf); - } - -cleanup: - if (fd) - close(fd); - return rc; -} diff --git a/src/vztt.c b/src/vztt.c index b56d874..435a859 100644 --- a/src/vztt.c +++ b/src/vztt.c @@ -1555,6 +1555,7 @@ int main(int argc, char **argv) } break; case VZTT_CMD_UPDATE_CACHE: + opts_vztt->flags |= OPT_VZTT_UPDATE_CACHE; if (argc == ind) { /* for all base OS template */ if ((rc = vztt_get_all_base(&base_os))) diff --git a/src/yum.c b/src/yum.c index 82a4a5a..42460a7 100644 --- a/src/yum.c +++ b/src/yum.c @@ -485,7 +485,6 @@ static int yum_run( string_list_add(&args, "--vps"); snprintf(buf, sizeof(buf), "%s", yum->ctid); string_list_add(&args, buf); - set_trusted(yum->ctid, "1"); } if (action == VZPKG_GET) { string_list_add(&args, "--not-resolve"); @@ -656,21 +655,22 @@ static int yum_run( /* add proxy in environments */ if ((rc = add_proxy_env(&yum->http_proxy, HTTP_PROXY, &envs))) - goto cleanup; + return rc; if ((rc = add_proxy_env(&yum->ftp_proxy, FTP_PROXY, &envs))) - goto cleanup; + return rc; if ((rc = add_proxy_env(&yum->https_proxy, HTTPS_PROXY, &envs))) - goto cleanup; + return rc; /* add templates environments too */ if ((rc = add_tmpl_envs(yum->tdata, &envs))) - goto cleanup; + return rc; progress(progress_stage, 0, yum->progress_fd); /* run cmd from chroot environment */ - rc = run_from_chroot(cmd, yum->envdir, yum->debug, - yum->ign_pm_err, &args, &envs, yum->osrelease); + if ((rc = run_from_chroot(cmd, yum->envdir, yum->debug, + yum->ign_pm_err, &args, &envs, yum->osrelease))) + return rc; yum_remove_config(yum); @@ -680,10 +680,7 @@ static int yum_run( progress(progress_stage, 100, yum->progress_fd); -cleanup: - if (!EMPTY_CTID(yum->ctid)) - set_trusted(yum->ctid, "0"); - return rc; + return 0; } /* run yum transaction */ diff --git a/src/zypper.c b/src/zypper.c index 5b3fb9e..540afaf 100644 --- a/src/zypper.c +++ b/src/zypper.c @@ -643,16 +643,10 @@ static int zypper_run( progress(progress_stage, 0, zypper->progress_fd); - if (!EMPTY_CTID(zypper->ctid)) - set_trusted(zypper->ctid, "1"); - /* run cmd from chroot environment */ rc = run_from_chroot(cmd, zypper->envdir, zypper->debug, zypper->ign_pm_err, &args, &envs, zypper->osrelease); - if (!EMPTY_CTID(zypper->ctid)) - set_trusted(zypper->ctid, "0"); - // Save the generated zypp.log on the high debug level if (zypper->debug > 5) { snprintf(buf, sizeof(buf), "%s/zypp.log", zypper->tmpdir); diff --git a/targets.list b/targets.list new file mode 100644 index 0000000..ae53470 --- /dev/null +++ b/targets.list @@ -0,0 +1,2 @@ +vztt dist-vz7-u16 +vztt dist-vz8-alpha diff --git a/vztt.spec b/vztt.spec new file mode 100644 index 0000000..9eff952 --- /dev/null +++ b/vztt.spec @@ -0,0 +1,165 @@ + +%define _libexecdir /usr/libexec +%define confdir /etc/vztt +%define vztempldir /var/lib/vz/template +%define vzconfdir %vztempldir/conf/%name +%define vztt_conf %confdir/vztt.conf +%define nojquota_conf %confdir/nojquota.conf +%define url_map %vzconfdir/url.map +%define url_map_link %confdir/url.map +%define vztmp /var/lib/vz/tmp +%define tmp_url_map %vztmp/tmp_url_map +%define tmp_vztt_conf %vztmp/tmp_vztt_conf +%add_python3_path %_libexecdir + +Name: vztt +Version: 7.0.83.5 +Release: alt1 +Summary: OpenVZ EZ template management tools +Source: %name-%version.tar +Patch: %name-%version.patch +License: GPLv2 +Group: System/Configuration/Other +Url: https://openvz.org/ +Vcs: https://src.openvz.org/scm/ovzl/vztt.git + +Packager: Andrew A. Vasilyev + +ExclusiveArch: x86_64 + +Requires: lib%name = %version-%release +Requires: libploop >= 6.1.0 +Requires: attr +Requires: vztt_checker +Requires: lz4 gzip tar +Requires: e2fsprogs +Requires: python3-module-configobj + +BuildRequires(pre): rpm-build-python3 +BuildRequires: libattr-devel +BuildRequires: glibc-devel-static +BuildRequires: libuuid-devel +BuildRequires: libploop-devel >= 6.1.0 +BuildRequires: libvzctl-devel >= 7.0.16 +BuildRequires: libe2fs-devel + +%description +OpenVZ EZ template management tools are used for software installation +inside Containers. + +%package -n lib%name +Summary: OpenVZ EZ template management API library +Group: System/Libraries +License: GPLv2 or LGPLv2.1 + +%description -n lib%name +OpenVZ EZ template management API library + +%package -n lib%name-devel +Summary: OpenVZ EZ template management API development library +Group: Development/C +License: GPLv2 or LGPLv2.1 +Requires: lib%name = %version-%release + +%description -n lib%name-devel +OpenVZ EZ template management library and include files + +%prep +%setup +%patch -p1 + +%build +%make_build CFLAGS="%optflags" + +%install +%makeinstall_std LIBDIR=%buildroot%_libdir + +# create logrotate config +mkdir -p %buildroot%_logrotatedir +echo "/var/log/vztt.log { + compress + missingok +}" > %buildroot%_logrotatedir/vztt +rm -f %buildroot%_libdir/lib%name.a + +%files +%_sbindir/vzpkg +%dir %_libdir/%name +%_libdir/%name/myinit +%_man8dir/vzpkg.8.* +%dir %confdir +%dir %vztempldir +%dir %vztempldir/conf +%dir %vzconfdir +%config(noreplace) %vztt_conf +%config(noreplace) %nojquota_conf +%config(noreplace) %url_map +%url_map_link +%config(noreplace) %_logrotatedir/vztt +%_libexecdir/* + +%files -n lib%name +%_libdir/lib%name.so.* + +%files -n lib%name-devel +%_includedir/vz/*.h +%_libdir/lib%name.so + +%changelog +* Mon Apr 11 2022 Andrew A. Vasilyev 7.0.83.5-alt1 +- 7.0.83.5 + +* Tue Dec 21 2021 Andrew A. Vasilyev 7.0.83.3-alt1 +- 7.0.83.3 + +* Tue May 04 2021 Andrew A. Vasilyev 7.0.80-alt2 +- BR: +rpm-build-python3 + +* Thu Apr 08 2021 Andrew A. Vasilyev 7.0.80-alt1 +- 7.0.80 + +* Fri Feb 26 2021 Andrew A. Vasilyev 7.0.76-alt1 +- 7.0.76 + +* Wed Jan 20 2021 Andrew A. Vasilyev 7.0.73-alt2 +- add simfs template creation + +* Mon Aug 03 2020 Andrew A. Vasilyev 7.0.73-alt1 +- 7.0.73 + +* Mon Apr 20 2020 Andrew A. Vasilyev 7.0.71-alt1 +- 7.0.71 + +* Wed Apr 15 2020 Andrew A. Vasilyev 7.0.69-alt1 +- 7.0.69 + +* Tue Nov 12 2019 Andrew A. Vasilyev 7.0.68-alt1 +- 7.0.68 + +* Fri Nov 01 2019 Andrew A. Vasilyev 7.0.67-alt1 +- 7.0.67 + +* Fri Oct 11 2019 Andrew A. Vasilyev 7.0.66-alt1 +- 7.0.66 + +* Tue Oct 01 2019 Andrew A. Vasilyev 7.0.65-alt5 +- convert to python3 + +* Thu Sep 12 2019 Andrew A. Vasilyev 7.0.65-alt4 +- spec cleanup + +* Thu Sep 12 2019 Andrew A. Vasilyev 7.0.65-alt3 +- add distribution name to config in template converter + +* Fri Aug 23 2019 Andrew A. Vasilyev 7.0.65-alt2 +- remove static lib +- package_manager file should not be empty + +* Mon Aug 19 2019 Andrew A. Vasilyev 7.0.65-alt1 +- 7.0.65 + +* Sun Nov 04 2018 Alexey Shabalin 7.0.60-alt1 +- 7.0.60 + +* Mon Feb 26 2018 Alexey Shabalin 7.0.57-alt1 +- initial build for ALT