Planning to start unifying native and mingw packages
by Sandro Mani
Hi
Following recent discussions and to reduce the maintenance burden, I'm
planning to start merging native and mingw packages. Initially, I'll be
looking at these packages where I maintain both variants:
eigen3 mingw-eigen3
enchant2 mingw-enchant2
freeimage mingw-freeimage
gdal mingw-gdal
GeographicLib mingw-GeographicLib
geos mingw-geos
giflib mingw-giflib
gtkspell3 mingw-gtkspell3
gtkspellmm30 mingw-gtkspellmm30
jxrlib mingw-jxrlib
leptonica mingw-leptonica
libgeotiff mingw-libgeotiff
libimagequant mingw-libimagequant
libkml mingw-libkml
librttopo mingw-librttopo
libspatialite mingw-libspatialite
libwebp mingw-libwebp
openjpeg2 mingw-openjpeg2
OpenSceneGraph mingw-OpenSceneGraph
osgearth mingw-osgearth
podofo mingw-podofo
proj mingw-proj
python-pillow mingw-python-pillow
qtspell mingw-qtspell
shapelib mingw-shapelib
svg2svgt mingw-svg2svgt
tesseract mingw-tesseract
uriparser mingw-uriparser
I'm performing test builds here [1]. Once I've got them all building
there, if there are no objections, I plan to push to F37 and retire all
the corresponding mingw repos.
Sandro
[1] https://copr.fedorainfracloud.org/coprs/smani/mingw-unified-spec/builds/
1 year, 3 months
Standard DLL provides
by Sandro Mani
Hi
Currently mingw-filesystem contains
# (rpm -ql mingw32-crt | grep '\.a$' | while read f ; do
i686-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw32
Source20: standard-dlls-mingw32
# (rpm -ql mingw64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw64
Source21: standard-dlls-mingw64
# (rpm -ql ucrt64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32ucrt-dlltool -I $f 2>/dev/null ; done) | sort | uniq |
tr A-Z a-z > standard-dlls-ucrt64
Source22: standard-dlls-ucrt64
and
%package -n mingw32-filesystem
[...]
Provides: %(sed "s/\(.*\)/mingw32(\1) /g" %{SOURCE20} | tr "\n" " ")
Provides: mingw32(mscoree.dll)
%package -n mingw64-filesystem
[...]
Provides: %(sed "s/\(.*\)/mingw64(\1) /g" %{SOURCE21} | tr "\n" " ")
Provides: mingw64(mscoree.dll)
%package -n ucrt64-filesystem
[...]
Provides: %(sed "s/\(.*\)/ucrt64(\1) /g" %{SOURCE22} | tr "\n" " ")
Provides: ucrt64(mscoree.dll)
I wonder whether these standard DLL provides should be provided by
mingw32-crt, mingw64 and ucrt64-crt instead? The provided DLLs depend on
the mingw-w64 version (indeed I just had to update them for
mingw-w64-10.0.0), and IMO it would be better to keep mingw-filesystem
independent from the mingw-w64 version, i.e. to allow adding macros etc
and allow simple git merges to update also the other branches. I'd
proceed with removing these from mingw-filesystem, and adding to
mingw-crt.spec:
# Steps:
# - Perform (scratch) build with bootstrap=1
# - Update the standard-dlls-xxx files as documented below, and rebuild
with bootstrap=0
%global bootstrap 0
%if 0%{?bootstrap:1}
# (rpm -ql mingw32-crt | grep '\.a$' | while read f ; do
i686-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw32
Source1: standard-dlls-mingw32
# (rpm -ql mingw64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32-dlltool -I $f 2>/dev/null ; done) | sort | uniq | tr
A-Z a-z > standard-dlls-mingw64
Source2: standard-dlls-mingw64
# (rpm -ql ucrt64-crt | grep '\.a$' | while read f ; do
x86_64-w64-mingw32ucrt-dlltool -I $f 2>/dev/null ; done) | sort | uniq |
tr A-Z a-z > standard-dlls-ucrt64
Source3: standard-dlls-ucrt64
%endif
%package -n mingw32-crt
[...]
%if 0%{?bootstrap:1}
Provides: %(sed "s/\(.*\)/mingw32(\1) /g" %{SOURCE1} | tr "\n" " ")
Provides: mingw32(mscoree.dll)
%endif
%package -n mingw64-crt
[...]
%if 0%{?bootstrap:1}
Provides: %(sed "s/\(.*\)/mingw64(\1) /g" %{SOURCE2} | tr "\n" " ")
Provides: mingw64(mscoree.dll)
%endif
%package -n ucrt64-crt
[...]
%if 0%{?bootstrap:1}
Provides: %(sed "s/\(.*\)/ucrt64(\1) /g" %{SOURCE3} | tr "\n" " ")
Provides: ucrt64(mscoree.dll)
%endif
Any comments/objections?
Thanks
Sandro
1 year, 6 months
Fwd: Standard DLL provides
by Sandro Mani
On 03.05.22 17:16, Richard W.M. Jones wrote:
> On Tue, May 03, 2022 at 04:46:34PM +0200, Sandro Mani wrote:
>>>> Any comments/objections?
>>>>
>>>>
>>>> That seems to make sense to me, is there a reason why it wasn't before?
>>>>
>> As far as I see mingw-filesystem provided the standard DLLs since
>> the beginning of the package, perhaps @rjones can recall if there
>> was a reason?
> The reason for having the standard provides at all, or the reason they
> are in mingw-filesystem? The reason for having them at all is just
> for uniformity. You can "BuildRequires: mingw(wsock32.dll)" and not
> care whether that comes from Windows/Wine or from Fedora.
>
> The reason they are in mingw-filesystem and not in mingw-crt is likely
> just because we put them there without thinking about it too much.
> (Or "filesystem" is the system environment).
>
> Anyway moving them seem sensible, I have no objections.
Ok thanks, I'll proceed then.
Sandro
1 year, 6 months