Output type `rpm` failed to build if `--rpm-group` contain whitespaces
leiless opened this issue · comments
Fishbone° commented
# root @ fpm-centos-dev-env in /src [11:16:06]
$ touch foo.conf
# root @ fpm-centos-dev-env in /src [11:16:11]
$ cat foo.conf
# root @ fpm-centos-dev-env in /src [11:16:13]
$ fpm --verbose --force -s dir -t rpm -n foo --rpm-group 'System Environment/Libraries' foo.conf=/etc/foo.conf
Setting workdir {:workdir=>"/tmp", :level=>:info}
Setting from flags: epoch= {:level=>:info}
Setting from flags: iteration= {:level=>:info}
Setting from flags: name=foo {:level=>:info}
Setting from flags: url=http://example.com/no-uri-given {:level=>:info}
Setting from flags: version=1.0 {:level=>:info}
Converting dir to rpm {:level=>:info}
Reading template {:path=>"/usr/local/share/gems/gems/fpm-1.15.1/templates/rpm.erb", :level=>:info}
Running rpmbuild {:args=>["rpmbuild", "-bb", "--define", "buildroot /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/BUILD", "--define", "_topdir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74", "--define", "_sourcedir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74", "--define", "_rpmdir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/RPMS", "--define", "_tmppath /tmp", "/tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/SPECS/foo.spec"], :level=>:info}
warning: Macro expanded in comment on line 24: %undefine __check_files {:level=>:info}
{:level=>:info}
Executing(%prep): /bin/sh -e /tmp/rpm-tmp.yizvgY {:level=>:info}
Executing(%build): /bin/sh -e /tmp/rpm-tmp.OWk5BL {:level=>:info}
Executing(%install): /bin/sh -e /tmp/rpm-tmp.EW1pw4 {:level=>:info}
Processing files: foo-1.0-1.x86_64 {:level=>:info}
error: Bad syntax: %defattr(-,root,System Environment/Libraries,-) {:level=>:info}
{:level=>:info}
Macro expanded in comment on line 24: %undefine __check_files {:level=>:info}
{:level=>:info}
{:level=>:info}
RPM build errors: {:level=>:info}
Bad syntax: %defattr(-,root,System Environment/Libraries,-) {:level=>:info}
Process failed: rpmbuild failed (exit code 1). Full command was:["rpmbuild", "-bb", "--define", "buildroot /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/BUILD", "--define", "_topdir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74", "--define", "_sourcedir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74", "--define", "_rpmdir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/RPMS", "--define", "_tmppath /tmp", "/tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/SPECS/foo.spec"] {:level=>:error}
# XXX: If we remove the whitespace in --rpm-group, we're able to build the RPM.
# root @ fpm-centos-dev-env in /src [11:16:24]
$ fpm --force -s dir -t rpm -n foo --rpm-group 'SystemEnvironment/Libraries' foo.conf=/etc/foo.conf
Force flag given. Overwriting package at foo-1.0-1.x86_64.rpm {:level=>:warn}
Created package {:path=>"foo-1.0-1.x86_64.rpm"}
# XXX: But the Group still stay unchanged!
$ rpm -qp foo-1.0-1.x86_64.rpm -i | grep -w Group
Group : default
The main error (because the --rpm-group
contain whitespaces):
RPM build errors: {:level=>:info}
Bad syntax: %defattr(-,root,System Environment/Libraries,-) {:level=>:info}
Process failed: rpmbuild failed (exit code 1). Full command was:["rpmbuild", "-bb", "--define", "buildroot /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/BUILD", "--define", "_topdir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74", "--define", "_sourcedir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74", "--define", "_rpmdir /tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/RPMS", "--define", "_tmppath /tmp", "/tmp/package-rpm-build-f54cbd5f8df1dce5d3aa208e0fcfabf39588a8162c98f6591ba4ef5b9f74/SPECS/foo.spec"] {:level=>:error}