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