From: John <joh...@gm...> - 2006-11-10 02:46:27
|
Hi, Incognu! Welcome to the VL Developer's List! :) You asked about how I've been building Seamonkey, so here goes: 1) The build is scripted based on a SlackBuild script "borrowed" from slackware-current/testing/source/seamonkey with a couple of patches "borrowed" from Beyond Linux From Scratch's Developmental version and a patch from Slackware. The Slackware patch fixes the ./xpfe/bootstrap/mozilla.in file to include /usr/lib/mozilla/plugins in the plugin patch. That patch is useful in connection with the environment variable for setting the global plugins directory. One of the BLFS patches modifies several of the autoconf-related build files. The patch allows Seamonkey to be built using the --with-system-nss and --with-system-nspr arguments to the ./configure script. It was expedient (for me, anyway) to want to build Seamonkey with an existing libnss and libnspr, since we also use those libraries for the MSN protocol in building Gaim. The other BLFS patch fixes an issue with linking against the pangoxft library. I've been able to build Seamonkey without that patch. However, several users of the VL builds without the pangoxft patch have reported crashes on startup with an error about undefined symbols related to libpangoxft. 2) The builds I've done have been shared builds as opposed to static builds. I have tried to build a static build on a couple of different beta versions of VL 5.8. I've even used the incognu mozconfig arguments and patches. However, the build failed during linking. Thus, I did a shared build, which does work for VL users. ;-) The question was raised about the .mozconfig settings. The build script I used didn't invoke a mozconfig script but passed the arguments that would be in a mozconfig script to the ./configure script at the top level of the mozilla source tree. I've attached a bzipped tarball with the build script, the patches used, Joe1962's seamonkey script and the slack-desc and slack-required files. Feel free to improve on what's in the build script. ;-) Cheers, John On Thursday 09 November 2006 06:03, incognu wrote: > Quoting "Jose J. Rodriguez" <jo...@gm...>: > > On 11/8/06, incognu <in...@in...> wrote: > >> Joe1962 asked if I'd be interested in doing some work on the > >> SeaMonkey package. > >> > >> I've packaged one of my own builds based on instructions on the web, but > >> I'd like to know more about how JohnB316 has been packaging them. Also, > >> can you share the .mozconfig used for the Vector SM packages? And of > >> course also, what > >> method are you using to change the theme in the package? > > > > incognu: > > > > Welcome to our vectorlinux-devel mailing list. > > Thanks for the welcome. > > > The theme is a tough > > one, because it was mostly arrived at by installing the xpi on a > > running SM and seeing what changed. So far I just kept the chrome.rdf > > and overlay.rdf for overwriting in subsequent builds, which is not a > > nice way to do it. Since you have an understanding of the rdf files, > > you might give us a hint on how to script the addition of the eurynome > > theme and newsfox to them. > > Yes, patching the source first would be nicer, but that at least works, and > isn't too unweildy. > > It might be possible to patch the source to include the theme .... The > extracted theme directory should go in ./mozilla/themes. Then, > ./mozilla/themes/makefiles, ./mozilla/themes/Makefile.in should be edited > to include a reference to it. (Not sure if other files need to be edited.) > The really difficult part is generating the jar.mn which should go in > ./mozilla/themes/eurynome, corresponding to the jar.mn files in > ./mozilla/themes/classic and ./mozilla/themes/modern. > > Does anyone know of a bash script which can automatically generate a > jar.mn? > > I've been trying to write one, without much success. The script I've come > up with can only generate a partial jar.mn for one subdirectory at a time. > Since there are 113 subdirectories in eurynome (and > 1000 files), this is > still impractical, though not as bad as creating one by hand. > > If anyone's handy with scripting, here's what I have so far. > > unzip eurynome.jar -d eurynome > ls -R eurynome > Z_ls-R.one > manually copy only the 2nd section, starting with > "eurynome/communicator:" into > a second file, "one.bak" > and then run this script (rough working copy): > > #!/bin/bash > DIRNM=thisisdirectory > DIRNMRT=communicator > # edit this each time run script for each of 113 subdirectories! > FNM=one > echo $DIRNM > echo $FNM > cat $FNM.bak > $FNM > sed -i '/\.[a-z]/ !s/.//g' $FNM > # this removes all non file names > sed -i '/^$/d' $FNM > # this removes blank lines > cat $FNM > $FNM.a > cat $FNM > $FNM.b > sed -i "s/^.*/\($DIRNM\/&\)/g" $FNM.b > sed -i "s/^/ $DIRNM\//g" $FNM.a > rpl "$DIRNM" "$DIRNMRT" $FNM.a > rpl "$DIRNM" "$DIRNMRT" $FNM.b > diff -y --width=160 $FNM.a $FNM.b > $FNM.diff.a > cp $FNM.diff.a $FNM.diff.b > sed -i 's/|//g' $FNM.diff.b > expand $FNM.diff.b >> $FNM.diff.c.mn > # tabs to spaces; add each section as processed to the .mn file > sed -i 's/^ / /g' $FNM.diff.c.mn > > The output is called one.diff.c.mn. I think (haven't been able to test) > that this, on these limited lines, gives the proper format. > Since Eurynome's directory structure is different from Classic's, I think > the lines should be, for example: > communicator/tasksOverlay.css > (communicator/tasksOverlay.css) instead of Classic jar.mn's: > skin/classic/communicator/tasksOverlay.css > (communicator/tasksOverlay.css) > > Ideally, the script should take each section in the file generated by "ls > -R eurynome" -- for example, to use two short ones: > eurynome/communicator/permissions: > status-cookie.gif > taskbar-cookie.gif > > eurynome/communicator/profile: > migrate.gif > profile.css > profileicon-large.gif > profileManager.css > > and automatically get the directory name (such as "communicator/profile/" > from "eurynome/communicator/profile:") at the beginning of each section, > using it only in each section, and processing it along the lines of my > script. As it is, it's necessary to copy, paste, and process one section > at a time, manually entering the directory variable into the script. For > over 100 sections! > > > We do the following steps: > > > > 1- put eurynome.jar and newsfox.jar in > > /opt/seamonkey/lib/seamonkey-1.0.5/chrome/ > > 2- overwrite chrome.rdf and overlays.rdf in that same dir > > 3- change the /opt/seamonkey/lib/seamonkey-1.0.5/chrome/icons/default/ > > to the eurynome-matching set > > 4- Replace > > /opt/seamonkey/lib/seamonkey-1.0.5/defaults/profile/bookmarks.html with > > our customized bookmarks > > 5- Put our customized userChrome.css and userContent.css in > > /opt/seamonkey/lib/seamonkey-1.0.5/defaults/profile/chrome > > 6- rename /opt/seamonkey/bin/seamonkey > > to seamonkey-original > > 7- copy our seamonkey script to /opt/seamonkey/bin/ > > > > This seamonkey script (step 7) makes it possible to call several parts > > of SM from the menu even when SM is already running. The ones that > > cannot be called in this situation (would require a different > > profile), simply produce a popup explaining that they should be run > > from within SM. > > > > Of course, we also add icons and .desktop files for the KDE and XFCE > > menus to the package, as well as XFCE helper definition files and an > > /etc/profile.d/seamonkey.sh script. > > That mostly looks fairly straightforward. JohnB316 also compiles > seamonkey for > use in the package, right? I'm still wondering about the .mozconfig used > for the build process. My .mozconfig isn't a standard one suitable for use > with a distribution. > > > A template directory structure > > with these elements exists on our repository server. > > Er, I haven't been able to find that template, though I've got the > SeaMonkey package itself as well as a "makeinfo-slapt" script from the > repository. Found > some buildscripts for fx for vl 5.0 but couldn't get into 5.8. Do you have > the url? > > Best, > incognu |