# Test file for rpmspec.xml
# Comments start with a # in column="0":
# Some comment
# When they don't start in column="0", that they are recognized as comments, but with an alert:
# This is a bad comment.
# RPM spec says clear that comments must start at the begin of the line. However, in practice
# the RPM software is more permissive, depending on the context. But for our syntax highlighting,
# we give, while recognizing the as comment, at least a little alert. Comments should not contain
# the character % (which is marked as warning), but 2 of them are okay: %%. TODO is higlighted.
# A spec file starts with "Normal" context. Here, you can specify values for some tags:
Name: kradioripper-unstable # Note that here in no comment possible!
Name: name only _one_ word allowed
Name: %macro no further syntax check after macro!
# Some tags support only _one_ word as value
Version: 0.4test5 up-from-the-space-this-is-an-error
# Some tag can have parameters: Any char in paranthesis:
Summary: Recorder for internet radios (based on Streamripper)
Summary(de.UTF-8): Aufnahmeprogramm für Internetradios (basiert auf Streamripper)
# requiere free text:
License: License 1 2 3
# requiere a well defines value:
Requires( / ( = ): Some, value()
# new type "switch" accepts: yes, no, 0, 1
AutoReq: yes
AutoReq: yes invalid
AutoReq: %macro no further syntax check after macro!
AutoReq: no
AutoReq: 0
AutoReq: 1
# requiere a number:
Epoch: 123123
Epoch: 123123 invalid
Epoch: %macro no further syntax check afer macro!
# If tags are used that are not known, they are not highlighted:
Invalidtag: Some value
Invalid content in this section (only tags are allowed)
# You can use conditions in specs (highlighted with region markers):
%if 0%{?mandriva_version}
# numbers and strings are distingished: string:
%if lsdksfj
# number:
%if 23472398
# string:
%if lksdjfsl72939
# invalid:
%if 92437lsdkfjdsl
# valid:
%if "lsdfj %ksdf(sdfs) 3489"
Release: %mkrel 1.2
%else
Release: 0
%endif
# requiere a well defined value:
%ifos fixed_value
# You must use these special macros (%%if etc.) always at the start of the line - if not,
# that's bad but not an arror. You must also always use the specified form. Everything else is an
# error:
%if
something %if
%{if}
%if(some options)
# However, this are different macros and therefore correct:
%ifx
%{ifx}
%ifx(some options)
# the \ is escaped in the line. At the end of the line it escapes the line break:
echo This is \" a text \\ and here\
it continues.
%define name value
%define invalid_näme value
%define macroname multi\
line content with references like %0 %* %# %{-f} %{-f*} %1 %2 and so on
%global name value
%global invalid_näme value
%undefine name
%undefine name too-many-parameters
# shell command
%define buildoutputdir %{expand:build/jdk%{featurever}.build%{?1}}
%define buildoutputdir() %{expand:build/jdk%{featurever}.build%{?1}}
%define save_alternatives() %{expand:
# bash comment
function foo {
LANG=en_US.UTF-8 alternatives --display "$MASTER"
}
MASTER="%{?1}"
rm -f %{_localstatedir}/lib/rpm-state/"$MASTER"_$FAMILY > /dev/null
if foo > /dev/null | bar -q ; then
zeta 2 > %{_localstatedir}/lib/rpm-state/"$MASTER"_"$FAMILY"
fi
}
# lua command
%define save_alternatives() %{lua:
-- a lua code
local posix = require "posix"
if (os.getenv("debug") == "true") then
debug = true;
print("debug")
else
debug = false;
end
}
# This special comment is treated and highlighted like a tag:
# norootforbuild
# It can't have parameters, so every following non-whitespace character is not good:
# norootforbuild DONT WRITE ANYTHING HERE!
# wrong spacing is also recognized:
# norootforbuild
# and also an indeet is not fine for norootforbuild:
# norootforbuild
# This following "Conflicts" tag will be removed by set-version.sh,
# if it is a "kradioripper" release (and not a "kradioripper-unstable" release)...
Conflicts: kradioripper
%description
# Here, a new section starts. It contains a value for the RPM field "description" and is therefor
# colored like values:
A KDE program for ripping internet radios. Based on StreamRipper.
# A section start can have parameters:
%description -l de.UTF-8
Ein KDE-Aufnahmeprogramm für Internetradios. Basiert auf StreamRipper.
# These sections starts are errors:
%description not at the first line
%{description} wrong form
%description(no options allowed, only parameters!)
%prep
# This starts a section that defines the commands to prepare the build.
# q means quit. n sets the directory:
%setup -q -n kradioripper
echo Test
# Macros can have different forms: Valid:
%abc
%abcÄndOfMacro
%abc(def)EndOfMacro
%{abc}EndOfMacro
%{something but no single %}EndOfMacro
%{abc:def}EndOfMacro
%(abc)
# Invalid:
%ÄInvalidChar
%
%)
%}
# You can use macros inside of macro calls: Fine:
%{something %but no %{sin%(fine)gle} }EndOfMacro
# Bad:
%{No closing paranthesis (No syntax highlightig for this error available)
%build
cmake ./ -DCMAKE_INSTALL_PREFIX=%{_prefix}
%__make %{?jobs:-j %jobs}
%{!?_licensedir:%global license %%doc}
%install
%if 0%{?suse_version}
%makeinstall
%suse_update_desktop_file kradioripper
%endif
%if 0%{?fedora_version} || 0%{?rhel_version} || !0%{?centos_version}
make install DESTDIR=%{buildroot}
desktop-file-install --delete-original --vendor fedora --dir=%{buildroot}/%{_datadir}/applications/kde4 %{buildroot}/%{_datadir}/applications/kde4/kradioripper.desktop
%endif
%if 0%{?mandriva_version}
%makeinstall_std
%endif
%clean
rm -rf "%{buildroot}"
%files
%defattr(-,root,root)
%if 0%{?fedora_version} || 0%{?rhel_version} || 0%{?centos_version}
%{_datadir}/applications/kde4/fedora-kradioripper.desktop
%else
%{_datadir}/applications/kde4/kradioripper.desktop
%endif
%{_bindir}/kradioripper
%{_datadir}/locale/*/LC_MESSAGES/kradioripper.mo
%if 0%{?mandriva_version}
# TODO The %%doc macro is actually broken for mandriva 2009 in build service...
%dir %{_datadir}/apps/kradioripper
%{_datadir}/apps/kradioripper/*
%else
%doc COPYING LICENSE LICENSE.GPL2 LICENSE.GPL3 NEWS WARRANTY
%dir %{_datadir}/kde4/apps/kradioripper
%{_datadir}/kde4/apps/kradioripper/*
%endif
# lua section
%pretrans headless -p
-- a lua code
local posix = require "posix"
if (os.getenv("debug") == "true") then
debug = true;
print("debug")
else
debug = false;
end
%changelog
* Sun May 04 2008 email@email.com
- some text
- some text
in two lines
- some text
in two lines
+ with subtext
- and more subtext
in two lines
* Tue Apr 24 2007 Name
- text
* When the star isn't at column 0, than it doesn't indicate
a new date
* Wen Sep 08 2003 Wrong weekday
* Mon Mai 08 2003 Wrong month
* Mon Sep 0 2003 bad day
* Mon Sep 8 2003 good day
* Mon Sep 08 2003 good day
* Mon Sep 32 2003 bad day
* Mon Sep 08 03 bad year
* Mon Sep 08 2003 Name
# When using macros, the error check is disabled:
* %myDataMacro Title of the entry
- Text
- can
- be
- indeeded
- without
- problems