From nobody Sat Aug 27 19:36:12 2022 X-Original-To: dev-commits-ports-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4MFRlL4z9fz4b3tZ; Sat, 27 Aug 2022 19:36:14 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4MFRlK6krhz40CG; Sat, 27 Aug 2022 19:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1661628974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zsJewNE12ehf5sALZGPwP5QmzP/FbuiwhdY0Bgt7B1M=; b=Fk3gTD8llNdoIYwbFLhNVKDTdYYdmBc4r8TPLIedJs2GE15SNceJbKRJ0kimYRtnymExmt r5maQMDMloBARWtcnABVlXCmwJ/d/Tt6WAvvhQDkQAVRrQiMHoD1qxGk2VPDdAEZNAjHXF hdFs5rn2oDUAGB4mVWdRt903OmxHuz96XeomdQLZH5ylcdI0YAlmLt1vdxYkZOq8lTukWf u+cnLScs3RVFRIcld8qh0PwJnqHWQffqs+GPspGyUWZZYPdayac46voFmqxmgvsbRoYS9j nvr9IwY9tJMLNn8mMloJaqcYccsPp2EKuu7MFByTsfHqUsraT2SAopPRct+/7Q== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4MFRlK53jmzrQX; Sat, 27 Aug 2022 19:36:13 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 27RJaD1N026345; Sat, 27 Aug 2022 19:36:13 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 27RJaCt6026342; Sat, 27 Aug 2022 19:36:12 GMT (envelope-from git) Date: Sat, 27 Aug 2022 19:36:12 GMT Message-Id: <202208271936.27RJaCt6026342@gitrepo.freebsd.org> To: ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org From: Jose Alonso Cardenas Marquez Subject: git: 17037c7822c0 - main - finance/odoo14: New port: Suite of web based open source business apps List-Id: Commits to the main branch of the FreeBSD ports repository List-Archive: https://lists.freebsd.org/archives/dev-commits-ports-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-ports-main@freebsd.org X-BeenThere: dev-commits-ports-main@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: acm X-Git-Repository: ports X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 17037c7822c03b26060177c9881b0b0bee061929 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1661628974; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=zsJewNE12ehf5sALZGPwP5QmzP/FbuiwhdY0Bgt7B1M=; b=UlXiNiD5nBGW9TnHb5vS/WvupK4N0Vq+gq97NVP/MkgI5kWB9csB1wHnMsXezY4harV7Rd K9D3SLOXFCkaFpLTHUIizu3AZ497SMhpGy6Xgde+6aoGDE9lsaIlfsUFRReZFecAjQMSWM CKBJvRhp0fheWv9SufZjntrgKnDFaLJFMblp2vjwnng/tMZSKCpRwBkRfgrG7Cdu9bb+dr g6ALTZsDkjH0NrhmfcNwIQwS95kuc0B3zIgdepD2/g+O0lLsgOBiQAemA3K4IlTasb+j8V DrjEgsMkX0r5YzJmW4RMGBAAcaYOjy7EKdd1OHBXQsjGKm4vOIumoPOPBktE3g== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1661628974; a=rsa-sha256; cv=none; b=F/PRPJ1F5iothdMacvq+ScWsx2UKpq25pg3PM9d5V6i6sgE3kTcJFrbqYPS303BKIhw01G moJZwDH+vWyBxstFUvdSkuMaEUl8OC3+ydOaVxRkDNLeVk3cyyrNF6JRmgY4E404DolMHc 2lex7J75PgDD4Kb+mkaFeckBoA0i2cotWgI+xCPtBbUTKKoo8tGUmUAiuccuWLyApw52Wc 7yHo+9X3ymDTjRD/i8iamgxanpSAF29JkBFNounNJfMODqvy1IGNr0TdRKH32mAL9pUtmf a8YMZUUYGfIyRGpf50woUMXVrPCiwarnKW04n05qielOnaJTPt1BJ8YrADm3bA== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by acm: URL: https://cgit.FreeBSD.org/ports/commit/?id=17037c7822c03b26060177c9881b0b0bee061929 commit 17037c7822c03b26060177c9881b0b0bee061929 Author: Jose Alonso Cardenas Marquez AuthorDate: 2022-08-27 19:32:10 +0000 Commit: Jose Alonso Cardenas Marquez CommitDate: 2022-08-27 19:32:10 +0000 finance/odoo14: New port: Suite of web based open source business apps Odoo is a suite of web based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, etc Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps. WWW: https://www.odoo.com --- finance/Makefile | 1 + finance/odoo14/Makefile | 106 + finance/odoo14/distinfo | 3 + finance/odoo14/files/odoo.conf | 7 + finance/odoo14/files/odoo.in | 113 + .../files/patch-odoo_tools__vendor_sessions.py | 19 + finance/odoo14/files/pkg-message.in | 44 + finance/odoo14/pkg-descr | 11 + finance/odoo14/pkg-plist | 35445 +++++++++++++++++++ 9 files changed, 35749 insertions(+) diff --git a/finance/Makefile b/finance/Makefile index 44f66db5e402..2d8e468d755e 100644 --- a/finance/Makefile +++ b/finance/Makefile @@ -48,6 +48,7 @@ SUBDIR += myphpmoney SUBDIR += nextcloud-cospend SUBDIR += odoo + SUBDIR += odoo14 SUBDIR += p5-Business-CreditCard SUBDIR += p5-Business-MaxMind-CreditCardFraudDetection SUBDIR += p5-Business-OCV diff --git a/finance/odoo14/Makefile b/finance/odoo14/Makefile new file mode 100644 index 000000000000..e6e4e8894142 --- /dev/null +++ b/finance/odoo14/Makefile @@ -0,0 +1,106 @@ +PORTNAME= odoo +PORTVERSION= 14.0 +CATEGORIES= finance www +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} +PKGNAMESUFFIX= 14 + +MAINTAINER= acm@FreeBSD.org +COMMENT= Suite of web based open source business apps + +LICENSE= LGPL3 + +USE_GITHUB= yes +GH_TAGNAME= c976a0920dd8d7910c7635cc1e2bbff47edcafa9 + +LIB_DEPENDS= libxml2.so:textproc/libxml2 \ + libxslt.so:textproc/libxslt \ + libevent.so:devel/libevent \ + libsasl2.so:security/cyrus-sasl2 +RUN_DEPENDS= wkhtmltopdf>0:converters/wkhtmltopdf \ + ${PYTHON_PKGNAMEPREFIX}psycopg2>0:databases/py-psycopg2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyserial>=0:comms/py-pyserial@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}vobject>=0:deskutils/py-vobject@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Babel>=1.3:devel/py-babel@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}dateutil>=0:devel/py-dateutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}gevent>=0:devel/py-gevent@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}greenlet>=0:devel/py-greenlet@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}lxml>=0:devel/py-lxml@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mako>=0:textproc/py-mako@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mock>=0:devel/py-mock@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}num2words>=0:devel/py-num2words@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}polib>=0:devel/py-polib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytz>=0:devel/py-pytz@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pyusb>=0:devel/py-pyusb@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}vatnumber>=0:finance/py-vatnumber@${PY_FLAVOR} \ + ${PY_PILLOW} \ + ${PYTHON_PKGNAMEPREFIX}pydot>=0:graphics/py-pydot@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ldap>=0:net/py-ldap@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}zeep>=0:net/py-zeep@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}chardet>=0:textproc/py-chardet@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}docutils>=0:textproc/py-docutils@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}feedparser>=0:textproc/py-feedparser@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}html2text>=0:textproc/py-html2text@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}markupsafe>=0:textproc/py-markupsafe@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}qrcode>=0:textproc/py-qrcode@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xlrd>=0:textproc/py-xlrd@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xlwt>=0:textproc/py-xlwt@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XlsxWriter>=0:textproc/py-xlsxwriter@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}decorator>0:devel/py-decorator@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pypdf2>0:print/py-pypdf2@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}reportlab>0:print/py-reportlab@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}passlib>0:security/py-passlib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}psutil>0:sysutils/py-psutil@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}libsass>0:www/py-libsass@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}requests>0:www/py-requests@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}werkzeug>0:www/py-werkzeug@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}secure-cookie>0:www/py-secure-cookie@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}XlsxWriter>=0:textproc/py-xlsxwriter@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xlrd>=1.2.0:textproc/py-xlrd@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}xlwt>=1.3.0:textproc/py-xlwt@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ofxparse>=0.20:finance/py-ofxparse@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ebaysdk>=2.1.3:finance/py-ebaysdk@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}idna>0:dns/py-idna@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}stdnum>0:devel/py-stdnum@${PY_FLAVOR} + +USES= cpe python:3.5+ pgsql shebangfix +USE_PYTHON= distutils +USE_OPENLDAP= yes + +SHEBANG_LANG= python +SHEBANG_FILES= ${WRKSRC}/${PORTNAME}-bin + +USERS= odoo +GROUPS= ${USERS} + +USE_RC_SUBR= ${PORTNAME} +SUB_FILES= pkg-message + +CONFLICTS= odoo + +ETCDIR= ${PREFIX}/etc/odoo + +post-patch: + @${REINPLACE_CMD} -i "" -e '25d' ${WRKSRC}/odoo/service/wsgi_server.py + @${REINPLACE_CMD} -i "" -e 's|werkzeug.url_quote_plus|werkzeug.urls.url_quote_plus|g' \ + ${WRKSRC}/odoo/addons/base/models/ir_ui_view.py + @${REINPLACE_CMD} -i "" -e 's|werkzeug.url_unquote_plus|werkzeug.urls.url_quote_plus|g' \ + -e 's|.NumberConverter|.converters.NumberConverter|g' \ + ${WRKSRC}/odoo/addons/base/models/ir_http.py \ + ${WRKSRC}/odoo/addons/http_routing/models/ir_http.py + @${REINPLACE_CMD} -i "" -e 's|from werkzeug import url_encode|from werkzeug.urls import url_encode|g' \ + ${WRKSRC}/odoo/addons/mail/models/mail_thread.py \ + ${WRKSRC}/odoo/addons/mail/controllers/main.py \ + ${WRKSRC}/odoo/addons/hr/models/hr_employee.py + +post-extract: + @cd ${WRKSRC}/addons/ && ${MV} * ${WRKSRC}/odoo/addons/ + +pre-install: + @${MKDIR} ${STAGEDIR}${ETCDIR} + +post-install: + @${INSTALL_SCRIPT} ${FILESDIR}/odoo.conf ${STAGEDIR}${ETCDIR}/odoo.conf.sample + +.include diff --git a/finance/odoo14/distinfo b/finance/odoo14/distinfo new file mode 100644 index 000000000000..00da1159078d --- /dev/null +++ b/finance/odoo14/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1661572023 +SHA256 (odoo-odoo-14.0-c976a0920dd8d7910c7635cc1e2bbff47edcafa9_GH0.tar.gz) = 11fe5377821286e8da821472212223df6680579265727c0be36fd0107f049fb3 +SIZE (odoo-odoo-14.0-c976a0920dd8d7910c7635cc1e2bbff47edcafa9_GH0.tar.gz) = 133672722 diff --git a/finance/odoo14/files/odoo.conf b/finance/odoo14/files/odoo.conf new file mode 100644 index 000000000000..cdbc35e17995 --- /dev/null +++ b/finance/odoo14/files/odoo.conf @@ -0,0 +1,7 @@ +[options] +#admin_passwd = secretpassword +db_host = localhost +db_port = 5432 +db_user = odoouser +db_password = odoopwd +;addons_path = /usr/local/lib/python3.7/site-packages/odoo/addons/ diff --git a/finance/odoo14/files/odoo.in b/finance/odoo14/files/odoo.in new file mode 100644 index 000000000000..17dcf6d6b05b --- /dev/null +++ b/finance/odoo14/files/odoo.in @@ -0,0 +1,113 @@ +#!/bin/sh + +# PROVIDE: odoo +# REQUIRE: NETWORKING +# KEYWORD: shutdown +# +# Configuration settings for odoo in /etc/rc.conf: +# +# odoo_enable: run odoo server (default=NO) +# odoo_database: define odoo database name (default=odoodb) +# odoo_datadir: directory where odoo store data (default=/var/lib/odoo) +# odoo_flags: additional flags for odoo server (default=--without-demo=all) +# + +. /etc/rc.subr + +name=odoo +rcvar=odoo_enable + +load_rc_config ${name} + +: ${odoo_enable:=NO} +: ${odoo_database:="odoodb"} +: ${odoo_datadir:="/var/lib/${name}"} +: ${odoo_flags="--without-demo=all"} + +odoo_user="odoo" +pidfile=/var/run/odoo.pid +extra_commands="initdb" + +su_cmd="/usr/bin/su" +chown_cmd="/usr/sbin/chown" +mkdir_cmd="/bin/mkdir" + +start_cmd="odoo_start" +stop_cmd="odoo_stop" +status_cmd="odoo_status" +restart_cmd="odoo_restart" +initdb_cmd="odoo_initdb" +start_precmd="odoo_start_precmd" + +command=/usr/local/bin/odoo +command_args="--database=${odoo_database} --data-dir=${odoo_datadir} --logfile=/var/log/${name}.log --config=%%LOCALBASE%%/etc/odoo.conf ${odoo_flags}" + +odoo_start_precmd() { + odoo_datadir_check + touch ${pidfile} + ${chown_cmd} -R ${odoo_user}:${odoo_user} ${pidfile} +} + +odoo_start() +{ + daemon -p ${pidfile} -u ${odoo_user} \ + ${command} ${command_args} + echo "Starting ${name}" +} + +odoo_datadir_check() +{ + if [ ! -d "${odoo_datadir}" ]; then + ${mkdir_cmd} -p ${odoo_datadir} + ${chown_cmd} -R ${odoo_user}:${odoo_user} ${odoo_datadir} + echo "${name} data directory created" + fi +} + +odoo_initdb() +{ + echo " " + echo "#################################################################" + echo "# #" + echo "# Don't use initdb if you are updating from previous version of #" + echo "# Odoo. Cancel if this is your case (Ctrl + C) #" + echo "# #" + echo "#################################################################" + echo " " + sleep 10 + odoo_start_precmd + daemon -p ${pidfile} -u ${odoo_user} \ + ${command} ${command_args} -i all + echo "Initializing database and starting ${name} server" +} + +odoo_restart() +{ + echo "Performing restart ${name}" + odoo_stop + sleep 5 + odoo_start +} + +odoo_status() +{ + # If running, show pid + if [ -f ${pidfile} ] + then + echo "${name} is running as pid" `cat ${pidfile}` + else + echo "${name} is not running" + fi +} + +odoo_stop() +{ + if [ -f ${pidfile} ] + then + kill `cat ${pidfile}` + rm ${pidfile} + echo "Stopping ${name}" + fi +} + +run_rc_command "$1" diff --git a/finance/odoo14/files/patch-odoo_tools__vendor_sessions.py b/finance/odoo14/files/patch-odoo_tools__vendor_sessions.py new file mode 100644 index 000000000000..dcac41974344 --- /dev/null +++ b/finance/odoo14/files/patch-odoo_tools__vendor_sessions.py @@ -0,0 +1,19 @@ +--- odoo/tools/_vendor/sessions.py 2021-09-04 18:46:08.432901000 -0500 ++++ odoo/tools/_vendor/sessions.py 2021-09-04 18:46:25.423822000 -0500 +@@ -26,7 +26,6 @@ + from time import time + + from werkzeug.datastructures import CallbackDict +-from werkzeug.posixemulation import rename + + _sha1_re = re.compile(r"^[a-f0-9]{40}$") + +@@ -198,7 +197,7 @@ + finally: + f.close() + try: +- rename(tmp, fn) ++ os.rename(tmp, fn) + os.chmod(fn, self.mode) + except (IOError, OSError): + pass diff --git a/finance/odoo14/files/pkg-message.in b/finance/odoo14/files/pkg-message.in new file mode 100644 index 000000000000..afea313561cf --- /dev/null +++ b/finance/odoo14/files/pkg-message.in @@ -0,0 +1,44 @@ +[ +{ type: install + message: <