diff mbox

[v3,1/2] package/physfs: new package

Message ID 20170301225611.11494-1-romain.naour@gmail.com
State Changes Requested
Headers show

Commit Message

Romain Naour March 1, 2017, 10:56 p.m. UTC
Backport a patch from SuperTux project:
https://github.com/SuperTux/physfs/commit/61d3b63abcba8e9615dcb8a3d1fc026bf7f8d5f8

Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
 DEVELOPERS                                         |  1 +
 package/Config.in                                  |  1 +
 .../physfs/0001-Fix-builds-with-modern-GCC.patch   | 38 ++++++++++++++++++++++
 package/physfs/Config.in                           | 10 ++++++
 package/physfs/physfs.mk                           | 27 +++++++++++++++
 5 files changed, 77 insertions(+)
 create mode 100644 package/physfs/0001-Fix-builds-with-modern-GCC.patch
 create mode 100644 package/physfs/Config.in
 create mode 100644 package/physfs/physfs.mk

Comments

Romain Naour March 5, 2017, 3:52 p.m. UTC | #1
Le 01/03/2017 à 23:56, Romain Naour a écrit :
> Backport a patch from SuperTux project:
> https://github.com/SuperTux/physfs/commit/61d3b63abcba8e9615dcb8a3d1fc026bf7f8d5f8
> 
> Signed-off-by: Romain Naour <romain.naour@gmail.com>
> ---

[...]

> @@ -0,0 +1,27 @@
> +################################################################################
> +#
> +# physfs
> +#
> +################################################################################
> +
> +PHYSFS_VERSION = be27dfd07d97336145e7f49d3fd200a6e902f85e
> +PHYSFS_SITE = https://hg.icculus.org/icculus/physfs
> +PHYSFS_SITE_METHOD = hg

I forgot to squash licenses information... sorry.
It should be:

PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1+ (lzma)
PHYSFS_LICENSE_FILES = LICENSE.txt src/lzma/LGPL.txt

Best regards,
Romain

> +
> +PHYSFS_INSTALL_STAGING = YES
> +
> +PHYSFS_CONF_OPTS = -DPHYSFS_BUILD_TEST=OFF
> +
> +ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
> +PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_SHARED=ON
> +else
> +PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_SHARED=OFF
> +endif
> +
> +ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
> +PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_STATIC=ON
> +else
> +PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_STATIC=OFF
> +endif
> +
> +$(eval $(cmake-package))
>
Thomas Petazzoni March 5, 2017, 8:51 p.m. UTC | #2
Hello,

On Sun, 5 Mar 2017 16:52:48 +0100, Romain Naour wrote:

> PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1+ (lzma)

This is not completely correct. Read src/lzma/lzma.txt for details (and
include it in the license files). The lzma SDK is available under the
following licenses:

1) GNU Lesser General Public License (GNU LGPL)
2) Common Public License (CPL)
3) Simplified license for unmodified code (read SPECIAL EXCEPTION) 
4) Proprietary license 

So perhaps:

zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)

 ?

Could you respin after double checking this?

Thanks,

Thomas
Romain Naour March 5, 2017, 9:14 p.m. UTC | #3
Hi Thomas,

Le 05/03/2017 à 21:51, Thomas Petazzoni a écrit :
> Hello,
> 
> On Sun, 5 Mar 2017 16:52:48 +0100, Romain Naour wrote:
> 
>> PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1+ (lzma)
> 
> This is not completely correct. Read src/lzma/lzma.txt for details (and
> include it in the license files). The lzma SDK is available under the
> following licenses:
> 
> 1) GNU Lesser General Public License (GNU LGPL)
> 2) Common Public License (CPL)
> 3) Simplified license for unmodified code (read SPECIAL EXCEPTION) 
> 4) Proprietary license 
> 
> So perhaps:
> 
> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
> 
>  ?

It seems some files are under public domain when the special license is used.

SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
you to use code of the following files:
BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
LzmaAlone.cs, LzmaAlone.java
as public domain code.

Maybe "special license" is enough ?

Best regards,
Romain

> 
> Could you respin after double checking this?
> 
> Thanks,
> 
> Thomas
>
Thomas Petazzoni March 5, 2017, 9:37 p.m. UTC | #4
Hello,

On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
> > zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
> > 
> >  ?  
> 
> It seems some files are under public domain when the special license is used.
> 
> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
> you to use code of the following files:
> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
> LzmaAlone.cs, LzmaAlone.java
> as public domain code.
> 
> Maybe "special license" is enough ?

My understanding of lzma.txt is that you really have the choice between
those different licensing options, so I believe encoding all of them in
<pkg>_LICENSE is probably better.

Cc'ing Arnout and Yann to get their insight.

Thomas
Arnout Vandecappelle March 5, 2017, 10:06 p.m. UTC | #5
On 05-03-17 22:37, Thomas Petazzoni wrote:
> Hello,
> 
> On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
>>> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
>>>
>>>  ?  
>>
>> It seems some files are under public domain when the special license is used.
>>
>> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
>> you to use code of the following files:
>> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
>> LzmaAlone.cs, LzmaAlone.java
>> as public domain code.
>>
>> Maybe "special license" is enough ?
> 
> My understanding of lzma.txt is that you really have the choice between
> those different licensing options, so I believe encoding all of them in
> <pkg>_LICENSE is probably better.
> 
> Cc'ing Arnout and Yann to get their insight.

 I was just about to reply :-)

 First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
mentioned in src/lzma/LGPL.txt).

 I think the special cases are not interesting enough to warrant mentioning - we
should consider the LICENSE as a strong hint, not as a definitive assertion (it
is not entirely accurate in most packages). In addition, the CPL.html file which
is supposed to be there, is missing. The top-level README also says "It uses the
LGPL license, with exceptions for closed-source programs." This leads me to
conclude that the physfs authors, when redistributint lzma, have decided to do
so under LGPL and to drop the other license options.

 So I'd say:

PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1 with exceptions (lzma)
PHYSFS_LICENSE_FILES = LICENSE.txt src/lzma/lzma.txt src/lzma/LGPL.txt


 Regards,
 Arnout
Romain Naour March 5, 2017, 10:13 p.m. UTC | #6
Hi Arnout, all,

Le 05/03/2017 à 23:06, Arnout Vandecappelle a écrit :
> 
> 
> On 05-03-17 22:37, Thomas Petazzoni wrote:
>> Hello,
>>
>> On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
>>>> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
>>>>
>>>>  ?  
>>>
>>> It seems some files are under public domain when the special license is used.
>>>
>>> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
>>> you to use code of the following files:
>>> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
>>> LzmaAlone.cs, LzmaAlone.java
>>> as public domain code.
>>>
>>> Maybe "special license" is enough ?
>>
>> My understanding of lzma.txt is that you really have the choice between
>> those different licensing options, so I believe encoding all of them in
>> <pkg>_LICENSE is probably better.
>>
>> Cc'ing Arnout and Yann to get their insight.
> 
>  I was just about to reply :-)
> 
>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
> mentioned in src/lzma/LGPL.txt).

Try with "any later version"

> 
>  I think the special cases are not interesting enough to warrant mentioning - we
> should consider the LICENSE as a strong hint, not as a definitive assertion (it
> is not entirely accurate in most packages). In addition, the CPL.html file which
> is supposed to be there, is missing. The top-level README also says "It uses the
> LGPL license, with exceptions for closed-source programs." This leads me to
> conclude that the physfs authors, when redistributint lzma, have decided to do
> so under LGPL and to drop the other license options.
> 
>  So I'd say:
> 
> PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1 with exceptions (lzma)
> PHYSFS_LICENSE_FILES = LICENSE.txt src/lzma/lzma.txt src/lzma/LGPL.txt

Ok, thanks for the help!

Best regards,
Romain

> 
> 
>  Regards,
>  Arnout
> 
>
Thomas Petazzoni March 5, 2017, 10:41 p.m. UTC | #7
Hello,

On Sun, 5 Mar 2017 23:06:21 +0100, Arnout Vandecappelle wrote:

>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
> mentioned in src/lzma/LGPL.txt).
> 
>  I think the special cases are not interesting enough to warrant mentioning

Don't the special cases allow static linking more easily than what
LGPL2.1 allows to do?

Thomas
Arnout Vandecappelle March 5, 2017, 11:31 p.m. UTC | #8
On 05-03-17 23:13, Romain Naour wrote:
> Hi Arnout, all,
> 
> Le 05/03/2017 à 23:06, Arnout Vandecappelle a écrit :
>>
>>
>> On 05-03-17 22:37, Thomas Petazzoni wrote:
>>> Hello,
>>>
>>> On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
>>>>> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
>>>>>
>>>>>  ?  
>>>>
>>>> It seems some files are under public domain when the special license is used.
>>>>
>>>> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
>>>> you to use code of the following files:
>>>> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
>>>> LzmaAlone.cs, LzmaAlone.java
>>>> as public domain code.
>>>>
>>>> Maybe "special license" is enough ?
>>>
>>> My understanding of lzma.txt is that you really have the choice between
>>> those different licensing options, so I believe encoding all of them in
>>> <pkg>_LICENSE is probably better.
>>>
>>> Cc'ing Arnout and Yann to get their insight.
>>
>>  I was just about to reply :-)
>>
>>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
>> mentioned in src/lzma/LGPL.txt).
> 
> Try with "any later version"

 Still don't see it, except in LGPL.txt where they explain that the library
should specify "any later version" if they want it to apply to a later version.

 Regards,
 Arnout

> 
>>
>>  I think the special cases are not interesting enough to warrant mentioning - we
>> should consider the LICENSE as a strong hint, not as a definitive assertion (it
>> is not entirely accurate in most packages). In addition, the CPL.html file which
>> is supposed to be there, is missing. The top-level README also says "It uses the
>> LGPL license, with exceptions for closed-source programs." This leads me to
>> conclude that the physfs authors, when redistributint lzma, have decided to do
>> so under LGPL and to drop the other license options.
>>
>>  So I'd say:
>>
>> PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1 with exceptions (lzma)
>> PHYSFS_LICENSE_FILES = LICENSE.txt src/lzma/lzma.txt src/lzma/LGPL.txt
> 
> Ok, thanks for the help!
> 
> Best regards,
> Romain
> 
>>
>>
>>  Regards,
>>  Arnout
>>
>>
>
Arnout Vandecappelle March 5, 2017, 11:34 p.m. UTC | #9
On 05-03-17 23:41, Thomas Petazzoni wrote:
> Hello,
> 
> On Sun, 5 Mar 2017 23:06:21 +0100, Arnout Vandecappelle wrote:
> 
>>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
>> mentioned in src/lzma/LGPL.txt).
>>
>>  I think the special cases are not interesting enough to warrant mentioning
> 
> Don't the special cases allow static linking more easily than what
> LGPL2.1 allows to do?

 Actually there is no "special cases", there is "special exception" (which I
included in my proposal, that you snipped away but I repeat it below), and there
is "proprietary license". Then there are some files that have a "public domain"
option, but since the package links with a whole lot more than just those files,
it's not relevant for the overall license.

 Therefore:

PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1 with exceptions (lzma)


 Regards,
 Arnout
Romain Naour March 6, 2017, 8:32 p.m. UTC | #10
Hi Arnout, Thomas, All,

Le 06/03/2017 à 00:31, Arnout Vandecappelle a écrit :
> 
> 
> On 05-03-17 23:13, Romain Naour wrote:
>> Hi Arnout, all,
>>
>> Le 05/03/2017 à 23:06, Arnout Vandecappelle a écrit :
>>>
>>>
>>> On 05-03-17 22:37, Thomas Petazzoni wrote:
>>>> Hello,
>>>>
>>>> On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
>>>>>> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
>>>>>>
>>>>>>  ?  
>>>>>
>>>>> It seems some files are under public domain when the special license is used.
>>>>>
>>>>> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
>>>>> you to use code of the following files:
>>>>> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
>>>>> LzmaAlone.cs, LzmaAlone.java
>>>>> as public domain code.
>>>>>
>>>>> Maybe "special license" is enough ?
>>>>
>>>> My understanding of lzma.txt is that you really have the choice between
>>>> those different licensing options, so I believe encoding all of them in
>>>> <pkg>_LICENSE is probably better.
>>>>
>>>> Cc'ing Arnout and Yann to get their insight.
>>>
>>>  I was just about to reply :-)
>>>
>>>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
>>> mentioned in src/lzma/LGPL.txt).
>>
>> Try with "any later version"
> 
>  Still don't see it, except in LGPL.txt where they explain that the library
> should specify "any later version" if they want it to apply to a later version.

Sorry but I don't see how to make the difference between LGPL2.1 and LGPL2.1+.

I compared the license file of tree LGPL2.1+ packages (alsa-lib, cairo, sdl)
with src/lzma/LGPL.txt and the content is the same.

Ether alsa-lib, cairo, sdl license info are wrong or physfs is really LGPL2.1+ :)

Best regards,
Romain

> 
>  Regards,
>  Arnout
Yann E. MORIN March 6, 2017, 9:43 p.m. UTC | #11
Arnout, Romain, Thomas, All,

On 2017-03-05 23:06 +0100, Arnout Vandecappelle spake thusly:
> On 05-03-17 22:37, Thomas Petazzoni wrote:
> > Hello,
> > 
> > On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
> >>> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
> >>>
> >>>  ?  
> >>
> >> It seems some files are under public domain when the special license is used.
> >>
> >> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
> >> you to use code of the following files:
> >> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
> >> LzmaAlone.cs, LzmaAlone.java
> >> as public domain code.
> >>
> >> Maybe "special license" is enough ?
> > 
> > My understanding of lzma.txt is that you really have the choice between
> > those different licensing options, so I believe encoding all of them in
> > <pkg>_LICENSE is probably better.
> > 
> > Cc'ing Arnout and Yann to get their insight.
> 
>  I was just about to reply :-)
> 
>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
> mentioned in src/lzma/LGPL.txt).

That's a little bit more complicated, I think... :-(

The fact that COPYING contains the text of LGPLv2.1 is a strong
indication that this would be the only version that should apply.

However, the lzma.txt file, which contains legal blurbs, does not state
any version of the LGPL. As such, one may argue that any version may
apply, as stated in COPYING itself, quoting:

    If the Library does not specify a license version number, you may
    choose any version ever published by the Free Software Foundation.

So I would just say "LGPL".

>  I think the special cases are not interesting enough to warrant mentioning - we
> should consider the LICENSE as a strong hint, not as a definitive assertion (it
> is not entirely accurate in most packages). In addition, the CPL.html file which
> is supposed to be there, is missing. The top-level README also says "It uses the
> LGPL license, with exceptions for closed-source programs." This leads me to
> conclude that the physfs authors, when redistributint lzma, have decided to do
> so under LGPL and to drop the other license options.
> 
>  So I'd say:
> 
> PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1 with exceptions (lzma)

Almost. I'd say:

    PHYSFS_LICENSE = zlib license (physfs), LGPL with exceptions (lzma)

> PHYSFS_LICENSE_FILES = LICENSE.txt src/lzma/lzma.txt src/lzma/LGPL.txt

Yup.

Regards,
Yann E. MORIN.
Arnout Vandecappelle March 7, 2017, 8:31 a.m. UTC | #12
On 06-03-17 22:43, Yann E. MORIN wrote:
> Arnout, Romain, Thomas, All,
> 
> On 2017-03-05 23:06 +0100, Arnout Vandecappelle spake thusly:
>> On 05-03-17 22:37, Thomas Petazzoni wrote:
>>> Hello,
>>>
>>> On Sun, 5 Mar 2017 22:14:02 +0100, Romain Naour wrote:
>>>>> zlib license (physfs), LGPv2.1+ or CPL or special license (lzma)
>>>>>
>>>>>  ?  
>>>>
>>>> It seems some files are under public domain when the special license is used.
>>>>
>>>> SPECIAL EXCEPTION #3: Igor Pavlov, as the author of this code, expressly permits
>>>> you to use code of the following files:
>>>> BranchTypes.h, LzmaTypes.h, LzmaTest.c, LzmaStateTest.c, LzmaAlone.cpp,
>>>> LzmaAlone.cs, LzmaAlone.java
>>>> as public domain code.
>>>>
>>>> Maybe "special license" is enough ?
>>>
>>> My understanding of lzma.txt is that you really have the choice between
>>> those different licensing options, so I believe encoding all of them in
>>> <pkg>_LICENSE is probably better.
>>>
>>> Cc'ing Arnout and Yann to get their insight.
>>
>>  I was just about to reply :-)
>>
>>  First of all, I don't see any 'or later' language, so it's LGPL2.1 (the version
>> mentioned in src/lzma/LGPL.txt).
> 
> That's a little bit more complicated, I think... :-(
> 
> The fact that COPYING contains the text of LGPLv2.1 is a strong
> indication that this would be the only version that should apply.

 No it isn't. The COPYING file always contains a single version of the GPL text
[note 1]. This text always contains a section explaining how you should use it,
and that you can allow "any later version" if you put the appropriate text in
your source code. Obviously, the text explaining what you have to do to make it
LGPLv2.1+ does not by itself make it LGPLv2.1+, you actively have to execute the
instructions in said text.

[note 1]  Since you are not allowed to modify the text itself according to the
license (the license to the text, not the LGPL license), all the COPYING files
*should* be identical.

> 
> However, the lzma.txt file, which contains legal blurbs, does not state
> any version of the LGPL. As such, one may argue that any version may
> apply, as stated in COPYING itself, quoting:
> 
>     If the Library does not specify a license version number, you may
>     choose any version ever published by the Free Software Foundation.

 Oops, you are right, I missed that piece of text.


> So I would just say "LGPL".

 Agreed.


>>  I think the special cases are not interesting enough to warrant mentioning - we
>> should consider the LICENSE as a strong hint, not as a definitive assertion (it
>> is not entirely accurate in most packages). In addition, the CPL.html file which
>> is supposed to be there, is missing. The top-level README also says "It uses the
>> LGPL license, with exceptions for closed-source programs." This leads me to
>> conclude that the physfs authors, when redistributint lzma, have decided to do
>> so under LGPL and to drop the other license options.
>>
>>  So I'd say:
>>
>> PHYSFS_LICENSE = zlib license (physfs), LGPLv2.1 with exceptions (lzma)
> 
> Almost. I'd say:
> 
>     PHYSFS_LICENSE = zlib license (physfs), LGPL with exceptions (lzma)

 Agreed.

 Regards,
 Arnout

> 
>> PHYSFS_LICENSE_FILES = LICENSE.txt src/lzma/lzma.txt src/lzma/LGPL.txt
> 
> Yup.
> 
> Regards,
> Yann E. MORIN.
>
diff mbox

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index ee2300b..2cc2401 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1290,6 +1290,7 @@  F:	package/linux-syscall-support/
 F:	package/lugaru/
 F:	package/mcelog/
 F:	package/openpowerlink/
+F:	package/physfs/
 F:	package/stress-ng/
 F:	package/terminology/
 F:	package/upower/
diff --git a/package/Config.in b/package/Config.in
index fa7e5cb..b15e064 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -972,6 +972,7 @@  menu "Filesystem"
 	source "package/libnfs/Config.in"
 	source "package/libsysfs/Config.in"
 	source "package/lockdev/Config.in"
+	source "package/physfs/Config.in"
 endmenu
 
 menu "Graphics"
diff --git a/package/physfs/0001-Fix-builds-with-modern-GCC.patch b/package/physfs/0001-Fix-builds-with-modern-GCC.patch
new file mode 100644
index 0000000..710b4ff
--- /dev/null
+++ b/package/physfs/0001-Fix-builds-with-modern-GCC.patch
@@ -0,0 +1,38 @@ 
+From 61d3b63abcba8e9615dcb8a3d1fc026bf7f8d5f8 Mon Sep 17 00:00:00 2001
+From: Jacob Burroughs <jburroughs@trustwave.com>
+Date: Thu, 23 Jun 2016 13:03:47 -0500
+Subject: [PATCH] Fix builds with modern GCC
+
+From SuperTux project:
+https://github.com/SuperTux/physfs/commit/61d3b63abcba8e9615dcb8a3d1fc026bf7f8d5f8
+
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2a371af..94c4844 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -50,7 +50,7 @@ endif()
+ # Add some gcc-specific command lines.
+ if(CMAKE_COMPILER_IS_GNUCC)
+     # Always build with debug symbols...you can strip it later.
+-    add_definitions(-g -pipe -Werror -fsigned-char)
++    add_definitions(-g -pipe -fsigned-char)
+ 
+     # Stupid BeOS generates warnings in the system headers.
+     if(NOT BEOS)
+@@ -304,7 +304,7 @@ if(PHYSFS_BUILD_TEST)
+         if(READLINE_LIBRARY)
+             set(HAVE_SYSTEM_READLINE TRUE)
+             set(TEST_PHYSFS_LIBS ${TEST_PHYSFS_LIBS} ${READLINE_LIBRARY} ${CURSES_LIBRARY})
+-            include_directories(${READLINE_H} ${HISTORY_H})
++            include_directories(SYSTEM ${READLINE_H} ${HISTORY_H})
+             add_definitions(-DPHYSFS_HAVE_READLINE=1)
+         endif()
+     endif()
+-- 
+2.9.3
+
diff --git a/package/physfs/Config.in b/package/physfs/Config.in
new file mode 100644
index 0000000..dad3ab4
--- /dev/null
+++ b/package/physfs/Config.in
@@ -0,0 +1,10 @@ 
+config BR2_PACKAGE_PHYSFS
+	bool "physfs"
+	depends on BR2_INSTALL_LIBSTDCPP
+	help
+	  PhysicsFS; a portable, flexible file i/o abstraction.
+
+	  http://icculus.org/physfs
+
+comment "physfs needs a toolchain w/ C++"
+	depends on !BR2_INSTALL_LIBSTDCPP
diff --git a/package/physfs/physfs.mk b/package/physfs/physfs.mk
new file mode 100644
index 0000000..ff76035
--- /dev/null
+++ b/package/physfs/physfs.mk
@@ -0,0 +1,27 @@ 
+################################################################################
+#
+# physfs
+#
+################################################################################
+
+PHYSFS_VERSION = be27dfd07d97336145e7f49d3fd200a6e902f85e
+PHYSFS_SITE = https://hg.icculus.org/icculus/physfs
+PHYSFS_SITE_METHOD = hg
+
+PHYSFS_INSTALL_STAGING = YES
+
+PHYSFS_CONF_OPTS = -DPHYSFS_BUILD_TEST=OFF
+
+ifeq ($(BR2_SHARED_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
+PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_SHARED=ON
+else
+PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_SHARED=OFF
+endif
+
+ifeq ($(BR2_STATIC_LIBS)$(BR2_SHARED_STATIC_LIBS),y)
+PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_STATIC=ON
+else
+PHYSFS_CONF_OPTS += -DPHYSFS_BUILD_STATIC=OFF
+endif
+
+$(eval $(cmake-package))