jordansissel / fpm

Effing package management! Build packages for multiple platforms (deb, rpm, etc) with great ease and sanity.

Home Page:http://fpm.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Output type `rpm` failed to build if `--rpm-group` contain whitespaces

leiless opened this issue · comments

# 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}