downgrade utility doesn't work

I'm facing a trouble with downgrade utility.

For example, I have protobuf package installed on my computer and I want to downgrade it (after 'su' command):

d_ovchinnikov]# DOWNGRADE_FROM_ALA=1 downgrade protobuf

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

+  1)  protobuf    3.7.0  1  x86_64  (remote)
+  2)  protobuf    3.7.0  1  x86_64  (local)

The same happens for sudo:

sudo DOWNGRADE_FROM_ALA=1 downgrade protobuf
[sudo] password for d_ovchinnikov: 

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

+  1)  protobuf    3.7.0  1  x86_64  (remote)
+  2)  protobuf    3.7.0  1  x86_64  (local)
$ uname -a
Linux *** 5.2.8-1-MANJARO #1 SMP PREEMPT Fri Aug 9 19:34:20 UTC 2019 x86_64 GNU/Linux
$ inxi -Fxxxz
System:    Host: ***** Kernel: 5.2.8-1-MANJARO x86_64 bits: 64 compiler: gcc v: 9.1.0 Desktop: KDE Plasma 5.16.4 
           tk: Qt 5.13.0 wm: kwin_x11 dm: SDDM Distro: Manjaro Linux 
Machine:   Type: Laptop System: LENOVO product: 20J6S0EN00 v: ThinkPad T470p serial: <filter> Chassis: type: 10 
           serial: <filter> 
           Mobo: LENOVO model: 20J6S0EN00 v: SDK0J40697 WIN serial: <filter> UEFI: LENOVO v: R0FET47W (1.27 ) date: 12/05/2018 
Battery:   ID-1: BAT0 charge: 65.4 Wh condition: 65.4/71.1 Wh (92%) volts: 12.8/11.2 model: LGC 45N1738 type: Li-ion 
           serial: <filter> status: Full cycles: 24 
CPU:       Topology: Quad Core model: Intel Core i5-7440HQ bits: 64 type: MCP arch: Kaby Lake rev: 9 L2 cache: 6144 KiB 
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 22472 
           Speed: 1122 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 1130 2: 1111 3: 1119 4: 1105 
Graphics:  Device-1: Intel HD Graphics 630 vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:591b 
           Device-2: NVIDIA GM108M [GeForce 940MX] driver: N/A bus ID: 02:00.0 chip ID: 10de:134d 
           Display: x11 server: X.Org 1.20.5 driver: intel compositor: kwin_x11 tty: N/A 
           OpenGL: renderer: Mesa DRI Intel HD Graphics 630 (Kaby Lake GT2) v: 4.5 Mesa 19.1.4 compat-v: 3.0 
           direct render: Yes 
Audio:     Device-1: Intel CM238 HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel bus ID: 00:1f.3 chip ID: 8086:a171 
           Sound Server: ALSA v: k5.2.8-1-MANJARO 
Network:   Device-1: Intel Ethernet I219-LM vendor: Lenovo driver: e1000e v: 3.2.6-k port: efa0 bus ID: 00:1f.6 
           chip ID: 8086:15e3 
           IF: enp0s31f6 state: up speed: 100 Mbps duplex: half mac: <filter> 
           Device-2: Intel Wireless 8265 / 8275 driver: iwlwifi v: kernel port: efa0 bus ID: 03:00.0 chip ID: 8086:24fd 
           IF: wlp3s0 state: down mac: <filter> 
           IF-ID-1: docker0 state: down mac: <filter> 
Drives:    Local Storage: total: 465.76 GiB used: 55.08 GiB (11.8%) 
           ID-1: /dev/sda vendor: Samsung model: SSD 860 EVO 500GB size: 465.76 GiB speed: 6.0 Gb/s serial: <filter> rev: 1B6Q 
           scheme: GPT 
Partition: ID-1: / size: 457.16 GiB used: 55.08 GiB (12.0%) fs: ext4 dev: /dev/dm-0 
Sensors:   System Temperatures: cpu: 40.0 C mobo: N/A 
           Fan Speeds (RPM): cpu: 2257 
Info:      Processes: 173 Uptime: 18m Memory: 31.15 GiB used: 1.67 GiB (5.4%) Init: systemd v: 242 Compilers: gcc: 9.1.0 
           Shell: bash v: 5.0.7 running in: konsole inxi: 3.0.35

Additional info:

# pacman --version

 .--.                  Pacman v5.1.3 - libalpm v11.0.3
/ _.-' .-.  .-.  .-.   Copyright (C) 2006-2018 Pacman Development Team
\  '-. '-'  '-'  '-'   Copyright (C) 2002-2006 Judd Vinet
 '--'
                       This program may be freely redistributed under
                       the terms of the GNU General Public License.

/etc/pacman.conf:

#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives

#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir     = /
#DBPath      = /var/lib/pacman/
CacheDir = /var/cache/pacman/pkg/
#LogFile     = /var/log/pacman.log
#GPGDir      = /etc/pacman.d/gnupg/
#HookDir     = /etc/pacman.d/hooks/
HoldPkg      = pacman glibc manjaro-system
# If upgrades are available for these packages they will be asked for first
SyncFirst    = manjaro-system archlinux-keyring manjaro-keyring
#XferCommand = /usr/bin/curl -C - -f %u > %o
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
#UseDelta    = 0.7
Architecture = auto

# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg   =
#IgnoreGroup =

#NoUpgrade   =
#NoExtract   =

# Misc options
#UseSyslog
#Color
#TotalDownload
# We cannot check disk space from within a chroot environment
CheckSpace
#VerbosePkgLists

# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel    = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required

# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Manjaro Linux
# packagers with `pacman-key --populate archlinux manjaro`.

#
# REPOSITORIES
#   - can be defined here or included from another file
#   - pacman will search repositories in the order defined here
#   - local/custom mirrors can be added here or in separate files
#   - repositories listed first will take precedence when packages
#     have identical names, regardless of version number
#   - URLs will have $repo replaced by the name of the current repo
#   - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
#       [repo-name]
#       Server = ServerName
#       Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#

# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[extra]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

[community]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.

[multilib]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

# An example of a custom package repository.  See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs

for the heck of it try

env DOWNGRADE_FROM_ALA=1 downgrade protobuf

Thank you for the quick response.

It did'n work:

# env DOWNGRADE_FROM_ALA=1 downgrade protobuf

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

+  1)  protobuf    3.7.0  1  x86_64  (remote)
+  2)  protobuf    3.7.0  1  x86_64  (local)

FYI:

I also tried to set DOWNGRADE_FROM_ALA for root at the system level:

# set | grep ALA
DOWNGRADE_FROM_ALA=1
[**** d_ovchinnikov]# downgrade protobuf

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

+  1)  protobuf    3.7.0  1  x86_64  (remote)
+  2)  protobuf    3.7.0  1  x86_64  (local)

'LLo,

Maybe, it's just because there's nothing to downgrade, i.e if this package replaces another one with a different name..?

Please look at this:

[**** d_ovchinnikov]# downgrade protobuf

Downgrading from A.L.A. is disabled on the stable branch.
....

This message clearly shows that it's about A.L.A disabled state.
I did this downgrade many times at my previous work because both projects have dependency of protobuf 2.5.0.

@Ste74

FYI:

https://archive.archlinux.org/repos/2016/05/17/extra/os/x86_64/

https://archive.archlinux.org/repos/2016/05/17/extra/os/x86_64/extra.db contains protobuf-2.6.1-2 package

It was just a suggestion, but did you try to run downgrade on another package (without finishing of course) ?
& three years is a little outdated for a rolling system, isn't it ?

Let me see what happen when go to home today.. Just to see if is a downgrade pkg problem..

I thought downgrades were deliberately disabled for stable branch to avoid newbies trashing their installations with broken dependencies etc.

1 Like

Yes that is true as far as I know Downgrade only works on Testing and Unstable it has always been this way.

I know, i have patched downgrade pkg to work in this way in Manjaro, i m at Smartphone and not read all tread so ask.. Downgrade work as expected in Manjaro so all is ok?

@Ste74, What exactly did you mean saying "Downgrade work as expected..."?

I'm a regular Manjaro user, trying to downgrade a single package without any dependency.

Here is my session:

sudo DOWNGRADE_FROM_ALA=1 downgrade protobuf
[sudo] password for d_ovchinnikov: 

Downgrading from A.L.A. is disabled on the stable branch. To override this behavior, set DOWNGRADE_FROM_ALA to 1 .
See https://wiki.manjaro.org/index.php?title=Using_Downgrade  for more details.

Available packages:

+  1)  protobuf    3.7.0  1  x86_64  (remote)
+  2)  protobuf    3.7.0  1  x86_64  (local)

I suppose that if an user types DOWNGRADE_FROM_ALA=1 from sudo, he/she knows the results could be at the end. He/she is supposed to be prudent or, at least, familiar with the rule "with the great power comes the great responsibility".

So, I don't understand the reason why so useful utility doesn't work on an ordinary Manjaro installation.