[Buildroot] [PATCH v4] package/python-web2py: cleaning for space saving

Arnout Vandecappelle arnout at mind.be
Wed Dec 30 15:03:28 UTC 2015


On 29-12-15 21:49, Angelo Compagnucci wrote:
> Dear Yann E. MORIN,
> 
> 
> This patch works and applies cleanly on master, I just rebased and tested.
> 
> 2015-07-28 10:04 GMT+02:00 Angelo Compagnucci <angelo.compagnucci at gmail.com>:
>> This patch removes from web2py folder welcome, examples application
>> and a bunch of other files uneeded in production,
>> furthermore, it removes the admin interface if unneeded.
>>
>> Signed-off-by: Angelo Compagnucci <angelo.compagnucci at gmail.com>
>> ---
>> Changes:
>>
>> v3->v4:
>>  * Fixed erroneously removed installation of system v init script
>>
>> v2->v3:
>>  * Changed to a positive logic for PYTHON_WEB2PY_INSTALL_ADMIN (suggested by Thomas)
>>  * Changed to a makefile based conditional logic (suggested by Thomas)
>>  * Extended cleaning of uneeded files.
>>
>> v1->v2:
>>  * Reworked otion sequence as suggested by Thomas.
>>  * Changed to a makefile based conditional as suggested by Thomas.
>>
>>  package/python-web2py/Config.in        | 11 +++++++++++
>>  package/python-web2py/python-web2py.mk | 36 ++++++++++++++++++++++++++++++----
>>  2 files changed, 43 insertions(+), 4 deletions(-)
>>
>> diff --git a/package/python-web2py/Config.in b/package/python-web2py/Config.in
>> index b10d3a4..3b55153 100644
>> --- a/package/python-web2py/Config.in
>> +++ b/package/python-web2py/Config.in
>> @@ -14,6 +14,15 @@ config BR2_PACKAGE_PYTHON_WEB2PY
>>
>>  if BR2_PACKAGE_PYTHON_WEB2PY
>>
>> +config BR2_PACKAGE_PYTHON_WEB2PY_INSTALL_ADMIN
>> +       bool "install admin panel application"
>> +       default y
>> +       help
>> +         This option install web2py admin panel application.
>> +         It can be removed to save space on embedded systems.
>> +
>> +if BR2_PACKAGE_PYTHON_WEB2PY_INSTALL_ADMIN
>> +
>>  config BR2_PACKAGE_PYTHON_WEB2PY_PASSWORD
>>         string "admin panel password"
>>         default web2py
>> @@ -21,3 +30,5 @@ config BR2_PACKAGE_PYTHON_WEB2PY_PASSWORD
>>           Set the admin panel password.
>>
>>  endif
>> +
>> +endif
>> diff --git a/package/python-web2py/python-web2py.mk b/package/python-web2py/python-web2py.mk
>> index 313114a..be95517 100644
>> --- a/package/python-web2py/python-web2py.mk
>> +++ b/package/python-web2py/python-web2py.mk
>> @@ -11,13 +11,41 @@ PYTHON_WEB2PY_LICENSE_FILES = LICENSE
>>  PYTHON_WEB2PY_DEPENDENCIES = python python-pydal host-python-pydal
>>
>>  define PYTHON_WEB2PY_INSTALL_TARGET_CMDS
>> -       $(HOST_DIR)/usr/bin/python2 -c 'import os; \
>> -               os.chdir("$(@D)"); \
>> -               from gluon.main import save_password; \
>> -               save_password($(BR2_PACKAGE_PYTHON_WEB2PY_PASSWORD),8000)'
>>         mkdir -p $(TARGET_DIR)/var/www/web2py
>>         cp -dpfr $(@D)/* $(TARGET_DIR)/var/www/web2py
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/welcome.w2p
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/applications/examples
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/applications/welcome
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/deposit
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/docs
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/examples
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/extras
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/handlers
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/scripts
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/ABOUT
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/anyserver.py
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/CHANGELOG
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/Makefile
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/MANIFEST.in
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/README.markdown
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/setup.py
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/tox.ini

 I would have found it cleaner to avoid copying all these files to begin with,
by using rsync with --exclude to copy the files. Then you can have the
exclusions in a variable:

PYTHON_WEB2PY_EXCLUSIONS = \
	welcome.w2p \
	applications/examples \
...

	rsync -a $(@D)/ $(TARGET_DIR)/var/www/web2py/ \
		$(addprefix --exclude=,$(PYTHON_WEB2PY_EXCLUSIONS))



 But regardless of that:

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout at mind.be>

 Regards,
 Arnout

>> +endef
>> +
>> +ifeq ($(BR2_PACKAGE_PYTHON_WEB2PY_INSTALL_ADMIN),y)
>> +define PYTHON_WEB2PY_GENERATE_PASSWORD
>> +       $(HOST_DIR)/usr/bin/python2 -c 'import os; \
>> +       os.chdir("$(@D)"); \
>> +       from gluon.main import save_password; \
>> +       save_password($(BR2_PACKAGE_PYTHON_WEB2PY_PASSWORD),8000)';
>> +endef
>> +PYTHON_WEB2PY_POST_BUILD_HOOKS += PYTHON_WEB2PY_GENERATE_PASSWORD
>> +else
>> +define PYTHON_WEB2PY_REMOVE_ADMIN
>> +       rm -rf $(TARGET_DIR)/var/www/web2py/applications/admin
>>  endef
>> +PYTHON_WEB2PY_POST_INSTALL_TARGET_HOOKS += PYTHON_WEB2PY_REMOVE_ADMIN
>> +endif
>>
>>  define PYTHON_WEB2PY_INSTALL_INIT_SYSV
>>         $(INSTALL) -m 0755 -D package/python-web2py/S51web2py \
>> --
>> 1.9.1
>>
> 
> 
> 


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list