Overview
Request 1127192 accepted
Viking Windows build on an open platform
- Created by robbieonsea
- In state accepted
- Package maintainer: robbieonsea
Loading...
Request History
robbieonsea created request
Viking Windows build on an open platform
rhabacker accepted request
Superseeded by https://build.opensuse.org/request/show/1128623
In these cases, you can check the "superseeds ..." box when opening an updated request, which will automatically close this request.
According to https://en.opensuse.org/Build:projects:windows:mingw:win32#Porting_native_autotools_packages_to_mingw64 you can remove these dependencies:
+BuildRequires: mingw64-filesystem
+BuildRequires: mingw64-binutils
+BuildRequires: mingw64-runtime
+BuildRequires: mingw64-cross-binutils
+BuildRequires: mingw64-cross-pkg-config
except
BuildRequires: mingw64-cross-gcc
because they are already added as reference, see https://build.opensuse.org/projects/windows:mingw:win64/packages/mingw64-gcc:mingw64-cross-gcc/repositories/openSUSE_Leap_15.4/binaries/x86_64/mingw64-cross-gcc-13.2.0-lp154.42.1.x86_64.rpm
+BuildRequires: mingw64-libmagic1
+BuildRequires: mingw64-libbz2-1
These are run time libraries and should normally not be required as build dependency except the package runs cross compiled applications for example with wine.
Most, if not all, of these packages are runtime packages that provide shared libraries. In this project, when creating packages, required shared libraries are recognized and added as a runtime requirement by default, see entries mingw64(....dll) on the "Requires" tab at https://build.opensuse.org/projects/home:robbieonsea/packages/mingw64-viking/repositories/15.5/binaries/x86_64/mingw64-viking-1.10-lp155.1.1.noarch.rpm. Please remove these.
For building setup installer or portable packages a dedicated package is available https://build.opensuse.org/package/show/windows:mingw:win64/mingw64-installer-base, see https://build.opensuse.org/package/view_file/windows:mingw:win64/mingw64-gdb/mingw64-gdb-installer.spec?expand=1 for an example how to use.
Are there tabs in this file ? - please use spaces
"For building setup installer or portable packages a dedicated package is available ...<snip> "
I'm trying to understand the capabilities of mingw64-installer-base; seems a little opaque in how to use it, even with the GDB example - is it meant to replace / reuse NSIS? Even if it is somehow using NSIS in the background - can one make it use an existing .nsi script definition?
Since for the Windows installer I want it to do at least these things:
Installation of 'system' things (normally provided by system wide dependencies in Linux) into a place that will get used by the Viking install:
a. File magic database
b. GTK3 Theme - mainly for the basic stock toolbar/menu icons
c. Supporting GTK/Glib programs like gspawn
d. Help system (just a PDF - as not using ghelp/yelp)
e. File associations (.vik and .gpx, etc...)
f. Ideally use a CA certificate store, but I've not worked out how to do this.
Otherwise ATM, I'm quite happy with the existing NSIS installer generation being outside of OBS.
Basically, the mingwxx-installer-base package creates three different packages: a portable package with all files installed under %{_mingw32_prefix}, a setup installer with additional options and an archive with debug information, which contains symbols and source code for gdb.
Files/directories provided by an available package are included by default by adding the related package as build requirement.
mingw64-viking
will add all packages providing dll's used by the mentioned package by default)BuildRequires: mingw64-glib2
%_mingw64_installer_prep mkdir -p tmp/share/kmymoney cp %{_mingw64_kf5_appsdir}/icons/breeze/breeze-icons.rcc tmp/share/kmymoney/icontheme.rcc ```
If this is a simple file, you can add it as mentioned above
If nsis can use an additional configuration file that is included when creating the installation program, this can be added with an additional macro option (see below). Other option would also be possible.
If this is file or directory based, adding such store is already provided as mentioned above.
I should mention that there is also support to add a dedicated start.bat file for the portable package, to add a license file and a few more options. The rpm macros used in the
*-installer.spec
file are located and documented at https://build.opensuse.org/package/view_file/windows:mingw:win64/mingw64-installer-base/macros.mingw64-installer?expand=1@alanmcgovern, @danimo, @fridrich_strba, @fstrba, @hiberis, @jengelh, @jnweiger, @kalikiana, @lnussel, @mkbosmans, @pansenmann, @rhabacker: review reminder
@rhabacker: Thank you for the detailed reply about how to improve the installer.
However, for now I'd like to at least get Viking v1.10 in OBS, with the .spec file updated to address the other simpler issues.
Then longer term seek to automate the installer in conjunction with v1.11 (which I'm in the process of getting closer to creating...). Since if I understand correctly, it seems one needs the primary program uploaded first in order for it to be a dependency of the installer.spec anyway.
NB I also have a 32bit package version, which I'll add soon too.