diff --git a/.copr/Makefile b/.copr/Makefile new file mode 100644 index 0000000000..7179b91a4f --- /dev/null +++ b/.copr/Makefile @@ -0,0 +1,15 @@ +pkg_install := $(shell dnf -y install git rpm-build) +commit := $(shell git log --pretty=format:'%H' -n 1) +commit_date := $(shell git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1) +short_commit := $(shell git log --pretty=format:'%h' -n 1) + +srpm: + if test ! -d SOURCES; then mkdir SOURCES; fi + if test ! -d SPEC; then mkdir SPEC; fi + git archive --prefix="avocado-vt-$(commit)/" -o "SOURCES/avocado-vt-$(short_commit).tar.gz" HEAD + cp avocado-plugins-vt.spec SPEC + sed -i -e 's/\%global rel_build .*/\%global rel_build 0/' SPEC/avocado-plugins-vt.spec + sed -i -e 's/\%global commit .*/\%global commit $(commit)/' SPEC/avocado-plugins-vt.spec + sed -i -e 's/\%global commit_date .*/\%global commit_date $(commit_date)/' SPEC/avocado-plugins-vt.spec + rpmbuild -D '_topdir .' -bs SPEC/avocado-plugins-vt.spec + mv SRPMS/*.src.rpm $(outdir) diff --git a/Makefile b/Makefile index d2faedd655..5a4bcc0d07 100644 --- a/Makefile +++ b/Makefile @@ -1,24 +1,31 @@ -PYTHON=$(shell which python 2>/dev/null || which python3 2>/dev/null) +ifndef PYTHON +PYTHON=$(shell which python3 2>/dev/null || which python2 2>/dev/null || which python 2>/dev/null) +endif +VERSION=$(shell $(PYTHON) setup.py --version 2>/dev/null) PYTHON_DEVELOP_ARGS=$(shell if ($(PYTHON) setup.py develop --help 2>/dev/null | grep -q '\-\-user'); then echo "--user"; else echo ""; fi) DESTDIR=/ -BUILDIR=$(CURDIR)/debian/avocado-vt -PROJECT=avocado -VERSION=$(shell cat $(CURDIR)/VERSION) AVOCADO_DIRNAME?=avocado RELEASE_COMMIT=$(shell git log --abbrev=8 --pretty=format:'%H' -n 1 $(VERSION)) RELEASE_SHORT_COMMIT=$(shell git log --abbrev=8 --pretty=format:'%h' -n 1 $(VERSION)) COMMIT=$(shell git log --abbrev=8 --pretty=format:'%H' -n 1) +COMMIT_DATE=$(shell git log --pretty='format:%cd' --date='format:%Y%m%d' -n 1) SHORT_COMMIT=$(shell git log --abbrev=8 --pretty=format:'%h' -n 1) +MOCK_CONFIG=default +ARCHIVE_BASE_NAME=avocado-vt +RPM_BASE_NAME=avocado-plugins-vt + +include Makefile.include all: @echo @echo "Development related targets:" - @echo "check: Runs tree static check, unittests and functional tests" - @echo "clean: Get rid of scratch and byte files" - @echo "link: Enables egg links and links needed resources" - @echo "unlink: Disables egg links and unlinks needed resources" + @echo "check: Runs tree static check, unittests and fast functional tests" + @echo "develop: Runs 'python setup.py --develop' on this tree alone" + @echo "link: Runs 'python setup.py --develop' in all subprojects and links the needed resources" + @echo "clean: Get rid of scratch, byte files and removes the links to other subprojects" + @echo "unlink: Disables egg links and unlinks needed resources" @echo @echo "Platform independent distribution/installtion related targets:" @echo "source: Create source package" @@ -28,65 +35,13 @@ all: @echo "srpm: Generate a source RPM package (.srpm)" @echo "rpm: Generate binary RPMs" @echo - @echo "Debian related targets:" - @echo "deb: Generate both source and binary debian packages" - @echo "deb-src: Generate a source debian package" - @echo "deb-bin: Generate a binary debian package" - @echo @echo "Release related targets:" @echo "source-release: Create source package for the latest tagged release" @echo "srpm-release: Generate a source RPM package (.srpm) for the latest tagged release" @echo "rpm-release: Generate binary RPMs for the latest tagged release" @echo - -source: clean - if test ! -d SOURCES; then mkdir SOURCES; fi - git archive --prefix="avocado-vt-$(COMMIT)/" -o "SOURCES/avocado-vt-$(VERSION)-$(SHORT_COMMIT).tar.gz" HEAD - -source-release: clean - if test ! -d SOURCES; then mkdir SOURCES; fi - git archive --prefix="avocado-plugins-vt-$(RELEASE_COMMIT)/" -o "SOURCES/avocado-plugins-vt-$(VERSION)-$(RELEASE_SHORT_COMMIT).tar.gz" $(VERSION) - -install: - $(PYTHON) setup.py install --root $(DESTDIR) $(COMPILE) - -prepare-source: - # build the source package in the parent directory - # then rename it to project_version.orig.tar.gz - dch -D "vivid" -M -v "$(VERSION)" "Automated (make builddeb) build." - $(PYTHON) setup.py sdist $(COMPILE) --dist-dir=../ --prune - rename -f 's/$(PROJECT)-(.*)\.tar\.gz/$(PROJECT)_$$1\.orig\.tar\.gz/' ../* - -deb-src: prepare-source - # build the source package - dpkg-buildpackage -S -elookkas@gmail.com -rfakeroot - -deb-bin: prepare-source - # build binary package - dpkg-buildpackage -b -rfakeroot - -deb: prepare-source - # build both source and binary packages - dpkg-buildpackage -i -I -rfakeroot - -srpm: source - if test ! -d BUILD/SRPM; then mkdir -p BUILD/SRPM; fi - mock --old-chroot --resultdir BUILD/SRPM -D "commit $(COMMIT)" --buildsrpm --spec avocado-plugins-vt.spec --sources SOURCES - -rpm: srpm - if test ! -d BUILD/RPM; then mkdir -p BUILD/RPM; fi - mock --old-chroot --resultdir BUILD/RPM -D "commit $(COMMIT)" --rebuild BUILD/SRPM/avocado-plugins-vt-$(VERSION)-*.src.rpm - -srpm-release: source-release - if test ! -d BUILD/SRPM; then mkdir -p BUILD/SRPM; fi - mock --old-chroot --resultdir BUILD/SRPM -D "commit $(RELEASE_COMMIT)" --buildsrpm --spec avocado-plugins-vt.spec --sources SOURCES - -rpm-release: srpm-release - if test ! -d BUILD/RPM; then mkdir -p BUILD/RPM; fi - mock --old-chroot --resultdir BUILD/RPM -D "commit $(RELEASE_COMMIT)" --rebuild BUILD/SRPM/avocado-plugins-vt-$(VERSION)-*.src.rpm - -requirements: +requirements: pip - $(PYTHON) -m pip install "pip>=6.0.1" - $(PYTHON) -m pip install -r requirements.txt @@ -95,16 +50,17 @@ check: clean: $(PYTHON) setup.py clean - $(MAKE) -f $(CURDIR)/debian/rules clean || true rm -rf build/ MANIFEST BUILD BUILDROOT SPECS RPMS SRPMS SOURCES find . -name '*.pyc' -delete -link: +develop: + $(PYTHON) setup.py develop $(PYTHON_DEVELOP_ARGS) + +link: develop for CONF in etc/avocado/conf.d/*; do\ [ -d "../$(AVOCADO_DIRNAME)/avocado/etc/avocado/conf.d" ] && ln -srf $(CURDIR)/$$CONF ../$(AVOCADO_DIRNAME)/avocado/$$CONF || true;\ [ -d "../$(AVOCADO_DIRNAME)/etc/avocado/conf.d" ] && ln -srf $(CURDIR)/$$CONF ../$(AVOCADO_DIRNAME)/$$CONF || true;\ done - $(PYTHON) setup.py develop $(PYTHON_DEVELOP_ARGS) unlink: $(PYTHON) setup.py develop --uninstall $(PYTHON_DEVELOP_ARGS) diff --git a/Makefile.include b/Makefile.include new file mode 100644 index 0000000000..a022d35c5f --- /dev/null +++ b/Makefile.include @@ -0,0 +1,29 @@ +source: clean + if test ! -d SOURCES; then mkdir SOURCES; fi + git archive --prefix="$(ARCHIVE_BASE_NAME)-$(COMMIT)/" -o "SOURCES/$(ARCHIVE_BASE_NAME)-$(SHORT_COMMIT).tar.gz" HEAD + +source-release: clean + if test ! -d SOURCES; then mkdir SOURCES; fi + git archive --prefix="$(ARCHIVE_BASE_NAME)-$(VERSION)/" -o "SOURCES/$(ARCHIVE_BASE_NAME)-$(VERSION).tar.gz" $(VERSION) + +install: + $(PYTHON) setup.py install --root $(DESTDIR) $(COMPILE) + +srpm: source + if test ! -d BUILD/SRPM; then mkdir -p BUILD/SRPM; fi + mock -r $(MOCK_CONFIG) --resultdir BUILD/SRPM -D "rel_build 0" -D "commit $(COMMIT)" -D "commit_date $(COMMIT_DATE)" --buildsrpm --spec $(RPM_BASE_NAME).spec --sources SOURCES + +rpm: srpm + if test ! -d BUILD/RPM; then mkdir -p BUILD/RPM; fi + mock -r $(MOCK_CONFIG) --resultdir BUILD/RPM -D "rel_build 0" -D "commit $(COMMIT)" -D "commit_date $(COMMIT_DATE)" --rebuild BUILD/SRPM/$(RPM_BASE_NAME)-$(VERSION)-*.src.rpm + +srpm-release: source-release + if test ! -d BUILD/SRPM; then mkdir -p BUILD/SRPM; fi + mock -r $(MOCK_CONFIG) --resultdir BUILD/SRPM -D "rel_build 1" --buildsrpm --spec $(RPM_BASE_NAME).spec --sources SOURCES + +rpm-release: srpm-release + if test ! -d BUILD/RPM; then mkdir -p BUILD/RPM; fi + mock -r $(MOCK_CONFIG) --resultdir BUILD/RPM -D "rel_build 1" --rebuild BUILD/SRPM/$(RPM_BASE_NAME)-$(VERSION)-*.src.rpm + +pip: + $(PYTHON) -m pip --version || $(PYTHON) -m ensurepip $(PYTHON_DEVELOP_ARGS) || $(PYTHON) -c "import os; import sys; import urllib; f = urllib.urlretrieve('https://bootstrap.pypa.io/get-pip.py')[0]; os.system('%s %s' % (sys.executable, f))" diff --git a/contrib/packages/debian/Makefile b/contrib/packages/debian/Makefile new file mode 100644 index 0000000000..c3d268a57d --- /dev/null +++ b/contrib/packages/debian/Makefile @@ -0,0 +1,28 @@ +PROJECT=avocado + +all: + @echo + @echo "Debian related targets:" + @echo "deb: Generate both source and binary debian packages" + @echo "deb-src: Generate a source debian package" + @echo "deb-bin: Generate a binary debian package" + @echo + +prepare-source: + # build the source package in the parent directory + # then rename it to project_version.orig.tar.gz + dch -D "vivid" -M -v "$(VERSION)" "Automated (make builddeb) build." + $(PYTHON) setup.py sdist $(COMPILE) --dist-dir=../ --prune + rename -f 's/$(PROJECT)-(.*)\.tar\.gz/$(PROJECT)_$$1\.orig\.tar\.gz/' ../* + +deb-src: prepare-source + # build the source package + dpkg-buildpackage -S -elookkas@gmail.com -rfakeroot + +deb-bin: prepare-source + # build binary package + dpkg-buildpackage -b -rfakeroot + +deb: prepare-source + # build both source and binary packages + dpkg-buildpackage -i -I -rfakeroot diff --git a/debian/changelog b/contrib/packages/debian/changelog similarity index 100% rename from debian/changelog rename to contrib/packages/debian/changelog diff --git a/debian/compat b/contrib/packages/debian/compat similarity index 100% rename from debian/compat rename to contrib/packages/debian/compat diff --git a/debian/control b/contrib/packages/debian/control similarity index 100% rename from debian/control rename to contrib/packages/debian/control diff --git a/debian/copyright b/contrib/packages/debian/copyright similarity index 100% rename from debian/copyright rename to contrib/packages/debian/copyright diff --git a/debian/pyversions b/contrib/packages/debian/pyversions similarity index 100% rename from debian/pyversions rename to contrib/packages/debian/pyversions diff --git a/debian/rules b/contrib/packages/debian/rules similarity index 100% rename from debian/rules rename to contrib/packages/debian/rules diff --git a/debian/source/format b/contrib/packages/debian/source/format similarity index 100% rename from debian/source/format rename to contrib/packages/debian/source/format diff --git a/debian/source/options b/contrib/packages/debian/source/options similarity index 100% rename from debian/source/options rename to contrib/packages/debian/source/options diff --git a/debian/watch b/contrib/packages/debian/watch similarity index 100% rename from debian/watch rename to contrib/packages/debian/watch