Встречаем очередное кривое обновление - python-pillow-6.0.0-1-x86_64.pkg.tar.xz. После его установки перестает запускаться в частности панель управления Cinnamon (cinnamon-settings) с ошибкой:


Traceback (most recent call last):
  File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 619, in <module>
    window = MainWindow()
  File "/usr/share/cinnamon/cinnamon-settings/cinnamon-settings.py", line 247, in __init__
    for module in modules:
  File "/usr/share/cinnamon/cinnamon-settings/modules/cs_backgrounds.py", line 5, in <module>
    import imtools
  File "/usr/share/cinnamon/cinnamon-settings/bin/imtools.py", line 623, in <module>
    if Image.VERSION == '1.1.7':
AttributeError: module 'PIL.Image' has no attribute 'VERSION'

Откат до python-pillow-5.4.1-1-x86_64.pkg.tar.xz полностью решает данную проблему.

P.S. Если года три назад можно было сидеть на testing'е без особых проблем, то сейчас, если мне не изменяет склероз, это уже 5 косячное обновление с начала этого года в stable ветке. Есть ли у многоуважаемого All трезвые идеи, как с этим бороться?
Также можете взять оыициальный PKGBUILD https://git.archlinux.org/svntogit/packages.git/tree/trunk/PKGBUILD?h=packages/xfdesktop , положить его в любую пустую директорию, подправить номер версии на нужный и запустить makepkg -s . Все нужные для сборки зависимости подтянутся сами.
DuckHunt
К сожалению, уже удалил кэш
Заходите на https://archive.archlinux.org/packages/ и качаете любой нужный официальный пакет (для некоторых есть и трехлетней давности, для большинства срок хранения порядка двух лет).
А вот и релиз подоспел. Обновленный PKGBUILD (остальные файлы - без изменений):

pkgbase=samba
pkgname=('libwbclient' 'smbclient' 'samba')
pkgver=4.10.0
pkgrel=1
arch=(x86_64)
url="http://www.samba.org"
license=('GPL3')
makedepends=('python' 'docbook-xsl' 'pkg-config' 'libbsd' 'db' 'popt' 'libcups'
             'readline' 'tevent>=0.9.38' 'acl' 'libldap' 'libcap' 'ldb>=1.5.4' 'krb5' 'pam'
             'systemd' 'gamin' 'gnutls>=2.4.1' 'talloc>=2.1.15' 'tdb>=1.3.17' 'dbus' 'libaio'
             'perl-parse-yapp' 'libnsl' 'libtirpc' 'rpcsvc-proto' 'jansson')
source=("http://us1.samba.org/samba/ftp/stable/${pkgbase}-${pkgver}.tar.gz"
        'samba.logrotate'
        'samba.pam'
	'samba.conf')
md5sums=('SKIP' 'SKIP' 'SKIP' 'SKIP')

build() {
  # Use samba-pkg as a staging directory for the split packages
  # (This is so RPATHS and symlinks are generated correctly via
  # make install, but the otherwise unsplit pieces can be split)
  _pkgsrc=${srcdir}/samba-pkg
  rm -rf ${_pkgsrc}
  cd ${srcdir}/samba-${pkgver}

_samba4_idmap_modules=idmap_ad,idmap_rid,idmap_adex,idmap_hash,idmap_tdb2
_samba4_pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4
_samba4_auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4
 cd ${srcdir}/samba-${pkgver}
  ./configure --enable-fhs \
              --prefix=/usr \
              --sysconfdir=/etc \
              --sbindir=/usr/bin \
              --libdir=/usr/lib \
	      --libexecdir=/usr/lib/samba \
              --localstatedir=/var \
              --with-configdir=/etc/samba \
              --with-lockdir=/var/cache/samba \
              --with-sockets-dir=/var/run/samba \
              --with-piddir=/var/run/samba \
              --with-ads \
              --with-ldap \
              --with-winbind \
              --with-acl-support \
              --with-systemd \
              --systemd-install-services \
              --enable-gnutls \
              --with-pam \
              --with-pammodulesdir=/usr/lib/security \
              --bundled-libraries=!tdb,!talloc,!pytalloc-util,!tevent,!popt,!ldb,!pyldb-util \
              --with-shared-modules=${_samba4_idmap_modules},${_samba4_pdb_modules},${_samba4_auth_modules} \
              --disable-rpath-install

              # Add this to the options once it's working...
              #--with-system-mitkrb5 /opt/heimdal
  make
  make DESTDIR="${_pkgsrc}/" install

  # This gets skipped somehow
  if [ ! -e ${_pkgsrc}/usr/bin/smbtar ]; then
      install -m755 ${srcdir}/samba-${pkgver}/source3/script/smbtar ${_pkgsrc}/usr/bin/
  fi
}

package_libwbclient() {
pkgdesc="Samba winbind client library"
depends=('glibc' 'libbsd')
  # Use samba-pkg as a staging directory for the split packages
  # (This is so RPATHS and symlinks are generated correctly via
  # make install, but the otherwise unsplit pieces can be split)
  _pkgsrc=${srcdir}/samba-pkg
  install -d -m755 ${pkgdir}/usr/lib
  mv ${_pkgsrc}/usr/lib/libwbclient*.so* ${pkgdir}/usr/lib/

  install -d -m755 ${pkgdir}/usr/lib/samba
  mv ${_pkgsrc}/usr/lib/samba/libwinbind-client*.so* ${pkgdir}/usr/lib/samba/
  mv ${_pkgsrc}/usr/lib/samba/libreplace-samba4.so* ${pkgdir}/usr/lib/samba/

  install -d -m755 ${pkgdir}/usr/lib/pkgconfig
  mv ${_pkgsrc}/usr/lib/pkgconfig/wbclient.pc ${pkgdir}/usr/lib/pkgconfig/

  install -d -m755 ${pkgdir}/usr/include/samba-4.0
  mv ${_pkgsrc}/usr/include/samba-4.0/wbclient.h ${pkgdir}/usr/include/samba-4.0/
}

package_smbclient() {
pkgdesc="Tools to access a server's filespace and printers via SMB"
depends=('popt' 'cifs-utils' 'tdb' "libwbclient>=$pkgver" 'tevent>=0.9.38'
         'ldb>=1.5.4' 'libgcrypt' 'python' 'talloc>=2.1.15' 'readline' 'gnutls'
         'libbsd' 'libldap' 'libcups' 'gamin' 'libarchive' 'libnsl' 'jansson')

    _smbclient_bins=('smbclient' 'rpcclient' 'smbspool'
                     'smbtree' 'smbcacls' 'smbcquotas' 'smbget' 'net'
                     'nmblookup' 'smbtar')
    # Use samba-pkg as a staging directory for the split packages
    # (This is so RPATHS and symlinks are generated correctly via
    # make install, but the otherwise unsplit pieces can be split)
    _pkgsrc=${srcdir}/samba-pkg
    install -d -m755 ${pkgdir}/usr/bin
    for bin in ${_smbclient_bins[@]}; do
        mv ${_pkgsrc}/usr/bin/${bin} ${pkgdir}/usr/bin/
    done

    # smbclient binaries link to the majority of the samba
    # libs, so this is a shortcut instead of resolving the
    # whole dependency tree by hand
    install -d -m755 ${pkgdir}/usr/lib
    for lib in ${_pkgsrc}/usr/lib/lib*.so*; do
        mv ${lib} ${pkgdir}/usr/lib/
    done

    install -d -m755 ${pkgdir}/usr/lib/samba
    for lib in ${_pkgsrc}/usr/lib/samba/lib*.so*; do
        mv ${lib} ${pkgdir}/usr/lib/samba/
    done

    install -d -m755 ${pkgdir}/usr/lib/pkgconfig
    mv ${_pkgsrc}/usr/lib/pkgconfig/smbclient.pc ${pkgdir}/usr/lib/pkgconfig/
    mv ${_pkgsrc}/usr/lib/pkgconfig/netapi.pc ${pkgdir}/usr/lib/pkgconfig/

    install -d -m755 ${pkgdir}/usr/share/man/man1
    install -d -m755 ${pkgdir}/usr/share/man/man7
    install -d -m755 ${pkgdir}/usr/share/man/man8
    for bin in ${_smbclient_bins[@]}; do
        if [ -e ${_pkgsrc}/usr/share/man/man1/${bin}.1 ]; then
            mv ${_pkgsrc}/usr/share/man/man1/${bin}.1 ${pkgdir}/usr/share/man/man1/
        fi
        if [ -e ${_pkgsrc}/usr/share/man/man8/${bin}.8 ]; then
            mv ${_pkgsrc}/usr/share/man/man8/${bin}.8 ${pkgdir}/usr/share/man/man8/
        fi
    done
    mv ${_pkgsrc}/usr/share/man/man7/libsmbclient.7 ${pkgdir}/usr/share/man/man7/

    install -d -m755 ${pkgdir}/usr/include/samba-4.0
    mv ${_pkgsrc}/usr/include/samba-4.0/libsmbclient.h ${pkgdir}/usr/include/samba-4.0/
    mv ${_pkgsrc}/usr/include/samba-4.0/netapi.h ${pkgdir}/usr/include/samba-4.0/

    mkdir -p ${pkgdir}/usr/lib/cups/backend
    ln -sf /usr/bin/smbspool ${pkgdir}/usr/lib/cups/backend/smb
}

package_samba() {
pkgdesc="SMB Fileserver and AD Domain server"
depends=('db>=4.7' 'popt' 'libcups' 'libcap>=2.16' 'gamin' 'gnutls>=2.4.1'
         'talloc>=2.1.15' 'ldb>=1.5.4' 'libbsd' 'python' 'iniparser' 'tdb>=1.3.17'
         'libaio' 'perl-parse-yapp' "smbclient>=$pkgver" 'gpgme')
backup=(etc/logrotate.d/samba
        etc/pam.d/samba
        etc/samba/smb.conf
        etc/xinetd.d/swat
        etc/conf.d/samba)

    # Use samba-pkg as a staging directory for the split packages
    # (This is so RPATHS and symlinks are generated correctly via
    # make install, but the otherwise unsplit pieces can be split)
    _pkgsrc=${srcdir}/samba-pkg
    # Everything that libwbclient and smbclient didn't install goes
    # into the samba package...
    mv ${_pkgsrc}/* ${pkgdir}/
    rmdir ${_pkgsrc}

  # packaging/wscript_build to use /etc/conf.d
  sed -i -e '/^EnvironmentFile/ s/sysconfig/conf.d/' "${pkgdir}"/usr/lib/systemd/system/*.service
  install -d -m755  "${pkgdir}"/etc/conf.d
  install -m644 "${srcdir}"/samba-${pkgver}/packaging/systemd/samba.sysconfig "${pkgdir}"/etc/conf.d/samba

  # create ephemeral dirs via tmpfiles rather than shipping them in package
  install -D -m644 ${srcdir}/samba.conf ${pkgdir}/usr/lib/tmpfiles.d/samba.conf
  # create config dir
  install -d -m755 ${pkgdir}/etc/samba

  mkdir -p ${pkgdir}/etc/samba/private
  chmod 700 ${pkgdir}/etc/samba/private

  install -D -m644 ${srcdir}/samba.logrotate ${pkgdir}/etc/logrotate.d/samba
  install -D -m644 ${srcdir}/samba.pam ${pkgdir}/etc/pam.d/samba

  # spool directory
  install -d -m1777 ${pkgdir}/var/spool/samba

  rm -rf ${pkgdir}/var/run
  rm -rf ${pkgdir}/etc/sysconfig

  # copy ldap example
  install -D -m644 ${srcdir}/samba-${pkgver}/examples/LDAP/samba.schema ${pkgdir}/usr/share/doc/samba/examples/LDAP/samba.schema
}
vall
Кстати, не припомню проблем с пакетом vala (как зависимости) при сборке pamac-aur. Сегодня пакет обновился безо всяких проблем. Значит – как минимум – pamac-aur лучше синхронизирован с выходом стабильной версии пакета vala.

Хммм... Pamac-aur имеет (вернее - имел - см. два последних комментария) ровно те же проблемы при сборке при помощи vala 0.44.0. И патч для pamac-classic я тянул именно из Manjar'овского апстрима.

Почему именно pamac-classic? В моем случае это несколько факторов - он и легче (меньше зависимостей), UI и удобнее (например проверку обновлений можно запустить одним кликом мышки) и лучше сочетается с другими Gnome'вскими приложениями (в качестве DE я использую Cinnamon) и нет свистоперделок (те же темы оформления при определенных параметрах заметно снижают удобство восприятия интерфейса - с иконками Numix мне весьма сложно различить, какие пакеты установлены, а какие - нет). Сказать что он совсем "неканонический" - нельзя: это же вроде как форк pamac'а 5.x. Можно, конечно, собрать pamac 6-ой ветки и сидеть на нем, но, по большему счету, особого смысла в этом - не вижу.

По поводу же советов - мне вспоминается фраза капитана Барбоссы: "Кодекс - это свод указаний а не жестких законов" ;-) Вот, например, во всех руководствах по Arch'у рекомендуют чуть ли не в обязательном порядке хранить кэш пакетов локально. IMHO - глупость несусветная. Arch - это дистрибутив, предназначенный находиться online чуть ли не в режиме 24/7. Не завелся какой-нибудь пакет - ну стяни ты его старую версию с archive.archlinux.org, да поставь, нафига три гига мусора на диске хранить???
Сегодня вышла исправленная версия vala - 0.44.1. При ее использовании ошибок при сборке пакетов не возникает, дополнительные патчи - не нужны.
В общем ежели модератор посчитает это багом AUR'а - нехай сносит сообщения. По мне - однозначно баг vala, которая вроде как Extra. Патч для pamac-classic я сделал и выложил - авось sudoBash418 его включит в свой PKGBUILD.
2 vs220: Pamac-classic при попытке сборки vala 0.44.0 - вылетает с вышеупомянутой ошибкой, в то время как с 0.42.5 - не только нормально собирается, но также устанавливается и работает без ошибок. Уж не знаю насколько он по Вашему мнению устаревший - последний коммит сделан 9 месяцев назад. Когда Chris Cromer пофиксит его для совместимости с новой версией компилятора и пофиксит ли - мне лично неизвестно. А так - в трэде pamac-aur проблема со сборкой уже всплывала с одной из предыдущих версий и также лечилась откатом vala, так что по мне все-таки проблема именно в vala, а не в pamac'е (врать не буду - какой workaround применили в pamac'е - не разбирался).
Обновление vala до версии 0.44.0 - кривое. При попытке собрать с его помощью pamac и octopi (а возможно и другие пакеты) вылезают ошибки вида:

alpm_config.vala:149.3-149.30: error: Assignment: Cannot convert from Alpm.List<string>' toAlpm.List<weak string?>' handle.cachedirs = cachedirs;
Тема на форуме, посвященная данной проблеме.

Мне помог откат до версии 0.42.5.

2 vadik: Спасибо!
Вот здесь народ вроде как с такой же проблемой (хотя без dump'а определить невозможно, но уж больно симптомы хорошо коррелируют со временем). Вроде как помогает откат до glib2 v 2.58. Взять ее, как обычно, можно здесь.