debian/rules
author Aurelien Campeas <aurelien.campeas@logilab.fr>
Wed, 03 Jul 2013 14:33:27 +0200
branchstable
changeset 9130 0f1504a9fb51
parent 8648 67a5fccb802a
child 9174 959dbad7743e
permissions -rwxr-xr-x
[constraint] more robust unicity constraint failures reporting for end-users Postgres or Sqlserver have limits on the index names (around resp. 64 and 128 characters). Because `logilab.database` encodes the `unique together` constraint rtypes in the index names, we sometimes get truncated index names, from which it is impossible to retrieve all rtypes. In the long run, the way such index are named should be changed. In the short term, we try to reduce the end-user confusion resulting from this design flaw: * in source/native, the regex filtering ``IntegrityError`` message does not impose an `_idx` suffix, which indeed may be absent (the result being an UI message that resembles a catastrophic failure), * also we avoid including a trailing " (double quote) from the error message * in entities/adapters, the well-named ``IUserFriendly`` adapter is made a bit smarter about how to handle missing rtypes. * the adapter also always produces a global message explaining the issue (and the fact that sometimes, the user is not shown all the relevant info) * i18n is updated Closes #2793789

#!/usr/bin/make -f
# Sample debian/rules that uses debhelper.
# GNU copyright 1997 to 1999 by Joey Hess.

# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1

PY_VERSION:=$(shell pyversions -d)

build: build-stamp
build-stamp:
	dh_testdir
	NO_SETUPTOOLS=1 python setup.py build
	# cubicweb.foo needs to be importable by sphinx, so create a cubicweb symlink to the source dir
	mkdir -p debian/pythonpath
	ln -sf $(CURDIR) debian/pythonpath/cubicweb
	# documentation build is now made optional since it can break for old
	# distributions and we don't want to block a new release of Cubicweb
	# because of documentation issues.
	-PYTHONPATH=$${PYTHONPATH:+$${PYTHONPATH}:}$(CURDIR)/debian/pythonpath $(MAKE) -C doc/book/en all
	# squeeze has a broken combination of jquery and sphinx, fix it up so search works(ish)
	if grep -q jQuery\\.className doc/html/_static/doctools.js && grep -q "jQuery JavaScript Library v1\.4\." doc/html/_static/jquery.js; then \
	    echo 'Patching doctools.js for jQuery 1.4 compat'; \
	    sed -i 's/jQuery\.className.has(node\.parentNode, className)/jQuery(node.parentNode).hasClass(className)/' doc/html/_static/doctools.js; \
	fi
	rm -rf debian/pythonpath
	touch build-stamp

clean:
	dh_testdir
	dh_testroot
	rm -f build-stamp configure-stamp
	rm -rf build
	#rm -rf debian/cubicweb-*/
	find . -name "*.pyc" -delete
	rm -f $(basename $(wildcard debian/*.in))
	dh_clean

install: build $(basename $(wildcard debian/*.in))
	dh_testdir
	dh_testroot
	dh_clean
	dh_installdirs

	#python setup.py install_lib --no-compile --install-dir=debian/cubicweb-common/usr/lib/python2.4/site-packages/
	NO_SETUPTOOLS=1 python setup.py -q install --no-compile --prefix=debian/tmp/usr

	# Put all the python library and data in cubicweb-common
	# and scripts in cubicweb-server
	dh_install -vi
	# cwctl in the cubicweb-ctl package
	rm -f debian/cubicweb-common/usr/share/pyshared/cubicweb/cwctl.py
        # wdoc in the cubicweb-web package
	rm -rf debian/cubicweb-common/usr/share/cubicweb/cubes/shared/wdoc
	rm -rf debian/cubicweb-common/usr/share/cubicweb/cubes/shared/data
	dh_lintian

	# Remove unittests directory (should be available in cubicweb-dev only)
	rm -rf debian/cubicweb-server/usr/lib/${PY_VERSION}/site-packages/cubicweb/server/test
	rm -rf debian/cubicweb-server/usr/lib/${PY_VERSION}/site-packages/cubicweb/hooks/test
	rm -rf debian/cubicweb-server/usr/lib/${PY_VERSION}/site-packages/cubicweb/sobjects/test
	rm -rf debian/cubicweb-web/usr/lib/${PY_VERSION}/site-packages/cubicweb/web/test
	rm -rf debian/cubicweb-twisted/usr/lib/${PY_VERSION}/site-packages/cubicweb/etwist/test
	rm -rf debian/cubicweb-common/usr/lib/${PY_VERSION}/site-packages/cubicweb/ext/test
	rm -rf debian/cubicweb-common/usr/lib/${PY_VERSION}/site-packages/cubicweb/entities/test


%: %.in
	sed "s/PY_VERSION/${PY_VERSION}/g" < $< > $@

# Build architecture-independent files here.
binary-indep: build install
	dh_testdir
	dh_testroot -i
	dh_pycentral -i
	dh_installinit -i -n --name cubicweb -u"defaults 99"
	dh_installlogrotate -i
	dh_installdocs -i -A README
	dh_installman -i
	dh_installchangelogs -i
	dh_link -i
	dh_compress -i -X.py -X.ini -X.xml -X.js -X.rst -X.txt
	dh_fixperms -i
	dh_installdeb -i
	dh_gencontrol  -i
	dh_md5sums -i
	dh_builddeb -i

binary-arch:

binary: binary-indep
.PHONY: build clean binary binary-indep binary-arch