Rebuild user-manual, developer-manual and faq.
[privoxy.git] / doc / webserver / developer-manual / newrelease.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">
2 <HTML
3 ><HEAD
4 ><TITLE
5 >Releasing a New Version</TITLE
6 ><META
7 NAME="GENERATOR"
8 CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK
9 REL="HOME"
10 TITLE="Privoxy Developer Manual"
11 HREF="index.html"><LINK
12 REL="PREVIOUS"
13 TITLE="Testing Guidelines"
14 HREF="testing.html"><LINK
15 REL="NEXT"
16 TITLE="Update the Webserver"
17 HREF="webserver-update.html"><LINK
18 REL="STYLESHEET"
19 TYPE="text/css"
20 HREF="../p_doc.css"><META
21 HTTP-EQUIV="Content-Type"
22 CONTENT="text/html;
23 charset=ISO-8859-1"></HEAD
24 ><BODY
25 CLASS="SECT1"
26 BGCOLOR="#EEEEEE"
27 TEXT="#000000"
28 LINK="#0000FF"
29 VLINK="#840084"
30 ALINK="#0000FF"
31 ><DIV
32 CLASS="NAVHEADER"
33 ><TABLE
34 SUMMARY="Header navigation table"
35 WIDTH="100%"
36 BORDER="0"
37 CELLPADDING="0"
38 CELLSPACING="0"
39 ><TR
40 ><TH
41 COLSPAN="3"
42 ALIGN="center"
43 >Privoxy Developer Manual</TH
44 ></TR
45 ><TR
46 ><TD
47 WIDTH="10%"
48 ALIGN="left"
49 VALIGN="bottom"
50 ><A
51 HREF="testing.html"
52 ACCESSKEY="P"
53 >Prev</A
54 ></TD
55 ><TD
56 WIDTH="80%"
57 ALIGN="center"
58 VALIGN="bottom"
59 ></TD
60 ><TD
61 WIDTH="10%"
62 ALIGN="right"
63 VALIGN="bottom"
64 ><A
65 HREF="webserver-update.html"
66 ACCESSKEY="N"
67 >Next</A
68 ></TD
69 ></TR
70 ></TABLE
71 ><HR
72 ALIGN="LEFT"
73 WIDTH="100%"></DIV
74 ><DIV
75 CLASS="SECT1"
76 ><H1
77 CLASS="SECT1"
78 ><A
79 NAME="NEWRELEASE"
80 >6. Releasing a New Version</A
81 ></H1
82 ><P
83 >        When we release versions of <SPAN
84 CLASS="APPLICATION"
85 >Privoxy</SPAN
86 >,
87         our work leaves our cozy secret lab and has to work in the cold
88         RealWorld[tm]. Once it is released, there is no way to call it
89         back, so it is very important that great care is taken to ensure
90         that everything runs fine, and not to introduce problems in the
91         very last minute.
92     </P
93 ><P
94 >        So when releasing a new version, please adhere exactly to the
95         procedure outlined in this chapter.
96     </P
97 ><P
98 >       The following programs are required to follow this process:
99         <TT
100 CLASS="FILENAME"
101 >ncftpput</TT
102 > (ncftp), <TT
103 CLASS="FILENAME"
104 >scp, ssh</TT
105 > (ssh),
106         <TT
107 CLASS="FILENAME"
108 >gmake</TT
109 > (GNU's version of make), autoconf, cvs.
110     </P
111 ><DIV
112 CLASS="SECT2"
113 ><H2
114 CLASS="SECT2"
115 ><A
116 NAME="VERSIONNUMBERS"
117 >6.1. Version numbers</A
118 ></H2
119 ><P
120 >      First you need to determine which version number the release will have. 
121       <SPAN
122 CLASS="APPLICATION"
123 >Privoxy</SPAN
124 > version numbers consist of three numbers,
125       separated by dots, like in X.Y.Z (e.g. 3.0.0), where:
126         <P
127 ></P
128 ><UL
129 ><LI
130 ><P
131 >              X, the version major, is rarely ever changed. It is increased by one if
132               turning a development branch into stable substantially changes the functionality,
133               user interface or configuration syntax. Majors 1 and 2 were 
134               <SPAN
135 CLASS="APPLICATION"
136 >Junkbuster</SPAN
137 >, and 3 will be the first stable
138               <SPAN
139 CLASS="APPLICATION"
140 >Privoxy</SPAN
141 > release.
142             </P
143 ></LI
144 ><LI
145 ><P
146 >              Y, the version minor, represents the branch within the major version.
147               At any point in time, there are two branches being maintained:
148               The stable branch, with an even minor, say, 2N, in which no functionality is
149               being added and only bug-fixes are made, and 2N+1, the development branch, in
150               which the further development of <SPAN
151 CLASS="APPLICATION"
152 >Privoxy</SPAN
153 > takes
154               place.
155               This enables us to turn the code upside down and inside out, while at the same time
156               providing and maintaining a stable version.
157               The minor is reset to zero (and one) when the major is incremented. When a development
158               branch has matured to the point where it can be turned into stable, the old stable branch
159               2N is given up (i.e. no longer maintained), the former development branch 2N+1 becomes the
160               new stable branch 2N+2, and a new development branch 2N+3 is opened.
161             </P
162 ></LI
163 ><LI
164 ><P
165 >              Z, the point or sub version, represents a release of the software within a branch.
166               It is therefore incremented immediately before each code freeze. 
167               In development branches, only the even point versions correspond to actual releases,
168               while the odd ones denote the evolving state of the sources on CVS in between.
169               It follows that Z is odd on CVS in development branches most of the time. There, it gets
170               increased to an even number immediately before a code freeze, and is increased to an odd
171               number again immediately thereafter.
172               This ensures that builds from CVS snapshots are easily distinguished from released versions.
173               The point version is reset to zero when the minor changes.
174             </P
175 ><P
176 >              Stable branches work a little differently, since there should be
177               little to no development happening in such branches. Remember,
178               only bugfixes, which presumably should have had some testing
179               before being committed. Stable branches will then have their 
180               version reported as <TT
181 CLASS="LITERAL"
182 >0.0.0</TT
183 >, during that period 
184               between releases when changes are being added. This is to denote 
185               that this code is <SPAN
186 CLASS="emphasis"
187 ><I
188 CLASS="EMPHASIS"
189 >not for release</I
190 ></SPAN
191 >. Then 
192               as the release nears, the version is bumped according: e.g. 
193               <TT
194 CLASS="LITERAL"
195 >3.0.1 -&#62; 0.0.0 -&#62; 3.0.2</TT
196 >.
197             </P
198 ></LI
199 ></UL
200 >
201     </P
202 ><P
203 >     In summary, the main CVS trunk is the development branch where new
204      features are being worked on for the next stable series. This should
205      almost always be where the most activity takes place. There is always at
206      least one stable branch from the trunk, e.g now it is
207      <TT
208 CLASS="LITERAL"
209 >3.0</TT
210 >, which is only used to release stable versions.
211      Once the initial *.0 release of the stable branch has been done, then as a
212      rule, only bugfixes that have had prior testing should be committed to
213      the stable branch. Once there are enough bugfixes to justify a new
214      release, the version of this branch is again incremented Example: 3.0.0
215      -&#62; 3.0.1 -&#62; 3.0.2, etc are all stable releases from within the stable
216      branch. 3.1.x is currently the main trunk, and where work on 3.2.x is
217      taking place. If any questions, please post to the devel list
218      <SPAN
219 CLASS="emphasis"
220 ><I
221 CLASS="EMPHASIS"
222 >before</I
223 ></SPAN
224 > committing to a stable branch!
225     </P
226 ><P
227 >     Developers should remember too that if they commit a bugfix to the stable 
228      branch, this will more than likely require a separate submission to the 
229      main trunk, since these are separate development trees within CVS. If you 
230      are working on both, then this would require at least two separate check
231      outs (i.e main trunk, <SPAN
232 CLASS="emphasis"
233 ><I
234 CLASS="EMPHASIS"
235 >and</I
236 ></SPAN
237 > the stable release branch,
238      which is <TT
239 CLASS="LITERAL"
240 >v_3_0_branch</TT
241 > at the moment).
242     </P
243 ></DIV
244 ><DIV
245 CLASS="SECT2"
246 ><H2
247 CLASS="SECT2"
248 ><A
249 NAME="BEFORERELEASE"
250 >6.2. Before the Release: Freeze</A
251 ></H2
252 ><P
253 >       The following <SPAN
254 CLASS="emphasis"
255 ><I
256 CLASS="EMPHASIS"
257 >must be done by one of the
258        developers</I
259 ></SPAN
260 > prior to each new release.
261      </P
262 ><P
263 >      <P
264 ></P
265 ><UL
266 ><LI
267 ><P
268 >         Make sure that everybody who has worked on the code in the last
269          couple of days has had a chance to yell <SPAN
270 CLASS="QUOTE"
271 >"no!"</SPAN
272 > in case
273          they have pending changes/fixes in their pipelines. Announce the
274          freeze so that nobody will interfere with last minute changes.
275         </P
276 ></LI
277 ><LI
278 ><P
279 >         Increment the version number (point from odd to even in development
280          branches!) in <TT
281 CLASS="FILENAME"
282 >configure.in</TT
283 >. (RPM spec files 
284          will need to be incremented as well.)
285        </P
286 ></LI
287 ><LI
288 ><P
289 >        If <TT
290 CLASS="FILENAME"
291 >default.action</TT
292 > has changed since last
293         release (i.e. software release or standalone actions file release),
294         bump up its version info to A.B in this line:
295        </P
296 ><P
297
298         <TABLE
299 BORDER="0"
300 BGCOLOR="#E0E0E0"
301 WIDTH="90%"
302 ><TR
303 ><TD
304 ><PRE
305 CLASS="PROGRAMLISTING"
306 >  {+add-header{X-Actions-File-Version: A.B} -filter -no-popups}</PRE
307 ></TD
308 ></TR
309 ></TABLE
310 >
311        </P
312 ><P
313
314         Then change the version info in doc/webserver/actions/index.php,
315         line: '$required_actions_file_version = "A.B";'
316        </P
317 ></LI
318 ><LI
319 ><P
320 >        All documentation should be rebuild after the version bump.
321         Finished docs should be then be committed to CVS (for those 
322         without the ability to build these). Some docs may require 
323         rather obscure processing tools. <TT
324 CLASS="FILENAME"
325 >config</TT
326 >,
327         the man page (and the html version of the man page), and the PDF docs
328         fall in this category. REAMDE, the man page, AUTHORS, and config
329         should all also be committed to CVS for other packagers. The 
330         formal docs should be uploaded to the webserver. See the
331         Section "Updating the webserver" in this manual for details.
332        </P
333 ></LI
334 ><LI
335 ><P
336 >         The <I
337 CLASS="CITETITLE"
338 >User Manual</I
339 > is also used for context 
340          sensitive help for the CGI editor. This is version sensitive, so that
341          the user will get appropriate help for his/her release. So with 
342          each release a fresh version should be uploaded to the webserver
343          (this is in addition to the main <I
344 CLASS="CITETITLE"
345 >User Manual</I
346 >
347          link from the main page since we need to keep manuals for various 
348          versions available). The CGI pages will link to something like 
349          <TT
350 CLASS="LITERAL"
351 >http://privoxy.org/$(VERSION)/user-manual/</TT
352 >. This
353          will need to be updated for each new release. There is no Makefile
354          target for this at this time!!! It needs to be done manually.
355        </P
356 ></LI
357 ><LI
358 ><P
359 >        All developers should look at the <TT
360 CLASS="FILENAME"
361 >ChangeLog</TT
362 > and
363         make sure noteworthy changes are referenced.
364        </P
365 ></LI
366 ><LI
367 ><P
368 >        <SPAN
369 CLASS="emphasis"
370 ><I
371 CLASS="EMPHASIS"
372 >Commit all files that were changed in the above steps!</I
373 ></SPAN
374 >
375        </P
376 ></LI
377 ><LI
378 ><P
379 >        Tag all files in CVS with the version number with
380         <SPAN
381 CLASS="QUOTE"
382 >"<B
383 CLASS="COMMAND"
384 >cvs tag v_X_Y_Z</B
385 >"</SPAN
386 >.
387         Don't use vX_Y_Z, ver_X_Y_Z, v_X.Y.Z (won't work) etc.
388        </P
389 ></LI
390 ><LI
391 ><P
392 >        If the release was in a development branch, increase the point version
393         from even to odd (X.Y.(Z+1)) again in <TT
394 CLASS="FILENAME"
395 >configure.in</TT
396 > and
397         commit your change.
398        </P
399 ></LI
400 ><LI
401 ><P
402 >        On the webserver, copy the user manual to a new top-level directory
403         called <TT
404 CLASS="FILENAME"
405 >X.Y.Z</TT
406 >. This ensures that help links from the CGI
407         pages, which have the version as a prefix, will go into the right version of the manual.
408         If this is a development branch release, also symlink <TT
409 CLASS="FILENAME"
410 >X.Y.(Z-1)</TT
411 >
412         to <TT
413 CLASS="FILENAME"
414 >X.Y.Z</TT
415 > and <TT
416 CLASS="FILENAME"
417 >X.Y.(Z+1)</TT
418 > to
419         <TT
420 CLASS="FILENAME"
421 >.</TT
422 > (i.e. dot). 
423        </P
424 ></LI
425 ></UL
426 >
427      </P
428 ></DIV
429 ><DIV
430 CLASS="SECT2"
431 ><H2
432 CLASS="SECT2"
433 ><A
434 NAME="THERELEASE"
435 >6.3. Building and Releasing the Packages</A
436 ></H2
437 ><P
438 >      Now the individual packages can be built and released. Note that for
439       GPL reasons the first package to be released is always the source tarball.
440      </P
441 ><P
442 >      For <SPAN
443 CLASS="emphasis"
444 ><I
445 CLASS="EMPHASIS"
446 >all</I
447 ></SPAN
448 > types of packages, including the source tarball,
449       <SPAN
450 CLASS="emphasis"
451 ><I
452 CLASS="EMPHASIS"
453 >you must make sure that you build from clean sources by exporting
454       the right version from CVS into an empty directory</I
455 ></SPAN
456 > (just press return when
457       asked for a password):
458      </P
459 ><P
460 >      <TABLE
461 BORDER="0"
462 BGCOLOR="#E0E0E0"
463 WIDTH="100%"
464 ><TR
465 ><TD
466 ><PRE
467 CLASS="PROGRAMLISTING"
468 >  mkdir dist # delete or choose different name if it already exists
469   cd dist
470   cvs -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa login
471   cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa export -r v_X_Y_Z current</PRE
472 ></TD
473 ></TR
474 ></TABLE
475 >
476     </P
477 ><P
478 >     <SPAN
479 CLASS="emphasis"
480 ><I
481 CLASS="EMPHASIS"
482 >Do NOT change</I
483 ></SPAN
484 > a single bit, including, but not limited to
485      version information after export from CVS. This is to make sure that
486      all release packages, and with them, all future bug reports, are based
487      on exactly the same code.
488     </P
489 ><DIV
490 CLASS="WARNING"
491 ><P
492 ></P
493 ><TABLE
494 CLASS="WARNING"
495 BORDER="1"
496 WIDTH="100%"
497 ><TR
498 ><TD
499 ALIGN="CENTER"
500 ><B
501 >Warning</B
502 ></TD
503 ></TR
504 ><TR
505 ><TD
506 ALIGN="LEFT"
507 ><P
508 >      Every significant release of Privoxy has included at least one 
509       package that either had incorrect versions of files, missing files, 
510       or incidental leftovers from a previous build process that gave 
511       unknown numbers of users headaches to try to figure out what was 
512       wrong. PLEASE, make sure you are using pristene sources, and are
513       following the prescribed process!
514      </P
515 ></TD
516 ></TR
517 ></TABLE
518 ></DIV
519 ><P
520 >     Please find additional instructions for the source tarball and the
521      individual platform dependent binary packages below. And details 
522      on the Sourceforge release process below that.
523     </P
524 ><DIV
525 CLASS="SECT3"
526 ><H3
527 CLASS="SECT3"
528 ><A
529 NAME="PACK-GUIDELINES"
530 >6.3.1. Note on Privoxy Packaging</A
531 ></H3
532 ><P
533 >      Please keep these general guidelines in mind when putting together 
534       your package. These apply to <SPAN
535 CLASS="emphasis"
536 ><I
537 CLASS="EMPHASIS"
538 >all</I
539 ></SPAN
540 > platforms!
541      </P
542 ><P
543 >      <P
544 ></P
545 ><UL
546 ><LI
547 ><P
548 >          <SPAN
549 CLASS="APPLICATION"
550 >Privoxy</SPAN
551 > <SPAN
552 CLASS="emphasis"
553 ><I
554 CLASS="EMPHASIS"
555 >requires</I
556 ></SPAN
557 >
558           write access to: all <TT
559 CLASS="FILENAME"
560 >*.action</TT
561 > files, all 
562           logfiles, and the <TT
563 CLASS="FILENAME"
564 >trust</TT
565 > file. You will 
566           need to determine the best way to do this for your platform.
567         </P
568 ></LI
569 ><LI
570 ><P
571 >          Please include up to date documentation. At a bare minimum:
572         </P
573 ><P
574 ></P
575 ><TABLE
576 BORDER="0"
577 ><TBODY
578 ><TR
579 ><TD
580 >          <TT
581 CLASS="FILENAME"
582 >LICENSE</TT
583 > (top-level directory)
584          </TD
585 ></TR
586 ></TBODY
587 ></TABLE
588 ><P
589 ></P
590 ><P
591 ></P
592 ><TABLE
593 BORDER="0"
594 ><TBODY
595 ><TR
596 ><TD
597 >          <TT
598 CLASS="FILENAME"
599 >README</TT
600 > (top-level directory)
601          </TD
602 ></TR
603 ></TBODY
604 ></TABLE
605 ><P
606 ></P
607 ><P
608 ></P
609 ><TABLE
610 BORDER="0"
611 ><TBODY
612 ><TR
613 ><TD
614 >          <TT
615 CLASS="FILENAME"
616 >AUTHORS</TT
617 > (top-level directory)
618          </TD
619 ></TR
620 ></TBODY
621 ></TABLE
622 ><P
623 ></P
624 ><P
625 ></P
626 ><TABLE
627 BORDER="0"
628 ><TBODY
629 ><TR
630 ><TD
631 >          <TT
632 CLASS="FILENAME"
633 >man page</TT
634 > (top-level directory, Unix-like
635           platforms only)
636          </TD
637 ></TR
638 ></TBODY
639 ></TABLE
640 ><P
641 ></P
642 ><P
643 ></P
644 ><TABLE
645 BORDER="0"
646 ><TBODY
647 ><TR
648 ><TD
649 >          <TT
650 CLASS="FILENAME"
651 >The User Manual</TT
652 > (doc/webserver/user-manual/)
653          </TD
654 ></TR
655 ></TBODY
656 ></TABLE
657 ><P
658 ></P
659 ><P
660 ></P
661 ><TABLE
662 BORDER="0"
663 ><TBODY
664 ><TR
665 ><TD
666 >          <TT
667 CLASS="FILENAME"
668 >FAQ</TT
669 > (doc/webserver/faq/)
670          </TD
671 ></TR
672 ></TBODY
673 ></TABLE
674 ><P
675 ></P
676 ><P
677 >          Also suggested: <TT
678 CLASS="FILENAME"
679 >Developer Manual</TT
680 >
681           (doc/webserver/developer-manual) and <TT
682 CLASS="FILENAME"
683 >ChangeLog</TT
684 >
685           (top-level directory). <TT
686 CLASS="FILENAME"
687 >FAQ</TT
688 > and the manuals are
689           HTML docs. There are also text versions in
690           <TT
691 CLASS="FILENAME"
692 >doc/text/</TT
693 > which could conceivably also be
694           included.
695         </P
696 ><P
697 >         The documentation has been designed such that the manuals are linked
698          to each other from parallel directories, and should be packaged 
699          that way. <TT
700 CLASS="FILENAME"
701 >privoxy-index.html</TT
702 > can also be
703          included and can serve as a focal point for docs and other links of
704          interest (and possibly renamed to <TT
705 CLASS="FILENAME"
706 >index.html</TT
707 >).
708          This should be one level up from the manuals. There is a link also 
709          on this page to an HTMLized version of the man page. To avoid 404 for
710          this, it is in CVS as
711          <TT
712 CLASS="FILENAME"
713 >doc/webserver/man-page/privoxy-man-page.html</TT
714 >,
715          and should be included along with the manuals. There is also a
716          css stylesheets that can be included for better presentation:
717          <TT
718 CLASS="FILENAME"
719 >p_doc.css</TT
720 >. This should be in the same directory
721          with <TT
722 CLASS="FILENAME"
723 >privoxy-index.html</TT
724 >, (i.e. one level up from
725          the manual directories).
726         </P
727 ></LI
728 ><LI
729 ><P
730 >        <TT
731 CLASS="FILENAME"
732 >user.action</TT
733 > and <TT
734 CLASS="FILENAME"
735 >user.filter</TT
736 >
737         are designed for local preferences. Make sure these do not get overwritten!
738         <TT
739 CLASS="FILENAME"
740 >config</TT
741 > should not be overwritten either. This 
742         has especially important configuration data in it.
743         <TT
744 CLASS="FILENAME"
745 >trust</TT
746 > should be left in tact as well.
747        </P
748 ></LI
749 ><LI
750 ><P
751 >        Other configuration files (<TT
752 CLASS="FILENAME"
753 >default.action</TT
754 > and
755         <TT
756 CLASS="FILENAME"
757 >default.filter</TT
758 >) should be installed as the new
759         defaults, but all previously installed configuration files should be
760         preserved as backups. This is just good manners :-) These files are
761         likely to change between releases and contain important new features
762         and bug fixes.
763        </P
764 ></LI
765 ><LI
766 ><P
767 >       Please check platform specific notes in this doc, if you haven't 
768        done <SPAN
769 CLASS="QUOTE"
770 >"Privoxy"</SPAN
771 > packaging before for other platform 
772        specific issues. Conversely, please add any notes that you know 
773        are important for your platform (or contact one of the doc 
774        maintainers to do this if you can't).
775       </P
776 ></LI
777 ><LI
778 ><P
779 >       Packagers should do a <SPAN
780 CLASS="QUOTE"
781 >"clean"</SPAN
782 > install of their 
783        package after building it. So any previous installs should be 
784        removed first to ensure the integrity of the newly built package. 
785        Then run the package for a while to make sure there are no 
786        obvious problems, before uploading.
787      </P
788 ></LI
789 ></UL
790 >
791      </P
792 ></DIV
793 ><DIV
794 CLASS="SECT3"
795 ><H3
796 CLASS="SECT3"
797 ><A
798 NAME="NEWRELEASE-TARBALL"
799 >6.3.2. Source Tarball</A
800 ></H3
801 ><P
802 >       First, <SPAN
803 CLASS="emphasis"
804 ><I
805 CLASS="EMPHASIS"
806 >make sure that you have freshly exported the right
807         version into an empty directory</I
808 ></SPAN
809 >. (See "Building and releasing
810         packages" above). Then run:
811         </P
812 ><P
813 >       <TABLE
814 BORDER="0"
815 BGCOLOR="#E0E0E0"
816 WIDTH="100%"
817 ><TR
818 ><TD
819 ><PRE
820 CLASS="PROGRAMLISTING"
821 >  cd current
822   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
823 ></TD
824 ></TR
825 ></TABLE
826 >
827         </P
828 ><P
829 >       Then do:
830         </P
831 ><P
832 >       <TABLE
833 BORDER="0"
834 BGCOLOR="#E0E0E0"
835 WIDTH="100%"
836 ><TR
837 ><TD
838 ><PRE
839 CLASS="PROGRAMLISTING"
840 >  make tarball-dist</PRE
841 ></TD
842 ></TR
843 ></TABLE
844 >
845         </P
846 ><P
847 >       To upload the package to Sourceforge, simply issue
848         </P
849 ><P
850 >       <TABLE
851 BORDER="0"
852 BGCOLOR="#E0E0E0"
853 WIDTH="100%"
854 ><TR
855 ><TD
856 ><PRE
857 CLASS="PROGRAMLISTING"
858 >  make tarball-upload</PRE
859 ></TD
860 ></TR
861 ></TABLE
862 >
863         </P
864 ><P
865 >       Go to the displayed URL and release the file publicly on Sourceforge.
866         For the change log field, use the relevant section of the
867         <TT
868 CLASS="FILENAME"
869 >ChangeLog</TT
870 > file.
871       </P
872 ></DIV
873 ><DIV
874 CLASS="SECT3"
875 ><H3
876 CLASS="SECT3"
877 ><A
878 NAME="NEWRELEASE-RPM"
879 >6.3.3. SuSE, Conectiva or Red Hat RPM</A
880 ></H3
881 ><P
882 >        In following text, replace <TT
883 CLASS="REPLACEABLE"
884 ><I
885 >dist</I
886 ></TT
887 >
888         with either <SPAN
889 CLASS="QUOTE"
890 >"rh"</SPAN
891 > for Red Hat or <SPAN
892 CLASS="QUOTE"
893 >"suse"</SPAN
894 > for SuSE.
895         </P
896 ><P
897 >       First, <SPAN
898 CLASS="emphasis"
899 ><I
900 CLASS="EMPHASIS"
901 >make sure that you have freshly exported the right
902         version into an empty directory</I
903 ></SPAN
904 >. (See "Building and releasing
905         packages" above). 
906         </P
907 ><P
908 >        As the only exception to not changing anything after export from CVS,
909         now examine the file <TT
910 CLASS="FILENAME"
911 >privoxy-</TT
912 ><TT
913 CLASS="REPLACEABLE"
914 ><I
915 >dist</I
916 ></TT
917 ><TT
918 CLASS="FILENAME"
919 >.spec</TT
920 >
921         and make sure that the version information and the RPM release number are
922         correct. The RPM release numbers for each version start at one. Hence it must
923         be reset to one if this is the first RPM for
924         <TT
925 CLASS="REPLACEABLE"
926 ><I
927 >dist</I
928 ></TT
929 > which is built from version
930         X.Y.Z. Check the
931         <A
932 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
933 TARGET="_top"
934 >file
935         list</A
936 > if unsure. Else, it must be set to the highest already available RPM
937         release number for that version plus one.
938         </P
939 ><P
940 >        Then run:
941         </P
942 ><P
943 >       <TABLE
944 BORDER="0"
945 BGCOLOR="#E0E0E0"
946 WIDTH="100%"
947 ><TR
948 ><TD
949 ><PRE
950 CLASS="PROGRAMLISTING"
951 >  cd current
952   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
953 ></TD
954 ></TR
955 ></TABLE
956 >
957         </P
958 ><P
959 >       Then do
960         </P
961 ><P
962 >       <TABLE
963 BORDER="0"
964 BGCOLOR="#E0E0E0"
965 WIDTH="100%"
966 ><TR
967 ><TD
968 ><PRE
969 CLASS="PROGRAMLISTING"
970 >  make <TT
971 CLASS="REPLACEABLE"
972 ><I
973 >dist</I
974 ></TT
975 >-dist</PRE
976 ></TD
977 ></TR
978 ></TABLE
979 >
980         </P
981 ><P
982 >       To upload the package to Sourceforge, simply issue
983         </P
984 ><P
985 >       <TABLE
986 BORDER="0"
987 BGCOLOR="#E0E0E0"
988 WIDTH="100%"
989 ><TR
990 ><TD
991 ><PRE
992 CLASS="PROGRAMLISTING"
993 >  make <TT
994 CLASS="REPLACEABLE"
995 ><I
996 >dist</I
997 ></TT
998 >-upload <TT
999 CLASS="REPLACEABLE"
1000 ><I
1001 >rpm_packagerev</I
1002 ></TT
1003 ></PRE
1004 ></TD
1005 ></TR
1006 ></TABLE
1007 >
1008         </P
1009 ><P
1010 >        where <TT
1011 CLASS="REPLACEABLE"
1012 ><I
1013 >rpm_packagerev</I
1014 ></TT
1015 > is the
1016         RPM release number as determined above.
1017         Go to the displayed URL and release the file publicly on Sourceforge.
1018         Use the release notes and change log from the source tarball package.
1019       </P
1020 ></DIV
1021 ><DIV
1022 CLASS="SECT3"
1023 ><H3
1024 CLASS="SECT3"
1025 ><A
1026 NAME="NEWRELEASE-OS2"
1027 >6.3.4. OS/2</A
1028 ></H3
1029 ><P
1030 >       First, <SPAN
1031 CLASS="emphasis"
1032 ><I
1033 CLASS="EMPHASIS"
1034 >make sure that you have freshly exported the right
1035         version into an empty directory</I
1036 ></SPAN
1037 >. (See "Building and releasing
1038         packages" above). Then get the OS/2 Setup module:
1039         </P
1040 ><P
1041 >       <TABLE
1042 BORDER="0"
1043 BGCOLOR="#E0E0E0"
1044 WIDTH="100%"
1045 ><TR
1046 ><TD
1047 ><PRE
1048 CLASS="PROGRAMLISTING"
1049 >  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co os2setup</PRE
1050 ></TD
1051 ></TR
1052 ></TABLE
1053 >
1054         </P
1055 ><P
1056 >       You will need a mix of development tools.
1057         The main compilation takes place with IBM Visual Age C++.
1058         Some ancillary work takes place with GNU tools, available from
1059         various sources like hobbes.nmsu.edu.
1060         Specificially, you will need <TT
1061 CLASS="FILENAME"
1062 >autoheader</TT
1063 >,
1064         <TT
1065 CLASS="FILENAME"
1066 >autoconf</TT
1067 > and <TT
1068 CLASS="FILENAME"
1069 >sh</TT
1070 > tools.
1071         The packaging takes place with WarpIN, available from various sources, including
1072         its home page: <A
1073 HREF="http://www.xworkplace.org/"
1074 TARGET="_top"
1075 >xworkplace</A
1076 >.
1077         </P
1078 ><P
1079 >       Change directory to the <TT
1080 CLASS="FILENAME"
1081 >os2setup</TT
1082 > directory.
1083         Edit the os2build.cmd file to set the final executable filename.
1084         For example, 
1085         </P
1086 ><P
1087 >       <TABLE
1088 BORDER="0"
1089 BGCOLOR="#E0E0E0"
1090 WIDTH="100%"
1091 ><TR
1092 ><TD
1093 ><PRE
1094 CLASS="PROGRAMLISTING"
1095 >  installExeName='privoxyos2_setup_X.Y.Z.exe'</PRE
1096 ></TD
1097 ></TR
1098 ></TABLE
1099 >
1100         </P
1101 ><P
1102 >       Next, edit the <TT
1103 CLASS="FILENAME"
1104 >IJB.wis</TT
1105 > file so the release number matches
1106         in the <TT
1107 CLASS="FILENAME"
1108 >PACKAGEID</TT
1109 > section:
1110         </P
1111 ><P
1112 >       <TABLE
1113 BORDER="0"
1114 BGCOLOR="#E0E0E0"
1115 WIDTH="100%"
1116 ><TR
1117 ><TD
1118 ><PRE
1119 CLASS="PROGRAMLISTING"
1120 >  PACKAGEID="Privoxy Team\Privoxy\Privoxy Package\X\Y\Z"</PRE
1121 ></TD
1122 ></TR
1123 ></TABLE
1124 >
1125         </P
1126 ><P
1127 >       You're now ready to build.  Run:
1128         </P
1129 ><P
1130 >       <TABLE
1131 BORDER="0"
1132 BGCOLOR="#E0E0E0"
1133 WIDTH="100%"
1134 ><TR
1135 ><TD
1136 ><PRE
1137 CLASS="PROGRAMLISTING"
1138 >  os2build</PRE
1139 ></TD
1140 ></TR
1141 ></TABLE
1142 >
1143         </P
1144 ><P
1145 >         You will find the  WarpIN-installable executable in the
1146         <TT
1147 CLASS="FILENAME"
1148 >./files</TT
1149 > directory. Upload this anonymously to
1150          <TT
1151 CLASS="FILENAME"
1152 >uploads.sourceforge.net/incoming</TT
1153 >, create a release
1154          for it, and you're done. Use the release notes and Change Log from the
1155          source tarball package.
1156         </P
1157 ></DIV
1158 ><DIV
1159 CLASS="SECT3"
1160 ><H3
1161 CLASS="SECT3"
1162 ><A
1163 NAME="NEWRELEASE-SOLARIS"
1164 >6.3.5. Solaris</A
1165 ></H3
1166 ><P
1167 >       Login to Sourceforge's compilefarm via ssh:
1168         </P
1169 ><P
1170 >       <TABLE
1171 BORDER="0"
1172 BGCOLOR="#E0E0E0"
1173 WIDTH="100%"
1174 ><TR
1175 ><TD
1176 ><PRE
1177 CLASS="PROGRAMLISTING"
1178 >  ssh cf.sourceforge.net</PRE
1179 ></TD
1180 ></TR
1181 ></TABLE
1182 >
1183         </P
1184 ><P
1185 >       Choose the right operating system (not the Debian one).
1186         When logged in, <SPAN
1187 CLASS="emphasis"
1188 ><I
1189 CLASS="EMPHASIS"
1190 >make sure that you have freshly exported the right
1191         version into an empty directory</I
1192 ></SPAN
1193 >. (See "Building and releasing
1194         packages" above). Then run:
1195         </P
1196 ><P
1197 >       <TABLE
1198 BORDER="0"
1199 BGCOLOR="#E0E0E0"
1200 WIDTH="100%"
1201 ><TR
1202 ><TD
1203 ><PRE
1204 CLASS="PROGRAMLISTING"
1205 >  cd current
1206   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1207 ></TD
1208 ></TR
1209 ></TABLE
1210 >
1211         </P
1212 ><P
1213 >       Then run
1214         </P
1215 ><P
1216 >       <TABLE
1217 BORDER="0"
1218 BGCOLOR="#E0E0E0"
1219 WIDTH="100%"
1220 ><TR
1221 ><TD
1222 ><PRE
1223 CLASS="PROGRAMLISTING"
1224 >  gmake solaris-dist</PRE
1225 ></TD
1226 ></TR
1227 ></TABLE
1228 >
1229         </P
1230 ><P
1231 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1232 CLASS="COMMAND"
1233 >make
1234         solaris-upload</B
1235 > on the Sourceforge machine (no ncftpput). You now have
1236         to manually upload the archive to Sourceforge's ftp server and release
1237         the file publicly. Use the release notes and Change Log from the
1238         source tarball package.
1239         </P
1240 ></DIV
1241 ><DIV
1242 CLASS="SECT3"
1243 ><H3
1244 CLASS="SECT3"
1245 ><A
1246 NAME="NEWRELEASE-WINDOWS"
1247 >6.3.6. Windows</A
1248 ></H3
1249 ><P
1250 >        You should ensure you have the latest version of Cygwin (from
1251         <A
1252 HREF="http://www.cygwin.com/"
1253 TARGET="_top"
1254 >http://www.cygwin.com/</A
1255 >).
1256         Run the following commands from within a Cygwin bash shell.
1257       </P
1258 ><P
1259 >       First, <SPAN
1260 CLASS="emphasis"
1261 ><I
1262 CLASS="EMPHASIS"
1263 >make sure that you have freshly exported the right
1264         version into an empty directory</I
1265 ></SPAN
1266 >. (See "Building and releasing
1267         packages" above). Then get the Windows setup module:
1268       </P
1269 ><P
1270 >      <TABLE
1271 BORDER="0"
1272 BGCOLOR="#E0E0E0"
1273 WIDTH="100%"
1274 ><TR
1275 ><TD
1276 ><PRE
1277 CLASS="PROGRAMLISTING"
1278 >  cvs -z3  -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co winsetup</PRE
1279 ></TD
1280 ></TR
1281 ></TABLE
1282 >
1283       </P
1284 ><P
1285 >        Then you can build the package.  This is fully automated, and is
1286         controlled by <TT
1287 CLASS="FILENAME"
1288 >winsetup/GNUmakefile</TT
1289 >.
1290         All you need to do is:
1291       </P
1292 ><P
1293 >      <TABLE
1294 BORDER="0"
1295 BGCOLOR="#E0E0E0"
1296 WIDTH="100%"
1297 ><TR
1298 ><TD
1299 ><PRE
1300 CLASS="PROGRAMLISTING"
1301 >  cd winsetup
1302   make</PRE
1303 ></TD
1304 ></TR
1305 ></TABLE
1306 >
1307       </P
1308 ><P
1309 >        Now you can manually rename <TT
1310 CLASS="FILENAME"
1311 >privoxy_setup.exe</TT
1312 > to
1313         <TT
1314 CLASS="FILENAME"
1315 >privoxy_setup_X_Y_Z.exe</TT
1316 >, and upload it to
1317         SourceForge. When releasing the package on SourceForge, use the release notes
1318         and Change Log from the source tarball package.
1319       </P
1320 ></DIV
1321 ><DIV
1322 CLASS="SECT3"
1323 ><H3
1324 CLASS="SECT3"
1325 ><A
1326 NAME="NEWRELEASE-DEBIAN"
1327 >6.3.7. Debian</A
1328 ></H3
1329 ><P
1330 >        First, <SPAN
1331 CLASS="emphasis"
1332 ><I
1333 CLASS="EMPHASIS"
1334 >make sure that you have freshly exported the
1335         right version into an empty directory</I
1336 ></SPAN
1337 >. (See
1338         "Building and releasing packages" above).  Then add a log
1339         entry to <TT
1340 CLASS="FILENAME"
1341 >debian/changelog</TT
1342 >, if it is not
1343         already there, for example by running:
1344       </P
1345 ><P
1346 >        <TABLE
1347 BORDER="0"
1348 BGCOLOR="#E0E0E0"
1349 WIDTH="100%"
1350 ><TR
1351 ><TD
1352 ><PRE
1353 CLASS="PROGRAMLISTING"
1354 >  debchange -v 3.0.18-UNRELEASED-1 "New upstream version"</PRE
1355 ></TD
1356 ></TR
1357 ></TABLE
1358 >
1359       </P
1360 ><P
1361 >        Then, run: 
1362       </P
1363 ><P
1364 >        <TABLE
1365 BORDER="0"
1366 BGCOLOR="#E0E0E0"
1367 WIDTH="100%"
1368 ><TR
1369 ><TD
1370 ><PRE
1371 CLASS="PROGRAMLISTING"
1372 >  dpkg-buildpackage -rfakeroot -us -uc -b</PRE
1373 ></TD
1374 ></TR
1375 ></TABLE
1376 >
1377       </P
1378 ><P
1379 >        This will create
1380         <TT
1381 CLASS="FILENAME"
1382 >../privoxy_3.0.18-UNRELEASED-1_i386.deb</TT
1383 >
1384         which can be uploaded.  To upload the package to Sourceforge, simply
1385         issue
1386       </P
1387 ><P
1388 >        <TABLE
1389 BORDER="0"
1390 BGCOLOR="#E0E0E0"
1391 WIDTH="100%"
1392 ><TR
1393 ><TD
1394 ><PRE
1395 CLASS="PROGRAMLISTING"
1396 >  make debian-upload</PRE
1397 ></TD
1398 ></TR
1399 ></TABLE
1400 >
1401       </P
1402 ></DIV
1403 ><DIV
1404 CLASS="SECT3"
1405 ><H3
1406 CLASS="SECT3"
1407 ><A
1408 NAME="NEWRELEASE-MACOSX"
1409 >6.3.8. Mac OS X</A
1410 ></H3
1411 ><P
1412 >       First, <SPAN
1413 CLASS="emphasis"
1414 ><I
1415 CLASS="EMPHASIS"
1416 >make sure that you have freshly exported the right
1417         version into an empty directory</I
1418 ></SPAN
1419 >. (See "Building and releasing
1420         packages" above). Then get the Mac OS X setup module:
1421         </P
1422 ><P
1423 >       <TABLE
1424 BORDER="0"
1425 BGCOLOR="#E0E0E0"
1426 WIDTH="100%"
1427 ><TR
1428 ><TD
1429 ><PRE
1430 CLASS="PROGRAMLISTING"
1431 >  cvs -z3 -d:pserver:anonymous@ijbswa.cvs.sourceforge.net:/cvsroot/ijbswa co osxsetup</PRE
1432 ></TD
1433 ></TR
1434 ></TABLE
1435 >
1436         </P
1437 ><P
1438 >       Then run:
1439         </P
1440 ><P
1441 >       <TABLE
1442 BORDER="0"
1443 BGCOLOR="#E0E0E0"
1444 WIDTH="100%"
1445 ><TR
1446 ><TD
1447 ><PRE
1448 CLASS="PROGRAMLISTING"
1449 >  cd osxsetup
1450   build</PRE
1451 ></TD
1452 ></TR
1453 ></TABLE
1454 >
1455         </P
1456 ><P
1457 >       This will run <TT
1458 CLASS="FILENAME"
1459 >autoheader</TT
1460 >, <TT
1461 CLASS="FILENAME"
1462 >autoconf</TT
1463 > and
1464         <TT
1465 CLASS="FILENAME"
1466 >configure</TT
1467 > as well as <TT
1468 CLASS="FILENAME"
1469 >make</TT
1470 >.
1471         Finally, it will copy over the necessary files to the ./osxsetup/files directory
1472         for further processing by <TT
1473 CLASS="FILENAME"
1474 >PackageMaker</TT
1475 >.
1476         </P
1477 ><P
1478 >       Bring up PackageMaker with the PrivoxyPackage.pmsp definition file, modify the package
1479         name to match the release, and hit the "Create package" button.
1480         If you specify ./Privoxy.pkg as the output package name, you can then create
1481         the distributable zip file with the command:
1482         </P
1483 ><P
1484 >       <TABLE
1485 BORDER="0"
1486 BGCOLOR="#E0E0E0"
1487 WIDTH="100%"
1488 ><TR
1489 ><TD
1490 ><PRE
1491 CLASS="PROGRAMLISTING"
1492 >  zip -r privoxyosx_setup_x.y.z.zip Privoxy.pkg</PRE
1493 ></TD
1494 ></TR
1495 ></TABLE
1496 >
1497         </P
1498 ><P
1499 >       You can then upload <TT
1500 CLASS="FILENAME"
1501 >privoxyosx_setup_x.y.z.zip</TT
1502 > anonymously to 
1503         <TT
1504 CLASS="FILENAME"
1505 >uploads.sourceforge.net/incoming</TT
1506 >,
1507         create a release for it, and you're done. Use the release notes
1508         and Change Log from the source tarball package.
1509         </P
1510 ></DIV
1511 ><DIV
1512 CLASS="SECT3"
1513 ><H3
1514 CLASS="SECT3"
1515 ><A
1516 NAME="NEWRELEASE-FREEBSD"
1517 >6.3.9. FreeBSD</A
1518 ></H3
1519 ><P
1520 >       Login to Sourceforge's compile-farm via ssh:
1521         </P
1522 ><P
1523 >       <TABLE
1524 BORDER="0"
1525 BGCOLOR="#E0E0E0"
1526 WIDTH="100%"
1527 ><TR
1528 ><TD
1529 ><PRE
1530 CLASS="PROGRAMLISTING"
1531 >  ssh cf.sourceforge.net</PRE
1532 ></TD
1533 ></TR
1534 ></TABLE
1535 >
1536         </P
1537 ><P
1538 >       Choose the right operating system.
1539         When logged in, <SPAN
1540 CLASS="emphasis"
1541 ><I
1542 CLASS="EMPHASIS"
1543 >make sure that you have freshly exported the right
1544         version into an empty directory</I
1545 ></SPAN
1546 >. (See "Building and releasing
1547         packages" above). Then run:
1548         </P
1549 ><P
1550 >       <TABLE
1551 BORDER="0"
1552 BGCOLOR="#E0E0E0"
1553 WIDTH="100%"
1554 ><TR
1555 ><TD
1556 ><PRE
1557 CLASS="PROGRAMLISTING"
1558 >  cd current
1559   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1560 ></TD
1561 ></TR
1562 ></TABLE
1563 >
1564         </P
1565 ><P
1566 >       Then run:
1567         </P
1568 ><P
1569 >       <TABLE
1570 BORDER="0"
1571 BGCOLOR="#E0E0E0"
1572 WIDTH="100%"
1573 ><TR
1574 ><TD
1575 ><PRE
1576 CLASS="PROGRAMLISTING"
1577 >  gmake freebsd-dist</PRE
1578 ></TD
1579 ></TR
1580 ></TABLE
1581 >
1582         </P
1583 ><P
1584 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1585 CLASS="COMMAND"
1586 >make
1587         freebsd-upload</B
1588 > on the Sourceforge machine (no ncftpput). You now have
1589         to manually upload the archive to Sourceforge's ftp server and release
1590         the file publicly. Use the release notes and Change Log from the
1591         source tarball package.
1592         </P
1593 ></DIV
1594 ><DIV
1595 CLASS="SECT3"
1596 ><H3
1597 CLASS="SECT3"
1598 ><A
1599 NAME="NEWRELEASE-HPUX"
1600 >6.3.10. HP-UX 11</A
1601 ></H3
1602 ><P
1603 >       First, <SPAN
1604 CLASS="emphasis"
1605 ><I
1606 CLASS="EMPHASIS"
1607 >make sure that you have freshly exported the right
1608         version into an empty directory</I
1609 ></SPAN
1610 >. (See "Building and releasing
1611         packages" above). Then run:
1612         </P
1613 ><P
1614 >       <TABLE
1615 BORDER="0"
1616 BGCOLOR="#E0E0E0"
1617 WIDTH="100%"
1618 ><TR
1619 ><TD
1620 ><PRE
1621 CLASS="PROGRAMLISTING"
1622 >  cd current
1623   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1624 ></TD
1625 ></TR
1626 ></TABLE
1627 >
1628         </P
1629 ><P
1630 >       Then do FIXME.
1631         </P
1632 ></DIV
1633 ><DIV
1634 CLASS="SECT3"
1635 ><H3
1636 CLASS="SECT3"
1637 ><A
1638 NAME="NEWRELEASE-AMIGA"
1639 >6.3.11. Amiga OS</A
1640 ></H3
1641 ><P
1642 >       First, <SPAN
1643 CLASS="emphasis"
1644 ><I
1645 CLASS="EMPHASIS"
1646 >make sure that you have freshly exported the right
1647         version into an empty directory</I
1648 ></SPAN
1649 >. (See "Building and releasing
1650         packages" above). Then run:
1651         </P
1652 ><P
1653 >       <TABLE
1654 BORDER="0"
1655 BGCOLOR="#E0E0E0"
1656 WIDTH="100%"
1657 ><TR
1658 ><TD
1659 ><PRE
1660 CLASS="PROGRAMLISTING"
1661 >  cd current
1662   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1663 ></TD
1664 ></TR
1665 ></TABLE
1666 >
1667         </P
1668 ><P
1669 >       Then do FIXME.
1670         </P
1671 ></DIV
1672 ><DIV
1673 CLASS="SECT3"
1674 ><H3
1675 CLASS="SECT3"
1676 ><A
1677 NAME="NEWRELEASE-AIX"
1678 >6.3.12. AIX</A
1679 ></H3
1680 ><P
1681 >       Login to Sourceforge's compilefarm via ssh:
1682         </P
1683 ><P
1684 >       <TABLE
1685 BORDER="0"
1686 BGCOLOR="#E0E0E0"
1687 WIDTH="100%"
1688 ><TR
1689 ><TD
1690 ><PRE
1691 CLASS="PROGRAMLISTING"
1692 >  ssh cf.sourceforge.net</PRE
1693 ></TD
1694 ></TR
1695 ></TABLE
1696 >
1697         </P
1698 ><P
1699 >       Choose the right operating system.
1700         When logged in, <SPAN
1701 CLASS="emphasis"
1702 ><I
1703 CLASS="EMPHASIS"
1704 >make sure that you have freshly exported the right
1705         version into an empty directory</I
1706 ></SPAN
1707 >. (See "Building and releasing
1708         packages" above). Then run:
1709         </P
1710 ><P
1711 >       <TABLE
1712 BORDER="0"
1713 BGCOLOR="#E0E0E0"
1714 WIDTH="100%"
1715 ><TR
1716 ><TD
1717 ><PRE
1718 CLASS="PROGRAMLISTING"
1719 >  cd current
1720   autoheader &#38;&#38; autoconf &#38;&#38; ./configure</PRE
1721 ></TD
1722 ></TR
1723 ></TABLE
1724 >
1725         </P
1726 ><P
1727 >       Then run:
1728         </P
1729 ><P
1730 >       <TABLE
1731 BORDER="0"
1732 BGCOLOR="#E0E0E0"
1733 WIDTH="100%"
1734 ><TR
1735 ><TD
1736 ><PRE
1737 CLASS="PROGRAMLISTING"
1738 >  make aix-dist</PRE
1739 ></TD
1740 ></TR
1741 ></TABLE
1742 >
1743         </P
1744 ><P
1745 >       which creates a gzip'ed tar archive. Sadly, you cannot use <B
1746 CLASS="COMMAND"
1747 >make
1748         aix-upload</B
1749 > on the Sourceforge machine (no ncftpput). You now have
1750         to manually upload the archive to Sourceforge's ftp server and release
1751         the file publicly. Use the release notes and Change Log from the
1752         source tarball package.
1753         </P
1754 ></DIV
1755 ></DIV
1756 ><DIV
1757 CLASS="SECT2"
1758 ><H2
1759 CLASS="SECT2"
1760 ><A
1761 NAME="RELEASING"
1762 >6.4. Uploading and Releasing Your Package</A
1763 ></H2
1764 ><P
1765 >      After the package is ready, it is time to upload it 
1766       to SourceForge, and go through the release steps. The upload
1767       is done via FTP:
1768     </P
1769 ><P
1770 >      <P
1771 ></P
1772 ><UL
1773 ><LI
1774 ><P
1775 >          Upload to: <A
1776 HREF="ftp://upload.sourceforge.net/incoming"
1777 TARGET="_top"
1778 >ftp://upload.sourceforge.net/incoming</A
1779 >
1780         </P
1781 ></LI
1782 ><LI
1783 ><P
1784 >         user: <TT
1785 CLASS="LITERAL"
1786 >anonymous</TT
1787 >
1788        </P
1789 ></LI
1790 ><LI
1791 ><P
1792 >         password: <TT
1793 CLASS="LITERAL"
1794 >ijbswa-developers@lists.sourceforge.net</TT
1795 >
1796        </P
1797 ></LI
1798 ></UL
1799 >
1800     </P
1801 ><P
1802 >     Or use the <B
1803 CLASS="COMMAND"
1804 >make</B
1805 > targets as described above.
1806     </P
1807 ><P
1808 >     Once this done go to <A
1809 HREF="https://sourceforge.net/project/admin/editpackages.php?group_id=11118"
1810 TARGET="_top"
1811 >https://sourceforge.net/project/admin/editpackages.php?group_id=11118</A
1812 >, 
1813      making sure you are logged in. Find your target platform in the 
1814      second column, and click <TT
1815 CLASS="LITERAL"
1816 >Add Release</TT
1817 >. You will 
1818      then need to create a new release for your package, using the format 
1819      of <TT
1820 CLASS="LITERAL"
1821 >$VERSION ($CODE_STATUS)</TT
1822 >, e.g. <SPAN
1823 CLASS="emphasis"
1824 ><I
1825 CLASS="EMPHASIS"
1826 >3.0.18
1827      (beta)</I
1828 ></SPAN
1829 >.
1830     </P
1831 ><P
1832 >     Now just follow the prompts. Be sure to add any appropriate Release
1833      notes. You should see your freshly uploaded packages in 
1834      <SPAN
1835 CLASS="QUOTE"
1836 >"Step 2. Add Files To This Release"</SPAN
1837 >. Check the 
1838      appropriate box(es). Remember at each step to hit the 
1839      <SPAN
1840 CLASS="QUOTE"
1841 >"Refresh/Submit"</SPAN
1842 > buttons! You should now see your 
1843      file(s) listed in Step 3. Fill out the forms with the appropriate 
1844      information for your platform, being sure to hit <SPAN
1845 CLASS="QUOTE"
1846 >"Update"</SPAN
1847 >
1848      for each file. If anyone is monitoring your platform, check the 
1849      <SPAN
1850 CLASS="QUOTE"
1851 >"email"</SPAN
1852 > box at the very bottom to notify them of 
1853      the new package. This should do it!
1854     </P
1855 ><P
1856 >     If you have made errors, or need to make changes, you can go through 
1857      essentially the same steps, but select <TT
1858 CLASS="LITERAL"
1859 >Edit Release</TT
1860 >, 
1861      instead of <TT
1862 CLASS="LITERAL"
1863 >Add Release</TT
1864 >.
1865     </P
1866 ></DIV
1867 ><DIV
1868 CLASS="SECT2"
1869 ><H2
1870 CLASS="SECT2"
1871 ><A
1872 NAME="AFTERRELEASE"
1873 >6.5. After the Release</A
1874 ></H2
1875 ><P
1876 >      When all (or: most of the) packages have been uploaded and made available,
1877       send an email to the <A
1878 HREF="mailto:ijbswa-announce@lists.sourceforge.net"
1879 TARGET="_top"
1880 >announce
1881       mailing list</A
1882 >, Subject: "Version X.Y.Z available for download". Be sure to
1883       include the
1884       <A
1885 HREF="http://sourceforge.net/project/showfiles.php?group_id=11118"
1886 TARGET="_top"
1887 >download
1888       location</A
1889 >, the release notes and the Changelog. Also, post an
1890       updated News item on the project page Sourceforge, and update the Home 
1891       page and docs linked from the Home page (see below). Other news sites
1892       and release oriented sites, such as Freshmeat, should also be notified.
1893      </P
1894 ></DIV
1895 ></DIV
1896 ><DIV
1897 CLASS="NAVFOOTER"
1898 ><HR
1899 ALIGN="LEFT"
1900 WIDTH="100%"><TABLE
1901 SUMMARY="Footer navigation table"
1902 WIDTH="100%"
1903 BORDER="0"
1904 CELLPADDING="0"
1905 CELLSPACING="0"
1906 ><TR
1907 ><TD
1908 WIDTH="33%"
1909 ALIGN="left"
1910 VALIGN="top"
1911 ><A
1912 HREF="testing.html"
1913 ACCESSKEY="P"
1914 >Prev</A
1915 ></TD
1916 ><TD
1917 WIDTH="34%"
1918 ALIGN="center"
1919 VALIGN="top"
1920 ><A
1921 HREF="index.html"
1922 ACCESSKEY="H"
1923 >Home</A
1924 ></TD
1925 ><TD
1926 WIDTH="33%"
1927 ALIGN="right"
1928 VALIGN="top"
1929 ><A
1930 HREF="webserver-update.html"
1931 ACCESSKEY="N"
1932 >Next</A
1933 ></TD
1934 ></TR
1935 ><TR
1936 ><TD
1937 WIDTH="33%"
1938 ALIGN="left"
1939 VALIGN="top"
1940 >Testing Guidelines</TD
1941 ><TD
1942 WIDTH="34%"
1943 ALIGN="center"
1944 VALIGN="top"
1945 >&nbsp;</TD
1946 ><TD
1947 WIDTH="33%"
1948 ALIGN="right"
1949 VALIGN="top"
1950 >Update the Webserver</TD
1951 ></TR
1952 ></TABLE
1953 ></DIV
1954 ></BODY
1955 ></HTML
1956 >