FluxBox Fluxbox build failing on FreeBSD 10.1

Hello,

I am building Fluxbox on FreeBSD and it's failing with error
Code:
/usr/include/c++/v1/functional:1026:13: no matching constructor for initialization of
binder2ndKstd::_1::equal_to<Winclient *> >'
Am I missing anything?
 
How are you building Fluxbox? Are you using ports or you just downloaded source code and trying to build it on your own. For starters FreeBSD uses BSD make. Fluxbox requires GNU configuration style and gmake. Above look like a compiler error though. Did you know that FreeBSD by default uses LLVM compiler (some people might refer to it by its front-end Clang). Many ports require GCC to compile. The version of GCC might also have to do something. Long story short porting software to FreeBSD is a serious thing. If the port fails to built the first thing is to contact port maintainer.
 
Thanks Oko. I am trying to build it using make. So, I need to install gcc/g++ for building. One thing I want to do is to modify FluxBox code. Can this be done using code downloaded via port?
 
Yes. In the port's directory /usr/ports/x11-wm/fluxbox, run make extract. This will give you the source code for you to modify.

Depending upon the modification you're making, you may find that said modification is already an option. Go into the port's directory and type make config to see available options.
 
Thanks Oko. I am trying to build it using make. So, I need to install gcc/g++ for building. One thing I want to do is to modify FluxBox code. Can this be done using code downloaded via port?

Do me a favor and post your success with Flux Box compilation for FreeBSD as I too wish to utilize it as a desktop. Don't forget to mark the thread solved notifying others that may benefit from your experience once you get everything up and rolling forward.
 
Do me a favor and post your success with Flux Box compilation for FreeBSD as I too wish to utilize it as a desktop. Don't forget to mark the thread solved notifying others that may benefit from your experience once you get everything up and rolling forward.
People it is in ports and there is a pre built package!
Code:
root@neill-backup:~ # uname -a
FreeBSD neill-backup.int.autonlab.org 10.1-RELEASE FreeBSD 10.1-RELEASE #0 r274401: Tue Nov 11 21:02:49 UTC 2014     root@releng1.nyi.freebsd.org:/usr/obj/usr/src/sys/GENERIC  amd64
root@neill-backup:~ # pkg install fluxbox
Updating FreeBSD repository catalogue...
Fetching meta.txz: 100%   940 B   0.9k/s    00:01 
Fetching packagesite.txz: 100%    5 MB   5.3M/s    00:01 
Processing entries: 100%
FreeBSD repository update completed. 23877 packages processed
New version of pkg detected; it needs to be installed first.
The following 1 packages will be affected (of 0 checked):

Installed packages to be UPGRADED:
        pkg: 1.4.1 -> 1.4.6

The operation will free 9 KB.
2 MB to be downloaded.

Proceed with this action? [y/N]: y
Fetching pkg-1.4.6.txz: 100%    2 MB   2.3M/s    00:01 
Checking integrity... done (0 conflicting)
[1/1] Upgrading pkg from 1.4.1 to 1.4.6...
[1/1] Extracting pkg-1.4.6: 100%
Message for pkg-1.4.6:
If you are upgrading from the old package format, first run:

  # pkg2ng
Updating FreeBSD repository catalogue...
FreeBSD repository is up-to-date.
All repositories are up-to-date.
The following 15 packages will be affected (of 0 checked):

New packages to be INSTALLED:
        fluxbox: 1.3.6
        xmessage: 1.0.4
        libXt: 1.1.4_2,1
        libSM: 1.2.2_2,1
        libICE: 1.0.9,1
        libXaw: 1.0.12_2,2
        printproto: 1.0.5
        libXpm: 3.5.11_2
        libXp: 1.0.2_2,1
        libXmu: 1.1.2_2,1
        libXrandr: 1.4.2_2
        randrproto: 1.4.0
        libXinerama: 1.1.3_2,1
        xineramaproto: 1.2.1
        fribidi: 0.19.2_2

The process will require 9 MB more space.
2 MB to be downloaded.

Proceed with this action? [y/N]: y
Fetching fluxbox-1.3.6.txz: 100%  707 KB 723.7k/s    00:01 
Fetching xmessage-1.0.4.txz: 100%   10 KB  10.0k/s    00:01 
Fetching libXt-1.1.4_2,1.txz: 100%  445 KB 456.0k/s    00:01 
Fetching libSM-1.2.2_2,1.txz: 100%   22 KB  22.4k/s    00:01 
Fetching libICE-1.0.9,1.txz: 100%   86 KB  88.0k/s    00:01 
Fetching libXaw-1.0.12_2,2.txz: 100%  445 KB 455.3k/s    00:01 
Fetching printproto-1.0.5.txz: 100%   14 KB  14.2k/s    00:01 
Fetching libXpm-3.5.11_2.txz: 100%   65 KB  66.2k/s    00:01 
Fetching libXp-1.0.2_2,1.txz: 100%   83 KB  85.2k/s    00:01 
Fetching libXmu-1.1.2_2,1.txz: 100%   94 KB  96.6k/s    00:01 
Fetching libXrandr-1.4.2_2.txz: 100%   28 KB  28.2k/s    00:01 
Fetching randrproto-1.4.0.txz: 100%   26 KB  26.2k/s    00:01 
Fetching libXinerama-1.1.3_2,1.txz: 100%   10 KB  10.1k/s    00:01 
Fetching xineramaproto-1.2.1.txz: 100%    2 KB   2.3k/s    00:01 
Fetching fribidi-0.19.2_2.txz: 100%   68 KB  69.8k/s    00:01 
Checking integrity... done (0 conflicting)
[1/15] Installing libICE-1.0.9,1...
[1/15] Extracting libICE-1.0.9,1: 100%
[2/15] Installing libSM-1.2.2_2,1...
[2/15] Extracting libSM-1.2.2_2,1: 100%
[3/15] Installing libXt-1.1.4_2,1...
[3/15] Extracting libXt-1.1.4_2,1: 100%
[4/15] Installing printproto-1.0.5...
[4/15] Extracting printproto-1.0.5: 100%
[5/15] Installing libXpm-3.5.11_2...
[5/15] Extracting libXpm-3.5.11_2: 100%
[6/15] Installing libXp-1.0.2_2,1...
[6/15] Extracting libXp-1.0.2_2,1: 100%
[7/15] Installing libXmu-1.1.2_2,1...
[7/15] Extracting libXmu-1.1.2_2,1: 100%
[8/15] Installing libXaw-1.0.12_2,2...
[8/15] Extracting libXaw-1.0.12_2,2: 100%
[9/15] Installing randrproto-1.4.0...
[9/15] Extracting randrproto-1.4.0: 100%
[10/15] Installing xineramaproto-1.2.1...
[10/15] Extracting xineramaproto-1.2.1: 100%
[11/15] Installing xmessage-1.0.4...
[11/15] Extracting xmessage-1.0.4: 100%
[12/15] Installing libXrandr-1.4.2_2...
[12/15] Extracting libXrandr-1.4.2_2: 100%
[13/15] Installing libXinerama-1.1.3_2,1...
[13/15] Extracting libXinerama-1.1.3_2,1: 100%
[14/15] Installing fribidi-0.19.2_2...
[14/15] Extracting fribidi-0.19.2_2: 100%
[15/15] Installing fluxbox-1.3.6...
[15/15] Extracting fluxbox-1.3.6: 100%


FreeBSD is not Slackware where you download random shit from the Internet and compile it using
Code:
./config
make
make install
 
FreeBSD is not Slackware where you download random shit from the Internet and compile it using

Oko, are you familiar with the SlackBuilds.org? Most of the download links are to the original source code and are the same links that FreeBSD ports uses. In my opinion, it is a great way to learn building binary packages as it steps you through the process.
 
I went ahead and thanked you, but I was interested in learning about the direction and possibly objectives behind Prabhakar's decision to compile from source; am aware of and use the ports and packages repo with pkgng. Do agree with the fact that random source downloads and compiling is stressful, counter productive most times and ludicrous when stable resources are available.

Generally, I was curious as to whether Prabhakar was looking into converting Flux box to native clang source without assuming or influencing his motivations.
 
Oko, are you familiar with the SlackBuilds.org? Most of the download links are to the original source code and are the same links that FreeBSD ports uses. In my opinion, it is a great way to learn building binary packages as it steps you through the process.

I have heard of it. I use Linux only when I am paid to do so and it is usually Red Hat. Build process on Slackware is irrelevant for building packages on BSDs. For starters even make on Linux is actually GNU make gmake not one of BSD makes (OpenBSD and NetBSD have its own make while I think FreeBSD switched to NetBSD bmake but I am not 100% sure). FreeBSD has a porters handbook for people who are interested in learning how to port software to

https://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/

Very rewarding reading :)
 
Generally, I was curious as to whether Prabhakar was looking into converting Flux box to native clang source without assuming or influencing his motivations

Likely it is because there were problems using the upstream code in the BSD's. If you need fluxbox right away you are probably going to have to patch 1.3.6 yourself or use 1.3.5 and see if the FreeBSD port maintainer patches the build or waits for 1.3.7
 
Likely it is because there were problems using the upstream code in the BSD's. If you need fluxbox right away you are probably going to have to patch 1.3.6 yourself or use 1.3.5 and see if the FreeBSD port maintainer patches the build or waits for 1.3.7

The easiest way of doing this would still be to modify the existing port. Just change the parts that are relevant to the version, and then check if it builds. Usually changing a port from one minor version to the next isn't a huge work, in any case it is much less error prone than trying to compile from source using GNU/Linux instructions. Then send of the changes to the maintainer, and voila - everybody profits
 
I didn't see any build issues with Fluxbox 1.3.6 when I applied the fix in PR 197150. In hindsight I built on 8.4-RELEASE, 9.3-RELEASE, and 10.1-RELEASE but not 10.0-RELEASE which is still as supported release.

I've just submitted PR 197693 to update the x11-wm/fluxbox port to Fluxbox 1.3.7. It will be some time before the official package gets updated. Anybody interested in getting the 1.3.7 in advance or just interested in helping out by checking that there are no issues can do the following. I've build tested on 8.4-RELEASE, 9.3-RELEASE, 10.0-RELEASE, and 10.1-RELEASE on amd64 and i386 and tested at runtime on 10.1-RELEASE.

cp -r /usr/ports/x11-wm/fluxbox /root/fluxbox
fetch -o fluxbox-1.3.7.diff 'https://bz-attachments.freebsd.org/attachment.cgi?id=153019'
patch < fluxbox-1.3.7.diff
make install
 
Also you had problems in the configuration of fluxfox, this desktop, someone configure this desktop? It is very cute the desktop fluxbox.
 
Back
Top