Roku Developer Program

Join our online forum to talk to Roku developers and fellow channel creators. Ask questions, share tips with the community, and find helpful resources.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
bosborne
Visitor

Long delay before package install when running make install

Ever since the upgrade to 5.0 which required the new makefile to side load dev channels, something like 80% of the time or so the channel takes around 20 seconds to load. It hangs right after I enter the 4-character password that I had to set. The other 20% of the time it packages and installs immediately.

I never had that issue prior to the new makefile. I wonder if this is something others have experienced? Here's a snippet of the end of the messages I get when running make install:

...
*** packaging appname complete ***
Installing appname to host 192.168.1.7
Enter host password for user 'rokudev':
[[ HANGS HERE AFTER ENTERING PASS ]]
Application Received: 226157 bytes stored.
Install Success.
0 Kudos
16 REPLIES 16
EnTerr
Roku Guru

Re: Long delay before package install when running make inst

This is the build script (name run.sh and place in project's root) i am using and it does not hang:

#!/bin/bash
ROKU_DEV_TARGET=192.168.1.24 # Roku 2 XS
#ROKU_DEV_TARGET=192.168.1.42 # Roku 3

# wake up/interrupt Roku - workaround for fw5.4 deadly bug
curl -d '' http://$ROKU_DEV_TARGET:8060/keypress/Home

# build
touch timestamp
zip -FS -r bundle * -x run.sh

# deploy
curl -f -sS --user rokudev:nuisance --anyauth -F "mysubmit=Install" -F "archive=@bundle.zip" -F "passwd=" http://$ROKU_DEV_TARGET/plugin_install | grep -Po '(?<=<font color="red">).*' | sed 's/<\/font>//'

Sorry, don't know what makefile's issue might be, i am not using it - it is way too slow, the last time i read it, it was making new zip file from scratch every time for no raisin.
0 Kudos
RokuMarkn
Visitor

Re: Long delay before package install when running make inst

"EnTerr" wrote:

Sorry, don't know what makefile's issue might be, i am not using it - it is way too slow, the last time i read it, it was making new zip file from scratch every time for no raisin.


Making a new zip file takes a fraction of a second for me, even for a very large package. Does your zip program actually take a noticeable amount of time to package the channel?

--Mark
0 Kudos
squirreltown
Roku Guru

Re: Long delay before package install when running make inst

"RokuMarkn" wrote:
Does your zip program actually take a noticeable amount of time to package the channel?

--Mark

I'm using EnTerr's script on a really old slow machine and it seems pretty fast to me. Most of the time is actually sending the file and waiting for the Roku to do something with it.
Kinetics Screensavers
0 Kudos
destruk
Binge Watcher

Re: Long delay before package install when running make inst

Are you loading the code with the roku at the home screen? Some running channel screen types significantly impact the reinstall process.
0 Kudos
EnTerr
Roku Guru

Re: Long delay before package install when running make inst

"RokuMarkn" wrote:
Making a new zip file takes a fraction of a second for me, even for a very large package. Does your zip program actually take a noticeable amount of time to package the channel?

It takes a few times longer to re-create the zip than to --filesync it (since most often what we do developing is modify 1-2 files and run, then rinse & repeat). E.g. just timed the big "Localization" example: 0.40 vs 0.02 sec (aka "20 times faster"). But you are right - even pushing it, zip time on my old MBP is still under a second and lion's share is spent curling. I don't recollect whence i remember makefile being slow, possibly i tried it couple of years ago on a 10-year old XP i was using and that made me forsake it. FWIW, I did not imply zipping time is the reason for @bosborne's problem.

While i have your attention RokuMarkn, is there a technical (roku-internals) reason why app.mk actively avoids compressing PNG files?
		(zip -0 -r "$(ZIPREL)/$(APPNAME).zip" . -i \*.png $(ZIP_EXCLUDE)); \
(zip -9 -r "$(ZIPREL)/$(APPNAME).zip" . -x \*~ -x \*.png -x Makefile $(ZIP_EXCLUDE)); \
Seeing that JPG files are not excluded in the same manner, i wonder if storing PNG as uncompressed is required (e.g. say zip is memory-mapped and PNG routine expects raw buffer) and i should reproduce it in my build script - or was it just compression speed optimization?
0 Kudos
bosborne
Visitor

Re: Long delay before package install when running make inst

"destruk" wrote:
Are you loading the code with the roku at the home screen? Some running channel screen types significantly impact the reinstall process.


Doesn't matter, home screen has the same behavior.


I was able to use EnTerr's script and it sends the package within a second every time. Thank you!
0 Kudos
RokuMarkn
Visitor

Re: Long delay before package install when running make inst

"bosborne" wrote:

Doesn't matter, home screen has the same behavior.


Are you sure about that? As far as I can see, the only real difference between the standard makefile and EnTerr's script is he sends a HOME press before starting the download.

--Mark
0 Kudos
bosborne
Visitor

Re: Long delay before package install when running make inst

?

The standard make file from the SDK download is this:
APPNAME = customvideoplayer
VERSION = 1.0

include ../app.mk


And in the app.mk file, here's the relevant bit for the install action:

pkg: install

@echo "*** Creating Package ***"

@echo " >> creating destination directory $(PKGREL)"
@if [ ! -d $(PKGREL) ]; \
then \
mkdir -p $(PKGREL); \
fi

@echo " >> setting directory permissions for $(PKGREL)"
@if [ ! -w $(PKGREL) ]; \
then \
chmod 755 $(PKGREL); \
fi

@echo "Packaging $(APPSRC)/$(APPNAME) on host $(ROKU_DEV_TARGET)"
@if [ "$(HTTPSTATUS)" == " 401" ]; \
then \
read -p "Password: " REPLY ; echo $$REPLY | xargs -i curl --user $(USERPASS) --digest -s -S -Fmysubmit=Package -Fapp_name=$(APPNAME)/$(VERSION) -Fpasswd={} -Fpkg_time=`expr \`date +%s\` \* 1000` "http://$(ROKU_DEV_TARGET)/plugin_package" | grep '^<tr><td><font face="Courier"><a' | sed 's/.*href=\"\([^\"]*\)\".*/\1/' | sed 's#pkgs//##' | xargs -i curl --user $(USERPASS) --digest -s -S -o $(PKGREL)/$(APPNAME)_`date +%F-%T`.pkg http://$(ROKU_DEV_TARGET)/pkgs/{} ; \
else \
read -p "Password: " REPLY ; echo $$REPLY | xargs -i curl -s -S -Fmysubmit=Package -Fapp_name=$(APPNAME)/$(VERSION) -Fpasswd={} -Fpkg_time=`expr \`date +%s\` \* 1000` "http://$(ROKU_DEV_TARGET)/plugin_package" | grep '^<tr><td><font face="Courier"><a' | sed 's/.*href=\"\([^\"]*\)\".*/\1/' | sed 's#pkgs//##' | xargs -i curl -s -S -o $(PKGREL)/$(APPNAME)_`date +%F-%T`.pkg http://$(ROKU_DEV_TARGET)/pkgs/{} ; \
fi

@echo "*** Package $(APPNAME) complete ***"
0 Kudos
RokuMarkn
Visitor

Re: Long delay before package install when running make inst

Was that in response to my post? What was your point?

--Mark
0 Kudos