[xkeyboard-config] Add 0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch, ship man-page Fix up broken git repo

Peter Hutterer whot at fedoraproject.org
Tue Jun 14 00:06:00 UTC 2011


commit 5ad0daef07565106e12adf2a52560f305f765946
Author: Peter Hutterer <peter.hutterer at who-t.net>
Date:   Tue Jun 14 09:57:05 2011 +1000

    Add 0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch, ship
    man-page
    Fix up broken git repo initialization when building from a tarball

 ...L-to-generate-man-page-from-the-rules-XML.patch |  230 ++++++++++++++++++++
 xkeyboard-config.spec                              |   15 +-
 2 files changed, 243 insertions(+), 2 deletions(-)
---
diff --git a/0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch b/0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch
new file mode 100644
index 0000000..72184ba
--- /dev/null
+++ b/0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch
@@ -0,0 +1,230 @@
+From c17f8b08740aed26687fd65c84e654a6cdc163a2 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Mon, 13 Jun 2011 23:39:30 +0100
+Subject: [PATCH] Use XSL to generate man page from the rules XML
+
+Generate a man-page from the evdev.xml through the xslt/man.xsl stylesheet.
+
+Adds a requirement on the xorg util-macros and xsltproc.
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+Reviewed-by: Dan Nicholson <dbn.lists at gmail.com>
+Reviewed-by: Gaetan Nadon <memsize at videotron.ca>
+---
+ Makefile.am     |    2 +-
+ configure.in    |   10 ++++
+ man/Makefile.am |   17 +++++++
+ man/man.xsl     |  137 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 165 insertions(+), 1 deletions(-)
+ create mode 100644 man/Makefile.am
+ create mode 100644 man/man.xsl
+
+diff --git a/Makefile.am b/Makefile.am
+index e98117e..943539f 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ AUTOMAKE_OPTIONS = foreign
+ 
+-SUBDIRS = compat geometry keycodes keymap po rules semantics symbols types docs
++SUBDIRS = compat geometry keycodes keymap po rules semantics symbols types docs man
+ 
+ pkgconfigdir = $(datadir)/pkgconfig
+ pkgconfig_DATA = xkeyboard-config.pc
+diff --git a/configure.in b/configure.in
+index 527e807..e98919a 100644
+--- a/configure.in
++++ b/configure.in
+@@ -3,6 +3,15 @@ AC_CONFIG_SRCDIR(rules/base.xml.in)
+ AM_INIT_AUTOMAKE([foreign dist-bzip2])
+ AM_MAINTAINER_MODE
+ 
++# Require X.Org macros 1.12 or later for XORG_WITH_XSLTPROC
++m4_ifndef([XORG_MACROS_VERSION],
++          [m4_fatal([must install xorg-macros 1.12 or later before
++          running autoconf/autogen])])
++XORG_MACROS_VERSION(1.12)
++XORG_MANPAGE_SECTIONS
++XORG_WITH_XSLTPROC
++AC_PROG_SED
++
+ AC_SUBST(VERSION)
+ 
+ AC_PATH_PROG([XKBCOMP], [xkbcomp], [not_found])
+@@ -104,6 +113,7 @@ types/Makefile
+ xkeyboard-config.pc
+ xkeyboard-config.spec
+ docs/Makefile
++man/Makefile
+ ])
+ 
+ echo '***********************************************************'
+diff --git a/man/Makefile.am b/man/Makefile.am
+new file mode 100644
+index 0000000..2e9deaa
+--- /dev/null
++++ b/man/Makefile.am
+@@ -0,0 +1,17 @@
++EXTRA_DIST = man.xsl
++
++if HAVE_XSLTPROC
++miscmandir = $(MISC_MAN_DIR)
++miscman_PRE = xkeyboard-config.man
++miscman_DATA = $(miscman_PRE:man=@MISC_MAN_SUFFIX@)
++CLEANFILES = $(miscman_DATA) $(miscman_PRE)
++SUFFIXES = .$(MISC_MAN_SUFFIX) .man
++MAN_SUBSTS += -e 's|__xkb_base__|$(xkb_base)|g'
++
++xkeyboard-config.man: $(top_builddir)/rules/evdev.xml $(srcdir)/man.xsl
++	$(XSLTPROC) -nonet $(srcdir)/man.xsl $(top_builddir)/rules/evdev.xml > $@
++
++.man.$(MISC_MAN_SUFFIX):
++	$(SED) $(MAN_SUBSTS) < $< > $@
++
++endif
+diff --git a/man/man.xsl b/man/man.xsl
+new file mode 100644
+index 0000000..a5bd14d
+--- /dev/null
++++ b/man/man.xsl
+@@ -0,0 +1,137 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >
++    <xsl:output method="text" encoding="UTF-8" doctype-system="xkb.dtd"/>
++    <xsl:template match="/xkbConfigRegistry">
++        <xsl:text><![CDATA[.\" WARNING: this man page is autogenerated. Do not edit or you will lose all your changes.
++.TH XKEYBOARD-CONFIG __miscmansuffix__ __vendorversion__
++.SH NAME
++xkeyboard-config \- XKB data description files
++.SH DESCRIPTION
++xkeyboard-config provides the description files for the X Keyboard
++Extension (XKB). The configuration options below are usually applied with
++setxkbmap(__appmansuffix__).
++.SH MODELS
++.TS
++left,box;
++lB lB
++___
++lB l.
++Model	Description
++]]></xsl:text>
++        <xsl:apply-templates select="modelList"/>
++        <xsl:text><![CDATA[
++.TE
++.SH LAYOUTS
++.TS
++left,box;
++lB lB
++____
++lB l.
++Layout(Variant)	Description
++]]></xsl:text>
++        <xsl:apply-templates select="layoutList"/>
++        <xsl:text><![CDATA[
++.TE
++.SH OPTIONS
++]]></xsl:text>
++        <xsl:apply-templates select="optionList"/>
++        <xsl:text><![CDATA[
++.SH FILES
++__xkb_base__/compat
++
++__xkb_base__/compiled
++
++__xkb_base__/geometry
++
++__xkb_base__/keycodes
++
++__xkb_base__/keymap
++
++__xkb_base__/rules
++
++__xkb_base__/semantics
++
++__xkb_base__/symbols
++
++__xkb_base__/types
++
++.SH SEE ALSO
++setxkbmap(__appmansuffix__)
++]]></xsl:text>
++    </xsl:template>
++
++<!-- split model/description into a normal table -->
++    <xsl:template match="modelList">
++        <xsl:for-each select="model">
++            <xsl:value-of select="configItem/name"/><xsl:text>&#9;</xsl:text><xsl:value-of select="configItem/description"/>
++            <xsl:text>&#10;</xsl:text>
++        </xsl:for-each>
++    </xsl:template>
++
++<!-- split layout/variant/description into a table like this
++
++        layout1                 description
++        layout1(variant1)       description
++        layout1(variant2)       description
++        layout2                 description
++        layout2(variant1)       description
++-->
++    <xsl:template match="layoutList">
++        <xsl:for-each select="layout">
++            <xsl:value-of select="configItem/name"/>
++            <xsl:text>&#9;</xsl:text>
++            <xsl:value-of select="configItem/description"/>
++            <xsl:text>&#10;</xsl:text>
++            <xsl:for-each select="variantList/variant">
++                <xsl:value-of select="../../configItem/name"/>
++                <xsl:text>(</xsl:text>
++                <xsl:value-of select="configItem/name"/>
++                <xsl:text>)</xsl:text>
++                <xsl:text>&#9;</xsl:text>
++                <xsl:value-of select="configItem/description"/>
++                <xsl:text>&#10;</xsl:text>
++            </xsl:for-each>
++            <xsl:text>&#10;</xsl:text>
++            <xsl:text>_&#10;</xsl:text>
++        </xsl:for-each>
++    </xsl:template>
++
++<!-- split option into a table like this
++
++option description:
++        optarg          description
++        optarg          description
++        optarg          description
++
++option2 description:
++        optarg          description
++        optarg          description
++-->
++    <xsl:template match="optionList">
++        <xsl:for-each select="group">
++            <xsl:text><![CDATA[
++.SS]]></xsl:text>
++            <xsl:text>&#10;</xsl:text>
++            <xsl:value-of select="configItem/description"/>
++            <xsl:text><![CDATA[
++.BR
++.TS
++left,box;
++lB lB
++___
++lB l.
++Option	Description
++]]></xsl:text>
++            <xsl:for-each select="option">
++                <xsl:value-of select="configItem/name"/>
++                <xsl:text>&#9;</xsl:text>
++                <xsl:value-of select="configItem/description"/>
++                <xsl:text>&#10;</xsl:text>
++            </xsl:for-each>
++            <xsl:text><![CDATA[
++.TE
++
++]]></xsl:text>
++        </xsl:for-each>
++    </xsl:template>
++</xsl:stylesheet>
+-- 
+1.7.5.4
+
diff --git a/xkeyboard-config.spec b/xkeyboard-config.spec
index 5440a1a..eca0a9f 100644
--- a/xkeyboard-config.spec
+++ b/xkeyboard-config.spec
@@ -7,7 +7,7 @@
 Summary: X Keyboard Extension configuration data
 Name: xkeyboard-config
 Version: 2.3
-Release: 1%{?gitdate:.%{gitdate}git%{gitversion}}%{dist}
+Release: 2%{?gitdate:.%{gitdate}git%{gitversion}}%{dist}
 License: MIT
 Group: User Interface/X
 URL: http://www.freedesktop.org/wiki/Software/XKeyboardConfig
@@ -18,6 +18,7 @@ Source2:    commitid
 %else
 Source0:    ftp://ftp.x.org/pub/individual/data/%{name}/%{name}-%{version}.tar.bz2
 %endif
+Patch01:    0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch
 
 BuildArch: noarch
 
@@ -31,6 +32,7 @@ BuildRequires: git-core
 BuildRequires: automake autoconf libtool pkgconfig
 BuildRequires: glib2-devel
 BuildRequires: xorg-x11-proto-devel libX11-devel
+BuildRequires: libxslt
 
 %description
 This package contains configuration data used by the X Keyboard Extension 
@@ -56,15 +58,18 @@ if [ -z "$GIT_COMMITTER_NAME" ]; then
     git config user.email "x at fedoraproject.org"
     git config user.name "Fedora X Ninjas"
 fi
+git commit -am "%{name} %{version}"
 %else
 git init
 if [ -z "$GIT_COMMITTER_NAME" ]; then
     git config user.email "x at fedoraproject.org"
     git config user.name "Fedora X Ninjas"
 fi
+git add .
+git commit -a -q -m "%{name} %{version} baseline."
 %endif
 
-#git am -p1 $(awk '/^Patch.*:/ { print "%{_sourcedir}/"$2 }' %{_specdir}/%{name}.spec)
+git am -p1 $(awk '/^Patch.*:/ { print "%{_sourcedir}/"$2 }' %{_specdir}/%{name}.spec)
 
 %build
 intltoolize
@@ -99,12 +104,18 @@ rm -f $RPM_BUILD_ROOT%{_datadir}/X11/xkb/compiled
 %{_datadir}/X11/xkb/rules/xorg
 %{_datadir}/X11/xkb/rules/xorg.lst
 %{_datadir}/X11/xkb/rules/xorg.xml
+%{_mandir}/man7/xkeyboard-config.*
 
 %files devel
 %defattr(-,root,root,-)
 %{_datadir}/pkgconfig/xkeyboard-config.pc
 
 %changelog
+* Tue Jun 14 2011 Peter Hutterer <peter.hutterer at redhat.com> 2.3-2
+- Add 0001-Use-XSL-to-generate-man-page-from-the-rules-XML.patch, ship
+  man-page
+- Fix up broken git repo initialization when building from a tarball
+
 * Thu Jun 02 2011 Peter Hutterer <peter.hutterer at redhat.com> 2.3-1
 - xkeyboard-config 2.3
 


More information about the scm-commits mailing list