Patchwork [v4] systemd: added python-systemd package generation.

login
register
mail settings
Submitter Yevhen Kyriukha
Date April 23, 2013, 9:13 a.m.
Message ID <1366708403-45429-1-git-send-email-kirgene@gmail.com>
Download mbox | patch
Permalink /patch/48679/
State New
Headers show

Comments

Yevhen Kyriukha - April 23, 2013, 9:13 a.m.
---
 meta/recipes-core/systemd/systemd_199.bb |   20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)
Ross Burton - April 23, 2013, 1:41 p.m.
On 23 April 2013 10:13, Yevhen Kyriukha <kirgene@gmail.com> wrote:
> +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
Richard Purdie - April 23, 2013, 1:52 p.m.
On Tue, 2013-04-23 at 14:41 +0100, Burton, Ross wrote:
> On 23 April 2013 10:13, Yevhen Kyriukha <kirgene@gmail.com> wrote:
> > +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
Yevhen Kyriukha - April 23, 2013, 2:26 p.m.
2013/4/23 Richard Purdie <richard.purdie@linuxfoundation.org>:
> On Tue, 2013-04-23 at 14:41 +0100, Burton, Ross wrote:
>> On 23 April 2013 10:13, Yevhen Kyriukha <kirgene@gmail.com> wrote:
>> > +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
>

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

Best regards,
Yevhen
Ross Burton - April 23, 2013, 2:36 p.m.
On 23 April 2013 15:26, Yevhen Kyriukha <kirgene@gmail.com> wrote:
> 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
Yevhen Kyriukha - April 23, 2013, 2:42 p.m.
OK, and what about -dbg?
Best regards,
Yevhen


2013/4/23 Burton, Ross <ross.burton@intel.com>:
> On 23 April 2013 15:26, Yevhen Kyriukha <kirgene@gmail.com> wrote:
>> 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
Ross Burton - April 23, 2013, 2:55 p.m.
On 23 April 2013 15:42, Yevhen Kyriukha <kirgene@gmail.com> wrote:
> 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
Saul Wold - April 23, 2013, 3:32 p.m.
On 04/23/2013 02:13 AM, Yevhen Kyriukha wrote:
> ---
>   meta/recipes-core/systemd/systemd_199.bb |   20 ++++++++++++++++----
>   1 file changed, 16 insertions(+), 4 deletions(-)
>
> diff --git a/meta/recipes-core/systemd/systemd_199.bb b/meta/recipes-core/systemd/systemd_199.bb
> index 5240443..bbae6f8 100644
> --- a/meta/recipes-core/systemd/systemd_199.bb
> +++ b/meta/recipes-core/systemd/systemd_199.bb
> @@ -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"

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

Sau!

>   # 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 \
>
Yevhen Kyriukha - April 23, 2013, 4:01 p.m.
I'll send new patch without python in PACKAGECONFIG.
Best regards,
Yevhen


2013/4/23 Saul Wold <sgw@linux.intel.com>:
> On 04/23/2013 02:13 AM, Yevhen Kyriukha wrote:
>>
>> ---
>>   meta/recipes-core/systemd/systemd_199.bb |   20 ++++++++++++++++----
>>   1 file changed, 16 insertions(+), 4 deletions(-)
>>
>> diff --git a/meta/recipes-core/systemd/systemd_199.bb
>> b/meta/recipes-core/systemd/systemd_199.bb
>> index 5240443..bbae6f8 100644
>> --- a/meta/recipes-core/systemd/systemd_199.bb
>> +++ b/meta/recipes-core/systemd/systemd_199.bb
>> @@ -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"
>
>
> I believe that the default should be python is not enabled.
>
> Sau!
>
>
>>   # 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
>> \
>>
>

Patch

diff --git a/meta/recipes-core/systemd/systemd_199.bb b/meta/recipes-core/systemd/systemd_199.bb
index 5240443..bbae6f8 100644
--- a/meta/recipes-core/systemd/systemd_199.bb
+++ b/meta/recipes-core/systemd/systemd_199.bb
@@ -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 \