All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH] package: add smpq and stormlib
@ 2021-10-10 17:09 Gleb Mazovetskiy
  2021-10-10 21:07 ` Yann E. MORIN
  2021-10-11 21:00 ` [Buildroot] [PATCH v2 1/1] " Gleb Mazovetskiy
  0 siblings, 2 replies; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-10 17:09 UTC (permalink / raw)
  To: buildroot; +Cc: Gleb Mazovetskiy, Samuel Martin

SMPQ is a utility for working with Blizzard MPQ archives and StormLib is
the library for doing this that it depends on.

SMPQ/StormLib is a runtime and/or build-time dependency of several
source ports / reimplementations of Blizzard games, such as DevilutionX.

These packages are already available in other distros, such as Debian.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
---
 package/Config.in              |  2 ++
 package/smpq/Config.in         | 11 ++++++++++
 package/smpq/smpq.hash         |  3 +++
 package/smpq/smpq.mk           | 37 ++++++++++++++++++++++++++++++++++
 package/stormlib/Config.in     |  8 ++++++++
 package/stormlib/stormlib.hash |  3 +++
 package/stormlib/stormlib.mk   | 16 +++++++++++++++
 7 files changed, 80 insertions(+)
 create mode 100644 package/smpq/Config.in
 create mode 100644 package/smpq/smpq.hash
 create mode 100644 package/smpq/smpq.mk
 create mode 100644 package/stormlib/Config.in
 create mode 100644 package/stormlib/stormlib.hash
 create mode 100644 package/stormlib/stormlib.mk

diff --git a/package/Config.in b/package/Config.in
index 9fed0ab4cb..890a6be135 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -74,6 +74,7 @@ menu "Compressors and decompressors"
 	source "package/p7zip/Config.in"
 	source "package/pigz/Config.in"
 	source "package/pixz/Config.in"
+	source "package/smpq/Config.in"
 	source "package/unrar/Config.in"
 	source "package/unzip/Config.in"
 	source "package/xz/Config.in"
@@ -1360,6 +1361,7 @@ menu "Compression and decompression"
 	source "package/lzo/Config.in"
 	source "package/minizip/Config.in"
 	source "package/snappy/Config.in"
+	source "package/stormlib/Config.in"
 	source "package/szip/Config.in"
 	source "package/zlib/Config.in"
 	source "package/zziplib/Config.in"
diff --git a/package/smpq/Config.in b/package/smpq/Config.in
new file mode 100644
index 0000000000..589f5cf834
--- /dev/null
+++ b/package/smpq/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_SMPQ
+	bool "smpq"
+	select BR2_PACKAGE_SMPQ
+	help
+	  StormLib MPQ archiving utility
+
+	  This utility manipulates Blizzard MPQ archives.
+	  It supports extracting, appending, renaming and deleting files
+	  in MPQ archives, and creating new MPQ archives.
+
+	  https://launchpad.net/smpq
diff --git a/package/smpq/smpq.hash b/package/smpq/smpq.hash
new file mode 100644
index 0000000000..f14eaef49b
--- /dev/null
+++ b/package/smpq/smpq.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  b5d2dc8a5de8629b71ee5d3612b6e84d88418b86c5cd39ba315e9eb0462f18cb  smpq_1.6.orig.tar.gz
+sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  COPYING
diff --git a/package/smpq/smpq.mk b/package/smpq/smpq.mk
new file mode 100644
index 0000000000..6696c88f9c
--- /dev/null
+++ b/package/smpq/smpq.mk
@@ -0,0 +1,37 @@
+################################################################################
+#
+# smpq
+#
+################################################################################
+
+SMPQ_VERSION = 1.6
+SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
+SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
+SMPQ_DEPENDENCIES = stormlib
+HOST_SMPQ_DEPENDENCIES = host-stormlib
+SMPQ_LICENSE = GPL-3.0+
+SMPQ_LICENSE_FILES = LICENSE
+SMPQ_INSTALL_STAGING = YES
+SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+
+# The StormLib version check in SMPQ CMake is broken. Disable it.
+define SMPQ_DISABLE_VERSION_CHECK
+	$(SED) 's/try_compile(CHECK.*/set(CHECK ON)/' $(@D)/CMakeLists.txt
+endef
+
+define SMPQ_DISABLE_MANUAL
+	$(SED) 's|if(NOT CMAKE_CROSSCOMPILING)|if(FALSE)|' $(@D)/CMakeLists.txt
+endef
+
+# StormLib is C++ and must be linked with a C++ linker (e.g. via g++ instead of gcc).
+define SMPQ_SET_LANG_TO_CXX
+	$(SED) '/^project/a file(GLOB_RECURSE CFILES "$${CMAKE_SOURCE_DIR}/*.c")\$(NEWLINE)
+SET_SOURCE_FILES_PROPERTIES($${CFILES} PROPERTIES LANGUAGE CXX)' $(@D)/CMakeLists.txt
+endef
+
+SMPQ_POST_PATCH_HOOKS += SMPQ_DISABLE_VERSION_CHECK SMPQ_DISABLE_MANUAL SMPQ_SET_LANG_TO_CXX
+HOST_SMPQ_POST_PATCH_HOOKS += SMPQ_DISABLE_VERSION_CHECK SMPQ_DISABLE_MANUAL SMPQ_SET_LANG_TO_CXX
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
diff --git a/package/stormlib/Config.in b/package/stormlib/Config.in
new file mode 100644
index 0000000000..b2e4df3c62
--- /dev/null
+++ b/package/stormlib/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_STORMLIB
+	bool "stormlib"
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_ZLIB
+	help
+	  StormLib is a library that reads and writes Blizzard MPQ archives.
+
+	  https://github.com/ladislav-zezula/StormLib
diff --git a/package/stormlib/stormlib.hash b/package/stormlib/stormlib.hash
new file mode 100644
index 0000000000..dc5370b03d
--- /dev/null
+++ b/package/stormlib/stormlib.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  53b8befda3855a922e57a27f78c36feba7e9a32804da4b6592a3670c4e9cec98  stormlib-5ab093b7a57b8779dff06a08fac19d46c40b3329.tar.gz
+sha256  50b128e6750ed9d887e7a5748a6021238bb2f3bf34a5dd2768c410d932069e35  LICENSE
diff --git a/package/stormlib/stormlib.mk b/package/stormlib/stormlib.mk
new file mode 100644
index 0000000000..a2e58aa983
--- /dev/null
+++ b/package/stormlib/stormlib.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# stormlib
+#
+################################################################################
+
+STORMLIB_VERSION = 5ab093b7a57b8779dff06a08fac19d46c40b3329
+STORMLIB_SITE = $(call github,ladislav-zezula,StormLib,$(STORMLIB_VERSION))
+STORMLIB_DEPENDENCIES = zlib bzip2
+HOST_STORMLIB_DEPENDENCIES = host-zlib host-bzip2
+STORMLIB_LICENSE = MIT
+STORMLIB_LICENSE_FILES = LICENSE
+STORMLIB_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH] package: add smpq and stormlib
  2021-10-10 17:09 [Buildroot] [PATCH] package: add smpq and stormlib Gleb Mazovetskiy
@ 2021-10-10 21:07 ` Yann E. MORIN
  2021-10-11 21:00 ` [Buildroot] [PATCH v2 1/1] " Gleb Mazovetskiy
  1 sibling, 0 replies; 11+ messages in thread
From: Yann E. MORIN @ 2021-10-10 21:07 UTC (permalink / raw)
  To: Gleb Mazovetskiy; +Cc: Samuel Martin, buildroot

Gleb, All,

On 2021-10-10 18:09 +0100, Gleb Mazovetskiy spake thusly:
> SMPQ is a utility for working with Blizzard MPQ archives and StormLib is
> the library for doing this that it depends on.
> 
> SMPQ/StormLib is a runtime and/or build-time dependency of several
> source ports / reimplementations of Blizzard games, such as DevilutionX.
> 
> These packages are already available in other distros, such as Debian.

Please, provide you patch per package.

> Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
> ---
>  package/Config.in              |  2 ++
>  package/smpq/Config.in         | 11 ++++++++++
>  package/smpq/smpq.hash         |  3 +++
>  package/smpq/smpq.mk           | 37 ++++++++++++++++++++++++++++++++++
>  package/stormlib/Config.in     |  8 ++++++++
>  package/stormlib/stormlib.hash |  3 +++
>  package/stormlib/stormlib.mk   | 16 +++++++++++++++
>  7 files changed, 80 insertions(+)
>  create mode 100644 package/smpq/Config.in
>  create mode 100644 package/smpq/smpq.hash
>  create mode 100644 package/smpq/smpq.mk
>  create mode 100644 package/stormlib/Config.in
>  create mode 100644 package/stormlib/stormlib.hash
>  create mode 100644 package/stormlib/stormlib.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index 9fed0ab4cb..890a6be135 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -74,6 +74,7 @@ menu "Compressors and decompressors"
>  	source "package/p7zip/Config.in"
>  	source "package/pigz/Config.in"
>  	source "package/pixz/Config.in"
> +	source "package/smpq/Config.in"
>  	source "package/unrar/Config.in"
>  	source "package/unzip/Config.in"
>  	source "package/xz/Config.in"
> @@ -1360,6 +1361,7 @@ menu "Compression and decompression"
>  	source "package/lzo/Config.in"
>  	source "package/minizip/Config.in"
>  	source "package/snappy/Config.in"
> +	source "package/stormlib/Config.in"
>  	source "package/szip/Config.in"
>  	source "package/zlib/Config.in"
>  	source "package/zziplib/Config.in"
> diff --git a/package/smpq/Config.in b/package/smpq/Config.in
> new file mode 100644
> index 0000000000..589f5cf834
> --- /dev/null
> +++ b/package/smpq/Config.in
> @@ -0,0 +1,11 @@
> +config BR2_PACKAGE_SMPQ
> +	bool "smpq"
> +	select BR2_PACKAGE_SMPQ
> +	help
> +	  StormLib MPQ archiving utility
> +
> +	  This utility manipulates Blizzard MPQ archives.
> +	  It supports extracting, appending, renaming and deleting files
> +	  in MPQ archives, and creating new MPQ archives.
> +
> +	  https://launchpad.net/smpq
> diff --git a/package/smpq/smpq.hash b/package/smpq/smpq.hash
> new file mode 100644
> index 0000000000..f14eaef49b
> --- /dev/null
> +++ b/package/smpq/smpq.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +sha256  b5d2dc8a5de8629b71ee5d3612b6e84d88418b86c5cd39ba315e9eb0462f18cb  smpq_1.6.orig.tar.gz
> +sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  COPYING
> diff --git a/package/smpq/smpq.mk b/package/smpq/smpq.mk
> new file mode 100644
> index 0000000000..6696c88f9c
> --- /dev/null
> +++ b/package/smpq/smpq.mk
> @@ -0,0 +1,37 @@
> +################################################################################
> +#
> +# smpq
> +#
> +################################################################################
> +
> +SMPQ_VERSION = 1.6
> +SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
> +SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
> +SMPQ_DEPENDENCIES = stormlib
> +HOST_SMPQ_DEPENDENCIES = host-stormlib
> +SMPQ_LICENSE = GPL-3.0+
> +SMPQ_LICENSE_FILES = LICENSE
> +SMPQ_INSTALL_STAGING = YES
> +SMPQ_CONF_OPTS += -DWITH_KDE=OFF
> +HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF

Although there is nothing written black-on-white about this, I prefer
that the variables be ordered in a logical order, and semantically
grouped together:

 1. download metadata: VERSION, SOURCE, SITE
 2. legal info: LICENSE, LICENSE_FILES
 3. if available, CPE info
 4. DEPENDENCIES
 5. CONF_ENV and CONF_OPTS
 6. and so on...

I have no strong preference about where to set the host varaibles vs.
the target ones; intersperesed like you did, of all the host ones after
the target variant. I would slightly favour the latter, but I'm OK with
anything as long as it is consistent.

> +# The StormLib version check in SMPQ CMake is broken. Disable it.
> +define SMPQ_DISABLE_VERSION_CHECK
> +	$(SED) 's/try_compile(CHECK.*/set(CHECK ON)/' $(@D)/CMakeLists.txt
> +endef
> +
> +define SMPQ_DISABLE_MANUAL
> +	$(SED) 's|if(NOT CMAKE_CROSSCOMPILING)|if(FALSE)|' $(@D)/CMakeLists.txt
> +endef
> +
> +# StormLib is C++ and must be linked with a C++ linker (e.g. via g++ instead of gcc).
> +define SMPQ_SET_LANG_TO_CXX
> +	$(SED) '/^project/a file(GLOB_RECURSE CFILES "$${CMAKE_SOURCE_DIR}/*.c")\$(NEWLINE)
> +SET_SOURCE_FILES_PROPERTIES($${CFILES} PROPERTIES LANGUAGE CXX)' $(@D)/CMakeLists.txt
> +endef
> +
> +SMPQ_POST_PATCH_HOOKS += SMPQ_DISABLE_VERSION_CHECK SMPQ_DISABLE_MANUAL SMPQ_SET_LANG_TO_CXX
> +HOST_SMPQ_POST_PATCH_HOOKS += SMPQ_DISABLE_VERSION_CHECK SMPQ_DISABLE_MANUAL SMPQ_SET_LANG_TO_CXX

We try not to unconditionally patch code from the .mk files; instead,
bundle three patches, to fix each of those three issues.

Bonus point if you can make those patches acceptable upstream.
Extra-bonus point if you push those patches upstream, and they get
applied! ;-)

Regards,
Yann E. MORIN.

> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> diff --git a/package/stormlib/Config.in b/package/stormlib/Config.in
> new file mode 100644
> index 0000000000..b2e4df3c62
> --- /dev/null
> +++ b/package/stormlib/Config.in
> @@ -0,0 +1,8 @@
> +config BR2_PACKAGE_STORMLIB
> +	bool "stormlib"
> +	select BR2_PACKAGE_BZIP2
> +	select BR2_PACKAGE_ZLIB
> +	help
> +	  StormLib is a library that reads and writes Blizzard MPQ archives.
> +
> +	  https://github.com/ladislav-zezula/StormLib
> diff --git a/package/stormlib/stormlib.hash b/package/stormlib/stormlib.hash
> new file mode 100644
> index 0000000000..dc5370b03d
> --- /dev/null
> +++ b/package/stormlib/stormlib.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +sha256  53b8befda3855a922e57a27f78c36feba7e9a32804da4b6592a3670c4e9cec98  stormlib-5ab093b7a57b8779dff06a08fac19d46c40b3329.tar.gz
> +sha256  50b128e6750ed9d887e7a5748a6021238bb2f3bf34a5dd2768c410d932069e35  LICENSE
> diff --git a/package/stormlib/stormlib.mk b/package/stormlib/stormlib.mk
> new file mode 100644
> index 0000000000..a2e58aa983
> --- /dev/null
> +++ b/package/stormlib/stormlib.mk
> @@ -0,0 +1,16 @@
> +################################################################################
> +#
> +# stormlib
> +#
> +################################################################################
> +
> +STORMLIB_VERSION = 5ab093b7a57b8779dff06a08fac19d46c40b3329
> +STORMLIB_SITE = $(call github,ladislav-zezula,StormLib,$(STORMLIB_VERSION))
> +STORMLIB_DEPENDENCIES = zlib bzip2
> +HOST_STORMLIB_DEPENDENCIES = host-zlib host-bzip2
> +STORMLIB_LICENSE = MIT
> +STORMLIB_LICENSE_FILES = LICENSE
> +STORMLIB_INSTALL_STAGING = YES
> +
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))
> -- 
> 2.30.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v2 1/1] package: add smpq and stormlib
  2021-10-10 17:09 [Buildroot] [PATCH] package: add smpq and stormlib Gleb Mazovetskiy
  2021-10-10 21:07 ` Yann E. MORIN
@ 2021-10-11 21:00 ` Gleb Mazovetskiy
  2021-10-11 21:02   ` [Buildroot] [PATCH v3 " Gleb Mazovetskiy
  1 sibling, 1 reply; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-11 21:00 UTC (permalink / raw)
  To: buildroot; +Cc: Gleb Mazovetskiy, Samuel Martin, yann.morin.1998

SMPQ is a utility for working with Blizzard MPQ archives and StormLib is
the library for doing this that it depends on.

SMPQ/StormLib is a runtime and/or build-time dependency of several
source ports / reimplementations of Blizzard games, such as DevilutionX.

These packages are already available in other distros, such as Debian.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>

---
Changes v1 -> v2 (Sugested by Yann E. MORIN):

  - Converted sed substitutions to patch files.
  - Re-ordered mk variables per the suggested ordered.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
---
 package/Config.in              |  2 ++
 package/smpq/Config.in         | 11 +++++++++++
 package/smpq/smpq.hash         |  3 +++
 package/smpq/smpq.mk           | 19 +++++++++++++++++++
 package/stormlib/Config.in     |  8 ++++++++
 package/stormlib/stormlib.hash |  3 +++
 package/stormlib/stormlib.mk   | 16 ++++++++++++++++
 7 files changed, 62 insertions(+)
 create mode 100644 package/smpq/Config.in
 create mode 100644 package/smpq/smpq.hash
 create mode 100644 package/smpq/smpq.mk
 create mode 100644 package/stormlib/Config.in
 create mode 100644 package/stormlib/stormlib.hash
 create mode 100644 package/stormlib/stormlib.mk

diff --git a/package/Config.in b/package/Config.in
index 9fed0ab4cb..890a6be135 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -74,6 +74,7 @@ menu "Compressors and decompressors"
 	source "package/p7zip/Config.in"
 	source "package/pigz/Config.in"
 	source "package/pixz/Config.in"
+	source "package/smpq/Config.in"
 	source "package/unrar/Config.in"
 	source "package/unzip/Config.in"
 	source "package/xz/Config.in"
@@ -1360,6 +1361,7 @@ menu "Compression and decompression"
 	source "package/lzo/Config.in"
 	source "package/minizip/Config.in"
 	source "package/snappy/Config.in"
+	source "package/stormlib/Config.in"
 	source "package/szip/Config.in"
 	source "package/zlib/Config.in"
 	source "package/zziplib/Config.in"
diff --git a/package/smpq/Config.in b/package/smpq/Config.in
new file mode 100644
index 0000000000..589f5cf834
--- /dev/null
+++ b/package/smpq/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_SMPQ
+	bool "smpq"
+	select BR2_PACKAGE_SMPQ
+	help
+	  StormLib MPQ archiving utility
+
+	  This utility manipulates Blizzard MPQ archives.
+	  It supports extracting, appending, renaming and deleting files
+	  in MPQ archives, and creating new MPQ archives.
+
+	  https://launchpad.net/smpq
diff --git a/package/smpq/smpq.hash b/package/smpq/smpq.hash
new file mode 100644
index 0000000000..f14eaef49b
--- /dev/null
+++ b/package/smpq/smpq.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  b5d2dc8a5de8629b71ee5d3612b6e84d88418b86c5cd39ba315e9eb0462f18cb  smpq_1.6.orig.tar.gz
+sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  COPYING
diff --git a/package/smpq/smpq.mk b/package/smpq/smpq.mk
new file mode 100644
index 0000000000..34f87f7f45
--- /dev/null
+++ b/package/smpq/smpq.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# smpq
+#
+################################################################################
+
+SMPQ_VERSION = 1.6
+SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
+SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
+SMPQ_LICENSE = GPL-3.0+
+SMPQ_LICENSE_FILES = LICENSE
+SMPQ_DEPENDENCIES = stormlib
+HOST_SMPQ_DEPENDENCIES = host-stormlib
+SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+SMPQ_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
diff --git a/package/stormlib/Config.in b/package/stormlib/Config.in
new file mode 100644
index 0000000000..b2e4df3c62
--- /dev/null
+++ b/package/stormlib/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_STORMLIB
+	bool "stormlib"
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_ZLIB
+	help
+	  StormLib is a library that reads and writes Blizzard MPQ archives.
+
+	  https://github.com/ladislav-zezula/StormLib
diff --git a/package/stormlib/stormlib.hash b/package/stormlib/stormlib.hash
new file mode 100644
index 0000000000..dc5370b03d
--- /dev/null
+++ b/package/stormlib/stormlib.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  53b8befda3855a922e57a27f78c36feba7e9a32804da4b6592a3670c4e9cec98  stormlib-5ab093b7a57b8779dff06a08fac19d46c40b3329.tar.gz
+sha256  50b128e6750ed9d887e7a5748a6021238bb2f3bf34a5dd2768c410d932069e35  LICENSE
diff --git a/package/stormlib/stormlib.mk b/package/stormlib/stormlib.mk
new file mode 100644
index 0000000000..f2f7522002
--- /dev/null
+++ b/package/stormlib/stormlib.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# stormlib
+#
+################################################################################
+
+STORMLIB_VERSION = 5ab093b7a57b8779dff06a08fac19d46c40b3329
+STORMLIB_SITE = $(call github,ladislav-zezula,StormLib,$(STORMLIB_VERSION))
+STORMLIB_LICENSE = MIT
+STORMLIB_LICENSE_FILES = LICENSE
+STORMLIB_DEPENDENCIES = zlib bzip2
+HOST_STORMLIB_DEPENDENCIES = host-zlib host-bzip2
+STORMLIB_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v3 1/1] package: add smpq and stormlib
  2021-10-11 21:00 ` [Buildroot] [PATCH v2 1/1] " Gleb Mazovetskiy
@ 2021-10-11 21:02   ` Gleb Mazovetskiy
  2021-10-11 21:21     ` [Buildroot] [PATCH v4 0/2] package: add smpq and StormLib Gleb Mazovetskiy
  0 siblings, 1 reply; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-11 21:02 UTC (permalink / raw)
  To: buildroot; +Cc: Gleb Mazovetskiy, Samuel Martin, yann.morin.1998

SMPQ is a utility for working with Blizzard MPQ archives and StormLib is
the library for doing this that it depends on.

SMPQ/StormLib is a runtime and/or build-time dependency of several
source ports / reimplementations of Blizzard games, such as DevilutionX.

These packages are already available in other distros, such as Debian.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>

---
Changes v2 -> v3:

  - Added missing patch files.

Changes v1 -> v2 (Sugested by Yann E. MORIN):

  - Converted sed substitutions to patch files.
  - Re-ordered mk variables per the suggested ordered.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
---
 package/Config.in                             |  2 +
 .../smpq/0001-CMake-Set-language-to-C.patch   | 29 +++++++++++++++
 .../0002-CMake-Disable-version-check.patch    | 32 ++++++++++++++++
 ...0003-CMake-Disable-manual-generation.patch | 37 +++++++++++++++++++
 package/smpq/Config.in                        | 11 ++++++
 package/smpq/smpq.hash                        |  3 ++
 package/smpq/smpq.mk                          | 19 ++++++++++
 package/stormlib/Config.in                    |  8 ++++
 package/stormlib/stormlib.hash                |  3 ++
 package/stormlib/stormlib.mk                  | 16 ++++++++
 10 files changed, 160 insertions(+)
 create mode 100644 package/smpq/0001-CMake-Set-language-to-C.patch
 create mode 100644 package/smpq/0002-CMake-Disable-version-check.patch
 create mode 100644 package/smpq/0003-CMake-Disable-manual-generation.patch
 create mode 100644 package/smpq/Config.in
 create mode 100644 package/smpq/smpq.hash
 create mode 100644 package/smpq/smpq.mk
 create mode 100644 package/stormlib/Config.in
 create mode 100644 package/stormlib/stormlib.hash
 create mode 100644 package/stormlib/stormlib.mk

diff --git a/package/Config.in b/package/Config.in
index 9fed0ab4cb..890a6be135 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -74,6 +74,7 @@ menu "Compressors and decompressors"
 	source "package/p7zip/Config.in"
 	source "package/pigz/Config.in"
 	source "package/pixz/Config.in"
+	source "package/smpq/Config.in"
 	source "package/unrar/Config.in"
 	source "package/unzip/Config.in"
 	source "package/xz/Config.in"
@@ -1360,6 +1361,7 @@ menu "Compression and decompression"
 	source "package/lzo/Config.in"
 	source "package/minizip/Config.in"
 	source "package/snappy/Config.in"
+	source "package/stormlib/Config.in"
 	source "package/szip/Config.in"
 	source "package/zlib/Config.in"
 	source "package/zziplib/Config.in"
diff --git a/package/smpq/0001-CMake-Set-language-to-C.patch b/package/smpq/0001-CMake-Set-language-to-C.patch
new file mode 100644
index 0000000000..30624cc590
--- /dev/null
+++ b/package/smpq/0001-CMake-Set-language-to-C.patch
@@ -0,0 +1,29 @@
+From 70e43a4323f43d58a1b6c21bf251e7e8fe4cb345 Mon Sep 17 00:00:00 2001
+From: Gleb Mazovetskiy <glex.spb@gmail.com>
+Date: Mon, 11 Oct 2021 21:48:00 +0100
+Subject: [PATCH 1/3] CMake: Set language to C++
+
+Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
+---
+ CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 291bf7f..71fb61f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,11 @@
+ #
+ 
+ project(SMPQ)
++
++# StormLib is C++ and must be linked with a C++ linker (e.g. via g++ instead of gcc).
++file(GLOB_RECURSE CFILES "${CMAKE_SOURCE_DIR}/*.c")
++SET_SOURCE_FILES_PROPERTIES(${CFILES} PROPERTIES LANGUAGE CXX)
++
+ set(VERSION 1.6)
+ cmake_minimum_required(VERSION 2.6)
+ 
+-- 
+2.30.2
+
diff --git a/package/smpq/0002-CMake-Disable-version-check.patch b/package/smpq/0002-CMake-Disable-version-check.patch
new file mode 100644
index 0000000000..6333595849
--- /dev/null
+++ b/package/smpq/0002-CMake-Disable-version-check.patch
@@ -0,0 +1,32 @@
+From bce50c41d461dc53d304cd41efc561bc9fa01327 Mon Sep 17 00:00:00 2001
+From: Gleb Mazovetskiy <glex.spb@gmail.com>
+Date: Mon, 11 Oct 2021 21:48:32 +0100
+Subject: [PATCH 2/3] CMake: Disable version check
+
+Version check is currently broken. Disable it.
+
+Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
+---
+ CMakeLists.txt | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 71fb61f..2375b36 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,12 +46,6 @@ if(NOT STORMLIB_INCLUDE_DIR OR NOT STORMLIB_LIBRARY)
+ 		message(FATAL_ERROR "StormLib or storm library not found")
+ 	endif(NOT STORMLIB_LIBRARY)
+
+-	try_compile(CHECK ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/check.c COMPILE_DEFINITIONS -I${STORMLIB_INCLUDE_DIR})
+-
+-	if(NOT CHECK)
+-		message(FATAL_ERROR "Found old StormLib version")
+-	endif(NOT CHECK)
+-
+ 	message(STATUS "Found StormLib header: ${STORMLIB_INCLUDE_DIR}/StormLib.h")
+ 	message(STATUS "Found StormLib library: ${STORMLIB_LIBRARY}")
+
+--
+2.30.2
+
diff --git a/package/smpq/0003-CMake-Disable-manual-generation.patch b/package/smpq/0003-CMake-Disable-manual-generation.patch
new file mode 100644
index 0000000000..c293237cc9
--- /dev/null
+++ b/package/smpq/0003-CMake-Disable-manual-generation.patch
@@ -0,0 +1,37 @@
+From 6102660ba5ad0e8217e617fc53a6fc3d1bb12966 Mon Sep 17 00:00:00 2001
+From: Gleb Mazovetskiy <glex.spb@gmail.com>
+Date: Mon, 11 Oct 2021 21:49:57 +0100
+Subject: [PATCH 3/3] CMake: Disable manual generation
+
+We do not need the manual in buildroot and there is currently no
+dedicated way to disable it.
+
+Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
+---
+ CMakeLists.txt | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2375b36..3a8b7c2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -101,16 +101,6 @@ if(WITH_CMD)
+ 
+ 	install(TARGETS smpq DESTINATION bin)
+ 
+-	if(NOT CMAKE_CROSSCOMPILING)
+-
+-		add_executable(mangen ${MANGEN_SRCS})
+-		add_custom_command(OUTPUT smpq.1 COMMAND mangen > smpq.1 DEPENDS mangen)
+-		add_custom_target(man ALL DEPENDS smpq.1)
+-
+-		install(FILES ${CMAKE_CURRENT_BINARY_DIR}/smpq.1 DESTINATION share/man/man1)
+-
+-	endif(NOT CMAKE_CROSSCOMPILING)
+-
+ 	if(WIN32 AND WITH_NSIS)
+ 
+ 		find_package(SelfPackers REQUIRED)
+-- 
+2.30.2
+
diff --git a/package/smpq/Config.in b/package/smpq/Config.in
new file mode 100644
index 0000000000..589f5cf834
--- /dev/null
+++ b/package/smpq/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_SMPQ
+	bool "smpq"
+	select BR2_PACKAGE_SMPQ
+	help
+	  StormLib MPQ archiving utility
+
+	  This utility manipulates Blizzard MPQ archives.
+	  It supports extracting, appending, renaming and deleting files
+	  in MPQ archives, and creating new MPQ archives.
+
+	  https://launchpad.net/smpq
diff --git a/package/smpq/smpq.hash b/package/smpq/smpq.hash
new file mode 100644
index 0000000000..f14eaef49b
--- /dev/null
+++ b/package/smpq/smpq.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  b5d2dc8a5de8629b71ee5d3612b6e84d88418b86c5cd39ba315e9eb0462f18cb  smpq_1.6.orig.tar.gz
+sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  COPYING
diff --git a/package/smpq/smpq.mk b/package/smpq/smpq.mk
new file mode 100644
index 0000000000..34f87f7f45
--- /dev/null
+++ b/package/smpq/smpq.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# smpq
+#
+################################################################################
+
+SMPQ_VERSION = 1.6
+SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
+SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
+SMPQ_LICENSE = GPL-3.0+
+SMPQ_LICENSE_FILES = LICENSE
+SMPQ_DEPENDENCIES = stormlib
+HOST_SMPQ_DEPENDENCIES = host-stormlib
+SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+SMPQ_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
diff --git a/package/stormlib/Config.in b/package/stormlib/Config.in
new file mode 100644
index 0000000000..b2e4df3c62
--- /dev/null
+++ b/package/stormlib/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_STORMLIB
+	bool "stormlib"
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_ZLIB
+	help
+	  StormLib is a library that reads and writes Blizzard MPQ archives.
+
+	  https://github.com/ladislav-zezula/StormLib
diff --git a/package/stormlib/stormlib.hash b/package/stormlib/stormlib.hash
new file mode 100644
index 0000000000..dc5370b03d
--- /dev/null
+++ b/package/stormlib/stormlib.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  53b8befda3855a922e57a27f78c36feba7e9a32804da4b6592a3670c4e9cec98  stormlib-5ab093b7a57b8779dff06a08fac19d46c40b3329.tar.gz
+sha256  50b128e6750ed9d887e7a5748a6021238bb2f3bf34a5dd2768c410d932069e35  LICENSE
diff --git a/package/stormlib/stormlib.mk b/package/stormlib/stormlib.mk
new file mode 100644
index 0000000000..f2f7522002
--- /dev/null
+++ b/package/stormlib/stormlib.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# stormlib
+#
+################################################################################
+
+STORMLIB_VERSION = 5ab093b7a57b8779dff06a08fac19d46c40b3329
+STORMLIB_SITE = $(call github,ladislav-zezula,StormLib,$(STORMLIB_VERSION))
+STORMLIB_LICENSE = MIT
+STORMLIB_LICENSE_FILES = LICENSE
+STORMLIB_DEPENDENCIES = zlib bzip2
+HOST_STORMLIB_DEPENDENCIES = host-zlib host-bzip2
+STORMLIB_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v4 0/2] package: add smpq and StormLib
  2021-10-11 21:02   ` [Buildroot] [PATCH v3 " Gleb Mazovetskiy
@ 2021-10-11 21:21     ` Gleb Mazovetskiy
  2021-10-11 21:21       ` [Buildroot] [PATCH v4 1/2] package: add stormlib Gleb Mazovetskiy
  2021-10-11 21:21       ` [Buildroot] [PATCH v4 2/2] package: add smpq Gleb Mazovetskiy
  0 siblings, 2 replies; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-11 21:21 UTC (permalink / raw)
  To: buildroot; +Cc: Gleb Mazovetskiy, yann.morin.1998

SMPQ is a utility for working with Blizzard MPQ archives and StormLib is
the library for doing this that it depends on.

SMPQ/StormLib is a runtime and/or build-time dependency of several
source ports / reimplementations of Blizzard games, such as DevilutionX.

These packages are already available in other distros, such as Debian.

Changes v3 -> v4 (Suggested by Yann E. MORIN):

  - Split into two patches: one per package.

Changes v2 -> v3:

  - Added missing patch files.

Changes v1 -> v2 (Suggested by Yann E. MORIN):

  - Converted sed substitutions to patch files.
  - Re-ordered mk variables per the suggested order.

Gleb Mazovetskiy (2):
  package: add stormlib
  package: add smpq

 package/Config.in                             |  2 +
 .../smpq/0001-CMake-Set-language-to-C.patch   | 29 +++++++++++++++
 .../0002-CMake-Disable-version-check.patch    | 32 ++++++++++++++++
 ...0003-CMake-Disable-manual-generation.patch | 37 +++++++++++++++++++
 package/smpq/Config.in                        | 11 ++++++
 package/smpq/smpq.hash                        |  3 ++
 package/smpq/smpq.mk                          | 19 ++++++++++
 package/stormlib/Config.in                    |  8 ++++
 package/stormlib/stormlib.hash                |  3 ++
 package/stormlib/stormlib.mk                  | 16 ++++++++
 10 files changed, 160 insertions(+)
 create mode 100644 package/smpq/0001-CMake-Set-language-to-C.patch
 create mode 100644 package/smpq/0002-CMake-Disable-version-check.patch
 create mode 100644 package/smpq/0003-CMake-Disable-manual-generation.patch
 create mode 100644 package/smpq/Config.in
 create mode 100644 package/smpq/smpq.hash
 create mode 100644 package/smpq/smpq.mk
 create mode 100644 package/stormlib/Config.in
 create mode 100644 package/stormlib/stormlib.hash
 create mode 100644 package/stormlib/stormlib.mk

-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v4 1/2] package: add stormlib
  2021-10-11 21:21     ` [Buildroot] [PATCH v4 0/2] package: add smpq and StormLib Gleb Mazovetskiy
@ 2021-10-11 21:21       ` Gleb Mazovetskiy
  2021-10-11 21:21       ` [Buildroot] [PATCH v4 2/2] package: add smpq Gleb Mazovetskiy
  1 sibling, 0 replies; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-11 21:21 UTC (permalink / raw)
  To: buildroot; +Cc: Gleb Mazovetskiy, Samuel Martin, yann.morin.1998

StormLib is a library for working with Blizzard SMPQ archives.

StormLib is a runtime and/or build-time dependency of several
source ports / reimplementations of Blizzard games, such as DevilutionX.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
---
 package/Config.in              |  1 +
 package/stormlib/Config.in     |  8 ++++++++
 package/stormlib/stormlib.hash |  3 +++
 package/stormlib/stormlib.mk   | 16 ++++++++++++++++
 4 files changed, 28 insertions(+)
 create mode 100644 package/stormlib/Config.in
 create mode 100644 package/stormlib/stormlib.hash
 create mode 100644 package/stormlib/stormlib.mk

diff --git a/package/Config.in b/package/Config.in
index 9fed0ab4cb..2b561e6eaf 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1360,6 +1360,7 @@ menu "Compression and decompression"
 	source "package/lzo/Config.in"
 	source "package/minizip/Config.in"
 	source "package/snappy/Config.in"
+	source "package/stormlib/Config.in"
 	source "package/szip/Config.in"
 	source "package/zlib/Config.in"
 	source "package/zziplib/Config.in"
diff --git a/package/stormlib/Config.in b/package/stormlib/Config.in
new file mode 100644
index 0000000000..b2e4df3c62
--- /dev/null
+++ b/package/stormlib/Config.in
@@ -0,0 +1,8 @@
+config BR2_PACKAGE_STORMLIB
+	bool "stormlib"
+	select BR2_PACKAGE_BZIP2
+	select BR2_PACKAGE_ZLIB
+	help
+	  StormLib is a library that reads and writes Blizzard MPQ archives.
+
+	  https://github.com/ladislav-zezula/StormLib
diff --git a/package/stormlib/stormlib.hash b/package/stormlib/stormlib.hash
new file mode 100644
index 0000000000..dc5370b03d
--- /dev/null
+++ b/package/stormlib/stormlib.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  53b8befda3855a922e57a27f78c36feba7e9a32804da4b6592a3670c4e9cec98  stormlib-5ab093b7a57b8779dff06a08fac19d46c40b3329.tar.gz
+sha256  50b128e6750ed9d887e7a5748a6021238bb2f3bf34a5dd2768c410d932069e35  LICENSE
diff --git a/package/stormlib/stormlib.mk b/package/stormlib/stormlib.mk
new file mode 100644
index 0000000000..f2f7522002
--- /dev/null
+++ b/package/stormlib/stormlib.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# stormlib
+#
+################################################################################
+
+STORMLIB_VERSION = 5ab093b7a57b8779dff06a08fac19d46c40b3329
+STORMLIB_SITE = $(call github,ladislav-zezula,StormLib,$(STORMLIB_VERSION))
+STORMLIB_LICENSE = MIT
+STORMLIB_LICENSE_FILES = LICENSE
+STORMLIB_DEPENDENCIES = zlib bzip2
+HOST_STORMLIB_DEPENDENCIES = host-zlib host-bzip2
+STORMLIB_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [Buildroot] [PATCH v4 2/2] package: add smpq
  2021-10-11 21:21     ` [Buildroot] [PATCH v4 0/2] package: add smpq and StormLib Gleb Mazovetskiy
  2021-10-11 21:21       ` [Buildroot] [PATCH v4 1/2] package: add stormlib Gleb Mazovetskiy
@ 2021-10-11 21:21       ` Gleb Mazovetskiy
  2021-10-17  9:37         ` Thomas Petazzoni
  1 sibling, 1 reply; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-11 21:21 UTC (permalink / raw)
  To: buildroot; +Cc: Gleb Mazovetskiy, Samuel Martin, yann.morin.1998

smpq is a utility for manipulating Blizzard MPQ archives.

smpq is a build-time dependency of several source ports /
reimplementations of Blizzard games, such as DevilutionX.

Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
---
 package/Config.in                             |  1 +
 .../smpq/0001-CMake-Set-language-to-C.patch   | 29 +++++++++++++++
 .../0002-CMake-Disable-version-check.patch    | 32 ++++++++++++++++
 ...0003-CMake-Disable-manual-generation.patch | 37 +++++++++++++++++++
 package/smpq/Config.in                        | 11 ++++++
 package/smpq/smpq.hash                        |  3 ++
 package/smpq/smpq.mk                          | 19 ++++++++++
 7 files changed, 132 insertions(+)
 create mode 100644 package/smpq/0001-CMake-Set-language-to-C.patch
 create mode 100644 package/smpq/0002-CMake-Disable-version-check.patch
 create mode 100644 package/smpq/0003-CMake-Disable-manual-generation.patch
 create mode 100644 package/smpq/Config.in
 create mode 100644 package/smpq/smpq.hash
 create mode 100644 package/smpq/smpq.mk

diff --git a/package/Config.in b/package/Config.in
index 2b561e6eaf..890a6be135 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -74,6 +74,7 @@ menu "Compressors and decompressors"
 	source "package/p7zip/Config.in"
 	source "package/pigz/Config.in"
 	source "package/pixz/Config.in"
+	source "package/smpq/Config.in"
 	source "package/unrar/Config.in"
 	source "package/unzip/Config.in"
 	source "package/xz/Config.in"
diff --git a/package/smpq/0001-CMake-Set-language-to-C.patch b/package/smpq/0001-CMake-Set-language-to-C.patch
new file mode 100644
index 0000000000..30624cc590
--- /dev/null
+++ b/package/smpq/0001-CMake-Set-language-to-C.patch
@@ -0,0 +1,29 @@
+From 70e43a4323f43d58a1b6c21bf251e7e8fe4cb345 Mon Sep 17 00:00:00 2001
+From: Gleb Mazovetskiy <glex.spb@gmail.com>
+Date: Mon, 11 Oct 2021 21:48:00 +0100
+Subject: [PATCH 1/3] CMake: Set language to C++
+
+Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
+---
+ CMakeLists.txt | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 291bf7f..71fb61f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -18,6 +18,11 @@
+ #
+ 
+ project(SMPQ)
++
++# StormLib is C++ and must be linked with a C++ linker (e.g. via g++ instead of gcc).
++file(GLOB_RECURSE CFILES "${CMAKE_SOURCE_DIR}/*.c")
++SET_SOURCE_FILES_PROPERTIES(${CFILES} PROPERTIES LANGUAGE CXX)
++
+ set(VERSION 1.6)
+ cmake_minimum_required(VERSION 2.6)
+ 
+-- 
+2.30.2
+
diff --git a/package/smpq/0002-CMake-Disable-version-check.patch b/package/smpq/0002-CMake-Disable-version-check.patch
new file mode 100644
index 0000000000..6333595849
--- /dev/null
+++ b/package/smpq/0002-CMake-Disable-version-check.patch
@@ -0,0 +1,32 @@
+From bce50c41d461dc53d304cd41efc561bc9fa01327 Mon Sep 17 00:00:00 2001
+From: Gleb Mazovetskiy <glex.spb@gmail.com>
+Date: Mon, 11 Oct 2021 21:48:32 +0100
+Subject: [PATCH 2/3] CMake: Disable version check
+
+Version check is currently broken. Disable it.
+
+Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
+---
+ CMakeLists.txt | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 71fb61f..2375b36 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,12 +46,6 @@ if(NOT STORMLIB_INCLUDE_DIR OR NOT STORMLIB_LIBRARY)
+ 		message(FATAL_ERROR "StormLib or storm library not found")
+ 	endif(NOT STORMLIB_LIBRARY)
+
+-	try_compile(CHECK ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/check.c COMPILE_DEFINITIONS -I${STORMLIB_INCLUDE_DIR})
+-
+-	if(NOT CHECK)
+-		message(FATAL_ERROR "Found old StormLib version")
+-	endif(NOT CHECK)
+-
+ 	message(STATUS "Found StormLib header: ${STORMLIB_INCLUDE_DIR}/StormLib.h")
+ 	message(STATUS "Found StormLib library: ${STORMLIB_LIBRARY}")
+
+--
+2.30.2
+
diff --git a/package/smpq/0003-CMake-Disable-manual-generation.patch b/package/smpq/0003-CMake-Disable-manual-generation.patch
new file mode 100644
index 0000000000..c293237cc9
--- /dev/null
+++ b/package/smpq/0003-CMake-Disable-manual-generation.patch
@@ -0,0 +1,37 @@
+From 6102660ba5ad0e8217e617fc53a6fc3d1bb12966 Mon Sep 17 00:00:00 2001
+From: Gleb Mazovetskiy <glex.spb@gmail.com>
+Date: Mon, 11 Oct 2021 21:49:57 +0100
+Subject: [PATCH 3/3] CMake: Disable manual generation
+
+We do not need the manual in buildroot and there is currently no
+dedicated way to disable it.
+
+Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
+---
+ CMakeLists.txt | 10 ----------
+ 1 file changed, 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2375b36..3a8b7c2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -101,16 +101,6 @@ if(WITH_CMD)
+ 
+ 	install(TARGETS smpq DESTINATION bin)
+ 
+-	if(NOT CMAKE_CROSSCOMPILING)
+-
+-		add_executable(mangen ${MANGEN_SRCS})
+-		add_custom_command(OUTPUT smpq.1 COMMAND mangen > smpq.1 DEPENDS mangen)
+-		add_custom_target(man ALL DEPENDS smpq.1)
+-
+-		install(FILES ${CMAKE_CURRENT_BINARY_DIR}/smpq.1 DESTINATION share/man/man1)
+-
+-	endif(NOT CMAKE_CROSSCOMPILING)
+-
+ 	if(WIN32 AND WITH_NSIS)
+ 
+ 		find_package(SelfPackers REQUIRED)
+-- 
+2.30.2
+
diff --git a/package/smpq/Config.in b/package/smpq/Config.in
new file mode 100644
index 0000000000..589f5cf834
--- /dev/null
+++ b/package/smpq/Config.in
@@ -0,0 +1,11 @@
+config BR2_PACKAGE_SMPQ
+	bool "smpq"
+	select BR2_PACKAGE_SMPQ
+	help
+	  StormLib MPQ archiving utility
+
+	  This utility manipulates Blizzard MPQ archives.
+	  It supports extracting, appending, renaming and deleting files
+	  in MPQ archives, and creating new MPQ archives.
+
+	  https://launchpad.net/smpq
diff --git a/package/smpq/smpq.hash b/package/smpq/smpq.hash
new file mode 100644
index 0000000000..f14eaef49b
--- /dev/null
+++ b/package/smpq/smpq.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  b5d2dc8a5de8629b71ee5d3612b6e84d88418b86c5cd39ba315e9eb0462f18cb  smpq_1.6.orig.tar.gz
+sha256  8ceb4b9ee5adedde47b31e975c1d90c73ad27b6b165a1dcd80c7c545eb65b903  COPYING
diff --git a/package/smpq/smpq.mk b/package/smpq/smpq.mk
new file mode 100644
index 0000000000..34f87f7f45
--- /dev/null
+++ b/package/smpq/smpq.mk
@@ -0,0 +1,19 @@
+################################################################################
+#
+# smpq
+#
+################################################################################
+
+SMPQ_VERSION = 1.6
+SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
+SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
+SMPQ_LICENSE = GPL-3.0+
+SMPQ_LICENSE_FILES = LICENSE
+SMPQ_DEPENDENCIES = stormlib
+HOST_SMPQ_DEPENDENCIES = host-stormlib
+SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF
+SMPQ_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
+$(eval $(host-cmake-package))
-- 
2.30.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v4 2/2] package: add smpq
  2021-10-11 21:21       ` [Buildroot] [PATCH v4 2/2] package: add smpq Gleb Mazovetskiy
@ 2021-10-17  9:37         ` Thomas Petazzoni
  2021-10-17 14:05           ` Gleb Mazovetskiy
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2021-10-17  9:37 UTC (permalink / raw)
  To: Gleb Mazovetskiy; +Cc: Samuel Martin, yann.morin.1998, buildroot

Hello Gleb,

On Mon, 11 Oct 2021 22:21:25 +0100
Gleb Mazovetskiy <glex.spb@gmail.com> wrote:

> smpq is a utility for manipulating Blizzard MPQ archives.
> 
> smpq is a build-time dependency of several source ports /
> reimplementations of Blizzard games, such as DevilutionX.
> 
> Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>

Thanks for this contribution. Could you clarify practical speaking in
which context this library is useful?

> --- /dev/null
> +++ b/package/smpq/smpq.mk
> @@ -0,0 +1,19 @@
> +################################################################################
> +#
> +# smpq
> +#
> +################################################################################
> +
> +SMPQ_VERSION = 1.6
> +SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
> +SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
> +SMPQ_LICENSE = GPL-3.0+
> +SMPQ_LICENSE_FILES = LICENSE
> +SMPQ_DEPENDENCIES = stormlib
> +HOST_SMPQ_DEPENDENCIES = host-stormlib
> +SMPQ_CONF_OPTS += -DWITH_KDE=OFF
> +HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF
> +SMPQ_INSTALL_STAGING = YES
> +
> +$(eval $(cmake-package))
> +$(eval $(host-cmake-package))

Why do you need a host variant of this package? It isn't used by
anything else. Could you clarify this?

Note: for both of your package submissions, the commit title should be
"package/<foo>: new package". And also, in each patch adding the
packages, you need to add yourself in the DEVELOPERS file for this
package.

Thanks!

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v4 2/2] package: add smpq
  2021-10-17  9:37         ` Thomas Petazzoni
@ 2021-10-17 14:05           ` Gleb Mazovetskiy
  2021-10-20 20:34             ` Thomas Petazzoni
  0 siblings, 1 reply; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-17 14:05 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Samuel Martin, Yann E. MORIN, buildroot


[-- Attachment #1.1: Type: text/plain, Size: 2179 bytes --]

The use case for me is to build DevilutionX (Diablo 1 source port) in a
gaming-oriented buildroot-based distro (batocera.linux).

DevilutionX produces an MPQ archive during the build process using smpq, so
smpq needs to be a host package.

I'm not near a computer for the next few days so I'd appreciate if you
could adjust the commit message and DEVELOPERS when merging.

Thanks, Gleb


On Sun, 17 Oct 2021, 04:37 Thomas Petazzoni, <thomas.petazzoni@bootlin.com>
wrote:

> Hello Gleb,
>
> On Mon, 11 Oct 2021 22:21:25 +0100
> Gleb Mazovetskiy <glex.spb@gmail.com> wrote:
>
> > smpq is a utility for manipulating Blizzard MPQ archives.
> >
> > smpq is a build-time dependency of several source ports /
> > reimplementations of Blizzard games, such as DevilutionX.
> >
> > Signed-off-by: Gleb Mazovetskiy <glex.spb@gmail.com>
>
> Thanks for this contribution. Could you clarify practical speaking in
> which context this library is useful?
>
> > --- /dev/null
> > +++ b/package/smpq/smpq.mk
> > @@ -0,0 +1,19 @@
> >
> +################################################################################
> > +#
> > +# smpq
> > +#
> >
> +################################################################################
> > +
> > +SMPQ_VERSION = 1.6
> > +SMPQ_SOURCE = smpq_$(SMPQ_VERSION).orig.tar.gz
> > +SMPQ_SITE = https://launchpad.net/smpq/trunk/$(SMPQ_VERSION)/+download
> > +SMPQ_LICENSE = GPL-3.0+
> > +SMPQ_LICENSE_FILES = LICENSE
> > +SMPQ_DEPENDENCIES = stormlib
> > +HOST_SMPQ_DEPENDENCIES = host-stormlib
> > +SMPQ_CONF_OPTS += -DWITH_KDE=OFF
> > +HOST_SMPQ_CONF_OPTS += -DWITH_KDE=OFF
> > +SMPQ_INSTALL_STAGING = YES
> > +
> > +$(eval $(cmake-package))
> > +$(eval $(host-cmake-package))
>
> Why do you need a host variant of this package? It isn't used by
> anything else. Could you clarify this?
>
> Note: for both of your package submissions, the commit title should be
> "package/<foo>: new package". And also, in each patch adding the
> packages, you need to add yourself in the DEVELOPERS file for this
> package.
>
> Thanks!
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>

[-- Attachment #1.2: Type: text/html, Size: 3314 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v4 2/2] package: add smpq
  2021-10-17 14:05           ` Gleb Mazovetskiy
@ 2021-10-20 20:34             ` Thomas Petazzoni
  2021-10-21  0:08               ` Gleb Mazovetskiy
  0 siblings, 1 reply; 11+ messages in thread
From: Thomas Petazzoni @ 2021-10-20 20:34 UTC (permalink / raw)
  To: Gleb Mazovetskiy; +Cc: Samuel Martin, Yann E. MORIN, buildroot

Hello Gleb,

On Sun, 17 Oct 2021 09:05:34 -0500
Gleb Mazovetskiy <glex.spb@gmail.com> wrote:

> The use case for me is to build DevilutionX (Diablo 1 source port) in a
> gaming-oriented buildroot-based distro (batocera.linux).
> 
> DevilutionX produces an MPQ archive during the build process using smpq, so
> smpq needs to be a host package.

OK. But are you going to submit DevilutionX as a Buildroot package? My
only concern is that just by itself, smpg is not very useful. So having
that in Buildroot without having any of the packages that use it and
that provide some "useful" functionality is not very interesting from a
Buildroot maintenance point of view.

> I'm not near a computer for the next few days so I'd appreciate if you
> could adjust the commit message and DEVELOPERS when merging.

No worries about the timing, we're not in a hurry. There might be other
aspects in your patches to review, but I'd like first to understand
whether we want these packages in Buildroot in the first place.

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [Buildroot] [PATCH v4 2/2] package: add smpq
  2021-10-20 20:34             ` Thomas Petazzoni
@ 2021-10-21  0:08               ` Gleb Mazovetskiy
  0 siblings, 0 replies; 11+ messages in thread
From: Gleb Mazovetskiy @ 2021-10-21  0:08 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: Samuel Martin, Yann E. MORIN, buildroot


[-- Attachment #1.1: Type: text/plain, Size: 1360 bytes --]

I can certainly submit devilutionx to buildroot if you want me to!

On Wed, 20 Oct 2021 at 15:34, Thomas Petazzoni <thomas.petazzoni@bootlin.com>
wrote:

> Hello Gleb,
>
> On Sun, 17 Oct 2021 09:05:34 -0500
> Gleb Mazovetskiy <glex.spb@gmail.com> wrote:
>
> > The use case for me is to build DevilutionX (Diablo 1 source port) in a
> > gaming-oriented buildroot-based distro (batocera.linux).
> >
> > DevilutionX produces an MPQ archive during the build process using smpq,
> so
> > smpq needs to be a host package.
>
> OK. But are you going to submit DevilutionX as a Buildroot package? My
> only concern is that just by itself, smpg is not very useful. So having
> that in Buildroot without having any of the packages that use it and
> that provide some "useful" functionality is not very interesting from a
> Buildroot maintenance point of view.
>
> > I'm not near a computer for the next few days so I'd appreciate if you
> > could adjust the commit message and DEVELOPERS when merging.
>
> No worries about the timing, we're not in a hurry. There might be other
> aspects in your patches to review, but I'd like first to understand
> whether we want these packages in Buildroot in the first place.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>

[-- Attachment #1.2: Type: text/html, Size: 1976 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-10-21  0:09 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-10 17:09 [Buildroot] [PATCH] package: add smpq and stormlib Gleb Mazovetskiy
2021-10-10 21:07 ` Yann E. MORIN
2021-10-11 21:00 ` [Buildroot] [PATCH v2 1/1] " Gleb Mazovetskiy
2021-10-11 21:02   ` [Buildroot] [PATCH v3 " Gleb Mazovetskiy
2021-10-11 21:21     ` [Buildroot] [PATCH v4 0/2] package: add smpq and StormLib Gleb Mazovetskiy
2021-10-11 21:21       ` [Buildroot] [PATCH v4 1/2] package: add stormlib Gleb Mazovetskiy
2021-10-11 21:21       ` [Buildroot] [PATCH v4 2/2] package: add smpq Gleb Mazovetskiy
2021-10-17  9:37         ` Thomas Petazzoni
2021-10-17 14:05           ` Gleb Mazovetskiy
2021-10-20 20:34             ` Thomas Petazzoni
2021-10-21  0:08               ` Gleb Mazovetskiy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.