pasos esenciales para generar el rpm de tu elastix addon
DESCRIPTION
Luis Abarca Elastix Development Engineer PaloSanto SolutionsTRANSCRIPT
![Page 1: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/1.jpg)
PASOS ESENCIALES PARA GENERAR
EL RPM DE TU ELASTIX-ADDON
Dpto. Desarrollo Elastix
Luis Abarca
![Page 2: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/2.jpg)
RPM
Dpto. Desarrollo Elastix
Un rpm es una forma de referirse al formato de archivos manejado
por el Administrador de Paquetes RPM, a los propios archivos con
este formato, a software empaquetado en estos archivos, y al propio
administrador de paquetes en si.
Nos referiremos en esta ocasión como rpms al software
empaquetado bajo este tipo de formato.
![Page 3: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/3.jpg)
Estructura de un entorno
de Generación Básico
Dpto Desarrollo Elastix
![Page 4: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/4.jpg)
Estructura de un Entorno
~/rpmbuild/SOURCES Paquete fuente prístina (Ej:, tarballs y
parches).
~/rpmbuild/BUILD Los archivos fuentes son desempaquetados y
compilados en un subdirectorio dentro de
este.
~/rpmbuild/BUILDROOT Los archivos son instalados bajo este directorio
durante la etapa %install.
~/rpmbuild/RPMS Los RPM binarios son creados y
almacenados bajo este directorio.
~/rpmbuild/SRPMS Los RPM fuente son creados y almacenados
bajo este directorio.
~/rpmbuild/SPECS Archivos de especificaciones RPM (.spec).
Dpto. Desarrollo Elastix
![Page 5: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/5.jpg)
Generalidades al construir
un RPM
Dpto. Desarrollo Elastix
![Page 6: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/6.jpg)
Visión GeneralEl código fuente.
Parches.
Administrar el desempaquetado, la construcción y la
instalación.
Controla el paquete.
Dpto. Desarrollo Elastix
![Page 7: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/7.jpg)
Archivo SpecTodo lo que se hace con el paquete se encuentra
aquí.
Mantiene toda la información junta.
Provee de información.
Controla la construcción del paquete
Dpto. Desarrollo Elastix
![Page 8: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/8.jpg)
Estructura RPM Elastix-
Addon
Dpto. Desarrollo Elastix
![Page 9: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/9.jpg)
Estructura RPM-Elastix-Addon
El source debe tener la siguiente estructura:
Dpto. Desarrollo Elastix
NOMBREMODULO
-->modules
-->setup
-->menu.xml
![Page 10: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/10.jpg)
Estructura RPM-Elastix-Addon
El source debe tener la siguiente estructura:
Dpto. Desarrollo Elastix
-->modules
-->moduloaddon
-->setup
-->delete
-->nombremoduloaddon
-->#number_nombremoduloaddon.sql
-->install
-->nombremoduloaddon
-->#number_schema.sql
-->update
-->nombremoduloaddon
-->version_sql
-->#number_#lastVersion_#newVersion.sql
-->db.info
-->menu.xml
![Page 11: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/11.jpg)
Archivo: db.info
[myDBSqlite]
ignore_backup = no
engine = sqlite3
path = /var/www/db
deletable = no
[myDBMysql]
ignore_backup = no
engine = mysql
path = /var/lib/mysql
deletable = no
Dpto. Desarrollo Elastix
![Page 12: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/12.jpg)
Archivo: menu.xml<?xml version="1.0" encoding="UTF-8"?>
<module>
<menulist>
<menuitem menuid="userListTest"
desc="Users List Test"
parent="" module="no" link=""
order="8"></menuitem>
<menuitem menuid="user_list"
desc="User List"
parent="userListTest" module="yes"
link="" order="1">
<permissions>
<group id="1"
name="administrator" desc="total
access"></group>
</permissions>
</menuitem>
</menulist>
</module>Dpto. Desarrollo Elastix
![Page 13: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/13.jpg)
Ejemplo de Archivo SPEC.. (1/4)%define modname usertest
Summary: Elastix Module Example
Name: elastix-%{modname}
Version: 2.4.0
Release: 1
License: GPL
Group: Applications/System
Source0: %{modname}_%{version}-%{release}.tgz
BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildArch: noarch
Prereq: elastix-framework >= 2.4.0-10
%description
Elastix Module Example
%prep
%setup -n %{modname}
%install
rm -rf $RPM_BUILD_ROOT
# Files provided by all Elastix modules
mkdir -p $RPM_BUILD_ROOT/var/www/html/
mv modules/$RPM_BUILD_ROOT/var/www/html/
# The following folder should contain all the data
that is required by the installer,
Dpto. Desarrollo Elastix
![Page 14: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/14.jpg)
Ejemplo de Archivo SPEC.. (2/4)# that cannot be handled by RPM.
mkdir -p
$RPM_BUILD_ROOT/usr/share/elastix/module_installer/%{
name}-%{version}-%{release}/
mv
setup/$RPM_BUILD_ROOT/usr/share/elastix/module_instal
ler/%{name}-%{version}-%{release}/
mv menu.xml
$RPM_BUILD_ROOT/usr/share/elastix/module_installer/%{
name}-%{version}-%{release}/
%pre
mkdir -p /usr/share/elastix/module_installer/%{name}-
%{version}-%{release}/
touch /usr/share/elastix/module_installer/%{name}-
%{version}-%{release}/preversion_%{modname}.info
if [ $1 -eq 2 ]; then
rpm -q --queryformat='%{VERSION}-%{RELEASE}'
%{name} >
/usr/share/elastix/module_installer/%{name}-
%{version}-%{release}/preversion_%{modname}.info
fi
%post
pathModule="/usr/share/elastix/module_installer/%{nam
e}-%{version}-%{release}"
# Run installer script to fix up ACLs and add module
to Elastix menus.
elastix-menumerge $pathModule/menu.xml
Dpto. Desarrollo Elastix
![Page 15: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/15.jpg)
Ejemplo de Archivo SPEC.. (3/4)pathSQLiteDB="/var/www/db"
mkdir -p $pathSQLiteDB
preversion=`cat
$pathModule/preversion_%{modname}.info`
if [ $1 -eq 1 ]; then #install
# The installer database
elastix-dbprocess "install"
"$pathModule/setup/db"
elif [ $1 -eq 2 ]; then #update
elastix-dbprocess "update"
"$pathModule/setup/db" "$preversion"
fi
%clean
rm -rf $RPM_BUILD_ROOT
%preun
if [ $1 -eq 0 ] ; then # Validation for desinstall
this rpm
echo "Delete example menus"
elastix-menuremove "%{modname}"
# Here you should call to elastix-dbprocess for
deleting, the same way that it was for install, just
that instead of word “install” goes word
#“delete”. But this is not often used due to
the databases usually are not deleted.
fi
Dpto. Desarrollo Elastix
![Page 16: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/16.jpg)
Ejemplo de Archivo SPEC.. (4/4)
%files
%defattr(-, asterisk, asterisk)
%{_localstatedir}/www/html/*
/usr/share/elastix/module_installer/*
%changelog
* Wed Aug 27 2014 Luis Abarca Villacis
<[email protected]> 2.4.0-1
Initial version.
Dpto. Desarrollo Elastix
![Page 17: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/17.jpg)
Pasos Finales
Dpto. Desarrollo Elastix
![Page 18: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/18.jpg)
Pasos FinalesUna vez elaborado el RPM debe enviarlo a nuestro
Departamento de Addons.
Para mas información visite http://addons.elastix.org/
Dpto. Desarrollo Elastix
![Page 19: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/19.jpg)
Demostración
Dpto. Desarrollo Elastix
![Page 20: Pasos esenciales para generar el RPM de tu Elastix Addon](https://reader033.vdocumento.com/reader033/viewer/2022052620/557abd0cd8b42a89258b4c6b/html5/thumbnails/20.jpg)
Gracias….
Dpto. Desarrollo Elastix