Difference between revisions of "Fink:Policy:system-openssl"

From the Fink Wiki
Jump to: navigation, search
(fixed package)
(0.39.2 has been released)
Line 72: Line 72:
 
== Deprecation of system-openssl-dev ==
 
== Deprecation of system-openssl-dev ==
   
OS X 10.11 has deprecated the use of a system provided OpenSSL library. While <code>/usr/lib/libcrypto.0.9.8.dylibs</code> and <code>/usr/lib/libssl.0.9.8.dylib</code> were not removed, Apple removed the OpenSSL headers in <code>/usr/include/openssl</code> and other compile-time files. Therefore, it is no longer possible to compile programs that use the system OpenSSL on OS X 10.11. As a result, the <code>system-openssl-dev</code> package is marked as available only on 10.10 and earlier. In order to accommodate this change, packages will need to transition to use Fink's OpenSSL (<code>openssl100-dev</code>/<code>openssl100-shlibs</code> as of Oct 2015) or some other SSL provider (such as GnuTLS via Fink's <code>gnutls28</code>/<code>gnutls28-shlibs</code>). Because binaries of (L)GPL packages that link to OpenSSL cannot be distributed for licensing reasons, a new value for the <code>License:</code> field has been [https://github.com/fink/fink/pull/126 proposed]. This field will allow maintainers to mark their package with the original license, but also note that it links to OpenSSL and therefore keep it out of the binary distribution.
+
OS X 10.11 has deprecated the use of a system provided OpenSSL library. While <code>/usr/lib/libcrypto.0.9.8.dylibs</code> and <code>/usr/lib/libssl.0.9.8.dylib</code> were not removed, Apple removed the OpenSSL headers in <code>/usr/include/openssl</code> and other compile-time files. Therefore, it is no longer possible to compile programs that use the system OpenSSL on OS X 10.11. As a result, the <code>system-openssl-dev</code> package is marked as available only on 10.10 and earlier. In order to accommodate this change, packages will need to transition to use Fink's OpenSSL (<code>openssl100-dev</code>/<code>openssl100-shlibs</code> as of Oct 2015) or some other SSL provider (such as GnuTLS via Fink's <code>gnutls28</code>/<code>gnutls28-shlibs</code>). Because binaries of (L)GPL packages that link to OpenSSL cannot be distributed for licensing reasons, a new value for the <code>License:</code> field has been [https://github.com/fink/fink/pull/126 created]. (L)GPL packages can now be marked (as of Fink-0.39.2) as either <code>GPL/OpenSSL</code> or <code> LGPL/OpenSSL</code> so that the original license information is kept, but also note that it links to OpenSSL and therefore keep it out of the binary distribution.
   
 
The following table is a list of packages as of October 13, 2015 that use <code>system-openssl-dev</code> and need to be updated.
 
The following table is a list of packages as of October 13, 2015 that use <code>system-openssl-dev</code> and need to be updated.

Revision as of 20:40, 31 October 2015


Linking Against the System OpenSSL

There is a package in Fink called system-openssl-dev that exists to make it easier to link software against Apple's provided OpenSSL (why?). It creates symlinks in prefix/lib/system-openssl that you can use to override the flags of existing software.

In some cases, you will have to patch your package to point to the system-openssl directory, but most likely, all you will have to do to use system-openssl-dev is to set one or more of the following:

 CPPFLAGS:        -I%p/lib/system-openssl/include
 CFLAGS:          -I%p/lib/system-openssl/include
 CXXFLAGS:        -I%p/lib/system-openssl/include
 
 LDFLAGS:         -L%p/lib/system-openssl/lib
 LIBS:            -L%p/lib/system-openssl/lib
 
 PKG_CONFIG_PATH: %p/lib/system-openssl/lib/pkgconfig

Creating Upgrade Packages

Since the goal is to create packages using OpenSSL that don't have to be in the crypto/ tree, you will probably want to make upgrade packages for the old versions of your SSL packages. If you have a set of packages such as foo and foo-ssl both of which have splitoffs, you will have conflict/upgrade issues if you just make a new foo-ssl dummy package that depends on foo. Instead, the recommended practice is to create a foo-unified package.

Example: Before Unification

foo.info:

 Package: foo
 Depends: %N-shlibs
 Conflicts: foo-ssl
 SplitOff: <<
   Package: %N-shlibs
   Conflicts: foo-ssl-shlibs
 <<

foo-ssl.info:

 Package: foo-ssl
 Depends: %N-shlibs
 Conflicts: foo
 SplitOff: <<
   Package: %N-shlibs
   Conflicts: foo-shlibs
 <<

Example: After Unification

foo-unified.info:

 Package: foo-unified
 Depends: %N-shlibs
 Replaces: foo (<< %v-%r), foo-ssl (<< %v-%r)
 SplitOff: <<
   Package: %N-shlibs
   Replaces: foo-shlibs (<< %v-%r), foo-ssl (<< %v-%r)
 <<
 SplitOff2: <<
   Package: foo
   Depends: %N (= %v-%r)
 <<
 SplitOff3: <<
   Package: foo-shlibs
   Depends: %N-shlibs (= %v-%r)
 <<
 SplitOff4: <<
   Package: foo-ssl
   Depends: %N (= %v-%r)
 <<
 SplitOff5: <<
   Package: foo-ssl-shlibs
   Depends: %N-shlibs (= %v-%r)
 <<

Deprecation of system-openssl-dev

OS X 10.11 has deprecated the use of a system provided OpenSSL library. While /usr/lib/libcrypto.0.9.8.dylibs and /usr/lib/libssl.0.9.8.dylib were not removed, Apple removed the OpenSSL headers in /usr/include/openssl and other compile-time files. Therefore, it is no longer possible to compile programs that use the system OpenSSL on OS X 10.11. As a result, the system-openssl-dev package is marked as available only on 10.10 and earlier. In order to accommodate this change, packages will need to transition to use Fink's OpenSSL (openssl100-dev/openssl100-shlibs as of Oct 2015) or some other SSL provider (such as GnuTLS via Fink's gnutls28/gnutls28-shlibs). Because binaries of (L)GPL packages that link to OpenSSL cannot be distributed for licensing reasons, a new value for the License: field has been created. (L)GPL packages can now be marked (as of Fink-0.39.2) as either GPL/OpenSSL or LGPL/OpenSSL so that the original license information is kept, but also note that it links to OpenSSL and therefore keep it out of the binary distribution.

The following table is a list of packages as of October 13, 2015 that use system-openssl-dev and need to be updated.

Package License Maintainer
akonadi-mac LGPL Hanspeter Niederstrasser
ark4-mac GPL Hanspeter Niederstrasser
arora GPL Jack Fink
arora-mac GPL Jack Fink
baloo-mac GPL Hanspeter Niederstrasser
baz LGPL None
blinken4-mac GPL Hanspeter Niederstrasser
bomber4-mac GPL/LGPL Hanspeter Niederstrasser
bovo4-mac GPL/LGPL Hanspeter Niederstrasser
cantor4-mac GPL Hanspeter Niederstrasser
cervisia4-mac GPL/LGPL Hanspeter Niederstrasser
claws-mail GPL Hanspeter Niederstrasser
crypt-openssl-bignum-pm* GPL Keith Ward
crypt-openssl-random-pm* GPL Keith Ward
crypt-openssl-rsa-pm* GPL Keith Ward
crypt-ssleay-pm* Artistic Daniel Macks
cyrus-sasl2 OSI-Approved Daniel Johnson
dragonplayer4-mac GPL Hanspeter Niederstrasser
elinks GPL Daniel Macks
ffmpegthumbs4-mac GPL Hanspeter Niederstrasser
filelight-kde4-mac GPL Hanspeter Niederstrasser
fossil BSD Daniel Johnson
fraqtive GPL Jack Fink
gconf2 GPL/LGPL The Gnome Core Team
gnome-vfs2-unified GPL/LGPL The Gnome Core Team
gnucash2 GPL Dave Reiser
gnupg-unified GPL Benjamin Reed
gnupg2 GPL Brendan Cully
granatier4-mac GPL/LGPL Hanspeter Niederstrasser
gst-plugins-bad-0.10 Restrictive Benjamin Reed
gwenhywfar60 LGPL Dave Reiser
gwenview4-mac GPL Hanspeter Niederstrasser
irsii GPL Daniel Macks
isync GPL Brendan Cully
jpilot GPL Alexander Hansen
juk4-mac GPL Hanspeter Niederstrasser
kactivities6-mac-shlibs GPL/LGPL Hanspeter Niederstrasser
kalgebra4-mac GPL Hanspeter Niederstrasser
kalzium4-mac GPL Hanspeter Niederstrasser
kamera4-mac GPL Hanspeter Niederstrasser
kanagram4-mac GPL Hanspeter Niederstrasser
kapman4-mac GPL/LGPL Hanspeter Niederstrasser
kapptemplate4-mac GPL/LGPL Hanspeter Niederstrasser
kate4-mac LGPL Hanspeter Niederstrasser
katomic4-mac GPL/LGPL Hanspeter Niederstrasser
kbackup-kde4-mac GPL Jack Fink
kblackbox4-mac GPL/LGPL Hanspeter Niederstrasser
kblocks4-mac GPL/LGPL Hanspeter Niederstrasser
kbounce4-mac GPL/LGPL Hanspeter Niederstrasser
kbreakout4-mac GPL/LGPL Hanspeter Niederstrasser
kbruch4-mac GPL Hanspeter Niederstrasser
kcachegrind4-mac GPL/LGPL Hanspeter Niederstrasser
kcalc4-mac GPL Hanspeter Niederstrasser
kcharselect4-mac GPL Hanspeter Niederstrasser
kcolorchooser4-mac BSD Hanspeter Niederstrasser
kcron4-mac GPL Hanspeter Niederstrasser
kdeartwork4-mac GPL/LGPL Hanspeter Niederstrasser
kdebase4-mac GPL/LGPL Hanspeter Niederstrasser
kdebase4-runtime-mac GPL/LGPL Hanspeter Niederstrasser
kdegraphics4-mac-mobipocket GPL/LGPL Hanspeter Niederstrasser
kdegraphics4-mac-strigi-analyzer GPL/LGPL Hanspeter Niederstrasser
kdegraphics4-mac-thumbnailers GPL Hanspeter Niederstrasser
kdelibs4-mac GPL/LGPL Hanspeter Niederstrasser
kdenetwork4-mac-filesharing GPL Hanspeter Niederstrasser
kdenetwork4-mac-strigi-analyzers GPL/LGPL Hanspeter Niederstrasser
kdepim4-mac GPL/LGPL Hanspeter Niederstrasser
kdepim4-runtime-mac GPL/LGPL Hanspeter Niederstrasser
kdepimlibs4-mac GPL/LGPL Hanspeter Niederstrasser
kdesdk4-mac-dev-utils LGPL Hanspeter Niederstrasser
kdesdk4-mac-dolphin-plugins GPL Hanspeter Niederstrasser
kdesdk4-mac-kioslaves GPL Hanspeter Niederstrasser
kdesdk4-mac-scripts GPL/LGPL Hanspeter Niederstrasser
kdesdk4-mac-strigi-analyzers GPL/LGPL Hanspeter Niederstrasser
kdesdk4-mac-thumbnailers GPL Hanspeter Niederstrasser
kdewebdev4-mac GPL/LGPL Hanspeter Niederstrasser
kdiamond4-mac GPL/LGPL Hanspeter Niederstrasser
kdiskfree4-mac GPL Hanspeter Niederstrasser
kdnssd4-mac GPL/LGPL Hanspeter Niederstrasser
kfloppy4-mac GPL Hanspeter Niederstrasser
kfourinline4-mac GPL/LGPL Hanspeter Niederstrasser
kgeography4-mac GPL Hanspeter Niederstrasser
kget4-mac GPL/LGPL Hanspeter Niederstrasser
kgoldrunner4-mac GPL/LGPL Hanspeter Niederstrasser
kgpg4-mac GPL Hanspeter Niederstrasser
khangman4-mac GPL Hanspeter Niederstrasser
kig4-mac GPL Hanspeter Niederstrasser
kigo4-mac GPL/LGPL Hanspeter Niederstrasser
kile-kde4-mac GPL Jack Fink
killbots4-mac GPL/LGPL Hanspeter Niederstrasser
kiriki4-mac GPL/LGPL Hanspeter Niederstrasser
kiten4-mac GPL/LGPL Hanspeter Niederstrasser
kjumpingcube4-mac GPL/LGPL Hanspeter Niederstrasser
kletters4-mac GPL/LGPL Hanspeter Niederstrasser
klickety4-mac GPL/LGPL Hanspeter Niederstrasser
klines4-mac GPL/LGPL Hanspeter Niederstrasser
kmag4-mac GPL Hanspeter Niederstrasser
kmahjongg4-mac GPL/LGPL Hanspeter Niederstrasser
kmines4-mac GPL/LGPL Hanspeter Niederstrasser
kmix4-mac GPL Hanspeter Niederstrasser
kmouth4-mac GPL Hanspeter Niederstrasser
kmplot4-mac GPL Hanspeter Niederstrasser
knavalbattle4-mac GPL/LGPL Hanspeter Niederstrasser
knetwalk4-mac GPL/LGPL Hanspeter Niederstrasser
kolf4-mac GPL/LGPL Hanspeter Niederstrasser
kollision4-mac GPL/LGPL Hanspeter Niederstrasser
kolourpaint4-mac LGPL Hanspeter Niederstrasser
kompare4-mac GPL/LGPL Hanspeter Niederstrasser
konquest4-mac GPL/LGPL Hanspeter Niederstrasser
konsole4-mac GPL Hanspeter Niederstrasser
kopete4-mac GPL/LGPL Hanspeter Niederstrasser
kpat4-mac GPL/LGPL Hanspeter Niederstrasser
kqtquickcharts4-mac GPL Hanspeter Niederstrasser
kreversi4-mac GPL/LGPL Hanspeter Niederstrasser
kruler4-mac GPL Hanspeter Niederstrasser
ksaneplugin4-mac GPL Hanspeter Niederstrasser
kscd4-mac GPL Hanspeter Niederstrasser
kshisen4-mac GPL/LGPL Hanspeter Niederstrasser
ksirk4-mac GPL/LGPL Hanspeter Niederstrasser
ksnakeduel4-mac GPL/LGPL Hanspeter Niederstrasser
kspaceduel4-mac GPL/LGPL Hanspeter Niederstrasser
ksquares4-mac GPL/LGPL Hanspeter Niederstrasser
kstars4-mac GPL Hanspeter Niederstrasser
ksudoku4-mac GPL/LGPL Hanspeter Niederstrasser
ksystemlog4-mac GPL Hanspeter Niederstrasser
kteatime4-mac GPL Hanspeter Niederstrasser
ktimer4-mac GPL Hanspeter Niederstrasser
ktouch4-mac GPL Hanspeter Niederstrasser
ktuberling4-mac GPL/LGPL Hanspeter Niederstrasser
kturtle4-mac GPL Hanspeter Niederstrasser
kubrick4-mac GPL/LGPL Hanspeter Niederstrasser
kuser4-mac GPL Hanspeter Niederstrasser
kwalletmanager4-mac GPL Hanspeter Niederstrasser
kwordquiz4-mac GPL Hanspeter Niederstrasser
libanalitza5-mac-shlibs GPL Hanspeter Niederstrasser
libarchive BSD AIDA Shinra
libarchive31 BSD AIDA Shinra
libbaloowidgets4-mac-shlibs GPL Hanspeter Niederstrasser
libdbusmenu-qt5.2 LGPL Hanspeter Niederstrasser
libimobiledevice LGPL Karl-Michael Schindler
libircclient GPL2 None
libkcddb4-mac-shlibs BSD Hanspeter Niederstrasser
libkcompactdisc4-mac-shlibs BSD Hanspeter Niederstrasser
libkdcraw23-mac-shlibs GPL/LGPL Hanspeter Niederstrasser
libkdeedu-mac-data GPL/LGPL Hanspeter Niederstrasser
libkdeedu4-mac-shlibs GPL/LGPL Hanspeter Niederstrasser
libkdegames6-mac-shlibs GPL/LGPL Hanspeter Niederstrasser
libkexiv2.11-mac-shlibs GPL/LGPL Hanspeter Niederstrasser
libkf5html5-shlibs GPL Hanspeter Niederstrasser
libkf5kdelibs4support5 GPL Hanspeter Niederstrasser
libkface3-mac-shlibs GPL Hanspeter Niederstrasser
libkfbapi1-mac-shlibs LGPL Hanspeter Niederstrasser
libkfilemetadata4-mac-shlibs LGPL Hanspeter Niederstrasser
libkgapi2.2-mac-shlibs GPL Hanspeter Niederstrasser
libkipi11-mac-shlibs BSD Hanspeter Niederstrasser
libkmahjongglib4-mac-shlibs BSD Hanspeter Niederstrasser
libkomparediff2.4-mac-shlibs GPL Hanspeter Niederstrasser
libksane0-mac-shlibs GPL/LGPL Hanspeter Niederstrasser
libktorrent5-mac-shlibs GPL Hanspeter Niederstrasser
libmeanwhile LGPL None
libmsn-0.3 GPL None
libofx4 GPL Dave Reiser
libofx5 GPL Dave Reiser
libprison0-shlibs BSD Hanspeter Niederstrasser
libraptor1-shlibs GPL/LGPL Benjamin Reed
libraptor2-shlibs GPL/LGPL David Fang
librasqal3-shlibs GPL/LGPL Benjamin Reed
libserf0 BSD Daniel Johnson
libtorrent15 GPL David Fang
libtorrent19 GPL David Fang
linuxdcpp GPL Hanspeter Niederstrasser
lokalize4-mac GPL Hanspeter Niederstrasser
lskat4-mac GPL/LGPL Hanspeter Niederstrasser
lynx GPL elcepi
lynx-cur GPL elcepi
m2crypto-py* BSD Brendan Cully
marble4-mac GPL Hanspeter Niederstrasser
mp3diags-* GPL2 Daniel Johnson
mplayerthumbs4-mac GPL Hanspeter Niederstrasser
mupdf GPL Stefan Bruda
mutt GPL Brendan Cully
mysql-python-py* GPL Beat Birkhofer
nepomuk-core GPL/LGPL Hanspeter Niederstrasser
nepomuk-widgets LGPL Hanspeter Niederstrasser
nginx BSD Andreas Gockel
nginx-cur BSD Andreas Gockel
nut GPL Charles Lepple
okteta4-mac GPL Hanspeter Niederstrasser
okular4-mac GPL/LGPL Hanspeter Niederstrasser
openvpn GPL Andreas Gockel
oxygen-icons GPL/LGPL Hanspeter Niederstrasser
oxygen-icons-mac GPL/LGPL Hanspeter Niederstrasser
pairs4-mac GPL Hanspeter Niederstrasser
palapeli4-mac GPL Hanspeter Niederstrasser
parley4-mac GPL Hanspeter Niederstrasser
phonon-*-backend-gstreamer LGPL Benjamin Reed
phonon-*-backend-xine LGPL Benjamin Reed
picmi4-mac GPL/LGPL Hanspeter Niederstrasser
postfix* OSI-Approved Daniel Johnson
poxml4-mac GPL Hanspeter Niederstrasser
python-ldap-py27 OSI-Approved Charles Lepple
qca2-* LGPL Benjamin Reed
qgpgme-mac GPL/LGPL Benjamin Reed
qtassistant-compat-mac GPL/LGPL Benjamin Reed
qtiplot-qt4-* GPL Alexandre Vial
qwt-qt4-* LGPL Alexandre Vial
qwt6-qt4-* LGPL Daniel Macks
redland-shlibs GPL/LGPL Benjamin Reed
rocs4-mac GPL/LGPL Hanspeter Niederstrasser
root5* LGPL Remi Mommsen
slrn GPL Daniel Macks
socat GPL Andreas Gockel
socnetv-mac GPL Jack Fink
soprano-* GPL/LGPL Benjamin Reed
step4-mac GPL Hanspeter Niederstrasser
svgpart4-mac GPL Hanspeter Niederstrasser
sweeper4-mac GPL Hanspeter Niederstrasser
swi-prolog LGPL Jesse Alama
sylpheed GPL Kevin Horton
tcpflow GPL Nick Siripipat
tinc GPL Jack Fink
umbrello4-mac GPL/LGPL Hanspeter Niederstrasser
valkyrie* GPL2+ Daniel Johnson
vorbis-tools GPL Max Horn
xchat GPL Max Horn
xsane GPL None
xxdiff-mac/x11 GPL Daniel Macks