Compile y empaquete su aplicación
Compile y empaqute su aplicación MauiKit para Nova Flow OS / openSUSE Tumbleweed.
Last updated
Compile y empaqute su aplicación MauiKit para Nova Flow OS / openSUSE Tumbleweed.
Last updated
Tomando como ejemplo la aplicación MauiKit base (mauimusic) creada como se indica en:
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.
Name: mauimusic
Title: Maui Music
Description: Discover and listen music
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.
Add an empty file or service > Filename: mauimusic.spec
La aplicación debería compilar exitosamente: succeeded
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
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:
%{_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