Advertisement
Cognitus

.SPEC

Sep 17th, 2012
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.74 KB | None | 0 0
  1. #las variables usadas aquí corresponde al archivo macros de su distribución pueden ver una tabla de #conversión acá http://www.zarb.org/~jasonc/macros.php
  2.  
  3. Name: framework
  4. #nombre de la aplicación
  5. Version: 1.0
  6. #versión de la aplicación
  7. Release: %{mkrel 01}
  8. #Este es el número de release, en caso que por alguna razón debamos re-empaquetar, ya sea porque lo hemos #hecho mal, o porque agregamos un patch (Actualización), lo que hacemos es aumentarle un dígito, a "02" #quedando %{mkrel 02}, esto indicaría al sistema que es un update del anterior release. Se pueden usar dos #dígitos como en este caso "01" o solo uno "1" quedando a elección del empaquetador
  9.  
  10. Summary: Framework
  11. #Esto es la descripción corta, pueden tomarla del sitio o del "README" en el tarball.
  12. #También se puede agregar varias tags Summary para cada idioma, por ejemplo "Summary(es):", una debajo de #la otra.
  13.  
  14. License: GPL
  15. #La licencia, generalmente esta explicitada en el "README" o "copying" que vienen en el tarball.
  16.  
  17. URL: http://www.xxx.com/
  18. #El sitio del proyecto
  19.  
  20. Group: Development/Other
  21. #Grupo en el cual va a aparecer el programa gui de la respectiva distribución
  22.  
  23. Source0: %{name}-%{version}.tar.gz
  24. #Especificar el nombre y extensión del archivo, puede ser .zip, .tar, etc, va a tomar el nombre y versión #que están definidas al principio.
  25. #Este archivo si lo ocupan de forma local debe estar ubicado en ~/rpm/SOURCES/ , en caso contrario pueden #añadir la url del programa por ejemplo:
  26. #http://packages.zendframework.com/releases/ZendFramework-2.0.0/ZendFramework-2.0.0.tgz
  27.  
  28. BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot
  29. #Esta linea siempre es igual, no hay que cambiarla. Aca prepara en donde se va a trabajar para crear el #paquete
  30.  
  31. BuildRequires: php
  32. BuildRequires: php-gd
  33. #Acá ponemos los programas que se requiere para funcionar o ser compilado (en caso de que se requiera)
  34. #pueden ir varios como acá o ninguno
  35.  
  36. Requires: php >= 4
  37. #En este caso son las dependencias o librerías y versión que pide para ser ejecutado el programa
  38. #por ejemplo para una librería %{_lib}gtk+2.0_0-devel >= 2.6
  39.  
  40. BuildArch: noarch
  41. # La arquitectura del paquete puede ser noarch, i386, i586, i686, x86-64. Esta especificado el programa
  42.  
  43. %description
  44. Framework-php.
  45. #Descripción completa del programa
  46.  
  47. %prep
  48. %setup -q
  49. # Aquí es donde se desempaqueta el tarball. Se pueden añadir otro tipo de flags aparte del -q (silencioso)
  50.  
  51. %build
  52. #Esta es una de las partes que mas genera confusión por lo que explicare de dos maneras, la primera para #un tarball que requiere compilarse y la segunda para la cual solo necesitaremos copiar los archivos al #sistema
  53. #En esta parte se coloca todo lo que sea compilación y configuración, los "./configure" y "make".
  54.  
  55. %{__mkdir_p} build
  56. cd build
  57. export CFLAGS='%{optflags}'
  58. export CXXFLAGS='%{optflags}'
  59. cmake -DCMAKE_INSTALL_PREFIX=%{buildroot}/usr -DLIB_SUFFIX=$(echo %{_lib} | cut -b4-) ..
  60. %make
  61. #No explicare con detalle ya que cada tarball es diferente. Ahora aca simplemente se creo la carpeta build #entramos en ella y compilamos. En el caso de que no requerimos compilar se deja vacio
  62.  
  63. %install
  64. #para un tarball que requiere compilarse
  65. %{__rm} -rf %{buildroot}
  66. #Limpieza, borrado de temporales.
  67. cd build
  68. %makeinstall
  69.  
  70. #para simple copia de archivos
  71. %{__rm} -rf %{buildroot}
  72. #Limpieza, borrado de temporales.
  73. %{__mkdir_p} %{buildroot}%{_datadir}/php
  74. #Creamos las carpetas en donde ira la aplicación, %{_datadir} corresponde a /usr/share
  75. %{__cp} -pr %{name}-%{version} %{buildroot}%{_datadir}/php/zend
  76. #copiamos el contenido del tarball a la carpeta destino
  77.  
  78. %clean
  79. %{__rm} -rf %{buildroot}
  80. #Limpieza, borrado de temporales.
  81.  
  82. %files
  83. #En esta parte se listan los archivos a copiarse estos deben ser escritos uno por uno, algo simple si #estamos trabajando solamente con el tarball ya que practicamente no copiamos ningun archivo, sin embargo #en el caso de que solo estemos copiando una aplicacion al sistema es bastante tedioso.
  84. #NOTA: para hacer este trabajo queda prohibido hacer uso de find y similares
  85.  
  86. %defattr(-,root,root)
  87. #se definen los permisos de los archivos - (para dejar igual que en el tarball), user y group
  88.  
  89. %{_datadir}/php/Application.php
  90. %{_datadir}/php/Autoload.php
  91. %{_datadir}/php/Config.php
  92. %{_datadir}/php/Controller.php
  93. %{_datadir}/php/Controller/Action.php
  94. %{_datadir}/php/Controller/Exception.php
  95.  
  96. #TIP: Si tienen demasiados archivos pueden dejar solo la linea %defattr(-,root,root) y empaquetar en el #momento que creen el .rpm les arrojara la ruta y los archivos que no fueron escritos acá, recuerden que #estos deben reemplazarlos con su respectiva variable para no causar problemas.
  97.  
  98.  
  99. %changelog
  100. * Wed Sep 12 2012 nombre <email> version
  101. - first public release
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement