api mode #105

Closed
opened 2017-05-27 20:21:08 +00:00 by philm · 164 comments
philm commented 2017-05-27 20:21:08 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Can you make it so that in api mode setbranch auto sync can be deactivated so it only set branch in conf and mirrorlist? Perhaps additional arg -N?

*Created by: udeved* @fhdk Can you make it so that in api mode setbranch auto sync can be deactivated so it only set branch in conf and mirrorlist? Perhaps additional arg -N?
philm commented 2017-05-28 06:32:03 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

4.2.0-dev
man pacman-mirrors

pacman-mirrors -h
---snip
MISC:
---snip
  -n, --no-mirrorlist   Use to skip generation of mirrorlist
  -y, --sync            Syncronize pacman databases

4.1.4

pacman-mirrors -h
---snip
  -u, --update          pacman -Syy
  -n, --no-mirrorlist   no mirrorlist
*Created by: fhdk* **4.2.0-dev** `man pacman-mirrors` ``` pacman-mirrors -h ---snip MISC: ---snip -n, --no-mirrorlist Use to skip generation of mirrorlist -y, --sync Syncronize pacman databases ``` **4.1.4** ``` pacman-mirrors -h ---snip -u, --update pacman -Syy -n, --no-mirrorlist no mirrorlist ```
philm commented 2017-05-28 06:43:29 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro
Have you had the time to check on pacman-mirrors-dev?
I think it is ready for release.
The lastest commits is only finetuning of the new man page

*Created by: fhdk* @philmmanjaro Have you had the time to check on pacman-mirrors-dev? I think it is ready for release. The lastest commits is only finetuning of the new man page
philm commented 2017-05-28 07:52:38 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

So -y also works in api mode?
My last test to use it in chroot-run code produced a sync by default.

*Created by: udeved* So -y also works in api mode? My last test to use it in chroot-run code produced a sync by default.
philm commented 2017-05-28 08:56:53 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro
I will check on what udeved has in mind and if possible adopt it into 4.2.0-dev

*Created by: fhdk* @philmmanjaro I will check on what **udeved** has in mind and if possible adopt it into 4.2.0-dev
philm commented 2017-05-28 09:06:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@udeved

So -y also works in api mode?
My last test to use it in chroot-run code produced a sync by default.

-y and -n are mutually exclusive and not limited to api-mode. The reasoning behind is that if you don't want to generate a mirrorlist then syncing pacman databases makes no sense.

The --no-mirrorlist argument causes pacman-mirrors to exit after downloading a set of files mirrors.json and status.json

The --set-branch command does not touch the mirrorlist - only conf. To have the --set-branch reflected in the mirrorlist - the mirrorlist must be generarated with eg. -g, -f1

You can think of the api-mode as an addon - the api-commands are executed before anything else but only one makes pacman-mirrors exit and that is --get-branch.

Can you give me samples on you are combining the arguments?

And maybe a liner on what you want to achieve?

*Created by: fhdk* @udeved > So -y also works in api mode? > My last test to use it in chroot-run code produced a sync by default. **-y** and **-n** are mutually exclusive and not limited to api-mode. The reasoning behind is that if you don't want to generate a mirrorlist then syncing pacman databases makes no sense. The **--no-mirrorlist** argument causes pacman-mirrors to exit after downloading a set of files **mirrors.json** and **status.json** The **--set-branch** command does not touch the mirrorlist - only conf. To have the **--set-branch** reflected in the mirrorlist - the mirrorlist must be generarated with eg. **-g**, **-f1** You can think of the api-mode as an addon - the api-commands are executed before anything else but only one makes pacman-mirrors exit and that is **--get-branch**. Can you give me samples on you are combining the arguments? And maybe a liner on what you want to achieve?
philm commented 2017-05-28 09:24:29 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro
I have just stumpled on a regression or maybe something I have not tested - there is a bug in 4.2.0-dev

*Created by: fhdk* @philmmanjaro I have just stumpled on a regression or maybe something I have not tested - there is a bug in 4.2.0-dev
philm commented 2017-05-28 09:56:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

I would want to replace these two shell functions with the more native pacman-mirrors calls in api mode.
I haven't committed the code changes yet, I just tested.

https://github.com/manjaro/manjaro-tools/blob/devel/lib/util.sh#L143
https://github.com/manjaro/manjaro-tools/blob/devel/lib/util.sh#L149

https://github.com/manjaro/manjaro-tools/blob/devel/bin/chroot-run.in#L100

The mechanism is without pacman-mirrors calls, I got an empty mountpoint, the pacman-mirrors.conf gets copied to mount point, along with basic folders created to run pacman. The mirror is in build cases always statically set to netzspielplatz usually.
The base group for example gets pulled in chroot, after the branch is set in mirrorlist. The "problem" is setting the branch in mirrorlist, not the variable in pacman-mirrors.conf.

If it must sync with --setbranch, then all build related calls would sync twice repo dbs, one by pacman-mirrors the other by chrooted pacman calls to pull in packages.
The same mechanism is used by calamares modules.

I could change the chrooted pacman calls to use only pacman -S $pkglist instead of pacman -Sy $pkglist to work around that, but it would be very unsafe, and the sync would rely on pacman-mirrors.

Ideally, pacman-mirrors could set branch variable and adapt branch in mirrorlist without sync too.

*Created by: udeved* @fhdk I would want to replace these two shell functions with the more native pacman-mirrors calls in api mode. I haven't committed the code changes yet, I just tested. https://github.com/manjaro/manjaro-tools/blob/devel/lib/util.sh#L143 https://github.com/manjaro/manjaro-tools/blob/devel/lib/util.sh#L149 https://github.com/manjaro/manjaro-tools/blob/devel/bin/chroot-run.in#L100 The mechanism is without pacman-mirrors calls, I got an empty mountpoint, the pacman-mirrors.conf gets copied to mount point, along with basic folders created to run pacman. The mirror is in build cases always statically set to netzspielplatz usually. The base group for example gets pulled in chroot, after the branch is set in mirrorlist. The "problem" is setting the branch in mirrorlist, not the variable in pacman-mirrors.conf. If it must sync with --setbranch, then all build related calls would sync twice repo dbs, one by pacman-mirrors the other by chrooted pacman calls to pull in packages. The same mechanism is used by calamares modules. I could change the chrooted pacman calls to use only `pacman -S $pkglist` instead of `pacman -Sy $pkglist` to work around that, but it would be very unsafe, and the sync would rely on pacman-mirrors. Ideally, pacman-mirrors could set branch variable and adapt branch in mirrorlist without sync too.
philm commented 2017-05-28 12:50:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Commit github.com/manjaro/pacman-mirrors@a655719a77

I have made some changes to achieve what you describe - so a command like this

pacman-mirrors -anRS $branch -p $mnt

Explained

  • -a api-mode
  • -n dont generate mirrorlist
  • -R replace branch in mirrorlist with $branch
  • -S replace branch in config with $branch
  • -p prefix files with $mnt

The api commands are prioritized

  1. set prefix
    All commands hereafter will reflect the prefix supplied or defaults if not
  2. write branch to config
  3. replace branch mirror list
  4. write protocols to config
  5. return branch from config and exit
*Created by: fhdk* Commit https://github.com/manjaro/pacman-mirrors/commit/a655719a77a5584937a5326d93341a13ab15ea3a I have made some changes to achieve what you describe - so a command like this pacman-mirrors -anRS $branch -p $mnt Explained * **-a** api-mode * **-n** dont generate mirrorlist * **-R** replace branch in mirrorlist with $branch * **-S** replace branch in config with $branch * **-p** prefix files with $mnt The api commands are prioritized 1. set prefix All commands hereafter will reflect the prefix supplied or defaults if not 2. write branch to config 3. replace branch mirror list 4. write protocols to config 5. return branch from config and exit
philm commented 2017-05-28 18:33:32 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro

When you have some time to spare I would appreciate a review to spot if I missed something.

*Created by: fhdk* @philmmanjaro When you have some time to spare I would appreciate a review to spot if I missed something.
philm commented 2017-05-29 19:07:42 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Is the commit you posted packaged yet?

*Created by: udeved* @fhdk Is the commit you posted packaged yet?
philm commented 2017-05-29 19:20:52 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

No it is not Current dev version is from the 18.

*Created by: fhdk* No it is not Current dev version is from the 18.
philm commented 2017-05-29 20:42:29 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Ok, I'll rebuild the package, I need it in repos to test in chroot.

*Created by: udeved* Ok, I'll rebuild the package, I need it in repos to test in chroot.
philm commented 2017-05-30 07:43:33 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

I've updated the package to the current changes made.

*Created by: philmmanjaro* I've [updated the package](https://lists.manjaro.org/pipermail/manjaro-packages/Week-of-Mon-20170529/011432.html) to the current changes made.
philm commented 2017-05-31 19:04:11 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

How do I stop it from generating the mirrorlist?

$ sudo pacman-mirrors -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -R 
.: Info Branch in config is changed
.: Info Downloading mirrors from repo.manjaro.org
.: Info Nutze Standard-Mirrordatei
.: Info Frage Mirrors ab - Dies kann einige Zeit in Anspruch nehmen
   0.690 Australia      : http://mirror.ventraip.net.au/Manjaro/
   0.681 Australia      : http://manjaro.uberglobalmirror.com/
   0.741 Australia      : http://manjaro.mirror.serversaustralia.com.au/
   0.113 Austria        : http://mirror.inode.at/manjaro/
   0.191 Belarus        : http://mirror.datacenter.by/pub/mirrors/manjaro/
   0.094 Belgium        : http://ftp.belnet.be/manjaro/
   0.480 Belgium        : ftp://ftp.belnet.be/mirrors/manjaro/
   0.227 Belgium        : https://manjaro.cu.be/
   0.810 Brasil         : http://linorg.usp.br/manjaro/
   0.301 Bulgaria       : https://mirrors.netix.net/manjaro/
   0.307 Bulgaria       : https://manjaro.ipacct.com/manjaro/
   0.172 Bulgaria       : http://manjaro.telecoms.bg/
   0.522 Canada         : https://ca.mirror.babylon.network/manjaro/
   0.595 Chile          : http://manjaro.dcc.uchile.cl/
   1.557 Chile          : http://doge.ing.puc.cl/Mirrors/Manjaro/
   1.489 China          : https://mirrors.ustc.edu.cn/manjaro/
   0.718 China          : http://ftp.cuhk.edu.hk/pub/Linux/manjaro/
   ..... China          : ftp://ftp.cuhk.edu.hk/pub/Linux/manjaro/
   1.026 China          : http://mirrors.tuna.tsinghua.edu.cn/manjaro/
   1.618 China          : https://mirrors.zju.edu.cn/manjaro/
   0.454 Colombia       : http://mirror.edatel.net.co/manjaro/
   0.923 Costa_Rica     : https://mirrors.ucr.ac.cr/manjaro/
   0.203 Czech          : https://mirror.dkm.cz/manjaro/
   0.222 Denmark        : https://mirrors.dotsrc.org/manjaro/
   0.395 Denmark        : https://www.uex.dk/repos/manjaro/
   0.919 Ecuador        : https://mirror.cedia.org.ec/manjaro/
   0.935 Ecuador        : https://mirror.uta.edu.ec/manjaro/
   0.925 Ecuador        : https://mirror.espoch.edu.ec/manjaro/
   0.094 France         : http://manjarolinux.polymorf.fr/
   0.116 France         : http://mirror.lignux.com/manjaro/
   0.131 France         : http://ftp.free.org/mirrors/repo.manjaro.org/repos/
   0.454 France         : ftp://ftp.free.org/mirrors/repo.manjaro.org/repos/
   0.210 France         : https://fr.mirror.babylon.network/manjaro/
   0.132 Germany        : http://mirror.ragenetwork.de/manjaro/
   0.199 Germany        : https://ftp.halifax.rwth-aachen.de/manjaro/
   0.659 Germany        : ftp://ftp.halifax.rwth-aachen.de/manjaro/
   0.067 Germany        : http://ftp.tu-chemnitz.de/pub/linux/manjaro/
   0.283 Germany        : ftp://ftp.tu-chemnitz.de/pub/linux/manjaro/
   0.260 Germany        : https://mirror.netzspielplatz.de/manjaro/packages/
   0.172 Germany        : https://mirror.netcologne.de/manjaro/
   0.178 Germany        : https://repo.rhindon.net/manjaro/
   0.178 Germany        : https://repo.stdout.net/manjaro/
   0.204 Germany        : https://mirror.alpix.eu/manjaro/
   0.238 Germany        : https://manjaro-mirror-a.alpix.eu/
   0.115 Germany        : http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/
   0.550 Germany        : ftp://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/
   0.164 Germany        : https://manjaro.ieji.de/
   0.200 Hungary        : http://mirror.infotronik.hu/mirrors/pub/manjaro/
   0.543 Indonesia      : http://kambing.ui.ac.id/manjaro/
   0.514 Indonesia      : http://kartolo.sby.datautama.net.id/manjaro/
   0.264 Ireland        : https://ftp.heanet.ie/mirrors/manjaro/
   0.636 Ireland        : ftp://ftp.heanet.ie/mirrors/manjaro/
   0.340 Italy          : https://manjaro.mirror.garr.it/mirrors/manjaro/
   0.359 Italy          : https://ba.mirror.garr.it/mirrors/manjaro/
   0.345 Italy          : https://ct.mirror.garr.it/mirrors/manjaro/
   0.631 Japan          : http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/
   0.655 Japan          : http://ftp.riken.jp/Linux/manjaro/
   ..... Japan          : ftp://ftp.riken.jp/Linux/manjaro/
   0.193 Netherlands    : https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/
   0.421 Netherlands    : ftp://ftp.nluug.nl/pub/os/Linux/distr/manjaro/
   0.099 Netherlands    : http://ftp.snt.utwente.nl/pub/linux/manjaro/
   0.459 Netherlands    : ftp://ftp.snt.utwente.nl/pub/linux/manjaro/
   0.205 Netherlands    : https://nl.mirror.babylon.network/manjaro/
   0.187 Netherlands    : https://manjaro.mirror.wearetriple.com/
   0.710 Philippines    : http://mirror.rise.ph/manjaro/
   ..... Poland         : http://mirror.chmuri.net/manjaro/
.: Fehler timed out 'http://mirror.chmuri.net/manjaro/'

   0.221 Portugal       : http://ftp.dei.uc.pt/pub/linux/manjaro/
   0.867 Portugal       : ftp://ftp.dei.uc.pt/pub/linux/manjaro/
   ..... Portugal       : http://manjaro.barata.pt/
.: Fehler [Errno 111] Connection refused 'http://manjaro.barata.pt/'

   0.177 Romania        : http://mirrors.serverhost.ro/manjaro/packages/
   0.150 Romania        : http://ftp.lug.ro/manjaro/
   0.667 Romania        : ftp://ftp.lug.ro/manjaro/
   0.260 Russia         : https://mirror.yandex.ru/mirrors/manjaro/
   1.229 Singapore      : https://download.nus.edu.sg/mirror/manjaro/
   0.461 South_Africa   : http://mirror.is.co.za/mirrors/manjaro.org/
   0.219 Spain          : http://ftp.caliu.cat/manjaro/
   0.235 Sweden         : https://ftp.lysator.liu.se/pub/manjaro/
   1.314 Sweden         : ftp://ftp.lysator.liu.se/pub/manjaro/
   0.260 Sweden         : https://mirror.zetup.net/manjaro/
   0.707 Taiwan         : http://free.nchc.org.tw/manjaro/
   0.188 Turkey         : http://ftp.linux.org.tr/manjaro/
   0.828 Turkey         : ftp://ftp.linux.org.tr/manjaro/
   0.123 United_Kingdom : http://repo.manjaro.org.uk/
   0.220 United_Kingdom : https://www.mirrorservice.org/sites/repo.manjaro.org/repos/
   0.148 United_Kingdom : http://mirror.catn.com/pub/manjaro/
   0.133 United_Kingdom : http://manjaro.mirrors.uk2.net/
   0.309 United_States  : http://mirror.dacentec.com/manjaro/
   0.312 United_States  : http://mirror.jmu.edu/manjaro/
   0.311 United_States  : http://mirror.solarvps.com/manjaro/
   0.972 United_States  : http://mirror.nexcess.net/manjaro/
   0.318 United_States  : http://distro.ibiblio.org/manjaro/
   0.706 United_States  : https://mirror.clarkson.edu/manjaro/
   0.816 United_States  : https://mirrors.ocf.berkeley.edu/manjaro/
   1.506 Vietnam        : https://mirror.freedif.org/Manjaro/
.: Info Schreibe Mirrorliste
   Belgium         : http://ftp.belnet.be/manjaro/unstable
   France          : http://manjarolinux.polymorf.fr/unstable
   Austria         : http://mirror.inode.at/manjaro/unstable
   France          : http://mirror.lignux.com/manjaro/unstable
   United_Kingdom  : http://repo.manjaro.org.uk/unstable
   Germany         : http://mirror.ragenetwork.de/manjaro/unstable
   United_Kingdom  : http://manjaro.mirrors.uk2.net/unstable
   United_Kingdom  : http://mirror.catn.com/pub/manjaro/unstable
   Germany         : https://manjaro.ieji.de/unstable
   Bulgaria        : http://manjaro.telecoms.bg/unstable
   Germany         : https://mirror.netcologne.de/manjaro/unstable
   Romania         : http://mirrors.serverhost.ro/manjaro/packages/unstable
   Germany         : https://repo.rhindon.net/manjaro/unstable
   Germany         : https://repo.stdout.net/manjaro/unstable
   Netherlands     : https://manjaro.mirror.wearetriple.com/unstable
   Belarus         : http://mirror.datacenter.by/pub/mirrors/manjaro/unstable
   Hungary         : http://mirror.infotronik.hu/mirrors/pub/manjaro/unstable
   Czech           : https://mirror.dkm.cz/manjaro/unstable
   Germany         : https://mirror.alpix.eu/manjaro/unstable
   Netherlands     : https://nl.mirror.babylon.network/manjaro/unstable
   France          : https://fr.mirror.babylon.network/manjaro/unstable
   Spain           : http://ftp.caliu.cat/manjaro/unstable
   United_Kingdom  : https://www.mirrorservice.org/sites/repo.manjaro.org/repos/unstable
   Denmark         : https://mirrors.dotsrc.org/manjaro/unstable
   Belgium         : https://manjaro.cu.be/unstable
   Germany         : https://manjaro-mirror-a.alpix.eu/unstable
   Germany         : https://mirror.netzspielplatz.de/manjaro/packages/unstable
   Russia          : https://mirror.yandex.ru/mirrors/manjaro/unstable
   Sweden          : https://mirror.zetup.net/manjaro/unstable
   Germany         : http://ftp.tu-chemnitz.de/pub/linux/manjaro/unstable
   Bulgaria        : https://mirrors.netix.net/manjaro/unstable
   Bulgaria        : https://manjaro.ipacct.com/manjaro/unstable
   United_States   : http://mirror.dacentec.com/manjaro/unstable
   United_States   : http://mirror.solarvps.com/manjaro/unstable
   United_States   : http://mirror.jmu.edu/manjaro/unstable
   United_States   : http://distro.ibiblio.org/manjaro/unstable
   Italy           : https://manjaro.mirror.garr.it/mirrors/manjaro/unstable
   Italy           : https://ct.mirror.garr.it/mirrors/manjaro/unstable
   Italy           : https://ba.mirror.garr.it/mirrors/manjaro/unstable
   Denmark         : https://www.uex.dk/repos/manjaro/unstable
   Netherlands     : https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/unstable
   Colombia        : http://mirror.edatel.net.co/manjaro/unstable
   France          : http://ftp.free.org/mirrors/repo.manjaro.org/repos/unstable
   Netherlands     : http://ftp.snt.utwente.nl/pub/linux/manjaro/unstable
   South_Africa    : http://mirror.is.co.za/mirrors/manjaro.org/unstable
   Belgium         : ftp://ftp.belnet.be/mirrors/manjaro/unstable
   Indonesia       : http://kartolo.sby.datautama.net.id/manjaro/unstable
   Canada          : https://ca.mirror.babylon.network/manjaro/unstable
   Indonesia       : http://kambing.ui.ac.id/manjaro/unstable
   Germany         : http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/unstable
   Chile           : http://manjaro.dcc.uchile.cl/unstable
   Japan           : http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/unstable
   Ireland         : https://ftp.heanet.ie/mirrors/manjaro/unstable
   Germany         : https://ftp.halifax.rwth-aachen.de/manjaro/unstable
   Romania         : http://ftp.lug.ro/manjaro/unstable
   Australia       : http://manjaro.uberglobalmirror.com/unstable
   Australia       : http://mirror.ventraip.net.au/Manjaro/unstable
   United_States   : https://mirror.clarkson.edu/manjaro/unstable
   Taiwan          : http://free.nchc.org.tw/manjaro/unstable
   Philippines     : http://mirror.rise.ph/manjaro/unstable
   Australia       : http://manjaro.mirror.serversaustralia.com.au/unstable
   Brasil          : http://linorg.usp.br/manjaro/unstable
   United_States   : https://mirrors.ocf.berkeley.edu/manjaro/unstable
   Turkey          : http://ftp.linux.org.tr/manjaro/unstable
   Portugal        : http://ftp.dei.uc.pt/pub/linux/manjaro/unstable
   Ecuador         : https://mirror.cedia.org.ec/manjaro/unstable
   Costa_Rica      : https://mirrors.ucr.ac.cr/manjaro/unstable
   Ecuador         : https://mirror.espoch.edu.ec/manjaro/unstable
   Ecuador         : https://mirror.uta.edu.ec/manjaro/unstable
   United_States   : http://mirror.nexcess.net/manjaro/unstable
   China           : http://mirrors.tuna.tsinghua.edu.cn/manjaro/unstable
   Singapore       : https://download.nus.edu.sg/mirror/manjaro/unstable
   Sweden          : https://ftp.lysator.liu.se/pub/manjaro/unstable
   China           : https://mirrors.ustc.edu.cn/manjaro/unstable
   Vietnam         : https://mirror.freedif.org/Manjaro/unstable
   Chile           : http://doge.ing.puc.cl/Mirrors/Manjaro/unstable
   China           : https://mirrors.zju.edu.cn/manjaro/unstable
   Japan           : http://ftp.riken.jp/Linux/manjaro/unstable
   China           : http://ftp.cuhk.edu.hk/pub/Linux/manjaro/unstable
.: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman.d/mirrorlist

Would be totally sufficient if the code stops here optionally:

.: Info Branch in config is changed

Perhaps, if a mirrorlist exists, eg static list with one build mirror, then execute Rebranch

*Created by: udeved* @fhdk How do I stop it from generating the mirrorlist? ``` $ sudo pacman-mirrors -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -R .: Info Branch in config is changed .: Info Downloading mirrors from repo.manjaro.org .: Info Nutze Standard-Mirrordatei .: Info Frage Mirrors ab - Dies kann einige Zeit in Anspruch nehmen 0.690 Australia : http://mirror.ventraip.net.au/Manjaro/ 0.681 Australia : http://manjaro.uberglobalmirror.com/ 0.741 Australia : http://manjaro.mirror.serversaustralia.com.au/ 0.113 Austria : http://mirror.inode.at/manjaro/ 0.191 Belarus : http://mirror.datacenter.by/pub/mirrors/manjaro/ 0.094 Belgium : http://ftp.belnet.be/manjaro/ 0.480 Belgium : ftp://ftp.belnet.be/mirrors/manjaro/ 0.227 Belgium : https://manjaro.cu.be/ 0.810 Brasil : http://linorg.usp.br/manjaro/ 0.301 Bulgaria : https://mirrors.netix.net/manjaro/ 0.307 Bulgaria : https://manjaro.ipacct.com/manjaro/ 0.172 Bulgaria : http://manjaro.telecoms.bg/ 0.522 Canada : https://ca.mirror.babylon.network/manjaro/ 0.595 Chile : http://manjaro.dcc.uchile.cl/ 1.557 Chile : http://doge.ing.puc.cl/Mirrors/Manjaro/ 1.489 China : https://mirrors.ustc.edu.cn/manjaro/ 0.718 China : http://ftp.cuhk.edu.hk/pub/Linux/manjaro/ ..... China : ftp://ftp.cuhk.edu.hk/pub/Linux/manjaro/ 1.026 China : http://mirrors.tuna.tsinghua.edu.cn/manjaro/ 1.618 China : https://mirrors.zju.edu.cn/manjaro/ 0.454 Colombia : http://mirror.edatel.net.co/manjaro/ 0.923 Costa_Rica : https://mirrors.ucr.ac.cr/manjaro/ 0.203 Czech : https://mirror.dkm.cz/manjaro/ 0.222 Denmark : https://mirrors.dotsrc.org/manjaro/ 0.395 Denmark : https://www.uex.dk/repos/manjaro/ 0.919 Ecuador : https://mirror.cedia.org.ec/manjaro/ 0.935 Ecuador : https://mirror.uta.edu.ec/manjaro/ 0.925 Ecuador : https://mirror.espoch.edu.ec/manjaro/ 0.094 France : http://manjarolinux.polymorf.fr/ 0.116 France : http://mirror.lignux.com/manjaro/ 0.131 France : http://ftp.free.org/mirrors/repo.manjaro.org/repos/ 0.454 France : ftp://ftp.free.org/mirrors/repo.manjaro.org/repos/ 0.210 France : https://fr.mirror.babylon.network/manjaro/ 0.132 Germany : http://mirror.ragenetwork.de/manjaro/ 0.199 Germany : https://ftp.halifax.rwth-aachen.de/manjaro/ 0.659 Germany : ftp://ftp.halifax.rwth-aachen.de/manjaro/ 0.067 Germany : http://ftp.tu-chemnitz.de/pub/linux/manjaro/ 0.283 Germany : ftp://ftp.tu-chemnitz.de/pub/linux/manjaro/ 0.260 Germany : https://mirror.netzspielplatz.de/manjaro/packages/ 0.172 Germany : https://mirror.netcologne.de/manjaro/ 0.178 Germany : https://repo.rhindon.net/manjaro/ 0.178 Germany : https://repo.stdout.net/manjaro/ 0.204 Germany : https://mirror.alpix.eu/manjaro/ 0.238 Germany : https://manjaro-mirror-a.alpix.eu/ 0.115 Germany : http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/ 0.550 Germany : ftp://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/ 0.164 Germany : https://manjaro.ieji.de/ 0.200 Hungary : http://mirror.infotronik.hu/mirrors/pub/manjaro/ 0.543 Indonesia : http://kambing.ui.ac.id/manjaro/ 0.514 Indonesia : http://kartolo.sby.datautama.net.id/manjaro/ 0.264 Ireland : https://ftp.heanet.ie/mirrors/manjaro/ 0.636 Ireland : ftp://ftp.heanet.ie/mirrors/manjaro/ 0.340 Italy : https://manjaro.mirror.garr.it/mirrors/manjaro/ 0.359 Italy : https://ba.mirror.garr.it/mirrors/manjaro/ 0.345 Italy : https://ct.mirror.garr.it/mirrors/manjaro/ 0.631 Japan : http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/ 0.655 Japan : http://ftp.riken.jp/Linux/manjaro/ ..... Japan : ftp://ftp.riken.jp/Linux/manjaro/ 0.193 Netherlands : https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/ 0.421 Netherlands : ftp://ftp.nluug.nl/pub/os/Linux/distr/manjaro/ 0.099 Netherlands : http://ftp.snt.utwente.nl/pub/linux/manjaro/ 0.459 Netherlands : ftp://ftp.snt.utwente.nl/pub/linux/manjaro/ 0.205 Netherlands : https://nl.mirror.babylon.network/manjaro/ 0.187 Netherlands : https://manjaro.mirror.wearetriple.com/ 0.710 Philippines : http://mirror.rise.ph/manjaro/ ..... Poland : http://mirror.chmuri.net/manjaro/ .: Fehler timed out 'http://mirror.chmuri.net/manjaro/' 0.221 Portugal : http://ftp.dei.uc.pt/pub/linux/manjaro/ 0.867 Portugal : ftp://ftp.dei.uc.pt/pub/linux/manjaro/ ..... Portugal : http://manjaro.barata.pt/ .: Fehler [Errno 111] Connection refused 'http://manjaro.barata.pt/' 0.177 Romania : http://mirrors.serverhost.ro/manjaro/packages/ 0.150 Romania : http://ftp.lug.ro/manjaro/ 0.667 Romania : ftp://ftp.lug.ro/manjaro/ 0.260 Russia : https://mirror.yandex.ru/mirrors/manjaro/ 1.229 Singapore : https://download.nus.edu.sg/mirror/manjaro/ 0.461 South_Africa : http://mirror.is.co.za/mirrors/manjaro.org/ 0.219 Spain : http://ftp.caliu.cat/manjaro/ 0.235 Sweden : https://ftp.lysator.liu.se/pub/manjaro/ 1.314 Sweden : ftp://ftp.lysator.liu.se/pub/manjaro/ 0.260 Sweden : https://mirror.zetup.net/manjaro/ 0.707 Taiwan : http://free.nchc.org.tw/manjaro/ 0.188 Turkey : http://ftp.linux.org.tr/manjaro/ 0.828 Turkey : ftp://ftp.linux.org.tr/manjaro/ 0.123 United_Kingdom : http://repo.manjaro.org.uk/ 0.220 United_Kingdom : https://www.mirrorservice.org/sites/repo.manjaro.org/repos/ 0.148 United_Kingdom : http://mirror.catn.com/pub/manjaro/ 0.133 United_Kingdom : http://manjaro.mirrors.uk2.net/ 0.309 United_States : http://mirror.dacentec.com/manjaro/ 0.312 United_States : http://mirror.jmu.edu/manjaro/ 0.311 United_States : http://mirror.solarvps.com/manjaro/ 0.972 United_States : http://mirror.nexcess.net/manjaro/ 0.318 United_States : http://distro.ibiblio.org/manjaro/ 0.706 United_States : https://mirror.clarkson.edu/manjaro/ 0.816 United_States : https://mirrors.ocf.berkeley.edu/manjaro/ 1.506 Vietnam : https://mirror.freedif.org/Manjaro/ .: Info Schreibe Mirrorliste Belgium : http://ftp.belnet.be/manjaro/unstable France : http://manjarolinux.polymorf.fr/unstable Austria : http://mirror.inode.at/manjaro/unstable France : http://mirror.lignux.com/manjaro/unstable United_Kingdom : http://repo.manjaro.org.uk/unstable Germany : http://mirror.ragenetwork.de/manjaro/unstable United_Kingdom : http://manjaro.mirrors.uk2.net/unstable United_Kingdom : http://mirror.catn.com/pub/manjaro/unstable Germany : https://manjaro.ieji.de/unstable Bulgaria : http://manjaro.telecoms.bg/unstable Germany : https://mirror.netcologne.de/manjaro/unstable Romania : http://mirrors.serverhost.ro/manjaro/packages/unstable Germany : https://repo.rhindon.net/manjaro/unstable Germany : https://repo.stdout.net/manjaro/unstable Netherlands : https://manjaro.mirror.wearetriple.com/unstable Belarus : http://mirror.datacenter.by/pub/mirrors/manjaro/unstable Hungary : http://mirror.infotronik.hu/mirrors/pub/manjaro/unstable Czech : https://mirror.dkm.cz/manjaro/unstable Germany : https://mirror.alpix.eu/manjaro/unstable Netherlands : https://nl.mirror.babylon.network/manjaro/unstable France : https://fr.mirror.babylon.network/manjaro/unstable Spain : http://ftp.caliu.cat/manjaro/unstable United_Kingdom : https://www.mirrorservice.org/sites/repo.manjaro.org/repos/unstable Denmark : https://mirrors.dotsrc.org/manjaro/unstable Belgium : https://manjaro.cu.be/unstable Germany : https://manjaro-mirror-a.alpix.eu/unstable Germany : https://mirror.netzspielplatz.de/manjaro/packages/unstable Russia : https://mirror.yandex.ru/mirrors/manjaro/unstable Sweden : https://mirror.zetup.net/manjaro/unstable Germany : http://ftp.tu-chemnitz.de/pub/linux/manjaro/unstable Bulgaria : https://mirrors.netix.net/manjaro/unstable Bulgaria : https://manjaro.ipacct.com/manjaro/unstable United_States : http://mirror.dacentec.com/manjaro/unstable United_States : http://mirror.solarvps.com/manjaro/unstable United_States : http://mirror.jmu.edu/manjaro/unstable United_States : http://distro.ibiblio.org/manjaro/unstable Italy : https://manjaro.mirror.garr.it/mirrors/manjaro/unstable Italy : https://ct.mirror.garr.it/mirrors/manjaro/unstable Italy : https://ba.mirror.garr.it/mirrors/manjaro/unstable Denmark : https://www.uex.dk/repos/manjaro/unstable Netherlands : https://ftp.nluug.nl/pub/os/Linux/distr/manjaro/unstable Colombia : http://mirror.edatel.net.co/manjaro/unstable France : http://ftp.free.org/mirrors/repo.manjaro.org/repos/unstable Netherlands : http://ftp.snt.utwente.nl/pub/linux/manjaro/unstable South_Africa : http://mirror.is.co.za/mirrors/manjaro.org/unstable Belgium : ftp://ftp.belnet.be/mirrors/manjaro/unstable Indonesia : http://kartolo.sby.datautama.net.id/manjaro/unstable Canada : https://ca.mirror.babylon.network/manjaro/unstable Indonesia : http://kambing.ui.ac.id/manjaro/unstable Germany : http://ftp.rz.tu-bs.de/pub/mirror/manjaro.org/repos/unstable Chile : http://manjaro.dcc.uchile.cl/unstable Japan : http://ftp.tsukuba.wide.ad.jp/Linux/manjaro/unstable Ireland : https://ftp.heanet.ie/mirrors/manjaro/unstable Germany : https://ftp.halifax.rwth-aachen.de/manjaro/unstable Romania : http://ftp.lug.ro/manjaro/unstable Australia : http://manjaro.uberglobalmirror.com/unstable Australia : http://mirror.ventraip.net.au/Manjaro/unstable United_States : https://mirror.clarkson.edu/manjaro/unstable Taiwan : http://free.nchc.org.tw/manjaro/unstable Philippines : http://mirror.rise.ph/manjaro/unstable Australia : http://manjaro.mirror.serversaustralia.com.au/unstable Brasil : http://linorg.usp.br/manjaro/unstable United_States : https://mirrors.ocf.berkeley.edu/manjaro/unstable Turkey : http://ftp.linux.org.tr/manjaro/unstable Portugal : http://ftp.dei.uc.pt/pub/linux/manjaro/unstable Ecuador : https://mirror.cedia.org.ec/manjaro/unstable Costa_Rica : https://mirrors.ucr.ac.cr/manjaro/unstable Ecuador : https://mirror.espoch.edu.ec/manjaro/unstable Ecuador : https://mirror.uta.edu.ec/manjaro/unstable United_States : http://mirror.nexcess.net/manjaro/unstable China : http://mirrors.tuna.tsinghua.edu.cn/manjaro/unstable Singapore : https://download.nus.edu.sg/mirror/manjaro/unstable Sweden : https://ftp.lysator.liu.se/pub/manjaro/unstable China : https://mirrors.ustc.edu.cn/manjaro/unstable Vietnam : https://mirror.freedif.org/Manjaro/unstable Chile : http://doge.ing.puc.cl/Mirrors/Manjaro/unstable China : https://mirrors.zju.edu.cn/manjaro/unstable Japan : http://ftp.riken.jp/Linux/manjaro/unstable China : http://ftp.cuhk.edu.hk/pub/Linux/manjaro/unstable .: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman.d/mirrorlist ``` Would be totally sufficient if the code stops here optionally: `.: Info Branch in config is changed` Perhaps, if a mirrorlist exists, eg static list with one build mirror, then execute Rebranch
philm commented 2017-05-31 19:08:48 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Or, if I was able to supply additionally a specific mirror, I could use fasttrack -f 1 and I would not even have to write it to the empty folder for the mkchroot.

*Created by: udeved* Or, if I was able to supply additionally a specific mirror, I could use fasttrack -f 1 and I would not even have to write it to the empty folder for the mkchroot.
philm commented 2017-05-31 19:13:19 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

If you actually looked at the sample a couple of post up 😸
You forgot -n argument which will exit with no mirrorlist

sudo pacman-mirrors -a -n -R  -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable
*Created by: fhdk* If you actually looked at the sample a couple of post up :smile_cat: You forgot **-n** argument which will exit with no mirrorlist ``` sudo pacman-mirrors -a -n -R -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable ```
philm commented 2017-05-31 19:16:42 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

$ sudo pacman-mirrors -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -R -n
.: Info Branch in config is changed
.: Info Downloading mirrors from repo.manjaro.org
.: Info The mirrors has not changed

$ sudo pacman-mirrors -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S stable -R -n
.: Info Branch in config is changed
.: Info Downloading mirrors from repo.manjaro.org
.: Info The mirrors has not changed

It rebranches, yes?

*Created by: udeved* ``` $ sudo pacman-mirrors -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -R -n .: Info Branch in config is changed .: Info Downloading mirrors from repo.manjaro.org .: Info The mirrors has not changed ``` ``` $ sudo pacman-mirrors -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S stable -R -n .: Info Branch in config is changed .: Info Downloading mirrors from repo.manjaro.org .: Info The mirrors has not changed ``` It rebranches, yes?
philm commented 2017-05-31 19:19:10 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Among other things the pacman-mirrors installation creates the path

/etc/pacman.d/

as a part of the installation process.

snip from setup.py in the pacman-mirrors project

   data_files=[('/etc', ['conf/pacman-mirrors.conf']),
                ('/etc/pacman.d', []),
                ('share/man/man8', ['man/pacman-mirrors.8.gz']),
                ('share/pacman-mirrors', ['share/mirrors.json']),
*Created by: fhdk* Among other things the pacman-mirrors installation creates the path /etc/pacman.d/ as a part of the installation process. snip from setup.py in the pacman-mirrors project ``` data_files=[('/etc', ['conf/pacman-mirrors.conf']), ('/etc/pacman.d', []), ('share/man/man8', ['man/pacman-mirrors.8.gz']), ('share/pacman-mirrors', ['share/mirrors.json']), ```
philm commented 2017-05-31 19:21:12 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

At least it should - Your output is wrong - you're missing the info

Branch in mirrorlist is changed
*Created by: fhdk* At least it should - Your output is wrong - you're missing the info Branch in mirrorlist is changed
philm commented 2017-05-31 19:23:06 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I need to revisit the code hang on

*Created by: fhdk* I need to revisit the code hang on
philm commented 2017-05-31 19:23:17 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Thing is, I was playing with the idea to only use pacman-mirrors.

Currently, in order to set up a chroot, it will copy a default pacman-mirrors.conf from manjaro-tools data dir to an emtpty chroot destination, and sed the branch to the desired branch.
Once the pacman-mirrors.conf is present in empty chroot, a mirrorlist is written, with only one build mirror and its corresponding branch.
After this was done, packages can be installed in the empty chroot with pacman.

*Created by: udeved* Thing is, I was playing with the idea to only use pacman-mirrors. Currently, in order to set up a chroot, it will copy a default pacman-mirrors.conf from manjaro-tools data dir to an emtpty chroot destination, and sed the branch to the desired branch. Once the pacman-mirrors.conf is present in empty chroot, a mirrorlist is written, with only one build mirror and its corresponding branch. After this was done, packages can be installed in the empty chroot with pacman.
philm commented 2017-05-31 19:29:04 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I am deeply sorry - somehow the actual rebranch-call has slipped without me noticing.
I have fixed it with commit github.com/manjaro/pacman-mirrors@47d979df0b

*Created by: fhdk* I am deeply sorry - somehow the actual rebranch-call has slipped without me noticing. I have fixed it with commit https://github.com/manjaro/pacman-mirrors/commit/47d979df0b9015752a34e0c2d8054b0a88c3cba2
philm commented 2017-05-31 19:33:13 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Would it be possible in api mode to have an additional mirror arg?
Ie I can supply pacman-mirrors with a specific mirror and -nR still works?

*Created by: udeved* Would it be possible in api mode to have an additional mirror arg? Ie I can supply pacman-mirrors with a specific mirror and -nR still works?
philm commented 2017-05-31 19:35:18 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

It is - the cogs are turning - but I am done for today - it was phone constant telling me mails popped in an I thought it was you 🐎

I will work out a -M --mirror arg tomorrow.

*Created by: fhdk* It is - the cogs are turning - but I am done for today - it was phone constant telling me mails popped in an I thought it was you :racehorse: I will work out a -M --mirror arg tomorrow.
philm commented 2017-05-31 19:36:52 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Sounds nice, greatly appreciated, because it provides indeed an api that solves a task you have to code in every little project that involves creating chroots.

*Created by: udeved* Sounds nice, greatly appreciated, because it provides indeed an api that solves a task you have to code in every little project that involves creating chroots.
philm commented 2017-06-01 07:51:05 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Put it on halt @fhdk for some days , I am currently making a decision if I want to further contribute to manjaro.

*Created by: udeved* Put it on halt @fhdk for some days , I am currently making a decision if I want to further contribute to manjaro.
philm commented 2017-06-01 08:27:13 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

That was an overnight change 😞

So will others benefit from the changes made


Configuration flow of pacman-mirrors

At launch an internal default configuration is setup, file configuration is applied and then the commandline is parsed and applied.

API arguments

These arguments modifies key elements of pacman-mirrors configuration according to the packagers needs.

The actions performed by the API are in strict order and performed before any other actions.

  1. If --prefix

    • prefix internal file configuration with $PREFIX
    • continue
  2. If --set-branch

    • apply internal branch configuration with $BRANCH
    • continue
  3. If --url $URL must end with /

    • apply internal configuration to a mirrorlist with $URL
    • continue
  4. If --re-branch

    • replace branch in mirrorlist with $BRANCH
    • continue
  5. If --get-branch

    • sys.exit(config.branch)

When done pacman-mirrors checks the internet connection and download the latest datafiles for creating the mirrorlist. At this point it is possible to interupt further processing.

If the -n / no-mirrorlist argument is present pacman-mirrors will now exit.

*Created by: fhdk* That was an overnight change :disappointed: So will others benefit from the changes made --------------------------------- **Configuration flow of pacman-mirrors** At launch an internal default configuration is setup, file configuration is applied and then the commandline is parsed and applied. **API arguments** These arguments modifies key elements of pacman-mirrors configuration according to the packagers needs. The actions performed by the API are in strict order and performed **before any** other actions. 1. If --prefix * prefix internal file configuration with $PREFIX * continue 2. If --set-branch * apply internal branch configuration with $BRANCH * continue 3. If --url **$URL must end with `/`** * apply internal configuration to a mirrorlist with $URL * continue 4. If --re-branch * replace branch in mirrorlist with $BRANCH * continue 5. If --get-branch * sys.exit(config.branch) When done pacman-mirrors checks the internet connection and download the latest datafiles for creating the mirrorlist. At this point it is possible to interupt further processing. If the **-n** / **no-mirrorlist** argument is present pacman-mirrors will now exit.
philm commented 2017-06-01 08:32:03 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

Current code changes are released as 4.2.0dev.20170601-1

*Created by: philmmanjaro* Current code changes are released as [4.2.0dev.20170601-1](https://lists.manjaro.org/pipermail/manjaro-packages/Week-of-Mon-20170529/011456.html)
philm commented 2017-06-01 08:56:04 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro
Sorry - and thanks - just that I was disturbed and had not committed the changes

*Created by: fhdk* @philmmanjaro Sorry - and thanks - just that I was disturbed and had not committed the changes
philm commented 2017-06-01 09:06:03 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Its definitely useful for anyone who want to create a chroot, its not lost effort.
Anyway, if my contributions are not appreciated, and only tolerated, kind of evil step child, I think I need to reconsider if I want to work on manjaro further.

*Created by: udeved* @fhdk Its definitely useful for anyone who want to create a chroot, its not lost effort. Anyway, if my contributions are not appreciated, and only tolerated, kind of evil step child, I think I need to reconsider if I want to work on manjaro further.
philm commented 2017-06-01 09:08:31 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Anyway, if my contributions are not appreciated

Don't sell yourself short - I think you're more appreciated than you think - mankind simply is not in a habit of expressing appreciation - generally speaking of course.

As an example - your input has been highly valued in the evolution of pacman-mirrors.

*Created by: fhdk* > Anyway, if my contributions are not appreciated Don't sell yourself short - I think you're more appreciated than you think - mankind simply is not in a habit of expressing appreciation - generally speaking of course. As an example - your input has been highly valued in the evolution of pacman-mirrors.
philm commented 2017-06-01 09:11:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

This is better discussed non publicly, but I don't have any problem with you.
You did a fine job in my view with pacman-mirrors. ;)

*Created by: udeved* This is better discussed non publicly, but I don't have any problem with you. You did a fine job in my view with pacman-mirrors. ;)
philm commented 2017-06-01 09:15:44 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

pacman-mirrors does as expected

>>> sudo pacman-mirrors -a -R -Sunstable -U https://www.uex.dk/repos/manjaro/ -n
[sudo] adgangskode for fh: 
.: Info Branch in config is changed
.: Info Writing mirror list
.: Info Mirror list generated and saved to: /etc/pacman.d/mirrorlist
.: Info Branch in mirror list is changed
.: Info Downloading mirrors from repo.manjaro.org
.: Info The mirrors has not changed

Kind of misleading .: Info The mirrors has not changed since in fact it has

With this addition you can skip the -R and have the same result

*Created by: fhdk* pacman-mirrors does as expected ``` >>> sudo pacman-mirrors -a -R -Sunstable -U https://www.uex.dk/repos/manjaro/ -n [sudo] adgangskode for fh: .: Info Branch in config is changed .: Info Writing mirror list .: Info Mirror list generated and saved to: /etc/pacman.d/mirrorlist .: Info Branch in mirror list is changed .: Info Downloading mirrors from repo.manjaro.org .: Info The mirrors has not changed ``` Kind of misleading `.: Info The mirrors has not changed` since in fact it has With this addition you can skip the -R and have the same result
philm commented 2017-06-01 09:20:29 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro
I would like to request a package on latest commit

*Created by: fhdk* @philmmanjaro I would like to request a package on latest commit
philm commented 2017-06-01 10:04:10 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

Latest code released as 4.2.0dev.20170601-2.

*Created by: philmmanjaro* Latest code released as [4.2.0dev.20170601-2](https://lists.manjaro.org/pipermail/manjaro-packages/Week-of-Mon-20170529/011457.html).
philm commented 2017-06-03 18:44:06 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Little problem... but almost there with relying completely on pacman-mirrors. Very nice so far.

$ buildpkg -p sysvinit -xwdo
 --> Loading compiler settings: x86_64
==> Removing chroot copy [/var/build/manjaro-tools/buildpkg/unstable/x86_64/root]...done
 --> pm_args: -a -R -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -n -U http://mirror.netzspielplatz.de/manjaro/packages/
==> Creating install root at /var/build/manjaro-tools/buildpkg/unstable/x86_64/root
 --> Copyig pacman-mirrors.conf: /usr/share/manjaro-tools/pacman-mirrors.conf /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman-mirrors.conf
 --> Configuring pacman-mirrors: unstable
.: Info Branch in config is changed
.: Info Writing mirror list
   pkgbuild        : http://mirror.netzspielplatz.de/manjaro/packages/unstable
.: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman.d/mirrorlist
.: Info Branch in mirror list is changed
.: Info Downloading mirrors from repo.manjaro.org
Traceback (most recent call last):
  File "/usr/bin/pacman-mirrors", line 55, in <module>
    pm.run()
  File "/usr/lib/python3.6/site-packages/pacman_mirrors/pacman_mirrors.py", line 561, in run
    httpfn.update_mirrors(self.config, quiet=self.quiet)
  File "/usr/lib/python3.6/site-packages/pacman_mirrors/httpfn.py", line 200, in update_mirrors
    result = download_mirrors(config)
  File "/usr/lib/python3.6/site-packages/pacman_mirrors/httpfn.py", line 58, in download_mirrors
    if not filecmp.cmp(tempfile, config["mirror_file"]):
  File "/usr/lib/python3.6/filecmp.py", line 52, in cmp
    s2 = _sig(os.stat(f2))
FileNotFoundError: [Errno 2] No such file or directory: '/var/build/manjaro-tools/buildpkg/unstable/x86_64/root/usr/share/pacman-mirrors/mirrors.json'
  -> Installing packages to /var/build/manjaro-tools/buildpkg/unstable/x86_64/root

Could the json also be downloaded or skipped? I start with no packages installed for chroot, ie no pacman-mirrors package installed yet. I think skipping it would be best, because if pacman installs afterwards pacman-mirrors package, it will throw a filesystem conflict, since mirrors.json already exists in chroot.
The -U option doesn't seem to sanitize path, I need to add a slash(/) to the url?

*Created by: udeved* @fhdk Little problem... but almost there with relying completely on pacman-mirrors. Very nice so far. ``` $ buildpkg -p sysvinit -xwdo --> Loading compiler settings: x86_64 ==> Removing chroot copy [/var/build/manjaro-tools/buildpkg/unstable/x86_64/root]...done --> pm_args: -a -R -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -n -U http://mirror.netzspielplatz.de/manjaro/packages/ ==> Creating install root at /var/build/manjaro-tools/buildpkg/unstable/x86_64/root --> Copyig pacman-mirrors.conf: /usr/share/manjaro-tools/pacman-mirrors.conf /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman-mirrors.conf --> Configuring pacman-mirrors: unstable .: Info Branch in config is changed .: Info Writing mirror list pkgbuild : http://mirror.netzspielplatz.de/manjaro/packages/unstable .: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman.d/mirrorlist .: Info Branch in mirror list is changed .: Info Downloading mirrors from repo.manjaro.org Traceback (most recent call last): File "/usr/bin/pacman-mirrors", line 55, in <module> pm.run() File "/usr/lib/python3.6/site-packages/pacman_mirrors/pacman_mirrors.py", line 561, in run httpfn.update_mirrors(self.config, quiet=self.quiet) File "/usr/lib/python3.6/site-packages/pacman_mirrors/httpfn.py", line 200, in update_mirrors result = download_mirrors(config) File "/usr/lib/python3.6/site-packages/pacman_mirrors/httpfn.py", line 58, in download_mirrors if not filecmp.cmp(tempfile, config["mirror_file"]): File "/usr/lib/python3.6/filecmp.py", line 52, in cmp s2 = _sig(os.stat(f2)) FileNotFoundError: [Errno 2] No such file or directory: '/var/build/manjaro-tools/buildpkg/unstable/x86_64/root/usr/share/pacman-mirrors/mirrors.json' -> Installing packages to /var/build/manjaro-tools/buildpkg/unstable/x86_64/root ``` Could the json also be downloaded or skipped? I start with no packages installed for chroot, ie no pacman-mirrors package installed yet. I think skipping it would be best, because if pacman installs afterwards pacman-mirrors package, it will throw a filesystem conflict, since mirrors.json already exists in chroot. The -U option doesn't seem to sanitize path, I need to add a slash(/) to the url?
philm commented 2017-06-03 19:20:11 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

If I download the json and delete it in chroot after pacman-mirrors ran, it looks like this:

$ buildpkg -p sysvinit -xwdo
 --> Loading compiler settings: x86_64
==> Removing chroot copy [/var/build/manjaro-tools/buildpkg/unstable/x86_64/root]...done
 --> pm_args: -a -R -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -n -U http://mirror.netzspielplatz.de/manjaro/packages/
==> Creating install root at /var/build/manjaro-tools/buildpkg/unstable/x86_64/root
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  7919  100  7919    0     0  26563      0 --:--:-- --:--:-- --:--:-- 26484
 --> Configuring pacman-mirrors: unstable
.: Info Branch in config is changed
.: Info Writing mirror list
   pkgbuild        : http://mirror.netzspielplatz.de/manjaro/packages/unstable
.: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman.d/mirrorlist
.: Info Branch in mirror list is changed
.: Info Downloading mirrors from repo.manjaro.org
  -> Installing packages to /var/build/manjaro-tools/buildpkg/unstable/x86_64/root
:: Synchronizing package databases...
 core                                        140.5 KiB   937K/s 00:00 [#######################################] 100%
 extra                                      1803.2 KiB  1478K/s 00:01 [#######################################] 100%
 community                                     4.2 MiB  1449K/s 00:03 [#######################################] 100%
resolving dependencies...
looking for conflicting packages...

But, this doesn't work for buildiso.

*Created by: udeved* If I download the json and delete it in chroot after pacman-mirrors ran, it looks like this: ``` $ buildpkg -p sysvinit -xwdo --> Loading compiler settings: x86_64 ==> Removing chroot copy [/var/build/manjaro-tools/buildpkg/unstable/x86_64/root]...done --> pm_args: -a -R -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -n -U http://mirror.netzspielplatz.de/manjaro/packages/ ==> Creating install root at /var/build/manjaro-tools/buildpkg/unstable/x86_64/root % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7919 100 7919 0 0 26563 0 --:--:-- --:--:-- --:--:-- 26484 --> Configuring pacman-mirrors: unstable .: Info Branch in config is changed .: Info Writing mirror list pkgbuild : http://mirror.netzspielplatz.de/manjaro/packages/unstable .: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root/etc/pacman.d/mirrorlist .: Info Branch in mirror list is changed .: Info Downloading mirrors from repo.manjaro.org -> Installing packages to /var/build/manjaro-tools/buildpkg/unstable/x86_64/root :: Synchronizing package databases... core 140.5 KiB 937K/s 00:00 [#######################################] 100% extra 1803.2 KiB 1478K/s 00:01 [#######################################] 100% community 4.2 MiB 1449K/s 00:03 [#######################################] 100% resolving dependencies... looking for conflicting packages... ``` But, this doesn't work for buildiso.
philm commented 2017-06-03 20:37:29 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I can see it. Let me look at it tomorrow. we will find a solution.

What is notvworking for build iso?

*Created by: fhdk* I can see it. Let me look at it tomorrow. we will find a solution. What is notvworking for build iso?
philm commented 2017-06-03 21:21:26 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Its ok for buildiso too, best way would be to skip the json thingy on -U switch

*Created by: udeved* Its ok for buildiso too, best way would be to skip the json thingy on -U switch
philm commented 2017-06-04 09:07:32 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I have made some changes to the code and I will describe them:

As described above the supplied branch has been applied to the internal configuration before applying the url argument.

So when using -U the -R is obsolete since -U will apply $BRANCH from the config and then $repo/$arch and with the current refactor pacman-mirrors will exit when -U is used so the -n argument is obsolete too.

Your args will then be

pm_args: -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -U http://mirror.netzspielplatz.de/manjaro/packages/

The changes as been commited github.com/manjaro/pacman-mirrors@08b1b6bd58 but I need some mentoring using boxit to upload the changes.

*Created by: fhdk* I have made some changes to the code and I will describe them: As described above the supplied branch has been applied to the internal configuration before applying the url argument. So when using **-U** the `-R` is obsolete since **-U** will apply **$BRANCH** from the config and then **$repo/$arch** and with the current refactor pacman-mirrors will **exit when -U** is used so the `-n` argument is obsolete too. Your args will then be pm_args: -a -p /var/build/manjaro-tools/buildpkg/unstable/x86_64/root -S unstable -U http://mirror.netzspielplatz.de/manjaro/packages/ The changes as been commited https://github.com/manjaro/pacman-mirrors/commit/08b1b6bd58878c251cabc80966cecfaf8e318c9b but I need some mentoring using boxit to upload the changes.
philm commented 2017-06-04 10:27:03 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

A pretty cool addition would be similar to pacman a -C $config option, where pacman-mirrors.conf can be located any place to avoid copying the file to empty root.

*Created by: udeved* A pretty cool addition would be similar to pacman a -C $config option, where pacman-mirrors.conf can be located any place to avoid copying the file to empty root.
philm commented 2017-06-04 11:00:16 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I don't understand - how would that be of use?

At the point where you execute pacman-mirrors outside chroot - supplying --api and a prefix, a branch and a mirror - pacman-mirrors don't care about pacman-mirrors.conf

All you have to do next is exec pacman in your chroot. You don't have to preload anything onto the chroot just

pacman-mirrors -a -p $prefix -S $branch -U $mirror

which - on an empty chroot - will result in

/etc/pacman.d/mirrorlist

with content

Server = $mirror/$branch/$repo/$arch

ping @udeved

*Created by: fhdk* I don't understand - how would that be of use? At the point where you execute pacman-mirrors **outside** chroot - supplying --api and a prefix, a branch and a mirror - pacman-mirrors don't care about pacman-mirrors.conf * creates $PREFIX/etc/pacman.d - if it does not exist https://github.com/manjaro/pacman-mirrors/commit/0fce51cd8cbefa84d3026d71720e12f119d1686a * creates a mirror list with Server = $URL/$BRANCH/$repo/$arch * exit from execution - the conf is not needed nor read All you have to do next is exec pacman in your chroot. You don't have to preload anything onto the chroot just pacman-mirrors -a -p $prefix -S $branch -U $mirror which - on an empty chroot - will result in /etc/pacman.d/mirrorlist with content Server = $mirror/$branch/$repo/$arch ping @udeved
philm commented 2017-06-04 12:38:15 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I found that the branch thingy is not working correct. The -S does not use the correct branch - I am looking into it right now

*Created by: fhdk* I found that the branch thingy is not working correct. The -S does not use the correct branch - I am looking into it right now
philm commented 2017-06-04 12:41:45 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Correction - it does - I have made another minor adjustment.
When using -S in combination with -U, branch is only used to create the mirrorlist and is not written to config - thus eliminating the need for chroot/etc/pacman-mirrors.conf.

*Created by: fhdk* Correction - it does - I have made another minor adjustment. When using -S in combination with -U, branch is only used to create the mirrorlist and is **not** written to config - thus eliminating the need for chroot/etc/pacman-mirrors.conf.
philm commented 2017-06-04 12:55:02 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

And I have also uploaded an updated pacman-mirrors-dev package 🎉

pacman-mirrors -a -p /what/ever/you/like -S branch -U proto://mirror

creates a file

/what/ever/you/like/etc/pacman.d/mirrorlist

with content

Server = proto://mirror/branch/repo/arch
*Created by: fhdk* And I have also uploaded an updated pacman-mirrors-dev package :tada: pacman-mirrors -a -p /what/ever/you/like -S branch -U proto://mirror creates a file /what/ever/you/like/etc/pacman.d/mirrorlist with content Server = proto://mirror/branch/repo/arch
philm commented 2017-06-04 13:47:46 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

The key is, pacman is not executed in the chroot, because it don't exist yet there.
Pacman is executed on the host system, and it has --root set, and --config, ie pacman.conf.

Being able to specify a pacman-mirrors.conf would make copying pacman-mirrors.conf to empty chroot obsolete. Afaik, pacman-mirrors.conf is only eeded to set the branch in chroot persistently, and pacman-mirrors package would not install default pacman-mirrors.conf.

man pacman
--config <file> Specify an alternate configuration file.

I'll test the changes. Another issue to solve is that upon installing pacman-mirrors, the package generates a mirrorlist, which is unwanted in chroot, as it overwrite the set build mirror.

*Created by: udeved* @fhdk The key is, pacman is not executed in the chroot, because it don't exist yet there. Pacman is executed on the host system, and it has --root set, and --config, ie pacman.conf. Being able to specify a pacman-mirrors.conf would make copying pacman-mirrors.conf to empty chroot obsolete. Afaik, pacman-mirrors.conf is only eeded to set the branch in chroot persistently, and pacman-mirrors package would not install default pacman-mirrors.conf. `man pacman` `--config <file> Specify an alternate configuration file. ` I'll test the changes. Another issue to solve is that upon installing pacman-mirrors, the package generates a mirrorlist, which is unwanted in chroot, as it overwrite the set build mirror.
philm commented 2017-06-04 14:23:28 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Sorry - I must be retarded - I still don't understand.

where pacman-mirrors.conf can be located any place to avoid copying the file to empty root.

Why the need for telling pacman-mirrors where to find its conf file when your need is to create a mirrorlist with a specific branch and a specfic mirror in an empty chroot.

That is exactly what pm can do now.

In this specific api case pacman-mirrors does not care about the pacman-mirrors.conf and I can't see what info from pacman-mirrors.conf could possibly be of any value in that regard.

When it comes to - when pacman-mirrors has been installed - you can still use a 'remote' pacman-mirrors to modify the installed defaults by skipping -U argument and adding --no-mirrorlist

*Created by: fhdk* Sorry - I must be retarded - I still don't understand. > where pacman-mirrors.conf can be located any place to avoid copying the file to empty root. Why the need for telling pacman-mirrors where to find its conf file when your need is to create a mirrorlist with a specific branch and a specfic mirror in an empty chroot. That is exactly what pm can do now. In this specific api case pacman-mirrors does not care about the pacman-mirrors.conf and I can't see what info from pacman-mirrors.conf could possibly be of any value in that regard. When it comes to - when pacman-mirrors has been installed - you can still use a 'remote' pacman-mirrors to modify the installed defaults by skipping -U argument and adding --no-mirrorlist
philm commented 2017-06-04 14:33:40 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

It didn't work yesterday, I still needed pacman-mirroors.conf in chroot to write mirrorlist with the buildmirror but I haven't tried latest changes yet. Looks like it may run now without a pm-conf present.

The new feature just make it new approach to creating the chroot, its kind of fine tuning now, but I like it, since this will come handy in calamares chrootcfg module too.

*Created by: udeved* It didn't work yesterday, I still needed pacman-mirroors.conf in chroot to write mirrorlist with the buildmirror but I haven't tried latest changes yet. Looks like it may run now without a pm-conf present. The new feature just make it new approach to creating the chroot, its kind of fine tuning now, but I like it, since this will come handy in calamares chrootcfg module too.
philm commented 2017-06-04 14:34:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I have made some changes since yesterday - fine tuning pacman-mirrors

*Created by: fhdk* I have made some changes since yesterday - fine tuning pacman-mirrors
philm commented 2017-06-04 14:35:53 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

try using the latest dev - and check the man page or the docs/index.md page in the repo

*Created by: fhdk* try using the latest dev - and check the man page or the docs/index.md page in the repo
philm commented 2017-06-04 14:36:31 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

The api stuff replaces spaghetti code in couple of scripts. :)
I just need to make sure, the chroot also has the pm.conf set to the branch, after pm package was installed. But this should not be a problem now with api mode.

*Created by: udeved* The api stuff replaces spaghetti code in couple of scripts. :) I just need to make sure, the chroot also has the pm.conf set to the branch, after pm package was installed. But this should not be a problem now with api mode.
philm commented 2017-06-04 14:39:26 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

We can now detect, get and set branch at package level too, so we coould generate a proper mirrorlist for the right branch the system is set. Previously, we either deactivated it, or it wrote default stable branch.

*Created by: udeved* We can now detect, get and set branch at package level too, so we coould generate a proper mirrorlist for the right branch the system is set. Previously, we either deactivated it, or it wrote default stable branch.
philm commented 2017-06-04 14:42:00 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Do you think we probably try to trigger the mirrorlist update at package level with a json update trigger?

*Created by: udeved* @fhdk Do you think we probably try to trigger the mirrorlist update at package level with a json update trigger?
philm commented 2017-06-04 14:42:19 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

your primary concerns are:

creating a mirrorlist on an empty chroot - Check

pacman-mirrors -a -p $path -S $branch -U $url

changing the default branch - Check

pacman-mirrors -anS $branch -p $path

getting the branch

pacman-mirrors -p $path -G
*Created by: fhdk* your primary concerns are: creating a mirrorlist on an empty chroot - Check pacman-mirrors -a -p $path -S $branch -U $url changing the default branch - Check pacman-mirrors -anS $branch -p $path getting the branch pacman-mirrors -p $path -G
philm commented 2017-06-04 14:43:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

The are package level concerns, how we handle mirrorlist on install or update. This needs fine tuning. ;)

*Created by: udeved* The are package level concerns, how we handle mirrorlist on install or update. This needs fine tuning. ;)
philm commented 2017-06-04 14:43:54 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Which file are you referring to

/etc/pacman.d/mirrorlist
/usr/share/pacman-mirrors/mirrors.json
*Created by: fhdk* Which file are you referring to /etc/pacman.d/mirrorlist /usr/share/pacman-mirrors/mirrors.json
philm commented 2017-06-04 14:44:45 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

/usr/share/pacman-mirrors/mirrors.json

This one.

We could trigger mirrorlist generation if this file gets updated.
File based alpm hook.

*Created by: udeved* /usr/share/pacman-mirrors/mirrors.json This one. We could trigger mirrorlist generation if this file gets updated. File based alpm hook.
philm commented 2017-06-04 14:46:01 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I need to prevent the package from generating a mirrorlist in chroot, which it does currently, and it overwrites the custom mirrorlist with the buildmirror.

*Created by: udeved* I need to prevent the package from generating a mirrorlist in chroot, which it does currently, and it overwrites the custom mirrorlist with the buildmirror.
philm commented 2017-06-04 14:48:07 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

pm must not generate a new mirrorlist then use -n

pacman-mirrors -n

this will download a new mirror file but not create a new mirror list

*Created by: fhdk* pm must not generate a new mirrorlist then use -n pacman-mirrors -n this will download a new mirror file but not create a new mirror list
philm commented 2017-06-04 14:49:20 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Yes, I mean our dev package, not the code itself.
We need to fine tune the package with the new api options available to make it work in all cases.

*Created by: udeved* Yes, I mean our dev package, not the code itself. We need to fine tune the package with the new api options available to make it work in all cases.
philm commented 2017-06-04 14:52:11 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

you will you pacman-mirrors-dev package and then in the dev package it will never generate a mirrorlist and overwrite the existing.

*Created by: fhdk* you will you pacman-mirrors-dev package and then in the dev package it will never generate a mirrorlist and overwrite the existing.
philm commented 2017-06-04 14:53:18 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

So we should have in unstable a pm-pkg package solely for using in building iso's?

*Created by: fhdk* So we should have in unstable a pm-pkg package solely for using in building iso's?
philm commented 2017-06-04 14:55:28 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

No, its not really realted specifically to buildiso. Its more general to properly address the shortcomings we had before api mode with the package.

We start out with no mirrorlist, and thats kind of problem, because our package needs to write one on first install.

*Created by: udeved* No, its not really realted specifically to buildiso. Its more general to properly address the shortcomings we had before api mode with the package. We start out with no mirrorlist, and thats kind of problem, because our package needs to write one on first install.
philm commented 2017-06-04 15:05:50 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

If the buildiso thingy creates the mirror list in the above described manner

pacman -ap $path -S $branch -U $url

The mirrorlist is now existing.
Subsequently the buildiso installs pacman-mirrors but since the mirrorlist is now existing there is no need to have pacman-mirrors generating the mirrorlist at first run.

A mirror file will be delivered with the package and installed in /usr/share/pacman-mirrors.
That mirror file (mirrors.json) will at some point be outdated but calling

pacman-mirrors -n

upon succesful installation will fetch the latest available mirrors.json file from Github and the latest available status.json from repo.manjaro.org.

I have just pushed a new pacman-mirrors-dev pkg with some modified hooks and scripts which only calls pacman-mirrors with -n which will download up-to-date data files but not touch the mirror list.

*Created by: fhdk* If the buildiso thingy creates the mirror list in the above described manner pacman -ap $path -S $branch -U $url The mirrorlist is now existing. Subsequently the buildiso installs pacman-mirrors but since the mirrorlist is now existing there is no need to have pacman-mirrors generating the mirrorlist at first run. A mirror file will be delivered with the package and installed in `/usr/share/pacman-mirrors`. That mirror file (mirrors.json) will at some point be outdated but calling pacman-mirrors -n upon succesful installation will fetch the latest available mirrors.json file from Github and the latest available status.json from repo.manjaro.org. I have just pushed a new pacman-mirrors-dev pkg with some modified hooks and scripts which only calls pacman-mirrors with -n which will download up-to-date data files but not touch the mirror list.
philm commented 2017-06-04 15:15:57 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Actually I find that this approach should be expanded to the the regular install as well - so an update to pacman-mirrors does not trigger a regeneration of the users mirror list since that regeneration is the mother of all kinds of possible disasters regarding the users updates.

*Created by: fhdk* Actually I find that this approach should be expanded to the the regular install as well - so an update to pacman-mirrors does not trigger a regeneration of the users mirror list since that regeneration is the mother of all kinds of possible disasters regarding the users updates.
philm commented 2017-06-04 15:20:56 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Yes, our dev package is just test bed, I started with hooks there.
I had to alter pkglists for build stuff to pull in dev package. Hence I'd love to see better branching with packages.

*Created by: udeved* Yes, our dev package is just test bed, I started with hooks there. I had to alter pkglists for build stuff to pull in dev package. Hence I'd love to see better branching with packages.
philm commented 2017-06-04 15:24:11 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Cann you push the pkgbuild changes?

*Created by: udeved* @fhdk Cann you push the pkgbuild changes?
philm commented 2017-06-04 15:35:00 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Yes - I have been granted boxit access

*Created by: fhdk* Yes - I have been granted boxit access
philm commented 2017-06-04 15:36:08 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I cant change the github repo

*Created by: fhdk* I cant change the github repo
philm commented 2017-06-04 15:36:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

And likewise Jonathon and Matti

*Created by: fhdk* And likewise Jonathon and Matti
philm commented 2017-06-04 15:36:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I see, too bad, can youpost your changes here?
I can add them.

*Created by: udeved* I see, too bad, can youpost your changes here? I can add them.
philm commented 2017-06-04 15:38:02 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I don't have admin control to add you on github. You need to ask @philmmanjaro

*Created by: udeved* I don't have admin control to add you on github. You need to ask @philmmanjaro
philm commented 2017-06-04 15:40:04 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

That is not an issue - if this works as you expect I will make PR on the core repo

*Created by: fhdk* That is not an issue - if this works as you expect I will make PR on the core repo
philm commented 2017-06-04 17:27:45 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@fhdk: I added you to the group. Please accept the invite. I like were this all goes.

*Created by: philmmanjaro* @fhdk: I added you to the group. Please accept the invite. I like were this all goes.
philm commented 2017-06-04 20:00:09 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

Nice, but one little problem...


$ buildpkg -p openrc -doxw
 --> Loading compiler settings: x86_64
==> Removing chroot copy [/var/build/manjaro-tools/buildpkg/unstable/x86_64/root]...done
==> Creating install root at /var/build/manjaro-tools/buildpkg/unstable/x86_64/root
 --> Configuring pacman-mirrors: unstable
.: Info Writing mirror list
   pkgbuild        : http://mirror.netzspielplatz.de/manjaro/packages/unstable
.: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root//etc/pacman.d/mirrorlist
  -> Installing packages to /var/build/manjaro-tools/buildpkg/unstable/x86_64/root
:: Synchronizing package databases...

All fine.

But...


: Running post-transaction hooks...
(1/3) Configuring pacman-mirrors ...
.: Warning Internet connection appears to be down
.: Info Mirror ranking is not available
.: Info Mirror list is generated using random method
hint: use `pacman-mirrors` to generate and update your pacman mirrorlist.

We need to figure out a way to prevent the package from writing a mirrorlist, if it already exists.

*Created by: udeved* @fhdk Nice, but one little problem... ``` $ buildpkg -p openrc -doxw --> Loading compiler settings: x86_64 ==> Removing chroot copy [/var/build/manjaro-tools/buildpkg/unstable/x86_64/root]...done ==> Creating install root at /var/build/manjaro-tools/buildpkg/unstable/x86_64/root --> Configuring pacman-mirrors: unstable .: Info Writing mirror list pkgbuild : http://mirror.netzspielplatz.de/manjaro/packages/unstable .: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root//etc/pacman.d/mirrorlist -> Installing packages to /var/build/manjaro-tools/buildpkg/unstable/x86_64/root :: Synchronizing package databases... ``` All fine. But... ``` : Running post-transaction hooks... (1/3) Configuring pacman-mirrors ... .: Warning Internet connection appears to be down .: Info Mirror ranking is not available .: Info Mirror list is generated using random method hint: use `pacman-mirrors` to generate and update your pacman mirrorlist. ``` We need to figure out a way to prevent the package from writing a mirrorlist, if it already exists.
philm commented 2017-06-04 20:10:09 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Once the base-devel group is installed in chroot/root, this chroot will be cloned to chroot/$USER.
While the original chroot/root still has proper mirrorlist set, the user copy chroot has a ranndom mirrorlist, sinnce the package writes a new random list before the rsync chroot copy.

chroot/root


##
## Manjaro Linux mirrorlist
## Generated on 2017-06-04 21:55
##
## Use pacman-mirrors to modify
##

## Country : pkgbuild
Server = http://mirror.netzspielplatz.de/manjaro/packages/unstable/$repo/$arch


but chroot/$USER

##
## Manjaro Linux mirrorlist
## Generated on 2017-06-03 21:35
##
## Use pacman-mirrors to modify
##

## Country : Romania
Server = http://ftp.lug.ro/manjaro/unstable/$repo/$arch

## Country : China
Server = http://mirrors.tuna.tsinghua.edu.cn/manjaro/unstable/$repo/$arch

## Country : Hungary
Server = http://mirror.infotronik.hu/mirrors/pub/manjaro/unstable/$repo/$arch

snip
*Created by: udeved* Once the base-devel group is installed in chroot/root, this chroot will be cloned to chroot/$USER. While the original chroot/root still has proper mirrorlist set, the user copy chroot has a ranndom mirrorlist, sinnce the package writes a new random list before the rsync chroot copy. chroot/root ``` ## ## Manjaro Linux mirrorlist ## Generated on 2017-06-04 21:55 ## ## Use pacman-mirrors to modify ## ## Country : pkgbuild Server = http://mirror.netzspielplatz.de/manjaro/packages/unstable/$repo/$arch but chroot/$USER ``` ``` ## ## Manjaro Linux mirrorlist ## Generated on 2017-06-03 21:35 ## ## Use pacman-mirrors to modify ## ## Country : Romania Server = http://ftp.lug.ro/manjaro/unstable/$repo/$arch ## Country : China Server = http://mirrors.tuna.tsinghua.edu.cn/manjaro/unstable/$repo/$arch ## Country : Hungary Server = http://mirror.infotronik.hu/mirrors/pub/manjaro/unstable/$repo/$arch snip ``` ``` ```
philm commented 2017-06-04 20:20:11 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

For buildiso, it looks different.
There we might want a random list generated.

*Created by: udeved* For buildiso, it looks different. There we might want a random list generated.
philm commented 2017-06-05 10:46:44 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I have committed some changes to the install scripts for pacman-mirrrors-dev github.com/manjaro/packages-core@e1ca56ef52

Have look at them - I am not experienced bash scripter - but I could figure the script checked for the presence of a pacsave and that check I adopted to check for a mirror list and act accordingly.

I build a pacman-mirrors-dev pkg from the pkgbuild

*Created by: fhdk* I have committed some changes to the install scripts for pacman-mirrrors-dev https://github.com/manjaro/packages-core/commit/e1ca56ef521d3a08ac7d6c74acb6842e189deeef Have look at them - I am not experienced bash scripter - but I could figure the script checked for the presence of a pacsave and that check I adopted to check for a mirror list and act accordingly. I build a pacman-mirrors-dev pkg from the pkgbuild
philm commented 2017-06-05 15:30:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Look good, but, it doesn't work.
Something seems to happen earlier.
Is the random list generation triggered if no network connection?

What I haven't found out yet, how I can set the branch corresponding to the mirrorlist in api mode.
Or is the Branch var in pm.conf not used at all any longer?

*Created by: udeved* Look good, but, it doesn't work. Something seems to happen earlier. Is the random list generation triggered if no network connection? What I haven't found out yet, how I can set the branch corresponding to the mirrorlist in api mode. Or is the Branch var in pm.conf not used at all any longer?
philm commented 2017-06-05 15:34:57 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

.: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root//etc/pacman.d/mirrorlist

Note the root//etc. Perhaps best to sanitize it to avoid path problems?

:: Running post-transaction hooks...
(1/3) Configuring pacman-mirrors ...
.: Warning Internet connection appears to be down
.: Info Mirror ranking is not available
.: Info Mirror list is generated using random method
hint: use `pacman-mirrors` to generate and update your pacman mirrorlist.

*Created by: udeved* `.: Info Mirror list generated and saved to: /var/build/manjaro-tools/buildpkg/unstable/x86_64/root//etc/pacman.d/mirrorlist` Note the root//etc. Perhaps best to sanitize it to avoid path problems? ``` :: Running post-transaction hooks... (1/3) Configuring pacman-mirrors ... .: Warning Internet connection appears to be down .: Info Mirror ranking is not available .: Info Mirror list is generated using random method hint: use `pacman-mirrors` to generate and update your pacman mirrorlist. ```
philm commented 2017-06-05 15:47:05 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Is the random list generation triggered if no network connection?

It is - but you are not using the package I build to today for pacman-mirrors-dev

pacman-mirrors.install - post_install() section

if [ -f /etc/pacman.d/mirrorlist ]; then
    /usr/bin/pacman-mirrors --no-mirrorlist
else
    /usr/bin/pacman-mirrors -yf5
fi

pacman-mirrors-install.script

if [ -f /etc/pacman.d/mirrorlist ]; then
    # fetch new data files
    pacman-mirrors --no-mirrorlist
else
    # create mirrorlist
    pacman-mirrors -yf5
fi

This should trigger the --no-mirrorlist if a mirror list exist - right?

pacman-mirrors-upgrade.script

pacman-mirrors --no-mirrorlist

Note the root//etc. Perhaps best to sanitize it to avoid path problems?

I will have a look but I have made some sanitizing in todays package

*Created by: fhdk* > Is the random list generation triggered if no network connection? It is - but you are not using the package I build to today for pacman-mirrors-dev **pacman-mirrors.install - post_install() section** ``` if [ -f /etc/pacman.d/mirrorlist ]; then /usr/bin/pacman-mirrors --no-mirrorlist else /usr/bin/pacman-mirrors -yf5 fi ``` **pacman-mirrors-install.script** ``` if [ -f /etc/pacman.d/mirrorlist ]; then # fetch new data files pacman-mirrors --no-mirrorlist else # create mirrorlist pacman-mirrors -yf5 fi ``` This should trigger the --no-mirrorlist if a mirror list exist - right? **pacman-mirrors-upgrade.script** ``` pacman-mirrors --no-mirrorlist ``` > Note the root//etc. Perhaps best to sanitize it to avoid path problems? I will have a look but I have made some sanitizing in todays package
philm commented 2017-06-05 15:48:46 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

if [  ! -f /etc/pacman.d/mirrorlist ]; then
    # create mirrorlist
    pacman-mirrors -yf5
fi

I think this might be better.

*Created by: udeved* ``` if [ ! -f /etc/pacman.d/mirrorlist ]; then # create mirrorlist pacman-mirrors -yf5 fi ``` I think this might be better.
philm commented 2017-06-05 15:53:56 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

And the not operator shouldn't it be outside the []

if ! [  -f /etc/pacman.d/mirrorlist ]; then
    # create mirrorlist
    pacman-mirrors -yf5
fi

And why is this better than if exist only update mirror file

--
The sanitizer - I got it backwards :) - in 5-10 a new package is available

*Created by: fhdk* And the **not** operator shouldn't it be outside the [] ``` if ! [ -f /etc/pacman.d/mirrorlist ]; then # create mirrorlist pacman-mirrors -yf5 fi ``` And why is this better than if exist only update mirror file -- The sanitizer - I got it backwards :) - in 5-10 a new package is available
philm commented 2017-06-05 16:00:35 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

oh no - I messed that sanitizing - I was using the same one in two places - have to split them :)

*Created by: fhdk* oh no - I messed that sanitizing - I was using the same one in two places - have to split them :)
philm commented 2017-06-05 16:01:01 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

The not operator is also accepted outside, but it give a different logic afaik.
sometime, bash is strange thing.
https://www.tutorialspoint.com/unix/unix-basic-operators.htm
http://tldp.org/LDP/abs/html/testconstructs.html#DBLBRACKETS
http://tldp.org/LDP/abs/html/fto.html
;)

What about pm.conf? Is it used any longer to store the branch, or is branch only stored in mirrorlist?
Ideally, I can set also the branch in pm.conf, ad if it doesn't exist, it will be created. The package would later honour the backup array, ie it would create a pm.conf.pacnew

*Created by: udeved* The not operator is also accepted outside, but it give a different logic afaik. sometime, bash is strange thing. https://www.tutorialspoint.com/unix/unix-basic-operators.htm http://tldp.org/LDP/abs/html/testconstructs.html#DBLBRACKETS http://tldp.org/LDP/abs/html/fto.html ;) What about pm.conf? Is it used any longer to store the branch, or is branch only stored in mirrorlist? Ideally, I can set also the branch in pm.conf, ad if it doesn't exist, it will be created. The package would later honour the backup array, ie it would create a pm.conf.pacnew
philm commented 2017-06-05 16:06:02 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

It depends on your use of the api.

If you do not use -U then pacman-mirrors.conf is used to store the branch.

This is the only situation where the pacman-mirrors.conf is not used is with -U.

*Created by: fhdk* It depends on your use of the api. If you **do not use** -U then pacman-mirrors.conf is used to store the branch. This is the **only** situation where the pacman-mirrors.conf is not used is with **-U**.
philm commented 2017-06-05 16:08:03 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I see, I use almost only -U, but it would be nice to reuse the chroot, if the branch was set in pm.conf. It may be unreliable with mirrorlist only?
On buildiso, I would need the branch set in pm.conf. No problem to do it in scripts, but its a nice to have pm feature I think.

*Created by: udeved* I see, I use almost only -U, but it would be nice to reuse the chroot, if the branch was set in pm.conf. It may be unreliable with mirrorlist only? On buildiso, I would need the branch set in pm.conf. No problem to do it in scripts, but its a nice to have pm feature I think.
philm commented 2017-06-05 16:12:20 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

It is not unreliable with the mirror list - as long as the pm installation does not touch an existing mirror list.

With the changes to the install script and hook scripts this shouldn't be an issue looking forward.

I have been around long enough to realize that the pm installation shouldn't touch the mirror list at all unless it does not exist. Seen to many forum issues relating to exactly that which is also why I have added the -y argument to the situations where pm should create the mirror list.

*Created by: fhdk* It is not unreliable with the mirror list - as long as the pm installation does not touch an existing mirror list. With the changes to the install script and hook scripts this shouldn't be an issue looking forward. I have been around long enough to realize that the pm installation shouldn't touch the mirror list at all unless it does not exist. Seen to many forum issues relating to exactly that which is also why I have added the **-y** argument to the situations where pm should create the mirror list.
philm commented 2017-06-05 16:14:46 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Hmm, I could call pm twice, one time before packages get installed to set branch and build mirror, and second time after all packaged have been installed, to set branch permanently annd to set new mirrorlist.
This would work around not having the branch set in pm.conf for the iso.

*Created by: udeved* Hmm, I could call pm twice, one time before packages get installed to set branch and build mirror, and second time after all packaged have been installed, to set branch permanently annd to set new mirrorlist. This would work around not having the branch set in pm.conf for the iso.
philm commented 2017-06-05 16:18:43 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Perhaps something like this would be nice?

$ sudo pacman-mirrors -a -p /mnt/work -U http://mirror.netzspielplatz.de/manjaro/packages/ -S unstable -W
-W -- write branch to pm conf

*Created by: udeved* Perhaps something like this would be nice? `$ sudo pacman-mirrors -a -p /mnt/work -U http://mirror.netzspielplatz.de/manjaro/packages/ -S unstable -W` -W -- write branch to pm conf
philm commented 2017-06-05 16:25:07 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I don't see why - the only program caring about pm.conf is pm and pm is not installed in the chroot.

So why bother writing a pm.conf with a branch for an app that is not installed?

The other approach where you call pm a second time seem more logical as the installation of pm not touches an existing mirror list.

When you're just about ready to close and create the iso

pacman-mirrors - a -p $prefix -S $branch -g -m random

which will set the final branch and create a random mirror list with all mirrors

*Created by: fhdk* I don't see why - the only program caring about pm.conf is pm and pm is not installed in the chroot. So why bother writing a pm.conf with a branch for an app that is not installed? The other approach where you call pm a second time seem more logical as the installation of pm not touches an existing mirror list. When you're just about ready to close and create the iso pacman-mirrors - a -p $prefix -S $branch -g -m random which will set the final branch and create a random mirror list with all mirrors
philm commented 2017-06-05 16:26:18 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Well, we distribute the chroots for iso. So I need to set the branch in pm.conf in the iso chroot.
Otherwise, as soon as user runs pm on the new install, it will set branch to stable.

*Created by: udeved* Well, we distribute the chroots for iso. So I need to set the branch in pm.conf in the iso chroot. Otherwise, as soon as user runs pm on the new install, it will set branch to stable.
philm commented 2017-06-05 16:30:56 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

When you know that pacman-mirrors is installed you can manipulate that pacman-mirrors.conf almost anyway you like.

It makes no sense to install a configuration file for an app not installed - lets say if pm could install a conf then this conf would have to be maintained two places in code for the api and ex code for the installer. That is prone to go wrong at some point and it makes no sense.

*Created by: fhdk* When you know that pacman-mirrors is installed you can manipulate that pacman-mirrors.conf almost anyway you like. It makes no sense to install a configuration file for an app not installed - lets say if pm could install a conf then this conf would have to be maintained two places in code for the api and ex code for the installer. That is prone to go wrong at some point and it makes no sense.
philm commented 2017-06-05 16:35:55 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Yes, true, I can sed the file, but, we would rely on the installer to set the branch permanently, the instllaer would have to call pm. Thats a cool thing, but it should not be a depend, eg to select the branch for the install, currently not possible is on todo.
The installer basically accesses the same chroot again, similar procedure in general to to create the iso and connfigure some chroot stuff.

*Created by: udeved* Yes, true, I can sed the file, but, we would rely on the installer to set the branch permanently, the instllaer would have to call pm. Thats a cool thing, but it should not be a depend, eg to select the branch for the install, currently not possible is on todo. The installer basically accesses the same chroot again, similar procedure in general to to create the iso and connfigure some chroot stuff.
philm commented 2017-06-05 16:39:27 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I thought that all releases with exception of the testing stuff was preset with stable branch.

Are you telling me your'e are trying to build an option for the end user to select which branch the user wants?

*Created by: fhdk* I thought that all releases with exception of the testing stuff was preset with stable branch. Are you telling me your'e are trying to build an option for the end user to select which branch the user wants?
philm commented 2017-06-05 16:41:07 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

So you just want a pm.conf to put on the iso where the only content is a chosen branch?

pacman-mirrors.conf

Branch=unstable
*Created by: fhdk* So you just want a pm.conf to put on the iso where the only content is a chosen branch? pacman-mirrors.conf Branch=unstable
philm commented 2017-06-05 16:43:28 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Yes, I have to make it permanent on iso. Not so important in pkg chroot, but iso chroot I need to set it.
Would be totally sufficient it this happened on -U too, and it writes a pm.conf with branch.

*Created by: udeved* Yes, I have to make it permanent on iso. Not so important in pkg chroot, but iso chroot I need to set it. Would be totally sufficient it this happened on -U too, and it writes a pm.conf with branch.
philm commented 2017-06-05 16:45:20 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I can do that :)
But this specific has the potential to screw a users config and it cannot be copied to the final installation as the only content will be the branch.

I will need to check for the existence of a conf at the given target and if target file exists refuse to write the branch.

After thought - maybe a little rewrite and reordering.

It is a little confusing working with you - first you don't want to copy a pm.conf then you want pm to write one.

*Created by: fhdk* I can do that :) But this specific has the potential to screw a users config and it cannot be copied to the final installation as the only content will be the branch. I will need to check for the existence of a conf at the given target and if target file exists refuse to write the branch. After thought - maybe a little rewrite and reordering. It is a little confusing working with you - first you don't want to copy a pm.conf then you want pm to write one.
philm commented 2017-06-05 16:53:33 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Your work is already great help, the build scripts already only rely on pm, and ugly code got removed. :)

*Created by: udeved* Your work is already great help, the build scripts already only rely on pm, and ugly code got removed. :)
philm commented 2017-06-05 16:55:25 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Thanks
The pm.conf we are talking about - it will not be copied to the end users install?

*Created by: fhdk* Thanks The pm.conf we are talking about - it will not be copied to the end users install?
philm commented 2017-06-05 16:56:09 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

What got me thinking, I know this is not quickly done.
What if we only relied on the pm.conf branch, and mirrorlist would automatically append $branch/$repo/$arch ?
I am saying, perhaps we should consider eliminating the cluttering of branch setting?

*Created by: udeved* What got me thinking, I know this is not quickly done. What if we only relied on the pm.conf branch, and mirrorlist would automatically append $branch/$repo/$arch ? I am saying, perhaps we should consider eliminating the cluttering of branch setting?
philm commented 2017-06-05 17:02:49 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

The pm.conf we are talking about - it will not be copied to the end users install?

I try to explain.
I need to cover the offline install, where the squashed iso chroots get simply extracted in the target install root. So the target install has the stuff set that was set and created at build time. Anything elese to manipulate branch or mirrorlist would have to be donne by the installer.
It looks different for netinstalls, there, we could make the branch selectable in calamares with a combobox. This would be another great use case for pm api mode.

*Created by: udeved* > The pm.conf we are talking about - it will not be copied to the end users install? I try to explain. I need to cover the offline install, where the squashed iso chroots get simply extracted in the target install root. So the target install has the stuff set that was set and created at build time. Anything elese to manipulate branch or mirrorlist would have to be donne by the installer. It looks different for netinstalls, there, we could make the branch selectable in calamares with a combobox. This would be another great use case for pm api mode.
philm commented 2017-06-05 17:02:54 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

The 'new' pacman-mirrors uses a mirror file which is in json format. This file does pacman-mirrors not change - except on occasion when updating the existing with a new one from Github.

Pacman-mirrors does not include any mirror list like the 'old' pacman-mirrors did. The mirror list is always generated on the fly. So technically when pacman-mirrors gets installed for the first time - there is no /etc/pacman.d/mirrorlist it is generated at the end of the pacman-mirrors installation.

*Created by: fhdk* The 'new' pacman-mirrors uses a **mirror file** which is in json format. This file does pacman-mirrors not change - except on occasion when updating the existing with a new one from Github. Pacman-mirrors does not include any **mirror list** like the 'old' pacman-mirrors did. The mirror list is always generated on the fly. So technically when pacman-mirrors gets installed for the first time - there is no */etc/pacman.d/mirrorlist* it is generated at the end of the pacman-mirrors installation.
philm commented 2017-06-05 17:10:07 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I know, the mirrorlist is fine as is now, but the branch would need to be written to pm.conf optioally to avoid user troubles to stick to proper branch the iso was build from. We need to prevent that a user will switch branch without knowing after the install, so a blank pm.conf would set branch to stable from unstable eventually..

*Created by: udeved* I know, the mirrorlist is fine as is now, but the branch would need to be written to pm.conf optioally to avoid user troubles to stick to proper branch the iso was build from. We need to prevent that a user will switch branch without knowing after the install, so a blank pm.conf would set branch to stable from unstable eventually..
philm commented 2017-06-05 17:11:05 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

So a complete pm.conf must exist on the iso - so the end users pm install is complete.

I think this would be the best way of achieving your goal would be as the final task for the installer

pacman-mirrors -a -p $prefix -S $branch -yf5

so the end user has a mirror list with up-2-date mirrors and the pacman db's in a synced state

*Created by: fhdk* So a complete pm.conf must exist on the iso - so the end users pm install is complete. I think this would be the best way of achieving your goal would be as the final task for the installer pacman-mirrors -a -p $prefix -S $branch -yf5 so the end user has a mirror list with up-2-date mirrors and the pacman db's in a synced state
philm commented 2017-06-05 17:17:05 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Hmm, we don't want the sync db on iso, it is not unnecessary. The repo db will be synced on iso boot.
BUt I am very open to make mirror handling i live session more robust than it is now.

This is the snippet of code from basestrap.

pm_args=(-a -p "$newroot" -S "${branch}")

[[ -n ${mirror} ]] && pm_args+=(-U "${mirror}")

if [[ ! -f $newroot/etc/pacman-mirrors.conf ]]; then
    pacman-mirrors "${pm_args[@]}"
fi

It is executed before pacman pulls in packages in the empty chroot. Ideally, It would also set the branch in pm.conf to avoid calling pm after package install again with different args

*Created by: udeved* Hmm, we don't want the sync db on iso, it is not unnecessary. The repo db will be synced on iso boot. BUt I am very open to make mirror handling i live session more robust than it is now. This is the snippet of code from basestrap. ``` pm_args=(-a -p "$newroot" -S "${branch}") [[ -n ${mirror} ]] && pm_args+=(-U "${mirror}") if [[ ! -f $newroot/etc/pacman-mirrors.conf ]]; then pacman-mirrors "${pm_args[@]}" fi ``` It is executed before pacman pulls in packages in the empty chroot. Ideally, It would also set the branch in pm.conf to avoid calling pm after package install again with different args
philm commented 2017-06-05 17:19:19 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

The sync db is not for the iso it is for the last task inside the end user install.

We need to prevent that a user will switch branch without knowing after the install, so a blank pm.conf
would set branch to stable from unstable eventually.

You install pm in the chroot used for buildiso - am I right?

At some point after that install you run

pacman-mirrors -a -p $prefix -S $branch -U $url

As it is - right now - from your previous requests - pm creates a mirror list and exits. Originally pm didn't exit but wrote the branch to pm.conf - that behavior can be restored.

As I have understood you so far a complete pm.conf must exist on the iso for the end user install to be complete.

*Created by: fhdk* The sync db is not for the iso it is for the last task inside the end user install. > We need to prevent that a user will switch branch without knowing after the install, so a blank pm.conf > would set branch to stable from unstable eventually. You install pm in the chroot used for buildiso - am I right? At some point after that install you run pacman-mirrors -a -p $prefix -S $branch -U $url As it is - right now - from your previous requests - pm creates a mirror list and exits. Originally pm didn't exit but wrote the branch to pm.conf - that behavior can be restored. As I have understood you so far a complete pm.conf must exist on the iso for the end user install to be complete.
philm commented 2017-06-05 17:23:15 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

It is executed before pacman pulls in packages in the empty chroot. Ideally, It would also set the branch
in pm.conf to avoid calling pm after package install again with different args

Your only issue seems to be that you do not have a mirror list in the chroot - pacman does not care about pacman-mirrors.conf.

But why do you copy a pm.conf for an app which does not exist?
I can see the logic if you excute pacman-mirrors in the chroot - but do you?

*Created by: fhdk* > It is executed before pacman pulls in packages in the empty chroot. Ideally, It would also set the branch > in pm.conf to avoid calling pm after package install again with different args Your only issue seems to be that you do not have a mirror list in the chroot - pacman does not care about pacman-mirrors.conf. But why do you copy a pm.conf for an app which does not exist? I can see the logic if you excute pacman-mirrors in the chroot - but do you?
philm commented 2017-06-05 17:26:02 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

No, I can explain better, its not how it works.

Example buildiso:

buildiso calls for the chroot creation mkchroot which calls basestrap. Basestrap is the lowest level script, it only configures the host pacman to install to a different root dir, using host pkg cache.

So basestrap calls pacman-mirrors before it calls pacman. Before, I had to take a different route and this was done in yet another script, chroot-run

I don't copy the pm.conf any longer to chroot, I use consequently your enhancements.
But, if basestrap runs pm, it only sets the mirrorlist in the right brannch, but the package installs a default pm.conf. If a pm.conf was alrewady present, the default pm.conf from the package was not used, but installed as *.pacnew file, thus the branch remains set in pm.conf.

*Created by: udeved* No, I can explain better, its not how it works. Example buildiso: buildiso calls for the chroot creation mkchroot which calls basestrap. Basestrap is the lowest level script, it only configures the host pacman to install to a different root dir, using host pkg cache. So basestrap calls pacman-mirrors before it calls pacman. Before, I had to take a different route and this was done in yet another script, chroot-run I don't copy the pm.conf any longer to chroot, I use consequently your enhancements. But, if basestrap runs pm, it only sets the mirrorlist in the right brannch, but the package installs a default pm.conf. If a pm.conf was alrewady present, the default pm.conf from the package was not used, but installed as *.pacnew file, thus the branch remains set in pm.conf.
philm commented 2017-06-05 17:35:15 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I see.
What I am thinking is
Instead of having pm write its own config we could let pacman pacman-mirrors pull the configuration from the machine where it is run and modfied according to the api arguments.

This would solve the issue of maintaining the conf in code - which I must add is a very bad idea.

We would have to add a parameter telling pacman-mirrors to copy its own conf to the $prefix destination

*Created by: fhdk* I see. What I am thinking is Instead of having pm write its own config we could let <strike>pacman</strike> pacman-mirrors pull the configuration from the machine where it is run and modfied according to the api arguments. This would solve the issue of maintaining the conf in code - which I must add is a very bad idea. We would have to add a parameter telling pacman-mirrors to copy its own conf to the $prefix destination
philm commented 2017-06-05 17:36:03 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

My head cannot hold any longer - but I will look at the possibility tomorrow

*Created by: fhdk* My head cannot hold any longer - but I will look at the possibility tomorrow
philm commented 2017-06-05 17:38:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

However, we could take a different approach, we could make the package detect the branch from mirrorlist and make it write it to pm.conf.

The trouble I see with pm in general for some time, the translation between Branch and mirrorlist branch is kind of troublesome. I think Branch = should be in pacman.conf

Instead of having pm write its on config we could let pacman pull the configuration from the machine where it is run and modfied according to the api arguments.

Do you mean pacman-mirrors? I am thinking since a long time, that lots of pm stuff should go in a pacman patch. Sorry you need to do same gymnastics I did with scripting it, but its highly useful to have an api to code against instead of replicating the pm thing for each and every chroot creation project.

*Created by: udeved* However, we could take a different approach, we could make the package detect the branch from mirrorlist and make it write it to pm.conf. The trouble I see with pm in general for some time, the translation between Branch and mirrorlist branch is kind of troublesome. I think Branch = should be in pacman.conf > Instead of having pm write its on config we could let pacman pull the configuration from the machine where it is run and modfied according to the api arguments. Do you mean pacman-mirrors? I am thinking since a long time, that lots of pm stuff should go in a pacman patch. Sorry you need to do same gymnastics I did with scripting it, but its highly useful to have an api to code against instead of replicating the pm thing for each and every chroot creation project.
philm commented 2017-06-05 17:59:15 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@fhdk

What about a pm.conf generator on the fly?
Generate on first pm run, ie if no pm.conf is present?

Could live in /run/pacman-mirrors/pm.conf, and it would take the branch from mirrorlist?

*Created by: udeved* @fhdk What about a pm.conf generator on the fly? Generate on first pm run, ie if no pm.conf is present? Could live in /run/pacman-mirrors/pm.conf, and it would take the branch from mirrorlist?
philm commented 2017-06-06 05:50:11 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I am sorry - I just realize I got my self all wrong.

def run(self):
    """Run"""        
    (self.config, self.custom) = configfn.build_config()  # build config by parsing p-m.conf        
    filefn.dir_must_exist(self.config["work_dir"])  # ensure /var/lib/pacman-mirrors exist  
    self.command_line_parse()  # parse command line
    self.network = httpfn.inet_conn_check()  # net check        
    if self.network:  # update data files            
        httpfn.update_mirrors(self.config, quiet=self.quiet)
    else:
        # negative on network
        if not self.quiet:
            miscfn.internet_message()  # console message
        self.config["method"] = "random"  # use random instead of rank
        self.fasttrack = False  # using fasttrack is not possible
    if self.no_mirrorlist:
        sys.exit(0)  # exit
    self.load_all_mirrors()
    if self.country_list:
        self.output_country_list()  # print country list
        sys.exit(0)
    if self.fasttrack:
        self.build_fasttrack_mirror_list(self.fasttrack)  # fasttrack argument
    elif self.interactive:
        self.build_interactive_mirror_list()  # interactive argument
    else:
        self.build_common_mirror_list()  # default
    if self.network and self.sync:
        subprocess.call(["pacman", "-Syy"])  # sync pacman db
*Created by: fhdk* I am sorry - I just realize I got my self all wrong. def run(self): """Run""" (self.config, self.custom) = configfn.build_config() # build config by parsing p-m.conf filefn.dir_must_exist(self.config["work_dir"]) # ensure /var/lib/pacman-mirrors exist self.command_line_parse() # parse command line self.network = httpfn.inet_conn_check() # net check if self.network: # update data files httpfn.update_mirrors(self.config, quiet=self.quiet) else: # negative on network if not self.quiet: miscfn.internet_message() # console message self.config["method"] = "random" # use random instead of rank self.fasttrack = False # using fasttrack is not possible if self.no_mirrorlist: sys.exit(0) # exit self.load_all_mirrors() if self.country_list: self.output_country_list() # print country list sys.exit(0) if self.fasttrack: self.build_fasttrack_mirror_list(self.fasttrack) # fasttrack argument elif self.interactive: self.build_interactive_mirror_list() # interactive argument else: self.build_common_mirror_list() # default if self.network and self.sync: subprocess.call(["pacman", "-Syy"]) # sync pacman db
philm commented 2017-06-06 07:11:40 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I have made the following changes

When run against an empty chroot with api like

pacman-mirrors -a -p $prefix -S $branch -U $mirror
  1. Check for presence of a pacman-mirrors.conf in $prefix/etc/pacman-mirrors.conf
    • As it is probably missing the host systems conf is copied but only if missing.
    • Since the host system can have any number of changes the conf is normalized
    • # Protocols =
    • # OnlyCountry =
    • # SSLVerify = False
  2. The branch is set to $branch
  3. Check for presence of the folder in $prefix/etc/pacman.d
    • If it is missing it is created
  4. A mirror list is generated with content Server = $mirror/$branch/$repo/$arch
*Created by: fhdk* I have made the following changes When run against an empty chroot with api like pacman-mirrors -a -p $prefix -S $branch -U $mirror 1. Check for presence of a pacman-mirrors.conf in `$prefix/etc/pacman-mirrors.conf` * As it is probably missing the host systems conf is copied but only if missing. * Since the host system can have any number of changes the conf is normalized * `# Protocols =` * `# OnlyCountry =` * `# SSLVerify = False` 2. The branch is set to $branch 3. Check for presence of the folder in `$prefix/etc/pacman.d` * If it is missing it is created 3. A mirror list is generated with content `Server = $mirror/$branch/$repo/$arch`
philm commented 2017-06-06 07:11:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@fhdk and @udeved: seems this issue is taking to much loops already.

Case 1: Creation of an ISO

  • if you create a new ISO you can set the branch with manjaroiso -b testing for example. The resulting ISO will add testing to its ISO name and therefore pacman-mirror.conf was set to testing branch permanently
  • if you do a final ISO stable branch is used. Only testing or unstable get tagged in the ISO name.

So with this on installation/creation of the chroot the config needs to be set to the wanted branch set with the -b switch thru manjaroiso

Case 2: Net-Install thru Calamares

  • the ISO is compiled with whatever branch. Since the ISO might be older, you may have newer packages in all branches
  • The packages on the ISO won't be extracted to the target installation, however the user might choose which branch he wants to install thru the installer
  • Then the installer will set the branch and installs the target as given

So in this case the installer defines the branch.

Case 3: Updating an existing installation

  • the user updates his system. pacman-mirrors might get updated.
  • thru the update of pacman-mirrors you can renew the mirror.json file, however not touch the mirrorlist file, as it might create issues during upgrade. Also pacman-mirrors.conf should not be touched during this process
  • the user however may change it on his own any time but not during an system update

This case is a little more complex as it is a two-part option. During an update you can renew the mirror.json list but not touch any config or mirrorlist. When the user however wants to do it, it should be done in a simple way, but not in combination of an update-process.

I hope this might clear it up. How to solve it is up to you guys. The functions might be already there, only documentation might be missed ...

*Created by: philmmanjaro* @fhdk and @udeved: seems this issue is taking to much loops already. ## Case 1: Creation of an ISO * if you create a new ISO you can set the branch with `manjaroiso -b testing` for example. The resulting ISO will add **testing** to its ISO name and therefore **pacman-mirror.conf** was set to **testing** branch permanently * if you do a final ISO **stable** branch is used. Only **testing** or **unstable** get tagged in the ISO name. So with this on installation/creation of the **chroot** the config needs to be set to the wanted branch set with the **-b** switch thru **manjaroiso** ## Case 2: Net-Install thru Calamares * the ISO is compiled with whatever branch. Since the ISO might be older, you may have newer packages in all branches * The packages on the ISO won't be extracted to the target installation, however the user might choose which branch he wants to install thru the installer * Then the installer will set the branch and installs the target as given So in this case the installer defines the **branch**. ## Case 3: Updating an existing installation * the user updates his system. **pacman-mirrors** might get updated. * thru the update of **pacman-mirrors** you can renew the mirror.json file, however not touch the **mirrorlist** file, as it might create issues during upgrade. Also **pacman-mirrors.conf** should not be touched during this process * the user however may change it on his own any time but not during an system update This case is a little more complex as it is a two-part option. During an update you can renew the mirror.json list but not touch any config or **mirrorlist**. When the user however wants to do it, it should be done in a simple way, but not in combination of an update-process. I hope this might clear it up. How to solve it is up to you guys. The functions might be already there, only documentation might be missed ...
philm commented 2017-06-06 07:13:52 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

The normal user might not use the API at all. That is designed for tools. In this case the result and the way pacman-mirrors acts might be total different as to the normal user cases 😅

*Created by: philmmanjaro* The normal user might not use the API at all. That is designed for tools. In this case the result and the way **pacman-mirrors** acts might be total different as to the normal user cases :sweat_smile:
philm commented 2017-06-06 07:21:59 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I think, most api stuff was ideally at home in pacman source.
It was all much more easy if pacman could be supplied with a branch arg too.
Setting branch needs to do two things, set branch in pm.conf(or ideally in pacman,conf) and adapt the mirrorlist.

In case of basestrap, it calls pm before pacman installs packages, but only sets the mirrorlist branch.
This script is called by either buildpkg or buildiso through mkchroot.
If I was runig basestrap standalone, it should also make branch permanent.

So, don't care too much about iso case.

*Created by: udeved* I think, most api stuff was ideally at home in pacman source. It was all much more easy if pacman could be supplied with a branch arg too. Setting branch needs to do two things, set branch in pm.conf(or ideally in pacman,conf) and adapt the mirrorlist. In case of basestrap, it calls pm before pacman installs packages, but only sets the mirrorlist branch. This script is called by either buildpkg or buildiso through mkchroot. If I was runig basestrap standalone, it should also make branch permanent. So, don't care too much about iso case.
philm commented 2017-06-06 07:24:25 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Thanks for expressing my thoughts so clearly.

With the changes made to the install scripts the mirror list is only created if it does not exist.

To accomodate for the specifics of @udeved iso building pacman-mirrors can ensure a sane enviroment exists. The -U argument does not touch an existing enviroment - it only creates a sane environment for building iso.

The end user have some sane options to change his config through the api.

*Created by: fhdk* Thanks for expressing my thoughts so clearly. With the changes made to the install scripts the mirror list is only created if it does not exist. To accomodate for the specifics of @udeved iso building pacman-mirrors can ensure a sane enviroment exists. The **-U** argument **does not** touch an existing enviroment - it only creates a sane environment for building iso. The end user have some sane options to change his config through the api.
philm commented 2017-06-06 07:28:43 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Or, @fhdk we make the api a standalone project, eg pacman-branch?

https://github.com/manjaro/manjaro-tools/blob/devel/bin/basestrap.in#L111

*Created by: udeved* Or, @fhdk we make the api a standalone project, eg pacman-branch? https://github.com/manjaro/manjaro-tools/blob/devel/bin/basestrap.in#L111
philm commented 2017-06-06 07:31:21 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

You guys are almost there. You only have to differ from user cases to toolbased cases. That is all. Define all possibilities in a sane way and we can accomplish it also in one application, since they are similar anyway.

*Created by: philmmanjaro* You guys are almost there. You only have to differ from **user cases** to **toolbased cases**. That is all. Define all possibilities in a sane way and we can accomplish it also in one application, since they are similar anyway.
philm commented 2017-06-06 07:34:20 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro

I have removed syncfirst pacman and defaulted to manjaro-system-ng in unstable.
First confused users included, typical troubles, pacnew file handling. :)

*Created by: udeved* @philmmanjaro I have removed syncfirst pacman and defaulted to manjaro-system-ng in unstable. First confused users included, typical troubles, pacnew file handling. :)
philm commented 2017-06-06 07:35:38 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Using that idiom

user cases is

  • set-protocols
  • set-branch

tool cases is

  • set-url
  • re-branch
  • set-prefix
  • get-branch
*Created by: fhdk* Using that idiom **user cases is** * set-protocols * set-branch **tool cases is** * set-url * re-branch * set-prefix * get-branch
philm commented 2017-06-06 07:40:35 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

    def api_config(self, set_prefix=None, set_branch=None, re_branch=False,
                   get_branch=False, set_protocols=None, set_url=None):
        """Api functions
        :param set_prefix: prefix to the config paths
        :param set_branch: replace branch in pacman-mirrors.conf
        :param re_branch: replace branch in mirrorlist
        :param get_branch: sys.exit with branch
        :param set_protocols: replace protocols in pacman-mirrors.conf
        :param set_url: replace mirror url in mirrorlist
        """
        # First API task
        if get_branch:
            sys.exit(self.config["branch"])

        # apply api configuration to internal configuration object
        # Apply protocols if present
        if set_protocols is None:
            set_protocols = []
        if "all" in args.proto:
            self.config["protocols"] = []
        else:
            if "," in args.proto[0]:
                self.config["protocols"] = args.proto[0].split(",")
            else:
                self.config["protocols"] = args.proto
        # Apply prefix if present
        if set_prefix:
            set_prefix = apifn.sanitize_prefix(set_prefix)
            self.config["config_file"] = set_prefix + self.config["config_file"]
            self.config["custom_file"] = set_prefix + self.config["custom_file"]
            self.config["mirror_file"] = set_prefix + self.config["mirror_file"]
            self.config["mirror_list"] = set_prefix + self.config["mirror_list"]
            self.config["status_file"] = set_prefix + self.config["status_file"]
            self.config["work_dir"] = set_prefix + self.config["work_dir"]
            # to be removed long time after 2017-04-18
            self.config["to_be_removed"] = set_prefix + self.config["to_be_removed"]
            # end removal
        # api tasks
        # Second API task: Set branch
        if set_branch:
            # Apply branch to internal config
            self.config["branch"] = set_branch
            # pacman-mirrors conf could absent so check for it
            if not filefn.check_file(set_prefix + self.config["config_file"]):
                # Copy from host system
                filefn.create_dir(set_prefix + "/etc")
                shutil.copyfile("/etc/pacman-mirrors.conf", self.config["config_file"])
                # Normalize config
                apifn.normalize_config(self.config["config_file"])
            # Write branch to config
            apifn.write_config_branch(self.config["branch"],
                                      self.config["config_file"],
                                      quiet=self.quiet)
        # Third API task: Create a mirror list
        if set_url:
            # mirror list dir could absent so check for it
            if not filefn.check_file("/etc/pacman.d", dir=True):
                # create mirror dir
                filefn.create_dir(set_prefix + "/etc/pacman.d")
                mirror = [
                    {
                        "url": apifn.sanitize_url(set_url),
                        "country": ".:! PKGBUILD !:.",
                        "protocols": [set_url[:set_url.find(":")]],
                        "resp_time": "00.00"
                    }
                ]
                filefn.output_mirror_list(self.config, mirror, quiet=self.quiet)
                sys.exit(0)
        # Fourth API task: Write protocols to config
        if set_protocols:
            apifn.write_protocols(self.config["protocols"],
                                  self.config["config_file"],
                                  quiet=self.quiet)
        # Fifth API taks: Rebranch the mirrorlist
        if re_branch:
            if not set_branch:
                print(".: {} {}".format(txt.ERR_CLR, txt.API_ERROR_BRANCH))
                sys.exit(1)
            apifn.write_mirrorlist_branch(self.config["branch"],
                                          self.config["config_file"],
                                          quiet=self.quiet)
*Created by: fhdk* ``` def api_config(self, set_prefix=None, set_branch=None, re_branch=False, get_branch=False, set_protocols=None, set_url=None): """Api functions :param set_prefix: prefix to the config paths :param set_branch: replace branch in pacman-mirrors.conf :param re_branch: replace branch in mirrorlist :param get_branch: sys.exit with branch :param set_protocols: replace protocols in pacman-mirrors.conf :param set_url: replace mirror url in mirrorlist """ # First API task if get_branch: sys.exit(self.config["branch"]) # apply api configuration to internal configuration object # Apply protocols if present if set_protocols is None: set_protocols = [] if "all" in args.proto: self.config["protocols"] = [] else: if "," in args.proto[0]: self.config["protocols"] = args.proto[0].split(",") else: self.config["protocols"] = args.proto # Apply prefix if present if set_prefix: set_prefix = apifn.sanitize_prefix(set_prefix) self.config["config_file"] = set_prefix + self.config["config_file"] self.config["custom_file"] = set_prefix + self.config["custom_file"] self.config["mirror_file"] = set_prefix + self.config["mirror_file"] self.config["mirror_list"] = set_prefix + self.config["mirror_list"] self.config["status_file"] = set_prefix + self.config["status_file"] self.config["work_dir"] = set_prefix + self.config["work_dir"] # to be removed long time after 2017-04-18 self.config["to_be_removed"] = set_prefix + self.config["to_be_removed"] # end removal # api tasks # Second API task: Set branch if set_branch: # Apply branch to internal config self.config["branch"] = set_branch # pacman-mirrors conf could absent so check for it if not filefn.check_file(set_prefix + self.config["config_file"]): # Copy from host system filefn.create_dir(set_prefix + "/etc") shutil.copyfile("/etc/pacman-mirrors.conf", self.config["config_file"]) # Normalize config apifn.normalize_config(self.config["config_file"]) # Write branch to config apifn.write_config_branch(self.config["branch"], self.config["config_file"], quiet=self.quiet) # Third API task: Create a mirror list if set_url: # mirror list dir could absent so check for it if not filefn.check_file("/etc/pacman.d", dir=True): # create mirror dir filefn.create_dir(set_prefix + "/etc/pacman.d") mirror = [ { "url": apifn.sanitize_url(set_url), "country": ".:! PKGBUILD !:.", "protocols": [set_url[:set_url.find(":")]], "resp_time": "00.00" } ] filefn.output_mirror_list(self.config, mirror, quiet=self.quiet) sys.exit(0) # Fourth API task: Write protocols to config if set_protocols: apifn.write_protocols(self.config["protocols"], self.config["config_file"], quiet=self.quiet) # Fifth API taks: Rebranch the mirrorlist if re_branch: if not set_branch: print(".: {} {}".format(txt.ERR_CLR, txt.API_ERROR_BRANCH)) sys.exit(1) apifn.write_mirrorlist_branch(self.config["branch"], self.config["config_file"], quiet=self.quiet) ```
philm commented 2017-06-06 07:41:30 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: is it already ready or do we need a new branch, staging for example? As of now we use unstable for normal building packages to be later snapped over to testing to be reviewed by a wider audience to be then finally dropped to stable. However we don't have yet the option to hold a set of packages back, as this is still missing in boxit as function. It is always good to look forward, but adding new functions so close to the end of a development cycle for our next stable ISO is a little to far fetched. Anyway, let me review the changes made.

@fhdk: seems we are on the right track now. Sometimes the discussion takes longer since we all understand them differently. So if a discussion takes to many loops it is better to stop, take a breath and talk to the other person why there might be a misinterpretation to clear that up first. Then we can tackle along ...

*Created by: philmmanjaro* @udeved: is it already ready or do we need a new branch, **staging** for example? As of now we use **unstable** for normal building packages to be later snapped over to **testing** to be reviewed by a wider audience to be then finally dropped to **stable**. However we don't have yet the option to hold a set of packages back, as this is still missing in **boxit** as function. It is always good to look forward, but adding new functions so close to the end of a development cycle for our next stable ISO is a little to far fetched. Anyway, let me review the changes made. @fhdk: seems we are on the right track now. Sometimes the discussion takes longer since we all understand them differently. So if a discussion takes to many loops it is better to stop, take a breath and talk to the other person why there might be a misinterpretation to clear that up first. Then we can tackle along ...
philm commented 2017-06-06 07:44:25 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro

I pushed the set of packages in unstable last night before bed time.
This would a case for having extra repos, but I wanted it done finally because other stuff depends on it, so I pushed it.

*Created by: udeved* @philmmanjaro I pushed the set of packages in unstable last night before bed time. This would a case for having extra repos, but I wanted it done finally because other stuff depends on it, so I pushed it.
philm commented 2017-06-06 07:49:07 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: it is OK, however we should rethink on how we use the branches as of now in development with given tools. It might work as is already, but it might also take longer to polish. Adding a fourth layer is no problem. It might solve it for now. Let me think on how we may find a better working place with the options we have now not to have to modify to much tools.

*Created by: philmmanjaro* @udeved: it is OK, however we should rethink on how we use the branches as of now in development with given tools. It might work as is already, but it might also take longer to polish. Adding a fourth layer is no problem. It might solve it for now. Let me think on how we may find a better working place with the options we have now not to have to modify to much tools.
philm commented 2017-06-06 07:52:16 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I would be actually more for either keeping 3 branches, or reducing to two branches, but we add repos.

Not sure a 4th branch helps us to keep overview. I usually know only whats going on in unstable branch, its where all our packages go, and why I don't push them to testing too.

*Created by: udeved* I would be actually more for either keeping 3 branches, or reducing to two branches, but we add repos. Not sure a 4th branch helps us to keep overview. I usually know only whats going on in unstable branch, its where all our packages go, and why I don't push them to testing too.
philm commented 2017-06-06 07:59:41 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

For the case idiom - those two which has practical use for the end user - I think it would make sense to make them independent of the --api argument.

My reasoning is the less we can draw attention to the --api argument - the lesser chance of a user making an unintended change to the system. Removing their dependency of the --api argument does not change their function when --api is present - they just work both places.

Nah - better keep it the way it is.

*Created by: fhdk* For the case idiom - those two which has practical use for the end user - I think it would make sense to make them independent of the --api argument. My reasoning is the less we can draw attention to the --api argument - the lesser chance of a user making an unintended change to the system. Removing their dependency of the --api argument does not change their function when --api is present - they just work both places. Nah - better keep it the way it is.
philm commented 2017-06-06 08:01:57 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I would see the benefit of a separate little tool that it may be easier to merge it in pacman source with a patch. In my view, the cool api features replicate stuff pacman can do, so pm is able to do the stuff pacman is missing with the branch.

*Created by: udeved* I would see the benefit of a separate little tool that it may be easier to merge it in pacman source with a patch. In my view, the cool api features replicate stuff pacman can do, so pm is able to do the stuff pacman is missing with the branch.
philm commented 2017-06-06 08:04:53 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Is pacman patched already?

I have a weird thing when I build a package with buildpkg

/media/.../manjaro/pacman-mirrors-dev >>> LC_ALL="C" ./build-pm                                                                                                                            
--- Building pacman-mirrors-dev
==> Making package: pacman-mirrors-dev 4.2.0dev.20170606-4 (Tue Jun  6 10:04:04 CEST 2017)
==> Checking runtime dependencies...
warning: config file /etc/pacman.conf, line 20: directive 'SyncFirst' in section 'options' not recognized.
==> Checking buildtime dependencies...
warning: config file /etc/pacman.conf, line 20: directive 'SyncFirst' in section 'options' not recognized.
*Created by: fhdk* Is pacman patched already? I have a weird thing when I build a package with buildpkg ``` /media/.../manjaro/pacman-mirrors-dev >>> LC_ALL="C" ./build-pm --- Building pacman-mirrors-dev ==> Making package: pacman-mirrors-dev 4.2.0dev.20170606-4 (Tue Jun 6 10:04:04 CEST 2017) ==> Checking runtime dependencies... warning: config file /etc/pacman.conf, line 20: directive 'SyncFirst' in section 'options' not recognized. ==> Checking buildtime dependencies... warning: config file /etc/pacman.conf, line 20: directive 'SyncFirst' in section 'options' not recognized. ```
philm commented 2017-06-06 08:06:08 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

You are on unstable, right?

sudo mv -v /etc/pacman.conf.pacnew /etc/pacman.conf

*Created by: udeved* You are on unstable, right? `sudo mv -v /etc/pacman.conf.pacnew /etc/pacman.conf`
philm commented 2017-06-06 08:07:12 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

OUT-TOPIC

@udeved

We have several issues with this as it is a little against the current concept:

  • we follow Arch development and need a branch to collect all packages they have updated
  • we compile our own packages against that snapshot
  • we may add simple packages which might give the user a better experience like with graphical tools
  • we don't create new packages like init-systems or change the way the distro works

Now we have some stuff which collides with that:

  • the whole OpenRC thing
  • changes to given tools and the way the work

We simply have to figure out on how we merge those two different efforts. Arch simply don't like to maintain a second init system like OpenRC. New tools are included in the development process of the whole distro.

As of now we are a small team which takes a snapshot of Arch, compiles a few custom packages to that set and tries to stabilize it. No 3rd-party projects added, which doesn't exist on Arch itself.

Since we do that time to time we may collide. Also user will post issues to those extra packages only we create in those given branches.

Adding new repos might only give you the option to place the packages above a repo like core. This might be useful for a init-system. However, that need to be tested first. I don't say it is not possible, but we need a new testbed, which is outside of the given development cycle.

So if I create a new branch called staging, we may clone the given unstable to it and even create a new repo for your OpenRC stuff, to see if that ease something on your end.

As always: any change needed to the given tool-chain needs a in-deep discussion first with some members of the team, as it may affect the process flow we currently use for developing Manjaro.

*Created by: philmmanjaro* ## **OUT-TOPIC** @udeved We have several issues with this as it is a little against the current concept: * we follow Arch development and need a branch to collect all packages they have updated * we compile our own packages against that snapshot * we may add simple packages which might give the user a better experience like with graphical tools * we don't create new packages like init-systems or change the way the distro works Now we have some stuff which collides with that: * the whole **OpenRC** thing * changes to given tools and the way the work We simply have to figure out on how we merge those two different efforts. Arch simply don't like to maintain a second init system like **OpenRC**. New tools are included in the development process of the whole distro. As of now we are a small team which takes a snapshot of Arch, compiles a few custom packages to that set and tries to stabilize it. No 3rd-party projects added, which doesn't exist on Arch itself. Since we do that time to time we may collide. Also user will post issues to those extra packages only we create in those given branches. Adding new repos might only give you the option to place the packages above a repo like **core**. This might be useful for a init-system. However, that need to be tested first. I don't say it is not possible, but we need a new testbed, which is outside of the given development cycle. So if I create a new branch called **staging**, we may clone the given **unstable** to it and even create a new repo for your **OpenRC** stuff, to see if that ease something on your end. As always: any change needed to the given tool-chain needs a in-deep discussion first with some members of the team, as it may affect the process flow we currently use for developing Manjaro.
philm commented 2017-06-06 08:13:23 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro

But we have our own tools, pacman-mirrors, mt, and other bigger packages in community.
The issue I pointed out is not really related to openrc, its related to our manjaro packages.
The trouble is with tools packages much more than openrc, would be simply better to have the nonsystemd stuff in a different repo. Would open up new possibilities to keep systemd and nonsystemd out of their way respectively. We could simply activate or deactivate the repo, idiot proof so to speak.

*Created by: udeved* @philmmanjaro But we have our own tools, pacman-mirrors, mt, and other bigger packages in community. The issue I pointed out is not really related to openrc, its related to our manjaro packages. The trouble is with tools packages much more than openrc, would be simply better to have the nonsystemd stuff in a different repo. Would open up new possibilities to keep systemd and nonsystemd out of their way respectively. We could simply activate or deactivate the repo, idiot proof so to speak.
philm commented 2017-06-06 08:34:37 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: We have our own tools. Yes. However those don't collide with the process how the distro works. Packages for another init-system as systemd however do. They may collide in some situation and currently hard to handle.

We currently have a working process in regard compiling packages against those we get from Arch. Since we added a new init-system, which doesn't exist upstream, some things don't work as they should. However we managed them in a way so far.

Adding new repos might be an option as pacman is designed for that. Maintaining a 3rd-party project on top of an given fast changing project is hard. I've done that with KDE-Mod in the past. Your Open-RC set is similar to that. For that to work you need to be doing it on your own speed. That is why we decided to use snapshots of Arch rather than using the repos directly. So we have time.

With the current small team for Open-RC it simply is a 3rd-party project as of now, not used by other Manjaro developers. This might be a problem for the user in quality of the given packages. However it is also a good thing to give people the choice to have a second init-system available and supported. Take it as an example.

Lets talk about the tools. Those are also designed for the purpose to compile packages against the snapshots we take from Arch as our upstream project. Yes, we are our own distro but are somehow dictated to follow the changes made by Arch. We are still far away on managing our own distro completely for given reasons.

Non the less we have to talk within the team on changes made to core packages. The simple task to get the API function to pacman-mirrors is currently done the right way. We use the development package to test it out. Therefore we don't collide with given packages and also don't change the way our distro works. However changing the way manjaro-system package works, breaks that rule. That has to be done with pacman-dev until it can be merged to pacman.

You always wondered why we have so many development packages. It is simple. To have a test-bed outside the current stable development.

We all work with the given workarounds as we didn't find the time to add some features to boxit.

So, if changes are needed to the current development process, we are all ears, but changing stuff cos it is just needed to give you the freedom to continue the current development cycle you're currently in is simply a no-go for the given project.

There are reasons why nobody uses the development branch of manjaro-tools as of now. Also why everybody is discussing every small change made to the packages. We are currently on the end of a development cycle and therefore we need stabilization. When that is accomplish we are all free to review your fantastic work and might have time to discuss on how we may include it to the current project and therefore start the development of v17.1 as changes are made to the distro is made.

Please start to see the bigger picture and why some developers act as they do. We all want the same in the end. Provide a nice distro as Manjaro with cool features not every distro has.

Changes can be made always, however they should not collide with current process flows when they are not widely tested.

Let me think on a proper solution and how we may continue to have all the options and functions we plan or currently have for Manjaro.

*Created by: philmmanjaro* @udeved: We have our own tools. Yes. However those don't collide with the process how the distro works. Packages for another init-system as **systemd** however do. They may collide in some situation and currently hard to handle. We currently have a working process in regard compiling packages against those we get from Arch. Since we added a new init-system, which doesn't exist upstream, some things don't work as they should. However we managed them in a way so far. Adding new repos might be an option as **pacman** is designed for that. Maintaining a **3rd-party** project on top of an given fast changing project is hard. I've done that with **KDE-Mod** in the past. Your **Open-RC** set is similar to that. For that to work you need to be doing it on your own speed. That is why we decided to use snapshots of Arch rather than using the repos directly. So we have time. With the current small team for **Open-RC** it simply is a **3rd-party** project as of now, not used by other Manjaro developers. This might be a problem for the user in quality of the given packages. However it is also a good thing to give people the choice to have a second init-system available and supported. Take it as an example. Lets talk about the tools. Those are also designed for the purpose to compile packages against the snapshots we take from Arch as our upstream project. Yes, we are our own distro but are somehow dictated to follow the changes made by Arch. We are still far away on managing our own distro completely for given reasons. Non the less we have to talk within the team on changes made to core packages. The simple task to get the API function to **pacman-mirrors** is currently done the right way. We use the **development** package to test it out. Therefore we don't collide with given packages and also don't change the way our distro works. However changing the way **manjaro-system** package works, breaks that rule. That has to be done with **pacman-dev** until it can be merged to **pacman**. You always wondered why we have so many **development** packages. It is simple. To have a test-bed outside the current stable development. We all work with the given workarounds as we didn't find the time to add some features to **boxit**. So, if changes are needed to the current development process, we are all ears, but changing stuff cos it is just needed to give you the freedom to continue the current development cycle you're currently in is simply a no-go for the given project. There are reasons why nobody uses the **development** branch of **manjaro-tools** as of now. Also why everybody is discussing every small change made to the packages. We are currently on the end of a development cycle and therefore we need stabilization. When that is accomplish we are all free to review your fantastic work and might have time to discuss on how we may include it to the current project and therefore start the development of **v17.1** as changes are made to the distro is made. Please start to see the bigger picture and why some developers act as they do. We all want the same in the end. Provide a nice distro as Manjaro with cool features not every distro has. Changes can be made always, however they should not collide with current process flows when they are not widely tested. Let me think on a proper solution and how we may continue to have all the options and functions we plan or currently have for Manjaro.
philm commented 2017-06-06 08:48:20 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

A practical example is system packages that are named *-dev, instead of having simply higher version in unstable branch. This little issue triggers a chain of little changes to adapt static package lists for example use in build processes.
Further trouble is sometimes iso-profiles being not in sync with tools within the branch. So I am also fine with an extra branch, but I don't think its the best solution, it just moves the problem until blacklisting works in boxit.

*Created by: udeved* A practical example is system packages that are named *-dev, instead of having simply higher version in unstable branch. This little issue triggers a chain of little changes to adapt static package lists for example use in build processes. Further trouble is sometimes iso-profiles being not in sync with tools within the branch. So I am also fine with an extra branch, but I don't think its the best solution, it just moves the problem until blacklisting works in boxit.
philm commented 2017-06-06 08:53:15 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

We use -dev packages as a workaround due given facts. Adding another branch might do the same. Having a higher version in the packages might be the solution, sure. However, who has currently time to tackle boxit? Do you?

So we either have to change the process for now and make testing to unstable and use unstable as a staging platform or we create another branch and do it there until we have a proper solution. Anyway. Changes made to packages which may affect the flow our distro works need a discussion within the team. That is why some developers are sometimes on the edge with changes made not discussed properly. They may be useful but might have simply a wrong timing as the focus is somewhere else ...

*Created by: philmmanjaro* We use **-dev** packages as a workaround due given facts. Adding another **branch** might do the same. Having a higher version in the packages might be the solution, sure. However, who has currently time to tackle **boxit**? Do you? So we either have to change the process for now and make **testing** to **unstable** and use **unstable** as a staging platform or we create another branch and do it there until we have a proper solution. Anyway. Changes made to packages which may affect the flow our distro works need a discussion within the team. That is why some developers are sometimes on the edge with changes made not discussed properly. They may be useful but might have simply a wrong timing as the focus is somewhere else ...
philm commented 2017-06-06 08:55:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I would take the time, but I would take the time for boxit to realize what is described in the forum thread.

We would either end up with one boxit server instance running, or two instances, but I'd prefer one, which has two sync urls where it gets repos from.

I would simply let boxit do where its good at, branching, snapshots, but uplodading manjaro specific packages would be done by a new client directly to sync url.

*Created by: udeved* I would take the time, but I would take the time for boxit to realize what is described in the forum thread. We would either end up with one boxit server instance running, or two instances, but I'd prefer one, which has two sync urls where it gets repos from. I would simply let boxit do where its good at, branching, snapshots, but uplodading manjaro specific packages would be done by a new client directly to sync url.
philm commented 2017-06-06 09:04:06 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I realize I am the new comer and as that I have to adjust to the way things are done.

From other aspects of my life I have learned

Remember, the things done at my-new-job they got done before I arrived

It is always the best policy for a new comer to learn how things are done and in that process I might have a lot of thoughts and ideas on how to improve this or that, I always tells my self to keep quiet and work with what I got. If I am asked an opinion then I won't be afraid of spelling it out because I know it is wanted.

I know it might sound old-fashioned but it actually helped me a lot from getting frustrated and saved me a lot of trouble with my collegues.

Which is why I cannot comment on the OT issue here - only offer some hard learned advice.

*Created by: fhdk* I realize I am the new comer and as that I have to adjust to the way things are done. From other aspects of my life I have learned > Remember, the things done at my-new-job they got done before I arrived It is always the best policy for a new comer to learn how things are done and in that process I might have a lot of thoughts and ideas on how to improve this or that, I always tells my self to keep quiet and work with what I got. If I am asked an opinion then I won't be afraid of spelling it out because I know it is wanted. I know it might sound old-fashioned but it actually helped me a lot from getting frustrated and saved me a lot of trouble with my collegues. Which is why I cannot comment on the OT issue here - only offer some hard learned advice.
philm commented 2017-06-06 09:05:38 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

That is fine. However we had not yet the time to document boxit as we should have. Also the core developer is not part of our distro anymore. From the develop process we sync Arch packages to unstable, compile our packages if needed and snap the new package set to testing. Therefore testing is kinda frozen and only needed packages to fix issues should been put there. When the test was successful we snap the fixed set to stable, which is also always frozen. Only security updates or needed fixes should go directly to stable.

With our devtools we were able to compile for each branch if needed. We had a dedicated security team of packages who only compiled packages for testing or stable.

manjaro-tools then replaced devtools, but kept the process flow we had designed.

After adding another init-system or other stuff the current process and options we have might be not enough anymore and new features are needed. We managed to avoid them or used complicated workarounds to temporally get to the next step.

Since we are now a larger team, more talking and rules are needed to keep the process going. Changes might take longer to be accepted by all. So the planning is also more in focus now and our development cycles take longer now.

So we have to document more, so everybody might get to know all processes we have. If only one person is doing it, why document it. That person already knows what he is doing. So even with the API function in pacman-mirrors it took a while to match all needs there given to accomplish the goal which satisfies everybody.

In the end we will get there where we want to go.

*Created by: philmmanjaro* That is fine. However we had not yet the time to document **boxit** as we should have. Also the core developer is not part of our distro anymore. From the develop process we sync Arch packages to **unstable**, compile our packages if needed and snap the new package set to **testing**. Therefore **testing** is kinda frozen and only needed packages to fix issues should been put there. When the test was successful we snap the fixed set to **stable**, which is also always frozen. Only security updates or needed fixes should go directly to **stable**. With our **devtools** we were able to compile for each branch if needed. We had a dedicated security team of packages who only compiled packages for **testing** or **stable**. **manjaro-tools** then replaced **devtools**, but kept the process flow we had designed. After adding another init-system or other stuff the current process and options we have might be not enough anymore and new features are needed. We managed to avoid them or used complicated workarounds to temporally get to the next step. Since we are now a larger team, more talking and rules are needed to keep the process going. Changes might take longer to be accepted by all. So the planning is also more in focus now and our development cycles take longer now. So we have to document more, so everybody might get to know all processes we have. If only one person is doing it, why document it. That person already knows what he is doing. So even with the API function in **pacman-mirrors** it took a while to match all needs there given to accomplish the goal which satisfies everybody. In the end we will get there where we want to go.
philm commented 2017-06-06 09:09:08 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@fhdk: exactly. That is why pacman-mirrors works so good. Take what is given and improve it. Add new features if they make sense and test them before they get merged to the release package. That is why we have -dev or -git packages. Having just one application as a project is much easier than maintaining the whole distro and keep everything on track. Together as team we may even achieve that.

*Created by: philmmanjaro* @fhdk: exactly. That is why **pacman-mirrors** works so good. Take what is given and improve it. Add new features if they make sense and test them before they get merged to the release package. That is why we have **-dev** or **-git** packages. Having just one application as a project is much easier than maintaining the whole distro and keep everything on track. Together as team we may even achieve that.
philm commented 2017-06-06 09:11:29 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

We managed to avoid them or used complicated workarounds to temporally get to the next step.

Its actually what drives me as human being, I always want to improve stuff with better solutions.
I kind of dislike workarounds, and I have come to this exact conclusion after some years fiddling with manjaro. We should take it to next level and eliminate the many, many workarounds to make stuff fit, because we don't build all packages for example.
I think @jonathonf summed it up, we need to decide if we stay hobby project organization, or little bit more organized and professional. We gain many new users, and I think the hobby approach will soon reach its limits and we can't handle all the stuff any longer.

*Created by: udeved* > We managed to avoid them or used complicated workarounds to temporally get to the next step. Its actually what drives me as human being, I always want to improve stuff with better solutions. I kind of dislike workarounds, and I have come to this exact conclusion after some years fiddling with manjaro. We should take it to next level and eliminate the many, many workarounds to make stuff fit, because we don't build all packages for example. I think @jonathonf summed it up, we need to decide if we stay hobby project organization, or little bit more organized and professional. We gain many new users, and I think the hobby approach will soon reach its limits and we can't handle all the stuff any longer.
philm commented 2017-06-06 09:19:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: exactly. As of now it is still a hobby project which demands a lot of time from us all. Every improvement is welcome. I'm also sick of all those workarounds and explaining everyone why I get a little "angry" about things pushed or added at a wrong time-frame.

Since we identified a few of them, we should make a plan on how we solve them together. What is even needed we didn't had thought of. All changes and options should be discussed. This might need a meeting with most of our team to brainstorm. Also it would be good to know who put how much time into Manjaro already or is willing to do so when things get more organized.

We should take it step by step as always to find the proper way to manage the bigger goal.

So I recommend to prioritize boxit a little higher now and see if we may optimize its functions for the better for us all. Also a full documentation and guideline for new packagers might be useful to have, plus a better user management of boxit itself. The bare minimum might be not enough anymore.

And if our repository structure needs to be changed, we should discuss it also. Don't get me wrong. I'm open for new things, but I won't throw working stuff we had accomplished over the years out of the window so fast.

*Created by: philmmanjaro* @udeved: exactly. As of now it is still a hobby project which demands a lot of time from us all. Every improvement is welcome. I'm also sick of all those workarounds and explaining everyone why I get a little "angry" about things pushed or added at a wrong time-frame. Since we identified a few of them, we should make a plan on how we solve them together. What is even needed we didn't had thought of. All changes and options should be discussed. This might need a meeting with most of our team to brainstorm. Also it would be good to know who put how much time into Manjaro already or is willing to do so when things get more organized. We should take it step by step as always to find the proper way to manage the bigger goal. So I recommend to prioritize **boxit** a little higher now and see if we may optimize its functions for the better for us all. Also a full documentation and guideline for new packagers might be useful to have, plus a better user management of **boxit** itself. The bare minimum might be not enough anymore. And if our repository structure needs to be changed, we should discuss it also. Don't get me wrong. I'm open for new things, but I won't throw working stuff we had accomplished over the years out of the window so fast.
philm commented 2017-06-06 09:21:46 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I participate in a Linux usergroup a couple of times a month I have been doing for a couple of years now. They thought I was a little out cause I didn't use Ubuntu like they did. But lately they have been watching Manjaro gaining more and more attention and some has begun to ask if its worth changing.

So the interest for Manjaro is growing and so the user base is growing - which can also is reflected at the forum.

How this should affect organization or structure I cannot say but polishing and adapting the tools is needed but it is bad if it is done at the same time as a release - that would either cause the release to be buggy or postpone it until necessarry testing has been done.

*Created by: fhdk* I participate in a Linux usergroup a couple of times a month I have been doing for a couple of years now. They thought I was a little out cause I didn't use Ubuntu like they did. But lately they have been watching Manjaro gaining more and more attention and some has begun to ask if its worth changing. So the interest for Manjaro is growing and so the user base is growing - which can also is reflected at the forum. How this should affect organization or structure I cannot say but polishing and adapting the tools is needed but it is bad if it is done at the same time as a release - that would either cause the release to be buggy or postpone it until necessarry testing has been done.
philm commented 2017-06-06 09:27:20 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Documentation is one of my priorities - mostly because even I was the only developer - a few weeks let it months gone and I couldn't always remember why a thing was done a specific way.

So I am a documentation writer for good and bad :)

All those questions from @udeved regarding pacman-mirrors has resulted in better understanding of my own code and thereby improved documentation.

A great man once said "If can't explain it in a simple manner, you don't understand it well enough"

*Created by: fhdk* Documentation is one of my priorities - mostly because even I was the only developer - a few weeks let it months gone and I couldn't always remember why a thing was done a specific way. So I am a documentation writer for good and bad :) All those questions from @udeved regarding pacman-mirrors has resulted in better understanding of my own code and thereby improved documentation. A great man once said "If can't explain it in a simple manner, you don't understand it well enough"
philm commented 2017-06-06 09:31:15 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro

I see several weaknesses with boxit:

  • server side

    • we can eliminate missing selective snapshot capabilities by introducing additional repos
    • we could have staging repos, granted we would host the upload pool
  • client side

    • its slow
    • difficult to connect to a build system
    • still qt4 based

I propose we use the client only for snapshots, and only a few people can actually do snapshots.
Maintainers would upload with a new client to the sync url, where the origial repos exists. The client would only create symlinks and update the repo db. From there, we let boxit crew do their thing.
The new client could be easily connected or replaced by automated build system.

Lets say the new client was a simple deploypkg script part of mt.

*Created by: udeved* @philmmanjaro I see several weaknesses with boxit: * server side * we can eliminate missing selective snapshot capabilities by introducing additional repos * we could have staging repos, granted we would host the upload pool * client side * its slow * difficult to connect to a build system * still qt4 based I propose we use the client only for snapshots, and only a few people can actually do snapshots. Maintainers would upload with a new client to the sync url, where the origial repos exists. The client would only create symlinks and update the repo db. From there, we let boxit crew do their thing. The new client could be easily connected or replaced by automated build system. Lets say the new client was a simple deploypkg script part of mt.
philm commented 2017-06-06 09:47:06 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

So my idea is, we simply configure boxit server to read either from second url, or we manage from one sync url, ie we create the sync structure for boxit server ourselves, and focus on separating branching necessary for the server, from uploading packages to a repo pool. It would be more fiddling with urls syncing arch and manjaro repo pools for boxit server.
Result should be, minimal changes to boxit-server code, and we have an additional client for the simple upload where the server syncs from.
I would think, we we take the perhaps justified workaround, to sync arch repos to a manjaro url, where it also hosts the manjaro specific repos, annd we let boxit-server syc from this url, it saves some code changes.

*Created by: udeved* So my idea is, we simply configure boxit server to read either from second url, or we manage from one sync url, ie we create the sync structure for boxit server ourselves, and focus on separating branching necessary for the server, from uploading packages to a repo pool. It would be more fiddling with urls syncing arch and manjaro repo pools for boxit server. Result should be, minimal changes to boxit-server code, and we have an additional client for the simple upload where the server syncs from. I would think, we we take the perhaps justified workaround, to sync arch repos to a manjaro url, where it also hosts the manjaro specific repos, annd we let boxit-server syc from this url, it saves some code changes.
philm commented 2017-06-06 10:00:50 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro
I am trying to put together a documentation like document for boxit.
I will use the knowledge I have gained while setting up a boxit server local and will incorporate those from the forum post. I will send you a draft on your email when I am through it.

*Created by: fhdk* @philmmanjaro I am trying to put together a documentation like document for boxit. I will use the knowledge I have gained while setting up a boxit server local and will incorporate those from the forum post. I will send you a draft on your email when I am through it.
philm commented 2017-06-06 10:05:40 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@fhdk: thx mate. More people will use boxit after all. Its first concept was already good and we taught each other on how to use it. However, nobody took the time to document it.

@udeved: as always. New functions should be tested first and then integrated properly to the current project. If a droplet for testing this is needed, let me know. We never should affect the current process by testing or introducing new stuff. Only after common approval we should make the change. Do the needed changes in a fork or new git branch and present the results for discussion. Maybe concentrate on core repo first and don't start with a full working distro to begin with.

*Created by: philmmanjaro* @fhdk: thx mate. More people will use **boxit** after all. Its first concept was already good and we taught each other on how to use it. However, nobody took the time to document it. @udeved: as always. New functions should be tested first and then integrated properly to the current project. If a droplet for testing this is needed, let me know. We never should affect the current process by testing or introducing new stuff. Only after common approval we should make the change. Do the needed changes in a fork or new git branch and present the results for discussion. Maybe concentrate on **core** repo first and don't start with a full working distro to begin with.
philm commented 2017-06-06 10:12:36 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

Now you are getting on board.
Absolutely, plan was first to have a manjaro specific core repo additionally, which can be slowly filled.
Shouldn't be a problem then to enhance the filer for arch upstream as soon as we build a given package ourselves. Bash comes to mind, solving desktop settings bash customization.
Its about that we realize the necessary foundation to have this option at hand at all.
I currently don't see an option with current structure. Yeah, a testing instance of a boxit sever, a available sync url would do it. Perhaps even a SF repo will do to sync the boxit server instance?

*Created by: udeved* Now you are getting on board. Absolutely, plan was first to have a manjaro specific core repo additionally, which can be slowly filled. Shouldn't be a problem then to enhance the filer for arch upstream as soon as we build a given package ourselves. Bash comes to mind, solving desktop settings bash customization. Its about that we realize the necessary foundation to have this option at hand at all. I currently don't see an option with current structure. Yeah, a testing instance of a boxit sever, a available sync url would do it. Perhaps even a SF repo will do to sync the boxit server instance?
philm commented 2017-06-06 10:26:56 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: again you're all over the place. Take it step by step. I'm not against changes, but against unplanned pushing of things no one else uses currently. If a new approach might be better, it should be tested totally separately and as long as needed, presented to the team and discussed before it replaces or get merged to the current project. And please no one-man shows anymore. If infrastructure is needed for these test-cases we can accomplish. I simply don't like ideas not thought fully thru.

Since we are now far from the original topic with this? Does @fhdk still need to do some changes to the current API or is it fine as is right now?

*Created by: philmmanjaro* @udeved: again you're all over the place. Take it step by step. I'm not against changes, but against unplanned pushing of things no one else uses currently. If a new approach might be better, it should be tested totally separately and as long as needed, presented to the team and discussed before it replaces or get merged to the current project. And please no one-man shows anymore. If infrastructure is needed for these test-cases we can accomplish. I simply don't like ideas not thought fully thru. Since we are now far from the original topic with this? Does @fhdk still need to do some changes to the current API or is it fine as is right now?
philm commented 2017-06-06 10:31:19 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro

I don't want to fiddle with the running boxit server. Who is saying that?
I would like to have test boxit server instance, that is perhaps accessible by more than just one member, ie not a home test environment. This is where you or someone with the power to set this up would come into play. Let the rest be not your concern, you would be informed if something workable comes out, because you could try yourself.
I don't get your hostility here.

*Created by: udeved* @philmmanjaro I don't want to fiddle with the running boxit server. Who is saying that? I would like to have test boxit server instance, that is perhaps accessible by more than just one member, ie not a home test environment. This is where you or someone with the power to set this up would come into play. Let the rest be not your concern, you would be informed if something workable comes out, because you could try yourself. I don't get your hostility here.
philm commented 2017-06-06 10:43:08 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: each project I had mentioned here should be taken as an example. It simply doesn't matter which part we change of Manjaro. As long as it changes the work flow in some kind of way we had communicated to the team it should be tested in a testbed which doesn't affect the current established processes. That is all. It is also clear for me that it should be a separate instance of boxit to test those changes or ideas. Again, if therefore some new infrastructure is needed, lets talk. Else prepare the changes and present them to the the team as always. Nothing more nothing less. See it as a normal PR we will discuss as needed.

*Created by: philmmanjaro* @udeved: each project I had mentioned here should be taken as an example. It simply doesn't matter which part we change of Manjaro. As long as it changes the work flow in some kind of way we had communicated to the team it should be tested in a testbed which doesn't affect the current established processes. That is all. It is also clear for me that it should be a separate instance of **boxit** to test those changes or ideas. Again, if therefore some new infrastructure is needed, lets talk. Else prepare the changes and present them to the the team as always. Nothing more nothing less. See it as a normal PR we will discuss as needed.
philm commented 2017-06-06 10:50:08 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

I can't present changes without beig able to configure a boxit server with a different sync url.
So we agree, lets have a test evironment, where several people cann work on, which goes separate from default workflow. Once we have something that works, wre ca discuss to make it default. All I am saying.
I would like a cooperative effort, but precondition is simply a necessary url, rights granted, test instance to make it cooperative,something that should be possible with the server privileges of those able to set this up.

*Created by: udeved* I can't present changes without beig able to configure a boxit server with a different sync url. So we agree, lets have a test evironment, where several people cann work on, which goes separate from default workflow. Once we have something that works, wre ca discuss to make it default. All I am saying. I would like a cooperative effort, but precondition is simply a necessary url, rights granted, test instance to make it cooperative,something that should be possible with the server privileges of those able to set this up.
philm commented 2017-06-06 10:51:34 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

I have the details for configuring and setting up a boxit server - I have one working since yesterday.

*Created by: fhdk* I have the details for configuring and setting up a boxit server - I have one working since yesterday.
philm commented 2017-06-06 10:54:22 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@udeved I hope you don't mind - I do think you are putting to much into @philmmanjaro s opinion - I do not sense hostility - au contraire - I sense a will to help accomodate your wishes.

*Created by: fhdk* @udeved I hope you don't mind - I do think you are putting to much into @philmmanjaro s opinion - I do not sense hostility - au contraire - I sense a will to help accomodate your wishes.
philm commented 2017-06-06 10:55:46 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: again. If a new infrastructure is needed lets talk. If @fhdk found a way to do it separately it is also OK. What I only see is. You jump from one task to the next and then back and forth without having the complete project in picture. This you can also see on this issue report, which went out-topic several posts ago.

This discussion would be better placed in our mailing list. I'm working for a lot of big projects also at my work. And structure is the key in all.

So the last time: Does @fhdk need to change anything on the API of pacman-mirrors or is the original request accomplished by now?

*Created by: philmmanjaro* @udeved: again. If a new infrastructure is needed lets talk. If @fhdk found a way to do it separately it is also OK. What I only see is. You jump from one task to the next and then back and forth without having the complete project in picture. This you can also see on this **issue report**, which went **out-topic** several posts ago. This discussion would be better placed in our [mailing list](https://lists.manjaro.org/pipermail/manjaro-dev/). I'm working for a lot of big projects also at my work. And structure is the key in all. So the last time: Does @fhdk need to change anything on the API of **pacman-mirrors** or is the original request accomplished by now?
philm commented 2017-06-06 10:56:58 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro

I see a bigger picture, like you demanded.

*Created by: udeved* @philmmanjaro I see a bigger picture, like you demanded.
philm commented 2017-06-06 11:07:56 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: good, but I still don't see a clear answer on the our original request for pacman-mirrors to add a proper API so other tools may use that function. Is it accomplished with the given changes made or not? If so, we can close this request and might release v4.2 of pacman-mirrors as given.

@fhdk: any other functions or things prevent us from releasing the next series of pacman-mirrors?

*Created by: philmmanjaro* @udeved: good, but I still don't see a clear answer on the our original request for **pacman-mirrors** to add a proper API so other tools may use that function. Is it accomplished with the given changes made or not? If so, we can close this request and might release **v4.2** of **pacman-mirrors** as given. @fhdk: any other functions or things prevent us from releasing the next series of **pacman-mirrors**?
philm commented 2017-06-06 11:10:49 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: udeved

@philmmanjaro
.
Regarding pacman mirrors, I 'd say almost there, if it set also branch in pm.conf in api mode, I think mission accomplished.

*Created by: udeved* @philmmanjaro . Regarding pacman mirrors, I 'd say almost there, if it set also branch in pm.conf in api mode, I think mission accomplished.
philm commented 2017-06-06 11:13:46 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

Try with the latest package. The actions and the order is described above.
It sets a pacman-mirrors.conf if none is found otherwise not.
-U forces a mirrorlist with $url since that is the purpose.
Please test and let me know if you're satisfied.

https://github.com/manjaro/pacman-mirrors/issues/105#issuecomment-306407470

https://github.com/manjaro/pacman-mirrors/issues/105#issuecomment-306401753

*Created by: fhdk* Try with the latest package. The actions and the order is described above. It sets a pacman-mirrors.conf if none is found otherwise not. **-U** forces a mirrorlist with **$url** since that is the purpose. Please test and let me know if you're satisfied. https://github.com/manjaro/pacman-mirrors/issues/105#issuecomment-306407470 https://github.com/manjaro/pacman-mirrors/issues/105#issuecomment-306401753
philm commented 2017-06-06 11:14:35 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

@udeved: OK, if that is the last missing step to have a proper API @fhdk might add that and give the changes for review. This also means, development for pacman-mirrors works. Hope we can accomplish that also for other projects we have. So far I like the changes made to pacman-mirrors over the last releases.

*Created by: philmmanjaro* @udeved: OK, if that is the last missing step to have a proper API @fhdk might add that and give the changes for review. This also means, development for **pacman-mirrors** works. Hope we can accomplish that also for other projects we have. So far I like the changes made to **pacman-mirrors** over the last releases.
philm commented 2017-06-06 17:31:37 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: fhdk

@philmmanjaro

The goal for this issue has been reached 🎉

~ >>> sudo pacman-mirrors -a -S unstable -U https://www.uex.dk/repos/manjaro -p /home/fh/atest-dir                                                  
.: Info Branch in config is changed
.: Info Writing mirrorlist
   BUILDMIRROR : https://www.uex.dk/repos/manjaro/unstable
.: Info Mirror list generated and saved to: /home/fh/atest-dir/etc/pacman.d/mirrorlist

~ >>> tree atest-dir                                                                                                                                
atest-dir
└── etc
    ├── pacman.d
    │   └── mirrorlist
    └── pacman-mirrors.conf

~ >>> cat atest-dir/etc/pacman-mirrors.conf                                                                                                         
##
## /etc/pacman-mirrors.conf
##

## Branch Pacman should use (stable, testing, unstable)
Branch = unstable

## Generation method
## 1) rank   - rank mirrors depending on their access time
## 2) random - randomly generate the output mirrorlist
# Method = rank

## Define protocols and priority
##   separated by comma 'https,http' or 'http,https'
## ATM available protocols are: http, https, ftp
## Not specifying a protocol will ban the protocol from being used
## If a mirror has more than one protocol defined only the first is written to the mirrorlist
## Empty means all in reversed alphabetic order
# Protocols =

## Specify to use only mirrors from a specific country.
## Can add multiple countries
##   separated by comma 'Germany,France,Belgium'
## Get a list of all available counties with 'pacman-mirrors -l'
## Empty means all
# OnlyCountry =

## When set to False - all certificates are accepted.
## Use only if you fully trust all ssl-enabled mirrors.
# SSLVerify = False

~ >>> cat atest-dir/etc/pacman.d/mirrorlist                                                                                                         
##
## Manjaro Linux mirrorlist
## Generated on 2017-06-06 18:43
##
## Use pacman-mirrors to modify
##

## Country : BUILDMIRROR
Server = https://www.uex.dk/repos/manjaro/unstable/$repo/$arch
*Created by: fhdk* @philmmanjaro The goal for this issue has been reached :tada: ``` ~ >>> sudo pacman-mirrors -a -S unstable -U https://www.uex.dk/repos/manjaro -p /home/fh/atest-dir .: Info Branch in config is changed .: Info Writing mirrorlist BUILDMIRROR : https://www.uex.dk/repos/manjaro/unstable .: Info Mirror list generated and saved to: /home/fh/atest-dir/etc/pacman.d/mirrorlist ~ >>> tree atest-dir atest-dir └── etc ├── pacman.d │ └── mirrorlist └── pacman-mirrors.conf ~ >>> cat atest-dir/etc/pacman-mirrors.conf ## ## /etc/pacman-mirrors.conf ## ## Branch Pacman should use (stable, testing, unstable) Branch = unstable ## Generation method ## 1) rank - rank mirrors depending on their access time ## 2) random - randomly generate the output mirrorlist # Method = rank ## Define protocols and priority ## separated by comma 'https,http' or 'http,https' ## ATM available protocols are: http, https, ftp ## Not specifying a protocol will ban the protocol from being used ## If a mirror has more than one protocol defined only the first is written to the mirrorlist ## Empty means all in reversed alphabetic order # Protocols = ## Specify to use only mirrors from a specific country. ## Can add multiple countries ## separated by comma 'Germany,France,Belgium' ## Get a list of all available counties with 'pacman-mirrors -l' ## Empty means all # OnlyCountry = ## When set to False - all certificates are accepted. ## Use only if you fully trust all ssl-enabled mirrors. # SSLVerify = False ~ >>> cat atest-dir/etc/pacman.d/mirrorlist ## ## Manjaro Linux mirrorlist ## Generated on 2017-06-06 18:43 ## ## Use pacman-mirrors to modify ## ## Country : BUILDMIRROR Server = https://www.uex.dk/repos/manjaro/unstable/$repo/$arch ```
philm commented 2017-06-06 20:14:37 +00:00 (Migrated from gitlab2.manjaro.org)

Created by: philmmanjaro

That is excellent news @fhdk. Lets test it for regressions and consider to release v4.2 when ready.

*Created by: philmmanjaro* That is excellent news @fhdk. Lets test it for regressions and consider to release **v4.2** when ready.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
applications/pacman-mirrors#105
No description provided.