Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.21.0 fails to build against system libmupdf #2039

Closed
dvzrv opened this issue Nov 10, 2022 · 2 comments
Closed

1.21.0 fails to build against system libmupdf #2039

dvzrv opened this issue Nov 10, 2022 · 2 comments
Labels

Comments

@dvzrv
Copy link

dvzrv commented Nov 10, 2022

Please provide all mandatory information!

Describe the bug (mandatory)

Building against a system provided version of libmupdf is currently not possible out-of-the-box, without patching setup.py.

To Reproduce (mandatory)

export PYMUPDF_SETUP_MUPDF_BUILD=""
python -m build --wheel --no-isolation
* Getting build dependencies for wheel...
PyMuPDF/setup.py: sys.argv: ['setup.py', 'egg_info']
PyMuPDF/setup.py: os.getcwd(): /build/python-pymupdf/src/PyMuPDF-1.21.0
PyMuPDF/setup.py: __file__: setup.py
PyMuPDF/setup.py: $PYTHON_ARCH: None
PyMuPDF/setup.py: os.environ (31):
PyMuPDF/setup.py:     SHELL: /bin/bash
PyMuPDF/setup.py:     BUILDTOOL: devtools
PyMuPDF/setup.py:     SUDO_GID: 0
PyMuPDF/setup.py:     PYTHONHASHSEED: 0
PyMuPDF/setup.py:     TEXTDOMAINDIR: /usr/share/locale
PyMuPDF/setup.py:     SUDO_COMMAND: /bin/bash -c bash -c cd\ /startdir;\ makepkg\ "$@" -bash --syncdeps --noconfirm --log --holdver --skipinteg --install
PyMuPDF/setup.py:     SUDO_USER: root
PyMuPDF/setup.py:     PWD: /build/python-pymupdf/src/PyMuPDF-1.21.0
PyMuPDF/setup.py:     SOURCE_DATE_EPOCH: 1668090717
PyMuPDF/setup.py:     LOGNAME: builduser
PyMuPDF/setup.py:     CXXFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/python-pymupdf/src=/usr/src/debug/python-pymupdf -flto=aut
o
PyMuPDF/setup.py:     COMMAND_MODE: legacy
PyMuPDF/setup.py:     LDFLAGS: -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto
PyMuPDF/setup.py:     HOME: /build
PyMuPDF/setup.py:     LANG: C.UTF-8
PyMuPDF/setup.py:     RUSTFLAGS:   --remap-path-prefix=/build/python-pymupdf/src=/usr/src/debug/python-pymupdf
PyMuPDF/setup.py:     PYMUPDF_SETUP_MUPDF_BUILD:
PyMuPDF/setup.py:     MAKEFLAGS: -j24
PyMuPDF/setup.py:     TERM: screen-256color
PyMuPDF/setup.py:     USER: builduser
PyMuPDF/setup.py:     SHLVL: 1
PyMuPDF/setup.py:     CHOST: x86_64-pc-linux-gnu
PyMuPDF/setup.py:     PATH: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
PyMuPDF/setup.py:     CFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python-pymupdf/src=/usr/src/debug/python-pymupdf -flto=auto
PyMuPDF/setup.py:     SUDO_UID: 0
PyMuPDF/setup.py:     MAIL: /var/mail/builduser
PyMuPDF/setup.py:     BUILDTOOLVER: 20221012-1-any
PyMuPDF/setup.py:     OLDPWD: /build/python-pymupdf/src
PyMuPDF/setup.py:     TEXTDOMAIN: pacman-scripts
PyMuPDF/setup.py:     _: /usr/bin/python
PyMuPDF/setup.py:     PEP517_BUILD_BACKEND: setuptools.build_meta:__legacy__
PyMuPDF/setup.py: include_dirs=[]
PyMuPDF/setup.py: library_dirs=[]
PyMuPDF/setup.py: libraries=[]
PyMuPDF/setup.py: extra_compile_args=[]
PyMuPDF/setup.py: extra_link_args=[]
running egg_info
writing PyMuPDF.egg-info/PKG-INFO
writing dependency_links to PyMuPDF.egg-info/dependency_links.txt
writing top-level names to PyMuPDF.egg-info/top_level.txt
file fitz/fitz.py (for module fitz.fitz) not found
reading manifest file 'PyMuPDF.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '__pycache__/*' found anywhere in distribution
adding license file 'COPYING'
writing manifest file 'PyMuPDF.egg-info/SOURCES.txt'
* Building wheel...
PyMuPDF/setup.py: sys.argv: ['setup.py', 'bdist_wheel', '--dist-dir', '/build/python-pymupdf/src/PyMuPDF-1.21.0/dist/tmpuh6jqh0n']
PyMuPDF/setup.py: os.getcwd(): /build/python-pymupdf/src/PyMuPDF-1.21.0
PyMuPDF/setup.py: __file__: setup.py
PyMuPDF/setup.py: $PYTHON_ARCH: None
PyMuPDF/setup.py: os.environ (31):
PyMuPDF/setup.py:     SHELL: /bin/bash
PyMuPDF/setup.py:     BUILDTOOL: devtools
PyMuPDF/setup.py:     SUDO_GID: 0
PyMuPDF/setup.py:     PYTHONHASHSEED: 0
PyMuPDF/setup.py:     TEXTDOMAINDIR: /usr/share/locale
PyMuPDF/setup.py:     SUDO_COMMAND: /bin/bash -c bash -c cd\ /startdir;\ makepkg\ "$@" -bash --syncdeps --noconfirm --log --holdver --skipinteg --install
PyMuPDF/setup.py:     SUDO_USER: root
PyMuPDF/setup.py:     PWD: /build/python-pymupdf/src/PyMuPDF-1.21.0
PyMuPDF/setup.py:     SOURCE_DATE_EPOCH: 1668090717
PyMuPDF/setup.py:     LOGNAME: builduser
PyMuPDF/setup.py:     CXXFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -Wp,-D_GLIBCXX_ASSERTIONS -g -ffile-prefix-map=/build/python-pymupdf/src=/usr/src/debug/python-pymupdf -flto=aut
o
PyMuPDF/setup.py:     COMMAND_MODE: legacy
PyMuPDF/setup.py:     LDFLAGS: -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto
PyMuPDF/setup.py:     HOME: /build
PyMuPDF/setup.py:     LANG: C.UTF-8
PyMuPDF/setup.py:     RUSTFLAGS:   --remap-path-prefix=/build/python-pymupdf/src=/usr/src/debug/python-pymupdf
PyMuPDF/setup.py:     PYMUPDF_SETUP_MUPDF_BUILD:
PyMuPDF/setup.py:     MAKEFLAGS: -j24
PyMuPDF/setup.py:     TERM: screen-256color
PyMuPDF/setup.py:     USER: builduser
PyMuPDF/setup.py:     SHLVL: 1
PyMuPDF/setup.py:     CHOST: x86_64-pc-linux-gnu
PyMuPDF/setup.py:     PATH: /usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
PyMuPDF/setup.py:     CFLAGS: -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions         -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security         -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python-pymupdf/src=/usr/src/debug/python-pymupdf -flto=auto
PyMuPDF/setup.py:     SUDO_UID: 0
PyMuPDF/setup.py:     MAIL: /var/mail/builduser
PyMuPDF/setup.py:     BUILDTOOLVER: 20221012-1-any
PyMuPDF/setup.py:     OLDPWD: /build/python-pymupdf/src
PyMuPDF/setup.py:     TEXTDOMAIN: pacman-scripts
PyMuPDF/setup.py:     _: /usr/bin/python
PyMuPDF/setup.py:     PEP517_BUILD_BACKEND: setuptools.build_meta:__legacy__
PyMuPDF/setup.py: PYMUPDF_SETUP_MUPDF_BUILD="", using system mupdf
PyMuPDF/setup.py: mupdf_local=None
PyMuPDF/setup.py: Using system mupdf.
PyMuPDF/setup.py: sys.platform='linux'
Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/pep517/in_process/_in_process.py", line 351, in <module>
    main()
  File "/usr/lib/python3.10/site-packages/pep517/in_process/_in_process.py", line 333, in main
    json_out['return_val'] = hook(**hook_input['kwargs'])
  File "/usr/lib/python3.10/site-packages/pep517/in_process/_in_process.py", line 249, in build_wheel
    return _build_backend().build_wheel(wheel_directory, config_settings,
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 412, in build_wheel
    return self._build_with_temp_dir(['bdist_wheel'], '.whl',
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 397, in _build_with_temp_dir
    self.run_setup()
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 482, in run_setup
    super(_BuildMetaLegacyBackend,
  File "/usr/lib/python3.10/site-packages/setuptools/build_meta.py", line 335, in run_setup
    exec(code, locals())
  File "<string>", line 724, in <module>
NameError: name 'unix_build_type' is not defined. Did you mean: 'unix_build_dir'?

ERROR Backend subprocess exited when trying to invoke build_wheel

Expected behavior (optional)

Wheel builds successfully.

Screenshots (optional)

n/a

Your configuration (mandatory)

  • Arch Linux
  • Python 3.10.8, x86_64
  • PyMuPDF source tarball -> wheel version

For example, the output of print(sys.version, "\n", sys.platform, "\n", fitz.__doc__) would be sufficient (for the first two bullets).

Additional context (optional)

unix_build_type is not set when PYMUPDF_SETUP_MUPDF_BUILD is set to empty string.

I'm currently using the following patch for packaging:

--- a/setup.py  2022-11-08 13:16:44.000000000 +0100
+++ b/setup.py  2022-11-10 15:22:51.896857765 +0100
@@ -627,6 +627,7 @@
     else:
         # Use installed MuPDF.
         log( f'Using system mupdf.')
+        unix_build_type = ""

     # Set include and library paths for building PyMuPDF.
     #
archlinux-github pushed a commit to archlinux/svntogit-community that referenced this issue Nov 10, 2022
Add patch for setup.py to be able to build against system libmupdf.
pymupdf/PyMuPDF#2039
Disable broken test: pymupdf/PyMuPDF#2040

git-svn-id: file:///srv/repos/svn-community/svn@1346428 9fca08f4-af9d-4005-b8df-a31f2cc04f65
archlinux-github pushed a commit to archlinux/svntogit-community that referenced this issue Nov 10, 2022
Add patch for setup.py to be able to build against system libmupdf.
pymupdf/PyMuPDF#2039
Disable broken test: pymupdf/PyMuPDF#2040

git-svn-id: file:///srv/repos/svn-community/svn@1346428 9fca08f4-af9d-4005-b8df-a31f2cc04f65
@julian-smith-artifex-com
Copy link
Collaborator

Thanks for this, it will be fixed in the next release.

@julian-smith-artifex-com
Copy link
Collaborator

Fixed in PyMuPDF-1.21.1.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants