Emscriptem fails to build sample, wants /usr/bin/opt - compilation

I installed Emscripten using the instructions here, with a few differences for 13.10:
Instead of compiling and setting up clang 3.2, installed from the repository since it's 3.2. (clang --version shows expected output)
Linked the llvm since the compiler didn't find it:
sudo ln -s /usr/bin/llvm-link-3.2 /usr/bin/llvm-link
sudo ln -s /usr/bin/llvm-ar-3.2 /usr/bin/llvm-ar
But now I get an error about the nonexistence of /usr/bin/opt, even though ~/.emscripten has no mention of that directory:
$ ./em++ tests/hello_world.cpp
WARNING root: LLVM version appears incorrect (seeing "version", expected "3.2")
INFO root: (Emscripten: Running sanity checks)
CRITICAL root: Cannot find /usr/bin/opt, check the paths in ~/.emscripten

As described here, there were several more that needed links from -3.2 to normal.

Check /usr/bin installed files from llvm-3.2 package:
dpkg -L llvm-3.2 | grep /usr/bin/ | sort
Create sym-links without version number
sudo ln -s /usr/bin/llvm-ar-3.2 /usr/bin/llvm-ar
...
sudo ln -s /usr/bin/opt-3.2 /usr/bin/opt
Note: Don't forget 5 files named no include "llvm-". ( bugpoint, c-index-test, llc, macho-dump, opt)
Check /usr/bin installed files from llvm-3.2-runtime package:
dpkg -L llvm-3.2-runtime | grep /usr/bin/ | sort
Create sym-link without version number:
sudo ln -s /usr/bin/lli-3.2 /usr/bin/lli
Run Emscripten:
emcc

Related

How to install unison from source on macOS

I was wondering whether somebody managed to install unison's latest version from source, on its macOS machine (Here I am trying with Catalina). I followed the steps here :
I verified that I had XCode installed (otherwise forget about compiling anything :)
I cloned the official Git repository by running
git clone https://github.com/bcpierce00/unison.git
I moved to the newly created directory unison
cd unison
As mentionned in the documentation I then ran the make command telling it to build the text UI:
make UISTYLE=text
Result should have been an executable file called unisonbut instead of this I got the following error :
Blablabla$ make UISTYLE=text
/Applications/Xcode.app/Contents/Developer/usr/bin/make -C src UISTYLE=text
UISTYLE = text
Building for Unix
NATIVE = true
THREADS = false
STATIC = false
OSTYPE =
OSARCH = osx
ocamlopt: ubase/rx.mli ---> ubase/rx.cmi
ocamlopt -g -unsafe-string -I lwt -I ubase -I system -I fsmonitor -I fsmonitor/linux -I fsmonitor/windows -I system/generic -I lwt/generic -ccopt -mmacosx-version-min=10.6 -c /Users/Shared/unison/src/ubase/rx.mli
make[1]: ocamlopt: No such file or directory
make[1]: *** [ubase/rx.cmi] Error 1
make: *** [text] Error 2
I then wondered whether XCode might not carry with him an OCaml compiler. So I installed the official one using MacPort therefore running:
sudo port install ocaml
sudo port install opam
I then rerun the same make command
make UISTYLE=text
This time the result looked better and ended with:
/Applications/Xcode.app/Contents/Developer/usr/bin/make tags
if [ -f "`which etags`" ]; then \
etags *.mli */*.mli *.ml */*.ml */*.m *.c */*.c *.txt \
*Makefile* \
; fi
However, still no unison file visible anywhere.
Question is ... since there is no error message, where is this executable?
Re-hello people from the Internet,
I managed to help myself here and got a nice and fresh unison executable on my macOS Catalina computer.
Basically, the base make tries to move the compilation product into /Users/<your_user>/bin/. which makes sense I guess, but is rarely used by us macOS users. So here is what I did to fix the issue :
Create the bin directory into your home
mkdir ~/bin
Re run the make by doing
make UISTYLE=text
Verify you have the executable by asking its version:
~/bin/unison -version
Happy me, I got the expected message back from my terminal:
unison version 2.51.3 (ocaml 4.08.1)
Hope it can help somebody.

Error while upgrading Asterisk to 14 - PJSIP undeclared

I am trying to upgrade asterisk 11 to 14 on Debian (8.7) and I got the following error when I do make install.
The error is as below
res_pjsip_transport_management.c: In function ‘monitored_transport_state_callback’:
res_pjsip_transport_management.c:190:8: error: ‘PJSIP_TP_STATE_SHUTDOWN’ undeclared (first use in this function)
case PJSIP_TP_STATE_SHUTDOWN:
^
res_pjsip_transport_management.c:190:8: note: each undeclared identifier is reported only once for each function it appears in
/root/asterisk-14.3.0/Makefile.rules:149: recipe for target 'res_pjsip_transport_management.o' failed
make[1]: *** [res_pjsip_transport_management.o] Error 1
Makefile:401: recipe for target 'res' failed
make: *** [res] Error 2
The commands I used are as follow
tar -zxvf asterisk-14-current.tar.gz
/etc/init.d/asterisk stop
cd asterisk-14.3.0/
./configure
rm -f /usr/lib/asterisk/modules/*
make install
I tried some solutions from the internet and it didn't fix....
It seems like the pjsip versions do not match (could be that there is more then one version installed) so you want to remove all previous/existing versions of PJSip. If you do not know what packages belong to pjsip you can search them via:
apt-cache search pjsip
or
dpkg -l | grep pj
And once you know which package to remove do
apt-get --purge remove <package name>
You then want to download the latest version of pjsip (current 2.6 according to Asterisk website)
wget wget http://www.pjsip.org/release/2.6/pjproject-2.6.tar.bz2
tar -xjvf pjproject-2.6.tar.bz2
You want to place the pjproject in /usr/local.
cp -R pjproject-2.6 /usr/local/
Once this is done you have to build/compile/install the pjproject and
./configure --prefix=/usr --enable-shared CFLAGS='-O2 -DNDEBUG' //Various options (enable/disable) can be put in here. Please refer to manual
make dep
make
make install
ldconfig
Verify that pjproject has been installed in the target location
ldconfig -p | grep pj
Once this has been done you can now go to you Asterisk folder and issue
./configure
and proceed with installation further :)
pjsip version not match.
Never tried 14*(it is not LTS), for 13.* such error mean you have more then one pjsip or pjsip is not 2.4.
Before rebuilding pjsip do check
yum remove -y pjsip
rm -f `find / -name *pjsip*`
If I'm not mistaken, Asterisk 13 source code came with a built-in pjproject, but 14 will look for an installed pjproject on the system.
Make sure you have it installed (including the -dev or -devel packages, which contains the headers), than try to reconfigure asterisk source.
./bootstrap.sh
./configure
make menuconfig

Properly Removing .deb Files

I installed LibreOffice on a server with a shell script using the following
sudo -S dpkg -r LibreOffice_5.1.1.3_Linux_x86-64_deb/DEBS/*.deb
Now I would like to change to a different version and am attempting to uninstall the previous version by using:
sudo -S dpkg -i LibreOffice_5.0.6.3_Linux_x86-64_deb/DEBS/*.deb
which yields the error
dpkg: error: you must specify packages by their own names, not by
quoting the names of the files they come in
After doing some research I found this thread and it seems I will need to call the dpkg with the name of the actual debian files, but doing dpkg -r libreoffice results in the error
dpkg: warning: ignoring request to remove libreoffice which isn't
installed
I have also tried using sudo apt-get remove libreoffice-core, which does not seem to be successful. Is there an automated way to remove all of the installed .deb files so that I can safely install the new version?
For reference the following files are shown in the DEBS folder
libobasis5.1-base_5.1.1.3-3_amd64.deb
libobasis5.1-filter-data_5.1.1.3-3_amd64.deb
libobasis5.1-xsltfilter_5.1.1.3-3_amd64.deb
libobasis5.1-calc_5.1.1.3-3_amd64.deb
libobasis5.1-gnome-integration_5.1.1.3-3_amd64.deb
libreoffice5.1_5.1.1.3-3_amd64.deb
libobasis5.1-core_5.1.1.3-3_amd64.deb
libobasis5.1-graphicfilter_5.1.1.3-3_amd64.deb
libreoffice5.1-base_5.1.1.3-3_amd64.deb
libobasis5.1-draw_5.1.1.3-3_amd64.deb
libobasis5.1-images_5.1.1.3-3_amd64.deb
libreoffice5.1-calc_5.1.1.3-3_amd64.deb
libobasis5.1-en-us_5.1.1.3-3_amd64.deb
libobasis5.1-impress_5.1.1.3-3_amd64.deb
libreoffice5.1-debian-menus_5.1.1-3_all.deb
libobasis5.1-en-us-base_5.1.1.3-3_amd64.deb
libobasis5.1-kde-integration_5.1.1.3-3_amd64.deb
libreoffice5.1-dict-en_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-calc_5.1.1.3-3_amd64.deb
libobasis5.1-librelogo_5.1.1.3-3_amd64.deb
libreoffice5.1-dict-es_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-math_5.1.1.3-3_amd64.deb
libobasis5.1-math_5.1.1.3-3_amd64.deb
libreoffice5.1-dict-fr_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-res_5.1.1.3-3_amd64.deb
libobasis5.1-ogltrans_5.1.1.3-3_amd64.deb
libreoffice5.1-draw_5.1.1.3-3_amd64.deb
libobasis5.1-en-us-writer_5.1.1.3-3_amd64.deb
libobasis5.1-onlineupdate_5.1.1.3-3_amd64.deb
libreoffice5.1-en-us_5.1.1.3-3_amd64.deb
libobasis5.1-extension-beanshell-script-provider_5.1.1.3-3_amd64.deb
libobasis5.1-ooofonts_5.1.1.3-3_amd64.deb
libreoffice5.1-impress_5.1.1.3-3_amd64.deb
libobasis5.1-extension-javascript-script-provider_5.1.1.3-3_amd64.deb
libobasis5.1-ooolinguistic_5.1.1.3-3_amd64.deb
libreoffice5.1-math_5.1.1.3-3_amd64.deb
libobasis5.1-extension-mediawiki-publisher_5.1.1.3-3_amd64.deb
libobasis5.1-postgresql-sdbc_5.1.1.3-3_amd64.deb
libreoffice5.1-ure_5.1.1.3-3_amd64.deb
libobasis5.1-extension-nlpsolver_5.1.1.3-3_amd64.deb
libobasis5.1-python-script-provider_5.1.1.3-3_amd64.deb
libreoffice5.1-writer_5.1.1.3-3_amd64.deb
libobasis5.1-extension-pdf-import_5.1.1.3-3_amd64.deb
libobasis5.1-pyuno_5.1.1.3-3_amd64.deb
libobasis5.1-extension-report-builder_5.1.1.3-3_amd64.deb
libobasis5.1-writer_5.1.1.3-3_amd64.deb
Use dpkg-query -l to get a list of installed packages. You can also search the list with dpkg-query -l 'libre*' for everything beginning with 'libre'.
You can then use the displayed package name to remove or purge them with dpkg.
Using dpkg --remove PackageNameHere will let configuration files untouched and delete only the binaries.
With dpkg --purge AgainYourPackageNameHere you would delete everything regarding the package.
we can also use dpkg-query - W to list the installed packages.
For example to search for installed sqlectron
$>dpkg-query -W 'sqlec**'
sqlectron 1.37.1
then you can delete the package using dpkg -r|--remove 'package-name' or dpkg -P|--purge 'package-name' command.

updating to svn 1.9.4 via command line in mac

I am using SVN against my will. The current team I work with uses it for version control and they are not always available to help me. I am just trying to go from SVN Version 1.8.13 to the latest 1.9.4
I have download it and I have ran this command too
curl -o subversion-latest.tar.gz http://apache.mirrors.tds.net/subversion/subversion-1.9.4.tar.gz
tar -xvf subversion-latest.tar.gz
I have combined these two different tutorials with no luck.
svn update version
stackover flow issue
I am STUCK at with the configure part..
mymac ~/Downloads/subversion-1.9.4/serf
$ ./configure
-bash: ./configure: No such file or directory
mymac ~/Downloads/subversion-1.9.4/serf
UPDATE
I exited out of serf path and on
`mymac ~/Downloads/subversion-1.9.4` file path i ran the `./configure` My command line ran a bunch of "checks"
configure: Configuring Subversion 1.9.4
configure: creating config.nice checking for gcc...
gcc checking whether the C compiler works...
yes but eventually shot an error at the end...
configure: error: failed to recognize APR_INT64_T_FMT on this platform
mymac ~/Downloads/subversion-1.9.4
I have the latest version of XCode..
UPDATE2 tried neon, again
mymac ~/Downloads/subversion-1.9.4
$ sh get-deps.sh neon
Local directory 'serf' already exists; the downloaded copy won't be used
Local directory 'apr' already exists; the downloaded copy won't be used
Local directory 'apr-util' already exists; the downloaded copy won't be used
get-deps.sh: line 151: get_neon: command not found
Usage: get-deps.sh
Usage: get-deps.sh [ apr | serf | zlib | sqlite | gmock ] ...
mymac ~/Downloads/subversion-1.9.4
$ cd neon
-bash: cd: neon: No such file or directory
UPDATE 3
ran this command first ..
mymac ~/Downloads/subversion-1.9.4
$ ./configure --prefix=/usr/local --with-serf=/usr/local/serf
configure: Configuring Subversion 1.9.4
configure: creating config.nice
checking for gcc... gcc
checking whether the C compiler works... yes
I guess I should install a new version of serf?
checking was serf enabled... no
An appropriate version of serf could not be found, so libsvn_ra_serf
will not be built. If you want to build libsvn_ra_serf, please
install serf 1.3.4 or newer.
configure: error: Serf was explicitly enabled but an appropriate version was not found.
I have no clue where to go from here and how to get around it. I already figure out that neon is no longer supported and I am using serf Can someone offer a different way to go about this? Please? Thanks!
Consider using Brew or MacPorts, if possible. Then this can be as simple as:
brew install svn
If you really must install from source,
it might not be as complicated as the steps you described so far.
Try these much simpler steps exactly:
cd /tmp
curl -o subversion-latest.tar.gz http://apache.mirrors.tds.net/subversion/subversion-1.9.4.tar.gz
tar -xvf subversion-latest.tar.gz
cd subversion-1.9.4
./configure --prefix=/tmp/local
make
make install
This will (hopefully) build Subversion and install it into /tmp/local. Test with this command:
/tmp/local/bin/svn --version
If the output looks good, then repeat from the start, but use a different value for --prefix, as appropriate in your environment.
(I tried, and this worked well for me, right now, btw.)
Maybe it's not so simple. In that case please update your question with the output where you get stuck.

Can not configure Mapnik due to icuuc

Trying to compile Mapnik on OSX 10.8
So after I clone the Github repo, I go to run the configure command like so:
./configure and then get the error:
Checking for C++ library icuuc... no
Could not find required header or shared library for icuuc
and later:
Exiting... the following required dependencies were not found:
- icuuc (ICU C++ library | configure with ICU_LIBS & ICU_INCLUDES or use ICU_LIB_NAME to specify custom lib name | more info: http://site.icu-project.org/)
Looking at the Mapnik troubleshooting area for a solution: https://github.com/mapnik/mapnik/wiki/InstallationTroubleshooting
Says: Solution: If g++ is available then ICU must be in a custom location so set the paths to the libs and includes - ie. ICU_LIBS=/usr/local/lib and ICU_INCLUDES=/usr/local/include.
By running g++ from command line I get: i686-apple-darwin11-llvm-g++-4.2: no input files
So this means that g++ is available, but I have no idea how to go about setting the paths so that configure can find them.
ICU Libraries were installed by default or with homebrew, not sure which.
terminal: brew install icu4c
Warning: icu4c-51.1 already installed
Finding the icu4c install directory:
terminal: mdfind icu4c
/usr/local/Cellar/icu4c
You can add the path of your ICU_LIB/INCLUDE to your configure command:
./configure ICU_INCLUDES=/usr/local/Cellar/icu4c/include ICU_LIBS=/usr/local/Cellar/icu4c/lib
And for more help about configure on what options are accepted do:
./configure --help
For the installation reference, you can check this:
https://github.com/mapnik/mapnik/blob/v2.2.0/INSTALL.md
As per our discussion and my last comment something like the following might work.
export ICU_LIBS=/usr/local/Cellar/icu4c/lib
export ICU_INCLUDES=/usr/local/Cellar/icu4c/include
./configure
If you find same errors:
Checking for C++ library XXX... no
Follow the command
sudo apt-get install g++ libXXX-dev
Using tips (TAB button), you can see what XXX libraries you have available
sudo apt-get install libXXX(press double TAB)

Resources