Summary(zh_CN.UTF-8): 基于GTK+的流程图程序
Name: dia
Version: 0.97.3
+%define gitref 399526892d86d7e00e2f565e6c50b73c1195c810
+%define snap 20230920
Release: 1
Epoch: 1
License: GPL v2+
Group: X11/Applications/Graphics
-Source0: http://ftp.gnome.org/pub/gnome/sources/dia/0.97/%{name}-%{version}.tar.xz
-# Source0-md5: 0e744a0f6a6c4cb6a089e4d955392c3c
+Source0: https://gitlab.gnome.org/GNOME/dia/-/archive/%{gitref}/%{name}-%{snap}.tar.bz2
+# Source0-md5: a22cfc481bb22461ca63dc47e1693411
Source1: http://dia-installer.de/shapes/central_data_processing/central_data_processing.zip
# Source1-md5: 103865b35609d2a0f8a0e034c49cf130
Source2: http://dia-installer.de/shapes/chemistry_lab/chemistry_lab.zip
Source21: http://dia-installer.de/shapes/value_stream_mapping/value_stream_mapping.zip
# Source21-md5: 98705330f435f06c7a8864b543ef4617
Patch0: %{name}-wmf-cast.patch
+Patch1: soname.patch
+Patch2: emf-detect.patch
URL: https://live.gnome.org/Dia
-BuildRequires: autoconf >= 2.50
-BuildRequires: automake
+#Library emf found: NO
+#Library ogdf found: NO
BuildRequires: cairo-devel >= 1.0.0
+BuildRequires: dblatex
BuildRequires: docbook-style-xsl
BuildRequires: gettext-tools
+BuildRequires: graphene-devel
BuildRequires: gtk+2-devel >= 2:2.6.0
BuildRequires: intltool >= 0.35.0
BuildRequires: libEMF-devel
-BuildRequires: libart_lgpl-devel >= 2.0
-BuildRequires: libgnomeui-devel >= 2.0.0
BuildRequires: libpng-devel
BuildRequires: libstdc++-devel
-BuildRequires: libtool >= 2:1.5
BuildRequires: libxml2-devel >= 2.3.9
BuildRequires: libxslt-devel
BuildRequires: libxslt-progs
BuildRequires: pkgconfig
-BuildRequires: python-devel >= 1:2.3
+BuildRequires: poppler-cpp-devel
+BuildRequires: poppler-devel
+BuildRequires: poppler-progs
+BuildRequires: python3-devel
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(find_lang) >= 1.23
-BuildRequires: rpmbuild(macros) >= 1.311
+BuildRequires: rpmbuild(macros) >= 1.726
BuildRequires: scrollkeeper
BuildRequires: sed >= 4.0
BuildRequires: unzip
BuildRequires: zlib-devel
Requires(post,postun): desktop-file-utils
Requires(post,postun): gtk-update-icon-cache
-Requires: python-modules >= 1:2.3
-Requires: python-pygtk-gtk
+Requires: python3-modules >= 1:2.3
+Requires: python3-pygobject3
# sr@Latn vs. sr@latin
Conflicts: glibc-misc < 6:2.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
а також експортувати їх в PostScript(TM).
%prep
-%setup -q
+%setup -q -n %{name}-%{gitref}
%patch0 -p1
+%patch1 -p1
+%patch2 -p1
-%{__sed} -i -e s#sr@Latn#sr@latin# po/LINGUAS
-mv -f po/sr@{Latn,latin}.po
+%{__sed} -E -i -e '1s,#!\s*/usr/bin/env\s+python(\s|$),#!%{__python3}\1,' -e '1s,#!\s*/usr/bin/python(\s|$),#!%{__python3}\1,' \
+ plug-ins/python/doxrev.py \
+ plug-ins/python/gtkcons.py
%build
-%{__intltoolize}
-%{__libtoolize}
-%{__aclocal}
-%{__autoheader}
-%{__autoconf}
-%{__automake}
-%{__sed} -i -e 's|/lib/|/%{_lib}/|' configure
-%configure \
- --disable-silent-rules \
- --enable-gnome \
- --with-python \
- --with-xslt-prefix=%{_libdir}
-
-%{__make}
+%meson --default-library=shared build \
+ -Dtests=false
+
+%ninja_build -C build \
%install
rm -rf $RPM_BUILD_ROOT
-%{__make} install \
- DESTDIR=$RPM_BUILD_ROOT
+%ninja_install -C build
unzip -n -d $RPM_BUILD_ROOT%{_datadir}/%{name} %{SOURCE1}
unzip -n -d $RPM_BUILD_ROOT%{_datadir}/%{name} %{SOURCE2}
unzip -n -d $RPM_BUILD_ROOT%{_datadir}/%{name} %{SOURCE20}
unzip -n -d $RPM_BUILD_ROOT%{_datadir}/%{name} %{SOURCE21}
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/dia/*.la
-%{__rm} -rf $RPM_BUILD_ROOT%{_datadir}/mime-info
-
%find_lang %{name} --with-gnome --with-omf
%clean
%files -f %{name}.lang
%defattr(644,root,root,755)
-%doc AUTHORS NEWS README TODO
+%doc AUTHORS MAINTAINERS NEWS README.md TODO
%attr(755,root,root) %{_bindir}/dia
+%attr(755,root,root) %{_libdir}/libdia.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libdia.so.0
%dir %{_libdir}/dia
%attr(755,root,root) %{_libdir}/dia/lib*.so
%{_docdir}/dia
%{_mandir}/man1/dia.1*
-%lang(fr) %{_mandir}/fr/man1/dia.1*
-%{_iconsdir}/hicolor/*/*/*.png
%{_iconsdir}/hicolor/*/*/*.svg
%{_datadir}/dia
-%{_desktopdir}/dia.desktop
+%{_desktopdir}/org.gnome.Dia.desktop
+%{_datadir}/metainfo/org.gnome.Dia.appdata.xml
+%{_datadir}/thumbnailers/org.gnome.Dia.thumbnailer
--- /dev/null
+--- dia-399526892d86d7e00e2f565e6c50b73c1195c810/meson.build~ 2023-09-16 11:51:53.000000000 +0200
++++ dia-399526892d86d7e00e2f565e6c50b73c1195c810/meson.build 2023-09-20 03:02:24.782540486 +0200
+@@ -32,7 +32,7 @@
+ libpoppler_dep = dependency('poppler', version: '> 0.62.0', required: false)
+ libpopplercpp_dep = dependency('poppler-cpp', required: false)
+ conf.set('HAVE_POPPLER', libpoppler_dep.found() and libpopplercpp_dep.found())
+-libemf_dep = cc.find_library('emf', required: false)
++libemf_dep = cc.find_library('EMF', required: false)
+ conf.set('HAVE_LIBEMF', libemf_dep.found())
+ libogdf_dep = cc.find_library('ogdf', required: false)
+ conf.set('HAVE_OGDF', libogdf_dep.found())
+--- dia-399526892d86d7e00e2f565e6c50b73c1195c810/plug-ins/wmf/wmf.cpp.orig 2023-09-20 03:16:33.087448310 +0200
++++ dia-399526892d86d7e00e2f565e6c50b73c1195c810/plug-ins/wmf/wmf.cpp 2023-09-20 03:16:06.856486686 +0200
+@@ -60,7 +60,7 @@
+
+ #include <pango/pangowin32.h>
+
+-#elif HAVE_LIBEMF
++#elif defined(HAVE_LIBEMF)
+ /* We have to define STRICT to make libemf/64 work. Otherwise there is
+ wmf.cpp:1383:40: error: cast from 'void*' to 'W32::HDC' loses precision
+ */
+@@ -177,7 +177,7 @@
+ W32::HPEN hOldPen;
+ if (colour) {
+ W32::COLORREF rgb = W32COLOR(colour);
+-#if defined(G_OS_WIN32) || HAVE_LIBEMF
++#if defined(G_OS_WIN32) || defined(HAVE_LIBEMF)
+ if ((renderer->platform_is_nt && renderer->hPrintDC) || renderer->target_emf) {
+ W32::LOGBRUSH logbrush;
+ W32::DWORD dashes[6];
+@@ -255,7 +255,6 @@
+ #else
+ # define DIAG_NOTE my_log
+ #endif
+-#ifdef G_OS_WIN32
+ static void
+ my_log(WmfRenderer* renderer, const char* format, ...)
+ {
+@@ -273,7 +272,6 @@
+
+ g_free(string);
+ }
+-#endif
+
+ /*
+ * renderer interface implementation
+@@ -1377,7 +1375,6 @@
+ g_object_class_override_property (object_class, PROP_FONT_HEIGHT, "font-height");
+ }
+
+-#ifdef G_OS_WIN32
+ /* plug-in export api */
+ static gboolean
+ export_data(DiagramData *data, DiaContext *ctx,
+@@ -1412,7 +1409,7 @@
+ bbox.bottom = (int)((data->extents.bottom - data->extents.top) * scale *
+ 100 * W32::GetDeviceCaps(refDC, VERTSIZE) / W32::GetDeviceCaps(refDC, VERTRES));
+
+-#if HAVE_LIBEMF
++#ifdef HAVE_LIBEMF
+ FILE* ofile = g_fopen (filename, "w");
+ if (ofile)
+ file = CreateEnhMetaFileWithFILEA (refDC, ofile, &bbox, "Created with Dia/libEMF\0");
+@@ -1548,6 +1545,7 @@
+ };
+
+
++#ifdef G_OS_WIN32
+ static DiaObjectChange *
+ print_callback (DiagramData *data,
+ const char *filename,
+@@ -1599,7 +1597,7 @@
+ filter_register_export(&emf_export_filter);
+
+ filter_register_callback (&cb_gdi_print);
+-#elif HAVE_LIBEMF
++#elif defined(HAVE_LIBEMF)
+ /* not sure if libEMF really saves EMF ;) */
+ filter_register_export(&emf_export_filter);
+ #endif