Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F157413497
D15673.id43420.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D15673.id43420.diff
View Options
Index: devel/qt5-core/Makefile
===================================================================
--- devel/qt5-core/Makefile
+++ devel/qt5-core/Makefile
@@ -2,6 +2,7 @@
PORTNAME= core
DISTVERSION= ${QT5_VERSION}
+PORTREVISION= 1
CATEGORIES= devel
PKGNAMEPREFIX= qt5-
Index: devel/qt5-core/files/patch-src_corelib_io_qlockfile__unix.cpp
===================================================================
--- /dev/null
+++ devel/qt5-core/files/patch-src_corelib_io_qlockfile__unix.cpp
@@ -0,0 +1,78 @@
+--- src/corelib/io/io.pri.orig 2018-02-08 18:24:48 UTC
++++ src/corelib/io/io.pri
+@@ -174,6 +174,11 @@ win32 {
+ io/qstandardpaths_haiku.cpp \
+ io/qstorageinfo_unix.cpp
+ LIBS += -lbe
++ } else:freebsd {
++ SOURCES += \
++ io/qstandardpaths_unix.cpp \
++ io/qstorageinfo_unix.cpp
++ LIBS += -lkvm -lprocstat
+ } else {
+ SOURCES += \
+ io/qstandardpaths_unix.cpp \
+--- src/corelib/io/qlockfile_unix.cpp.orig 2018-02-08 18:24:48 UTC
++++ src/corelib/io/qlockfile_unix.cpp
+@@ -75,6 +75,8 @@
+ # include <sys/sysctl.h>
+ # if !defined(Q_OS_NETBSD)
+ # include <sys/user.h>
++# include <kvm.h>
++# include <libprocstat.h>
+ # endif
+ #endif
+
+@@ -246,23 +248,46 @@ QString QLockFilePrivate::processNameByPid(qint64 pid)
+ struct kinfo_proc kp;
+ int mib[6] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, (int)pid, sizeof(struct kinfo_proc), 1 };
+ # else
++ QString nameFromProcstat;
++ kvm_t * kvm = kvm_open(nullptr, "/dev/null", nullptr, O_RDONLY, "");
++ if (kvm) {
++ int cnt;
++ struct kinfo_proc * kp = kvm_getprocs(kvm, KERN_PROC_PID, getpid(), &cnt);
++ if (kp) {
++ struct procstat * ps = procstat_open_sysctl();
++ char ** argv = procstat_getargv(ps, kp, 0);
++ if (argv != nullptr && argv[0] != nullptr)
++ nameFromProcstat = QString::fromLocal8Bit(argv[0]);
++ procstat_close(ps);
++ }
++ kvm_close(kvm);
++ }
+ struct kinfo_proc kp;
+ int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, (int)pid };
+ # endif
+- size_t len = sizeof(kp);
+- u_int mib_len = sizeof(mib)/sizeof(u_int);
++ if (nameFromProcstat.isEmpty())
++ {
++ size_t len = sizeof(kp);
++ u_int mib_len = sizeof(mib)/sizeof(u_int);
+
+- if (sysctl(mib, mib_len, &kp, &len, NULL, 0) < 0)
+- return QString();
+-
++ if (sysctl(mib, mib_len, &kp, &len, NULL, 0) < 0)
++ return QString();
++ }
+ # if defined(Q_OS_OPENBSD) || defined(Q_OS_NETBSD)
+ if (kp.p_pid != pid)
+ return QString();
+ QString name = QFile::decodeName(kp.p_comm);
+ # else
+- if (kp.ki_pid != pid)
++ QString name;
++ if (!nameFromProcstat.isEmpty())
++ {
++ QFileInfo fi(nameFromProcstat);
++ name = fi.fileName();
++ }
++ else if (kp.ki_pid != pid)
+ return QString();
+- QString name = QFile::decodeName(kp.ki_comm);
++ else
++ name = QFile::decodeName(kp.ki_comm);
+ # endif
+ return name;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, May 22, 3:46 AM (17 h, 54 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33414206
Default Alt Text
D15673.id43420.diff (3 KB)
Attached To
Mode
D15673: devel/qt5-core: Add a patch that fixes QLockFilePrivate::processNameByPid() function to return non-truncated name.
Attached
Detach File
Event Timeline
Log In to Comment