All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 0 of 3 v2] Support buildroot being located in /usr
@ 2014-06-20 19:11 Thomas De Schampheleire
  2014-06-20 19:11 ` [Buildroot] [PATCH 1 of 3 v2] infra: support " Thomas De Schampheleire
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Thomas De Schampheleire @ 2014-06-20 19:11 UTC (permalink / raw)
  To: buildroot

Hi,

This patch series (finally) fixes bug #5750 ("Doing a Buildroot build from
/usr doesn't work"). It makes sed replacements of /usr to $(STAGING_DIR)/usr
more careful.

pkgconf still generated double sysroot paths, which did not cause any harm,
but the issue was fixed nevertheless.

Tested by a large config that used to fail (see end of this mail)

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

---
v2: s/Jeremy Kerr/Ben Stoltz/ (no real changes)

 package/pkg-autotools.mk                            |   8 ++-
 package/pkg-generic.mk                              |  10 +++-
 package/pkgconf/pkgconf-02-fix-double-sysroot.patch |  40 +++++++++++++++++
 package/qt5/qt5.mk                                  |   7 ++-
 4 files changed, 59 insertions(+), 6 deletions(-)



Tested defconfig:

BR2_DL_DIR="/home/tdescham/repo/contrib/dl"
BR2_BACKUP_SITE="http://sources.buildroot.net/"
BR2_KERNEL_MIRROR="http://www.kernel.org/pub/"
BR2_CCACHE=y
BR2_PACKAGE_OVERRIDE_FILE="$(TOPDIR)/local.mk"
BR2_TOOLCHAIN_EXTERNAL=y
BR2_ECLIPSE_REGISTER=y
BR2_TARGET_GENERIC_PASSWD_DES=y
BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y
BR2_ROOTFS_SKELETON_CUSTOM=y
BR2_BUSYBOX_VERSION_1_20_X=y
BR2_PACKAGE_ALSA_UTILS=y
BR2_PACKAGE_ALSA_UTILS_ALSACONF=y
# BR2_PACKAGE_ALSA_UTILS_ALSACTL is not set
# BR2_PACKAGE_ALSA_UTILS_ALSAMIXER is not set
BR2_PACKAGE_ALSA_UTILS_IECSET=y
BR2_PACKAGE_ALSA_UTILS_ASEQNET=y
BR2_PACKAGE_FFMPEG_GPL=y
BR2_PACKAGE_FFMPEG_NONFREE=y
# BR2_PACKAGE_FFMPEG_FFMPEG is not set
BR2_PACKAGE_FFMPEG_FFPLAY=y
# BR2_PACKAGE_FFMPEG_INDEVS is not set
# BR2_PACKAGE_FFMPEG_OUTDEVS is not set
BR2_PACKAGE_MPD=y
BR2_PACKAGE_MPD_BZIP2=y
BR2_PACKAGE_MPD_CURL=y
BR2_PACKAGE_MPD_FLAC=y
BR2_PACKAGE_MPD_LAME=y
BR2_PACKAGE_MPD_MUSEPACK=y
BR2_PACKAGE_MPD_SOUNDCLOUD=y
BR2_PACKAGE_MPD_SQLITE=y
BR2_PACKAGE_MPD_VORBIS=y
BR2_PACKAGE_OPUS_TOOLS=y
BR2_PACKAGE_TSTOOLS=y
BR2_PACKAGE_WAVPACK=y
BR2_PACKAGE_INFOZIP=y
BR2_PACKAGE_DHRYSTONE=y
BR2_PACKAGE_DMALLOC=y
BR2_PACKAGE_DSTAT=y
BR2_PACKAGE_GDB=y
BR2_PACKAGE_IOZONE=y
BR2_PACKAGE_LATENCYTOP=y
BR2_PACKAGE_LTP_TESTSUITE=y
BR2_PACKAGE_MEMSTAT=y
BR2_PACKAGE_PAX_UTILS=y
BR2_PACKAGE_RAMSMP=y
BR2_PACKAGE_RAMSPEED=y
BR2_PACKAGE_STRESS=y
BR2_PACKAGE_TINYMEMBENCH=y
BR2_PACKAGE_TRACE_CMD=y
BR2_PACKAGE_BSDIFF=y
BR2_PACKAGE_CVS=y
BR2_PACKAGE_CVS_SERVER=y
BR2_PACKAGE_GIT=y
BR2_PACKAGE_JQ=y
BR2_PACKAGE_MAKE=y
BR2_PACKAGE_PKGCONF=y
BR2_PACKAGE_TREE=y
BR2_PACKAGE_CURLFTPFS=y
# BR2_PACKAGE_E2FSPROGS_BADBLOCKS is not set
# BR2_PACKAGE_E2FSPROGS_CHATTR is not set
# BR2_PACKAGE_E2FSPROGS_E2FREEFRAG is not set
# BR2_PACKAGE_E2FSPROGS_E2FSCK is not set
BR2_PACKAGE_E2FSPROGS_E2IMAGE=y
# BR2_PACKAGE_E2FSPROGS_E2UNDO is not set
BR2_PACKAGE_E2FSPROGS_E4DEFRAG=y
# BR2_PACKAGE_E2FSPROGS_FILEFRAG is not set
# BR2_PACKAGE_E2FSPROGS_LOGSAVE is not set
# BR2_PACKAGE_E2FSPROGS_LSATTR is not set
# BR2_PACKAGE_E2FSPROGS_MKE2FS is not set
# BR2_PACKAGE_E2FSPROGS_MKLOSTFOUND is not set
# BR2_PACKAGE_E2FSPROGS_TUNE2FS is not set
# BR2_PACKAGE_E2FSPROGS_UUIDGEN is not set
BR2_PACKAGE_EXFAT=y
BR2_PACKAGE_FLASHBENCH=y
BR2_PACKAGE_GENROMFS=y
BR2_PACKAGE_MTD=y
BR2_PACKAGE_MTD_DOCFDISK=y
BR2_PACKAGE_MTD_DOC_LOADBIOS=y
# BR2_PACKAGE_MTD_FLASHCP is not set
# BR2_PACKAGE_MTD_FLASH_ERASE is not set
BR2_PACKAGE_MTD_FLASH_OTP_INFO=y
BR2_PACKAGE_MTD_FLASH_OTP_WRITE=y
# BR2_PACKAGE_MTD_FLASH_UNLOCK is not set
BR2_PACKAGE_MTD_FTL_CHECK=y
BR2_PACKAGE_MTD_JFFS2DUMP=y
BR2_PACKAGE_MTD_MKFSUBIFS=y
# BR2_PACKAGE_MTD_MTD_DEBUG is not set
# BR2_PACKAGE_MTD_NANDTEST is not set
# BR2_PACKAGE_MTD_NANDWRITE is not set
BR2_PACKAGE_MTD_NFTLDUMP=y
BR2_PACKAGE_MTD_NFTL_FORMAT=y
BR2_PACKAGE_MTD_RECV_IMAGE=y
BR2_PACKAGE_MTD_SERVE_IMAGE=y
BR2_PACKAGE_MTD_SUMTOOL=y
# BR2_PACKAGE_MTD_MTDINFO is not set
# BR2_PACKAGE_MTD_UBICRC32 is not set
# BR2_PACKAGE_MTD_UBIDETACH is not set
# BR2_PACKAGE_MTD_UBINFO is not set
# BR2_PACKAGE_MTD_UBINIZE is not set
# BR2_PACKAGE_MTD_UBIRMVOL is not set
# BR2_PACKAGE_MTD_UBIRSVOL is not set
BR2_PACKAGE_NFS_UTILS=y
BR2_PACKAGE_NFS_UTILS_RPCDEBUG=y
BR2_PACKAGE_SQUASHFS=y
BR2_PACKAGE_SQUASHFS_LZMA=y
BR2_PACKAGE_XFSPROGS=y
BR2_PACKAGE_GNUCHESS=y
BR2_PACKAGE_LTRIS=y
BR2_PACKAGE_FSWEBCAM=y
BR2_PACKAGE_RRDTOOL=y
BR2_PACKAGE_CEGUI06=y
BR2_PACKAGE_DIRECTFB=y
BR2_PACKAGE_DIRECTFB_DEBUG=y
# BR2_PACKAGE_DIRECTFB_LINUXINPUT is not set
# BR2_PACKAGE_DIRECTFB_KEYBOARD is not set
# BR2_PACKAGE_DIRECTFB_SERIALMOUSE is not set
BR2_PACKAGE_DIRECTFB_IMLIB2=y
# BR2_PACKAGE_DIRECTFB_JPEG is not set
BR2_PACKAGE_DIRECTFB_DITHER_RGB16=y
BR2_PACKAGE_DIRECTFB_EXAMPLES=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_BLTLOAD=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_CPULOAD=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_DATABUFFER=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_DIOLOAD=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_DRIVERTEST=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_FONTS=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_KNUCKLES=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_MATRIX=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_NEO=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_NETLOAD=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_PORTER=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_VIDEO=y
BR2_PACKAGE_DIRECTFB_EXAMPLES_WINDOW=y
BR2_PACKAGE_FB_TEST_APP=y
BR2_PACKAGE_FBTERM=y
BR2_PACKAGE_FBV=y
# BR2_PACKAGE_FBV_JPEG is not set
BR2_PACKAGE_IMAGEMAGICK=y
BR2_PACKAGE_LITE=y
# BR2_PACKAGE_SDL_FBCON is not set
BR2_PACKAGE_SDL_DIRECTFB=y
BR2_PACKAGE_SDL_TTF=y
BR2_PACKAGE_EFL=y
BR2_PACKAGE_LIBECORE_FB=y
BR2_PACKAGE_LIBECORE_SDL=y
BR2_PACKAGE_LIBEFREET=y
BR2_PACKAGE_LIBEIO=y
BR2_PACKAGE_LIBEVAS_BUFFER=y
# BR2_PACKAGE_LIBEVAS_DIRECTFB is not set
BR2_PACKAGE_LIBEVAS_FB=y
BR2_PACKAGE_LIBEVAS_SDL=y
BR2_PACKAGE_LIBEVAS_PNG=y
BR2_PACKAGE_LIBEVAS_JPEG=y
BR2_PACKAGE_LIBEVAS_GIF=y
BR2_PACKAGE_LIBEVAS_PMAPS=y
BR2_PACKAGE_LIBEVAS_TIFF=y
BR2_PACKAGE_LIBEVAS_XPM=y
BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS=y
BR2_PACKAGE_LIBEVAS_GENERIC_LOADERS_SVG=y
BR2_PACKAGE_LIBEDJE=y
BR2_PACKAGE_LIBEDJE_CC=y
BR2_PACKAGE_QT_DEBUG=y
BR2_PACKAGE_QT_STATIC=y
BR2_PACKAGE_QT_LICENSE_APPROVED=y
BR2_PACKAGE_QT_PIXEL_DEPTH_4=y
# BR2_PACKAGE_QT_PIXEL_DEPTH_8 is not set
BR2_PACKAGE_QT_PIXEL_DEPTH_12=y
BR2_PACKAGE_QT_PIXEL_DEPTH_15=y
# BR2_PACKAGE_QT_PIXEL_DEPTH_16 is not set
BR2_PACKAGE_QT_PIXEL_DEPTH_18=y
# BR2_PACKAGE_QT_FONT_HELVETICA is not set
BR2_PACKAGE_QT_FONT_UNIFONT=y
BR2_PACKAGE_QT_GIF=y
BR2_PACKAGE_QT_QTPNG=y
BR2_PACKAGE_QT_SYSTEMTIFF=y
BR2_PACKAGE_QT_SYSTEMZLIB=y
# BR2_PACKAGE_QT_GFX_LINUXFB is not set
BR2_PACKAGE_QT_GFX_TRANSFORMED=y
BR2_PACKAGE_QT_GFX_VNC=y
BR2_PACKAGE_QT_MOUSE_LINUXINPUT=y
BR2_PACKAGE_QT_MOUSE_TSLIB=y
BR2_PACKAGE_QT_KEYBOARD_LINUXINPUT=y
BR2_PACKAGE_QT_KEYBOARD_QVFB=y
BR2_PACKAGE_QT_DBUS=y
# BR2_PACKAGE_QT_XML is not set
BR2_PACKAGE_QT_MULTIMEDIA=y
BR2_PACKAGE_QT_AUDIO_BACKEND=y
BR2_PACKAGE_QEXTSERIALPORT=y
BR2_PACKAGE_QWT=y
BR2_PACKAGE_QWT_SVG=y
# BR2_PACKAGE_LIBERATION_MONO is not set
# BR2_PACKAGE_LIBERATION_SERIF is not set
BR2_PACKAGE_LINUX_FIRMWARE=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_7010=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9170=y
BR2_PACKAGE_LINUX_FIRMWARE_ATHEROS_9271=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_3160=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_5000=y
BR2_PACKAGE_LINUX_FIRMWARE_IWLWIFI_7260=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8686_V8=y
BR2_PACKAGE_LINUX_FIRMWARE_LIBERTAS_SD8688=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT61=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT73=y
BR2_PACKAGE_LINUX_FIRMWARE_RALINK_RT2XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_81XX=y
BR2_PACKAGE_LINUX_FIRMWARE_RTL_87XX=y
BR2_PACKAGE_LINUX_FIRMWARE_BNX2X=y
BR2_PACKAGE_LINUX_FIRMWARE_H5_DRXK=y
BR2_PACKAGE_ZD1211_FIRMWARE=y
BR2_PACKAGE_CRYPTSETUP=y
BR2_PACKAGE_CWIID=y
BR2_PACKAGE_DBUS_GLIB=y
BR2_PACKAGE_DVB_APPS=y
BR2_PACKAGE_DVBSNOOP=y
BR2_PACKAGE_EVEMU=y
BR2_PACKAGE_EVTEST=y
BR2_PACKAGE_FAN_CTRL=y
BR2_PACKAGE_FCONFIG=y
BR2_PACKAGE_FIS=y
BR2_PACKAGE_FMTOOLS=y
BR2_PACKAGE_GADGETFS_TEST=y
BR2_PACKAGE_GPM=y
BR2_PACKAGE_GPSD_OLDSTYLE=y
BR2_PACKAGE_GPSD_PROFILING=y
BR2_PACKAGE_GPSD_PPS=y
BR2_PACKAGE_GPSD_USER=y
BR2_PACKAGE_GPSD_MAX_DEV=y
# BR2_PACKAGE_GPSD_RECONFIGURE is not set
# BR2_PACKAGE_GPSD_CONTROLSEND is not set
BR2_PACKAGE_GPSD_EARTHMATE=y
BR2_PACKAGE_GPSD_EVERMORE=y
BR2_PACKAGE_GPSD_GARMIN=y
BR2_PACKAGE_GPSD_GEOSTAR=y
BR2_PACKAGE_GPSD_ITRAX=y
BR2_PACKAGE_GPSD_NMEA2000=y
BR2_PACKAGE_GPSD_NTRIP=y
BR2_PACKAGE_GPSD_OCEANSERVER=y
BR2_PACKAGE_GPSD_RTCM104V3=y
BR2_PACKAGE_GPSD_SUPERSTAR2=y
BR2_PACKAGE_GPSD_TRIMBLE_TSIP=y
BR2_PACKAGE_GPSD_TRIPMATE=y
BR2_PACKAGE_GPSD_UBX=y
BR2_PACKAGE_GPTFDISK=y
BR2_PACKAGE_GPTFDISK_GDISK=y
BR2_PACKAGE_GPTFDISK_SGDISK=y
BR2_PACKAGE_HWDATA=y
BR2_PACKAGE_I2C_TOOLS=y
BR2_PACKAGE_INPUT_EVENT_DAEMON=y
BR2_PACKAGE_INPUT_TOOLS=y
BR2_PACKAGE_IOSTAT=y
BR2_PACKAGE_LSUIO=y
BR2_PACKAGE_LVM2_APP_LIBRARY=y
BR2_PACKAGE_MEMTESTER=y
BR2_PACKAGE_MINICOM=y
BR2_PACKAGE_NEARD=y
BR2_PACKAGE_NEARD_TOOLS=y
BR2_PACKAGE_OFONO=y
BR2_PACKAGE_OLA=y
BR2_PACKAGE_OLA_WEB=y
BR2_PACKAGE_OLA_RDM_TESTS=y
BR2_PACKAGE_OLA_PLUGIN_OPENDMX=y
BR2_PACKAGE_OLA_PLUGIN_ESPNET=y
BR2_PACKAGE_OLA_PLUGIN_PATHPORT=y
BR2_PACKAGE_OLA_PLUGIN_SANDNET=y
BR2_PACKAGE_OLA_PLUGIN_STAGEPROFI=y
BR2_PACKAGE_OPEN2300=y
BR2_PACKAGE_RNG_TOOLS=y
BR2_PACKAGE_SANE_BACKENDS=y
BR2_PACKAGE_SG3_UTILS=y
BR2_PACKAGE_SYSSTAT=y
BR2_PACKAGE_UBOOT_TOOLS=y
BR2_PACKAGE_UBOOT_TOOLS_MKIMAGE=y
BR2_PACKAGE_USB_MODESWITCH_DATA=y
BR2_PACKAGE_USBUTILS=y
BR2_PACKAGE_HASERL=y
BR2_PACKAGE_HASERL_WITH_LUA=y
BR2_PACKAGE_LUA_5_2=y
BR2_PACKAGE_CGILUA=y
BR2_PACKAGE_COPAS=y
BR2_PACKAGE_LUASQL_SQLITE3=y
BR2_PACKAGE_LUAPOSIX=y
BR2_PACKAGE_ORBIT=y
BR2_PACKAGE_PERL=y
BR2_PACKAGE_PHP=y
BR2_PACKAGE_PHP_EXT_FILEINFO=y
BR2_PACKAGE_PHP_EXT_OPENSSL=y
BR2_PACKAGE_PHP_EXT_DBA=y
BR2_PACKAGE_PHP_EXT_DBA_DB4=y
BR2_PACKAGE_PHP_EXT_MYSQL=y
BR2_PACKAGE_PHP_EXT_PDO=y
BR2_PACKAGE_PHP_EXT_PDO_MYSQL=y
BR2_PACKAGE_PHP_EXT_BCMATH=y
BR2_PACKAGE_PHP_EXT_JSON=y
BR2_PACKAGE_PHP_EXT_CURL=y
BR2_PACKAGE_PHP_EXT_PCNTL=y
# BR2_PACKAGE_PHP_EXT_POSIX is not set
BR2_PACKAGE_PHP_EXT_SHMOP=y
BR2_PACKAGE_PHP_EXT_SYSVMSG=y
BR2_PACKAGE_PHP_EXT_CTYPE=y
BR2_PACKAGE_PHP_EXT_FILTER=y
BR2_PACKAGE_PHP_EXT_SOAP=y
BR2_PACKAGE_PHP_EXT_XMLRPC=y
BR2_PACKAGE_PHP_EXT_SIMPLEXML=y
BR2_PACKAGE_PHP_EXT_WDDX=y
BR2_PACKAGE_PYTHON_PY_PYC=y
BR2_PACKAGE_PYTHON_BSDDB=y
BR2_PACKAGE_PYTHON_DIALOG=y
BR2_PACKAGE_PYTHON_ID3=y
BR2_PACKAGE_PYTHON_JSON_SCHEMA_VALIDATOR=y
BR2_PACKAGE_PYTHON_KEYRING=y
BR2_PACKAGE_PYTHON_MSGPACK=y
BR2_PACKAGE_PYTHON_NFC=y
BR2_PACKAGE_PYTHON_POSIX_IPC=y
BR2_PACKAGE_PYTHON_PYSNMP_MIBS=y
BR2_PACKAGE_PYTHON_PYUSB=y
BR2_PACKAGE_PYTHON_PYZMQ=y
BR2_PACKAGE_PYTHON_SETUPTOOLS=y
BR2_PACKAGE_PYTHON_SIMPLEJSON=y
BR2_PACKAGE_PYTHON_THRIFT=y
# BR2_PACKAGE_ALSA_LIB_ALOAD is not set
# BR2_PACKAGE_ALSA_LIB_RAWMIDI is not set
# BR2_PACKAGE_ALSA_LIB_ALISP is not set
BR2_PACKAGE_AUDIOFILE=y
BR2_PACKAGE_CELT051=y
BR2_PACKAGE_LIBAO=y
BR2_PACKAGE_LIBCUE=y
BR2_PACKAGE_LIBLO=y
BR2_PACKAGE_LIBMAD_OPTIMIZATION_SPEED=y
# BR2_PACKAGE_LIBMAD_ASO is not set
BR2_PACKAGE_LIBMODPLUG=y
BR2_PACKAGE_LIBMPD=y
BR2_PACKAGE_OPUS_FIXED_POINT=y
BR2_PACKAGE_SNAPPY=y
BR2_PACKAGE_LIBASSUAN=y
BR2_PACKAGE_LIBSHA1=y
BR2_PACKAGE_LIBSSH2=y
BR2_PACKAGE_OPENSSL_BIN=y
BR2_PACKAGE_GDBM=y
BR2_PACKAGE_SQLITE_ENABLE_UNLOCK_NOTIFY=y
BR2_PACKAGE_LOCKDEV=y
BR2_PACKAGE_ATK=y
BR2_PACKAGE_CAIRO_PS=y
BR2_PACKAGE_CAIRO_TEE=y
BR2_PACKAGE_CAIRO_XML=y
BR2_PACKAGE_GD_GD2COPYPAL=y
BR2_PACKAGE_GD_GD2TOGIF=y
BR2_PACKAGE_GD_GIFTOGD2=y
BR2_PACKAGE_HARFBUZZ=y
BR2_PACKAGE_IMLIB2_JPEG=y
BR2_PACKAGE_IMLIB2_PNG=y
BR2_PACKAGE_IMLIB2_TIFF=y
BR2_PACKAGE_IMLIB2_ID3=y
BR2_PACKAGE_JPEG_TURBO=y
BR2_PACKAGE_LIBSVG_CAIRO=y
BR2_PACKAGE_OPENCV=y
# BR2_PACKAGE_OPENCV_LIB_CALIB3D is not set
# BR2_PACKAGE_OPENCV_LIB_FEATURES2D is not set
# BR2_PACKAGE_OPENCV_LIB_HIGHGUI is not set
# BR2_PACKAGE_OPENCV_LIB_ML is not set
BR2_PACKAGE_OPENCV_LIB_NONFREE=y
# BR2_PACKAGE_OPENCV_LIB_OBJDETECT is not set
# BR2_PACKAGE_OPENCV_LIB_PHOTO is not set
BR2_PACKAGE_OPENCV_WITH_FFMPEG=y
BR2_PACKAGE_OPENCV_WITH_V4L=y
# BR2_PACKAGE_TIFF_CCITT is not set
# BR2_PACKAGE_TIFF_NEXT is not set
# BR2_PACKAGE_TIFF_JPEG is not set
# BR2_PACKAGE_TIFF_OLD_JPEG is not set
# BR2_PACKAGE_TIFF_JBIG is not set
BR2_PACKAGE_TIFF_TIFF2PDF=y
BR2_PACKAGE_WAYLAND=y
BR2_PACKAGE_WEBP=y
BR2_PACKAGE_ZXING=y
BR2_PACKAGE_DTC=y
BR2_PACKAGE_DTC_PROGRAMS=y
BR2_PACKAGE_LIBCEC=y
BR2_PACKAGE_LIBFREEFARE=y
BR2_PACKAGE_LIBFTDI=y
BR2_PACKAGE_LIBTFDI_CPP=y
BR2_PACKAGE_LIBLLCP=y
BR2_PACKAGE_LIBQMI=y
BR2_PACKAGE_LIBRAW1394=y
BR2_PACKAGE_LIBSOC=y
BR2_PACKAGE_LIBV4L_DECODE_TM6000=y
BR2_PACKAGE_LIBV4L_V4L2_COMPLIANCE=y
BR2_PACKAGE_LIBV4L_V4L2_DBG=y
BR2_PACKAGE_LIBXKBCOMMON=y
BR2_PACKAGE_MTDEV=y
BR2_PACKAGE_PCSC_LITE=y
BR2_PACKAGE_PCSC_LITE_EMBEDDED=y
BR2_PACKAGE_URG=y
BR2_PACKAGE_EXPLORERCANVAS=y
BR2_PACKAGE_FLOT=y
BR2_PACKAGE_FLOT_CANVAS=y
BR2_PACKAGE_FLOT_CROSSHAIR=y
BR2_PACKAGE_FLOT_FILLBETWEEN=y
BR2_PACKAGE_FLOT_NAVIGATE=y
BR2_PACKAGE_FLOT_RESIZE=y
BR2_PACKAGE_FLOT_SYMBOL=y
BR2_PACKAGE_FLOT_THRESHOLD=y
BR2_PACKAGE_FLOT_TIME=y
BR2_PACKAGE_JQUERY_KEYBOARD=y
BR2_PACKAGE_JQUERY_SPARKLINE=y
BR2_PACKAGE_JQUERY_VALIDATION=y
BR2_PACKAGE_JSMIN=y
BR2_PACKAGE_JSON_JAVASCRIPT=y
BR2_PACKAGE_CJSON=y
BR2_PACKAGE_JSON_GLIB=y
BR2_PACKAGE_LIBJSON=y
BR2_PACKAGE_LIBROXML=y
BR2_PACKAGE_TINYXML=y
BR2_PACKAGE_LOG4CPLUS=y
BR2_PACKAGE_LIBASS=y
BR2_PACKAGE_LIBEBML=y
BR2_PACKAGE_C_ARES=y
BR2_PACKAGE_GLIB_NETWORKING=y
BR2_PACKAGE_LIBCGI=y
BR2_PACKAGE_LIBCGICC=y
BR2_PACKAGE_LIBDNET=y
BR2_PACKAGE_LIBDNET_PYTHON=y
BR2_PACKAGE_LIBEXOSIP2=y
BR2_PACKAGE_LIBGSASL=y
BR2_PACKAGE_LIBISCSI=y
BR2_PACKAGE_LIBMICROHTTPD_SSL=y
BR2_PACKAGE_LIBMODBUS=y
BR2_PACKAGE_LIBNETFILTER_LOG=y
BR2_PACKAGE_LIBNFTNL=y
BR2_PACKAGE_LIBNFTNL_JSON=y
BR2_PACKAGE_LIBNFTNL_XML=y
BR2_PACKAGE_LIBOPING=y
BR2_PACKAGE_LIBSOCKETCAN=y
BR2_PACKAGE_LIBTORRENT=y
BR2_PACKAGE_LIBWEBSOCKETS=y
BR2_PACKAGE_NEON_SSL=y
BR2_PACKAGE_NEON_LIBXML2=y
BR2_PACKAGE_OPENPGM=y
BR2_PACKAGE_RTMPDUMP=y
BR2_PACKAGE_THRIFT=y
BR2_PACKAGE_USBREDIR=y
BR2_PACKAGE_USBREDIR_SERVER=y
BR2_PACKAGE_ZYRE=y
BR2_PACKAGE_APR_UTIL=y
BR2_PACKAGE_BOOST_CHRONO=y
BR2_PACKAGE_BOOST_DATE_TIME=y
BR2_PACKAGE_BOOST_FILESYSTEM=y
BR2_PACKAGE_BOOST_GRAPH=y
BR2_PACKAGE_BOOST_IOSTREAMS=y
BR2_PACKAGE_BOOST_LOCALE=y
BR2_PACKAGE_BOOST_PROGRAM_OPTIONS=y
BR2_PACKAGE_BOOST_REGEX=y
BR2_PACKAGE_BOOST_SERIALIZATION=y
BR2_PACKAGE_BOOST_SIGNALS=y
BR2_PACKAGE_BOOST_SYSTEM=y
BR2_PACKAGE_BOOST_TIMER=y
BR2_PACKAGE_EIGEN=y
BR2_PACKAGE_ELFUTILS=y
BR2_PACKAGE_FFTW=y
BR2_PACKAGE_GLIBMM=y
BR2_PACKAGE_GSL=y
BR2_PACKAGE_LIBNSPR=y
BR2_PACKAGE_MPC=y
BR2_PACKAGE_POCO=y
BR2_PACKAGE_POCO_ZIP=y
BR2_PACKAGE_PROTOBUF_C=y
BR2_PACKAGE_ICU=y
BR2_PACKAGE_LIBENCA=y
BR2_PACKAGE_LINENOISE=y
BR2_PACKAGE_NCURSES_TARGET_FORM=y
BR2_PACKAGE_NCURSES_TARGET_MENU=y
BR2_PACKAGE_SLANG=y
BR2_PACKAGE_EMPTY=y
BR2_PACKAGE_MCRYPT=y
BR2_PACKAGE_LIBESMTP=y
BR2_PACKAGE_MSMTP=y
BR2_PACKAGE_AICCU=y
BR2_PACKAGE_ARGUS=y
BR2_PACKAGE_ARPTABLES=y
BR2_PACKAGE_AUTOSSH=y
BR2_PACKAGE_AVAHI=y
# BR2_PACKAGE_AVAHI_AUTOIPD is not set
BR2_PACKAGE_AVAHI_DAEMON=y
BR2_PACKAGE_AXEL=y
BR2_PACKAGE_BLUEZ_UTILS_AUDIO=y
BR2_PACKAGE_BMON=y
BR2_PACKAGE_BOA=y
BR2_PACKAGE_BRIDGE_UTILS=y
BR2_PACKAGE_CAN_UTILS=y
BR2_PACKAGE_CHRONY=y
BR2_PACKAGE_CONNTRACK_TOOLS=y
BR2_PACKAGE_CRDA=y
BR2_PACKAGE_DHCPCD=y
BR2_PACKAGE_DROPBEAR=y
BR2_PACKAGE_DROPBEAR_DISABLE_REVERSEDNS=y
BR2_PACKAGE_DROPBEAR_LASTLOG=y
BR2_PACKAGE_EBTABLES=y
BR2_PACKAGE_FPING=y
BR2_PACKAGE_GESFTPSERVER=y
BR2_PACKAGE_HIAWATHA=y
BR2_PACKAGE_HIAWATHA_SSL=y
BR2_PACKAGE_IFTOP=y
BR2_PACKAGE_IPSET=y
BR2_PACKAGE_IPUTILS=y
BR2_PACKAGE_KISMET=y
BR2_PACKAGE_KISMET_CLIENT=y
# BR2_PACKAGE_KISMET_SERVER is not set
BR2_PACKAGE_LFTP=y
# BR2_PACKAGE_LFTP_CMD_MIRROR is not set
# BR2_PACKAGE_LFTP_CMD_SLEEP is not set
BR2_PACKAGE_LFTP_CMD_TORRENT=y
BR2_PACKAGE_LFTP_PROTO_FISH=y
BR2_PACKAGE_LFTP_PROTO_HTTP=y
BR2_PACKAGE_LFTP_PROTO_SFTP=y
BR2_PACKAGE_LINKNX=y
BR2_PACKAGE_MONGOOSE=y
BR2_PACKAGE_MROUTED=y
BR2_PACKAGE_MTR=y
BR2_PACKAGE_NCFTP=y
# BR2_PACKAGE_NCFTP_GET is not set
# BR2_PACKAGE_NCFTP_BATCH is not set
BR2_PACKAGE_NGIRCD=y
BR2_PACKAGE_NMAP=y
BR2_PACKAGE_NTP=y
BR2_PACKAGE_NTP_SNTP=y
BR2_PACKAGE_NTP_NTP_WAIT=y
BR2_PACKAGE_NTP_NTPQ=y
BR2_PACKAGE_NUTTCP=y
BR2_PACKAGE_OPENSWAN=y
BR2_PACKAGE_OPENVPN=y
# BR2_PACKAGE_OPENVPN_LZO is not set
BR2_PACKAGE_OPENVPN_CRYPTO_POLARSSL=y
BR2_PACKAGE_P910ND=y
BR2_PACKAGE_PORTMAP=y
BR2_PACKAGE_PPPD=y
BR2_PACKAGE_PPPD_RADIUS=y
BR2_PACKAGE_PPTP_LINUX=y
BR2_PACKAGE_PROFTPD=y
BR2_PACKAGE_PROXYCHAINS_NG=y
BR2_PACKAGE_PTPD=y
BR2_PACKAGE_PTPD2=y
BR2_PACKAGE_QUAGGA=y
BR2_PACKAGE_QUAGGA_BGPD=y
BR2_PACKAGE_QUAGGA_BGP_ANNOUNCE=y
BR2_PACKAGE_QUAGGA_ISISD=y
BR2_PACKAGE_QUAGGA_OSPF6D=y
BR2_PACKAGE_QUAGGA_RIPD=y
BR2_PACKAGE_QUAGGA_WATCHQUAGGA=y
BR2_PACKAGE_QUAGGA_SNMP=y
BR2_PACKAGE_SCONESERVER=y
BR2_PACKAGE_SCONESERVER_EXAMPLES=y
BR2_PACKAGE_SCONESERVER_HTTP_SCONESITE=y
BR2_PACKAGE_SCONESERVER_MYSQL=y
BR2_PACKAGE_SCONESERVER_BLUETOOTH=y
BR2_PACKAGE_SCONESERVER_LOCATION=y
BR2_PACKAGE_SCONESERVER_TESTBUILDER=y
BR2_PACKAGE_SER2NET=y
BR2_PACKAGE_SOCKETCAND=y
BR2_PACKAGE_SQUID=y
BR2_PACKAGE_STRONGSWAN=y
BR2_PACKAGE_STRONGSWAN_OPENSSL=y
BR2_PACKAGE_STRONGSWAN_CURL=y
# BR2_PACKAGE_STRONGSWAN_CHARON is not set
# BR2_PACKAGE_STRONGSWAN_TOOLS is not set
BR2_PACKAGE_TCPING=y
BR2_PACKAGE_THTTPD=y
BR2_PACKAGE_TINYHTTPD=y
BR2_PACKAGE_UDPCAST=y
BR2_PACKAGE_UDPCAST_RECEIVER=y
BR2_PACKAGE_USHARE=y
BR2_PACKAGE_VPNC=y
BR2_PACKAGE_VSFTPD=y
BR2_PACKAGE_WIRELESS_TOOLS=y
BR2_PACKAGE_WIRELESS_TOOLS_LIB=y
BR2_PACKAGE_WVDIAL=y
BR2_PACKAGE_XL2TP=y
BR2_PACKAGE_DTACH=y
BR2_PACKAGE_LOCKFILE_PROGS=y
BR2_PACKAGE_LOGSURFER=y
BR2_PACKAGE_SCREEN=y
BR2_PACKAGE_XMLSTARLET=y
BR2_PACKAGE_ATTR=y
BR2_PACKAGE_KEYUTILS=y
BR2_PACKAGE_NCDU=y
BR2_PACKAGE_NUT=y
BR2_PACKAGE_QUOTA=y
BR2_PACKAGE_UTIL_LINUX_ARCH=y
BR2_PACKAGE_UTIL_LINUX_EJECT=y
BR2_PACKAGE_UTIL_LINUX_FALLOCATE=y
BR2_PACKAGE_UTIL_LINUX_FSCK=y
BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y
BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y
BR2_PACKAGE_UTIL_LINUX_RENAME=y
BR2_PACKAGE_UTIL_LINUX_RESET=y
BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y
BR2_PACKAGE_UTIL_LINUX_UNSHARE=y
BR2_PACKAGE_UTIL_LINUX_UUIDD=y
BR2_PACKAGE_WDCTL=y
BR2_PACKAGE_UTIL_LINUX_WRITE=y
BR2_PACKAGE_ED=y
BR2_PACKAGE_JOE=y
# BR2_PACKAGE_JOE_FULL is not set
BR2_TARGET_ROOTFS_CPIO=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_SQUASHFS=y
BR2_TARGET_ROOTFS_SQUASHFS4_XZ=y
BR2_TARGET_ROOTFS_UBIFS=y
BR2_TARGET_ROOTFS_UBIFS_BZIP2=y
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENPART=y
BR2_PACKAGE_HOST_LPC3250LOADER=y
BR2_PACKAGE_HOST_MTOOLS=y
BR2_PACKAGE_HOST_OPENOCD=y
BR2_PACKAGE_HOST_UBOOT_TOOLS=y

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1 of 3 v2] infra: support buildroot being located in /usr
  2014-06-20 19:11 [Buildroot] [PATCH 0 of 3 v2] Support buildroot being located in /usr Thomas De Schampheleire
@ 2014-06-20 19:11 ` Thomas De Schampheleire
  2014-06-20 23:09   ` Arnout Vandecappelle
  2014-06-20 19:11 ` [Buildroot] [PATCH 2 of 3 v2] qt5: " Thomas De Schampheleire
  2014-06-20 19:11 ` [Buildroot] [PATCH 3 of 3 v2] pkgconf: don't double prefix lib/include paths with sysroot Thomas De Schampheleire
  2 siblings, 1 reply; 9+ messages in thread
From: Thomas De Schampheleire @ 2014-06-20 19:11 UTC (permalink / raw)
  To: buildroot

pkg-generic and pkg-autotools both perform sed replacements of /usr to
$(STAGING_DIR)/usr, in .pc and .la files respectively. However, if buildroot
itself is located in /usr, then STAGING_DIR also starts with /usr, and naive
replacements of '/usr' can result in paths of the form:
    /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/...

This patch makes the replacements more careful, by first replacing the known
paths BASE_DIR and STAGING_DIR to tokens, then performing the actual
replacement, and finally replacing the tokens with the corresponding paths.

Additionally it removes the unnecessary making of a backup copy in
pkg-autotools.

Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)

Partially-based-on-a-patch-from: Ben Stoltz <benstoltz@gmail.com>
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

---
v2: s/Jeremy Kerr/Ben Stoltz/

 package/pkg-autotools.mk |   8 ++++++--
 package/pkg-generic.mk   |  10 +++++++---
 2 files changed, 13 insertions(+), 5 deletions(-)

diff -r a59338f65a46 -r 2969a1777632 package/pkg-autotools.mk
--- a/package/pkg-autotools.mk	Wed Jun 18 20:22:00 2014 +0400
+++ b/package/pkg-autotools.mk	Fri Jun 20 21:09:35 2014 +0200
@@ -268,8 +268,12 @@
 define $(2)_INSTALL_STAGING_CMDS
 	$$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_SRCDIR)
 	for i in $$$$(find $$(STAGING_DIR)/usr/lib* -name "*.la"); do \
-		cp -f $$$$i $$$$i~; \
-		$$(SED) "s:\(['= ]\)/usr:\\1$$(STAGING_DIR)/usr:g" $$$$i; \
+		$$(SED) "s:$$(BASE_DIR):@BASE_DIR@:g" \
+			-e "s:$$(STAGING_DIR):@STAGING_DIR@:g" \
+			-e "s:\(['= ]\)/usr:\\1 at STAGING_DIR@/usr:g" \
+			-e "s:@STAGING_DIR@:$$(STAGING_DIR):g" \
+			-e "s:@BASE_DIR@:$$(BASE_DIR):g" \
+			$$$$i; \
 	done
 endef
 endif
diff -r a59338f65a46 -r 2969a1777632 package/pkg-generic.mk
--- a/package/pkg-generic.mk	Wed Jun 18 20:22:00 2014 +0400
+++ b/package/pkg-generic.mk	Fri Jun 20 21:09:35 2014 +0200
@@ -201,9 +201,13 @@
 	$(foreach hook,$($(PKG)_POST_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep))
 	$(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \
 		$(call MESSAGE,"Fixing package configuration files") ;\
-			$(SED)  "s,^\(exec_\)\?prefix=.*,\1prefix=$(STAGING_DIR)/usr,g" \
-				-e "s,-I/usr/,-I$(STAGING_DIR)/usr/,g" \
-				-e "s,-L/usr/,-L$(STAGING_DIR)/usr/,g" \
+			$(SED)  "s,$(BASE_DIR), at BASE_DIR@,g" \
+				-e "s,$(STAGING_DIR), at STAGING_DIR@,g" \
+				-e "s,^\(exec_\)\?prefix=.*,\1prefix=@STAGING_DIR@/usr,g" \
+				-e "s,-I/usr/,-I at STAGING_DIR@/usr/,g" \
+				-e "s,-L/usr/,-L at STAGING_DIR@/usr/,g" \
+				-e "s, at STAGING_DIR@,$(STAGING_DIR),g" \
+				-e "s, at BASE_DIR@,$(BASE_DIR),g" \
 				$(addprefix $(STAGING_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ;\
 	fi
 	$(Q)touch $@

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2 of 3 v2] qt5: support buildroot being located in /usr
  2014-06-20 19:11 [Buildroot] [PATCH 0 of 3 v2] Support buildroot being located in /usr Thomas De Schampheleire
  2014-06-20 19:11 ` [Buildroot] [PATCH 1 of 3 v2] infra: support " Thomas De Schampheleire
@ 2014-06-20 19:11 ` Thomas De Schampheleire
  2014-06-20 23:14   ` Arnout Vandecappelle
  2014-06-20 19:11 ` [Buildroot] [PATCH 3 of 3 v2] pkgconf: don't double prefix lib/include paths with sysroot Thomas De Schampheleire
  2 siblings, 1 reply; 9+ messages in thread
From: Thomas De Schampheleire @ 2014-06-20 19:11 UTC (permalink / raw)
  To: buildroot

qt5 performs sed replacements of /usr to $(STAGING_DIR)/usr in .la files.
However, if buildroot itself is located in /usr, then STAGING_DIR also
starts with /usr, and naive replacements of '/usr' can result in paths of
the form:
    /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/...

This patch makes the replacements more careful, by first replacing the known
paths BASE_DIR and STAGING_DIR to tokens, then performing the actual
replacement, and finally replacing the tokens with the corresponding paths.

Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

---
v2: no changes

 package/qt5/qt5.mk |  7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)

diff -r 2969a1777632 -r 6e90b5d19205 package/qt5/qt5.mk
--- a/package/qt5/qt5.mk	Fri Jun 20 21:09:35 2014 +0200
+++ b/package/qt5/qt5.mk	Thu Jun 19 21:16:12 2014 +0200
@@ -5,7 +5,12 @@
 
 define QT5_LA_PRL_FILES_FIXUP
 	for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.la"); do \
-		$(SED) "s:\(['= ]\)/usr:\\1$(STAGING_DIR)/usr:g" $$i; \
+		$(SED)  "s:$(BASE_DIR):@BASE_DIR@:g" \
+			-e "s:$(STAGING_DIR):@STAGING_DIR@:g" \
+			-e "s:\(['= ]\)/usr:\\1 at STAGING_DIR@/usr:g" \
+			-e "s:@STAGING_DIR@:$(STAGING_DIR):g" \
+			-e "s:@BASE_DIR@:$(BASE_DIR):g" \
+			$$i ; \
 		$(SED) "/^dependency_libs=/s%-L/usr/lib %%g" $$i ; \
 	done
 	for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.prl"); do \

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 3 of 3 v2] pkgconf: don't double prefix lib/include paths with sysroot
  2014-06-20 19:11 [Buildroot] [PATCH 0 of 3 v2] Support buildroot being located in /usr Thomas De Schampheleire
  2014-06-20 19:11 ` [Buildroot] [PATCH 1 of 3 v2] infra: support " Thomas De Schampheleire
  2014-06-20 19:11 ` [Buildroot] [PATCH 2 of 3 v2] qt5: " Thomas De Schampheleire
@ 2014-06-20 19:11 ` Thomas De Schampheleire
  2014-06-20 23:16   ` Arnout Vandecappelle
  2 siblings, 1 reply; 9+ messages in thread
From: Thomas De Schampheleire @ 2014-06-20 19:11 UTC (permalink / raw)
  To: buildroot

A .pc file could contain statements of the form:
    -L/usr/lib
but also:
    -L/path/to/sysroot/usr/lib

The latter form typically occurs when the dependency was configured with a
statement like --with-xxx=$(STAGING_DIR)/usr.

pkgconf only expects the first form, and prefixes it with the specified
sysroot. However, this strategy would result in a double sysroot in the
second case:
    -L/path/to/sysroot/path/to/sysroot/usr/lib

This patch checks for the presence of the sysroot in the specified -L or -I
directives, and only adds the sysroot when not already present.

Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)

Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

---
v2: no changes

 package/pkgconf/pkgconf-02-fix-double-sysroot.patch |  40 +++++++++++++++
 1 files changed, 40 insertions(+), 0 deletions(-)

diff -r 6e90b5d19205 -r ff17031f15da package/pkgconf/pkgconf-02-fix-double-sysroot.patch
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/package/pkgconf/pkgconf-02-fix-double-sysroot.patch	Thu Jun 19 21:16:17 2014 +0200
@@ -0,0 +1,40 @@
+pkgconf: don't double prefix lib/include paths with sysroot
+
+A .pc file could contain statements of the form:
+    -L/usr/lib
+but also:
+    -L/path/to/sysroot/usr/lib
+
+The latter form typically occurs when the dependency was configured with a
+statement like --with-xxx=$(STAGING_DIR)/usr.
+
+pkgconf only expects the first form, and prefixes it with the specified
+sysroot. However, this strategy would result in a double sysroot in the
+second case:
+    -L/path/to/sysroot/path/to/sysroot/usr/lib
+
+This patch checks for the presence of the sysroot in the specified -L or -I
+directives, and only adds the sysroot when not already present.
+
+Upstream-status: will be submitted
+
+Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
+
+---
+ main.c |  3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+
+diff -r 16865d81819f -r 9d8e1737687f main.c
+--- a/main.c	Mon Jun 16 19:47:52 2014 +0200
++++ b/main.c	Mon Jun 16 19:48:15 2014 +0200
+@@ -82,7 +82,8 @@
+ 	{
+ 	case 'L':
+ 	case 'I':
+-		return sysroot_dir;
++		if (strncmp(sysroot_dir, frag->data, strlen(sysroot_dir)) != 0)
++			return sysroot_dir;
+ 	default:
+ 		break;
+ 	}

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1 of 3 v2] infra: support buildroot being located in /usr
  2014-06-20 19:11 ` [Buildroot] [PATCH 1 of 3 v2] infra: support " Thomas De Schampheleire
@ 2014-06-20 23:09   ` Arnout Vandecappelle
  2014-06-21  9:04     ` Thomas De Schampheleire
  0 siblings, 1 reply; 9+ messages in thread
From: Arnout Vandecappelle @ 2014-06-20 23:09 UTC (permalink / raw)
  To: buildroot

On 20/06/14 21:11, Thomas De Schampheleire wrote:
> pkg-generic and pkg-autotools both perform sed replacements of /usr to
> $(STAGING_DIR)/usr, in .pc and .la files respectively. However, if buildroot
> itself is located in /usr, then STAGING_DIR also starts with /usr, and naive
> replacements of '/usr' can result in paths of the form:
>     /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/...
> 
> This patch makes the replacements more careful, by first replacing the known
> paths BASE_DIR and STAGING_DIR to tokens, then performing the actual
> replacement, and finally replacing the tokens with the corresponding paths.
> 
> Additionally it removes the unnecessary making of a backup copy in
> pkg-autotools.
> 
> Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)
> 
> Partially-based-on-a-patch-from: Ben Stoltz <benstoltz@gmail.com>
> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
> 
> ---
> v2: s/Jeremy Kerr/Ben Stoltz/
> 
>  package/pkg-autotools.mk |   8 ++++++--
>  package/pkg-generic.mk   |  10 +++++++---
>  2 files changed, 13 insertions(+), 5 deletions(-)
> 
> diff -r a59338f65a46 -r 2969a1777632 package/pkg-autotools.mk
> --- a/package/pkg-autotools.mk	Wed Jun 18 20:22:00 2014 +0400
> +++ b/package/pkg-autotools.mk	Fri Jun 20 21:09:35 2014 +0200
> @@ -268,8 +268,12 @@
>  define $(2)_INSTALL_STAGING_CMDS
>  	$$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_SRCDIR)
>  	for i in $$$$(find $$(STAGING_DIR)/usr/lib* -name "*.la"); do \
> -		cp -f $$$$i $$$$i~; \
> -		$$(SED) "s:\(['= ]\)/usr:\\1$$(STAGING_DIR)/usr:g" $$$$i; \
> +		$$(SED) "s:$$(BASE_DIR):@BASE_DIR@:g" \
> +			-e "s:$$(STAGING_DIR):@STAGING_DIR@:g" \

 STAGING_DIR contains BASE_DIR, so this second expression will never match
anymore, no? It would match if you swap the two expressions, but there is not
much reason I think.

 But don't let that stop this patch. So:

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>


> +			-e "s:\(['= ]\)/usr:\\1 at STAGING_DIR@/usr:g" \
> +			-e "s:@STAGING_DIR@:$$(STAGING_DIR):g" \
> +			-e "s:@BASE_DIR@:$$(BASE_DIR):g" \
> +			$$$$i; \
>  	done
>  endef
>  endif
> diff -r a59338f65a46 -r 2969a1777632 package/pkg-generic.mk
> --- a/package/pkg-generic.mk	Wed Jun 18 20:22:00 2014 +0400
> +++ b/package/pkg-generic.mk	Fri Jun 20 21:09:35 2014 +0200
> @@ -201,9 +201,13 @@
>  	$(foreach hook,$($(PKG)_POST_INSTALL_STAGING_HOOKS),$(call $(hook))$(sep))
>  	$(Q)if test -n "$($(PKG)_CONFIG_SCRIPTS)" ; then \
>  		$(call MESSAGE,"Fixing package configuration files") ;\
> -			$(SED)  "s,^\(exec_\)\?prefix=.*,\1prefix=$(STAGING_DIR)/usr,g" \
> -				-e "s,-I/usr/,-I$(STAGING_DIR)/usr/,g" \
> -				-e "s,-L/usr/,-L$(STAGING_DIR)/usr/,g" \
> +			$(SED)  "s,$(BASE_DIR), at BASE_DIR@,g" \
> +				-e "s,$(STAGING_DIR), at STAGING_DIR@,g" \
> +				-e "s,^\(exec_\)\?prefix=.*,\1prefix=@STAGING_DIR@/usr,g" \
> +				-e "s,-I/usr/,-I at STAGING_DIR@/usr/,g" \
> +				-e "s,-L/usr/,-L at STAGING_DIR@/usr/,g" \
> +				-e "s, at STAGING_DIR@,$(STAGING_DIR),g" \
> +				-e "s, at BASE_DIR@,$(BASE_DIR),g" \
>  				$(addprefix $(STAGING_DIR)/usr/bin/,$($(PKG)_CONFIG_SCRIPTS)) ;\
>  	fi
>  	$(Q)touch $@
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2 of 3 v2] qt5: support buildroot being located in /usr
  2014-06-20 19:11 ` [Buildroot] [PATCH 2 of 3 v2] qt5: " Thomas De Schampheleire
@ 2014-06-20 23:14   ` Arnout Vandecappelle
  2014-06-21 16:59     ` Thomas Petazzoni
  0 siblings, 1 reply; 9+ messages in thread
From: Arnout Vandecappelle @ 2014-06-20 23:14 UTC (permalink / raw)
  To: buildroot

On 20/06/14 21:11, Thomas De Schampheleire wrote:
> qt5 performs sed replacements of /usr to $(STAGING_DIR)/usr in .la files.
> However, if buildroot itself is located in /usr, then STAGING_DIR also
> starts with /usr, and naive replacements of '/usr' can result in paths of
> the form:
>     /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/...
> 
> This patch makes the replacements more careful, by first replacing the known
> paths BASE_DIR and STAGING_DIR to tokens, then performing the actual
> replacement, and finally replacing the tokens with the corresponding paths.
> 
> Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)
> 
> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
> 
> ---
> v2: no changes
> 
>  package/qt5/qt5.mk |  7 ++++++-
>  1 files changed, 6 insertions(+), 1 deletions(-)
> 
> diff -r 2969a1777632 -r 6e90b5d19205 package/qt5/qt5.mk
> --- a/package/qt5/qt5.mk	Fri Jun 20 21:09:35 2014 +0200
> +++ b/package/qt5/qt5.mk	Thu Jun 19 21:16:12 2014 +0200
> @@ -5,7 +5,12 @@
>  
>  define QT5_LA_PRL_FILES_FIXUP
>  	for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.la"); do \
> -		$(SED) "s:\(['= ]\)/usr:\\1$(STAGING_DIR)/usr:g" $$i; \
> +		$(SED)  "s:$(BASE_DIR):@BASE_DIR@:g" \
> +			-e "s:$(STAGING_DIR):@STAGING_DIR@:g" \
> +			-e "s:\(['= ]\)/usr:\\1 at STAGING_DIR@/usr:g" \
> +			-e "s:@STAGING_DIR@:$(STAGING_DIR):g" \
> +			-e "s:@BASE_DIR@:$(BASE_DIR):g" \
> +			$$i ; \

 Now that I see the two patches next to each other: why is this hook needed?
It's already done by the generic staging-install target, no? ThomasP carries the
blame for this, so putting him in Cc...


 Regards,
 Arnout


>  		$(SED) "/^dependency_libs=/s%-L/usr/lib %%g" $$i ; \
>  	done
>  	for i in $$(find $(STAGING_DIR)/usr/lib* -name "libQt5*.prl"); do \
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 3 of 3 v2] pkgconf: don't double prefix lib/include paths with sysroot
  2014-06-20 19:11 ` [Buildroot] [PATCH 3 of 3 v2] pkgconf: don't double prefix lib/include paths with sysroot Thomas De Schampheleire
@ 2014-06-20 23:16   ` Arnout Vandecappelle
  0 siblings, 0 replies; 9+ messages in thread
From: Arnout Vandecappelle @ 2014-06-20 23:16 UTC (permalink / raw)
  To: buildroot

On 20/06/14 21:11, Thomas De Schampheleire wrote:
> A .pc file could contain statements of the form:
>     -L/usr/lib
> but also:
>     -L/path/to/sysroot/usr/lib
> 
> The latter form typically occurs when the dependency was configured with a
> statement like --with-xxx=$(STAGING_DIR)/usr.
> 
> pkgconf only expects the first form, and prefixes it with the specified
> sysroot. However, this strategy would result in a double sysroot in the
> second case:
>     -L/path/to/sysroot/path/to/sysroot/usr/lib
> 
> This patch checks for the presence of the sysroot in the specified -L or -I
> directives, and only adds the sysroot when not already present.
> 
> Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)
> 
> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

 Regards,
 Arnout

> 
> ---
> v2: no changes
> 
>  package/pkgconf/pkgconf-02-fix-double-sysroot.patch |  40 +++++++++++++++
>  1 files changed, 40 insertions(+), 0 deletions(-)
> 
> diff -r 6e90b5d19205 -r ff17031f15da package/pkgconf/pkgconf-02-fix-double-sysroot.patch
> --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
> +++ b/package/pkgconf/pkgconf-02-fix-double-sysroot.patch	Thu Jun 19 21:16:17 2014 +0200
> @@ -0,0 +1,40 @@
> +pkgconf: don't double prefix lib/include paths with sysroot
> +
> +A .pc file could contain statements of the form:
> +    -L/usr/lib
> +but also:
> +    -L/path/to/sysroot/usr/lib
> +
> +The latter form typically occurs when the dependency was configured with a
> +statement like --with-xxx=$(STAGING_DIR)/usr.
> +
> +pkgconf only expects the first form, and prefixes it with the specified
> +sysroot. However, this strategy would result in a double sysroot in the
> +second case:
> +    -L/path/to/sysroot/path/to/sysroot/usr/lib
> +
> +This patch checks for the presence of the sysroot in the specified -L or -I
> +directives, and only adds the sysroot when not already present.
> +
> +Upstream-status: will be submitted
> +
> +Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
> +
> +---
> + main.c |  3 ++-
> + 1 files changed, 2 insertions(+), 1 deletions(-)
> +
> +
> +diff -r 16865d81819f -r 9d8e1737687f main.c
> +--- a/main.c	Mon Jun 16 19:47:52 2014 +0200
> ++++ b/main.c	Mon Jun 16 19:48:15 2014 +0200
> +@@ -82,7 +82,8 @@
> + 	{
> + 	case 'L':
> + 	case 'I':
> +-		return sysroot_dir;
> ++		if (strncmp(sysroot_dir, frag->data, strlen(sysroot_dir)) != 0)
> ++			return sysroot_dir;
> + 	default:
> + 		break;
> + 	}
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 1 of 3 v2] infra: support buildroot being located in /usr
  2014-06-20 23:09   ` Arnout Vandecappelle
@ 2014-06-21  9:04     ` Thomas De Schampheleire
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas De Schampheleire @ 2014-06-21  9:04 UTC (permalink / raw)
  To: buildroot

On Sat, Jun 21, 2014 at 1:09 AM, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 20/06/14 21:11, Thomas De Schampheleire wrote:
>> pkg-generic and pkg-autotools both perform sed replacements of /usr to
>> $(STAGING_DIR)/usr, in .pc and .la files respectively. However, if buildroot
>> itself is located in /usr, then STAGING_DIR also starts with /usr, and naive
>> replacements of '/usr' can result in paths of the form:
>>     /usr/buildroot/.../sysroot/usr/buildroot/.../sysroot/...
>>
>> This patch makes the replacements more careful, by first replacing the known
>> paths BASE_DIR and STAGING_DIR to tokens, then performing the actual
>> replacement, and finally replacing the tokens with the corresponding paths.
>>
>> Additionally it removes the unnecessary making of a backup copy in
>> pkg-autotools.
>>
>> Partially fixes bug #5750 (https://bugs.busybox.net/show_bug.cgi?id=5750)
>>
>> Partially-based-on-a-patch-from: Ben Stoltz <benstoltz@gmail.com>
>> Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
>>
>> ---
>> v2: s/Jeremy Kerr/Ben Stoltz/
>>
>>  package/pkg-autotools.mk |   8 ++++++--
>>  package/pkg-generic.mk   |  10 +++++++---
>>  2 files changed, 13 insertions(+), 5 deletions(-)
>>
>> diff -r a59338f65a46 -r 2969a1777632 package/pkg-autotools.mk
>> --- a/package/pkg-autotools.mk        Wed Jun 18 20:22:00 2014 +0400
>> +++ b/package/pkg-autotools.mk        Fri Jun 20 21:09:35 2014 +0200
>> @@ -268,8 +268,12 @@
>>  define $(2)_INSTALL_STAGING_CMDS
>>       $$(TARGET_MAKE_ENV) $$($$(PKG)_MAKE_ENV) $$($$(PKG)_MAKE) $$($$(PKG)_INSTALL_STAGING_OPT) -C $$($$(PKG)_SRCDIR)
>>       for i in $$$$(find $$(STAGING_DIR)/usr/lib* -name "*.la"); do \
>> -             cp -f $$$$i $$$$i~; \
>> -             $$(SED) "s:\(['= ]\)/usr:\\1$$(STAGING_DIR)/usr:g" $$$$i; \
>> +             $$(SED) "s:$$(BASE_DIR):@BASE_DIR@:g" \
>> +                     -e "s:$$(STAGING_DIR):@STAGING_DIR@:g" \
>
>  STAGING_DIR contains BASE_DIR, so this second expression will never match
> anymore, no? It would match if you swap the two expressions, but there is not
> much reason I think.

I originally had the STAGING_DIR token alone, but it caused a problem
still. Then I took over the BASE_DIR expression from Ben Stoltz'
patch, which also kept the STAGING_DIR.
I think you are right that only the BASE_DIR replacement is needed.
After all, this is where the problematic /usr is. I will try this out
for simplicity's sake...

Thanks,
Thomas

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [Buildroot] [PATCH 2 of 3 v2] qt5: support buildroot being located in /usr
  2014-06-20 23:14   ` Arnout Vandecappelle
@ 2014-06-21 16:59     ` Thomas Petazzoni
  0 siblings, 0 replies; 9+ messages in thread
From: Thomas Petazzoni @ 2014-06-21 16:59 UTC (permalink / raw)
  To: buildroot

Dear Arnout Vandecappelle,

On Sat, 21 Jun 2014 01:14:26 +0200, Arnout Vandecappelle wrote:

>  Now that I see the two patches next to each other: why is this hook needed?
> It's already done by the generic staging-install target, no? ThomasP carries the
> blame for this, so putting him in Cc...

I don't think I should be blamed for this actually :-)

The generic staging-install fixup of .la files is only part of
the autotools-package infrastructure, because it's related to libtool,
which is normally used in combination with the rest of the autotools.

However, qt5* packages are all generic-packages, so the "generic"
staging-install fixup of .la files doesn't apply for these packages.

That being said, we could certainly make the .la fixup logic a common
macro, which could be used by both the autotools-package
infrastructure, and some other packages as well.

Best regards,

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2014-06-21 16:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-06-20 19:11 [Buildroot] [PATCH 0 of 3 v2] Support buildroot being located in /usr Thomas De Schampheleire
2014-06-20 19:11 ` [Buildroot] [PATCH 1 of 3 v2] infra: support " Thomas De Schampheleire
2014-06-20 23:09   ` Arnout Vandecappelle
2014-06-21  9:04     ` Thomas De Schampheleire
2014-06-20 19:11 ` [Buildroot] [PATCH 2 of 3 v2] qt5: " Thomas De Schampheleire
2014-06-20 23:14   ` Arnout Vandecappelle
2014-06-21 16:59     ` Thomas Petazzoni
2014-06-20 19:11 ` [Buildroot] [PATCH 3 of 3 v2] pkgconf: don't double prefix lib/include paths with sysroot Thomas De Schampheleire
2014-06-20 23:16   ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.