Using Github CI Pipeline with wxWidgets - wxwidgets

I got a cross platform application using a wxWidgets gui and want to test the cross build with github ci pipeline.
The Linux test runs fine as i'm able to install the wxWidgets dependencies using apt-get.
But i got no idea how to setup the wxWidgets Windows dependencies. Google didn't help me either.
any suggestions what command i need to put into my yml-file?
thanks!
edit: what i've tried so far...
- name: install wxwidgets
shell: powershell
run: |
choco install wxwidgets
but this is the same like cloning the git version, only with an older version
and
run: |
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
bootstrap-vcpkg.bat
vcpkg integrate install
vcpkg install wxwidgets
the pipeline keeps hanging while installing vcpkg

You should be able to install wxWidgets using vcpkg, of course, but you can also just download the official binaries and use them instead, e.g. like this:
build-cpp-windows-2019:
name: C++/MSVS (windows-2019)
runs-on: windows-2019
env:
wxMSW_VER: 3.1.3
WXWIN: c:\wx
steps:
[...]
- name: Install wxWidgets
run: |
mkdir ${env:WXWIN} | Out-Null
cd ${env:WXWIN}
curl -OL https://github.com/wxWidgets/wxWidgets/releases/download/v${env:wxMSW_VER}/wxWidgets-${env:wxMSW_VER}-headers.7z
7z x wxWidgets-${env:wxMSW_VER}-headers.7z
curl -OL https://github.com/wxWidgets/wxWidgets/releases/download/v${env:wxMSW_VER}/wxMSW-${env:wxMSW_VER}_vc14x_x64_Dev.7z
7z x wxMSW-${env:wxMSW_VER}_vc14x_x64_Dev.7z

Related

Error relocating /usr/bin/mono: getrandom: symbol not found

I'm trying to install mono inside an alpine 3.8 container and I received this message when running mono:
Error relocating /usr/bin/mono: getrandom: symbol not found
Is there a way to fix this ?
mono is only available in edge testing alpine repository. In order to install it, we need to have musl at least version 1.1.20, which is available in alpine v3.9 main or edge main repositories.
So, you have two options to proceed:
1. Install musl from alpine v3.9 repository on alpine v3.8 base image and install mono from alpine edge testing after that:
FROM alpine:3.8
RUN apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/v3.9/main musl\>1.1.20
RUN apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing mono
CMD mono
2. Install mono from alpine edge testing on alpine v3.9 base image:
FROM alpine:3.9
RUN apk add --no-cache --repository=http://dl-cdn.alpinelinux.org/alpine/edge/testing mono
CMD mono

How to install PhantomJS on vps?

I tried to use pip install, but it tells cannot find such package.
I also see someone say we can use brew and nodejs to install. This is what I tried to install brew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
It returns that ruby doesn't found.
I have no idea about nodejs.
Anyone knows how can I install PhantomJS in the server?
Meet npm!
Npm stands for Node Package Manager.
You can install packages for using them from the CLI or from your nodejs app.
You can install NPM from here.
If node isn't installed yet, you can use NVM, which makes it really easy -
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
For your question,
See this specific package.
You can install it via:
$ npm install phantomjs-prebuilt
And then you should be able to: $ bin/phantomjs [phantom arguments] to run phantomJS from the terminal.
PhantomJS is a standalone application with its own website which has binaries for all major platforms and documentation. You don't really need pip or npm or bundler to install it, just do it manually.
Go to http://phantomjs.org/download.html
Choose the appropriate binary (Linux x32 x64 / OSX / Windows), download archive, extract it and run the binary.
For example you have a x64 Linux distribution.
Log in to your server via ssh.
Go to your home directory:
cd ~
Download PhantomJS binary:
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
Extract archive:
tar xvf phantomjs-2.1.1-linux-x86_64.tar.bz2
A new directory is created: phantomjs-2.1.1-linux-x86_64. The PhantomJS binary is phantomjs-2.1.1-linux-x86_64/bin/phantomjs. You can run it right now:
~/phantomjs-2.1.1-linux-x86_64/bin/phantomjs --version
2.1.1
(If it says "not found " instead that means you chose the wrong distribution, e.g. x64 instead of x32).
But this way of running it is inconvenient. It would be way better to be able to just type phantomjs script.js in any directory. To make it so add a link to a directory where binaries are kept by default:
sudo ln -s ~/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
Then you can call PhantomJS from anywhere:
cd /var/www/
phantomjs --version
2.1.1

installation of cmake on debian 8

I tried to install mcsema on my debian linux but I am stopped by error
Cmake 3.1 or higher is required. You are running 3.0.2. On debian this is the only version could be installed by apt-get install. Building CMake from sources, I get several errors as well. Does anyone know how to install the latest version of Cmake on Debian 8?
Download latests cmake release and follow the README.rst instructions:
UNIX/Mac OSX/MinGW/MSYS/Cygwin ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You need to have a compiler and a make installed. Run the
bootstrap script you find in the source directory of CMake. You
can use the --help option to see the supported options. You may
use the --prefix=<install_prefix> option to specify a custom
installation directory for CMake. You can run the bootstrap script
from within the CMake source directory or any other build directory of
your choice. Once this has finished successfully, run make and
make install. In summary::
$ ./bootstrap && make && make install

How to provide standard library sources for IntelliJ IDEA's Rust project?

I am using Mac for development. I installed Rust 1.13.0 using brew install rust and the Rust plugin 0.1.0.1385 for IntelliJ IDEA. I created my first test project with cargo and while opening it with IDEA I got the message
No standard library sources found, some code insight will not work
I haven't found any sources installed, nor the Rust sources package in Homebrew.
How do I provide sources for the project and what are the practical implication if I ignore this step?
As commented, the supported approach is to use rustup:
Navigate to https://rustup.rs/ and follow the installation instructions for your platform.
Add the rust-src component by running: rustup component add rust-src
Create a new Rust project in IntelliJ and choose your existing Rust project source. If the folder already contains previous IntelliJ project files, you may have to delete those first before it will let you proceed.
IntelliJ-Rust should automatically configure the standard library sources to point to the sources downloaded by rustup.
As a reference, since the question title is broad, for Fedora 28 I had to:
dnf install cargo rust-src
sudo ln -s /usr/lib/rustlib/src /usr/lib/rustlib/x86_64-unknown-linux-gnu/
then give /usr/lib/rustlib/x86_64-unknown-linux-gnu/src/rust/src as "Standard library"
Full setup:
Issue opened to simplify the process
When not using the rustup installer, one can install the source package and direct the rust plugin to use those:
(Tested with CLion 2020.2.1, rust-1.46.0-x86_64-pc-windows-gnu.msi, rustc-1.46.0-src.tar.gz. Offline Rust installers and source archive from there: https://forge.rust-lang.org/infra/other-installation-methods.html )
Although the preferred way of installing Rust is by using rustup, as pointed out by the other posts, it is not uncommon to use the packages that your distro makes available.
I use, for example, the packages provided by Gentoo and I share the same problem about the not prefilled field for standard libraries.
Nevertheless, you can easily find out where your standard libraries have been installed by typing the following find command:
find /usr/lib* -type d -name "rust" | grep src
or the following if you installed rust in your home
find -type d -name "rust" | grep src
The previous commands will help, unless, of course, in your distro there is a package for the binaries and one for the source and you only installed the binary one.
I know the question is for MacOS but this answer is shown up when searching for it on Linux. Below I will answer for Ubuntu.
The path is /usr/lib/rustlib/src/rust/src for Ubuntu 20.04
The way I did is:
Installed rustc from the repositories, which includes cargo
sudo apt install rustc
Then installed rust source package
sudo apt install rust-src
I used apt-file (can be installed with sudo apt install apt-file) to search for the install path of the sources
sudo apt-file update
apt-file list rust-src
This show the path as /usr/src/rustc-1.41.0/src .
But a ls -la in /usr/lib/rustlib/ will reveal symlinks and /usr/lib/rustlib/src/rust/src points to the previous found directory.
Using the symlink on IntelliJ will survive new rust versions.
For Fedora 32 install Rust using command:
dnf install cargo rust-src
and the path to standard libary source is:
/usr/lib/rustlib/src/rust
I used Ubuntu. I follow these steps:
sudo apt install rust-src
wait for the install, then
dpkg -L rust-src
copy the last line. For me it is the standard library path:
/usr/lib/rustlib/src/rust
For MacOS, you need to put /opt/homebrew/bin/.

Building Kurento on lubuntu 15.04

I am trying to build whole Kurento on my lubuntu 15.04 (same as ubuntu 15.04 vivid with different UI). I started by cloning all repos:
mkdir kurento
cd kurento
git clone https://github.com/Kurento/kms-jsonrpc.git
git clone https://github.com/Kurento/kurento-module-creator.git
git clone https://github.com/Kurento/kms-filters.git
git clone https://github.com/Kurento/kms-core.git
git clone https://github.com/Kurento/kms-elements.git
git clone https://github.com/Kurento/adm-scripts.git
git clone https://github.com/Kurento/kms-cmake-utils.git
git clone https://github.com/Kurento/kms-crowddetector.git
git clone https://github.com/Kurento/kms-pointerdetector.git
git clone https://github.com/Kurento/kms-platedetector.git
git clone https://github.com/Kurento/kurento-media-server.git
git clone https://github.com/Kurento/kms-plugin-sample.git
git clone https://github.com/Kurento/kms-opencv-plugin-sample.git
then installing kms-cmake-utils:
cd kms-cmake-utils
mkdir build
cd build
cmake ..
make install
ok done, it installs a bunch of files in cmake module directory. then I tried to install kms-core:
cd kms-core
mkdir build
cd build
cmake ..
but cmake stops with following error
-- checking for module 'KurentoModuleCreator'
-- package 'KurentoModuleCreator' not found
CMake Error at /usr/share/cmake-3.0/Modules/GenericFind.cmake:93 (message):
Library KurentoModuleCreator not found
I tried to install kurento-module-creator:
cd kurento-module-creator
mvn install
it complies and installs some files in .m2 directory. I don't have any experience with maven to know if it is done correctly.
However it doesn't resolves the error with kms-core. apparently, cmake find_package command is not able to locate FindKurentoModuleCreator.cmake. I couldn't find the file in any Kurento's repos. can anybody please tell me if I am doing st wrong?
By default, all kms related projects are ready to be build as debian packages.
Instead of using cmake and make install by hand, it will be easier for you to generate debian packages and install them.
The instructions to do generate are very simple:
export PROJECT_NAME=<project_name>
mkdir build_$PROJECT_NAME
cd build_$PROJECT_NAME
git clone https://github.com/Kurento/$PROJECT_NAME
cd $PROJECT_NAME
debuild -uc -us
Once debuild finishes successfully you will have some debian packages in build_<project_name> directory, you can just install them using:
sudo dpkg -i *deb
It is possible that debuild fails because dependencies are not met, in this case you may have to install them using apt-get or generate them if they are kurento dependencies.
Nevertheless, we have available all kurento packages (including some custom dependencies whose sources are also available on github), already compiled in kurento repository:
deb http://ubuntu.kurento.org trusty kms6
or in the dev channel that has all the master branches builds
deb http://ubuntu.kurento.org trusty-dev kms6
Packages are for trusty release, because they are generated using this release which is the officially supported by kurento, but they can generally be installed on 15.04 too.