summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app-portage/ufed/ChangeLog11
-rw-r--r--app-portage/ufed/Manifest14
-rw-r--r--app-portage/ufed/files/ufed-0.40-termsize-2.patch200
-rw-r--r--app-portage/ufed/ufed-0.40-r11.ebuild47
4 files changed, 259 insertions, 13 deletions
diff --git a/app-portage/ufed/ChangeLog b/app-portage/ufed/ChangeLog
index 72e7b7536c45..839d79705914 100644
--- a/app-portage/ufed/ChangeLog
+++ b/app-portage/ufed/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for app-portage/ufed
-# Copyright 2003-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/app-portage/ufed/ChangeLog,v 1.69 2008/08/08 16:55:54 nixnut Exp $
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/app-portage/ufed/ChangeLog,v 1.70 2009/06/18 17:16:19 truedfx Exp $
+
+*ufed-0.40-r11 (18 Jun 2009)
+
+ 18 Jun 2009; Harald van Dijk <truedfx@gentoo.org> +ufed-0.40-r11.ebuild,
+ +files/ufed-0.40-termsize-2.patch:
+ Support flags with too many descriptions to fit on one screen (#273309 by
+ ulm)
08 Aug 2008; nixnut <nixnut@gentoo.org> ufed-0.40-r10.ebuild:
Stable on ppc wrt bug 233644
diff --git a/app-portage/ufed/Manifest b/app-portage/ufed/Manifest
index 056d85a2863c..22cef204f5f5 100644
--- a/app-portage/ufed/Manifest
+++ b/app-portage/ufed/Manifest
@@ -1,23 +1,15 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
AUX ufed-0.40-comments.patch 1514 RMD160 92eab07ec71b6d51b9952455b73f04b1c26c37b2 SHA1 164528e1d2e29776f70a97f7483f531206e4b155 SHA256 f7a812e012f04c3f6c52f5efb096349ed25ddff0898c1107f7acd170eac1b17f
AUX ufed-0.40-masked.patch 487 RMD160 2418285104f72cef7b87a2c4225ea7934cb37076 SHA1 aee6579a525e54274d75c754691ef0418da8e9bb SHA256 d2fd936d900d245ac7e1ed488dee602afe5b5536d1e3d5102ee015d60ff09217
AUX ufed-0.40-multiple-inheritance.patch 704 RMD160 18fc8b1f3729a3d435031f5cccf741326db70744 SHA1 2fa92308d5e351a184b6203047735250e2ed7d07 SHA256 73f9352b1f47faa513f700a806569c5da0d72d4aca5d914d692b2c82f65fd358
AUX ufed-0.40-noremove.patch 4473 RMD160 45e4e566a5d514db357aad1b2a0146a738861783 SHA1 b8cb1a0ea91e065fa866bc16450b28fd3e158e1a SHA256 36c1b8ae11aaa6da8cf5e9a2db93b356b98107aca0dd8901e9d3c98a5c6d02a2
AUX ufed-0.40-packageusemask.patch 1773 RMD160 158e0033bdde3264259e28cf77964b6b7527cf42 SHA1 12fc4602e48899d9c8ab598519d1b381cea94d50 SHA256 ff9c592ad541d71e9ff85acd4d061b711d2d555ee97592b380d450edf40b242f
AUX ufed-0.40-source.patch 1934 RMD160 636f210be5b3f74ec204f8427503d3a60e6b28ac SHA1 2c2c51aaabcbf80c50039c9b180574d72b3992f2 SHA256 5050eb221225c0232632a19bc67ba29e8c6fd6ae557307ca76acfdee5f211449
+AUX ufed-0.40-termsize-2.patch 5934 RMD160 c77ed7c3067a18d05d020599c2f8f8b8f5ff9d23 SHA1 881089220962a7a4dfb97595eea46e50ec02a337 SHA256 3264f5fbd7abec074b8e06b4f06fa68fd438d070450cb761d657c0c2da6b9c04
AUX ufed-0.40-termsize.patch 1022 RMD160 ecbe487e3ede165eb24a4e098d6a41f41ae805f1 SHA1 e8beb891f5d37cdc33338a03a7593b9f23eec7fc SHA256 285c5ff5db45dd506c9f0afc59eb2126b7e0774bfc9304bc6e5eb9f62c9a1604
AUX ufed-0.40-useorder.patch 983 RMD160 6886d7dcf15c47aaf5cc45d730511d0d7f2bd8f2 SHA1 6d026beb4d1a93dc7567fe11cd3ef519e7f64113 SHA256 e3f904ab52d9fc184f7d32800f25c3d1ddaf73e14db09585afb12ca64e36fc0b
DIST ufed-0.40.tar.bz2 20288 RMD160 f360eb01f952acb4f52cfa571927a523f1fe3015 SHA1 a20e980972123e424fdef14001dace14ca1a6b73 SHA256 85d8894b7d163dacf7dfc94fff4e8c4a9cbb0302a66fc7e545a6d5c1c6c9318c
EBUILD ufed-0.40-r10.ebuild 1211 RMD160 10bb9f10b1865352df64b72ebed64fc0159dfc1a SHA1 569fa2722d4da31d241f4e632b4bd7df97434255 SHA256 cfedda6736fbe28c11a5e4f299b0e3af83ab465f07f1bdc0d06d1ffc6ce56dac
+EBUILD ufed-0.40-r11.ebuild 1253 RMD160 4dd256d151aa26f887b88e9e153274b4c839c998 SHA1 682eab22945a01e973ac2eb9db05e8da2998f518 SHA256 706d25d2cc56fcfacb6ad7af1630e5bf206a0a994e52d76a36f5cbd7652779b4
EBUILD ufed-0.40-r6.ebuild 1071 RMD160 fea211ac591e93c122f06b4d7273cf0e47c466b6 SHA1 7fe048645c73372a0017861af394066406da784d SHA256 bcc894cc49d7f08b35255e0e750310b1216b744594e0f330ac50b6691291e11e
-MISC ChangeLog 9816 RMD160 da2a312f4bd2e8ce866eb789ba0598f7f844423c SHA1 4f50dcd9fa2579470460dc9785f133a5db7ff5f8 SHA256 50c8c1389223e48a8e00f2776b4b029ef752e12b615a4f952fcfea8dbd102f94
+MISC ChangeLog 10043 RMD160 94895cb67653aafef7b23c3db259b9de090625a7 SHA1 38c12e185f502ab08a284bcee7b47910537d9ece SHA256 4a6439ddb5acd37b64d350e88ea193444041028cd9f3c6f401f0b27fbfe7d24e
MISC metadata.xml 256 RMD160 338deafc839d9e041e7c2df1ad9f3d73da67c096 SHA1 437b2fe5a9ddf258e30d77483bea041d998381de SHA256 52559b22087ad96b3cc63918a82c69515b3efdb8ca7735746698650bf62bb8b5
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v2.0.9 (GNU/Linux)
-
-iEYEARECAAYFAkkDn7sACgkQ67wieSYcaxdzsQCeIvwT79C301zIcofjLOvE6fbU
-CrkAoMlT+gsYUtZDWr1OsFwkoyYAZ8YM
-=u5s5
------END PGP SIGNATURE-----
diff --git a/app-portage/ufed/files/ufed-0.40-termsize-2.patch b/app-portage/ufed/files/ufed-0.40-termsize-2.patch
new file mode 100644
index 000000000000..ae0834e76682
--- /dev/null
+++ b/app-portage/ufed/files/ufed-0.40-termsize-2.patch
@@ -0,0 +1,200 @@
+
+ Allow termsizes as small as allowing only one line in the list.
+ Bug #273309 by ulm
+
+--- ufed-0.40/ufed-curses.c
++++ ufed-0.40/ufed-curses.c
+@@ -21,7 +21,7 @@
+ static const struct key *keys;
+
+ static struct item *items, *currentitem;
+-int topy, minheight, minwidth;
++int topy, minwidth;
+
+ static void checktermsize(void);
+
+@@ -53,7 +53,7 @@
+ }
+
+ static void checktermsize(void) {
+- while(wHeight(List) < minheight
++ while(wHeight(List) < 1
+ || wWidth(List) < minwidth) {
+ #ifdef KEY_RESIZE
+ clear();
+@@ -227,32 +227,13 @@
+ }
+
+ void scrollcurrent(void) {
+- int oldtopy = topy;
+ if(currentitem->top < topy)
+- topy = currentitem->top;
++ topy = max(currentitem->top, currentitem->top+currentitem->height-wHeight(List));
+ else if(currentitem->top+currentitem->height > topy+wHeight(List))
+- topy = currentitem->top+currentitem->height-wHeight(List);
++ topy = min(currentitem->top+currentitem->height-wHeight(List), currentitem->top);
+ else
+ return;
+- if(abs(topy-oldtopy)>wHeight(List)) {
+- drawitems();
++ drawitems();
+- } else {
+- struct item *item = currentitem;
+- scrollok(win(List), TRUE);
+- wscrl(win(List), topy-oldtopy);
+- scrollok(win(List), FALSE);
+- if(topy<oldtopy)
+- while((item=item->next)!=items
+- && item->top < oldtopy
+- && item->top < topy + wHeight(List))
+- (*drawitem)(item, FALSE);
+- else
+- while((item=item->prev)->next!=items
+- && item->top > oldtopy
+- && item->top + item->height-1 >= topy)
+- (*drawitem)(item, FALSE);
+- mvwhline(win(List), wHeight(List), 0, ' ', wWidth(List));
+- }
+ drawscrollbar();
+ }
+
+@@ -282,8 +263,8 @@
+ window[w].win = newwin(wHeight(w), wWidth(w), wTop(w), wLeft(w));
+ } }
+ /* this won't work for the help viewer, but it doesn't use yesno() */
+- currentitem = items;
+ topy = 0;
++ scrollcurrent();
+ draw();
+ wattrset(win(Input), COLOR_PAIR(4) | A_BOLD | A_REVERSE);
+ mvwhline(win(Input), 0, 0, ' ', wWidth(Input));
+@@ -463,7 +444,11 @@
+
+ switch(c) {
+ case KEY_UP:
+- if(currentitem!=items) {
++ if(currentitem->top<topy) {
++ (*drawitem)(currentitem, FALSE);
++ topy--;
++ (*drawitem)(currentitem, TRUE);
++ } else if(currentitem!=items || topy>currentitem->top) {
+ (*drawitem)(currentitem, FALSE);
+ currentitem = currentitem->prev;
+ scrollcurrent();
+@@ -472,7 +457,11 @@
+ break;
+
+ case KEY_DOWN:
+- if(currentitem->next!=items) {
++ if(currentitem->top+currentitem->height>topy+wHeight(List)) {
++ (*drawitem)(currentitem, FALSE);
++ topy++;
++ (*drawitem)(currentitem, TRUE);
++ } else if(currentitem->next!=items) {
+ (*drawitem)(currentitem, FALSE);
+ currentitem = currentitem->next;
+ scrollcurrent();
+@@ -484,9 +473,9 @@
+ if(currentitem!=items) {
+ struct item *olditem = currentitem;
+ (*drawitem)(currentitem, FALSE);
++ do currentitem = currentitem->prev;
+ while(currentitem!=items
+- && olditem->top - currentitem->prev->top <= wHeight(List))
++ && olditem->top - currentitem->prev->top <= wHeight(List));
+- currentitem = currentitem->prev;
+ scrollcurrent();
+ (*drawitem)(currentitem, TRUE);
+ }
+@@ -496,10 +485,10 @@
+ if(currentitem->next!=items) {
+ struct item *olditem = currentitem;
+ (*drawitem)(currentitem, FALSE);
++ do currentitem = currentitem->next;
+ while(currentitem->next!=items
+ && (currentitem->next->top + currentitem->next->height)
+- - (olditem->top + olditem->height) <= wHeight(List))
++ - (olditem->top + olditem->height) <= wHeight(List));
+- currentitem = currentitem->next;
+ scrollcurrent();
+ (*drawitem)(currentitem, TRUE);
+ }
+@@ -531,11 +520,11 @@
+ delwin(window[w].win);
+ window[w].win = newwin(wHeight(w), wWidth(w), wTop(w), wLeft(w));
+ } }
+- if(result==-1)
++ if(result==-1) {
+- currentitem = items;
++ topy = 0;
++ scrollcurrent();
+- else
++ } else
+ items = currentitem;
+- topy = 0;
+ draw();
+ break;
+ #endif
+--- ufed-0.40/ufed-curses-checklist.c
++++ ufed-0.40/ufed-curses-checklist.c
+@@ -109,8 +109,6 @@
+ flag->state = &line[state.start];
+
+ flag->item.height = ndescr;
+- if(ndescr > minheight)
+- minheight = ndescr;
+ { int i; for(i=0; i<ndescr; i++) {
+ flag->descr[i] = getline(input);
+ } }
+@@ -174,11 +172,12 @@
+ wattrset(win(List), COLOR_PAIR(3));
+ else
+ wattrset(win(List), COLOR_PAIR(3) | A_BOLD | A_REVERSE);
+- if(y < 0) {
++ if(y >= 0 || -y >= flag->item.height) {
++ d = &flag->descr[0];
++ } else {
+ wmove(win(List), 0, 0);
+ d = &flag->descr[-y];
+ y = 0;
+- goto descriptiononly;
+ }
+ wmove(win(List), y, 0);
+ sprintf(buf, " %c%c%c %-*s %-5.5s ",
+@@ -187,7 +186,6 @@
+ flag->on == ' ' ? ')' : ']',
+ minwidth-12, flag->name,
+ flag->state);
+- d = &flag->descr[0];
+ if(d != &flag->descr[flag->item.height]) {
+ for(;;) {
+ sprintf(buf+minwidth, "%-*.*s",
+@@ -198,7 +196,6 @@
+ waddstr(win(List), buf);
+ d++;
+ y++;
+- descriptiononly:
+ if(d!=&flag->descr[flag->item.height] && y<wHeight(List)) {
+ char *p;
+ for(p=buf; p!=buf+minwidth; p++)
+@@ -214,7 +211,7 @@
+ y++;
+ }
+ if(highlight)
+- wmove(win(List), flag->item.top - topy, 2);
++ wmove(win(List), max(flag->item.top - topy, 0), 2);
+ wnoutrefresh(win(List));
+ }
+
+--- ufed-0.40/ufed-curses.h
++++ ufed-0.40/ufed-curses.h
+@@ -45,6 +45,8 @@
+ static inline int wLeft (enum win w) { return (window[w].left >= 0 ? 0 : COLS ) + window[w].left ; }
+ static inline int wHeight(enum win w) { return (window[w].height > 0 ? 0 : LINES) + window[w].height; }
+ static inline int wWidth (enum win w) { return (window[w].width > 0 ? 0 : COLS ) + window[w].width ; }
++static inline int min(int a, int b) { return a < b ? a : b; }
++static inline int max(int a, int b) { return a > b ? a : b; }
+
+-extern int minheight, minwidth;
++extern int minwidth;
+ extern int topy;
diff --git a/app-portage/ufed/ufed-0.40-r11.ebuild b/app-portage/ufed/ufed-0.40-r11.ebuild
new file mode 100644
index 000000000000..4558d9e9b1bc
--- /dev/null
+++ b/app-portage/ufed/ufed-0.40-r11.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/app-portage/ufed/ufed-0.40-r11.ebuild,v 1.1 2009/06/18 17:16:19 truedfx Exp $
+
+EAPI=2
+
+inherit eutils
+
+DESCRIPTION="Gentoo Linux USE flags editor"
+HOMEPAGE="http://www.gentoo.org/"
+SRC_URI="mirror://gentoo/${P}.tar.bz2
+ http://dev.gentoo.org/~truedfx/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
+IUSE=""
+
+DEPEND="sys-libs/ncurses"
+RDEPEND="${DEPEND}
+ dev-lang/perl"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-useorder.patch
+ epatch "${FILESDIR}"/${P}-source.patch
+ epatch "${FILESDIR}"/${P}-comments.patch
+ epatch "${FILESDIR}"/${P}-masked.patch
+ epatch "${FILESDIR}"/${P}-packageusemask.patch
+ epatch "${FILESDIR}"/${P}-noremove.patch
+ epatch "${FILESDIR}"/${P}-termsize.patch
+ epatch "${FILESDIR}"/${P}-multiple-inheritance.patch
+ epatch "${FILESDIR}"/${P}-termsize-2.patch
+}
+
+src_compile() {
+ ./configure || die "configure failed"
+ emake || die "make failed"
+}
+
+src_install() {
+ newsbin ufed.pl ufed || die
+ doman ufed.8
+ insinto /usr/lib/ufed
+ doins *.pm || die
+ exeinto /usr/lib/ufed
+ doexe ufed-curses || die
+}