summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--libosinfo.spec.in116
-rw-r--r--meson.build13
-rw-r--r--mingw-libosinfo.spec.in131
-rwxr-xr-xprepare-release.sh11
5 files changed, 122 insertions, 151 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2ec72c7..3c9dcd2 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -58,7 +58,7 @@ stages:
- $NINJA dist
- if test -x /usr/bin/rpmbuild && test "$RPM" != "skip";
then
- rpmbuild --nodeps -ta meson-dist/*.tar.xz;
+ rpmbuild --nodeps --define '_without_mingw 1' -ta meson-dist/*.tar.xz;
fi
.cross_build_job:
diff --git a/libosinfo.spec.in b/libosinfo.spec.in
index e32f1d3..6419483 100644
--- a/libosinfo.spec.in
+++ b/libosinfo.spec.in
@@ -1,5 +1,10 @@
# -*- rpm-spec -*-
+%define with_mingw 0
+%if 0%{?fedora}
+ %define with_mingw 0%{!?_without_mingw:1}
+%endif
+
Summary: A library for managing OS information for virtualization
Name: libosinfo
Version: @VERSION@
@@ -23,6 +28,24 @@ Requires: hwdata
Requires: osinfo-db
Requires: osinfo-db-tools
+%if %{with_mingw}
+BuildRequires: mingw32-filesystem
+BuildRequires: mingw32-gcc
+BuildRequires: mingw32-binutils
+BuildRequires: mingw32-glib2
+BuildRequires: mingw32-libxml2
+BuildRequires: mingw32-libxslt
+BuildRequires: mingw32-libsoup
+
+BuildRequires: mingw64-filesystem
+BuildRequires: mingw64-gcc
+BuildRequires: mingw64-binutils
+BuildRequires: mingw64-glib2
+BuildRequires: mingw64-libxml2
+BuildRequires: mingw64-libxslt
+BuildRequires: mingw64-libsoup
+%endif
+
%description
libosinfo is a library that allows virtualization provisioning tools to
determine the optimal device settings for a hypervisor/operating system
@@ -44,6 +67,36 @@ combination.
Libraries, includes, etc. to compile with the libosinfo library
+%if %{with_mingw}
+%package -n mingw32-libosinfo
+Summary: %{summary}
+BuildArch: noarch
+
+Requires: pkgconfig
+Requires: mingw32-osinfo-db
+Requires: mingw32-osinfo-db-tools
+
+%description -n mingw32-libosinfo
+libosinfo is a library that allows virtualization provisioning tools to
+determine the optimal device settings for a hypervisor/operating system
+combination.
+
+%package -n mingw64-libosinfo
+Summary: %{summary}
+BuildArch: noarch
+
+Requires: pkgconfig
+Requires: mingw64-osinfo-db
+Requires: mingw64-osinfo-db-tools
+
+%description -n mingw64-libosinfo
+libosinfo is a library that allows virtualization provisioning tools to
+determine the optimal device settings for a hypervisor/operating system
+combination.
+
+%{?mingw_debug_package}
+%endif
+
%prep
%setup -q
@@ -55,11 +108,42 @@ Libraries, includes, etc. to compile with the libosinfo library
-Denable-vala=enabled
%meson_build
+%if %{with_mingw}
+%mingw_meson \
+ -Denable-gtk-doc=false \
+ -Denable-tests=false \
+ -Denable-introspection=disabled \
+ -Denable-vala=disabled
+%mingw_ninja
+%endif
+
%install
%meson_install
%find_lang %{name}
+%if %{with_mingw}
+%mingw_ninja_install
+
+# Remove static libraries but DON'T remove *.dll.a files.
+rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/libosinfo-1.0.a
+rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/libosinfo-1.0.a
+
+# Libtool files don't need to be bundled
+find $RPM_BUILD_ROOT -name "*.la" -delete
+
+# Manpages don't need to be bundled
+rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/man
+rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/man
+
+rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc
+rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc
+
+%mingw_debug_install_post
+
+%mingw_find_lang libosinfo
+%endif
+
%check
%meson_test
@@ -90,4 +174,36 @@ Libraries, includes, etc. to compile with the libosinfo library
%{_datadir}/vala/vapi/libosinfo-1.0.deps
%{_datadir}/vala/vapi/libosinfo-1.0.vapi
+%if %{with_mingw}
+%files -n mingw32-libosinfo -f mingw32-libosinfo.lang
+%doc AUTHORS ChangeLog COPYING.LIB NEWS README
+%{mingw32_bindir}/osinfo-detect.exe
+%{mingw32_bindir}/osinfo-install-script.exe
+%{mingw32_bindir}/osinfo-query.exe
+%{mingw32_bindir}/libosinfo-1.0-0.dll
+%{mingw32_libdir}/libosinfo-1.0.dll.a
+%{mingw32_libdir}/pkgconfig/libosinfo-1.0.pc
+%dir %{mingw32_includedir}/libosinfo-1.0/
+%dir %{mingw32_includedir}/libosinfo-1.0/osinfo
+%{mingw32_includedir}/libosinfo-1.0/osinfo/*.h
+%dir %{mingw32_datadir}/libosinfo
+%{mingw32_datadir}/libosinfo/usb.ids
+%{mingw32_datadir}/libosinfo/pci.ids
+
+%files -n mingw64-libosinfo -f mingw64-libosinfo.lang
+%doc AUTHORS ChangeLog COPYING.LIB NEWS README
+%{mingw64_bindir}/osinfo-detect.exe
+%{mingw64_bindir}/osinfo-install-script.exe
+%{mingw64_bindir}/osinfo-query.exe
+%{mingw64_bindir}/libosinfo-1.0-0.dll
+%{mingw64_libdir}/libosinfo-1.0.dll.a
+%{mingw64_libdir}/pkgconfig/libosinfo-1.0.pc
+%dir %{mingw64_includedir}/libosinfo-1.0/
+%dir %{mingw64_includedir}/libosinfo-1.0/osinfo
+%{mingw64_includedir}/libosinfo-1.0/osinfo/*.h
+%dir %{mingw64_datadir}/libosinfo
+%{mingw64_datadir}/libosinfo/usb.ids
+%{mingw64_datadir}/libosinfo/pci.ids
+%endif
+
%changelog
diff --git a/meson.build b/meson.build
index 037e4f3..422946a 100644
--- a/meson.build
+++ b/meson.build
@@ -49,14 +49,11 @@ libosinfo_pkgconfdir = join_paths(libosinfo_libdir, 'pkgconfig')
libosinfo_spec_data = configuration_data()
libosinfo_spec_data.set('VERSION', meson.project_version())
-specs = ['libosinfo.spec', 'mingw-libosinfo.spec']
-foreach spec: specs
- configure_file(
- input: spec + '.in',
- output: spec,
- configuration: libosinfo_spec_data,
- )
-endforeach
+configure_file(
+ input: 'libosinfo.spec.in',
+ output: 'libosinfo.spec',
+ configuration: libosinfo_spec_data,
+)
# ninja dist helper
meson.add_dist_script('build-aux/dist.sh', meson.source_root(), meson.build_root())
diff --git a/mingw-libosinfo.spec.in b/mingw-libosinfo.spec.in
deleted file mode 100644
index 781b59f..0000000
--- a/mingw-libosinfo.spec.in
+++ /dev/null
@@ -1,131 +0,0 @@
-%{?mingw_package_header}
-
-Name: mingw-libosinfo
-Version: @VERSION@
-Release: 1%{?dist}
-Summary: MinGW Windows port of a library for managing OS information for virtualization
-License: LGPLv2+
-Source: https://releases.pagure.org/libosinfo/libosinfo-%{version}.tar.xz
-URL: https://libosinfo.org/
-
-BuildArch: noarch
-
-BuildRequires: git
-
-BuildRequires: intltool
-BuildRequires: meson
-BuildRequires: gcc
-BuildRequires: hwdata
-
-BuildRequires: mingw32-filesystem >= 107
-BuildRequires: mingw64-filesystem >= 107
-BuildRequires: mingw32-gcc
-BuildRequires: mingw64-gcc
-BuildRequires: mingw32-binutils
-BuildRequires: mingw64-binutils
-
-BuildRequires: mingw32-glib2
-BuildRequires: mingw64-glib2
-BuildRequires: mingw32-libxml2
-BuildRequires: mingw64-libxml2
-BuildRequires: mingw32-libxslt
-BuildRequires: mingw64-libxslt
-BuildRequires: mingw32-libsoup
-BuildRequires: mingw64-libsoup
-
-BuildRequires: pkgconfig
-
-BuildRequires: /usr/bin/pod2man
-
-%description
-libosinfo is a library that allows virtualization provisioning tools to
-determine the optimal device settings for a hypervisor/operating system
-combination.
-
-%package -n mingw32-libosinfo
-Summary: %{summary}
-
-Requires: pkgconfig
-Requires: mingw32-osinfo-db
-Requires: mingw32-osinfo-db-tools
-
-%description -n mingw32-libosinfo
-libosinfo is a library that allows virtualization provisioning tools to
-determine the optimal device settings for a hypervisor/operating system
-combination.
-
-%package -n mingw64-libosinfo
-Summary: %{summary}
-
-Requires: pkgconfig
-Requires: mingw64-osinfo-db
-Requires: mingw64-osinfo-db-tools
-
-%description -n mingw64-libosinfo
-libosinfo is a library that allows virtualization provisioning tools to
-determine the optimal device settings for a hypervisor/operating system
-combination.
-
-%{?mingw_debug_package}
-
-%prep
-%autosetup -S git -n libosinfo-%{version}
-
-%build
-%mingw_meson \
- -Denable-gtk-doc=false \
- -Denable-tests=false \
- -Denable-introspection=disabled \
- -Denable-vala=disabled
-%mingw_ninja
-
-%install
-%mingw_ninja_install
-
-# Remove static libraries but DON'T remove *.dll.a files.
-rm -f $RPM_BUILD_ROOT%{mingw32_libdir}/libosinfo-1.0.a
-rm -f $RPM_BUILD_ROOT%{mingw64_libdir}/libosinfo-1.0.a
-
-# Libtool files don't need to be bundled
-find $RPM_BUILD_ROOT -name "*.la" -delete
-
-# Manpages don't need to be bundled
-rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/man
-rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/man
-
-rm -rf $RPM_BUILD_ROOT%{mingw32_datadir}/gtk-doc
-rm -rf $RPM_BUILD_ROOT%{mingw64_datadir}/gtk-doc
-
-%mingw_find_lang libosinfo
-
-%files -n mingw32-libosinfo -f mingw32-libosinfo.lang
-%doc AUTHORS ChangeLog COPYING.LIB NEWS README
-%{mingw32_bindir}/osinfo-detect.exe
-%{mingw32_bindir}/osinfo-install-script.exe
-%{mingw32_bindir}/osinfo-query.exe
-%{mingw32_bindir}/libosinfo-1.0-0.dll
-%{mingw32_libdir}/libosinfo-1.0.dll.a
-%{mingw32_libdir}/pkgconfig/libosinfo-1.0.pc
-%dir %{mingw32_includedir}/libosinfo-1.0/
-%dir %{mingw32_includedir}/libosinfo-1.0/osinfo
-%{mingw32_includedir}/libosinfo-1.0/osinfo/*.h
-%dir %{mingw32_datadir}/libosinfo
-%{mingw32_datadir}/libosinfo/usb.ids
-%{mingw32_datadir}/libosinfo/pci.ids
-
-%files -n mingw64-libosinfo -f mingw64-libosinfo.lang
-%doc AUTHORS ChangeLog COPYING.LIB NEWS README
-%{mingw64_bindir}/osinfo-detect.exe
-%{mingw64_bindir}/osinfo-install-script.exe
-%{mingw64_bindir}/osinfo-query.exe
-%{mingw64_bindir}/libosinfo-1.0-0.dll
-%{mingw64_libdir}/libosinfo-1.0.dll.a
-%{mingw64_libdir}/pkgconfig/libosinfo-1.0.pc
-%dir %{mingw64_includedir}/libosinfo-1.0/
-%dir %{mingw64_includedir}/libosinfo-1.0/osinfo
-%{mingw64_includedir}/libosinfo-1.0/osinfo/*.h
-%dir %{mingw64_datadir}/libosinfo
-%{mingw64_datadir}/libosinfo/usb.ids
-%{mingw64_datadir}/libosinfo/pci.ids
-
-%changelog
diff --git a/prepare-release.sh b/prepare-release.sh
index 95a81b4..42f5650 100755
--- a/prepare-release.sh
+++ b/prepare-release.sh
@@ -60,15 +60,4 @@ if test -x /usr/bin/x86_64-w64-mingw32-gcc && \
DESTDIR="$INSTALL_ROOT/win64" ninja -C "$BUILD_ROOT/win64" install
fi
-if test -x /usr/bin/i686-w64-mingw32-gcc && \
- test -r /usr/share/mingw/toolchain-mingw32.meson && \
- test -x /usr/bin/x86_64-w64-mingw32-gcc && \
- test -r /usr/share/mingw/toolchain-mingw64.meson && \
- test -x /usr/bin/rpmbuild; then
- rpmbuild --nodeps \
- --define "_topdir $RPMBUILD_ROOT" \
- --define "_sourcedir $DIST_ROOT" \
- -ba --clean "$BUILD_ROOT/native/mingw-libosinfo.spec"
-fi
-
mv "$DIST_ROOT"/*.tar.xz .