diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..165a018 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/libXmu-1.1.2.tar.bz2 diff --git a/.libXmu.metadata b/.libXmu.metadata new file mode 100644 index 0000000..88b18f7 --- /dev/null +++ b/.libXmu.metadata @@ -0,0 +1 @@ +7e6aeef726743d21aa272c424e7d7996e92599eb SOURCES/libXmu-1.1.2.tar.bz2 diff --git a/SOURCES/0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch b/SOURCES/0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch new file mode 100644 index 0000000..4d4787b --- /dev/null +++ b/SOURCES/0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch @@ -0,0 +1,182 @@ +From bc78541e9a9a95bbd5413d62bfc114ddc9265c36 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Sat, 5 May 2018 11:26:17 -0700 +Subject: [PATCH 1/2] Convert tabs to spaces in StrToWidg.c + +Signed-off-by: Alan Coopersmith +--- + src/StrToWidg.c | 106 ++++++++++++++++++++++++------------------------ + 1 file changed, 53 insertions(+), 53 deletions(-) + +diff --git a/src/StrToWidg.c b/src/StrToWidg.c +index c22b827..6aace95 100644 +--- a/src/StrToWidg.c ++++ b/src/StrToWidg.c +@@ -53,7 +53,7 @@ in this Software without prior written authorization from The Open Group. + /*ARGSUSED*/ + void + XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, +- XrmValuePtr fromVal, XrmValuePtr toVal) ++ XrmValuePtr fromVal, XrmValuePtr toVal) + { + static Widget widget, *widgetP, parent; + XrmName name = XrmStringToName(fromVal->addr); +@@ -61,55 +61,55 @@ XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, + + if (*num_args != 1) + { +- i = 0; +- XtErrorMsg("wrongParameters", "cvtStringToWidget", "xtToolkitError", +- "StringToWidget conversion needs parent arg", NULL, &i); ++ i = 0; ++ XtErrorMsg("wrongParameters", "cvtStringToWidget", "xtToolkitError", ++ "StringToWidget conversion needs parent arg", NULL, &i); + } + + parent = *(Widget*)args[0].addr; + /* try to match names of normal children */ + if (XtIsComposite(parent)) + { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- { +- widget = *widgetP; +- done(&widget, Widget); +- } +- } ++ i = ((CompositeWidget)parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget)parent)->composite.children; ++ i; i--, widgetP++) ++ if ((*widgetP)->core.xrm_name == name) ++ { ++ widget = *widgetP; ++ done(&widget, Widget); ++ } ++ } + + /* try to match names of popup children */ + i = parent->core.num_popups; + for (widgetP = parent->core.popup_list; i; i--, widgetP++) + if ((*widgetP)->core.xrm_name == name) + { +- widget = *widgetP; +- done(&widget, Widget); +- } ++ widget = *widgetP; ++ done(&widget, Widget); ++ } + + /* try to match classes of normal children */ + if (XtIsComposite(parent)) + { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- { +- widget = *widgetP; +- done(&widget, Widget); +- } +- } ++ i = ((CompositeWidget)parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget)parent)->composite.children; ++ i; i--, widgetP++) ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) ++ { ++ widget = *widgetP; ++ done(&widget, Widget); ++ } ++ } + + /* try to match classes of popup children */ + i = parent->core.num_popups; + for (widgetP = parent->core.popup_list; i; i--, widgetP++) + if ((*widgetP)->core.widget_class->core_class.xrm_class == name) + { +- widget = *widgetP; +- done(&widget, Widget); +- } ++ widget = *widgetP; ++ done(&widget, Widget); ++ } + + XtStringConversionWarning(fromVal->addr, XtRWidget); + toVal->addr = NULL; +@@ -118,47 +118,47 @@ XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, + + #undef done + +-#define newDone(type, value) \ +- { \ +- if (toVal->addr != NULL) { \ +- if (toVal->size < sizeof(type)) { \ +- toVal->size = sizeof(type); \ +- return False; \ +- } \ +- *(type*)(toVal->addr) = (value); \ +- } \ +- else { \ +- static type static_val; \ +- static_val = (value); \ +- toVal->addr = (XtPointer)&static_val; \ +- } \ +- toVal->size = sizeof(type); \ +- return True; \ +- } ++#define newDone(type, value) \ ++ { \ ++ if (toVal->addr != NULL) { \ ++ if (toVal->size < sizeof(type)) { \ ++ toVal->size = sizeof(type); \ ++ return False; \ ++ } \ ++ *(type*)(toVal->addr) = (value); \ ++ } \ ++ else { \ ++ static type static_val; \ ++ static_val = (value); \ ++ toVal->addr = (XtPointer)&static_val; \ ++ } \ ++ toVal->size = sizeof(type); \ ++ return True; \ ++ } + + + /*ARGSUSED*/ + Boolean + XmuNewCvtStringToWidget(Display *dpy, XrmValue *args, Cardinal *num_args, +- XrmValue *fromVal, XrmValue *toVal, +- XtPointer *converter_data) ++ XrmValue *fromVal, XrmValue *toVal, ++ XtPointer *converter_data) + { + Widget *widgetP, parent; + XrmName name = XrmStringToName(fromVal->addr); + int i; + + if (*num_args != 1) +- XtAppWarningMsg(XtDisplayToApplicationContext(dpy), +- "wrongParameters","cvtStringToWidget","xtToolkitError", +- "String To Widget conversion needs parent argument", +- (String *)NULL, (Cardinal *)NULL); ++ XtAppWarningMsg(XtDisplayToApplicationContext(dpy), ++ "wrongParameters","cvtStringToWidget","xtToolkitError", ++ "String To Widget conversion needs parent argument", ++ (String *)NULL, (Cardinal *)NULL); + + parent = *(Widget*)args[0].addr; + /* try to match names of normal children */ + if (XtIsComposite(parent)) + { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; ++ i = ((CompositeWidget)parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget)parent)->composite.children; + i; i--, widgetP++) + if ((*widgetP)->core.xrm_name == name) + newDone(Widget, *widgetP); +-- +2.17.1 + diff --git a/SOURCES/0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch b/SOURCES/0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch new file mode 100644 index 0000000..8095d4f --- /dev/null +++ b/SOURCES/0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch @@ -0,0 +1,33 @@ +From 22d9c590901e121936f50dee97dc60c4f7defb63 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Mon, 2 Dec 2013 13:00:05 -0800 +Subject: [PATCH] ShapeEllipseOrRoundedRectangle: Check height AND width, not + width twice + +Fixed to match check in ShapeOval() +https://bugs.freedesktop.org/show_bug.cgi?id=72245 + +Fixes cppcheck warning: +[ShapeWidg.c:204]: (style) Same expression on both sides of '||'. + +Signed-off-by: Alan Coopersmith +--- + src/ShapeWidg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/ShapeWidg.c b/src/ShapeWidg.c +index 32388ee..3ca7116 100644 +--- a/src/ShapeWidg.c ++++ b/src/ShapeWidg.c +@@ -201,7 +201,7 @@ ShapeEllipseOrRoundedRectangle(Widget w, Bool ellipse, int ew, int eh) + GC gc; + unsigned long mask; + +- if (width < 3 || width < 3) ++ if (width < 3 || height < 3) + return; + width += w->core.border_width << 1; + height += w->core.border_width << 1; +-- +2.17.1 + diff --git a/SOURCES/0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch b/SOURCES/0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch new file mode 100644 index 0000000..41e502e --- /dev/null +++ b/SOURCES/0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch @@ -0,0 +1,241 @@ +From 5bd4eb821bd9e88c3a131de9a8b781f5184e22b1 Mon Sep 17 00:00:00 2001 +From: Alan Coopersmith +Date: Sat, 5 May 2018 11:32:12 -0700 +Subject: [PATCH 2/2] Apply standard X.Org formatting & bracketing to + StrToWidg.c +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Makes code easier for humans to read and gets rid of gcc warning: + +StrToWidg.c: In function ‘XmuCvtStringToWidget’: +StrToWidg.c:107:3: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation] + for (widgetP = parent->core.popup_list; i; i--, widgetP++) + ^~~ +StrToWidg.c:114:5: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the ‘for’ + XtStringConversionWarning(fromVal->addr, XtRWidget); + ^~~~~~~~~~~~~~~~~~~~~~~~~ + +Signed-off-by: Alan Coopersmith +--- + src/StrToWidg.c | 150 ++++++++++++++++++++++++------------------------ + 1 file changed, 74 insertions(+), 76 deletions(-) + +diff --git a/src/StrToWidg.c b/src/StrToWidg.c +index 6aace95..b6288d4 100644 +--- a/src/StrToWidg.c ++++ b/src/StrToWidg.c +@@ -59,57 +59,54 @@ XmuCvtStringToWidget(XrmValuePtr args, Cardinal *num_args, + XrmName name = XrmStringToName(fromVal->addr); + Cardinal i; + +- if (*num_args != 1) +- { ++ if (*num_args != 1) { + i = 0; + XtErrorMsg("wrongParameters", "cvtStringToWidget", "xtToolkitError", + "StringToWidget conversion needs parent arg", NULL, &i); + } + +- parent = *(Widget*)args[0].addr; ++ parent = *(Widget *) args[0].addr; + /* try to match names of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- { ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) { + widget = *widgetP; + done(&widget, Widget); + } + } ++ } + + /* try to match names of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- { ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) { + widget = *widgetP; + done(&widget, Widget); + } ++ } + + /* try to match classes of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- { ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) { + widget = *widgetP; + done(&widget, Widget); + } + } ++ } + + /* try to match classes of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- { ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) { + widget = *widgetP; + done(&widget, Widget); + } ++ } + + XtStringConversionWarning(fromVal->addr, XtRWidget); + toVal->addr = NULL; +@@ -149,77 +146,78 @@ XmuNewCvtStringToWidget(Display *dpy, XrmValue *args, Cardinal *num_args, + + if (*num_args != 1) + XtAppWarningMsg(XtDisplayToApplicationContext(dpy), +- "wrongParameters","cvtStringToWidget","xtToolkitError", ++ "wrongParameters", "cvtStringToWidget", ++ "xtToolkitError", + "String To Widget conversion needs parent argument", +- (String *)NULL, (Cardinal *)NULL); ++ (String *) NULL, (Cardinal *) NULL); + +- parent = *(Widget*)args[0].addr; ++ parent = *(Widget *) args[0].addr; + /* try to match names of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- newDone(Widget, *widgetP); +- } ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) ++ newDone(Widget, *widgetP); ++ } ++ } + + /* try to match names of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.xrm_name == name) +- newDone(Widget, *widgetP); ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.xrm_name == name) ++ newDone(Widget, *widgetP); ++ } + + /* try to match classes of normal children */ +- if (XtIsComposite(parent)) +- { +- i = ((CompositeWidget)parent)->composite.num_children; +- for (widgetP = ((CompositeWidget)parent)->composite.children; +- i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- newDone(Widget, *widgetP); +- } ++ if (XtIsComposite(parent)) { ++ i = ((CompositeWidget) parent)->composite.num_children; ++ for (widgetP = ((CompositeWidget) parent)->composite.children; ++ i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) ++ newDone(Widget, *widgetP); ++ } ++ } + + /* try to match classes of popup children */ + i = parent->core.num_popups; +- for (widgetP = parent->core.popup_list; i; i--, widgetP++) +- if ((*widgetP)->core.widget_class->core_class.xrm_class == name) +- newDone(Widget, *widgetP); ++ for (widgetP = parent->core.popup_list; i; i--, widgetP++) { ++ if ((*widgetP)->core.widget_class->core_class.xrm_class == name) ++ newDone(Widget, *widgetP); ++ } + +- XtDisplayStringConversionWarning(dpy, (String)fromVal->addr, XtRWidget); +- return (False); ++ XtDisplayStringConversionWarning(dpy, (String) fromVal->addr, XtRWidget); ++ return (False); + } + + /*ARGSUSED*/ + Boolean + XmuCvtWidgetToString(Display *dpy, XrmValuePtr args, Cardinal *num_args, +- XrmValuePtr fromVal, XrmValuePtr toVal, +- XtPointer *data) ++ XrmValuePtr fromVal, XrmValuePtr toVal, XtPointer *data) + { +- static String buffer; +- Cardinal size; +- Widget widget; +- +- widget = *(Widget *)fromVal->addr; +- +- if (widget) +- buffer = XrmQuarkToString(widget->core.xrm_name); +- else +- buffer = "(null)"; +- +- size = strlen(buffer) + 1; +- if (toVal->addr != NULL) +- { +- if (toVal->size < size) +- { +- toVal->size = size; +- return (False); +- } +- strcpy((char *)toVal->addr, buffer); ++ static String buffer; ++ Cardinal size; ++ Widget widget; ++ ++ widget = *(Widget *) fromVal->addr; ++ ++ if (widget) ++ buffer = XrmQuarkToString(widget->core.xrm_name); ++ else ++ buffer = "(null)"; ++ ++ size = strlen(buffer) + 1; ++ if (toVal->addr != NULL) { ++ if (toVal->size < size) { ++ toVal->size = size; ++ return (False); ++ } ++ strcpy((char *) toVal->addr, buffer); ++ } ++ else { ++ toVal->addr = (XPointer) buffer; + } +- else +- toVal->addr = (XPointer)buffer; +- toVal->size = sizeof(String); ++ toVal->size = sizeof(String); + +- return (True); ++ return (True); + } +-- +2.17.1 + diff --git a/SPECS/libXmu.spec b/SPECS/libXmu.spec new file mode 100644 index 0000000..a75ed33 --- /dev/null +++ b/SPECS/libXmu.spec @@ -0,0 +1,150 @@ +# TODO: libXmuu split and/or elf filter emulation + +Summary: X.Org X11 libXmu/libXmuu runtime libraries +Name: libXmu +Version: 1.1.2 +Release: 12%{?dist} +License: MIT +Group: System Environment/Libraries +URL: http://www.x.org + +Source0: https://www.x.org/pub/individual/lib/%{name}-%{version}.tar.bz2 + +Patch1: 0001-ShapeEllipseOrRoundedRectangle-Check-height-AND-widt.patch +Patch2: 0001-Convert-tabs-to-spaces-in-StrToWidg.c.patch +Patch3: 0002-Apply-standard-X.Org-formatting-bracketing-to-StrToW.patch + +BuildRequires: autoconf automake libtool +BuildRequires: xorg-x11-util-macros +BuildRequires: libX11-devel +BuildRequires: libXext-devel +BuildRequires: libXt-devel +BuildRequires: xmlto + +%description +X.Org X11 libXmu/libXmuu runtime libraries + +%package devel +Summary: X.Org X11 libXmu development package +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description devel +X.Org X11 libXmu development package + +%prep +%setup -q +%patch1 -p1 -b .width_height_fix +%patch2 -p1 -b .formatting1 +%patch3 -p1 -b .formatting2 + +%build +autoreconf -v --install --force +%configure --disable-static +make %{?_smp_mflags} + +%install +rm -rf $RPM_BUILD_ROOT + +make install DESTDIR=$RPM_BUILD_ROOT + +# We intentionally don't ship *.la files +rm -f $RPM_BUILD_ROOT%{_libdir}/*.la + +# fixup later +rm -rf $RPM_BUILD_ROOT%{_docdir} + +%ldconfig_post +%ldconfig_postun + +%files +%doc COPYING README ChangeLog +%{_libdir}/libXmu.so.6 +%{_libdir}/libXmu.so.6.2.0 +%{_libdir}/libXmuu.so.1 +%{_libdir}/libXmuu.so.1.0.0 + +%files devel +%dir %{_includedir}/X11/Xmu +%{_includedir}/X11/Xmu/Atoms.h +%{_includedir}/X11/Xmu/CharSet.h +%{_includedir}/X11/Xmu/CloseHook.h +%{_includedir}/X11/Xmu/Converters.h +%{_includedir}/X11/Xmu/CurUtil.h +%{_includedir}/X11/Xmu/CvtCache.h +%{_includedir}/X11/Xmu/DisplayQue.h +%{_includedir}/X11/Xmu/Drawing.h +%{_includedir}/X11/Xmu/Editres.h +%{_includedir}/X11/Xmu/EditresP.h +%{_includedir}/X11/Xmu/Error.h +%{_includedir}/X11/Xmu/ExtAgent.h +%{_includedir}/X11/Xmu/Initer.h +%{_includedir}/X11/Xmu/Lookup.h +%{_includedir}/X11/Xmu/Misc.h +%{_includedir}/X11/Xmu/StdCmap.h +%{_includedir}/X11/Xmu/StdSel.h +%{_includedir}/X11/Xmu/SysUtil.h +%{_includedir}/X11/Xmu/WhitePoint.h +%{_includedir}/X11/Xmu/WidgetNode.h +%{_includedir}/X11/Xmu/WinUtil.h +%{_includedir}/X11/Xmu/Xct.h +%{_includedir}/X11/Xmu/Xmu.h +%{_libdir}/libXmu.so +%{_libdir}/libXmuu.so +%{_libdir}/pkgconfig/xmu.pc +%{_libdir}/pkgconfig/xmuu.pc + +%changelog +* Tue Aug 14 2018 Benjamin Tissoires 1.1.2-12 +- Add upstream fixes detected by covscan (rhbz 1607002) + +* Fri Jul 13 2018 Fedora Release Engineering - 1.1.2-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Jul 05 2018 Adam Jackson - 1.1.2-10 +- Drop useless %%defattr + +* Fri Jun 29 2018 Adam Jackson - 1.1.2-9 +- Use ldconfig scriptlet macros + +* Wed Feb 07 2018 Fedora Release Engineering - 1.1.2-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 1.1.2-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 1.1.2-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Fri Feb 10 2017 Fedora Release Engineering - 1.1.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 1.1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 1.1.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 1.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Thu Jul 24 2014 Benjamin Tissoires 1.1.2-1 +- libXmu 1.1.2 + +* Sat Jun 07 2014 Fedora Release Engineering - 1.1.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 1.1.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Mar 07 2013 Peter Hutterer - 1.1.1-4 +- autoreconf for aarch64 + +* Thu Feb 14 2013 Fedora Release Engineering - 1.1.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Thu Jul 19 2012 Fedora Release Engineering - 1.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Tue Mar 06 2012 Adam Jackson 1.1.1-1 +- libXmu 1.1.1