http://wiki.meego.com/Packaging/Guidelines#Handling_Locale_Files
suggests a way of having a RPM .spec %files macro take a
dynamically-generated file "%{name}.lang".
%files -f %{name}.lang
This useful "-f" syntax is also suggested here:
http://www.techrepublic.com/article/making-rpms-part-4-finishing-the-spec-file/5033542
Unfortunately, whenever I use this form in MeeGo, the only output I
get is an error message "unsupported stanza format":
$ /usr/lib64/madde/linux-x86_64/bin/mad rrpmbuild -bb
/home/npm/appup/qmltube/qtc_packaging/meego.spec
'%files -f /tmp/%name-qml.files': unsupported stanza format.
$ /usr/lib64/madde/linux-x86_64/bin/mad rrpmbuild -bb
/home/npm/appup/qmltube/qtc_packaging/meego.spec
'%files -f %{buildroot}/qmltube-qml.files': unsupported stanza format.
$ /usr/lib64/madde/linux-x86_64/bin/mad rrpmbuild -bb
/home/npm/appup/qmltube/qtc_packaging/meego.spec
'%files -f /dev/null': unsupported stanza format.
Googling the source-code, I didn't see any obvious code to process "-f":
http://meego.gitorious.org/meego-developer-tools/madde/blobs/ffdd033010ed147b42e6b08cb43966499c0fbf85/src/madlib/rrpmbuild.pl
:
...................
while (1) {
chomp, die "'$_': unsupported stanza format.\n"
unless /^\s*%(\w+)\s*(\S*?)\s*$/;
if ($1 eq 'package') {
push @pkgnames, $2;
readpackage ($packages{$2} = [ [ ], { } ]);
}
elsif ($1 eq 'description') { readlines ($description{$2} = [ ]); }
elsif ($1 eq 'prep') { readignore \@prep; }
elsif ($1 eq 'build') { readlines \@build; }
elsif ($1 eq 'install') { readlines \@install; }
elsif ($1 eq 'clean') { readlines \@clean; }
elsif ($1 eq 'files') { readfiles ($files{$2} = [ ]); }
elsif ($1 eq 'pre') { readlines ($pre{$2} = [ ]); }
elsif ($1 eq 'post') { readlines ($post{$2} = [ ]); }
elsif ($1 eq 'preun') { readlines ($preun{$2} = [ ]); }
elsif ($1 eq 'postun') { readlines ($postun{$2} = [ ]); }
elsif ($1 eq 'changelog') { readlines \@changelog; }
else { chomp; die "'$1': unsupported stanza macro.\n"; }
last if eof I;
};
...................
I'm using Qt Creator 2.3RC and
http://download.meego.com/live/Tools:/SDK:/Host/ versions of MeeGo
SDK:
madde-0.7.63-1.1.x86_64, meego-sdk-i586-toolchain-1.1-4.1.x86_64,
meego-sdk-qt-devel-tools-4.7.2-3.1.x86_64,
meego-1.2-sdk-ia32-toolchain-1.0-6.1.x86_64,
meego-sdk-libqtwebkit4-4.7.2-3.1.x86_64, meego-sdk-ia32-5-1.1.noarch,
meego-sdk-5-1.1.noarch, meego-sdk-common-5-1.1.noarch,
meego-sdk-libqtxml4-4.7.2-3.1.x86_64,
meego-sdk-qt-qmake-4.7.2-3.1.x86_64, meego-sdk-armv7l-5-1.1.noarch
Niels
http://nielsmayer.com
PS: The compromise I came up with is to use the traditional form of
the %files macro and enumerate the directories I want to include and
use wildcards, e.g. "qml/*.qml" :
http://ytd-meego.googlecode.com/svn/trunk/playground/qmltube/qtc_packaging/meego.spec
The resulting MeeGo 1.2 RPM:
http://nielsmayer.com/meego/qml/qmltube-1.11.1-1.i586.rpm
(Harmattan: http://nielsmayer.com/meego/qml/qmltube_1.11.1_armel.deb )
However, the package that really needs "%files -f" is the .spec file
that generated this monster:
http://nielsmayer.com/meego/qml/qtzibit-0.1.0-1.i586.rpm
( http://code.google.com/p/qtzibit/
http://nielsmayer.com/meego/qml/qtzibit_0.1.0_armel.deb )
_______________________________________________
MeeGo-dev mailing list
[email protected]
http://lists.meego.com/listinfo/meego-dev
http://wiki.meego.com/Mailing_list_guidelines