I wanted to make a python3-cement recipe with the latest version of that
package. Everything seems to be building fine until it reaches the
package_write_rpm. The failure seems to stem from the fact that the developers
named some of the directories and files such as:
>
>
>
> cement/cement/cli/templates/generate/plugin/{{ label }}/controllers/{{
> label }}.py
>
>
And this appears to be a valid path, as in my personal workstation, I see the
following:
/lib/python3.8/site-packages/cement/cli/templates/generate/script/__pycache__/{{
label }}.cpython-38.pyc
/lib/python3.8/site-packages/cement/cli/templates/generate/script/{{ label }}.py
/lib/python3.8/site-packages/cement/cli/templates/generate/plugin/{{ label }}
/lib/python3.8/site-packages/cement/cli/templates/generate/plugin/{{ label
}}/templates/plugins/{{ label }}
/lib/python3.8/site-packages/cement/cli/templates/generate/plugin/{{ label
}}/controllers/{{ label }}.py
/lib/python3.8/site-packages/cement/cli/templates/generate/project/{{ label }}
/lib/python3.8/site-packages/cement/cli/templates/generate/project/config/{{
label }}.yml.example
The issue is that when it reaches this package_write_rpm stage, it fails in the
following way:
>
>
>
> | NOTE: Creating RPM package for python3-cement
> | DEBUG: Python function write_specfile finished
> | DEBUG: PKGWRITEDIR:
> /project/tmp/work/corei7-64-linux/python3-cement/3.0.4.dev2c2ae1e5-r0/deploy-rpms/corei7_64
>
> | DEBUG: Executing shell function BUILDSPEC
> | Building target platforms: corei7_64-linux
> | Building for target corei7_64-linux
> | Processing files: python3-cement-3.0.4.dev2c2ae1e5-r0.0.corei7_64
> | error: File not found:
> /project/tmp/work/corei7-64-linux/python3-cement/3.0.4.dev2c2ae1e5-r0/package/usr/lib/python3.8/site-packages/cement/cli/templates/generate/script/{{
>
> | error: Path is outside buildroot: label
> | error: Path is outside buildroot: }}.py
>
>
which to me it looks like it can't process these special characters.
What I tried to do was I appended the write_specfile to substitute the special
characters with the escaped form in the specfile as such:
>
>
>
> write_specfile_append() {
>
>
>
> new_spec_file = ""
>
>
>
> with open(outspecfile, 'r') as specfile:
>
>
>
> for line in specfile:
>
>
>
> if '{{ label }}' in line:
>
>
>
> line = line.replace('{{ label }}','\{\{\ label\ \}\}')
>
>
>
> new_spec_file += line
>
>
>
>
>
>
>
> with open(outspecfile,'w') as specfile:
>
>
>
> specfile.write(new_spec_file)
>
>
>
> }
>
>
so that I get something like
>
> cement/cement/cli/templates/generate/plugin/\{\{\ label\
> \}\}/controllers/\{\{\ label\ \}\}.py
>
That did seem to move it along but then rpmbuild fails, complaining it can't
find the files or directories associated with the special character lines:
>
> | NOTE: Creating RPM package for python3-cement
> | DEBUG: Python function write_specfile finished
> | DEBUG: PKGWRITEDIR:
> /project/tmp/work/corei7-64-linux/python3-cement/3.0.4.dev2c2ae1e5-r0/deploy-rpms/corei7_64
>
> | DEBUG: Executing shell function BUILDSPEC
> | Building target platforms: corei7_64-linux
> | Building for target corei7_64-linux
> | Processing files: python3-cement-3.0.4.dev2c2ae1e5-r0.0.corei7_64
> | error: File not found:
> /localdisk/yocto/builds/evernight/evernight-generic-intel-x86-64/tmp/work/corei7-64-evernight-linux/python3-cement/3.0.4.dev2c2ae1e5-r0/package/usr/lib/python3.8/site-packages/cement/cli/templates/generate/script/\{\{\
> label\ \}\}.py
>
And now I am at a loss for what else I can do.
Has anyone seen something similar and can advise on how to work around it?
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#52809): https://lists.yoctoproject.org/g/yocto/message/52809
Mute This Topic: https://lists.yoctoproject.org/mt/81536668/21656
Mute #yocto:https://lists.yoctoproject.org/g/yocto/mutehashtag/yocto
Mute #dunfell:https://lists.yoctoproject.org/g/yocto/mutehashtag/dunfell
Mute #python:https://lists.yoctoproject.org/g/yocto/mutehashtag/python
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-