2 # This file and its contents are supplied under the terms of the
3 # Common Development and Distribution License ("CDDL)". You may
4 # only use this file in accordance with the terms of the CDDL.
6 # A full copy of the text of the CDDL should have accompanied this
7 # source. A copy of the CDDL is also available via the Internet at
8 # http://www.illumos.org/license/CDDL.
12 # Copyright 2017 Alexander Pyhalov
13 # Copyright 2019 Michal Nowak
14 # Copyright 2022 Gary Mills
15 # Copyright 2023 Klaus Ziegler
21 USE_COMMON_TEST_MASTER
= yes
22 include ..
/..
/..
/make-rules
/shared-macros.mk
24 COMPONENT_NAME
= dbus-python
25 COMPONENT_VERSION
= 1.3.2
27 COMPONENT_PROJECT_URL
= https
://www.freedesktop.org
/wiki
/Software
/DBusBindings
/
28 COMPONENT_SUMMARY
= Python bindings for D-Bus
29 COMPONENT_SRC
= $(COMPONENT_NAME
)-$(COMPONENT_VERSION
)
30 COMPONENT_ARCHIVE
= $(COMPONENT_SRC
).
tar.gz
31 COMPONENT_ARCHIVE_HASH
= sha256
:ad67819308618b5069537be237f8e68ca1c7fcc95ee4a121fe6845b1418248f8
32 COMPONENT_ARCHIVE_URL
= https
://dbus.freedesktop.org
/releases
/dbus-python
/$(COMPONENT_ARCHIVE
)
33 COMPONENT_FMRI
= library
/python
/python-dbus
34 COMPONENT_CLASSIFICATTION
= Development
/Python
35 COMPONENT_LICENSE
= MIT
36 COMPONENT_LICENSE_FILE
= COPYING
40 include $(WS_MAKE_RULES
)/common.mk
42 PYTHON_ENV
+= DBUS_PYTHON_USE_AUTOTOOLS
=true
44 # Rename SO files to cpython names
45 COMPONENT_POST_INSTALL_ACTION
+= \
46 EXT_SUFFIX
=$(shell $(PYTHON
) -c
"import sysconfig; print(sysconfig.get_config_var('EXT_SUFFIX'))") ; \
47 $(MV
) $(PROTO_DIR
)$(PYTHON_LIB
)/_dbus_bindings.so
$(PROTO_DIR
)$(PYTHON_LIB
)/_dbus_bindings
$$EXT_SUFFIX ; \
48 $(MV
) $(PROTO_DIR
)$(PYTHON_LIB
)/_dbus_glib_bindings.so
$(PROTO_DIR
)$(PYTHON_LIB
)/_dbus_glib_bindings
$$EXT_SUFFIX ;
50 # Copy some uninstalled files to make way for symlinks
51 COMPONENT_POST_INSTALL_ACTION
+= \
52 $(MKDIR
) $(PROTOUSRINCDIR
)/dbus-1.0
/dbus
; \
53 $(CP
) $(SOURCE_DIR
)/include/dbus
/dbus-python.h \
54 $(PROTOUSRINCDIR
)/dbus-1.0
/dbus
/dbus-python.h-
$(PYTHON_VERSION
) ;
56 COMPONENT_POST_INSTALL_ACTION
+= \
57 $(MKDIR
) $(PROTOUSRLIBDIR64
)/pkgconfig
; \
58 $(GSED
) -e
's|^prefix=.*$$|prefix=$(USRDIR)|' \
59 $(SOURCE_DIR
)/dbus-python.
pc.in \
60 > $(PROTOUSRLIBDIR64
)/pkgconfig
/dbus-python.pc-
$(PYTHON_VERSION
) ;
61 COMPONENT_POST_INSTALL_ACTION
+= \
62 $(GSED
) -i
's|^Version:.*$$|Version: $(COMPONENT_VERSION)|' \
63 $(PROTOUSRLIBDIR64
)/pkgconfig
/dbus-python.pc-
$(PYTHON_VERSION
) ;
64 COMPONENT_POST_INSTALL_ACTION
+= \
65 $(GSED
) -i
's|^exec_prefix=.*$$|exec_prefix=$$\{prefix\}|' \
66 $(PROTOUSRLIBDIR64
)/pkgconfig
/dbus-python.pc-
$(PYTHON_VERSION
) ;
67 COMPONENT_POST_INSTALL_ACTION
+= \
68 $(GSED
) -i
's|^includedir=.*$$|includedir=$$\{prefix\}/include/dbus-1.0/dbus/|' \
69 $(PROTOUSRLIBDIR64
)/pkgconfig
/dbus-python.pc-
$(PYTHON_VERSION
) ;
70 COMPONENT_POST_INSTALL_ACTION
+= \
71 $(GSED
) -i
's|^datarootdir=.*$$|datarootdir=$$\{prefix\}/share/|' \
72 $(PROTOUSRLIBDIR64
)/pkgconfig
/dbus-python.pc-
$(PYTHON_VERSION
) ;
73 COMPONENT_POST_INSTALL_ACTION
+= \
74 $(GSED
) -i
's|^datadir=.*$$|datadir=$$\{datarootdir\}|' \
75 $(PROTOUSRLIBDIR64
)/pkgconfig
/dbus-python.pc-
$(PYTHON_VERSION
) ;
77 COMPONENT_TEST_ENV
= PYTHONPATH
=$(PROTO_DIR
)$(PYTHON_VENDOR_PACKAGES
)
79 # Tests require packages: pytest benchmark pyparsing
80 COMPONENT_TEST_DIR
= $(COMPONENT_SRC
)/test
81 COMPONENT_TEST_CMD
= /usr
/bin
/pytest-
$(PYTHON_VERSION
)
82 COMPONENT_TEST_ARGS
= test-
*.py
84 # Disable test files that have import failures or produce only errors.
85 COMPONENT_PRE_TEST_ACTION
= \
86 ( cd
$(COMPONENT_TEST_DIR
); \
87 for F in test-unusable-main-loop.py test-client.py test-p2p.py \
88 test-signals.py test-service.py
; \
90 test -f
$$F && $(MV
) $$F $$F-not
; \
94 COMPONENT_TEST_TRANSFORMER
= $(NAWK
)
95 COMPONENT_TEST_TRANSFORMS
= "'/passed/ {gsub(\"in.* =*\",\"\"); print $0}'"
97 # Added test dependencies for all python versions
98 TEST_REQUIRED_PACKAGES.python
+= library
/python
/pytest
99 TEST_REQUIRED_PACKAGES.python
+= library
/python
/pyparsing
100 TEST_REQUIRED_PACKAGES.python
+= library
/python
/pytest-benchmark
102 # Auto-generated dependencies
103 PYTHON_REQUIRED_PACKAGES
+= runtime
/python
104 REQUIRED_PACKAGES
+= library
/glib2
105 REQUIRED_PACKAGES
+= system
/library
106 REQUIRED_PACKAGES
+= system
/library
/libdbus