diff mbox

[v3,1/1] tovid: new package

Message ID 1426691741-3961-1-git-send-email-skenton@ou.edu
State Changes Requested
Headers show

Commit Message

Kenton, Stephen M. March 18, 2015, 3:15 p.m. UTC
The tovid suite, also known simply as tovid, is a collection of shell
and Python scripts for creating DVDs and (S)VCDs. It is pronounced
"to vid" (because it converts to video disc formats).

Signed-off-by: Steve Kenton <skenton@ou.edu>
---
V3 delete hash file since download is from SVN

 package/Config.in                |  1 +
 package/tovid/0001-manpage.patch | 26 ++++++++++++++++++++++++++
 package/tovid/Config.in          | 31 +++++++++++++++++++++++++++++++
 package/tovid/tovid.mk           | 19 +++++++++++++++++++
 4 files changed, 77 insertions(+)
 create mode 100644 package/tovid/0001-manpage.patch
 create mode 100644 package/tovid/Config.in
 create mode 100644 package/tovid/tovid.mk

Comments

Thomas Petazzoni March 18, 2015, 3:46 p.m. UTC | #1
Dear Steve Kenton,

On Wed, 18 Mar 2015 10:15:41 -0500, Steve Kenton wrote:

> diff --git a/package/tovid/0001-manpage.patch b/package/tovid/0001-manpage.patch
> new file mode 100644
> index 0000000..c742b64
> --- /dev/null
> +++ b/package/tovid/0001-manpage.patch
> @@ -0,0 +1,26 @@
> +setup.py: disable documentation build
> +
> +Signed-off-by: Steve Kenton <skenton@ou.edu>

Why is this patch needed? Does the documentation build requires
additional dependencies?


> diff --git a/package/tovid/Config.in b/package/tovid/Config.in
> new file mode 100644
> index 0000000..180e6d1
> --- /dev/null
> +++ b/package/tovid/Config.in
> @@ -0,0 +1,31 @@
> +config BR2_PACKAGE_TOVID
> +	bool "tovid"
> +	depends on BR2_USE_MMU
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	depends on BR2_INET_IPV6 # ffmpeg
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on BR2_USE_WCHAR
> +	depends on BR2_LARGEFILE
> +	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng

Can you comment on why specifically procps_ng is needed?

> +	select BR2_PACKAGE_DVDAUTHOR
> +	select BR2_PACKAGE_DVDRW_TOOLS
> +	select BR2_PACKAGE_FFMPEG
> +	select BR2_PACKAGE_IMAGEMAGICK
> +	select BR2_PACKAGE_JPEG
> +	select BR2_PACKAGE_MJPEGTOOLS
> +	select BR2_PACKAGE_MPLAYER
> +	select BR2_PACKAGE_PROCPS_NG
> +	select BR2_PACKAGE_PYTHON
> +	select BR2_PACKAGE_SOX

Amongst those dependencies, it would be great to denote which ones are
actual build dependencies, and which ones are only runtime dependencies.


> diff --git a/package/tovid/tovid.mk b/package/tovid/tovid.mk
> new file mode 100644
> index 0000000..9e474fb
> --- /dev/null
> +++ b/package/tovid/tovid.mk
> @@ -0,0 +1,19 @@
> +################################################################################
> +#
> +# tovid
> +#
> +################################################################################
> +
> +TOVID_SITE = http://tovid.googlecode.com/svn/trunk/tovid

Google Code is closing. Is there a better location for this project? Or
is the project planning to move to some other place in the near future ?

> +TOVID_SITE_METHOD = svn
> +TOVID_VERSION = 3534
> +TOVID_LICENSE = GPLv2.0

Just: GPLv2

> +TOVID_LICENSE_FILES = COPYING
> +TOVID_DEPENDENCIES += python

+= should be '='.

> +# Must be run in source directory to avoid "error: package directory 'libtovid' does not exist"
> +define TOVID_INSTALL_TARGET_CMDS
> +	bash -c "cd $(@D); ./setup.py install --root=$(TARGET_DIR) --prefix=/usr"
> +endef
> +
> +$(eval $(generic-package))

Since the package uses Python distutils, could you instead try:

TOVID_SETUP_TYPE = distutils

$(eval $(python-package))

and get rid of your custom TOVID_INSTALL_TARGET_CMDS ?

Thanks,

Thomas
Kenton, Stephen M. March 18, 2015, 4:10 p.m. UTC | #2
On 03/18/2015 10:46 AM, Thomas Petazzoni wrote:
> Dear Steve Kenton,
> 
> On Wed, 18 Mar 2015 10:15:41 -0500, Steve Kenton wrote:
> 
>> diff --git a/package/tovid/0001-manpage.patch b/package/tovid/0001-manpage.patch
>> new file mode 100644
>> index 0000000..c742b64
>> --- /dev/null
>> +++ b/package/tovid/0001-manpage.patch
>> @@ -0,0 +1,26 @@
>> +setup.py: disable documentation build
>> +
>> +Signed-off-by: Steve Kenton <skenton@ou.edu>
> 
> Why is this patch needed? Does the documentation build requires
> additional dependencies?
Yes, with an SVN checkout it is required to get txt2tags to build the man page
"To build the manpage, you will need txt2tags:
    http://txt2tags.sourceforge.net"

> 
> 
>> diff --git a/package/tovid/Config.in b/package/tovid/Config.in
>> new file mode 100644
>> index 0000000..180e6d1
>> --- /dev/null
>> +++ b/package/tovid/Config.in
>> @@ -0,0 +1,31 @@
>> +config BR2_PACKAGE_TOVID
>> +	bool "tovid"
>> +	depends on BR2_USE_MMU
>> +	depends on BR2_TOOLCHAIN_HAS_THREADS
>> +	depends on BR2_INET_IPV6 # ffmpeg
>> +	depends on BR2_INSTALL_LIBSTDCPP
>> +	depends on BR2_USE_WCHAR
>> +	depends on BR2_LARGEFILE
>> +	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng
> 
> Can you comment on why specifically procps_ng is needed?
pgrep and IIRC pkill
"todisc:assert_dep pgrep "You need the pgrep program to use todisc"

> 
>> +	select BR2_PACKAGE_DVDAUTHOR
>> +	select BR2_PACKAGE_DVDRW_TOOLS
>> +	select BR2_PACKAGE_FFMPEG
>> +	select BR2_PACKAGE_IMAGEMAGICK
>> +	select BR2_PACKAGE_JPEG
>> +	select BR2_PACKAGE_MJPEGTOOLS
>> +	select BR2_PACKAGE_MPLAYER
>> +	select BR2_PACKAGE_PROCPS_NG
>> +	select BR2_PACKAGE_PYTHON
>> +	select BR2_PACKAGE_SOX
> 
> Amongst those dependencies, it would be great to denote which ones are
> actual build dependencies, and which ones are only runtime dependencies.
I think python is the only build dependency - the rest are runtime
assuming we kill the man page

    # *************************************************************************
    # Required Dependencies
    # *************************************************************************
    core="grep sed md5sum mplayer mplex mpeg2enc yuvfps yuvdenoise ppmtoy4m mp2enc jpeg2yuv"

    # *************************************************************************
    # Optional Dependencies
    # *************************************************************************
    # Optional dependencies are grouped according to the functionality they
    # bring to tovid: menu creation, DVD creation, (S)VCD creation, and
    # post-processing.

    # -------------------------------------------------------------------------
    # ImageMagick components
    magick="composite convert"

    # -------------------------------------------------------------------------
    # dvdauthor compononets
    # (note: growisofs is NOT distributed with dvdauthor, but for tovid's
    # purposes, it fits in the same catagory, as it burns DVDs!)
    dvd="spumux dvdauthor growisofs"

    # -------------------------------------------------------------------------
    # vcdimager components
    # (note: cdrdao is NOT distributed with vcdimager, but for tovid's
    # purposes, it fits in the same catagory, as it burns (S)VCDs!)
    vcd="vcdxbuild cdrdao"

    # -------------------------------------------------------------------------
    # transcode components
    transcode="tcprobe tcrequant"

    # -------------------------------------------------------------------------
    # Plugin tools
    plugins="sox $NORMALIZE"

> 
> 
>> diff --git a/package/tovid/tovid.mk b/package/tovid/tovid.mk
>> new file mode 100644
>> index 0000000..9e474fb
>> --- /dev/null
>> +++ b/package/tovid/tovid.mk
>> @@ -0,0 +1,19 @@
>> +################################################################################
>> +#
>> +# tovid
>> +#
>> +################################################################################
>> +
>> +TOVID_SITE = http://tovid.googlecode.com/svn/trunk/tovid
> 
> Google Code is closing. Is there a better location for this project? Or
> is the project planning to move to some other place in the near future ?
Did not know that, will investigate.

> 
>> +TOVID_SITE_METHOD = svn
>> +TOVID_VERSION = 3534
>> +TOVID_LICENSE = GPLv2.0
> 
> Just: GPLv2
> 
>> +TOVID_LICENSE_FILES = COPYING
>> +TOVID_DEPENDENCIES += python
> 
> += should be '='.
Right

> 
>> +# Must be run in source directory to avoid "error: package directory 'libtovid' does not exist"
>> +define TOVID_INSTALL_TARGET_CMDS
>> +	bash -c "cd $(@D); ./setup.py install --root=$(TARGET_DIR) --prefix=/usr"
>> +endef
>> +
>> +$(eval $(generic-package))
> 
> Since the package uses Python distutils, could you instead try:
> 
> TOVID_SETUP_TYPE = distutils
> 
> $(eval $(python-package))
> 
> and get rid of your custom TOVID_INSTALL_TARGET_CMDS ?
OOK - monkey scratches head - will try

Steve

> 
> Thanks,
> 
> Thomas
>
Thomas Petazzoni March 18, 2015, 4:47 p.m. UTC | #3
Dear Steve Kenton,

On Wed, 18 Mar 2015 11:10:46 -0500, Steve Kenton wrote:

> > Why is this patch needed? Does the documentation build requires
> > additional dependencies?
> Yes, with an SVN checkout it is required to get txt2tags to build the man page
> "To build the manpage, you will need txt2tags:
>     http://txt2tags.sourceforge.net"

Ok, please indicate this in the patch description then.

> >> +	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng
> > 
> > Can you comment on why specifically procps_ng is needed?
> pgrep and IIRC pkill
> "todisc:assert_dep pgrep "You need the pgrep program to use todisc"

Ok. Then please indicate this as well in a comment above the "select
BR2_PACKAGE_PROCPS_NG" line.

> > Amongst those dependencies, it would be great to denote which ones are
> > actual build dependencies, and which ones are only runtime dependencies.
> I think python is the only build dependency - the rest are runtime
> assuming we kill the man page

Ok, then please say so in a comment in the Config.in file.

Essentially, anything that isn't obvious generally needs a comment
somewhere :-)

> >> +TOVID_SITE = http://tovid.googlecode.com/svn/trunk/tovid
> > 
> > Google Code is closing. Is there a better location for this project? Or
> > is the project planning to move to some other place in the near future ?
> Did not know that, will investigate.

Well, I think it's fine for now, the source URL can always be changed
later when the project moves elsewhere. There have been some changes
recently (today, yesterday, etc.) so the project seems to be maintained.

BTW, I don't remember if I asked: why would you want to run something
such as tovid on an embedded system? What's the final use case?

Thanks,

Thomas
Kenton, Stephen M. March 18, 2015, 5:21 p.m. UTC | #4
On 03/18/2015 11:47 AM, Thomas Petazzoni wrote:
> Dear Steve Kenton,
> 

> Essentially, anything that isn't obvious generally needs a comment
> somewhere :-)
Understood
> 
>>>> +TOVID_SITE = http://tovid.googlecode.com/svn/trunk/tovid
>>>
>>> Google Code is closing. Is there a better location for this project? Or
>>> is the project planning to move to some other place in the near future ?
>> Did not know that, will investigate.
> 
> Well, I think it's fine for now, the source URL can always be changed
> later when the project moves elsewhere. There have been some changes
> recently (today, yesterday, etc.) so the project seems to be maintained.
Here's what the maintainer had to say in a post yesterday:

"As well google code is shutting down, so I am in process of moving to a
new repo. More news to follow re this."

> 
> BTW, I don't remember if I asked: why would you want to run something
> such as tovid on an embedded system? What's the final use case?
Rack mount video system, records and burns dvds on the fly.

Steve

> 
> Thanks,
> 
> Thomas
>
Thomas Petazzoni March 19, 2015, 8:17 a.m. UTC | #5
Dear Steve Kenton,

On Wed, 18 Mar 2015 12:21:33 -0500, Steve Kenton wrote:

> > Well, I think it's fine for now, the source URL can always be changed
> > later when the project moves elsewhere. There have been some changes
> > recently (today, yesterday, etc.) so the project seems to be maintained.
> Here's what the maintainer had to say in a post yesterday:
> 
> "As well google code is shutting down, so I am in process of moving to a
> new repo. More news to follow re this."

Ok, good. So we can use Google Code for now, and we'll switch to the
new location once it becomes available.

> > BTW, I don't remember if I asked: why would you want to run something
> > such as tovid on an embedded system? What's the final use case?
> Rack mount video system, records and burns dvds on the fly.

Cool! Is this some public product? Or will it be public at some point?

Best regards,

Thomas
Kenton, Stephen M. March 19, 2015, 3:29 p.m. UTC | #6
On 03/19/2015 03:17 AM, Thomas Petazzoni wrote:
> Dear Steve Kenton,
> 
> On Wed, 18 Mar 2015 12:21:33 -0500, Steve Kenton wrote:
> 
>>> Well, I think it's fine for now, the source URL can always be changed
>>> later when the project moves elsewhere. There have been some changes
>>> recently (today, yesterday, etc.) so the project seems to be maintained.
>> Here's what the maintainer had to say in a post yesterday:
>>
>> "As well google code is shutting down, so I am in process of moving to a
>> new repo. More news to follow re this."
> 
> Ok, good. So we can use Google Code for now, and we'll switch to the
> new location once it becomes available.
> 
>>> BTW, I don't remember if I asked: why would you want to run something
>>> such as tovid on an embedded system? What's the final use case?
>> Rack mount video system, records and burns dvds on the fly.
> 
> Cool! Is this some public product? Or will it be public at some point?
Well, since you asked .... http://bcdusa.com/bcd-dvd-1150/hdi-250
Several pre-production units have gone out to users of previous generation equipment.
This is our first GPL based product - it ships will full source to the buildroot
based "BCD Linux Distribution" (which we refer to as bcdist) along with scripts to
download and build from scratch too. The hardware can do 4K video and 24-bit 16
channel audio so we have plans for a number of enhanced versions - later :-) I've
been trying to push stuff back upstream so we don't have to carry many (any?) patches
to the GPL components of the system.

Steve


>  
> Best regards,
> 
> Thomas
>
Thomas Petazzoni March 19, 2015, 3:33 p.m. UTC | #7
Dear Steve Kenton,

On Thu, 19 Mar 2015 10:29:32 -0500, Steve Kenton wrote:

> Well, since you asked .... http://bcdusa.com/bcd-dvd-1150/hdi-250
> Several pre-production units have gone out to users of previous generation equipment.
> This is our first GPL based product - it ships will full source to the buildroot
> based "BCD Linux Distribution" (which we refer to as bcdist) along with scripts to
> download and build from scratch too. The hardware can do 4K video and 24-bit 16
> channel audio so we have plans for a number of enhanced versions - later :-) I've
> been trying to push stuff back upstream so we don't have to carry many (any?) patches
> to the GPL components of the system.

Awesome!

We really need to start a "Users" page with a list of products using
Buildroot.

Thanks,

Thomas
diff mbox

Patch

diff --git a/package/Config.in b/package/Config.in
index 96e373a..44ccfe4 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -33,6 +33,7 @@  menu "Audio and video applications"
 	source "package/pulseaudio/Config.in"
 	source "package/sox/Config.in"
 	source "package/tidsp-binaries/Config.in"
+	source "package/tovid/Config.in"
 	source "package/tstools/Config.in"
 	source "package/twolame/Config.in"
 	source "package/upmpdcli/Config.in"
diff --git a/package/tovid/0001-manpage.patch b/package/tovid/0001-manpage.patch
new file mode 100644
index 0000000..c742b64
--- /dev/null
+++ b/package/tovid/0001-manpage.patch
@@ -0,0 +1,26 @@ 
+setup.py: disable documentation build
+
+Signed-off-by: Steve Kenton <skenton@ou.edu>
+
+--- tovid-3534/setup.py.ori	2015-02-20 22:08:18.590122839 -0600
++++ tovid-3534/setup.py	2015-02-20 22:06:05.290120282 -0600
+@@ -186,7 +186,7 @@ class BuildTovidInit (Command):
+ 
+ # Build tovid-init with regular 'build' command
+ build.sub_commands.append(('build_tovid_init', None))
+-build.sub_commands.append(('build_docs', None))
++#build.sub_commands.append(('build_docs', None))
+ 
+ # The actual setup
+ setup(
+@@ -244,8 +244,8 @@ setup(
+             'src/tovid.ini',
+         ]),
+         # Manual page
+-        ('share/man/man1',
+-         ['docs/man/tovid.1']),
++#        ('share/man/man1',
++#         ['docs/man/tovid.1']),
+         # Desktop shortcut
+         ('share/applications',
+          ['tovidgui.desktop',
diff --git a/package/tovid/Config.in b/package/tovid/Config.in
new file mode 100644
index 0000000..180e6d1
--- /dev/null
+++ b/package/tovid/Config.in
@@ -0,0 +1,31 @@ 
+config BR2_PACKAGE_TOVID
+	bool "tovid"
+	depends on BR2_USE_MMU
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_INET_IPV6 # ffmpeg
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on BR2_USE_WCHAR
+	depends on BR2_LARGEFILE
+	select BR2_PACKAGE_BUSYBOX_SHOW_OTHERS # procps_ng
+	select BR2_PACKAGE_DVDAUTHOR
+	select BR2_PACKAGE_DVDRW_TOOLS
+	select BR2_PACKAGE_FFMPEG
+	select BR2_PACKAGE_IMAGEMAGICK
+	select BR2_PACKAGE_JPEG
+	select BR2_PACKAGE_MJPEGTOOLS
+	select BR2_PACKAGE_MPLAYER
+	select BR2_PACKAGE_PROCPS_NG
+	select BR2_PACKAGE_PYTHON
+	select BR2_PACKAGE_SOX
+	help
+	  The tovid suite, also known simply as tovid, is a collection of shell 
+	  and Python scripts for creating DVDs and (S)VCDs. It is pronounced 
+	  "to vid" (because it converts to video disc formats). 
+
+	  http://tovid.wikia.com/wiki/Installing_tovid
+
+comment "tovid needs a toolchain w/ threads, ipv6, C++, wchar, largefile"
+	depends on BR2_USE_MMU
+	depends on !BR2_TOOLCHAIN_HAS_THREADS \
+		|| !BR2_INET_IPV6 || !BR2_INSTALL_LIBSTDCPP \
+		|| !BR2_USE_WCHAR || !BR2_LARGEFILE
diff --git a/package/tovid/tovid.mk b/package/tovid/tovid.mk
new file mode 100644
index 0000000..9e474fb
--- /dev/null
+++ b/package/tovid/tovid.mk
@@ -0,0 +1,19 @@ 
+################################################################################
+#
+# tovid
+#
+################################################################################
+
+TOVID_SITE = http://tovid.googlecode.com/svn/trunk/tovid
+TOVID_SITE_METHOD = svn
+TOVID_VERSION = 3534
+TOVID_LICENSE = GPLv2.0
+TOVID_LICENSE_FILES = COPYING
+TOVID_DEPENDENCIES += python
+
+# Must be run in source directory to avoid "error: package directory 'libtovid' does not exist"
+define TOVID_INSTALL_TARGET_CMDS
+	bash -c "cd $(@D); ./setup.py install --root=$(TARGET_DIR) --prefix=/usr"
+endef
+
+$(eval $(generic-package))