1 How to prepare wxGTK distribution 2 ================================= 3 40. Introduction 5--------------- 6 7This note explains what should be done, step by step, to prepare the packages 8for a wxGTK distribution. Note that the same instructions should be used for 9the other Unix-based ports including wxMotif, wxX11 and wxBase. 10 11See distrib/msw/makerpm for a script that embodies some of the steps 12below. 13 141. Preparing the sources 15------------------------ 16 17a) Do a fresh checkout using the command 18 19 cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/packs/cvsroots/wxwidgets co wxGTK 20 21 NB: if you realize later that some needed files were not checked out 22 by this command, please modify CVSROOT/modules to include the missing 23 files so that it works for the next release! 24 25 You also need the samples, demos and contrib directories, so change to 26 wxWidgets directory created by the first cvs command and do "cvs up -d" 27 for each of them. Of course, you can also check out everything (use 28 wxWidgets module name instead of wxGTK) if the bandwidth and disk space 29 are not a problem. 30 31b) Create a build directory under wxWidgets, e.g. I use "gtk-release", 32 "cd" to it and run configure: the options don't really matter, you can use 33 something like 34 35 ../configure -C --without-subdirs 36 37 to make it run a bit faster. 38 39c) Then type "make -j1 dist bzip-dist-only". This should create the 40 following files; 41 42 wxGTK-${version}.tar.bz2 43 wxGTK-demos-${version}.tar.bz2 44 wxGTK-samples-${version}.tar.bz2 45 wxGTK-${version}.tar.gz 46 wxGTK-demos-${version}.tar.gz 47 wxGTK-samples-${version}.tar.gz 48 49 where version is something like 2.3.2. 50 51 Note 1: "-j1" is needed now because make dist target is broken and doesn't 52 allow parallelizing, if your make is aliased to "make -j4" (like 53 mine), it simply won't work. 54 55 Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix 56 means to just create the archive supposing that the files 57 themselves are already under _dist_dir/wxGTK-${version} where 58 "make dist" creates them 59 602. Building the RPMs 61-------------------- 62 63Note that we didn't check if the library actually could be built -- this is 64because it is done during this step, during the RPM generation. If, for 65whatever reason, you don't build the RPMs, you must have checked previously 66that the library could be built -- nothing worse than a release which doesn't 67even compile! 68 69The rest of this section applies to a system with RPM installed (Redhat in my 70case). 71 72a) Setting up the RPM tree: you should have the RPM tree set up properly 73 before doing anything else. If you are going to build the RPMs as root, 74 you already have one under /usr/src/redhat and can just build there. 75 Otherwise you may do it (without root rights) in any directory RPM_ROOT. 76 RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES, 77 SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should 78 also create the file ~/.rpmmacros containing at least a line like this: 79 "%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of 80 course) 81 82 In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES 83 subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from 84 there -- like this you won't forget to update them after redoing "make 85 dist"). 86 87b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba 88 SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out" 89 (or "|& tee" if you're using the one true shell ;-) as it might be not 90 easy to detect errors in the verbose rpm output if anything goes wrong. 91 92 Then wait (and pray that nothing goes wrong because if anything does 93 you'll have to restart from the very beginning because rpm doesn't allow 94 to short circuit the package generation). 95 96 If everything goes well, this should produce many files in SRPMS and 97 RPMS/i386 subdirectories. 98 99 Use "rpm -ba --with gtk2" to build GTK+2 version of wxGTK and use 100 "rpm -ba --with gtk2 --with unicode" to build GTK+2 Unicode build 101 (these are defaults, you can use --without option to change this). 102 103 Note: you may want to set the environment variable SMP to 3 or 4 on an 104 SMP machine to speed up the build (it uses "make -j$SMP" if the 105 variable is set) 106 107c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual 108 and try to build some samples using makefile.unx ("make -f makefile.unx") 109 so that they use wx-config in the PATH and not from the build tree 110 1113. Building the DEBs 112-------------------- 113 114This is explained in more details in debian/README.HowToBuild.txt. 115 116 1174. Uploading the files 118---------------------- 119 120All files should be uploaded (via FTP) to several locations. 121 122a) incoming.sourceforge.net, go to project admin page on sf.net and choose 123 add/edit releases for more details 124 125b) ftp://biolpc22.york.ac.uk/pub (Julian has the password) 126 1275. Announcing the release 128------------------------- 129 130+ update www.wxwidgets.org 131 132+ FreshMeat: 133 - http://freshmeat.net/projects/wxwidgets/ 134 - hit "new release" at the top 135 - follow the step by step 136 137+ wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org 138 139 The standard announcement text is in docs/publicity/announce.txt 140 141+ GnomeFiles: 142 - http://www.gnomefiles.org/app.php/wxWidgets 143 (only for stable releases, probably need Robert's account) 144 145+ MacNN: 146 - http://www.macnn.com 147 - Contact or Contribute or something 148 149+ MacRumors: 150 - http://www.macrumors.com 151 - Contact or Contribute or something 152 153+ Apple Developers Connection: 154 mailto: adcnews@apple.com 155 156+ LinuxDevices.com: 157 Interesting for wxUniversal. 158 159+ The Python mailing list: 160 161