3 ms·
It works on other platforms because it's open source? Isn't that a bit of an overstatement? For the fun of it, I just downloaded this and tried to compile on my
by nuxi 16y ago
It works on other platforms because it's open source? Isn't that a bit of an overstatement? For the fun of it, I just downloaded this and tried to compile on my Linux box:
~/tmp/tmp# uname -a
Linux susie 2.6.27.39-0.2-default #1 SMP 2009-11-23 12:57:38 +0100 x86_64 x86_64 x86_64 GNU/Linux
~/tmp/tmp# cat /etc/SuSE-release
openSUSE 11.1 (x86_64)
VERSION = 11.1
~/tmp/tmp# wget http://launchpad.net/redshift/trunk/1.4.1/+download/redshift-1.4.1.tar.bz2
~/tmp/tmp# tar xf redshift-1.4.1.tar.bz2
~/tmp/tmp# cd redshift-1.4.1/
~/tmp/tmp/redshift-1.4.1# ./configure
[...]
redshift 1.4.1
prefix: /usr/local
compiler: gcc -std=gnu99
cflags: -g -O2
ldflags:
Adjustment methods:
RANDR: yes
VidMode: yes
WinGDI: no
Location providers:
GNOME Clock: no
GUI: statusicon
~/tmp/tmp/redshift-1.4.1# make
~/tmp/tmp/redshift-1.4.1# make
make all-recursive
make[1]: Entering directory `/root/tmp/tmp/redshift-1.4.1'
Making all in src
make[2]: Entering directory `/root/tmp/tmp/redshift-1.4.1/src'
Making all in gtk-redshift
make[3]: Entering directory `/root/tmp/tmp/redshift-1.4.1/src/gtk-redshift'
sed -e "s|\@gui_module\@|statusicon|g" gtk-redshift.in > gtk-redshift
make[3]: Leaving directory `/root/tmp/tmp/redshift-1.4.1/src/gtk-redshift'
make[3]: Entering directory `/root/tmp/tmp/redshift-1.4.1/src'
CC redshift.o
In file included from redshift.c:60:
gamma-randr.h:33: error: expected specifier-qualifier-list before xcb_randr_crtc_t
make[3]: *** [redshift.o] Error 1
make[3]: Leaving directory `/root/tmp/tmp/redshift-1.4.1/src'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/root/tmp/tmp/redshift-1.4.1/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/root/tmp/tmp/redshift-1.4.1'
make: *** [all] Error 2
This is Linux mind you, not some AIX box on which it will never compile, even though it has X11 installed. (And yes, I know I can disable RANDR in the above case and it will compile, that's beside the point)
- nuclear_eclipse 16y agoThe point is not that it works out of the box on all platforms, but that if it doesn't work on your platform, you have the source code available, so you can make it work on your platform by changing the software. You can't do that with closed-source binaries.
- nuxi 16y agoWith that I can mostly agree (but the comment implied otherwise). But - and this is sometimes a huge but - open source software (OSS) is more and more dependant on other OSS, making it sometimes next to impossible to port it to other platforms. Try building VLC from scratch and you'll see what I mean (you can use Linux). Furthermore, API changes are quite common for OSS even in minor version updates and that creates an additional mess (dependency hell), as was clearly demonstrated in my example above. It's not all black and white.
- there 16y agothis discussion is completely pointless, but yes, it can work on other platforms because it's open source. i was able to compile it just fine on my openbsd laptop.
- nuxi 16y agoThere's a huge difference between "thus works on other platforms" and "it can work on other platforms".