Hello community,

here is the log from the commit of package inkscape for openSUSE:Factory 
checked in at 2020-06-02 14:33:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/inkscape (Old)
 and      /work/SRC/openSUSE:Factory/.inkscape.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "inkscape"

Tue Jun  2 14:33:54 2020 rev:106 rq:800981 version:1.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/inkscape/inkscape.changes        2020-04-19 
21:49:59.052142695 +0200
+++ /work/SRC/openSUSE:Factory/.inkscape.new.3606/inkscape.changes      
2020-06-02 14:34:08.526667753 +0200
@@ -1,0 +2,39 @@
+Thu May  7 08:30:50 UTC 2020 - [email protected]
+
+- Fix inkscape-split-extensions-extra.py for older python versions.
+
+-------------------------------------------------------------------
+Tue May  4 15:29:43 UTC 2020 - Alexei Sorokin <[email protected]>
+
+- Update to version 1.0:
+  * See https://inkscape.org/release/inkscape-1.0/
+- Re-enable ImageMagick support.
+- Replace inkscape-split-extensions-extra.sh with
+  inkscape-split-extensions-extra.py, adapting for 1.0.
+- Add python3-numpy and python3-scour to the list of extra
+  dependencies as only extra extensions need them.
+- Stop altering Name and GenericName from the .desktop file:
+  original values are fine.
+- Remove
+  0001-Run-python-script-for-translations-with-Python-3.patch:
+  merged upstream.
+- Remove build_internal_libraries_as_static.patch: merged upstream.
+- Remove f5e0ea893f34_extensions_python3_compatibility.patch:
+  merged upstream.
+- Remove fix_install_targets.patch: fixed upstream.
+- Remove inkscape-fix-for-poppler-0.76.patch: merged upstream.
+- Remove inkscape-fix-for-poppler-0.82.patch: merged upstream.
+- Remove inkscape-fix-for-poppler-0.83.patch: merged upstream.
+- Remove inkscape-packages.patch: no longer needed.
+- Remove mr_568_extensions_python3_compatibility.patch: merged
+  upstream.
+- Remove mr_582_extensions_python3_compatibility.patch: merged
+  upstream.
+- Remove obsolete hacks from the spec file and add new ones.
+- Remove the inkscape-extensions-dia and
+  inkscape-extensions-skencil packages: the extensions were
+  removed upstream.
+- Drop the python2 bcond, no practical use without skencil.
+- Drop openSUSE versions prior to Leap 15.x.
+
+-------------------------------------------------------------------

Old:
----
  0001-Run-python-script-for-translations-with-Python-3.patch
  _service
  _servicedata
  build_internal_libraries_as_static.patch
  f5e0ea893f34_extensions_python3_compatibility.patch
  fix_install_targets.patch
  inkscape-0.92.4.tar.bz2
  inkscape-fix-for-poppler-0.76.patch
  inkscape-fix-for-poppler-0.82.patch
  inkscape-fix-for-poppler-0.83.patch
  inkscape-packages.patch
  inkscape-split-extensions-extra.sh
  mr_568_extensions_python3_compatibility.patch
  mr_582_extensions_python3_compatibility.patch

New:
----
  inkscape-1.0.tar.xz
  inkscape-split-extensions-extra.py

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ inkscape.spec ++++++
--- /var/tmp/diff_new_pack.B1cDTP/_old  2020-06-02 14:34:10.142672866 +0200
+++ /var/tmp/diff_new_pack.B1cDTP/_new  2020-06-02 14:34:10.146672879 +0200
@@ -16,98 +16,70 @@
 #
 
 
-%bcond_without python2
+%define _version 1.0_2020-05-01_4035a4fb49
 Name:           inkscape
-Version:        0.92.4
+Version:        1.0
 Release:        0
 Summary:        Vector Illustration Program
 License:        GPL-3.0-only
-Group:          Productivity/Graphics/Vector Editors
 URL:            https://inkscape.org/
-#Source:        
https://media.inkscape.org/dl/resources/file/%%{name}-%%{version}.tar.bz2
-Source:         %{name}-%{version}.tar.bz2
-
+Source:         
https://media.inkscape.org/dl/resources/file/%{name}-%{version}.tar.xz
 # openSUSE palette file
 Source1:        openSUSE.gpl
-Source2:        inkscape-split-extensions-extra.sh
-# PATCH-FIX-OPENSUSE inkscape-packages.patch [email protected] -- Suggest 
packages instead of compilation from source.
-Patch0:         inkscape-packages.patch
-# PATCH-FIX-OPENSUSE build_internal_libraries_as_static.patch -- Avoid 
problems with dynamic library default from %%cmake macro
-Patch1:         build_internal_libraries_as_static.patch
-# PATCH-FIX-OPENSUSE fix_install_targets.patch -- use correct libdir etc.
-Patch2:         fix_install_targets.patch
-# PATCH-FIX-UPSTREAM inkscape-fix-for-poppler-0.76.patch -- Fix build with 
poppler 0.76
-Patch3:         inkscape-fix-for-poppler-0.76.patch
-# PATCH-FIX-OPENSUSE -- run i18n string extraction with python3
-Patch4:         0001-Run-python-script-for-translations-with-Python-3.patch
-# PATCH-FIX-UPSTREAM 
https://gitlab.com/inkscape/inkscape/merge_requests/568.patch -- fixed in 0.92.5
-Patch5:         mr_568_extensions_python3_compatibility.patch
-# PATCH-FIX-UPSTREAM 
https://gitlab.com/inkscape/inkscape/commit/f5e0ea893f34c91f25d4781b37ee6eff15a7e213
-Patch6:         f5e0ea893f34_extensions_python3_compatibility.patch
-# PATCH-FIX-UPSTREAM 
https://gitlab.com/inkscape/inkscape/merge_requests/582.patch -- fixed in 0.92.5
-Patch7:         mr_582_extensions_python3_compatibility.patch
-# PATCH-FIX-UPSTREAM inkscape-fix-for-poppler-0.82.patch -- Fix build poppler 
0.82
-Patch8:         inkscape-fix-for-poppler-0.82.patch
-# PATCH-FIX-UPSTREAM inkscape-fix-for-poppler-0.83.patch -- Fix build poppler 
0.83
-Patch9:         inkscape-fix-for-poppler-0.83.patch
-
-BuildRequires:  gtkspell-devel
-%if 0%{?suse_version} > 1325
-BuildRequires:  libboost_headers-devel
-%else
-BuildRequires:  boost-devel
-%endif
+Source2:        inkscape-split-extensions-extra.py
 BuildRequires:  cmake
+BuildRequires:  double-conversion-devel
 BuildRequires:  fdupes
 BuildRequires:  gc-devel
 BuildRequires:  gcc-c++
-BuildRequires:  gsl-devel
-BuildRequires:  gtkmm24-devel
 BuildRequires:  intltool
-# Disabling IM until inkscape upstream supports IM7
-#BuildRequires:  libMagick++-devel
+BuildRequires:  libboost_headers-devel
 BuildRequires:  liblcms2-devel
 BuildRequires:  libpoppler-glib-devel
 BuildRequires:  libtool
 BuildRequires:  libxslt-devel
 BuildRequires:  perl
+BuildRequires:  pkgconfig
 BuildRequires:  popt-devel
 BuildRequires:  potrace-devel
 BuildRequires:  python3-devel
 BuildRequires:  python3-gobject-devel
 BuildRequires:  python3-xml
 BuildRequires:  update-desktop-files
-BuildRequires:  pkgconfig(dbus-glib-1)
-BuildRequires:  pkgconfig(libcdr-0.1)
+BuildRequires:  pkgconfig(Magick++)
+BuildRequires:  pkgconfig(gdl-3.0)
+BuildRequires:  pkgconfig(gsl)
+BuildRequires:  pkgconfig(gtkmm-3.0)
+BuildRequires:  pkgconfig(gtkspell3-3.0)
 BuildRequires:  pkgconfig(libexif)
 BuildRequires:  pkgconfig(libjpeg)
 BuildRequires:  pkgconfig(libpng)
 BuildRequires:  pkgconfig(librevenge-0.0)
+BuildRequires:  pkgconfig(libsoup-2.4)
 BuildRequires:  pkgconfig(libvisio-0.1)
 BuildRequires:  pkgconfig(libwpg-0.3)
 Requires:       python3-gobject
-Recommends:     %{name}-lang
 Recommends:     python3-lxml
+Recommends:     python3-numpy
 Recommends:     python3-scour
+Recommends:     python3-xml
+Obsoletes:      %{name}-extensions-dia < %{version}
+Obsoletes:      %{name}-extensions-skencil < %{version}
 
 %description
 Inkscape is a vector graphics editor.
 
 %package extensions-extra
 Summary:        Additional extensions for Inkscape
-Group:          Productivity/Graphics/Vector Editors
 Requires:       %{name} = %{version}
-# ps2pdf-ext.py is a wrapper around ps2pdf, which lives in ghostscript package.
+# ps_input.py is a wrapper around ps2pdf, which lives in ghostscript package.
 Requires:       ghostscript
 Requires:       python3-lxml
+Requires:       python3-numpy
+Requires:       python3-scour
 Requires:       python3-xml
-# for cdr and wmf modules
-Recommends:     yudit
-# dxf_output.inx, eqtexsvg.inx:
-Requires:       pstoedit
 Enhances:       %{name}
-# python3-xml is already likely installed, so the big dependency is 
python3-lxml. Hence this supplements.
-Supplements:    packageand(%{name}:python3-lxml)
+Supplements:    (%{name} and python3-lxml and python3-numpy and python3-scour 
and python3-xml)
 
 %description extensions-extra
 Extra extensions for Inkscape. Recommended for everybody who wants to
@@ -115,26 +87,13 @@
 
 Inkscape is a vector graphics editor.
 
-%package extensions-dia
-Summary:        Dia import extension for Inkscape
-Group:          Productivity/Graphics/Vector Editors
-Requires:       %{name} = %{version}
-Requires:       dia
-Enhances:       %{name}
-Supplements:    packageand(%{name}:dia)
-
-%description extensions-dia
-Dia import extension for Inkscape.
-
-Inkscape is a vector graphics editor.
-
 %package extensions-fig
 Summary:        Fig import extensions for Inkscape
-Group:          Productivity/Graphics/Vector Editors
 Requires:       %{name} = %{version}
+Requires:       %{name}-extensions-extra = %{version}
 Requires:       transfig
 Enhances:       %{name}
-Supplements:    packageand(%{name}:transfig)
+Supplements:    (%{name} and transfig)
 
 %description extensions-fig
 Fig family (XFig, Figurine, JFig, WinFig,...) import extension for
@@ -144,124 +103,74 @@
 
 %package extensions-gimp
 Summary:        GIMP extensions for Inkscape
-Group:          Productivity/Graphics/Vector Editors
 Requires:       %{name} = %{version}
 Requires:       %{name}-extensions-extra = %{version}
 Requires:       gimp
 Enhances:       %{name}
-Supplements:    packageand(%{name}:gimp)
+Supplements:    (%{name} and gimp)
 
 %description extensions-gimp
 The GIMP import and export extensions for Inkscape.
 
 Inkscape is a vector graphics editor.
 
-%package extensions-skencil
-Summary:        Skencil import extension for Inkscape
-Group:          Productivity/Graphics/Vector Editors
-Requires:       %{name} = %{version}
-Requires:       skencil
-Enhances:       %{name}
-Supplements:    packageand(%{name}:skencil)
-
-%description extensions-skencil
-Skencil import extension for Inkscape.
-
-Inkscape is a vector graphics editor.
-
 %lang_package
 
 %prep
-%autosetup -p1
+%setup -q -n %{name}-%{_version}
 
 %build
 %define _lto_cflags %{nil}
 %ifarch %{arm}
 export LDFLAGS+="-Wl,--no-keep-memory -Wl,--reduce-memory-overheads"
 %endif
-%cmake
-%{make_jobs}
-
-# Unmangle XML and merge translations
-# Currently missing from CMake build 
(https://bugs.launchpad.net/inkscape/+bug/1710337)
-(cd ..
-sed -ie 's:<_:<:g; s:</_:</:g' inkscape.appdata.xml.in
-# msgfmt --xml ... is available since 0.19.7
-%if 0%{?suse_version} >= 1500
-msgfmt --xml -d ./po/ --template inkscape.appdata.xml.in -o 
inkscape.appdata.xml
-%else
-cp inkscape.appdata.xml.in inkscape.appdata.xml
-%endif
-)
+%cmake \
+  -DINKSCAPE_INSTALL_LIBDIR=%{_libdir} \
+  -DWITH_MANPAGE_COMPRESSION=OFF
+%cmake_build
 
 %install
 %cmake_install
 
-rm -rf %{buildroot}%{_datadir}/locale/en_US@piglatin
-rm -rf %{buildroot}%{_datadir}/inkscape/filters/filters.svg.h
-rm -rf %{buildroot}%{_datadir}/inkscape/patterns/patterns.svg.h
-
-# its not really an extension (missing .inx), but a standalone script
-# avoid perl dependency, same can be achieved with 'cat foo.svg | 
extensions/embedimage.py'
-rm -rf %{buildroot}%{_datadir}/inkscape/extensions/embed_raster_in_svg.pl
-# only useful for translators
-rm -rf %{buildroot}%{_datadir}/inkscape/extensions/genpofiles.sh
-# ruby port of simplepath.py, which is not used anywhere
-rm -rf %{buildroot}%{_datadir}/inkscape/extensions/simplepath.rb
-# only required on Windows
-rm -rf %{buildroot}%{_datadir}/inkscape/extensions/print_win32_vector.*
-# packaging/distribution info
-rm -rf %{buildroot}%{_datadir}/inkscape/extensions/README
-
-install -D -m 0644 %{SOURCE1} %{buildroot}%{_datadir}/inkscape/palettes
+# Only useful for translators.
+rm %{buildroot}%{_datadir}/inkscape/extensions/genpofiles.sh
+# Only required on Windows.
+rm %{buildroot}%{_datadir}/inkscape/extensions/print_win32_vector.*
+# Packaging/distribution info.
+rm 
%{buildroot}%{_datadir}/inkscape/extensions/{LICENSE.txt,MANIFEST.in,README.md,STYLEGUIDE.md}
+# Test framework.
+rm %{buildroot}%{_datadir}/inkscape/extensions/setup.{cfg,py} \
+   %{buildroot}%{_datadir}/inkscape/extensions/tox.ini        \
+   %{buildroot}%{_datadir}/inkscape/extensions/.pylintrc      \
+   %{buildroot}%{_datadir}/inkscape/extensions/doxygen-main.dox
 
-%suse_update_desktop_file -N "Inkscape" -G "SVG Vector Illustrator" inkscape
+install -Dpm 0644 %{SOURCE1} %{buildroot}%{_datadir}/inkscape/palettes/
 
 %find_lang %{name} %{?no_lang_C}
 
-%if !%{with python2}
-# remove skencil extension as we need sk1 that is py2 only
-rm -rf %{buildroot}%{_datadir}/inkscape/extensions/sk*
-%endif
-
-# split extensions
-bash %{SOURCE2} %{buildroot}%{_datadir}/inkscape/extensions 
"%%{_datadir}/inkscape/extensions/"
+sed -i -e "1 s|#! *%{_bindir}/env python|#!%{_bindir}/python3|" 
%{buildroot}%{_datadir}/inkscape/extensions/*.py
 
-sed -i -e "1 s,#! */usr/bin/env python,#!/usr/bin/python3," 
%{buildroot}%{_datadir}/inkscape/extensions/*.py
-
-# Localized man pages, correct install path
-for man in %{buildroot}%{_mandir}/man1/inkscape.*.1; do
-    LOCALE=`echo $man | sed "s:.*%{_mandir}/man1/.*\.\([a-zA-Z_]\+\)\.1:\1:g"`
-    mkdir -m755 -p %{buildroot}%{_mandir}/$LOCALE/man1
-    mv $man %{buildroot}%{_mandir}/$LOCALE/man1/%{name}.1
-    echo "%%lang($LOCALE) %%dir %%{_mandir}/$LOCALE" >> %{name}.man-lang.tmp
-    echo "%%lang($LOCALE) %%dir %%{_mandir}/$LOCALE/man1" >> 
%{name}.man-lang.tmp
-    echo "%%lang($LOCALE) %%doc %%{_mandir}/$LOCALE/man1/inkscape.1*" >> 
%{name}.man-lang.tmp
-done
-sort -u %{name}.man-lang.tmp > %{name}.man-lang
-rm %{name}.man-lang.tmp
-
-# Install appdata
-install -D -m 0644 inkscape.appdata.xml 
%{buildroot}%{_datadir}/metainfo/inkscape.appdata.xml
+# Split extensions.
+python3 %{SOURCE2} %{buildroot}%{_datadir}/inkscape/extensions 
"%%{_datadir}/inkscape/extensions/"
 
 %fdupes %{buildroot}
 
-# We can't really move the localized manpages to the lang package, since they'd
-# create a conflict between the lang subpackage and bundles
+%post -n %{name} -p /sbin/ldconfig
 
-%files -f inkscape.lst -f %{name}.man-lang
+%postun -n %{name} -p /sbin/ldconfig
+
+%files -f inkscape.lst
 %{_bindir}/*
-%{_libdir}/libinkscape_base.so
-%{_datadir}/applications/inkscape.desktop
-%{_datadir}/icons/hicolor/*/apps/inkscape.png
-%dir %{_datadir}/metainfo
-%{_datadir}/metainfo/inkscape.appdata.xml
-%dir %{_datadir}/inkscape
-%{_datadir}/inkscape/[cf-z]*
-%{_datadir}/inkscape/examples
-%dir %{_datadir}/inkscape/extensions
-%dir %{_datadir}/inkscape/extensions/ink2canvas
-%{_datadir}/inkscape/extensions/xaml2svg
+%{_libdir}/lib%{name}_base.so
+%{_datadir}/applications/*Inkscape.desktop
+%{_datadir}/icons/hicolor/*/apps/*Inkscape.png
+%{_datadir}/metainfo/*Inkscape.appdata.xml
+%dir %{_datadir}/inkscape/
+%{_datadir}/inkscape/[cdf-z]*
+%{_datadir}/inkscape/examples/
+%dir %{_datadir}/inkscape/extensions/
+%{_datadir}/inkscape/extensions/svg_fonts/
+%{_datadir}/inkscape/extensions/xaml2svg/
 %{_datadir}/inkscape/extensions/*.xsl*
 %{_datadir}/inkscape/extensions/colors.xml
 %{_datadir}/inkscape/extensions/Poly3DObjects/
@@ -272,46 +181,23 @@
 %{_datadir}/inkscape/extensions/jessyInk_core_mouseHandler_zoomControl.js
 %{_datadir}/inkscape/extensions/jessyInk_video.svg
 %{_datadir}/inkscape/extensions/fontfix.conf
-%{_datadir}/inkscape/extensions/ink2canvas/*
 %{_datadir}/inkscape/extensions/inkscape.extension.rng
 %{_datadir}/inkscape/extensions/seamless_pattern.svg
 %{_datadir}/inkscape/attributes/
 %{_datadir}/inkscape/branding/
-%doc %{_mandir}/man?/*.*
+%{_mandir}/man1/*.1%{?ext_man}
+# We can't really move the localized manpages to the lang package, since they'd
+# create a conflict between the lang subpackage and bundles
+%dir %{_mandir}/hr/
+%dir %{_mandir}/hr/man1/
+%{_mandir}/*/man1/*.1%{?ext_man}
 # exclude extensions that go in other packages:
-%exclude %{_datadir}/inkscape/extensions/Barcode
-%exclude %{_datadir}/inkscape/extensions/ps2pdf-ext.py
-%exclude %{_datadir}/inkscape/extensions/ps_input.inx
-%exclude %{_datadir}/inkscape/extensions/eps_input.inx
-%exclude %{_datadir}/inkscape/extensions/cdr*
-%exclude %{_datadir}/inkscape/extensions/wmf*
-%exclude %{_datadir}/inkscape/extensions/dia*
 %exclude %{_datadir}/inkscape/extensions/fig*
 %exclude %{_datadir}/inkscape/extensions/*gimp*
-%if %{with python2}
-%exclude %{_datadir}/inkscape/extensions/sk*
-%endif
 %exclude %{_datadir}/inkscape/extensions/*dxf*
-# this one is in extras, manually added there due to large dependencies on 
ghostscript
-%exclude %{_datadir}/inkscape/extensions/ps2pdf-ext.py
 
 %files extensions-extra -f inkscape-extensions-extra.lst
-%{_datadir}/inkscape/extensions/Barcode
-# ps2pdf-ext is a wrapper around ps2pdf binary (part of ghostscript)
-%{_datadir}/inkscape/extensions/ps_input.inx
-%{_datadir}/inkscape/extensions/eps_input.inx
-%{_datadir}/inkscape/extensions/ps2pdf-ext.py
-# ps2dxf is a wrapper around pstoedit
-%{_datadir}/inkscape/extensions/dxf_output.inx
-%{_datadir}/inkscape/extensions/ps2dxf.sh
-# This extensions seems erronous being copied in here too.
-%exclude %{_datadir}/inkscape/extensions/*gimp*
-%if %{with python2}
-%exclude %{_datadir}/inkscape/extensions/sk*
-%endif
-
-%files extensions-dia
-%{_datadir}/inkscape/extensions/dia*
+%{_datadir}/inkscape/extensions/output_scour.svg
 
 %files extensions-fig
 %{_datadir}/inkscape/extensions/fig*
@@ -320,11 +206,6 @@
 # NOTE: export_gimp_palette* does not depend on gimp, but belongs here 
logically:
 %{_datadir}/inkscape/extensions/*gimp*
 
-%if %{with python2}
-%files extensions-skencil
-%{_datadir}/inkscape/extensions/sk*
-%endif
-
 %files lang -f %{name}.lang
 
 %changelog

++++++ inkscape-split-extensions-extra.py ++++++
#!/usr/bin/env python3
# List all files, that depend on base_extra_modules, explicitly or implicitly.
import os
import pathlib
import re
import sys

# Search all .py files that are imported by mentioned modules.
def make_deplist(inx_list, module_list):
    modules = set()
    inx_regex = re.compile(rf">(.+)\.py</(dependency|command)>")

    for entry in inx_list:
        with open(os.path.join(".", entry), encoding="utf-8") as file:
            for line in file:
                match = inx_regex.search(line)
                if (match and match.group(1)
                    and match.group(1) not in module_list):
                    modules.add(match.group(1))

    for module in module_list.union(modules):
        name = os.path.join(".", f"{module}.py")
        if os.path.isfile(name):
            with open(name, encoding="utf-8") as file:
                for line in file:
                    match = re.match(r"from (.+) import", line)
                    if not match:
                        match = re.match(r"import ([^#]+).*? *", line)

                    if match and match.group(1):
                        needle = re.sub(r"as .+", "", match.group(1)).strip()

                        if (needle not in module_list.union(modules)
                            and os.path.isfile(f"{needle}.py")):
                            modules.add(needle)

    return modules

if __name__ == "__main__":
    work_dir = pathlib.Path(os.getcwd())
    os.chdir(sys.argv[1])
    prefix = sys.argv[2]

    base_extra_modules = set(["lxml", "numpy", "scour", "xml"])
    extra_modules = set()

    prev_modules = base_extra_modules
    while True:
        prev_module_regex = rf"({'|'.join(map(re.escape, prev_modules))})"
        import_regex = re.compile(rf"(import|from).* {prev_module_regex}")

        next_modules = set()

        # Search all .py files importing one of the mentioned modules.
        for entry in pathlib.Path(".").glob("**/*.py"):
            with entry.open(encoding="utf-8") as file:
                for line in file:
                    if import_regex.search(line):
                        name = str(entry.as_posix())

                        module = name.split(os.sep, 1)[0]
                        if module.endswith(".py"):
                            module = entry.stem
                        if module not in next_modules:
                            next_modules.add(module)

        prev_modules = next_modules
        if extra_modules.issuperset(prev_modules):
            break
        extra_modules.update(prev_modules)


    std_inx = set()
    extra_inx = set()

    # We have a complete list of .py files dependent on base_extra_modules.
    # Now we need a list of .inx module descriptors.
    inx_regex = re.compile(rf'({"|".join(map(re.escape, extra_modules))})\.py')

    for entry in pathlib.Path(".").iterdir():
        if entry.is_file() and entry.suffix == ".inx":
            with entry.open(encoding="utf-8") as file:
                for line in file:
                    if inx_regex.search(line):
                        extra_inx.add(entry.name)

            # inx files that do not belong in extra_inx.
            if entry.name not in extra_inx:
                std_inx.add(entry.name)


    # Now create list of .py files that should belong in the std package.
    std_modules = make_deplist(std_inx, set())

    # Now create list of .py files that are required by extra modules
    # (If no std module needs it, then they will belong in the extra package).
    extradep_modules = make_deplist(extra_inx, extra_modules)


    # And now verify everything and generate final list.
    exclusion_regex = re.compile(r"^(cdr|fig|.*gimp)")

    std_list = work_dir / "inkscape.lst"
    extra_list = work_dir / "inkscape-extensions-extra.lst"

    with std_list.open("w", encoding="utf-8") as file:
        for inx in std_inx:
            if not exclusion_regex.match(inx):
                print(f"{prefix}{inx}", file=file)
    with extra_list.open("w", encoding="utf-8") as file:
        for inx in extra_inx:
            if not exclusion_regex.match(inx):
                print(f"{prefix}{inx}", file=file)


    with std_list.open("a", encoding="utf-8") as std_file, extra_list.open("a", 
encoding="utf-8") as extra_file:
        for entry in pathlib.Path(".").iterdir():
            if entry.is_file() and entry.suffix == ".py":
                name = str(entry.as_posix())
                if exclusion_regex.match(name):
                    pass
                elif entry.is_file() and entry.stem in extra_modules:
                    print(f"{prefix}{entry.name}", file=extra_file)
                elif entry.is_file() and entry.stem in std_modules:
                    print(f"{prefix}{entry.name}", file=std_file)
                elif entry.is_file() and entry.stem in extradep_modules:
                    print(f"{prefix}{entry.name}", file=extra_file)
                else:
                    print(f"ERROR: Undecided file {name}", file=sys.stderr)
            elif entry.is_dir():
                if entry.name in extra_modules:
                    print(f"{prefix}{entry.name}/", file=extra_file)
                elif entry.name in std_modules:
                    print(f"{prefix}{entry.name}/", file=std_file)
                elif entry.name in extradep_modules:
                    print(f"{prefix}{entry.name}/", file=extra_file)

Reply via email to