X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e85657112352cc7e2813bb4d7807b6f8d32a3804..17b1d76b4add82305463d10b9f65668d06169363:/docs/tech/tn0013.txt diff --git a/docs/tech/tn0013.txt b/docs/tech/tn0013.txt index d4dcb5561a..6b170e754a 100644 --- a/docs/tech/tn0013.txt +++ b/docs/tech/tn0013.txt @@ -5,26 +5,39 @@ --------------- This note explains what should be done, step by step, to prepare the packages -for a wxGTK distribution. +for a wxGTK distribution. Note that the same instructions should be used for +the other Unix-based ports including wxMotif, wxX11 and wxBase. + +See distrib/msw/makerpm for a script that embodies some of the steps +below. 1. Preparing the sources ------------------------ a) Do a fresh checkout using the command - cvs -d :pserver:anoncvs@cvs.wxwindows.org:/home/wxcvs co wxGTK + cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/packs/cvsroots/wxwidgets co wxGTK NB: if you realize later that some needed files were not checked out by this command, please modify CVSROOT/modules to include the missing files so that it works for the next release! You also need the samples, demos and contrib directories, so change to - wxWindows directory created by the first cvs command and do "cvs up -d" - for each of them. + wxWidgets directory created by the first cvs command and do "cvs up -d" + for each of them. Of course, you can also check out everything (use + wxWidgets module name instead of wxGTK) if the bandwidth and disk space + are not a problem. + +b) Create a build directory under wxWidgets, e.g. I use "gtk-release", + "cd" to it and run configure: the options don't really matter, you can use + something like + + ../configure -C --without-subdirs -b) Create a build directory under wxWindows, e.g. I use "gtk-release", - "cd" to it and type "make -j1 dist bzip-dist-only". This should create - the following files; + to make it run a bit faster. + +c) Then type "make -j1 dist bzip-dist-only". This should create the + following files; wxGTK-${version}.tar.bz2 wxGTK-demos-${version}.tar.bz2 @@ -39,7 +52,7 @@ b) Create a build directory under wxWindows, e.g. I use "gtk-release", allow parallelizing, if your make is aliased to "make -j4" (like mine), it simply won't work. - Note 2; there are also dist-only and bzip-dist targets, the "-only" suffix + Note 2: there are also dist-only and bzip-dist targets, the "-only" suffix means to just create the archive supposing that the files themselves are already under _dist_dir/wxGTK-${version} where "make dist" creates them @@ -47,10 +60,10 @@ b) Create a build directory under wxWindows, e.g. I use "gtk-release", 2. Building the RPMs -------------------- -Note that we didn't check if the library actually could be built - this is +Note that we didn't check if the library actually could be built -- this is because it is done during this step, during the RPM generation. If, for whatever reason, you don't build the RPMs, you must have checked previously -that the library could be built - nothing worse than a release which doesn't +that the library could be built -- nothing worse than a release which doesn't even compile! The rest of this section applies to a system with RPM installed (Redhat in my @@ -62,16 +75,17 @@ a) Setting up the RPM tree: you should have the RPM tree set up properly Otherwise you may do it (without root rights) in any directory RPM_ROOT. RPM_ROOT should have the following subdirectories: BUILD, RPMS, SOURCES, SPECS and SRPMS. RPMS should contain i386, i686 and noarch. You should - also create the file ~/.rpmmacros containing at least the following line: - "%_topdir /biton/zeitlin/rpm". + also create the file ~/.rpmmacros containing at least a line like this: + "%_topdir /biton/zeitlin/rpm" (replace the directory with $RPM_ROOT, of + course) In either case, put the file wxGTK-${version}.tar.bz2 in SOURCES subdirectory and wxGTK.spec in SPECS one (hint: you can just link them from - there - like this you won't forget to update them after redoing "make + there -- like this you won't forget to update them after redoing "make dist"). -b) Start RPM build by going to RPM_ROOT directory and typing "rpm -bb - SPECS/wxGTK.spec". It may be a good idea to append "2&>1 | tee wxGTK.out" +b) Start RPM build by going to RPM_ROOT directory and typing "rpm -ba + SPECS/wxGTK.spec". It may be a good idea to append "2>&1 | tee wxGTK.out" (or "|& tee" if you're using the one true shell ;-) as it might be not easy to detect errors in the verbose rpm output if anything goes wrong. @@ -79,63 +93,68 @@ b) Start RPM build by going to RPM_ROOT directory and typing "rpm -bb you'll have to restart from the very beginning because rpm doesn't allow to short circuit the package generation). - If everything goes well, the following files are produced: + If everything goes well, this should produce many files in SRPMS and + RPMS/i386 subdirectories. + + Use "rpm -ba --with gtk2" to build GTK+2 version of wxGTK and use + "rpm -ba --with gtk2 --with unicode" to build GTK+2 Unicode build + (these are defaults, you can use --without option to change this). - SRPMS/wxGTK-${version}-1.src.rpm - RPMS/i386/wxGTK-${version}-1.i386.rpm - RPMS/i386/wxGTK-devel-${version}-1.i386.rpm - RPMS/i386/wxGTK-gl-${version}-1.i386.rpm - RPMS/i386/wxGTK-static-${version}-1.i386.rpm + Note: you may want to set the environment variable SMP to 3 or 4 on an + SMP machine to speed up the build (it uses "make -j$SMP" if the + variable is set) + +c) Test the resulting RPMs: install them using "rpm -i" (or "rpm -U) as usual + and try to build some samples using makefile.unx ("make -f makefile.unx") + so that they use wx-config in the PATH and not from the build tree 3. Building the DEBs -------------------- -[Ron is doing this] +This is explained in more details in debian/README.HowToBuild.txt. + 4. Uploading the files ---------------------- -All 11 files should be uploaded (via FTP) to several locations. +All files should be uploaded (via FTP) to several locations. a) incoming.sourceforge.net, go to project admin page on sf.net and choose add/edit releases for more details -b) ftp.remstar.com (Julian has the password) +b) ftp://biolpc22.york.ac.uk/pub (Julian has the password) 5. Announcing the release ------------------------- -a) FreshMeat: - - http://freshmeat.net/projects/wxwindowsgtk/ - - username and password are "wxgtk" for logging in ++ update www.wxwidgets.org + ++ FreshMeat: + - http://freshmeat.net/projects/wxwidgets/ - hit "new release" at the top - follow the step by step -b) wx-announce mailing list: mailto:wx-announce@lists.wxwindows.org ++ wx-announce mailing list: mailto:wx-announce@lists.wxwidgets.org - [where is the announcement text? TODO] + The standard announcement text is in docs/publicity/announce.txt -c) update www.wxwindows.org ++ GnomeFiles: + - http://www.gnomefiles.org/app.php/wxWidgets + (only for stable releases, probably need Robert's account) -d) GNOME (very effective, stays on front page for days): - - http://www.gnome.org/applist - - Search for wxWindows - - Update the version number - - Ignore the error message - -e) MacNN: ++ MacNN: - http://www.macnn.com - Contact or Contribute or something -f) MacRumors: ++ MacRumors: - http://www.macrumors.com - Contact or Contribute or something -g) Apple Developers Connection: ++ Apple Developers Connection: mailto: adcnews@apple.com - -h) LinuxDevices.com: + ++ LinuxDevices.com: Interesting for wxUniversal. -i) The Python mailing list: ++ The Python mailing list: