diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bd361d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/motif-2.3.4-src.tgz diff --git a/.motif.metadata b/.motif.metadata new file mode 100644 index 0000000..1296973 --- /dev/null +++ b/.motif.metadata @@ -0,0 +1 @@ +49ecfe2a0939232ca78ce318d938044e7f751b6d SOURCES/motif-2.3.4-src.tgz diff --git a/SOURCES/motif-2.3.4-Fix-issues-with-Werror-format-security.patch b/SOURCES/motif-2.3.4-Fix-issues-with-Werror-format-security.patch new file mode 100644 index 0000000..f0ff860 --- /dev/null +++ b/SOURCES/motif-2.3.4-Fix-issues-with-Werror-format-security.patch @@ -0,0 +1,815 @@ +From 4783fb4cec8624311bb87b2eb4a2ac94a5c7d849 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Petr=20=C5=A0abata?= +Date: Thu, 8 Jun 2017 12:12:04 +0200 +Subject: [PATCH] Fix issues with -Werror=format-security +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Petr Šabata +--- + lib/Mrm/Mrmhier.c | 4 +- + lib/Mrm/Mrmicon.c | 4 +- + lib/Mrm/Mrmlread.c | 2 +- + lib/Mrm/Mrmwcrw.c | 4 +- + tools/wml/wmldbcreate.c | 2 +- + tools/wml/wmlouth.c | 128 ++++++++++++++++++++++++------------------------ + tools/wml/wmloutkey.c | 10 ++-- + tools/wml/wmloutmm.c | 16 +++--- + tools/wml/wmlresolve.c | 26 +++++----- + 9 files changed, 98 insertions(+), 98 deletions(-) + +diff --git a/lib/Mrm/Mrmhier.c b/lib/Mrm/Mrmhier.c +index 2712742..2a8703c 100644 +--- a/lib/Mrm/Mrmhier.c ++++ b/lib/Mrm/Mrmhier.c +@@ -264,10 +264,10 @@ Urm__OpenHierarchy (MrmCount num_files, + case MrmSUCCESS: + break; + case MrmNOT_VALID: +- sprintf (err_stg, _MrmMMsg_0113); ++ sprintf (err_stg, "%s", _MrmMMsg_0113); + break; + default: +- sprintf (err_stg, _MrmMMsg_0114); ++ sprintf (err_stg, "%s", _MrmMMsg_0114); + break; + } + } +diff --git a/lib/Mrm/Mrmicon.c b/lib/Mrm/Mrmicon.c +index 95d4086..191e2d2 100644 +--- a/lib/Mrm/Mrmicon.c ++++ b/lib/Mrm/Mrmicon.c +@@ -1176,7 +1176,7 @@ Urm__RealizeColorTable (Screen *screen, + } + break; + default: +- sprintf(err_msg, _MrmMMsg_0040); ++ sprintf(err_msg, "%s", _MrmMMsg_0040); + return Urm__UT_Error ("Urm__RelizeColorTable", + err_msg, NULL, NULL, MrmFAILURE) ; + } +@@ -1252,7 +1252,7 @@ Urm__RealizeColorTable (Screen *screen, + break; + default: + result = MrmFAILURE; +- sprintf (err_msg, _MrmMMsg_0040); ++ sprintf (err_msg, "%s", _MrmMMsg_0040); + Urm__UT_Error ("Urm__RelizeColorTable", + err_msg, NULL, NULL, MrmFAILURE) ; + } +diff --git a/lib/Mrm/Mrmlread.c b/lib/Mrm/Mrmlread.c +index c2fd94c..be433a3 100644 +--- a/lib/Mrm/Mrmlread.c ++++ b/lib/Mrm/Mrmlread.c +@@ -698,7 +698,7 @@ MrmFetchColorLiteral (MrmHierarchy hierarchy_id, + XBlackPixelOfScreen(XDefaultScreenOfDisplay(display))); + break; + default: +- sprintf(err_msg, _MrmMMsg_0040); ++ sprintf(err_msg, "%s", _MrmMMsg_0040); + result = Urm__UT_Error ("MrmFetchColorLiteral", + err_msg, NULL, NULL, MrmFAILURE) ; + _MrmAppUnlock(app); +diff --git a/lib/Mrm/Mrmwcrw.c b/lib/Mrm/Mrmwcrw.c +index fe3db52..3c5857f 100644 +--- a/lib/Mrm/Mrmwcrw.c ++++ b/lib/Mrm/Mrmwcrw.c +@@ -1390,7 +1390,7 @@ Urm__CW_CreateArglist (Widget parent, + } + break; + default: +- sprintf (err_msg, _MrmMMsg_0040); ++ sprintf (err_msg, "%s", _MrmMMsg_0040); + result = Urm__UT_Error ("Urm__CW_ConvertValue", + err_msg, NULL, NULL, MrmFAILURE) ; + }; +@@ -2426,7 +2426,7 @@ Urm__CW_ConvertValue (Widget parent, + } + break; + default: +- sprintf(err_msg, _MrmMMsg_0040); ++ sprintf(err_msg, "%s", _MrmMMsg_0040); + return Urm__UT_Error ("Urm__CW_ConvertValue", + err_msg, NULL, NULL, MrmFAILURE) ; + }; +diff --git a/tools/wml/wmldbcreate.c b/tools/wml/wmldbcreate.c +index 07c0a3c..6de585a 100644 +--- a/tools/wml/wmldbcreate.c ++++ b/tools/wml/wmldbcreate.c +@@ -425,7 +425,7 @@ int table_id; + { + fprintf (afile, "%d, ", entry_vec[j]); + } +- fprintf (afile, "\n"); ++ fprintf (afile, "%s", "\n"); + } + } + } +diff --git a/tools/wml/wmlouth.c b/tools/wml/wmlouth.c +index d2330e3..a52843f 100644 +--- a/tools/wml/wmlouth.c ++++ b/tools/wml/wmlouth.c +@@ -225,12 +225,12 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymGen.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Write the sym_k..._object literals + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr; +@@ -244,7 +244,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Define the sym_k_..._reason literals + */ +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[ndx].objptr; +@@ -258,7 +258,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Define the sym_k_..._arg literals + */ +-fprintf (outfil, canned4); ++fprintf (outfil, "%s", canned4); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr; +@@ -272,7 +272,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Define the sym_k_..._enumset structs and literals + */ +-fprintf (outfil, canned5); ++fprintf (outfil, "%s", canned5); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr; +@@ -286,7 +286,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Define the sym_k_..._enumval literals + */ +-fprintf (outfil, canned6); ++fprintf (outfil, "%s", canned6); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + enumvalobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr; +@@ -301,7 +301,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + * Define the sym_k_..._charsize literals + * Define the sym_k_..._charset literals + */ +-fprintf (outfil, canned7); ++fprintf (outfil, "%s", canned7); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + charsetobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr; +@@ -315,7 +315,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Define the sym_k_..._child literals + */ +-fprintf (outfil, canned8); ++fprintf (outfil, "%s", canned8); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr; +@@ -379,12 +379,12 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymChCL.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Create table entries, similar to writing sym_k... + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[ndx].objptr; +@@ -392,7 +392,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + fprintf (outfil, " sym_k_%s_object,\n", + classobj->tkname); + } +-fprintf (outfil, canned1a); ++fprintf (outfil, "%s", canned1a); + + /* + * close the output file +@@ -446,12 +446,12 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymArTy.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Create table entries, similar to writing sym_k... + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr; +@@ -459,7 +459,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + fprintf (outfil, " sym_k_%s_value,\n", + datobj->tkname); + } +-fprintf (outfil, canned1a); ++fprintf (outfil, "%s", canned1a); + + /* + * close the output file +@@ -509,19 +509,19 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymRArg.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Create table entries, similar to writing sym_k... + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr; + fprintf (outfil, " %d,\n", + resobj->related_code); + } +-fprintf (outfil, canned1a); ++fprintf (outfil, "%s", canned1a); + + /* + * close the output file +@@ -621,12 +621,12 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilUrmClas.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Write entries for widgets + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr; +@@ -637,7 +637,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + else + fprintf (outfil, " \"%s\",\t\n", synobj->convfunc); + } +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + + /* + * Write entries for gadget variants of widget classes +@@ -661,7 +661,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + synobj->name); + } + } +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * Write entries for non-dialog widgets +@@ -685,7 +685,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + synobj->name); + } + } +-fprintf (outfil, canned4); ++fprintf (outfil, "%s", canned4); + + /* + * Write entries for the resource a widget's controls map to +@@ -701,7 +701,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + else + fprintf (outfil, " sym_k_%s_arg,\n", mapresobj->tkname); + } +-fprintf (outfil, canned5); ++fprintf (outfil, "%s", canned5); + + /* + * Write entries for arguments +@@ -714,7 +714,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + fprintf (outfil, " %s,\n", + synres->resliteral); + } +-fprintf (outfil, canned6); ++fprintf (outfil, "%s", canned6); + + /* + * Write entries for reasons +@@ -727,7 +727,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + fprintf (outfil, " %s,\n", + synres->resliteral); + } +-fprintf (outfil, canned7); ++fprintf (outfil, "%s", canned7); + + /* + * close the output file +@@ -781,13 +781,13 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilConst.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Process the arguments in code order. We start with 1, and write out + * the mask after processing 8 codes. + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + strcpy (maskbuf, "0"); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { +@@ -805,7 +805,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + } + if ( bitno != 8 ) + fprintf (outfil, "%s", maskbuf); +-fprintf (outfil, canned1a); ++fprintf (outfil, "%s", canned1a); + + /* + * close the output file +@@ -878,8 +878,8 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymReas.h"); + return; + } +-fprintf (outfil, canned_warn); +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned_warn); ++fprintf (outfil, "%s", canned1); + + /* + * Generate the bit vectors for each class. Outer loop on the reason code, +@@ -919,19 +919,19 @@ for ( resndx=0 ; resndxcnt ; resndx++ ) + if ( itemno != 0 ) + fprintf (outfil, "%s 0};\n", maskbuf); + else +- fprintf (outfil, "};\n"); ++ fprintf (outfil, "%s", "};\n"); + } + + /* + * Write the vector of vectors. + */ +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + for ( resndx=0 ; resndxcnt ; resndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_reason_ptr->hvec[resndx].objptr; + fprintf (outfil, " reason_class_vec%d,\n", resobj->sym_code); + } +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * close the output file +@@ -1004,8 +1004,8 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymArTa.h"); + return; + } +-fprintf (outfil, canned_warn); +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned_warn); ++fprintf (outfil, "%s", canned1); + + /* + * Generate the bit vectors for each class. Outer loop on the argument code, +@@ -1045,19 +1045,19 @@ for ( resndx=0 ; resndxcnt ; resndx++ ) + if ( itemno != 0 ) + fprintf (outfil, "%s 0};\n", maskbuf); + else +- fprintf (outfil, "};\n"); ++ fprintf (outfil, "%s", "};\n"); + } + + /* + * Write the vector of vectors. + */ +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + for ( resndx=0 ; resndxcnt ; resndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[resndx].objptr; + fprintf (outfil, " arg_class_vec%d,\n", resobj->sym_code); + } +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * close the output file +@@ -1129,8 +1129,8 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymChTa.h"); + return; + } +-fprintf (outfil, canned_warn); +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned_warn); ++fprintf (outfil, "%s", canned1); + + /* + * Generate the bit vectors for each class. Outer loop on the child code, +@@ -1168,19 +1168,19 @@ for ( childndx=0 ; childndxcnt ; childndx++ ) + if ( itemno != 0 ) + fprintf (outfil, "%s 0};\n", maskbuf); + else +- fprintf (outfil, "};\n"); ++ fprintf (outfil, "%s", "};\n"); + } + + /* + * Write the vector of vectors. + */ +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + for ( childndx=0 ; childndxcnt ; childndx++ ) + { + childobj = (WmlChildDefPtr) wml_obj_child_ptr->hvec[childndx].objptr; + fprintf (outfil, " child_class_vec%d,\n", childobj->sym_code); + } +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * close the output file +@@ -1251,8 +1251,8 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymCtl.h"); + return; + } +-fprintf (outfil, canned_warn); +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned_warn); ++fprintf (outfil, "%s", canned1); + + /* + * Generate the bit vectors for each class. Outer loop on the class code, +@@ -1290,19 +1290,19 @@ for ( ctlndx=0 ; ctlndxcnt ; ctlndx++ ) + if ( itemno != 0 ) + fprintf (outfil, "%s 0};\n", maskbuf); + else +- fprintf (outfil, "};\n"); ++ fprintf (outfil, "%s", "};\n"); + } + + /* + * Write the vector of vectors. + */ +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + for ( ctlndx=0 ; ctlndxcnt ; ctlndx++ ) + { + clsobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ctlndx].objptr; + fprintf (outfil, " object_class_vec%d,\n", clsobj->sym_code); + } +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * close the output file +@@ -1438,7 +1438,7 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymNam.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Write entries for widgets +@@ -1517,7 +1517,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + fprintf (outfil, " \"%s\",\n", + synch->name); + } +-fprintf (outfil, canned7); ++fprintf (outfil, "%s", canned7); + + /* + * close the output file +@@ -1621,12 +1621,12 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymEnum.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Generate the enumeration value vectors for each enumeration set. + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr; +@@ -1637,13 +1637,13 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + fprintf (outfil, " %d,\n", + evobj->sym_code); + } +- fprintf (outfil, " };\n"); ++ fprintf (outfil, "%s", " };\n"); + } + + /* + * Generate the enumeration set tables + */ +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + enumsetobj = (WmlEnumSetDefPtr) wml_obj_enumset_ptr->hvec[ndx].objptr; +@@ -1655,7 +1655,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Create enumset table entries for arguments, similar to writing sym_k... + */ +-fprintf (outfil, canned4); ++fprintf (outfil, "%s", canned4); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + resobj = (WmlResourceDefPtr) wml_obj_arg_ptr->hvec[ndx].objptr; +@@ -1669,13 +1669,13 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Create the enumval values table. + */ +-fprintf (outfil, canned5); ++fprintf (outfil, "%s", canned5); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + evobj = (WmlEnumValueDefPtr) wml_obj_enumval_ptr->hvec[ndx].objptr; + fprintf (outfil, " %s,\n", evobj->syndef->enumlit); + } +-fprintf (outfil, canned5a); ++fprintf (outfil, "%s", canned5a); + + /* + * close the output file +@@ -1813,12 +1813,12 @@ if ( outfil == (FILE *) NULL ) + printf ("\nCouldn't open UilSymCSet.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Generate the standards name table + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr; +@@ -1836,7 +1836,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Generate the writing direction table + */ +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr; +@@ -1858,7 +1858,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Generate the parsing direction table + */ +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr; +@@ -1880,7 +1880,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Generate the character size table + */ +-fprintf (outfil, canned4); ++fprintf (outfil, "%s", canned4); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr; +@@ -1906,7 +1906,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Generate the $LANG name recognition table + */ +-fprintf (outfil, canned5); ++fprintf (outfil, "%s", canned5); + lang_max = 0; + for ( ndx=0 ; ndxcnt ; ndx++ ) + { +@@ -1936,7 +1936,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * Generate the $LANG code lookup table, in upper case + */ +-fprintf (outfil, canned6); ++fprintf (outfil, "%s", canned6); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + csobj = (WmlCharSetDefPtr) wml_obj_charset_ptr->hvec[ndx].objptr; +diff --git a/tools/wml/wmloutkey.c b/tools/wml/wmloutkey.c +index af42f22..4c14728 100644 +--- a/tools/wml/wmloutkey.c ++++ b/tools/wml/wmloutkey.c +@@ -574,16 +574,16 @@ if ( outfil == NULL ) + printf ("\nCouldn't open UilKeyTab.h"); + return; + } +-fprintf (outfil, canned_warn); ++fprintf (outfil, "%s", canned_warn); + + /* + * Print the case sensitive and insensitive tables + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + wmlOutputUilKeyTabBody (outfil, wml_tok_sens_ptr, &maxlen, &maxkey); + fprintf (outfil, canned2, maxlen, maxkey); + wmlOutputUilKeyTabBody (outfil, wml_tok_insens_ptr, &maxlen, &maxkey); +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * close the output file +@@ -812,8 +812,8 @@ if ( outfil == NULL ) + printf ("\nCouldn't open UilTokName.h"); + return; + } +-fprintf (outfil, canned_warn); +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned_warn); ++fprintf (outfil, "%s", canned1); + + /* + * Print the token name entries +diff --git a/tools/wml/wmloutmm.c b/tools/wml/wmloutmm.c +index 84a97bb..dc8ec09 100644 +--- a/tools/wml/wmloutmm.c ++++ b/tools/wml/wmloutmm.c +@@ -209,9 +209,9 @@ int ctlndx; /* to access ordered vector */ + /* + * Write out header information + */ +-fprintf (outfil, canned1); ++fprintf (outfil, "%s", canned1); + fprintf (outfil, "%s\n", name); +-fprintf (outfil, canned2); ++fprintf (outfil, "%s", canned2); + + /* + * Alphabetize the controls, reason, and argument lists +@@ -264,7 +264,7 @@ while ( ctlref != NULL ) + rsnndx = 0; + ctlndx = 0; + if ( mm_ctl_ptr->cnt == 0 ) +- fprintf (outfil, "No children are supported"); ++ fprintf (outfil, "%s", "No children are supported"); + while ( rsnndxcnt || ctlndxcnt ) + { + if ( ctlndx < mm_ctl_ptr->cnt ) +@@ -275,7 +275,7 @@ while ( rsnndxcnt || ctlndxcnt ) + ctlndx += 1; + } + else +- fprintf (outfil, "@"); ++ fprintf (outfil, "%s", "@"); + + if ( rsnndx < mm_rsn_ptr->cnt ) + { +@@ -285,9 +285,9 @@ while ( rsnndxcnt || ctlndxcnt ) + rsnndx += 1; + } + else +- fprintf (outfil, "\n"); ++ fprintf (outfil, "%s", "\n"); + } +-fprintf (outfil, canned3); ++fprintf (outfil, "%s", canned3); + + /* + * Write out the argument table +@@ -319,11 +319,11 @@ while ( argndx < mm_arg_ptr->cnt ) + argref->act_resource->syndef->dflt); + } + else +- fprintf (outfil, " \n"); ++ fprintf (outfil, "%s", " \n"); + } + argndx += 1; + } +-fprintf (outfil, canned4); ++fprintf (outfil, "%s", canned4); + + } + +diff --git a/tools/wml/wmlresolve.c b/tools/wml/wmlresolve.c +index 464ef29..3b8642c 100644 +--- a/tools/wml/wmlresolve.c ++++ b/tools/wml/wmlresolve.c +@@ -1340,7 +1340,7 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + /* + * close the output file + */ +-fprintf (outfil, "\n\n"); ++fprintf (outfil, "%s", "\n\n"); + printf ("\nCreated report file wml.report"); + fclose (outfil); + +@@ -1369,14 +1369,14 @@ fprintf (outfil, "\n\n\nClass %s:", synobj->name); + switch ( synobj->type ) + { + case WmlClassTypeMetaclass: +- fprintf (outfil, "\n Type: Metaclass\t"); ++ fprintf (outfil, "%s", "\n Type: Metaclass\t"); + if ( synobj->superclass != NULL ) + fprintf (outfil, "Superclass: %s\t", synobj->superclass); + if ( synobj->parentclass != NULL ) + fprintf (outfil, "Parentclass: %s\t", synobj->parentclass); + break; + case WmlClassTypeWidget: +- fprintf (outfil, "\n Type: Widget\t"); ++ fprintf (outfil, "%s", "\n Type: Widget\t"); + if ( synobj->superclass != NULL ) + fprintf (outfil, "Superclass: %s\t", synobj->superclass); + if ( synobj->parentclass != NULL ) +@@ -1388,7 +1388,7 @@ switch ( synobj->type ) + fprintf (outfil, "Convenience function: %s", synobj->convfunc); + break; + case WmlClassTypeGadget: +- fprintf (outfil, "\n Type: Gadget\t"); ++ fprintf (outfil, "%s", "\n Type: Gadget\t"); + if ( synobj->superclass != NULL ) + fprintf (outfil, "Superclass: %s\t", synobj->superclass); + if ( synobj->parentclass != NULL ) +@@ -1414,19 +1414,19 @@ if ( clsobj->nondialog != NULL ) + * is intended to match the way resources are printed in the toolkit manual, + * so that checking is as easy as possible. + */ +-fprintf (outfil, "\n Arguments:"); ++fprintf (outfil, "%s", "\n Arguments:"); + wmlResolvePrintClassArgs (outfil, clsobj); + + /* + * Print the reasons valid in the class + */ +-fprintf (outfil, "\n Reasons:"); ++fprintf (outfil, "%s", "\n Reasons:"); + wmlResolvePrintClassReasons (outfil, clsobj); + + /* + * Print the controls valid in the class + */ +-fprintf (outfil, "\n Controls:"); ++fprintf (outfil, "%s", "\n Controls:"); + for ( ndx=0 ; ndxcnt ; ndx++ ) + { + ctrlobj = (WmlClassDefPtr) wml_obj_class_ptr->hvec[ndx].objptr; +@@ -1512,10 +1512,10 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + switch ( resref->exclude ) + { + case WmlAttributeTrue: +- fprintf (outfil, "\n\tExclude = True;"); ++ fprintf (outfil, "%s", "\n\tExclude = True;"); + break; + case WmlAttributeFalse: +- fprintf (outfil, "\n\tExclude = False;"); ++ fprintf (outfil, "%s", "\n\tExclude = False;"); + break; + } + if ( resref->dflt != NULL ) +@@ -1558,10 +1558,10 @@ if ( constr ) + switch ( resref->exclude ) + { + case WmlAttributeTrue: +- fprintf (outfil, "\n\tExclude = True;"); ++ fprintf (outfil, "%s", "\n\tExclude = True;"); + break; + case WmlAttributeFalse: +- fprintf (outfil, "\n\tExclude = False;"); ++ fprintf (outfil, "%s", "\n\tExclude = False;"); + break; + } + if ( resref->dflt != NULL ) +@@ -1632,10 +1632,10 @@ for ( ndx=0 ; ndxcnt ; ndx++ ) + switch ( resref->exclude ) + { + case WmlAttributeTrue: +- fprintf (outfil, "\n\tExclude = True;"); ++ fprintf (outfil, "%s", "\n\tExclude = True;"); + break; + case WmlAttributeFalse: +- fprintf (outfil, "\n\tExclude = False;"); ++ fprintf (outfil, "%s", "\n\tExclude = False;"); + break; + } + resobj->ref_ptr = NULL; +-- +2.13.0 + diff --git a/SOURCES/motif-2.3.4-bindings.patch b/SOURCES/motif-2.3.4-bindings.patch new file mode 100644 index 0000000..baaa573 --- /dev/null +++ b/SOURCES/motif-2.3.4-bindings.patch @@ -0,0 +1,36 @@ +diff -up openmotif-2.3.3/configure.ac.bindings openmotif-2.3.3/configure.ac +--- openmotif-2.3.3/configure.ac.bindings 2009-10-27 17:10:23.000000000 +0100 ++++ openmotif-2.3.3/configure.ac 2010-03-19 11:12:39.000000000 +0100 +@@ -185,7 +185,7 @@ AC_SUBST(MWMRCDIR) + INCDIR="${includedir}/X11" + AC_SUBST(INCDIR) + +-XMBINDDIR_FALLBACK="${libdir}/X11/bindings" ++XMBINDDIR_FALLBACK="${datadir}/X11/bindings" + AC_SUBST(XMBINDDIR_FALLBACK) + + RM="rm -f" +diff -up openmotif-2.3.3/doc/man/man3/VirtualBindings.3.bindings openmotif-2.3.3/doc/man/man3/VirtualBindings.3 +--- openmotif-2.3.3/doc/man/man3/VirtualBindings.3.bindings 2005-07-20 13:47:21.000000000 +0200 ++++ openmotif-2.3.3/doc/man/man3/VirtualBindings.3 2010-03-19 11:11:42.000000000 +0100 +@@ -90,7 +90,7 @@ bindings contained in that file\&. + If it has found no bindings, Motif next looks for the file + \fBxmbind\&.alias\fP in the directory specified by the environment + variable \fBXMBINDDIR\fP, if \fBXMBINDDIR\fP is set, or in the directory +-\fB/usr/lib/Xm/bindings\fP if \fBXMBINDDIR\fP is not set\&. ++\fB/usr/share/X11/bindings\fP if \fBXMBINDDIR\fP is not set\&. + If this file exists Motif searches it for a pathname associated with the + vendor string or with the vendor string and vendor release\&. + If it finds such a pathname and if that file exists, Motif loads the +diff -up openmotif-2.3.3/lib/Xm/XmosP.h.bindings openmotif-2.3.3/lib/Xm/XmosP.h +--- openmotif-2.3.3/lib/Xm/XmosP.h.bindings 2002-06-17 22:36:30.000000000 +0200 ++++ openmotif-2.3.3/lib/Xm/XmosP.h 2010-03-19 11:11:42.000000000 +0100 +@@ -188,7 +188,7 @@ extern "C" { + + #define XMBINDDIR "XMBINDDIR" + #ifndef XMBINDDIR_FALLBACK +-#define XMBINDDIR_FALLBACK "/usr/lib/Xm/bindings" ++#define XMBINDDIR_FALLBACK "/usr/share/X11/bindings" + #endif + #define XMBINDFILE "xmbind.alias" + #define MOTIFBIND ".motifbind" diff --git a/SOURCES/motif-2.3.4-mwmrc_dir.patch b/SOURCES/motif-2.3.4-mwmrc_dir.patch new file mode 100644 index 0000000..e6a42dc --- /dev/null +++ b/SOURCES/motif-2.3.4-mwmrc_dir.patch @@ -0,0 +1,93 @@ +diff -up openmotif-2.3.3/clients/mwm/WmResParse.c.mwmrc_dir openmotif-2.3.3/clients/mwm/WmResParse.c +--- openmotif-2.3.3/clients/mwm/WmResParse.c.mwmrc_dir 2009-06-22 23:51:51.000000000 +0200 ++++ openmotif-2.3.3/clients/mwm/WmResParse.c 2010-03-23 13:37:03.000000000 +0100 +@@ -2403,7 +2403,7 @@ FILE *FopenConfigFile (void) + #endif /* PANELIST */ + + #ifndef MWMRCDIR +-#define MWMRCDIR "/usr/lib/X11" ++#define MWMRCDIR "/etc/X11/mwm" + #endif + if (LANG != NULL) + { +diff -up openmotif-2.3.3/configure.ac.mwmrc_dir openmotif-2.3.3/configure.ac +--- openmotif-2.3.3/configure.ac.mwmrc_dir 2009-10-27 17:10:23.000000000 +0100 ++++ openmotif-2.3.3/configure.ac 2010-03-23 13:38:33.000000000 +0100 +@@ -179,7 +179,7 @@ AC_SUBST(CDE_CONFIGURATION_TOP) + LIBDIR="${libdir}/X11" + AC_SUBST(LIBDIR) + +-MWMRCDIR="${libdir}/X11" ++MWMRCDIR="/etc/X11/mwm" + AC_SUBST(MWMRCDIR) + + INCDIR="${includedir}/X11" +diff -up openmotif-2.3.3/doc/man/man1/mwm.1.mwmrc_dir openmotif-2.3.3/doc/man/man1/mwm.1 +--- openmotif-2.3.3/doc/man/man1/mwm.1.mwmrc_dir 2002-01-05 16:21:11.000000000 +0100 ++++ openmotif-2.3.3/doc/man/man1/mwm.1 2010-03-23 13:37:03.000000000 +0100 +@@ -678,8 +678,8 @@ is set, \fBmwm\fP looks for \fI$HOME/$LA + \fB$HOME\fP/\fBconfigFile\fP\&. If the \fIconfigFile\fP pathname does not begin with "~/" or "/", \fBmwm\fP considers it to be relative to the current working directory\&. If + the \fIconfigFile\fP resource is not specified + or if that file does not exist, \fBmwm\fP uses several default +-paths to find a configuration file\&. The order of the search is shown below: \fB/usr/X11R6/lib/X11/$LANG/system\&.mwmrc\fP\(dg +-\fB/usr/X11R6/lib/X11/system\&.mwmrc\fP\(dg Paths marked with \&'\(dg\&' are ++paths to find a configuration file\&. The order of the search is shown below: \fB/etc/X11/mwm/$LANG/system\&.mwmrc\fP\(dg ++\fB/etc/X11/mwm/system\&.mwmrc\fP\(dg Paths marked with \&'\(dg\&' are + implementation dependent\&. + .IP "\fIdeiconifyKeyFocus\fP\ (class\ \fIDeiconifyKeyFocus\fP)" 10 + This resource applies only when the keyboard input focus policy is explicit\&. +@@ -1344,9 +1344,9 @@ the shell to use when executing commands + function\&. + .SS "Files" + .PP +-\fB/usr/X11R6/lib/X11/$LANG/system\&.mwmrc\fP ++\fB/etc/X11/mwm/$LANG/system\&.mwmrc\fP + .PP +-\fB/usr/X11R6/lib/X11/system\&.mwmrc\fP ++\fB/etc/X11/mwm/system\&.mwmrc\fP + .PP + \fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP + .PP +diff -up openmotif-2.3.3/doc/man/man4/mwmrc.4.mwmrc_dir openmotif-2.3.3/doc/man/man4/mwmrc.4 +--- openmotif-2.3.3/doc/man/man4/mwmrc.4.mwmrc_dir 2002-01-05 16:21:12.000000000 +0100 ++++ openmotif-2.3.3/doc/man/man4/mwmrc.4 2010-03-23 13:37:03.000000000 +0100 +@@ -57,7 +57,7 @@ file that controls much of the behavior + It contains descriptions of resources that cannot easily be + written using standard X Window System, Version 11 resource syntax\&. The resource + description file contains entries that are referred to by X resources in +-defaults files (for example, \fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP) ++defaults files (for example, \fB/usr/share/X11/app-defaults/Mwm\fP) + or in the \fBRESOURCE_MANAGER\fP property on the + root window\&. For example, the resource description file enables you to specify + different types of window menus; however, an X resource is used to specify +@@ -72,8 +72,8 @@ on a per-user basis: + .nf + \f(CW$HOME/$LANG/\&.mwmrc + $HOME/\&.mwmrc +-/usr/X11R6/lib/X11/$LANG/system\&.mwmrc +-/usr/X11R6/lib/X11/system\&.mwmrc\fR ++/etc/X11/mwm/$LANG/system\&.mwmrc ++/etc/X11/mwm/system\&.mwmrc\fR + .fi + .PP + .PP +@@ -84,7 +84,7 @@ resource\&. The following shows how a di + be specified from the command line: + .PP + .nf +-\f(CW/usr/X11R6/bin/X11/mwm -xrm "mwm*configFile: mymwmrc"\fR ++\f(CW/usr/bin/mwm -xrm "mwm*configFile: mymwmrc"\fR + .fi + .PP + .SS "Resource Types" +@@ -626,8 +626,8 @@ is not what you expect\&. + .nf + \fB$HOME/$LANG/\&.mwmrc + $HOME/\&.mwmrc +-/usr/X11R6/lib/X11/$LANG/system\&.mwmrc +-/usr/X11R6/lib/X11/system\&.mwmrc\fP ++/etc/X11/mwm/$LANG/system\&.mwmrc ++/etc/X11/mwm/system\&.mwmrc\fP + .fi + .SH "RELATED INFORMATION" + .PP diff --git a/SOURCES/motif-2.3.4-no_demos.patch b/SOURCES/motif-2.3.4-no_demos.patch new file mode 100644 index 0000000..bf1b926 --- /dev/null +++ b/SOURCES/motif-2.3.4-no_demos.patch @@ -0,0 +1,13 @@ +diff -up openmotif-2.3.3/Makefile.am.no_demos openmotif-2.3.3/Makefile.am +--- openmotif-2.3.3/Makefile.am.no_demos 2008-09-19 16:38:05.000000000 +0200 ++++ openmotif-2.3.3/Makefile.am 2010-03-23 13:53:13.000000000 +0100 +@@ -29,7 +29,7 @@ SUBDIRS = bindings bitmaps \ + include \ + tools \ + clients \ +- doc \ +- demos ++ doc ++ + AUTOMAKE_OPTIONS = 1.4 + ACLOCAL_AMFLAGS = -I . diff --git a/SOURCES/openMotif-2.2.3-uil_lib.patch b/SOURCES/openMotif-2.2.3-uil_lib.patch new file mode 100644 index 0000000..fc3a0ce --- /dev/null +++ b/SOURCES/openMotif-2.2.3-uil_lib.patch @@ -0,0 +1,20 @@ +--- openmotif/clients/uil/Makefile.am.uil_lib 2003-12-16 13:41:53.000000000 +0100 ++++ openmotif/clients/uil/Makefile.am 2003-12-16 13:41:55.000000000 +0100 +@@ -13,7 +13,7 @@ + + libUil_la_LIBADD = UilParser.lo ../../lib/Mrm/libMrm.la ../../lib/Xm/libXm.la + +-uil_LDADD = ../../lib/Mrm/libMrm.la ../../lib/Xm/libXm.la ++uil_LDADD = libUil.la ../../lib/Mrm/libMrm.la ../../lib/Xm/libXm.la + + INCLUDES = -DINCDIR=\"@INCDIR@\" \ + -DLIBDIR=\"@LIBDIR@\" \ +@@ -42,7 +42,7 @@ + UilLstMac.c UilSemVal.c UilSemCSet.c UilDB.c + + SRCS = $(COMMON_SRC) +-SRCS2 = $(COMMON_SRC) UilMain.c ++SRCS2 = UilMain.c + + HEADERS_1 = Uil.h UilSymGl.h UilSymDef.h \ + UilDef.h XmAppl.uil diff --git a/SOURCES/openMotif-2.3.0-no_X11R6.patch b/SOURCES/openMotif-2.3.0-no_X11R6.patch new file mode 100644 index 0000000..24d1c56 --- /dev/null +++ b/SOURCES/openMotif-2.3.0-no_X11R6.patch @@ -0,0 +1,47 @@ +--- openmotif-2.3.0/doc/man/man1/mwm.1.no_X11R6 2005-12-09 15:08:21.000000000 +0100 ++++ openmotif-2.3.0/doc/man/man1/mwm.1 2005-12-09 15:09:06.000000000 +0100 +@@ -366,7 +366,7 @@ + database\&. This database is built from the following sources\&. They are listed + in order of precedence, low to high: + .PP +-\fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP ++\fB/usr/share/X11/app-defaults/Mwm\fP + .PP + \fB$HOME/Mwm\fP + .PP +@@ -376,7 +376,7 @@ + .PP + \fBmwm\fP command line options + .PP +-The file names \fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP and \fB$HOME/Mwm\fP represent customary locations for these files\&. The actual ++The file names \fB/usr/share/X11/app-defaults/Mwm\fP and \fB$HOME/Mwm\fP represent customary locations for these files\&. The actual + location of the system-wide class resource file may depend on the \fBXFILESEARCHPATH\fP environment variable and the + current language environment\&. The actual location of the user-specific class + resource file may depend on the \fBXUSERFILESEARCHPATH\fP and \fBXAPPLRESDIR\fP +@@ -595,7 +595,7 @@ + NameClassValue TypeDefault + autoKeyFocusAutoKeyFocusT/FT + autoRaiseDelayAutoRaiseDelaymillisec500 +-bitmap-Bitmap-directory/usr/X11R6/include- ++bitmap-Bitmap-directory/usr/include- + DirectoryDirectory/X11/bitmaps + clientAutoPlaceClientAutoPlaceT/FT + colormapFocus-ColormapFocus-stringkeyboard +@@ -650,7 +650,7 @@ + This resource identifies a directory to be searched for bitmaps referenced + by \fBmwm\fP resources\&. This directory is searched if a bitmap + is specified without an absolute pathname\&. The default value for this resource +-is \fB/usr/X11R6/include/X11/bitmaps\fP\&. The directory \fB/usr/X11R6/include/X11/bitmaps\fP ++is \fB/usr/include/X11/bitmaps\fP\&. The directory \fB/usr/include/X11/bitmaps\fP + represents the customary locations for this directory\&. The actual + location of this directory may vary on some systems\&. If the bitmap is not + found in the specified directory, \fBXBMLANGPATH\fP is searched\&. +@@ -1348,7 +1348,7 @@ + .PP + \fB/etc/X11/mwm/system\&.mwmrc\fP + .PP +-\fB/usr/X11R6/lib/X11/app-defaults/Mwm\fP ++\fB/usr/share/X11/app-defaults/Mwm\fP + .PP + \fB$HOME/Mwm\fP + .PP diff --git a/SOURCES/openMotif-2.3.0-rgbtxt.patch b/SOURCES/openMotif-2.3.0-rgbtxt.patch new file mode 100644 index 0000000..6c5ff15 --- /dev/null +++ b/SOURCES/openMotif-2.3.0-rgbtxt.patch @@ -0,0 +1,22 @@ +--- openmotif-2.3.0/lib/Xm/ColorS.c.rgbtxt 2004-07-07 14:24:07.000000000 +0200 ++++ openmotif-2.3.0/lib/Xm/ColorS.c 2005-12-02 13:26:11.000000000 +0100 +@@ -131,7 +131,7 @@ + { + XmNrgbFile, XmCString, XmRString, + sizeof(String), XtOffsetOf(XmColorSelectorRec, cs.rgb_file), +- XmRString, (XtPointer) "/usr/lib/X11/rgb.txt" ++ XmRString, (XtPointer) "/usr/share/X11/rgb.txt" + }, + #endif + { +--- openmotif-2.3.0/doc/man/man3/XmColorSelector.3.rgbtxt 2002-01-17 21:32:48.000000000 +0100 ++++ openmotif-2.3.0/doc/man/man3/XmColorSelector.3 2005-12-02 13:25:26.000000000 +0100 +@@ -34,7 +34,7 @@ + noCellError%NoCellError%XmString%"No Color Cell + %%% Available" + redSliderLabel%SliderLabel%XmString%"Red" +-rgbFile%String%String%/usr/lib/X11/rgb.txt ++rgbFile%String%String%/usr/share/X11/rgb.txt + sliderTogLabel%TogLabel%XmString%"Color Sliders" + .TE + .PP diff --git a/SOURCES/xmbind b/SOURCES/xmbind new file mode 100644 index 0000000..832ce12 --- /dev/null +++ b/SOURCES/xmbind @@ -0,0 +1,6 @@ +#! /bin/sh + +if [ -x /usr/bin/xmbind ] ; then + /usr/bin/xmbind +fi + diff --git a/SPECS/motif.spec b/SPECS/motif.spec new file mode 100644 index 0000000..5a167c2 --- /dev/null +++ b/SPECS/motif.spec @@ -0,0 +1,540 @@ +Summary: Run-time libraries and programs +Name: motif +Version: 2.3.4 +Release: 25%{?dist} +License: LGPLv2+ +Source: http://downloads.sf.net/motif/motif-%{version}-src.tgz +Source1: xmbind +URL: http://www.motifzone.net/ +Obsoletes: openmotif < 2.3.4 +Provides: openmotif = %{version}-%{release} +Requires: xorg-x11-xbitmaps +Requires: xorg-x11-xinit + +BuildRequires: make +BuildRequires: automake, libtool, autoconf, flex +# flex static libs have been part of flex for RHEL <= 6 and Fedora <= 12 +%if 0%{?fedora} > 12 || 0%{?rhel} > 6 +BuildRequires: flex-static +%endif +BuildRequires: byacc, pkgconfig +BuildRequires: libjpeg-devel libpng-devel +BuildRequires: libXft-devel libXmu-devel libXp-devel libXt-devel libXext-devel +BuildRequires: xorg-x11-xbitmaps +BuildRequires: perl-interpreter + +Patch22: motif-2.3.4-no_demos.patch +Patch23: openMotif-2.2.3-uil_lib.patch +Patch43: openMotif-2.3.0-rgbtxt.patch +Patch45: motif-2.3.4-mwmrc_dir.patch +Patch46: motif-2.3.4-bindings.patch +Patch47: openMotif-2.3.0-no_X11R6.patch +# FTBFS #1448819 +Patch48: motif-2.3.4-Fix-issues-with-Werror-format-security.patch + +Conflicts: lesstif <= 0.92.32-6 + +%description +This is the Motif %{version} run-time environment. It includes the +Motif shared libraries, needed to run applications which are dynamically +linked against Motif and the Motif Window Manager mwm. + +%package devel +Summary: Development libraries and header files +Conflicts: lesstif-devel <= 0.92.32-6 +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: libjpeg-devel%{?_isa} libpng-devel%{?_isa} +Requires: libXft-devel%{?_isa} libXmu-devel%{?_isa} libXp-devel%{?_isa} +Requires: libXt-devel%{?_isa} libXext-devel%{?_isa} +Obsoletes: openmotif-devel < 2.3.4 +Provides: openmotif-devel = %{version}-%{release} + +%description devel +This is the Motif %{version} development environment. It includes the +header files and also static libraries necessary to build Motif applications. + +%package static +Summary: Static libraries +Conflicts: lesstif-devel <= 0.92.32-6 +Requires: %{name}-devel%{?_isa} = %{version}-%{release} + +%description static +This package contains the static Motif libraries. + +%prep +%setup -q +%patch22 -p1 -b .no_demos +%patch23 -p1 -b .uil_lib +%patch43 -p1 -b .rgbtxt +%patch45 -p1 -b .mwmrc_dir +%patch46 -p1 -b .bindings +%patch47 -p1 -b .no_X11R6 +%patch48 -p1 -b .format-security + +%build +./autogen.sh +%configure --enable-static --enable-xft --enable-jpeg --enable-png + +make clean %{?_smp_mflags} +make -C include +make %{?_smp_mflags} + +%install +make DESTDIR=%{buildroot} install + +install -d %{buildroot}/etc/X11/xinit/xinitrc.d +install -m 755 %{SOURCE1} %{buildroot}/etc/X11/xinit/xinitrc.d/xmbind.sh + +rm -f %{buildroot}%{_libdir}/*.la + +%ldconfig_scriptlets + +%files +%doc COPYING README RELEASE RELNOTES +/etc/X11/xinit/xinitrc.d/xmbind.sh +%dir /etc/X11/mwm +%config(noreplace) /etc/X11/mwm/system.mwmrc +%{_bindir}/mwm +%{_bindir}/xmbind +%{_includedir}/X11/bitmaps/* +%{_libdir}/libMrm.so.* +%{_libdir}/libUil.so.* +%{_libdir}/libXm.so.* +%{_datadir}/X11/bindings +%{_mandir}/man1/mwm* +%{_mandir}/man1/xmbind* +%{_mandir}/man4/mwmrc* + +%files devel +%{_bindir}/uil +%{_includedir}/Mrm +%{_includedir}/Xm +%{_includedir}/uil +%{_libdir}/lib*.so +%{_mandir}/man1/uil.1* +%{_mandir}/man3/* +%{_mandir}/man5/* + +%files static +%{_libdir}/lib*.a + +%changelog +* Thu Feb 03 2022 Adam Jackson - 2.3.4-25 +- Fix invoking autogen/configure so the default CFLAGS actually get applied + Resolves: rhbz#2044881 + +* Mon Aug 09 2021 Mohan Boddu - 2.3.4-24 +- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags + Related: rhbz#1991688 + +* Fri Apr 16 2021 Mohan Boddu - 2.3.4-23 +- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 + +* Tue Jan 26 2021 Fedora Release Engineering - 2.3.4-22 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jul 28 2020 Fedora Release Engineering - 2.3.4-21 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jan 29 2020 Fedora Release Engineering - 2.3.4-20 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Thu Jul 25 2019 Fedora Release Engineering - 2.3.4-19 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Fri Feb 01 2019 Fedora Release Engineering - 2.3.4-18 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Fri Jul 13 2018 Fedora Release Engineering - 2.3.4-17 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Thu Feb 08 2018 Fedora Release Engineering - 2.3.4-16 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Aug 03 2017 Fedora Release Engineering - 2.3.4-15 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 2.3.4-14 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jun 08 2017 Petr Šabata - 2.3.4-13 +- Fix issues with -Werror=format-security (#1448819) + +* Fri Feb 10 2017 Fedora Release Engineering - 2.3.4-12 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Thu Feb 04 2016 Fedora Release Engineering - 2.3.4-11 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Jun 17 2015 Fedora Release Engineering - 2.3.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sun Aug 17 2014 Fedora Release Engineering - 2.3.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Sat Jun 07 2014 Fedora Release Engineering - 2.3.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Sat Aug 03 2013 Fedora Release Engineering - 2.3.4-7 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue May 28 2013 Michael Schwendt - 2.3.4-6 +- fix missing BuildRequires flex-static (RHBZ#889175) + +* Thu Feb 14 2013 Fedora Release Engineering - 2.3.4-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Mon Jan 21 2013 Adam Tkac - 2.3.4-4 +- rebuild due to "jpeg8-ABI" feature drop + +* Fri Oct 26 2012 Thomas Woerner 2.3.4-3 +- do not use _isa for build requires + +* Fri Oct 26 2012 Thomas Woerner 2.3.4-2 +- fixed requirements according to review (RHBZ#870049) +- flex-static has been renamed to flex-devel with Fedora-18 and RHEL-7 + +* Thu Oct 25 2012 Thomas Woerner 2.3.4-1 +- new version 2.3.4 with LGPL license +- fixed some rpmlint warnings +- new sub package for static libraries +- added /etc/X11/mwm directory +- removed defattrs + +* Fri May 25 2012 Thomas Woerner 2.3.3-5 +- dropped file requires for /usr/share/X11/XKeysymDB, not needed and not + available anymore +- added flex-static build requirement, because of flex package split + +* Mon Aug 15 2011 Thomas Woerner 2.3.3-4 +- fixed Label draws Xft text over border of its parent (rhbz#584300#c3) + (MotifZone bug #1521 refixed) + +* Wed Aug 10 2011 Thomas Woerner 2.3.3-3 +- fixed regression introduced with upstream FIX #1521 (rhbz#729346) + +* Mon Aug 1 2011 Thomas Woerner 2.3.3-2 +- fixed LabelGadget draws background over border of its parent (rhbz#584300) + (MotifZone bug #1517) +- fixed LabelGadget draws Xft text over border of its parent (rhbz#584300#c3) + (MotifZone bug #1521) + +* Tue Mar 23 2010 Thomas Woerner 2.3.3-1 +- new version 2.3.3 (bugfix release) + see RELNOTES file for the list of the bug fixes + +* Fri Feb 26 2010 Thomas Woerner 2.3.2-1.1 +- fixes according to review: +- fixed buildroot +- removed dot from summary +- removed dist tag from changelog +- added source download link + +* Wed Jan 13 2010 Thomas Woerner 2.3.2-1 +- new version 2.3.2 with upstream bug fixes: #1212, #1277, #1473, #1476 +- spec file cleanup +- make build work with libtool +- all man pages are utf-8, no need to convert them anymore +- enabled EditRes support with upstream fix +- fixed parallel build +- fixed patches for fuzz 0 + Related: rhbz#543948 + +* Tue Dec 08 2009 Dennis Gregorovic - 2.3.1-3.1 +- Rebuilt for RHEL 6 + +* Wed Sep 23 2009 Dennis Gregorovic - 2.3.1-3 +- update the bindings patch + +* Wed Nov 12 2008 Thomas Woerner 2.3.1-2 +- more fixes for unreliable pasting into XmTextField (MotifZone bug #1321) + Resolves: rhbz#405941 +- the fix for MotifZone bug #1400 is not working for remote displays + +* Thu Oct 2 2008 Thomas Woerner 2.3.1-1 +- using final 2.3.1 dist archive + +* Wed Sep 17 2008 Thomas Woerner 2.3.1-0 +- rebase to 2.3.1 (CVS dist release) + Resolves: rhbz#455736 +- fixes OpenMotif XmList problem + Resolves: rhbz#405801 +- fixes List.c/ReplaceItem() segfaults when item selected + Resolves: rhbz#431460 +- fixes [motifzone 1400 ] openmotif/ BadFont on multiple display application + Resolves: rhbz#438910 +- fixes applications dump core in non-UTF8 environment + Resolves: rhbz#453722 +- fixes lots of additional bugs: see release notes + +* Tue Apr 1 2008 Thomas Woerner 2.3.0-0.5 +- fixed SEGV error moving mouse over window related to XmToolTipGetLabel + (MotifZone bug fix #1388) + Resolves: rhbz#277381 + +* Thu Nov 8 2007 Thomas Woerner 2.3.0-0.4 +- fixed title bar problem using XmNdialogTitle (MotifZone bug fix #1380) + Resolves: rhbz#353251 + +* Fri Dec 1 2006 Thomas Woerner 2.3.0-0.3 +- fixed path to xmbind in /etc/X11/xinit/xinitrc.d/xmbind.sh + Resolves: rhbz#218032 + +* Wed Jul 12 2006 Jesse Keating - 2.3.0-0.2.1 +- rebuild + +* Tue Jun 6 2006 Thomas Woerner 2.3.0-0.2 +- new CVS version 2006-06-06 +- new buildprereq for pkgconfig + +* Fri Feb 10 2006 Jesse Keating - 2.3.0-0.1.9.2 +- bump again for double-long bug on ppc(64) + +* Tue Feb 07 2006 Jesse Keating - 2.3.0-0.1.9.1 +- rebuilt for new gcc4.1 snapshot and glibc changes + +* Thu Feb 2 2006 Thomas Woerner 2.3.0-0.1.9 +- new CVS version 2006-02-02 +- fixed CVE-2005-3964: libUil buffer overflows (#174814) +- fixed XmList out of bound accesses (#167701) +- fixed pasting into TextField (#179549) + +* Tue Jan 3 2006 Jesse Keating 2.3.0-0.1.2 +- Rebuilt on new gcc + +* Fri Dec 9 2005 Thomas Woerner 2.3.0-0.1.1 +- moved mwmrc to /etc/X11/mwm +- moved bindings to /usr/share/X11 +- fixed paths in man pages containing /usr/X11R6 + +* Thu Dec 8 2005 Thomas Woerner 2.3.0-0.1.1 +- enabled Xft, jpeg and png support +- patch for missing xft-config +- dropped duplicate include path in devel package + +* Fri Dec 2 2005 Thomas Woerner 2.3.0-0.1 +- new 2.3.0 (beta1) +- patch for new rgb.txt location (#174210) + Thanks to Ville Skyttä for the patch + +* Fri Nov 18 2005 Thomas Woerner 2.2.3-15 +- moved man pages to /usr/share/man (#173604) + +* Wed Nov 16 2005 Jeremy Katz - 2.2.3-14 +- X11R6 stuff is gone + +* Wed Nov 16 2005 Jeremy Katz - 2.2.3-13 +- also buildrequire xbitmaps + +* Wed Nov 16 2005 Thomas Woerner 2.2.3-12 +- rebuild for modular X + +* Fri Sep 2 2005 Thomas Woerner 2.2.3-11 +- fixed mrm initialization error in MrmOpenHierarchyPerDisplay (#167094) + Thanks to Arjan van de Ven for the patch. + +* Mon Apr 4 2005 Thomas Woerner 2.2.3-10 +- fixed possible libXpm overflows (#151642) + +* Mon Feb 28 2005 Thomas Woerner 2.2.3-9 +- Upstream Fix: Multiscreen mode +- Upstream Fix: Crash when restarting by a session manager (motifzone#1193) +- Upstream Fix: Crash when duplicating a window menu containing f.circle_up + (motifzone#1202) +- fixed divide by zero error in ComputeVizCount() (#144420) +- Xpmcreate: define LONG64 on 64 bit architectures (#143689) + +* Mon Nov 29 2004 Thomas Woerner 2.2.3-8.1 +- allow to write XPM files with absolute path names again (#140815) + +* Wed Nov 24 2004 Miloslav Trmac 2.2.3-8 +- Convert man pages to UTF-8 + +* Mon Nov 22 2004 Thomas Woerner 2.2.3-7 +- latest Xpm patches: CAN-2004-0914 (#134631) +- new patch for tmpnam in imake (only used for build) + +* Thu Sep 30 2004 Thomas Woerner 2.2.3-6 +- fixed CAN-2004-0687 (integer overflows) and CAN-2004-0688 (stack overflows) + in embedded Xpm library + +* Wed Sep 29 2004 Thomas Woerner 2.2.3-5.2 +- replaced libtoolize and autofoo* calls with a patch (autofoo) + +* Wed Sep 29 2004 Thomas Woerner 2.2.3-5.1 +- use new autofoo + +* Wed Sep 1 2004 Thomas Woerner 2.2.3-5 +- libXp now moved to xorg-x11-deprecated-libs, therefore no compatibility + with XFree86 packages anymore. + +* Mon Aug 30 2004 Thomas Woerner 2.2.3-4.3 +- devel package: added requires for XFree86-devel (#131202) + +* Thu Jun 17 2004 Thomas Woerner 2.2.3-4.2 +- rebuilt for fc3 + +* Wed Jun 16 2004 Thomas Woerner 2.2.3-4.1 +- renamed xmbind script to xmbind.sh (#126116) + +* Tue Jun 15 2004 Elliot Lee +- rebuilt + +* Tue Jun 8 2004 Thomas Woerner 2.2.3-3 +- fixed popup menus fail on Tarantella/VNC (#123027) +- fixed character not supported problem (#124960) +- fixed data out of bounds bug (#124961) + +* Wed Apr 14 2004 Thomas Woerner 2.2.3-2 +- 2.2.3 final version + +* Tue Mar 23 2004 Thomas Woerner 2.2.3-1.9.2 +- final CVS version + +* Wed Mar 17 2004 Thomas Woerner 2.2.3-1.9.1 +- new openmotif 2.2.3 beta version + +* Mon Mar 8 2004 Thomas Woerner 2.2.2-17 +- fixed popdown problem in ToolTip (#75730) + +* Tue Mar 02 2004 Elliot Lee +- rebuilt + +* Thu Feb 19 2004 Thomas Woerner 2.2.2-16.3 +- rebuilt + +* Thu Dec 18 2003 Thomas Woerner +- added missing BuildRequires for XFree86-devel + +* Thu Nov 27 2003 Thomas Woerner 2.2.2-16.2 +- removed rpath + +* Mon Aug 27 2003 Thomas Woerner 2.2.2-16 +- fixed ToggleBG (#101159) + +* Thu Jul 31 2003 2.2.2-15.2 +- rebuild for RHEL + +* Wed Jul 30 2003 Thomas Woerner 2.2.2-15 +- fixed ToggleB (#101159) + +* Wed Jan 22 2003 Tim Powers +- rebuilt + +* Tue Jan 21 2003 Thomas Woerner 2.2.2-13 +- fix for Xmu/EditRes conflict (bug #80777) +- fix for wml and utf-8 (bug #80271) +- fix for Ext18List (bug #74502) + +* Thu Nov 14 2002 Than Ngo 2.2.2-12.2 +- add buildprereq byacc and flex (bug #77860) + +* Fri Nov 8 2002 Than Ngo 2.2.2-12.1 +- fix some build problem + +* Mon Aug 27 2002 Than Ngo 2.2.2-12 +- Fixed a segmentation fault in mkcatdefs (bug #71955) + +* Wed Jul 24 2002 Than Ngo 2.2.2-11 +- Added missing symlinks (bug #69117) + +* Tue Jul 23 2002 Tim Powers 2.2.2-10 +- build using gcc-3.2-0.1 + +* Tue Jun 25 2002 Than Ngo 2.2.2-9 +- fix to build openmotif (bug #64176) + +* Thu Jun 13 2002 Than Ngo 2.2.2-8 +- rebuild in new enviroment + +* Sun May 26 2002 Tim Powers +- automated rebuild + +* Thu May 23 2002 Harald Hoyer 2.2.2-6 +- patched ltmain.sh to link properly + +* Wed May 22 2002 Harald Hoyer 2.2.2-6 +- specified libraries by full name in files section + (libMrm was missing on alpha) + +* Tue Mar 26 2002 Than Ngo 2.2.2-5 +- update new 2.2.2 from ICS + +* Sun Mar 24 2002 Than Ngo 2.2.2-4 +- add missing uil + +* Fri Mar 22 2002 Tim Powers +- rebuilt to try and shake some broken deps in the devel package + +* Thu Mar 21 2002 Than Ngo 2.2.2-2 +- rebuild + +* Thu Mar 21 2002 Than Ngo 2.2.2-1 +- update to 2.2.2 release + +* Mon Feb 22 2002 Than Ngo 2.2.1-3 +- conflict with older lesstif + +* Mon Feb 22 2002 Than Ngo 2.2.1-2 +- fix bug #60816 + +* Fri Feb 22 2002 Than Ngo 2.2.1-1 +- update to 2.2.1 release +- remove somme patches, which are included in 2.2.1 + +* Fri Feb 22 2002 Tim Powers +- rebuilt in new environment + +* Fri Jan 25 2002 Tim Powers +- don't obsolete lesstif anymore, play nicely together +- rebuild against new toolchain + +* Wed Jan 21 2002 Than Ngo 2.1.30-11 +- add some patches from Darrell Commander (supporting largefile) +- fix to build on s390 + +* Thu Jan 17 2002 Than Ngo 2.1.30-10 +- rebuild in 8.0 + +* Wed Sep 6 2001 Than Ngo +- rebuild for ExtraBinge 7.2 + +* Thu May 03 2001 Than Ngo +- add 3 official motif patches +- add rm -rf $RPM_BUILD_ROOT in install section +- remove some old patches which are now in official patches + +* Fri Dec 29 2000 Than Ngo +- don't build static debug libraries + +* Mon Dec 18 2000 Than Ngo +- bzip2 source + +* Mon Jul 24 2000 Than Ngo +- rebuilt against gcc-2.96-44 + +* Wed Jul 12 2000 Than Ngo +- rebuilt + +* Sun Jun 11 2000 Than Ngo +- fix imake to built with gcc-2.96 (thanks Jakup) +- put bitmaps in /usr/X11R6/include/X11/bitmaps +- put bindings in /usr/X11R6/lib/Xm/bindings +- add define -D_GNU_SOURCE to build Motif +- gzip man pages +- cleanup specfile + +* Mon May 29 2000 Bernhard Rosenkraenzer +- Update to patchlevel 2 +- remove bindings patch, it's included in pl2 + +* Tue May 16 2000 Matt Wilson +- use -fPIC on sparc +- fixed Ngo's "fixes" + +* Mon May 15 2000 Ngo Than +- added description. +- fixed spec, added uil stuff. + +* Mon May 15 2000 Matt Wilson +- initialization of spec file.