<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>33749</bug_id>
          
          <creation_ts>2017-08-11 13:04:45 +0300</creation_ts>
          <short_desc>systemd-sysv-install ROOT overquoting</short_desc>
          <delta_ts>2017-08-16 13:35:19 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>systemd</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="manowar@altlinux.org">manowar</reporter>
          <assigned_to name="Alexey Shabalin">shaba</assigned_to>
          <cc>aen</cc>
    
    <cc>arseny</cc>
    
    <cc>manowar</cc>
    
    <cc>mike</cc>
    
    <cc>shaba</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165190</commentid>
    <comment_count>0</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2017-08-11 13:04:45 +0300</bug_when>
    <thetext>При обработке аргумент --root в скрипте systemd-sysv-install одинарные кавычки попадают внутрь значения переменной CHROOT, где затем интерпретируются буквально, как часть пути. Возможно, что я ошибся в описании, и всё происходит иначе, однако оно не работает:

[root@host-121 ~]# sh -x /lib/systemd/systemd-sysv-install --root=/mnt enable pcscd
+ set -e
++ getopt -o r: --long root: -- --root=/mnt enable pcscd
+ eval set -- &apos; --root &apos;\&apos;&apos;/mnt&apos;\&apos;&apos; -- &apos;\&apos;&apos;enable&apos;\&apos;&apos; &apos;\&apos;&apos;pcscd&apos;\&apos;&apos;&apos;
++ set -- --root /mnt -- enable pcscd
+ true
+ case &quot;$1&quot; in
+ ROOT=/mnt
+ shift 2
+ true
+ case &quot;$1&quot; in
+ shift
+ break
+ &apos;[&apos; -n /mnt &apos;]&apos;
+ &apos;[&apos; /mnt &apos;!=&apos; / &apos;]&apos;
+ CHROOT=&apos;chroot &apos;\&apos;&apos;/mnt&apos;\&apos;&apos;&apos;
+ NAME=pcscd
+ &apos;[&apos; -n pcscd &apos;]&apos;
+ case &quot;$1&quot; in
+ chroot &apos;&apos;\&apos;&apos;/mnt&apos;\&apos;&apos;&apos; /sbin/chkconfig --no-redirect pcscd on
chroot: не удалось сменить корневой каталог на «&apos;/mnt&apos;»: Нет такого файла или каталога</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165221</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2017-08-12 19:14:42 +0300</bug_when>
    <thetext>(В ответ на комментарий №0)
&gt; + chroot &apos;&apos;\&apos;&apos;/mnt&apos;\&apos;&apos;&apos; /sbin/chkconfig --no-redirect pcscd on
Может, так сразу и делать? (с точностью до кавычек)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165228</commentid>
    <comment_count>2</comment_count>
    <who name="manowar@altlinux.org">manowar</who>
    <bug_when>2017-08-14 01:27:28 +0300</bug_when>
    <thetext>В смысле, отказаться от переменной CHROOT, заменив её на

  chroot &quot;$ROOT&quot; ...

непосредственно там, где она сейчас используется? Раскрывать переменную с путём в самой командной строке? Тогда и защита от пробелов сохранится, и опасный eval не будет нужен.

Но я пока в своей сборке просто убрал одинарные кавычки из CHROOT=...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165267</commentid>
    <comment_count>3</comment_count>
    <who name="Repository Robot">repository-robot</who>
    <bug_when>2017-08-16 13:35:19 +0300</bug_when>
    <thetext>systemd-1:234-alt3 -&gt; sisyphus:

Fri Aug 11 2017 Paul Wolneykien &lt;manowar@altlinux.org&gt; 1:234-alt3
- Fix: Make --root option really work (closes: 33749).</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>