Skip to contentSkip to conversation

systemd: added python-systemd package generation.

PATCH Superseded Yevhen Kyriukha 4 participants 9 messages Apr 23, 2013

v4 of 8 Superseded Latest is v8 →

lore
Share & tools
lore
#0 lore raw

PATCH v4 1/1 systemd: added python-systemd package generation.

---
 meta/recipes-core/systemd/systemd_199.bb |   20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
meta/recipes-core/systemd/systemd_199.bb +16 -4
index 5240443..bbae6f8 100644
@@ -16,7 +16,13 @@ DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
 SECTION = "base/shell"
 
-inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives
+inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives pythonnative python-dir
+
+# need to export these variables for python-config to work
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
 
 SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
            file://touchscreen.rules \
@@ -46,11 +52,13 @@ LDFLAGS_libc-uclibc_append = " -lrt"
 
 GTKDOC_DOCDIR = "${S}/docs/"
 
-PACKAGECONFIG ??= "xz"
+PACKAGECONFIG ??= "xz python"
 # Sign the journal for anti-tampering
 PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
 # Compress the journal
 PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
+# Use python-systemd
+PACKAGECONFIG[python] = "--with-python,--without-python,python"
 
 CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill"
 
@@ -65,7 +73,6 @@ EXTRA_OECONF = " --with-rootprefix=${base_prefix} \
                  --disable-tcpwrap \
                  --enable-split-usr \
                  --disable-microhttpd \
-                 --without-python \
                  --with-sysvrcnd-path=${sysconfdir} \
                  --with-firmware-path=/lib/firmware \
                  ac_cv_path_KILL=${base_bindir}/kill \
@@ -119,7 +126,7 @@ python populate_packages_prepend (){
 }
 PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
 
-PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install"
+PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install python-${PN} python-${PN}-dbg python-${PN}-dev"
 
 USERADD_PACKAGES = "${PN}"
 GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
@@ -129,6 +136,11 @@ FILES_${PN}-analyze = "${bindir}/systemd-analyze"
 FILES_${PN}-initramfs = "/init"
 RDEPENDS_${PN}-initramfs = "${PN}"
 
+FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.py* ${PYTHON_SITEPACKAGES_DIR}/systemd/*.so"
+RDEPENDS_python-${PN} = "python-core python-datetime python-logging python-syslog"
+FILES_python-${PN}-dev = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.la"
+FILES_python-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/systemd/.debug"
+
 FILES_${PN}-gui = "${bindir}/systemadm"
 
 FILES_${PN}-vconsole-setup = "${systemd_unitdir}/systemd-vconsole-setup \
Signature · 1 line
1.7.9.5
#1 lore raw
Quoted 1 line · Yevhen Kyriukha

+inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives pythonnative python-dir

Does this really need pythonnative? That's adding a python-native dependency to build systemd.

Ross

#2 lore raw
Quoted 5 lines · Ross
Quoted 1 line · Yevhen Kyriukha

+inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives pythonnative python-dir

Does this really need pythonnative? That's adding a python-native dependency to build systemd.

To handle python modules correctly, I suspect the answer is yes. It would be better if we could make this inherit conditional somehow. I'm also sceptical about the separate -dev/=dbg packages for the python pieces, this isn't the standard practise.

Cheers,

Richard

#3 lore raw

2013/4/23 Richard Purdie <[email protected]>:

Quoted 7 lines · Ross
Quoted 5 lines · Yevhen Kyriukha
Quoted 1 line

+inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives pythonnative python-dir

Does this really need pythonnative? That's adding a python-native dependency to build systemd.

Quoted 9 lines

To handle python modules correctly, I suspect the answer is yes. It would be better if we could make this inherit conditional somehow. I'm also sceptical about the separate -dev/=dbg packages for the python pieces, this isn't the standard practise.

Cheers,

Richard

It isn't a pure python package but a combination of C library and python therefore -dev and -dbg are needed.

Best regards,
Yevhen

#4 lore raw
Quoted 2 lines · Yevhen Kyriukha

It isn't a pure python package but a combination of C library and python therefore -dev and -dbg are needed.

FILES_python-${PN}-dev = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.la"

Nobody will be linking to that library as it's a shared module and Python won't read .la files when looking for modules, so you don't need this. Just delete it instead of packaging a useless file in a useless package.

Ross

#5 lore raw

OK, and what about -dbg?
Best regards,
Yevhen

2013/4/23 Burton, Ross <[email protected]>:

Quoted 12 lines · Yevhen Kyriukha
Quoted 2 lines

It isn't a pure python package but a combination of C library and python therefore -dev and -dbg are needed.

FILES_python-${PN}-dev = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.la"

Nobody will be linking to that library as it's a shared module and Python won't read .la files when looking for modules, so you don't need this. Just delete it instead of packaging a useless file in a useless package.

Ross

#6 lore raw
Quoted 1 line · Yevhen Kyriukha

OK, and what about -dbg?

I'd suggest adding that to systemd-dbg, it's going to be so small it's barely worth the overhead of a package.

Ross

#7 lore raw
In reply to Yevhen Kyriukha
Quoted 24 lines · Yevhen Kyriukha
---
  meta/recipes-core/systemd/systemd_199.bb |   20 ++++++++++++++++----
  1 file changed, 16 insertions(+), 4 deletions(-)
meta/recipes-core/systemd/systemd_199.bb +7 -1
index 5240443..bbae6f8 100644
@@ -16,7 +16,13 @@ DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 
  SECTION = "base/shell"
 
-inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives
+inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives pythonnative python-dir
+
+# need to export these variables for python-config to work
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
 
  SRC_URI = "http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
             file://touchscreen.rules \

meta/recipes-core/systemd/systemd_199.bb LDFLAGS_libc-uclibc_append = " -lrt" · line 55

Quoted 5 lines
meta/recipes-core/systemd/systemd_199.bb +1 -1
@@ -46,11 +52,13 @@ LDFLAGS_libc-uclibc_append = " -lrt"
 
  GTKDOC_DOCDIR = "${S}/docs/"
 
-PACKAGECONFIG ??= "xz"
+PACKAGECONFIG ??= "xz python"

I believe that the default should be python is not enabled.

Sau!

Quoted 39 lines
meta/recipes-core/systemd/systemd_199.bb +8 -2
  # Sign the journal for anti-tampering
  PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
  # Compress the journal
  PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
+# Use python-systemd
+PACKAGECONFIG[python] = "--with-python,--without-python,python"
 
  CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill"
 
@@ -65,7 +73,6 @@ EXTRA_OECONF = " --with-rootprefix=${base_prefix} \
                   --disable-tcpwrap \
                   --enable-split-usr \
                   --disable-microhttpd \
-                 --without-python \
                   --with-sysvrcnd-path=${sysconfdir} \
                   --with-firmware-path=/lib/firmware \
                   ac_cv_path_KILL=${base_bindir}/kill \
@@ -119,7 +126,7 @@ python populate_packages_prepend (){
  }
  PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
 
-PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install"
+PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install python-${PN} python-${PN}-dbg python-${PN}-dev"
 
  USERADD_PACKAGES = "${PN}"
  GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
@@ -129,6 +136,11 @@ FILES_${PN}-analyze = "${bindir}/systemd-analyze"
  FILES_${PN}-initramfs = "/init"
  RDEPENDS_${PN}-initramfs = "${PN}"
 
+FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.py* ${PYTHON_SITEPACKAGES_DIR}/systemd/*.so"
+RDEPENDS_python-${PN} = "python-core python-datetime python-logging python-syslog"
+FILES_python-${PN}-dev = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.la"
+FILES_python-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/systemd/.debug"
+
  FILES_${PN}-gui = "${bindir}/systemadm"
 
  FILES_${PN}-vconsole-setup = "${systemd_unitdir}/systemd-vconsole-setup \
#8 lore raw

I'll send new patch without python in PACKAGECONFIG. Best regards,
Yevhen

2013/4/23 Saul Wold <[email protected]>:

Quoted 88 lines · Yevhen Kyriukha
Quoted 30 lines
---
  meta/recipes-core/systemd/systemd_199.bb |   20 ++++++++++++++++----
  1 file changed, 16 insertions(+), 4 deletions(-)
meta/recipes-core/systemd/systemd_199.bb +0 -0
index 5240443..bbae6f8 100644
@@ -16,7 +16,13 @@ DEPENDS += "${@base_contains('DISTRO_FEATURES', 'pam',

'libpam', '', d)}"

SECTION = "base/shell"

-inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives
+inherit gtk-doc useradd pkgconfig autotools perlnative update-rc.d update-alternatives pythonnative python-dir

meta/recipes-core/systemd/systemd_199.bb +6 -0
+
+# need to export these variables for python-config to work
+export BUILD_SYS
+export HOST_SYS
+export STAGING_INCDIR
+export STAGING_LIBDIR
 
  SRC_URI =
"http://www.freedesktop.org/software/systemd/systemd-${PV}.tar.xz \
             file://touchscreen.rules \

meta/recipes-core/systemd/systemd_199.bb LDFLAGS_libc-uclibc_append = " -lrt" · line 55

Quoted 5 lines
meta/recipes-core/systemd/systemd_199.bb +1 -1
@@ -46,11 +52,13 @@ LDFLAGS_libc-uclibc_append = " -lrt"
 
  GTKDOC_DOCDIR = "${S}/docs/"
 
-PACKAGECONFIG ??= "xz"
+PACKAGECONFIG ??= "xz python"

I believe that the default should be python is not enabled.

Sau!

Quoted 44 lines
meta/recipes-core/systemd/systemd_199.bb +2 -2
  # Sign the journal for anti-tampering
  PACKAGECONFIG[gcrypt] = "--enable-gcrypt,--disable-gcrypt,libgcrypt"
  # Compress the journal
  PACKAGECONFIG[xz] = "--enable-xz,--disable-xz,xz"
+# Use python-systemd
+PACKAGECONFIG[python] = "--with-python,--without-python,python"
 
  CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill"
 
@@ -65,7 +73,6 @@ EXTRA_OECONF = " --with-rootprefix=${base_prefix} \
                   --disable-tcpwrap \
                   --enable-split-usr \
                   --disable-microhttpd \
-                 --without-python \
                   --with-sysvrcnd-path=${sysconfdir} \
                   --with-firmware-path=/lib/firmware \
                   ac_cv_path_KILL=${base_bindir}/kill \
@@ -119,7 +126,7 @@ python populate_packages_prepend (){
  }
  PACKAGES_DYNAMIC += "^lib(udev|gudev|systemd).*"
 
-PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze

${PN}-kernel-install"
+PACKAGES =+ "${PN}-gui ${PN}-vconsole-setup ${PN}-initramfs ${PN}-analyze ${PN}-kernel-install python-${PN} python-${PN}-dbg python-${PN}-dev"

  USERADD_PACKAGES = "${PN}"
  GROUPADD_PARAM_${PN} = "-r lock; -r systemd-journal"
meta/recipes-core/systemd/systemd_199.bb +1 -0
@@ -129,6 +136,11 @@ FILES_${PN}-analyze = "${bindir}/systemd-analyze"
  FILES_${PN}-initramfs = "/init"
  RDEPENDS_${PN}-initramfs = "${PN}"
 
+FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.py*

${PYTHON_SITEPACKAGES_DIR}/systemd/*.so" +RDEPENDS_python-${PN} = "python-core python-datetime python-logging python-syslog"

meta/recipes-core/systemd/systemd_199.bb +3 -0
+FILES_python-${PN}-dev = "${PYTHON_SITEPACKAGES_DIR}/systemd/*.la"
+FILES_python-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/systemd/.debug"
+
  FILES_${PN}-gui = "${bindir}/systemadm"
 
  FILES_${PN}-vconsole-setup = "${systemd_unitdir}/systemd-vconsole-setup

\