diff --git a/setup/package.dffedora b/setup/package.dffedora index e71dfcc0a43..e9f334d65a7 100644 --- a/setup/package.dffedora +++ b/setup/package.dffedora @@ -17,6 +17,7 @@ RUN dnf update -d 0 -e 0 -y && \ python3-babel \ python3-dateutil \ python3-decorator \ + python3-devel \ python3-docutils \ python3-freezegun \ python3-gevent \ diff --git a/setup/package.py b/setup/package.py index 1fcd38b4aa0..95bd474e17f 100755 --- a/setup/package.py +++ b/setup/package.py @@ -345,7 +345,17 @@ class DockerRpm(Docker): def build(self): logging.info('Start building fedora rpm package') - self.run('python3 setup.py --quiet bdist_rpm', self.args.build_dir, 'odoo-rpm-build-%s' % TSTAMP) + rpmbuild_dir = '/var/lib/odoo/rpmbuild' + cmds = [ + 'cd /data/src', + 'mkdir -p dist', + 'rpmdev-setuptree -d', + f'cp -a /data/src/setup/rpm/odoo.spec {rpmbuild_dir}/SPECS/', + f'tar --transform "s/^\\./odoo-{VERSION}/" -c -z -f {rpmbuild_dir}/SOURCES/odoo-{VERSION}.tar.gz .', + f'rpmbuild -bb --define="%version {VERSION}" /data/src/setup/rpm/odoo.spec', + f'mv {rpmbuild_dir}/RPMS/noarch/odoo*.rpm /data/src/dist/' + ] + self.run(' && '.join(cmds), self.args.build_dir, f'odoo-rpm-build-{TSTAMP}') os.rename(glob('%s/dist/odoo-*.noarch.rpm' % self.args.build_dir)[0], '%s/odoo_%s.%s.rpm' % (self.args.build_dir, VERSION, TSTAMP)) logging.info('Finished building fedora rpm package') diff --git a/setup/redhat/install.sh b/setup/redhat/install.sh deleted file mode 100644 index 869261cc092..00000000000 --- a/setup/redhat/install.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -e -ABI=$(rpm -q --provides python3 | uniq | awk '/abi/ {print $NF}') -python3 setup.py install --prefix=/usr --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES --install-lib usr/lib/python${ABI}/site-packages/ diff --git a/setup/redhat/postinstall.sh b/setup/rpm/odoo.spec similarity index 60% rename from setup/redhat/postinstall.sh rename to setup/rpm/odoo.spec index 31ae914d3cd..3e198255a93 100644 --- a/setup/redhat/postinstall.sh +++ b/setup/rpm/odoo.spec @@ -1,3 +1,39 @@ +%global name odoo +%global release 1 +%global unmangled_version %{version} + +Summary: Odoo Server +Name: %{name} +Version: %{version} +Release: %{release} +Source0: %{name}-%{unmangled_version}.tar.gz +License: LGPL-3 +Group: Development/Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot +Prefix: %{_prefix} +BuildArch: noarch +Vendor: Odoo S.A. +Requires: sassc +BuildRequires: python3-devel +Url: https://www.odoo.com + +%description +Odoo is a complete ERP and CRM. The main features are accounting (analytic +and financial), stock management, sales and purchases management, tasks +automation, marketing campaigns, help desk, POS, etc. Technical features include +a distributed server, an object database, a dynamic GUI, +customizable reports, and XML-RPC interfaces. + +%prep +%autosetup + +%build +%py3_build + +%install +%py3_install + +%post #!/bin/sh set -e @@ -9,7 +45,6 @@ ODOO_GROUP="odoo" ODOO_LOG_DIR=/var/log/odoo ODOO_LOG_FILE=$ODOO_LOG_DIR/odoo-server.log ODOO_USER="odoo" -ABI=$(rpm -q --provides python3 | uniq | awk '/abi/ {print $NF}') if ! getent passwd | grep -q "^odoo:"; then groupadd $ODOO_GROUP @@ -29,7 +64,7 @@ db_host = False db_port = False db_user = $ODOO_USER db_password = False -addons_path = /usr/lib/python${ABI}/site-packages/odoo/addons +addons_path = %{python3_sitelib}/odoo/addons " > $ODOO_CONFIGURATION_FILE chown $ODOO_USER:$ODOO_GROUP $ODOO_CONFIGURATION_FILE chmod 0640 $ODOO_CONFIGURATION_FILE @@ -60,3 +95,9 @@ KillMode=mixed [Install] WantedBy=multi-user.target EOF + + +%files +%{_bindir}/odoo +%{python3_sitelib}/%{name}-*.egg-info +%{python3_sitelib}/%{name}