User Tools

Site Tools


wiki:data:pages:user:kbulgrien

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
wiki:data:pages:user:kbulgrien [2024/05/20 17:39]
leaf Remove wiki-data version of kbulgrien page
— (current)
Line 1: Line 1:
-======Long Live Crossfire!====== 
- 
-  * The Absolutely Real Thing 
- 
-======Introduction====== 
- 
-  * Long-time player, patcher, documenter, coder... 
-  * Non-prolific contributor with primarily low-profile changes, but a long-standing fan and contributor... 
-  * Notable contributions 
-    * GTK V2 client retrofit for libglade, plus numerous alternate main window layouts. 
-    * CFDialog.py / npc_dialog.py improvements and documentation. 
-    * Fixed the notorious double-character bugs in GTK clients. 
-    * Doxygen markup for the client code base. 
- 
-[[content]] 
- 
-======Build Resources====== 
- 
-  * [[http://​www.gnu.org/​software/​automake/​manual/​autoconf/​index.html#​Top Automake Manual]] 
- 
-=====Debugging===== 
- 
-  * Function call tracing may be done at run-time with [[http://​ndevilla.free.fr/​etrace/​|etrace]]. 
- 
-=====Portability===== 
- 
-====Shell Programming==== 
- 
-    * [[http://​www.gnu.org/​software/​automake/​manual/​autoconf/​Portable-Shell.html#​Portable-Shell|Automake Manual Chapter]] 
-    * Various topics, good workaround for echo -n @ [[http://​www.in-ulm.de/​~mascheck/​various/​|#​! aribtrary unix stuff]] 
-    * [[http://​www.linux.com/​articles/​34658|What to watch out for when writing portable shell scripts]] 
- 
-====make==== 
- 
-    * [[http://​www.gnu.org/​software/​automake/​manual/​autoconf/​Portable-Make.html#​Portable-Make|Automake Manual Chapter]] 
- 
-====Portable C/C++==== 
- 
-    * [[http://​www.gnu.org/​software/​automake/​manual/​autoconf/​Portable-C-and-C_002b_002b.html#​Portable-C-and-C_002b_002b|Automake Manual Chapter]] 
- 
-=====SVN Scripts===== 
- 
- 
-====svn-co.sh==== 
- 
-This script can do svn 1.5.x sparse checkouts or pre-1.5 checkouts. ​ The script defaults to using subversion 1.5+ sparse checkouts. ​ If an older client is detected, the script switches to a legacy checkout directory model. ​ It is available for download from [[http://​invidious.meflin.net/​~kbulgrien/​files/​svn-co.sh|invidious.meflin.net]]. 
- 
-Create the desired development directory first, get the script, then run it to checkout. ​ For example: 
- 
-  $ sudo mkdir -p /​home/​devel/​crossfire 
-  $ sudo chgrp -R ctools /home/devel 
-  $ sudo chmod -R g+rwx /home/devel 
-  $ cd /​home/​devel/​crossfire 
-  $ curl -o svn-co.sh http://​invidious.meflin.net/​~kbulgrien/​files/​svn-co.sh 
-  $ bash svn-co.sh --trunk --all 
- 
-Built-in help shows: 
- 
-  Usage: 
-  ​ 
-    svn-co.sh \ 
-      { --client | --server | --all } \ 
-      { --trunk | --branch=1.xx } \ 
-      [ --release ] 
-  ​ 
-    Where: 
-      xx is the branch number 
-  ​ 
-    A client checkout with --release gets arch and server too. 
- 
- 
- 
- 
-====svn-up.sh==== 
- 
-This script is only used for SVN clients of a lower version number than 1.5, or when a non-sparse checkout is used.  It is available for download from invidious.meflin.net. 
- 
-Enter the desired development directory first, get the script, and then run it to update. ​ For example: 
- 
-  $ cd /​home/​devel/​crossfire 
-  $ curl -o svn-up.sh http://​invidious.meflin.net/​~kbulgrien/​files/​svn-up.sh 
-  $ bash svn-up.sh --trunk --all 
- 
-Built-in help shows: 
- 
-  Usage: 
-  ​ 
-    svn-up.sh \ 
-      { --client | --server | --all } \ 
-      { --trunk | --branch=1.xx } \ 
-      [ --release ] 
-  ​ 
-    Where: 
-      xx is the branch number 
-  ​ 
-    A client update with --release updates arch and server too. 
- 
-=====Configure Scripts===== 
- 
- 
- 
-====trunk.autogen.sh==== 
- 
-  $ cd /​home/​devel/​crossfire 
-  $ curl -o trunk.autogen.sh http://​invidious.meflin.net/​~kbulgrien/​files/​trunk.autogen.sh 
- 
- 
-====branch.autogen.sh==== 
- 
-  $ cd /​home/​devel/​crossfire 
-  $ curl -o branch.autogen.sh http://​invidious.meflin.net/​~kbulgrien/​files/​branch.autogen.sh 
- 
-=====Distribution-Specific Setup===== 
- 
-====Mageia 2==== 
- 
-See [[dev:​linux_mageia_2|Mageia 2]] 
- 
-====Mageia 1==== 
- 
-See [[dev:​linux_mageia_1|Mageia 1]] 
- 
-====Mandriva 2010.1 (Spring)==== 
- 
-See [[dev:​linux_mandriva_2010.1|Mandriva 2010.1 (Spring)]] 
- 
-====Mandriva 2009.0==== 
- 
-See [[dev:​linux_mandriva_2009.0|Mandriva 2009.0]] 
- 
-======Release Guide (WIP)====== 
- 
-The directions use SVN trunk as the example release. ​ The instructions presume you start in the top level SVN directory (the one that contains the arch, client, maps, server) for each phase (arch, client, maps, server) 
- 
-This procedure assumes that release operations are done in the ''/​home/​devel/​crossfire/​rpmbuild''​ directory. 
- 
-The RPMs build in this procedure may be installed by a user without using **sudo** or root permissions. ​ The RPMs will be build to install in the user's home directory (**${HOME}/​usr/​local/​games/​crossfire**). ​ This path is chosen so it is clearer how to modify the procedure to build RPMs that install into **/​usr/​local/​games/​crossfire**. 
- 
-=====Optional:​ Setup .rpmmacros===== 
- 
-A key to building RPMs without using sudo or root is centered around creating a .rpmmacros file in the builder'​s home directory. ​ You only need a file like this set up if you want to build and install the rpm as a normal user.  To make RPMs that use distribution defaults, make sure that ~/​.rpmmacros does not exist, or that it does not conflict with the system-wide settings. 
- 
-  # /​etc/​rpm/​macros # (c) GPL 2003 Tero.Karvinen at-sign iki.fi 
-  %packager %(echo "​$USER"​) 
-  %_topdir /​home/​devel/​crossfire/​rpmbuild 
-  # %_rpmtopdir %{_topdir}/​%{name}/​RPM 
-  %_rpmtopdir %{_topdir}/​RPM 
-  %_builddir %{_rpmtopdir}/​BUILD 
-  %_rpmdir %{_rpmtopdir}/​RPMS 
-  %_sourcedir %{_rpmtopdir}/​SOURCES 
-  %_specdir %{_rpmtopdir}/​SPECS 
-  %_srcrpmdir %{_rpmtopdir}/​SRPMS 
-  %_tmppath %{_rpmtopdir}/​TMP 
-  %_buildroot %{_tmppath}/​%{name}-root 
-  ​ 
-  %_datadir %(echo "​$HOME"​)/​usr/​local/​games/​crossfire 
-  ​ 
-  # Build rpms in your home directory, without root priviledges 
-  # Users can copy this file to $HOME/​.rpmmacros to override 
-  # settings, such as packager to "​Firstname Lastname email"​. 
-  # Example of typical directory and file hierarchy for 
-  # rpm building: 
-  #  ~/rpmbuild/ 
-  #  ~/​rpmbuild/​nano/​ # replace nano with rpm name 
-  #  ~/​rpmbuild/​nano/​TMP/​ 
-  #  ~/​rpmbuild/​nano/​BUILD/​ # user must create this dir 
-  # and files (can be extracted from a source rpm with 
-  #  rpm2cpio *.src.rpm |cpio -dvi 
-  #   ​~/​rpmbuild/​nano/​nano-1.2.tar.gz 
-  #   ​~/​rpmbuild/​nano/​nano.spec 
-  # Then you can build your rpm with 
-  #  rm -rf TMP/* BUILD/* ; rpmbuild -ba *.spec 2>&1 |tee rpmbuild.log 
-  # For more information,​ see www.iki.fi/​karvinen 
- 
-To be able to sign RPMs, also add: 
- 
-   ​%_signature gpg 
-   ​%_gpg_name Firstname I. Lastname 
- 
-=====Setup the Release Workspace===== 
- 
-Create the base workspace directory and make it your current working directory. 
- 
-  $ export RELDIR=/​home/​devel/​crossfire/​rpmbuild 
-  $ mkdir -p ${RELDIR} 
-  $ cd ${RELDIR} 
- 
-Populate the release workspace with the necessary scripts: 
- 
-  $ wget http://​invidious.meflin.net/​~kbulgrien/​files/​svn-co.sh 
-  $ wget http://​invidious.meflin.net/​~kbulgrien/​files/​svn-up.sh 
-  $ wget http://​invidious.meflin.net/​~kbulgrien/​files/​trunk.autogen.sh 
-  $ wget http://​invidious.meflin.net/​~kbulgrien/​files/​branch.autogen.sh 
-  $ wget http://​invidious.meflin.net/​~kbulgrien/​files/​prerelease.sh 
- 
-=====Create a Release or Snapshot===== 
- 
-It is only necessary to manually invoke the **prerelease.sh** script. ​ The other scripts are automatically called as needed. 
- 
-The built-in help for **prerelease.sh** shows: 
- 
-  Usage: 
-  ​ 
-    prerelease.sh \ 
-      { --client | --server | --all } \ 
-      { --trunk | --branch=1.xx } \ 
-      [ --name=First_I._Last ] \ 
-      [ --email=me@my.domain ] \ 
-      [ --release=y ] \ 
-      [ --maps-bz2 ] 
-  ​ 
-    Where: 
-      xx is the branch number 
-  ​ 
-    --name 
-    --email 
-      Specify the RPM packager (default: user@my.domain) 
-      Use underscores instead of spaces for --name. 
-  ​ 
-    --release=y 
-      Build a release instead of a snapshot. ​ For the first release 
-      of a particular version, always use 0.  For subsequent bugfix 
-      re-releases,​ increment the release count by one. 
-  ​ 
-    --maps-bz2 
-      Create a bzip2 maps tarball in addition to a gzip tarball. 
- 
-An example of how to build a snapshot release follows: 
- 
-  $ bash prerelease.sh --trunk --client --name=First_I._Last --email=me@my.domain 
- 
-  * If there are errors, rpmbuild will tell you. 
-  * RPMs will be put in RPM/​RPMS/<​architecture>​ 
-  * SRPM will be located in RPM/SRPMS 
- 
-Making an official release is not yet fully implemented and tested, but the primary difference is adding a --release parameter to the **prerelease.sh** command-line. 
- 
-For good information on how to sign RPMs, see http://​fedoranews.org/​tchung/​gpg/​ 
- 
-======Bug Triage====== 
- 
-=====crossfire-client-gtk2===== 
- 
-====Client | Save window position==== 
- 
-The client restores the window vertically offset (lower) by about the size of the window title bar.  It should restore it the same place it was when saved. 
- 
-====2.x Invidious==== 
- 
-* Can't easily reproduce this one.  Had just bought a permanent apartment. ​ Saved by '​a'​pplying the bed and probably hit '​a'​ more that one once very quickly. ​ The client crashed immediately. ​ Had done a bunch of dropping right before. ​ I don't have a clue what went bad.  It was an RPM build. ​ I do not know what the 24881 means in the message below. 
- 
-  $ crossfire-client-gtk2 
-  ​ 
-  (crossfire-client-gtk2:​24881):​ Gtk-CRITICAL **: gtk_widget_modify_fg:​ assertion `GTK_IS_WIDGET (widget)'​ failed 
-  ​ 
-  (crossfire-client-gtk2:​24881):​ Gtk-CRITICAL **: gtk_widget_modify_font:​ assertion `GTK_IS_WIDGET (widget)'​ failed 
-  Segmentation fault 
-  ​ 
-  $ date 
-  Sat Dec 20 22:27:49 CST 2008 
-  $ crossfire-client-gtk2 -loglevel 0 
-  [  INFO  ] (Client Version) GTK V2 Unix Client 2.0.r11029 
  
wiki/data/pages/user/kbulgrien.1716244767.txt.gz ยท Last modified: 2024/05/20 17:39 by leaf