I've a .spec, building luarocks

        https://pastebin.com/6DA94Ump

reading,

        PackagingDrafts/Lua : Rocks
         https://fedoraproject.org/wiki/PackagingDrafts/Lua#Rocks

per the tentative stmt there,

        "Upstream Lua developers increasingly use LuaRocks to distribute their 
modules. We are exploring providing better integration with LuaRocks in the 
future -- both in generating spec files from .rockspec specifications, and in 
shipping a luarocks package that can pick up existing RPM-installed Lua 
packages, but for the time being, you can use upstream rockspec specifications 
to guide your packaging work."

my spec's currently configured to install the pkg as an rpm, & 4 rocks to be 
installed _by_ the just-installed 'luarocks'

atm,

        (1) install works.
        (2) remove works.
        (3) reinstall fails, running scriptlets out of expected order

TL;DR:

   'reinstall' != 'remove' + 'install
   I'm trying to fix the reinstall stage.

The spec contain a '%post' scriplet for rock installation

        ...
        %post
        for r in %{rocks_list}
        do
         echo "##!! Installing rock: ${r}"
         luarocks install --force-fast ${r} CFLAGS="%{_CFLAGS}"
        done
        ...

and '%preun' for rock removal

        ...
        %preun
        for r in %{rocks_list}
        do
         if [[ $( luarocks list --porcelain ${r} | cut -f1 ) == ${r} ]]
         then
           echo "##!! Removing rock: ${r}"
           luarocks remove --force-fast --deps-mode=none ${r}
         fi
        done
        ...


checking stages,

@ (1), install

prior to install

        tree /usr/lib/luarocks/ -L 3
                /usr/lib/luarocks/
                └── rocks-5.1
                    └── manifest

on install

        dnf install compat-luarocks
                ...
                Transaction Summary
                ...
                ##!! Installing rock: luasocket
                Installing https://luarocks.org/luasocket-3.0rc1-2.src.rock
                luasocket 3.0rc1-2 is now installed in /usr (license: MIT)
                ...
                ##!! Installing rock: luasec
                Warning: falling back to wget - install luasec to get native 
HTTPS support
                Installing https://luarocks.org/luasec-0.9-1.src.rock
                luasec 0.9-1 is now installed in /usr (license: MIT)
                ...
                ##!! Installing rock: lua-resty-lrucache
                Installing 
https://luarocks.org/lua-resty-lrucache-0.09-2.src.rock
                lua-resty-lrucache 0.09-2 is now installed in /usr (license: 
2bsd)
                ...
                ##!! Installing rock: lua-resty-core
                Installing https://luarocks.org/lua-resty-core-0.1.17-4.src.rock
                lua-resty-core 0.1.17-4 is now installed in /usr (license: BSD)

                Installed:
                  compat-luarocks-v3.3.1-1.fc32.x86_64

                Complete!

verifying

        luarocks --version
                /usr/bin/luarocks 3.3.1
                LuaRocks main command-line interface

        luarocks list --porcelain
                lua-resty-core  0.1.17-4        installed       
/usr/lib/luarocks/rocks-5.1
                lua-resty-lrucache      0.09-2  installed       
/usr/lib/luarocks/rocks-5.1
                luasec  0.9-1   installed       /usr/lib/luarocks/rocks-5.1
                luasocket       3.0rc1-2        installed       
/usr/lib/luarocks/rocks-5.1

        tree /usr/lib/luarocks/ -L 3
                /usr/lib/luarocks/
                └── rocks-5.1
                    ├── lua-resty-core
                    │   └── 0.1.17-4
                    ├── lua-resty-lrucache
                    │   └── 0.09-2
                    ├── luasec
                    │   └── 0.9-1
                    ├── luasocket
                    │   └── 3.0rc1-2
                    └── manifest


@ (2), remove

on remove

        dnf remove compat-luarocks
                ...
                ##!! Removing rock: luasocket
                Removing luasocket 3.0rc1-2...
                Removal successful.
                ...
                ##!! Removing rock: luasec
                Removing luasec 0.9-1...
                Removal successful.
                ...
                ##!! Removing rock: lua-resty-lrucache
                Removing lua-resty-lrucache 0.09-2...
                Removal successful.
                ...
                ##!! Removing rock: lua-resty-core
                Removing lua-resty-core 0.1.17-4...
                Removal successful.

                Removed:
                  compat-luarocks-v3.3.1-1.fc32.x86_64

                Complete!

verifying

        luarocks --version
                /usr/bin/luarocks: No such file or directory

        tree /usr/lib/luarocks/ -L 3
                /usr/lib/luarocks/
                └── rocks-5.1
                    └── manifest

@ (3), reinstall

1st, install

        dnf install compat-luarocks

                (... as above, in (1) ...)

        tree /usr/lib/luarocks/ -L 3
                /usr/lib/luarocks/
                └── rocks-5.1
                    ├── lua-resty-core
                    │   └── 0.1.17-4
                    ├── lua-resty-lrucache
                    │   └── 0.09-2
                    ├── luasec
                    │   └── 0.9-1
                    ├── luasocket
                    │   └── 3.0rc1-2
                    └── manifest

now **reinstall**

        dnf reinstall compat-luarocks

correctly starts the transaction, installing all the rocks, as in the 'install' 
stage,

        ...
        Running transaction
          Preparing        :                                                    
                                                 1/1 
          Reinstalling     : compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 1/2 
          Running scriptlet: compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 1/2 
        ##!! Installing rock: luasocket
        Installing https://luarocks.org/luasocket-3.0rc1-2.src.rock
        luasocket 3.0rc1-2 is now installed in /usr (license: MIT)

        ##!! Installing rock: luasec
        Installing https://luarocks.org/luasec-0.9-1.src.rock
        luasec 0.9-1 is now installed in /usr (license: MIT)

        ##!! Installing rock: lua-resty-lrucache
        Installing https://luarocks.org/lua-resty-lrucache-0.09-2.src.rock
        lua-resty-lrucache 0.09-2 is now installed in /usr (license: 2bsd)

        ##!! Installing rock: lua-resty-core
        Installing https://luarocks.org/lua-resty-core-0.1.17-4.src.rock
        lua-resty-core 0.1.17-4 is now installed in /usr (license: BSD)


but then *immmediately* continues to REMOVE the rocks,

          Running scriptlet: compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 2/2
        ##!! Removing rock: luasocket
        Removing luasocket 3.0rc1-2...
        Removal successful.
        Missing dependencies for luasec 0.9-1:
           luasocket (not installed)
        ##!! Removing rock: luasec
        Removing luasec 0.9-1...
        Removal successful.
        ##!! Removing rock: lua-resty-lrucache
        Removing lua-resty-lrucache 0.09-2...
        Removal successful.
        Missing dependencies for lua-resty-core 0.1.17-4:
           lua-resty-lrucache (not installed)
        ##!! Removing rock: lua-resty-core
        Removing lua-resty-core 0.1.17-4...
        Removal successful.

          Cleanup          : compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 2/2
          Running scriptlet: compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 2/2
          Verifying        : compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 1/2
          Verifying        : compat-luarocks-v3.3.1-1.fc32.x86_64               
                                                 2/2

        Reinstalled:
          compat-luarocks-v3.3.1-1.fc32.x86_64

        Complete!

leaving me with the *package* installed

        rpm -qa | grep -i luarocks
                compat-luarocks-v3.3.1-1.fc32.x86_64

        luarocks --version
                /usr/bin/luarocks 3.3.1
                LuaRocks main command-line interface

but the rocks themselves UNinstalled/missing,

        tree /usr/lib/luarocks/ -L 3
                /usr/lib/luarocks/
                └── rocks-5.1
                    └── manifest

        luarocks list --porcelain
                (empty)





It's clear that, in this^ example

        reinstall !=  remove + install

In the same vein as

        restart == (typically) stop + start

, shouldn't it?

If not, what's causing the %preun removal to exec AFTER the %post install?
And, how do I prevent that?
_______________________________________________
buildsys mailing list -- buildsys@lists.fedoraproject.org
To unsubscribe send an email to buildsys-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/buildsys@lists.fedoraproject.org

Reply via email to