Bug#905162: qt5-qmake-bin: qmake -install qinstall -exe {DIRECTORY} makes a reguler file,not copying directory.
Package: qt5-qmake-bin
Version: 5.11.1+dfsg-6
Severity: normal
Dear Maintainer,
Building some projects using qmake build system,
installing contents under directory fails.
For example, building MythTV-dmo (probided by deb-multimedia.org)
with debuild, installing contents under themes/ to debian/tmp/
fails.
I checked below debian/tmp/usr/share/mythtv/themes/ ,
theme directories made single file , mode is 755 and size is 0.
i.e. themes/DVR .
So, I checked themes/Makefile made by qmake,
install is below line:
---
QINSTALL = /usr/lib/x86_64-linux-gnu/qt5/bin/qmake -install qinstall
QINSTALL_PROGRAM = /usr/lib/x86_64-linux-gnu/qt5/bin/qmake -install qinstall -exe
(snip)
install_themes: first FORCE
@test -d $(INSTALL_ROOT)/usr/share/mythtv/themes/ || mkdir -p $(INSTALL_ROOT)/usr/share/mythtv/themes/
-$(QINSTALL_PROGRAM) (snip)/themes/default $(INSTALL_ROOT)/usr/share/
mythtv/themes/default
(snip)
---
So, installing themes using qmake -install qinstall -exe {SRCDIR} {DSTDIR},
this should be similar to "cp -fr {SRCDIR}/ ${DSTDIR}", but, don't do this.
This issue *didn't happen* before Qt 5.10, only happen after 5.11 .
Best regards,
Ohta.
p.s. Related files are below:
mythtv-dmo/themes/themes.pro:
---
include ( ../settings.pro )
QMAKE_STRIP = echo
TEMPLATE = app
CONFIG -= moc qt
QMAKE_COPY_DIR = sh ./cpsvndir
win32:QMAKE_COPY_DIR = sh ./cpsimple
themes.path = $${PREFIX}/share/mythtv/themes/
themes.files = default default-wide classic DVR Slave
themes.files += Terra defaultmenu mediacentermenu
themes.files += MythCenter MythCenter-wide
themes.files += mythuitheme.dtd
fonts.path = $${PREFIX}/share/mythtv/
fonts.files = fonts
INSTALLS += themes fonts
# Input
SOURCES += dummy.c
---
mythtv-dmo/settings.pro :
---
win32-msvc* {
SRC_PATH_BARE = $$(SRC_PATH_BARE)
isEmpty( $$SRC_PATH_BARE ) {
SRC_PATH_BARE = $${PWD}
}
CONFIG -= debug_and_release
CONFIG -= debug_and_release_target
CONFIG -= flat
CONFIG *= using_backend using_frontend
CONFIG *= using_opengl
CONFIG *= using_hdhomerun
CONFIG_LIBMPEG2EXTERNAL = yes
CONFIG_QTDBUS = no
QMAKE_CXXFLAGS_WARN_ON -= -w34100
} else {
include ( config.mak )
}
CONFIG += $$CCONFIG
# enable C++11 support, QT5.7 will be based on C++11 anyway
CONFIG += c++11
defineReplace(avLibName) {
NAME = $$1
major = \$\${lib$${NAME}_VERSION_MAJOR}
eval(LIBVERSION = $$major)
temp = $$SLIBNAME_WITH_MAJOR_QT
temp = $$replace(temp, FULLNAME, $$NAME)
temp = $$replace(temp, NAME, $$NAME)
temp = $$replace(temp, LIBMAJOR, $$LIBVERSION)
return($$temp)
}
#check QT major version
contains(QT_MAJOR_VERSION, 4) {
error("Must build against Qt5")
}
# Where binaries, includes and runtime assets are installed by 'make install'
isEmpty( PREFIX ) {
win32-msvc* {
PREFIX = "."
} else {
PREFIX = /usr/local
}
}
# Where the binaries actually locate the assets/filters/plugins at runtime
isEmpty( RUNPREFIX ) {
RUNPREFIX = $$PREFIX
}
# Alternate library dir for OSes and packagers (e.g. lib64)
isEmpty( LIBDIRNAME ) {
LIBDIRNAME = lib
}
# Where libraries, plugins and filters are installed
isEmpty( LIBDIR ) {
LIBDIR = $${RUNPREFIX}/$${LIBDIRNAME}
}
LIBVERSION = 29
VERSION = 29.0
# Die on the (common) case where OS X users inadvertently use Fink's
# Qt/X11 install instead of Qt/Mac. '
contains(CONFIG_DARWIN, yes) {
!macx {
message(You are building with Qt/X11 on the Mac platform.)
message(Myth must be built with Qt/Mac instead.)
message((Fink users cannot use Fink's Qt, it's the wrong one.))
error(Unsupported configuration)
}
}
# Windows...
win32 {
VERSION =
CONFIG_OPENGL_LIBS =
# All versions of Microsoft Visual Studio
win32-msvc* {
win32-msvc2010 {
# need to force include missing math.h functions.
# needed for vcxproj
QMAKE_CXXFLAGS += "/FI mathex.h"
# needed for nmake
QMAKE_CFLAGS += "/FI mathex.h"
}
DEFINES += _WIN32 WIN32 WIN32_LEAN_AND_MEAN NOMINMAX _USE_MATH_DEFINES
DEFINES += _CRT_SECURE_NO_WARNINGS
DEFINES += __STDC_CONSTANT_MACROS
DEFINES += __STDC_FORMAT_MACROS
DEFINES += __STDC_LIMIT_MACROS
debug :DEFINES += _DEBUG
release:DEFINES += NDEBUG
# msvc specific include path
INCLUDEPATH += ./
INCLUDEPATH += $$SRC_PATH_BARE/external
contains( CONFIG_MYTHLOGSERVER, "yes" ) {
INCLUDEPATH += $$SRC_PATH_BARE/external/zeromq/include
INCLUDEPATH += $$SRC_PATH_BARE/external/nzmqt/include/nzmqt
}
INCLUDEPATH += $$SRC_PATH_BARE/../platform/win32/msvc/include
INCLUDEPATH += $$SRC_PATH_BARE/../platform/win32/msvc/external/pthreads.2
INCLUDEPATH += $$SRC_PATH_BARE/../platform/win32/msvc/external/zlib
INCLUDEPATH += $$SRC_PATH_BARE/../platform/win32/msvc/external
win32-msvc2010:INCLUDEPATH += $$SRC_PATH_BARE/../platform/win32/msvc/include-2010
INCLUDEPATH += $$SRC_PATH_BARE/../platform/win32/msvc/external/exiv2/msvc64/include
# have visual studio place all DLL, EXE & lib files in the following directory
CONFIG( debug, debug|release) {
# debug
DESTDIR = $$SRC_PATH_BARE/bin/debug
QMAKE_LIBDIR += $$SRC_PATH_BARE/bin/debug
MOC_DIR = debug/moc
QMAKE_CXXFLAGS *= /MDd /MP /wd4100 /wd4996
LIBS += -L$$SRC_PATH_BARE/bin/debug
EXTRA_LIBS += -lpthreadVC2d -llibzmq -L$$SRC_PATH_BARE/bin/debug
} else {
# release
DESTDIR = $$SRC_PATH_BARE/bin/release
QMAKE_LIBDIR += $$SRC_PATH_BARE/bin/release
MOC_DIR = release/moc
QMAKE_CXXFLAGS *= /MD /MP /wd4100 /wd4996
LIBS += -L$$SRC_PATH_BARE/bin/release
EXTRA_LIBS += -lpthreadVC2 -llibzmq -L$$SRC_PATH_BARE/bin/release
}
EXTRA_LIBS += -lmythnzmqt
}
# minGW Build Environment
mingw {
# Qt4 creates separate compile directories by default. This disables:
CONFIG -= debug_and_release debug_and_release_target
CONFIG += mingw
DEFINES += WIN32 USING_MINGW WIN32_LEAN_AND_MEAN NOMINMAX
DEFINES -= UNICODE
# win32-packager.pl builds Qt under DOS, but MythTV is built in MinGW.
# This corrects the moc tool path from a DOS-style to a unix style:
QMAKE_MOC = $$[QT_INSTALL_BINS]/moc
QMAKE_EXTENSION_SHLIB = dll
}
# if CYGWIN compile, set up flag in CONFIG
contains(TARGET_OS, CYGWIN) {
CONFIG += cygwin
QMAKE_EXTENSION_SHLIB=dll.a
DEFINES += CONFIG_CYGWIN
}
} else {
# All Others
isEmpty(QMAKE_EXTENSION_SHLIB) {
QMAKE_EXTENSION_SHLIB=so
}
isEmpty(QMAKE_EXTENSION_LIB) {
QMAKE_EXTENSION_LIB=a
}
# For dependencies on Myth library filenames in POST_TARGETDEPS
MYTH_SHLIB_EXT=$${LIBVERSION}.$${QMAKE_EXTENSION_SHLIB}
MYTH_LIB_EXT =$${LIBVERSION}.$${QMAKE_EXTENSION_LIB}
INCLUDEPATH += $$unique(CONFIG_INCLUDEPATH)
LOCAL_LIBDIR_OGL =
!isEmpty( QMAKE_LIBDIR_OPENGL ) {
LOCAL_LIBDIR_OGL = -L$$QMAKE_LIBDIR_OPENGL
}
QMAKE_LIBDIR_OPENGL =
# construct linking path
LOCAL_LIBDIR_X11 =
!isEmpty( QMAKE_LIBDIR_X11 ) {
LOCAL_LIBDIR_X11 = -L$$QMAKE_LIBDIR_X11
}
QMAKE_LIBDIR_X11 =
EXTRA_LIBS = $$EXTRALIBS
EXTRA_LIBS += $$CONFIG_FIREWIRE_LIBS
EXTRA_LIBS += $$LOCAL_LIBDIR_OGL
EXTRA_LIBS += $$LOCAL_LIBDIR_X11
!isEmpty( CONFIG_OPENGL_LIBS ) {
# Replace FFmpeg's OpenGL with OpenGLES
EXTRA_LIBS -= -lGL
EXTRA_LIBS += $$CONFIG_OPENGL_LIBS
}
contains( CONFIG_MYTHLOGSERVER, "yes" ) {
INCLUDEPATH += $$SRC_PATH_BARE/external/zeromq/include
INCLUDEPATH += $$SRC_PATH_BARE/external/nzmqt/include/nzmqt
EXTRA_LIBS += -L$$SRC_PATH_BARE/external/zeromq/src/.libs -lmythzmq
EXTRA_LIBS += -L$$SRC_PATH_BARE/external/nzmqt/src -lmythnzmqt
}
# remove warn_{on|off} from CONFIG since we set it in our CFLAGS
CONFIG -= warn_on warn_off
# set empty RELEASE and DEBUG flags
QMAKE_CFLAGS_DEBUG =
QMAKE_CFLAGS_RELEASE =
QMAKE_CXXFLAGS_DEBUG =
QMAKE_CXXFLAGS_RELEASE =
# remove -fPIC since we handle it in configure
QMAKE_CFLAGS_SHLIB -= -fPIC
QMAKE_CFLAGS_STATIC_LIB -= -fPIC
QMAKE_LFLAGS_SHLIB -= -fPIC
QMAKE_LFLAGS += -Wl,--as-needed -Wl,-z,relro -D_FORTIFY_SOURCE=2
SHFLAGS += -Wl,--as-needed -Wl,-z,relro
# remove -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112 from C++ preprocessor flgas
CXX_PP_FLAGS = $$CPPFLAGS
CXX_PP_FLAGS -= -D_ISOC99_SOURCE -D_POSIX_C_SOURCE=200112
# Allow compilation with Qt Embedded, if Qt is compiled without "-fno-rtti"
QMAKE_CXXFLAGS -= -fno-exceptions -fno-rtti
}
# Globals in static libraries need special treatment on OS X
macx:QMAKE_CFLAGS_STATIC_LIB += -fno-common
# figure out compile flags based on qmake info
# qmake 4.8.2 & 4.8.3 messes up OSX "-arch i386 -arch x86_64"
# clang 3.0 on Linux does not like duplicate arguments.
macx {
QMAKE_CFLAGS += $$CPPFLAGS $$CFLAGS
QMAKE_CXXFLAGS += $$CXXPPFLAGS $$ECXXFLAGS
} else {
QMAKE_CFLAGS *= $$CPPFLAGS $$CFLAGS -D_FORTIFY_SOURCE=2
QMAKE_CXXFLAGS *= $$CXXPPFLAGS $$ECXXFLAGS
}
profile:!win32:!macx:CONFIG += debug
release:contains( ARCH_POWERPC, yes ) {
# Auto-inlining causes some Qt moc methods to go missing
macx:QMAKE_CXXFLAGS_RELEASE += -fno-inline-functions
}
# figure out defines
DEFINES += $$CONFIG_DEFINES
DEFINES += _GNU_SOURCE
!isEmpty( QMAKE_LIBDIR_QT ) {
!macx {
LATE_LIBS += "-L$$QMAKE_LIBDIR_QT"
QMAKE_LIBDIR_QT = ""
}
macx:!qt_framework {
LATE_LIBS += "-L$$QMAKE_LIBDIR_QT"
QMAKE_LIBDIR_QT = ""
}
}
macx {
using_firewire:using_backend:EXTRA_LIBS += -F$${CONFIG_MAC_AVC} -framework AVCVideoServices
QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/
_RPATH_="-rpath,"
} else {
_RPATH_="-rpath="
}
---
-- System Information:
Debian Release: buster/sid
APT prefers unstable-debug
APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'oldstable'), (1, 'experimental-debug'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 4.18.0-rc6-homebrew-amd64.1.0 (SMP w/8 CPU cores; PREEMPT)
Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to ja_JP.UTF-8), LANGUAGE=ja_JP.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to ja_JP.UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages qt5-qmake-bin depends on:
ii libc6 2.27-5
ii libgcc1 1:8.2.0-1
ii libstdc++6 8.2.0-1
qt5-qmake-bin recommends no packages.
qt5-qmake-bin suggests no packages.
-- no debconf information
Reply to: