Ticket #1279 (closed defect: wontfix)

Opened 4 years ago

Last modified 4 years ago

Trailing whitespace at vdb environment variable values

Reported by: volkov Owned by:
Priority: MinorRelease Milestone:
Component: repositories/e Version: scm
Keywords: Cc:
Blocked By: Blocking:
Distribution: N/A

Description

For example, paludis itself installed by paludis:

    sys-apps/paludis-1.4.0:0::installed
    Description               paludis, the other package mangler
    Homepage                  http://paludis.exherbo.org/
    From repositories         gentoo
    Installed time            Tue Jul 16 11:38:39 YEKT 2013
    Installed using           paludis-1.4.0

Looking for trailing whitespace inside vdb environment

bzgrep "    '" /var/db/pkg/sys-apps/paludis-1.4.0/environment.bz2

And there are!

DEPEND=$'\n\t>=app-admin/eselect-1.2.13\n\t>=app-shells/bash-3.2\n\t>=sys-devel/gcc-4.4\n\tdev-libs/libpcre\n\tsys-apps/file\n\tpbins? ( >=app-arch/libarchive-3.1.2 )\n\tpython-bindings? ( >=dev-lang/python-2.6 >=dev-libs/boost-1.41.0 )\n\truby-bindings? ( >=dev-lang/ruby-1.8 )\n\txml? ( >=dev-libs/libxml2-2.6 )\n\tsearch-index? ( >=dev-db/sqlite-3 )\n\t!prebuilt-documentation? (\n\t\t>=app-text/asciidoc-8.6.3\n\t\tapp-text/xmlto\n\t)\n\tdoc? (\n\t\t|| ( >=app-doc/doxygen-1.5.3 <=app-doc/doxygen-1.5.1 )\n\t\tmedia-gfx/imagemagick\n\t\tpython-bindings? ( dev-python/epydoc dev-python/pygments )\n\t\truby-bindings? ( dev-ruby/syntax )\n\t)\n\tvirtual/pkgconfig\n\ttest? ( >=dev-cpp/gtest-1.6.0-r1 )          '
E_DEPEND='         '
E_IUSE='         '
E_PDEPEND='         '
E_RDEPEND='         '
IUSE='doc pbins portage pink prebuilt-documentation python-bindings ruby-bindings search-index test vim-syntax visibility xml zsh-completion          '
PDEPEND=$'\n\tvim-syntax? ( >=app-editors/vim-core-7 )\n\tapp-admin/eselect-package-manager          '
RDEPEND=$'\n\t>=app-admin/eselect-1.2.13\n\t>=app-shells/bash-3.2\n\t>=sys-devel/gcc-4.4\n\tdev-libs/libpcre\n\tsys-apps/file\n\tpbins? ( >=app-arch/libarchive-3.1.2 )\n\tpython-bindings? ( >=dev-lang/python-2.6 >=dev-libs/boost-1.41.0 )\n\truby-bindings? ( >=dev-lang/ruby-1.8 )\n\txml? ( >=dev-libs/libxml2-2.6 )\n\tsearch-index? ( >=dev-db/sqlite-3 )\n\tsys-apps/sandbox          '

IUSE contains trailing whitespace also.

(Make whitespace visible as _)

tr ' ' '_' < /var/db/pkg/sys-apps/paludis-1.4.0/IUSE

doc_pbins_portage_pink_prebuilt-documentation_python-bindings_ruby-bindings_search-index_test_vim-syntax_visibility_xml_zsh-completion__________

The same for all packages installed.

Attachments

eclass_functions.bash-whtespace.patch Download (567 bytes) - added by volkov 4 years ago.
eclass_functions.bash-whtespace.patch
ebuild.bash-whtespace.patch Download (1.6 KB) - added by volkov 4 years ago.

Change History

Changed 4 years ago by volkov

eclass_functions.bash-whtespace.patch

Changed 4 years ago by volkov

comment:1 Changed 4 years ago by ciaranm

  • Status changed from new to closed
  • Resolution set to wontfix

There's nothing wrong with whitespace.

comment:2 Changed 4 years ago by volkov

Whitespace count depends on number of eclass loaded

We use this for debug:

         for v in ${PALUDIS_SOURCE_MERGED_VARIABLES} ; do
            local e_v="E_${v}"
            set -x
            export -n ${e_v}="${!e_v} ${!v}"
            set +x
         done

There is the output:

>>> Starting builtin_init
>>> Done builtin_init
>>> Starting builtin_saveenv
>>> Done builtin_saveenv
>>> Completed ebuild phases init saveenv
+++++ export -n 'E_IUSE= '
+++++ E_IUSE=' '
+++++ export -n 'E_DEPEND= '
+++++ E_DEPEND=' '
+++++ export -n 'E_RDEPEND= '
+++++ E_RDEPEND=' '
+++++ export -n 'E_PDEPEND= '
+++++ E_PDEPEND=' '
+++++ export -n 'E_REQUIRED_USE= '
+++++ E_REQUIRED_USE=' '
++++ export -n 'E_IUSE=  '
++++ E_IUSE='  '
++++ export -n 'E_DEPEND=  '
++++ E_DEPEND='  '
++++ export -n 'E_RDEPEND=  '
++++ E_RDEPEND='  '
++++ export -n 'E_PDEPEND=  '
++++ E_PDEPEND='  '
++++ export -n 'E_REQUIRED_USE=  '
++++ E_REQUIRED_USE='  '
+++ export -n 'E_IUSE=   '
+++ E_IUSE='   '
+++ export -n 'E_DEPEND=   '
+++ E_DEPEND='   '
+++ export -n 'E_RDEPEND=   '
+++ E_RDEPEND='   '
+++ export -n 'E_PDEPEND=   '
+++ E_PDEPEND='   '
+++ export -n 'E_REQUIRED_USE=   '
+++ E_REQUIRED_USE='   '
++ export -n 'E_IUSE=    '
++ E_IUSE='    '
++ export -n 'E_DEPEND=    '
++ E_DEPEND='    '
++ export -n 'E_RDEPEND=    '
++ E_RDEPEND='    '
++ export -n 'E_PDEPEND=    '
++ E_PDEPEND='    '
++ export -n 'E_REQUIRED_USE=    '
++ E_REQUIRED_USE='    '
++ export -n 'E_IUSE=     '
++ E_IUSE='     '
++ export -n 'E_DEPEND=     '
++ E_DEPEND='     '
++ export -n 'E_RDEPEND=     '
++ E_RDEPEND='     '
++ export -n 'E_PDEPEND=     '
++ E_PDEPEND='     '
++ export -n 'E_REQUIRED_USE=     '
++ E_REQUIRED_USE='     '
++++ export -n 'E_IUSE=      '
++++ E_IUSE='      '
++++ export -n 'E_DEPEND=      '
++++ E_DEPEND='      '
++++ export -n 'E_RDEPEND=      '
++++ E_RDEPEND='      '
++++ export -n 'E_PDEPEND=      '
++++ E_PDEPEND='      '
++++ export -n 'E_REQUIRED_USE=      '
++++ E_REQUIRED_USE='      '
++++ export -n 'E_IUSE=       '
++++ E_IUSE='       '
++++ export -n 'E_DEPEND=       '
++++ E_DEPEND='       '
++++ export -n 'E_RDEPEND=       '
++++ E_RDEPEND='       '
++++ export -n 'E_PDEPEND=       '
++++ E_PDEPEND='       '
++++ export -n 'E_REQUIRED_USE=       '
++++ E_REQUIRED_USE='       '
+++ export -n 'E_IUSE=        '
+++ E_IUSE='        '
+++ export -n 'E_DEPEND=        '
+++ E_DEPEND='        '
+++ export -n 'E_RDEPEND=        '
+++ E_RDEPEND='        '
+++ export -n 'E_PDEPEND=        '
+++ E_PDEPEND='        '
+++ export -n 'E_REQUIRED_USE=        '
+++ E_REQUIRED_USE='        '
++ export -n 'E_IUSE=         '
++ E_IUSE='         '
++ export -n 'E_DEPEND=         '
++ E_DEPEND='         '
++ export -n 'E_RDEPEND=         '
++ E_RDEPEND='         '
++ export -n 'E_PDEPEND=         '
++ E_PDEPEND='         '
++ export -n 'E_REQUIRED_USE=         '
++ E_REQUIRED_USE='         '
++ export -n 'E_IUSE=          '
++ E_IUSE='          '
++ export -n 'E_DEPEND=          '
++ E_DEPEND='          '
++ export -n 'E_RDEPEND=          '
++ E_RDEPEND='          '
++ export -n 'E_PDEPEND=          '
++ E_PDEPEND='          '
++ export -n 'E_REQUIRED_USE=          '
++ E_REQUIRED_USE='          '
>>> Running ebuild phases loadenv setup saveenv as root:root...
>>> Starting builtin_loadenv
>>> Done builtin_loadenv
>>> Starting pkg_setup
>>> Done pkg_setup

Whitespace appends each time eclass loaded

It is clear that it's just a whitespaces meaning nothing. But whitespace count change md5sum of IUSE file (on eclass change) We use cf-engine 3 (md5 hash sum of file IUSE) to detect package changes between template and miltiple hosts (150+).

Off-topic We use paludis since 0.26 and just want to port our patches upstream to make paludis better.

comment:3 Changed 4 years ago by ciaranm

You shouldn't be doing that. The only thing that should be poking around inside VDB is a full-fledged package mangler. Your code will stop working anyway as soon as Gentoo finally switches to a more scalable format for VDB.

Note: See TracTickets for help on using tickets.