2018-04-17 7:48 GMT+03:00 Ingo Schwarze <[email protected]>:
> Hi,
>
> it may seem presumptuous that i'm fanning out candidate fixes for
> kde/libs3, given that i never used KDE or GNOME or anything similar
> in my life.
>
> Not sure whether i should ask for OKs for this...
> I have mostly done code inspection, no testing,
> and the package now builds.
>
> My hope is mainly that this gets us started.
>
> Then again, what can be worse than having it not build at all?
> KDE3 is probably not the most bug-free and secure software
> in the first place, right?
>
> Once people start fixing the applications on top, testing will
> happen anyway, maybe?
Hi, Ingo!
First of all thank you for taking care of this. It's a pity I can't
take enough part in workflow for now. I'm sorry that you have to work
on this.
Now to the patch. TL;DR: I'm agree with all changes, but a few libs
should have major bump since ABI is changed (public constants): kdeui,
khtml, kjs.
--
WBR,
Vadim Zhukov
> Index: patches/patch-kate_part_katebuffer_cpp
> ===================================================================
> RCS file: /cvs/ports/x11/kde/libs3/patches/patch-kate_part_katebuffer_cpp,v
> retrieving revision 1.1
> diff -u -p -r1.1 patch-kate_part_katebuffer_cpp
> --- patches/patch-kate_part_katebuffer_cpp 19 Apr 2017 13:21:23 -0000
> 1.1
> +++ patches/patch-kate_part_katebuffer_cpp 17 Apr 2018 04:43:42 -0000
> @@ -1,6 +1,16 @@
> $OpenBSD: patch-kate_part_katebuffer_cpp,v 1.1 2017/04/19 13:21:23 espie Exp
> $
> ---- kate/part/katebuffer.cpp.orig Tue Apr 18 16:35:12 2017
> -+++ kate/part/katebuffer.cpp Tue Apr 18 16:38:02 2017
> +Index: kate/part/katebuffer.cpp
> +--- kate/part/katebuffer.cpp.orig
> ++++ kate/part/katebuffer.cpp
> +@@ -122,7 +122,7 @@ class KateFileLoader
> + if ((c >= 2) && (m_codec->mibEnum() == 1000) && (m_buffer[1] ==
> 0x00))
> + {
> + // utf16LE, we need to put the decoder in LE mode
> +- char reverseUtf16[3] = {0xFF, 0xFE, 0x00};
> ++ char reverseUtf16[3] = {'\377', '\376', '\0'};
> + m_decoder->toUnicode(reverseUtf16, 2);
> + }
> +
> @@ -917,7 +917,7 @@ void KateBuffer::updatePreviousNotEmptyLine(KateBufBlo
> } while (textLine->firstChar()==-1);
> kdDebug(13020)<<"updatePreviousNotEmptyLine: updating
> line:"<<(blk->startLine()+current_line)<<endl;
okay
> Index: patches/patch-kdecore_network_kresolverworkerbase_h
> ===================================================================
> RCS file: patches/patch-kdecore_network_kresolverworkerbase_h
> diff -N patches/patch-kdecore_network_kresolverworkerbase_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kdecore_network_kresolverworkerbase_h 17 Apr 2018 04:43:42
> -0000
> @@ -0,0 +1,13 @@
> +$OpenBSD$
> +
> +Index: kdecore/network/kresolverworkerbase.h
> +--- kdecore/network/kresolverworkerbase.h.orig
> ++++ kdecore/network/kresolverworkerbase.h
> +@@ -290,6 +290,7 @@ class KResolverWorkerFactoryBase
> + {
> + public:
> + virtual KResolverWorkerBase* create() const = 0;
> ++ virtual ~KResolverWorkerFactoryBase() { }
> +
> + /**
> + * Wrapper call to register workers
okay
> Index: patches/patch-kdecore_network_kserversocket_cpp
> ===================================================================
> RCS file: patches/patch-kdecore_network_kserversocket_cpp
> diff -N patches/patch-kdecore_network_kserversocket_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kdecore_network_kserversocket_cpp 17 Apr 2018 04:43:42
> -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: kdecore/network/kserversocket.cpp
> +--- kdecore/network/kserversocket.cpp.orig
> ++++ kdecore/network/kserversocket.cpp
> +@@ -292,7 +292,7 @@ KActiveSocketBase* KServerSocket::accept()
> + }
> + else if (!listen())
> + // error happened during listen
> +- return false;
> ++ return NULL;
> + }
> +
> + // check to see if we're doing a timeout
okay
> Index: patches/patch-kdeui_kdialogbase_h
> ===================================================================
> RCS file: patches/patch-kdeui_kdialogbase_h
> diff -N patches/patch-kdeui_kdialogbase_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kdeui_kdialogbase_h 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,16 @@
> +$OpenBSD$
> +
> +Index: kdeui/kdialogbase.h
> +--- kdeui/kdialogbase.h.orig
> ++++ kdeui/kdialogbase.h
> +@@ -209,8 +209,8 @@ class KDEUI_EXPORT KDialogBase : public KDialog
> + No = 0x00000080, ///< Show No button.
> + Yes = 0x00000100, ///< Show Yes button.
> + Details = 0x00000400, ///< Show Details button.
> +- Filler = 0x40000000, ///< @internal Ignored when used in a
> constructor.
> +- Stretch = 0x80000000, ///< @internal Ignored when used in a
> constructor.
> ++ Filler = 0x20000000, ///< @internal Ignored when used in a
> constructor.
> ++ Stretch = 0x40000000, ///< @internal Ignored when used in a
> constructor.
> + NoDefault ///< Used when specifying a default button;
> indicates that no button should be marked by default. @since 3.3
> + };
> +
This deserves major bump of libkdeui version in SHARED_LIBS, because
ABI changes.
> Index: patches/patch-khtml_dom_dom2_traversal_h
> ===================================================================
> RCS file: patches/patch-khtml_dom_dom2_traversal_h
> diff -N patches/patch-khtml_dom_dom2_traversal_h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-khtml_dom_dom2_traversal_h 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: khtml/dom/dom2_traversal.h
> +--- khtml/dom/dom2_traversal.h.orig
> ++++ khtml/dom/dom2_traversal.h
> +@@ -215,7 +215,7 @@ class KHTML_EXPORT NodeFilter (public)
> + *
> + */
> + enum ShowCode {
> +- SHOW_ALL = 0xFFFFFFFF,
> ++ SHOW_ALL = 0x00007FFF,
> + SHOW_ELEMENT = 0x00000001,
> + SHOW_ATTRIBUTE = 0x00000002,
> + SHOW_TEXT = 0x00000004,
And this deserves major bump of libkhtml version in SHARED_LIBS.
> Index: patches/patch-khtml_ecma_kjs_events_cpp
> ===================================================================
> RCS file: patches/patch-khtml_ecma_kjs_events_cpp
> diff -N patches/patch-khtml_ecma_kjs_events_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-khtml_ecma_kjs_events_cpp 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: khtml/ecma/kjs_events.cpp
> +--- khtml/ecma/kjs_events.cpp.orig
> ++++ khtml/ecma/kjs_events.cpp
> +@@ -405,7 +405,7 @@ DOM::Event toEvent(const Value& val)
> + FOCUS 4096 DontDelete|ReadOnly
> + BLUR 8192 DontDelete|ReadOnly
> + SELECT 16384 DontDelete|ReadOnly
> +- CHANGE 32768 DontDelete|ReadOnly
> ++ CHANGE -1 DontDelete|ReadOnly
> + @end
> + */
> + DEFINE_CONSTANT_TABLE(EventConstants)
And same for libkjs.
> Index: patches/patch-khtml_misc_decoder_cpp
> ===================================================================
> RCS file: patches/patch-khtml_misc_decoder_cpp
> diff -N patches/patch-khtml_misc_decoder_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-khtml_misc_decoder_cpp 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,14 @@
> +$OpenBSD$
> +
> +Index: khtml/misc/decoder.cpp
> +--- khtml/misc/decoder.cpp.orig
> ++++ khtml/misc/decoder.cpp
> +@@ -265,7 +265,7 @@ QString Decoder::decode(const char *data, int len)
> + if (m_codec->mibEnum() == 1000 && c2 == 0x00)
> + {
> + // utf16LE, we need to put the decoder in LE mode
> +- char reverseUtf16[3] = {0xFF, 0xFE, 0x00};
> ++ char reverseUtf16[3] = {'\377', '\376', '\0'};
> + m_decoder->toUnicode(reverseUtf16, 2);
> + }
> + }
okay
> Index: patches/patch-kinit_kinit_cpp
> ===================================================================
> RCS file: patches/patch-kinit_kinit_cpp
> diff -N patches/patch-kinit_kinit_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kinit_kinit_cpp 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,23 @@
> +$OpenBSD$
> +
> +Index: kinit/kinit.cpp
> +--- kinit/kinit.cpp.orig
> ++++ kinit/kinit.cpp
> +@@ -321,7 +321,7 @@ const char* get_env_var( const char* var, int envc, co
> + static void init_startup_info( KStartupInfoId& id, const char* bin,
> + int envc, const char* envs )
> + {
> +- const char* dpy = get_env_var( DISPLAY"=", envc, envs );
> ++ const char* dpy = get_env_var( DISPLAY "=", envc, envs );
> + // this may be called in a child, so it can't use display open using
> X11display
> + // also needed for multihead
> + X11_startup_notify_display = XOpenDisplay( dpy );
> +@@ -1513,7 +1513,7 @@ static void kdeinit_library_path()
> + QCString display = getenv(DISPLAY);
> + if (display.isEmpty())
> + {
> +- fprintf(stderr, "kdeinit: Aborting. $"DISPLAY" is not set.\n");
> ++ fprintf(stderr, "kdeinit: Aborting. $" DISPLAY " is not set.\n");
> + exit(255);
> + }
> + int i;
okay
> Index: patches/patch-kio_kio_kshred_cpp
> ===================================================================
> RCS file: patches/patch-kio_kio_kshred_cpp
> diff -N patches/patch-kio_kio_kshred_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kio_kio_kshred_cpp 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,18 @@
> +$OpenBSD$
> +
> +Index: kio/kio/kshred.cpp
> +--- kio/kio/kshred.cpp.orig
> ++++ kio/kio/kshred.cpp
> +@@ -206,9 +206,9 @@ KShred::flush()
> + bool
> + KShred::shred()
> + {
> +- unsigned char p[6][3] = {{'\222', '\111', '\044'}, {'\111', '\044',
> '\222'},
> +- {'\044', '\222', '\111'}, {'\155', '\266',
> '\333'},
> +- {'\266', '\333', '\155'}, {'\333', '\155',
> '\266'}};
> ++ unsigned char p[6][3] = {{ 0x92, '\111', '\044'}, {'\111', '\044', 0x92},
> ++ {'\044', 0x92, '\111'}, {'\155', 0xb6, 0xdb},
> ++ { 0xb6, 0xdb, '\155'}, { 0xdb, '\155',
> 0xb6}};
> + QString msg = i18n("Shredding: pass %1 of 35");
> +
> + emit processedSize(0);
okay
> Index: patches/patch-kstyles_keramik_keramik_cpp
> ===================================================================
> RCS file: patches/patch-kstyles_keramik_keramik_cpp
> diff -N patches/patch-kstyles_keramik_keramik_cpp
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-kstyles_keramik_keramik_cpp 17 Apr 2018 04:43:42 -0000
> @@ -0,0 +1,37 @@
> +$OpenBSD$
> +
> +Index: kstyles/keramik/keramik.cpp
> +--- kstyles/keramik/keramik.cpp.orig
> ++++ kstyles/keramik/keramik.cpp
> +@@ -2790,18 +2790,24 @@ bool KeramikStyle::eventFilter( QObject* object,
> QEven
> + //Combo dropdowns are shaped
> + case QEvent::Resize:
> + {
> ++ int w, h;
> ++
> + QListBox* listbox =
> static_cast<QListBox*>(object);
> + QResizeEvent* resize =
> static_cast<QResizeEvent*>(event);
> +- if (resize->size().height() < 6)
> ++ w = resize->size().width();
> ++ h = resize->size().height();
> ++
> ++ if (h < 6 || h > SHRT_MAX ||
> ++ w < 7 || w > SHRT_MAX)
> + return false;
> +-
> ++
> + //CHECKME: Not sure the rects are perfect..
> + XRectangle rects[5] = {
> +- {0, 0, resize->size().width()-2,
> resize->size().height()-6},
> +- {0, resize->size().height()-6,
> resize->size().width()-2, 1},
> +- {1, resize->size().height()-5,
> resize->size().width()-3, 1},
> +- {2, resize->size().height()-4,
> resize->size().width()-5, 1},
> +- {3, resize->size().height()-3,
> resize->size().width()-7, 1}
> ++ {0, 0, (unsigned short)(w-2),
> (unsigned short)(h-6)},
> ++ {0, (short)(h-6), (unsigned
> short)(w-2), 1},
> ++ {1, (short)(h-5), (unsigned
> short)(w-3), 1},
> ++ {2, (short)(h-4), (unsigned
> short)(w-5), 1},
> ++ {3, (short)(h-3), (unsigned
> short)(w-7), 1}
> + };
> +
> + XShapeCombineRectangles(qt_xdisplay(),
> listbox->handle(), ShapeBounding, 0, 0,
okay