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