# Odoo 10 sin Overlay zugaina, con Overlay local [Solucionado]

## Eleazar Anzola

Buenos días estimados,

Después de algún tiempo sin utilizar Odoo quise volver a las andadas gracias a un amigo que me pidió un sistema de gestión de empresas, lo sugerí odoo que ya a estas alturas esta bastante maduro y sobrado para lo que se requería y opssssss sorpresa ya no esta más en zugaina.

Lo he buscado en la web pero solo me he topado con GitHub ó directo desde su web, le hice un server con Gentoo hace ya algún tiempo y quería seguir con la misma filosofía sin tener que bajarlo de externos.

Alguien sabe como ó donde encontrarlo para gentoo sin meterlo directo desde fuente?

----------

## cameta

https://gpo.zugaina.org/app-office/odoo

----------

## Eleazar Anzola

 *cameta wrote:*   

> https://gpo.zugaina.org/app-office/odoo

 

Ya había agregado ese repo pero aun así sigue sin reconocerlo, no logra encontrar el paquete ni la descarga.

----------

## cameta

Lo mejor sería montarlo como local overlay. y luego modificar el ebuild de manera que apuntase a la fuente actual.

http://nightly.odoo.com/${BASE_VERSION}/nightly/src/${PN}_${PV}.tar.gz

Como acabo de comprobar

http://nightly.odoo.com/8.0/nightly/src/

la fuente 20150609 no existe

Básicamente yo haría lo siguiente

1º Crear un local overlay

https://wiki.gentoo.org/wiki/Handbook:AMD64/Portage/CustomTree#Defining_a_custom_repository

https://wiki.gentoo.org/wiki/Overlay/Local_overlay

2º Cambiar el nombre del ebuild por

odoo-8.0.20160101.ebuild

ya que la fuente http://nightly.odoo.com/8.0/nightly/src/odoo_8.0.20160101.tar.gz si que existe. 

para ello aplicas algo como esto

```
user $mkdir -v /usr/local/overlays/bobs-overlay/app-emulation

user $cd /usr/local/overlays/bobs-overlay/app-emulation

user $cp -r /usr/portage/app-emulation/docker .

user $cd ./docker

user $cp docker-1.11.0.ebuild docker-1.12.6.ebuild

user $repoman --digest=y -d full 
```

De todas maneras lee los enlaces para estar seguro de como hacerlo.

https://wiki.gentoo.org/wiki/Handbook:AMD64/Portage/CustomTree/es#Definiendo_un_repositorio_personalizado

Este está en español si te es más fácil.

----------

## Eleazar Anzola

 *cameta wrote:*   

> Lo mejor sería montarlo como local overlay. y luego modificar el ebuild de manera que apuntase a la fuente actual.
> 
> http://nightly.odoo.com/${BASE_VERSION}/nightly/src/${PN}_${PV}.tar.gz
> 
> Como acabo de comprobar
> ...

 

Como siempre mi estimado muy buen aporte, me toca leer y ajustar para lograr el cometido

Mil Gracias

----------

## Eleazar Anzola

Agradecido amigo cameta por la sugerencia, tal como me indicaste hice mi repositorio local y modifique el ebuild de zugaina tal como describo a continuación para futuras referencias:

La solución mas factible que logre encontrar fue utilizar Layman con el repositorio "zugaina" que de antemano aclaro se quedó congelado en la versión 8 de odoo, así que la opción viable final fue editar el ebuild y cambiar algunas opciones para ajustarlo a la ultima versión que para el momento es la versión 10, es de acotar que al hacer el emerge me surgió un error con la dependencia virtual/python-imaging que según leí en algún foro fue reemplazado por su fork dev-python/pillow y se debe hacer la sustitución en el ebuild.

No olvidar guardar en el directorio correspondiente el ebuild bajo el nombre: odoo-10.0.20161005.ebuild (En lo futuro revisar las versiones nuevas de Odoo en su web para modificar el ebuild)

Se deben crear los archivos correspondientes en el files del árbol local de portage

Archivos contenidos en el /usr/local/portage/app-office/odoo/files/:

1.- odoo.cfg

```
[options]

addons_path = /usr/lib64/python2.7/site-packages/openerp/addons

admin_passwd = admin

auto_reload = False

csv_internal_sep = ,

data_dir = /var/lib/odoo/

db_host = False

db_maxconn = 64

db_name = False

db_password = False

db_port = False

db_template = template1

db_user = odoo

dbfilter = .*

debug_mode = False

demo = {}

email_from = False

geoip_database = /usr/share/GeoIP/GeoLiteCity.dat

import_partial = 

limit_memory_hard = 2684354560

limit_memory_soft = 2147483648

limit_request = 8192

limit_time_cpu = 60

limit_time_real = 120

list_db = True

log_db = False

log_handler = :INFO

log_level = info

logfile = None

logrotate = False

longpolling_port = 8072

max_cron_threads = 2

osv_memory_age_limit = 1.0

osv_memory_count_limit = False

pg_path = None

pidfile = None

proxy_mode = False

reportgz = False

secure_cert_file = server.cert

secure_pkey_file = server.pkey

server_wide_modules = None

smtp_password = False

smtp_port = 25

smtp_server = localhost

smtp_ssl = False

smtp_user = False

syslog = False

test_commit = False

test_enable = False

test_file = False

test_report_directory = False

timezone = False

translate_modules = ['all']

unaccent = False

without_demo = False

workers = 0

xmlrpc = True

xmlrpc_interface = 

xmlrpc_port = 8069

xmlrpcs = True

xmlrpcs_interface = 

xmlrpcs_port = 8071

```

2.- odoo.confd

```
USER="odoo"

CONFIGFILE="/etc/odoo/odoo.cfg"

LOGFILE="/var/log/odoo/odoo-server.log"

PIDFILE="/run/odoo/odoo.pid"

```

3.- odoo.initd

```
#!/sbin/openrc-run

# Additional options that are passed to the daemon.

DAEMON_OPTS="-c ${CONFIGFILE}"

depend() {

   after postgresql

}

start() {

   checkpath -q -d -m 0755 -o odoo:odoo /run/odoo

   ebegin "Starting odoo server"

   start-stop-daemon --start --quiet --pidfile "${PIDFILE}" --exec /usr/bin/odoo \

      --make-pidfile --user "${USER}" --stdout "${LOGFILE}" --stderr "${LOGFILE}" --background -- ${DAEMON_OPTS}

   eend $?

}

stop() {

   ebegin "Stopping odoo server"

   start-stop-daemon --stop --quiet --pidfile "${PIDFILE}" --signal 9

   rm -f "${PIDFILE}"

   eend $?

}

```

4.- odoo.logrotate

```
# Copyright 1999-2012 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/app-office/openerp/files/openerp.logrotate,v 1.1 2012/10/30 09:27:35 patrick Exp $

/var/log/odoo/*.log {

 monthly

 create 660 odoo odoo

 missingok

 copytruncate

}

```

Aqui el codigo del ebuild odoo-10.0.20161005.ebuild :

```
# Copyright 1999-2013 Gentoo Foundation

# Distributed under the terms of the GNU General Public License v2

# $Header: /var/cvsroot/gentoo-x86/app-office/odoo/odoo-7.0.20130219-r5.ebuild,v 1.2 2013/03/11 03:10:59 patrick Exp $

#   virtual/python-imaging[jpeg] fue reemplazado por dev-python/pillow

# Odoo versión 10 odoo-10.0.20161005.ebuild

EAPI="5"

inherit eutils distutils user versionator

BASE_VERSION="$( get_version_component_range 1-2 )"

DESCRIPTION="Open Source ERP & CRM"

HOMEPAGE="http://www.odoo.com/"

SRC_URI="http://nightly.odoo.com/${BASE_VERSION}/nightly/src/${PN}_${PV}.tar.gz"

SLOT="0"

KEYWORDS="~amd64 ~x86"

RESTRICT="mirror"

IUSE="+postgres ldap ssl"

CDEPEND="postgres? ( dev-db/postgresql[server] )

   dev-python/pytz

   dev-python/simplejson

   dev-python/requests

   dev-python/pyPdf

   dev-python/pyparsing

   dev-python/passlib

   dev-python/decorator

   dev-python/psutil

   dev-python/docutils

   dev-python/lxml

   dev-python/psycopg:2

   dev-python/pychart

   dev-python/reportlab

   media-gfx/pydot

   dev-python/vobject

   dev-python/mako

   dev-python/pyyaml

   dev-python/pillow

   dev-python/Babel

   ldap? ( dev-python/python-ldap )

   dev-python/python-openid

   dev-python/werkzeug

   dev-python/xlwt

   dev-python/feedparser

   dev-python/python-dateutil

   dev-python/pywebdav

   ssl? ( dev-python/pyopenssl )

   dev-python/vatnumber

   dev-python/mock

   dev-python/unittest2

   dev-python/jinja

   dev-libs/libxslt

   media-gfx/wkhtmltopdf

"

RDEPEND="${CDEPEND}"

DEPEND="${CDEPEND}"

ODOO_USER="odoo"

ODOO_GROUP="odoo"

S="${WORKDIR}/${PN}"

pkg_setup() {

   python_set_active_version 2

   python_pkg_setup

}

src_unpack() {

   unpack ${A}

   mv ${WORKDIR}/${PN}-* $S

}

src_install() {

   distutils_src_install

   newinitd "${FILESDIR}/odoo.initd" "${PN}"

   newconfd "${FILESDIR}/odoo.confd" "${PN}"

   keepdir /var/log/odoo

   insinto /etc/logrotate.d

   newins "${FILESDIR}"/odoo.logrotate odoo || die

   

   dodir /etc/odoo

   insinto /etc/odoo

   newins "${FILESDIR}"/odoo.cfg odoo.cfg || die

   dodir /var/lib/odoo

   keepdir /var/lib/odoo

}

pkg_preinst() {

   enewgroup ${ODOO_GROUP}

   enewuser ${ODOO_USER} -1 -1 -1 ${ODOO_GROUP}

   fowners ${ODOO_USER}:${ODOO_GROUP} /var/log/odoo

   fowners ${ODOO_USER}:${ODOO_GROUP} /var/lib/odoo

   use postgres || sed -i '6,8d' "${D}/etc/init.d/odoo" || die "sed failed"

}

pkg_postinst() {

   elog "In order to create the database user, run:"

   elog " emerge --config '=${CATEGORY}/${PF}'"

   elog "Be sure the database is started before"

   elog

   elog "Use odoo web interface in order to create a "

   elog "database for your company."

}

psqlquery() {

   psql -q -At -U postgres -d template1 -c "$@"

}

pkg_config() {

   einfo "In the following, the 'postgres' user will be used."

   if ! psqlquery "SELECT usename FROM pg_user WHERE usename = '${ODOO_USER}'" | grep -q ${ODOO_USER}; then

      ebegin "Creating database user ${ODOO_USER}"

      createuser --username=postgres --createdb --no-adduser ${ODOO_USER}

      eend $? || die "Failed to create database user"

   fi

}

```

Copio el ebuild modificado tal como a me ha funcionado y recordar que debe ser agregado el overlay local en mi caso: 

```
/usr/local/portage/app-office/odoo/odoo-10.0.20161005.ebuild
```

 y una vez echo no olvidar de hacer el ebuild odoo(version).ebuild (para la version 10 quedo odoo-10.0.20161005.ebuild) digest  para generar los archivos necesarios en el arbol de portage local.

El comando quedaria: 

```
cd /usr/local/portage/app-office/odoo/

ebuild odoo-10.0.20161005.ebuild digest
```

Una vez realizado todos los pasos necesaios para llegar a este punto solo resta hacer el: 

```
emerge odoo
```

 y listo cruzamos los dedos y esperar a que termine la instalación satisfactoriamente

Espero sirva para ayudar a los que andamos con esto de los ERP en gentoo

----------

## cameta

Encantado de que hayas conseguido instalarlo.

----------

