rpm обрабатывает строки в spec не смотря на знак комментария. Например, если в spec указано: %install mkdir -p $RPM_BUILD_ROOT%_bindir #%makeinstall INSTALL_PREFIX=$RPM_BUILD_ROOT install -C src install -p src/{%name,rvnamed} $RPM_BUILD_ROOT%_bindir то получаем: + mkdir -p /home/sass/src/RPM/tmp/iptraf-buildroot/usr/bin + /usr/bin/make \'INSTALL=/bin/install -p\' prefix=/home/sass/src/RPM/tmp/iptraf-buildroot/usr exec_prefix=/home/sass/src/RPM/tmp/iptraf-buildroot/usr bindir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/bin sbindir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/sbin sysconfdir=/home/sass/src/RPM/tmp/iptraf-buildroot/etc datadir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/share includedir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/include libdir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/lib libexecdir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/lib localstatedir=/home/sass/src/RPM/tmp/iptraf-buildroot/var/lib sharedstatedir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/com mandir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/share/man infodir=/home/sass/src/RPM/tmp/iptraf-buildroot/usr/share/info install INSTALL_PREFIX=/home/sass/src/RPM/tmp/iptraf-buildroot install -C src make: Entering directory `/home/sass/src/RPM/BUILD/iptraf-2.7.0/src\' cat install.sh >install chmod a+x install make: `install\' is up to date. make: Leaving directory `/home/sass/src/RPM/BUILD/iptraf-2.7.0/src\' + install -p src/iptraf src/rvnamed /home/sass/src/RPM/tmp/iptraf-buildroot/usr/bin Если убрать эту строку, то всё лишнее, что после mkdir до последнего make, отсутствует. --- ---
У меня сложилось впечатление, что # не игнорируется, а применяется после раскрытия макроса. Что в случае многострочных макросов приводит к комментированию только первой строки...
Описанное поведение документировано и не является ошибкой.