{"id":21051340,"url":"https://github.com/ovirt/ovirt-engine","last_synced_at":"2025-05-14T21:09:24.800Z","repository":{"id":37276275,"uuid":"6403019","full_name":"oVirt/ovirt-engine","owner":"oVirt","description":"The oVirt Engine virtualization manager","archived":false,"fork":false,"pushed_at":"2025-03-17T10:21:17.000Z","size":337271,"stargazers_count":541,"open_issues_count":119,"forks_count":275,"subscribers_count":62,"default_branch":"master","last_synced_at":"2025-04-06T14:07:53.203Z","etag":null,"topics":["management","virtualization"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oVirt.png","metadata":{"files":{"readme":"README.adoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-10-26T11:48:34.000Z","updated_at":"2025-04-05T10:34:48.000Z","dependencies_parsed_at":"2023-02-19T20:00:46.632Z","dependency_job_id":"fe2b5078-0854-4a32-bcf2-73b37a9af942","html_url":"https://github.com/oVirt/ovirt-engine","commit_stats":{"total_commits":34773,"total_committers":289,"mean_commits":"120.32179930795847","dds":0.8692088689500475,"last_synced_commit":"4a49a79106b7e2b3a389d22b9bea02ac3c3088a7"},"previous_names":[],"tags_count":513,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oVirt%2Fovirt-engine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oVirt%2Fovirt-engine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oVirt%2Fovirt-engine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oVirt%2Fovirt-engine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oVirt","download_url":"https://codeload.github.com/oVirt/ovirt-engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248753393,"owners_count":21156270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["management","virtualization"],"created_at":"2024-11-19T15:52:41.791Z","updated_at":"2025-04-13T17:37:15.248Z","avatar_url":"https://github.com/oVirt.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"= oVirt Engine - Open Virtualization Manager\n\nimage:https://copr.fedorainfracloud.org/coprs/ovirt/ovirt-master-snapshot/package/ovirt-engine/status_image/last_build.png[link=\"https://copr.fedorainfracloud.org/coprs/ovirt/ovirt-master-snapshot/package/ovirt-engine/\"]\n\n\nWelcome to the oVirt Engine - Open Virtualization Manager source repository.\n\n== How to contribute\n\n=== Submitting patches\n\nPatches are welcome!\n\nPlease submit patches to https://github.com/oVirt/ovirt-engine[github.com:ovirt-engine].\nIf you are not familiar with the review process you can read about\nhttps://ovirt.org/develop/dev-process/working-with-github.html[Working with oVirt on GitHub]\non the https://ovirt.org/[oVirt] website.\n\n\n=== Found a bug or documentation issue?\nTo submit a bug or suggest an enhancement for oVirt Engine please use\nhttps://github.com/oVirt/ovirt-engine/issues[oVirt GitHub issues].\n\nIf you find a documentation issue on the oVirt website please navigate and click \"Report an issue on GitHub\" in the page footer.\n\n\n== Still need help?\nIf you have any other questions, please join https://lists.ovirt.org/admin/lists/users.ovirt.org/[oVirt Users forum / mailing list] and ask there.\n\n\n\n== Developer mode installation\n\n=== Preparations\n\n==== Prerequisites\n\nInstall the following system components:\n\n- java-11-openjdk-devel\n- mime-types or mailcap\n- unzip\n- openssl\n- bind-utils\n- postgresql-server \u003e= 12.0\n- postgresql \u003e= 12.0\n- postgresql-contrib \u003e= 12.0\n- python3-dateutil / dateutil\n- python3-cryptography / cryptography\n- python3-m2crypto / m2crypto\n- python3-psycopg2 / psycopg\n- python3-jinja2 / Jinja2\n- python3-libxml2 / libxml2[python]\n- python3-daemon\n- python3-otopi \u003e= 1.10.0\n- python3-ovirt-setup-lib\n- maven \u003e= 3.5\n- ansible-core \u003e= 2.12.0\n- ansible-runner \u003e= 2.1.3\n- ovirt-ansible-roles \u003e= 1.2.0\n- ovirt-imageio-daemon \u003e= 2.0.6\n- ovirt-engine-metrics (optional)\n- ovirt-provider-ovn (optional)\n- python3-ovirt-engine-sdk4 (optional)\n- ansible-lint / python3-ansible-lint (optional)\n- python3-flake8 / pyflakes (optional)\n- python3-pycodestyle / pycodestyle (optional)\n- python3-isort (optional)\n- python3-distro\n\n==== Note on Java versions\n\nThe project is built and run using java 11. 4.3 branches and earlier are excluded.\n\n==== Prepare your dev environment for java 11\n\n- Use `alternatives` command to configure `java` and `javac` to version 11:\n```console\n$ sudo alternatives --config java\n\nThere are 4 programs which provide 'java'.\n\n  Selection    Command\n-----------------------------------------------\n   1           java-latest-openjdk.x86_64 (/usr/lib/jvm/java-12-openjdk-12.0.1.12-1.rolling.fc30.x86_64/bin/java)\n   2           java (/opt/jdk-9/bin/java)\n   3           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.3.7-5.fc30.x86_64/bin/java)\n*+ 4           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.fc30.x86_64/jre/bin/java)\n\nEnter to keep the current selection[+], or type selection number: 3\n\n$ sudo alternatives --config javac\n\nThere are 2 programs which provide 'javac'.\n\n  Selection    Command\n-----------------------------------------------\n*+ 1           java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.212.b04-0.fc30.x86_64/bin/javac)\n   2           java-11-openjdk.x86_64 (/usr/lib/jvm/java-11-openjdk-11.0.3.7-5.fc30.x86_64/bin/javac)\n\nEnter to keep the current selection[+], or type selection number: 2\n\n- export `JAVA_HOME` if `mvn` is not executing using java-11:\n```console\n#put this in your ~/.bashrc\n$ export JAVA_HOME=/lib/jvm/java-11\n\n$ mvn -v | grep \"Java version: \"\nJava version: 11.0.4, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-11-openjdk-11.0.4.11-0.fc30.x86_64\n```\n\nWildFly 15 is required along with ovirt-engine-wildfly-overlay. Preferred way\nis to install following packages:\n\n- ovirt-engine-wildfly\n- ovirt-engine-wildfly-overlay\n\nBoth packages can be installed from oVirt COPR CentOS repositories.\nRepository list can be updated using the following commands:\n+\n  $ sudo dnf copr enable -y ovirt/ovirt-master-snapshot centos-stream-8\n  $ sudo dnf install -y ovirt-release-master\n\n- For more info see\nhttps://copr.fedorainfracloud.org/coprs/ovirt/ovirt-master-snapshot/[copr master-snapshot repositories].\n\nOVN/OVS is an optional dependency. If you want to use it, check the requirements in the\novirt-engine.spec.in file for a list of packages. Otherwise, you should reply 'No'\nwhen asked about it by engine-setup.\n\n==== System settings\n\nBuild locales requires at least 10240 file descriptors, create the\nfollowing file, replace \u003cuser\u003e with user that is used for building,\nand logout/login:\n\n./etc/security/limits.d/10-nofile.conf\n----\n\u003cuser\u003e hard nofile 10240\n#\u003cuser\u003e soft nofile 10240  # optional, to apply automatically\n----\n\nIf soft limit was not set, before building, apply new limit using:\n\n  $ ulimit -n 10240\n\nDevelopment environment by default uses ports 8080 (HTTP), 8443 (HTTPS), 8787\n(java debug), and 54323 (ovirt-imageio-proxy) so make sure they are accessible\nfrom the outside. For example:\n\n    firewall-cmd --add-port=8080/tcp --permanent\n    firewall-cmd --add-port=8443/tcp --permanent\n    firewall-cmd --add-port=8787/tcp --permanent\n    firewall-cmd --add-port=54323/tcp --permanent\n\nIf you also want to connect to the database from the outside:\n\n   firewall-cmd --add-port=5432/tcp --permanent\n\nFinally, apply changes using:\n\n    firewall-cmd --reload\n\nIf compiling in a virtual machine, javac might experience difficulties on guests with dynamically growing RAM so it's\nbetter to have VM's starting allocation and maximum allocation set to the same value.\n\n==== PostgreSQL accessibility\n\nInitialize PostgreSQL configuration files:\n\n  $ sudo postgresql-setup --initdb --unit postgresql\n\nConfigure PostgreSQL to accept user and password:\n\nLocate `pg_hba.conf` within your distribution, common locations are:\n\n- `/var/lib/pgsql/data/pg_hba.conf`\n- `/etc/postgresql-*/pg_hba.conf`\n- `/etc/postgresql/*/main/pg_hba.conf`\n\nWithin `pg_hba.conf` set method to `password` for `127.0.0.1/32` and\n`::1/128` for IPv4 and IPv6 local connections correspondingly.\n\nIf you want to make postgres accessible from the outside, change `127.0.0.1/32` to `0.0.0.0/0` and `::1/128` to `::/0`.\n\nTune PostgreSQL configuration:\nLocate `postgresql.conf` within your distribution, common locations are:\n\n- `/var/lib/pgsql/data`\n- `/etc/postgresql*`\n\nWithin `postgresql.conf` make sure following values are set:\n\n  max_connections = 150\n  work_mem = 8MB\n  autovacuum_max_workers = 6\n  autovacuum_vacuum_scale_factor = 0.01\n  autovacuum_analyze_scale_factor = 0.075\n  maintenance_work_mem = 64MB\n\nIf you want to connect from the outside, set also:\n\n  listen_addresses = '*'\n\nEnable and start (`systemctl enable postgresql --now`).\n\n==== Database creation\n\nCreate database for ovirt-engine, usually the following sequence should\nwork to create a user named `engine` that owns database named `engine`:\n\n  # su - postgres -c \"psql -d template1\"\n  template1=# create user engine password 'engine';\n  template1=# drop database engine;\n  template1=# create database engine owner engine template template0\n  encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8';\n  template1=# \\q\n\nEnable uuid-ossp extension for the database:\n\n  # su - postgres -c \"psql -d engine\"\n  engine=# CREATE EXTENSION \"uuid-ossp\";\n  engine=# \\q\n\n==== Ansible Runner configration\n\nSince oVirt 4.5 the engine is integrated with ansible-core and ansible-runner,\nso you need to install RPM packages for both, but not additional configuration\nis required.\n\nAll previously used configuration for ansible-runner-service is no longer\nrelevant and 'ansible-runner-service*' packages and configuration can be\nremoved.\n\n=== Development\n\n==== Environment\n\nDevelopment environment is supported only under non-root account. Do\nnot run this sequence as root.\n\nEach instance of application must be installed at different `PREFIX` and\nuse its own database. Throughout this document application is installed\nusing `PREFIX=\"${PREFIX}\"` and engine database and user, these should be\nchanged if a new instance is required. Do not mix different versions of\nproduct with same `PREFIX/database`.\n\nFrom this point on, the `\"${PREFIX}\"` will be used to mark the prefix\nin which you selected to install the development environment.\n\n==== Build\n\nTo build and install ovirt-engine at your home folder under ovirt-engine\ndirectory execute the following command:\n\n  $ make clean install-dev PREFIX=\"${PREFIX}\"\n\nNOTE: `${PREFIX}` should be replaced with the location in which you\nintend to install the environment.\n\nNOTE: Add SKIP_CHECKS=1 to disable tests.\n\n===== Build targets\n\nall:: Build project.\nclean:: Clean project.\nall-dev:: Build project for development.\ninstall-dev:: Install a development environment at PREFIX.\ndist:: Create source tarball out of git repository.\nmaven:: Force execution of maven.\ngenerated-files:: Create file from templates (.in files).\n+\n  When creating new templates, generated files will be automatically appears in .gitignore, updated .gitignore should be part of committing new templates.\n\n\n===== Build customization\n\nThe following `Makefile` environment variables are available for build\ncustomization:\n\nPREFIX:: Installation root directory. Default is `/usr/local`.\n\nBUILD_GWT:: Build GWT. Default is `1`.\n\nBUILD_ALL_USER_AGENTS:: Build GWT applications for all supported\nbrowsers. Default is `0`.\n\nBUILD_LOCALES:: Build GWT applications for all supported locales.\ndefault is `0`.\n\nBUILD_DEV:: Add extra development flags. Usually this should not be\nused directly, as the all-dev sets this. Default is `0`.\n\nBUILD_UT:: Perform unit tests during build. Default is `0`.\n\nBUILD_JAVA_OPTS_MAVEN:: Maven JVM options. Can be defined as\nenvironment variable. Default is empty.\n\nBUILD_JAVA_OPTS_GWT:: GWT compiler and dev mode JVM options. Can be\ndefined as environment variable. default is empty.\n\nNOTE: Note that `BUILD_JAVA_OPTS_GWT` overrides `BUILD_JAVA_OPTS_MAVEN`\nwhen building GWT applications (`BUILD_JAVA_OPTS_MAVEN` settings still\napply, unless overridden).\n\nDEV_BUILD_GWT_DRAFT:: Build \"draft\" version of GWT applications without\noptimizations. This is useful when profiling compiled applications in\nweb browser. Default value is `0`.\n+\nFollowing changes are applied for draft builds:\n- Prevent code and CSS obfuscation.\n- Reduce the level of code optimizations.\n+\nOn local development environment, using GWT Super Dev Mode (see below)\nis preferred, as it automatically disables all optimizations and allows\nyou to recompile the GWT application on the fly.\n+\n\nDEV_BUILD_GWT_SUPER_DEV_MODE:: Allows debugging GWT applications via\nSuper Dev Mode, using web browser's JavaScript development tooling.\nDefault value is `1`.\n+\nDo a local Engine development build as you normally would. Then, start\nthe Super Dev Mode code server as following:\n\n  $ make gwt-debug DEV_BUILD_GWT_SUPER_DEV_MODE=1\n\nIn your browser, open http://127.0.0.1:9876/ and save the \"Dev Mode On\"\nbookmark. Next, visit the GWT application URL (as served from Engine)\nand click \"Dev Mode On\". This allows you to recompile and reload the\nGWT application, reflecting any changes you've made in the UI code.\n\nDEV_EXTRA_BUILD_FLAGS:: Any maven build flags required for building.\n+\nFor example, if your machine is low on memory, limit maximum\nsimultaneous GWT permutation worker threads:\n+\n  DEV_EXTRA_BUILD_FLAGS=\"-Dgwt.compiler.localWorkers=1\"\n\nDEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS:: Any maven build flags required for building GWT applications.\n+\nBy default, GWT applications are\nbuilt for Firefox only. To build for additional browsers, provide\ncomma-separated list of user agents, see\n`frontend/webadmin/modules/pom.xml` for full list.\n+\nFor example, to build for Firefox and Chrome:\n+\n  DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=\"-Dgwt.userAgent=gecko1_8,safari\"\n+\nTo build for all supported browsers, use `BUILD_ALL_USER_AGENTS=1`.\n+\nFor example, to build only the English and Japanese locale:\n+\n  DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=\"-Dgwt.locale=en_US,ja_JP\"\n+\nTo build for all supported locales, use `BUILD_LOCALES=1`.\n\n+\nFor example to build engine without obfuscated Javascript code:\n+\n    DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=\"-Dgwt.style=pretty\"\n+\n\n+\nTo build engine without obfuscated CSS styles:\n+\n    DEV_EXTRA_BUILD_FLAGS_GWT_DEFAULTS=\"-Dgwt.cssResourceStyle=pretty\"\n+\n\nDEV_REBUILD:: Disable if only packaging components were modified.\nDefault is `1`.\n\nPY_VERSION:: Python defaults to python3 if available, use PY_VERSION=2\nin order to override. +\nThis options affects various services and several features written in python.\n\nNOTE: `engine-setup` which runs otopi, uses different customized variable `OTOPI_PYTHON`\n\n\nWILDFLY_OVERLAY_MODULES:: Change location of WildFly overlay modules.\nIf you want to disable WildFly overlay configuration completely, please\nset to empty string. Default is\n`/usr/share/ovirt-engine-wildfly-overlay/modules`.\n\nISORT:: Set name/location of the `isort` utility, which is used during `make validations`\n(also called from `make install-dev`). Defaults to `isort`. If not found, that's ok. If\nfound, should be at least version 5.7. The version in CentOS Stream 8 is ok. The version\nprovided by RHEL 8 (and rebuilds) is too old, 4.3. Some ways to get a newer version:\n\n- `dnf copr enable -y sbonazzo/EL8_collection`\n\n- Install from pypi in a python virtualenv/venv, e.g.:\n```\nsudo dnf install python3-virtualenv\nmkdir -p $HOME/venv\ncd $HOME/venv\nvirtualenv-3 python3-isort\n. python3-isort/bin/activate\npip install isort\n```\n\nAnd, before running `make`,\n```\nexport ISORT=$HOME/venv/python3-isort/bin/isort\n```\n\nIf you do have an older version installed and want `make` to ignore it, you can\npoint the variable at some non-existing name/location, e.g.:\n```\nexport ISORT=nonexistent\n```\n\n=== Setup\n\nTo setup the product use the following command:\n\n  $ \"${PREFIX}/bin/engine-setup\"\n\nNOTE: otopi, and therefore engine-setup, now defaults to python3 except el7, use: +\n`$  OTOPI_PYTHON=/usr/bin/python2 \"${PREFIX}/bin/engine-setup\"` +\nto override.\n\nDuring engine setup, a certificate has to be issued and you will be asked for a\nhostname. If you want to upload and download images from administration portal,\nit has to be the name by which your machine is accessible from the outside.\n\n=== JBoss\n\nIf you want to use different WildFly/EAP installation, specify it at\n`--jboss-home=` parameter of setup.\n\n=== Environment\n\nOVIRT_ENGINE_JAVA_HOME:: Select a specific Java home.\n\nOVIRT_ENGINE_JAVA_HOME_FORCE:: Set to non zero to bypass Java\ncompatibility check.\n\n=== Refresh\n\nIf there are no significant changes, such as file structure or database\nschema, there is no need to run the setup again, `make install-dev\n\u003cargs\u003e` will overwrite files as required, run `engine-setup` to refresh\ndatabase schema.\n\nDo remember to restart the engine service.\n\nIf there is a significant change, safest path is to stop service, remove\n`${PREFIX}` directory, build and setup.\n\nThe `${PREFIX}/bin/engine-cleanup` tool is also available to cleanup the\nenvironment, it is useful for application changes, less for packaging\nchanges.\n\n=== Service administration\n\nMost utilities and services are operational, including PKI, host deploy.\n\nTo start/stop the engine service use:\n\n  $ \"${PREFIX}/share/ovirt-engine/services/ovirt-engine/ovirt-engine.py\" start\n\nWhile the service is running, this command will not exit. Press\n\u003cCtrl\u003e-C to stop service.\n\nAccess using HTTP or HTTPS:\n\n- http://\u003cserver\u003e:8080\n- https://\u003cserver\u003e:8443\n\n=== Remote debug\n\nBy default, debug address is `127.0.0.1:8787`. If you want to make engine accessible to the remote debugger, after\nrunning engine-setup edit the following file: ${PREFIX}/etc/ovirt-engine/engine.conf.d/10-setup-protocols.conf:\n\n ENGINE_DEBUG_ADDRESS=0.0.0.0:8787\n\n=== Running instance management (JMX)\n\novirt-engine service supports jmx as management interface. Actually, this is\nthe standard jboss jmx interface, while authentication can be done using any\nengine user with SuperUser role. Access is permitted only from the local\nhost.\n\nAccess JMX shell using provide OPTIONAL_COMMAND for non interactive usage:\n\n  $ \"${JBOSS_HOME}/bin/jboss-cli.sh\" \\\n    --connect \\\n    --timeout=30000 \\\n    --controller=localhost:8706 \\\n    --user=admin@internal \\\n    --commands=\"OPTIONAL_COMMA_SEPARATED_COMMANDS\"\n\nUseful commands:\n\nModify log level::\n+\n  /subsystem=logging/logger=org.ovirt.engine.core.bll:write-attribute(name=level,value=DEBUG)\n\nCreate a new log category::\n+\n  /subsystem=logging/logger=org.ovirt.engine:add\n\nGet the engine data-source statistics::\n+\n  ls /subsystem=datasources/data-source=ENGINEDataSource/statistics=jdbc/\n\nGet threading info::\n+\n  ls /core-service=platform-mbean/type=threading/\n\nBy default JMX access is available only to localhost, to open JMX to\nworld, add `${PREFIX}/etc/ovirt-engine/engine.conf.d/20-setup-jmx-debug.conf` with:\n\n  ENGINE_JMX_INTERFACE=public\n\n=== DAO tests\n\nCreate empty database for DAO tests refer to \u003c\u003cDatabase creation\u003e\u003e.\n\nProvided user is `engine`, password is `engine` and database is\n`engine_dao_tests`.\n\n  $ PGPASSWORD=engine \\\n    ./packaging/dbscripts/schema.sh \\\n      -c apply -u engine -d engine_dao_tests\n\nRun build as:\n\n  $ make maven BUILD_GWT=0 BUILD_UT=1 EXTRA_BUILD_FLAGS=\"-P enable-dao-tests \\\n    -D engine.db.username=engine \\\n    -D engine.db.password=engine \\\n    -D engine.db.url=jdbc:postgresql://localhost/engine_dao_tests\"\n\n=== VM console\n\nAfter the environment is setup and installed, some adjustments are required.\n\nCopy `vmconsole-host` configuration:\n\n  $ sudo cp -p \"${PREFIX}/share/ovirt-engine/conf/ovirt-vmconsole-proxy.conf \\\n  /etc/ovirt-vmconsole/ovirt-vmconsole-proxy/conf.d/50-ovirt-vmconsole-proxy.conf\n\nIf selinux is enabled on your machine, set type on vmconsole helper using:\n\n$ sudo chcon --type=bin_t \"${PREFIX}/libexec/ovirt-vmconsole-proxy-helper/ovirt-vmconsole-list.py\"\n\n=== ovirt-imageio\n\nAfter setup, you need to run ovirt-imageio manually if you want to upload and\ndownload images via the administration portal. To run ovirt-imageio, run the\nfollowing command:\n\n  $ ovirt-imageio --conf-dir $PREFIX/etc/ovirt-imageio\n\nThis assumes you have installed `ovirt-imageio-daemon` and you have run `engine-setup`.\n\nIn development mode, ovirt-imageio logs to stderr using DEBUG level. If you\nwould like to log to a file create a log directory:\n\n  $ mkdir $PREFIX/var/log/ovirt-imageio\n\nAnd install a drop-in configuration file to override engine developement setup:\n\n  $ cat $PREFIX/etc/ovirt-imageio/conf.d/99-local.conf\n  [handlers]\n  keys = logfile\n\n  [logger_root]\n  handlers = logfile\n\n  [handler_logfile]\n  args = ('/home/username/ovirt-engine/log/ovirt-imageio/daemon.log',)\n\n=== RPM packaging\n\n  $ make dist\n  $ rpmbuild -ts @tarball@\n  # yum-builddep @srpm@\n  # rpmbuild -tb @tarball@\n\nThe following spec file variables are available for package customization:\n\novirt_build_quick:: Quick build, best for syntax checks. Default is `0`.\n\novirt_build_minimal:: Build minimal Firefox only package. Default is\n`0`.\n\novirt_build_user_agent:: When using quick or minimal build, build only\nfor this user agent. Default is `gecko1_8` (Firefox). To build for\nChrome use `safari`.\n\novirt_build_gwt:: Build GWT components. Default is `1`.\n\novirt_build_all_user_agents:: Build GWT components for all supported\nbrowsers. Default is `1`.\n\novirt_build_locales:: Build GWT components for all supported locales.\nDefault is `1`.\n\nExamples:\n\nBuild minimal rpm package for Firefox::\n\n    $ rpmbuild -D\"ovirt_build_minimal 1\" -tb @tarball@\n\nBuild minimal rpm package for Chrome or Safari::\n\n    $ rpmbuild -D\"ovirt_build_minimal 1\" -D\"ovirt_build_user_agent safari\" -tb @tarball@\n\n=== Ansible Lint\n\nTo use ansible-lint locally you need to install it from PyPI in a python virtualenv/venv, e.g.:\n```\nsudo dnf install python3-virtualenv\nmkdir -p $HOME/venv\npython3 -m venv $HOME/venv/ansible-lint\n. $HOME/venv/ansible-lint/bin/activate\npip3 install \"ansible-lint\u003e=6.0.0,\u003c7.0.0\"\n```\n\nRun of the lint:\n\n    $ ansible-lint -c build/ansible-lint.conf packaging/ansible-runner-service-project/project/roles/*\n\n== Branch/release management\n\nGit branch `master` should always have the latest version.\n\nReleases should be done from stable branches. So-called \"bump patches\", to\nincrease the version, should be created using the script `bump_release.sh`.\nThis creates two git commits - one for doing the release, which should be\ntagged, and the next one for getting back to development builds, which\nhave a timestamp+git-hash in their RPMs names.\n\nWhen branching stable branches, master branch should be bumped to the next\nY or Z version. There is currently no script for doing that. It can be done\nusing something like:\n```\nfind . -name pom.xml -exec sed -i \"s:4.5.1.3-SNAPSHOT:4.5.2-SNAPSHOT:\" {} +\n```\nReplace `4.5.1.3` with the current version, and `4.5.2` with the version you\nwant to bump to.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovirt%2Fovirt-engine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fovirt%2Fovirt-engine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fovirt%2Fovirt-engine/lists"}