зеркало из https://github.com/mozilla/pjs.git
Bug 249462 - Put ChatZilla XPI building tools into CVS.
ChatZilla only. r=rginda
This commit is contained in:
Родитель
0fd1b6a162
Коммит
886d191a5a
|
@ -0,0 +1,3 @@
|
|||
jar-tree
|
||||
xpi-tree
|
||||
chatzilla-*.xpi
|
|
@ -0,0 +1,128 @@
|
|||
#! /bin/bash
|
||||
|
||||
# Set up paths for finding files.
|
||||
if [ -z "$FEDIR" ]; then FEDIR=$PWD/..; fi
|
||||
if [ -z "$CONFIGDIR" ]; then CONFIGDIR=$FEDIR/../../config; fi
|
||||
if [ -z "$XPIFILES" ]; then XPIFILES=$PWD/resources; fi
|
||||
if [ -z "$XPIROOT" ]; then XPIROOT=$PWD/xpi-tree; fi
|
||||
if [ -z "$JARROOT" ]; then JARROOT=$PWD/jar-tree; fi
|
||||
|
||||
|
||||
if [ "$1" == "clean" ]; then
|
||||
echo -n "Cleaning up files"
|
||||
echo -n .
|
||||
rm -rf "$XPIROOT"
|
||||
echo -n .
|
||||
rm -rf "$JARROOT"
|
||||
echo ". done."
|
||||
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
# Check setup.
|
||||
if ! [ -d "$FEDIR" ]; then
|
||||
echo "ERROR: Base ChatZilla directory (FEDIR) not found."
|
||||
exit 1
|
||||
fi
|
||||
if ! [ -d "$CONFIGDIR" ]; then
|
||||
echo "ERROR: mozilla/config directory (CONFIGDIR) not found."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
# Extract version number.
|
||||
VERSION=`grep "const __cz_version" "$FEDIR/xul/content/static.js" | sed "s|.*\"\([^\"]\+\)\".*|\1|"`
|
||||
|
||||
echo Begining build of ChatZilla $VERSION...
|
||||
|
||||
|
||||
# Check for existing.
|
||||
if [ -r "chatzilla-$VERSION.xpi" ]; then
|
||||
echo " WARNING: output XPI will be overwritten."
|
||||
fi
|
||||
|
||||
|
||||
# Check for required directory layouts.
|
||||
echo -n " Checking XPI structure"
|
||||
echo -n .
|
||||
if ! [ -d xpi-tree ]; then mkdir xpi-tree; fi
|
||||
echo -n .
|
||||
if ! [ -d xpi-tree/chrome ]; then mkdir xpi-tree/chrome; fi
|
||||
echo -n .
|
||||
if ! [ -d xpi-tree/components ]; then mkdir xpi-tree/components; fi
|
||||
echo -n .
|
||||
if ! [ -d xpi-tree/defaults ]; then mkdir xpi-tree/defaults; fi
|
||||
echo ". done"
|
||||
|
||||
echo -n " Checking JAR structure"
|
||||
echo -n .
|
||||
if ! [ -d jar-tree ]; then mkdir jar-tree; fi
|
||||
echo ". done"
|
||||
|
||||
|
||||
# Make Firefox updates.
|
||||
echo -n " Updating Firefox Extension files"
|
||||
echo -n .
|
||||
sed "s|@REVISION@|$VERSION|g" < "$XPIFILES/install.rdf" > "$XPIROOT/install.rdf"
|
||||
echo -n .
|
||||
cp "$XPIFILES/chatzilla-window.ico" "$XPIROOT/defaults/chatzilla-window.ico"
|
||||
echo -n .
|
||||
cp "$XPIFILES/chatzilla-window.xpm" "$XPIROOT/defaults/chatzilla-window.xpm"
|
||||
echo -n .
|
||||
cp "$XPIFILES/chatzilla-window16.xpm" "$XPIROOT/defaults/chatzilla-window16.xpm"
|
||||
echo ". done"
|
||||
|
||||
|
||||
# Make Mozilla Suite updates.
|
||||
echo -n " Updating Mozilla Extension files"
|
||||
echo -n .
|
||||
sed "s|@REVISION@|$VERSION|g" < "$XPIFILES/install.js" > "$XPIROOT/install.js"
|
||||
echo -n .
|
||||
mv "$FEDIR/xul/content/contents.rdf" "$FEDIR/xul/content/contents.rdf.in"
|
||||
sed "s|@MOZILLA_VERSION@|cz-$VERSION|g;s|\(chrome:displayName=\)\"[^\"]\+\"|\1\"ChatZilla $VERSION\"|g" < "$FEDIR/xul/content/contents.rdf.in" > "$FEDIR/xul/content/contents.rdf"
|
||||
rm "$FEDIR/xul/content/contents.rdf.in"
|
||||
echo -n .
|
||||
mv "$FEDIR/xul/locale/en-US/contents.rdf" "$FEDIR/xul/locale/en-US/contents.rdf.in"
|
||||
sed "s|@MOZILLA_VERSION@|cz-$VERSION|g" < "$FEDIR/xul/locale/en-US/contents.rdf.in" > "$FEDIR/xul/locale/en-US/contents.rdf"
|
||||
rm "$FEDIR/xul/locale/en-US/contents.rdf.in"
|
||||
echo ". done"
|
||||
|
||||
|
||||
# Create JAR.
|
||||
echo -n " Constructing JAR package"
|
||||
echo -n .
|
||||
pushd "$CONFIGDIR" >/dev/null
|
||||
echo -n .
|
||||
OUT=`perl make-jars.pl -v -z zip -p preprocessor.pl -s "$FEDIR" -d "$JARROOT" < "$FEDIR/jar.mn" 2>&1`
|
||||
if [ "$?" != "0" ]; then echo ERROR; echo $OUT; exit 1; fi
|
||||
echo -n .
|
||||
OUT=`perl make-jars.pl -v -z zip -p preprocessor.pl -s "$FEDIR/sm" -d "$JARROOT" < "$FEDIR/sm/jar.mn" 2>&1`
|
||||
if [ "$?" != "0" ]; then echo ERROR; echo $OUT; exit 1; fi
|
||||
echo -n .
|
||||
OUT=`perl make-jars.pl -v -z zip -p preprocessor.pl -s "$FEDIR/ff" -d "$JARROOT" < "$FEDIR/ff/jar.mn" 2>&1`
|
||||
if [ "$?" != "0" ]; then echo ERROR; echo $OUT; exit 1; fi
|
||||
echo -n .
|
||||
popd >/dev/null
|
||||
echo ". done"
|
||||
|
||||
|
||||
# Make XPI.
|
||||
echo -n " Constructing XPI package"
|
||||
echo -n .
|
||||
OUT=`cp -v "$JARROOT/chatzilla.jar" "$XPIROOT/chrome/"`
|
||||
if [ "$?" != "0" ]; then echo ERROR; echo $OUT; exit 1; fi
|
||||
echo -n .
|
||||
OUT=`cp -v "$FEDIR/js/lib/chatzilla-service.js" "$XPIROOT/components/"`
|
||||
if [ "$?" != "0" ]; then echo ERROR; echo $OUT; exit 1; fi
|
||||
echo -n .
|
||||
chmod 664 "$XPIROOT/chrome/chatzilla.jar"
|
||||
echo -n .
|
||||
chmod 664 "$XPIROOT/components/chatzilla-service.js"
|
||||
echo -n .
|
||||
pushd "$XPIROOT" >/dev/null; OUT=`zip -vr ../chatzilla-$VERSION.xpi * 2>&1`; popd >/dev/null
|
||||
if [ "$?" != "0" ]; then echo ERROR; echo $OUT; exit 1; fi
|
||||
echo ". done"
|
||||
|
||||
|
||||
echo "Build of ChatZilla $VERSION... ALL DONE"
|
Двоичный файл не отображается.
После Ширина: | Высота: | Размер: 49 KiB |
|
@ -0,0 +1,98 @@
|
|||
/* XPM */
|
||||
static char *cz_logo_32[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 60 1",
|
||||
" c #374552",
|
||||
". c #384653",
|
||||
"X c #3b4956",
|
||||
"o c #3e4b58",
|
||||
"O c #414e5b",
|
||||
"+ c #43505d",
|
||||
"@ c #4a5762",
|
||||
"# c #4d5965",
|
||||
"$ c #515d68",
|
||||
"% c #55616c",
|
||||
"& c #58646e",
|
||||
"* c #5a6671",
|
||||
"= c #5d6873",
|
||||
"- c #616c77",
|
||||
"; c #636e78",
|
||||
": c #66707a",
|
||||
"> c #6a747e",
|
||||
", c #6c7780",
|
||||
"< c #6e7881",
|
||||
"1 c #717b84",
|
||||
"2 c #767f88",
|
||||
"3 c #7a838c",
|
||||
"4 c #7e8790",
|
||||
"5 c #828b93",
|
||||
"6 c #8b939a",
|
||||
"7 c #90979f",
|
||||
"8 c #949ca3",
|
||||
"9 c #9ca3aa",
|
||||
"0 c #a0a7ad",
|
||||
"q c #a2a8ae",
|
||||
"w c #a5abb1",
|
||||
"e c #a9afb4",
|
||||
"r c #abb1b6",
|
||||
"t c #adb2b8",
|
||||
"y c #b0b5ba",
|
||||
"u c #b3b8bd",
|
||||
"i c #b7bcc1",
|
||||
"p c #b8bdc2",
|
||||
"a c #bbc0c4",
|
||||
"s c #bfc4c8",
|
||||
"d c #c2c6ca",
|
||||
"f c #c5c9cc",
|
||||
"g c #caced1",
|
||||
"h c #cdd1d4",
|
||||
"j c #d0d3d6",
|
||||
"k c #d4d7da",
|
||||
"l c #d6d9dc",
|
||||
"z c #d9dcde",
|
||||
"x c #dbdde0",
|
||||
"c c #dde0e2",
|
||||
"v c #e1e3e5",
|
||||
"b c #e5e7e9",
|
||||
"n c #e7e8ea",
|
||||
"m c #eaebed",
|
||||
"M c #eff0f1",
|
||||
"N c #f4f5f5",
|
||||
"B c #f6f7f8",
|
||||
"V c #f7f8f8",
|
||||
"C c #fefefe",
|
||||
"Z c None",
|
||||
/* pixels */
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZVVNBNBNNNNNVCZ",
|
||||
"ZZZZZZZZZZZZZZZZMu<&&=**&==&==6v",
|
||||
"ZZZZZZZZZZZZZZZC8O155555555553O>",
|
||||
"ZZZZZZZZZZZZZZZc@9VCCCCCCCCCCC9o",
|
||||
"ZZZZVca856ygmZV6@cCCVcxxcVCCCC9#",
|
||||
"ZZCh<+o+&$Oo&ugO0CCN6OOO2MCCCg@3",
|
||||
"ZCt@$9gvNmlp3O%&mCC8X2$$kCCCv&$k",
|
||||
"ZpO5cCCCCCCCN3 9CCrO56+aCCCN3+fZ",
|
||||
"m=*mCCCCCCVnCv;5k0+6u+9CCCC8oeCZ",
|
||||
"eOfCCCCnfmCCCC9.++6f$3BCCCuO6VZZ",
|
||||
"1;NCCB8$ <xCBv;;yjv>;vCCCk$<NVCZ",
|
||||
"#6CCCdO4w&$4;$+pZV5#hCCCn>&hu<6v",
|
||||
"OyCCC5@bZk&. .6CCr+uCCCV5#y<O;O,",
|
||||
"#8CCC9OfVa+$5:+0d@6VCCC9O9>OrB6X",
|
||||
">,VCCc%@>#>xCN2+@1NCCCf+55OrCC6#",
|
||||
"8@zCCCv9&=hCCCpX&vCCCz%.#OrCCx#6",
|
||||
"c#1NCCCCmMCCCC9@fCCCCu555uCCC8#c",
|
||||
"CqowNCCCCCCCCg#9CCCCCCCCCCCCl#6C",
|
||||
"ZN6O,smNCCVbi$X<uuuuuuuuuuuu1#cZ",
|
||||
"ZZBr#o$=35;@O1t=OOOOOOOOOOOO#0CZ",
|
||||
"ZZZCbd63=&18hNZNxxxzxxxzxxzxbCZZ",
|
||||
"ZZZZZZZCNNCZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ",
|
||||
"ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ"
|
||||
};
|
|
@ -0,0 +1,80 @@
|
|||
/* XPM */
|
||||
static char *cz_logo_16[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 16 58 1",
|
||||
" c #374552",
|
||||
". c #384653",
|
||||
"X c #3c4956",
|
||||
"o c #3d4b58",
|
||||
"O c #414e5b",
|
||||
"+ c #44515e",
|
||||
"@ c #475460",
|
||||
"# c #4a5762",
|
||||
"$ c #4c5965",
|
||||
"% c #54606b",
|
||||
"& c #59646f",
|
||||
"* c #5b6671",
|
||||
"= c #5d6873",
|
||||
"- c #626d77",
|
||||
"; c #636e78",
|
||||
": c #66717b",
|
||||
"> c #69747d",
|
||||
", c #6c7780",
|
||||
"< c #6e7881",
|
||||
"1 c #717b84",
|
||||
"2 c #757f88",
|
||||
"3 c #7a838c",
|
||||
"4 c #7f8890",
|
||||
"5 c #838c94",
|
||||
"6 c #8d959c",
|
||||
"7 c #90979f",
|
||||
"8 c #90989f",
|
||||
"9 c #949ca3",
|
||||
"0 c #9aa1a7",
|
||||
"q c #9ca3a9",
|
||||
"w c #a6acb2",
|
||||
"e c #a9afb4",
|
||||
"r c #abb1b6",
|
||||
"t c #adb2b8",
|
||||
"y c #b0b6bb",
|
||||
"u c #b3b8bd",
|
||||
"i c #b7bcc1",
|
||||
"p c #b8bdc2",
|
||||
"a c #bdc1c6",
|
||||
"s c #c3c7cb",
|
||||
"d c #c5c9cd",
|
||||
"f c #caced1",
|
||||
"g c #cdd0d4",
|
||||
"h c #d0d3d6",
|
||||
"j c #d3d6d9",
|
||||
"k c #d5d8da",
|
||||
"l c #d8dbdd",
|
||||
"z c #dbdde0",
|
||||
"x c #e1e3e5",
|
||||
"c c #e4e6e8",
|
||||
"v c #e6e8e9",
|
||||
"b c #eaeced",
|
||||
"n c #eff0f1",
|
||||
"m c #f3f4f5",
|
||||
"M c #f6f7f8",
|
||||
"N c #f7f8f8",
|
||||
"B c #fefefe",
|
||||
"V c None",
|
||||
/* pixels */
|
||||
"VVVVVVVVVVVVVVVV",
|
||||
"VVVVVVVVVVVVVVVV",
|
||||
"VVVVVVVVVNmmMmmB",
|
||||
"VVVVVVVmw;=*=*=8",
|
||||
"VVmfisx6#355553O",
|
||||
"Ba>o+o#+iBmzbBm:",
|
||||
"6@2tls9>mz>%jBeX",
|
||||
"O8BBnBMqw%XeBd+>",
|
||||
"+jBq-ij> .5Nx*.4",
|
||||
"&mb$ .O .>bm1.=O",
|
||||
"+lN0$5t:%lB6.1b1",
|
||||
"+6BBvNN5aBc66cg+",
|
||||
"8#2tgu6=tuuuuy:&",
|
||||
"Na>OoX$#OOOOOO+r",
|
||||
"VVmjugcvlzzzzzxN",
|
||||
"VVVVVVVVVVVVVVVV"
|
||||
};
|
|
@ -0,0 +1,132 @@
|
|||
// this function verifies disk space in kilobytes
|
||||
function verifyDiskSpace(dirPath, spaceRequired)
|
||||
{
|
||||
var spaceAvailable;
|
||||
|
||||
// Get the available disk space on the given path
|
||||
spaceAvailable = fileGetDiskSpaceAvailable(dirPath);
|
||||
|
||||
// Convert the available disk space into kilobytes
|
||||
spaceAvailable = parseInt(spaceAvailable / 1024);
|
||||
|
||||
// do the verification
|
||||
if(spaceAvailable < spaceRequired)
|
||||
{
|
||||
logComment("Insufficient disk space: " + dirPath);
|
||||
logComment(" required : " + spaceRequired + " K");
|
||||
logComment(" available: " + spaceAvailable + " K");
|
||||
return(false);
|
||||
}
|
||||
|
||||
return(true);
|
||||
}
|
||||
|
||||
// this function deletes a file if it exists
|
||||
function deleteThisFile(dirKey, file)
|
||||
{
|
||||
var fFileToDelete;
|
||||
|
||||
fFileToDelete = getFolder(dirKey, file);
|
||||
logComment("File to delete: " + fFileToDelete);
|
||||
if(File.isFile(fFileToDelete))
|
||||
{
|
||||
File.remove(fFileToDelete);
|
||||
return(true);
|
||||
}
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
// this function deletes a folder if it exists
|
||||
function deleteThisFolder(dirKey, folder, recursiveDelete)
|
||||
{
|
||||
var fToDelete;
|
||||
|
||||
if(typeof recursiveDelete == "undefined")
|
||||
recursiveDelete = true;
|
||||
|
||||
fToDelete = getFolder(dirKey, folder);
|
||||
logComment("folder to delete: " + fToDelete);
|
||||
if(File.isDirectory(fToDelete))
|
||||
{
|
||||
File.dirRemove(fToDelete, recursiveDelete);
|
||||
return(true);
|
||||
}
|
||||
else
|
||||
return(false);
|
||||
}
|
||||
|
||||
// OS type detection
|
||||
// which platform?
|
||||
function getPlatform()
|
||||
{
|
||||
var platformStr;
|
||||
var platformNode;
|
||||
|
||||
if('platform' in Install)
|
||||
{
|
||||
platformStr = new String(Install.platform);
|
||||
|
||||
if (!platformStr.search(/^Macintosh/))
|
||||
platformNode = 'mac';
|
||||
else if (!platformStr.search(/^Win/))
|
||||
platformNode = 'win';
|
||||
else if (!platformStr.search(/^OS\/2/))
|
||||
platformNode = 'win';
|
||||
else
|
||||
platformNode = 'unix';
|
||||
}
|
||||
else
|
||||
{
|
||||
var fOSMac = getFolder("Mac System");
|
||||
var fOSWin = getFolder("Win System");
|
||||
|
||||
logComment("fOSMac: " + fOSMac);
|
||||
logComment("fOSWin: " + fOSWin);
|
||||
|
||||
if(fOSMac != null)
|
||||
platformNode = 'mac';
|
||||
else if(fOSWin != null)
|
||||
platformNode = 'win';
|
||||
else
|
||||
platformNode = 'unix';
|
||||
}
|
||||
|
||||
return platformNode;
|
||||
}
|
||||
|
||||
var srDest = 665;
|
||||
|
||||
var err = initInstall("Chatzilla @REVISION@", "Chatzilla", "@REVISION@");
|
||||
logComment("initInstall: " + err);
|
||||
|
||||
if (verifyDiskSpace(getFolder("Program"), srDest))
|
||||
{
|
||||
addFile("Chatzilla service",
|
||||
"@REVISION@",
|
||||
"components/chatzilla-service.js",
|
||||
getFolder("Components"),
|
||||
"chatzilla-service.js",
|
||||
true);
|
||||
|
||||
addFile("Chatzilla Chrome",
|
||||
"chrome/chatzilla.jar", // jar source folder
|
||||
getFolder("Chrome"), // target folder
|
||||
""); // target subdir
|
||||
|
||||
addFile("ChatZilla Win32 icon", "defaults/chatzilla-window.ico", getFolder("Chrome"), "icons/default/chatzilla-window.ico");
|
||||
addFile("ChatZilla Unix 32 icon", "defaults/chatzilla-window.xpm", getFolder("Chrome"), "icons/default/chatzilla-window.xpm");
|
||||
addFile("ChatZilla Unix 16 icon", "defaults/chatzilla-window16.xpm", getFolder("Chrome"), "icons/default/chatzilla-window16.xpm");
|
||||
|
||||
registerChrome(PACKAGE | DELAYED_CHROME, getFolder("Chrome","chatzilla.jar"), "content/chatzilla/");
|
||||
registerChrome(PACKAGE | DELAYED_CHROME, getFolder("Chrome","chatzilla.jar"), "content/chatzilla/sm/");
|
||||
registerChrome(SKIN | DELAYED_CHROME, getFolder("Chrome","chatzilla.jar"), "skin/modern/chatzilla/");
|
||||
registerChrome(LOCALE | DELAYED_CHROME, getFolder("Chrome","chatzilla.jar"), "locale/en-US/chatzilla/");
|
||||
|
||||
if (err==SUCCESS)
|
||||
performInstall();
|
||||
else
|
||||
cancelInstall(err);
|
||||
}
|
||||
else
|
||||
cancelInstall(INSUFFICIENT_DISK_SPACE);
|
|
@ -0,0 +1,48 @@
|
|||
<?xml version="1.0"?>
|
||||
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#">
|
||||
<Description about="urn:mozilla:install-manifest">
|
||||
<!-- core data -->
|
||||
<em:id>{59c81df5-4b7a-477b-912d-4e0fdf64e5f2}</em:id>
|
||||
<em:version>@REVISION@</em:version>
|
||||
|
||||
<!-- target: Mozilla, version 1.0 to 1.8 -->
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>{86c18b42-e466-45a9-ae7a-9b95ba6f5640}</em:id>
|
||||
<em:minVersion>1.0</em:minVersion>
|
||||
<em:maxVersion>1.8</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
|
||||
<!-- target: Mozilla Firefox, version 0.9 to 1.0 -->
|
||||
<em:targetApplication>
|
||||
<Description>
|
||||
<em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
|
||||
<em:minVersion>0.9</em:minVersion>
|
||||
<em:maxVersion>1.0</em:maxVersion>
|
||||
</Description>
|
||||
</em:targetApplication>
|
||||
|
||||
<!-- front-end metadata -->
|
||||
<em:name>ChatZilla</em:name>
|
||||
<em:description>A simple, straightforward Internet Relay Chat (IRC) client.</em:description>
|
||||
<em:creator>The ChatZilla Team</em:creator>
|
||||
<em:contributor>Robert Ginda</em:contributor>
|
||||
<em:contributor>Samuel Sieb</em:contributor>
|
||||
<em:contributor>James Ross</em:contributor>
|
||||
<em:contributor>Lim Chee Aun (graphics)</em:contributor>
|
||||
<em:iconURL>chrome://chatzilla/skin/images/logo.png</em:iconURL>
|
||||
<em:homepageURL>http://www.hacksrus.com/~ginda/chatzilla/</em:homepageURL>
|
||||
<em:optionsURL>javascript:opener.openDialog('chrome://chatzilla/content/config.xul','','chrome,modal,resizable');window.close();</em:optionsURL>
|
||||
|
||||
<!-- package files -->
|
||||
<em:file>
|
||||
<Description about="urn:mozilla:extension:file:chatzilla.jar">
|
||||
<em:package>content/chatzilla/</em:package>
|
||||
<em:package>content/chatzilla/ff/</em:package>
|
||||
<em:locale>locale/en-US/chatzilla/</em:locale>
|
||||
<em:skin>skin/modern/chatzilla/</em:skin>
|
||||
</Description>
|
||||
</em:file>
|
||||
</Description>
|
||||
</RDF>
|
Загрузка…
Ссылка в новой задаче