Compile y empaquete su aplicación
Compile y empaqute su aplicación MauiKit para Nova Flow OS / openSUSE Tumbleweed.
Tomando como ejemplo la aplicación MauiKit base (mauimusic) creada como se indica en:
MauiKit1. Registre una cuenta en Open Build Service:
2. Crear un subproyecto y añadir el repositorio MauiKit:
En la página de subproyecto verá: Overview, Repositories, Monitor, Requests, etc.
Seleccione Repositories > Add from a project:
Project: home:hopeandtruth6517:mauikit-apps
Repositories: openSUSE_Tumbleweed
Name: mauikit-apps_Tumbleweed
Architectures: i586, x86_64
El repositorio mauikit-apps depende a su vez del repositorio de openSUSE Tumbleweed, por lo que el repositorio añadido a su subproyecto tiene acceso a los 2 repositorios.
3. Seleccionar el subproyecto y crear un paquete:
Name: mauimusic
Title: Maui Music
Description: Discover and listen music
3. De un modo sencillo (sin integración git):
Elimine la carpeta mauimusic/build si ha compilado y ejecutado localmente.
Haga una copia de la carpeta mauimusic y renómbrela mauimusic-0.1.0.
Con el gestor de archivos Dolphin, haga click sobre la carpeta mauimusic-0.1.0 y seleccione Compress > Here as "mauimusic-0.1.0.tar.gz"
Suba el archivo en Open Build Service: Add local files.
4. En la página de paquete mauimusic seleccione:
Add an empty file or service > Filename: mauimusic.spec
5. Añade a mauimusic.spec:
La aplicación debería compilar exitosamente: succeeded
El fichero spec.
De un modo práctico con cada aplicación sólo tendrá que rellenar:
Name, Versión, License, Summary, URL.
BuildRequires y Requires.
Description.
Files.
BuildRequires:
Son los requerimientos durante la compilación. Son paquetes "devel".
mauimusic/CMakeLists.txt (busque todas las líneas find_package):
mauimusic/src/CMakeLists.txt (busque todo en target_link_libraries)
Cada uno de ellos es un requerimiento de compilación y debe ser incluido como BuildRequires.
Abra Gestión de Software de YaST:
Qt5Core / paquete libQt5Core-devel / dependencias > proporciona: cmake(Qt5Core)
KF5I18n / paquete ki18n-devel / dependencias > proporciona: cmake(KF5I18n)
Para buscar el paquete que corresponde a cmake(Qt5Core), indíquelo en:
Si ha encontrado la librería binaria compilada y desea conocer el paquete devel tambien puede buscarlo en:
libKF5I18n5
Seleccione en los resultados: libKF5I18n5 > official release > ki18n.spec:
Name: ki18n
%package devel: nombre resultante ki18n-devel
%package addon: nombre resultante ki18n-addon (ejemplo, no existe)
o bien:
%define lname libKF5I18n5
%package -n %{lname}: nombre resultante libKF5I18n5
%package -n libMusic: nombre resultante libMusic
Requires:
Paquetes requeridos durante la instalación.
Paquetes binarios de cada librería.
Paquetes correspondientes a cada "import".
Dado que vienen instalados por defecto es costumbre no indicarlos, pero es necesario incluirlo si no se encuentra instalado.
Para comprobar los import:
Instale Bluefish.
Navegar hasta mauimusic > click derecho o secundario ratón sobre mauimusic > Buscar archivos:
Escriba: import y click "buscar todos".
Comprobando en:
qt5qmlimport(QtQuick.Controls.2) es: libqt5-qtquickcontrols2-5.15.11+kde5-1.1.x86_64.rpm
qt5qmlimport(QtQuick.Layouts.1) es: qtdeclarative-imports-provides-qt5-1.0-1.22.x86_64.rpm
Files
Indicados en mauimusic/CMakeLists.txt
Si alguna vez compila una aplicación y no sabe que archivos se instalan, no incluya nada en la sección Files y compile. Si la compilación es correcta, producirá "failed" antes de empaquetar, pero le indicará los archivos y rutas de instalación.
El nombre del ejecutable o binario es el nombre del proyecto:
Macros de rutas.
%{_sysconfdir} | /etc |
|
%{_prefix} | /usr | can be defined to /app for flatpak builds |
%{_exec_prefix} | %{_prefix} | default: /usr |
%{_includedir} | %{_prefix}/include | default: /usr/include |
%{_bindir} | %{_exec_prefix}/bin | default: /usr/bin |
%{_libdir} | %{_exec_prefix}/%{_lib} | default: /usr/%{_lib} |
%{_libexecdir} | %{_exec_pre-fix}/libexec | default: /usr/libexec |
%{_sbindir} | %{_exec_prefix}/sbin | default: /usr/sbin |
%{_datadir} | %{_datarootdir} | default: /usr/share |
%{_infodir} | %{_datarootdir}/info | default: /usr/share/info |
%{_mandir} | %{_datarootdir}/man | default: /usr/share/man |
%{_docdir} | %{_datadir}/doc | default: /usr/share/doc |
%{_rundir} | /run |
|
%{_localstatedir} | /var |
|
%{_sharedstatedir} | /var/lib |
|
%{_lib} | Lib64 / lib on 32bit platforms |
|
|
|
|
%{_dataroot-dir} | %{_prefix}/share | default: /usr/share |
%{_var} | /var |
|
%{_tmppath} | %{_var}/tmp | default: /var/tmp |
%{_usr} | /usr |
|
%{_usrsrc} | %{_usr}/src | default: /usr/src |
%{_initddir} | %{_sysconfdir}/rc.d/init.d | default: /etc/rc.d/init.d |
%{_initrddir} | %{_initddir} | antiguo error ortográfico, retro-compatibilidad |
|
|
|
%{buildroot} | %{_buildrootdir}/%{name}-%{version}-%{release}.%{_arch} | same as $BUILDROOT |
%{_topdir} | %{getenv:HOME}/rpmbuild |
|
%{_builddir} | %{_topdir}/BUILD |
|
%{_rpmdir} | %{_topdir}/RPMS |
|
%{_sourcedir} | %{_topdir}/SOURCES |
|
%{_specdir} | %{_topdir}/SPECS |
|
%{_srcrpmdir} | %{_topdir}/SRPMS |
|
%{_buildrootdir} | %{_topdir}/BUILDROOT |
|
|
|
|
%{_kf5_libdir} | /usr/%{_lib} |
|
%{_kf5_configkcfgdir} | /usr/share/config.kcfg |
|
|
|
|
%{_docdir} | /usr/share/doc/packages |
|
Otras secciones
Last updated