diff mbox series

umtprd: Add package

Message ID 20191107164513.5760-1-paul@crapouillou.net
State Changes Requested
Headers show
Series umtprd: Add package | expand

Commit Message

Paul Cercueil Nov. 7, 2019, 4:45 p.m. UTC
uMTP-Responder is a lightweight USB Media Transfer Protocol (MTP)
responder daemon for GNU/Linux.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
---
 package/Config.in                             |  1 +
 ...thread.h-include-in-inc-mtp.h-header.patch | 28 +++++++++++++++++++
 package/umtprd/Config.in                      |  6 ++++
 package/umtprd/umtprd.hash                    |  2 ++
 package/umtprd/umtprd.mk                      | 20 +++++++++++++
 5 files changed, 57 insertions(+)
 create mode 100644 package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch
 create mode 100644 package/umtprd/Config.in
 create mode 100644 package/umtprd/umtprd.hash
 create mode 100644 package/umtprd/umtprd.mk

Comments

Baruch Siach Nov. 7, 2019, 5:05 p.m. UTC | #1
Hi Paul,

On Thu, Nov 07, 2019 at 05:45:13PM +0100, Paul Cercueil wrote:
> uMTP-Responder is a lightweight USB Media Transfer Protocol (MTP)
> responder daemon for GNU/Linux.
> 
> Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> ---
>  package/Config.in                             |  1 +
>  ...thread.h-include-in-inc-mtp.h-header.patch | 28 +++++++++++++++++++
>  package/umtprd/Config.in                      |  6 ++++
>  package/umtprd/umtprd.hash                    |  2 ++
>  package/umtprd/umtprd.mk                      | 20 +++++++++++++
>  5 files changed, 57 insertions(+)
>  create mode 100644 package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch
>  create mode 100644 package/umtprd/Config.in
>  create mode 100644 package/umtprd/umtprd.hash
>  create mode 100644 package/umtprd/umtprd.mk
> 
> diff --git a/package/Config.in b/package/Config.in
> index f72c77b416..4d945e0b04 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -550,6 +550,7 @@ endmenu
>  	source "package/udev/Config.in"
>  	source "package/udisks/Config.in"
>  	source "package/uhubctl/Config.in"
> +	source "package/umtprd/Config.in"
>  	source "package/upower/Config.in"
>  	source "package/usb_modeswitch/Config.in"
>  	source "package/usb_modeswitch_data/Config.in"
> diff --git a/package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch b/package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch
> new file mode 100644
> index 0000000000..ea0b31d052
> --- /dev/null
> +++ b/package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch
> @@ -0,0 +1,28 @@
> +From 6572d07a68466aaa3a7efcb4a55cc61ff31cfde3 Mon Sep 17 00:00:00 2001
> +From: Paul Cercueil <paul@crapouillou.net>
> +Date: Thu, 30 May 2019 00:23:11 +0200
> +Subject: [PATCH] Add missing <pthread.h> include in inc/mtp.h header
> +
> +This fixes the build under GCC 8 with the musl C library.

Please add a link to your upstream pull request:

  https://github.com/viveris/uMTP-Responder/pull/28

> +
> +Signed-off-by: Paul Cercueil <paul@crapouillou.net>
> +---
> + inc/mtp.h | 2 ++
> + 1 file changed, 2 insertions(+)
> +
> +diff --git a/inc/mtp.h b/inc/mtp.h
> +index 238de68..5f5b804 100644
> +--- a/inc/mtp.h
> ++++ b/inc/mtp.h
> +@@ -26,6 +26,8 @@
> + #ifndef _INC_MTP_H_
> + #define _INC_MTP_H_
> + 
> ++#include <pthread.h>

This most likely means ...

> ++
> + #define MAX_STORAGE_NB 16
> + #define MAX_CFG_STRING_SIZE 512
> + 
> +-- 
> +2.21.0.593.g511ec345e18
> +
> diff --git a/package/umtprd/Config.in b/package/umtprd/Config.in
> new file mode 100644
> index 0000000000..28c08ce5bd
> --- /dev/null
> +++ b/package/umtprd/Config.in
> @@ -0,0 +1,6 @@
> +config BR2_PACKAGE_UMTPRD
> +	bool "umtprd"
> +	help
> +	  Lightweight USB MTP responder daemon for GNU/Linux
> +
> +	  https://github.com/viveris/uMTP-Responder

... that the package needs to depend on BR2_TOOLCHAIN_HAS_THREADS?

baruch

> diff --git a/package/umtprd/umtprd.hash b/package/umtprd/umtprd.hash
> new file mode 100644
> index 0000000000..aa91696613
> --- /dev/null
> +++ b/package/umtprd/umtprd.hash
> @@ -0,0 +1,2 @@
> +# Locally computed
> +sha256	e1301bdd89170cc2c679446c1cc5873feaacd061bf0ab547fc0a11670bae9163	umtprd-1.0.0.tar.gz
> diff --git a/package/umtprd/umtprd.mk b/package/umtprd/umtprd.mk
> new file mode 100644
> index 0000000000..8460f82b7d
> --- /dev/null
> +++ b/package/umtprd/umtprd.mk
> @@ -0,0 +1,20 @@
> +################################################################################
> +#
> +# umtprd
> +#
> +################################################################################
> +
> +UMTPRD_VERSION = 1.0.0
> +UMTPRD_SITE = https://github.com/viveris/uMTP-Responder/archive
> +UMTPRD_LICENSE = GPL-3.0
> +UMTPRD_LICENSE_FILES = LICENSE
> +
> +define UMTPRD_BUILD_CMDS
> +	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
> +endef
> +
> +define UMTPRD_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/umtprd $(TARGET_DIR)/usr/sbin/umtprd
> +endef
> +
> +$(eval $(generic-package))
Yann E. MORIN Nov. 7, 2019, 5:55 p.m. UTC | #2
Paul, All,

On 2019-11-07 19:05 +0200, Baruch Siach spake thusly:
> On Thu, Nov 07, 2019 at 05:45:13PM +0100, Paul Cercueil wrote:
> > uMTP-Responder is a lightweight USB Media Transfer Protocol (MTP)
> > responder daemon for GNU/Linux.
[--SNIP--]
> > ++#include <pthread.h>
> This most likely means ...
> > +config BR2_PACKAGE_UMTPRD
> > +	bool "umtprd"
> ... that the package needs to depend on BR2_TOOLCHAIN_HAS_THREADS?

It also needs kernel headers >= 3.15 (for FUNCTIONFS_HAS_FS_DESC and
FUNCTIONFS_HAS_HS_DESC in functionfs.h)

Regards,
Yann E. MORIN.
Thomas Petazzoni Nov. 7, 2019, 9:09 p.m. UTC | #3
Hello Paul,

Some comments in addition to the ones done by Baruch and Yann.

On Thu,  7 Nov 2019 17:45:13 +0100
Paul Cercueil <paul@crapouillou.net> wrote:

>  package/Config.in                             |  1 +
>  ...thread.h-include-in-inc-mtp.h-header.patch | 28 +++++++++++++++++++
>  package/umtprd/Config.in                      |  6 ++++
>  package/umtprd/umtprd.hash                    |  2 ++
>  package/umtprd/umtprd.mk                      | 20 +++++++++++++
>  5 files changed, 57 insertions(+)

You should add an entry in the DEVELOPERS file.


> diff --git a/package/umtprd/umtprd.hash b/package/umtprd/umtprd.hash
> new file mode 100644
> index 0000000000..aa91696613
> --- /dev/null
> +++ b/package/umtprd/umtprd.hash
> @@ -0,0 +1,2 @@
> +# Locally computed
> +sha256	e1301bdd89170cc2c679446c1cc5873feaacd061bf0ab547fc0a11670bae9163	umtprd-1.0.0.tar.gz

Please add a hash for the license file.

> diff --git a/package/umtprd/umtprd.mk b/package/umtprd/umtprd.mk
> new file mode 100644
> index 0000000000..8460f82b7d
> --- /dev/null
> +++ b/package/umtprd/umtprd.mk
> @@ -0,0 +1,20 @@
> +################################################################################
> +#
> +# umtprd
> +#
> +################################################################################
> +
> +UMTPRD_VERSION = 1.0.0
> +UMTPRD_SITE = https://github.com/viveris/uMTP-Responder/archive

It is never clear to me if those URLs are auto-generated tarballs, or
tarballs produced by the project maintainer and uploaded to Github. If
these are auto-generated tarballs, then the "github" macro should be
used instead.

Thanks,

Thomas
Paul Cercueil Nov. 13, 2019, 11:16 a.m. UTC | #4
Hi Thomas,


Le jeu., nov. 7, 2019 at 22:09, Thomas Petazzoni 
<thomas.petazzoni@bootlin.com> a écrit :
> Hello Paul,
> 
> Some comments in addition to the ones done by Baruch and Yann.
> 
> On Thu,  7 Nov 2019 17:45:13 +0100
> Paul Cercueil <paul@crapouillou.net> wrote:
> 
>>   package/Config.in                             |  1 +
>>   ...thread.h-include-in-inc-mtp.h-header.patch | 28 
>> +++++++++++++++++++
>>   package/umtprd/Config.in                      |  6 ++++
>>   package/umtprd/umtprd.hash                    |  2 ++
>>   package/umtprd/umtprd.mk                      | 20 +++++++++++++
>>   5 files changed, 57 insertions(+)
> 
> You should add an entry in the DEVELOPERS file.
> 
> 
>>  diff --git a/package/umtprd/umtprd.hash b/package/umtprd/umtprd.hash
>>  new file mode 100644
>>  index 0000000000..aa91696613
>>  --- /dev/null
>>  +++ b/package/umtprd/umtprd.hash
>>  @@ -0,0 +1,2 @@
>>  +# Locally computed
>>  
>> +sha256	e1301bdd89170cc2c679446c1cc5873feaacd061bf0ab547fc0a11670bae9163	umtprd-1.0.0.tar.gz
> 
> Please add a hash for the license file.
> 
>>  diff --git a/package/umtprd/umtprd.mk b/package/umtprd/umtprd.mk
>>  new file mode 100644
>>  index 0000000000..8460f82b7d
>>  --- /dev/null
>>  +++ b/package/umtprd/umtprd.mk
>>  @@ -0,0 +1,20 @@
>>  
>> +################################################################################
>>  +#
>>  +# umtprd
>>  +#
>>  
>> +################################################################################
>>  +
>>  +UMTPRD_VERSION = 1.0.0
>>  +UMTPRD_SITE = https://github.com/viveris/uMTP-Responder/archive
> 
> It is never clear to me if those URLs are auto-generated tarballs, or
> tarballs produced by the project maintainer and uploaded to Github. If
> these are auto-generated tarballs, then the "github" macro should be
> used instead.

It's a release manually uploaded to github, that's why I didn't use the 
"github" macro.

Cheers,
-Paul

> 
> Thanks,
> 
> Thomas
> --
> Thomas Petazzoni, CTO, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com
Arnout Vandecappelle Nov. 17, 2019, 5:16 p.m. UTC | #5
On 07/11/2019 22:09, Thomas Petazzoni wrote:
> Hello Paul,
> 
> Some comments in addition to the ones done by Baruch and Yann.
> 
> On Thu,  7 Nov 2019 17:45:13 +0100
> Paul Cercueil <paul@crapouillou.net> wrote:
> 
>>  package/Config.in                             |  1 +
>>  ...thread.h-include-in-inc-mtp.h-header.patch | 28 +++++++++++++++++++
>>  package/umtprd/Config.in                      |  6 ++++
>>  package/umtprd/umtprd.hash                    |  2 ++
>>  package/umtprd/umtprd.mk                      | 20 +++++++++++++
>>  5 files changed, 57 insertions(+)
> 
> You should add an entry in the DEVELOPERS file.
> 
> 
>> diff --git a/package/umtprd/umtprd.hash b/package/umtprd/umtprd.hash
>> new file mode 100644
>> index 0000000000..aa91696613
>> --- /dev/null
>> +++ b/package/umtprd/umtprd.hash
>> @@ -0,0 +1,2 @@
>> +# Locally computed
>> +sha256	e1301bdd89170cc2c679446c1cc5873feaacd061bf0ab547fc0a11670bae9163	umtprd-1.0.0.tar.gz
> 
> Please add a hash for the license file.
> 
>> diff --git a/package/umtprd/umtprd.mk b/package/umtprd/umtprd.mk
>> new file mode 100644
>> index 0000000000..8460f82b7d
>> --- /dev/null
>> +++ b/package/umtprd/umtprd.mk
>> @@ -0,0 +1,20 @@
>> +################################################################################
>> +#
>> +# umtprd
>> +#
>> +################################################################################
>> +
>> +UMTPRD_VERSION = 1.0.0
>> +UMTPRD_SITE = https://github.com/viveris/uMTP-Responder/archive
> 
> It is never clear to me if those URLs are auto-generated tarballs, or
> tarballs produced by the project maintainer and uploaded to Github. If
> these are auto-generated tarballs, then the "github" macro should be
> used instead.

 The documentation mentions it [1]: the uploaded tarballs have a different icon.

 Actually, there's an easier way to see it: if the URL has 'archive', then it's
automatically generated. If it has 'releases/download', then it's been uploaded.

 So in this case, it actually *is* an autogenerated tarball.

 The original reason to use the github helper was because the URL construction
had changed twice in a short time. That's no longer the case.

 Now, the reason is that it gives better tarball names. Normally, the URL is:

https://github.com/<project>/<repo>/archive/<version>.tar.gz

so you get a tarball called <version>.tar.gz. The github helper uses a trick to
get a good tarball name: it constructs the following URL:

https://github.com/<project>/<repo>/archive/<version>/<foo>.tar.gz

github will use <version> as the version and ignore the whole <foo> thing. This
allows us to set <foo> to $(PKG_NAME)-$(PKG_VERSION) and we get a nicely named
tarball.

 In this particular case, the tag is in fact umtprd-1.0.0. So, using the normal
URL gives a conveniently-named tarball, and using github-helper would actually
make it weirder:

UMTPRD_SITE = $(call github,viveris,uMTP-Responder,umtprd-$(UMTPRD_VERSION))

 Therefore, I tend to agree that using the archive link is better in this case.

 Regards,
 Arnout


[1] https://buildroot.org/downloads/manual/manual.html#github-download-url

> 
> Thanks,
> 
> Thomas
>
diff mbox series

Patch

diff --git a/package/Config.in b/package/Config.in
index f72c77b416..4d945e0b04 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -550,6 +550,7 @@  endmenu
 	source "package/udev/Config.in"
 	source "package/udisks/Config.in"
 	source "package/uhubctl/Config.in"
+	source "package/umtprd/Config.in"
 	source "package/upower/Config.in"
 	source "package/usb_modeswitch/Config.in"
 	source "package/usb_modeswitch_data/Config.in"
diff --git a/package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch b/package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch
new file mode 100644
index 0000000000..ea0b31d052
--- /dev/null
+++ b/package/umtprd/0001-Add-missing-pthread.h-include-in-inc-mtp.h-header.patch
@@ -0,0 +1,28 @@ 
+From 6572d07a68466aaa3a7efcb4a55cc61ff31cfde3 Mon Sep 17 00:00:00 2001
+From: Paul Cercueil <paul@crapouillou.net>
+Date: Thu, 30 May 2019 00:23:11 +0200
+Subject: [PATCH] Add missing <pthread.h> include in inc/mtp.h header
+
+This fixes the build under GCC 8 with the musl C library.
+
+Signed-off-by: Paul Cercueil <paul@crapouillou.net>
+---
+ inc/mtp.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/inc/mtp.h b/inc/mtp.h
+index 238de68..5f5b804 100644
+--- a/inc/mtp.h
++++ b/inc/mtp.h
+@@ -26,6 +26,8 @@
+ #ifndef _INC_MTP_H_
+ #define _INC_MTP_H_
+ 
++#include <pthread.h>
++
+ #define MAX_STORAGE_NB 16
+ #define MAX_CFG_STRING_SIZE 512
+ 
+-- 
+2.21.0.593.g511ec345e18
+
diff --git a/package/umtprd/Config.in b/package/umtprd/Config.in
new file mode 100644
index 0000000000..28c08ce5bd
--- /dev/null
+++ b/package/umtprd/Config.in
@@ -0,0 +1,6 @@ 
+config BR2_PACKAGE_UMTPRD
+	bool "umtprd"
+	help
+	  Lightweight USB MTP responder daemon for GNU/Linux
+
+	  https://github.com/viveris/uMTP-Responder
diff --git a/package/umtprd/umtprd.hash b/package/umtprd/umtprd.hash
new file mode 100644
index 0000000000..aa91696613
--- /dev/null
+++ b/package/umtprd/umtprd.hash
@@ -0,0 +1,2 @@ 
+# Locally computed
+sha256	e1301bdd89170cc2c679446c1cc5873feaacd061bf0ab547fc0a11670bae9163	umtprd-1.0.0.tar.gz
diff --git a/package/umtprd/umtprd.mk b/package/umtprd/umtprd.mk
new file mode 100644
index 0000000000..8460f82b7d
--- /dev/null
+++ b/package/umtprd/umtprd.mk
@@ -0,0 +1,20 @@ 
+################################################################################
+#
+# umtprd
+#
+################################################################################
+
+UMTPRD_VERSION = 1.0.0
+UMTPRD_SITE = https://github.com/viveris/uMTP-Responder/archive
+UMTPRD_LICENSE = GPL-3.0
+UMTPRD_LICENSE_FILES = LICENSE
+
+define UMTPRD_BUILD_CMDS
+	$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D)
+endef
+
+define UMTPRD_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/umtprd $(TARGET_DIR)/usr/sbin/umtprd
+endef
+
+$(eval $(generic-package))