diff --git a/all.patch.bz2 b/all.patch.bz2 deleted file mode 100644 index ae2bf15..0000000 --- a/all.patch.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:be1701721b410421e8cc69c9f21f2e234e8dc8a782fb6e0e317fe8caa064f842 -size 134906 diff --git a/alpine-upstream-postponed-sendcharset.diff b/alpine-upstream-postponed-sendcharset.diff deleted file mode 100644 index d5973b8..0000000 --- a/alpine-upstream-postponed-sendcharset.diff +++ /dev/null @@ -1,50 +0,0 @@ -This is a patch from upstream which is likely included in the next -version (likely to be named 1.0): - -From: Steve Hubert -To: Alpine Alpha List -Date: Thu, 6 Sep 2007 09:58:58 -0700 (PDT) -Subject: Re: Content-Type different after postponing - -I believe the attached patch should fix this. Thanks. - -From: Andreas Schamanek -Date: Thu, 6 Sep 2007 20:13:47 +0200 (CEST) -I have just tested it, and it works perfectly. - -From: Gerald Pfeifer - -Sorry, it doesn't. Also with this patch I am still getting - - Content-Type: TEXT/PLAIN; charset=ISO-8859-15 - -when sending mail directly that contains an Umlaut, and - - Content-Type: TEXT/PLAIN; CHARSET=UTF-8 - -after posting and resuming the same message. - -From: Steve Hubert - -The first patch only worked if Downgrade Multipart to Text was turned on. -This should fix the other case. - -Index: pith/send.c -=================================================================== ---- pith/send.c (revision 709) -+++ pith/send.c (working copy) -@@ -843,6 +843,14 @@ - return(redraft_cleanup(streamp, TRUE, flags)); - } - -+ if((charset = rfc2231_get_param(part->body.parameter,"charset",NULL,NULL)) != NULL){ -+ /* let outgoing routines decide on charset */ -+ if(!strucmp(charset, "US-ASCII") || !strucmp(charset, "UTF-8")) -+ set_parameter(&part->body.parameter, "charset", NULL); -+ -+ fs_give((void **) &charset); -+ } -+ - ps_global->postpone_no_flow = 1; - get_body_part_text(stream, &b->nested.part->body, - cont_msg, "1", 0L, pc, NULL, NULL, GBPT_NONE); diff --git a/alpine.changes b/alpine.changes index 06fa262..c16afa5 100644 --- a/alpine.changes +++ b/alpine.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Tue Sep 25 13:05:20 CEST 2007 - bk@suse.de + +- Use only select patches from Eduardo (fixes crash in mail reader) + ------------------------------------------------------------------- Wed Sep 19 14:32:24 CEST 2007 - bk@suse.de diff --git a/alpine.spec b/alpine.spec index df79124..6491e78 100644 --- a/alpine.spec +++ b/alpine.spec @@ -10,7 +10,6 @@ Name: alpine - # # Package configuration: # @@ -20,7 +19,7 @@ Name: alpine # For debugging only: %define use_mudflap 0 %define build_vanilla 0 -%define apply_all_in_one_patch 1 +%define apply_all_in_one_patch 0 # Summary: Alpine mail user agent BuildRequires: imap-devel krb5-devel libgssapi ncurses-devel openldap2-devel openssl-devel pam-devel update-desktop-files @@ -32,14 +31,16 @@ BuildRequires: libmudflap %endif # pgp4pine requires pine: Provides: pine +# %if %obsolete_pine Obsoletes: pine4 Provides: pine4 %else Conflicts: pine4 %endif +# Version: 0.9999 -Release: 6 +Release: 10 License: The Apache Software License Group: Productivity/Networking/Email/Clients AutoReqProv: on @@ -57,17 +58,18 @@ Source: ftp://ftp.cac.washington.edu/alpine/%{name}-%{version}.tar.bz2 cd %{_sourcedir};cp %{name}-%{version}{,-build}.tar.bz2 bunzip2 %{name}-%{version}-build.tar.bz2 tar --delete --file=%{name}-%{version}-build.tar \ - ./alpine-0.9999/pico/msmem.c ./alpine-0.9999/imap/docs + ./%{name}-%{version}/pico/msmem.c ./alpine-0.9999/imap/docs echo >%{name}-%{version}.README.SUSE <compile-warnings-allowed.log fi -# Upstream patches: -%patch200 # -# Show that this is the openSUSE build of alpine and which version: +# needs patch103 to support it, sets version to e.g. to "0.9999-openSUSE-7": # %patch103 -p1 echo %{version}-openSUSE-%{release} >VERSION # -# Apply Eduardo Chappa's patch set as one patch (501 documents his patch): +# People which want, can use the full all.patch.gz with apply_all_in_one_patch: # %if %{apply_all_in_one_patch} %patch500 -p1 -%patch501 -p1 +%else +sh %{SOURCE600} --apply %{SOURCE601} %endif -# -# This simply adds a colon if it's missing in the all.patch: -# -[ $(grep -c "including creation date of the patch is$" pith/pine.hlp) = 1 ] && -sed -i 's/including creation date of the patch is$/&:/' pith/pine.hlp +#patch501 -p1 # # SuSE patches - warning fixes, etc: # @@ -182,18 +173,15 @@ sed -i 's/including creation date of the patch is$/&:/' pith/pine.hlp %patch40 -p1 %patch60 -p1 %patch90 -p1 -%endif -# -# End of non-vanilla-patch section -# +%endif # End of "if !{build_vanilla}" %build +# Workaround for older distros which slashed the gnu: %if %{suse_version} <= 1010 %define _host_os %{_os}%{?_gnu} %define _host %{_host_cpu}-%{_host_vendor}-%{_host_os} %endif autoreconf -fi -export CFLAGS="${RPM_OPT_FLAGS/-O2/-Os}" # # Comments on disabled warnings: The disabled warnings are rather harmless # (If they were not, alpine would not work at all, they are trigged in mass, @@ -201,15 +189,15 @@ export CFLAGS="${RPM_OPT_FLAGS/-O2/-Os}" # and disabling them allows one to focus on the warnings which could indicate # real bugs. By alpine-0.9999, several warnings have been eliminated however: # -export CFLAGS="$CFLAGS \ +export CFLAGS="${RPM_OPT_FLAGS/-O2/-Os} \ %if %{suse_version} >= 1010 --Wno-strict-aliasing -Wno-pointer-sign -Wno-unused \ + -Wno-strict-aliasing -Wno-pointer-sign -Wno-unused \ %endif %if %{suse_version} == 1030 --Wno-address \ + -Wno-address \ %endif %if %{use_mudflap} --fmudflap -fmudflapir \ + -fmudflap \ %endif " # @@ -223,10 +211,12 @@ export CFLAGS="$CFLAGS \ # -Waddress generates >100 warnings in alpine and we disabled them to # concentrate on the really important warnings which could be real bugs better. # +: # # Used in conjunction with signal-and-panic-improvements.diff: # export LDFLAGS="-rdynamic" # -rdynamic is used for backtrace_symbols: +: # # In case one wants to compile alpine with libmudflap to instrument all risky # pointer/array dereferencing operations, some standard library string/heap @@ -234,13 +224,17 @@ export LDFLAGS="-rdynamic" # -rdynamic is used for backtrace_symbols: # Modules so instrumented should be immune to buffer overflows, invalid heap # use, and some other classes of C/C++ programming errors. Disabled by default, # but may be used for debugging issues which are otherwise hard to catch: -# +#-fmudflap -fmudflapir \ %if %{use_mudflap} export EXTRALDFLAGS="-lmudflap" +# Silences warnings at startup (faster, could be used for production builds): +#export EXTRALDFLAGS="-lmudflapir" LDFLAGS="$LDFLAGS $EXTRALDFLAGS" %endif +: %configure --with-tcl-lib=tcl8.4 \ %if %{use_mudflap} + %( : 'mudflap(th) does not work with with threads:' )\ --without-pthread \ %endif --with-smtp-msa=/usr/sbin/sendmail \ @@ -258,7 +252,7 @@ LDFLAGS="$LDFLAGS $EXTRALDFLAGS" exit 5 } # -# imap does not use CFLAGS from configure, needs EXTRAFCLAGS: +# imap does not use CFLAGS from configure, needs EXTRACFLAGS/EXTRALDFLAGS: # make EXTRACFLAGS="$CFLAGS" EXTRALDFLAGS="$EXTRALDFLAGS" 2>&1 | tee make.log | grep -v -e '^mv ' -e '/usr/bin/[a-z]*' -e '^echo ' -e ' -l' | @@ -266,10 +260,12 @@ make EXTRACFLAGS="$CFLAGS" EXTRALDFLAGS="$EXTRALDFLAGS" 2>&1 | tee make.log | %install install -D -m755 alpine/alpine $RPM_BUILD_ROOT%{_bindir}/alpine +: # # When called as alpinef, alpine uses function keys instead of Control keys: # ln $RPM_BUILD_ROOT%{_bindir}/alpine $RPM_BUILD_ROOT%{_bindir}/alpinef +: install -m755 alpine/{rpload,rpdump} $RPM_BUILD_ROOT%{_bindir} install -m755 imap/mailutil/mailutil $RPM_BUILD_ROOT%{_bindir} mkdir -p $RPM_BUILD_ROOT/%{_mandir}/man1 @@ -278,9 +274,11 @@ install -m644 imap/src/mailutil/mailutil.1 $RPM_BUILD_ROOT%{_mandir}/man1/ install -D -m644 %{SOURCE1} $RPM_BUILD_ROOT/usr/share/pixmaps/%name.png install -D -m644 %{SOURCE2} $RPM_BUILD_ROOT/usr/share/applications/%name.desktop %suse_update_desktop_file %name +: %if %obsolete_pine ln -sf alpine $RPM_BUILD_ROOT%{_bindir}/pine %endif +: %if %provide_pico_and_pilot install -m755 pico/{pico,pilot} $RPM_BUILD_ROOT%{_bindir} install -m644 doc/{pico.1,pilot.1} $RPM_BUILD_ROOT%{_mandir}/man1/ @@ -372,6 +370,8 @@ fi %doc %{_mandir}/man1/pilot.1.gz %endif %changelog +* Tue Sep 25 2007 - bk@suse.de +- Use only select patches from Eduardo (fixes crash in mail reader) * Wed Sep 19 2007 - bk@suse.de - Remove files with unclear license from packaged sources (#308533) - Add small bug fix: Postponed messages which were labelled as UTF-8 diff --git a/chappa-cherrypick.sh b/chappa-cherrypick.sh new file mode 100644 index 0000000..ded7828 --- /dev/null +++ b/chappa-cherrypick.sh @@ -0,0 +1,358 @@ +# abort on any error: +set -e +# Used by --update and --apply: +chappa_patchdir=chappa-patches +echo_others() { + # Note: This function is updated by the function update_OTHERS_section, it's + # very sensitive to change, the part below must stay as it is or + # you will loose this script in the update process if you say "y": +cat<(more...) +maildir Maildir Patch. (more...) +fillpara Pine justifies paragraphs with more than one level of indentation. (more...) +rules Rules patch, to make Pine flexible. (more...) +compose Send mail from the command line. +WrtAcc Write accents like á, é, ñ etc. +circtab Tab check folders on cycles. (more...) +count Get the number of new messages when opening a folder. +insertpat Reinsert the pattern you searched for last. +reply New Reply command menu.(more...) +fromheader Change your From header without any effort! +composeurl Choose a role when composing a message from a mailto: link. +colortext Paint special text in the body of the message in any custom color. (more...) +searchheader Select messages by the content of an arbitrary header. +DelText Delete until the the end of a file, or message (press ^W^X). +quota Get the QUOTA information from an IMAP server (if such server supports e QUOTA command). +help Get the internal name of a help topic to use it with a x-pine-help URL scheme. +ignoresize Decide if you want to ignore errors in size changes of a message when saving a message from an IMAP server. +status Fix the update of the status line information in pico +unverified Fix a bug that makes Alpine not to give a warning if the Newsgroup header is present +utf8bug Fix a bug that makes Alpine filter incorrectly in the UTF-8 filter. +END + echo_others +} +#================================================================================== +# The following functions are only used for --update: +# +# +# This function decided which patches are downloaded, and packaged: +# Every patch which shall be, is echoed, every patch which shall be not is not. +# If it encounters a new patch, it is printed on stderror +# +print_which_shall_be_packaged() { + grep '"info/' index.html | sed 's/.LI.\(.*\)<.*NAME="\([^"]*\)".*/\2 \1/'| + while read name text + do + case "$name" in + cygwin|all|windows) : 'always ignored';; + WrtAcc|fancy|maildir|colortext|insertpat) + : 'really wanted' + echo "$name";; + utf8bug|ignoresize|searchheader) + : 'also wanted' + echo "$name";; + unverified) + : 'also wanted' + echo "$name";; + rules) : 'conflicts with others and would need extra work';; + help|status|reply|DelText|outgoing|count) + : 'not important enough';; + quota|composeurl|fromheader|circtab) + : 'rather not';; + fillpara) + : 'rather dangerous';; + *) echo NEW: $name >&2;exit;; + esac + done + echo_others +} +get_patch_path() { + echo staff.washington.edu/chappa/alpine/patches/alpine-0.9999/$1.patch.gz +} +list_packaged_patches_urls() { + print_which_shall_be_packaged | while read name rest; do + get_patch_path $name + done +} +update_OTHERS_section() { + wget --timestamping http://staff.washington.edu/chappa/alpine/patches/others.html + grep alpine-0.9999 others.html | + sed 's/.*alpine-0.9999\///;s/.patch.gz//;s/".*A>,//;s/ Posted.*//;s/which fixes/Fix/;s/which changes/Change/;s/which adds/Add/' \ + >others + sed '/^cat..OTHERS$/,/^OTHERS$/{/^cat..OTHERS$/b ins;/^OTHERS/p;d};p;d;:ins;r others' ../$0 >change + diff ../$0 change || { + echo -n "DANGEROUS may loose script work: Apply these changes to $0 (y/*)?" + read answer + if [ "$answer" = y ]; then + cat change >../$0 + rm change + echo "OTHERS_section updated, restarting from scratch!" + cd .. + exec bash $0 --update + else + echo "OTHERS_section updated, please check and do it." + exit + fi + } + rm change +} +check_patch_list() { + for name in `ls $chappa_patchdir` + do + helpentry=`echo_patch_help | sed -n "s/^$name //p"` + printf "%-22s %s\n" $name "'$helpentry'" + if [ -z "$helpentry" ]; then + missing="$missing $name" + fi + done + if [ "$missing" ]; then + echo "=======> help entries for $missing are missing, existing - please fix!" + exit 4 + else + echo "---> No help entries are missing" >&2 + fi +} + +update_packaged_patches() { + mkdir -p test;cd test + do_update=true + #do_update=false + if $do_update;then + update_OTHERS_section + rm -f index.html + wget http://staff.washington.edu/chappa/alpine/ + wget -m $(list_packaged_patches_urls) + fi + #print_which_shall_be_packaged | sed 's/.*/^& /' >shall-be-packaged.patterns + #grep '"info/' index.html | sed 's/.LI.\(.*\)<.*NAME="\([^"]*\)".*/\2 \1/'| + # grep -f shall-be-packaged.patterns | sed 's/[^ ]* //' >patch-summaries.txt + + rm -rf $chappa_patchdir + mkdir $chappa_patchdir + print_which_shall_be_packaged | while read name rest; do + zcat `get_patch_path $name` >$chappa_patchdir/$name + touch -r `get_patch_path $name` $chappa_patchdir/$name + done + check_patch_list + print_which_shall_be_packaged | while read name rest; do + if echo_patch_help | sed -n "s/^$name //p"| grep HREF; then + : + else + wget --timestamping -x http://staff.washington.edu/chappa/alpine/info/$name.html || : + if [ -s staff.washington.edu/chappa/alpine/info/$name.html ]; then + sed '0,/is available for version/d;/\/'$name'.patch/d;/<.[tT][dD]><.[tT][rR]><.[tT][aA][bB][lL][eE]>/,$d' \ + staff.washington.edu/chappa/alpine/info/$name.html | + iconv -f latin1 -t UTF-8 >$chappa_patchdir/$name.hlp + fi + fi + zcat `get_patch_path $name` >$chappa_patchdir/$name + done + find $chappa_patchdir -name '*.hlp' -size 0|xargs --no-run-if-empty rm + cd - + tar xvfj $chappa_patchdir.tar.bz2 + diff -r $chappa_patchdir test/$chappa_patchdir | less + echo -n 'Changes OK, update $chappa_patchdir.tar.bz2 (y/*)? ' + read answer + if [ "$answer" = y ]; then + cd test + tar cfj ../$chappa_patchdir.tar.bz2 $chappa_patchdir + cd - + tar tfvj $chappa_patchdir.tar.bz2 | sort +5 + else + echo "$chappa_patchdir.tar.bz2 NO updated!" + fi +} +if [ "$1" = "--update" ]; then + update_packaged_patches + exit +fi +if [ "$1" = "--cleanup" ]; then + rm -rf test + exit +fi +# Everything above is only for update and cleanup +if [ "$1" != "--apply" ]; then + echo "cherrypick.sh can either update $chappa_patchdir.tar.bz2, cleanup or apply the patches" + echo "usage: cherrypick [ --update | --cleanup | --apply ]" + exit 5 +fi +if [ "$0" -nt "$2" ]; then + echo "Attention: +$0 is newer than +$2 + +If the update of ${0##*/} needs to change $chappa_patchdir.tar.bz2, you should run: + +sh ${0##*/} --update + +otherwise run: + +touch -r chappa-cherrypick.sh chappa-patches.tar.bz2 +" + exit 4 +fi +# Everything below is only for apply, it applies all patches in $2 +# and generates a patch to pine.hlp which describes the applied patches. + +print_hlp_pages() { + ls $chappa_patchdir | while read name; do + if [ -f $chappa_patchdir/$name.hlp ]; then + title=`echo_patch_help | sed -n "s/^$name //p"` + cat < + +$title + + +

$title

+

+END + # Unlike pure html, alpine's hlp viewer needs + # backslashes escaped: + sed 's/\\/\\\\/g;s/\\\\"/\\\\\"/g' $chappa_patchdir/$name.hlp + echo '' + fi + done +} + +echo_patch_list() { + ls $chappa_patchdir | while read name; do + case "$name" in *.hlp) continue;; esac + helpentry=`echo_patch_help | sed -n "s/^$name //p"` + echo "

  • $helpentry" + if [ -f $chappa_patchdir/$name.hlp ]; then + echo " (more...)" + fi + done +} +generate_patch_help() { +( + print_hlp_pages +cat < + +Information on checking for known issues and reporting new issues + + +

    Information on checking for known issues and reporting new issues

    +

    If you have any issues while using this release of Alpine, please search +the Novell bugzilla using the advanced search form at + +http://bugzilla.novell.com/query.cgi and enter "alpine" +into the search field for "Summary". + +In order to see all issues which have been reported so far, +unselect all preselections in the Status list of the Impact Section, +by holding the Control key while clicking on NEW, ASSIGNED, NEEDINFO +an REOPENED before clicking on "Search". + +

    If your issue is not found in the Novell Bugzilla, please sign in +to the Novell Bugzilla and report the issue. + +You can also visit the +Alpine Information Center, +and the + +Alpine-alpha mailing list archive. On the + +Alpine-alpha mailing list, you can also report and discuss issues.

    +Be sure to include the full openSUSE version +of alpine (found at the top of this release notes page) in all reports +which you make. +====== h_opensuse_patches ====== + + +Information on patches added to this release + + +

    Information on patches added to this release

    +

    +This version of Alpine has been modified by including patches from + +http://staff.washington.edu/chappa/alpine/. These patches include +new features and bug fixes. More complete information on each patch +included in this version can be found in the web. + +

    If you have any problems with this release of Pine, please +follow the suggestions here + +

    The list of patches included in this release are:

      +END + echo_patch_list + echo "
    " +) +} +generate_help_patch() { + cat <Note: This version of Alpine has been built for openSUSE with ++patches of Eduardo Chappa for latest bugfixes and enhanced functionality. ++Press the ENTER key while the link above is hightlighted for more information. +

    New in Alpine

    + + Version +@@ -652,6 +652,7 @@ +

    + Some topics of current interest include: +

      ++

    • Information on patches for this release +

    • Mail Drops +

    • Information on Folder Locking +

    • Information on Missing mail and the mbox driver +END + lines=$(generate_patch_help |wc -l) + start=1171 + echo "@@ -$start,6 +`expr $start + 1`,`expr $lines + 6` @@" +cat < + +END + generate_patch_help | sed 's/^/+/' +cat < + +END +} +tar xvfj $2 +if generate_help_patch | patch -p1; then + echo "generated patch applied" +else + echo "generated patch failed to apply" + exit 5 +fi +rm $chappa_patchdir/*.hlp +for patch in $chappa_patchdir/*;do + echo + echo "Applying $patch" + if patch -p1 -i$patch; then + echo "$patch applied" + else + echo "$patch failed to apply" + exit 5 + fi +done +exit diff --git a/chappa-patches.tar.bz2 b/chappa-patches.tar.bz2 new file mode 100644 index 0000000..cc59a09 --- /dev/null +++ b/chappa-patches.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44910703913be3094f2af243b9916f23e82c66bf1bb50d0c26202dd5f2a72178 +size 70794 diff --git a/patches.diff b/patches.diff deleted file mode 100644 index d1fcd46..0000000 --- a/patches.diff +++ /dev/null @@ -1,36 +0,0 @@ ---- alpine-0.999/pith/pine.hlp -+++ alpine-0.999/pith/pine.hlp -@@ -163,6 +163,33 @@ - is available as is a world wide web based version designed to run under the - Apache web server. - -+

      Note: This version of Alpine has been built for openSUSE with -+patches of Eduardo Chappa for latest bugfixes and enhanced functionality. -+Press the ENTER key while the link above is hightlighted for more information. -+ -+

      If you have any problems with this release of Pine, please search -+the Novell bugzilla using the advanced search form at -+ -+http://bugzilla.novell.com/query.cgi and enter "alpine" -+into the search field for "Summary" and in the Impact Section, unselect -+all preselections in the Status list by holding the Control key -+while clicking on NEW, ASSIGNED, NEEDINFO an REOPENED. Click one -+of the Search buttons in the form then. You should get a list of all -+bugs ever reported for alpine, including their their status and get -+full information on them. -+ -+

      If your issue is not found in the Novell Bugzilla, please sign in -+to the Novell Bugzilla and report the issue. -+ -+Please also have a look at the -+ -+Alpine-alpha mailing list archiveand you can also report and discuss -+the issue directly on the -+ -+Alpine-alpha mailing list. Be sure to include the full openSUSE version -+of alpine (found at the top of this release notes page) in your first mail. -+ -

      New in Alpine

      - - Version