diff options
Diffstat (limited to 'mail-client')
-rw-r--r-- | mail-client/alpine/alpine-2.26-r2.ebuild | 91 | ||||
-rw-r--r-- | mail-client/alpine/files/alpine-2.26-fix-clang16-build.patch | 185 |
2 files changed, 276 insertions, 0 deletions
diff --git a/mail-client/alpine/alpine-2.26-r2.ebuild b/mail-client/alpine/alpine-2.26-r2.ebuild new file mode 100644 index 000000000000..b9dfafbf285c --- /dev/null +++ b/mail-client/alpine/alpine-2.26-r2.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit autotools optfeature toolchain-funcs + +DESCRIPTION="An easy to use text-based based mail and news client" +HOMEPAGE="https://alpineapp.email/ https://repo.or.cz/alpine.git/" +CHAPPA_PATCH_NAME="${P}-chappa-5.patch" +SRC_URI="https://alpineapp.email/alpine/release/src/${P}.tar.xz + chappa? ( https://alpineapp.email/alpine/patches/${P}/all.patch.gz -> ${CHAPPA_PATCH_NAME}.gz ) " + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86" +IUSE="+chappa ipv6 kerberos ldap nls onlyalpine passfile smime ssl" + +DEPEND="sys-libs/ncurses:= + virtual/libcrypt:= + kerberos? ( app-crypt/mit-krb5 ) + ldap? ( net-nds/openldap:= ) + ssl? ( dev-libs/openssl:0= ) +" +RDEPEND="${DEPEND} + app-misc/mime-types +" + +src_prepare() { + default + use chappa && eapply "${WORKDIR}/${CHAPPA_PATCH_NAME}" + eapply "${FILESDIR}/${PN}-2.26-fix-clang16-build.patch" + eautoreconf + tc-export CC RANLIB AR + export CC_FOR_BUILD="$(tc-getBUILD_CC)" +} + +src_configure() { + myconf=( + --without-tcl + --with-pthread + --with-system-pinerc="${EPREFIX}"/etc/pine.conf + --with-system-fixed-pinerc="${EPREFIX}"/etc/pine.conf.fixed + $(use_with ldap) + $(use_with ssl) + $(use_with passfile passfile .pinepwd) + $(use_with kerberos krb5) + $(use_enable nls) + $(use_with ipv6) + $(use_with smime) + ) + + if has_version "app-text/hunspell"; then + myconf+=( --with-interactive-spellcheck=/usr/bin/hunspell ) + elif has_version "app-text/aspell"; then + myconf+=( --with-interactive-spellcheck=/usr/bin/aspell ) + fi + + if use ssl; then + myconf+=( + --with-ssl-include-dir="${EPREFIX}"/usr/include/openssl + --with-ssl-lib-dir="${EPREFIX}"/usr/$(get_libdir) + --with-ssl-certs-dir="${EPREFIX}"/etc/ssl/certs + ) + fi + econf "${myconf[@]}" +} + +src_compile() { + emake -j1 AR="$(tc-getAR)" +} + +src_install() { + if use onlyalpine ; then + dobin alpine/alpine + doman doc/man1/alpine.1 + else + emake -j1 DESTDIR="${D}" install + doman doc/man1/*.1 + fi + dodoc NOTICE README* + dodoc doc/brochure.txt + dodoc -r doc/tech-notes/ + newdoc "${S}/doc/mailcap.unx" mailcap.unx.sample + newdoc "${S}/doc/mime.types" mime.types.sample + docompress -x /usr/share/doc/${PF}/mailcap.unx.sample /usr/share/doc/${PF}/mime.types.sample +} + +pkg_postinst() { + optfeature "Spell checking" app-text/hunspell app-text/aspell +} diff --git a/mail-client/alpine/files/alpine-2.26-fix-clang16-build.patch b/mail-client/alpine/files/alpine-2.26-fix-clang16-build.patch new file mode 100644 index 000000000000..7d3a83e462db --- /dev/null +++ b/mail-client/alpine/files/alpine-2.26-fix-clang16-build.patch @@ -0,0 +1,185 @@ +Bug: https://bugs.gentoo.org/883271 +--- a/alpine/adrbkcmd.c ++++ b/alpine/adrbkcmd.c +@@ -81,7 +81,7 @@ int ab_export(struct pine *, long, int, int); + VCARD_INFO_S *prepare_abe_for_vcard(struct pine *, AdrBk_Entry *, int); + void write_single_tab_entry(gf_io_t, VCARD_INFO_S *); + int percent_done_copying(void); +-int cmp_action_list(const qsort_t *, const qsort_t *); ++int cmp_action_list(const void *, const void *); + void set_act_list_member(ACTION_LIST_S *, a_c_arg_t, PerAddrBook *, PerAddrBook *, char *); + void convert_pinerc_to_remote(struct pine *, char *); + +@@ -5187,7 +5187,7 @@ percent_done_copying(void) + } + + int +-cmp_action_list(const qsort_t *a1, const qsort_t *a2) ++cmp_action_list(const void *a1, const void *a2) + { + ACTION_LIST_S *x = (ACTION_LIST_S *)a1; + ACTION_LIST_S *y = (ACTION_LIST_S *)a2; +--- a/pico/browse.c ++++ b/pico/browse.c +@@ -1920,7 +1920,7 @@ getfcells(char *dname, int fb_flags) + /* + * sort files case independently + */ +- qsort((qsort_t *)filtnames, (size_t)nentries, sizeof(char *), sstrcasecmp); ++ qsort((qsort_t *)filtnames, (size_t)nentries, sizeof(char *), (void *)sstrcasecmp); + + /* + * this is so we use absolute path names for stats. +--- a/pith/adrbklib.c ++++ b/pith/adrbklib.c +@@ -84,7 +84,7 @@ int cmp_ae_by_nick_lists_last(const qsort_t *,const qsort_t *); + int cmp_cntr_by_nick_lists_last(const qsort_t *, const qsort_t *); + int cmp_ae_by_nick(const qsort_t *, const qsort_t *); + int cmp_cntr_by_nick(const qsort_t *, const qsort_t *); +-int cmp_addr(const qsort_t *, const qsort_t *); ++int cmp_addr(const void *, const void *); + void sort_addr_list(char **); + int build_abook_datastruct(AdrBk *, char *, size_t); + AdrBk_Entry *init_ae(AdrBk *, AdrBk_Entry *, char *); +@@ -4671,7 +4671,7 @@ cmp_cntr_by_nick(const qsort_t *a, const qsort_t *b) + * For sorting a simple list of pointers to addresses (skip initial quotes) + */ + int +-cmp_addr(const qsort_t *a1, const qsort_t *a2) ++cmp_addr(const void *a1, const void *a2) + { + char *x = *(char **)a1, *y = *(char **)a2; + char *r, *s; +@@ -4762,14 +4762,14 @@ adrbk_sort(AdrBk *ab, a_c_arg_t current_entry_num, adrbk_cntr_t *new_entry_num, + qsort((qsort_t *)sort_array, + (size_t)count, + sizeof(adrbk_cntr_t), +- (ab->sort_rule == AB_SORT_RULE_FULL_LISTS) ? +- cmp_cntr_by_full_lists_last : +- (ab->sort_rule == AB_SORT_RULE_FULL) ? +- cmp_cntr_by_full : +- (ab->sort_rule == AB_SORT_RULE_NICK_LISTS) ? +- cmp_cntr_by_nick_lists_last : +- /* (ab->sort_rule == AB_SORT_RULE_NICK) */ +- cmp_cntr_by_nick); ++ (void *)((ab->sort_rule == AB_SORT_RULE_FULL_LISTS) ? ++ cmp_cntr_by_full_lists_last : ++ (ab->sort_rule == AB_SORT_RULE_FULL) ? ++ cmp_cntr_by_full : ++ (ab->sort_rule == AB_SORT_RULE_NICK_LISTS) ? ++ cmp_cntr_by_nick_lists_last : ++ /* (ab->sort_rule == AB_SORT_RULE_NICK) */ ++ cmp_cntr_by_nick)); + } + + dprint((9, "- adrbk_sort: done with first sort -\n")); +--- a/pith/folder.c ++++ b/pith/folder.c +@@ -1939,11 +1939,11 @@ resort_folder_list(FLIST *flist) + { + if(flist && folder_total(flist) > 1 && flist->folders) + qsort(flist->folders, folder_total(flist), sizeof(flist->folders[0]), +- (ps_global->fld_sort_rule == FLD_SORT_ALPHA_DIR_FIRST) +- ? compare_folders_dir_alpha_qsort +- : (ps_global->fld_sort_rule == FLD_SORT_ALPHA_DIR_LAST) +- ? compare_folders_alpha_dir_qsort +- : compare_folders_alpha_qsort); ++ (void *)((ps_global->fld_sort_rule == FLD_SORT_ALPHA_DIR_FIRST) ++ ? compare_folders_dir_alpha_qsort ++ : (ps_global->fld_sort_rule == FLD_SORT_ALPHA_DIR_LAST) ++ ? compare_folders_alpha_dir_qsort ++ : compare_folders_alpha_qsort)); + } + + +--- a/pith/init.c ++++ b/pith/init.c +@@ -28,7 +28,7 @@ + /* + * Internal prototypes + */ +-int compare_sm_files(const qsort_t *, const qsort_t *); ++int compare_sm_files(const void *, const void *); + + + +@@ -327,7 +327,7 @@ init_save_defaults(void) + in above format. + ----*/ + int +-compare_sm_files(const qsort_t *aa, const qsort_t *bb) ++compare_sm_files(const void *aa, const void *bb) + { + struct sm_folder *a = (struct sm_folder *)aa, + *b = (struct sm_folder *)bb; +--- a/pith/sort.c ++++ b/pith/sort.c +@@ -41,7 +41,7 @@ void sort_sort_callback(MAILSTREAM *, unsigned long *, unsigned long); + int percent_sorted(void); + int pine_compare_long(const qsort_t *, const qsort_t *); + int pine_compare_long_rev(const qsort_t *, const qsort_t *); +-int pine_compare_scores(const qsort_t *, const qsort_t *); ++int pine_compare_scores(const void *, const void *); + void build_score_array(MAILSTREAM *, MSGNO_S *); + void free_score_array(void); + +@@ -162,7 +162,7 @@ sort_folder(MAILSTREAM *stream, MSGNO_S *msgmap, SortOrder new_sort, + */ + qsort(msgmap->sort+1, (size_t) mn_get_total(msgmap), + sizeof(long), +- new_rev ? pine_compare_long_rev : pine_compare_long); ++ (void *)(new_rev ? pine_compare_long_rev : pine_compare_long)); + } + else if(mn_get_total(msgmap) > 0L){ + if(new_rev){ +@@ -672,7 +672,7 @@ free_score_array(void) + Compare scores + ----*/ + int +-pine_compare_scores(const qsort_t *a, const qsort_t *b) ++pine_compare_scores(const void *a, const void *b) + { + long *mess_a = (long *)a, *mess_b = (long *)b, mdiff; + long sdiff; +--- a/pith/takeaddr.c ++++ b/pith/takeaddr.c +@@ -1377,7 +1377,7 @@ process_vcard_atts(MAILSTREAM *stream, long int msgno, + + + int +-cmp_swoop_list(const qsort_t *a1, const qsort_t *a2) ++cmp_swoop_list(const void *a1, const void *a2) + { + SWOOP_S *x = (SWOOP_S *)a1; + SWOOP_S *y = (SWOOP_S *)a2; +--- a/pith/takeaddr.h ++++ b/pith/takeaddr.h +@@ -98,7 +98,7 @@ int convert_ta_to_lines(TA_S *, LINES_TO_TAKE **); + LINES_TO_TAKE *new_ltline(LINES_TO_TAKE **); + int add_addresses_to_talist(struct pine *, long, char *, TA_S **, ADDRESS *, int); + int process_vcard_atts(MAILSTREAM *, long, BODY *, BODY *, char *, TA_S **); +-int cmp_swoop_list(const qsort_t *, const qsort_t *); ++int cmp_swoop_list(const void *, const void *); + int vcard_to_ta(char *, char *, char *, char *, char *, char *, TA_S **); + char *getaltcharset(char *, char **, char **, int *); + void switch_to_last_comma_first(char *, char *, size_t); +--- a/pith/thread.c ++++ b/pith/thread.c +@@ -45,7 +45,7 @@ THREADNODE *sort_threads_and_collapse(THREADNODE *); + THREADNODE *insert_tree_in_place(THREADNODE *, THREADNODE *); + unsigned long branch_greatest_num(THREADNODE *, int); + long calculate_visible_threads(MAILSTREAM *); +-int pine_compare_size_thread(const qsort_t *, const qsort_t *); ++int pine_compare_size_thread(const void *, const void *); + + + PINETHRD_S * +@@ -1892,7 +1892,7 @@ get_length_branch(MAILSTREAM *stream, long rawno) + return branchp ? (count ? count : 1L) : 0L; + } + +-int pine_compare_size_thread(const qsort_t *a, const qsort_t *b) ++int pine_compare_size_thread(const void *a, const void *b) + { + SIZETHREAD_T *s = (SIZETHREAD_T *) a, *t = (SIZETHREAD_T *) b; + |