Alon Bar-Lev has uploaded a new change for review.

Change subject: packaging: build: simplify plain files installation
......................................................................

packaging: build: simplify plain files installation

copy packaging directory recursive excluded generated and other files.
no need to explicitly specify each file at makefile.

this should ease maintenance and reduce future commit size and conflicts.

Change-Id: I294a14f7e954ec05ef497e870f9937e68b2a2bbc
Signed-off-by: Alon Bar-Lev <alo...@redhat.com>
---
M Makefile
1 file changed, 93 insertions(+), 181 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/45/15745/1

diff --git a/Makefile b/Makefile
index b1769be..8338cbd 100644
--- a/Makefile
+++ b/Makefile
@@ -224,18 +224,9 @@
 
 install: \
        all \
-       create_dirs \
+       install-layout \
        install_artifacts \
-       install_config \
-       install_sysprep \
-       install_db_scripts \
        install_setup \
-       install_misc \
-       install_sec \
-       install_aio_plugin \
-       install_jboss_modules \
-       install_service \
-       install_notification_service \
        $(NULL)
 
 ovirt-engine.spec: version.mak
@@ -285,20 +276,37 @@
        @echo *DO NOT* use them for any other use but debug.
        @echo
 
-create_dirs:
-       @echo "*** Creating Directories"
-       @install -dm 755 "$(DESTDIR)$(BIN_DIR)"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/bin"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/ui-plugins"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/conf"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/db-backups"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/scripts/plugins"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/scripts/dbutils"
-       @install -dm 755 "$(DESTDIR)$(DATA_DIR)/firewalld/base"
-       @install -dm 755 "$(DESTDIR)$(MAN_DIR)/man8"
-       @install -dm 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-config"
-       @install -dm 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-manage-domains"
-       @install -dm 755 "$(DESTDIR)$(SYSCONF_DIR)/cron.daily"
+# copy SOURCEDIR to TARGETDIR
+# exclude EXCLUDEGEN a list of files to exclude with .in
+# exclude EXCLUDE a list of files.
+copy-recursive:
+       ( cd "$(SOURCEDIR)" && find . -type d -printf '%P\n' ) | while read d; 
do \
+               install -d -m 755 "$(TARGETDIR)/$${d}"; \
+       done
+       ( \
+               cd "$(SOURCEDIR)" && find . -type f -printf '%P\n' | \
+               while read f; do \
+                       exclude=false; \
+                       set -x; \
+                       for x in $(EXCLUDE_GEN); do \
+                               if [ "$(SOURCEDIR)/$${f}" = "$${x}.in" ]; then \
+                                       exclude=true; \
+                                       break; \
+                               fi; \
+                       done; \
+                       for x in $(EXCLUDE); do \
+                               if [ "$(SOURCEDIR)/$${f}" = "$${x}" ]; then \
+                                       exclude=true; \
+                                       break; \
+                               fi; \
+                       done; \
+                       $${exclude} || echo "$${f}"; \
+                       set +x; \
+               done \
+       ) | while read f; do \
+               [ -x "$(SOURCEDIR)/$${f}" ] && MASK=0755 || MASK=0644; \
+               install -m "$${MASK}" "$(SOURCEDIR)/$${f}" "$$(dirname 
"$(TARGETDIR)/$${f}")"; \
+       done
 
 install_artifacts:
        @echo "*** Deploying EAR to $(DESTDIR)"
@@ -319,22 +327,68 @@
 
        sed -i "s/MYVERSION/$(DISPLAY_VERSION)/" 
"$(DESTDIR)$(PKG_EAR_DIR)/root.war/engineVersion.js"
 
+       # Uncompress and install the contents of the modules archives to
+       # the directory containing engine modules:
+       find "$(MAVEN_OUTPUT_DIR)" -name "*-$(POM_VERSION)*-modules.zip" -exec 
unzip -o {} -d "$(DESTDIR)$(PKG_JBOSS_MODULES)" \;
+
+install-packaging-files: \
+               $(GENERATED) \
+               $(NULL)
+       $(MAKE) copy-recursive SOURCEDIR=packaging/etc 
TARGETDIR="$(DESTDIR)$(PKG_SYSCONF_DIR)" EXCLUDE_GEN="$(GENERATED)"
+       $(MAKE) copy-recursive SOURCEDIR=packaging/pki 
TARGETDIR="$(DESTDIR)$(PKG_PKI_DIR)" EXCLUDE_GEN="$(GENERATED)"
+       for d in bin branding conf firewalld services setup; do \
+               $(MAKE) copy-recursive SOURCEDIR="packaging/$${d}" 
TARGETDIR="$(DESTDIR)$(DATA_DIR)/$${d}" EXCLUDE_GEN="$(GENERATED)"; \
+       done
+       $(MAKE) copy-recursive SOURCEDIR=packaging/man 
TARGETDIR="$(DESTDIR)$(MAN_DIR)" EXCLUDE_GEN="$(GENERATED)"
+
+       # we should avoid make these directories dirty
+       $(MAKE) copy-recursive SOURCEDIR=packaging/dbscripts 
TARGETDIR="$(DESTDIR)$(DATA_DIR)/dbscripts" \
+               EXCLUDE_GEN="$(GENERATED)" \
+               EXCLUDE="$$(find packaging/dbscripts \( -name '*.scripts.md5' 
-or -name '*.schema' -or -name '*.log' \))"
+
+install-layout: \
+               install-packaging-files \
+               $(NULL)
+
+       install -d -m 755 "$(DESTDIR)$(BIN_DIR)"
+       ln -sf "$(DATA_DIR)/setup/bin/ovirt-engine-setup" 
"$(DESTDIR)$(BIN_DIR)/engine-setup-2"
+       ln -sf "$(DATA_DIR)/setup/bin/ovirt-engine-remove" 
"$(DESTDIR)$(BIN_DIR)/engine-cleanup-2"
+       ln -sf "$(DATA_DIR)/bin/engine-config.sh" 
"$(DESTDIR)$(BIN_DIR)/engine-config"
+       ln -sf "$(DATA_DIR)/bin/engine-manage-domains.sh" 
"$(DESTDIR)$(BIN_DIR)/engine-manage-domains"
+
+       install -d -m 755 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/notifier/notifier.conf.d"
+       install -d -m 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/engine.conf.d"
+       install -d -m 755 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/ovirt-websocket-proxy.conf.d"
+       install -d -m 755 "$(DESTDIR)$(PKG_PKI_DIR)/certs"
+       install -d -m 755 "$(DESTDIR)$(PKG_PKI_DIR)/keys"
+       install -d -m 750 "$(DESTDIR)$(PKG_PKI_DIR)/private"
+       install -d -m 755 "$(DESTDIR)$(PKG_PKI_DIR)/requests"
+       install -d -m 755 "$(DESTDIR)$(DATA_DIR)/ui-plugins"
+       install -d -m 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding"
+       install -d -m 750 "$(DESTDIR)$(ENGINE_STATE)/backups"
+
+       install -d -m 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding"
+       -rm -f "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding/00-ovirt.brand"
+       ln -s "$(DATA_DIR)/branding/ovirt.brand" 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/branding/00-ovirt.brand"
+
+       #
+       # TODO organize
+       #
+       install -dm 755 "$(DESTDIR)$(DATA_DIR)/scripts"
+       install -m 755 packaging/resources/ovirtlogrot.sh 
"$(DESTDIR)$(DATA_DIR)/scripts"
+       install -d -m 755 "$(DESTDIR)$(SYSCONF_DIR)/cron.daily"
+       install -m 755 packaging/resources/ovirt-cron 
"$(DESTDIR)$(SYSCONF_DIR)/cron.daily"
+
+#
+# TODO
+# to remove once new setup is ready
+# also remvove the conf/iptables*
+#
 install_setup:
-       @echo "*** Deploying setup executables"
+       install -dm 755 "$(DESTDIR)$(DATA_DIR)/scripts"
+       install -dm 755 "$(DESTDIR)$(DATA_DIR)/scripts/plugins"
+       install -dm 755 "$(DESTDIR)$(DATA_DIR)/scripts/dbutils"
 
-       # Configuration files:
-       install -m 644 packaging/conf/engine-config-install.properties 
"$(DESTDIR)$(DATA_DIR)/conf"
-       install -m 644 packaging/conf/iptables.default 
"$(DESTDIR)$(DATA_DIR)/conf"
-       #FirewallD
-       install -m 644 packaging/firewalld/base/ovirt-nfs.xml.in 
"$(DESTDIR)$(DATA_DIR)/firewalld/base/ovirt-nfs.xml.in"
-       install -m 644 packaging/firewalld/base/ovirt-http.xml.in 
"$(DESTDIR)$(DATA_DIR)/firewalld/base/ovirt-http.xml.in"
-       install -m 644 packaging/firewalld/base/ovirt-https.xml.in 
"$(DESTDIR)$(DATA_DIR)/firewalld/base/ovirt-https.xml.in"
-
-       install -m 644 packaging/conf/nfs.sysconfig "$(DESTDIR)$(DATA_DIR)/conf"
-       install -m 644 packaging/conf/ovirt-engine-proxy.conf.in 
"$(DESTDIR)$(DATA_DIR)/conf"
-       install -m 644 packaging/conf/ovirt-engine-root-redirect.conf.in 
"$(DESTDIR)$(DATA_DIR)/conf"
-
-       # Shared python modules:
        install -m 644 packaging/fedora/setup/nfsutils.py 
"$(DESTDIR)$(DATA_DIR)/scripts"
        install -m 644 packaging/fedora/setup/basedefs.py 
"$(DESTDIR)$(DATA_DIR)/scripts"
        install -m 644 packaging/fedora/setup/engine_validators.py 
"$(DESTDIR)$(DATA_DIR)/scripts"
@@ -346,10 +400,7 @@
        install -m 644 packaging/fedora/setup/miniyum.py 
"$(DESTDIR)$(DATA_DIR)/scripts"
        install -m 644 packaging/fedora/setup/output_messages.py 
"$(DESTDIR)$(DATA_DIR)/scripts"
        install -m 644 packaging/fedora/setup/post_upgrade.py 
"$(DESTDIR)$(DATA_DIR)/scripts"
-
-       # Install man pages
-       install -m 644 packaging/man/man8/engine-setup.8 
"$(DESTDIR)$(MAN_DIR)/man8"
-       install -m 644 packaging/man/man8/engine-upgrade.8 
"$(DESTDIR)$(MAN_DIR)/man8"
+       install -m 644 packaging/fedora/setup/plugins/all_in_one_100.py 
"$(DESTDIR)$(DATA_DIR)/scripts/plugins"
 
        # Example Plugin:
        install -m 644 packaging/fedora/setup/plugins/example_plugin_000.py 
"$(DESTDIR)$(DATA_DIR)/scripts/plugins"
@@ -363,9 +414,6 @@
        ln -sf $(DATA_DIR)/scripts/engine-upgrade.py 
"$(DESTDIR)$(BIN_DIR)/engine-upgrade"
        install -m 755 packaging/fedora/setup/engine-check-update 
"$(DESTDIR)$(BIN_DIR)"
 
-       # Backups folder
-       install -dm 750 "$(DESTDIR)$(ENGINE_STATE)/backups"
-
        # Task cleaner
        install -dm 750 "$(DESTDIR)$(DATA_DIR)/scripts/dbutils"
        install -m 750 backend/manager/tools/dbutils/common.sh 
"$(DESTDIR)$(DATA_DIR)/scripts/dbutils"
@@ -375,144 +423,8 @@
        install -m 640 backend/manager/tools/dbutils/fkvalidator_sp.sql 
"$(DESTDIR)$(DATA_DIR)/scripts/dbutils"
        install -m 750 backend/manager/tools/dbutils/validatedb.sh 
"$(DESTDIR)$(DATA_DIR)/scripts/dbutils"
 
-       ( cd packaging && find setup -name '*.py' ) | while read f; do \
-               install -dm 755 "$$(dirname "$(DESTDIR)$(DATA_DIR)/$$f")"; \
-               install -m 644 "packaging/$$f" "$(DESTDIR)$(DATA_DIR)/$$f"; \
-       done
-       install -dm 755 "$(DESTDIR)$(DATA_DIR)/setup/bin"
-       install -m 755 packaging/setup/bin/ovirt-engine-setup 
"$(DESTDIR)$(DATA_DIR)/setup/bin"
-       install -m 644 packaging/setup/bin/ovirt-engine-setup.env 
"$(DESTDIR)$(DATA_DIR)/setup/bin"
-       install -m 755 packaging/setup/bin/ovirt-engine-remove 
"$(DESTDIR)$(DATA_DIR)/setup/bin"
-       ln -sf "$(DATA_DIR)/setup/bin/ovirt-engine-setup" 
"$(DESTDIR)$(BIN_DIR)/engine-setup-2"
-       ln -sf "$(DATA_DIR)/setup/bin/ovirt-engine-remove" 
"$(DESTDIR)$(BIN_DIR)/engine-cleanup-2"
-
-install_aio_plugin:
-       install -m 644 packaging/fedora/setup/plugins/all_in_one_100.py 
"$(DESTDIR)$(DATA_DIR)/scripts/plugins"
-       install -dm 755 "$(DESTDIR)$(DATA_DIR)/firewalld/aio"
-       install -m 644 packaging/firewalld/aio/ovirt-aio.xml.in 
"$(DESTDIR)$(DATA_DIR)/firewalld/aio/ovirt-aio.xml.in"
-
-install_sec:
-       install -dm 755 "$(DESTDIR)$(PKG_PKI_DIR)/certs"
-       install -dm 755 "$(DESTDIR)$(PKG_PKI_DIR)/keys"
-       install -dm 750 "$(DESTDIR)$(PKG_PKI_DIR)/private"
-       install -dm 755 "$(DESTDIR)$(PKG_PKI_DIR)/requests"
-
-       # Configuration files:
-       install -m 644 packaging/pki/openssl.conf "$(DESTDIR)$(PKG_PKI_DIR)"
-       install -m 644 packaging/pki/cacert.template.in 
"$(DESTDIR)$(PKG_PKI_DIR)"
-       install -m 644 packaging/pki/cert.template.in "$(DESTDIR)$(PKG_PKI_DIR)"
-
-       # Scripts:
-       install -m 644 packaging/bin/pki-common.sh "$(DESTDIR)$(DATA_DIR)/bin"
-       install -m 755 packaging/bin/pki-create-ca.sh 
"$(DESTDIR)$(DATA_DIR)/bin"
-       install -m 755 packaging/bin/pki-enroll-pkcs12.sh 
"$(DESTDIR)$(DATA_DIR)/bin"
-       install -m 755 packaging/bin/pki-enroll-request.sh 
"$(DESTDIR)$(DATA_DIR)/bin"
-
-install_config:
-       @echo "*** Deploying engine-config & engine-manage-domains"
-
-       # Configuration files for the configuration tool:
-       install -m 644 packaging/etc/engine-config/engine-config.conf 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-config"
-       install -m 644 packaging/etc/engine-config/engine-config*.properties 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-config"
-       install -m 644 packaging/etc/engine-config/log4j.xml 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-config/log4j.xml"
-
-       # Main program for the configuration tool:
-       install -m 755 packaging/bin/engine-config.sh 
"$(DESTDIR)$(DATA_DIR)/bin"
-       ln -sf "$(DATA_DIR)/bin/engine-config.sh" 
"$(DESTDIR)$(BIN_DIR)/engine-config"
-
-       # Configuration files for the domain management tool:
-       install -m 644 
packaging/etc/engine-manage-domains/engine-manage-domains.conf 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-manage-domains"
-       install -m 644 packaging/etc/engine-manage-domains/log4j.xml 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/engine-manage-domains"
-
-       # Main program for the domain management tool:
-       install -m 755 packaging/bin/engine-manage-domains.sh 
"$(DESTDIR)$(DATA_DIR)/bin"
-       ln -sf "$(DATA_DIR)/bin/engine-manage-domains.sh" 
"$(DESTDIR)$(BIN_DIR)/engine-manage-domains"
-
-       # Install man pages
-       install -m 644 packaging/man/man8/engine-manage-domains.8 
"$(DESTDIR)$(MAN_DIR)/man8"
-       install -m 644 packaging/man/man8/engine-config.8 
"$(DESTDIR)$(MAN_DIR)/man8"
-
-install_sysprep:
-       @echo "*** Deploying sysperp"
-       @install -dm 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/sysprep"
-       install -m 644 packaging/etc/sysprep/* 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/sysprep"
-
-install_notification_service:
-       @echo "*** Deploying notification service"
-
-       install -dm 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/notifier"
-
-       install -m 644 packaging/etc/notifier/log4j.xml 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/notifier/log4j.xml"
-       install -d -m 755 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/notifier/notifier.conf.d"
-       install -m 644 packaging/conf/notifier.conf.defaults 
"$(DESTDIR)$(DATA_DIR)/conf/notifier.conf.defaults"
-       install -m 755 packaging/services/ovirt-engine-notifier.py 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/ovirt-engine-notifier.systemd 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 755 packaging/services/ovirt-engine-notifier.sysv 
"$(DESTDIR)$(DATA_DIR)/services"
-
-install_db_scripts:
-       @echo "*** Deploying Database scripts"
-       install -dm 755 "$(DESTDIR)$(DATA_DIR)/dbscripts"
-       cp -r packaging/dbscripts/* "$(DESTDIR)$(DATA_DIR)/dbscripts"
-       find "$(DESTDIR)$(DATA_DIR)/dbscripts" -type d -exec chmod 755 {} \;
-       find "$(DESTDIR)$(DATA_DIR)/dbscripts" -type f -name '*.sql' -exec 
chmod 644 {} \;
-       find "$(DESTDIR)$(DATA_DIR)/dbscripts" -type f -name '*.sh' -exec chmod 
755 {} \;
-
-install_misc:
-       @echo "*** Copying additional files"
-
-       # Shell scripts used by several programs:
-       install -m 644 packaging/bin/engine-prolog.sh 
"$(DESTDIR)$(DATA_DIR)/bin"
-
-       # Other misc things:
-       install -m 644 packaging/conf/jaas.conf "$(DESTDIR)$(DATA_DIR)/conf"
-       install -m 644 packaging/conf/engine.conf.defaults 
"$(DESTDIR)$(DATA_DIR)/conf"
-       install -m 644 packaging/etc/engine.conf "$(DESTDIR)$(PKG_SYSCONF_DIR)"
-       install -dm 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/engine.conf.d"
-       install -m 755 packaging/resources/ovirtlogrot.sh 
"$(DESTDIR)$(DATA_DIR)/scripts"
-       install -m 755 packaging/resources/ovirt-cron 
"$(DESTDIR)$(SYSCONF_DIR)/cron.daily"
-       install -dm 755 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/ovirt-websocket-proxy.conf.d"
-       install -m 644 packaging/conf/ovirt-websocket-proxy.conf.defaults 
"$(DESTDIR)$(DATA_DIR)/conf"
-
-       # Service common
-       install -dm 755 "$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/__init__.py 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/config.py 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/service.py 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 755 packaging/services/ovirt-websocket-proxy.py 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/ovirt-websocket-proxy.systemd 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 755 packaging/services/ovirt-websocket-proxy.sysv 
"$(DESTDIR)$(DATA_DIR)/services"
-
-       # USB filter:
-       install -m 644 packaging/etc/usbfilter.txt 
"$(DESTDIR)$(PKG_SYSCONF_DIR)"
-
-       # branding
-       ( cd packaging/branding && find ovirt.brand -type f ) | while read f; 
do \
-               install -dm 755 "$$(dirname 
"$(DESTDIR)$(DATA_DIR)/branding/$$f")"; \
-               install -m 644 "packaging/branding/$$f" 
"$(DESTDIR)$(DATA_DIR)/branding/$$f"; \
-       done
-       install -dm 755 "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding"
-       -rm -f "$(DESTDIR)$(PKG_SYSCONF_DIR)/branding/00-ovirt.brand"
-       ln -s "$(DATA_DIR)/branding/ovirt.brand" 
"$(DESTDIR)$(PKG_SYSCONF_DIR)/branding/00-ovirt.brand"
-
        # Create a version file
        echo "$(DISPLAY_VERSION)" > "$(DESTDIR)$(DATA_DIR)/conf/version"
-
-install_jboss_modules:
-       @echo "*** Deploying JBoss modules"
-
-       # Uncompress and install the contents of the modules archives to
-       # the directory containing engine modules:
-       find "$(MAVEN_OUTPUT_DIR)" -name "*-$(POM_VERSION)*-modules.zip" -exec 
unzip -o {} -d "$(DESTDIR)$(PKG_JBOSS_MODULES)" \;
-
-install_service:
-       @echo "*** Deploying service"
-
-       # Install the files:
-       install -m 644 packaging/services/ovirt-engine.xml.in 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/ovirt-engine-logging.properties.in 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 755 packaging/services/ovirt-engine.py 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 644 packaging/services/ovirt-engine.systemd 
"$(DESTDIR)$(DATA_DIR)/services"
-       install -m 755 packaging/services/ovirt-engine.sysv 
"$(DESTDIR)$(DATA_DIR)/services"
 
 gwt-debug:
        [ -n "$(DEBUG_MODULE)" ] || ( echo "Please specify DEBUG_MODULE" && 
false )


-- 
To view, visit http://gerrit.ovirt.org/15745
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I294a14f7e954ec05ef497e870f9937e68b2a2bbc
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alon Bar-Lev <alo...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to