summaryrefslogtreecommitdiffstats
path: root/abs/core
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core')
-rw-r--r--abs/core/LinHES-config/LinHES-release2
-rwxr-xr-xabs/core/LinHES-config/PKGBUILD16
-rwxr-xr-xabs/core/LinHES-config/mv_common.py4
-rwxr-xr-xabs/core/LinHES-config/mv_supplemental.py2
-rw-r--r--abs/core/LinHES-config/restore_km_db_chroot.sh2
-rwxr-xr-xabs/core/LinHES-config/soundconfig.sh4
-rwxr-xr-xabs/core/LinHES-config/startx2
-rwxr-xr-xabs/core/LinHES-config/xconfig.sh8
-rwxr-xr-xabs/core/LinHES-system/LinHES-session1
-rwxr-xr-xabs/core/LinHES-system/PKGBUILD19
-rwxr-xr-xabs/core/LinHES-system/enableIRWake.sh22
-rwxr-xr-xabs/core/LinHES-system/lh_system_backup_job11
-rw-r--r--abs/core/LinHES-system/lh_system_host_update4
-rw-r--r--abs/core/LinHES-system/linhes_update2.sh2
-rwxr-xr-xabs/core/LinHES-system/mythwelcome-set-alarm.sh11
-rw-r--r--abs/core/LinHES-system/system.install3
-rw-r--r--abs/core/LinHES-system/unclutter-toggle.sh5
-rw-r--r--abs/core/acl/PKGBUILD33
-rw-r--r--abs/core/argon2/PKGBUILD26
-rw-r--r--abs/core/argon2/argon2.install6
-rw-r--r--abs/core/argon2/libargon2.pc11
-rw-r--r--abs/core/attr/PKGBUILD40
-rw-r--r--abs/core/audit/PKGBUILD82
-rw-r--r--abs/core/bash/PKGBUILD48
-rw-r--r--abs/core/bc/PKGBUILD3
-rw-r--r--abs/core/bison/PKGBUILD31
-rw-r--r--abs/core/bison/bison.install16
-rw-r--r--abs/core/ca-certificates/40-update-ca-trust.hook (renamed from abs/core/ca-certificates/update-ca-trust.hook)2
-rw-r--r--abs/core/ca-certificates/PKGBUILD16
-rw-r--r--abs/core/cmake/PKGBUILD32
-rw-r--r--abs/core/cmake/cmake-3.10-boost-1.66-support.patch259
-rw-r--r--abs/core/cmake/cmake-cppflags.patch26
-rw-r--r--abs/core/cmake/rebuild.list3
-rw-r--r--abs/core/cryptsetup/PKGBUILD18
-rw-r--r--abs/core/cryptsetup/install-encrypt1
-rw-r--r--abs/core/cryptsetup/install-sd-encrypt4
-rw-r--r--abs/core/curl/0001-connection_check-restore-original-conn-data-after-th.patch77
-rw-r--r--abs/core/curl/0001-connection_check-set-data-to-the-transfer-doing-the-.patch31
-rw-r--r--abs/core/curl/0001-multi-remove-verbose-Expire-in-messages.patch26
-rw-r--r--abs/core/curl/0001-singlesocket-fix-the-sincebefore-placement.patch52
-rw-r--r--abs/core/curl/PKGBUILD32
-rw-r--r--abs/core/dbus/PKGBUILD92
-rw-r--r--abs/core/dbus/dbus-reload.hook13
-rw-r--r--abs/core/dbus/dbus.sysusers5
-rw-r--r--abs/core/dbus/no-fatal-warnings.diff13
-rw-r--r--abs/core/file/0001-Revert-Don-t-depend-on-the-execute-bit-to-determine-.patch30
-rw-r--r--abs/core/file/001-fix-bug-with-long-options.patch109
-rw-r--r--abs/core/file/PKGBUILD45
-rw-r--r--abs/core/file/file-5.38-seccomp-tcgets.patch28
-rw-r--r--abs/core/gawk/PKGBUILD23
-rw-r--r--abs/core/gcc/PKGBUILD181
-rw-r--r--abs/core/gcc/fs64270.patch26
-rw-r--r--abs/core/gcc/gdc_phobos_path.patch14
-rw-r--r--abs/core/gettext/PKGBUILD47
-rw-r--r--abs/core/glibc/PKGBUILD110
-rw-r--r--abs/core/glibc/bz20338.patch114
-rw-r--r--abs/core/glibc/bz26534.patch11
-rw-r--r--abs/core/glibc/sdt-config.h6
-rw-r--r--abs/core/glibc/sdt.h430
-rw-r--r--abs/core/gmp/PKGBUILD38
-rw-r--r--abs/core/gmp/gmp.install20
-rw-r--r--abs/core/gnupg/PKGBUILD42
-rw-r--r--abs/core/gnupg/avoid-beta-warning.patch56
-rw-r--r--abs/core/gnupg/do-not-rebuild-defsincdate.patch41
-rw-r--r--abs/core/gnupg/drop-import-clean.patch54
-rw-r--r--abs/core/gnupg/install10
-rw-r--r--abs/core/gnutls/PKGBUILD35
-rw-r--r--abs/core/gperf/PKGBUILD23
-rw-r--r--abs/core/gperf/gperf.install16
-rw-r--r--abs/core/gpgme/PKGBUILD88
-rw-r--r--abs/core/gpgme/gpgme.install18
-rw-r--r--abs/core/inetutils/PKGBUILD6
-rw-r--r--abs/core/json-c/PKGBUILD52
-rw-r--r--abs/core/keylaunch/PKGBUILD11
-rw-r--r--abs/core/keylaunch/example_rc3
-rw-r--r--abs/core/krb5/PKGBUILD6
-rw-r--r--abs/core/ldns/PKGBUILD16
-rw-r--r--abs/core/ldns/pc.patch60
-rw-r--r--abs/core/libaio/PKGBUILD36
-rw-r--r--abs/core/libarchive/0001-Limit-write-requests-to-at-most-INT_MAX.patch32
-rw-r--r--abs/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch29
-rw-r--r--abs/core/libarchive/PKGBUILD62
-rw-r--r--abs/core/libarchive/libarchive-3.1.2-acl.patch219
-rw-r--r--abs/core/libarchive/libarchive-3.1.2-sparce-mtree.patch478
-rw-r--r--abs/core/libcap/PKGBUILD59
-rw-r--r--abs/core/libcap/libcap-2.23-header.patch350
-rw-r--r--abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch31
-rw-r--r--abs/core/libevent/PKGBUILD36
-rw-r--r--abs/core/libnsl/PKGBUILD28
-rw-r--r--abs/core/libpcap/PKGBUILD62
-rw-r--r--abs/core/libpcap/libnl32.patch19
-rw-r--r--abs/core/libpcap/mgmt.h772
-rw-r--r--abs/core/libpciaccess/PKGBUILD23
-rw-r--r--abs/core/libseccomp/PKGBUILD51
-rw-r--r--abs/core/libtool/PKGBUILD39
-rw-r--r--abs/core/libtool/no_hostname.patch12
-rw-r--r--abs/core/libxcrypt/PKGBUILD39
-rw-r--r--abs/core/libxml2/PKGBUILD14
-rw-r--r--abs/core/libxml2/libxml2-2.9.8-python3-unicode-errors.patch34
-rwxr-xr-xabs/core/linhes-theme/PKGBUILD14
-rw-r--r--abs/core/linhes-theme/base.xml.patch11
-rw-r--r--abs/core/linhes-theme/osd.xml.patch418
-rw-r--r--abs/core/linhes-theme/recordings-ui.xml.patch21
-rw-r--r--abs/core/linhes-theme/standardsetting-ui.xml111
-rw-r--r--abs/core/linhes-theme/video-ui.xml.patch171
-rw-r--r--abs/core/lvm2/0001-fix-ordering-in-initramfs.patch21
-rw-r--r--abs/core/lvm2/PKGBUILD92
-rw-r--r--abs/core/lvm2/lvm2.install25
-rw-r--r--abs/core/lvm2/lvm2_install19
-rw-r--r--abs/core/lvm2/sd-lvm2_install17
-rw-r--r--abs/core/make/PKGBUILD40
-rw-r--r--abs/core/make/guile-2.2.patch15
-rw-r--r--abs/core/man-pages/PKGBUILD52
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/autocard.h2
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.cpp2
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.h2
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/fileshare.h15
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/infrared.h18
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/installationtype.cpp236
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/installationtype.h8
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/installsettings.cpp1871
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/installsettings.h239
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/main.cpp73
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/misc_settings.h48
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/mythinstall.pro23
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/password_manage.cpp18
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/password_manage.h45
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/settemplate.cpp22
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/settemplate.h4
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/supplemental.h10
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/vnc.cpp108
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/vnc.h13
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.cpp52
-rwxr-xr-xabs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.h66
-rw-r--r--abs/core/mythinstall/PKGBUILD2
-rw-r--r--abs/core/mythtv/stable-30/git_src/git_hash2
-rw-r--r--abs/core/mythtv/stable-30/git_src/git_hash_web2
-rw-r--r--abs/core/mythtv/stable-30/mythplugins/PKGBUILD2
-rw-r--r--abs/core/mythtv/stable-30/mythtv/PKGBUILD16
-rw-r--r--abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch60
-rw-r--r--abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch14
-rw-r--r--abs/core/mythtv/stable-30/mythtv/sortingPrefixesFixAn.patch12
-rw-r--r--abs/core/mythtv/stable-30/mythweb/PKGBUILD2
-rw-r--r--abs/core/ncurses/PKGBUILD26
-rw-r--r--abs/core/nettle/PKGBUILD13
-rw-r--r--abs/core/nettle/nettle.install20
-rw-r--r--abs/core/npth/PKGBUILD9
-rw-r--r--abs/core/openldap/PKGBUILD19
-rw-r--r--abs/core/openssh/PKGBUILD48
-rw-r--r--abs/core/openssh/glibc-2.31.patch100
-rw-r--r--abs/core/openssh/install32
-rw-r--r--abs/core/openssh/openssl-1.1.0.patch1982
-rw-r--r--abs/core/openssh/sshd.service3
-rw-r--r--abs/core/openssh/sshd.socket10
-rw-r--r--abs/core/openssh/sshd@.service9
-rw-r--r--abs/core/openvpn/PKGBUILD74
-rw-r--r--abs/core/p11-kit/PKGBUILD96
-rw-r--r--abs/core/p11-kit/libnssckbi-compat.patch57
-rw-r--r--abs/core/p11-kit/p11-kit.install23
-rw-r--r--abs/core/pacman/PKGBUILD67
-rw-r--r--abs/core/pacman/makepkg-asroot.patch13
-rw-r--r--abs/core/pacman/makepkg.conf42
-rw-r--r--abs/core/pacman/pacman.conf (renamed from abs/core/pacman/pacman.conf.x86_64)3
-rw-r--r--abs/core/pacman/pacman.conf.i68691
-rw-r--r--abs/core/pam/0e9b286afe1224b91ff00936058b084ad4b776e4.patch31
-rw-r--r--abs/core/pam/395915dae1571e10e2766c999974de864655ea3a.patch47
-rw-r--r--abs/core/pam/PKGBUILD78
-rw-r--r--abs/core/pam/af0faf666c5008e54dfe43684f210e3581ff1bca.patch85
-rw-r--r--abs/core/pam/pam.tmpfiles1
-rw-r--r--abs/core/pam/pam_unix2-glibc216.patch20
-rw-r--r--abs/core/pambase/PKGBUILD13
-rw-r--r--abs/core/pambase/other12
-rw-r--r--abs/core/pambase/system-auth32
-rw-r--r--abs/core/pambase/system-login3
-rw-r--r--abs/core/parted/PKGBUILD36
-rw-r--r--abs/core/parted/parted-735669-fat16-crash-v1.patch193
-rw-r--r--abs/core/pcre/PKGBUILD9
-rw-r--r--abs/core/pcre2/PKGBUILD11
-rw-r--r--abs/core/perl_modules/perl-authen-pam/PKGBUILD45
-rw-r--r--abs/core/perl_modules/perl-encode-detect/PKGBUILD38
-rw-r--r--abs/core/pkcs11-helper/PKGBUILD34
-rw-r--r--abs/core/python/PKGBUILD104
-rw-r--r--abs/core/python/dont-make-libpython-readonly.patch13
-rwxr-xr-xabs/core/python/genrebuild7
-rw-r--r--abs/core/python2/PKGBUILD34
-rw-r--r--abs/core/python2/descr_ref.patch58
-rw-r--r--abs/core/python2/fix-profile-task.patch13
-rw-r--r--abs/core/python2/mtime-workaround.patch10
-rw-r--r--abs/core/python_modules/cython/PKGBUILD20
-rw-r--r--abs/core/python_modules/docutils/PKGBUILD9
-rw-r--r--abs/core/python_modules/python-acme/PKGBUILD30
-rw-r--r--abs/core/python_modules/python-appdirs/PKGBUILD7
-rw-r--r--abs/core/python_modules/python-babel/PKGBUILD54
-rw-r--r--abs/core/python_modules/python-babel/python-3.9.patch202
-rw-r--r--abs/core/python_modules/python-beautifulsoup4/PKGBUILD17
-rw-r--r--abs/core/python_modules/python-chardet/PKGBUILD3
-rw-r--r--abs/core/python_modules/python-configargparse/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-configobj/PKGBUILD34
-rw-r--r--abs/core/python_modules/python-future/PKGBUILD50
-rw-r--r--abs/core/python_modules/python-html5lib/PKGBUILD33
-rw-r--r--abs/core/python_modules/python-idna/PKGBUILD8
-rw-r--r--abs/core/python_modules/python-imagesize/PKGBUILD34
-rw-r--r--abs/core/python_modules/python-jinja/PKGBUILD48
-rw-r--r--abs/core/python_modules/python-josepy/PKGBUILD58
-rw-r--r--abs/core/python_modules/python-lxml/PKGBUILD20
-rw-r--r--abs/core/python_modules/python-markupsafe/PKGBUILD39
-rw-r--r--abs/core/python_modules/python-mysqlclient/PKGBUILD26
-rw-r--r--abs/core/python_modules/python-ordered-set/PKGBUILD33
-rw-r--r--abs/core/python_modules/python-packaging/PKGBUILD34
-rw-r--r--abs/core/python_modules/python-parsedatetime/PKGBUILD34
-rw-r--r--abs/core/python_modules/python-psutil/PKGBUILD21
-rw-r--r--abs/core/python_modules/python-pygments/PKGBUILD60
-rw-r--r--abs/core/python_modules/python-pygments/python2-pygments.install7
-rw-r--r--abs/core/python_modules/python-pyparsing/PKGBUILD34
-rw-r--r--abs/core/python_modules/python-pyrfc3339/LICENSE.txt (renamed from abs/core/python_modules/python-html5lib/LICENSE)2
-rw-r--r--abs/core/python_modules/python-pyrfc3339/PKGBUILD52
-rw-r--r--abs/core/python_modules/python-pytest-runner/PKGBUILD31
-rw-r--r--abs/core/python_modules/python-pytz/0001-Use-the-system-zoneinfo-from-the-tzdata-package.patch69
-rw-r--r--abs/core/python_modules/python-pytz/PKGBUILD40
-rw-r--r--abs/core/python_modules/python-requests-toolbelt/PKGBUILD50
-rw-r--r--abs/core/python_modules/python-requests/PKGBUILD18
-rw-r--r--abs/core/python_modules/python-setuptools/PKGBUILD90
-rw-r--r--abs/core/python_modules/python-simplejson/PKGBUILD5
-rw-r--r--abs/core/python_modules/python-six/PKGBUILD13
-rw-r--r--abs/core/python_modules/python-snowballstemmer/PKGBUILD49
-rw-r--r--abs/core/python_modules/python-soupsieve/PKGBUILD31
-rw-r--r--abs/core/python_modules/python-sphinx-alabaster-theme/PKGBUILD25
-rw-r--r--abs/core/python_modules/python-sphinx/PKGBUILD173
-rw-r--r--abs/core/python_modules/python-sphinxcontrib-applehelp/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-sphinxcontrib-devhelp/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-sphinxcontrib-htmlhelp/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-sphinxcontrib-jsmath/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-sphinxcontrib-qthelp/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-sphinxcontrib-serializinghtml/PKGBUILD32
-rw-r--r--abs/core/python_modules/python-urllib3/PKGBUILD33
-rw-r--r--abs/core/python_modules/python-urllib3/tornado-4.3.patch23
-rw-r--r--abs/core/python_modules/python-zope-component/PKGBUILD61
-rw-r--r--abs/core/python_modules/python-zope-deferredimport/PKGBUILD51
-rw-r--r--abs/core/python_modules/python-zope-deprecation/PKGBUILD50
-rw-r--r--abs/core/python_modules/python-zope-event/PKGBUILD49
-rw-r--r--abs/core/python_modules/python-zope-hookable/PKGBUILD50
-rw-r--r--abs/core/python_modules/python-zope-proxy/PKGBUILD51
-rw-r--r--abs/core/python_modules/python2-backports.functools_lru_cache/PKGBUILD38
-rw-r--r--abs/core/python_modules/python2-backports/PKGBUILD25
-rw-r--r--abs/core/python_modules/python2-futures/PKGBUILD7
-rw-r--r--abs/core/python_modules/python2-soupsieve/PKGBUILD31
-rw-r--r--abs/core/readline/PKGBUILD17
-rwxr-xr-xabs/core/runit-scripts/PKGBUILD4
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/alsa-utils/run1
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/apcupsd/run2
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/autofs/run2
-rw-r--r--abs/core/runit-scripts/runitscripts/services/certmaster/run1
-rw-r--r--abs/core/runit-scripts/runitscripts/services/irexec/run2
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/mysql/run1
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/plexmediaserver/run3
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/remotes/run22
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/rpcbind/run2
-rwxr-xr-xabs/core/runit-scripts/runitscripts/services/rslsync/run21
-rw-r--r--abs/core/sed/PKGBUILD49
-rw-r--r--abs/core/sed/sed.install20
-rw-r--r--abs/core/shadow/PKGBUILD75
-rw-r--r--abs/core/shadow/lastlog.tmpfiles1
-rw-r--r--abs/core/shadow/login.defs9
-rw-r--r--abs/core/shadow/shadow-strncpy-usage.patch25
-rwxr-xr-xabs/core/shadow/shadow.cron.daily6
-rw-r--r--abs/core/shadow/shadow.install27
-rw-r--r--abs/core/shadow/shadow.service11
-rw-r--r--abs/core/shadow/shadow.timer7
-rw-r--r--abs/core/shadow/useradd.defaults2
-rw-r--r--abs/core/shadow/xstrdup.patch9
-rw-r--r--abs/core/systemd/0001-Use-Arch-Linux-device-access-groups.patch67
-rw-r--r--abs/core/systemd/20-systemd-sysusers.hook10
-rw-r--r--abs/core/systemd/30-systemd-binfmt.hook10
-rw-r--r--abs/core/systemd/30-systemd-catalog.hook11
-rw-r--r--abs/core/systemd/30-systemd-daemon-reload.hook11
-rw-r--r--abs/core/systemd/30-systemd-hwdb.hook (renamed from abs/core/systemd/systemd-hwdb.hook)4
-rw-r--r--abs/core/systemd/30-systemd-sysctl.hook10
-rw-r--r--abs/core/systemd/30-systemd-tmpfiles.hook (renamed from abs/core/systemd/systemd-tmpfiles.hook)5
-rw-r--r--abs/core/systemd/30-systemd-udev-reload.hook11
-rw-r--r--abs/core/systemd/30-systemd-update.hook (renamed from abs/core/systemd/systemd-update.hook)4
-rw-r--r--abs/core/systemd/PKGBUILD313
-rw-r--r--abs/core/systemd/__changelog6
-rw-r--r--abs/core/systemd/initcpio-install-systemd25
-rw-r--r--abs/core/systemd/systemd-hook37
-rw-r--r--abs/core/systemd/systemd-sysusers.hook11
-rw-r--r--abs/core/systemd/systemd.install10
-rw-r--r--abs/core/tzdata/PKGBUILD49
-rw-r--r--abs/core/util-linux/PKGBUILD104
-rw-r--r--abs/core/util-linux/pam-runuser4
-rw-r--r--abs/core/wget/PKGBUILD4
-rw-r--r--abs/core/xfsprogs/PKGBUILD26
-rw-r--r--abs/core/xmltv/PKGBUILD4
-rwxr-xr-xabs/core/xymon/PKGBUILD6
-rwxr-xr-xabs/core/xymon/hbnotes.py4
-rw-r--r--abs/core/zstd/PKGBUILD36
295 files changed, 8005 insertions, 8340 deletions
diff --git a/abs/core/LinHES-config/LinHES-release b/abs/core/LinHES-config/LinHES-release
index 203aeb3..d4af965 100644
--- a/abs/core/LinHES-config/LinHES-release
+++ b/abs/core/LinHES-config/LinHES-release
@@ -1 +1 @@
-LinHES R8.6.0 (Feeding the Kids)
+LinHES R8.6.1 (Feeding the Kids)
diff --git a/abs/core/LinHES-config/PKGBUILD b/abs/core/LinHES-config/PKGBUILD
index 28fa7e3..eb0ed8c 100755
--- a/abs/core/LinHES-config/PKGBUILD
+++ b/abs/core/LinHES-config/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-config
-pkgver=8.6.0
-pkgrel=2
+pkgver=8.7.0
+pkgrel=1
conflicts=(MythVantage-config MythVantage-config-dev LinHES-config-dev LinHes-config )
pkgdesc="Install and configure your system"
depends=('bc' 'libstatgrab' 'mysql-python' 'expect' 'curl' 'dnsutils' 'parted'
@@ -156,22 +156,22 @@ md5sums=('49952a2375b8ee53d8673473f22f8d12'
'27e4fcacca9b9662dd782fbdc92fceea'
'2a7f3b34e522acfd08283b86c8926aba'
'da60447a2a5fe0e6f5aaed2e677281ef'
- '29558e4560a305239ae126880b3af810'
+ 'cf5164ae463a585897c7a1bfa1dc19d2'
'f0376c98a7986897406d393186c0365e'
'157e73d0f90d7b306aba8f5921aeedd3'
- '1f58c0393a131f4a8f9a84b3fe08a7e4'
- '4dd17c4e1ad6047872fab3a37e9997ed'
+ 'e6db15d2e088e07af7a7922207380e5e'
+ 'b38d98bed2d0532a3a2c96d04681941e'
'5f890ea9bda6aef652d2560ca19dac07'
'ab2aa42c2947148c2b1cac0ade6d1d55'
'd429b59d3cfb37b0624c6a4a71a7c2c0'
'f6a935c35123fdc7c259c01cbc794a64'
'ccf7b6a8d0ccf2360a57384b45437e58'
'd3490e93f313bbbcbc6c3693c56b9c17'
- 'e959df98947eb0d2ea64ff616b61aab5'
+ '4fbc72a9cf9e9351a76fd530f90794b2'
'2506860a416e1988934225d80d501c2c'
'3ff600acf742700bb55b719dab863d15'
'f57200b66b6cf384f2c784b3e4303503'
- 'b3505d27b65a4d35e252e2d256909e80'
+ '82f41e33377ccc4ab35dcbaabd5d2aab'
'b845de3e05c1734cce4b9ac5e8f1baaf'
'02b4378b17bca6bebdcc2258a80dfc6b'
'8b7dce4a3a0a281fa6656aa8781a648e'
@@ -181,7 +181,7 @@ md5sums=('49952a2375b8ee53d8673473f22f8d12'
'336f08aed2e3c0b9fd09563933d54735'
'68ca2af6fb9dba32ed668b9ae1564a01'
'8be8ce5f1d8522b1cde12d34840865c2'
- '80685e047993b00161be29e3580f3a40'
+ '2a9742d4b0b94ece2e81c9204883eb6f'
'0e1c98392887b6efcb3f8b04ead7c4f9'
'3d84d2b508a73733e8d593e551b21081'
'781f161a79c3188a31c8615b8258b241'
diff --git a/abs/core/LinHES-config/mv_common.py b/abs/core/LinHES-config/mv_common.py
index 367a067..fd97741 100755
--- a/abs/core/LinHES-config/mv_common.py
+++ b/abs/core/LinHES-config/mv_common.py
@@ -236,7 +236,7 @@ def pacinstall(pkg):
elif pkg == "xymonclient":
if os.path.exists('/home/xymon/client'):
- cmd='''pacman --noconfirm --dbonly -Sdd --force xymonclient'''
+ cmd='''pacman --noconfirm --dbonly -Sdd xymonclient'''
runcmd(cmd)
if not pkg_blacklist_check(pkg):
@@ -244,7 +244,7 @@ def pacinstall(pkg):
logging.info(" %s is already installed, will not install",pkg)
else:
logging.info(" Installing %s",pkg)
- cmd ='''pacman --noconfirm -S --force %s ''' %pkg
+ cmd ='''pacman --noconfirm -S %s ''' %pkg
runcmd(cmd)
else:
logging.info(" %s is blacklisted, will not install",pkg)
diff --git a/abs/core/LinHES-config/mv_supplemental.py b/abs/core/LinHES-config/mv_supplemental.py
index 50a6c1a..54cbfaa 100755
--- a/abs/core/LinHES-config/mv_supplemental.py
+++ b/abs/core/LinHES-config/mv_supplemental.py
@@ -46,7 +46,7 @@ def supplemental(systemconfig,this_is_install = False):
logging.info(" Installing supplemental system\n")
if this_is_install == True:
if os.path.exists('/home/xymon/server'):
- cmd='''pacman --noconfirm --dbonly -Sdd --force xymonserver'''
+ cmd='''pacman --noconfirm --dbonly -Sdd xymonserver'''
mv_common.runcmd(cmd)
cmd='''/usr/LH/bin/install_supplemental_service.sh'''
diff --git a/abs/core/LinHES-config/restore_km_db_chroot.sh b/abs/core/LinHES-config/restore_km_db_chroot.sh
index 132dae3..170dd9e 100644
--- a/abs/core/LinHES-config/restore_km_db_chroot.sh
+++ b/abs/core/LinHES-config/restore_km_db_chroot.sh
@@ -11,7 +11,7 @@ DBFILE=$1
if [ $SystemType = "Master_backend" -o $SystemType = "Standalone" ]
then
#restore database
- pacman --noconfirm -S --force mysql
+ pacman --noconfirm -S mysql
status=1
mysqlstatus=1
while [ ! $status = 0 ]
diff --git a/abs/core/LinHES-config/soundconfig.sh b/abs/core/LinHES-config/soundconfig.sh
index e6aaa41..3376ca5 100755
--- a/abs/core/LinHES-config/soundconfig.sh
+++ b/abs/core/LinHES-config/soundconfig.sh
@@ -64,12 +64,12 @@ function installOSS {
pacman -Q oss 2>/dev/null
if [ ! $? = 0 ]
then
- pacman --noconfirm -S --force oss
+ pacman --noconfirm -S oss
fi
soundon
if [ ! $? = 0 ]
then
- pacman --noconfirm -S --force gcc make binutils
+ pacman --noconfirm -S gcc make binutils
soundon
fi
add_service.sh oss
diff --git a/abs/core/LinHES-config/startx b/abs/core/LinHES-config/startx
index b59dc7f..75befdc 100755
--- a/abs/core/LinHES-config/startx
+++ b/abs/core/LinHES-config/startx
@@ -18,7 +18,7 @@ then
startx /root/live-install.sh -- -logverbose 6 -config /root/xorg.conf.install -allowMouseOpenFail
else
#VNC
- pacman -S --force --noconfirm tightvnc
+ pacman -S --noconfirm tightvnc
cd /root
mkdir .vnc
echo mythvantage |vncpasswd -f > /root/.vnc/passwd
diff --git a/abs/core/LinHES-config/xconfig.sh b/abs/core/LinHES-config/xconfig.sh
index f730f95..3bd7d25 100755
--- a/abs/core/LinHES-config/xconfig.sh
+++ b/abs/core/LinHES-config/xconfig.sh
@@ -16,15 +16,15 @@ echo -e "\n\n-------------------------------------------------------------------
echo -e `date`"\n" >> $LOGFILE 2>&1
#libxnvctrl is needed as a dep of mythtv so must be installed for every driver
-ATI_PKGS="xf86-video-ati libglvnd libxnvctrl"
-INTEL_PKGS="xf86-video-intel libglvnd libxnvctrl"
+ATI_PKGS="xf86-video-ati libva-mesa-driver libva-utils libglvnd libxnvctrl"
+INTEL_PKGS="xf86-video-intel libva-intel-driver libva-utils libglvnd libxnvctrl"
NVIDIA_PKGS="nvidia nvidia-utils opencl-nvidia nvidia-settings libglvnd libxnvctrl"
NVIDIA_390xx_PKGS="nvidia-390xx nvidia-390xx-utils opencl-nvidia-390xx nvidia-390xx-settings libglvnd libxnvctrl-390xx"
NVIDIA_340xx_PKGS="nvidia-340xx nvidia-340xx-utils opencl-nvidia-340xx nvidia-340xx-settings libglvnd libxnvctrl-340xx"
NVIDIA_304xx_PKGS="nvidia-304xx nvidia-304xx-utils opencl-nvidia-304xx libglvnd libxnvctrl-340xx"
NVIDIA_ALL_PKGS=`echo $NVIDIA_PKGS $NVIDIA_390xx_PKGS $NVIDIA_340xx_PKGS $NVIDIA_304xx_PKGS|xargs -n1|sort -u`
VESA_PKGS="xf86-video-vesa libglvnd libxnvctrl"
-VMWARE_PKGS="xf86-input-vmmouse xf86-video-vmware xf86-video-vesa svga-dri libglvnd libxnvctrl"
+VMWARE_PKGS="xf86-input-vmmouse xf86-video-vmware xf86-video-vesa libglvnd libxnvctrl"
for i in ati intel mga savage sis unichrome vmware
do
@@ -38,7 +38,7 @@ MYTH_RUN_STATUS="1"
NVIDIA_304xx_SUPPORTED="$TEMPLATES/xorg/304xx_supported.txt"
NVIDIA_340xx_SUPPORTED="$TEMPLATES/xorg/340xx_supported.txt"
-NVIDIA_390xx_SUPPORTED="$TEMPLATES/xorg/340xx_supported.txt"
+NVIDIA_390xx_SUPPORTED="$TEMPLATES/xorg/390xx_supported.txt"
NVIDIA_SUPPORTED="$TEMPLATES/xorg/nvidia_supported.txt"
NVIDIA_DISABLE_MSI="$TEMPLATES/xorg/nvidia_disable_msi.txt"
NVIDIA_MSI_MODPROBE="$BASE/etc/modprobe.d/nvidia_msi.conf"
diff --git a/abs/core/LinHES-system/LinHES-session b/abs/core/LinHES-system/LinHES-session
index 7960bf5..bf71980 100755
--- a/abs/core/LinHES-system/LinHES-session
+++ b/abs/core/LinHES-system/LinHES-session
@@ -411,6 +411,7 @@ fi
# this is done so that starting mythtv can loop.
$WM &
pid=$!
+/usr/LH/bin/enableIRWake.sh &
mouse_move
keylaunch
unclutter
diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD
index a236769..2b769d3 100755
--- a/abs/core/LinHES-system/PKGBUILD
+++ b/abs/core/LinHES-system/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=LinHES-system
-pkgver=8.6.0
-pkgrel=1
+pkgver=8.7.0
+pkgrel=2
arch=('x86_64')
install=system.install
pkgdesc="Everything that makes LinHES an automated system"
@@ -17,7 +17,7 @@ binfiles="LinHES-start optimize_mythdb.py myth_mtc.py
mythfrontend-start set_windowmanager.sh myth_status.py myth_status.sh
install_supplemental_service.sh get_airplay_key importfiles.sh
lh_system_backup lh_system_backup_job lh_system_restore lh_system_restore_job
- lh_system_host_update lh_system_all_host_update
+ lh_system_host_update lh_system_all_host_update enableIRWake.sh
add_storage.py balance_storage_groups.py empty_storage_groups.py
remove_storage.py diskspace.sh cacheclean lh_backend_control.sh
create_media_dirs.sh msg_client.py msg_daemon.py mythvidexport.py
@@ -80,14 +80,14 @@ package() {
}
-md5sums=('c6e6b83a1f4c35ef4501e277657ab2ac'
+md5sums=('9e941d6c6d4edd56f1a89a7ab566763c'
'ad5e144999b6f37931dea799c2761c7e'
'de32a1c50101265dd7f6ca5037f7a26a'
'2d7b8414ddce5f401331342ac1529c22'
'76b2637cac0452b3acdbeeb4e8a5474b'
'2ee4c6b06d40f2f6058e480d231f60b2'
'dc3eef2a624754e16805d72bbe488b67'
- '617af86b901538817ebdcaf646248dc5'
+ '44c28873afa1d233f0051b52d5071a29'
'542e670e78d117657f93141e9689f54d'
'8da6a7f1703a002f84e66629e847d8a6'
'bb72ab230c7a71706285bd0f31a4fb1f'
@@ -97,11 +97,12 @@ md5sums=('c6e6b83a1f4c35ef4501e277657ab2ac'
'33fbebbd546672cedd3c5e7350ab414e'
'c773d8caacba8fbd4968e8afe5137bc6'
'3edef50a49a47694bf8add39cc160add'
- '01cbbf411d2a585feb71f2881755e5d8'
+ '88c9c36430875f9530edb79e11dc770a'
'f421f670a9c74724037f70d1dabcad00'
'eab2d188992b1ac561e0ba968544d7a3'
- '74e17d6f7453c52d56fecaed5c3f6ad5'
+ '5d3c7660510911b718f9839e36320e1c'
'47e093e8cfe4b5b96602358e1f540832'
+ '4cc3401a94500fad269b25c60d99cc4d'
'727a886a1ba237906f48cda2e4e7844b'
'0c81e5cad656f6260e39cd7585b1421a'
'e5bb027c54a2727d0bcf8d6fb357ba32'
@@ -132,12 +133,12 @@ md5sums=('c6e6b83a1f4c35ef4501e277657ab2ac'
'a8bbc553cd784ebed2197b96b60addc8'
'a94fe6d980f4b810f2e2ae5352084b39'
'0d1632ea63d8145c173c6aecf0b007f0'
- 'ff689f2e9572a78d88384b2e5774f579'
+ '09b650eceb0b80bb747c5f7650ae2abc'
'a811c5c01cc127ef403a24c941e03c66'
'4a1fda884dcd7d65fb2690fbdbd92a83'
'29f451783db3220b612e00c29e3ded73'
'7fe42dfc99af42a45440c9c3954c3c19'
- '411b2c22c66833cc8e85021992409f1f'
+ 'cc9627eb979b154aa1e31d33cb61afb2'
'410795ef9039e4c6c0484e706ecfd567'
'eb879fee9603a05d5420d4ce8ed9e450'
'02c810c2f47b7c4495fdacaf54189473'
diff --git a/abs/core/LinHES-system/enableIRWake.sh b/abs/core/LinHES-system/enableIRWake.sh
new file mode 100755
index 0000000..5b971b7
--- /dev/null
+++ b/abs/core/LinHES-system/enableIRWake.sh
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+for vendProdID in `lsusb | sed -e 's/.*ID \([a-f0-9]\+:[a-f0-9]\+\).*/\1/g'`
+do
+ foundRemote=`grep -i "$vendProdID" /usr/MythVantage/templates/remotes/receiver_usb.id`
+ if [[ $? = 0 ]]
+ then
+ #echo Found: $foundRemote
+ vendID=`echo $vendProdID | cut -d":" -f1`
+ prodID=`echo $vendProdID | cut -d":" -f2`
+ for usbDevice in `grep . /sys/bus/usb/devices/*/power/wakeup | cut -d"/" -f6`
+ do
+ foundVendID=`cat /sys/bus/usb/devices/$usbDevice/idVendor`
+ foundProdID=`cat /sys/bus/usb/devices/$usbDevice/idProduct`
+ if [[ $foundVendID == $vendID && $foundProdID == $prodID ]]
+ then
+ echo "Enable wake for $foundRemote on $usbDevice"
+ sudo sh -c "echo 'enabled' > /sys/bus/usb/devices/$usbDevice/power/wakeup"
+ fi
+ done
+ fi
+done
diff --git a/abs/core/LinHES-system/lh_system_backup_job b/abs/core/LinHES-system/lh_system_backup_job
index 8539ff2..e248e1a 100755
--- a/abs/core/LinHES-system/lh_system_backup_job
+++ b/abs/core/LinHES-system/lh_system_backup_job
@@ -117,7 +117,16 @@ function backup(){
done
echo "Backup home dirs"
- tar -zcf $BACKUPDIR/$DATE/home_dir.tar.gz -X $MYTHHOME/backup_config/backup_exclude.txt $MYTHHOME /home/vncsvc /home/xymon
+ HOMEDIRS=""
+ if [ -d /home/vncsvc ]
+ then
+ HOMEDIRS="/home/vncsvc"
+ fi
+ if [ -d /home/xymon ]
+ then
+ HOMEDIRS="$HOMEDIRS /home/xymon"
+ fi
+ tar -zcf $BACKUPDIR/$DATE/home_dir.tar.gz -X $MYTHHOME/backup_config/backup_exclude.txt $MYTHHOME $HOMEDIRS
if [ -f $MYTHHOME/backup_config/backup_include.txt ]
then
diff --git a/abs/core/LinHES-system/lh_system_host_update b/abs/core/LinHES-system/lh_system_host_update
index 0a63e0a..0d785eb 100644
--- a/abs/core/LinHES-system/lh_system_host_update
+++ b/abs/core/LinHES-system/lh_system_host_update
@@ -1,6 +1,6 @@
#!/bin/bash
# Process that call this script
-# func update
+# func update
# supplemental web
echo "Starting Update"
@@ -42,7 +42,7 @@ case $Hostupdateplan in
echo ""
echo "Updating ALL packages"
pacman -Sy
- pacman --noconfirm -Su --force
+ pacman --noconfirm -Su
;;
"None")
echo ""
diff --git a/abs/core/LinHES-system/linhes_update2.sh b/abs/core/LinHES-system/linhes_update2.sh
index 6c249d3..aa6bc96 100644
--- a/abs/core/LinHES-system/linhes_update2.sh
+++ b/abs/core/LinHES-system/linhes_update2.sh
@@ -4,7 +4,7 @@
if [[ "$1" = "install" ]]
then
msg_client.py --msg "Updating...|middle" --timeout 600 --tag "Updating"
- sudo pacman -Su --force --noconfirm
+ sudo pacman -Su --noconfirm
msg_client.py --clear --tag "Updating"
msg_client.py --kill
msg_client.py --msg "Updates complete.\nReturning to Main Menu.|middle"
diff --git a/abs/core/LinHES-system/mythwelcome-set-alarm.sh b/abs/core/LinHES-system/mythwelcome-set-alarm.sh
index 7b10372..ebb81ef 100755
--- a/abs/core/LinHES-system/mythwelcome-set-alarm.sh
+++ b/abs/core/LinHES-system/mythwelcome-set-alarm.sh
@@ -21,3 +21,14 @@
echo 0 > /sys/class/rtc/rtc0/wakealarm #this clears your alarm
echo $1 > /sys/class/rtc/rtc0/wakealarm #this writes your alarm
cat /proc/driver/rtc > /var/log/wake_alarm
+
+#allows the user to execute additional commands
+userCmds=/home/mythtv/mythwelcome-set-alarm-user.sh
+if [[ -f "$userCmds" ]]
+then
+ sh $userCmds $1
+else
+ echo "#!/bin/sh" > $userCmds
+ chmod a+x $userCmds
+ chown mythtv:mythtv $userCmds
+fi
diff --git a/abs/core/LinHES-system/system.install b/abs/core/LinHES-system/system.install
index 558a52a..e0fe68b 100644
--- a/abs/core/LinHES-system/system.install
+++ b/abs/core/LinHES-system/system.install
@@ -13,9 +13,6 @@ post_install() {
rm -f /etc/cron.daily/myth_mtc
fi
- #run mythwelcome-config.py to update shutdown check to use idle.py
- /usr/LH/bin/mythwelcome-config.py
-
sv restart msg_daemon
}
diff --git a/abs/core/LinHES-system/unclutter-toggle.sh b/abs/core/LinHES-system/unclutter-toggle.sh
index 9b08a14..b3901ca 100644
--- a/abs/core/LinHES-system/unclutter-toggle.sh
+++ b/abs/core/LinHES-system/unclutter-toggle.sh
@@ -1,7 +1,8 @@
#!/bin/bash
PIDUNC=`pidof unclutter`
-jitter=200
-idle=1
+jitter=50
+idle=10
+# unclutter.cfg allows the user to set idle and jitter to their own preference
. /etc/unclutter.cfg
if [ -n "${PIDUNC}" ];
then
diff --git a/abs/core/acl/PKGBUILD b/abs/core/acl/PKGBUILD
index 0ea2843..2e43da2 100644
--- a/abs/core/acl/PKGBUILD
+++ b/abs/core/acl/PKGBUILD
@@ -1,29 +1,34 @@
-# $Id$
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=acl
-pkgver=2.2.52
-pkgrel=2
-pkgdesc="Access control list utilities, libraries and headers"
-arch=('i686' 'x86_64')
-url="http://savannah.nongnu.org/projects/acl"
+pkgver=2.2.53
+pkgrel=3
+pkgdesc='Access control list utilities, libraries and headers'
+arch=('x86_64')
+url='https://savannah.nongnu.org/projects/acl'
license=('LGPL')
-depends=('attr>=2.4.46')
+depends=('attr' 'libattr.so')
replaces=('xfsacl')
-provides=('xfsacl')
+provides=('xfsacl' 'libacl.so')
conflicts=('xfsacl')
-source=("http://download.savannah.gnu.org/releases/$pkgname/$pkgname-$pkgver.src.tar.gz"{,.sig})
-sha256sums=('179074bb0580c06c4b4137be4c5a92a701583277967acdb5546043c7874e0d23'
+validpgpkeys=('600CD204FBCEA418BD2CA74F154343260542DF34' # Brandon Philips <brandon@ifup.co>
+ 'B902B5271325F892AC251AD441633B9FE837F581') # Frysinger <vapier@gentoo.org>
+source=("https://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig})
+sha256sums=('06be9865c6f418d851ff4494e12406568353b891ffe1f596b34693c387af26c7'
'SKIP')
build() {
- cd "$pkgname-$pkgver"
+ cd $pkgname-$pkgver
- export INSTALL_USER=root INSTALL_GROUP=root
- ./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
+ ./configure \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --prefix=/usr
make
}
package() {
- make -C "$pkgname-$pkgver" DIST_ROOT="$pkgdir" install install-lib install-dev
+ cd $pkgname-$pkgver
+
+ make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/argon2/PKGBUILD b/abs/core/argon2/PKGBUILD
index 531ccfb..928c432 100644
--- a/abs/core/argon2/PKGBUILD
+++ b/abs/core/argon2/PKGBUILD
@@ -1,47 +1,35 @@
# Maintainer: Baptiste Jonglez <baptiste--aur at jonglez dot org>
pkgname=argon2
-pkgver=20171227
+pkgver=20190702
pkgrel=3
pkgdesc='A password-hashing function (reference C implementation)'
arch=('x86_64')
url='https://github.com/P-H-C/phc-winner-argon2'
license=('Apache' 'custom:CC0')
depends=('glibc')
-install=argon2.install
-source=("https://github.com/P-H-C/phc-winner-argon2/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz"
- 'libargon2.pc')
-sha256sums=('eaea0172c1f4ee4550d1b6c9ce01aab8d1ab66b4207776aa67991eb5872fdcd8'
- '4189ce6c183319ceaf2c4ec96facd424deeaa9e2819efb7511893bcf3ef5c836')
-
-prepare() {
- cd "$srcdir/phc-winner-$pkgname-$pkgver"
-
- # Copy and prepare custom pkg-config file
- cp "${srcdir}/libargon2.pc" libargon2.pc
- sed -i -e "s/@UPSTREAM_VER@/${pkgver}/" libargon2.pc
-}
+provides=('libargon2.so')
+source=("https://github.com/P-H-C/phc-winner-argon2/archive/${pkgver}/${pkgname}-${pkgver}.tar.gz")
+sha256sums=('daf972a89577f8772602bf2eb38b6a3dd3d922bf5724d45e7f9589b5e830442c')
build() {
cd "$srcdir/phc-winner-$pkgname-$pkgver"
- make OPTTARGET=none
+ make OPTTARGET='none' LIBRARY_REL='lib'
}
check() {
cd "$srcdir/phc-winner-$pkgname-$pkgver"
- make OPTTARGET=none test
+ make OPTTARGET='none' LIBRARY_REL='lib' test
}
package() {
cd "$srcdir/phc-winner-$pkgname-$pkgver"
- make OPTTARGET=none DESTDIR="$pkgdir" install
+ make OPTTARGET='none' LIBRARY_REL='lib' DESTDIR="$pkgdir" install
install -D -m0644 LICENSE "${pkgdir}/usr/share/licenses/argon2/LICENSE"
-
- install -D -m0644 libargon2.pc "${pkgdir}/usr/lib/pkgconfig/libargon2.pc"
}
# vim:set ts=2 sw=2 et:
diff --git a/abs/core/argon2/argon2.install b/abs/core/argon2/argon2.install
deleted file mode 100644
index 65b9e24..0000000
--- a/abs/core/argon2/argon2.install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-post_upgrade() {
- # clean up upstream soname mess
- rm -f usr/lib/libargon2.so.0
-}
diff --git a/abs/core/argon2/libargon2.pc b/abs/core/argon2/libargon2.pc
deleted file mode 100644
index c41e1c0..0000000
--- a/abs/core/argon2/libargon2.pc
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${prefix}/lib
-includedir=${prefix}/include
-
-Name: libargon2
-Description: Development libraries for libargon2
-Version: @UPSTREAM_VER@
-Libs: -L${libdir} -largon2 -lrt -ldl
-Cflags:
-URL: https://github.com/P-H-C/phc-winner-argon2
diff --git a/abs/core/attr/PKGBUILD b/abs/core/attr/PKGBUILD
index ae9b4f2..4252c6a 100644
--- a/abs/core/attr/PKGBUILD
+++ b/abs/core/attr/PKGBUILD
@@ -1,37 +1,37 @@
-# $Id$
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgname=attr
-pkgver=2.4.47
-pkgrel=1
-pkgdesc="Extended attribute support library for ACL support"
-arch=('i686' 'x86_64')
-url="http://savannah.nongnu.org/projects/attr"
+pkgver=2.4.48
+pkgrel=3
+pkgdesc='Extended attribute support library for ACL support'
+arch=('x86_64')
+url='https://savannah.nongnu.org/projects/attr'
license=('LGPL')
-depends=('glibc')
+depends=('glibc')
makedepends=('gettext')
replaces=('xfsattr')
-provides=('xfsattr')
+provides=('xfsattr' 'libattr.so')
conflicts=('xfsattr')
-source=("http://download.savannah.gnu.org/releases/$pkgname/$pkgname-$pkgver.src.tar.gz"{,.sig})
-sha256sums=('25772f653ac5b2e3ceeb89df50e4688891e21f723c460636548971652af0a859'
+backup=('etc/xattr.conf')
+validpgpkeys=('600CD204FBCEA418BD2CA74F154343260542DF34' # Brandon Philips <brandon@ifup.co>
+ 'B902B5271325F892AC251AD441633B9FE837F581') # Frysinger <vapier@gentoo.org>
+source=("https://download.savannah.gnu.org/releases/${pkgname}/${pkgname}-${pkgver}.tar.gz"{,.sig})
+sha256sums=('5ead72b358ec709ed00bbf7a9eaef1654baad937c001c044fe8b74c57f5324e7'
'SKIP')
build() {
- cd "$pkgname-$pkgver"
+ cd $pkgname-$pkgver
- export INSTALL_USER=root INSTALL_GROUP=root
- ./configure --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib
+ ./configure \
+ --libdir=/usr/lib \
+ --libexecdir=/usr/lib \
+ --prefix=/usr \
+ --sysconfdir=/etc
make
}
package() {
- make -C "$pkgname-$pkgver" DIST_ROOT="$pkgdir" install install-lib install-dev
+ cd $pkgname-$pkgver
- # tidy up
- rm -f "$pkgdir"/usr/lib/libattr.a
- chmod 0755 "$pkgdir"/usr/lib/libattr.so.*.*.*
-
- # remove conflicting manpages
- rm -rf "$pkgdir"/usr/share/man/man2
+ make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/audit/PKGBUILD b/abs/core/audit/PKGBUILD
new file mode 100644
index 0000000..1689021
--- /dev/null
+++ b/abs/core/audit/PKGBUILD
@@ -0,0 +1,82 @@
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer : Christian Rebischke <Chris.Rebischke@archlinux.org>
+# Contributor: Daniel Micay <danielmicay@gmail.com>
+# Contributor: <kang@insecure.ws>
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+# Contributor: Connor Behan <connor.behan@gmail.com>
+# Contributor: henning mueller <henning@orgizm.net>
+
+pkgbase=audit
+pkgname=('audit' 'python-audit')
+pkgver=2.8.5
+pkgrel=7
+pkgdesc='Userspace components of the audit framework'
+url='https://people.redhat.com/sgrubb/audit'
+arch=('x86_64')
+makedepends=('krb5' 'libcap-ng' 'libldap' 'swig' 'linux-headers' 'python')
+license=('GPL')
+options=('emptydirs')
+source=(${pkgbase}-${pkgver}.tar.gz::https://people.redhat.com/sgrubb/audit/${pkgbase}-${pkgver}.tar.gz)
+sha512sums=('7d416aaa21c1a167f8e911ca82aecbaba804424f3243f505066c43ecc4a62a34feb2c27555e99d3268608404793dccca0f828c63670e3aa816016fb493f8174a')
+
+prepare() {
+ cd ${pkgbase}-${pkgver}
+ sed 's|/var/run/auditd.pid|/run/auditd.pid|' -i init.d/auditd.service
+}
+
+build() {
+ cd ${pkgbase}-${pkgver}
+ ./configure \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --sysconfdir=/etc \
+ --libexecdir=/usr/lib/audit \
+ --enable-gssapi-krb5=yes \
+ --enable-systemd=yes \
+ --with-libcap-ng=yes
+ make
+ [ -n "${SOURCE_DATE_EPOCH}" ] && touch -h -d @$SOURCE_DATE_EPOCH bindings/swig/python/audit.py
+}
+
+package_audit() {
+ depends=('krb5' 'libcap-ng')
+ provides=('libaudit.so' 'libauparse.so')
+ backup=(
+ etc/libaudit.conf
+ etc/audit/audit-stop.rules
+ etc/audit/auditd.conf
+ etc/audisp/audispd.conf
+ etc/audisp/audisp-remote.conf
+ etc/audisp/zos-remote.conf
+ etc/audisp/plugins.d/af_unix.conf
+ etc/audisp/plugins.d/audispd-zos-remote.conf
+ etc/audisp/plugins.d/au-remote.conf
+ etc/audisp/plugins.d/syslog.conf
+ )
+
+ cd ${pkgbase}-${pkgver}
+ make DESTDIR="${pkgdir}" INSTALL='install -p' install
+
+ cd "${pkgdir}"
+ install -d -m 0700 var/log/audit
+ rm -rf etc/rc.d \
+ etc/sysconfig \
+ usr/lib/audit \
+ usr/lib/python*
+
+ sed -ri 's|/sbin|/usr/bin|' \
+ etc/audit/*.conf \
+ etc/audisp/plugins.d/*.conf \
+ usr/lib/systemd/system/auditd.service
+
+ chmod 644 usr/lib/systemd/system/auditd.service
+}
+
+package_python-audit() {
+ depends=('python' 'audit')
+ pkgdesc+=' (python bindings)'
+ cd ${pkgbase}-${pkgver}
+ make -C bindings DESTDIR="${pkgdir}" INSTALL='install -p' install
+}
+
+# vim: ts=2 sw=2 et:
diff --git a/abs/core/bash/PKGBUILD b/abs/core/bash/PKGBUILD
index 553a6ad..cc31a71 100644
--- a/abs/core/bash/PKGBUILD
+++ b/abs/core/bash/PKGBUILD
@@ -1,18 +1,16 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
pkgname=bash
-_basever=4.4
-_patchlevel=019
+_basever=5.0
+_patchlevel=017
pkgver=${_basever}.${_patchlevel}
pkgrel=1
pkgdesc='The GNU Bourne Again shell'
arch=(x86_64)
license=(GPL)
-url='http://www.gnu.org/software/bash/bash.html'
-groups=(base)
+url='https://www.gnu.org/software/bash/bash.html'
backup=(etc/bash.bash{rc,_logout} etc/skel/.bash{rc,_profile,_logout})
depends=('readline>=7.0' glibc ncurses)
optdepends=('bash-completion: for tab completion')
@@ -74,48 +72,44 @@ package() {
install -m644 dot.bash_logout "$pkgdir/etc/skel/.bash_logout"
}
-md5sums=('148888a7c95ac23705559b6f477dfe25'
+md5sums=('2b44b47b905be16f45709648f671820b'
'SKIP'
'027d6bd8f5f6a06b75bb7698cb478089'
'2902e0fee7a9168f3a4fd2ccd60ff047'
'42f4400ed2314bd7519c020d0187edc5'
'd8f3f334e72c0e30032eae1a1229aef1'
'472f536d7c9e8250dc4568ec4cfaf294'
- '817d01a6c0af6f79308a8b7b649e53d8'
+ 'b026862ab596a5883bb4f0d1077a3819'
'SKIP'
- '765e14cff12c7284009772e8e24f2fe0'
+ '2f4a7787365790ae57f36b311701ea7e'
'SKIP'
- '49e7da93bf07f510a2eb6bb43ac3e5a2'
+ 'af7f2dd93fd5429fb5e9a642ff74f87d'
'SKIP'
- '4557d674ab5831a5fa98052ab19edaf4'
+ 'b60545b273bfa4e00a760f2c648bed9c'
'SKIP'
- 'cce96dd77cdd1d293beec10848f6cbb5'
+ '875a0bedf48b74e453e3997c84b5d8a4'
'SKIP'
- 'd3379f8d8abce5c6ee338f931ad008d5'
+ '4a8ee95adb72c3aba03d9e8c9f96ece6'
'SKIP'
- 'ec38c76ca439ca7f9c178e9baede84fc'
+ '411560d81fde2dc5b17b83c3f3b58c6f'
'SKIP'
- 'e0ba18c1e3b94f905da9b5bf9d38b58b'
+ 'dd7cf7a784d1838822cad8d419315991'
'SKIP'
- 'e952d4f44e612048930c559d90eb99bb'
+ 'c1b3e937cd6dccbb7fd772f32812a0da'
'SKIP'
- '57b5b35955d68f9a09dbef6b86d2c782'
+ '19b41e73b03602d0e261c471b53e670c'
'SKIP'
- 'cc896e1fa696b93ded568e557e2392d5'
+ '414339330a3634137081a97f2c8615a8'
'SKIP'
- 'fa47fbfa56fb7e9e5367f19a9df5fc9e'
+ '1870268f62b907221b078ad109e1fa94'
'SKIP'
- '5e6a20166efe166267972cc78025417b'
+ '40d923af4b952b01983ed4c889ae2653'
'SKIP'
- '00a8877a8787dbd78d97767db1115b0a'
+ '57857b22053c8167677e5e5ac5c6669b'
'SKIP'
- '2409586fd19e3104197ead86ce549eca'
+ 'c4c6ea23d09a74eaa9385438e48fdf02'
'SKIP'
- '4b31183db086daf8be8943d7f7ea7526'
+ 'a682ed6fa2c2e7a7c3ba6bdeada07fb5'
'SKIP'
- 'c15c8844f1eb87bdbcde71417c9bd342'
- 'SKIP'
- 'b25e3373fc8de00523116dfe151ac4e0'
- 'SKIP'
- '8f43e1d277b02f3319a34c1cd4a4ff3e'
+ 'd9dcaa1d8e7a24850449a1aac43a12a9'
'SKIP')
diff --git a/abs/core/bc/PKGBUILD b/abs/core/bc/PKGBUILD
index 3b40624..36b5685 100644
--- a/abs/core/bc/PKGBUILD
+++ b/abs/core/bc/PKGBUILD
@@ -1,9 +1,8 @@
-# $Id$
# Maintainer: dorphell <dorphell@archlinux.org>
pkgname=bc
pkgver=1.07.1
-pkgrel=1
+pkgrel=4
pkgdesc="An arbitrary precision calculator language"
arch=('x86_64')
url="https://www.gnu.org/software/bc/"
diff --git a/abs/core/bison/PKGBUILD b/abs/core/bison/PKGBUILD
index 02d1d91..d28fdfb 100644
--- a/abs/core/bison/PKGBUILD
+++ b/abs/core/bison/PKGBUILD
@@ -1,34 +1,35 @@
-# $Id$
-# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Eric Belanger <eric@archlinux.org>
pkgname=bison
-pkgver=3.0.2
+pkgver=3.7.2
pkgrel=1
pkgdesc="The GNU general-purpose parser generator"
-arch=('i686' 'x86_64')
+arch=('x86_64')
license=('GPL3')
-url="http://www.gnu.org/software/bison/bison.html"
+url="https://www.gnu.org/software/bison/bison.html"
depends=('glibc' 'm4' 'sh')
groups=('base-devel')
-options=('staticlibs')
-install=bison.install
-source=(ftp://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.xz{,.sig})
-md5sums=('146be9ff9fbd27497f0bf2286a5a2082'
- 'SKIP')
+source=("https://ftp.gnu.org/gnu/bison/${pkgname}-${pkgver}.tar.xz"{,.sig})
+sha512sums=('42eb501c246e9b4b24cb212c8da538b11b1944b997314105e67f88f22d73b7d00cf19b21e086aa7523630a2a24e1fd70a89d85a7e3003783990e08d31f711a27'
+ 'SKIP')
+
+validpgpkeys=('7DF84374B1EE1F9764BBE25D0DDCAA3278D5264E') # Akim Demaille
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
./configure --prefix=/usr --datadir=/usr/share
make
}
check() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make check
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make -j1 check
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "${srcdir}/${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/bison/bison.install b/abs/core/bison/bison.install
deleted file mode 100644
index 0081a19..0000000
--- a/abs/core/bison/bison.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-file=bison.info.gz
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- install-info $infodir/$file $infodir/dir 2> /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- install-info --delete $infodir/$file $infodir/dir 2> /dev/null
-}
diff --git a/abs/core/ca-certificates/update-ca-trust.hook b/abs/core/ca-certificates/40-update-ca-trust.hook
index ace8ea8..a83d518 100644
--- a/abs/core/ca-certificates/update-ca-trust.hook
+++ b/abs/core/ca-certificates/40-update-ca-trust.hook
@@ -2,7 +2,7 @@
Operation = Install
Operation = Upgrade
Operation = Remove
-Type = File
+Type = Path
Target = usr/share/ca-certificates/trust-source/*
[Action]
diff --git a/abs/core/ca-certificates/PKGBUILD b/abs/core/ca-certificates/PKGBUILD
index 1a7b291..23bcdb8 100644
--- a/abs/core/ca-certificates/PKGBUILD
+++ b/abs/core/ca-certificates/PKGBUILD
@@ -1,19 +1,19 @@
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgbase=ca-certificates
pkgname=(ca-certificates-utils ca-certificates)
pkgver=20181109
-pkgrel=1
+pkgrel=4
pkgdesc="Common CA certificates"
url="https://src.fedoraproject.org/rpms/ca-certificates"
arch=(any)
license=(GPL2)
makedepends=(asciidoc p11-kit)
-source=(update-ca-trust update-ca-trust.8.txt update-ca-trust.hook)
+source=(update-ca-trust update-ca-trust.8.txt 40-update-ca-trust.hook)
sha256sums=('ba98e00f80f94e2648b66252119d1b0da2339b8c83860cd69738e5c4e2d0fcc3'
'acf571f7d7a9df2149a373017280e8f22d07a2d36600256fa48159d22ab74751'
- '15eb04e757b7c61c8ee1540fd697771b8ae8e31f92cfb39c260b423101e21af8')
+ '3a3833ebd6f9cdef2e534a273653f973a4354d4f9368577d0d73236b014b7748')
build() {
asciidoc.py -v -d manpage -b docbook update-ca-trust.8.txt
@@ -22,14 +22,14 @@ build() {
package_ca-certificates-utils() {
pkgdesc+=" (utilities)"
- depends=('bash' 'coreutils' 'findutils' 'p11-kit>=0.23.1')
+ depends=('bash' 'coreutils' 'findutils' 'p11-kit>=0.23.19')
provides=(ca-certificates ca-certificates-java)
conflicts=(ca-certificates-java)
replaces=(ca-certificates-java)
- install -D update-ca-trust "$pkgdir/usr/bin/update-ca-trust"
- install -Dm644 update-ca-trust.8 "$pkgdir/usr/share/man/man8/update-ca-trust.8"
- install -Dm644 update-ca-trust.hook "$pkgdir/usr/share/libalpm/hooks/update-ca-trust.hook"
+ install -Dt "$pkgdir/usr/bin" update-ca-trust
+ install -Dt "$pkgdir/usr/share/man/man8" -m644 update-ca-trust.8
+ install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 *.hook
# Trust source directories
install -d "$pkgdir"/{etc,usr/share}/$pkgbase/trust-source/{anchors,blacklist}
diff --git a/abs/core/cmake/PKGBUILD b/abs/core/cmake/PKGBUILD
index 94f426f..b732aac 100644
--- a/abs/core/cmake/PKGBUILD
+++ b/abs/core/cmake/PKGBUILD
@@ -1,32 +1,30 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Andrea Scarpino <andrea@archlinux.org>
# Contributor: Pierre Schmitz <pierre@archlinux.de>
pkgname=cmake
-pkgver=3.10.2
-pkgrel=3
+pkgver=3.17.3
+pkgrel=1
pkgdesc='A cross-platform open-source make system'
arch=('x86_64')
-url="http://www.cmake.org/"
+url="https://www.cmake.org/"
license=('custom')
-depends=('curl' 'libarchive' 'shared-mime-info' 'jsoncpp' 'libuv' 'rhash')
+depends=('curl' 'libarchive' 'shared-mime-info' 'jsoncpp' 'libjsoncpp.so' 'libuv' 'rhash')
makedepends=('qt5-base' 'python-sphinx' 'emacs')
-optdepends=('qt5-base: cmake-gui'
- 'libxkbcommon-x11: cmake-gui')
+optdepends=('qt5-base: cmake-gui')
source=("https://www.cmake.org/files/v${pkgver%.*}/${pkgname}-${pkgver}.tar.gz"
- 'cmake-3.10-boost-1.66-support.patch')
-sha512sums=('f58fdd025285c9ff5396c0bd0d9573fc8a498fcbe5c11b336cb8ad6154ca6bc875c1a5e22d6654ba98596791ecf89ae8adffb83450839fa1275756b0af5bf82b'
- 'edc24a0e057056427e15b0b4c23828c8d0d23a69061d0ede9ae1bb6104bece53157480f63361b48994ea9f3b12f5bcd9f1d56c4f7d5c4b1b88c8e1a7b6ee5b68')
+ cmake-cppflags.patch)
+sha512sums=('13479bd48ef8a8c95277a62b4f42e63152a5979292a98b5456022ca42ad3963cad75e917cc8b92a8485dbf5a2b59cde3fdc90fd9abdb806bc97c8570d03c1c69'
+ '407c5c63a31266e44641ada8229dbc33df44df98e5bb575db3a33590e8ffdff9aea3f2ee5cb0cb855858facf1e46c63886dea9f948a0cad2da042e7f7f258cac')
prepare() {
- cd ${pkgname}-${pkgver}
- patch -p1 -i "${srcdir}/cmake-3.10-boost-1.66-support.patch"
+ cd ${pkgname}-${pkgver}
+ patch -p1 -i ../cmake-cppflags.patch # Honor CPPFLAGS https://gitlab.kitware.com/cmake/cmake/issues/12928
}
build() {
cd ${pkgname}-${pkgver}
-
+ export CXXFLAGS+=" ${CPPFLAGS}"
./bootstrap --prefix=/usr \
--mandir=/share/man \
--docdir=/share/doc/cmake \
@@ -42,7 +40,7 @@ package() {
make DESTDIR="${pkgdir}" install
vimpath="${pkgdir}/usr/share/vim/vimfiles"
- install -d "${vimpath}"/{help,indent,syntax}
+ install -d "${vimpath}"/{indent,syntax}
ln -s /usr/share/cmake-${pkgver%.*}/editors/vim/indent/cmake.vim \
"${vimpath}"/indent/
ln -s /usr/share/cmake-${pkgver%.*}/editors/vim/syntax/cmake.vim \
@@ -53,7 +51,13 @@ package() {
"${pkgdir}"/usr/share/cmake-${pkgver%.*}/editors/emacs/cmake-mode.el
ln -s /usr/share/cmake-${pkgver%.*}/editors/emacs/cmake-mode.el \
"${pkgdir}"/usr/share/emacs/site-lisp/
+ ln -s /usr/share/cmake-${pkgver%.*}/editors/emacs/cmake-mode.elc \
+ "${pkgdir}"/usr/share/emacs/site-lisp/
install -Dm644 Copyright.txt \
"${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+
+# install bash completions
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ ln -s /usr/share/cmake-${pkgver%.*}/completions/{cmake,cpack,ctest} "$pkgdir"/usr/share/bash-completion/completions
}
diff --git a/abs/core/cmake/cmake-3.10-boost-1.66-support.patch b/abs/core/cmake/cmake-3.10-boost-1.66-support.patch
deleted file mode 100644
index fbca966..0000000
--- a/abs/core/cmake/cmake-3.10-boost-1.66-support.patch
+++ /dev/null
@@ -1,259 +0,0 @@
-From d757601d51304b12afa11aedb2f3748c9958fa81 Mon Sep 17 00:00:00 2001
-From: "Paul \"TBBle\" Hampson" <Paul.Hampson@Pobox.com>
-Date: Fri, 29 Dec 2017 19:55:49 +1100
-Subject: [PATCH 1/5] Boost 1.66.0 dependency and release update
-
-Release notes: http://www.boost.org/users/history/version_1_66_0.html
-
-* All new libraries are header-only.
-* _Boost_COMPONENT_DEPENDENCIES is unchanged from 1.65.1
-* _Boost_FIBER_COMPILER_FEATURES is unchanged from 1.64.0
----
- Modules/FindBoost.cmake | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
-index 88d14ab..8db9800 100644
---- a/Modules/FindBoost.cmake
-+++ b/Modules/FindBoost.cmake
-@@ -797,7 +797,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
- set(_Boost_WAVE_DEPENDENCIES filesystem system serialization thread chrono date_time atomic)
- set(_Boost_WSERIALIZATION_DEPENDENCIES serialization)
- endif()
-- if(NOT Boost_VERSION VERSION_LESS 106600)
-+ if(NOT Boost_VERSION VERSION_LESS 106700)
- message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
- set(_Boost_IMPORTED_TARGETS FALSE)
- endif()
-@@ -931,8 +931,8 @@ endfunction()
- # `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`.
- #
- function(_Boost_COMPILER_FEATURES component _ret)
-- # Boost >= 1.62 and < 1.65
-- if(NOT Boost_VERSION VERSION_LESS 106200 AND Boost_VERSION VERSION_LESS 106500)
-+ # Boost >= 1.62 and < 1.67
-+ if(NOT Boost_VERSION VERSION_LESS 106200 AND Boost_VERSION VERSION_LESS 106700)
- set(_Boost_FIBER_COMPILER_FEATURES
- cxx_alias_templates
- cxx_auto_type
-@@ -1038,7 +1038,7 @@ else()
- # _Boost_COMPONENT_HEADERS. See the instructions at the top of
- # _Boost_COMPONENT_DEPENDENCIES.
- set(_Boost_KNOWN_VERSIONS ${Boost_ADDITIONAL_VERSIONS}
-- "1.65.1" "1.65.0" "1.65"
-+ "1.66.0" "1.66" "1.65.1" "1.65.0" "1.65"
- "1.64.0" "1.64" "1.63.0" "1.63" "1.62.0" "1.62" "1.61.0" "1.61" "1.60.0" "1.60"
- "1.59.0" "1.59" "1.58.0" "1.58" "1.57.0" "1.57" "1.56.0" "1.56" "1.55.0" "1.55"
- "1.54.0" "1.54" "1.53.0" "1.53" "1.52.0" "1.52" "1.51.0" "1.51"
---
-2.15.1
-
-From 73605cce7b4c0157c4cf3251e46877bee4cb1160 Mon Sep 17 00:00:00 2001
-From: "Paul \"TBBle\" Hampson" <Paul.Hampson@Pobox.com>
-Date: Fri, 29 Dec 2017 20:07:31 +1100
-Subject: [PATCH 2/5] Fix incorrect alphabetisation of headers list
-
----
- Modules/FindBoost.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
-index 8db9800..a7df333 100644
---- a/Modules/FindBoost.cmake
-+++ b/Modules/FindBoost.cmake
-@@ -831,8 +831,8 @@ function(_Boost_COMPONENT_HEADERS component _hdrs)
- set(_Boost_CONTAINER_HEADERS "boost/container/container_fwd.hpp")
- set(_Boost_CONTEXT_HEADERS "boost/context/all.hpp")
- set(_Boost_COROUTINE_HEADERS "boost/coroutine/all.hpp")
-- set(_Boost_EXCEPTION_HEADERS "boost/exception/exception.hpp")
- set(_Boost_DATE_TIME_HEADERS "boost/date_time/date.hpp")
-+ set(_Boost_EXCEPTION_HEADERS "boost/exception/exception.hpp")
- set(_Boost_FIBER_HEADERS "boost/fiber/all.hpp")
- set(_Boost_FILESYSTEM_HEADERS "boost/filesystem/path.hpp")
- set(_Boost_GRAPH_HEADERS "boost/graph/adjacency_list.hpp")
---
-2.15.1
-
-From a99b3f0698e453faf778dab5d59b91b89e35f5a1 Mon Sep 17 00:00:00 2001
-From: "Paul \"TBBle\" Hampson" <Paul.Hampson@Pobox.com>
-Date: Fri, 29 Dec 2017 21:50:54 +1100
-Subject: [PATCH 3/5] Implement "Architecture and Address Model" tag
-
-This tag is new in Boost 1.66.0, and is present in the 'versioned'
-library file name layout.
----
- Modules/FindBoost.cmake | 51 +++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 41 insertions(+), 10 deletions(-)
-
-diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
-index a7df333..81acf02 100644
---- a/Modules/FindBoost.cmake
-+++ b/Modules/FindBoost.cmake
-@@ -1385,8 +1385,11 @@ if(Boost_DEBUG)
- endif()
-
- #======================
--# Systematically build up the Boost ABI tag
--# http://boost.org/doc/libs/1_41_0/more/getting_started/windows.html#library-naming
-+# Systematically build up the Boost ABI tag for the 'tagged' and 'versioned' layouts
-+# http://boost.org/doc/libs/1_66_0/more/getting_started/windows.html#library-naming
-+# http://boost.org/doc/libs/1_66_0/boost/config/auto_link.hpp
-+# http://boost.org/doc/libs/1_66_0/tools/build/src/tools/common.jam
-+# http://boost.org/doc/libs/1_66_0/boostcpp.jam
- set( _boost_RELEASE_ABI_TAG "-")
- set( _boost_DEBUG_ABI_TAG "-")
- # Key Use this library when:
-@@ -1418,11 +1421,39 @@ if(Boost_USE_STLPORT)
- string(APPEND _boost_DEBUG_ABI_TAG "p")
- endif()
- # n using the STLport deprecated "native iostreams" feature
-+# removed from the documentation in 1.43.0 but still present in
-+# boost/config/auto_link.hpp
- if(Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS)
- string(APPEND _boost_RELEASE_ABI_TAG "n")
- string(APPEND _boost_DEBUG_ABI_TAG "n")
- endif()
-
-+# -x86 Architecture and address model tag
-+# First character is the architecture, then word-size, either 32 or 64
-+# Only used in 'versioned' layout, added in Boost 1.66.0
-+set(_boost_ARCHITECTURE_TAG "")
-+# if(NOT Boost_VERSION VERSION_LESS 106600)
-+# string(APPEND _boost_ARCHITECTURE_TAG "-")
-+# # This needs to be kept in-sync with the section of CMakePlatformId.h.in
-+# # inside 'defined(_WIN32) && defined(_MSC_VER)'
-+# if(${CMAKE_CXX_COMPILER_ARCHITECTURE_ID} STREQUAL "IA64")
-+# string(APPEND _boost_ARCHITECTURE_TAG "i")
-+# elseif(${CMAKE_CXX_COMPILER_ARCHITECTURE_ID} STREQUAL "X86"
-+# OR ${CMAKE_CXX_COMPILER_ARCHITECTURE_ID} STREQUAL "x64")
-+# string(APPEND _boost_ARCHITECTURE_TAG "x")
-+# elseif(${CMAKE_CXX_COMPILER_ARCHITECTURE_ID} MATCHES "^ARM")
-+# string(APPEND _boost_ARCHITECTURE_TAG "a")
-+# elseif(${CMAKE_CXX_COMPILER_ARCHITECTURE_ID} STREQUAL "MIPS")
-+# string(APPEND _boost_ARCHITECTURE_TAG "m")
-+# endif()
-+#
-+# if(CMAKE_SIZEOF_VOID_P EQUAL 8)
-+# string(APPEND _boost_ARCHITECTURE_TAG "64")
-+# else()
-+# string(APPEND _boost_ARCHITECTURE_TAG "32")
-+# endif()
-+# endif()
-+
- if(Boost_DEBUG)
- message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
- "_boost_RELEASE_ABI_TAG = ${_boost_RELEASE_ABI_TAG}")
-@@ -1616,22 +1647,22 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
- unset(_boost_RELEASE_NAMES)
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_RELEASE_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG} )
- endforeach()
- list(APPEND _boost_RELEASE_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_ABI_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT} )
- if(_boost_STATIC_RUNTIME_WORKAROUND)
- set(_boost_RELEASE_STATIC_ABI_TAG "-s${_boost_RELEASE_ABI_TAG}")
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_RELEASE_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
- endforeach()
- list(APPEND _boost_RELEASE_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_RELEASE_STATIC_ABI_TAG} )
- endif()
- if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
-@@ -1666,11 +1697,11 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
- unset(_boost_DEBUG_NAMES)
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_DEBUG_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG} )
- endforeach()
- list(APPEND _boost_DEBUG_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_ABI_TAG}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT} )
-@@ -1678,11 +1709,11 @@ foreach(COMPONENT ${Boost_FIND_COMPONENTS})
- set(_boost_DEBUG_STATIC_ABI_TAG "-s${_boost_DEBUG_ABI_TAG}")
- foreach(compiler IN LISTS _boost_COMPILER)
- list(APPEND _boost_DEBUG_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${compiler}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
- endforeach()
- list(APPEND _boost_DEBUG_NAMES
-- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}-${Boost_LIB_VERSION}
-+ ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG}${_boost_ARCHITECTURE_TAG}-${Boost_LIB_VERSION}
- ${Boost_LIB_PREFIX}${Boost_NAMESPACE}_${COMPONENT}${_boost_MULTITHREADED}${_boost_DEBUG_STATIC_ABI_TAG} )
- endif()
- if(Boost_THREADAPI AND ${COMPONENT} STREQUAL "thread")
---
-2.15.1
-
-From 6160aed8eb8e9c6ac78b1b5ec136b4601a6c1edf Mon Sep 17 00:00:00 2001
-From: "Paul \"TBBle\" Hampson" <Paul.Hampson@Pobox.com>
-Date: Fri, 29 Dec 2017 22:38:36 +1100
-Subject: [PATCH 4/5] Search for upstream-packaged libs next to includes
-
-Upstream packages Boost binaries for Windows with the 'boost' directory
-(the INCLUDE_DIR) next to the lib-... directory (the LIBRARY_DIR).
----
- Modules/FindBoost.cmake | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
-index 81acf02..6f2fd9d 100644
---- a/Modules/FindBoost.cmake
-+++ b/Modules/FindBoost.cmake
-@@ -1501,6 +1501,7 @@ foreach(c DEBUG RELEASE)
- ${Boost_INCLUDE_DIR}/stage/lib
- )
- _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${Boost_INCLUDE_DIR}/..")
-+ _Boost_UPDATE_WINDOWS_LIBRARY_SEARCH_DIRS_WITH_PREBUILT_PATHS(_boost_LIBRARY_SEARCH_DIRS_${c} "${Boost_INCLUDE_DIR}")
- if( Boost_NO_SYSTEM_PATHS )
- list(APPEND _boost_LIBRARY_SEARCH_DIRS_${c} NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH)
- else()
---
-2.15.1
-
-From 298d89e3bbbb480358c20af51c5be1e1d2929e0a Mon Sep 17 00:00:00 2001
-From: "Paul \"TBBle\" Hampson" <Paul.Hampson@Pobox.com>
-Date: Sat, 30 Dec 2017 16:00:29 +1100
-Subject: [PATCH 5/5] Generate imported targets for future Boost versions
-
-Per discussion on cmake/cmake#17575, this protection not particularly
-valuable, as the dependency information which the imported targets wrap
-is generated anyway.
-
-This removes a road-block for using `Boost_ADDITIONAL_VERSIONS` to
-support newly-released Boost versions pending a new CMake release.
----
- Modules/FindBoost.cmake | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Modules/FindBoost.cmake b/Modules/FindBoost.cmake
-index 6f2fd9d..dbcc261 100644
---- a/Modules/FindBoost.cmake
-+++ b/Modules/FindBoost.cmake
-@@ -799,7 +799,6 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
- endif()
- if(NOT Boost_VERSION VERSION_LESS 106700)
- message(WARNING "New Boost version may have incorrect or missing dependencies and imported targets")
-- set(_Boost_IMPORTED_TARGETS FALSE)
- endif()
- endif()
-
---
-2.15.1
-
diff --git a/abs/core/cmake/cmake-cppflags.patch b/abs/core/cmake/cmake-cppflags.patch
new file mode 100644
index 0000000..ffac66c
--- /dev/null
+++ b/abs/core/cmake/cmake-cppflags.patch
@@ -0,0 +1,26 @@
+diff --git a/Modules/CMakeCInformation.cmake b/Modules/CMakeCInformation.cmake
+index f6d620f40e..325b11f25e 100644
+--- a/Modules/CMakeCInformation.cmake
++++ b/Modules/CMakeCInformation.cmake
+@@ -100,7 +100,7 @@ if(NOT CMAKE_MODULE_EXISTS)
+ set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS})
+ endif()
+
+-set(CMAKE_C_FLAGS_INIT "$ENV{CFLAGS} ${CMAKE_C_FLAGS_INIT}")
++set(CMAKE_C_FLAGS_INIT "$ENV{CPPFLAGS} $ENV{CFLAGS} ${CMAKE_C_FLAGS_INIT}")
+
+ cmake_initialize_per_config_variable(CMAKE_C_FLAGS "Flags used by the C compiler")
+
+diff --git a/Modules/CMakeCXXInformation.cmake b/Modules/CMakeCXXInformation.cmake
+index dbb4366757..8a0ee288c6 100644
+--- a/Modules/CMakeCXXInformation.cmake
++++ b/Modules/CMakeCXXInformation.cmake
+@@ -197,7 +197,7 @@ endforeach()
+ # on the initial values computed in the platform/*.cmake files
+ # use _INIT variables so that this only happens the first time
+ # and you can set these flags in the cmake cache
+-set(CMAKE_CXX_FLAGS_INIT "$ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS_INIT}")
++set(CMAKE_CXX_FLAGS_INIT "$ENV{CPPFLAGS} $ENV{CXXFLAGS} ${CMAKE_CXX_FLAGS_INIT}")
+
+ cmake_initialize_per_config_variable(CMAKE_CXX_FLAGS "Flags used by the CXX compiler")
+
diff --git a/abs/core/cmake/rebuild.list b/abs/core/cmake/rebuild.list
index f249e83..4a25a61 100644
--- a/abs/core/cmake/rebuild.list
+++ b/abs/core/cmake/rebuild.list
@@ -1,3 +1,2 @@
-quazip
-sfml
cmake-fedora
+uranium
diff --git a/abs/core/cryptsetup/PKGBUILD b/abs/core/cryptsetup/PKGBUILD
index 4b2617f..58d0241 100644
--- a/abs/core/cryptsetup/PKGBUILD
+++ b/abs/core/cryptsetup/PKGBUILD
@@ -1,28 +1,28 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Thomas Bächler <thomas@archlinux.org>
pkgname=cryptsetup
-pkgver=2.0.1
-pkgrel=2
+pkgver=2.3.4
+pkgrel=1
pkgdesc='Userspace setup tool for transparent encryption of block devices using dm-crypt'
arch=(x86_64)
license=('GPL')
url='https://gitlab.com/cryptsetup/cryptsetup/'
-groups=('base')
-depends=('device-mapper' 'libgcrypt' 'popt' 'libutil-linux' 'json-c' 'argon2')
+depends=('device-mapper' 'libdevmapper.so' 'openssl' 'popt' 'util-linux-libs'
+ 'libuuid.so' 'json-c' 'libjson-c.so' 'argon2' 'libargon2.so')
makedepends=('util-linux')
+provides=('libcryptsetup.so')
options=('!emptydirs')
validpgpkeys=('2A2918243FDE46648D0686F9D9B0577BD93E98FC') # Milan Broz <gmazyland@gmail.com>
-source=("https://www.kernel.org/pub/linux/utils/cryptsetup/v2.0/${pkgname}-${pkgver}.tar."{xz,sign}
+source=("https://www.kernel.org/pub/linux/utils/cryptsetup/v${pkgver%.*}/${pkgname}-${pkgver}.tar."{xz,sign}
'hooks-encrypt'
'install-encrypt'
'install-sd-encrypt')
-sha256sums=('41d188092c52e23d576af41cf0cfe0555d8f7efa21598d4c57c56ea1b6d9c975'
+sha256sums=('9d16eebb96b53b514778e813019b8dd15fea9fec5aafde9fae5febf59df83773'
'SKIP'
'416aa179ce3c6a7a5eee0861f1f0a4fafac91b69e84a2aae82b6e5a6140e31e2'
- '7b8c8a189f1b63cb4a0c0dd93d3452615bdc05f0e33570c78b338446a59ca750'
- '7891087a588ede7a5b885c439217af325c994471e821fbfbf4f4ccce47679261')
+ 'd325dc239ecc9a5324407b0782da6df2573e8491251836d6c4e65fa61339ce57'
+ '31d816b3650a57512a5f9b52c1995fa65a161faa8b37975d07c9a1b8e1a119db')
build() {
cd "${srcdir}"/$pkgname-${pkgver}
diff --git a/abs/core/cryptsetup/install-encrypt b/abs/core/cryptsetup/install-encrypt
index 017ba00..4cffb4f 100644
--- a/abs/core/cryptsetup/install-encrypt
+++ b/abs/core/cryptsetup/install-encrypt
@@ -4,6 +4,7 @@ build() {
local mod
add_module "dm-crypt"
+ add_module "dm-integrity"
if [[ $CRYPTO_MODULES ]]; then
for mod in $CRYPTO_MODULES; do
add_module "$mod"
diff --git a/abs/core/cryptsetup/install-sd-encrypt b/abs/core/cryptsetup/install-sd-encrypt
index 08d83d6..1cc16cf 100644
--- a/abs/core/cryptsetup/install-sd-encrypt
+++ b/abs/core/cryptsetup/install-sd-encrypt
@@ -4,6 +4,7 @@ build() {
local mod
add_module "dm-crypt"
+ add_module "dm-integrity"
if [[ $CRYPTO_MODULES ]]; then
for mod in $CRYPTO_MODULES; do
add_module "$mod"
@@ -28,6 +29,9 @@ build() {
# cryptsetup calls pthread_create(), which dlopen()s libgcc_s.so.1
add_binary "/usr/lib/libgcc_s.so.1"
+ # add mkswap for creating swap space on the fly (see 'swap' in crypttab(5))
+ add_binary "mkswap"
+
[[ -f /etc/crypttab.initramfs ]] && add_file "/etc/crypttab.initramfs" "/etc/crypttab"
}
diff --git a/abs/core/curl/0001-connection_check-restore-original-conn-data-after-th.patch b/abs/core/curl/0001-connection_check-restore-original-conn-data-after-th.patch
deleted file mode 100644
index e5ed809..0000000
--- a/abs/core/curl/0001-connection_check-restore-original-conn-data-after-th.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 4015fae044ce52a639c9358e22a9e948f287c89f Mon Sep 17 00:00:00 2001
-Message-Id: <4015fae044ce52a639c9358e22a9e948f287c89f.1550326608.git.jan.steffens@gmail.com>
-From: Jay Satiro <raysatiro@yahoo.com>
-Date: Mon, 11 Feb 2019 23:00:00 -0500
-Subject: [PATCH] connection_check: restore original conn->data after the check
-
-- Save the original conn->data before it's changed to the specified
- data transfer for the connection check and then restore it afterwards.
-
-This is a follow-up to 38d8e1b 2019-02-11.
-
-History:
-
-It was discovered a month ago that before checking whether to extract a
-dead connection that that connection should be associated with a "live"
-transfer for the check (ie original conn->data ignored and set to the
-passed in data). A fix was landed in 54b201b which did that and also
-cleared conn->data after the check. The original conn->data was not
-restored, so presumably it was thought that a valid conn->data was no
-longer needed.
-
-Several days later it was discovered that a valid conn->data was needed
-after the check and follow-up fix was landed in bbae24c which partially
-reverted the original fix and attempted to limit the scope of when
-conn->data was changed to only when pruning dead connections. In that
-case conn->data was not cleared and the original conn->data not
-restored.
-
-A month later it was discovered that the original fix was somewhat
-correct; a "live" transfer is needed for the check in all cases
-because original conn->data could be null which could cause a bad deref
-at arbitrary points in the check. A fix was landed in 38d8e1b which
-expanded the scope to all cases. conn->data was not cleared and the
-original conn->data not restored.
-
-A day later it was discovered that not restoring the original conn->data
-may lead to busy loops in applications that use the event interface, and
-given this observation it's a pretty safe assumption that there is some
-code path that still needs the original conn->data. This commit is the
-follow-up fix for that, it restores the original conn->data after the
-connection check.
-
-Assisted-by: tholin@users.noreply.github.com
-Reported-by: tholin@users.noreply.github.com
-
-Fixes https://github.com/curl/curl/issues/3542
-Closes #3559
----
- lib/url.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lib/url.c b/lib/url.c
-index bc47685db..46c8fb5fb 100644
---- a/lib/url.c
-+++ b/lib/url.c
-@@ -964,8 +964,10 @@ static bool extract_if_dead(struct connectdata *conn,
- /* The protocol has a special method for checking the state of the
- connection. Use it to check if the connection is dead. */
- unsigned int state;
-+ struct Curl_easy *olddata = conn->data;
- conn->data = data; /* use this transfer for now */
- state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
-+ conn->data = olddata;
- dead = (state & CONNRESULT_DEAD);
- }
- else {
-@@ -994,7 +996,6 @@ struct prunedead {
- static int call_extract_if_dead(struct connectdata *conn, void *param)
- {
- struct prunedead *p = (struct prunedead *)param;
-- conn->data = p->data; /* transfer to use for this check */
- if(extract_if_dead(conn, p->data)) {
- /* stop the iteration here, pass back the connection that was extracted */
- p->extracted = conn;
---
-2.20.1
-
diff --git a/abs/core/curl/0001-connection_check-set-data-to-the-transfer-doing-the-.patch b/abs/core/curl/0001-connection_check-set-data-to-the-transfer-doing-the-.patch
deleted file mode 100644
index cf486db..0000000
--- a/abs/core/curl/0001-connection_check-set-data-to-the-transfer-doing-the-.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 38d8e1bd4ed1ae52930ae466ecbac78e888b142f Mon Sep 17 00:00:00 2001
-Message-Id: <38d8e1bd4ed1ae52930ae466ecbac78e888b142f.1550283194.git.jan.steffens@gmail.com>
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Mon, 11 Feb 2019 07:56:00 +0100
-Subject: [PATCH] connection_check: set ->data to the transfer doing the check
-
-The http2 code for connection checking needs a transfer to use. Make
-sure a working one is set before handler->connection_check() is called.
-
-Reported-by: jnbr on github
-Fixes #3541
-Closes #3547
----
- lib/url.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/url.c b/lib/url.c
-index bdb472999..bc47685db 100644
---- a/lib/url.c
-+++ b/lib/url.c
-@@ -964,6 +964,7 @@ static bool extract_if_dead(struct connectdata *conn,
- /* The protocol has a special method for checking the state of the
- connection. Use it to check if the connection is dead. */
- unsigned int state;
-+ conn->data = data; /* use this transfer for now */
- state = conn->handler->connection_check(conn, CONNCHECK_ISDEAD);
- dead = (state & CONNRESULT_DEAD);
- }
---
-2.20.1
-
diff --git a/abs/core/curl/0001-multi-remove-verbose-Expire-in-messages.patch b/abs/core/curl/0001-multi-remove-verbose-Expire-in-messages.patch
deleted file mode 100644
index 9677787..0000000
--- a/abs/core/curl/0001-multi-remove-verbose-Expire-in-messages.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From aabc7ae5ecf70973add429b5acbc86d6a57e4da5 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Mon, 11 Feb 2019 22:57:33 +0100
-Subject: [PATCH] multi: remove verbose "Expire in" ... messages
-
-Reported-by: James Brown
-Bug: https://curl.haxx.se/mail/archive-2019-02/0013.html
-Closes #3558
----
- lib/multi.c | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/lib/multi.c b/lib/multi.c
-index 6b891620f6..cd9d758ca4 100644
---- a/lib/multi.c
-+++ b/lib/multi.c
-@@ -3032,9 +3032,6 @@ void Curl_expire(struct Curl_easy *data, time_t milli, expire_id id)
-
- DEBUGASSERT(id < EXPIRE_LAST);
-
-- infof(data, "Expire in %ld ms for %x (transfer %p)\n",
-- (long)milli, id, data);
--
- set = Curl_now();
- set.tv_sec += milli/1000;
- set.tv_usec += (unsigned int)(milli%1000)*1000;
diff --git a/abs/core/curl/0001-singlesocket-fix-the-sincebefore-placement.patch b/abs/core/curl/0001-singlesocket-fix-the-sincebefore-placement.patch
deleted file mode 100644
index ecbed62..0000000
--- a/abs/core/curl/0001-singlesocket-fix-the-sincebefore-placement.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From b7753be57d7bdb6b909f1a0a4207950e18100d79 Mon Sep 17 00:00:00 2001
-Message-Id: <b7753be57d7bdb6b909f1a0a4207950e18100d79.1550588688.git.jan.steffens@gmail.com>
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Tue, 19 Feb 2019 15:56:54 +0100
-Subject: [PATCH] singlesocket: fix the 'sincebefore' placement
-
-The variable wasn't properly reset within the loop and thus could remain
-set for sockets that hadn't been set before and thus missed notifying
-the app.
-
-Detected-by: Jan Alexander Steffens
-Fixes #3585
----
- lib/multi.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/multi.c b/lib/multi.c
-index aaae8b978..521262b2b 100644
---- a/lib/multi.c
-+++ b/lib/multi.c
-@@ -2349,26 +2349,26 @@ static CURLMcode singlesocket(struct Curl_multi *multi,
- int num;
- unsigned int curraction;
- int actions[MAX_SOCKSPEREASYHANDLE];
-- unsigned int comboaction;
-- bool sincebefore = FALSE;
-
- for(i = 0; i< MAX_SOCKSPEREASYHANDLE; i++)
- socks[i] = CURL_SOCKET_BAD;
-
- /* Fill in the 'current' struct with the state as it is now: what sockets to
- supervise and for what actions */
- curraction = multi_getsock(data, socks, MAX_SOCKSPEREASYHANDLE);
-
- /* We have 0 .. N sockets already and we get to know about the 0 .. M
- sockets we should have from now on. Detect the differences, remove no
- longer supervised ones and add new ones */
-
- /* walk over the sockets we got right now */
- for(i = 0; (i< MAX_SOCKSPEREASYHANDLE) &&
- (curraction & (GETSOCK_READSOCK(i) | GETSOCK_WRITESOCK(i)));
- i++) {
- unsigned int action = CURL_POLL_NONE;
- unsigned int prevaction = 0;
-+ unsigned int comboaction;
-+ bool sincebefore = FALSE;
-
- s = socks[i];
-
---
-2.20.1
-
diff --git a/abs/core/curl/PKGBUILD b/abs/core/curl/PKGBUILD
index afa6928..de36064 100644
--- a/abs/core/curl/PKGBUILD
+++ b/abs/core/curl/PKGBUILD
@@ -5,8 +5,8 @@
# Contributor: Daniel J Griffiths <ghost1227@archlinux.us>
pkgname=curl
-pkgver=7.64.0
-pkgrel=9
+pkgver=7.71.1
+pkgrel=1
pkgdesc="An URL retrieval utility and library"
arch=('x86_64')
url="https://curl.haxx.se"
@@ -14,33 +14,11 @@ license=('MIT')
depends=('ca-certificates' 'krb5' 'libssh2' 'openssl' 'zlib' 'libpsl' 'libnghttp2'
'libidn2' 'libidn2.so')
provides=('libcurl.so')
-source=("https://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc}
- "0001-connection_check-set-data-to-the-transfer-doing-the-.patch"
- "0001-connection_check-restore-original-conn-data-after-th.patch"
- "0001-singlesocket-fix-the-sincebefore-placement.patch"
- "0001-multi-remove-verbose-Expire-in-messages.patch")
-sha512sums=('ea0e68f9cbf2eb4f235d8506962dcc7709f769ef3526c0e4c130fdaf7186a1a13b303c6ce919cb9125bbf7c64ddf4f8efb3d9269b906f856e6d7b3def027fb81'
- 'SKIP'
- 'e9fdd70ec6798f48080582e4cb554fc4cd247075c293c66dcf8b27cab151def1c709c306e4dc8a1439b9843f31fe51248b5d6c7f5183e4af65819a084fddcb1f'
- 'adcbf6309e5d69ede876966790dd504da3097a9e03fedf77d44e10fddcb24a5eaa29b4c9229c813d54bd0c2141211e46b50ca58d89608f7c391434e469316cbd'
- '17c8c19e874bfed0736d579300be5a94f87467d1a2c346fe4dca1698fb73c05d02639cf712c95125f32bbd869457d60be4a1ca0f3d5cbc8b091bb35eb2594b15'
- 'f09b63c36bd958c35bf6e3885efe46fea75fa2780510cac66220bfc1d771de9040560586e0672dac5eb7db7acf67051cf74e56518a8ada6f691c6d8f9dc84fa4')
+source=("https://curl.haxx.se/download/$pkgname-$pkgver.tar.gz"{,.asc})
+sha512sums=('614f8d67e6ee942cb5e57f2da1a3faaf84ebff549ffe383aaf3751a4de3c8874ff482076afa27a52e910a137dec9b0f6e98265dc7d4ad7c95845b63f39236fd4'
+ 'SKIP')
validpgpkeys=('27EDEAF22F3ABCEB50DB9A125CC908FDB71E12C2') # Daniel Stenberg
-prepare() {
- cd "$pkgname-$pkgver"
-
- patch -Np1 < ../0001-multi-remove-verbose-Expire-in-messages.patch
-
- # Crash in cargo:
- # https://github.com/curl/curl/issues/3541
- patch -Np1 < ../0001-connection_check-set-data-to-the-transfer-doing-the-.patch
- patch -Np1 < ../0001-connection_check-restore-original-conn-data-after-th.patch
-
- # https://bugs.archlinux.org/task/61688
- patch -Np1 < ../0001-singlesocket-fix-the-sincebefore-placement.patch
-}
-
build() {
cd "$pkgname-$pkgver"
diff --git a/abs/core/dbus/PKGBUILD b/abs/core/dbus/PKGBUILD
index 32a2d2f..cd14468 100644
--- a/abs/core/dbus/PKGBUILD
+++ b/abs/core/dbus/PKGBUILD
@@ -1,76 +1,78 @@
-# $Id$
-# Maintainer: Jan de Groot <jgc@archlinux.org>
-# Maintainer: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Jan de Groot <jgc@archlinux.org>
# Contributor: Tom Gundersen <teg@jklm.no>
# Contributor: Link Dupont <link@subpop.net>
pkgbase=dbus
pkgname=(dbus dbus-docs)
-pkgver=1.12.6
+pkgver=1.12.20
pkgrel=1
pkgdesc="Freedesktop.org message bus system"
url="https://wiki.freedesktop.org/www/Software/dbus/"
arch=(x86_64)
license=(GPL custom)
-depends=(libsystemd expat)
-makedepends=(systemd xmlto docbook-xsl python yelp-tools doxygen git autoconf-archive graphviz)
-_commit=a723baa2bc7e91fc9b1926cda1ce53e9301de4d8 # tags/dbus-1.12.6^0
-source=("git+https://anongit.freedesktop.org/git/dbus/dbus#commit=$_commit"
- 'dbus.sysusers')
+depends=(systemd-libs expat audit)
+makedepends=(systemd xmlto docbook-xsl python yelp-tools doxygen git autoconf-archive)
+source=("git+https://gitlab.freedesktop.org/dbus/dbus.git?signed#tag=dbus-$pkgver"
+ dbus-reload.hook no-fatal-warnings.diff)
sha256sums=('SKIP'
- 'ee7a7a4b2f944cb2e64b9e760efb82589d81872b5b70268356fb73c83c394845')
-validpgpkeys=('DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90' # Simon McVittie <simon.mcvittie@collabora.co.uk>
- '3C8672A0F49637FE064AC30F52A43A1E4B77B059') # Simon McVittie <simon.mcvittie@collabora.co.uk>
-
-pkgver() {
- cd $pkgbase
- git describe --tags | sed 's/^dbus-//;s/-/+/g'
-}
+ 'd636205622d0ee3b0734360225739ef0c7ad2468a09489e6ef773d88252960f3'
+ '6958eeec07557b92a28419eb1702331ee2f0a6fd17285e37dfb6130b9fa4cf6e')
+validpgpkeys=('DA98F25C0871C49A59EAFF2C4DE8FF2A63C7CC90') # Simon McVittie <simon.mcvittie@collabora.co.uk>
prepare() {
- cd $pkgbase
+ cd dbus
- # Reduce docs size
- printf '%s\n' >>Doxyfile.in \
- HAVE_DOT=yes DOT_IMAGE_FORMAT=svg INTERACTIVE_SVG=yes
+ # Allow us to enable checks without them being fatal
+ patch -Np1 -i ../no-fatal-warnings.diff
NOCONFIGURE=1 ./autogen.sh
}
build() {
- cd $pkgbase
- ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var \
- --libexecdir=/usr/lib/dbus-1.0 --with-dbus-user=dbus \
- --with-system-pid-file=/run/dbus/pid \
- --with-system-socket=/run/dbus/system_bus_socket \
- --with-console-auth-dir=/run/console/ \
- --enable-inotify --disable-static \
- --disable-verbose-mode --disable-asserts \
- --with-systemdsystemunitdir=/usr/lib/systemd/system \
- --enable-systemd --enable-user-session
+ cd dbus
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib/dbus-1.0 \
+ runstatedir=/run \
+ --with-console-auth-dir=/run/console/ \
+ --with-dbus-user=dbus \
+ --with-system-pid-file=/run/dbus/pid \
+ --with-system-socket=/run/dbus/system_bus_socket \
+ --with-systemdsystemunitdir=/usr/lib/systemd/system \
+ --enable-inotify \
+ --enable-libaudit \
+ --enable-systemd \
+ --enable-user-session \
+ --enable-xml-docs \
+ --enable-doxygen-docs \
+ --disable-static \
+ --without-x
make
}
check() {
- cd $pkgbase
- make check
+ make -C dbus check
}
package_dbus() {
- provides=(libdbus)
+ depends+=(libsystemd.so libaudit.so)
+ provides=(libdbus libdbus-1.so)
conflicts=(libdbus)
replaces=(libdbus)
- cd $pkgbase
-
- make DESTDIR="$pkgdir" install
-
- rm -r "$pkgdir/var/run"
+ DESTDIR="$pkgdir" make -C dbus install
- install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgbase/COPYING"
+ rm -r "$pkgdir"/{etc,var}
# We have a pre-assigned uid (81)
- install -m644 "$srcdir/dbus.sysusers" "$pkgdir/usr/lib/sysusers.d/dbus.conf"
+ echo 'u dbus 81 "System Message Bus"' |
+ install -Dm644 /dev/stdin "$pkgdir/usr/lib/sysusers.d/dbus.conf"
+
+ install -Dt "$pkgdir/usr/share/libalpm/hooks" -m644 *.hook
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 dbus/COPYING
# Split docs
mv "$pkgdir/usr/share/doc" "$srcdir"
@@ -78,10 +80,10 @@ package_dbus() {
package_dbus-docs() {
pkgdesc+=" (documentation)"
- depends=(dbus)
-
- install -d "$pkgdir/usr/share/licenses"
- ln -s dbus "$pkgdir/usr/share/licenses/dbus-docs"
+ depends=()
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 dbus/COPYING
mv doc "$pkgdir/usr/share"
}
+
+# vim:set sw=2 et:
diff --git a/abs/core/dbus/dbus-reload.hook b/abs/core/dbus/dbus-reload.hook
new file mode 100644
index 0000000..9f87829
--- /dev/null
+++ b/abs/core/dbus/dbus-reload.hook
@@ -0,0 +1,13 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = etc/dbus-1/system.d/*.conf
+Target = usr/share/dbus-1/system.d/*.conf
+Target = usr/share/dbus-1/system-services/*.service
+
+[Action]
+Description = Reloading system bus configuration...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook reload dbus
diff --git a/abs/core/dbus/dbus.sysusers b/abs/core/dbus/dbus.sysusers
deleted file mode 100644
index c6199ed..0000000
--- a/abs/core/dbus/dbus.sysusers
+++ /dev/null
@@ -1,5 +0,0 @@
-# sysusers.d snippet for creating the D-Bus system user automatically
-# at boot on systemd-based systems that ship with an unpopulated
-# /etc. See sysusers.d(5) for details.
-
-u dbus 81 "System Message Bus"
diff --git a/abs/core/dbus/no-fatal-warnings.diff b/abs/core/dbus/no-fatal-warnings.diff
new file mode 100644
index 0000000..459da90
--- /dev/null
+++ b/abs/core/dbus/no-fatal-warnings.diff
@@ -0,0 +1,13 @@
+diff --git i/dbus/dbus-internals.c w/dbus/dbus-internals.c
+index 267aef97..b1064e85 100644
+--- i/dbus/dbus-internals.c
++++ w/dbus/dbus-internals.c
+@@ -185,7 +185,7 @@ const char *_dbus_no_memory_message = "Not enough memory";
+
+ static dbus_bool_t warn_initted = FALSE;
+ static dbus_bool_t fatal_warnings = FALSE;
+-static dbus_bool_t fatal_warnings_on_check_failed = TRUE;
++static dbus_bool_t fatal_warnings_on_check_failed = FALSE;
+
+ static void
+ init_warnings(void)
diff --git a/abs/core/file/0001-Revert-Don-t-depend-on-the-execute-bit-to-determine-.patch b/abs/core/file/0001-Revert-Don-t-depend-on-the-execute-bit-to-determine-.patch
new file mode 100644
index 0000000..9c056b2
--- /dev/null
+++ b/abs/core/file/0001-Revert-Don-t-depend-on-the-execute-bit-to-determine-.patch
@@ -0,0 +1,30 @@
+From 84221b0370a8b49e0fa2dbd88c89fb6e87ec95bd Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=A9bastien=20Luttringer?= <seblu@seblu.net>
+Date: Fri, 24 Jan 2020 17:07:11 +0100
+Subject: [PATCH] Revert "Don't depend on the execute bit to determine pie
+ executable or shared object."
+
+This reverts commit d653309de04ed10fdeda79f2c6ca7a7e96e122f1.
+---
+ magic/Magdir/elf | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/magic/Magdir/elf b/magic/Magdir/elf
+index b5a2e00b..a35b615d 100644
+--- a/magic/Magdir/elf
++++ b/magic/Magdir/elf
+@@ -50,8 +50,9 @@
+ !:mime application/x-object
+ >16 leshort 2 executable,
+ !:mime application/x-executable
+->16 leshort 3 shared object,
+-!:mime application/x-sharedlib
++>16 leshort 3 ${x?pie executable:shared object},
++
++!:mime application/x-${x?pie-executable:sharedlib}
+ >16 leshort 4 core file,
+ !:mime application/x-coredump
+ # OS-specific
+--
+2.25.0
+
diff --git a/abs/core/file/001-fix-bug-with-long-options.patch b/abs/core/file/001-fix-bug-with-long-options.patch
deleted file mode 100644
index 2637f17..0000000
--- a/abs/core/file/001-fix-bug-with-long-options.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 21f9d5f0e0340ada998f7f9d316368c7167a4afa Mon Sep 17 00:00:00 2001
-From: Christos Zoulas <christos@zoulas.com>
-Date: Thu, 11 Jun 2015 12:52:32 +0000
-Subject: [PATCH] Fix bug with long options and explicitly number them to avoid
- this in the future.
-
----
- src/file.c | 45 +++++++++++++++++++++++----------------------
- src/file_opts.h | 10 +++++-----
- 2 files changed, 28 insertions(+), 27 deletions(-)
-
-diff --git a/src/file.c b/src/file.c
-index f60dde0..c700f66 100644
---- a/src/file.c
-+++ b/src/file.c
-@@ -89,10 +89,15 @@ private int /* Global command-line options */
-
- private const char *separator = ":"; /* Default field separator */
- private const struct option long_options[] = {
-+#define OPT_HELP 1
-+#define OPT_APPLE 2
-+#define OPT_EXTENSIONS 3
-+#define OPT_MIME_TYPE 4
-+#define OPT_MIME_ENCODING 5
- #define OPT(shortname, longname, opt, doc) \
- {longname, opt, NULL, shortname},
--#define OPT_LONGONLY(longname, opt, doc) \
-- {longname, opt, NULL, 0},
-+#define OPT_LONGONLY(longname, opt, doc, id) \
-+ {longname, opt, NULL, id},
- #include "file_opts.h"
- #undef OPT
- #undef OPT_LONGONLY
-@@ -182,24 +187,20 @@ main(int argc, char *argv[])
- while ((c = getopt_long(argc, argv, OPTSTRING, long_options,
- &longindex)) != -1)
- switch (c) {
-- case 0 :
-- switch (longindex) {
-- case 0:
-- help();
-- break;
-- case 10:
-- flags |= MAGIC_APPLE;
-- break;
-- case 11:
-- flags |= MAGIC_EXTENSION;
-- break;
-- case 12:
-- flags |= MAGIC_MIME_TYPE;
-- break;
-- case 13:
-- flags |= MAGIC_MIME_ENCODING;
-- break;
-- }
-+ case OPT_HELP:
-+ help();
-+ break;
-+ case OPT_APPLE:
-+ flags |= MAGIC_APPLE;
-+ break;
-+ case OPT_EXTENSIONS:
-+ flags |= MAGIC_EXTENSION;
-+ break;
-+ case OPT_MIME_TYPE:
-+ flags |= MAGIC_MIME_TYPE;
-+ break;
-+ case OPT_MIME_ENCODING:
-+ flags |= MAGIC_MIME_ENCODING;
- break;
- case '0':
- nulsep = 1;
-@@ -595,7 +596,7 @@ help(void)
- #define OPT(shortname, longname, opt, doc) \
- fprintf(stdout, " -%c, --" longname, shortname), \
- docprint(doc);
--#define OPT_LONGONLY(longname, opt, doc) \
-+#define OPT_LONGONLY(longname, opt, doc, id) \
- fprintf(stdout, " --" longname), \
- docprint(doc);
- #include "file_opts.h"
-diff --git a/src/file_opts.h b/src/file_opts.h
-index 036505f..2e30d06 100644
---- a/src/file_opts.h
-+++ b/src/file_opts.h
-@@ -12,7 +12,7 @@
- * switch statement!
- */
-
--OPT_LONGONLY("help", 0, " display this help and exit\n")
-+OPT_LONGONLY("help", 0, " display this help and exit\n", OPT_HELP)
- OPT('v', "version", 0, " output version information and exit\n")
- OPT('m', "magic-file", 1, " LIST use LIST as a colon-separated list of magic\n"
- " number files\n")
-@@ -29,10 +29,10 @@ OPT('f', "files-from", 1, " FILE read the filenames to be examined from FIL
- OPT('F', "separator", 1, " STRING use string as separator instead of `:'\n")
- OPT('i', "mime", 0, " output MIME type strings (--mime-type and\n"
- " --mime-encoding)\n")
--OPT_LONGONLY("apple", 0, " output the Apple CREATOR/TYPE\n")
--OPT_LONGONLY("extension", 0, " output a slash-separated list of extnsions\n")
--OPT_LONGONLY("mime-type", 0, " output the MIME type\n")
--OPT_LONGONLY("mime-encoding", 0, " output the MIME encoding\n")
-+OPT_LONGONLY("apple", 0, " output the Apple CREATOR/TYPE\n", OPT_APPLE)
-+OPT_LONGONLY("extension", 0, " output a slash-separated list of extensions\n", OPT_EXTENSIONS)
-+OPT_LONGONLY("mime-type", 0, " output the MIME type\n", OPT_MIME_TYPE)
-+OPT_LONGONLY("mime-encoding", 0, " output the MIME encoding\n", OPT_MIME_ENCODING)
- OPT('k', "keep-going", 0, " don't stop at the first match\n")
- OPT('l', "list", 0, " list magic strength\n")
- #ifdef S_IFLNK
diff --git a/abs/core/file/PKGBUILD b/abs/core/file/PKGBUILD
index 805200e..8f78067 100644
--- a/abs/core/file/PKGBUILD
+++ b/abs/core/file/PKGBUILD
@@ -1,29 +1,47 @@
-# $Id$
# Maintainer: Sébastien Luttringer <seblu@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
pkgname=file
-pkgver=5.23
-pkgrel=2
+pkgver=5.39
+pkgrel=1
pkgdesc='File type identification utility'
-arch=('i686' 'x86_64')
+arch=('x86_64')
license=('custom')
-groups=('base' 'base-devel')
-url='http://www.darwinsys.com/file/'
-depends=('glibc' 'zlib')
-source=("ftp://ftp.astron.com/pub/$pkgname/$pkgname-$pkgver.tar.gz"
- '001-fix-bug-with-long-options.patch')
-md5sums=('61db35209ce71a6d576392ce6e1d2f80'
- '4138dd409ad6d67ee35a61cf3c71b0fe')
+groups=('base-devel')
+url='https://www.darwinsys.com/file/'
+depends=('glibc' 'zlib' 'xz' 'bzip2' 'libseccomp' 'libseccomp.so')
+provides=('libmagic.so')
+source=("https://astron.com/pub/$pkgname/$pkgname-$pkgver.tar.gz"{,.asc})
+validpgpkeys=('BE04995BA8F90ED0C0C176C471112AB16CB33B3A') # Christos Zoulas
+sha256sums=('f05d286a76d9556243d0cb05814929c2ecf3a5ba07963f8f70bfaaa70517fad1'
+ 'SKIP')
prepare() {
- patch -p1 -d $pkgname-$pkgver < '001-fix-bug-with-long-options.patch'
+ cd $pkgname-$pkgver
+ # apply patch from the source array (should be a pacman feature)
+ local src
+ for src in "${source[@]}"; do
+ src="${src%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ echo "Applying patch $src..."
+ patch -Np1 < "../$src"
+ done
}
build() {
cd $pkgname-$pkgver
- ./configure --prefix=/usr --datadir=/usr/share/file
+
+ # Fix linking libmagic (vfork needs libpthread)
+ CFLAGS+=" -pthread"
+
+ ./configure \
+ --prefix=/usr \
+ --datadir=/usr/share/file \
+ --enable-fsect-man5 \
+ --enable-libseccomp
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
make
}
@@ -36,7 +54,6 @@ package() {
cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
- rmdir "$pkgdir/usr/share/man/man5"
}
# vim:set ts=2 sw=2 et:
diff --git a/abs/core/file/file-5.38-seccomp-tcgets.patch b/abs/core/file/file-5.38-seccomp-tcgets.patch
new file mode 100644
index 0000000..fac29f4
--- /dev/null
+++ b/abs/core/file/file-5.38-seccomp-tcgets.patch
@@ -0,0 +1,28 @@
+From 78573ec1c43346064661169c5c8df32e7c3bd6d6 Mon Sep 17 00:00:00 2001
+From: Christos Zoulas <christos@zoulas.com>
+Date: Fri, 17 Jan 2020 17:12:58 +0000
+Subject: [PATCH] PR/130: tobias: adjust seccomp for ioctl on hardwired
+ terminal
+
+---
+ src/seccomp.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/src/seccomp.c b/src/seccomp.c
+index ebf3ea1cb..0ba17233b 100644
+--- a/src/seccomp.c
++++ b/src/seccomp.c
+@@ -186,8 +186,12 @@ enable_sandbox_full(void)
+ ALLOW_IOCTL_RULE(FIONREAD);
+ #endif
+ #ifdef TIOCGWINSZ
+- // musl libc may call ioctl TIOCGWINSZ when calling stdout
++ // musl libc may call ioctl TIOCGWINSZ on stdout
+ ALLOW_IOCTL_RULE(TIOCGWINSZ);
++#endif
++#ifdef TCGETS
++ // glibc may call ioctl TCGETS on stdout on physical terminal
++ ALLOW_IOCTL_RULE(TCGETS);
+ #endif
+ ALLOW_RULE(lseek);
+ ALLOW_RULE(_llseek);
diff --git a/abs/core/gawk/PKGBUILD b/abs/core/gawk/PKGBUILD
index 5272608..9661360 100644
--- a/abs/core/gawk/PKGBUILD
+++ b/abs/core/gawk/PKGBUILD
@@ -1,38 +1,33 @@
-# $Id$
# Maintainer:
# Contributor: Tom Newsom <Jeepster@gmx.co.uk>
pkgname=gawk
-pkgver=4.2.0
-pkgrel=3
+pkgver=5.1.0
+pkgrel=1
pkgdesc="GNU version of awk"
arch=('x86_64')
-url="http://www.gnu.org/software/gawk/"
+url="https://www.gnu.org/software/gawk/"
license=('GPL')
-groups=('base' 'base-devel')
+groups=('base-devel')
depends=('sh' 'glibc' 'mpfr')
provides=('awk')
source=(https://ftp.gnu.org/pub/gnu/${pkgname}/${pkgname}-${pkgver}.tar.gz{,.sig})
-md5sums=('0b598c31bc703d66082bd958d4189980'
+md5sums=('f719bc9966df28e67fc6ebc405e7ea03'
'SKIP')
validpgpkeys=('D1967C63788713177D861ED7DF597815937EC0D2') # Arnold Robbins
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${pkgname}-${pkgver}
./configure --prefix=/usr --libexecdir=/usr/lib --sysconfdir=/etc --without-libsigsegv
make
}
check() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${pkgname}-${pkgver}
make check
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
-
- #install -dm755 ${pkgdir}/bin
- #ln -sf /usr/bin/gawk ${pkgdir}/bin/
- #ln -sf gawk ${pkgdir}/bin/awk
+ cd ${pkgname}-${pkgver}
+ make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/gcc/PKGBUILD b/abs/core/gcc/PKGBUILD
index 66aed86..8302d6c 100644
--- a/abs/core/gcc/PKGBUILD
+++ b/abs/core/gcc/PKGBUILD
@@ -1,57 +1,45 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
+# Contributor: Daniel Kozak <kozzi11@gmail.com>
# toolchain build order: linux-api-headers->glibc->binutils->gcc->binutils->glibc
# NOTE: libtool requires rebuilt with each new gcc version
-pkgname=(gcc gcc-libs gcc-fortran gcc-objc gcc-ada gcc-go lib32-gcc-libs)
-pkgver=7.3.0
-_majorver=${pkgver:0:1}
-_islver=0.18
-pkgrel=1
+pkgname=(gcc gcc-libs gcc-fortran gcc-objc gcc-ada gcc-go lib32-gcc-libs gcc-d)
+pkgver=10.2.0
+_majorver=${pkgver%%.*}
+_islver=0.21
+pkgrel=2
pkgdesc='The GNU Compiler Collection'
arch=(x86_64)
license=(GPL LGPL FDL custom)
-url='http://gcc.gnu.org'
-makedepends=(binutils libmpc gcc-ada doxygen lib32-glibc lib32-gcc-libs)
+url='https://gcc.gnu.org'
+makedepends=(binutils libmpc gcc-ada doxygen lib32-glibc lib32-gcc-libs python git libxcrypt)
checkdepends=(dejagnu inetutils)
options=(!emptydirs)
-#source=(https://sources.archlinux.org/other/gcc/gcc-${pkgver/+/-}.tar.xz{,.sig}
-source=(https://ftp.gnu.org/gnu/gcc/gcc-$pkgver/gcc-$pkgver.tar.xz{,.sig}
- http://isl.gforge.inria.fr/isl-${_islver}.tar.bz2
- c89 c99)
+_libdir=usr/lib/gcc/$CHOST/${pkgver%%+*}
+# _commit=6beb39ee6c465c21d0cc547fd66b445100cdcc35
+# source=(git://gcc.gnu.org/git/gcc.git#commit=$_commit
+source=(https://sourceware.org/pub/gcc/releases/gcc-${pkgver}/gcc-${pkgver}.tar.xz{,.sig}
+ http://isl.gforge.inria.fr/isl-${_islver}.tar.xz
+ c89 c99
+ gdc_phobos_path.patch
+ fs64270.patch
+)
validpgpkeys=(F3691687D867B81B51CE07D9BBE43771487328A9 # bpiotrowski@archlinux.org
- 13975A70E63C361C73AE69EF6EEB81F8981C74C7) # richard.guenther@gmail.com
-sha256sums=('832ca6ae04636adbb430e865a1451adf6979ab44ca1c8374f61fba65645ce15c'
+ 86CFFCA918CF3AF47147588051E8B148A9999C34 # evangelos@foutrelis.com
+ 13975A70E63C361C73AE69EF6EEB81F8981C74C7 # richard.guenther@gmail.com
+ 33C235A34C46AA3FFB293709A328C3A2C3C45C06) # Jakub Jelinek <jakub@redhat.com>
+sha256sums=('b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c'
'SKIP'
- '6b8b0fd7f81d0a957beb3679c81bbb34ccc7568d5682844d8924424a0dadcb1b'
+ '777058852a3db9500954361e294881214f6ecd4b594c00da5eee974cd6a54960'
'de48736f6e4153f03d0a5d38ceb6c6fdb7f054e8f47ddd6af0a3dbf14f27b931'
- '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a')
-
-_svnrev=256757
-_svnurl=svn://gcc.gnu.org/svn/gcc/branches/gcc-${_majorver}-branch
-_libdir=usr/lib/gcc/$CHOST/${pkgver%%+*}
-
-snapshot() {
- svn export -r${_svnrev} ${_svnurl} gcc-r${_svnrev}
-
- local datestamp basever _pkgver
- basever=$(< gcc-r${_svnrev}/gcc/BASE-VER)
- datestamp=$(< gcc-r${_svnrev}/gcc/DATESTAMP)
- _pkgver=${basever}-${datestamp}
-
- mv gcc-r${_svnrev} gcc-${_pkgver}
- tar cf - gcc-${_pkgver} | xz > gcc-${_pkgver}.tar.xz
- gpg -b gcc-${_pkgver}.tar.xz
- scp gcc-${_pkgver}.tar.xz{,.sig} sources.archlinux.org:/srv/ftp/other/gcc/
-
- echo
- echo "pkgver=${_pkgver/-/+}"
-}
+ '2513c6d9984dd0a2058557bf00f06d8d5181734e41dcfe07be7ed86f2959622a'
+ 'c86372c207d174c0918d4aedf1cb79f7fc093649eb1ad8d9450dccc46849d308'
+ '1ef190ed4562c4db8c1196952616cd201cfdd788b65f302ac2cc4dabb4d72cee')
prepare() {
- ln -s gcc-${pkgver/+/-} gcc
+ [[ ! -d gcc ]] && ln -s gcc-${pkgver/+/-} gcc
cd gcc
# link isl for in-tree build
@@ -66,6 +54,13 @@ prepare() {
# hack! - some configure tests for header files using "$CPP $CPPFLAGS"
sed -i "/ac_cpp=/s/\$CPPFLAGS/\$CPPFLAGS -O2/" {libiberty,gcc}/configure
+ # D hacks
+ patch -p1 -i "$srcdir/gdc_phobos_path.patch"
+
+ # Turn off SSP for nostdlib|nodefaultlibs|ffreestanding
+ # https://bugs.archlinux.org/task/64270
+ patch -p1 -i "$srcdir/fs64270.patch"
+
mkdir -p "$srcdir/gcc-build"
}
@@ -83,29 +78,30 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-bugurl=https://bugs.archlinux.org/ \
- --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++ \
- --enable-shared \
- --enable-threads=posix \
- --enable-libmpx \
- --with-system-zlib \
+ --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d \
--with-isl \
+ --with-linker-hash-style=gnu \
+ --with-system-zlib \
--enable-__cxa_atexit \
- --disable-libunwind-exceptions \
+ --enable-cet=auto \
+ --enable-checking=release \
--enable-clocale=gnu \
- --disable-libstdcxx-pch \
- --disable-libssp \
+ --enable-default-pie \
+ --enable-default-ssp \
+ --enable-gnu-indirect-function \
--enable-gnu-unique-object \
+ --enable-install-libiberty \
--enable-linker-build-id \
--enable-lto \
- --enable-plugin \
- --enable-install-libiberty \
- --with-linker-hash-style=gnu \
- --enable-gnu-indirect-function \
--enable-multilib \
+ --enable-plugin \
+ --enable-shared \
+ --enable-threads=posix \
+ --disable-libssp \
+ --disable-libstdcxx-pch \
+ --disable-libunwind-exceptions \
--disable-werror \
- --enable-checking=release \
- --enable-default-pie \
- --enable-default-ssp
+ gdc_include_dir=/usr/include/dlang/gdc
make
@@ -116,6 +112,9 @@ build() {
check() {
cd gcc-build
+ # disable libphobos test to avoid segfaults and other unfunny ways to waste my time
+ sed -i '/maybe-check-target-libphobos \\/d' Makefile
+
# do not abort on error as some are "expected"
make -k check || true
"$srcdir/gcc/contrib/test_summary"
@@ -123,18 +122,17 @@ check() {
package_gcc-libs() {
pkgdesc='Runtime libraries shipped by GCC'
- groups=(base)
- depends=('glibc>=2.26')
+ depends=('glibc>=2.27')
options+=(!strip)
- provides=($pkgname-multilib)
- replaces=($pkgname-multilib)
+ provides=($pkgname-multilib libgo.so libgfortran.so libgphobos.so
+ libubsan.so libasan.so libtsan.so liblsan.so)
+ replaces=($pkgname-multilib libgphobos)
cd gcc-build
make -C $CHOST/libgcc DESTDIR="$pkgdir" install-shared
rm -f "$pkgdir/$_libdir/libgcc_eh.a"
for lib in libatomic \
- libcilkrts \
libgfortran \
libgo \
libgomp \
@@ -148,8 +146,10 @@ package_gcc-libs() {
make -C $CHOST/libobjc DESTDIR="$pkgdir" install-libs
make -C $CHOST/libstdc++-v3/po DESTDIR="$pkgdir" install
- make -C $CHOST/libmpx DESTDIR="$pkgdir" install
- rm -f "$pkgdir/usr/lib/libmpx.spec"
+
+ make -C $CHOST/libphobos DESTDIR="$pkgdir" install
+ rm -rf "$pkgdir"/$_libdir/include/d/
+ rm -f "$pkgdir"/usr/lib/libgphobos.spec
for lib in libgomp \
libitm \
@@ -208,26 +208,24 @@ package_gcc() {
ln -s /${_libdir}/liblto_plugin.so \
"$pkgdir/usr/lib/bfd-plugins/"
- make -C $CHOST/libcilkrts DESTDIR="$pkgdir" install-nodist_{toolexeclib,cilkinclude}HEADERS
make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_{libsubinclude,toolexeclib}HEADERS
make -C $CHOST/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/libquadmath DESTDIR="$pkgdir" install-nodist_libsubincludeHEADERS
make -C $CHOST/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
make -C $CHOST/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
- make -C $CHOST/libmpx DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
- make -C $CHOST/32/libcilkrts DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/libsanitizer/tsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
+ make -C $CHOST/libsanitizer/lsan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libgomp DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libitm DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C $CHOST/32/libsanitizer DESTDIR="$pkgdir" install-nodist_{saninclude,toolexeclib}HEADERS
make -C $CHOST/32/libsanitizer/asan DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
- make -C $CHOST/32/libmpx DESTDIR="$pkgdir" install-nodist_toolexeclibHEADERS
make -C libiberty DESTDIR="$pkgdir" install
install -m644 libiberty/pic/libiberty.a "$pkgdir/usr/lib"
make -C gcc DESTDIR="$pkgdir" install-man install-info
- rm "$pkgdir"/usr/share/man/man1/{gccgo,gfortran}.1
- rm "$pkgdir"/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn}.info
+ rm "$pkgdir"/usr/share/man/man1/{gccgo,gfortran,gdc}.1
+ rm "$pkgdir"/usr/share/info/{gccgo,gfortran,gnat-style,gnat_rm,gnat_ugn,gdc}.info
make -C libcpp DESTDIR="$pkgdir" install
make -C gcc DESTDIR="$pkgdir" install-po
@@ -245,6 +243,10 @@ package_gcc() {
# remove files provided by lib32-gcc-libs
rm -f "$pkgdir"/usr/lib32/lib{stdc++,gcc_s}.so
+ # byte-compile python libraries
+ python -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/"
+ python -O -m compileall "$pkgdir/usr/share/gcc-${pkgver%%+*}/"
+
# Install Runtime Library Exception
install -d "$pkgdir/usr/share/licenses/$pkgname/"
ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
@@ -259,9 +261,9 @@ package_gcc-fortran() {
cd gcc-build
make -C $CHOST/libgfortran DESTDIR="$pkgdir" install-cafexeclibLTLIBRARIES \
- install-{toolexeclibDATA,nodist_fincludeHEADERS}
+ install-{toolexeclibDATA,nodist_fincludeHEADERS,gfor_cHEADERS}
make -C $CHOST/32/libgfortran DESTDIR=$pkgdir install-cafexeclibLTLIBRARIES \
- install-{toolexeclibDATA,nodist_fincludeHEADERS}
+ install-{toolexeclibDATA,nodist_fincludeHEADERS,gfor_cHEADERS}
make -C $CHOST/libgomp DESTDIR="$pkgdir" install-nodist_fincludeHEADERS
make -C gcc DESTDIR="$pkgdir" fortran.install-{common,man,info}
install -Dm755 gcc/f951 "$pkgdir/${_libdir}/f951"
@@ -302,9 +304,13 @@ package_gcc-ada() {
make DESTDIR="$pkgdir" ada.install-{common,info}
install -m755 gnat1 "$pkgdir/${_libdir}"
+ cd "$srcdir"/gcc-build/$CHOST/libada
+ make DESTDIR=${pkgdir} INSTALL="install" \
+ INSTALL_DATA="install -m644" install-libada
+
cd "$srcdir"/gcc-build/$CHOST/32/libada
make DESTDIR=${pkgdir} INSTALL="install" \
- INSTALL_DATA="install -m644" install-gnatlib
+ INSTALL_DATA="install -m644" install-libada
ln -s gcc "$pkgdir/usr/bin/gnatgcc"
@@ -329,7 +335,7 @@ package_gcc-ada() {
package_gcc-go() {
pkgdesc='Go front-end for GCC'
depends=("gcc=$pkgver-$pkgrel")
- provides=("go=1.8.1" $pkgname-multilib)
+ provides=("go=1.12.2" $pkgname-multilib)
replaces=($pkgname-multilib)
conflicts=(go)
@@ -350,7 +356,8 @@ package_gcc-go() {
package_lib32-gcc-libs() {
pkgdesc='32-bit runtime libraries shipped by GCC'
- depends=('lib32-glibc>=2.26')
+ depends=('lib32-glibc>=2.27')
+ provides=(libgo.so libgfortran.so libubsan.so libasan.so)
groups=(multilib-devel)
options=(!emptydirs !strip)
@@ -360,7 +367,6 @@ package_lib32-gcc-libs() {
rm -f "$pkgdir/$_libdir/32/libgcc_eh.a"
for lib in libatomic \
- libcilkrts \
libgfortran \
libgo \
libgomp \
@@ -373,8 +379,9 @@ package_lib32-gcc-libs() {
done
make -C $CHOST/32/libobjc DESTDIR="$pkgdir" install-libs
- make -C $CHOST/32/libmpx DESTDIR="$pkgdir" install
- rm -f "$pkgdir/usr/lib32/libmpx.spec"
+
+ make -C $CHOST/libphobos DESTDIR="$pkgdir" install
+ rm -f "$pkgdir"/usr/lib32/libgphobos.spec
# remove files provided by gcc-libs
rm -rf "$pkgdir"/usr/lib
@@ -383,3 +390,29 @@ package_lib32-gcc-libs() {
install -Dm644 "$srcdir/gcc/COPYING.RUNTIME" \
"$pkgdir/usr/share/licenses/lib32-gcc-libs/RUNTIME.LIBRARY.EXCEPTION"
}
+
+package_gcc-d() {
+ pkgdesc="D frontend for GCC"
+ depends=("gcc=$pkgver-$pkgrel")
+ provides=(gdc)
+ replaces=(gdc)
+ options=('staticlibs')
+
+ cd gcc-build
+ make -C gcc DESTDIR="$pkgdir" d.install-{common,man,info}
+
+ install -Dm755 gcc/gdc "$pkgdir"/usr/bin/gdc
+ install -Dm755 gcc/d21 "$pkgdir"/"$_libdir"/d21
+
+ make -C $CHOST/libphobos DESTDIR="$pkgdir" install
+ rm -f "$pkgdir/usr/lib/"lib{gphobos,gdruntime}.so*
+ rm -f "$pkgdir/usr/lib32/"lib{gphobos,gdruntime}.so*
+
+ install -d "$pkgdir"/usr/include/dlang
+ ln -s /"${_libdir}"/include/d "$pkgdir"/usr/include/dlang/gdc
+
+ # Install Runtime Library Exception
+ install -d "$pkgdir/usr/share/licenses/$pkgname/"
+ ln -s /usr/share/licenses/gcc-libs/RUNTIME.LIBRARY.EXCEPTION \
+ "$pkgdir/usr/share/licenses/$pkgname/"
+}
diff --git a/abs/core/gcc/fs64270.patch b/abs/core/gcc/fs64270.patch
new file mode 100644
index 0000000..7b9e142
--- /dev/null
+++ b/abs/core/gcc/fs64270.patch
@@ -0,0 +1,26 @@
+Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding
+
+--- a/gcc/gcc.c 2017-07-04 09:15:57.740793000 +0200
++++ b/gcc/gcc.c 2018-03-02 13:58:44.387741114 +0100
+@@ -857,6 +857,12 @@ proper position among the other output f
+ #define LINK_GCC_C_SEQUENCE_SPEC "%G %L %G"
+ #endif
+
++#ifdef ENABLE_DEFAULT_SSP
++#define NO_SSP_SPEC "%{nostdlib|nodefaultlibs|ffreestanding:-fno-stack-protector} "
++#else
++#define NO_SSP_SPEC ""
++#endif
++
+ #ifndef LINK_SSP_SPEC
+ #ifdef TARGET_LIBC_PROVIDES_SSP
+ #define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
+@@ -1131,7 +1148,7 @@ static const char *cc1_options =
+ %{-version:--version}\
+ %{-help=*:--help=%*}\
+ %{!fsyntax-only:%{S:%W{o*}%{!o*:-o %b.s}}}\
+- %{fsyntax-only:-o %j} %{-param*}\
++ %{fsyntax-only:-o %j} %{-param*} " NO_SSP_SPEC "\
+ %{coverage:-fprofile-arcs -ftest-coverage}\
+ %{fprofile-arcs|fprofile-generate*|coverage:\
+ %{!fprofile-update=singel:\
diff --git a/abs/core/gcc/gdc_phobos_path.patch b/abs/core/gcc/gdc_phobos_path.patch
new file mode 100644
index 0000000..6f43b6e
--- /dev/null
+++ b/abs/core/gcc/gdc_phobos_path.patch
@@ -0,0 +1,14 @@
+diff -Naur a/gcc/d/d-incpath.cc b/gcc/d/d-incpath.cc
+--- a/gcc/d/d-incpath.cc 2019-01-01 13:31:55.000000000 +0100
++++ b/gcc/d/d-incpath.cc 2019-06-28 08:32:00.326241502 +0200
+@@ -140,7 +140,7 @@
+ path = xstrdup (p->fname);
+
+ /* Add D-specific suffix. */
+- path = concat (path, "/d", NULL);
++ path = concat (path, "/dlang/gdc", NULL);
+
+ /* Ignore duplicate entries. */
+ bool found = false;
+
+
diff --git a/abs/core/gettext/PKGBUILD b/abs/core/gettext/PKGBUILD
index c8dbf03..0980598 100644
--- a/abs/core/gettext/PKGBUILD
+++ b/abs/core/gettext/PKGBUILD
@@ -1,34 +1,45 @@
-# $Id$
# Maintainer:
pkgname=gettext
-pkgver=0.19.8.1
-pkgrel=2
+pkgver=0.21
+pkgrel=1
pkgdesc="GNU internationalization library"
-arch=('x86_64')
-url="http://www.gnu.org/software/gettext/"
-license=('GPL')
-groups=('base' 'base-devel')
-depends=('gcc-libs' 'acl' 'sh' 'glib2' 'libunistring')
+url="https://www.gnu.org/software/gettext/"
+arch=(x86_64)
+license=(GPL)
+groups=(base-devel)
+depends=(gcc-libs acl sh glib2 libunistring libcroco)
+makedepends=(gettext emacs git)
optdepends=('git: for autopoint infrastructure updates')
options=(!docs)
-source=(ftp://ftp.gnu.org/pub/gnu/gettext/${pkgname}-${pkgver}.tar.gz{,.sig})
-validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871') # Daiki Ueno
+source=(https://ftp.gnu.org/pub/gnu/gettext/$pkgname-$pkgver.tar.gz{,.sig})
+sha256sums=('c77d0da3102aec9c07f43671e60611ebff89a996ef159497ce8e59d075786b12'
+ 'SKIP')
+validpgpkeys=('462225C3B46F34879FC8496CD605848ED7E69871' # Daiki Ueno
+ '68D94D8AAEEAD48AE7DC5B904F494A942E4616C2'
+ '9001B85AF9E1B83DF1BDA942F5BE8B267C6A406D') # Bruno Haible (Open Source Development)
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr
+ cd $pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --enable-csharp \
+ --enable-nls \
+ --with-xz \
+ --without-included-gettext
+
+ sed -e 's/ -shared / -Wl,-O1,--as-needed\0/g' \
+ -i gettext-{tools,runtime,runtime/libasprintf}/libtool
+
make
}
check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make -j1 -k check
+ cd $pkgname-$pkgver
+ make check
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- make DESTDIR="${pkgdir}" install
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
}
-md5sums=('97e034cf8ce5ba73a28ff6c3c0638092'
- 'SKIP')
diff --git a/abs/core/glibc/PKGBUILD b/abs/core/glibc/PKGBUILD
index 1da7c0a..aa8e37d 100644
--- a/abs/core/glibc/PKGBUILD
+++ b/abs/core/glibc/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
@@ -7,34 +6,42 @@
pkgbase=glibc
pkgname=(glibc lib32-glibc)
-pkgver=2.26
-pkgrel=11
+pkgver=2.32
+pkgrel=4
arch=(x86_64)
-url='http://www.gnu.org/software/libc'
+url='https://www.gnu.org/software/libc'
license=(GPL LGPL)
-makedepends=(git gd lib32-gcc-libs)
+makedepends=(git gd lib32-gcc-libs python)
options=(!strip staticlibs)
-_commit=de51f431ed6226ec68ca76e578f2cbd55b6262cb
-source=(git+https://sourceware.org/git/glibc.git#commit=${_commit}
+#_commit=3de512be7ea6053255afed6154db9ee31d4e557a
+#source=(git+https://sourceware.org/git/glibc.git#commit=$_commit
+source=(https://ftp.gnu.org/gnu/glibc/glibc-$pkgver.tar.xz{,.sig}
locale.gen.txt
locale-gen
lib32-glibc.conf
- bz20338.patch)
-md5sums=('SKIP'
+ sdt.h sdt-config.h
+ bz26534.patch)
+validpgpkeys=(7273542B39962DF7B299931416792B4EA25340F8 # Carlos O'Donell
+ BC7C7372637EC10C57D7AA6579C43DFBF1CF2187) # Siddhesh Poyarekar
+md5sums=('720c7992861c57cf97d66a2f36d8d1fa'
+ 'SKIP'
'07ac979b6ab5eeb778d55f041529d623'
'476e9113489f93b348b21e144b6a8fcf'
'6e052f1cb693d5d3203f50f9d4e8c33b'
- 'dc0d3ad59aeaaf591b085a77de6e03e9')
+ '91fec3b7e75510ae2ac42533aa2e695e'
+ '680df504c683640b02ed4a805797c0b2'
+ 'fc57038c1297c7c11258e8dda1623ec2')
prepare() {
mkdir -p glibc-build lib32-glibc-build
+ [[ -d glibc-$pkgver ]] && ln -s glibc-$pkgver glibc
cd glibc
local i; for i in ${source[@]}; do
case ${i%::*} in
*.patch)
- msg2 "Applying ${i}"
+ echo " -> Applying ${i}"
patch -p1 -i "$srcdir/${i}"
;;
esac
@@ -48,12 +55,13 @@ build() {
--with-bugurl=https://bugs.archlinux.org/
--enable-add-ons
--enable-bind-now
+ --enable-cet
--enable-lock-elision
--enable-multi-arch
- --enable-obsolete-nsl
- --enable-obsolete-rpc
--enable-stack-protector=strong
--enable-stackguard-randomization
+ --enable-static-pie
+ --enable-systemtap
--disable-profile
--disable-werror
)
@@ -68,6 +76,11 @@ build() {
# remove fortify for building libraries
CPPFLAGS=${CPPFLAGS/-D_FORTIFY_SOURCE=2/}
+ #
+ CFLAGS=${CFLAGS/-fno-plt/}
+ CXXFLAGS=${CXXFLAGS/-fno-plt/}
+ LDFLAGS=${LDFLAGS/,-z,now/}
+
"$srcdir/glibc/configure" \
--libdir=/usr/lib \
--libexecdir=/usr/lib \
@@ -84,6 +97,9 @@ build() {
echo "CXX += -D_FORTIFY_SOURCE=2" >> configparms
make
+ # build info pages manually for reprducibility
+ make info
+
cd "$srcdir/lib32-glibc-build"
export CC="gcc -m32 -mstackrealign"
export CXX="g++ -m32 -mstackrealign"
@@ -135,7 +151,6 @@ package_glibc() {
backup=(etc/gai.conf
etc/locale.gen
etc/nscd.conf)
- groups=(base)
install -dm755 "$pkgdir/etc"
touch "$pkgdir/etc/ld.so.conf"
@@ -143,6 +158,9 @@ package_glibc() {
make -C glibc-build install_root="$pkgdir" install
rm -f "$pkgdir"/etc/ld.so.{cache,conf}
+ # Shipped in tzdata
+ rm -f "$pkgdir"/usr/bin/{tzselect,zdump,zic}
+
cd glibc
install -dm755 "$pkgdir"/usr/lib/{locale,systemd/system,tmpfiles.d}
@@ -155,41 +173,37 @@ package_glibc() {
install -m755 "$srcdir/locale-gen" "$pkgdir/usr/bin"
- # create /etc/locale.gen
+ # Create /etc/locale.gen
install -m644 "$srcdir/locale.gen.txt" "$pkgdir/etc/locale.gen"
sed -e '1,3d' -e 's|/| |g' -e 's|\\| |g' -e 's|^|#|g' \
"$srcdir/glibc/localedata/SUPPORTED" >> "$pkgdir/etc/locale.gen"
- # Do not strip the following files for improved debugging support
- # ("improved" as in not breaking gdb and valgrind...):
- # ld-${pkgver}.so
- # libc-${pkgver}.so
- # libpthread-${pkgver}.so
- # libthread_db-1.0.so
-
if check_option 'debug' n; then
- cd "$pkgdir"
- strip $STRIP_BINARIES usr/bin/{gencat,getconf,getent,iconv,iconvconfig} \
- usr/bin/{ldconfig,locale,localedef,nscd,makedb} \
- usr/bin/{pcprofiledump,pldd,rpcgen,sln,sprof} \
- usr/lib/getconf/*
-
- strip $STRIP_STATIC usr/lib/lib{anl,BrokenLocale,c{,_nonshared},crypt}.a \
- usr/lib/lib{dl,g,ieee,mcheck,nsl,pthread{,_nonshared}}.a \
- usr/lib/lib{resolv,rpcsvc,rt,util}.a \
- usr/lib/lib{m-${pkgver},mvec{,_nonshared}}.a
-
- strip $STRIP_SHARED usr/lib/lib{anl,BrokenLocale,cidn,crypt}-${pkgver}.so \
- usr/lib/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \
- usr/lib/lib{dl,m,nsl,resolv,rt,util}-${pkgver}.so \
- usr/lib/lib{memusage,pcprofile,SegFault}.so \
- usr/lib/{audit,gconv}/*.so usr/lib/libmvec-*.so || true
+ find "$pkgdir"/usr/bin -type f -executable -exec strip $STRIP_BINARIES {} + 2> /dev/null || true
+ find "$pkgdir"/usr/lib -name '*.a' -type f -exec strip $STRIP_STATIC {} + 2> /dev/null || true
+
+ # Do not strip these for gdb and valgrind functionality, but strip the rest
+ find "$pkgdir"/usr/lib \
+ -not -name 'ld-*.so' \
+ -not -name 'libc-*.so' \
+ -not -name 'libpthread-*.so' \
+ -not -name 'libthread_db-*.so' \
+ -name '*-*.so' -type f -exec strip $STRIP_SHARED {} + 2> /dev/null || true
fi
+
+ # Provide tracing probes to libstdc++ for exceptions, possibly for other
+ # libraries too. Useful for gdb's catch command.
+ install -Dm644 "$srcdir/sdt.h" "$pkgdir/usr/include/sys/sdt.h"
+ install -Dm644 "$srcdir/sdt-config.h" "$pkgdir/usr/include/sys/sdt-config.h"
+
+ # Provided by libxcrypt; keep the old shared library for backwards compatibility
+ rm -f "$pkgdir"/usr/include/crypt.h "$pkgdir"/usr/lib/libcrypt.{a,so}
}
package_lib32-glibc() {
pkgdesc='GNU C Library (32-bit)'
depends=("glibc=$pkgver")
+ options+=('!emptydirs')
cd lib32-glibc-build
@@ -210,15 +224,15 @@ package_lib32-glibc() {
ln -s ../lib/locale "$pkgdir/usr/lib32/locale"
if check_option 'debug' n; then
- cd $pkgdir
- strip $STRIP_BINARIES usr/lib32/getconf/*
- strip $STRIP_STATIC usr/lib32/lib{anl,BrokenLocale,c{,_nonshared},crypt}.a \
- usr/lib32/lib{dl,g,ieee,mcheck,nsl,pthread{,_nonshared}}.a \
- usr/lib32/lib{resolv,rpcsvc,rt,util,m}.a
- strip $STRIP_SHARED usr/lib32/lib{anl,BrokenLocale,cidn,crypt}-${pkgver}.so \
- usr/lib32/libnss_{compat,db,dns,files,hesiod,nis,nisplus}-*.so \
- usr/lib32/lib{dl,m,nsl,resolv,rt,util}-${pkgver}.so \
- usr/lib32/lib{memusage,pcprofile,SegFault}.so \
- usr/lib32/{audit,gconv}/*.so || true
+ find "$pkgdir"/usr/lib32 -name '*.a' -type f -exec strip $STRIP_STATIC {} + 2> /dev/null || true
+ find "$pkgdir"/usr/lib32 \
+ -not -name 'ld-*.so' \
+ -not -name 'libc-*.so' \
+ -not -name 'libpthread-*.so' \
+ -not -name 'libthread_db-*.so' \
+ -name '*-*.so' -type f -exec strip $STRIP_SHARED {} + 2> /dev/null || true
fi
+
+ # Provided by lib32-libxcrypt; keep the old shared library for backwards compatibility
+ rm -f "$pkgdir"/usr/lib32/libcrypt.{a,so}
}
diff --git a/abs/core/glibc/bz20338.patch b/abs/core/glibc/bz20338.patch
deleted file mode 100644
index d223e9f..0000000
--- a/abs/core/glibc/bz20338.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 74250a7cdf106d4ca7d9506e6d5dc7c448dc3434 Mon Sep 17 00:00:00 2001
-From: David Michael <david.michael@coreos.com>
-Date: Thu, 15 Dec 2016 15:22:57 -0800
-Subject: [PATCH] gshadow: Sync fgetsgent_r.c with grp/fgetgrent_r.c
-
- [BZ #20338]
- * gshadow/fgetsgent_r.c: Include <libio/iolibio.h>.
- (flockfile): New macro.
- (funlockfile): Likewise.
- (__fgetsgent_r): Sync with __fgetgrent_r.
- * nss/nss_files/files-sgrp.c: Fix "fgetsgent_r.c" typo.
----
- gshadow/fgetsgent_r.c | 35 ++++++++++++++++++++++++-----------
- nss/nss_files/files-sgrp.c | 2 +-
- 2 files changed, 25 insertions(+), 12 deletions(-)
-
-diff --git a/gshadow/fgetsgent_r.c b/gshadow/fgetsgent_r.c
-index b70f6fa..02cd33a 100644
---- a/gshadow/fgetsgent_r.c
-+++ b/gshadow/fgetsgent_r.c
-@@ -20,39 +20,44 @@
- #include <gshadow.h>
- #include <stdio.h>
-
-+#include <libio/iolibio.h>
-+#define flockfile(s) _IO_flockfile (s)
-+#define funlockfile(s) _IO_funlockfile (s)
-+
- /* Define a line parsing function using the common code
- used in the nss_files module. */
-
- #define STRUCTURE sgrp
- #define ENTNAME sgent
--#define EXTERN_PARSER 1
-+#define EXTERN_PARSER 1
- struct sgent_data {};
-
- #include <nss/nss_files/files-parse.c>
-
-
--/* Read one shadow entry from the given stream. */
-+/* Read one entry from the given stream. */
- int
- __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer, size_t buflen,
- struct sgrp **result)
- {
- char *p;
-+ int parse_result;
-
-- _IO_flockfile (stream);
-+ flockfile (stream);
- do
- {
- buffer[buflen - 1] = '\xff';
- p = fgets_unlocked (buffer, buflen, stream);
-- if (p == NULL && feof_unlocked (stream))
-+ if (__builtin_expect (p == NULL, 0) && feof_unlocked (stream))
- {
-- _IO_funlockfile (stream);
-+ funlockfile (stream);
- *result = NULL;
- __set_errno (ENOENT);
- return errno;
- }
-- if (p == NULL || buffer[buflen - 1] != '\xff')
-+ if (__builtin_expect (p == NULL, 0) || buffer[buflen - 1] != '\xff')
- {
-- _IO_funlockfile (stream);
-+ funlockfile (stream);
- *result = NULL;
- __set_errno (ERANGE);
- return errno;
-@@ -61,13 +66,21 @@ __fgetsgent_r (FILE *stream, struct sgrp *resbuf, char *buffer, size_t buflen,
- /* Skip leading blanks. */
- while (isspace (*p))
- ++p;
-- } while (*p == '\0' || *p == '#' || /* Ignore empty and comment lines. */
-+ } while (*p == '\0' || *p == '#' /* Ignore empty and comment lines. */
- /* Parse the line. If it is invalid, loop to
- get the next line of the file to parse. */
-- ! parse_line (buffer, (void *) resbuf, (void *) buffer, buflen,
-- &errno));
-+ || ! (parse_result = parse_line (p, resbuf,
-+ (void *) buffer, buflen,
-+ &errno)));
-+
-+ funlockfile (stream);
-
-- _IO_funlockfile (stream);
-+ if (__builtin_expect (parse_result, 0) == -1)
-+ {
-+ /* The parser ran out of space. */
-+ *result = NULL;
-+ return errno;
-+ }
-
- *result = resbuf;
- return 0;
-diff --git a/nss/nss_files/files-sgrp.c b/nss/nss_files/files-sgrp.c
-index 15dc659..05c3805 100644
---- a/nss/nss_files/files-sgrp.c
-+++ b/nss/nss_files/files-sgrp.c
-@@ -23,7 +23,7 @@
- #define DATABASE "gshadow"
- struct sgent_data {};
-
--/* Our parser function is already defined in sgetspent_r.c, so use that
-+/* Our parser function is already defined in sgetsgent_r.c, so use that
- to parse lines from the database file. */
- #define EXTERN_PARSER
- #include "files-parse.c"
---
-2.7.4
-
diff --git a/abs/core/glibc/bz26534.patch b/abs/core/glibc/bz26534.patch
new file mode 100644
index 0000000..5a2fdd8
--- /dev/null
+++ b/abs/core/glibc/bz26534.patch
@@ -0,0 +1,11 @@
+--- a/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h 2020-08-25 15:08:15.049364392 +0200
++++ b/sysdeps/x86_64/fpu/multiarch/ifunc-fma4.h 2020-08-25 15:08:20.012697875 +0200
+@@ -32,7 +32,7 @@
+ && CPU_FEATURE_USABLE_P (cpu_features, AVX2))
+ return OPTIMIZE (fma);
+
+- if (CPU_FEATURE_USABLE_P (cpu_features, FMA))
++ if (CPU_FEATURE_USABLE_P (cpu_features, FMA4))
+ return OPTIMIZE (fma4);
+
+ return OPTIMIZE (sse2);
diff --git a/abs/core/glibc/sdt-config.h b/abs/core/glibc/sdt-config.h
new file mode 100644
index 0000000..733045a
--- /dev/null
+++ b/abs/core/glibc/sdt-config.h
@@ -0,0 +1,6 @@
+/* includes/sys/sdt-config.h. Generated from sdt-config.h.in by configure.
+
+ This file just defines _SDT_ASM_SECTION_AUTOGROUP_SUPPORT to 0 or 1 to
+ indicate whether the assembler supports "?" in .pushsection directives. */
+
+#define _SDT_ASM_SECTION_AUTOGROUP_SUPPORT 1
diff --git a/abs/core/glibc/sdt.h b/abs/core/glibc/sdt.h
new file mode 100644
index 0000000..c0c5a49
--- /dev/null
+++ b/abs/core/glibc/sdt.h
@@ -0,0 +1,430 @@
+/* <sys/sdt.h> - Systemtap static probe definition macros.
+
+ This file is dedicated to the public domain, pursuant to CC0
+ (https://creativecommons.org/publicdomain/zero/1.0/)
+*/
+
+#ifndef _SYS_SDT_H
+#define _SYS_SDT_H 1
+
+/*
+ This file defines a family of macros
+
+ STAP_PROBEn(op1, ..., opn)
+
+ that emit a nop into the instruction stream, and some data into an auxiliary
+ note section. The data in the note section describes the operands, in terms
+ of size and location. Each location is encoded as assembler operand string.
+ Consumer tools such as gdb or systemtap insert breakpoints on top of
+ the nop, and decode the location operand-strings, like an assembler,
+ to find the values being passed.
+
+ The operand strings are selected by the compiler for each operand.
+ They are constrained by gcc inline-assembler codes. The default is:
+
+ #define STAP_SDT_ARG_CONSTRAINT nor
+
+ This is a good default if the operands tend to be integral and
+ moderate in number (smaller than number of registers). In other
+ cases, the compiler may report "'asm' requires impossible reload" or
+ similar. In this case, consider simplifying the macro call (fewer
+ and simpler operands), reduce optimization, or override the default
+ constraints string via:
+
+ #define STAP_SDT_ARG_CONSTRAINT g
+ #include <sys/sdt.h>
+
+ See also:
+ https://sourceware.org/systemtap/wiki/UserSpaceProbeImplementation
+ https://gcc.gnu.org/onlinedocs/gcc/Constraints.html
+ */
+
+
+
+#ifdef __ASSEMBLER__
+# define _SDT_PROBE(provider, name, n, arglist) \
+ _SDT_ASM_BODY(provider, name, _SDT_ASM_STRING_1, (_SDT_DEPAREN_##n arglist)) \
+ _SDT_ASM_BASE
+# define _SDT_ASM_1(x) x;
+# define _SDT_ASM_2(a, b) a,b;
+# define _SDT_ASM_3(a, b, c) a,b,c;
+# define _SDT_ASM_5(a, b, c, d, e) a,b,c,d,e;
+# define _SDT_ASM_STRING_1(x) .asciz #x;
+# define _SDT_DEPAREN_0() /* empty */
+# define _SDT_DEPAREN_1(a) a
+# define _SDT_DEPAREN_2(a,b) a b
+# define _SDT_DEPAREN_3(a,b,c) a b c
+# define _SDT_DEPAREN_4(a,b,c,d) a b c d
+# define _SDT_DEPAREN_5(a,b,c,d,e) a b c d e
+# define _SDT_DEPAREN_6(a,b,c,d,e,f) a b c d e f
+# define _SDT_DEPAREN_7(a,b,c,d,e,f,g) a b c d e f g
+# define _SDT_DEPAREN_8(a,b,c,d,e,f,g,h) a b c d e f g h
+# define _SDT_DEPAREN_9(a,b,c,d,e,f,g,h,i) a b c d e f g h i
+# define _SDT_DEPAREN_10(a,b,c,d,e,f,g,h,i,j) a b c d e f g h i j
+# define _SDT_DEPAREN_11(a,b,c,d,e,f,g,h,i,j,k) a b c d e f g h i j k
+# define _SDT_DEPAREN_12(a,b,c,d,e,f,g,h,i,j,k,l) a b c d e f g h i j k l
+#else
+# define _SDT_PROBE(provider, name, n, arglist) \
+ do { \
+ __asm__ __volatile__ (_SDT_ASM_BODY(provider, name, _SDT_ASM_ARGS, (n)) \
+ :: _SDT_ASM_OPERANDS_##n arglist); \
+ __asm__ __volatile__ (_SDT_ASM_BASE); \
+ } while (0)
+# define _SDT_S(x) #x
+# define _SDT_ASM_1(x) _SDT_S(x) "\n"
+# define _SDT_ASM_2(a, b) _SDT_S(a) "," _SDT_S(b) "\n"
+# define _SDT_ASM_3(a, b, c) _SDT_S(a) "," _SDT_S(b) "," \
+ _SDT_S(c) "\n"
+# define _SDT_ASM_5(a, b, c, d, e) _SDT_S(a) "," _SDT_S(b) "," \
+ _SDT_S(c) "," _SDT_S(d) "," \
+ _SDT_S(e) "\n"
+# define _SDT_ASM_ARGS(n) _SDT_ASM_STRING(_SDT_ASM_TEMPLATE_##n)
+# define _SDT_ASM_STRING_1(x) _SDT_ASM_1(.asciz #x)
+
+# define _SDT_ARGFMT(no) %n[_SDT_S##no]@_SDT_ARGTMPL(_SDT_A##no)
+
+# ifndef STAP_SDT_ARG_CONSTRAINT
+# if defined __powerpc__
+# define STAP_SDT_ARG_CONSTRAINT nZr
+# else
+# define STAP_SDT_ARG_CONSTRAINT nor
+# endif
+# endif
+
+# define _SDT_STRINGIFY(x) #x
+# define _SDT_ARG_CONSTRAINT_STRING(x) _SDT_STRINGIFY(x)
+# define _SDT_ARG(n, x) \
+ [_SDT_S##n] "n" ((_SDT_ARGSIGNED (x) ? 1 : -1) * (int) _SDT_ARGSIZE (x)), \
+ [_SDT_A##n] _SDT_ARG_CONSTRAINT_STRING (STAP_SDT_ARG_CONSTRAINT) (_SDT_ARGVAL (x))
+#endif
+#define _SDT_ASM_STRING(x) _SDT_ASM_STRING_1(x)
+
+#define _SDT_ARGARRAY(x) (__builtin_classify_type (x) == 14 \
+ || __builtin_classify_type (x) == 5)
+
+#ifdef __cplusplus
+# define _SDT_ARGSIGNED(x) (!_SDT_ARGARRAY (x) \
+ && __sdt_type<__typeof (x)>::__sdt_signed)
+# define _SDT_ARGSIZE(x) (_SDT_ARGARRAY (x) \
+ ? sizeof (void *) : sizeof (x))
+# define _SDT_ARGVAL(x) (x)
+
+# include <cstddef>
+
+template<typename __sdt_T>
+struct __sdt_type
+{
+ static const bool __sdt_signed = false;
+};
+
+#define __SDT_ALWAYS_SIGNED(T) \
+template<> struct __sdt_type<T> { static const bool __sdt_signed = true; };
+#define __SDT_COND_SIGNED(T,CT) \
+template<> struct __sdt_type<T> { static const bool __sdt_signed = ((CT)(-1) < 1); };
+__SDT_ALWAYS_SIGNED(signed char)
+__SDT_ALWAYS_SIGNED(short)
+__SDT_ALWAYS_SIGNED(int)
+__SDT_ALWAYS_SIGNED(long)
+__SDT_ALWAYS_SIGNED(long long)
+__SDT_ALWAYS_SIGNED(volatile signed char)
+__SDT_ALWAYS_SIGNED(volatile short)
+__SDT_ALWAYS_SIGNED(volatile int)
+__SDT_ALWAYS_SIGNED(volatile long)
+__SDT_ALWAYS_SIGNED(volatile long long)
+__SDT_ALWAYS_SIGNED(const signed char)
+__SDT_ALWAYS_SIGNED(const short)
+__SDT_ALWAYS_SIGNED(const int)
+__SDT_ALWAYS_SIGNED(const long)
+__SDT_ALWAYS_SIGNED(const long long)
+__SDT_ALWAYS_SIGNED(const volatile signed char)
+__SDT_ALWAYS_SIGNED(const volatile short)
+__SDT_ALWAYS_SIGNED(const volatile int)
+__SDT_ALWAYS_SIGNED(const volatile long)
+__SDT_ALWAYS_SIGNED(const volatile long long)
+__SDT_COND_SIGNED(char, char)
+__SDT_COND_SIGNED(wchar_t, wchar_t)
+__SDT_COND_SIGNED(volatile char, char)
+__SDT_COND_SIGNED(volatile wchar_t, wchar_t)
+__SDT_COND_SIGNED(const char, char)
+__SDT_COND_SIGNED(const wchar_t, wchar_t)
+__SDT_COND_SIGNED(const volatile char, char)
+__SDT_COND_SIGNED(const volatile wchar_t, wchar_t)
+#if defined (__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+/* __SDT_COND_SIGNED(char16_t) */
+/* __SDT_COND_SIGNED(char32_t) */
+#endif
+
+template<typename __sdt_E>
+struct __sdt_type<__sdt_E[]> : public __sdt_type<__sdt_E *> {};
+
+template<typename __sdt_E, size_t __sdt_N>
+struct __sdt_type<__sdt_E[__sdt_N]> : public __sdt_type<__sdt_E *> {};
+
+#elif !defined(__ASSEMBLER__)
+__extension__ extern unsigned long long __sdt_unsp;
+# define _SDT_ARGINTTYPE(x) \
+ __typeof (__builtin_choose_expr (((__builtin_classify_type (x) \
+ + 3) & -4) == 4, (x), 0U))
+# define _SDT_ARGSIGNED(x) \
+ (!__extension__ \
+ (__builtin_constant_p ((((unsigned long long) \
+ (_SDT_ARGINTTYPE (x)) __sdt_unsp) \
+ & ((unsigned long long)1 << (sizeof (unsigned long long) \
+ * __CHAR_BIT__ - 1))) == 0) \
+ || (_SDT_ARGINTTYPE (x)) -1 > (_SDT_ARGINTTYPE (x)) 0))
+# define _SDT_ARGSIZE(x) \
+ (_SDT_ARGARRAY (x) ? sizeof (void *) : sizeof (x))
+# define _SDT_ARGVAL(x) (x)
+#endif
+
+#if defined __powerpc__ || defined __powerpc64__
+# define _SDT_ARGTMPL(id) %I[id]%[id]
+#elif defined __i386__
+# define _SDT_ARGTMPL(id) %w[id] /* gcc.gnu.org/PR80115 */
+#else
+# define _SDT_ARGTMPL(id) %[id]
+#endif
+
+#ifdef __LP64__
+# define _SDT_ASM_ADDR .8byte
+#else
+# define _SDT_ASM_ADDR .4byte
+#endif
+
+/* The ia64 and s390 nop instructions take an argument. */
+#if defined(__ia64__) || defined(__s390__) || defined(__s390x__)
+#define _SDT_NOP nop 0
+#else
+#define _SDT_NOP nop
+#endif
+
+#define _SDT_NOTE_NAME "stapsdt"
+#define _SDT_NOTE_TYPE 3
+
+/* If the assembler supports the necessary feature, then we can play
+ nice with code in COMDAT sections, which comes up in C++ code.
+ Without that assembler support, some combinations of probe placements
+ in certain kinds of C++ code may produce link-time errors. */
+#include "sdt-config.h"
+#if _SDT_ASM_SECTION_AUTOGROUP_SUPPORT
+# define _SDT_ASM_AUTOGROUP "?"
+#else
+# define _SDT_ASM_AUTOGROUP ""
+#endif
+
+#define _SDT_ASM_BODY(provider, name, pack_args, args) \
+ _SDT_ASM_1(990: _SDT_NOP) \
+ _SDT_ASM_3( .pushsection .note.stapsdt,_SDT_ASM_AUTOGROUP,"note") \
+ _SDT_ASM_1( .balign 4) \
+ _SDT_ASM_3( .4byte 992f-991f, 994f-993f, _SDT_NOTE_TYPE) \
+ _SDT_ASM_1(991: .asciz _SDT_NOTE_NAME) \
+ _SDT_ASM_1(992: .balign 4) \
+ _SDT_ASM_1(993: _SDT_ASM_ADDR 990b) \
+ _SDT_ASM_1( _SDT_ASM_ADDR _.stapsdt.base) \
+ _SDT_SEMAPHORE(provider,name) \
+ _SDT_ASM_STRING(provider) \
+ _SDT_ASM_STRING(name) \
+ pack_args args \
+ _SDT_ASM_1(994: .balign 4) \
+ _SDT_ASM_1( .popsection)
+
+#define _SDT_ASM_BASE \
+ _SDT_ASM_1(.ifndef _.stapsdt.base) \
+ _SDT_ASM_5( .pushsection .stapsdt.base,"aG","progbits", \
+ .stapsdt.base,comdat) \
+ _SDT_ASM_1( .weak _.stapsdt.base) \
+ _SDT_ASM_1( .hidden _.stapsdt.base) \
+ _SDT_ASM_1( _.stapsdt.base: .space 1) \
+ _SDT_ASM_2( .size _.stapsdt.base, 1) \
+ _SDT_ASM_1( .popsection) \
+ _SDT_ASM_1(.endif)
+
+#if defined _SDT_HAS_SEMAPHORES
+#define _SDT_SEMAPHORE(p,n) _SDT_ASM_1( _SDT_ASM_ADDR p##_##n##_semaphore)
+#else
+#define _SDT_SEMAPHORE(p,n) _SDT_ASM_1( _SDT_ASM_ADDR 0)
+#endif
+
+#define _SDT_ASM_TEMPLATE_0 /* no arguments */
+#define _SDT_ASM_TEMPLATE_1 _SDT_ARGFMT(1)
+#define _SDT_ASM_TEMPLATE_2 _SDT_ASM_TEMPLATE_1 _SDT_ARGFMT(2)
+#define _SDT_ASM_TEMPLATE_3 _SDT_ASM_TEMPLATE_2 _SDT_ARGFMT(3)
+#define _SDT_ASM_TEMPLATE_4 _SDT_ASM_TEMPLATE_3 _SDT_ARGFMT(4)
+#define _SDT_ASM_TEMPLATE_5 _SDT_ASM_TEMPLATE_4 _SDT_ARGFMT(5)
+#define _SDT_ASM_TEMPLATE_6 _SDT_ASM_TEMPLATE_5 _SDT_ARGFMT(6)
+#define _SDT_ASM_TEMPLATE_7 _SDT_ASM_TEMPLATE_6 _SDT_ARGFMT(7)
+#define _SDT_ASM_TEMPLATE_8 _SDT_ASM_TEMPLATE_7 _SDT_ARGFMT(8)
+#define _SDT_ASM_TEMPLATE_9 _SDT_ASM_TEMPLATE_8 _SDT_ARGFMT(9)
+#define _SDT_ASM_TEMPLATE_10 _SDT_ASM_TEMPLATE_9 _SDT_ARGFMT(10)
+#define _SDT_ASM_TEMPLATE_11 _SDT_ASM_TEMPLATE_10 _SDT_ARGFMT(11)
+#define _SDT_ASM_TEMPLATE_12 _SDT_ASM_TEMPLATE_11 _SDT_ARGFMT(12)
+#define _SDT_ASM_OPERANDS_0() [__sdt_dummy] "g" (0)
+#define _SDT_ASM_OPERANDS_1(arg1) _SDT_ARG(1, arg1)
+#define _SDT_ASM_OPERANDS_2(arg1, arg2) \
+ _SDT_ASM_OPERANDS_1(arg1), _SDT_ARG(2, arg2)
+#define _SDT_ASM_OPERANDS_3(arg1, arg2, arg3) \
+ _SDT_ASM_OPERANDS_2(arg1, arg2), _SDT_ARG(3, arg3)
+#define _SDT_ASM_OPERANDS_4(arg1, arg2, arg3, arg4) \
+ _SDT_ASM_OPERANDS_3(arg1, arg2, arg3), _SDT_ARG(4, arg4)
+#define _SDT_ASM_OPERANDS_5(arg1, arg2, arg3, arg4, arg5) \
+ _SDT_ASM_OPERANDS_4(arg1, arg2, arg3, arg4), _SDT_ARG(5, arg5)
+#define _SDT_ASM_OPERANDS_6(arg1, arg2, arg3, arg4, arg5, arg6) \
+ _SDT_ASM_OPERANDS_5(arg1, arg2, arg3, arg4, arg5), _SDT_ARG(6, arg6)
+#define _SDT_ASM_OPERANDS_7(arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
+ _SDT_ASM_OPERANDS_6(arg1, arg2, arg3, arg4, arg5, arg6), _SDT_ARG(7, arg7)
+#define _SDT_ASM_OPERANDS_8(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8) \
+ _SDT_ASM_OPERANDS_7(arg1, arg2, arg3, arg4, arg5, arg6, arg7), \
+ _SDT_ARG(8, arg8)
+#define _SDT_ASM_OPERANDS_9(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9) \
+ _SDT_ASM_OPERANDS_8(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8), \
+ _SDT_ARG(9, arg9)
+#define _SDT_ASM_OPERANDS_10(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) \
+ _SDT_ASM_OPERANDS_9(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9), \
+ _SDT_ARG(10, arg10)
+#define _SDT_ASM_OPERANDS_11(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) \
+ _SDT_ASM_OPERANDS_10(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10), \
+ _SDT_ARG(11, arg11)
+#define _SDT_ASM_OPERANDS_12(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) \
+ _SDT_ASM_OPERANDS_11(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11), \
+ _SDT_ARG(12, arg12)
+
+/* These macros can be used in C, C++, or assembly code.
+ In assembly code the arguments should use normal assembly operand syntax. */
+
+#define STAP_PROBE(provider, name) \
+ _SDT_PROBE(provider, name, 0, ())
+#define STAP_PROBE1(provider, name, arg1) \
+ _SDT_PROBE(provider, name, 1, (arg1))
+#define STAP_PROBE2(provider, name, arg1, arg2) \
+ _SDT_PROBE(provider, name, 2, (arg1, arg2))
+#define STAP_PROBE3(provider, name, arg1, arg2, arg3) \
+ _SDT_PROBE(provider, name, 3, (arg1, arg2, arg3))
+#define STAP_PROBE4(provider, name, arg1, arg2, arg3, arg4) \
+ _SDT_PROBE(provider, name, 4, (arg1, arg2, arg3, arg4))
+#define STAP_PROBE5(provider, name, arg1, arg2, arg3, arg4, arg5) \
+ _SDT_PROBE(provider, name, 5, (arg1, arg2, arg3, arg4, arg5))
+#define STAP_PROBE6(provider, name, arg1, arg2, arg3, arg4, arg5, arg6) \
+ _SDT_PROBE(provider, name, 6, (arg1, arg2, arg3, arg4, arg5, arg6))
+#define STAP_PROBE7(provider, name, arg1, arg2, arg3, arg4, arg5, arg6, arg7) \
+ _SDT_PROBE(provider, name, 7, (arg1, arg2, arg3, arg4, arg5, arg6, arg7))
+#define STAP_PROBE8(provider,name,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8) \
+ _SDT_PROBE(provider, name, 8, (arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8))
+#define STAP_PROBE9(provider,name,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9)\
+ _SDT_PROBE(provider, name, 9, (arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9))
+#define STAP_PROBE10(provider,name,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10) \
+ _SDT_PROBE(provider, name, 10, \
+ (arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10))
+#define STAP_PROBE11(provider,name,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11) \
+ _SDT_PROBE(provider, name, 11, \
+ (arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11))
+#define STAP_PROBE12(provider,name,arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12) \
+ _SDT_PROBE(provider, name, 12, \
+ (arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12))
+
+/* This STAP_PROBEV macro can be used in variadic scenarios, where the
+ number of probe arguments is not known until compile time. Since
+ variadic macro support may vary with compiler options, you must
+ pre-#define SDT_USE_VARIADIC to enable this type of probe.
+
+ The trick to count __VA_ARGS__ was inspired by this post by
+ Laurent Deniau <laurent.deniau@cern.ch>:
+ http://groups.google.com/group/comp.std.c/msg/346fc464319b1ee5
+
+ Note that our _SDT_NARG is called with an extra 0 arg that's not
+ counted, so we don't have to worry about the behavior of macros
+ called without any arguments. */
+
+#ifdef SDT_USE_VARIADIC
+#define _SDT_NARG(...) __SDT_NARG(__VA_ARGS__, 12,11,10,9,8,7,6,5,4,3,2,1,0)
+#define __SDT_NARG(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12, N, ...) N
+#define _SDT_PROBE_N(provider, name, N, ...) \
+ _SDT_PROBE(provider, name, N, (__VA_ARGS__))
+#define STAP_PROBEV(provider, name, ...) \
+ _SDT_PROBE_N(provider, name, _SDT_NARG(0, ##__VA_ARGS__), ##__VA_ARGS__)
+#endif
+
+/* These macros are for use in asm statements. You must compile
+ with -std=gnu99 or -std=c99 to use the STAP_PROBE_ASM macro.
+
+ The STAP_PROBE_ASM macro generates a quoted string to be used in the
+ template portion of the asm statement, concatenated with strings that
+ contain the actual assembly code around the probe site.
+
+ For example:
+
+ asm ("before\n"
+ STAP_PROBE_ASM(provider, fooprobe, %eax 4(%esi))
+ "after");
+
+ emits the assembly code for "before\nafter", with a probe in between.
+ The probe arguments are the %eax register, and the value of the memory
+ word located 4 bytes past the address in the %esi register. Note that
+ because this is a simple asm, not a GNU C extended asm statement, these
+ % characters do not need to be doubled to generate literal %reg names.
+
+ In a GNU C extended asm statement, the probe arguments can be specified
+ using the macro STAP_PROBE_ASM_TEMPLATE(n) for n arguments. The paired
+ macro STAP_PROBE_ASM_OPERANDS gives the C values of these probe arguments,
+ and appears in the input operand list of the asm statement. For example:
+
+ asm ("someinsn %0,%1\n" // %0 is output operand, %1 is input operand
+ STAP_PROBE_ASM(provider, fooprobe, STAP_PROBE_ASM_TEMPLATE(3))
+ "otherinsn %[namedarg]"
+ : "r" (outvar)
+ : "g" (some_value), [namedarg] "i" (1234),
+ STAP_PROBE_ASM_OPERANDS(3, some_value, some_ptr->field, 1234));
+
+ This is just like writing:
+
+ STAP_PROBE3(provider, fooprobe, some_value, some_ptr->field, 1234));
+
+ but the probe site is right between "someinsn" and "otherinsn".
+
+ The probe arguments in STAP_PROBE_ASM can be given as assembly
+ operands instead, even inside a GNU C extended asm statement.
+ Note that these can use operand templates like %0 or %[name],
+ and likewise they must write %%reg for a literal operand of %reg. */
+
+#if __STDC_VERSION__ >= 199901L
+# define STAP_PROBE_ASM(provider, name, ...) \
+ _SDT_ASM_BODY(provider, name, _SDT_ASM_STRING, (__VA_ARGS__)) \
+ _SDT_ASM_BASE
+# define STAP_PROBE_ASM_OPERANDS(n, ...) _SDT_ASM_OPERANDS_##n(__VA_ARGS__)
+#else
+# define STAP_PROBE_ASM(provider, name, args) \
+ _SDT_ASM_BODY(provider, name, _SDT_ASM_STRING, (args)) \
+ _SDT_ASM_BASE
+#endif
+#define STAP_PROBE_ASM_TEMPLATE(n) _SDT_ASM_TEMPLATE_##n
+
+
+/* DTrace compatible macro names. */
+#define DTRACE_PROBE(provider,probe) \
+ STAP_PROBE(provider,probe)
+#define DTRACE_PROBE1(provider,probe,parm1) \
+ STAP_PROBE1(provider,probe,parm1)
+#define DTRACE_PROBE2(provider,probe,parm1,parm2) \
+ STAP_PROBE2(provider,probe,parm1,parm2)
+#define DTRACE_PROBE3(provider,probe,parm1,parm2,parm3) \
+ STAP_PROBE3(provider,probe,parm1,parm2,parm3)
+#define DTRACE_PROBE4(provider,probe,parm1,parm2,parm3,parm4) \
+ STAP_PROBE4(provider,probe,parm1,parm2,parm3,parm4)
+#define DTRACE_PROBE5(provider,probe,parm1,parm2,parm3,parm4,parm5) \
+ STAP_PROBE5(provider,probe,parm1,parm2,parm3,parm4,parm5)
+#define DTRACE_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6) \
+ STAP_PROBE6(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6)
+#define DTRACE_PROBE7(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7) \
+ STAP_PROBE7(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7)
+#define DTRACE_PROBE8(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8) \
+ STAP_PROBE8(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8)
+#define DTRACE_PROBE9(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9) \
+ STAP_PROBE9(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9)
+#define DTRACE_PROBE10(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10) \
+ STAP_PROBE10(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10)
+#define DTRACE_PROBE11(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10,parm11) \
+ STAP_PROBE11(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10,parm11)
+#define DTRACE_PROBE12(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10,parm11,parm12) \
+ STAP_PROBE12(provider,probe,parm1,parm2,parm3,parm4,parm5,parm6,parm7,parm8,parm9,parm10,parm11,parm12)
+
+
+#endif /* sys/sdt.h */
diff --git a/abs/core/gmp/PKGBUILD b/abs/core/gmp/PKGBUILD
index d0490e5..2b72112 100644
--- a/abs/core/gmp/PKGBUILD
+++ b/abs/core/gmp/PKGBUILD
@@ -1,37 +1,35 @@
-# $Id: PKGBUILD 158748 2012-05-09 01:14:08Z allan $
# Maintainer: Allan McRae <allan@archlinux.org>
-# Maintainer: Jan de Groot <jgc@archlinux.org>
+# Contributer: Jan de Groot <jgc@archlinux.org>
pkgname=gmp
-pkgver=5.0.5
+pkgver=6.2.0
pkgrel=1
-pkgdesc="A free library for arbitrary precision arithmetic"
-arch=('i686' 'x86_64')
-url="http://gmplib.org/"
-depends=('gcc-libs' 'sh')
-license=('LGPL3')
-options=(!libtool)
-install=gmp.install
-source=(ftp://ftp.gnu.org/gnu/gmp/gmp-${pkgver}.tar.xz{,.sig})
-md5sums=('8aef50959acec2a1ad41d144ffe0f3b5'
- '406e8878aadc51b134d1b3dd845261ee')
+pkgdesc='A free library for arbitrary precision arithmetic'
+arch=(x86_64)
+url='https://gmplib.org/'
+depends=(gcc-libs sh)
+license=(LGPL3 GPL)
+source=(https://gmplib.org/download/gmp/gmp-$pkgver.tar.lz{,.sig})
+md5sums=('e3e08ac185842a882204ba3c37985127'
+ 'SKIP')
+validpgpkeys=('343C2FF0FBEE5EC2EDBEF399F3599FF828C67298') # Niels Möller
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- [ "${CARCH}" = "i686" ] && export ABI="32"
+ cd $pkgname-$pkgver
+
./configure --build=${CHOST} \
- --prefix=/usr --infodir=/usr/share/info \
- --enable-cxx
+ --prefix=/usr \
+ --enable-cxx \
+ --enable-fat
make
}
check() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd $pkgname-$pkgver
make check
}
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd $pkgname-$pkgver
make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/gmp/gmp.install b/abs/core/gmp/gmp.install
deleted file mode 100644
index cad3354..0000000
--- a/abs/core/gmp/gmp.install
+++ /dev/null
@@ -1,20 +0,0 @@
-info_dir=usr/share/info
-info_files=(gmp.info gmp.info-1 gmp.info-2)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for f in ${info_files[@]}; do
- install-info ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for f in ${info_files[@]}; do
- install-info --delete ${info_dir}/$f.gz ${info_dir}/dir 2> /dev/null
- done
-}
diff --git a/abs/core/gnupg/PKGBUILD b/abs/core/gnupg/PKGBUILD
index 06f35f5..308ef7d 100644
--- a/abs/core/gnupg/PKGBUILD
+++ b/abs/core/gnupg/PKGBUILD
@@ -1,40 +1,48 @@
-# $Id$
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Andreas Radke <andyrtr@archlinux.org>
# Contributor: Judd Vinet <jvinet@zeroflux.org>
pkgname=gnupg
-pkgver=2.2.5
-pkgrel=1
+pkgver=2.2.20
+pkgrel=4
pkgdesc='Complete and free implementation of the OpenPGP standard'
-url='http://www.gnupg.org/'
+url='https://www.gnupg.org/'
license=('GPL')
arch=('x86_64')
-optdepends=('libldap: gpg2keys_ldap'
- 'libusb-compat: scdaemon'
- 'pcsclite: scdaemon')
-makedepends=('libldap' 'libusb-compat' 'pcsclite')
checkdepends=('openssh')
+makedepends=('libldap' 'libusb-compat' 'pcsclite')
depends=('npth' 'libgpg-error' 'libgcrypt' 'libksba' 'libassuan'
'pinentry' 'bzip2' 'readline' 'gnutls' 'sqlite')
+optdepends=('libldap: gpg2keys_ldap'
+ 'libusb-compat: scdaemon'
+ 'pcsclite: scdaemon')
validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6'
'46CC730865BB5C78EBABADCF04376F3EE0856959'
'031EC2536E580D8EA286A9F22071B08A33BD3F06'
- 'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9')
-source=("https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig})
-sha256sums=('3fa189a32d4fb62147874eb1389047c267d9ba088f57ab521cb0df46f08aef57'
- 'SKIP')
+ '5B80C5754298F0CB55D8ED6ABCEF7E294B092E28')
+source=("https://gnupg.org/ftp/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig}
+ 'drop-import-clean.patch'
+ 'avoid-beta-warning.patch'
+ 'do-not-rebuild-defsincdate.patch')
+sha256sums=('04a7c9d48b74c399168ee8270e548588ddbe52218c337703d7f06373d326ca30'
+ 'SKIP'
+ '02d375f0045f56f7dd82bacdb5ce559afd52ded8b75f6b2673c39ec666e81abc'
+ '22fdf9490fad477f225e731c417867d9e7571ac654944e8be63a1fbaccd5c62d'
+ '01fee1b04358e5dce76894214bb263e9a75cf408eb1277fad5b751ab3d45b87a')
install=install
-conflicts=('dirmngr' 'gnupg2')
-provides=('dirmngr' "gnupg2=${pkgver}")
-replaces=('dirmngr' 'gnupg2')
-
prepare() {
cd "${srcdir}/${pkgname}-${pkgver}"
- sed '/noinst_SCRIPTS = gpg-zip/c sbin_SCRIPTS += gpg-zip' -i tools/Makefile.in
+ patch -p1 -i ../avoid-beta-warning.patch
+ patch -p1 -i ../drop-import-clean.patch
+
+ # improve reproducibility
+ patch -p1 -i ../do-not-rebuild-defsincdate.patch
+ rm doc/gnupg.info*
+
+ ./autogen.sh
}
build() {
diff --git a/abs/core/gnupg/avoid-beta-warning.patch b/abs/core/gnupg/avoid-beta-warning.patch
new file mode 100644
index 0000000..569fc09
--- /dev/null
+++ b/abs/core/gnupg/avoid-beta-warning.patch
@@ -0,0 +1,56 @@
+From 114ab3037de3b0f9b35cf023b64c8a9b76070065 Mon Sep 17 00:00:00 2001
+From: Debian GnuPG Maintainers <pkg-gnupg-maint@lists.alioth.debian.org>
+Date: Tue, 14 Apr 2015 10:02:31 -0400
+Subject: [PATCH 6/7] avoid beta warning
+
+avoid self-describing as a beta
+
+Using autoreconf against the source as distributed in tarball form
+invariably results in a package that thinks it's a "beta" package,
+which produces the "THIS IS A DEVELOPMENT VERSION" warning string.
+
+since we use dh_autoreconf, i need this patch to avoid producing
+builds that announce themselves as DEVELOPMENT VERSIONs.
+
+See discussion at:
+
+ http://lists.gnupg.org/pipermail/gnupg-devel/2014-November/029065.html
+---
+ autogen.sh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index b23855061..9b86d3ff9 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -229,24 +229,24 @@ if [ "$myhost" = "find-version" ]; then
+ esac
+
+ beta=no
+- if [ -e .git ]; then
++ if false; then
+ ingit=yes
+ tmp=$(git describe --match "${matchstr1}" --long 2>/dev/null)
+ tmp=$(echo "$tmp" | sed s/^"$package"//)
+ if [ -n "$tmp" ]; then
+ tmp=$(echo "$tmp" | sed s/^"$package"// \
+ | awk -F- '$3!=0 && $3 !~ /^beta/ {print"-beta"$3}')
+ else
+ tmp=$(git describe --match "${matchstr2}" --long 2>/dev/null \
+ | awk -F- '$4!=0{print"-beta"$4}')
+ fi
+ [ -n "$tmp" ] && beta=yes
+ rev=$(git rev-parse --short HEAD | tr -d '\n\r')
+ rvd=$((0x$(echo ${rev} | dd bs=1 count=4 2>/dev/null)))
+ else
+ ingit=no
+- beta=yes
+- tmp="-unknown"
++ beta=no
++ tmp=""
+ rev="0000000"
+ rvd="0"
+ fi
+--
+2.27.0
+
diff --git a/abs/core/gnupg/do-not-rebuild-defsincdate.patch b/abs/core/gnupg/do-not-rebuild-defsincdate.patch
new file mode 100644
index 0000000..d5dca6a
--- /dev/null
+++ b/abs/core/gnupg/do-not-rebuild-defsincdate.patch
@@ -0,0 +1,41 @@
+From 3e8ff68502bf5de333db7213d9e27e0b9e8cc36e Mon Sep 17 00:00:00 2001
+From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date: Mon, 29 Aug 2016 12:34:42 -0400
+Subject: [PATCH 7/7] avoid regenerating defsincdate (use shipped file)
+
+upstream ships doc/defsincdate in its tarballs. but doc/Makefile.am
+tries to rewrite doc/defsincdate if it notices that any of the files
+have been modified more recently, and it does so assuming that we're
+running from a git repo.
+
+However, we'd rather ship the documents cleanly without regenerating
+defsincdate -- we don't have a git repo available (debian builds from
+upstream tarballs) and any changes to the texinfo files (e.g. from
+debian/patches/) might result in different dates on the files than we
+expect after they're applied by dpkg or quilt or whatever, which makes
+the datestamp unreproducible.
+---
+ doc/Makefile.am | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/doc/Makefile.am b/doc/Makefile.am
+index d47d83ede..c0a81b0b9 100644
+--- a/doc/Makefile.am
++++ b/doc/Makefile.am
+@@ -177,13 +177,6 @@ $(myman_pages) gnupg.7 : yat2m-stamp defs.inc
+
+ dist-hook: defsincdate
+
+-defsincdate: $(gnupg_TEXINFOS)
+- : >defsincdate ; \
+- if test -e $(top_srcdir)/.git; then \
+- (cd $(srcdir) && git log -1 --format='%ct' \
+- -- $(gnupg_TEXINFOS) 2>/dev/null) >>defsincdate; \
+- fi
+-
+ defs.inc : defsincdate Makefile mkdefsinc
+ incd="`test -f defsincdate || echo '$(srcdir)/'`defsincdate"; \
+ ./mkdefsinc -C $(srcdir) --date "`cat $$incd 2>/dev/null`" \
+--
+2.27.0
+
diff --git a/abs/core/gnupg/drop-import-clean.patch b/abs/core/gnupg/drop-import-clean.patch
new file mode 100644
index 0000000..526a3ff
--- /dev/null
+++ b/abs/core/gnupg/drop-import-clean.patch
@@ -0,0 +1,54 @@
+From 1690a464b28fa24ce82189a9bf5d7ce9b44804b8 Mon Sep 17 00:00:00 2001
+From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date: Mon, 15 Jul 2019 16:24:35 -0400
+Subject: [PATCH 3/7] gpg: drop import-clean from default keyserver import
+ options
+
+* g10/gpg.c (main): drop IMPORT_CLEAN from the
+default opt.keyserver_options.import_options
+* doc/gpg.texi: reflect this change in the documentation
+
+Given that SELF_SIGS_ONLY is already set, it's not clear what
+additional benefit IMPORT_CLEAN provides. Furthermore, IMPORT_CLEAN
+means that receiving an OpenPGP certificate from a keyserver will
+potentially delete data that is otherwise held in the local keyring,
+which is surprising to users who expect retrieval from the keyservers
+to be purely additive.
+
+GnuPG-Bug-Id: 4628
+Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+---
+ doc/gpg.texi | 2 +-
+ g10/gpg.c | 3 +--
+ 2 files changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/doc/gpg.texi b/doc/gpg.texi
+index 4870441d4..551459a74 100644
+--- a/doc/gpg.texi
++++ b/doc/gpg.texi
+@@ -1963,7 +1963,7 @@ are available for all keyserver types, some common options are:
+
+ @end table
+
+-The default list of options is: "self-sigs-only, import-clean,
++The default list of options is: "self-sigs-only,
+ repair-keys, repair-pks-subkey-bug, export-attributes,
+ honor-pka-record".
+
+diff --git a/g10/gpg.c b/g10/gpg.c
+index 68cc22041..fa2bcfa5e 100644
+--- a/g10/gpg.c
++++ b/g10/gpg.c
+@@ -2397,8 +2397,7 @@ main (int argc, char **argv)
+ opt.export_options = EXPORT_ATTRIBUTES;
+ opt.keyserver_options.import_options = (IMPORT_REPAIR_KEYS
+ | IMPORT_REPAIR_PKS_SUBKEY_BUG
+- | IMPORT_SELF_SIGS_ONLY
+- | IMPORT_CLEAN);
++ | IMPORT_SELF_SIGS_ONLY);
+ opt.keyserver_options.export_options = EXPORT_ATTRIBUTES;
+ opt.keyserver_options.options = KEYSERVER_HONOR_PKA_RECORD;
+ opt.verify_options = (LIST_SHOW_UID_VALIDITY
+--
+2.27.0
+
diff --git a/abs/core/gnupg/install b/abs/core/gnupg/install
index 95cb351..1f19b99 100644
--- a/abs/core/gnupg/install
+++ b/abs/core/gnupg/install
@@ -26,16 +26,6 @@ post_install() {
_global_units enable
}
-post_upgrade() {
- if (( $(vercmp $2 2.1.13-1) < 0 )); then
- echo "==> Please kill running gpg-agent and dirmngr processes before using this release."
- fi
-
- if (( $(vercmp $2 2.1.21-3) < 0 )); then
- _global_units enable
- fi
-}
-
pre_remove() {
_global_units disable
}
diff --git a/abs/core/gnutls/PKGBUILD b/abs/core/gnutls/PKGBUILD
index 593304a..6912da1 100644
--- a/abs/core/gnutls/PKGBUILD
+++ b/abs/core/gnutls/PKGBUILD
@@ -1,43 +1,32 @@
-# $Id$
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=gnutls
-pkgver=3.5.18
+pkgver=3.6.15
pkgrel=1
pkgdesc="A library which provides a secure layer over a reliable transport layer"
arch=('x86_64')
license=('GPL3' 'LGPL2.1')
url="https://www.gnutls.org/"
options=('!zipman')
-depends=('gcc-libs' 'libtasn1' 'readline' 'zlib' 'nettle' 'p11-kit' 'libidn' 'libunistring')
+depends=('gcc-libs' 'libtasn1' 'readline' 'zlib' 'nettle' 'p11-kit' 'libidn2'
+ 'libidn2.so' 'libunistring')
checkdepends=('net-tools')
optdepends=('guile: for use with Guile bindings')
-source=(https://www.gnupg.org/ftp/gcrypt/gnutls/v3.5/${pkgname}-${pkgver}.tar.xz{,.sig})
-sha256sums=('ae2248d9e78747cf9c469dde81ff8f90b56838b707a0637f3f7d4eee90e80234'
+source=(https://www.gnupg.org/ftp/gcrypt/gnutls/v3.6/${pkgname}-${pkgver}.tar.xz{,.sig})
+sha256sums=('0ea8c3283de8d8335d7ae338ef27c53a916f15f382753b174c18b45ffd481558'
'SKIP')
-validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F'
- '1F42418905D8206AA754CCDC29EE58B996865171')
- # "Simon Josefsson <simon@josefsson.org>"
- # "Nikos Mavrogiannopoulos <nmav@gnutls.org>
-
-prepare() {
- cd ${pkgname}-${pkgver}
- # fix a broken test
-# sed 's/global_init/gnutls_global_init/g' -i tests/trust-store.c
-}
+validpgpkeys=('0424D4EE81A0E3D119C6F835EDA21E94B565716F') # "Simon Josefsson <simon@josefsson.org>"
+validpgpkeys+=('1F42418905D8206AA754CCDC29EE58B996865171') # "Nikos Mavrogiannopoulos <nmav@gnutls.org>
+validpgpkeys+=('462225C3B46F34879FC8496CD605848ED7E69871') # "Daiki Ueno <ueno@unixuser.org>"
build() {
cd ${pkgname}-${pkgver}
-
- # disable libidn for security reasons:
- # http://lists.gnupg.org/pipermail/gnutls-devel/2015-May/007582.html
-
./configure --prefix=/usr \
--with-zlib \
--disable-static \
- --without-idn \
- --enable-openssl-compatibility \
+ --with-idn \
+ --enable-openssl-compatibility \
--enable-guile --with-guile-site-dir=no \
--with-default-trust-store-pkcs11="pkcs11:model=p11-kit-trust;manufacturer=PKCS%2311%20Kit"
sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
@@ -55,6 +44,6 @@ package() {
# lots of .png files are put into infodir and are gzipped by makepkg! this needs to be fixed by using !zipman
# gzip -9 all files in infodir and manpages manually
- find "$pkgdir/usr/share/info" -name '*.info*' -exec gzip -9 {} \;
- find "$pkgdir/usr/share/man" -exec gzip -9 {} \;
+ find "$pkgdir/usr/share/info" -name '*.info*' -exec gzip -n -9 {} \;
+ find "$pkgdir/usr/share/man" -exec gzip -n -9 {} \;
}
diff --git a/abs/core/gperf/PKGBUILD b/abs/core/gperf/PKGBUILD
index 7c3ec52..944baf2 100644
--- a/abs/core/gperf/PKGBUILD
+++ b/abs/core/gperf/PKGBUILD
@@ -1,34 +1,33 @@
-# $Id: PKGBUILD 140657 2011-10-17 19:09:57Z andrea $
# Maintainer:
# Contributor: Jan de Groot <jgc@archlinux.org>
pkgname=gperf
-pkgver=3.0.4
-pkgrel=4
+pkgver=3.1
+pkgrel=3
pkgdesc="Perfect hash function generator"
-arch=('x86_64' 'i686')
-url="http://www.gnu.org/software/gperf/"
+arch=('x86_64')
+url="https://www.gnu.org/software/gperf/"
license=('GPL3')
depends=('gcc-libs' 'texinfo')
-install=gperf.install
-source=("http://ftp.gnu.org/pub/gnu/gperf/${pkgname}-${pkgver}.tar.gz"{,.sig})
-sha1sums=('e32d4aff8f0c730c9a56554377b2c6d82d0951b8'
- '85b8c44964a70a63d751afa5906796a0417e64ce')
+source=("https://ftp.gnu.org/pub/gnu/gperf/${pkgname}-${pkgver}.tar.gz"{,.sig})
+sha1sums=('e3c0618c2d2e5586eda9498c867d5e4858a3b0e2'
+ 'SKIP')
options=('!makeflags')
+validpgpkeys=('EDEB87A500CC0A211677FBFD93C08C88471097CD') # Marcel Schaible <marcel.schaible@studium.fernuni-hagen.de>
build() {
- cd "${srcdir}"/${pkgname}-${pkgver}
+ cd ${pkgname}-${pkgver}
./configure --prefix=/usr \
--docdir=/usr/share/gperf/doc/
make
}
check() {
- cd "${srcdir}"/${pkgname}-${pkgver}
+ cd ${pkgname}-${pkgver}
make check
}
package() {
- cd "${srcdir}"/${pkgname}-${pkgver}
+ cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/gperf/gperf.install b/abs/core/gperf/gperf.install
deleted file mode 100644
index 90ac2a8..0000000
--- a/abs/core/gperf/gperf.install
+++ /dev/null
@@ -1,16 +0,0 @@
-infodir=usr/share/info
-file=gperf.info.gz
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- install-info $infodir/$file $infodir/dir 2> /dev/null
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- install-info --delete $infodir/$file $infodir/dir 2> /dev/null
-}
diff --git a/abs/core/gpgme/PKGBUILD b/abs/core/gpgme/PKGBUILD
index 8c1150e..57fe28f 100644
--- a/abs/core/gpgme/PKGBUILD
+++ b/abs/core/gpgme/PKGBUILD
@@ -1,36 +1,82 @@
-# $Id: PKGBUILD 154388 2012-03-27 12:00:19Z bisson $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: Roman Kyrylych <roman@archlinux.org>
# Contributor: Sarah Hay <sarah@archlinux.org>
-pkgname=gpgme
-pkgver=1.3.1
-pkgrel=4
+pkgbase=gpgme
+pkgname=(gpgme qgpgme python-gpgme)
+pkgver=1.14.0
+pkgrel=1
+_python_ver=3.8
pkgdesc="A C wrapper library for GnuPG"
-arch=('i686' 'x86_64')
-url="http://www.gnupg.org/related_software/gpgme/"
-license=('GPL')
-depends=('libgpg-error' 'pth' 'gnupg>=2')
-install=${pkgname}.install
-options=('!libtool' '!emptydirs')
-source=(ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig})
-md5sums=('90afa8436ce2b2683c001c824bd22601'
- 'a032ddc27177ef4ee54e25a231e62da5')
-sha1sums=('7d19a95a2239da13764dad7f97541be884ec5a37'
- '93316a81a8f903c5b604716b6937884ea7b0917a')
+arch=('x86_64')
+url='https://www.gnupg.org/related_software/gpgme/'
+license=('LGPL')
+makedepends=('libgpg-error' 'gnupg' 'qt5-base' 'python' 'swig')
+source=("https://www.gnupg.org/ftp/gcrypt/${pkgbase}/${pkgbase}-${pkgver}.tar.bz2"{,.sig})
+sha256sums=('cef1f710a6b0d28f5b44242713ad373702d1466dcbe512eb4e754d7f35cd4307'
+ 'SKIP')
+validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6') # Werner Koch
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- ./configure --prefix=/usr --disable-static
+ cd ${pkgbase}-${pkgver}
+
+ export PYTHONHASHSEED=0
+ ./configure \
+ --prefix=/usr \
+ --disable-fd-passing \
+ --disable-static \
+ --disable-gpgsm-test
make
+
+ # ensure reproducibility of .pyc files
+ touch -d @$SOURCE_DATE_EPOCH lang/python/version.py
+ touch -d @$SOURCE_DATE_EPOCH lang/python/python${_python_ver}-gpg/lib.linux-x86_64-${_python_ver}/gpg/gpgme.py
+
+ # .pyc files will be created if check() is used - generate them here
+
}
check() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd ${pkgbase}-${pkgver}
+
+ # this test fails with gnupg (FS#66572)
+ sed -i 's#"t-keylist-secret",##' tests/json/t-json.c
+
make check
+
+ # ensure reproducibilty whether test-suite is run or not
+ find . -name *.pyc -exec rm {} +
}
-package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+package_gpgme() {
+ depends=('libgpg-error' 'gnupg>=2')
+ options=('!emptydirs')
+ provides=('libgpgme.so'
+ 'libgpgmepp.so')
+
+ cd ${pkgbase}-${pkgver}
+
+ make DESTDIR="${pkgdir}" install
+
+ # split qgpgme
+ rm -r "${pkgdir}"/usr/include/{qgpgme,QGpgME}/
+ rm -r "${pkgdir}"/usr/lib/{cmake/QGpgme/,libqgpgme.*}
+ rm -r "${pkgdir}"/usr/lib/python*
+}
+
+package_qgpgme() {
+ pkgdesc="Qt bindings for GPGme"
+ depends=('gpgme' 'qt5-base')
+
+ cd ${pkgbase}-${pkgver}/lang/qt
+
+ make DESTDIR="${pkgdir}" install
+}
+
+package_python-gpgme() {
+ pkgdesc="Python bindings for GPGme"
+ depends=('gpgme' 'python')
+
+ cd ${pkgbase}-${pkgver}/lang/python
+ make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/gpgme/gpgme.install b/abs/core/gpgme/gpgme.install
deleted file mode 100644
index b54620d..0000000
--- a/abs/core/gpgme/gpgme.install
+++ /dev/null
@@ -1,18 +0,0 @@
-infodir=/usr/share/info
-filelist=(gpgme.info gpgme.info-1 gpgme.info-2)
-
-post_install() {
- for file in ${filelist[@]}; do
- install-info $infodir/$file $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file $infodir/dir 2> /dev/null
- done
-}
diff --git a/abs/core/inetutils/PKGBUILD b/abs/core/inetutils/PKGBUILD
index f972945..9f9e847 100644
--- a/abs/core/inetutils/PKGBUILD
+++ b/abs/core/inetutils/PKGBUILD
@@ -1,14 +1,12 @@
-# $Id$
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=inetutils
pkgver=1.9.4
-pkgrel=5
+pkgrel=8
pkgdesc="A collection of common network programs"
arch=('x86_64')
-url="http://www.gnu.org/software/inetutils/"
+url="https://www.gnu.org/software/inetutils/"
license=('GPL3')
-groups=('base')
depends=('pam' 'libcap')
makedepends=('help2man')
backup=('etc/xinetd.d/telnet' 'etc/xinetd.d/talk'
diff --git a/abs/core/json-c/PKGBUILD b/abs/core/json-c/PKGBUILD
new file mode 100644
index 0000000..decb89b
--- /dev/null
+++ b/abs/core/json-c/PKGBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
+# Contributor: Geoffroy Carrier <geoffroy.carrier@koon.fr>
+# Contributor: congyiwu <congyiwu AT gmail DOT com>
+
+pkgname=json-c
+pkgver=0.15
+pkgrel=1
+pkgdesc="A JSON implementation in C"
+url="https://github.com/json-c/json-c/wiki"
+license=(MIT)
+arch=(x86_64)
+depends=(glibc)
+makedepends=(git cmake)
+provides=(libjson-c.so)
+_commit=9021cdcdd01fc9dbcbe1f06391848c2ac915212f # tags/json-c-0.15-20200726^0
+source=("git+https://github.com/json-c/json-c#commit=$_commit")
+sha256sums=('SKIP')
+
+pkgver() {
+ cd json-c
+ local tag="$(git describe --tags --abbrev=0)"
+ local ver="$(git describe --tags)"
+ echo "${tag%-*}${ver#$tag}" | sed 's/^json-c-//;s/-/+/g'
+}
+
+prepare() {
+ cd json-c
+}
+
+build() {
+ CFLAGS+=" $CPPFLAGS"
+ CXXFLAGS+=" $CPPFLAGS"
+
+ cmake -Hjson-c -Bbuild \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DENABLE_THREADING=ON \
+ -DENABLE_RDRAND=OFF
+ cmake --build build
+}
+
+check() {
+ cmake --build build --target test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 json-c/COPYING
+}
+
+# vim:set sw=2 et:
diff --git a/abs/core/keylaunch/PKGBUILD b/abs/core/keylaunch/PKGBUILD
index 5d77379..730c7c4 100644
--- a/abs/core/keylaunch/PKGBUILD
+++ b/abs/core/keylaunch/PKGBUILD
@@ -1,8 +1,8 @@
pkgname=keylaunch
pkgver=1.3.9
-pkgrel=9
-arch=('i686' 'x86_64')
-pkgdesc="KeyLaunch is a small utility for binding commands to a hot key. "
+pkgrel=10
+arch=('x86_64')
+pkgdesc="KeyLaunch is a small utility for binding commands to a hot key."
url="http://www.oroborus.org/"
depends=(glibc)
source=(http://ftp.debian.org/debian/pool/main/k/keylaunch/keylaunch_1.3.9.tar.gz example_rc)
@@ -12,11 +12,12 @@ build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr
make
- make DESTDIR=$pkgdir install
}
package() {
+ cd $srcdir/$pkgname-$pkgver
+ make DESTDIR=$pkgdir install
install -D -m0755 $srcdir/example_rc $pkgdir/etc/keylaunchrc
}
md5sums=('710f68a3e7026b4139cc94ea790576c3'
- '1141e182e2accb02c17548189bead4dc')
+ '3d6845a9c30fc511a6202246d5a840e3')
diff --git a/abs/core/keylaunch/example_rc b/abs/core/keylaunch/example_rc
index 8d409df..e80c920 100644
--- a/abs/core/keylaunch/example_rc
+++ b/abs/core/keylaunch/example_rc
@@ -16,10 +16,9 @@ key=.**u:/usr/LH/bin/unclutter-toggle.sh
key=..*h:/usr/MythVantage/bin/mythinstall -H
key=..*m:/usr/LH/bin/mythfrontend-start
key=..*f:sudo sv restart frontend
-key=..*w:/usr/bin/google-chrome --no-first-run||msg_client.py --msg "Chrome is not installed."
+key=..*w:/usr/bin/google-chrome --no-first-run --start-maximized ||msg_client.py --msg "Chrome is not installed."
key=..*1:/usr/LH/bin/lh_backend_control.sh start
key=..*2:/usr/LH/bin/lh_backend_control.sh stop
key=..*3:/usr/LH/bin/lh_backend_control.sh restart
-
diff --git a/abs/core/krb5/PKGBUILD b/abs/core/krb5/PKGBUILD
index 4f6f841..491c8e0 100644
--- a/abs/core/krb5/PKGBUILD
+++ b/abs/core/krb5/PKGBUILD
@@ -1,8 +1,8 @@
# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
pkgname=krb5
-_pkgvermajor=1.16
-pkgver=${_pkgvermajor}
+_pkgvermajor=1.18
+pkgver=1.18.2
pkgrel=1
pkgdesc='The Kerberos network authentication system'
url='https://web.mit.edu/kerberos/'
@@ -19,7 +19,7 @@ source=(https://web.mit.edu/kerberos/dist/krb5/${_pkgvermajor}/${pkgname}-${pkgv
krb5-kpropd.service
krb5-kpropd@.service
krb5-kpropd.socket)
-sha512sums=('7e162467b95dad2b6aaa11686d08a00f1cc4eb08247fca8f0e5a8bcaa5f9f7b42cdf00db69c5c6111bdf9eb8063d53cef3bb207ce5d6a287615ca10b710153f9'
+sha512sums=('7cbb1b28e677fea3e0794e93951f3caaa2c49bb1175dd187951e72a466cc69d96c3b833d838000fe911c1a437d96a558e550f27c53a8b332fb9dfc7cbb7ec44c'
'SKIP'
'5a3782ff17b383f8cd0415fd13538ab56afd788130d6ad640e9f2682b7deaae7f25713ce358058ed771091040dccf62a3bc87e6fd473d505ec189a95debcc801'
'ae1fa980e8e30a83dfef7fe233be70a9ec530ebaffc344a0e7eba61e7de4c800421b45cf203f1e526cc8351754038d6539184b30aa049a567e2a9e80f0d39841'
diff --git a/abs/core/ldns/PKGBUILD b/abs/core/ldns/PKGBUILD
index 7604cc2..0181a2d 100644
--- a/abs/core/ldns/PKGBUILD
+++ b/abs/core/ldns/PKGBUILD
@@ -1,11 +1,10 @@
-# $Id$
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
# Contributor: mathieui <mathieui@mathieui.net>
# Contributor: jiribb <jiribb@gmail.com>
pkgname=ldns
-pkgver=1.7.0
-pkgrel=4
+pkgver=1.7.1
+pkgrel=2
pkgdesc='Fast DNS library supporting recent RFCs'
url='https://www.nlnetlabs.nl/projects/ldns/'
license=('custom:BSD')
@@ -13,15 +12,8 @@ arch=('x86_64')
depends=('openssl' 'dnssec-anchors')
optdepends=('libpcap: ldns-dpa tool')
makedepends=('libpcap')
-source=("https://www.nlnetlabs.nl/downloads/${pkgname}/${pkgname}-${pkgver}.tar.gz"
- 'pc.patch')
-sha256sums=('c19f5b1b4fb374cfe34f4845ea11b1e0551ddc67803bd6ddd5d2a20f0997a6cc'
- '3586302eed28269c7fa6013785c0a017689aa9d4ff24ff8d7735fa23a3732cb7')
-
-prepare() {
- cd "${srcdir}/${pkgname}-${pkgver}"
- patch -p1 -i ../pc.patch
-}
+source=("https://www.nlnetlabs.nl/downloads/${pkgname}/${pkgname}-${pkgver}.tar.gz")
+sha256sums=('8ac84c16bdca60e710eea75782356f3ac3b55680d40e1530d7cea474ac208229')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
diff --git a/abs/core/ldns/pc.patch b/abs/core/ldns/pc.patch
deleted file mode 100644
index a37b1c3..0000000
--- a/abs/core/ldns/pc.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 2a38f26ed5695c3ad737de082b56a296240dd51a Mon Sep 17 00:00:00 2001
-From: Willem Toorop <willem@nlnetlabs.nl>
-Date: Thu, 19 Jan 2017 09:41:51 +0100
-Subject: bugfix #1209: make install ldns.pc file
-
----
- Changelog | 4 ++++
- Makefile.in | 16 ++++++++++++++--
- 2 files changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/Changelog b/Changelog
-index 0bd3658..efda95e 100644
---- a/Changelog
-+++ b/Changelog
-@@ -1,3 +1,7 @@
-+1.7.1 ????-??-??
-+ * bugfix #1209: make install ldns.pc file
-+ Thanks Oleksandr Natalenko
-+
- 1.7.0 2016-12-20
- * Fix lookup of relative names in ldns_resolver_search.
- * bugfix #548: Double free for answers > 4096 in ldns_resolver_send_pkt
-diff --git a/Makefile.in b/Makefile.in
-index 04f683b..853777e 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -308,9 +308,9 @@ clean-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile
- test-p5-dns-ldns: $(p5_dns_ldns_dir)/Makefile
- cd $(p5_dns_ldns_dir); $(MAKE) test
-
--install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
-+install: install-h install-lib install-pc @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_DNS_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
-
--uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
-+uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib uninstall-pc $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_DNS_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
-
- destclean: uninstall
-
-@@ -355,6 +355,18 @@ uninstall-h:
- test ! -d $(DESTDIR)$(includedir)/ldns || rmdir -p $(DESTDIR)$(includedir)/ldns || echo "ok, dir already gone"
- exit 0
-
-+packaging/libldns.pc: packaging/libldns.pc.in
-+ ./config.status $@
-+
-+install-pc: packaging/libldns.pc
-+ $(INSTALL) -m 644 packaging/libldns.pc $(DESTDIR)$(libdir)/pkgconfig/ldns.pc
-+
-+uninstall-pc:
-+ $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/pkgconfig/ldns.pc
-+ test ! -d $(DESTDIR)$(libdir)/pkgconfig || rmdir -p $(DESTDIR)$(libdir)/pkgconfig || echo "ok, dir already gone"
-+ test ! -d $(DESTDIR)$(libdir) || rmdir -p $(DESTDIR)$(libdir) || echo "ok, dir already gone"
-+
-+
- install-lib: lib
- $(INSTALL) -m 755 -d $(DESTDIR)$(libdir)
- $(LIBTOOL) --mode=install cp libldns.la $(DESTDIR)$(libdir)
---
-cgit v0.11.2
-
diff --git a/abs/core/libaio/PKGBUILD b/abs/core/libaio/PKGBUILD
new file mode 100644
index 0000000..43e23f7
--- /dev/null
+++ b/abs/core/libaio/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Bartłomiej Piotrowski <barthalion@gmail.com>
+# Contributor: Thomas S Hatch <thatch45 at gmail dot com>
+
+pkgname=libaio
+pkgver=0.3.112
+pkgrel=2
+pkgdesc="The Linux-native asynchronous I/O facility (aio) library"
+arch=('x86_64')
+url="http://lse.sourceforge.net/io/aio.html"
+license=('LGPL')
+source=(http://ftp.de.debian.org/debian/pool/main/liba/$pkgname/${pkgname}_${pkgver}.orig.tar.xz)
+md5sums=('66e3b7dd255581a73542ee851f8cd737')
+
+build() {
+ cd "$srcdir/$pkgname-$pkgver"
+ # AIO library is a thin wrapper around kernel syscalls, it does not use stdlib
+ # and other helpers like stack protection libraries
+ CFLAGS="-march=${CARCH/_/-} -mtune=generic -O2 -pipe"
+ make
+}
+
+check() {
+ cd "$srcdir/$pkgname-$pkgver"
+
+ # work around gcc warning (-Werror) in test suite
+ sed -i '/strncpy/s#sizeof(TEMPLATE)#sizeof(template)#' harness/cases/19.t
+ sed -i '/strncpy/s#sizeof(TEMPLATE)#sizeof(temp_file)#' harness/cases/21.t
+
+ make partcheck
+}
+
+package() {
+ cd "$srcdir/$pkgname-$pkgver"
+ make prefix="$pkgdir/usr" install
+}
+
diff --git a/abs/core/libarchive/0001-Limit-write-requests-to-at-most-INT_MAX.patch b/abs/core/libarchive/0001-Limit-write-requests-to-at-most-INT_MAX.patch
deleted file mode 100644
index c805ce1..0000000
--- a/abs/core/libarchive/0001-Limit-write-requests-to-at-most-INT_MAX.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 22531545514043e04633e1c015c7540b9de9dbe4 Mon Sep 17 00:00:00 2001
-From: Tim Kientzle <kientzle@acm.org>
-Date: Fri, 22 Mar 2013 23:48:41 -0700
-Subject: [PATCH] Limit write requests to at most INT_MAX. This prevents a
- certain common programming error (passing -1 to write) from leading to other
- problems deeper in the library.
-
----
- libarchive/archive_write.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libarchive/archive_write.c b/libarchive/archive_write.c
-index eede5e0..be85621 100644
---- a/libarchive/archive_write.c
-+++ b/libarchive/archive_write.c
-@@ -673,8 +673,13 @@ static ssize_t
- _archive_write_data(struct archive *_a, const void *buff, size_t s)
- {
- struct archive_write *a = (struct archive_write *)_a;
-+ const size_t max_write = INT_MAX;
-+
- archive_check_magic(&a->archive, ARCHIVE_WRITE_MAGIC,
- ARCHIVE_STATE_DATA, "archive_write_data");
-+ /* In particular, this catches attempts to pass negative values. */
-+ if (s > max_write)
-+ s = max_write;
- archive_clear_error(&a->archive);
- return ((a->format_write_data)(a, buff, s));
- }
---
-1.9.0
-
diff --git a/abs/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch b/abs/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch
deleted file mode 100644
index a255f2c..0000000
--- a/abs/core/libarchive/0001-mtree-fix-line-filename-length-calculation.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e65bf287f0133426b26611fe3e80b51267987106 Mon Sep 17 00:00:00 2001
-From: Dave Reisner <dreisner@archlinux.org>
-Date: Thu, 21 Feb 2013 19:01:06 -0500
-Subject: [PATCH] mtree: fix line filename length calculation. Fixes #301.
- Signed-off-by: Andres Mejia <amejia004@gmail.com>
-
----
- libarchive/archive_write_set_format_mtree.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libarchive/archive_write_set_format_mtree.c b/libarchive/archive_write_set_format_mtree.c
-index 9c0613c..f37f723 100644
---- a/libarchive/archive_write_set_format_mtree.c
-+++ b/libarchive/archive_write_set_format_mtree.c
-@@ -1855,9 +1855,9 @@ mtree_entry_setup_filenames(struct archive_write *a, struct mtree_entry *file,
- return (ret);
- }
-
-- /* Make a basename from dirname and slash */
-+ /* Make a basename from file->parentdir.s and slash */
- *slash = '\0';
-- file->parentdir.length = slash - dirname;
-+ file->parentdir.length = slash - file->parentdir.s;
- archive_strcpy(&(file->basename), slash + 1);
- return (ret);
- }
---
-1.8.1.4
-
diff --git a/abs/core/libarchive/PKGBUILD b/abs/core/libarchive/PKGBUILD
index 4bb4c70..5893a0e 100644
--- a/abs/core/libarchive/PKGBUILD
+++ b/abs/core/libarchive/PKGBUILD
@@ -1,59 +1,39 @@
-# $Id$
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Maintainer: Dan McGee <dan@archlinux.org>
pkgname=libarchive
-pkgver=3.1.2
-pkgrel=10
-pkgdesc="library that can create and read several streaming archive formats"
-arch=('i686' 'x86_64')
-url="http://libarchive.org/"
+pkgver=3.4.3
+pkgrel=1
+pkgdesc='Multi-format archive and compression library'
+arch=('x86_64')
+url='https://libarchive.org/'
license=('BSD')
-depends=('acl' 'attr' 'bzip2' 'expat' 'lzo' 'nettle>=3.2-1' 'openssl' 'xz' 'zlib')
-options=('strip' 'debug' 'libtool')
+depends=('acl' 'libacl.so' 'bzip2' 'expat' 'lz4' 'openssl' 'xz' 'zlib' 'zstd')
provides=('libarchive.so')
-source=("http://libarchive.org/downloads/$pkgname-$pkgver.tar.gz"
- '0001-mtree-fix-line-filename-length-calculation.patch'
- '0001-Limit-write-requests-to-at-most-INT_MAX.patch'
- 'libarchive-3.1.2-acl.patch'
- 'libarchive-3.1.2-sparce-mtree.patch')
-md5sums=('efad5a503f66329bb9d2f4308b5de98a'
- 'fda89c145bbcd793a96b06b463ef6a72'
- '9bf80940bd3ce861137a0a8dcacf5705'
- 'a5c995661c62429ceff2c23ea322393b'
- 'cb344a879b3c4550fe3faf86c3826f23')
+validpgpkeys=('A5A45B12AD92D964B89EEE2DEC560C81CEC2276E') # Martin Matuska <mm@FreeBSD.org>
+source=("https://github.com/${pkgname}/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.xz"{,.asc})
+sha256sums=('0bfc3fd40491768a88af8d9b86bf04a9e95b6d41a94f9292dbc0ec342288c05f'
+ 'SKIP')
-prepare() {
- cd "$pkgname-$pkgver"
-
- # https://code.google.com/p/libarchive/issues/detail?id=301
- # upstream commit e65bf287f0133426b26611fe3e80b51267987106
- patch -Np1 -i "$srcdir/0001-mtree-fix-line-filename-length-calculation.patch"
-
- # https://code.google.com/p/libarchive/issues/detail?id=329
- patch -Np1 -i "$srcdir/libarchive-3.1.2-acl.patch"
-
- # CVE-2013-0211
- patch -Np1 -i "$srcdir/0001-Limit-write-requests-to-at-most-INT_MAX.patch"
+build() {
+ cd $pkgname-$pkgver
- # upstream commit 977bf2a4 - improved mtree support
- patch -p1 -i $srcdir/libarchive-3.1.2-sparce-mtree.patch
-}
+ ./configure \
+ --prefix=/usr \
+ --without-xml2 \
+ --without-nettle \
+ --disable-static
-build() {
- cd "$pkgname-$pkgver"
- ./configure --prefix=/usr --without-xml2
make
}
check() {
- cd "$pkgname-$pkgver"
-
+ cd $pkgname-$pkgver
make check
}
package() {
- cd "$pkgname-$pkgver"
+ cd $pkgname-$pkgver
make DESTDIR="$pkgdir" install
-
- install -D -m644 COPYING "$pkgdir"/usr/share/licenses/libarchive/COPYING
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/libarchive/COPYING"
}
diff --git a/abs/core/libarchive/libarchive-3.1.2-acl.patch b/abs/core/libarchive/libarchive-3.1.2-acl.patch
deleted file mode 100644
index ce563b0..0000000
--- a/abs/core/libarchive/libarchive-3.1.2-acl.patch
+++ /dev/null
@@ -1,219 +0,0 @@
-diff -ruN libarchive-3.1.2/libarchive/archive_read_disk_entry_from_file.c libarchive-3.1.2.fixed/libarchive/archive_read_disk_entry_from_file.c
---- libarchive-3.1.2/libarchive/archive_read_disk_entry_from_file.c 2013-02-08 01:52:07.000000000 +0100
-+++ libarchive-3.1.2.fixed/libarchive/archive_read_disk_entry_from_file.c 2013-08-08 10:47:41.000000000 +0200
-@@ -399,7 +399,7 @@
- #endif
-
-
--#if defined(HAVE_POSIX_ACL) && defined(ACL_TYPE_NFS4)
-+#ifdef HAVE_POSIX_ACL
- static int translate_acl(struct archive_read_disk *a,
- struct archive_entry *entry, acl_t acl, int archive_entry_acl_type);
-
-@@ -419,6 +419,7 @@
-
- archive_entry_acl_clear(entry);
-
-+#ifdef ACL_TYPE_NFS4
- /* Try NFS4 ACL first. */
- if (*fd >= 0)
- acl = acl_get_fd(*fd);
-@@ -447,6 +448,7 @@
- acl_free(acl);
- return (ARCHIVE_OK);
- }
-+#endif
-
- /* Retrieve access ACL from file. */
- if (*fd >= 0)
-@@ -492,6 +494,7 @@
- {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE},
- {ARCHIVE_ENTRY_ACL_WRITE, ACL_WRITE},
- {ARCHIVE_ENTRY_ACL_READ, ACL_READ},
-+#ifdef ACL_TYPE_NFS4
- {ARCHIVE_ENTRY_ACL_READ_DATA, ACL_READ_DATA},
- {ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, ACL_LIST_DIRECTORY},
- {ARCHIVE_ENTRY_ACL_WRITE_DATA, ACL_WRITE_DATA},
-@@ -508,8 +511,10 @@
- {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_ACL},
- {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_WRITE_OWNER},
- {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE}
-+#endif
- };
-
-+#ifdef ACL_TYPE_NFS4
- static struct {
- int archive_inherit;
- int platform_inherit;
-@@ -519,21 +524,25 @@
- {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT},
- {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}
- };
--
-+#endif
- static int
- translate_acl(struct archive_read_disk *a,
- struct archive_entry *entry, acl_t acl, int default_entry_acl_type)
- {
- acl_tag_t acl_tag;
-+#ifdef ACL_TYPE_NFS4
- acl_entry_type_t acl_type;
- acl_flagset_t acl_flagset;
-+ int brand, r;
-+#endif
- acl_entry_t acl_entry;
- acl_permset_t acl_permset;
-- int brand, i, r, entry_acl_type;
-+ int i, entry_acl_type;
- int s, ae_id, ae_tag, ae_perm;
- const char *ae_name;
-
-
-+#ifdef ACL_TYPE_NFS4
- // FreeBSD "brands" ACLs as POSIX.1e or NFSv4
- // Make sure the "brand" on this ACL is consistent
- // with the default_entry_acl_type bits provided.
-@@ -560,6 +569,7 @@
- return ARCHIVE_FAILED;
- break;
- }
-+#endif
-
-
- s = acl_get_entry(acl, ACL_FIRST_ENTRY, &acl_entry);
-@@ -592,9 +602,11 @@
- case ACL_OTHER:
- ae_tag = ARCHIVE_ENTRY_ACL_OTHER;
- break;
-+#ifdef ACL_TYPE_NFS4
- case ACL_EVERYONE:
- ae_tag = ARCHIVE_ENTRY_ACL_EVERYONE;
- break;
-+#endif
- default:
- /* Skip types that libarchive can't support. */
- s = acl_get_entry(acl, ACL_NEXT_ENTRY, &acl_entry);
-@@ -605,6 +617,7 @@
- // XXX acl_get_entry_type_np on FreeBSD returns EINVAL for
- // non-NFSv4 ACLs
- entry_acl_type = default_entry_acl_type;
-+#ifdef ACL_TYPE_NFS4
- r = acl_get_entry_type_np(acl_entry, &acl_type);
- if (r == 0) {
- switch (acl_type) {
-@@ -634,9 +647,10 @@
- ae_perm |= acl_inherit_map[i].archive_inherit;
-
- }
-+#endif
-
- acl_get_permset(acl_entry, &acl_permset);
-- for (i = 0; i < (int)(sizeof(acl_perm_map) / sizeof(acl_perm_map[0])); ++i) {
-+ for (i = 0; i < (int)(sizeof(acl_perm_map) / sizeof(acl_perm_map[0])); ++i) {
- /*
- * acl_get_perm() is spelled differently on different
- * platforms; see above.
-diff -ruN libarchive-3.1.2/libarchive/archive_write_disk_acl.c libarchive-3.1.2.fixed/libarchive/archive_write_disk_acl.c
---- libarchive-3.1.2/libarchive/archive_write_disk_acl.c 2013-01-14 02:43:45.000000000 +0100
-+++ libarchive-3.1.2.fixed/libarchive/archive_write_disk_acl.c 2013-08-08 10:31:35.000000000 +0200
-@@ -43,7 +43,7 @@
- #include "archive_acl_private.h"
- #include "archive_write_disk_private.h"
-
--#if !defined(HAVE_POSIX_ACL) || !defined(ACL_TYPE_NFS4)
-+#ifndef HAVE_POSIX_ACL
- /* Default empty function body to satisfy mainline code. */
- int
- archive_write_disk_set_acls(struct archive *a, int fd, const char *name,
-@@ -79,10 +79,12 @@
- ret = set_acl(a, fd, name, abstract_acl, ACL_TYPE_DEFAULT,
- ARCHIVE_ENTRY_ACL_TYPE_DEFAULT, "default");
- return (ret);
-+#ifdef ACL_TYPE_NFS4
- } else if (archive_acl_count(abstract_acl, ARCHIVE_ENTRY_ACL_TYPE_NFS4) > 0) {
- ret = set_acl(a, fd, name, abstract_acl, ACL_TYPE_NFS4,
- ARCHIVE_ENTRY_ACL_TYPE_NFS4, "nfs4");
- return (ret);
-+#endif
- } else
- return ARCHIVE_OK;
- }
-@@ -94,6 +96,7 @@
- {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE},
- {ARCHIVE_ENTRY_ACL_WRITE, ACL_WRITE},
- {ARCHIVE_ENTRY_ACL_READ, ACL_READ},
-+#ifdef ACL_TYPE_NFS4
- {ARCHIVE_ENTRY_ACL_READ_DATA, ACL_READ_DATA},
- {ARCHIVE_ENTRY_ACL_LIST_DIRECTORY, ACL_LIST_DIRECTORY},
- {ARCHIVE_ENTRY_ACL_WRITE_DATA, ACL_WRITE_DATA},
-@@ -110,8 +113,10 @@
- {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_ACL},
- {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_WRITE_OWNER},
- {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE}
-+#endif
- };
-
-+#ifdef ACL_TYPE_NFS4
- static struct {
- int archive_inherit;
- int platform_inherit;
-@@ -121,6 +126,7 @@
- {ARCHIVE_ENTRY_ACL_ENTRY_NO_PROPAGATE_INHERIT, ACL_ENTRY_NO_PROPAGATE_INHERIT},
- {ARCHIVE_ENTRY_ACL_ENTRY_INHERIT_ONLY, ACL_ENTRY_INHERIT_ONLY}
- };
-+#endif
-
- static int
- set_acl(struct archive *a, int fd, const char *name,
-@@ -130,7 +136,9 @@
- acl_t acl;
- acl_entry_t acl_entry;
- acl_permset_t acl_permset;
-+#ifdef ACL_TYPE_NFS4
- acl_flagset_t acl_flagset;
-+#endif
- int ret;
- int ae_type, ae_permset, ae_tag, ae_id;
- uid_t ae_uid;
-@@ -171,14 +179,17 @@
- case ARCHIVE_ENTRY_ACL_OTHER:
- acl_set_tag_type(acl_entry, ACL_OTHER);
- break;
-+#ifdef ACL_TYPE_NFS4
- case ARCHIVE_ENTRY_ACL_EVERYONE:
- acl_set_tag_type(acl_entry, ACL_EVERYONE);
- break;
-+#endif
- default:
- /* XXX */
- break;
- }
-
-+#ifdef ACL_TYPE_NFS4
- switch (ae_type) {
- case ARCHIVE_ENTRY_ACL_TYPE_ALLOW:
- acl_set_entry_type_np(acl_entry, ACL_ENTRY_TYPE_ALLOW);
-@@ -200,6 +211,7 @@
- // XXX error handling here.
- break;
- }
-+#endif
-
- acl_get_permset(acl_entry, &acl_permset);
- acl_clear_perms(acl_permset);
-@@ -210,6 +222,7 @@
- acl_perm_map[i].platform_perm);
- }
-
-+#ifdef ACL_TYPE_NFS4
- acl_get_flagset_np(acl_entry, &acl_flagset);
- acl_clear_flags_np(acl_flagset);
- for (i = 0; i < (int)(sizeof(acl_inherit_map) / sizeof(acl_inherit_map[0])); ++i) {
-@@ -217,6 +230,7 @@
- acl_add_flag_np(acl_flagset,
- acl_inherit_map[i].platform_inherit);
- }
-+#endif
- }
-
- /* Try restoring the ACL through 'fd' if we can. */
diff --git a/abs/core/libarchive/libarchive-3.1.2-sparce-mtree.patch b/abs/core/libarchive/libarchive-3.1.2-sparce-mtree.patch
deleted file mode 100644
index 7b40277..0000000
--- a/abs/core/libarchive/libarchive-3.1.2-sparce-mtree.patch
+++ /dev/null
@@ -1,478 +0,0 @@
-From 977bf2a49484239f7a7b6ce08bfa9da413a27ead Mon Sep 17 00:00:00 2001
-From: Florian Pritz <bluewind@xinu.at>
-Date: Sat, 1 Mar 2014 17:21:47 +0100
-Subject: [PATCH] mtree: Make reading additional information from the fs
- optional
-
-This feature is not needed if users just want to read in the content of
-an mtree file and do validation against the file system themselves.
-
-It is needed for `bsdtar cvf out.tar @input.mtree` which is why the
-option is enabled in bsdtar.
-
-Since the mtree tests rely on this feature, this patch also enables it
-there.
-
-Signed-off-by: Florian Pritz <bluewind@xinu.at>
----
- libarchive/archive_read_support_format_mtree.c | 290 ++++++++++++++-----------
- libarchive/test/test_read_format_mtree.c | 20 ++
- tar/write.c | 1 +
- 3 files changed, 179 insertions(+), 132 deletions(-)
-
-diff --git a/libarchive/archive_read_support_format_mtree.c b/libarchive/archive_read_support_format_mtree.c
-index 44799df..d82d4c1 100644
---- a/libarchive/archive_read_support_format_mtree.c
-+++ b/libarchive/archive_read_support_format_mtree.c
-@@ -104,6 +104,7 @@ struct mtree {
- struct archive_entry_linkresolver *resolver;
-
- int64_t cur_size;
-+ char checkfs;
- };
-
- static int bid_keycmp(const char *, const char *, ssize_t);
-@@ -174,6 +175,29 @@ static int read_header(struct archive_read *,
- #endif
- }
-
-+static int
-+archive_read_format_mtree_options(struct archive_read *a,
-+ const char *key, const char *val)
-+{
-+ struct mtree *mtree;
-+
-+ mtree = (struct mtree *)(a->format->data);
-+ if (strcmp(key, "checkfs") == 0) {
-+ /* Allows to read information missing from the mtree from the file system */
-+ if (val == NULL || val[0] == 0) {
-+ mtree->checkfs = 0;
-+ } else {
-+ mtree->checkfs = 1;
-+ }
-+ return (ARCHIVE_OK);
-+ }
-+
-+ /* Note: The "warn" return is just to inform the options
-+ * supervisor that we didn't handle it. It will generate
-+ * a suitable error if no one used this option. */
-+ return (ARCHIVE_WARN);
-+}
-+
- static void
- free_options(struct mtree_option *head)
- {
-@@ -206,7 +230,7 @@ static int read_header(struct archive_read *,
- mtree->fd = -1;
-
- r = __archive_read_register_format(a, mtree, "mtree",
-- mtree_bid, NULL, read_header, read_data, skip, NULL, cleanup);
-+ mtree_bid, archive_read_format_mtree_options, read_header, read_data, skip, NULL, cleanup);
-
- if (r != ARCHIVE_OK)
- free(mtree);
-@@ -1104,162 +1128,164 @@ static int read_header(struct archive_read *,
- mtree->current_dir.length = n;
- }
-
-- /*
-- * Try to open and stat the file to get the real size
-- * and other file info. It would be nice to avoid
-- * this here so that getting a listing of an mtree
-- * wouldn't require opening every referenced contents
-- * file. But then we wouldn't know the actual
-- * contents size, so I don't see a really viable way
-- * around this. (Also, we may want to someday pull
-- * other unspecified info from the contents file on
-- * disk.)
-- */
-- mtree->fd = -1;
-- if (archive_strlen(&mtree->contents_name) > 0)
-- path = mtree->contents_name.s;
-- else
-- path = archive_entry_pathname(entry);
--
-- if (archive_entry_filetype(entry) == AE_IFREG ||
-- archive_entry_filetype(entry) == AE_IFDIR) {
-- mtree->fd = open(path, O_RDONLY | O_BINARY | O_CLOEXEC);
-- __archive_ensure_cloexec_flag(mtree->fd);
-- if (mtree->fd == -1 &&
-- (errno != ENOENT ||
-- archive_strlen(&mtree->contents_name) > 0)) {
-- archive_set_error(&a->archive, errno,
-- "Can't open %s", path);
-- r = ARCHIVE_WARN;
-+ if (mtree->checkfs) {
-+ /*
-+ * Try to open and stat the file to get the real size
-+ * and other file info. It would be nice to avoid
-+ * this here so that getting a listing of an mtree
-+ * wouldn't require opening every referenced contents
-+ * file. But then we wouldn't know the actual
-+ * contents size, so I don't see a really viable way
-+ * around this. (Also, we may want to someday pull
-+ * other unspecified info from the contents file on
-+ * disk.)
-+ */
-+ mtree->fd = -1;
-+ if (archive_strlen(&mtree->contents_name) > 0)
-+ path = mtree->contents_name.s;
-+ else
-+ path = archive_entry_pathname(entry);
-+
-+ if (archive_entry_filetype(entry) == AE_IFREG ||
-+ archive_entry_filetype(entry) == AE_IFDIR) {
-+ mtree->fd = open(path, O_RDONLY | O_BINARY | O_CLOEXEC);
-+ __archive_ensure_cloexec_flag(mtree->fd);
-+ if (mtree->fd == -1 &&
-+ (errno != ENOENT ||
-+ archive_strlen(&mtree->contents_name) > 0)) {
-+ archive_set_error(&a->archive, errno,
-+ "Can't open %s", path);
-+ r = ARCHIVE_WARN;
-+ }
- }
-- }
-
-- st = &st_storage;
-- if (mtree->fd >= 0) {
-- if (fstat(mtree->fd, st) == -1) {
-- archive_set_error(&a->archive, errno,
-- "Could not fstat %s", path);
-- r = ARCHIVE_WARN;
-- /* If we can't stat it, don't keep it open. */
-- close(mtree->fd);
-- mtree->fd = -1;
-+ st = &st_storage;
-+ if (mtree->fd >= 0) {
-+ if (fstat(mtree->fd, st) == -1) {
-+ archive_set_error(&a->archive, errno,
-+ "Could not fstat %s", path);
-+ r = ARCHIVE_WARN;
-+ /* If we can't stat it, don't keep it open. */
-+ close(mtree->fd);
-+ mtree->fd = -1;
-+ st = NULL;
-+ }
-+ } else if (lstat(path, st) == -1) {
- st = NULL;
- }
-- } else if (lstat(path, st) == -1) {
-- st = NULL;
-- }
-
-- /*
-- * Check for a mismatch between the type in the specification and
-- * the type of the contents object on disk.
-- */
-- if (st != NULL) {
-- if (
-- ((st->st_mode & S_IFMT) == S_IFREG &&
-- archive_entry_filetype(entry) == AE_IFREG)
-+ /*
-+ * Check for a mismatch between the type in the specification and
-+ * the type of the contents object on disk.
-+ */
-+ if (st != NULL) {
-+ if (
-+ ((st->st_mode & S_IFMT) == S_IFREG &&
-+ archive_entry_filetype(entry) == AE_IFREG)
- #ifdef S_IFLNK
-- || ((st->st_mode & S_IFMT) == S_IFLNK &&
-- archive_entry_filetype(entry) == AE_IFLNK)
-+ || ((st->st_mode & S_IFMT) == S_IFLNK &&
-+ archive_entry_filetype(entry) == AE_IFLNK)
- #endif
- #ifdef S_IFSOCK
-- || ((st->st_mode & S_IFSOCK) == S_IFSOCK &&
-- archive_entry_filetype(entry) == AE_IFSOCK)
-+ || ((st->st_mode & S_IFSOCK) == S_IFSOCK &&
-+ archive_entry_filetype(entry) == AE_IFSOCK)
- #endif
- #ifdef S_IFCHR
-- || ((st->st_mode & S_IFMT) == S_IFCHR &&
-- archive_entry_filetype(entry) == AE_IFCHR)
-+ || ((st->st_mode & S_IFMT) == S_IFCHR &&
-+ archive_entry_filetype(entry) == AE_IFCHR)
- #endif
- #ifdef S_IFBLK
-- || ((st->st_mode & S_IFMT) == S_IFBLK &&
-- archive_entry_filetype(entry) == AE_IFBLK)
-+ || ((st->st_mode & S_IFMT) == S_IFBLK &&
-+ archive_entry_filetype(entry) == AE_IFBLK)
- #endif
-- || ((st->st_mode & S_IFMT) == S_IFDIR &&
-- archive_entry_filetype(entry) == AE_IFDIR)
-+ || ((st->st_mode & S_IFMT) == S_IFDIR &&
-+ archive_entry_filetype(entry) == AE_IFDIR)
- #ifdef S_IFIFO
-- || ((st->st_mode & S_IFMT) == S_IFIFO &&
-- archive_entry_filetype(entry) == AE_IFIFO)
-+ || ((st->st_mode & S_IFMT) == S_IFIFO &&
-+ archive_entry_filetype(entry) == AE_IFIFO)
- #endif
-- ) {
-- /* Types match. */
-- } else {
-- /* Types don't match; bail out gracefully. */
-- if (mtree->fd >= 0)
-- close(mtree->fd);
-- mtree->fd = -1;
-- if (parsed_kws & MTREE_HAS_OPTIONAL) {
-- /* It's not an error for an optional entry
-- to not match disk. */
-- *use_next = 1;
-- } else if (r == ARCHIVE_OK) {
-- archive_set_error(&a->archive,
-- ARCHIVE_ERRNO_MISC,
-- "mtree specification has different type for %s",
-- archive_entry_pathname(entry));
-- r = ARCHIVE_WARN;
-- }
-- return r;
-+ ) {
-+ /* Types match. */
-+ } else {
-+ /* Types don't match; bail out gracefully. */
-+ if (mtree->fd >= 0)
-+ close(mtree->fd);
-+ mtree->fd = -1;
-+ if (parsed_kws & MTREE_HAS_OPTIONAL) {
-+ /* It's not an error for an optional entry
-+ to not match disk. */
-+ *use_next = 1;
-+ } else if (r == ARCHIVE_OK) {
-+ archive_set_error(&a->archive,
-+ ARCHIVE_ERRNO_MISC,
-+ "mtree specification has different type for %s",
-+ archive_entry_pathname(entry));
-+ r = ARCHIVE_WARN;
-+ }
-+ return r;
-+ }
- }
-- }
-
-- /*
-- * If there is a contents file on disk, pick some of the metadata
-- * from that file. For most of these, we only set it from the contents
-- * if it wasn't already parsed from the specification.
-- */
-- if (st != NULL) {
-- if (((parsed_kws & MTREE_HAS_DEVICE) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0) &&
-- (archive_entry_filetype(entry) == AE_IFCHR ||
-- archive_entry_filetype(entry) == AE_IFBLK))
-- archive_entry_set_rdev(entry, st->st_rdev);
-- if ((parsed_kws & (MTREE_HAS_GID | MTREE_HAS_GNAME)) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-- archive_entry_set_gid(entry, st->st_gid);
-- if ((parsed_kws & (MTREE_HAS_UID | MTREE_HAS_UNAME)) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-- archive_entry_set_uid(entry, st->st_uid);
-- if ((parsed_kws & MTREE_HAS_MTIME) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0) {
-+ /*
-+ * If there is a contents file on disk, pick some of the metadata
-+ * from that file. For most of these, we only set it from the contents
-+ * if it wasn't already parsed from the specification.
-+ */
-+ if (st != NULL) {
-+ if (((parsed_kws & MTREE_HAS_DEVICE) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0) &&
-+ (archive_entry_filetype(entry) == AE_IFCHR ||
-+ archive_entry_filetype(entry) == AE_IFBLK))
-+ archive_entry_set_rdev(entry, st->st_rdev);
-+ if ((parsed_kws & (MTREE_HAS_GID | MTREE_HAS_GNAME)) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-+ archive_entry_set_gid(entry, st->st_gid);
-+ if ((parsed_kws & (MTREE_HAS_UID | MTREE_HAS_UNAME)) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-+ archive_entry_set_uid(entry, st->st_uid);
-+ if ((parsed_kws & MTREE_HAS_MTIME) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0) {
- #if HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC
-- archive_entry_set_mtime(entry, st->st_mtime,
-- st->st_mtimespec.tv_nsec);
-+ archive_entry_set_mtime(entry, st->st_mtime,
-+ st->st_mtimespec.tv_nsec);
- #elif HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC
-- archive_entry_set_mtime(entry, st->st_mtime,
-- st->st_mtim.tv_nsec);
-+ archive_entry_set_mtime(entry, st->st_mtime,
-+ st->st_mtim.tv_nsec);
- #elif HAVE_STRUCT_STAT_ST_MTIME_N
-- archive_entry_set_mtime(entry, st->st_mtime,
-- st->st_mtime_n);
-+ archive_entry_set_mtime(entry, st->st_mtime,
-+ st->st_mtime_n);
- #elif HAVE_STRUCT_STAT_ST_UMTIME
-- archive_entry_set_mtime(entry, st->st_mtime,
-- st->st_umtime*1000);
-+ archive_entry_set_mtime(entry, st->st_mtime,
-+ st->st_umtime*1000);
- #elif HAVE_STRUCT_STAT_ST_MTIME_USEC
-- archive_entry_set_mtime(entry, st->st_mtime,
-- st->st_mtime_usec*1000);
-+ archive_entry_set_mtime(entry, st->st_mtime,
-+ st->st_mtime_usec*1000);
- #else
-- archive_entry_set_mtime(entry, st->st_mtime, 0);
-+ archive_entry_set_mtime(entry, st->st_mtime, 0);
- #endif
-+ }
-+ if ((parsed_kws & MTREE_HAS_NLINK) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-+ archive_entry_set_nlink(entry, st->st_nlink);
-+ if ((parsed_kws & MTREE_HAS_PERM) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-+ archive_entry_set_perm(entry, st->st_mode);
-+ if ((parsed_kws & MTREE_HAS_SIZE) == 0 ||
-+ (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-+ archive_entry_set_size(entry, st->st_size);
-+ archive_entry_set_ino(entry, st->st_ino);
-+ archive_entry_set_dev(entry, st->st_dev);
-+
-+ archive_entry_linkify(mtree->resolver, &entry, &sparse_entry);
-+ } else if (parsed_kws & MTREE_HAS_OPTIONAL) {
-+ /*
-+ * Couldn't open the entry, stat it or the on-disk type
-+ * didn't match. If this entry is optional, just ignore it
-+ * and read the next header entry.
-+ */
-+ *use_next = 1;
-+ return ARCHIVE_OK;
- }
-- if ((parsed_kws & MTREE_HAS_NLINK) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-- archive_entry_set_nlink(entry, st->st_nlink);
-- if ((parsed_kws & MTREE_HAS_PERM) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-- archive_entry_set_perm(entry, st->st_mode);
-- if ((parsed_kws & MTREE_HAS_SIZE) == 0 ||
-- (parsed_kws & MTREE_HAS_NOCHANGE) != 0)
-- archive_entry_set_size(entry, st->st_size);
-- archive_entry_set_ino(entry, st->st_ino);
-- archive_entry_set_dev(entry, st->st_dev);
--
-- archive_entry_linkify(mtree->resolver, &entry, &sparse_entry);
-- } else if (parsed_kws & MTREE_HAS_OPTIONAL) {
-- /*
-- * Couldn't open the entry, stat it or the on-disk type
-- * didn't match. If this entry is optional, just ignore it
-- * and read the next header entry.
-- */
-- *use_next = 1;
-- return ARCHIVE_OK;
- }
-
- mtree->cur_size = archive_entry_size(entry);
-diff --git a/libarchive/test/test_read_format_mtree.c b/libarchive/test/test_read_format_mtree.c
-index 830fa0a..f96529d 100644
---- a/libarchive/test/test_read_format_mtree.c
-+++ b/libarchive/test/test_read_format_mtree.c
-@@ -58,6 +58,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_filename(a, reffile, 11));
-
- /*
-@@ -209,6 +211,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive, sizeof(archive)));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualInt(archive_format(a), ARCHIVE_FORMAT_MTREE);
-@@ -246,6 +250,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive, sizeof(archive)));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString(archive_entry_pathname(ae), "a");
-@@ -299,6 +305,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive, sizeof(archive)));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString(archive_entry_pathname(ae), "./a");
-@@ -365,6 +373,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive, sizeof(archive)));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString(archive_entry_pathname(ae), "./a");
-@@ -402,6 +412,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive2, sizeof(archive2)));
- assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae));
- assertEqualString(archive_entry_pathname(ae), "./a");
-@@ -449,6 +461,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_filename(a, reffile, 11));
-
- /*
-@@ -552,6 +566,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_filename(a, reffile, 11));
-
- /*
-@@ -617,6 +633,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_filename(a, reffile, 11));
-
- /*
-@@ -680,6 +698,8 @@
- assertEqualIntA(a, ARCHIVE_OK,
- archive_read_support_format_all(a));
- assertEqualIntA(a, ARCHIVE_OK,
-+ archive_read_set_options(a, "mtree:checkfs"));
-+ assertEqualIntA(a, ARCHIVE_OK,
- archive_read_open_memory(a, archive, sizeof(archive)));
- assertEqualIntA(a, ARCHIVE_WARN, archive_read_next_header(a, &ae));
- assert(strlen(archive_error_string(a)) > 0);
-diff --git a/tar/write.c b/tar/write.c
-index 40d2fb0..7e8cb13 100644
---- a/tar/write.c
-+++ b/tar/write.c
-@@ -648,6 +648,7 @@ static void write_hierarchy(struct bsdtar *, struct archive *,
- archive_read_support_format_all(ina);
- archive_read_support_filter_all(ina);
- set_reader_options(bsdtar, a);
-+ archive_read_set_options(ina, "mtree:checkfs");
- if (archive_read_open_filename(ina, filename,
- bsdtar->bytes_per_block)) {
- lafe_warnc(0, "%s", archive_error_string(ina));
---
-1.8.5.5
-
diff --git a/abs/core/libcap/PKGBUILD b/abs/core/libcap/PKGBUILD
index b6dbd5a..28c8d60 100644
--- a/abs/core/libcap/PKGBUILD
+++ b/abs/core/libcap/PKGBUILD
@@ -1,42 +1,47 @@
-#$Id: PKGBUILD 203064 2014-01-03 09:18:41Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Hugo Doria <hugo@archlinux.org>
pkgname=libcap
-pkgver=2.23
-pkgrel=2
-pkgdesc="POSIX 1003.1e capabilities"
-arch=('i686' 'x86_64')
-url="http://sites.google.com/site/fullycapable/"
-license=('GPL2')
-depends=('glibc' 'attr')
-options=('!staticlibs')
-source=(https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-2.23.tar.xz
- libcap-2.23-header.patch)
+pkgver=2.44
+pkgrel=1
+pkgdesc='POSIX 1003.1e capabilities'
+arch=(x86_64)
+url='https://sites.google.com/site/fullycapable/'
+license=(GPL2)
+depends=(glibc attr)
+makedepends=(linux-api-headers)
+provides=(libcap.so)
+source=(https://kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-$pkgver.tar.{xz,sign})
+validpgpkeys=(38A644698C69787344E954CE29EE848AE2CCF3F4) # Andrew G. Morgan <morgan@kernel.org>
+sha512sums=('1bb323ca362923bd6bd0e2e4639cf8726975165a620a243b31e797056439eb7efb2bfbc8e5521636783a86c7415b2037b1638c98747b79183ca7d3d42a04ff20'
+ 'SKIP')
prepare() {
- cd ${srcdir}/${pkgname}-${pkgver}
-
- # install into /usr/bin
+ cd $pkgname-$pkgver
sed -i "/SBINDIR/s#sbin#bin#" Make.Rules
- # fix header path issues
- patch -p1 -i $srcdir/libcap-2.23-header.patch
- # and fix the build with that patch
- sed -i "s#uapi/##" libcap/Makefile
+ # use our buildflags
+ sed -i "s/CFLAGS :=/CFLAGS += \$(CPPFLAGS) /" Make.Rules
+ sed -i "s/LDFLAGS :=/LDFLAGS +=/" Make.Rules
}
+_makeargs=(
+ KERNEL_HEADERS=/usr/include
+ RAISE_SETFCAP=no
+ SBINDIR=/usr/bin
+ lib=lib
+ prefix=/usr
+)
+
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make
+ make -C $pkgname-$pkgver "${_makeargs[@]}"
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make prefix=/usr lib=/lib DESTDIR=${pkgdir} RAISE_SETFCAP=no install
-
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" "${_makeargs[@]}" install
+
install -Dm644 pam_cap/capability.conf \
- $pkgdir/usr/share/doc/$pkgname/capability.conf.example
+ "$pkgdir"/usr/share/doc/$pkgname/capability.conf.example
}
-md5sums=('09a185e4b0aa8a81a51c1e4d0eba7db0'
- '945984c4bf5e601c24a7c80f001fb2c6')
diff --git a/abs/core/libcap/libcap-2.23-header.patch b/abs/core/libcap/libcap-2.23-header.patch
deleted file mode 100644
index 74c45e0..0000000
--- a/abs/core/libcap/libcap-2.23-header.patch
+++ /dev/null
@@ -1,350 +0,0 @@
-From c3290668646b767058e55b29f7b8f4be4af2e660 Mon Sep 17 00:00:00 2001
-From: Andrew G Morgan <morgan@kernel.org>
-Date: Thu, 02 Jan 2014 01:56:31 +0000
-Subject: Fix up the uapi/linux include scheme.
-
-In adopting this uapi header file (without kernel internals), I previously
-messed up on the apparent location of the files. Thanks to Tom Gundersen for
-the clarification. Also, delete the non-uapi copies of things since they
-are no longer needed to build the library and tools.
-
-Signed-off-by: Andrew G Morgan <morgan@kernel.org>
----
-diff --git a/Make.Rules b/Make.Rules
-index 9ca6c89..5b58c59 100644
---- a/Make.Rules
-+++ b/Make.Rules
-@@ -45,8 +45,8 @@ MINOR=23
-
- # Compilation specifics
-
--KERNEL_HEADERS := $(topdir)/libcap/include
--IPATH += -fPIC -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
-+KERNEL_HEADERS := $(topdir)/libcap/include/uapi
-+IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include
-
- CC := gcc
- CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-diff --git a/libcap/include/linux/capability.h b/libcap/include/linux/capability.h
-deleted file mode 100644
-index a6ee1f9..0000000
---- a/libcap/include/linux/capability.h
-+++ /dev/null
-@@ -1,219 +0,0 @@
--/*
-- * This is <linux/capability.h>
-- *
-- * Andrew G. Morgan <morgan@kernel.org>
-- * Alexander Kjeldaas <astor@guardian.no>
-- * with help from Aleph1, Roland Buresund and Andrew Main.
-- *
-- * See here for the libcap library ("POSIX draft" compliance):
-- *
-- * ftp://www.kernel.org/pub/linux/libs/security/linux-privs/kernel-2.6/
-- */
--#ifndef _LINUX_CAPABILITY_H
--#define _LINUX_CAPABILITY_H
--
--#include <uapi/linux/capability.h>
--
--
--#define _KERNEL_CAPABILITY_VERSION _LINUX_CAPABILITY_VERSION_3
--#define _KERNEL_CAPABILITY_U32S _LINUX_CAPABILITY_U32S_3
--
--extern int file_caps_enabled;
--
--typedef struct kernel_cap_struct {
-- __u32 cap[_KERNEL_CAPABILITY_U32S];
--} kernel_cap_t;
--
--/* exact same as vfs_cap_data but in cpu endian and always filled completely */
--struct cpu_vfs_cap_data {
-- __u32 magic_etc;
-- kernel_cap_t permitted;
-- kernel_cap_t inheritable;
--};
--
--#define _USER_CAP_HEADER_SIZE (sizeof(struct __user_cap_header_struct))
--#define _KERNEL_CAP_T_SIZE (sizeof(kernel_cap_t))
--
--
--struct file;
--struct inode;
--struct dentry;
--struct user_namespace;
--
--struct user_namespace *current_user_ns(void);
--
--extern const kernel_cap_t __cap_empty_set;
--extern const kernel_cap_t __cap_init_eff_set;
--
--/*
-- * Internal kernel functions only
-- */
--
--#define CAP_FOR_EACH_U32(__capi) \
-- for (__capi = 0; __capi < _KERNEL_CAPABILITY_U32S; ++__capi)
--
--/*
-- * CAP_FS_MASK and CAP_NFSD_MASKS:
-- *
-- * The fs mask is all the privileges that fsuid==0 historically meant.
-- * At one time in the past, that included CAP_MKNOD and CAP_LINUX_IMMUTABLE.
-- *
-- * It has never meant setting security.* and trusted.* xattrs.
-- *
-- * We could also define fsmask as follows:
-- * 1. CAP_FS_MASK is the privilege to bypass all fs-related DAC permissions
-- * 2. The security.* and trusted.* xattrs are fs-related MAC permissions
-- */
--
--# define CAP_FS_MASK_B0 (CAP_TO_MASK(CAP_CHOWN) \
-- | CAP_TO_MASK(CAP_MKNOD) \
-- | CAP_TO_MASK(CAP_DAC_OVERRIDE) \
-- | CAP_TO_MASK(CAP_DAC_READ_SEARCH) \
-- | CAP_TO_MASK(CAP_FOWNER) \
-- | CAP_TO_MASK(CAP_FSETID))
--
--# define CAP_FS_MASK_B1 (CAP_TO_MASK(CAP_MAC_OVERRIDE))
--
--#if _KERNEL_CAPABILITY_U32S != 2
--# error Fix up hand-coded capability macro initializers
--#else /* HAND-CODED capability initializers */
--
--# define CAP_EMPTY_SET ((kernel_cap_t){{ 0, 0 }})
--# define CAP_FULL_SET ((kernel_cap_t){{ ~0, ~0 }})
--# define CAP_FS_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \
-- | CAP_TO_MASK(CAP_LINUX_IMMUTABLE), \
-- CAP_FS_MASK_B1 } })
--# define CAP_NFSD_SET ((kernel_cap_t){{ CAP_FS_MASK_B0 \
-- | CAP_TO_MASK(CAP_SYS_RESOURCE), \
-- CAP_FS_MASK_B1 } })
--
--#endif /* _KERNEL_CAPABILITY_U32S != 2 */
--
--# define cap_clear(c) do { (c) = __cap_empty_set; } while (0)
--
--#define cap_raise(c, flag) ((c).cap[CAP_TO_INDEX(flag)] |= CAP_TO_MASK(flag))
--#define cap_lower(c, flag) ((c).cap[CAP_TO_INDEX(flag)] &= ~CAP_TO_MASK(flag))
--#define cap_raised(c, flag) ((c).cap[CAP_TO_INDEX(flag)] & CAP_TO_MASK(flag))
--
--#define CAP_BOP_ALL(c, a, b, OP) \
--do { \
-- unsigned __capi; \
-- CAP_FOR_EACH_U32(__capi) { \
-- c.cap[__capi] = a.cap[__capi] OP b.cap[__capi]; \
-- } \
--} while (0)
--
--#define CAP_UOP_ALL(c, a, OP) \
--do { \
-- unsigned __capi; \
-- CAP_FOR_EACH_U32(__capi) { \
-- c.cap[__capi] = OP a.cap[__capi]; \
-- } \
--} while (0)
--
--static inline kernel_cap_t cap_combine(const kernel_cap_t a,
-- const kernel_cap_t b)
--{
-- kernel_cap_t dest;
-- CAP_BOP_ALL(dest, a, b, |);
-- return dest;
--}
--
--static inline kernel_cap_t cap_intersect(const kernel_cap_t a,
-- const kernel_cap_t b)
--{
-- kernel_cap_t dest;
-- CAP_BOP_ALL(dest, a, b, &);
-- return dest;
--}
--
--static inline kernel_cap_t cap_drop(const kernel_cap_t a,
-- const kernel_cap_t drop)
--{
-- kernel_cap_t dest;
-- CAP_BOP_ALL(dest, a, drop, &~);
-- return dest;
--}
--
--static inline kernel_cap_t cap_invert(const kernel_cap_t c)
--{
-- kernel_cap_t dest;
-- CAP_UOP_ALL(dest, c, ~);
-- return dest;
--}
--
--static inline int cap_isclear(const kernel_cap_t a)
--{
-- unsigned __capi;
-- CAP_FOR_EACH_U32(__capi) {
-- if (a.cap[__capi] != 0)
-- return 0;
-- }
-- return 1;
--}
--
--/*
-- * Check if "a" is a subset of "set".
-- * return 1 if ALL of the capabilities in "a" are also in "set"
-- * cap_issubset(0101, 1111) will return 1
-- * return 0 if ANY of the capabilities in "a" are not in "set"
-- * cap_issubset(1111, 0101) will return 0
-- */
--static inline int cap_issubset(const kernel_cap_t a, const kernel_cap_t set)
--{
-- kernel_cap_t dest;
-- dest = cap_drop(a, set);
-- return cap_isclear(dest);
--}
--
--/* Used to decide between falling back on the old suser() or fsuser(). */
--
--static inline int cap_is_fs_cap(int cap)
--{
-- const kernel_cap_t __cap_fs_set = CAP_FS_SET;
-- return !!(CAP_TO_MASK(cap) & __cap_fs_set.cap[CAP_TO_INDEX(cap)]);
--}
--
--static inline kernel_cap_t cap_drop_fs_set(const kernel_cap_t a)
--{
-- const kernel_cap_t __cap_fs_set = CAP_FS_SET;
-- return cap_drop(a, __cap_fs_set);
--}
--
--static inline kernel_cap_t cap_raise_fs_set(const kernel_cap_t a,
-- const kernel_cap_t permitted)
--{
-- const kernel_cap_t __cap_fs_set = CAP_FS_SET;
-- return cap_combine(a,
-- cap_intersect(permitted, __cap_fs_set));
--}
--
--static inline kernel_cap_t cap_drop_nfsd_set(const kernel_cap_t a)
--{
-- const kernel_cap_t __cap_fs_set = CAP_NFSD_SET;
-- return cap_drop(a, __cap_fs_set);
--}
--
--static inline kernel_cap_t cap_raise_nfsd_set(const kernel_cap_t a,
-- const kernel_cap_t permitted)
--{
-- const kernel_cap_t __cap_nfsd_set = CAP_NFSD_SET;
-- return cap_combine(a,
-- cap_intersect(permitted, __cap_nfsd_set));
--}
--
--extern bool has_capability(struct task_struct *t, int cap);
--extern bool has_ns_capability(struct task_struct *t,
-- struct user_namespace *ns, int cap);
--extern bool has_capability_noaudit(struct task_struct *t, int cap);
--extern bool has_ns_capability_noaudit(struct task_struct *t,
-- struct user_namespace *ns, int cap);
--extern bool capable(int cap);
--extern bool ns_capable(struct user_namespace *ns, int cap);
--extern bool inode_capable(const struct inode *inode, int cap);
--extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
--
--/* audit system wants to get cap info from files as well */
--extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
--
--#endif /* !_LINUX_CAPABILITY_H */
-diff --git a/libcap/include/sys/capability.h b/libcap/include/sys/capability.h
-index 56fc7fd..64ac50e 100644
---- a/libcap/include/sys/capability.h
-+++ b/libcap/include/sys/capability.h
-@@ -26,7 +26,7 @@ extern "C" {
- #ifndef __user
- #define __user
- #endif
--#include <uapi/linux/capability.h>
-+#include <linux/capability.h>
- #include <linux/xattr.h>
-
- /*
-diff --git a/libcap/include/linux/prctl.h b/libcap/include/uapi/linux/prctl.h
-index a3baeb2..289760f 100644
---- a/libcap/include/linux/prctl.h
-+++ b/libcap/include/uapi/linux/prctl.h
-@@ -102,4 +102,51 @@
-
- #define PR_MCE_KILL_GET 34
-
-+/*
-+ * Tune up process memory map specifics.
-+ */
-+#define PR_SET_MM 35
-+# define PR_SET_MM_START_CODE 1
-+# define PR_SET_MM_END_CODE 2
-+# define PR_SET_MM_START_DATA 3
-+# define PR_SET_MM_END_DATA 4
-+# define PR_SET_MM_START_STACK 5
-+# define PR_SET_MM_START_BRK 6
-+# define PR_SET_MM_BRK 7
-+# define PR_SET_MM_ARG_START 8
-+# define PR_SET_MM_ARG_END 9
-+# define PR_SET_MM_ENV_START 10
-+# define PR_SET_MM_ENV_END 11
-+# define PR_SET_MM_AUXV 12
-+# define PR_SET_MM_EXE_FILE 13
-+
-+/*
-+ * Set specific pid that is allowed to ptrace the current task.
-+ * A value of 0 mean "no process".
-+ */
-+#define PR_SET_PTRACER 0x59616d61
-+# define PR_SET_PTRACER_ANY ((unsigned long)-1)
-+
-+#define PR_SET_CHILD_SUBREAPER 36
-+#define PR_GET_CHILD_SUBREAPER 37
-+
-+/*
-+ * If no_new_privs is set, then operations that grant new privileges (i.e.
-+ * execve) will either fail or not grant them. This affects suid/sgid,
-+ * file capabilities, and LSMs.
-+ *
-+ * Operations that merely manipulate or drop existing privileges (setresuid,
-+ * capset, etc.) will still work. Drop those privileges if you want them gone.
-+ *
-+ * Changing LSM security domain is considered a new privilege. So, for example,
-+ * asking selinux for a specific new context (e.g. with runcon) will result
-+ * in execve returning -EPERM.
-+ *
-+ * See Documentation/prctl/no_new_privs.txt for more details.
-+ */
-+#define PR_SET_NO_NEW_PRIVS 38
-+#define PR_GET_NO_NEW_PRIVS 39
-+
-+#define PR_GET_TID_ADDRESS 40
-+
- #endif /* _LINUX_PRCTL_H */
-diff --git a/libcap/include/linux/securebits.h b/libcap/include/uapi/linux/securebits.h
-index 3340617..985aac9 100644
---- a/libcap/include/linux/securebits.h
-+++ b/libcap/include/uapi/linux/securebits.h
-@@ -1,14 +1,11 @@
--#ifndef _LINUX_SECUREBITS_H
--#define _LINUX_SECUREBITS_H 1
-+#ifndef _UAPI_LINUX_SECUREBITS_H
-+#define _UAPI_LINUX_SECUREBITS_H
-
- /* Each securesetting is implemented using two bits. One bit specifies
- whether the setting is on or off. The other bit specify whether the
- setting is locked or not. A setting which is locked cannot be
- changed from user-level. */
- #define issecure_mask(X) (1 << (X))
--#ifdef __KERNEL__
--#define issecure(X) (issecure_mask(X) & current_cred_xxx(securebits))
--#endif
-
- #define SECUREBITS_DEFAULT 0x00000000
-
-@@ -51,4 +48,4 @@
- issecure_mask(SECURE_KEEP_CAPS))
- #define SECURE_ALL_LOCKS (SECURE_ALL_BITS << 1)
-
--#endif /* !_LINUX_SECUREBITS_H */
-+#endif /* _UAPI_LINUX_SECUREBITS_H */
---
-cgit v0.9.2
diff --git a/abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch b/abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch
new file mode 100644
index 0000000..41eeda0
--- /dev/null
+++ b/abs/core/libevent/0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch
@@ -0,0 +1,31 @@
+From 497ef904d544ac51de43934549dbeccce8e6e8f8 Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <azat@libevent.org>
+Date: Mon, 1 Jul 2019 23:54:02 +0300
+Subject: [PATCH] Warn if forked from the event loop during event_reinit()
+
+Calling fork() from the event loop is not a great idea, since at least
+it shares some internal pipes (for handling signals) before
+event_reinit() call
+
+Closes: #833
+---
+ event.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/event.c b/event.c
+index fa4f2802e..aa6c6fba3 100644
+--- a/event.c
++++ b/event.c
+@@ -1003,6 +1003,12 @@ event_reinit(struct event_base *base)
+
+ EVBASE_ACQUIRE_LOCK(base, th_base_lock);
+
++ if (base->running_loop) {
++ event_warnx("%s: forked from the event_loop.", __func__);
++ res = -1;
++ goto done;
++ }
++
+ evsel = base->evsel;
+
+ /* check if this event mechanism requires reinit on the backend */
diff --git a/abs/core/libevent/PKGBUILD b/abs/core/libevent/PKGBUILD
index c7251c5..96e8793 100644
--- a/abs/core/libevent/PKGBUILD
+++ b/abs/core/libevent/PKGBUILD
@@ -1,36 +1,46 @@
-# $Id$
# Maintainer: Tom Gundersen <teg@jklm.no>
# Contributor: Judd <jvinet@zeroflux.org>
pkgname=libevent
-pkgver=2.1.8
-pkgrel=1
+pkgver=2.1.11
+pkgrel=5
pkgdesc="An event notification library"
arch=('x86_64')
-url="http://libevent.org/"
+url="https://libevent.org/"
license=('BSD')
depends=('openssl')
-optdepends=('python2: to use event_rpcgen.py')
-source=(https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/$pkgname-$pkgver-stable.tar.gz{,.asc})
-sha256sums=('965cc5a8bb46ce4199a47e9b2c9e1cae3b137e8356ffdad6d94d3b9069b71dc2'
- 'SKIP')
+makedepends=('cmake' 'python')
+optdepends=('python: to use event_rpcgen.py')
+source=(https://github.com/libevent/libevent/releases/download/release-$pkgver-stable/$pkgname-$pkgver-stable.tar.gz{,.asc}
+ https://raw.githubusercontent.com/libevent/libevent/release-2.1.11-stable/cmake/Uninstall.cmake.in
+ 0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch)
+sha256sums=('a65bac6202ea8c5609fd5c7e480e6d25de467ea1917c08290c521752f147283d'
+ 'SKIP'
+ '1584d6e36642d930ac99d014a485fe886ec705b3f998d128c6d6f227e0454b72'
+ '436e56c74c0af0b70c43eaae6bd32b760601d2d5fa98b8d2d026ffad18474e13')
validpgpkeys=('B35BF85BF19489D04E28C33C21194EBB165733EA'
'9E3AC83A27974B84D1B3401DB86086848EF8686D')
+prepare() {
+ cd ${pkgname}-${pkgver}-stable
+ patch -Np1 -R < ../0001-Warn-if-forked-from-the-event-loop-during-event_reinit.patch
+
+ cp -n ../Uninstall.cmake.in cmake # https://github.com/libevent/libevent/issues/914
+}
+
build() {
cd ${pkgname}-${pkgver}-stable
- ./autogen.sh
- ./configure --prefix=/usr --sysconfdir=/etc --disable-libevent-regress
- make
+ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DEVENT__LIBRARY_TYPE=SHARED -S . -B build
+ cmake --build build
}
check() {
cd ${pkgname}-${pkgver}-stable
- make -j1 check
+ cmake --build build --target test
}
package() {
cd ${pkgname}-${pkgver}-stable
- make DESTDIR="${pkgdir}" install
+ cmake --build build --target install -- DESTDIR="$pkgdir"
install -Dm 644 LICENSE "${pkgdir}"/usr/share/licenses/libevent/LICENSE
}
diff --git a/abs/core/libnsl/PKGBUILD b/abs/core/libnsl/PKGBUILD
new file mode 100644
index 0000000..90cfb6e
--- /dev/null
+++ b/abs/core/libnsl/PKGBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+
+pkgname=libnsl
+pkgver=1.3.0
+pkgrel=1
+pkgdesc='Public client interface library for NIS(YP) and NIS+'
+arch=(x86_64)
+url='https://github.com/thkukuk/libnsl'
+license=('LGPL2.1')
+depends=(libtirpc)
+source=($pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz)
+md5sums=('a7ab1d3e2a685edad1a55857bfccf318')
+
+prepare() {
+ cd $pkgname-$pkgver
+ autoreconf -fi
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure --prefix=/usr --disable-static
+ make
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/abs/core/libpcap/PKGBUILD b/abs/core/libpcap/PKGBUILD
index ddafe52..fe3a122 100644
--- a/abs/core/libpcap/PKGBUILD
+++ b/abs/core/libpcap/PKGBUILD
@@ -1,41 +1,45 @@
-# $Id: PKGBUILD 162746 2012-06-29 11:46:18Z thomas $
-# Maintainer: Thomas Bächler <thomas@archlinux.org>
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@mirantis.com>
+# Contributor: Thomas Bächler <thomas@archlinux.org>
pkgname=libpcap
-pkgver=1.3.0
-pkgrel=1
-pkgdesc="A system-independent interface for user-level packet capture"
-arch=('i686' 'x86_64')
-url="http://www.tcpdump.org/"
+pkgver=1.9.1
+pkgrel=2
+pkgdesc='A system-independent interface for user-level packet capture'
+arch=('x86_64')
+url='https://www.tcpdump.org/'
license=('BSD')
-depends=('glibc' 'libnl' 'sh' 'libusbx')
-makedepends=('flex')
-source=(http://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz{,.sig}
- libnl32.patch)
+depends=('glibc' 'libnl' 'sh' 'libusbx' 'dbus')
+makedepends=('flex' 'bluez-libs')
+source=(https://www.tcpdump.org/release/libpcap-${pkgver}.tar.gz{,.sig}
+ mgmt.h)
+validpgpkeys=('1F166A5742ABB9E0249A8D30E089DEF1D9C15D0D') # The Tcpdump Group
+sha256sums=('635237637c5b619bcceba91900666b64d56ecb7be63f298f601ec786ce087094'
+ 'SKIP'
+ '7c85da5330ce7ecb6934795c02c652b9e344461302cf74804a4692c3e2e1e7e2')
+
+prepare() {
+ mkdir -p include/bluetooth
+ cp mgmt.h include/bluetooth/
+}
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
- patch -Np1 -i "${srcdir}/libnl32.patch"
- autoreconf -f -i
- ./configure --prefix=/usr --enable-ipv6 --with-libnl
+ cd $pkgname-$pkgver
+ CFLAGS="$CFLAGS -I${srcdir}/include $(pkg-config libnl-genl-3.0 --cflags)" \
+ ./configure --prefix=/usr \
+ --enable-ipv6 \
+ --enable-bluetooth \
+ --with-libnl
make
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- install -d -m755 ${pkgdir}/usr/bin
- make DESTDIR=${pkgdir} install
- # remove static library
- rm -rf ${pkgdir}/usr/lib/libpcap.a
-
+ cd $pkgname-$pkgver
+ install -d -m755 "$pkgdir"/usr/bin
+ make DESTDIR="$pkgdir" install
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+
# backwards compatibility, programs often look for net/bpf.h
- mkdir -p ${pkgdir}/usr/include/net
- cd ${pkgdir}/usr/include/net
+ mkdir -p "$pkgdir/usr/include/net"
+ cd "$pkgdir/usr/include/net"
ln -s ../pcap-bpf.h bpf.h
-
- #install the license
- install -D -m644 ${srcdir}/$pkgname-$pkgver/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
}
-md5sums=('f78455a92622b7a3c05c58b6ad1cec7e'
- 'acf4f6ed8c7839dc935e807a2731316e'
- 'd2c8c21d69d90d6370022583bfb29cf2')
diff --git a/abs/core/libpcap/libnl32.patch b/abs/core/libpcap/libnl32.patch
deleted file mode 100644
index 633fd00..0000000
--- a/abs/core/libpcap/libnl32.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff -u -r libpcap-1.2.1/configure.in libpcap-1.2.1-libnl32/configure.in
---- libpcap-1.2.1/configure.in 2012-01-02 01:47:37.000000000 +0100
-+++ libpcap-1.2.1-libnl32/configure.in 2012-02-09 19:29:29.405603749 +0100
-@@ -433,12 +433,13 @@
- #
- # Try libnl 2.x first.
- #
-- AC_CHECK_LIB(nl, nl_socket_alloc,
-+ AC_CHECK_LIB(nl-3, nl_socket_alloc,
- [
- #
- # Yes, we have libnl 2.x.
- #
-- LIBS="-lnl-genl -lnl $LIBS"
-+ LIBS="$(pkg-config --libs libnl-genl-3.0 libnl-3.0) $LIBS"
-+ V_INCLS="$V_INCLS $(pkg-config --cflags libnl-genl-3.0 libnl-3.0)"
- AC_DEFINE(HAVE_LIBNL,1,[if libnl exists])
- AC_DEFINE(HAVE_LIBNL_2_x,1,[if libnl exists and is version 2.x])
- ],
diff --git a/abs/core/libpcap/mgmt.h b/abs/core/libpcap/mgmt.h
new file mode 100644
index 0000000..46766a9
--- /dev/null
+++ b/abs/core/libpcap/mgmt.h
@@ -0,0 +1,772 @@
+/*
+ * BlueZ - Bluetooth protocol stack for Linux
+ *
+ * Copyright (C) 2010 Nokia Corporation
+ * Copyright (C) 2010 Marcel Holtmann <marcel@holtmann.org>
+ *
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ *
+ */
+
+#ifndef __packed
+#define __packed __attribute__((packed))
+#endif
+
+#define MGMT_INDEX_NONE 0xFFFF
+
+#define MGMT_STATUS_SUCCESS 0x00
+#define MGMT_STATUS_UNKNOWN_COMMAND 0x01
+#define MGMT_STATUS_NOT_CONNECTED 0x02
+#define MGMT_STATUS_FAILED 0x03
+#define MGMT_STATUS_CONNECT_FAILED 0x04
+#define MGMT_STATUS_AUTH_FAILED 0x05
+#define MGMT_STATUS_NOT_PAIRED 0x06
+#define MGMT_STATUS_NO_RESOURCES 0x07
+#define MGMT_STATUS_TIMEOUT 0x08
+#define MGMT_STATUS_ALREADY_CONNECTED 0x09
+#define MGMT_STATUS_BUSY 0x0a
+#define MGMT_STATUS_REJECTED 0x0b
+#define MGMT_STATUS_NOT_SUPPORTED 0x0c
+#define MGMT_STATUS_INVALID_PARAMS 0x0d
+#define MGMT_STATUS_DISCONNECTED 0x0e
+#define MGMT_STATUS_NOT_POWERED 0x0f
+#define MGMT_STATUS_CANCELLED 0x10
+#define MGMT_STATUS_INVALID_INDEX 0x11
+#define MGMT_STATUS_RFKILLED 0x12
+
+struct mgmt_hdr {
+ uint16_t opcode;
+ uint16_t index;
+ uint16_t len;
+} __packed;
+#define MGMT_HDR_SIZE 6
+
+struct mgmt_addr_info {
+ bdaddr_t bdaddr;
+ uint8_t type;
+} __packed;
+
+#define MGMT_OP_READ_VERSION 0x0001
+struct mgmt_rp_read_version {
+ uint8_t version;
+ uint16_t revision;
+} __packed;
+
+#define MGMT_OP_READ_COMMANDS 0x0002
+struct mgmt_rp_read_commands {
+ uint16_t num_commands;
+ uint16_t num_events;
+ uint16_t opcodes[0];
+} __packed;
+
+#define MGMT_OP_READ_INDEX_LIST 0x0003
+struct mgmt_rp_read_index_list {
+ uint16_t num_controllers;
+ uint16_t index[0];
+} __packed;
+
+/* Reserve one extra byte for names in management messages so that they
+ * are always guaranteed to be nul-terminated */
+#define MGMT_MAX_NAME_LENGTH (248 + 1)
+#define MGMT_MAX_SHORT_NAME_LENGTH (10 + 1)
+
+#define MGMT_SETTING_POWERED 0x00000001
+#define MGMT_SETTING_CONNECTABLE 0x00000002
+#define MGMT_SETTING_FAST_CONNECTABLE 0x00000004
+#define MGMT_SETTING_DISCOVERABLE 0x00000008
+#define MGMT_SETTING_BONDABLE 0x00000010
+#define MGMT_SETTING_LINK_SECURITY 0x00000020
+#define MGMT_SETTING_SSP 0x00000040
+#define MGMT_SETTING_BREDR 0x00000080
+#define MGMT_SETTING_HS 0x00000100
+#define MGMT_SETTING_LE 0x00000200
+#define MGMT_SETTING_ADVERTISING 0x00000400
+#define MGMT_SETTING_SECURE_CONN 0x00000800
+#define MGMT_SETTING_DEBUG_KEYS 0x00001000
+#define MGMT_SETTING_PRIVACY 0x00002000
+#define MGMT_SETTING_CONFIGURATION 0x00004000
+
+#define MGMT_OP_READ_INFO 0x0004
+struct mgmt_rp_read_info {
+ bdaddr_t bdaddr;
+ uint8_t version;
+ uint16_t manufacturer;
+ uint32_t supported_settings;
+ uint32_t current_settings;
+ uint8_t dev_class[3];
+ uint8_t name[MGMT_MAX_NAME_LENGTH];
+ uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH];
+} __packed;
+
+struct mgmt_mode {
+ uint8_t val;
+} __packed;
+
+struct mgmt_cod {
+ uint8_t val[3];
+} __packed;
+
+#define MGMT_OP_SET_POWERED 0x0005
+
+#define MGMT_OP_SET_DISCOVERABLE 0x0006
+struct mgmt_cp_set_discoverable {
+ uint8_t val;
+ uint16_t timeout;
+} __packed;
+
+#define MGMT_OP_SET_CONNECTABLE 0x0007
+
+#define MGMT_OP_SET_FAST_CONNECTABLE 0x0008
+
+#define MGMT_OP_SET_BONDABLE 0x0009
+
+#define MGMT_OP_SET_LINK_SECURITY 0x000A
+
+#define MGMT_OP_SET_SSP 0x000B
+
+#define MGMT_OP_SET_HS 0x000C
+
+#define MGMT_OP_SET_LE 0x000D
+
+#define MGMT_OP_SET_DEV_CLASS 0x000E
+struct mgmt_cp_set_dev_class {
+ uint8_t major;
+ uint8_t minor;
+} __packed;
+
+#define MGMT_OP_SET_LOCAL_NAME 0x000F
+struct mgmt_cp_set_local_name {
+ uint8_t name[MGMT_MAX_NAME_LENGTH];
+ uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH];
+} __packed;
+
+#define MGMT_OP_ADD_UUID 0x0010
+struct mgmt_cp_add_uuid {
+ uint8_t uuid[16];
+ uint8_t svc_hint;
+} __packed;
+
+#define MGMT_OP_REMOVE_UUID 0x0011
+struct mgmt_cp_remove_uuid {
+ uint8_t uuid[16];
+} __packed;
+
+struct mgmt_link_key_info {
+ struct mgmt_addr_info addr;
+ uint8_t type;
+ uint8_t val[16];
+ uint8_t pin_len;
+} __packed;
+
+#define MGMT_OP_LOAD_LINK_KEYS 0x0012
+struct mgmt_cp_load_link_keys {
+ uint8_t debug_keys;
+ uint16_t key_count;
+ struct mgmt_link_key_info keys[0];
+} __packed;
+
+struct mgmt_ltk_info {
+ struct mgmt_addr_info addr;
+ uint8_t type;
+ uint8_t master;
+ uint8_t enc_size;
+ uint16_t ediv;
+ uint64_t rand;
+ uint8_t val[16];
+} __packed;
+
+#define MGMT_OP_LOAD_LONG_TERM_KEYS 0x0013
+struct mgmt_cp_load_long_term_keys {
+ uint16_t key_count;
+ struct mgmt_ltk_info keys[0];
+} __packed;
+
+#define MGMT_OP_DISCONNECT 0x0014
+struct mgmt_cp_disconnect {
+ struct mgmt_addr_info addr;
+} __packed;
+struct mgmt_rp_disconnect {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_GET_CONNECTIONS 0x0015
+struct mgmt_rp_get_connections {
+ uint16_t conn_count;
+ struct mgmt_addr_info addr[0];
+} __packed;
+
+#define MGMT_OP_PIN_CODE_REPLY 0x0016
+struct mgmt_cp_pin_code_reply {
+ struct mgmt_addr_info addr;
+ uint8_t pin_len;
+ uint8_t pin_code[16];
+} __packed;
+
+#define MGMT_OP_PIN_CODE_NEG_REPLY 0x0017
+struct mgmt_cp_pin_code_neg_reply {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_SET_IO_CAPABILITY 0x0018
+struct mgmt_cp_set_io_capability {
+ uint8_t io_capability;
+} __packed;
+
+#define MGMT_OP_PAIR_DEVICE 0x0019
+struct mgmt_cp_pair_device {
+ struct mgmt_addr_info addr;
+ uint8_t io_cap;
+} __packed;
+struct mgmt_rp_pair_device {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_CANCEL_PAIR_DEVICE 0x001A
+
+#define MGMT_OP_UNPAIR_DEVICE 0x001B
+struct mgmt_cp_unpair_device {
+ struct mgmt_addr_info addr;
+ uint8_t disconnect;
+} __packed;
+struct mgmt_rp_unpair_device {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_USER_CONFIRM_REPLY 0x001C
+struct mgmt_cp_user_confirm_reply {
+ struct mgmt_addr_info addr;
+} __packed;
+struct mgmt_rp_user_confirm_reply {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_USER_CONFIRM_NEG_REPLY 0x001D
+
+#define MGMT_OP_USER_PASSKEY_REPLY 0x001E
+struct mgmt_cp_user_passkey_reply {
+ struct mgmt_addr_info addr;
+ uint32_t passkey;
+} __packed;
+struct mgmt_rp_user_passkey_reply {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_USER_PASSKEY_NEG_REPLY 0x001F
+struct mgmt_cp_user_passkey_neg_reply {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_READ_LOCAL_OOB_DATA 0x0020
+struct mgmt_rp_read_local_oob_data {
+ uint8_t hash[16];
+ uint8_t randomizer[16];
+} __packed;
+struct mgmt_rp_read_local_oob_ext_data {
+ uint8_t hash192[16];
+ uint8_t randomizer192[16];
+ uint8_t hash256[16];
+ uint8_t randomizer256[16];
+} __packed;
+
+#define MGMT_OP_ADD_REMOTE_OOB_DATA 0x0021
+struct mgmt_cp_add_remote_oob_data {
+ struct mgmt_addr_info addr;
+ uint8_t hash[16];
+ uint8_t randomizer[16];
+} __packed;
+
+#define MGMT_OP_REMOVE_REMOTE_OOB_DATA 0x0022
+struct mgmt_cp_remove_remote_oob_data {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_START_DISCOVERY 0x0023
+struct mgmt_cp_start_discovery {
+ uint8_t type;
+} __packed;
+
+#define MGMT_OP_STOP_DISCOVERY 0x0024
+struct mgmt_cp_stop_discovery {
+ uint8_t type;
+} __packed;
+
+#define MGMT_OP_CONFIRM_NAME 0x0025
+struct mgmt_cp_confirm_name {
+ struct mgmt_addr_info addr;
+ uint8_t name_known;
+} __packed;
+struct mgmt_rp_confirm_name {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_BLOCK_DEVICE 0x0026
+struct mgmt_cp_block_device {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_UNBLOCK_DEVICE 0x0027
+struct mgmt_cp_unblock_device {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_SET_DEVICE_ID 0x0028
+struct mgmt_cp_set_device_id {
+ uint16_t source;
+ uint16_t vendor;
+ uint16_t product;
+ uint16_t version;
+} __packed;
+
+#define MGMT_OP_SET_ADVERTISING 0x0029
+
+#define MGMT_OP_SET_BREDR 0x002A
+
+#define MGMT_OP_SET_STATIC_ADDRESS 0x002B
+struct mgmt_cp_set_static_address {
+ bdaddr_t bdaddr;
+} __packed;
+
+#define MGMT_OP_SET_SCAN_PARAMS 0x002C
+struct mgmt_cp_set_scan_params {
+ uint16_t interval;
+ uint16_t window;
+} __packed;
+
+#define MGMT_OP_SET_SECURE_CONN 0x002D
+
+#define MGMT_OP_SET_DEBUG_KEYS 0x002E
+
+struct mgmt_irk_info {
+ struct mgmt_addr_info addr;
+ uint8_t val[16];
+} __packed;
+
+#define MGMT_OP_SET_PRIVACY 0x002F
+struct mgmt_cp_set_privacy {
+ uint8_t privacy;
+ uint8_t irk[16];
+} __packed;
+
+#define MGMT_OP_LOAD_IRKS 0x0030
+struct mgmt_cp_load_irks {
+ uint16_t irk_count;
+ struct mgmt_irk_info irks[0];
+} __packed;
+
+#define MGMT_OP_GET_CONN_INFO 0x0031
+struct mgmt_cp_get_conn_info {
+ struct mgmt_addr_info addr;
+} __packed;
+struct mgmt_rp_get_conn_info {
+ struct mgmt_addr_info addr;
+ int8_t rssi;
+ int8_t tx_power;
+ int8_t max_tx_power;
+} __packed;
+
+#define MGMT_OP_GET_CLOCK_INFO 0x0032
+struct mgmt_cp_get_clock_info {
+ struct mgmt_addr_info addr;
+} __packed;
+struct mgmt_rp_get_clock_info {
+ struct mgmt_addr_info addr;
+ uint32_t local_clock;
+ uint32_t piconet_clock;
+ uint16_t accuracy;
+} __packed;
+
+#define MGMT_OP_ADD_DEVICE 0x0033
+struct mgmt_cp_add_device {
+ struct mgmt_addr_info addr;
+ uint8_t action;
+} __packed;
+struct mgmt_rp_add_device {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_OP_REMOVE_DEVICE 0x0034
+struct mgmt_cp_remove_device {
+ struct mgmt_addr_info addr;
+} __packed;
+struct mgmt_rp_remove_device {
+ struct mgmt_addr_info addr;
+} __packed;
+
+struct mgmt_conn_param {
+ struct mgmt_addr_info addr;
+ uint16_t min_interval;
+ uint16_t max_interval;
+ uint16_t latency;
+ uint16_t timeout;
+} __packed;
+
+#define MGMT_OP_LOAD_CONN_PARAM 0x0035
+struct mgmt_cp_load_conn_param {
+ uint16_t param_count;
+ struct mgmt_conn_param params[0];
+} __packed;
+
+#define MGMT_OP_READ_UNCONF_INDEX_LIST 0x0036
+struct mgmt_rp_read_unconf_index_list {
+ uint16_t num_controllers;
+ uint16_t index[0];
+} __packed;
+
+#define MGMT_OPTION_EXTERNAL_CONFIG 0x00000001
+#define MGMT_OPTION_PUBLIC_ADDRESS 0x00000002
+
+#define MGMT_OP_READ_CONFIG_INFO 0x0037
+struct mgmt_rp_read_config_info {
+ uint16_t manufacturer;
+ uint32_t supported_options;
+ uint32_t missing_options;
+} __packed;
+
+#define MGMT_OP_SET_EXTERNAL_CONFIG 0x0038
+struct mgmt_cp_set_external_config {
+ uint8_t config;
+} __packed;
+
+#define MGMT_OP_SET_PUBLIC_ADDRESS 0x0039
+struct mgmt_cp_set_public_address {
+ bdaddr_t bdaddr;
+} __packed;
+
+#define MGMT_EV_CMD_COMPLETE 0x0001
+struct mgmt_ev_cmd_complete {
+ uint16_t opcode;
+ uint8_t status;
+ uint8_t data[0];
+} __packed;
+
+#define MGMT_EV_CMD_STATUS 0x0002
+struct mgmt_ev_cmd_status {
+ uint16_t opcode;
+ uint8_t status;
+} __packed;
+
+#define MGMT_EV_CONTROLLER_ERROR 0x0003
+struct mgmt_ev_controller_error {
+ uint8_t error_code;
+} __packed;
+
+#define MGMT_EV_INDEX_ADDED 0x0004
+
+#define MGMT_EV_INDEX_REMOVED 0x0005
+
+#define MGMT_EV_NEW_SETTINGS 0x0006
+
+#define MGMT_EV_CLASS_OF_DEV_CHANGED 0x0007
+struct mgmt_ev_class_of_dev_changed {
+ uint8_t class_of_dev[3];
+} __packed;
+
+#define MGMT_EV_LOCAL_NAME_CHANGED 0x0008
+struct mgmt_ev_local_name_changed {
+ uint8_t name[MGMT_MAX_NAME_LENGTH];
+ uint8_t short_name[MGMT_MAX_SHORT_NAME_LENGTH];
+} __packed;
+
+#define MGMT_EV_NEW_LINK_KEY 0x0009
+struct mgmt_ev_new_link_key {
+ uint8_t store_hint;
+ struct mgmt_link_key_info key;
+} __packed;
+
+#define MGMT_EV_NEW_LONG_TERM_KEY 0x000A
+struct mgmt_ev_new_long_term_key {
+ uint8_t store_hint;
+ struct mgmt_ltk_info key;
+} __packed;
+
+#define MGMT_EV_DEVICE_CONNECTED 0x000B
+struct mgmt_ev_device_connected {
+ struct mgmt_addr_info addr;
+ uint32_t flags;
+ uint16_t eir_len;
+ uint8_t eir[0];
+} __packed;
+
+#define MGMT_DEV_DISCONN_UNKNOWN 0x00
+#define MGMT_DEV_DISCONN_TIMEOUT 0x01
+#define MGMT_DEV_DISCONN_LOCAL_HOST 0x02
+#define MGMT_DEV_DISCONN_REMOTE 0x03
+
+#define MGMT_EV_DEVICE_DISCONNECTED 0x000C
+struct mgmt_ev_device_disconnected {
+ struct mgmt_addr_info addr;
+ uint8_t reason;
+} __packed;
+
+#define MGMT_EV_CONNECT_FAILED 0x000D
+struct mgmt_ev_connect_failed {
+ struct mgmt_addr_info addr;
+ uint8_t status;
+} __packed;
+
+#define MGMT_EV_PIN_CODE_REQUEST 0x000E
+struct mgmt_ev_pin_code_request {
+ struct mgmt_addr_info addr;
+ uint8_t secure;
+} __packed;
+
+#define MGMT_EV_USER_CONFIRM_REQUEST 0x000F
+struct mgmt_ev_user_confirm_request {
+ struct mgmt_addr_info addr;
+ uint8_t confirm_hint;
+ uint32_t value;
+} __packed;
+
+#define MGMT_EV_USER_PASSKEY_REQUEST 0x0010
+struct mgmt_ev_user_passkey_request {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_EV_AUTH_FAILED 0x0011
+struct mgmt_ev_auth_failed {
+ struct mgmt_addr_info addr;
+ uint8_t status;
+} __packed;
+
+#define MGMT_DEV_FOUND_CONFIRM_NAME 0x01
+#define MGMT_DEV_FOUND_LEGACY_PAIRING 0x02
+#define MGMT_DEV_FOUND_NOT_CONNECTABLE 0x04
+
+#define MGMT_EV_DEVICE_FOUND 0x0012
+struct mgmt_ev_device_found {
+ struct mgmt_addr_info addr;
+ int8_t rssi;
+ uint32_t flags;
+ uint16_t eir_len;
+ uint8_t eir[0];
+} __packed;
+
+#define MGMT_EV_DISCOVERING 0x0013
+struct mgmt_ev_discovering {
+ uint8_t type;
+ uint8_t discovering;
+} __packed;
+
+#define MGMT_EV_DEVICE_BLOCKED 0x0014
+struct mgmt_ev_device_blocked {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_EV_DEVICE_UNBLOCKED 0x0015
+struct mgmt_ev_device_unblocked {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_EV_DEVICE_UNPAIRED 0x0016
+struct mgmt_ev_device_unpaired {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_EV_PASSKEY_NOTIFY 0x0017
+struct mgmt_ev_passkey_notify {
+ struct mgmt_addr_info addr;
+ uint32_t passkey;
+ uint8_t entered;
+} __packed;
+
+#define MGMT_EV_NEW_IRK 0x0018
+struct mgmt_ev_new_irk {
+ uint8_t store_hint;
+ bdaddr_t rpa;
+ struct mgmt_irk_info key;
+} __packed;
+
+struct mgmt_csrk_info {
+ struct mgmt_addr_info addr;
+ uint8_t master;
+ uint8_t val[16];
+} __packed;
+
+#define MGMT_EV_NEW_CSRK 0x0019
+struct mgmt_ev_new_csrk {
+ uint8_t store_hint;
+ struct mgmt_csrk_info key;
+} __packed;
+
+#define MGMT_EV_DEVICE_ADDED 0x001a
+struct mgmt_ev_device_added {
+ struct mgmt_addr_info addr;
+ uint8_t action;
+} __packed;
+
+#define MGMT_EV_DEVICE_REMOVED 0x001b
+struct mgmt_ev_device_removed {
+ struct mgmt_addr_info addr;
+} __packed;
+
+#define MGMT_EV_NEW_CONN_PARAM 0x001c
+struct mgmt_ev_new_conn_param {
+ struct mgmt_addr_info addr;
+ uint8_t store_hint;
+ uint16_t min_interval;
+ uint16_t max_interval;
+ uint16_t latency;
+ uint16_t timeout;
+} __packed;
+
+#define MGMT_EV_UNCONF_INDEX_ADDED 0x001d
+
+#define MGMT_EV_UNCONF_INDEX_REMOVED 0x001e
+
+#define MGMT_EV_NEW_CONFIG_OPTIONS 0x001f
+
+static const char *mgmt_op[] = {
+ "<0x0000>",
+ "Read Version",
+ "Read Commands",
+ "Read Index List",
+ "Read Controller Info",
+ "Set Powered",
+ "Set Discoverable",
+ "Set Connectable",
+ "Set Fast Connectable", /* 0x0008 */
+ "Set Bondable",
+ "Set Link Security",
+ "Set Secure Simple Pairing",
+ "Set High Speed",
+ "Set Low Energy",
+ "Set Dev Class",
+ "Set Local Name",
+ "Add UUID", /* 0x0010 */
+ "Remove UUID",
+ "Load Link Keys",
+ "Load Long Term Keys",
+ "Disconnect",
+ "Get Connections",
+ "PIN Code Reply",
+ "PIN Code Neg Reply",
+ "Set IO Capability", /* 0x0018 */
+ "Pair Device",
+ "Cancel Pair Device",
+ "Unpair Device",
+ "User Confirm Reply",
+ "User Confirm Neg Reply",
+ "User Passkey Reply",
+ "User Passkey Neg Reply",
+ "Read Local OOB Data", /* 0x0020 */
+ "Add Remote OOB Data",
+ "Remove Remove OOB Data",
+ "Start Discovery",
+ "Stop Discovery",
+ "Confirm Name",
+ "Block Device",
+ "Unblock Device",
+ "Set Device ID",
+ "Set Advertising",
+ "Set BR/EDR",
+ "Set Static Address",
+ "Set Scan Parameters",
+ "Set Secure Connections",
+ "Set Debug Keys",
+ "Set Privacy",
+ "Load Identity Resolving Keys",
+ "Get Connection Information",
+ "Get Clock Information",
+ "Add Device",
+ "Remove Device",
+ "Load Connection Parameters",
+ "Read Unconfigured Index List",
+ "Read Controller Configuration Information",
+ "Set External Configuration",
+ "Set Public Address",
+};
+
+static const char *mgmt_ev[] = {
+ "<0x0000>",
+ "Command Complete",
+ "Command Status",
+ "Controller Error",
+ "Index Added",
+ "Index Removed",
+ "New Settings",
+ "Class of Device Changed",
+ "Local Name Changed", /* 0x0008 */
+ "New Link Key",
+ "New Long Term Key",
+ "Device Connected",
+ "Device Disconnected",
+ "Connect Failed",
+ "PIN Code Request",
+ "User Confirm Request",
+ "User Passkey Request", /* 0x0010 */
+ "Authentication Failed",
+ "Device Found",
+ "Discovering",
+ "Device Blocked",
+ "Device Unblocked",
+ "Device Unpaired",
+ "Passkey Notify",
+ "New Identity Resolving Key",
+ "New Signature Resolving Key",
+ "Device Added",
+ "Device Removed",
+ "New Connection Parameter",
+ "Unconfigured Index Added",
+ "Unconfigured Index Removed",
+ "New Configuration Options",
+};
+
+static const char *mgmt_status[] = {
+ "Success",
+ "Unknown Command",
+ "Not Connected",
+ "Failed",
+ "Connect Failed",
+ "Authentication Failed",
+ "Not Paired",
+ "No Resources",
+ "Timeout",
+ "Already Connected",
+ "Busy",
+ "Rejected",
+ "Not Supported",
+ "Invalid Parameters",
+ "Disconnected",
+ "Not Powered",
+ "Cancelled",
+ "Invalid Index",
+ "Blocked through rfkill",
+};
+
+#ifndef NELEM
+#define NELEM(x) (sizeof(x) / sizeof((x)[0]))
+#endif
+
+static inline const char *mgmt_opstr(uint16_t op)
+{
+ if (op >= NELEM(mgmt_op))
+ return "<unknown opcode>";
+ return mgmt_op[op];
+}
+
+static inline const char *mgmt_evstr(uint16_t ev)
+{
+ if (ev >= NELEM(mgmt_ev))
+ return "<unknown event>";
+ return mgmt_ev[ev];
+}
+
+static inline const char *mgmt_errstr(uint8_t status)
+{
+ if (status >= NELEM(mgmt_status))
+ return "<unknown status>";
+ return mgmt_status[status];
+}
diff --git a/abs/core/libpciaccess/PKGBUILD b/abs/core/libpciaccess/PKGBUILD
index 4b5bc2e..b8fdbdd 100644
--- a/abs/core/libpciaccess/PKGBUILD
+++ b/abs/core/libpciaccess/PKGBUILD
@@ -1,27 +1,30 @@
-# $Id: PKGBUILD 356 2008-04-18 22:56:27Z aaron $
# Maintainer: Jan de Groot <jgc@archlinux.org>
# Contributor: Alexander Baldeck <alexander@archlinux.org>
pkgname=libpciaccess
-pkgver=0.13.1
+pkgver=0.14
pkgrel=1
pkgdesc="X11 PCI access library"
-arch=(i686 x86_64)
+arch=(x86_64)
license=('custom')
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
depends=('glibc')
-makedepends=('pkgconfig' 'xorg-util-macros')
-options=('!libtool')
-source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2)
-sha1sums=('ae4dcf27a1b52c6a1fd90b21165fbaecae34e8ac')
+makedepends=('xorg-util-macros')
+source=(${url}/releases/individual/lib/${pkgname}-${pkgver}.tar.bz2{,.sig})
+sha512sums=('bf40214dfd22f2a223f7c948566e6eaa4bfed60116e71b3eb19f6fe7ab2c4546649eb0416c06d5983e476ea5e27de036936646eb5f800ea97763b6d1f1976f4b'
+ 'SKIP')
+validpgpkeys=('4A193C06D35E7C670FA4EF0BA2FB9E081F2D130E') # Alan Coopersmith <alan.coopersmith@oracle.com>
+validpgpkeys+=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # "Emil Velikov <emil.l.velikov@gmail.com>"
+validpgpkeys+=('995ED5C8A6138EB0961F18474C09DD83CAAA50B2') # "Adam Jackson <ajax@nwnk.net>"
build() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd ${pkgname}-${pkgver}
./configure --prefix=/usr --sysconfdir=/etc
make
}
+
package() {
- cd "${srcdir}/${pkgname}-${pkgver}"
+ cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
install -m644 COPYING "${pkgdir}/usr/share/licenses/${pkgname}/"
diff --git a/abs/core/libseccomp/PKGBUILD b/abs/core/libseccomp/PKGBUILD
index 63a4d4e..9d95285 100644
--- a/abs/core/libseccomp/PKGBUILD
+++ b/abs/core/libseccomp/PKGBUILD
@@ -1,24 +1,57 @@
-# Maintainer: Daniel Micay <danielmicay@gmail.com>
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
+# Contributor: Daniel Micay <danielmicay@gmail.com>
# Contributor: Patryk Kowalczyk < patryk at kowalczyk dot ws>
pkgname=libseccomp
-pkgver=2.2.3
+pkgver=2.4.2
pkgrel=1
pkgdesc='Enhanced seccomp library'
-arch=('i686' 'x86_64')
+arch=('x86_64')
license=('LGPL2.1')
-url="http://sourceforge.net/projects/libseccomp/"
+url="https://github.com/seccomp/libseccomp"
depends=('glibc')
-source=("https://github.com/seccomp/$pkgname/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz")
-md5sums=('7db418d35d7a6168400bf6b05502f8bf')
+checkdepends=('valgrind')
+makedepends=('git')
+provides=('libseccomp.so')
+#source=(https://github.com/seccomp/${pkgname}/releases/download/v${pkgver}/${pkgname}-${pkgver}.tar.gz{,.asc})
+source=("git+https://github.com/seccomp/${pkgname}?signed#tag=v${pkgver}")
+sha256sums=('SKIP')
+# XXX: do NOT trust this key as its not yet in the strong set, see linked issue
+# XXX: https://github.com/seccomp/libseccomp/issues/187
+# XXX: 47A68FCE37C7D7024FD65E11356CE62C2B524099 Tom Hromatka <tom.hromatka@oracle.com>
+# XXX: do NOT trust ^^ this key as its not yet in the strong set ^^ see linked issue
+validpgpkeys=('7100AADFAE6E6E940D2E0AD655E45A5AE8CA7C8A') # Paul Moore <paul@paul-moore.com>
+
+pkgver() {
+ cd ${pkgname}
+ git describe --tags --match 'v*' | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
+}
+
+prepare() {
+ cd ${pkgname}
+ # assert annotated tag doesn't change
+ test "$(git rev-parse HEAD)" = "1b6cfd1fc0b7499a28c24299a93a80bd18619563"
+ # backport: api: define __SNR_ppoll again
+ git cherry-pick --no-commit e3647f5b6b52996bf30d0c2c1d1248e4182e1c1c
+}
build() {
- cd $pkgname-$pkgver
+ cd ${pkgname}
+ autoreconf -fiv
./configure --prefix=/usr
make
}
+check() {
+ cd ${pkgname}
+ make check
+}
+
package() {
- cd $pkgname-$pkgver
- make DESTDIR="$pkgdir" install
+ cd ${pkgname}
+ make DESTDIR="${pkgdir}" install
+ install -Dm 644 CHANGELOG README.md SECURITY.md -t "${pkgdir}/usr/share/doc/${pkgname}"
}
+
+# vim: ts=2 sw=2 et:
diff --git a/abs/core/libtool/PKGBUILD b/abs/core/libtool/PKGBUILD
index 31abf0d..49edcaa 100644
--- a/abs/core/libtool/PKGBUILD
+++ b/abs/core/libtool/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
@@ -6,23 +5,29 @@
# NOTE: requires rebuilt with each new gcc version
pkgname=libtool
-pkgver=2.4.6+40+g6ca5e224
-pkgrel=4
-_gccver=7.3.0
+pkgver=2.4.6+42+gb88cebd5
+pkgrel=14
+_gccver=10.2.0
pkgdesc='A generic library support script'
arch=(x86_64)
-url='http://www.gnu.org/software/libtool'
+url='https://www.gnu.org/software/libtool'
license=(GPL)
groups=(base-devel)
depends=(sh tar glibc)
-makedepends=("gcc=$_gccver" git help2man)
+makedepends=("gcc>=$_gccver" git help2man)
+checkdepends=(gcc-fortran)
provides=("libltdl=$pkgver" "libtool-multilib=$pkgver")
-conflicts=('libltdl' 'libtool-multilib')
-replaces=('libltdl' 'libtool-multilib')
-_commit=6ca5e224bc7bcc114a9ba2cf5dcf0fbf0ec40c9f
-source=(git+https://git.savannah.gnu.org/git/libtool.git#commit=$_commit)
-md5sums=('SKIP')
-
+conflicts=(libltdl libtool-multilib)
+replaces=(libltdl libtool-multilib)
+_commit=b88cebd510add4420dd8f5367e3cc6e6e1f267cd
+source=(git+https://git.savannah.gnu.org/git/libtool.git#commit=$_commit
+ git+https://git.savannah.gnu.org/git/gnulib.git
+ gnulib-bootstrap::git+https://github.com/gnulib-modules/bootstrap.git
+ no_hostname.patch)
+sha256sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ '693aabb24a6e7ce21fe0b5d14394e19edcb8476663b5afa4463f9fa0df24d946')
pkgver() {
cd libtool
@@ -31,6 +36,14 @@ pkgver() {
prepare() {
cd libtool
+
+ patch -Np1 -i ${srcdir}/no_hostname.patch
+
+ git submodule init
+ git config --local submodule.gnulib.url "$srcdir/gnulib"
+ git config --local submodule.gl-mod/bootstrap.url "$srcdir/gnulib-bootstrap"
+ git submodule update
+
./bootstrap
}
@@ -42,7 +55,7 @@ build() {
check() {
cd libtool
- make check || :
+ make check gl_public_submodule_commit=
}
package() {
diff --git a/abs/core/libtool/no_hostname.patch b/abs/core/libtool/no_hostname.patch
new file mode 100644
index 0000000..4fa900c
--- /dev/null
+++ b/abs/core/libtool/no_hostname.patch
@@ -0,0 +1,12 @@
+Index: libtool-2.4.6/m4/libtool.m4
+===================================================================
+--- libtool-2.4.6.orig/m4/libtool.m4
++++ libtool-2.4.6/m4/libtool.m4
+@@ -728,7 +728,6 @@ _LT_CONFIG_SAVE_COMMANDS([
+ cat <<_LT_EOF >> "$cfgfile"
+ #! $SHELL
+ # Generated automatically by $as_me ($PACKAGE) $VERSION
+-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+ # NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+ # Provide generalized library-building support services.
diff --git a/abs/core/libxcrypt/PKGBUILD b/abs/core/libxcrypt/PKGBUILD
new file mode 100644
index 0000000..8d07818
--- /dev/null
+++ b/abs/core/libxcrypt/PKGBUILD
@@ -0,0 +1,39 @@
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+
+pkgname=libxcrypt
+pkgver=4.4.17
+pkgrel=1
+pkgdesc='Modern library for one-way hashing of passwords'
+arch=(x86_64)
+url='https://github.com/besser82/libxcrypt/'
+license=(GPL)
+depends=(glibc)
+provides=(libcrypt.so)
+source=($pkgname-$pkgver.tar.gz::$url/archive/v${pkgver}.tar.gz)
+sha256sums=('7665168d0409574a03f7b484682e68334764c29c21ca5df438955a381384ca07')
+
+prepare() {
+ cd $pkgname-$pkgver
+ autoreconf -fi
+}
+
+build() {
+ cd $pkgname-$pkgver
+ ./configure \
+ --prefix=/usr \
+ --disable-static \
+ --enable-hashes=strong,glibc \
+ --enable-obsolete-api=no \
+ --disable-failure-tokens
+ make
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
+}
diff --git a/abs/core/libxml2/PKGBUILD b/abs/core/libxml2/PKGBUILD
index 594b4ef..c369048 100644
--- a/abs/core/libxml2/PKGBUILD
+++ b/abs/core/libxml2/PKGBUILD
@@ -4,18 +4,20 @@
# Contributor: John Proctor <jproctor@prium.net>
pkgname=libxml2
-pkgver=2.9.9
-pkgrel=1
+pkgver=2.9.10
+pkgrel=2
pkgdesc='XML parsing library, version 2'
url='http://www.xmlsoft.org/'
arch=(x86_64)
license=(MIT)
depends=(zlib readline ncurses xz icu)
makedepends=(python2 python git)
-_commit=f8a8c1f59db355b46962577e7b74f1a1e8149dc6 # tags/v2.9.9^0
-source=("git+https://git.gnome.org/browse/libxml2#commit=$_commit"
+_commit=41a34e1f4ffae2ce401600dbb5fe43f8fe402641 # tags/v2.9.10^0
+source=("git+https://gitlab.gnome.org/GNOME/libxml2.git#commit=$_commit"
+ libxml2-2.9.8-python3-unicode-errors.patch
https://www.w3.org/XML/Test/xmlts20130923.tar.gz)
sha256sums=('SKIP'
+ '37eb81a8ec6929eed1514e891bff2dd05b450bcf0c712153880c485b7366c17c'
'9b61db9f5dbffa545f4b8d78422167083a8568c59bd1129f94138f936cf6fc1f')
pkgver() {
@@ -26,6 +28,10 @@ pkgver() {
prepare() {
mkdir build-py{2,3}
cd $pkgname
+
+ # From https://src.fedoraproject.org/rpms/libxml2/tree/master
+ patch -Np1 -i ../libxml2-2.9.8-python3-unicode-errors.patch
+
NOCONFIGURE=1 ./autogen.sh
}
diff --git a/abs/core/libxml2/libxml2-2.9.8-python3-unicode-errors.patch b/abs/core/libxml2/libxml2-2.9.8-python3-unicode-errors.patch
new file mode 100644
index 0000000..e87dcde
--- /dev/null
+++ b/abs/core/libxml2/libxml2-2.9.8-python3-unicode-errors.patch
@@ -0,0 +1,34 @@
+Index: libxml2-2.9.5/python/libxml.c
+===================================================================
+--- libxml2-2.9.5.orig/python/libxml.c
++++ libxml2-2.9.5/python/libxml.c
+@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
+ PyObject *message;
+ PyObject *result;
+ char str[1000];
++ unsigned char *ptr = (unsigned char *)str;
+
+ #ifdef DEBUG_ERROR
+ printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
+@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
+ str[999] = 0;
+ va_end(ap);
+
++#if PY_MAJOR_VERSION >= 3
++ /* Ensure the error string doesn't start at UTF8 continuation. */
++ while (*ptr && (*ptr & 0xc0) == 0x80)
++ ptr++;
++#endif
++
+ list = PyTuple_New(2);
+ PyTuple_SetItem(list, 0, libxml_xmlPythonErrorFuncCtxt);
+ Py_XINCREF(libxml_xmlPythonErrorFuncCtxt);
+- message = libxml_charPtrConstWrap(str);
++ message = libxml_charPtrConstWrap(ptr);
+ PyTuple_SetItem(list, 1, message);
+ result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list);
++ /* Forget any errors caused in the error handler. */
++ PyErr_Clear();
+ Py_XDECREF(list);
+ Py_XDECREF(result);
+ }
diff --git a/abs/core/linhes-theme/PKGBUILD b/abs/core/linhes-theme/PKGBUILD
index f275e0d..d062f9a 100755
--- a/abs/core/linhes-theme/PKGBUILD
+++ b/abs/core/linhes-theme/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=linhes-theme
-pkgver=8.6.0
-pkgrel=2
+pkgver=8.6.1
+pkgrel=1
pkgdesc="Default LinHES MythTV theme"
arch=('x86_64')
license=('GPL2')
@@ -101,8 +101,8 @@ package() {
sed -i "s/MIN_VER/${pkgrel}/" $pkgdir/$THEMEROOT/LinHES/themeinfo.xml
}
md5sums=('2dca856c2a4d1f959473512c94e43b60'
- '3fc2c8838a9e331a2d19c114760a5acb'
- '391f8e5d43ca846b04a5e8119dccc8cf'
+ '7ad16012e4c5f9419089e42c539fe6af'
+ '31cd00ab3f10329a15f238dbe2b43708'
'd1d54968a2297924673d9653f707df33'
'25ff929dc4aca3b2a0bd38d9ded5a6b8'
'26a6db272dee225b9e4dc282f1494e51'
@@ -115,12 +115,12 @@ md5sums=('2dca856c2a4d1f959473512c94e43b60'
'643e7d548587b8742ed5accb6d736257'
'dd1e013e806efc26049ea89637a51f83'
'9fe3371a8b964a7028126405cfaa330b'
- '814b52b7ad9a6918585764f5790d1c3b'
+ '9eb628e751ad0cccc199779b5b23ac16'
'373e1fd01ba18640992bd5d2e7fd7bfe'
'384871202030f41148536e2e89bb1801'
'8efbd524cef4dd3f5fbe5b7d5ad854f0'
'8312aff444945f80a76100696c81cb2e'
- 'f1e0b73f5118c0a6f8c75e47beefdcdc'
+ 'f62b200729eb9a69e3929f20f51d3d35'
'4125880d1739b196a8041ecc3d773ee2'
'5a8fb2a5f0e657d52be6f0a6a006ce72'
'274b6f8cb5cd82c5ce28422decd7754b'
@@ -136,6 +136,6 @@ md5sums=('2dca856c2a4d1f959473512c94e43b60'
'e8ac15e38b3dc99c9e889e439ba356de'
'e8cf0d3a55ba3be47deae55c05432141'
'3f600b966bd813dd27f620762ddb3ac8'
- 'e92bd22caf09a1d2b709f4d5b2519540'
+ '4f9e4db179e80eb96a202d319f1b835c'
'b51ef0cbf8ed2d3a8c1a8257a89aceff'
'09ad14842f828b7a8d24070ec8214fe5')
diff --git a/abs/core/linhes-theme/base.xml.patch b/abs/core/linhes-theme/base.xml.patch
index 1357b37..51c7c72 100644
--- a/abs/core/linhes-theme/base.xml.patch
+++ b/abs/core/linhes-theme/base.xml.patch
@@ -1,5 +1,5 @@
--- base.xml.orig 2018-04-17 14:44:34.438582684 +0000
-+++ base.xml 2018-05-24 19:32:20.152603456 +0000
++++ base.xml 2019-03-22 17:16:10.683904892 +0000
@@ -3,55 +3,55 @@
<mythuitheme>
@@ -967,3 +967,12 @@
</textarea>
<group name="clock-backdrop-group" from="base_clock_backdrop_group" />
+@@ -3114,7 +3262,7 @@
+ <area>14,4,552,92</area>
+ <font>basesmalldarkyellow</font>
+ <align>hcenter,bottom</align>
+- <value>Please Wait...</value>
++ <value>Starting Playback...</value>
+ </textarea>
+
+ <progressbar name="progress" from="baseprogressbar">
diff --git a/abs/core/linhes-theme/osd.xml.patch b/abs/core/linhes-theme/osd.xml.patch
index a5629d4..d406747 100644
--- a/abs/core/linhes-theme/osd.xml.patch
+++ b/abs/core/linhes-theme/osd.xml.patch
@@ -1,5 +1,5 @@
---- osd.xml.orig 2016-11-16 18:00:59.736588734 +0000
-+++ osd.xml 2017-01-13 18:57:07.721509072 +0000
+--- osd.xml.orig 2019-03-23 13:50:23.868516705 +0000
++++ osd.xml 2019-03-22 21:48:01.193894529 +0000
@@ -7,13 +7,13 @@
<window name="osd_debug">
<area>0,0,1280,720</area>
@@ -254,7 +254,357 @@
</fontdef>
<shape name="osd-input-backdrop">
-@@ -378,9 +366,9 @@
+@@ -375,12 +363,359 @@
+
+ </window>
+
++ <window name="osd_navigation">
++ <fontdef name="small" face="Overlock">
++ <color>#e6e6e6</color>
++ <pixelsize>20</pixelsize>
++ </fontdef>
++
++ <fontdef name="smallgrey" from="small">
++ <color>#999999</color>
++ </fontdef>
++
++ <fontdef name="smallyellow" from="small">
++ <color>#ebb81c</color>
++ </fontdef>
++
++ <fontdef name="mediumgrey" from="smallgrey">
++ <pixelsize>28</pixelsize>
++ </fontdef>
++
++ <fontdef name="mediumyellow" from="smallyellow">
++ <pixelsize>28</pixelsize>
++ </fontdef>
++
++ <button name="more">
++ <focusorder>2</focusorder>
++ <area>1020,626,50,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,50,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>MORE</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <group name="grp0">
++ <area>260,626,760,24</area>
++
++ <button name="MENU">
++ <focusorder>2</focusorder>
++ <area>72,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,64,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>MENU</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="INFO">
++ <focusorder>2</focusorder>
++ <area>141,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,64,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>INFO</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="JUMPRWND">
++ <focusorder>2</focusorder>
++ <area>210,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,-3,64,24</area>
++ <align>allcenter</align>
++ <font>mediumgrey</font>
++ <cutdown>none</cutdown>
++ <value>&lt;&lt;</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>mediumyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="SEEKRWND">
++ <focusorder>2</focusorder>
++ <area>279,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,-3,64,24</area>
++ <align>allcenter</align>
++ <font>mediumgrey</font>
++ <cutdown>none</cutdown>
++ <value>&lt;</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>mediumyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="PLAY">
++ <area>348,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,64,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>PLAY</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="PAUSE">
++ <area>348,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,64,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>PAUSE</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="SEEKFFWD">
++ <area>417,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,-3,64,24</area>
++ <align>allcenter</align>
++ <font>mediumgrey</font>
++ <cutdown>none</cutdown>
++ <value>&gt;</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>mediumyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="JUMPFFWD">
++ <area>486,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,-3,64,24</area>
++ <align>allcenter</align>
++ <font>mediumgrey</font>
++ <cutdown>none</cutdown>
++ <value>&gt;&gt;</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>mediumyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="NEXTCC">
++ <area>555,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,64,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>CC</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="TOGGLEFILL">
++ <area>624,0,64,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,64,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>FILL</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ </group>
++
++ <group name="grp1">
++ <area>260,626,760,24</area>
++
++ <button name="JUMPSTART">
++ <area>75,0,128,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,200,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>JUMP TO BEGINNING</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="SETBOOKMARK">
++ <area>280,0,200,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,200,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>BOOKMARK</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ <button name="JUMPBKMRK">
++ <area>485,0,200,24</area>
++ <statetype name="buttonstate">
++ <state name="active">
++ <textarea name="text">
++ <area>0,0,200,24</area>
++ <align>allcenter</align>
++ <font>smallgrey</font>
++ <cutdown>none</cutdown>
++ <value>JUMP TO BOOKMARK</value>
++ </textarea>
++ </state>
++ <state name="selected" from="active">
++ <textarea name="text">
++ <font>smallyellow</font>
++ </textarea>
++ </state>
++ <state name="disabled" from="active" />
++ <state name="pushed" from="selected" />
++ </statetype>
++ </button>
++
++ </group>
++
++ </window>
++
<window name="osd_status">
<area>0,0,1280,720</area>
@@ -266,7 +616,7 @@
</fontdef>
<shape name="osd-status-backdrop">
-@@ -436,12 +424,19 @@
+@@ -436,12 +771,19 @@
<align>left,vcenter</align>
</textarea>
@@ -290,7 +640,7 @@
</textarea>
<clock name="clock">
-@@ -470,39 +465,39 @@
+@@ -470,39 +812,39 @@
<window name="program_info">
<area>0,0,1280,720</area>
@@ -341,7 +691,7 @@
</fontdef>
<shape name="program-info-backdrop">
-@@ -628,7 +623,7 @@
+@@ -628,7 +970,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -350,7 +700,7 @@
</textarea>
</state>
<state name="WatchingPreRecorded">
-@@ -685,7 +680,7 @@
+@@ -685,7 +1027,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -359,7 +709,7 @@
</textarea>
</state>
<state name="PCM_BLURAY">
-@@ -787,7 +782,7 @@
+@@ -787,7 +1129,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -368,7 +718,7 @@
</textarea>
</state>
<state name="2">
-@@ -805,7 +800,7 @@
+@@ -805,7 +1147,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -377,7 +727,7 @@
</textarea>
</state>
<state name="6">
-@@ -823,7 +818,7 @@
+@@ -823,7 +1165,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -386,7 +736,7 @@
</textarea>
</state>
<state name="8">
-@@ -832,7 +827,7 @@
+@@ -832,7 +1174,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -395,7 +745,7 @@
</textarea>
</state>
</statetype>
-@@ -865,6 +860,15 @@
+@@ -865,6 +1207,15 @@
<value>VideoCodec: H.264</value>
</textarea>
</state>
@@ -411,7 +761,7 @@
<state name="MPEG-4">
<textarea name="MPEG-4">
<area>830,432,180,16</area>
-@@ -910,7 +914,7 @@
+@@ -910,7 +1261,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -420,7 +770,7 @@
</textarea>
</state>
<state name="HD_720_P">
-@@ -919,7 +923,7 @@
+@@ -919,7 +1270,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -429,7 +779,7 @@
</textarea>
</state>
<state name="HD_1080_I">
-@@ -928,7 +932,7 @@
+@@ -928,7 +1279,7 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -438,7 +788,7 @@
</textarea>
</state>
<state name="HD_1080_P">
-@@ -937,23 +941,32 @@
+@@ -937,23 +1288,32 @@
<font>supersmallblue</font>
<cutdown>no</cutdown>
<align>allcenter</align>
@@ -478,7 +828,7 @@
</textarea>
<imagetype name="coverart">
-@@ -988,13 +1001,22 @@
+@@ -988,13 +1348,22 @@
<alpha>255</alpha>
</imagetype>
@@ -502,7 +852,7 @@
<textarea name="description">
<font>small</font>
<area>284,523,912,126</area>
-@@ -1003,37 +1025,62 @@
+@@ -1003,37 +1372,62 @@
<template>%"|SUBTITLE|" %%YEARSTARS| %%DESCRIPTION%</template>
</textarea>
@@ -572,7 +922,7 @@
</fontdef>
<shape name="browse-info-backdrop">
-@@ -1084,7 +1131,7 @@
+@@ -1084,7 +1478,7 @@
</shape>
<shape name="title-backdrop-line">
@@ -581,7 +931,7 @@
<type>roundbox</type>
<fill color="#000000" alpha="0" />
<line color="#ffffff" alpha="45" width="2" />
-@@ -1092,11 +1139,11 @@
+@@ -1092,11 +1486,11 @@
</shape>
<shape name="title-top-line" from="channel-top-line">
@@ -595,7 +945,7 @@
</shape>
<shape name="title-left-line" from="channel-left-line">
-@@ -1104,30 +1151,6 @@
+@@ -1104,30 +1498,6 @@
</shape>
<shape name="title-right-line" from="channel-left-line">
@@ -626,7 +976,7 @@
<area>1212,492,2,62</area>
</shape>
-@@ -1175,30 +1198,29 @@
+@@ -1175,30 +1545,29 @@
</textarea>
<textarea name="title">
@@ -667,7 +1017,7 @@
</clock>
<textarea name="description">
-@@ -1214,9 +1236,9 @@
+@@ -1214,9 +1583,9 @@
<window name="ChannelEditor">
<area>0,0,1280,720</area>
@@ -679,7 +1029,7 @@
</fontdef>
<fontdef name="smallblack" from="small">
-@@ -1224,7 +1246,7 @@
+@@ -1224,7 +1593,7 @@
</fontdef>
<fontdef name="smallblue" from="small">
@@ -688,7 +1038,7 @@
</fontdef>
<fontdef name="smallgrey" from="small">
-@@ -1232,7 +1254,7 @@
+@@ -1232,7 +1601,7 @@
</fontdef>
<fontdef name="medium" from="small">
@@ -697,7 +1047,7 @@
</fontdef>
<shape name="channel-editor-backdrop">
-@@ -1610,9 +1632,9 @@
+@@ -1610,9 +1979,9 @@
<window name="osd_program_editor">
<area>0,0,1280,720</area>
@@ -709,7 +1059,7 @@
</fontdef>
<shape name="osd-program-editor-backdrop">
-@@ -1663,13 +1685,17 @@
+@@ -1663,13 +2032,17 @@
</shape>
<textarea name="title">
@@ -730,7 +1080,7 @@
<align>right,vcenter</align>
</textarea>
-@@ -1749,9 +1775,9 @@
+@@ -1749,9 +2122,9 @@
<window name="MythPopupBox">
<area>0,0,1280,720</area>
@@ -742,7 +1092,7 @@
</fontdef>
<fontdef name="smallgrey" from="small">
-@@ -1759,7 +1785,7 @@
+@@ -1759,7 +2132,7 @@
</fontdef>
<fontdef name="smallyellow" from="small">
@@ -751,7 +1101,7 @@
</fontdef>
<shape name="mythpopupbox-backdrop">
-@@ -1810,7 +1836,7 @@
+@@ -1810,7 +2183,7 @@
</shape>
<shape name="message-area-seperator-line">
@@ -760,7 +1110,7 @@
<type>box</type>
<fill style="gradient">
<gradient direction="horizontal" alpha="45">
-@@ -1822,21 +1848,21 @@
+@@ -1822,21 +2195,21 @@
</shape>
<shape name="mythpopup-box-arrows-backdrop">
@@ -787,7 +1137,7 @@
<layout>vertical</layout>
<spacing>4</spacing>
<showarrow>yes</showarrow>
-@@ -1922,7 +1948,7 @@
+@@ -1922,7 +2295,7 @@
</fill>
</shape>
<textarea name="buttontext">
@@ -796,7 +1146,7 @@
</textarea>
<imagetype name="buttonarrow">
<alpha>255</alpha>
-@@ -1964,7 +1990,7 @@
+@@ -1964,7 +2337,7 @@
</state>
</statetype>
<statetype name="upscrollarrow">
@@ -805,7 +1155,7 @@
<state type="off">
<imagetype name="upon">
<filename>images/osd/lists_up_arrow.png</filename>
-@@ -1978,7 +2004,7 @@
+@@ -1978,7 +2351,7 @@
</state>
</statetype>
<statetype name="downscrollarrow">
diff --git a/abs/core/linhes-theme/recordings-ui.xml.patch b/abs/core/linhes-theme/recordings-ui.xml.patch
index 15d80fc..205d671 100644
--- a/abs/core/linhes-theme/recordings-ui.xml.patch
+++ b/abs/core/linhes-theme/recordings-ui.xml.patch
@@ -1,5 +1,5 @@
--- recordings-ui.xml.orig 2018-05-25 17:44:18.266763054 +0000
-+++ recordings-ui.xml 2018-05-25 17:43:56.879526676 +0000
++++ recordings-ui.xml 2019-03-24 22:52:51.874815241 +0000
@@ -105,19 +105,11 @@
</shape>
@@ -158,12 +158,19 @@
</textarea>
<imagetype name="no_preview_image_without_fanart" depends="!fanart">
-@@ -688,7 +674,7 @@
- <textarea name="norecordings">
- <area>350,87,906,351</area>
- <font>basemedium</font>
+@@ -685,12 +671,10 @@
+ <alpha>255</alpha>
+ </imagetype>
+
+- <textarea name="norecordings">
+- <area>350,87,906,351</area>
+- <font>basemedium</font>
- <value>No Recordings available, or screen loading...</value>
-+ <value>No recordings available.</value>
++ <textarea name="norecordings" from="basetextarea">
++ <area>38,498,833,140</area>
<multiline>yes</multiline>
- <align>allcenter</align>
+- <align>allcenter</align>
++ <value>No recordings are available.</value>
</textarea>
+
+ <group name="clock-backdrop-group" from="base_clock_backdrop_group" />
diff --git a/abs/core/linhes-theme/standardsetting-ui.xml b/abs/core/linhes-theme/standardsetting-ui.xml
index 255b120..75ff02f 100644
--- a/abs/core/linhes-theme/standardsetting-ui.xml
+++ b/abs/core/linhes-theme/standardsetting-ui.xml
@@ -6,109 +6,65 @@
<textarea name="title" from="base_heading">
<value>Settings</value>
</textarea>
-<!--
- <shape name="group-help-backdrop" from="base_backdrop" depends="grouphelp">
- <area>20,86,1240,420</area>
- <area>20,36,1240,40</area>
- </shape>
-
- <shape name="group-help-backdrop-line" from="base_backdrop_line" depends="grouphelp">
- <area>21,87,1238,418</area>
- <area>21,37,1238,37</area>
- </shape>
-
- <shape name="group-help-top-line" from="base_highlight_line" depends="grouphelp">
- <area>22,88,1236,2</area>
- <area>22,38,1236,2</area>
- </shape>
-
- <shape name="group-help-bottom-line" from="base_highlight_line" depends="grouphelp">
- <area>22,502,1236,2</area>
- <area>22,72,1236,2</area>
- </shape>
-
- <shape name="group-help-left-line" from="base_highlight_vertical_line" depends="grouphelp">
- <area>22,90,2,412</area>
- <area>22,40,2,32</area>
- </shape>
-
- <shape name="group-help-right-line" from="base_highlight_vertical_line" depends="grouphelp">
- <area>1256,90,2,412</area>
- <area>1256,40,2,32</area>
- </shape>
--->
-
- <shape name="group-help-backdrop" from="base_backdrop">
- <area>0,36,1280,40</area>
- <type>box</type>
- </shape>
-
- <shape name="group-help-top-line" from="base_line">
- <area>0,37,1280,2</area>
- </shape>
-
- <shape name="group-help-bottom-line" from="base_line">
- <area>0,73,1280,2</area>
- </shape>
<shape name="settings-list-backdrop" from="base_backdrop">
- <area>20,86,1240,420</area>
+ <area>20,36,1240,488</area>
</shape>
<shape name="settings-list-backdrop-line" from="base_backdrop_line">
- <area>21,87,1238,418</area>
+ <area>21,37,1238,484</area>
</shape>
<shape name="settings-list-top-line" from="base_highlight_line">
- <area>22,88,1236,2</area>
+ <area>22,38,1236,2</area>
</shape>
<shape name="settings-list-bottom-line" from="base_highlight_line">
- <area>22,502,1236,2</area>
+ <area>22,518,1236,2</area>
</shape>
<shape name="settings-list-left-line" from="base_highlight_vertical_line">
- <area>22,90,2,412</area>
+ <area>22,40,2,476</area>
</shape>
<shape name="settings-list-right-line" from="base_highlight_vertical_line">
- <area>1256,90,2,412</area>
+ <area>1256,40,2,476</area>
</shape>
<shape name="settings-list-arrows-backdrop" from="base_arrows_backdrop">
- <area>1207,506,50,11</area>
+ <area>1207,522,50,11</area>
</shape>
<shape name="settings-bottom-backdrop" from="base_backdrop">
- <area>20,516,1240,169</area>
+ <area>20,532,1240,154</area>
</shape>
<shape name="settings-bottom-backdrop-line" from="base_backdrop_line">
- <area>21,517,1238,167</area>
+ <area>21,533,1238,150</area>
</shape>
<shape name="settings-bottom-top-line" from="base_highlight_line">
- <area>22,518,1236,2</area>
+ <area>22,534,1236,2</area>
</shape>
<shape name="settings-bottom-bottom-line" from="base_highlight_line">
- <area>22,681,1236,2</area>
+ <area>22,680,1236,2</area>
</shape>
<shape name="settings-bottom-left-line" from="base_highlight_vertical_line">
- <area>22,520,2,161</area>
+ <area>22,536,2,146</area>
</shape>
<shape name="settings-bottom-right-line" from="base_highlight_vertical_line">
- <area>1256,520,2,161</area>
+ <area>1256,536,2,146</area>
</shape>
<shape name="settings-bottom-seperator-first-line" from="base_line">
- <area>43,554,1194,2</area>
+ <area>43,609,1194,2</area>
</shape>
<buttonlist name="settingslist" from="base_list">
- <area>28,94,1224,404</area>
+ <area>28,43,1224,472</area>
<layout>vertical</layout>
<spacing>4</spacing>
<scrollstyle>free</scrollstyle>
@@ -123,7 +79,7 @@
</group>
<textarea name="buttontext">
- <area>15,0,50%-5,30</area>
+ <area>25,0,50%-5,30</area>
</textarea>
<group name="widgets">
@@ -204,7 +160,7 @@
</imagetype>
<textarea name="buttontext">
- <area>33,0,1194,64</area>
+ <area>25,0,1194,64</area>
<font>basesmallyellow</font>
<align>left,vcenter</align>
<scroll direction="horizontal" />
@@ -314,36 +270,31 @@
</state>
</statetype>
<statetype name="upscrollarrow">
- <position>1186,413</position>
+ <position>1186,479</position>
</statetype>
<statetype name="downscrollarrow">
- <position>1206,413</position>
+ <position>1206,479</position>
</statetype>
</buttonlist>
- <!-- optional, display the help for the current group of settings -->
- <textarea name="grouphelp" from="basetextarea">
- <area>0,37,1280,37</area>
- <font>basesmall</font>
+ <!-- optional, display the help for the currently selected setting -->
+ <textarea name="selectedsettinghelp" from="basetextarea">
+ <area>44,545,1192,55</area>
+ <font>basesmallyellow</font>
<align>allcenter</align>
- <multiline>no</multiline>
- <scroll direction="horizontal" returnrate="2000" />
- </textarea>
-
- <textarea name="helplabel">
- <area>44,520,1192,34</area>
- <font>basemediumyellow</font>
- <align>left,vcenter</align>
- <value>Details</value>
+ <multiline>yes</multiline>
+ <scroll direction="up" rate="20" startdelay="5"/>
</textarea>
- <!-- optional, display the help for the currently selected setting -->
- <textarea name="selectedsettinghelp" from="basetextarea">
- <area>44,561,1192,124</area>
+ <!-- optional, display the help for the current group of settings -->
+ <textarea name="grouphelp" from="basetextarea">
+ <area>44,618,1192,55</area>
<font>basesmall</font>
- <align>left</align>
+ <align>allcenter</align>
<multiline>yes</multiline>
+ <scroll direction="up" rate="20" startdelay="5"/>
</textarea>
+
</window>
<window name="terminal">
diff --git a/abs/core/linhes-theme/video-ui.xml.patch b/abs/core/linhes-theme/video-ui.xml.patch
index 5f56372..ef00618 100644
--- a/abs/core/linhes-theme/video-ui.xml.patch
+++ b/abs/core/linhes-theme/video-ui.xml.patch
@@ -1,5 +1,5 @@
--- video-ui.xml.orig 2018-04-17 14:44:43.827360598 +0000
-+++ video-ui.xml 2019-03-09 13:31:34.326974622 +0000
++++ video-ui.xml 2019-04-21 23:09:21.959330647 +0000
@@ -58,8 +58,8 @@
<textarea name="label" from="basetextarea">
<area>10,4,543,70</area>
@@ -105,7 +105,7 @@
<font>basesmall</font>
<align>allcenter</align>
- <value>No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Change."</value>
-+ <value>No videos available. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
++ <value>No videos available. If you have configured a video storage group or directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
</textarea>
<group name="clock-backdrop-group" from="base_clock_backdrop_group" />
@@ -489,7 +489,7 @@
<font>basesmall</font>
<align>allcenter</align>
- <value>No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
-+ <value>No videos available. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
++ <value>No videos available. If you have configured a video storage group or directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
</textarea>
<group name="clock-backdrop-group" from="base_clock_backdrop_group" />
@@ -876,7 +876,7 @@
<font>basesmall</font>
<align>allcenter</align>
- <value>No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
-+ <value>No videos available. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
++ <value>No videos available. If you have configured a video storage group or directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
</textarea>
<group name="clock-backdrop-group" from="base_clock_backdrop_group" />
@@ -1223,7 +1223,7 @@
<font>basesmall</font>
<align>allcenter</align>
- <value>No videos in library, or no files found. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Change."</value>
-+ <value>No videos available. If you have configured a video directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
++ <value>No videos available. If you have configured a video storage group or directory, press "M" (or the MENU key) and select "Scan for Changes."</value>
</textarea>
<group name="clock-backdrop-group" from="base_clock_backdrop_group" />
@@ -1281,29 +1281,162 @@
</window>
<window name="edit_metadata">
-@@ -2367,13 +2431,13 @@
- </textedit>
+@@ -2247,7 +2311,7 @@
+ <group name="fanart-group" from="base_fanart_group" />
+
+ <textarea name="heading" from="base_heading">
+- <value>Metadata Editor</value>
++ <value>Edit Details</value>
+ </textarea>
- <textarea name="director_text" from="basetextarea">
-- <area>40,126,124,36</area>
-+ <area>40,126,114,36</area>
- <value>Director:</value>
+ <shape name="video-metadata-top-backdrop" from="base_backdrop">
+@@ -2345,15 +2409,15 @@
+ <mask>images/masks/edit_metadata_coverart_mask.png</mask>
+ <preserveaspect>false</preserveaspect>
+ </imagetype>
+-
++
+ <textarea name="title_text" from="basetextarea">
+ <area>40,46,124,36</area>
+ <value>Title:</value>
<align>right,vcenter</align>
</textarea>
+-
++
+ <textedit name="title_edit" from="base_textedit">
+- <area>177,46,366,36</area>
++ <area>177,46,885,36</area>
+ </textedit>
- <textedit name="director_edit" from="base_textedit">
-- <area>177,126,366,36</area>
-+ <area>167,126,366,36</area>
+ <textarea name="subtitle_text" from="basetextarea">
+@@ -2376,6 +2440,26 @@
+ <area>177,126,366,36</area>
</textedit>
++ <textarea name="rating_text" from="basetextarea">
++ <area>556,86,124,36</area>
++ <value>Rating:</value>
++ <align>right,vcenter</align>
++ </textarea>
++
++ <textedit name="rating_edit" from="base_textedit">
++ <area>696,86,366,36</area>
++ </textedit>
++
++ <textarea name="inetref_text" from="basetextarea">
++ <area>556,126,124,36</area>
++ <value>Video #:</value>
++ <align>right,vcenter</align>
++ </textarea>
++
++ <textedit name="inetref_edit" from="base_textedit">
++ <area>696,126,366,36</area>
++ </textedit>
++
<textarea name="tagline_text" from="basetextarea">
-@@ -2418,7 +2482,7 @@
+ <area>40,166,124,36</area>
+ <value>Tagline:</value>
+@@ -2406,26 +2490,6 @@
+ <area>177,246,885,36</area>
+ </textedit>
- <textarea name="inetref_text" from="basetextarea">
- <area>556,86,124,36</area>
+- <textarea name="rating_text" from="basetextarea">
+- <area>556,46,124,36</area>
+- <value>Rating:</value>
+- <align>right,vcenter</align>
+- </textarea>
+-
+- <textedit name="rating_edit" from="base_textedit">
+- <area>696,46,366,36</area>
+- </textedit>
+-
+- <textarea name="inetref_text" from="basetextarea">
+- <area>556,86,124,36</area>
- <value>TMDB:</value>
-+ <value>Video #:</value>
- <align>right,vcenter</align>
+- <align>right,vcenter</align>
+- </textarea>
+-
+- <textedit name="inetref_edit" from="base_textedit">
+- <area>696,86,366,36</area>
+- </textedit>
+-
+ <textarea name="season_text" from="basetextarea">
+ <area>48,327,132,40</area>
+ <value>Season:</value>
+@@ -2519,13 +2583,13 @@
+ <textarea name="coverart_text" from="basetextarea">
+ <area>636,325,416,40</area>
+ <font>basesmaller</font>
+- <value>/path/to/the/thing.jpg</value>
++ <value>No Image</value>
+ <align>vcenter</align>
+ </textarea>
+
+ <button name="net_coverart_button" from="base_button">
+ <area>1084,327,150,36</area>
+- <value>Find OnNet</value>
++ <value>Find Online</value>
+ </button>
+
+ <textarea name="banner_text_label" from="basetextarea">
+@@ -2541,15 +2605,15 @@
+ <textarea name="banner_text" from="basetextarea">
+ <area>636,375,416,40</area>
+ <font>basesmaller</font>
+- <value>/path/to/the/thing.jpg</value>
++ <value>No Image</value>
+ <align>vcenter</align>
+ </textarea>
+
+ <button name="net_banner_button" from="base_button">
+ <area>1084,377,150,36</area>
+- <value>Find OnNet</value>
++ <value>Find Online</value>
+ </button>
+-
++
+ <textarea name="browse_text" from="basetextarea">
+ <area>452,425,130,40</area>
+ <value>Browseable:</value>
+@@ -2573,13 +2637,13 @@
+ <textarea name="fanart_text" from="basetextarea">
+ <area>636,475,416,40</area>
+ <font>basesmaller</font>
+- <value>/path/to/the/thing.jpg</value>
++ <value>No Image</value>
+ <align>vcenter</align>
+ </textarea>
+
+ <button name="net_fanart_button" from="base_button">
+ <area>1084,477,150,36</area>
+- <value>Find OnNet</value>
++ <value>Find Online</value>
+ </button>
+
+ <textarea name="screenshot_text_label" from="basetextarea">
+@@ -2595,13 +2659,13 @@
+ <textarea name="screenshot_text" from="basetextarea">
+ <area>636,525,416,40</area>
+ <font>basesmaller</font>
+- <value>/path/to/the/thing.jpg</value>
++ <value>No Image</value>
+ <align>vcenter</align>
+ </textarea>
+
+ <button name="net_screenshot_button" from="base_button">
+ <area>1084,527,150,36</area>
+- <value>Find OnNet</value>
++ <value>Find Online</value>
+ </button>
+
+ <textarea name="trailer_text_label" from="basetextarea">
+@@ -2617,7 +2681,7 @@
+ <textarea name="trailer_text" from="basetextarea">
+ <area>636,575,416,40</area>
+ <font>basesmaller</font>
+- <value>/path/to/the/thing.jpg</value>
++ <value>No Image</value>
+ <align>vcenter</align>
</textarea>
@@ -2947,83 +3011,85 @@
diff --git a/abs/core/lvm2/0001-fix-ordering-in-initramfs.patch b/abs/core/lvm2/0001-fix-ordering-in-initramfs.patch
new file mode 100644
index 0000000..ec2c4b1
--- /dev/null
+++ b/abs/core/lvm2/0001-fix-ordering-in-initramfs.patch
@@ -0,0 +1,21 @@
+From bc5886440e8573717a525bceb46ebe99dad9bce7 Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Tue, 2 Jun 2020 09:30:30 +0200
+Subject: [PATCH] fix ordering in initramfs
+---
+ scripts/lvm2_lvmetad_systemd_red_hat.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scripts/lvm2_lvmetad_systemd_red_hat.service.in b/scripts/lvm2_lvmetad_systemd_red_hat.service.in
+index 960f32dab..0b5ce1b79 100644
+--- a/scripts/lvm2_lvmetad_systemd_red_hat.service.in
++++ b/scripts/lvm2_lvmetad_systemd_red_hat.service.in
+@@ -3,7 +3,7 @@ Description=LVM2 metadata daemon
+ Documentation=man:lvmetad(8)
+ Requires=lvm2-lvmetad.socket
+ Before=shutdown.target
+-After=lvm2-lvmetad.socket
++After=lvm2-lvmetad.socket systemd-udevd.service
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+
diff --git a/abs/core/lvm2/PKGBUILD b/abs/core/lvm2/PKGBUILD
index a449821..7bdd949 100644
--- a/abs/core/lvm2/PKGBUILD
+++ b/abs/core/lvm2/PKGBUILD
@@ -1,34 +1,44 @@
-# $Id$
# Maintainer: Eric Bélanger <eric@archlinux.org>
# Maintainer: Thomas Bächler <thomas@archlinux.org>
pkgbase=lvm2
pkgname=('lvm2' 'device-mapper')
-pkgver=2.02.177
-pkgrel=4
+pkgver=2.02.187
+pkgrel=3
arch=('x86_64')
-url="http://sourceware.org/lvm2/"
+url='https://sourceware.org/lvm2/'
license=('GPL2' 'LGPL2.1')
-makedepends=('systemd' 'thin-provisioning-tools')
-groups=('base')
-validpgpkeys=('88437EF5C077BD113D3B7224228191C1567E2C17') # Alasdair G Kergon <agk@redhat.com>
-source=("https://mirrors.kernel.org/sourceware/lvm2/releases/LVM2.${pkgver}.tgz"{,.asc}
+makedepends=('git' 'systemd' 'thin-provisioning-tools')
+validpgpkeys=('88437EF5C077BD113D3B7224228191C1567E2C17' # Alasdair G Kergon <agk@redhat.com>
+ 'D501A478440AE2FD130A1BE8B9112431E509039F') # Marian Csontos <marian.csontos@gmail.com>
+source=("git+https://sourceware.org/git/lvm2.git#tag=v${pkgver//./_}?signed"
+ '0001-fix-ordering-in-initramfs.patch'
'lvm2_install'
'lvm2_hook'
'sd-lvm2_install'
'11-dm-initramfs.rules')
-sha256sums=('4025a23ec9b15c2cb7486d151c29dc953b75efc4d452cfe9dbbc7c0fac8e80f2'
- 'SKIP'
- '5129f87a8b30d5a8621e9c1c0664910a588bdd77bff09473afb73efb41305cbb'
+sha256sums=('SKIP'
+ '7a34b263e51d5a71e0595bba163de478f4f14a26015b11e682406e4adf7ba656'
+ 'cc51940a8437f3c8339bb9cec7e929b2cc0852ffc8a0b2463e6f67ca2b9950f6'
'97d7c92e4954bc0108e7cd183b2eb5fe7ecc97e6f56369669e6537cb6ed45d80'
- 'cc1ed670a7ca21ee2ab32ad6b5ab7a6a5e86d0651ea2e1593e289a82c87aa4da'
+ 'b749c2da0e9307b0c2c3858d024a19c268e01e393e876a284fe1a302427f72f1'
'e10f24b57582d6e2da71f7c80732a62e0ee2e3b867fe84591ccdb53e80fa92e0')
+_backports=(
+ # udev: remove unsupported OPTIONS+="event_timeout" rule
+ '125f27ac37bc9b93cc96f64052b9681b3d479ee1'
+)
+
prepare() {
- cd LVM2.${pkgver}
+ cd lvm2/
+
+ local _c
+ for _c in "${_backports[@]}"; do
+ git log --oneline -1 "${_c}"
+ git show "${_c}" -- ':(exclude)WHATS_NEW' | git apply
+ done
- # enable lvmetad
- sed -i 's|use_lvmetad = 0|use_lvmetad = 1|' conf/example.conf.in
+ patch -Np1 < ../0001-fix-ordering-in-initramfs.patch
# remove install section from systemd units that are enabled by default
sed -i -e '/^\[Install\]$/,$d' \
@@ -39,7 +49,8 @@ prepare() {
}
build() {
- local CONFIGUREOPTS=(
+ local _CONFIGUREOPTS=(
+ CONFIG_SHELL=/bin/bash
--prefix=/usr
--sbindir=/usr/bin
--sysconfdir=/etc
@@ -53,6 +64,7 @@ build() {
--enable-readline
--enable-udev_rules
--enable-udev_sync
+ --enable-use-lvmetad
--with-cache=internal
--with-default-dm-run-dir=/run
--with-default-locking-dir=/run/lock/lvm
@@ -63,16 +75,25 @@ build() {
--with-udev-prefix=/usr
)
- cp -a LVM2.${pkgver} LVM2-initramfs
+ # build system requires bash:
+ # https://www.redhat.com/archives/linux-lvm/2020-January/msg00004.html
+ # https://www.gnu.org/software/autoconf/manual/autoconf-2.69/html_node/Defining-Variables.html
+ export CONFIG_SHELL=/bin/bash
+
+ cp -a lvm2/ lvm2-initramfs/
- cd LVM2.${pkgver}
+ cd lvm2/
- ./configure "${CONFIGUREOPTS[@]}" --enable-udev-systemd-background-jobs
+ ./configure \
+ "${_CONFIGUREOPTS[@]}" \
+ --enable-udev-systemd-background-jobs
make
# Build legacy udev rule for initramfs
- cd ../LVM2-initramfs
- ./configure "${CONFIGUREOPTS[@]}" --enable-udev-systemd-background-jobs=no
+ cd ../lvm2-initramfs
+ ./configure \
+ "${_CONFIGUREOPTS[@]}" \
+ --enable-udev-systemd-background-jobs=no
cd udev
make 69-dm-lvm-metad.rules
}
@@ -80,44 +101,49 @@ build() {
package_device-mapper() {
pkgdesc="Device mapper userspace library and tools"
url="http://sourceware.org/dm/"
- depends=('glibc' 'libsystemd')
+ depends=('glibc' 'systemd-libs' 'libudev.so')
+ provides=('libdevmapper.so'
+ 'libdevmapper-event.so')
+
+ cd lvm2/
- cd LVM2.${pkgver}
make DESTDIR="${pkgdir}" install_device-mapper
# extra udev rule for device-mapper in initramfs
- install -D -m644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/usr/lib/initcpio/udev/11-dm-initramfs.rules"
+ install -D -m0644 "${srcdir}/11-dm-initramfs.rules" "${pkgdir}/usr/lib/initcpio/udev/11-dm-initramfs.rules"
# Install dmeventd socket and service
make DESTDIR="${pkgdir}" install_systemd_units
rm -f "${pkgdir}/usr/lib/systemd/system/"{blk-availability.service,lvm2-*}
- install -d -m755 "${pkgdir}/usr/lib/systemd/system/sockets.target.wants"
+ install -d -m0755 "${pkgdir}/usr/lib/systemd/system/sockets.target.wants"
ln -sf ../dm-event.socket "${pkgdir}/usr/lib/systemd/system/sockets.target.wants/dm-event.socket"
}
package_lvm2() {
pkgdesc="Logical Volume Manager 2 utilities"
- depends=('bash' "device-mapper>=${pkgver}" 'libsystemd' 'readline' 'thin-provisioning-tools')
+ depends=('bash' "device-mapper>=${pkgver}" 'libdevmapper.so' 'systemd-libs'
+ 'libudev.so' 'util-linux-libs' 'libblkid.so' 'readline' 'libreadline.so'
+ 'thin-provisioning-tools')
conflicts=('lvm' 'mkinitcpio<0.7')
backup=('etc/lvm/lvm.conf'
'etc/lvm/lvmlocal.conf')
options=('!makeflags')
- install=lvm2.install
- cd LVM2.${pkgver}
+ cd lvm2/
+
make DESTDIR="${pkgdir}" install_lvm2
# install applib
make -C liblvm DESTDIR="${pkgdir}" install
# /etc directories
install -d "${pkgdir}"/etc/lvm/{archive,backup}
# mkinitcpio hook
- install -D -m644 "${srcdir}/lvm2_hook" "${pkgdir}/usr/lib/initcpio/hooks/lvm2"
- install -D -m644 "${srcdir}/lvm2_install" "${pkgdir}/usr/lib/initcpio/install/lvm2"
- install -D -m644 "${srcdir}/sd-lvm2_install" "${pkgdir}/usr/lib/initcpio/install/sd-lvm2"
+ install -D -m0644 "${srcdir}/lvm2_hook" "${pkgdir}/usr/lib/initcpio/hooks/lvm2"
+ install -D -m0644 "${srcdir}/lvm2_install" "${pkgdir}/usr/lib/initcpio/install/lvm2"
+ install -D -m0644 "${srcdir}/sd-lvm2_install" "${pkgdir}/usr/lib/initcpio/install/sd-lvm2"
# extra udev rule for lvmetad in non-systemd initramfs
- install -D -m644 "${srcdir}/LVM2-initramfs/udev/69-dm-lvm-metad.rules" "${pkgdir}/usr/lib/initcpio/udev/69-dm-lvm-metad.rules"
+ install -D -m0644 "${srcdir}/lvm2-initramfs/udev/69-dm-lvm-metad.rules" "${pkgdir}/usr/lib/initcpio/udev/69-dm-lvm-metad.rules"
# systemd support
make DESTDIR="${pkgdir}" install_systemd_units
rm -f "${pkgdir}/usr/lib/systemd/system/"dm-*
- install -d -m755 "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants"
+ install -d -m0755 "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants"
ln -sf ../lvm2-lvmetad.socket "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants/lvm2-lvmetad.socket"
ln -sf ../lvm2-lvmpolld.socket "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants/lvm2-lvmpolld.socket"
ln -sf ../lvm2-monitor.service "${pkgdir}/usr/lib/systemd/system/sysinit.target.wants/lvm2-monitor.service"
diff --git a/abs/core/lvm2/lvm2.install b/abs/core/lvm2/lvm2.install
deleted file mode 100644
index e11834d..0000000
--- a/abs/core/lvm2/lvm2.install
+++ /dev/null
@@ -1,25 +0,0 @@
-post_upgrade() {
- if [ $(vercmp $2 2.02.98-2) -lt 0 ]; then
- echo "Changes to the lvm2 package:"
- echo " + Activating lvm in mkinitcpio now requires both the 'udev' and 'lvm2' hooks."
- echo " + LVM volumes are automatically activated by udev (full hotplug support)."
- echo " + You MUST have use_lvmetad = 1 in /etc/lvm/lvm.conf (the default)."
- echo " + If you uncomment auto_activation_volume_list in /etc/lvm/lvm.conf, only the"
- echo " volumes listed there will be activated (default: it is commented out)."
- if [ -f /etc/lvm/lvm.conf.pacnew ]; then
- echo "WARNING: /etc/lvm/lvm.conf.pacnew exists. You MUST merge the required changes"
- echo " into /etc/lvm/lvm.conf or LVM will fail to work."
- fi
- fi
-
- if [ $(vercmp $2 2.02.106-2) -lt 0 ]; then
- if [ -L /etc/systemd/system/sysinit.target.wants/lvm-monitoring.service ]; then
- echo "rm /etc/systemd/system/sysinit.target.wants/lvm-monitoring.service"
- rm /etc/systemd/system/sysinit.target.wants/lvm-monitoring.service
- echo "ln -s /usr/lib/systemd/system/lvm2-monitor.service /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service"
- ln -s /usr/lib/systemd/system/lvm2-monitor.service /etc/systemd/system/sysinit.target.wants/lvm2-monitor.service
- fi
- fi
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/abs/core/lvm2/lvm2_install b/abs/core/lvm2/lvm2_install
index e0be711..d7a6333 100644
--- a/abs/core/lvm2/lvm2_install
+++ b/abs/core/lvm2/lvm2_install
@@ -10,30 +10,25 @@ build() {
done
# binaries from lvm2
- add_binary "/usr/bin/lvm"
- add_binary "/usr/bin/lvmetad"
+ add_binary "lvm"
+ add_binary "lvmetad"
# beinaries from device-mapper
- add_binary "/usr/bin/dmsetup"
- add_binary "/usr/bin/dmeventd"
-
- # these are dlopen()ed
- for library in libdevmapper-event-lvm2{mirror,raid,snapshot,thin}; do
- add_binary "/usr/lib/${library}.so"
- done
+ add_binary "dmsetup"
# from thin-provisioning-tools
- add_binary "/usr/bin/pdata_tools"
+ add_binary "pdata_tools"
for symlink in cache_{check,dump,metadata_size,repair,restore} thin_{check,delta,dump,ls,metadata_size,repair,restore,rmap,trim}; do
add_symlink "/usr/bin/${symlink}" "pdata_tools"
done
+ # udev rules and lvm configuration
add_file "/usr/lib/udev/rules.d/10-dm.rules"
+ add_file "/usr/lib/udev/rules.d/11-dm-lvm.rules"
add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
- add_file "/usr/lib/udev/rules.d/11-dm-lvm.rules"
- add_file "/usr/lib/initcpio/udev/69-dm-lvm-metad.rules" "/usr/lib/udev/rules.d/69-dm-lvm-metad.rules"
add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
+ add_file "/usr/lib/initcpio/udev/69-dm-lvm-metad.rules" "/usr/lib/udev/rules.d/69-dm-lvm-metad.rules"
add_file "/etc/lvm/lvm.conf"
add_runscript
diff --git a/abs/core/lvm2/sd-lvm2_install b/abs/core/lvm2/sd-lvm2_install
index f90cc82..5579b1c 100644
--- a/abs/core/lvm2/sd-lvm2_install
+++ b/abs/core/lvm2/sd-lvm2_install
@@ -11,18 +11,15 @@ build() {
# device mapper and lvm2 systemd units
# binaries and libraries are pull automatically, except ...
- add_systemd_unit "dm-event.service"
add_systemd_unit "lvm2-lvmetad.service"
add_systemd_unit "lvm2-pvscan@.service"
- add_symlink "/usr/lib/systemd/system/sysinit.target.wants/lvm2-lvmetad.socket"
- # ... dmsetup and ...
- add_binary "dmsetup"
+ # binaries from lvm2
+ add_binary "lvm"
+ add_binary "lvmetad"
- # ... these, which are dlopen()ed
- for library in libdevmapper-event-lvm2{mirror,raid,snapshot,thin}; do
- add_binary "/usr/lib/${library}.so"
- done
+ # beinaries from device-mapper
+ add_binary "dmsetup"
# from thin-provisioning-tools
add_binary "pdata_tools"
@@ -32,10 +29,10 @@ build() {
# udev rules and lvm configuration
add_file "/usr/lib/udev/rules.d/10-dm.rules"
- add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
- add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
add_file "/usr/lib/udev/rules.d/11-dm-lvm.rules"
+ add_file "/usr/lib/udev/rules.d/13-dm-disk.rules"
add_file "/usr/lib/udev/rules.d/69-dm-lvm-metad.rules"
+ add_file "/usr/lib/udev/rules.d/95-dm-notify.rules"
add_file "/usr/lib/initcpio/udev/11-dm-initramfs.rules" "/usr/lib/udev/rules.d/11-dm-initramfs.rules"
add_file "/etc/lvm/lvm.conf"
}
diff --git a/abs/core/make/PKGBUILD b/abs/core/make/PKGBUILD
index 4d6b494..642e25f 100644
--- a/abs/core/make/PKGBUILD
+++ b/abs/core/make/PKGBUILD
@@ -1,41 +1,33 @@
-# $Id$
-# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Lukas Fleischer <lfleischer@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=make
-pkgver=4.2.1
-pkgrel=2
+pkgver=4.3
+pkgrel=3
pkgdesc="GNU make utility to maintain groups of programs"
arch=('x86_64')
-url="http://www.gnu.org/software/make"
+url="https://www.gnu.org/software/make"
license=('GPL3')
groups=('base-devel')
depends=('glibc' 'guile')
-source=(ftp://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.bz2{,.sig}
- guile-2.2.patch)
-md5sums=('15b012617e7c44c0ed482721629577ac'
- 'SKIP'
- '89bbbe3f806f208608e117665feb562b')
-validpgpkeys=('3D2554F0A15338AB9AF1BB9D96B047156338B6D4') # Paul Smith
-
-prepare() {
- cd ${pkgname}-${pkgver}
- patch -p1 -i ${srcdir}/guile-2.2.patch
- autoreconf -fi
-}
+source=("https://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.lz"{,.sig})
+md5sums=('d5c40e7bd1e97a7404f5d3be982f479a'
+ 'SKIP')
+validpgpkeys=('6D4EEB02AD834703510B117680CB727A20C79BB2') # Paul Smith
build() {
- cd ${pkgname}-${pkgver}
- ./configure --prefix=/usr
- make
+ cd "${pkgname}-${pkgver}"
+ ./configure --prefix=/usr
+ make
}
check() {
- cd ${pkgname}-${pkgver}
- make -k check
+ cd "${pkgname}-${pkgver}"
+ make -k check
}
package() {
- cd ${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd "${pkgname}-${pkgver}"
+ make DESTDIR="${pkgdir}" install
}
diff --git a/abs/core/make/guile-2.2.patch b/abs/core/make/guile-2.2.patch
deleted file mode 100644
index 8e4cbc0..0000000
--- a/abs/core/make/guile-2.2.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 64ec870..eb1139f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -168,8 +168,8 @@ AC_ARG_WITH([guile], [AS_HELP_STRING([--with-guile],
- # comes with it's own PC file so we have to specify them as individual
- # packages. Ugh.
- AS_IF([test "x$with_guile" != xno],
--[ PKG_CHECK_MODULES([GUILE], [guile-2.0], [have_guile=yes],
-- [PKG_CHECK_MODULES([GUILE], [guile-1.8], [have_guile=yes],
-+[ PKG_CHECK_MODULES([GUILE], [guile-2.2], [have_guile=yes],
-+ [PKG_CHECK_MODULES([GUILE], [guile-2.0], [have_guile=yes],
- [have_guile=no])])
- ])
-
diff --git a/abs/core/man-pages/PKGBUILD b/abs/core/man-pages/PKGBUILD
index baa2eba..67b3013 100644
--- a/abs/core/man-pages/PKGBUILD
+++ b/abs/core/man-pages/PKGBUILD
@@ -1,30 +1,27 @@
-# $Id$
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=man-pages
-pkgver=4.08
+pkgver=5.08
_posixver=2013-a
pkgrel=1
pkgdesc="Linux man pages"
arch=('any')
license=('GPL' 'custom')
-url="http://man7.org/linux/man-pages/index.html"
-groups=('base')
-depends=()
-source=(http://www.kernel.org/pub/linux/docs/man-pages/$pkgname-$pkgver.tar.{xz,sign}
- http://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/$pkgname-posix-${_posixver}.tar.{xz,sign})
+url="https://www.kernel.org/doc/man-pages/"
+source=(https://www.kernel.org/pub/linux/docs/man-pages/$pkgname-$pkgver.tar.{xz,sign}
+ https://www.kernel.org/pub/linux/docs/man-pages/man-pages-posix/$pkgname-posix-${_posixver}.tar.{xz,sign})
# https://www.kernel.org/pub/linux/docs/man-pages/sha256sums.asc
-sha256sums=('2c6e7db4d76014dc21b1068df372f325e863318c32056369eca2f169519c62b4'
+sha256sums=('cea7cd31f8080ed8ec6725419e58bbe04ab0dd4fa0071526bd7cf0cd8d1bf7f7'
'SKIP'
'19633a5c75ff7deab35b1d2c3d5b7748e7bd4ef4ab598b647bb7e7f60b90a808'
'SKIP')
-validpgpkeys=('E522595B52EDA4E6BFCCCB5E856199113A35CE5E') #Michael Kerrisk (Linux man-pages maintainer) <mtk.manpages@gmail.com>
+validpgpkeys=('E522595B52EDA4E6BFCCCB5E856199113A35CE5E') # Michael Kerrisk (Linux man-pages maintainer) <mtk.manpages@gmail.com>
build() {
- cd ${srcdir}/$pkgname-$pkgver
+ cd "${srcdir}"/$pkgname-$pkgver
# move the posix pages
- mkdir -p ${srcdir}/$pkgname-$pkgver/man0
+ mkdir -p "${srcdir}"/$pkgname-$pkgver/man0
for sect in 0 1 3; do
sed -i "/^\.so /s/man${sect}p/man$sect/" "${srcdir}/$pkgname-posix-${_posixver}/man${sect}p"/*
mv -iv "${srcdir}/$pkgname-posix-${_posixver}/man${sect}p"/* "${srcdir}/$pkgname-$pkgver/man$sect/"
@@ -32,29 +29,22 @@ build() {
}
package() {
- cd ${srcdir}/$pkgname-$pkgver
+ cd "${srcdir}"/$pkgname-$pkgver
- make prefix=${pkgdir}/usr install
+ make prefix="${pkgdir}"/usr install
# posix pages have a custom license
install -m755 -d "${pkgdir}/usr/share/licenses/${pkgname}"
- install -m644 ${srcdir}/$pkgname-posix-${_posixver}/POSIX-COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/POSIX-COPYRIGHT"
+ install -m644 "${srcdir}"/$pkgname-posix-${_posixver}/POSIX-COPYRIGHT "${pkgdir}/usr/share/licenses/${pkgname}/POSIX-COPYRIGHT"
- cd ${pkgdir}/usr/share/man
- # these are included in coreutils
- rm -f man1/{chgrp,chmod,chown,cp,dir,dd}.1
- rm -f man1/{df,dircolors,du,install,ln,ls}.1
- rm -f man1/{mkdir,mkfifo,mknod,mv,rm,rmdir}.1
- rm -f man1/{touch,vdir}.1
- # this is included in shadow
- rm -f man5/passwd.5
- rm -f man3/getspnam.3
- # this is included in diffutils
- rm -f man1/diff.1
- # this is included in xf86-input-mouse
- rm -f man4/mouse.4
- # this is included in attr
- rm -f man5/attr.5
- # this is included in lirc
- rm -f man4/lirc.4
+ cd "${pkgdir}"/usr/share/man
+ # included in shadow
+ rm man5/passwd.5
+ rm man3/getspnam.3
+ # included in tzdata
+ rm man5/tzfile.5 man8/{tzselect,zdump,zic}.8
+ # included in bpf
+ rm man7/bpf-helpers.7
+ # included in libxcrypt
+ rm man3/crypt*.3
}
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/autocard.h b/abs/core/mythinstall/MythVantage-app/mythinstall/autocard.h
index 4948842..a396932 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/autocard.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/autocard.h
@@ -2,7 +2,7 @@
#define AUTOCARD_H
#include <mythtv/mythdbcon.h>
#include "qstringlist.h"
-#include "libmyth/settings.h"
+//#include "libmyth/settings.h"
#include "libmyth/mythwidgets.h"
class MPUBLIC AutoCard : public QObject, public ConfigurationDialog
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.cpp
index 22d784f..2e63ba9 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.cpp
@@ -1,5 +1,5 @@
#include "mythuihelper.h"
-#include "settings.h"
+//#include "settings.h"
#include "compat-mv.h"
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.h b/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.h
index 5f6825f..f5717f9 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/compat-mv.h
@@ -1,4 +1,4 @@
-#include "settings.h"
+//#include "settings.h"
#include "mythstorage.h"
class MPUBLIC ImageSelectSetting: public SelectSetting {
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/fileshare.h b/abs/core/mythinstall/MythVantage-app/mythinstall/fileshare.h
index 68be528..644898d 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/fileshare.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/fileshare.h
@@ -3,7 +3,7 @@
#include <iostream>
#include <fstream>
#include <stdio.h>
-#include "settings.h"
+//#include "settings.h"
#include "installsettings.h"
#include <qsqldatabase.h>
#include <qsqlquery.h>
@@ -18,28 +18,21 @@
-class FileShareMainFrameClient: public VerticalConfigurationGroup {
+class FileShareMainFrameClient: public GroupSetting {
public:
FileShareMainFrameClient();
};
-class FileShareMainFrameServer: public VerticalConfigurationGroup {
+class FileShareMainFrameServer: public GroupSetting {
public:
FileShareMainFrameServer();
};
-
-
-
-
-
-class ClientNFSSettings: public
-TriggeredConfigurationGroup {
+class ClientNFSSettings: public GroupSetting {
public:
ClientNFSSettings();
-
};
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/infrared.h b/abs/core/mythinstall/MythVantage-app/mythinstall/infrared.h
index e11c49d..8994d18 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/infrared.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/infrared.h
@@ -3,7 +3,7 @@
#include <iostream>
#include <fstream>
#include <stdio.h>
-#include "settings.h"
+//#include "settings.h"
#include "installsettings.h"
#include <qsqldatabase.h>
#include <qsqlquery.h>
@@ -15,12 +15,12 @@
#include <qapplication.h>
#include "mythmiscutil.h"
-class IRFrame: public VerticalConfigurationGroup {
+class IRFrame: public GroupSetting {
public:
IRFrame();
};
-
+/*
class HostRemoteTypeIR_favorites: public HostImageSelect {
public:
HostRemoteTypeIR_favorites();
@@ -46,22 +46,16 @@ class HostRemoteTypeIR_user: public HostImageSelect {
public:
HostRemoteTypeIR_user();
};
+*/
-
-class IR_TransmitFrame: public VerticalConfigurationGroup {
+class IR_TransmitFrame: public GroupSetting {
public:
IR_TransmitFrame();
};
-class LCDFrame: public VerticalConfigurationGroup {
+class LCDFrame: public GroupSetting {
public:
LCDFrame();
};
-
-
-
-
-
-
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.cpp
index cb2e918..93d45ae 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.cpp
@@ -31,8 +31,18 @@ int mythinstalltype (QString tmp_install_drive)
setting.Load();
setting.Save();
- if ( setting.exec() == QDialog::Accepted )
- {
+ MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
+ StandardSettingDialog *ssd =
+ new StandardSettingDialog(mainStack, "mythinstalltypesettings",
+ new Mythinstalltype());
+
+ if (ssd->Create())
+ mainStack->AddScreen(ssd);
+ else
+ delete ssd;
+
+ //if ( setting.exec() == QDialog::Accepted )
+ //{
//get users sizes
rootsize = gCoreContext->GetSetting("HOSTOSsize");
homesize = gCoreContext->GetSetting("HOSTHOMEsize");
@@ -74,7 +84,7 @@ int mythinstalltype (QString tmp_install_drive)
file.close();
//convert to MB and match calulation in installdialog.cpp
disksizeMB = qRound(disksize.toFloat() * 1024 / 1000000);
-
+/* FIXME change to mythui
if (neededsize > disksizeMB)
{
DialogCode val = MythPopupBox::Show2ButtonPopup(
@@ -96,79 +106,65 @@ int mythinstalltype (QString tmp_install_drive)
{
retc = 0;
}
- }
- else
- {
- retc = 0;
- }
+*/
}
return retc;
-
};
-static HostComboBox *HOSTinstallationtype()
+static HostComboBoxSetting *HOSTinstallationtype()
{
- HostComboBox *gc = new HostComboBox("HOSTinstallationtype");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HOSTinstallationtype");
gc->setLabel(QObject::tr("Installation Type"));
gc->addSelection("Full/Auto") ;
-
gc->addSelection("Upgrade");
-
//gc->setValue("Full/Auto");
gc->setHelpText(QObject::tr("Full install will erase the entire drive and repartition. Upgrade will format only the first parition of the drive. Only LinHES R8.0 or newer can use Upgrade."));
-
return gc;
}
-static HostSpinBox *HOSTOSsize()
+static HostSpinBoxSetting *HOSTOSsize()
{
#ifdef __MVAPP__
- HostSpinBox *gc = new HostSpinBox("HOSTOSsize", 2, 15, 1, true);
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HOSTOSsize", 2, 15, 1, true);
#else
- HostSpinBox *gc = new HostSpinBox("HOSTOSsize", 3, 25, 1, true);
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HOSTOSsize", 3, 25, 1, true);
#endif
- gc->setLabel(QObject::tr("OS size (GB)"));
+ gc->setLabel(QObject::tr("OS Size (GB)"));
gc->setValue(2);
- gc->setHelpText(QObject::tr("Amount of space allocated for the root OS." ));
-
+ gc->setHelpText(QObject::tr("Amount of space allocated for the root OS partition."));
return gc;
}
-static HostSpinBox *HOSTDATAsize()
+static HostSpinBoxSetting *HOSTDATAsize()
{
- HostSpinBox *gc = new HostSpinBox("HOSTDATAsize", 2, 1500, 1, true);
- gc->setLabel(QObject::tr("Data size (GB)"));
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HOSTDATAsize", 2, 1500, 1, true);
+ gc->setLabel(QObject::tr("Data Size (GB)"));
gc->setValue(3);
- gc->setHelpText(QObject::tr("" ));
-
+ gc->setHelpText(QObject::tr("Amount of space allocated for the data partiton."));
return gc;
}
-static HostSpinBox *HOSTHOMEsize()
+static HostSpinBoxSetting *HOSTHOMEsize()
{
- HostSpinBox *gc = new HostSpinBox("HOSTHOMEsize", 1, 1500, 1, true);
- gc->setLabel(QObject::tr("Home dir size (GB)"));
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HOSTHOMEsize", 1, 1500, 1, true);
+ gc->setLabel(QObject::tr("Home Size (GB)"));
gc->setValue(3);
gc->setHelpText(QObject::tr("Amount of space allocated for the home directories partition. Three to five GB will be sufficient for most people. The home partition will be the same filesystem as the root OS." ));
-
return gc;
}
-static HostSpinBox *HOSTDatabasesize()
+static HostSpinBoxSetting *HOSTDatabasesize()
{
- HostSpinBox *gc = new HostSpinBox("HOSTDatabasesize", 1, 20, 1, true);
- gc->setLabel(QObject::tr("Database partition size (GB)"));
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HOSTDatabasesize", 1, 20, 1, true);
+ gc->setLabel(QObject::tr("Database Size (GB)"));
gc->setValue(4);
- gc->setHelpText(QObject::tr("Amount of space allocated for the database partition. Two GB is more then enough for most people. The database partition space will be formatted with the ext3 filesystem." ));
-
+ gc->setHelpText(QObject::tr("Amount of space allocated for the database partition. Two GB is more then enough for most people. The database partition space will be formatted with the ext3 filesystem."));
return gc;
}
-
-
-static HostSpinBox *HOSTSWAPsize()
+static HostSpinBoxSetting *HOSTSWAPsize()
{
QString currentitem;
QString line;
@@ -193,26 +189,25 @@ static HostSpinBox *HOSTSWAPsize()
if ( ! ok )
mem = 257 ;
//QTextStream(stdout) << mem << endl;
- HostSpinBox *gc = new HostSpinBox("HOSTSWAPsize", 256, 256000, 256, true);
- gc->setLabel(QObject::tr("Swapspace size (MB)"));
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HOSTSWAPsize", 256, 256000, 256, true);
+ gc->setLabel(QObject::tr("Swap Size (MB)"));
gc->setValue(mem);
gc->setHelpText(QObject::tr("Amount of space allocated for the swap partition." ));
-
return gc;
}
-static HostCheckBox *HostUseSWAP()
+static HostCheckBoxSetting *HostUseSWAP()
{
- HostCheckBox *gc = new HostCheckBox("HostUseSWAP");
- gc->setLabel(QObject::tr("Use swap partition"));
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseSWAP");
+ gc->setLabel(QObject::tr("Use Swap"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Enable or disable the swap partition."));
return gc;
};
-static HostCheckBox *HostUseALLdata()
+static HostCheckBoxSetting *HostUseALLdata()
{
- HostCheckBox *gc = new HostCheckBox("HostUseALLdata");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseALLdata");
gc->setLabel(QObject::tr("Use all remaining space for data"));
gc->setValue(true);
gc->setHelpText(QObject::tr("If checked the remaining space on the drive will be used for storage. Otherwise you can set the size of the partition."));
@@ -220,26 +215,24 @@ static HostCheckBox *HostUseALLdata()
};
-static HostComboBox *HOSTdatafstype()
+static HostComboBoxSetting *HOSTdatafstype()
{
- HostComboBox *gc = new HostComboBox("HOSTdatafstype");
- gc->setLabel(QObject::tr("Data filesystem"));
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HOSTdatafstype");
+ gc->setLabel(QObject::tr("Data File System"));
gc->addSelection("ext3") ;
gc->addSelection("ext4") ;
// gc->addSelection("reiserfs");
gc->addSelection("jfs");
gc->addSelection("xfs");
//gc->addSelection("btrfs");
-
- gc->setHelpText(QObject::tr("Filesystem type for data storage."));
-
+ gc->setHelpText(QObject::tr("File system type for data storage."));
return gc;
}
-static HostComboBox *HOSTuprootfstype()
+static HostComboBoxSetting *HOSTuprootfstype()
{
- HostComboBox *gc = new HostComboBox("HOSTuprootfstype");
- gc->setLabel(QObject::tr("OS file system"));
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HOSTuprootfstype");
+ gc->setLabel(QObject::tr("OS File System"));
gc->addSelection("ext3") ;
gc->addSelection("ext4") ;
gc->addSelection("reiserfs");
@@ -247,101 +240,109 @@ static HostComboBox *HOSTuprootfstype()
//gc->addSelection("xfs");
//gc->addSelection("btrfs");
gc->addSelection("Do_not_format");
-
- gc->setHelpText(QObject::tr("Filesystem type for OS. "));
-
+ gc->setHelpText(QObject::tr("File system type for OS. "));
return gc;
}
-static HostComboBox *HOSTrootfstype()
+static HostComboBoxSetting *HOSTrootfstype()
{
- HostComboBox *gc = new HostComboBox("HOSTrootfstype");
- gc->setLabel(QObject::tr("Root filesystem format"));
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HOSTrootfstype");
+ gc->setLabel(QObject::tr("Root File System"));
gc->addSelection("ext3") ;
gc->addSelection("ext4") ;
gc->addSelection("reiserfs");
gc->addSelection("jfs");
//gc->addSelection("btrfs");
//gc->addSelection("xfs");
-
- gc->setHelpText(QObject::tr("Filesystem type for root OS."));
-
+ gc->setHelpText(QObject::tr("File system type for root OS."));
return gc;
}
-class USESwap:
- public TriggeredConfigurationGroup {
-public:
- USESwap():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
- SetVertical(false);
- Setting* useswap = HostUseSWAP();
+class USESwap : public GroupSetting
+{
+ public:
+ USESwap()
+ {
+// TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
+// SetVertical(false);
+ HostCheckBoxSetting* useswap = HostUseSWAP();
addChild(useswap);
- setTrigger(useswap);
-
+// setTrigger(useswap);
- ConfigurationGroup* swapyes = new VerticalConfigurationGroup(false);
- swapyes->addChild(HOSTSWAPsize());
- addTarget("1", swapyes );
- addTarget("0", new VerticalConfigurationGroup(true));
- };
+// ConfigurationGroup* swapyes = new VerticalConfigurationGroup(false);
+// swapyes->addChild(HOSTSWAPsize());
+// addTarget("1", swapyes );
+// addTarget("0", new VerticalConfigurationGroup(true));
+ useswap->addTargetedChild("1", HOSTSWAPsize());
+ }
};
-class DATAsize:
- public TriggeredConfigurationGroup {
-public:
- DATAsize():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
- SetVertical(false);
- Setting* datasize = HostUseALLdata();
+class DATAsize : public GroupSetting
+{
+ public:
+ DATAsize()
+ {
+// TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
+// SetVertical(false);
+// Setting* datasize = HostUseALLdata();
+ HostCheckBoxSetting* datasize = HostUseALLdata();
addChild(datasize);
- setTrigger(datasize);
+// setTrigger(datasize);
- ConfigurationGroup* alldatano = new VerticalConfigurationGroup(false);
- alldatano->addChild(HOSTDATAsize());
- alldatano->addChild(HOSTdatafstype());
+// ConfigurationGroup* alldatano = new VerticalConfigurationGroup(false);
+// alldatano->addChild(HOSTDATAsize());
+// alldatano->addChild(HOSTdatafstype());
+ datasize->addTargetedChild("1", HOSTDATAsize());
+ datasize->addTargetedChild("1", HOSTdatafstype());
+ datasize->addTargetedChild("0", HOSTdatafstype());
+// ConfigurationGroup* alldatayes = new VerticalConfigurationGroup(false);
+// alldatayes->addChild(HOSTdatafstype());
- ConfigurationGroup* alldatayes = new VerticalConfigurationGroup(false);
- alldatayes->addChild(HOSTdatafstype());
-
- addTarget("1", alldatayes);
- addTarget("0", alldatano);
- };
+// addTarget("1", alldatayes);
+// addTarget("0", alldatano);
+ }
};
-
-class Installationtype:
- public TriggeredConfigurationGroup {
-public:
- Installationtype():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
+class Installationtype : public GroupSetting
+{
+ public:
+ Installationtype()
+ {
+// TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
setLabel(QObject::tr("LinHES Install"));
- Setting *Mtemplate = HOSTinstallationtype();
+// Setting *Mtemplate = HOSTinstallationtype();
+ HostComboBoxSetting *Mtemplate = HOSTinstallationtype();
addChild(Mtemplate);
- setTrigger(Mtemplate);
+// setTrigger(Mtemplate);
- ConfigurationGroup *ospartition = new GridConfigurationGroup(2,false);
- ospartition->addChild(HOSTOSsize());
- ospartition->addChild(HOSTrootfstype());
- ospartition->addChild(HOSTHOMEsize());
- ospartition->addChild(HOSTDatabasesize());
+// ConfigurationGroup *ospartition = new GridConfigurationGroup(2,false);
+// ospartition->addChild(HOSTOSsize());
+// ospartition->addChild(HOSTrootfstype());
+// ospartition->addChild(HOSTHOMEsize());
+// ospartition->addChild(HOSTDatabasesize());
+ Mtemplate->addTargetedChild("1", HOSTOSsize());
+ Mtemplate->addTargetedChild("1", HOSTrootfstype());
+ Mtemplate->addTargetedChild("1", HOSTHOMEsize());
+ Mtemplate->addTargetedChild("1", HOSTDatabasesize());
+ Mtemplate->addTargetedChild("0", HOSTuprootfstype());
- ConfigurationGroup *tupgrade = new VerticalConfigurationGroup(false);
- tupgrade->addChild(HOSTuprootfstype());
- ConfigurationGroup *tfull = new VerticalConfigurationGroup(false);
+// ConfigurationGroup *tupgrade = new VerticalConfigurationGroup(false);
+// tupgrade->addChild(HOSTuprootfstype());
+
+// ConfigurationGroup *tfull = new VerticalConfigurationGroup(false);
// tfull->addChild(HOSTOSsize());
// tfull->addChild(HOSTrootfstype());
- tfull->addChild(ospartition);
- tfull->addChild(new USESwap);
- tfull->addChild(new DATAsize);
+// tfull->addChild(ospartition);
+// tfull->addChild(new USESwap);
+// tfull->addChild(new DATAsize);
- addTarget("Upgrade",tupgrade );
- addTarget("Full/Auto", tfull);
- };
+// addTarget("Upgrade",tupgrade );
+// addTarget("Full/Auto", tfull);
+ }
};
Mythinstalltype::Mythinstalltype()
@@ -352,6 +353,3 @@ Mythinstalltype::Mythinstalltype()
Installationtype *installationtype = new Installationtype();
addChild(installationtype);
};
-
-
-
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.h b/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.h
index e043f0a..75f322a 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/installationtype.h
@@ -1,11 +1,11 @@
-#include <settings.h>
-#include "mythdialogs.h"
+//#include <settings.h>
+//#include "mythdialogs.h"
+#include "standardsettings.h"
-class Mythinstalltype: public ConfigurationWizard {
+class Mythinstalltype : public GroupSetting {
public:
Mythinstalltype();
};
int mythinstalltype(QString);
-
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.cpp
index 5eb8717..462aaf9 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.cpp
@@ -18,14 +18,10 @@
#include "vnc.h"
#include "fileshare.h"
-
-
int timezone_unknown = false;
extern HostParms hostparm;
//extern DDCinfo ddcinfo;
-
-
bool displaymysqlonly = false ;
bool displayshownetwork =false ;
bool displayshowhostype = false ;
@@ -49,30 +45,28 @@ bool displayvnc = false;
bool displayfileshare = false;
-static HostComboBox *ThemePainter()
+static HostComboBoxSetting *ThemePainter()
{
- HostComboBox *gc = new HostComboBox("ThemePainter");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("ThemePainter");
gc->setLabel(QObject::tr("Paint Engine"));
gc->addSelection(QObject::tr("Qt"), "qt");
gc->addSelection(QObject::tr("OpenGL"), "opengl");
gc->setHelpText(QObject::tr("This selects what Myth uses to draw. If you have decent hardware, select OpenGL. Changing this requires a restart."));
return gc;
-
}
-
-static HostLineEdit *HostDDnslogin()
+static HostTextEditSetting *HostDDnslogin()
{
- HostLineEdit *gc = new HostLineEdit("HostDDnslogin");
+ HostTextEditSetting *gc = new HostTextEditSetting("HostDDnslogin");
gc->setLabel(QObject::tr("Login"));
gc->setValue("");
gc->setHelpText(QObject::tr("Login for DDNS account."));
return gc;
};
-static HostLineEdit *HostDDnspassword()
+static HostTextEditSetting *HostDDnspassword()
{
- HostLineEdit *gc = new HostLineEdit("HostDDnspassword");
+ HostTextEditSetting *gc = new HostTextEditSetting("HostDDnspassword");
gc->setLabel(QObject::tr("Password"));
gc->setValue("");
gc->SetPasswordEcho(true);
@@ -80,28 +74,29 @@ static HostLineEdit *HostDDnspassword()
return gc;
};
-static HostLineEdit *HostDDnshostname()
+static HostTextEditSetting *HostDDnshostname()
{
- HostLineEdit *gc = new HostLineEdit("HostDDnshostname");
+ HostTextEditSetting *gc = new HostTextEditSetting("HostDDnshostname");
gc->setLabel(QObject::tr("DDNS hostname"));
gc->setValue("");
gc->setHelpText(QObject::tr("Hostname used for DDNS."));
return gc;
};
-static HostCheckBox *HostDDnsEnable()
+static HostCheckBoxSetting *HostDDnsEnable()
{
- HostCheckBox *gc = new HostCheckBox("HostDDnsEnable");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostDDnsEnable");
gc->setLabel(QObject::tr("Enable DDNS"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Update DDNS records at dyndns.com. Visit http://dyndns.com to setup your account."));
return gc;
};
-class DDnssettings: public TriggeredConfigurationGroup {
+/*
+class DDnssettings: public GroupSetting {
public:
DDnssettings():
- TriggeredConfigurationGroup(false,false,false,false) {
+ GroupSetting(false,false,false,false) {
setLabel(QObject::tr("DDNS Settings"));
SetVertical(true);
Setting* trigger = HostDDnsEnable() ;
@@ -117,7 +112,7 @@ public:
addTarget("1", settings);
};
};
-
+*/
QString findnet()
@@ -186,9 +181,9 @@ QString findnet_wireless()
return netdev;
}
-static HostComboBox *HostNetDevice()
+static HostComboBoxSetting *HostNetDevice()
{
- HostComboBox *gc = new HostComboBox("HostNetDevice");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostNetDevice");
gc->setLabel(QObject::tr("Device"));
QString foundnet=findnet();
@@ -214,37 +209,36 @@ static HostComboBox *HostNetDevice()
if (foundnet.contains("ath0"))
gc->addSelection("ath0");
- int findoldnetdevice=gc->findSelection(hostparm.ThisHostnetOLD);
+ //int findoldnetdevice=gc->findSelection(hostparm.ThisHostnetOLD);
+ QString findoldnetdevice = gCoreContext->GetSetting("ThisHostnetOLD");
gc->setValue(findoldnetdevice);
-
-
gc->setHelpText(QObject::tr("Network interface"));
return gc;
};
/*
-static HostCheckBox *HostActiveonboot()
+static HostCheckBoxSetting *HostActiveonboot()
{
- HostCheckBox *gc = new HostCheckBox("HostActiveonboot");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostActiveonboot");
gc->setLabel(QObject::tr("Device is active on boot"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Network is started on boot"));
return gc;
};
-static HostCheckBox *HostServiceSamba()
+static HostCheckBoxSetting *HostServiceSamba()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceSamba");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceSamba");
gc->setLabel(QObject::tr("Windows sharing"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Allow window machines to access recorded files"));
return gc;
};
-static HostCheckBox *HostServiceSamba_write()
+static HostCheckBoxSetting *HostServiceSamba_write()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceSamba_write");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceSamba_write");
gc->setLabel(QObject::tr("Readonly"));
gc->setValue(false);
gc->setHelpText(QObject::tr("If checked, all remote connections will be read only. If not checked then remote clients will have write and delete abilites. "));
@@ -252,27 +246,27 @@ static HostCheckBox *HostServiceSamba_write()
};
-static HostCheckBox *HostServiceSamba_writehome()
+static HostCheckBoxSetting *HostServiceSamba_writehome()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceSamba_writehome");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceSamba_writehome");
gc->setLabel(QObject::tr("Readonly"));
gc->setValue(false);
gc->setHelpText(QObject::tr("If checked, all remote connections will be read only. If not checked then remote clients will have write and delete abilites. "));
return gc;
};
-static HostCheckBox *HostServiceSamba_media()
+static HostCheckBoxSetting *HostServiceSamba_media()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceSamba_media");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceSamba_media");
gc->setLabel(QObject::tr("share media"));
gc->setValue(true);
gc->setHelpText(QObject::tr(" "));
return gc;
};
-static HostCheckBox *HostServiceSamba_home()
+static HostCheckBoxSetting *HostServiceSamba_home()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceSamba_home");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceSamba_home");
gc->setLabel(QObject::tr("share home"));
gc->setValue(true);
gc->setHelpText(QObject::tr(" "));
@@ -281,9 +275,9 @@ static HostCheckBox *HostServiceSamba_home()
-static HostComboBox *HostServiceSamba_domain()
+static HostComboBoxSetting *HostServiceSamba_domain()
{
- HostComboBox *gc = new HostComboBox("HostServiceSamba_domain",true);
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostServiceSamba_domain",true);
gc->setLabel(QObject::tr("Workgroup"));
gc->setHelpText(QObject::tr("Workgroup for smb share"));
gc->addSelection("WORKGROUP");
@@ -309,18 +303,18 @@ static HostComboBox *HostServiceSamba_domain()
return gc;
};
-static HostCheckBox *HostLircWait()
+static HostCheckBoxSetting *HostLircWait()
{
- HostCheckBox *gc = new HostCheckBox("HostLircWait");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostLircWait");
gc->setLabel(QObject::tr("Wait for lirc"));
gc->setValue(false);
gc->setHelpText(QObject::tr("System will wait for lirc before starting the UI "));
return gc;
};
*/
-static HostCheckBox *HostBEWait()
+static HostCheckBoxSetting *HostBEWait()
{
- HostCheckBox *gc = new HostCheckBox("HostBEWait");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostBEWait");
gc->setLabel(QObject::tr("Delay starting mythfrontend until mythbackend is running"));
gc->setValue(true);
gc->setHelpText(QObject::tr("The system will check if mythbackend is online before starting mythfrontend. This will avoid connection errors and configuration screens."));
@@ -329,9 +323,9 @@ static HostCheckBox *HostBEWait()
-// static HostComboBox *HostEvrouterConfig()
+// static HostComboBoxSetting *HostEvrouterConfig()
// {
-// HostComboBox *gc = new HostComboBox("HostEvrouterConfig",true);
+// HostComboBoxSetting *gc = new HostComboBoxSetting("HostEvrouterConfig",true);
// gc->setLabel(QObject::tr("Key Configuration"));
// gc->setHelpText(QObject::tr("Choose the key definations that will be used by the event router"));
// QString dirtxt;
@@ -357,9 +351,9 @@ static HostCheckBox *HostBEWait()
// };
-// static HostCheckBox *HostServiceNFS()
+// static HostCheckBoxSetting *HostServiceNFS()
// {
-// HostCheckBox *gc = new HostCheckBox("HostServiceNFS");
+// HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceNFS");
// gc->setLabel(QObject::tr("Standard file sharing"));
// gc->setValue(true);
// gc->setHelpText(QObject::tr("Allow all machines to access recorded files with nfs"));
@@ -367,18 +361,18 @@ static HostCheckBox *HostBEWait()
// };
-static HostCheckBox *HostServiceMythWEB()
+static HostCheckBoxSetting *HostServiceMythWEB()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceMythWEB");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceMythWEB");
gc->setLabel(QObject::tr("Enable MythWeb"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Allow MythTV scheduling using a web browser."));
return gc;
};
-
-static HostCheckBox *HostServiceHobbitclient()
+/*
+static HostCheckBoxSetting *HostServiceHobbitclient()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceHobbitclient");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceHobbitclient");
gc->setLabel(QObject::tr("Hobbit-client"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Report stats and other stuff to the master backend"));
@@ -394,54 +388,54 @@ static GlobalCheckBox *GlobalServiceHobbitserver()
return gc;
};
-static HostCheckBox *HostServiceRRD()
+static HostCheckBoxSetting *HostServiceRRD()
{
- HostCheckBox *gc = new HostCheckBox("HostServiceRRD");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostServiceRRD");
gc->setLabel(QObject::tr("rrd_stats"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Collect stats and create graphs of various system resources."));
return gc;
};
-
-static HostCheckBox *HostUseDHCP()
+*/
+static HostCheckBoxSetting *HostUseDHCP()
{
- HostCheckBox *gc = new HostCheckBox("HostUseDHCP");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseDHCP");
gc->setLabel(QObject::tr("Static ip address"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Enable to use a static ip address, otherwise dhcp will be used."));
return gc;
};
-static HostCheckBox *HostRunDHCP()
+static HostCheckBoxSetting *HostRunDHCP()
{
- HostCheckBox *gc = new HostCheckBox("HostRunDHCP");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostRunDHCP");
gc->setLabel(QObject::tr("DHCP Server"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Only one DHCP server should run on a network. Leave this unchecked if you are not sure."));
return gc;
};
-// static HostCheckBox *HostRunEvrouter()
+// static HostCheckBoxSetting *HostRunEvrouter()
// {
-// HostCheckBox *gc = new HostCheckBox("HostRunEvrouter");
+// HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostRunEvrouter");
// gc->setLabel(QObject::tr("Use evrouter"));
// gc->setValue(false);
// gc->setHelpText(QObject::tr("Evrouter will run custom actions, based on the user defined events."));
// return gc;
// };
-static HostCheckBox *HostUsemythfrontend()
+static HostCheckBoxSetting *HostUsemythfrontend()
{
- HostCheckBox *gc = new HostCheckBox("HostUseMythWelcome");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseMythWelcome");
gc->setLabel(QObject::tr("Run MythWelcome"));
gc->setValue(false);
gc->setHelpText(QObject::tr("If checked mythwelcome will be started instead of mythfrontend."));
return gc;
};
-static HostCheckBox *HostRunFrontend()
+static HostCheckBoxSetting *HostRunFrontend()
{
- HostCheckBox *gc = new HostCheckBox("HostRunFrontend");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostRunFrontend");
gc->setLabel(QObject::tr("Run Frontend"));
gc->setValue(true);
gc->setHelpText(QObject::tr("If checked the frontend X windows GUI will start. Most people will want this checked. Disable the frontend if you want the system to run without a display connected."));
@@ -449,9 +443,9 @@ static HostCheckBox *HostRunFrontend()
};
-static HostComboBox *HostMysqlserverip_listbox()
+static HostComboBoxSetting *HostMysqlserverip_listbox()
{
- HostComboBox *gc = new HostComboBox("HostMysqlServer",true);
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostMysqlServer",true);
gc->setLabel(QObject::tr("MySQL Server"));
myth_system("avahi-browse -l -r -t _mysql._tcp > /tmp/mysqllist");
@@ -495,9 +489,9 @@ static HostComboBox *HostMysqlserverip_listbox()
-static HostCheckBox *HostRemoteBackup()
+static HostCheckBoxSetting *HostRemoteBackup()
{
- HostCheckBox *gc = new HostCheckBox("HostRemoteBackup");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostRemoteBackup");
gc->setLabel(QObject::tr("Remote Backup"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Copy the system backup file to another directory or host."));
@@ -505,11 +499,11 @@ static HostCheckBox *HostRemoteBackup()
};
-static HostComboBox *HostRemoteBackupDir()
+static HostComboBoxSetting *HostRemoteBackupDir()
{
QString tempItem;
- HostComboBox *gc = new HostComboBox("HostRemoteBackupDir",true);
- gc->setLabel(QObject::tr(" Dir or Host" ));
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostRemoteBackupDir",true);
+ gc->setLabel(QObject::tr("Dir or Host" ));
gc->addSelection("dir:/data/storage/disk0");
MSqlQuery query(MSqlQuery::InitCon());
@@ -530,29 +524,26 @@ static HostComboBox *HostRemoteBackupDir()
return gc;
};
-class Backupsettings: public TriggeredConfigurationGroup {
+class Backupsettings: public GroupSetting {
public:
- Backupsettings():
- TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) {
- SetVertical(false);
+ Backupsettings(): GroupSetting()
+ {
+// SetVertical(false);
setLabel(QObject::tr("Backup Settings"));
- Setting* trigger = HostRemoteBackup();
- addChild(trigger);
- setTrigger(trigger);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false,false);
- settings->addChild(HostRemoteBackupDir());
-
- addTarget("0", new VerticalConfigurationGroup(false, false));
- addTarget("1", settings);
-
+// Setting* trigger = HostRemoteBackup();
+ addChild(HostRemoteBackup());
+// setTrigger(trigger);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false,false);
+// addTargetedChild(HostRemoteBackupDir(),true);
+// addTarget("0", new VerticalConfigurationGroup(false, false));
+// addTarget("1", settings);
};
};
-
-// static HostCheckBox *HostPKG_MIRROR()
+// static HostCheckBoxSetting *HostPKG_MIRROR()
// {
-// HostCheckBox *gc = new HostCheckBox("HostPKG_MIRROR");
+// HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostPKG_MIRROR");
// gc->setLabel(QObject::tr("Use Local mirror"));
// gc->setValue(false);
// gc->setHelpText(QObject::tr("Master Backend will be used as the repo source."));
@@ -570,27 +561,27 @@ public:
-static HostCheckBox *HostncidClient()
+static HostCheckBoxSetting *HostncidClient()
{
- HostCheckBox *gc = new HostCheckBox("HostncidClient");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostncidClient");
gc->setLabel(QObject::tr("Show CallerID"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Show CallerID popup. The backend must be running the CallerID program."));
return gc;
};
-static HostCheckBox *HostncidDaemon()
+static HostCheckBoxSetting *HostncidDaemon()
{
- HostCheckBox *gc = new HostCheckBox("HostncidDaemon");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostncidDaemon");
gc->setLabel(QObject::tr("Run CallerID"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Run daemon to collect CallerID information."));
return gc;
};
-static HostComboBox *HostSerialPortncid()
+static HostComboBoxSetting *HostSerialPortncid()
{
- HostComboBox *gc = new HostComboBox("HostSerialPortncid",false);
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostSerialPortncid",false);
gc->setLabel(QObject::tr("Serial Port"));
gc->addSelection("ttyS0");
gc->addSelection("ttyS1");
@@ -601,9 +592,9 @@ static HostComboBox *HostSerialPortncid()
return gc;
}
-static HostCheckBox *HostNcidDeviceNetCallerID()
+static HostCheckBoxSetting *HostNcidDeviceNetCallerID()
{
- HostCheckBox *gc = new HostCheckBox("HostNcidDeviceNetCallerID");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostNcidDeviceNetCallerID");
gc->setLabel(QObject::tr("Using a NetCallerID"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Instead of a typical modem, the serial device is a NetCallerID"));
@@ -611,9 +602,9 @@ static HostCheckBox *HostNcidDeviceNetCallerID()
};
-static HostCheckBox *Hostbootsplash()
+static HostCheckBoxSetting *Hostbootsplash()
{
- HostCheckBox *gc = new HostCheckBox("Hostbootsplash");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostbootsplash");
gc->setLabel(QObject::tr("Enable Boot Splash"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Covers up boot messages with LinHES logo."));
@@ -621,10 +612,10 @@ static HostCheckBox *Hostbootsplash()
};
//-------------------------------------screensaver settings-------------------
-
-static HostComboBox *HostScreensaverType()
+/*
+static HostComboBoxSetting *HostScreensaverType()
{
- HostComboBox *gc = new HostComboBox("HostScreensaverType");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostScreensaverType");
gc->setLabel(QObject::tr("Screensaver Program"));
gc->addSelection("xscreensaver");
//gc->addSelection("gscreensaver");
@@ -635,7 +626,7 @@ static HostComboBox *HostScreensaverType()
return gc;
};
-static HostSpinBox *HostScreensaverIdle()
+static HostSpinBoxSetting *HostScreensaverIdle()
{
HostSpinBox *gc = new HostSpinBox("HostScreensaverIdle", 5, 60, 1, true);
gc->setLabel(QObject::tr("Idle Time"));
@@ -644,18 +635,18 @@ static HostSpinBox *HostScreensaverIdle()
return gc;
}
-static HostCheckBox *HostScreensaverBlank()
+static HostCheckBoxSetting *HostScreensaverBlank()
{
- HostCheckBox *gc = new HostCheckBox("HostScreensaverBlank");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostScreensaverBlank");
gc->setLabel(QObject::tr("Blank"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Blank the screen instead of using a screensaver"));
return gc;
};
-static HostCheckBox *HostScreensaverRandom()
+static HostCheckBoxSetting *HostScreensaverRandom()
{
- HostCheckBox *gc = new HostCheckBox("HostScreensaverRandom");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostScreensaverRandom");
gc->setLabel(QObject::tr("Random"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Use a random screensaver."));
@@ -664,9 +655,9 @@ static HostCheckBox *HostScreensaverRandom()
-static HostComboBox *HostGScreensaverTheme()
+static HostComboBoxSetting *HostGScreensaverTheme()
{
- HostComboBox *gc = new HostComboBox("HostGScreensaverTheme");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostGScreensaverTheme");
gc->setLabel(QObject::tr("Screensaver"));
gc->setHelpText(QObject::tr("Screen saver program to use."));
QString line;
@@ -686,9 +677,9 @@ static HostComboBox *HostGScreensaverTheme()
return gc;
};
-static HostComboBox *HostXScreensaverTheme()
+static HostComboBoxSetting *HostXScreensaverTheme()
{
- HostComboBox *gc = new HostComboBox("HostXScreensaverTheme");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostXScreensaverTheme");
gc->setLabel(QObject::tr("Screensaver"));
gc->setHelpText(QObject::tr("Screensaver to display."));
QString dirtxt;
@@ -710,11 +701,11 @@ static HostComboBox *HostXScreensaverTheme()
return gc;
};
-class Screensaverhostsettings: public TriggeredConfigurationGroup {
+class Screensaverhostsettings: public GroupSetting {
public:
Screensaverhostsettings():
- TriggeredConfigurationGroup() {
+ GroupSetting() {
SetVertical(true);
setLabel(QObject::tr("Screensaver Settings"));
Setting* trigger = HostScreensaverType() ;
@@ -735,8 +726,6 @@ public:
gscreensaversettings->addChild(HostScreensaverIdle());
gscreensaversettings->addChild(HostGScreensaverTheme());
-
-
addTarget("tinker", new VerticalConfigurationGroup(false, false));
addTarget("none", new VerticalConfigurationGroup(false, false));
addTarget("gscreensaver", gscreensaversettings);
@@ -744,139 +733,139 @@ public:
};
};
-
+*/
//-------------------------------------access setting----------------------
-static HostCheckBox *Hostaccessnetwork()
+static HostCheckBoxSetting *Hostaccessnetwork()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessnetwork");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessnetwork");
gc->setLabel(QObject::tr("Network"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Control access to Network Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccesshostype()
+static HostCheckBoxSetting *Hostaccesshostype()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccesshostype");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccesshostype");
gc->setLabel(QObject::tr("Host"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Host Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *HostaccesshostypeSystemtype()
+static HostCheckBoxSetting *HostaccesshostypeSystemtype()
{
- HostCheckBox *gc = new HostCheckBox("HostaccesshostypeSystemtype");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostaccesshostypeSystemtype");
gc->setLabel(QObject::tr("Change System Type"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Ability to change the System Type in Host Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccessmisc()
+static HostCheckBoxSetting *Hostaccessmisc()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessmisc");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessmisc");
gc->setLabel(QObject::tr("Miscellanous"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Miscellanous Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccesssleep()
+static HostCheckBoxSetting *Hostaccesssleep()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccesssleep");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccesssleep");
gc->setLabel(QObject::tr("Shutdown"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Shutdown Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccessadvanced()
+static HostCheckBoxSetting *Hostaccessadvanced()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessadvanced");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessadvanced");
gc->setLabel(QObject::tr("Advanced"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Advanced Settings. Checked means the screen is enabled. "));
return gc;
};
-static HostCheckBox *HostaccessadvancedX()
+static HostCheckBoxSetting *HostaccessadvancedX()
{
- HostCheckBox *gc = new HostCheckBox("HostaccessadvancedX");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostaccessadvancedX");
gc->setLabel(QObject::tr("Display"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Display Settings. Checked means the screen is enabled. "));
return gc;
};
-static HostCheckBox *Hostaccessddns()
+static HostCheckBoxSetting *Hostaccessddns()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessddns");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessddns");
gc->setLabel(QObject::tr("Dynamic DNS"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to DDNS Settings. Checked means the screen is enabled. "));
return gc;
};
-static HostCheckBox *Hostaccesssound()
+static HostCheckBoxSetting *Hostaccesssound()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccesssound");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccesssound");
gc->setLabel(QObject::tr("Audio"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Audio Settings. Checked means the screen is enabled."));
return gc;
};
-
-static HostCheckBox *Hostaccessscreensaver()
+/*
+static HostCheckBoxSetting *Hostaccessscreensaver()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessscreensaver");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessscreensaver");
gc->setLabel(QObject::tr("Screensaver"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Screensaver Settings. Checked means the screen is enabled."));
return gc;
};
-
-static HostCheckBox *Hostaccessir()
+*/
+static HostCheckBoxSetting *Hostaccessir()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessir");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessir");
gc->setLabel(QObject::tr("Remotes"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Remotes Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccessplugins()
+static HostCheckBoxSetting *Hostaccessplugins()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessplugins");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessplugins");
gc->setLabel(QObject::tr("Programs"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Programs. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccessuser()
+static HostCheckBoxSetting *Hostaccessuser()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessuser");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessuser");
gc->setLabel(QObject::tr("User Accounts"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Control access to User Accounts. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccesswebuser()
+static HostCheckBoxSetting *Hostaccesswebuser()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccesswebuser");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccesswebuser");
gc->setLabel(QObject::tr("Web Security"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Web Security Settings. Checked means the screen is enabled."));
return gc;
};
-static HostCheckBox *Hostaccessvnc()
+static HostCheckBoxSetting *Hostaccessvnc()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessvnc");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessvnc");
gc->setLabel(QObject::tr("Screen Sharing"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to Screen Sharing Settings. Checked means the screen is enabled."));
@@ -884,20 +873,20 @@ static HostCheckBox *Hostaccessvnc()
};
-static HostCheckBox *Hostaccessfileshare()
+static HostCheckBoxSetting *Hostaccessfileshare()
{
- HostCheckBox *gc = new HostCheckBox("Hostaccessfileshare");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostaccessfileshare");
gc->setLabel(QObject::tr("File Sharing"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Control access to File Sharing Settings. Checked means the screen is enabled."));
return gc;
};
-
-class ACCESShostsettings: public TriggeredConfigurationGroup {
+/*
+class ACCESShostsettings: public GroupSetting {
public:
ACCESShostsettings():
- TriggeredConfigurationGroup(false,false,false,false) {
+ GroupSetting(false,false,false,false) {
SetVertical(false);
Setting* trigger = Hostaccesshostype () ;
addChild(trigger);
@@ -912,13 +901,13 @@ public:
addTarget("1", settings);
};
};
-
+*/
//---------------------------------- PLUGINS ----------------------
-static HostCheckBox *Hostpluginmytharchive()
+static HostCheckBoxSetting *Hostpluginmytharchive()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmytharchive");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmytharchive");
gc->setLabel(QObject::tr("MythArchive"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Check to enable MythArchive."));
@@ -926,9 +915,9 @@ static HostCheckBox *Hostpluginmytharchive()
};
-static HostCheckBox *Hostpluginmythbrowser()
+static HostCheckBoxSetting *Hostpluginmythbrowser()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythbrowser");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythbrowser");
gc->setLabel(QObject::tr("MythBrowser"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Check to enable MythBrowser."));
@@ -936,9 +925,9 @@ static HostCheckBox *Hostpluginmythbrowser()
};
-static HostCheckBox *Hostpluginmythnetvision()
+static HostCheckBoxSetting *Hostpluginmythnetvision()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythnetvision");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythnetvision");
gc->setLabel(QObject::tr("MythNetvision"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Check to enable MythNetvision."));
@@ -946,9 +935,9 @@ static HostCheckBox *Hostpluginmythnetvision()
};
-static HostCheckBox *Hostpluginmythgallery()
+static HostCheckBoxSetting *Hostpluginmythgallery()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythgallery");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythgallery");
gc->setLabel(QObject::tr("MythGallery"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Check to enable MythGallery."));
@@ -956,81 +945,81 @@ static HostCheckBox *Hostpluginmythgallery()
};
-static HostCheckBox *Hostpluginmythgame()
+static HostCheckBoxSetting *Hostpluginmythgame()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythgame");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythgame");
gc->setLabel(QObject::tr("MythGame"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Check to enable MythGame."));
return gc;
};
-static HostCheckBox *Hostpluginmythgamesnes9x()
+static HostCheckBoxSetting *Hostpluginmythgamesnes9x()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythgamesnes9x");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythgamesnes9x");
gc->setLabel(QObject::tr("snes9x"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Super Nintendo emulator"));
return gc;
};
-static HostCheckBox *Hostpluginmythgamefceux()
+static HostCheckBoxSetting *Hostpluginmythgamefceux()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythgamefceux");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythgamefceux");
gc->setLabel(QObject::tr("fceux"));
gc->setValue(false);
gc->setHelpText(QObject::tr("NES emulator"));
return gc;
};
-static HostCheckBox *HostpluginmythgameMame()
+static HostCheckBoxSetting *HostpluginmythgameMame()
{
- HostCheckBox *gc = new HostCheckBox("HostpluginmythgameMame");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostpluginmythgameMame");
gc->setLabel(QObject::tr("mame"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Mame, Multiple Arcade Machine Emulator"));
return gc;
};
-static HostCheckBox *HostpluginmythgameMednafen()
+static HostCheckBoxSetting *HostpluginmythgameMednafen()
{
- HostCheckBox *gc = new HostCheckBox("HostpluginmythgameMednafen");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostpluginmythgameMednafen");
gc->setLabel(QObject::tr("Mednafen"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Mednafen is a portable, utilizing OpenGL and SDL, command-line driven multi-system emulator with many advanced features."));
return gc;
};
-static HostCheckBox *HostpluginmythgameROMDB()
+static HostCheckBoxSetting *HostpluginmythgameROMDB()
{
- HostCheckBox *gc = new HostCheckBox("HostpluginmythgameROMDB");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostpluginmythgameROMDB");
gc->setLabel(QObject::tr("RomDB"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Table used my MythGame to store information about games. If you are into games, this is recommended."));
return gc;
};
-static HostCheckBox *Hostpluginmythgamemupen64()
+static HostCheckBoxSetting *Hostpluginmythgamemupen64()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythgamemupen64");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythgamemupen64");
gc->setLabel(QObject::tr("mupen64"));
gc->setValue(false);
gc->setHelpText(QObject::tr("n64 emulator"));
return gc;
};
-static HostCheckBox *HostpluginmythgameDolphin()
+static HostCheckBoxSetting *HostpluginmythgameDolphin()
{
- HostCheckBox *gc = new HostCheckBox("HostpluginmythgameDolphin");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostpluginmythgameDolphin");
gc->setLabel(QObject::tr("Dolphin"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Nintendo Wii emulator"));
return gc;
};
-static HostCheckBox *HostpluginmythgameXe()
+static HostCheckBoxSetting *HostpluginmythgameXe()
{
- HostCheckBox *gc = new HostCheckBox("HostpluginmythgameXe");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostpluginmythgameXe");
gc->setLabel(QObject::tr("Xe"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Xe is a multisystem emulator. http://www.xe-emulator.com/ for the complete list."));
@@ -1038,9 +1027,9 @@ static HostCheckBox *HostpluginmythgameXe()
};
-static HostCheckBox *Hostpluginmythmusic()
+static HostCheckBoxSetting *Hostpluginmythmusic()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythmusic");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythmusic");
gc->setLabel(QObject::tr("MythMusic"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Check to enable MythMusic."));
@@ -1048,9 +1037,9 @@ static HostCheckBox *Hostpluginmythmusic()
};
-static HostCheckBox *Hostpluginmythnews()
+static HostCheckBoxSetting *Hostpluginmythnews()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythnews");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythnews");
gc->setLabel(QObject::tr("MythNews"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Check to enable MythNews."));
@@ -1058,9 +1047,9 @@ static HostCheckBox *Hostpluginmythnews()
};
-static HostCheckBox *Hostpluginmythvideo_dvdcss()
+static HostCheckBoxSetting *Hostpluginmythvideo_dvdcss()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythvideo_dvdcss");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythvideo_dvdcss");
gc->setLabel(QObject::tr("dvdcss"));
gc->setValue(false);
gc->setHelpText(QObject::tr("libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption."));
@@ -1069,9 +1058,9 @@ static HostCheckBox *Hostpluginmythvideo_dvdcss()
-static HostCheckBox *Hostpluginmythappletrailers()
+static HostCheckBoxSetting *Hostpluginmythappletrailers()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythappletrailers");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythappletrailers");
gc->setLabel(QObject::tr("MythAppleTrailers"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Stream trailer's from Apple's website."));
@@ -1079,9 +1068,9 @@ static HostCheckBox *Hostpluginmythappletrailers()
};
-static HostCheckBox *Hostpluginmythweather()
+static HostCheckBoxSetting *Hostpluginmythweather()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythweather");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythweather");
gc->setLabel(QObject::tr("MythWeather"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Check to enable MythWeather."));
@@ -1089,9 +1078,9 @@ static HostCheckBox *Hostpluginmythweather()
};
-static HostCheckBox *Hostwebmin()
+static HostCheckBoxSetting *Hostwebmin()
{
- HostCheckBox *gc = new HostCheckBox("Hostwebmin");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostwebmin");
gc->setLabel(QObject::tr("Webmin"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Webmin is a web-based interface for system administration. Once installed, access it at https://ip.of.back.end:10000 using your root password."));
@@ -1099,9 +1088,9 @@ static HostCheckBox *Hostwebmin()
};
-static HostCheckBox *Hostfoldingathome()
+static HostCheckBoxSetting *Hostfoldingathome()
{
- HostCheckBox *gc = new HostCheckBox("Hostfoldingathome");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostfoldingathome");
gc->setLabel(QObject::tr("Folding@home"));
gc->setValue(false);
gc->setHelpText(QObject::tr("A distributed computing project which studies protein folding, misfolding, aggregation, and related diseases."));
@@ -1110,52 +1099,43 @@ static HostCheckBox *Hostfoldingathome()
-static HostCheckBox *Hostwebonlinhes()
+static HostCheckBoxSetting *Hostwebonlinhes()
{
- HostCheckBox *gc = new HostCheckBox("Hostwebonlinhes");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostwebonlinhes");
gc->setLabel(QObject::tr("Web On LinHES"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Includes Google Chrome and multiple websites with 10' UIs in Media Library --> Online Content."));
return gc;
};
-static HostCheckBox *HostHuluDesktop()
+static HostCheckBoxSetting *HostXBMC()
{
- HostCheckBox *gc = new HostCheckBox("HostHuluDesktop");
- gc->setLabel(QObject::tr("Hulu Desktop"));
- gc->setValue(false);
- gc->setHelpText(QObject::tr("Hulu Desktop for Linux."));
- return gc;
-};
-
-static HostCheckBox *HostXBMC()
-{
- HostCheckBox *gc = new HostCheckBox("HostXBMC");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostXBMC");
gc->setLabel(QObject::tr("Kodi"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Kodi (formerly known as XBMC) is an award-winning free and open source (GPL) software media player and entertainment hub, featuring a 10-foot user interface for use with televisions and remote controls."));
return gc;
};
-static HostCheckBox *HostPLEXHT()
+static HostCheckBoxSetting *HostPLEXHT()
{
- HostCheckBox *gc = new HostCheckBox("HostPLEXHT");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostPLEXHT");
gc->setLabel(QObject::tr("OpenPHT"));
gc->setValue(false);
gc->setHelpText(QObject::tr("OpenPHT is a community driven fork of Plex Home Theater. OpenPHT is a full-featured, powerful App that connects to Plex Media Server and is designed to be used in the living room from the comfort of your lounge."));
return gc;
};
-static HostCheckBox *HostPLEXMS()
+static HostCheckBoxSetting *HostPLEXMS()
{
- HostCheckBox *gc = new HostCheckBox("HostPLEXMS");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostPLEXMS");
gc->setLabel(QObject::tr("Plex Media Server"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Plex is a centralized home media playback system with a powerful central server - the Plex Media Server - that streams its media to many Plex player Apps."));
return gc;
};
-static HostComboBox *Hostfoldingusername()
+static HostComboBoxSetting *Hostfoldingusername()
{
// If there is an old R5.5 style folding directory /myth/folding@home, attempt
// to retrieve the old username.
@@ -1184,7 +1164,7 @@ static HostComboBox *Hostfoldingusername()
pclose (username_pipe);
}
- HostComboBox *gc = new HostComboBox("Hostfoldingusername",true);
+ HostComboBoxSetting *gc = new HostComboBoxSetting("Hostfoldingusername",true);
gc->setLabel(QObject::tr("Folding Username"));
gc->setValue("");
@@ -1192,9 +1172,9 @@ static HostComboBox *Hostfoldingusername()
return gc;
};
-static HostComboBox *Hostfoldingworksize()
+static HostComboBoxSetting *Hostfoldingworksize()
{
- HostComboBox *gc = new HostComboBox("Hostfoldingworksize");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("Hostfoldingworksize");
gc->setLabel(QObject::tr("Work Packet Size"));
gc->addSelection("Big", "big");
gc->addSelection("Normal", "normal");
@@ -1203,9 +1183,9 @@ static HostComboBox *Hostfoldingworksize()
return gc;
};
-// static HostCheckBox *HostXscreensaver()
+// static HostCheckBoxSetting *HostXscreensaver()
// {
-// HostCheckBox *gc = new HostCheckBox("HostXscreensaver");
+// HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostXscreensaver");
// gc->setLabel(QObject::tr("Screensaver"));
// gc->setValue(false);
// gc->setHelpText(QObject::tr("Run screensaver after 10 minutes of inactivity."));
@@ -1213,9 +1193,9 @@ static HostComboBox *Hostfoldingworksize()
// };
-static HostCheckBox *Hostpluginmythzoneminder()
+static HostCheckBoxSetting *Hostpluginmythzoneminder()
{
- HostCheckBox *gc = new HostCheckBox("Hostpluginmythzoneminder");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("Hostpluginmythzoneminder");
gc->setLabel(QObject::tr("MythZoneMinder"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Check to enable MythZoneMinder."));
@@ -1226,11 +1206,11 @@ static HostCheckBox *Hostpluginmythzoneminder()
// -------------End plugins--------------------------------
-
-class NCIDsettings: public TriggeredConfigurationGroup {
+/*
+class NCIDsettings: public GroupSetting {
public:
NCIDsettings():
- TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) {
+ GroupSetting(false, false, true, true,false, false, true, true) {
SetVertical(true);
Setting* trigger = HostncidDaemon() ;
addChild(trigger);
@@ -1242,11 +1222,11 @@ public:
addTarget("1", settings);
};
};
-
-// class SAMBAsettings: public TriggeredConfigurationGroup {
+*/
+// class SAMBAsettings: public GroupSetting {
// public:
// SAMBAsettings():
-// TriggeredConfigurationGroup(false, true, true, true,false, false, true, true) {
+// GroupSetting(false, true, true, true,false, false, true, true) {
// SetVertical(false);
// Setting* trigger = HostServiceSamba() ;
// addChild(trigger);
@@ -1266,10 +1246,10 @@ public:
// };
-// class Evroutersettings: public TriggeredConfigurationGroup {
+// class Evroutersettings: public GroupSetting {
// public:
// Evroutersettings():
-// TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) {
+// GroupSetting(false, false, true, true,false, false, true, true) {
// setLabel(QObject::tr("Evrouter config"));
// Setting* trigger = HostRunEvrouter() ;
// addChild(trigger);
@@ -1283,39 +1263,30 @@ public:
// };
// };
-class MythGamesettings: public TriggeredConfigurationGroup {
+class MythGamesettings: public GroupSetting {
public:
- MythGamesettings():
- TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) {
- setLabel(QObject::tr("Programs - Games"));
- Setting* trigger = Hostpluginmythgame() ;
+ MythGamesettings(): GroupSetting()
+ {
+ //setLabel(QObject::tr("Programs - Games"));
+ HostCheckBoxSetting* trigger = Hostpluginmythgame();
addChild(trigger);
- setTrigger(trigger);
-
- ConfigurationGroup* settings = new GridConfigurationGroup(3,true,true);
- settings->addChild(HostpluginmythgameROMDB());
- settings->addChild(Hostpluginmythgamesnes9x());
- settings->addChild(Hostpluginmythgamefceux());
- settings->addChild(HostpluginmythgameMame());
- settings->addChild(HostpluginmythgameMednafen());
- settings->addChild(Hostpluginmythgamemupen64());
- settings->addChild(HostpluginmythgameDolphin());
- settings->addChild(HostpluginmythgameXe());
-
-
- addTarget("0", new VerticalConfigurationGroup(false, false));
- addTarget("1", settings);
+ trigger->addTargetedChild("1", HostpluginmythgameROMDB());
+ trigger->addTargetedChild("1", Hostpluginmythgamesnes9x());
+ trigger->addTargetedChild("1", Hostpluginmythgamefceux());
+ trigger->addTargetedChild("1", HostpluginmythgameMame());
+ trigger->addTargetedChild("1", HostpluginmythgameMednafen());
+ trigger->addTargetedChild("1", Hostpluginmythgamemupen64());
+ trigger->addTargetedChild("1", HostpluginmythgameDolphin());
+ trigger->addTargetedChild("1", HostpluginmythgameXe());
};
};
-
//____________________________________________________________________________
-class eth0_settings: public TriggeredConfigurationGroup {
+class eth0_settings: public GroupSetting {
public:
- eth0_settings():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
-
- HostComboBox *HOSTESSIDeth0 = new HostComboBox("HOSTESSIDeth0",true);
+ eth0_settings(): GroupSetting()
+ {
+ HostComboBoxSetting *HOSTESSIDeth0 = new HostComboBoxSetting("HOSTESSIDeth0");
HOSTESSIDeth0->setLabel(QObject::tr("ESSID"));
HOSTESSIDeth0->addSelection("MythVantage");
HOSTESSIDeth0->addSelection("home_lan");
@@ -1323,39 +1294,33 @@ public:
HOSTESSIDeth0->setHelpText(QObject::tr("ESSID"));
addChild(HOSTESSIDeth0);
- HostComboBox *HostUseEncryptioneth0 = new HostComboBox("HostUseEncryptioneth0");
+// HostCheckBoxSetting* HostUseEncryption = HostUseEncryptioneth0;
+// addChild(HostUseEncryption);
+
+ HostComboBoxSetting *HostUseEncryptioneth0 = new HostComboBoxSetting("HostUseEncryptioneth0");
HostUseEncryptioneth0->setLabel(QObject::tr("Encryption"));
HostUseEncryptioneth0->setHelpText(QObject::tr("WPA uses a shared key phrase this is the most secure. For WEP use the generated key, this type of encryption is not recommended."));
- HostUseEncryptioneth0->addSelection("none");
+ HostUseEncryptioneth0->addSelection("None");
HostUseEncryptioneth0->addSelection("WPA");
HostUseEncryptioneth0->addSelection("WEP");
- Setting* HostUseEncryption = HostUseEncryptioneth0;
- addChild(HostUseEncryption);
- setTrigger(HostUseEncryption);
-
- HostLineEdit *Hostkeyeth0 = new HostLineEdit("Hostkeyeth0");
- Hostkeyeth0->setLabel(QObject::tr("key"));
+ HostTextEditSetting *Hostkeyeth0 = new HostTextEditSetting("Hostkeyeth0");
+ Hostkeyeth0->setLabel(QObject::tr("Encryption Key"));
Hostkeyeth0->setHelpText(QObject::tr("Key to use for encryption."));
-
- ConfigurationGroup* settings = new GridConfigurationGroup(1,false);
- settings->addChild(Hostkeyeth0);
- addTarget("none", new GridConfigurationGroup(1,false));
- addTarget("WPA", settings);
- addTarget("WEP", settings);
+ addChild(Hostkeyeth0);
};
};
-NetworkSettingseth0::NetworkSettingseth0():
- TriggeredConfigurationGroup(false,false,false,false) {
+NetworkSettingseth0::NetworkSettingseth0()
+{
setLabel(QObject::tr("Network Settings"));
- HostLineEdit *HostIPeth0 = new HostLineEdit("HostIPeth0");
+ HostTextEditSetting *HostIPeth0 = new HostTextEditSetting("HostIPeth0");
HostIPeth0->setLabel(QObject::tr("IP Address"));
HostIPeth0->setValue("192.168.1.12");
HostIPeth0->setHelpText(QObject::tr("IP address of the new installation."));
- HostComboBox *HostNETMASKeth0 = new HostComboBox("HostNETMASKeth0");
+ HostComboBoxSetting *HostNETMASKeth0 = new HostComboBoxSetting("HostNETMASKeth0");
HostNETMASKeth0->setLabel(QObject::tr("Netmask"));
HostNETMASKeth0->addSelection("/0 0.0.0.0");
HostNETMASKeth0->addSelection("/1 128.0.0.0");
@@ -1393,65 +1358,67 @@ NetworkSettingseth0::NetworkSettingseth0():
HostNETMASKeth0->setHelpText(QObject::tr("Netmask"));
HostNETMASKeth0->setValue(24);
- HostLineEdit *HostGWeth0 = new HostLineEdit("HostGWeth0");
+ HostTextEditSetting *HostGWeth0 = new HostTextEditSetting("HostGWeth0");
HostGWeth0->setLabel(QObject::tr("Gateway"));
HostGWeth0->setValue("192.168.1.1");
HostGWeth0->setHelpText(QObject::tr("This is the default route."));
-
- HostLineEdit *HostDNSeth0 = new HostLineEdit("HostDNSeth0");
+ HostTextEditSetting *HostDNSeth0 = new HostTextEditSetting("HostDNSeth0");
HostDNSeth0->setLabel(QObject::tr("Name Server"));
HostDNSeth0->setValue("192.168.1.1");
HostDNSeth0->setHelpText(QObject::tr("Name server"));
-
- HostCheckBox *HostActiveonbooteth0 = new HostCheckBox("HostActiveonbooteth0");
+ HostCheckBoxSetting *HostActiveonbooteth0 = new HostCheckBoxSetting("HostActiveonbooteth0");
HostActiveonbooteth0->setLabel(QObject::tr("Active"));
HostActiveonbooteth0->setValue(true);
HostActiveonbooteth0->setHelpText(QObject::tr("Network is started on boot."));
- HostDefaulteth0 = new HostCheckBox("HostDefaulteth0");
+ HostDefaulteth0 = new HostCheckBoxSetting("HostDefaulteth0");
HostDefaulteth0->setLabel(QObject::tr("Default"));
HostDefaulteth0->setValue(true);
HostDefaulteth0->setHelpText(QObject::tr("Will be used as the primary interface."));
- connect(HostDefaulteth0, SIGNAL(valueChanged(bool)), this, SLOT(eth0_disable_others()));
+ connect(HostDefaulteth0, SIGNAL(valueChanged(bool)), this,
+ SLOT(eth0_disable_others()));
- HostCheckBox *HostUseDHCPeth0 = new HostCheckBox("HostUseDHCPeth0");
- HostUseDHCPeth0 ->setLabel(QObject::tr("Static IP Address"));
- HostUseDHCPeth0 ->setValue(false);
- HostUseDHCPeth0 ->setHelpText(QObject::tr("Enable to use a static IP address, otherwise DHCP will be used."));
+ HostCheckBoxSetting *HostUseDHCPeth0 = new HostCheckBoxSetting("HostUseDHCPeth0");
+ HostUseDHCPeth0->setLabel(QObject::tr("Static IP Address"));
+ HostUseDHCPeth0->setValue(false);
+ HostUseDHCPeth0->setHelpText(QObject::tr("Enable to use a static IP address, otherwise DHCP will be used."));
- wirelessbuttoneth0 = new TransButtonSetting();
- wirelessbuttoneth0->setLabel(tr("Wireless Settings"));
- connect(wirelessbuttoneth0, SIGNAL(pressed()), this, SLOT(eth0_wireless_settings()));
+ wirelessbuttoneth0 = new ButtonStandardSetting("Wireless Settings");
+ connect(wirelessbuttoneth0, SIGNAL(pressed()), this,
+ SLOT(eth0_wireless_settings()));
- ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, true, true);
- settings1->addChild(HostActiveonbooteth0);
- settings1->addChild(HostDefaulteth0);
- settings1-> addChild(wirelessbuttoneth0);
- addChild(settings1);
+ HostDNSeth0->setLabel(QObject::tr("Name Server"));
+ HostDNSeth0->setValue("192.168.1.1");
+ HostDNSeth0->setHelpText(QObject::tr("Name server"));
+// ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, true, true);
+ addChild(HostActiveonbooteth0);
+ addChild(HostDefaulteth0);
+ addChild(wirelessbuttoneth0);
+// addChild(settings1);
- Setting* dhcpEnabled = HostUseDHCPeth0;
- addChild(dhcpEnabled);
- setTrigger(dhcpEnabled);
+// Setting* dhcpEnabled = HostUseDHCPeth0;
+ addChild(HostUseDHCPeth0);
+// setTrigger(dhcpEnabled);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false, false, false);
- settings->addChild(HostIPeth0);
- settings->addChild(HostNETMASKeth0);
- settings->addChild(HostGWeth0);
- settings->addChild(HostDNSeth0);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false, false, false);
+ HostUseDHCPeth0->addTargetedChild("1", HostIPeth0);
+ HostUseDHCPeth0->addTargetedChild("1", HostNETMASKeth0);
+ HostUseDHCPeth0->addTargetedChild("1", HostGWeth0);
+ HostUseDHCPeth0->addTargetedChild("1", HostDNSeth0);
- addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
- addTarget("1", settings);
+// addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
+// addTarget("1", settings);
};
eth0options::eth0options()
{
-
- VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
- rec->setLabel(QObject::tr("Wireless configuration for eth0"));
+// VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
+ GroupSetting* rec = new GroupSetting;
+ rec->setLabel(QObject::tr("Wireless Configuration for eth0"));
//rec->setUseLabel(true);
rec->addChild(new eth0_settings);
addChild(rec);
@@ -1467,14 +1434,16 @@ void NetworkSettingseth0::eth0_disable_others()
emit eth0_is_default();
}
}
+
void NetworkSettingseth0::eth0_disabled()
{
HostDefaulteth0->setValue(0);
}
+
void NetworkSettingseth0::eth0_wireless_settings(void)
{
eth0options eth0screen;
- eth0screen.exec();
+// eth0screen.exec();
}
void NetworkSettingseth0::eth0_wireless_disable()
@@ -1482,51 +1451,42 @@ void NetworkSettingseth0::eth0_wireless_disable()
wirelessbuttoneth0->setEnabled(false);
}
-class eth1_settings: public TriggeredConfigurationGroup {
+class eth1_settings: public GroupSetting {
public:
- eth1_settings():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
-
- HostComboBox *HOSTESSIDeth1 = new HostComboBox("HOSTESSIDeth1",true);
+ eth1_settings(): GroupSetting()
+ {
+ HostComboBoxSetting *HOSTESSIDeth1 = new HostComboBoxSetting("HOSTESSIDeth1");
HOSTESSIDeth1->setLabel(QObject::tr("ESSID"));
HOSTESSIDeth1->addSelection("MythVantage");
HOSTESSIDeth1->addSelection("home_lan");
HOSTESSIDeth1->addSelection("type_it_here");
HOSTESSIDeth1->setHelpText(QObject::tr("ESSID"));
addChild(HOSTESSIDeth1);
- HostComboBox *HostUseEncryptioneth0 = new HostComboBox("HostUseEncryptioneth0");
- HostUseEncryptioneth0->setLabel(QObject::tr("Encryption"));
- HostUseEncryptioneth0->setHelpText(QObject::tr("WPA, WEP, none"));
- HostUseEncryptioneth0->addSelection("none");
- HostUseEncryptioneth0->addSelection("WPA");
- HostUseEncryptioneth0->addSelection("WEP");
-
- Setting* HostUseEncryption = HostUseEncryptioneth0;
- addChild(HostUseEncryption);
- setTrigger(HostUseEncryption);
-
- HostLineEdit *Hostkeyeth0 = new HostLineEdit("Hostkeyeth0");
- Hostkeyeth0->setLabel(QObject::tr("key"));
- Hostkeyeth0->setHelpText(QObject::tr("Key to use for encryption"));
-
- ConfigurationGroup* settings = new GridConfigurationGroup(1,false);
- settings->addChild(Hostkeyeth0);
- addTarget("none", new GridConfigurationGroup(1,false));
- addTarget("WPA", settings);
- addTarget("WEP", settings);
+// HostComboBoxSetting *HostUseEncryptioneth0 = new HostComboBoxSetting("HostUseEncryptioneth0");
+
+ HostComboBoxSetting *HostUseEncryptioneth1 = new HostComboBoxSetting("HostUseEncryptioneth1");
+ HostUseEncryptioneth1->setLabel(QObject::tr("Encryption"));
+ HostUseEncryptioneth1->setHelpText(QObject::tr("WPA, WEP, none"));
+ HostUseEncryptioneth1->addSelection("none");
+ HostUseEncryptioneth1->addSelection("WPA");
+ HostUseEncryptioneth1->addSelection("WEP");
+
+ HostTextEditSetting *Hostkeyeth1 = new HostTextEditSetting("Hostkeyeth1");
+ Hostkeyeth1->setLabel(QObject::tr("Encryption Key"));
+ Hostkeyeth1->setHelpText(QObject::tr("Key to use for encryption."));
+ addChild(Hostkeyeth1);
};
};
-
-NetworkSettingseth1::NetworkSettingseth1():
- TriggeredConfigurationGroup(false,false,false,false) {
+NetworkSettingseth1::NetworkSettingseth1()
+{
setLabel(QObject::tr("Network Settings"));
- HostLineEdit *HostIPeth1 = new HostLineEdit("HostIPeth1");
- HostIPeth1->setLabel(QObject::tr("Ip address"));
+ HostTextEditSetting *HostIPeth1 = new HostTextEditSetting("HostIPeth1");
+ HostIPeth1->setLabel(QObject::tr("IP Address"));
HostIPeth1->setValue("192.168.1.12");
HostIPeth1->setHelpText(QObject::tr("IP address of the new installation"));
- HostComboBox *HostNETMASKeth1 = new HostComboBox("HostNETMASKeth1");
+ HostComboBoxSetting *HostNETMASKeth1 = new HostComboBoxSetting("HostNETMASKeth1");
HostNETMASKeth1->setLabel(QObject::tr("Netmask"));
HostNETMASKeth1->addSelection("/0 0.0.0.0");
HostNETMASKeth1->addSelection("/1 128.0.0.0");
@@ -1564,62 +1524,63 @@ NetworkSettingseth1::NetworkSettingseth1():
HostNETMASKeth1->setHelpText(QObject::tr("Netmask"));
HostNETMASKeth1->setValue(24);
- HostLineEdit *HostGWeth1 = new HostLineEdit("HostGWeth1");
+ HostTextEditSetting *HostGWeth1 = new HostTextEditSetting("HostGWeth1");
HostGWeth1->setLabel(QObject::tr("Gateway"));
HostGWeth1->setValue("192.168.1.1");
HostGWeth1->setHelpText(QObject::tr("This is the default route"));
-
- HostLineEdit *HostDNSeth1 = new HostLineEdit("HostDNSeth1");
- HostDNSeth1->setLabel(QObject::tr("Name server"));
+ HostTextEditSetting *HostDNSeth1 = new HostTextEditSetting("HostDNSeth1");
+ HostDNSeth1->setLabel(QObject::tr("Name Server"));
HostDNSeth1->setValue("192.168.1.1");
HostDNSeth1->setHelpText(QObject::tr("Name server"));
-
- HostCheckBox *HostActiveonbooteth1 = new HostCheckBox("HostActiveonbooteth1");
+ HostCheckBoxSetting *HostActiveonbooteth1 = new HostCheckBoxSetting("HostActiveonbooteth1");
HostActiveonbooteth1->setLabel(QObject::tr("Active"));
HostActiveonbooteth1->setValue(false);
HostActiveonbooteth1->setHelpText(QObject::tr("Network is started on boot"));
- HostDefaulteth1 = new HostCheckBox("HostDefaulteth1");
+ HostDefaulteth1 = new HostCheckBoxSetting("HostDefaulteth1");
HostDefaulteth1->setLabel(QObject::tr("Default"));
HostDefaulteth1->setValue(false);
HostDefaulteth1->setHelpText(QObject::tr("Will be used as the primary interface"));
- connect(HostDefaulteth1, SIGNAL(valueChanged(bool)), this, SLOT(eth1_disable_others()));
- HostCheckBox *HostUseDHCPeth1 = new HostCheckBox("HostUseDHCPeth1");
- HostUseDHCPeth1 ->setLabel(QObject::tr("Static ip address"));
+ connect(HostDefaulteth1, SIGNAL(valueChanged(bool)), this,
+ SLOT(eth1_disable_others()));
+
+ HostCheckBoxSetting *HostUseDHCPeth1 = new HostCheckBoxSetting("HostUseDHCPeth1");
+ HostUseDHCPeth1 ->setLabel(QObject::tr("Static IP Address"));
HostUseDHCPeth1 ->setValue(false);
HostUseDHCPeth1 ->setHelpText(QObject::tr("Enable to use a static ip address, otherwise dhcp will be used."));
- wirelessbuttoneth1 = new TransButtonSetting();
- wirelessbuttoneth1->setLabel(tr("Wireless Settings"));
- connect(wirelessbuttoneth1, SIGNAL(pressed()), this, SLOT(eth1_wireless_settings()));
-
- ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false,false);
- settings1->addChild(HostActiveonbooteth1);
- settings1->addChild(HostDefaulteth1);
- settings1-> addChild(wirelessbuttoneth1);
+ wirelessbuttoneth1 = new ButtonStandardSetting("Wireless Settings");
+ connect(wirelessbuttoneth1, SIGNAL(pressed()), this,
+ SLOT(eth1_wireless_settings()));
- addChild(settings1);
+// ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false,false);
+ addChild(HostActiveonbooteth1);
+ addChild(HostDefaulteth1);
+ addChild(wirelessbuttoneth1);
+// addChild(settings1);
- Setting* dhcpEnabled = HostUseDHCPeth1;
- addChild(dhcpEnabled);
- setTrigger(dhcpEnabled);
+// Setting* dhcpEnabled = HostUseDHCPeth1;
+ addChild(HostUseDHCPeth1);
+// setTrigger(dhcpEnabled);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
- settings->addChild(HostIPeth1);
- settings->addChild(HostNETMASKeth1);
- settings->addChild(HostGWeth1);
- settings->addChild(HostDNSeth1);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
+ HostUseDHCPeth1->addTargetedChild("1", HostIPeth1);
+ HostUseDHCPeth1->addTargetedChild("1", HostNETMASKeth1);
+ HostUseDHCPeth1->addTargetedChild("1", HostGWeth1);
+ HostUseDHCPeth1->addTargetedChild("1", HostDNSeth1);
- addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
- addTarget("1", settings);
+// addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
+// addTarget("1", settings);
};
eth1options::eth1options()
{
- VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
- rec->setLabel(QObject::tr("Wireless configuration for eth1"));
+// VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
+ GroupSetting* rec = new GroupSetting;
+ rec->setLabel(QObject::tr("Wireless Configuration for eth1"));
+ //rec->setUseLabel(true);
rec->addChild(new eth1_settings);
addChild(rec);
}
@@ -1634,6 +1595,7 @@ void NetworkSettingseth1::eth1_disable_others()
emit eth1_is_default();
}
}
+
void NetworkSettingseth1::eth1_disabled()
{
HostDefaulteth1->setValue(0);
@@ -1642,7 +1604,7 @@ void NetworkSettingseth1::eth1_disabled()
void NetworkSettingseth1::eth1_wireless_settings(void)
{
eth1options eth1screen;
- eth1screen.exec();
+// eth1screen.exec();
}
void NetworkSettingseth1::eth1_wireless_disable()
@@ -1651,51 +1613,45 @@ void NetworkSettingseth1::eth1_wireless_disable()
}
-class wlan0_settings: public TriggeredConfigurationGroup {
+class wlan0_settings: public GroupSetting {
public:
- wlan0_settings():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
-
- HostComboBox *HOSTESSIDwlan0 = new HostComboBox("HOSTESSIDwlan0",true);
+ wlan0_settings(): GroupSetting()
+ {
+ HostComboBoxSetting *HOSTESSIDwlan0 = new HostComboBoxSetting("HOSTESSIDwlan0",true);
HOSTESSIDwlan0->setLabel(QObject::tr("ESSID"));
HOSTESSIDwlan0->addSelection("MythVantage");
HOSTESSIDwlan0->addSelection("home_lan");
HOSTESSIDwlan0->addSelection("type_it_here");
HOSTESSIDwlan0->setHelpText(QObject::tr("ESSID"));
addChild(HOSTESSIDwlan0);
- HostComboBox *HostUseEncryptionwlan0 = new HostComboBox("HostUseEncryptionwlan0");
+ HostComboBoxSetting *HostUseEncryptionwlan0 = new HostComboBoxSetting("HostUseEncryptionwlan0");
HostUseEncryptionwlan0->setLabel(QObject::tr("Encryption"));
HostUseEncryptionwlan0->setHelpText(QObject::tr("WPA, WEP, none"));
HostUseEncryptionwlan0->addSelection("none");
HostUseEncryptionwlan0->addSelection("WPA");
HostUseEncryptionwlan0->addSelection("WEP");
- Setting* HostUseEncryption = HostUseEncryptionwlan0;
- addChild(HostUseEncryption);
- setTrigger(HostUseEncryption);
+// Setting* HostUseEncryption = HostUseEncryptionwlan0;
+// addChild(HostUseEncryption);
+// setTrigger(HostUseEncryption);
- HostLineEdit *Hostkeywlan0 = new HostLineEdit("Hostkeywlan0");
- Hostkeywlan0->setLabel(QObject::tr("key"));
+ HostTextEditSetting *Hostkeywlan0 = new HostTextEditSetting("Hostkeywlan0");
+ Hostkeywlan0->setLabel(QObject::tr("Encryption Key"));
Hostkeywlan0->setHelpText(QObject::tr("Key to use for encryption"));
-
- ConfigurationGroup* settings = new GridConfigurationGroup(1,false);
- settings->addChild(Hostkeywlan0);
- addTarget("none", new GridConfigurationGroup(1,false));
- addTarget("WPA", settings);
- addTarget("WEP", settings);
+ addChild(Hostkeywlan0);
};
};
-NetworkSettingswlan0::NetworkSettingswlan0():
- TriggeredConfigurationGroup(false,false,false,false) {
+NetworkSettingswlan0::NetworkSettingswlan0()
+{
setLabel(QObject::tr("Network Settings"));
- HostIPwlan0 = new HostLineEdit("HostIPwlan0");
- HostIPwlan0->setLabel(QObject::tr("Ip address"));
+ HostIPwlan0 = new HostTextEditSetting("HostIPwlan0");
+ HostIPwlan0->setLabel(QObject::tr("IP Address"));
HostIPwlan0->setValue("192.168.1.12");
HostIPwlan0->setHelpText(QObject::tr("IP address of the new installation"));
- HostNETMASKwlan0 = new HostComboBox("HostNETMASKwlan0");
+ HostNETMASKwlan0 = new HostComboBoxSetting("HostNETMASKwlan0");
HostNETMASKwlan0->setLabel(QObject::tr("Netmask"));
HostNETMASKwlan0->addSelection("/0 0.0.0.0");
HostNETMASKwlan0->addSelection("/1 128.0.0.0");
@@ -1733,64 +1689,65 @@ NetworkSettingswlan0::NetworkSettingswlan0():
HostNETMASKwlan0->setHelpText(QObject::tr("Netmask"));
HostNETMASKwlan0->setValue(24);
- HostGWwlan0 = new HostLineEdit("HostGWwlan0");
+ HostGWwlan0 = new HostTextEditSetting("HostGWwlan0");
HostGWwlan0->setLabel(QObject::tr("Gateway"));
HostGWwlan0->setValue("192.168.1.1");
HostGWwlan0->setHelpText(QObject::tr("This is the default route"));
-
- HostDNSwlan0 = new HostLineEdit("HostDNSwlan0");
+ HostDNSwlan0 = new HostTextEditSetting("HostDNSwlan0");
HostDNSwlan0->setLabel(QObject::tr("Name server"));
HostDNSwlan0->setValue("192.168.1.1");
HostDNSwlan0->setHelpText(QObject::tr("Name server"));
-
- HostActiveonbootwlan0 = new HostCheckBox("HostActiveonbootwlan0");
+ HostActiveonbootwlan0 = new HostCheckBoxSetting("HostActiveonbootwlan0");
HostActiveonbootwlan0->setLabel(QObject::tr("Active"));
HostActiveonbootwlan0->setValue(false);
HostActiveonbootwlan0->setHelpText(QObject::tr("Network is started on boot"));
- HostDefaultwlan0 = new HostCheckBox("HostDefaultwlan0");
+ HostDefaultwlan0 = new HostCheckBoxSetting("HostDefaultwlan0");
HostDefaultwlan0->setLabel(QObject::tr("Default"));
HostDefaultwlan0->setValue(false);
HostDefaultwlan0->setHelpText(QObject::tr("Will be used as the primary interface"));
- connect(HostDefaultwlan0, SIGNAL(valueChanged(bool)), this, SLOT(wlan0_disable_others()));
+ connect(HostDefaultwlan0, SIGNAL(valueChanged(bool)), this,
+ SLOT(wlan0_disable_others()));
- HostUseDHCPwlan0 = new HostCheckBox("HostUseDHCPwlan0");
- HostUseDHCPwlan0 ->setLabel(QObject::tr("Static ip address"));
+ HostUseDHCPwlan0 = new HostCheckBoxSetting("HostUseDHCPwlan0");
+ HostUseDHCPwlan0 ->setLabel(QObject::tr("Static IP Address"));
HostUseDHCPwlan0 ->setValue(false);
HostUseDHCPwlan0 ->setHelpText(QObject::tr("Enable to use a static ip address, otherwise dhcp will be used."));
- wirelessbuttonwlan0 = new TransButtonSetting();
- wirelessbuttonwlan0->setLabel(tr("Wireless Settings"));
- connect(wirelessbuttonwlan0, SIGNAL(pressed()), this, SLOT(wlan0_wireless_settings()));
+ wirelessbuttonwlan0 = new ButtonStandardSetting("Wireless Settings");
+ connect(wirelessbuttonwlan0, SIGNAL(pressed()), this,
+ SLOT(wlan0_wireless_settings()));
- ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false,false);
- settings1->addChild(HostActiveonbootwlan0);
- settings1->addChild(HostDefaultwlan0);
- settings1-> addChild(wirelessbuttonwlan0);
- addChild(settings1);
+// ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false,false)
+ addChild(HostActiveonbootwlan0);
+ addChild(HostDefaultwlan0);
+ addChild(wirelessbuttonwlan0);
+// addChild(settings1);
- Setting* dhcpEnabled = HostUseDHCPwlan0;
- addChild(dhcpEnabled);
- setTrigger(dhcpEnabled);
+// Setting* dhcpEnabled = HostUseDHCPwlan0;
+ addChild(HostUseDHCPwlan0);
+// setTrigger(dhcpEnabled);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
- settings->addChild(HostIPwlan0);
- settings->addChild(HostNETMASKwlan0);
- settings->addChild(HostGWwlan0);
- settings->addChild(HostDNSwlan0);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
+ HostUseDHCPwlan0->addTargetedChild("1", HostIPwlan0);
+ HostUseDHCPwlan0->addTargetedChild("1", HostNETMASKwlan0);
+ HostUseDHCPwlan0->addTargetedChild("1", HostGWwlan0);
+ HostUseDHCPwlan0->addTargetedChild("1", HostDNSwlan0);
- addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
- addTarget("1", settings);
+// addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
+// addTarget("1", settings);
};
Wlan0options::Wlan0options()
{
- VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
- rec->setLabel(QObject::tr("Wireless configuration for wlan0"));
+// VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
+ GroupSetting* rec = new GroupSetting;
+ rec->setLabel(QObject::tr("Wireless Configuration for wlan0"));
+ //rec->setUseLabel(true);
rec->addChild(new wlan0_settings);
addChild(rec);
}
@@ -1804,75 +1761,63 @@ void NetworkSettingswlan0::wlan0_disable_others()
hostparm.ThisHostDefaultInterface="wlan0";
emit wlan0_is_default();
}
-
-
-
}
+
void NetworkSettingswlan0::wlan0_disabled()
{
HostDefaultwlan0->setValue(0);
}
-
void NetworkSettingswlan0::wlan0_wireless_settings(void)
{
Wlan0options wlan0screen;
- wlan0screen.exec();
+// wlan0screen.exec();
}
+
void NetworkSettingswlan0::wlan0_wireless_disable()
{
wirelessbuttonwlan0->setEnabled(false);
}
-
-class wlan1_settings: public TriggeredConfigurationGroup {
+class wlan1_settings: public GroupSetting {
public:
- wlan1_settings():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
-
- HostComboBox *HOSTESSIDwlan1 = new HostComboBox("HOSTESSIDwlan1",true);
+ wlan1_settings(): GroupSetting()
+ {
+ HostComboBoxSetting *HOSTESSIDwlan1 = new HostComboBoxSetting("HOSTESSIDwlan1");
HOSTESSIDwlan1->setLabel(QObject::tr("ESSID"));
HOSTESSIDwlan1->addSelection("MythVantage");
HOSTESSIDwlan1->addSelection("home_lan");
HOSTESSIDwlan1->addSelection("type_it_here");
HOSTESSIDwlan1->setHelpText(QObject::tr("ESSID"));
addChild(HOSTESSIDwlan1);
-
-
- HostComboBox *HostUseEncryptionwlan1 = new HostComboBox("HostUseEncryptionwlan1");
+ HostComboBoxSetting *HostUseEncryptionwlan1 = new HostComboBoxSetting("HostUseEncryptionwlan1");
HostUseEncryptionwlan1->setLabel(QObject::tr("Encryption"));
HostUseEncryptionwlan1->setHelpText(QObject::tr("WPA, WEP, none"));
HostUseEncryptionwlan1->addSelection("none");
HostUseEncryptionwlan1->addSelection("WPA");
HostUseEncryptionwlan1->addSelection("WEP");
- Setting* HostUseEncryption = HostUseEncryptionwlan1;
- addChild(HostUseEncryption);
- setTrigger(HostUseEncryption);
+// Setting* HostUseEncryption = HostUseEncryptionwlan1;
+// addChild(HostUseEncryption);
+// setTrigger(HostUseEncryption);
- HostLineEdit *Hostkeywlan1 = new HostLineEdit("Hostkeywlan1");
- Hostkeywlan1->setLabel(QObject::tr("key"));
+ HostTextEditSetting *Hostkeywlan1 = new HostTextEditSetting("Hostkeywlan1");
+ Hostkeywlan1->setLabel(QObject::tr("Encryption Key"));
Hostkeywlan1->setHelpText(QObject::tr("Key to use for encryption"));
-
- ConfigurationGroup* settings = new GridConfigurationGroup(1,false);
- settings->addChild(Hostkeywlan1);
- addTarget("none", new GridConfigurationGroup(1,false));
- addTarget("WPA", settings);
- addTarget("WEP", settings);
-
+ addChild(Hostkeywlan1);
};
};
-NetworkSettingswlan1::NetworkSettingswlan1():
- TriggeredConfigurationGroup(false,false,false,false) {
+NetworkSettingswlan1::NetworkSettingswlan1()
+{
setLabel(QObject::tr("Network Settings"));
- HostIPwlan1 = new HostLineEdit("HostIPwlan1");
- HostIPwlan1->setLabel(QObject::tr("Ip address"));
+ HostIPwlan1 = new HostTextEditSetting("HostIPwlan1");
+ HostIPwlan1->setLabel(QObject::tr("IP Address"));
HostIPwlan1->setValue("192.168.1.12");
HostIPwlan1->setHelpText(QObject::tr("IP address of the new installation"));
- HostNETMASKwlan1 = new HostComboBox("HostNETMASKwlan1");
+ HostNETMASKwlan1 = new HostComboBoxSetting("HostNETMASKwlan1");
HostNETMASKwlan1->setLabel(QObject::tr("Netmask"));
HostNETMASKwlan1->addSelection("/0 0.0.0.0");
HostNETMASKwlan1->addSelection("/1 128.0.0.0");
@@ -1910,64 +1855,64 @@ NetworkSettingswlan1::NetworkSettingswlan1():
HostNETMASKwlan1->setHelpText(QObject::tr("Netmask"));
HostNETMASKwlan1->setValue(24);
- HostGWwlan1 = new HostLineEdit("HostGWwlan1");
+ HostGWwlan1 = new HostTextEditSetting("HostGWwlan1");
HostGWwlan1->setLabel(QObject::tr("Gateway"));
HostGWwlan1->setValue("192.168.1.1");
HostGWwlan1->setHelpText(QObject::tr("This is the default route"));
-
- HostDNSwlan1 = new HostLineEdit("HostDNSwlan1");
+ HostDNSwlan1 = new HostTextEditSetting("HostDNSwlan1");
HostDNSwlan1->setLabel(QObject::tr("Name server"));
HostDNSwlan1->setValue("192.168.1.1");
HostDNSwlan1->setHelpText(QObject::tr("Name server"));
-
- HostActiveonbootwlan1 = new HostCheckBox("HostActiveonbootwlan1");
+ HostActiveonbootwlan1 = new HostCheckBoxSetting("HostActiveonbootwlan1");
HostActiveonbootwlan1->setLabel(QObject::tr("Active"));
HostActiveonbootwlan1->setValue(false);
HostActiveonbootwlan1->setHelpText(QObject::tr("Network is started on boot"));
- HostUseDHCPwlan1 = new HostCheckBox("HostUseDHCPwlan1");
+ HostUseDHCPwlan1 = new HostCheckBoxSetting("HostUseDHCPwlan1");
HostUseDHCPwlan1 ->setLabel(QObject::tr("Static ip address"));
HostUseDHCPwlan1 ->setValue(false);
HostUseDHCPwlan1 ->setHelpText(QObject::tr("Enable to use a static ip address, otherwise dhcp will be used."));
- wirelessbuttonwlan1 = new TransButtonSetting();
- wirelessbuttonwlan1->setLabel(tr("Wireless Settings"));
- connect(wirelessbuttonwlan1, SIGNAL(pressed()), this, SLOT(wlan1_wireless_settings()));
+ wirelessbuttonwlan1 = new ButtonStandardSetting("Wireless Settings");
+ connect(wirelessbuttonwlan1, SIGNAL(pressed()), this,
+ SLOT(wlan1_wireless_settings()));
- HostDefaultwlan1 = new HostCheckBox("HostDefaultwlan1");
+ HostDefaultwlan1 = new HostCheckBoxSetting("HostDefaultwlan1");
HostDefaultwlan1->setLabel(QObject::tr("Default"));
HostDefaultwlan1->setValue(false);
HostDefaultwlan1->setHelpText(QObject::tr("Will be used as the primary interface"));
- connect(HostDefaultwlan1, SIGNAL(valueChanged(bool)), this, SLOT(wlan1_disable_others()));
-
+ connect(HostDefaultwlan1, SIGNAL(valueChanged(bool)), this,
+ SLOT(wlan1_disable_others()));
- ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false, false);
- settings1->addChild(HostActiveonbootwlan1);
- settings1->addChild(HostDefaultwlan1);
- settings1-> addChild(wirelessbuttonwlan1);
+// ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false, false);
+ addChild(HostActiveonbootwlan1);
+ addChild(HostDefaultwlan1);
+ addChild(wirelessbuttonwlan1);
- addChild(settings1);
+// addChild(settings1);
- Setting* dhcpEnabled = HostUseDHCPwlan1;
- addChild(dhcpEnabled);
- setTrigger(dhcpEnabled);
+// Setting* dhcpEnabled = HostUseDHCPwlan1;
+ addChild(HostDefaultwlan1);
+// setTrigger(dhcpEnabled);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
- settings->addChild(HostIPwlan1);
- settings->addChild(HostNETMASKwlan1);
- settings->addChild(HostGWwlan1);
- settings->addChild(HostDNSwlan1);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
+ HostDefaultwlan1->addTargetedChild("1", HostIPwlan1);
+ HostDefaultwlan1->addTargetedChild("1", HostNETMASKwlan1);
+ HostDefaultwlan1->addTargetedChild("1", HostGWwlan1);
+ HostDefaultwlan1->addTargetedChild("1", HostDNSwlan1);
- addTarget("0", new VerticalConfigurationGroup(true));
- addTarget("1", settings);
+// addTarget("0", new VerticalConfigurationGroup(true));
+// addTarget("1", settings);
};
wlan1options::wlan1options()
{
- VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
- rec->setLabel(QObject::tr("Wireless configuration for wlan1"));
+// VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
+ GroupSetting* rec = new GroupSetting;
+ rec->setLabel(QObject::tr("Wireless Configuration for wlan1"));
+ //rec->setUseLabel(true);
rec->addChild(new wlan1_settings);
addChild(rec);
}
@@ -1986,6 +1931,7 @@ void NetworkSettingswlan1::wlan1_disabled()
{
HostDefaultwlan1->setValue(0);
}
+
void NetworkSettingswlan1::wlan1_wireless_disable()
{
wirelessbuttonwlan1->setEnabled(false);
@@ -1994,17 +1940,16 @@ void NetworkSettingswlan1::wlan1_wireless_disable()
void NetworkSettingswlan1::wlan1_wireless_settings(void)
{
wlan1options wlan1screen;
- wlan1screen.exec();
+// wlan1screen.exec();
}
//---
-class ath0_settings: public TriggeredConfigurationGroup {
+class ath0_settings: public GroupSetting {
public:
- ath0_settings():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
-
- HostComboBox *HOSTESSIDath0 = new HostComboBox("HOSTESSIDath0",true);
+ ath0_settings(): GroupSetting()
+ {
+ HostComboBoxSetting *HOSTESSIDath0 = new HostComboBoxSetting("HOSTESSIDath0",true);
HOSTESSIDath0->setLabel(QObject::tr("ESSID"));
HOSTESSIDath0->addSelection("MythVantage");
HOSTESSIDath0->addSelection("home_lan");
@@ -2012,41 +1957,34 @@ public:
HOSTESSIDath0->setHelpText(QObject::tr("ESSID"));
addChild(HOSTESSIDath0);
- HostComboBox *HostUseEncryptionath0 = new HostComboBox("HostUseEncryptionath0");
+ HostComboBoxSetting *HostUseEncryptionath0 = new HostComboBoxSetting("HostUseEncryptionath0");
HostUseEncryptionath0->setLabel(QObject::tr("Encryption"));
HostUseEncryptionath0->setHelpText(QObject::tr("WPA, WEP, none"));
HostUseEncryptionath0->addSelection("none");
HostUseEncryptionath0->addSelection("WPA");
HostUseEncryptionath0->addSelection("WEP");
- Setting* HostUseEncryption = HostUseEncryptionath0;
- addChild(HostUseEncryption);
- setTrigger(HostUseEncryption);
+// Setting* HostUseEncryption = HostUseEncryptionath0;
+// addChild(HostUseEncryption);
+// setTrigger(HostUseEncryption);
- HostLineEdit *Hostkeyath0 = new HostLineEdit("Hostkeyath0");
- Hostkeyath0->setLabel(QObject::tr("key"));
+ HostTextEditSetting *Hostkeyath0 = new HostTextEditSetting("Hostkeyath0");
+ Hostkeyath0->setLabel(QObject::tr("Encryption Key"));
Hostkeyath0->setHelpText(QObject::tr("Key to use for encryption"));
-
- ConfigurationGroup* settings = new GridConfigurationGroup(1,false);
- settings->addChild(Hostkeyath0);
- addTarget("none", new GridConfigurationGroup(1,false));
- addTarget("WPA", settings);
- addTarget("WEP", settings);
- //-
-
+ addChild(Hostkeyath0);
};
};
-NetworkSettingsath0::NetworkSettingsath0():
- TriggeredConfigurationGroup(false,false,false,false) {
+NetworkSettingsath0::NetworkSettingsath0()
+{
setLabel(QObject::tr("Network Settings"));
- HostLineEdit *HostIPath0 = new HostLineEdit("HostIPath0");
- HostIPath0->setLabel(QObject::tr("Ip address"));
+ HostTextEditSetting *HostIPath0 = new HostTextEditSetting("HostIPath0");
+ HostIPath0->setLabel(QObject::tr("IP Address"));
HostIPath0->setValue("192.168.1.12");
HostIPath0->setHelpText(QObject::tr("IP address of the new installation"));
- HostComboBox *HostNETMASKath0 = new HostComboBox("HostNETMASKath0");
+ HostComboBoxSetting *HostNETMASKath0 = new HostComboBoxSetting("HostNETMASKath0");
HostNETMASKath0->setLabel(QObject::tr("Netmask"));
HostNETMASKath0->addSelection("/0 0.0.0.0");
HostNETMASKath0->addSelection("/1 128.0.0.0");
@@ -2084,63 +2022,65 @@ NetworkSettingsath0::NetworkSettingsath0():
HostNETMASKath0->setHelpText(QObject::tr("Netmask"));
HostNETMASKath0->setValue(24);
- HostLineEdit *HostGWath0 = new HostLineEdit("HostGWath0");
+ HostTextEditSetting *HostGWath0 = new HostTextEditSetting("HostGWath0");
HostGWath0->setLabel(QObject::tr("Gateway"));
HostGWath0->setValue("192.168.1.1");
HostGWath0->setHelpText(QObject::tr("This is the default route"));
- HostLineEdit *HostDNSath0 = new HostLineEdit("HostDNSath0");
+ HostTextEditSetting *HostDNSath0 = new HostTextEditSetting("HostDNSath0");
HostDNSath0->setLabel(QObject::tr("Name server"));
HostDNSath0->setValue("192.168.1.1");
HostDNSath0->setHelpText(QObject::tr("Name server"));
- HostCheckBox *HostActiveonbootath0 = new HostCheckBox("HostActiveonbootath0");
+ HostCheckBoxSetting *HostActiveonbootath0 = new HostCheckBoxSetting("HostActiveonbootath0");
HostActiveonbootath0->setLabel(QObject::tr("Active"));
HostActiveonbootath0->setValue(false);
HostActiveonbootath0->setHelpText(QObject::tr("Network is started on boot"));
- HostDefaultath0 = new HostCheckBox("HostDefaultath0");
+ HostDefaultath0 = new HostCheckBoxSetting("HostDefaultath0");
HostDefaultath0->setLabel(QObject::tr("Default"));
HostDefaultath0->setValue(false);
HostDefaultath0->setHelpText(QObject::tr("Will be used as the primary interface"));
- connect(HostDefaultath0, SIGNAL(valueChanged(bool)), this, SLOT(ath0_disable_others()));
+ connect(HostDefaultath0, SIGNAL(valueChanged(bool)), this,
+ SLOT(ath0_disable_others()));
- HostCheckBox *HostUseDHCPath0 = new HostCheckBox("HostUseDHCPath0");
+ HostCheckBoxSetting *HostUseDHCPath0 = new HostCheckBoxSetting("HostUseDHCPath0");
HostUseDHCPath0 ->setLabel(QObject::tr("Static ip address"));
HostUseDHCPath0 ->setValue(false);
HostUseDHCPath0 ->setHelpText(QObject::tr("Enable to use a static ip address, otherwise dhcp will be used."));
- wirelessbuttonath0 = new TransButtonSetting();
- wirelessbuttonath0->setLabel(tr("Wireless Settings"));
- connect(wirelessbuttonath0, SIGNAL(pressed()), this, SLOT(ath0_wireless_settings()));
+ wirelessbuttonath0 = new ButtonStandardSetting("Wireless Settings");
+ connect(wirelessbuttonath0, SIGNAL(pressed()), this,
+ SLOT(ath0_wireless_settings()));
- ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false,false);
- settings1->addChild(HostActiveonbootath0);
- settings1->addChild(HostDefaultath0);
- settings1-> addChild(wirelessbuttonath0);
+// ConfigurationGroup* settings1 = new GridConfigurationGroup(3,false, false, false,false);
+ addChild(HostActiveonbootath0);
+ addChild(HostDefaultath0);
+ addChild(wirelessbuttonath0);
- addChild(settings1);
+// addChild(settings1);
- Setting* dhcpEnabled = HostUseDHCPath0;
- addChild(dhcpEnabled);
- setTrigger(dhcpEnabled);
+// Setting* dhcpEnabled = HostUseDHCPath0;
+ addChild(HostUseDHCPath0);
+// setTrigger(dhcpEnabled);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
- settings->addChild(HostIPath0);
- settings->addChild(HostNETMASKath0);
- settings->addChild(HostGWath0);
- settings->addChild(HostDNSath0);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
+ HostUseDHCPath0->addTargetedChild("1", HostIPath0);
+ HostUseDHCPath0->addTargetedChild("1", HostNETMASKath0);
+ HostUseDHCPath0->addTargetedChild("1", HostGWath0);
+ HostUseDHCPath0->addTargetedChild("1", HostDNSath0);
- addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
- addTarget("1", settings);
+// addTarget("0", new VerticalConfigurationGroup(false,false,false,false));
+// addTarget("1", settings);
};
ath0options::ath0options()
{
-
- VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
- rec->setLabel(QObject::tr("Wireless configuration for ath0"));
+// VerticalConfigurationGroup* rec = new VerticalConfigurationGroup(false);
+ GroupSetting* rec = new GroupSetting;
+ rec->setLabel(QObject::tr("Wireless Configuration for ath0"));
+ //rec->setUseLabel(true);
rec->addChild(new ath0_settings);
addChild(rec);
}
@@ -2155,6 +2095,7 @@ void NetworkSettingsath0::ath0_disable_others()
emit ath0_is_default();
}
}
+
void NetworkSettingsath0::ath0_disabled()
{
HostDefaultath0->setValue(0);
@@ -2163,7 +2104,7 @@ void NetworkSettingsath0::ath0_disabled()
void NetworkSettingsath0::ath0_wireless_settings(void)
{
ath0options ath0screen;
- ath0screen.exec();
+// ath0screen.exec();
}
void NetworkSettingsath0::ath0_wireless_disable()
@@ -2175,14 +2116,15 @@ void NetworkSettingsath0::ath0_wireless_disable()
//--
class NetworkSettingsFrame:
- public TriggeredConfigurationGroup {
+ public GroupSetting {
public:
- NetworkSettingsFrame():
- TriggeredConfigurationGroup(false, false, true, true,false, false, true, true) {
- setLabel(QObject::tr("Network Settings (1/2)"));
- Setting* netdevice = HostNetDevice();
+ NetworkSettingsFrame(): GroupSetting()
+ {
+ setLabel(QObject::tr("Network Settings"));
+// Setting* netdevice = HostNetDevice();
+ HostComboBoxSetting* netdevice = HostNetDevice();
addChild(netdevice);
- setTrigger(netdevice);
+// setTrigger(netdevice);
NetworkSettingswlan0 *Nwlan0 = new NetworkSettingswlan0 ;
NetworkSettingswlan1 *Nwlan1 = new NetworkSettingswlan1 ;
@@ -2267,67 +2209,67 @@ public:
connect(Nath0, SIGNAL(ath0_is_default(void)), Neth0, SLOT(eth0_disabled()));
- HostLineEdit *HostMTUeth0 = new HostLineEdit("HostMTUeth0");
+ HostTextEditSetting *HostMTUeth0 = new HostTextEditSetting("HostMTUeth0");
HostMTUeth0->setLabel(QObject::tr("MTU"));
HostMTUeth0->setValue("");
HostMTUeth0->setHelpText(QObject::tr("Leave this blank for default values. Changing this setting can have adverse affects, use with caution. Not all values will be supported by the device."));
- ConfigurationGroup* settingseth0 = new GridConfigurationGroup(1,false, false, false, false);
- settingseth0->addChild(Neth0);
- settingseth0->addChild(HostMTUeth0);
+// ConfigurationGroup* settingseth0 = new GridConfigurationGroup(1,false, false, false, false);
+ addChild(Neth0);
+ addChild(HostMTUeth0);
- HostLineEdit *HostMTUeth1 = new HostLineEdit("HostMTUeth1");
+ HostTextEditSetting *HostMTUeth1 = new HostTextEditSetting("HostMTUeth1");
HostMTUeth1->setLabel(QObject::tr("MTU"));
HostMTUeth1->setValue("");
HostMTUeth1->setHelpText(QObject::tr("Leave this blank for default values. Changing this setting can have adverse affects, use with caution. Not all values will be supported by the device."));
- ConfigurationGroup* settingseth1 = new GridConfigurationGroup(1,false, false, true, true);
- settingseth1->addChild(Neth1);
- settingseth1->addChild(HostMTUeth1);
+// ConfigurationGroup* settingseth1 = new GridConfigurationGroup(1,false, false, true, true);
+ addChild(Neth1);
+ addChild(HostMTUeth1);
- HostLineEdit *HostMTUwlan0 = new HostLineEdit("HostMTUwlan0");
+ HostTextEditSetting *HostMTUwlan0 = new HostTextEditSetting("HostMTUwlan0");
HostMTUwlan0->setLabel(QObject::tr("MTU"));
HostMTUwlan0->setValue("");
HostMTUwlan0->setHelpText(QObject::tr("Leave this blank for default values. Changing this setting can have adverse affects, use with caution. Not all values will be supported by the device."));
- ConfigurationGroup* settingswlan0 = new GridConfigurationGroup(1,false, false, false, false);
- settingswlan0->addChild(Nwlan0);
- settingswlan0->addChild(HostMTUwlan0);
+// ConfigurationGroup* settingswlan0 = new GridConfigurationGroup(1,false, false, false, false);
+ addChild(Nwlan0);
+ addChild(HostMTUwlan0);
- HostLineEdit *HostMTUwlan1 = new HostLineEdit("HostMTUwlan1");
+ HostTextEditSetting *HostMTUwlan1 = new HostTextEditSetting("HostMTUwlan1");
HostMTUwlan1->setLabel(QObject::tr("MTU"));
HostMTUwlan1->setValue("");
HostMTUwlan1->setHelpText(QObject::tr("Leave this blank for default values. Changing this setting can have adverse affects, use with caution. Not all values will be supported by the device."));
- ConfigurationGroup* settingswlan1 = new GridConfigurationGroup(1,false, false, false, false);
- settingswlan1->addChild(Nwlan1);
- settingswlan1->addChild(HostMTUwlan1);
+// ConfigurationGroup* settingswlan1 = new GridConfigurationGroup(1,false, false, false, false);
+ addChild(Nwlan1);
+ addChild(HostMTUwlan1);
- HostLineEdit *HostMTUath0 = new HostLineEdit("HostMTUath0");
+ HostTextEditSetting *HostMTUath0 = new HostTextEditSetting("HostMTUath0");
HostMTUath0->setLabel(QObject::tr("MTU"));
HostMTUath0->setValue("");
HostMTUath0->setHelpText(QObject::tr("Leave this blank for default values. Changing this setting can have adverse affects, use with caution. Not all values will be supported by the device."));
- ConfigurationGroup* settingsath0 = new GridConfigurationGroup(1,false, false, false, false);
- settingsath0->addChild(Nath0);
- settingsath0->addChild(HostMTUath0);
-
+// ConfigurationGroup* settingsath0 = new GridConfigurationGroup(1,false, false, false, false);
+ addChild(Nath0);
+ addChild(HostMTUath0);
+/*
addTarget("wlan0", settingswlan0);
addTarget("wlan1", settingswlan1);
addTarget("eth0", settingseth0);
addTarget("eth1", settingseth1);
addTarget("ath0", settingsath0);
+*/
};
};
-NetworkOptionsFrame::NetworkOptionsFrame():
- VerticalConfigurationGroup(false,false,false,false)
+NetworkOptionsFrame::NetworkOptionsFrame(): GroupSetting()
{
setLabel(QObject::tr("Network Settings (2/2)"));
- HostMyhostname = new HostComboBox("HostMyhostname",true);
+ HostMyhostname = new HostComboBoxSetting("HostMyhostname",true);
HostMyhostname->setLabel(QObject::tr("Hostname"));
HostMyhostname->addSelection("Envy");
HostMyhostname->addSelection("Greed");
@@ -2346,22 +2288,19 @@ NetworkOptionsFrame::NetworkOptionsFrame():
HostMyhostname->addSelection("type_hostname_here");
HostMyhostname->setHelpText(QObject::tr("The hostname must resolve via DNS. If DNS is not available then append .local to the end of the hostname. When using .local, names must not include an additional ."));
- FetchDhcpHostnameButton = new TransButtonSetting();
- FetchDhcpHostnameButton ->setLabel(tr("Ask DHCP server for hostname"));
- connect(FetchDhcpHostnameButton, SIGNAL(pressed()), this, SLOT(fetch_hostname()));
+ FetchDhcpHostnameButton = new ButtonStandardSetting("Ask DHCP Server for Hostname");
+ connect(FetchDhcpHostnameButton, SIGNAL(pressed()), this,
+ SLOT(fetch_hostname()));
- networklabel = new TransLabelSetting();
QString labelstring;
- labelstring = "Will use " + hostparm.ThisHostDefaultInterface + " to check for hostname";
- networklabel->setValue(labelstring);
+ labelstring = "Will use " + hostparm.ThisHostDefaultInterface + " to check for hostname.";
+ FetchDhcpHostnameButton->setHelpText(labelstring);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
- settings->addChild(HostMyhostname);
- settings->addChild(networklabel);
- settings->addChild(FetchDhcpHostnameButton);
-
- addChild(settings);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false, false,false,false);
+ addChild(HostMyhostname);
+ addChild(FetchDhcpHostnameButton);
+// addChild(settings);
}
QString NetworkOptionsFrame::find_hostname()
@@ -2402,23 +2341,25 @@ void NetworkOptionsFrame::fetch_hostname()
new_host=find_hostname();
if ( new_host != "null" )
{
- networklabel->setValue("Updated the hostname.");
+// networklabel->setValue("Updated the hostname.");
+// FIXME Need dialog ok box
HostMyhostname->addSelection(new_host);
HostMyhostname->setValue(new_host);
}
- else
- networklabel->setValue("DHCP server did not return a hostname.");
+// else
+// FIXME Need dialog ok box
+// networklabel->setValue("DHCP server did not return a hostname.");
}
-
-static HostCheckBox *HostAutodown()
+/*
+static HostCheckBoxSetting *HostAutodown()
{
- HostCheckBox *gc = new HostCheckBox("HostAutodown");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostAutodown");
gc->setLabel(QObject::tr("Turn off machine at a specified time"));
gc->setValue(false);
gc->setHelpText(QObject::tr("Will turn off this system."));
return gc;
};
-
+*/
//static HostSpinBox *HostWakeupTime()
//{
// HostSpinBox *gc = new HostSpinBox("HostWakeupTime", -1, 23, 1, true);
@@ -2427,7 +2368,7 @@ static HostCheckBox *HostAutodown()
// gc->setHelpText(QObject::tr("Select the hour to auto poweron this system. Use -1 to disable" ));
// return gc;
//}
-
+/*
static HostSpinBox *HostShutdownTime()
{
HostSpinBox *gc = new HostSpinBox("HostShutdownTime", -1, 23, 1, true);
@@ -2437,29 +2378,29 @@ static HostSpinBox *HostShutdownTime()
return gc;
}
-static HostSpinBox *HostShutdownTime2()
+static HostSpinBoxSetting *HostShutdownTime2()
{
- HostSpinBox *gc = new HostSpinBox("HostShutdownTime2", -1, 23, 1, true);
+ HostSpinBoxSetting *gc = new HostSpinBoxSetting("HostShutdownTime2", -1, 23, 1, true);
gc->setLabel(QObject::tr("2nd auto Shutdown time"));
gc->setValue(2);
gc->setHelpText(QObject::tr("Select the hour to poweroff this syste. Times are in 24hour format. Use -1 to disable" ));
return gc;
}
+*/
-
-//static HostCheckBox *HostUseWOL()
+//static HostCheckBoxSetting *HostUseWOL()
//{
-// HostCheckBox *gc = new HostCheckBox("HostUseWOL");
+// HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseWOL");
// gc->setLabel(QObject::tr("Use Wake on Lan to turn on system"));
// gc->setValue(true);
// gc->setHelpText(QObject::tr("Unless you know what your doing leave it checked"));
// return gc;
//};
-//static HostCheckBox *HostUseNVRAM()
+//static HostCheckBoxSetting *HostUseNVRAM()
//{
-// HostCheckBox *gc = new HostCheckBox("HostUseNVRAM");
+// HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseNVRAM");
// gc->setLabel(QObject::tr("Use nvram to turn on system"));
// gc->setValue(true);
// gc->setHelpText(QObject::tr("Leaved checked unless nvram causes problems."));
@@ -2467,9 +2408,9 @@ static HostSpinBox *HostShutdownTime2()
//};
-static HostCheckBox *HostUseXLargeMouse()
+static HostCheckBoxSetting *HostUseXLargeMouse()
{
- HostCheckBox *gc = new HostCheckBox("HostUseXLargeMouse");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostUseXLargeMouse");
gc->setLabel(QObject::tr("Large Mouse Pointer"));
gc->setValue(true);
gc->setHelpText(QObject::tr("Use an extra large mouse pointer. This takes effect the next time the frontend is started."));
@@ -2477,12 +2418,12 @@ static HostCheckBox *HostUseXLargeMouse()
};
-
-class WakeSettings: public TriggeredConfigurationGroup {
+/*
+class WakeSettings: public GroupSetting {
public:
WakeSettings():
- TriggeredConfigurationGroup(true) {
+ GroupSetting(true) {
setLabel(QObject::tr("Shutdown Settings"));
Setting* Autodown = HostAutodown();
addChild(Autodown);
@@ -2497,78 +2438,78 @@ public:
addTarget("1", settings);
};
};
+*/
-class Frontend_settings_group: public TriggeredConfigurationGroup {
+class Frontend_settings_group: public GroupSetting {
public:
- Frontend_settings_group():
- TriggeredConfigurationGroup(true,false,true,true,false,false,false,true) {
- Setting* fe = HostRunFrontend();
+ Frontend_settings_group(): GroupSetting()
+{
+ HostCheckBoxSetting* fe = HostRunFrontend();
addChild(fe);
- setTrigger(fe);
- ConfigurationGroup* setting1 = new GridConfigurationGroup(2,false);
+// ConfigurationGroup* setting1 = new GridConfigurationGroup(2,false);
- setting1->addChild(HostUseXLargeMouse());
- setting1->addChild(HostUsemythfrontend());
+ fe->addTargetedChild("1", HostUseXLargeMouse());
+ fe->addTargetedChild("1", HostUsemythfrontend());
// setting1->addChild(HostXres());
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
- settings->addChild(setting1);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
+// settings->addChild(setting1);
// settings->addChild(new HostRemoteType);
- addTarget("0", new VerticalConfigurationGroup(false));
- addTarget("1", settings);
+// addTarget("0", new VerticalConfigurationGroup(false));
+// addTarget("1", settings);
};
};
-SystemtypeGroup::SystemtypeGroup(): TriggeredConfigurationGroup(true,true,true,true,true,true,true,true) {
+SystemtypeGroup::SystemtypeGroup()
+{
setLabel(QObject::tr("System Type"));
- HostSystemType = new HostComboBox("HostSystemType");
+ HostSystemType = new HostComboBoxSetting("HostSystemType");
HostSystemType->setLabel(QObject::tr("System Type"));
HostSystemType->addSelection("Master_backend");
HostSystemType->addSelection("Frontend_only");
// HostSystemType->addSelection("Standalone");
HostSystemType->addSelection("Slave_backend");
- if ( ((gCoreContext->GetSetting("HostaccesshostypeSystemtype")) == "0" ))
+ if ( ((gCoreContext->GetSetting("HostaccesshostypeSystemtype")) == "0" ) )
HostSystemType->setEnabled(false);
addChild(HostSystemType);
- setTrigger(HostSystemType);
- ConfigurationGroup* fe1 = new GridConfigurationGroup(2,false,false,true,true);
- fe1->addChild(HostUseXLargeMouse());
- fe1->addChild(HostUsemythfrontend());
+// ConfigurationGroup* fe1 = new GridConfigurationGroup(2,false,false,true,true);
+ HostSystemType->addTargetedChild("Master_backend", HostUseXLargeMouse());
+ HostSystemType->addTargetedChild("Master_backend", HostUsemythfrontend());
- ConfigurationGroup* standalone = new VerticalConfigurationGroup(false,false,true,true);
+// ConfigurationGroup* standalone = new VerticalConfigurationGroup(false,false,true,true);
// standalone->addChild(HostXres());
//FIXME
// standalone->addChild(new HostRemoteType);
- standalone->addChild(fe1);
- ConfigurationGroup* frontend = new VerticalConfigurationGroup(false,false,true,true);
- frontend->addChild(HostMysqlserverip_listbox());
+// ConfigurationGroup* frontend = new VerticalConfigurationGroup(false,false,true,true);
+ HostSystemType->addTargetedChild("Frontend_only", HostMysqlserverip_listbox());
// frontend->addChild(HostXres());
//FIXME
// frontend->addChild(new HostRemoteType);
- frontend->addChild(fe1);
+ HostSystemType->addTargetedChild("Frontend_only", HostUseXLargeMouse());
+ HostSystemType->addTargetedChild("Frontend_only", HostUsemythfrontend());
- ConfigurationGroup* backend = new VerticalConfigurationGroup(false,false,false,false);
- backend->addChild( new Frontend_settings_group);
+// ConfigurationGroup* backend = new VerticalConfigurationGroup(false,false,false,false);
+ HostSystemType->addTargetedChild("Slave_backend", new Frontend_settings_group);
- ConfigurationGroup* slave = new VerticalConfigurationGroup(false,false,true,true);
- slave->addChild(HostMysqlserverip_listbox());
- slave->addChild( new Frontend_settings_group);
+// ConfigurationGroup* slave = new VerticalConfigurationGroup(false,false,true,true);
+ HostSystemType->addTargetedChild("Slave_backend", HostMysqlserverip_listbox());
+ HostSystemType->addTargetedChild("Slave_backend", new Frontend_settings_group);
- addTarget("Standalone", standalone);
- addTarget("Frontend_only", frontend);
- addTarget("Master_backend", backend);
- addTarget("Slave_backend", slave);
- connect(HostSystemType, SIGNAL(valueChanged(const QString&)),
- this, SLOT(SystemtypeHelp()));
+// addTarget("Standalone", standalone);
+// addTarget("Frontend_only", frontend);
+// addTarget("Master_backend", backend);
+// addTarget("Slave_backend", slave);
+// connect(HostSystemType, SIGNAL(valueChanged(const QString&)), this,
+// SLOT(SystemtypeHelp()));
};
@@ -2639,70 +2580,70 @@ void SystemtypeGroup::SystemtypeHelp(void)
//
// }
-class AdvancedSettings: public TriggeredConfigurationGroup {
+class AdvancedSettings: public GroupSetting {
public:
- AdvancedSettings():
- TriggeredConfigurationGroup(true,true,true,true,true,true,true,true)
+ AdvancedSettings(): GroupSetting()
{
-
setLabel(QObject::tr("Advanced Settings (1/2)"));
- Setting* Autodown = HostAutodown();
- setTrigger(Autodown);
- hostparm.ThisSystemType = gCoreContext->GetSetting("HostSystemType");
- ConfigurationGroup *checkbox = new GridConfigurationGroup(2,false);
- checkbox->addChild(HostServiceMythWEB());
+// Setting* Autodown = HostAutodown();
+// setTrigger(Autodown);
+ hostparm.ThisSystemType = gCoreContext->GetSetting("HostSystemType");
+// ConfigurationGroup *checkbox = new GridConfigurationGroup(2,false);
+ // addChild(HostServiceMythWEB());
// checkbox->addChild(HostServiceNFS());
- checkbox->addChild(Hostbootsplash());
- checkbox->addChild(HostncidClient());
+ // addChild(Hostbootsplash());
+ //addChild(HostncidClient());
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
- if ( hostparm.ThisSystemType == "Standalone" )
- {
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
+// if ( hostparm.ThisSystemType == "Standalone" )
+// {
// smb_busy_box();
- settings->addChild(new NCIDsettings);
+// settings->addChild(new NCIDsettings);
// settings->addChild(new SAMBAsettings);
// checkbox->addChild(HostServiceRRD() );
- settings->addChild(checkbox) ;
- }
- else if (hostparm.ThisSystemType == "Master_backend" )
+// settings->addChild(checkbox) ;
+// }
+ if ( hostparm.ThisSystemType == "Master_backend" )
{
// smb_busy_box();
// checkbox->addChild(GlobalPKG_MIRROR());
- settings->addChild(new NCIDsettings);
+ //settings->addChild(new NCIDsettings);
// settings->addChild(new SAMBAsettings);
// checkbox->addChild(HostServiceRRD() );
- settings->addChild(checkbox) ;
+ addChild(HostServiceMythWEB());
+ addChild(Hostbootsplash());
+// addChild(checkbox) ;
}
- else if (hostparm.ThisSystemType == "Frontend_only" )
+ else if ( hostparm.ThisSystemType == "Frontend_only" )
{
- settings->addChild(Hostbootsplash());
- settings->addChild(HostncidClient());
+ addChild(Hostbootsplash());
+ //settings->addChild(HostncidClient());
// settings->addChild(HostServiceRRD() );
}
- else if (hostparm.ThisSystemType == "Slave_backend" )
+ else if ( hostparm.ThisSystemType == "Slave_backend" )
{
- settings->addChild(Hostbootsplash());
- settings->addChild(HostncidClient());
+ addChild(Hostbootsplash());
+ //settings->addChild(HostncidClient());
// settings->addChild(HostServiceRRD() );
// if ( (gCoreContext->GetSetting("GlobalPKG_MIRROR")) == "1")
// settings->addChild(HostPKG_MIRROR());
};
- addTarget("", settings);
+ //addTarget("", settings);
};
};
-class AdvancedSettings_2: public TriggeredConfigurationGroup {
+class AdvancedSettings_2: public GroupSetting {
public:
- AdvancedSettings_2():
- TriggeredConfigurationGroup(true,true,true,true,true,true,true,true) {
+ AdvancedSettings_2(): GroupSetting()
+ {
setLabel(QObject::tr("Advanced Settings (2/2)"));
- Setting* Autodown = HostAutodown();
- setTrigger(Autodown);
- hostparm.ThisSystemType = gCoreContext->GetSetting("HostSystemType");
+// Setting* Autodown = HostAutodown();
+// setTrigger(Autodown);
+ hostparm.ThisSystemType = gCoreContext->GetSetting("HostSystemType");
/*
ConfigurationGroup *checkbox = new GridConfigurationGroup(2,false);
checkbox->addChild(HostServiceMythWEB());
@@ -2710,76 +2651,76 @@ public:
checkbox->addChild(Hostbootsplash());
checkbox->addChild(HostncidClient());*/
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
if ( hostparm.ThisSystemType == "Standalone" )
{
- settings->addChild(HostRunDHCP());
- settings->addChild(HostBEWait());
+ addChild(HostRunDHCP());
+ addChild(HostBEWait());
//settings->addChild(new Evroutersettings);
}
else if (hostparm.ThisSystemType == "Master_backend" )
{
- settings->addChild(new Backupsettings);
- settings->addChild(HostRunDHCP());
- settings->addChild(HostBEWait());
+ addChild(new Backupsettings);
+ addChild(HostRunDHCP());
+ addChild(HostBEWait());
//settings->addChild(new Evroutersettings);
}
else if (hostparm.ThisSystemType == "Frontend_only" )
{
//settings->addChild(new Evroutersettings);
- settings->addChild(HostBEWait());
+ addChild(HostBEWait());
}
else if (hostparm.ThisSystemType == "Slave_backend" )
{
//settings->addChild(new Evroutersettings);
- settings->addChild(HostBEWait());
+ addChild(HostBEWait());
};
- addTarget("", settings);
+ //addTarget("", settings);
};
};
/*_______________________________Sound settings ____________________*/
-SoundSettings::SoundSettings():
- TriggeredConfigurationGroup(true,true,true,true,true,true,true,true) {
+SoundSettings::SoundSettings(): GroupSetting()
+ {
setLabel(QObject::tr("Audio Settings"));
- HostAudiotype = new HostComboBox("HostAudiotype",false);
- HostAudiotype->setLabel(QObject::tr("Sound Card Driver"));
- HostAudiotype->addSelection("OSS");
- HostAudiotype->addSelection("ALSA");
+// HostAudiotype = new HostComboBoxSetting("HostAudiotype",false);
+// HostAudiotype->setLabel(QObject::tr("Sound Card Driver"));
+// HostAudiotype->addSelection("OSS");
+// HostAudiotype->addSelection("ALSA");
- HostAudiotype->setHelpText(QObject::tr("Select the sound driver, ALSA or OSS." ) );
- addChild(HostAudiotype);
- setTrigger(HostAudiotype);
+// HostAudiotype->setHelpText(QObject::tr("Select the sound driver, ALSA or OSS." ) );
+// addChild(HostAudiotype);
+// setTrigger(HostAudiotype);
- HorizontalConfigurationGroup *lp = new HorizontalConfigurationGroup(false, false, true, true);
- HorizontalConfigurationGroup *lpalsa = new HorizontalConfigurationGroup(false, false, true, true);
+// HorizontalConfigurationGroup *lp = new HorizontalConfigurationGroup(false, false, true, true);
+// HorizontalConfigurationGroup *lpalsa = new HorizontalConfigurationGroup(false, false, true, true);
- TransButtonSetting *LoadOSSbutton = new TransButtonSetting();
- LoadOSSbutton->setLabel(tr("Load OSS Driver"));
- TransButtonSetting *LoadALSAbutton = new TransButtonSetting();
- LoadALSAbutton->setLabel(tr("Load ALSA Driver"));
+// TransButtonSetting *LoadOSSbutton = new TransButtonSetting();
+// LoadOSSbutton->setLabel(tr("Load OSS Driver"));
+ ButtonStandardSetting *LoadALSAbutton = new ButtonStandardSetting("Load ALSA Driver");
+// LoadALSAbutton->setLabel(tr("Load ALSA Driver"));
- TransButtonSetting *TestAudiobutton = new TransButtonSetting();
- TestAudiobutton->setLabel(tr("Test Device"));
- TestAudiobutton->setHelpText(QObject::tr("Play a sound using the selected default device."));
- lp->addChild(TestAudiobutton);
- lp->addChild(LoadOSSbutton);
+// ButtonStandardSetting *TestAudiobutton = new TransButtonSetting();
+// TestAudiobutton->setLabel(tr("Test Device"));
+// TestAudiobutton->setHelpText(QObject::tr("Play a sound using the selected default device."));
+// addChild(TestAudiobutton);
+// lp->addChild(LoadOSSbutton);
- TransButtonSetting *TestALSAAudiobutton = new TransButtonSetting();
- TestALSAAudiobutton->setLabel(tr("Test Device"));
+ ButtonStandardSetting *TestALSAAudiobutton = new ButtonStandardSetting(tr("Test Device"));
+// TestALSAAudiobutton->setLabel(tr("Test Device"));
TestALSAAudiobutton->setHelpText(QObject::tr("Play a sound using the selected default device."));
- lpalsa->addChild(TestALSAAudiobutton);
- lpalsa->addChild(LoadALSAbutton);
-
- TransLabelSetting *osslabel = new TransLabelSetting();
- osslabel->setValue("OSS- Open Sound System\nhttp://opensound.com\n\nTo configure sound for MythTV go to:\nService Menu --> MythTV Settings --> Setup --> Audio\n");
+ addChild(TestALSAAudiobutton);
+ addChild(LoadALSAbutton);
- TransLabelSetting *AlsaLabel = new TransLabelSetting();
- AlsaLabel->setValue("ALSA - Advanced Linux Sound Architecture\nhttp://alsa-project.org\n\nTo configure sound for MythTV go to:\nService Menu --> MythTV Settings --> Setup --> Audio\n");
+// TransLabelSetting *osslabel = new TransLabelSetting();
+// osslabel->setValue("OSS- Open Sound System\nhttp://opensound.com\n\nTo configure sound for MythTV go to:\nService Menu --> MythTV Settings --> Setup --> Audio\n");
+// TransLabelSetting *AlsaLabel = new TransLabelSetting();
+// AlsaLabel->setValue("ALSA - Advanced Linux Sound Architecture\nhttp://alsa-project.org\n\nTo configure sound for MythTV go to:\nService Menu --> MythTV Settings --> Setup --> Audio\n");
+/*
// OSS GROUP
SoundOSSsettings *OSS = new SoundOSSsettings ;
ConfigurationGroup* osssettings = new VerticalConfigurationGroup(false);
@@ -2792,13 +2733,13 @@ SoundSettings::SoundSettings():
this, SLOT(soundossgathersettings_1()));
connect(LoadOSSbutton, SIGNAL(pressed()),
OSS, SLOT(loadossdriver()));
-
+*/
// ALSA GROUP
- SoundALSAsettings *ALSA = new SoundALSAsettings ;
- ConfigurationGroup* alsasettings = new VerticalConfigurationGroup(false);
- alsasettings->addChild(AlsaLabel);
- alsasettings->addChild(ALSA);
- alsasettings->addChild(lpalsa);
+ SoundALSAsettings *ALSA = new SoundALSAsettings ;
+// ConfigurationGroup* alsasettings = new VerticalConfigurationGroup(false);
+// addChild(AlsaLabel);
+ addChild(ALSA);
+// alsasettings->addChild(lpalsa);
connect(this, SIGNAL(alsa_sig()),
ALSA, SLOT(soundalsagathersettings()));
@@ -2806,16 +2747,15 @@ SoundSettings::SoundSettings():
this, SLOT(soundalsagathersettings_1()));
connect(LoadALSAbutton, SIGNAL(pressed()),
ALSA, SLOT(loadalsadriver()));
- addTarget("ALSA", alsasettings);
- addTarget("OSS", osssettings);
+// addTarget("ALSA", alsasettings);
+// addTarget("OSS", osssettings);
};
-
-SoundOSSsettings::SoundOSSsettings():
- TriggeredConfigurationGroup(true,false,true,true,true,true,true,true)
+/*
+SoundOSSsettings::SoundOSSsettings(): GroupSetting()
{
SetVertical(true);
- HostSoundOssAll = new HostComboBox("HostSoundOssAll");
+ HostSoundOssAll = new HostComboBoxSetting("HostSoundOssAll");
HostSoundOssAll->setLabel(QObject::tr("Default Device"));
HostSoundOssAll->setHelpText(QObject::tr("Select the default audio output device for the system."));
fillossselection();
@@ -2823,20 +2763,19 @@ SoundOSSsettings::SoundOSSsettings():
HostSoundOssAll->setValue(findossall);
addTarget("All", HostSoundOssAll);
};
-
-SoundALSAsettings::SoundALSAsettings():
- TriggeredConfigurationGroup(true,false,true,true,true,true,true,true)
+*/
+SoundALSAsettings::SoundALSAsettings(): GroupSetting()
{
- SetVertical(true);
- HostSoundALSAAll = new HostComboBox("HostSoundALSAAll");
+// SetVertical(true);
+ HostSoundALSAAll = new HostComboBoxSetting("HostSoundALSAAll");
HostSoundALSAAll->setLabel(QObject::tr("Default Device"));
HostSoundALSAAll->setHelpText(QObject::tr("Select the default audio output device for the system. Chrome, aplay and other programs that use the default system device for audio will use this device. Mplayer will be set to use this device."));
fillALSAselection();
- int findalsaall=HostSoundALSAAll->findSelection(hostparm.OLDHostSoundALSAAll );
- HostSoundALSAAll->setValue(findalsaall);
- addTarget("All", HostSoundALSAAll);
+// int findalsaall=HostSoundALSAAll->findSelection(hostparm.OLDHostSoundALSAAll );
+// HostSoundALSAAll->setValue(findalsaall);
+ addChild( HostSoundALSAAll);
};
-
+/*
void SoundOSSsettings::loadossdriver()
{
// Add info popup right here
@@ -2901,6 +2840,7 @@ void SoundOSSsettings::loadossdriver()
fillossselection();
}
+
void SoundALSAsettings::loadalsadriver()
{
QString cmdtxt;
@@ -3005,7 +2945,7 @@ void SoundOSSsettings::fillossselection()
}
return ;
};
-
+*/
void SoundALSAsettings::fillALSAselection()
{
@@ -3075,13 +3015,14 @@ void SoundALSAsettings::fillALSAselection()
}
return ;
}
-
+/*
void SoundSettings::soundossgathersettings_1 (void)
{
hostparm.ThisHostAudiotype = HostAudiotype->getValue();
// emit the signal to call soundossgathersetting.
emit oss_sig();
};
+*/
void SoundSettings::soundalsagathersettings_1 (void)
{
hostparm.ThisHostAudiotype = HostAudiotype->getValue();
@@ -3089,7 +3030,7 @@ void SoundSettings::soundalsagathersettings_1 (void)
emit alsa_sig();
};
-
+/*
void SoundOSSsettings::soundossgathersettings(void)
{
hostparm.ThisHostSoundOSSAll = HostSoundOssAll->getValue();
@@ -3155,7 +3096,7 @@ void SoundOSSsettings::soundossgathersettings(void)
}
};
-
+*/
void SoundALSAsettings::soundalsagathersettings(void)
{
@@ -3186,7 +3127,7 @@ void SoundALSAsettings::soundalsagathersettings(void)
delete busyPopup;
busyPopup = NULL;
}
-
+/*
int progressbar=1;
MythProgressDialog *popupProgress = NULL;
popupProgress = new MythProgressDialog(msgtext, 50);
@@ -3194,14 +3135,14 @@ void SoundALSAsettings::soundalsagathersettings(void)
{
popupProgress->setProgress(progressbar);
}
-
+*/
while ( return_code == 0 )
{
- progressbar++;
- popupProgress->setProgress(progressbar);
- if (progressbar > 50 )
- progressbar = 10;
+// progressbar++;
+// popupProgress->setProgress(progressbar);
+// if (progressbar > 50 )
+// progressbar = 10;
return_code = myth_system("ps -ef|grep soundconfig.sh|grep -v grep > /dev/null");
@@ -3214,13 +3155,13 @@ void SoundALSAsettings::soundalsagathersettings(void)
busyPopup->Close();
busyPopup = NULL;
}
-
+/*
if (popupProgress)
{
popupProgress->Close();
popupProgress->deleteLater();
}
-
+*/
};
@@ -3395,9 +3336,9 @@ void run_systemconfig(QString modulelist, bool restart, QString dbcommand)
cmdtxt.append("bin/systemconfig.sh " + modulelist + " &");
myth_system(cmdtxt);
int return_code = 0;
- QString msgtext = "Please wait while " ;
+ QString msgtext = "Configuring " ;
msgtext.append(gCoreContext->GetSetting("HostMyhostname"));
- msgtext.append(" is configured");
+ msgtext.append("...");
MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
MythUIBusyDialog *busyPopup = new MythUIBusyDialog(msgtext, popupStack,"installbusy");
if (busyPopup->Create())
@@ -3409,7 +3350,7 @@ void run_systemconfig(QString modulelist, bool restart, QString dbcommand)
delete busyPopup;
busyPopup = NULL;
}
- while ( return_code == 0 )
+ while ( return_code == 0 )
{
return_code = myth_system("ps -ef|grep systemconfig.sh|grep -v grep > /dev/null");
qApp->processEvents ();
@@ -3422,17 +3363,16 @@ void run_systemconfig(QString modulelist, bool restart, QString dbcommand)
busyPopup = NULL;
}
-
-
if (restart)
{
return_code = 1;
int loopnumber=0 ;
bool doloop = true;
- QString msgtext = "Transferring database settings" ;
+ QString msgtext = "Transferring Database Settings..." ;
MythScreenStack *popupStack = GetMythMainWindow()->GetStack("popup stack");
- MythUIBusyDialog *busyPopup = new MythUIBusyDialog(msgtext, popupStack,"installbusy");
+ MythUIBusyDialog *busyPopup = new MythUIBusyDialog(msgtext, popupStack,
+ "installbusy");
if (busyPopup->Create())
{
popupStack->AddScreen(busyPopup, false);
@@ -3443,9 +3383,6 @@ void run_systemconfig(QString modulelist, bool restart, QString dbcommand)
busyPopup = NULL;
}
-
-
-
while ( doloop )
{
return_code = myth_system(dbcommand);
@@ -3463,10 +3400,19 @@ void run_systemconfig(QString modulelist, bool restart, QString dbcommand)
};
-
-
}
+void settingsWait()
+{
+ MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
+ //mainStack->AddScreen(ssd);
+ // Block by running an event loop until last screen is removed
+ QEventLoop block;
+ QObject::connect(mainStack, &MythScreenStack::topScreenChanged,
+ &block, [&](MythScreenType* screen)
+ { if (!screen) block.quit(); });
+ block.exec();
+}
int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
@@ -3478,16 +3424,16 @@ int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
bool showremotesonly, bool showvnc, bool showfileshare)
{
displaymysqlonly = false ;
- displayshownetwork =false ;
+ displayshownetwork = false ;
displayshowhostype = false ;
- displayshowmisc =false ;
- displayshowshutdown =false ;
+ displayshowmisc = false ;
+ displayshowshutdown = false ;
displayshowadvanced = false;
displayshowsound = false ;
displayshowadvancedX = false;
- displayaccesscontrol= false;
- displayplugins= false;
- displaysoftware= false;
+ displayaccesscontrol = false;
+ displayplugins = false;
+ displaysoftware = false;
displayuser = false;
displaywebuser = false;
displayddns = false;
@@ -3495,47 +3441,47 @@ int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
displayscreensaver = false;
displaysupplemental = false;
displayremotesonly = false;
- displayvnc = false;
+ displayvnc = false;
displayfileshare = false;
//gCoreContext->ActivateSettingsCache(true);
//gCoreContext->ClearSettingsCache();
- bool runothers=false;
- bool continuerun=true;
+ bool runothers = false;
+ bool continuerun = true;
int retc = 0 ;
displaymysqlonly = mysqlonly;
- if (displaymysqlonly)
+ if ( displaymysqlonly )
{
MythInstallSettings mysqlsettings;
- mysqlsettings.Load();
- mysqlsettings.Save();
- if ( mysqlsettings.exec() == QDialog::Accepted )
- {
- retc = 1;
- }
- else
- {
- retc=2;
- };
+// mysqlsettings.Load();
+// mysqlsettings.Save();
+// if ( mysqlsettings.exec() == QDialog::Accepted )
+// {
+// retc = 1;
+// }
+// else
+// {
+// retc = 2;
+// };
};
if ( shownetwork )
{
displayshownetwork = shownetwork;
MythInstallSettings settings;
- settings.Load();
- settings.Save();
- if ( settings.exec() == QDialog::Accepted )
- {
- retc = 1;
- }
- else
- {
- continuerun=false;
- retc=2;
- };
- displayshownetwork = false;
+// settings.Load();
+// settings.Save();
+// if ( settings.exec() == QDialog::Accepted )
+// {
+// retc = 1;
+// }
+// else
+// {
+// continuerun=false;
+// retc = 2;
+// };
+// displayshownetwork = false;
};
if ( showhostype && continuerun )
@@ -3545,21 +3491,24 @@ int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
if (sysRet < 0)
LOG(VB_GENERAL, LOG_ERR, "Error running avahi-browse");
MythInstallSettings settings1;
- settings1.Load();
- settings1.Save();
- if ( settings1.exec() == QDialog::Accepted )
- {
- retc = 1;
- }
- else
- {
- continuerun=false;
- retc=2;
- };
+// settings1.Load();
+// settings1.Save();
+// if ( settings1.exec() == QDialog::Accepted )
+// {
+// retc = 1;
+// }
+// else
+// {
+// continuerun=false;
+// retc = 2;
+// };
displayshowhostype=false;
}
- if ( showmisc || showshutdown || showsound || showadvancedX || showadvanced || showaccesscontrol || showplugins || showsoftware || showuser || showwebuser || showddns || showinfrared || showscreensaver || showsupplemental || showremotesonly || showvnc || showfileshare)
+ if ( showmisc || showshutdown || showsound || showadvancedX || showadvanced ||
+ showaccesscontrol || showplugins || showsoftware || showuser || showwebuser ||
+ showddns || showinfrared || showscreensaver || showsupplemental ||
+ showremotesonly || showvnc || showfileshare)
{
runothers=true;
displayshowmisc = showmisc;
@@ -3593,7 +3542,7 @@ int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
pre_writesettings();
//FINDME
DatabaseParams params = gContext->GetDatabaseParams();
- QString cmdtxt=MV_ROOT ;
+ QString cmdtxt=MV_ROOT;
cmdtxt.append("bin/timezip.py -m ");
QString zipcommand=cmdtxt;
zipcommand.append(hostparm.ThisDBhost);
@@ -3602,31 +3551,31 @@ int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
//cout << zipcommand << endl;
myth_system(zipcommand);
//hostparm.ThisHostZipcode = gCoreContext->GetSetting("HostZipcode");
- hostparm.ThisTimeZone = gCoreContext->GetSetting("HostTimeZone");
+ hostparm.ThisTimeZone = gCoreContext->GetSetting("HostTimeZone");
// hostparm.ThisHostServiceHobbit = gCoreContext->GetSetting("HostServiceHobbitclient");
// if ( hostparm.ThisHostServiceHobbit == "1" )
// install_hobbit = true;
MythInstallSettings settings2;
- settings2.Load();
- settings2.Save();
-// gCoreContext->SaveSetting("HostServiceHobbitclient", hostparm.ThisHostServiceHobbit );
- if ( settings2.exec() == QDialog::Accepted )
- {
- retc = 1;
- }
- else
- {
- continuerun=false;
- retc=2;
- };
+// settings2.Load();
+// settings2.Save();
+ // gCoreContext->SaveSetting("HostServiceHobbitclient", hostparm.ThisHostServiceHobbit );
+// if ( settings2.exec() == QDialog::Accepted )
+// {
+// retc = 1;
+// }
+// else
+// {
+// continuerun=false;
+// retc = 2;
+// };
};
pre_writesettings();
if ( mysqlonly )
{
QString cmdtxt;
cmdtxt=MV_ROOT ;
- cmdtxt.append("bin/systemconfig.sh Mysql_only " + hostparm.ThisDBhost);
+ cmdtxt.append("bin/systemconfig.sh Mysql_only " + hostparm.ThisDBhost);
myth_system(cmdtxt);
}
else
@@ -3639,33 +3588,33 @@ int runsettings (bool mysqlonly , bool shownetwork , bool showhostype,
-void writesettings ()
+void writesettings()
{
// ofstream myfile;
- gCoreContext->ClearSettingsCache();
+ //gCoreContext->ClearSettingsCache();
//gCoreContext->ActivateSettingsCache(false);
- hostparm.language = gCoreContext->GetSetting("language");
+ hostparm.language = gCoreContext->GetSetting("language");
hostparm.ThisHostName = gCoreContext->GetSetting("HostMyhostname").toLower();
hostparm.ThisTimeZone = gCoreContext->GetSetting("HostTimeZone");
- hostparm.ThisHostIPeth0 = gCoreContext->GetSetting("HostIPeth0");
- hostparm.ThisHostNETMASKeth0 = gCoreContext->GetSetting("HostNETMASKeth0");
- hostparm.ThisHostDNSeth0 = gCoreContext->GetSetting("HostDNSeth0");
- hostparm.ThisHostUSEDHCPeth0 = gCoreContext->GetSetting("HostUseDHCPeth0");
- hostparm.ThisHostGWeth0 = gCoreContext->GetSetting("HostGWeth0");
- hostparm.ThisHostActiveonbooteth0 = gCoreContext->GetSetting("HostActiveonbooteth0");
- hostparm.ThisHOSTESSIDeth0 = gCoreContext->GetSetting("HOSTESSIDeth0");
+ hostparm.ThisHostIPeth0 = gCoreContext->GetSetting("HostIPeth0");
+ hostparm.ThisHostNETMASKeth0 = gCoreContext->GetSetting("HostNETMASKeth0");
+ hostparm.ThisHostDNSeth0 = gCoreContext->GetSetting("HostDNSeth0");
+ hostparm.ThisHostUSEDHCPeth0 = gCoreContext->GetSetting("HostUseDHCPeth0");
+ hostparm.ThisHostGWeth0 = gCoreContext->GetSetting("HostGWeth0");
+ hostparm.ThisHostActiveonbooteth0 = gCoreContext->GetSetting("HostActiveonbooteth0");
+ hostparm.ThisHOSTESSIDeth0 = gCoreContext->GetSetting("HOSTESSIDeth0");
hostparm.ThisHostUseEncryptioneth0 = gCoreContext->GetSetting("HostUseEncryptioneth0");
hostparm.ThisHostkeyeth0 = gCoreContext->GetSetting("Hostkeyeth0");
hostparm.ThisHostMTUeth0 = gCoreContext->GetSetting("HostMTUeth0");
- hostparm.ThisHostIPeth1 = gCoreContext->GetSetting("HostIPeth1");
- hostparm.ThisHostNETMASKeth1 = gCoreContext->GetSetting("HostNETMASKeth1");
- hostparm.ThisHostDNSeth1 = gCoreContext->GetSetting("HostDNSeth1");
- hostparm.ThisHostUSEDHCPeth1 = gCoreContext->GetSetting("HostUseDHCPeth1");
- hostparm.ThisHostGWeth1 = gCoreContext->GetSetting("HostGWeth1");
- hostparm.ThisHostActiveonbooteth1 = gCoreContext->GetSetting("HostActiveonbooteth1");
- hostparm.ThisHOSTESSIDeth1 = gCoreContext->GetSetting("HOSTESSIDeth1");
+ hostparm.ThisHostIPeth1 = gCoreContext->GetSetting("HostIPeth1");
+ hostparm.ThisHostNETMASKeth1 = gCoreContext->GetSetting("HostNETMASKeth1");
+ hostparm.ThisHostDNSeth1 = gCoreContext->GetSetting("HostDNSeth1");
+ hostparm.ThisHostUSEDHCPeth1 = gCoreContext->GetSetting("HostUseDHCPeth1");
+ hostparm.ThisHostGWeth1 = gCoreContext->GetSetting("HostGWeth1");
+ hostparm.ThisHostActiveonbooteth1 = gCoreContext->GetSetting("HostActiveonbooteth1");
+ hostparm.ThisHOSTESSIDeth1 = gCoreContext->GetSetting("HOSTESSIDeth1");
hostparm.ThisHostUseEncryptioneth1 = gCoreContext->GetSetting("HostUseEncryptioneth1");
hostparm.ThisHostkeyeth1 = gCoreContext->GetSetting("Hostkeyeth1");
hostparm.ThisHostMTUeth1 = gCoreContext->GetSetting("HostMTUeth1");
@@ -3703,7 +3652,6 @@ void writesettings ()
hostparm.ThisHostkeyath0 = gCoreContext->GetSetting("Hostkeyath0");
hostparm.ThisHostMTUath0 = gCoreContext->GetSetting("HostMTUath0");
-
// hostparm.ThisHostServiceRRD = gCoreContext->GetSetting("HostServiceRRD");
hostparm.ThisSamba = gCoreContext->GetSetting("HostServiceSamba");
hostparm.ThisHostServiceSamba_media = gCoreContext->GetSetting("HostServiceSamba_media");
@@ -3808,9 +3756,9 @@ void writesettings ()
}
-//*********************************************************************************************
+//--------------------------------------------------------------------------------
// AUDIO SETTINGS
-//******************************************************************************************
+//--------------------------------------------------------------------------------
hostparm.ThisHostAudiotype = gCoreContext->GetSetting("HostAudiotype");
hostparm.ThisHostSoundOSSAll = gCoreContext->GetSetting("HostSoundOssAll");
hostparm.ThisHostSoundALSAAll = gCoreContext->GetSetting("HostSoundALSAAll");
@@ -3873,7 +3821,6 @@ void writesettings ()
hostparm.ThisHostpluginmythgameROMDB= gCoreContext->GetSetting("HostpluginmythgameROMDB");
hostparm.ThisHostpluginmythgameMupen64= gCoreContext->GetSetting("HostpluginmythgameMupen64");
hostparm.ThisHostwebmin = gCoreContext->GetSetting("Hostwebmin");
- hostparm.ThisHostHuluDesktop = gCoreContext->GetSetting("HostHuluDesktop");
hostparm.ThisHostwebonlinhes = gCoreContext->GetSetting("HostWebonlinhes");
hostparm.ThisHostXBMC = gCoreContext->GetSetting("HostXBMC");
hostparm.ThisHostPLEXHT = gCoreContext->GetSetting("HostPLEXHT");
@@ -3939,11 +3886,8 @@ void writesettings ()
hostparm.ThisHostTransmitSend_after_4 =
gCoreContext->GetSetting("HostTransmitSend_after_4");
-
hostparm.ThisHOSTrootSSH = gCoreContext->GetSetting("HOSTrootSSH");
-
-
hostparm.ThisHostSupplemental = gCoreContext->GetSetting("HostSupplemental");
hostparm.ThisHostWindowManager = gCoreContext->GetSetting("HostWindowManager");
hostparm.ThisHostEnhancedWMStyle = gCoreContext->GetSetting("HostEnhancedWMStyle");
@@ -3954,9 +3898,6 @@ void writesettings ()
hostparm.ThisHostXVNCpassword = gCoreContext->GetSetting("HostXVNCpassword");
-
-
-
//______________________WRITE OUT THE FILE__________________________
QString systemheader;
QString divider;
@@ -4203,7 +4144,6 @@ void writesettings ()
myfile << "mythappletrailers=\"" + hostparm.ThisHostpluginmythappletrailers + "\"\n";
myfile << "webonlinhes=\"" + hostparm.ThisHostwebonlinhes + "\"\n";
- myfile << "huludesktop=\"" + hostparm.ThisHostHuluDesktop + "\"\n";
myfile << "kodi=\"" + hostparm.ThisHostXBMC + "\"\n";
myfile << "plexhometheater=\"" + hostparm.ThisHostPLEXHT + "\"\n";
myfile << "plexmediaserver=\"" + hostparm.ThisHostPLEXMS + "\"\n";
@@ -4212,7 +4152,6 @@ void writesettings ()
myfile << "foldingworksize=\"" + hostparm.ThisHostfoldingworksize + "\"\n";
myfile << "webmin=\"" + hostparm.ThisHostwebmin + "\"\n";
-
systemheader="\n# ddns settings\n" ;
myfile << systemheader ;
myfile << divider ;
@@ -4258,7 +4197,6 @@ void writesettings ()
myfile << "Hostnumblaster=\"" + hostparm.ThisHostnumblaster + "\"\n";
myfile << "LCDtype=\"" + hostparm.ThisHostLCDType + "\"\n";
-
systemheader="\n# user settings\n" ;
myfile << systemheader ;
myfile << divider ;
@@ -4285,25 +4223,23 @@ void writesettings ()
myfile << "UseMythWEB_auth=\"" + hostparm.ThisHostwebauth + "\"\n";
-
f.close();
-
}
-MythInstallSettings::MythInstallSettings()
+MythInstallSettings::MythInstallSettings() : GroupSetting()
{
- VerticalConfigurationGroup* vcg = new VerticalConfigurationGroup(false,false,true,true);
- VerticalConfigurationGroup* denied = new VerticalConfigurationGroup(false,false,true,true);
- TransLabelSetting *deniedlabel = new TransLabelSetting();
- deniedlabel->setValue(" Access to these settings is disabled.\n Access can be enabled in Access Settings." );
- denied->addChild(deniedlabel);
+// VerticalConfigurationGroup* vcg = new VerticalConfigurationGroup(false,false,true,true);
+// VerticalConfigurationGroup* denied = new VerticalConfigurationGroup(false,false,true,true);
+// TransLabelSetting *deniedlabel = new TransLabelSetting();
+// deniedlabel->setValue(" Access to these settings is disabled.\n Access can be enabled in Access Settings." );
+// denied->addChild(deniedlabel);
if ( displaymysqlonly )
{
- vcg->setLabel(QObject::tr("Run MythFrontend Settings"));
- vcg->addChild(HostMysqlserverip_listbox());
- vcg->addChild(ThemePainter());
- addChild(vcg);
+ //vcg->setLabel(QObject::tr("Run MythFrontend Settings"));
+ //vcg->addChild(HostMysqlserverip_listbox());
+ //vcg->addChild(ThemePainter());
+ //addChild(vcg);
}
else
{
@@ -4331,15 +4267,15 @@ MythInstallSettings::MythInstallSettings()
- vcg->setLabel(QObject::tr("Host Settings"));
+ //vcg->setLabel(QObject::tr("Host Settings"));
// Check to see if screen should appear
if ( displayshownetwork )
{
//Check to see if screen is allowed to appear
if ( ((gCoreContext->GetSetting("Hostaccessnetwork")) == "0" ) )
{
- denied ->setLabel(QObject::tr("Network Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Network Settings"));
+ //addChild(denied);
}
else
{
@@ -4379,8 +4315,8 @@ MythInstallSettings::MythInstallSettings()
NetworkOptionsFrame *networkoptionsframe = new NetworkOptionsFrame();
NetworkSettingsFrame *netsettingsframe = new NetworkSettingsFrame();
- addChild(netsettingsframe);
- addChild(networkoptionsframe);
+// addChild(netsettingsframe);
+// addChild(networkoptionsframe);
};
}
@@ -4389,14 +4325,14 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccesshostype")) =="0" ))
{
- denied ->setLabel(QObject::tr("Host Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Host Settings"));
+ //addChild(denied);
}
else
{
SystemtypeGroup *systemtypegroup = new SystemtypeGroup();
- vcg->addChild(systemtypegroup);
- addChild(vcg);
+ //vcg->addChild(systemtypegroup);
+ //addChild(vcg);
}
}
@@ -4404,13 +4340,13 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessir")) =="0" ))
{
- denied ->setLabel(QObject::tr("Remotes Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Remotes Settings"));
+ //addChild(denied);
}
else
{
IRFrame *irframe = new IRFrame();
- addChild(irframe);
+// addChild(irframe);
}
}
@@ -4418,13 +4354,13 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("HostaccessadvancedX")) == "0" ))
{
- denied ->setLabel(QObject::tr("Display Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Display Settings"));
+ //addChild(denied);
}
else
{
AdvancedXSettings *advancedXsettings = new AdvancedXSettings();
- addChild(advancedXsettings);
+// addChild(advancedXsettings);
}
}
@@ -4432,13 +4368,31 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessvnc")) == "0" ))
{
- denied ->setLabel(QObject::tr("VNC Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("VNC Settings"));
+ //addChild(denied);
}
else
{
- VNChostsettings* vnchostsettings= new VNChostsettings();
- addChild(vnchostsettings);
+ //VNChostsettings* vnchostsettings= new VNChostsettings();
+ //addChild(vnchostsettings);
+
+ MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
+ StandardSettingDialog *ssd =
+ new StandardSettingDialog(mainStack, "vncsettings",
+ new VNChostsettings());
+ if (ssd->Create())
+ {
+ mainStack->AddScreen(ssd);
+ settingsWait();
+ // Block by running an event loop until last screen is removed
+ //QEventLoop block;
+ //QObject::connect(mainStack, &MythScreenStack::topScreenChanged,
+ // &block, [&](MythScreenType* screen)
+ //{ if (!screen) block.quit(); });
+ // block.exec();
+ }
+ else
+ delete ssd;
}
}
@@ -4446,16 +4400,16 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessfileshare")) == "0" ))
{
- denied ->setLabel(QObject::tr("File Sharing Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("File Sharing Settings"));
+ //addChild(denied);
}
else
{
FileShareMainFrameClient *nfsclient = new FileShareMainFrameClient();
- addChild(nfsclient);
+// addChild(nfsclient);
FileShareMainFrameServer *fileserver = new FileShareMainFrameServer();
- addChild(fileserver);
+// addChild(fileserver);
}
}
@@ -4463,14 +4417,14 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessmisc")) == "0" ))
{
- denied ->setLabel(QObject::tr("Miscellanous"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Miscellanous"));
+ //addChild(denied);
}
else
{
MiscMainFrame *miscsettings = new MiscMainFrame();
// MiscMainFrame2 *miscsettings2 = new MiscMainFrame2();
- addChild(miscsettings);
+// addChild(miscsettings);
// addChild(miscsettings2);
}
}
@@ -4479,20 +4433,20 @@ MythInstallSettings::MythInstallSettings()
{
//JM VERBOSE(VB_IMPORTANT, "screensaver");
Supplementalhostsettings *supplemental = new Supplementalhostsettings();
- addChild(supplemental);
+// addChild(supplemental);
}
if ( displayshowshutdown )
{
if ( ((gCoreContext->GetSetting("Hostaccesssleep")) == "0" ))
{
- denied ->setLabel(QObject::tr("Shutdown Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Shutdown Settings"));
+ //addChild(denied);
}
else
{
- WakeSettings *wakesettings = new WakeSettings();
- addChild(wakesettings);
+// WakeSettings *wakesettings = new WakeSettings();
+// addChild(wakesettings);
}
}
@@ -4500,16 +4454,16 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessadvanced")) == "0" ) )
{
- denied ->setLabel(QObject::tr("Advanced Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Advanced Settings"));
+ //addChild(denied);
}
else
{
AdvancedSettings *advancedsettings = new AdvancedSettings();
AdvancedSettings_2 *advancedsettings_2 = new AdvancedSettings_2();
- addChild(advancedsettings);
- addChild(advancedsettings_2);
+// addChild(advancedsettings);
+// addChild(advancedsettings_2);
}
}
@@ -4517,8 +4471,8 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccesssound")) =="0") )
{
- denied ->setLabel(QObject::tr("Audio Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Audio Settings"));
+ //addChild(denied);
}
else
{
@@ -4556,71 +4510,71 @@ MythInstallSettings::MythInstallSettings()
SoundSettings *soundsettings = new SoundSettings();
- addChild(soundsettings);
+ // addChild(soundsettings);
}
}
if ( displayaccesscontrol )
{
- VerticalConfigurationGroup* accessettings =
- new VerticalConfigurationGroup(false,true,false,false);
- ConfigurationGroup *GridAccess =
- new GridConfigurationGroup(2,false,false,false,false);
-
- GridAccess->addChild(Hostaccessadvanced());
- GridAccess->addChild(Hostaccesssound());
- GridAccess->addChild(HostaccessadvancedX());
- GridAccess->addChild(Hostaccessddns());
- GridAccess->addChild(Hostaccessfileshare());
- GridAccess->addChild(Hostaccessmisc());
- GridAccess->addChild(Hostaccessnetwork());
- GridAccess->addChild(Hostaccessplugins());
- GridAccess->addChild(Hostaccessir());
- GridAccess->addChild(Hostaccessscreensaver());
+// VerticalConfigurationGroup* accessettings =
+// new VerticalConfigurationGroup(false,true,false,false);
+// ConfigurationGroup *GridAccess =
+// new GridConfigurationGroup(2,false,false,false,false);
+
+ addChild(Hostaccessadvanced());
+ addChild(Hostaccesssound());
+ addChild(HostaccessadvancedX());
+ addChild(Hostaccessddns());
+ addChild(Hostaccessfileshare());
+ addChild(Hostaccessmisc());
+ addChild(Hostaccessnetwork());
+ addChild(Hostaccessplugins());
+ addChild(Hostaccessir());
+// addChild(Hostaccessscreensaver());
//screensaver
- GridAccess->addChild(Hostaccessvnc());
- GridAccess->addChild(Hostaccesssleep());
+ addChild(Hostaccessvnc());
+ addChild(Hostaccesssleep());
// GridAccess->addChild(Hostaccessuser());
- GridAccess->addChild(Hostaccesswebuser());
+ addChild(Hostaccesswebuser());
// accessettings->addChild(Hostaccessnetwork());
- accessettings->addChild(new ACCESShostsettings);
- accessettings->addChild(GridAccess);
- accessettings ->setLabel(QObject::tr("Access Settings"));
- addChild(accessettings);
+// addChild(new ACCESShostsettings);
+// addChild(GridAccess);
+// accessettings ->setLabel(QObject::tr("Access Settings"));
+// addChild(accessettings);
}
if ( displayplugins )
{
if ( ((gCoreContext->GetSetting("Hostaccessplugins")) == "0" ))
{
- denied ->setLabel(QObject::tr("Programs"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Programs"));
+ //addChild(denied);
}
else
{
- ConfigurationGroup *GridShowPlugin = new GridConfigurationGroup(2,false);
- GridShowPlugin->setLabel(QObject::tr("Programs (1/4)"));
- GridShowPlugin->addChild(Hostpluginmytharchive());
- GridShowPlugin->addChild(Hostpluginmythbrowser());
- GridShowPlugin->addChild(Hostpluginmythnetvision());
- GridShowPlugin->addChild(Hostpluginmythgallery());
+// ConfigurationGroup *GridShowPlugin = new GridConfigurationGroup(2,false);
+ setLabel(QObject::tr("Programs (1/4)"));
+ addChild(Hostpluginmytharchive());
+ addChild(Hostpluginmythbrowser());
+ addChild(Hostpluginmythnetvision());
+ addChild(Hostpluginmythgallery());
//ConfigurationGroup *GridShowPlugin2 = new GridConfigurationGroup(2);
- GridShowPlugin->addChild(Hostpluginmythmusic());
- GridShowPlugin->addChild(Hostpluginmythnews());
- GridShowPlugin->addChild(Hostpluginmythweather());
- GridShowPlugin->addChild(Hostpluginmythzoneminder());
+ addChild(Hostpluginmythmusic());
+ addChild(Hostpluginmythnews());
+ addChild(Hostpluginmythweather());
+ addChild(Hostpluginmythzoneminder());
- ConfigurationGroup *GridShowPlugin3 = new VerticalConfigurationGroup(false,true);
- GridShowPlugin3->setLabel(QObject::tr("Programs (2/4)"));
- GridShowPlugin3->addChild(new MythGamesettings);
- GridShowPlugin3->addChild(Hostpluginmythvideo_dvdcss());
+ //ConfigurationGroup *GridShowPlugin3 = new VerticalConfigurationGroup(false,true);
+ setLabel(QObject::tr("Programs (2/4)"));
+ addChild(new MythGamesettings);
+ addChild(Hostpluginmythvideo_dvdcss());
- addChild(GridShowPlugin);
+// addChild(GridShowPlugin);
// addChild(GridShowPlugin2);
- addChild(GridShowPlugin3);
+// addChild(GridShowPlugin3);
}
}
@@ -4628,45 +4582,44 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessplugins")) == "0" ))
{
- denied ->setLabel(QObject::tr("Programs"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Programs"));
+ //addChild(denied);
}
else
{
- ConfigurationGroup *GridShowPlugin4 = new GridConfigurationGroup(2,false);
- GridShowPlugin4->setLabel(QObject::tr("Programs (3/4)"));
- GridShowPlugin4->addChild(Hostpluginmythappletrailers());
- GridShowPlugin4->addChild(HostHuluDesktop());
- GridShowPlugin4->addChild(HostPLEXHT());
- GridShowPlugin4->addChild(HostPLEXMS());
- GridShowPlugin4->addChild(Hostwebmin());
- GridShowPlugin4->addChild(Hostwebonlinhes());
- GridShowPlugin4->addChild(HostXBMC());
+ //ConfigurationGroup *GridShowPlugin4 = new GridConfigurationGroup(2,false);
+ setLabel(QObject::tr("Programs (3/4)"));
+ addChild(Hostpluginmythappletrailers());
+ addChild(HostPLEXHT());
+ addChild(HostPLEXMS());
+ addChild(Hostwebmin());
+ addChild(Hostwebonlinhes());
+ addChild(HostXBMC());
//ConfigurationGroup *GridShowPlugin5 = new GridConfigurationGroup(2);
- ConfigurationGroup *GridShowPlugin6 = new VerticalConfigurationGroup(false,true);
- GridShowPlugin6->setLabel(QObject::tr("Programs (4/4)"));
- GridShowPlugin6->addChild(Hostfoldingathome());
- GridShowPlugin6->addChild(Hostfoldingusername());
- GridShowPlugin6->addChild(Hostfoldingworksize());
+ //ConfigurationGroup *GridShowPlugin6 = new VerticalConfigurationGroup(false,true);
+ //GridShowPlugin6->setLabel(QObject::tr("Programs (4/4)"));
+ //addChild(Hostfoldingathome());
+ //addChild(Hostfoldingusername());
+ //addChild(Hostfoldingworksize());
- addChild(GridShowPlugin4);
+// addChild(GridShowPlugin4);
//addChild(GridShowPlugin5);
- addChild(GridShowPlugin6);
+// addChild(GridShowPlugin6);
}
}
if ( displayuser )
{
if ( ((gCoreContext->GetSetting("Hostaccessuser")) == "0" ))
{
- denied ->setLabel(QObject::tr("User Accounts"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("User Accounts"));
+ //addChild(denied);
}
else
{
UserManagement *usermanagement = new UserManagement();
- addChild(usermanagement);
+// addChild(usermanagement);
}
}
@@ -4674,46 +4627,46 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccesswebuser")) == "0" ))
{
- denied ->setLabel(QObject::tr("Web Security Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Web Security Settings"));
+ //addChild(denied);
}
else
{
WebPasswordFrame *webpasswordframe = new WebPasswordFrame();
- addChild(webpasswordframe);
+// addChild(webpasswordframe);
}
}
-
+/*
if ( displayddns )
{
if ( ((gCoreContext->GetSetting("Hostaccessddns")) == "0" ))
{
- denied ->setLabel(QObject::tr("DDNS Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("DDNS Settings"));
+ //addChild(denied);
}
else
{
DDnssettings *ddnsframe = new DDnssettings();
- addChild(ddnsframe);
+// addChild(ddnsframe);
}
}
-
+*/
if ( displayinfrared )
{
if ( ((gCoreContext->GetSetting("Hostaccessir")) =="0" ))
{
- denied ->setLabel(QObject::tr("Remotes Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Remotes Settings"));
+ //addChild(denied);
}
else
{
IRFrame *irframe = new IRFrame();
IR_TransmitFrame *transmitframe = new IR_TransmitFrame();
LCDFrame *lcdframe = new LCDFrame();
- addChild(irframe);
- addChild(transmitframe);
- addChild(lcdframe);
+// addChild(irframe);
+// addChild(transmitframe);
+// addChild(lcdframe);
}
}
@@ -4721,14 +4674,14 @@ MythInstallSettings::MythInstallSettings()
{
if ( ((gCoreContext->GetSetting("Hostaccessscreensaver")) =="0" ))
{
- denied ->setLabel(QObject::tr("Screensaver Settings"));
- addChild(denied);
+ //denied ->setLabel(QObject::tr("Screensaver Settings"));
+ //addChild(denied);
}
else
{
//JM VERBOSE(VB_IMPORTANT, "screensaver");
- Screensaverhostsettings *screensaver = new Screensaverhostsettings();
- addChild(screensaver);
+// Screensaverhostsettings *screensaver = new Screensaverhostsettings();
+// addChild(screensaver);
}
}
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.h b/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.h
index 3a53048..fa9908e 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/installsettings.h
@@ -1,37 +1,38 @@
#ifndef WELCOMESETTINGS_H
#define WELCOMESETTINGS_H
-#include <settings.h>
+//#include <settings.h>
+#include <standardsettings.h>
#include "mythdialogs.h"
#include "libmyth/mythdialogs.h"
#include "libmyth/mythwidgets.h"
-#include "compat-mv.h"
+//#include "compat-mv.h"
-class SystemtypeGroup: public TriggeredConfigurationGroup {
+class SystemtypeGroup: public GroupSetting {
Q_OBJECT
public:
SystemtypeGroup();
- HostComboBox *HostSystemType;
+ HostComboBoxSetting *HostSystemType;
public slots:
void SystemtypeHelp();
};
//-------------------------------------------
-class NetworkSettingseth0:
- public TriggeredConfigurationGroup {
+class NetworkSettingseth0: public GroupSetting {
Q_OBJECT
public:
NetworkSettingseth0();
- HostLineEdit *HostIPeth0;
- HostComboBox *HostNETMASKeth0;
- HostLineEdit *HostGWeth0;
- HostLineEdit *HostDNSeth0;
- HostCheckBox *HostActiveonbooteth0;
- HostCheckBox *HostUseDHCPeth0 ;
- HostCheckBox *HostDefaulteth0;
- TransButtonSetting *wirelessbuttoneth0;
-
+ HostTextEditSetting *HostIPeth0;
+ HostComboBoxSetting *HostNETMASKeth0;
+ HostTextEditSetting *HostGWeth0;
+ HostTextEditSetting *HostDNSeth0;
+ HostCheckBoxSetting *HostActiveonbooteth0;
+ HostCheckBoxSetting *HostUseDHCPeth0;
+ HostCheckBoxSetting *HostDefaulteth0;
+ ButtonStandardSetting *wirelessbuttoneth0;
+ HostComboBoxSetting *HOSTESSIDeth0();
+ HostTextEditSetting *Hostkeyeth0();
signals:
void eth0_is_default(void);
public slots:
@@ -41,27 +42,27 @@ public slots:
void eth0_wireless_disable();
};
-class eth0options : public ConfigurationWizard
-{
+class eth0options: public GroupSetting {
public:
eth0options();
};
-class NetworkSettingseth1:
- public TriggeredConfigurationGroup {
+class NetworkSettingseth1: public GroupSetting {
Q_OBJECT
public:
NetworkSettingseth1();
- HostLineEdit *HostIPeth1;
- HostComboBox *HostNETMASKeth1;
- HostLineEdit *HostGWeth1;
- HostLineEdit *HostDNSeth1;
- HostCheckBox *HostActiveonbooteth1;
- HostCheckBox *HostUseDHCPeth1 ;
- HostCheckBox *HostDefaulteth1;
- TransButtonSetting *wirelessbuttoneth1;
+ HostTextEditSetting *HostIPeth1;
+ HostComboBoxSetting *HostNETMASKeth1;
+ HostTextEditSetting *HostGWeth1;
+ HostTextEditSetting *HostDNSeth1;
+ HostCheckBoxSetting *HostActiveonbooteth1;
+ HostCheckBoxSetting *HostUseDHCPeth1 ;
+ HostCheckBoxSetting *HostDefaulteth1;
+ ButtonStandardSetting *wirelessbuttoneth1;
+ HostComboBoxSetting *HOSTESSIDeth1();
+ HostTextEditSetting *Hostkeyeth1();
signals:
void eth1_is_default(void);
public slots:
@@ -71,28 +72,27 @@ public slots:
void eth1_wireless_disable();
};
-class eth1options : public ConfigurationWizard
-{
+class eth1options: public GroupSetting {
public:
eth1options();
};
-
-class NetworkSettingswlan0:
- public TriggeredConfigurationGroup {
+class NetworkSettingswlan0: public GroupSetting {
Q_OBJECT
public:
NetworkSettingswlan0();
- HostLineEdit *HostIPwlan0;
- HostComboBox *HostNETMASKwlan0;
- HostLineEdit *HostGWwlan0;
- HostLineEdit *HostDNSwlan0;
- HostCheckBox *HostActiveonbootwlan0;
- HostCheckBox *HostUseDHCPwlan0 ;
- HostCheckBox *HostDefaultwlan0;
- TransButtonSetting *wirelessbuttonwlan0;
+ HostTextEditSetting *HostIPwlan0;
+ HostComboBoxSetting *HostNETMASKwlan0;
+ HostTextEditSetting *HostGWwlan0;
+ HostTextEditSetting *HostDNSwlan0;
+ HostCheckBoxSetting *HostActiveonbootwlan0;
+ HostCheckBoxSetting *HostUseDHCPwlan0 ;
+ HostCheckBoxSetting *HostDefaultwlan0;
+ ButtonStandardSetting *wirelessbuttonwlan0;
+ HostComboBoxSetting *HOSTESSIDwlan0();
+ HostTextEditSetting *Hostkeywlan0();
signals:
void wlan0_is_default(void);
public slots:
@@ -102,27 +102,27 @@ public slots:
void wlan0_wireless_disable();
};
-class Wlan0options : public ConfigurationWizard
-{
+class Wlan0options: public GroupSetting {
public:
Wlan0options();
};
-class NetworkSettingswlan1:
- public TriggeredConfigurationGroup {
+class NetworkSettingswlan1: public GroupSetting {
Q_OBJECT
public:
NetworkSettingswlan1();
- HostLineEdit *HostIPwlan1;
- HostComboBox *HostNETMASKwlan1;
- HostLineEdit *HostGWwlan1;
- HostLineEdit *HostDNSwlan1;
- HostCheckBox *HostActiveonbootwlan1;
- HostCheckBox *HostUseDHCPwlan1 ;
- HostCheckBox *HostDefaultwlan1;
- TransButtonSetting *wirelessbuttonwlan1;
+ HostTextEditSetting *HostIPwlan1;
+ HostComboBoxSetting *HostNETMASKwlan1;
+ HostTextEditSetting *HostGWwlan1;
+ HostTextEditSetting *HostDNSwlan1;
+ HostCheckBoxSetting *HostActiveonbootwlan1;
+ HostCheckBoxSetting *HostUseDHCPwlan1 ;
+ HostCheckBoxSetting *HostDefaultwlan1;
+ ButtonStandardSetting *wirelessbuttonwlan1;
+ HostComboBoxSetting *HOSTESSIDwlan1();
+ HostTextEditSetting *Hostkeywlan1();
signals:
void wlan1_is_default(void);
public slots:
@@ -132,28 +132,25 @@ public slots:
void wlan1_wireless_disable();
};
-class wlan1options : public ConfigurationWizard
-{
+class wlan1options: public GroupSetting {
public:
wlan1options();
};
-
-class NetworkSettingsath0:
- public TriggeredConfigurationGroup {
+class NetworkSettingsath0: public GroupSetting {
Q_OBJECT
public:
NetworkSettingsath0();
- HostLineEdit *HostIPath0;
- HostComboBox *HostNETMASKath0;
- HostLineEdit *HostGWath0;
- HostLineEdit *HostDNSath0;
- HostCheckBox *HostActiveonbootath0;
- HostCheckBox *HostUseDHCPath0 ;
- HostCheckBox *HostDefaultath0;
- TransButtonSetting *wirelessbuttonath0;
+ HostTextEditSetting *HostIPath0;
+ HostComboBoxSetting *HostNETMASKath0;
+ HostTextEditSetting *HostGWath0;
+ HostTextEditSetting *HostDNSath0;
+ HostCheckBoxSetting *HostActiveonbootath0;
+ HostCheckBoxSetting *HostUseDHCPath0 ;
+ HostCheckBoxSetting *HostDefaultath0;
+ ButtonStandardSetting *wirelessbuttonath0;
signals:
void ath0_is_default(void);
public slots:
@@ -163,19 +160,17 @@ public slots:
void ath0_wireless_disable();
};
-class ath0options : public ConfigurationWizard
-{
+class ath0options: public GroupSetting {
public:
ath0options();
};
-class NetworkOptionsFrame: public VerticalConfigurationGroup {
+class NetworkOptionsFrame: public GroupSetting {
Q_OBJECT
public:
NetworkOptionsFrame();
- TransButtonSetting *FetchDhcpHostnameButton;
- TransLabelSetting *networklabel;
- HostComboBox *HostMyhostname;
+ ButtonStandardSetting *FetchDhcpHostnameButton;
+ HostComboBoxSetting *HostMyhostname;
QString find_hostname();
public slots:
void fetch_hostname();
@@ -185,11 +180,11 @@ public slots:
//--------------------------------------------
-class SoundSettings: public TriggeredConfigurationGroup {
+class SoundSettings: public GroupSetting {
Q_OBJECT
public:
SoundSettings();
- HostComboBox *HostAudiotype;
+ HostComboBoxSetting *HostAudiotype;
signals:
@@ -201,23 +196,23 @@ public slots:
};
-
-class SoundOSSsettings: public TriggeredConfigurationGroup {
+/*
+class SoundOSSsettings: public HostCheckBoxSetting {
Q_OBJECT
public:
SoundOSSsettings();
- HostComboBox *HostSoundOssAll;
+ HostComboBoxSetting *HostSoundOssAll;
void fillossselection();
public slots:
void soundossgathersettings();
void loadossdriver();
};
-
-class SoundALSAsettings: public TriggeredConfigurationGroup {
+*/
+class SoundALSAsettings: public GroupSetting {
Q_OBJECT
public:
SoundALSAsettings();
- HostComboBox *HostSoundALSAAll;
+ HostComboBoxSetting *HostSoundALSAAll;
void fillALSAselection();
public slots:
void soundalsagathersettings();
@@ -227,80 +222,36 @@ public slots:
//############################################
-class MythInstallSettings: public ConfigurationWizard
-{
-
+class MythInstallSettings: public GroupSetting {
public:
MythInstallSettings();
void testme();
private:
MythPopupBox *popup;
-
};
-/*
-#include "mythstorage.h"
-
-class MPUBLIC ImageSelectSetting: public SelectSetting {
- Q_OBJECT
-public:
- ImageSelectSetting(Storage *_storage) :
- SelectSetting(_storage),
- bxwidget(NULL), imagelabel(NULL), combo(NULL),
- m_hmult(1.0f), m_wmult(1.0f) { }
- virtual QWidget* configWidget(ConfigurationGroup *cg, QWidget* parent,
- const char* widgetName = 0);
- virtual void widgetInvalid(QObject *obj);
- virtual void deleteLater(void);
- virtual void setHelpText(const QString &str);
-
- virtual void addImageSelection(const QString& label,
- QImage* image,
- QString value=QString::null,
- bool select=false);
-
-protected slots:
- void imageSet(int);
-
-protected:
- void Teardown(void);
- virtual ~ImageSelectSetting();
-
-protected:
- vector<QImage*> images;
- QWidget *bxwidget;
- QLabel *imagelabel;
- MythComboBox *combo;
- float m_hmult, m_wmult;
-};
-
-
-class MPUBLIC HostImageSelect : public ImageSelectSetting, public HostDBStorage
-{
-public:
- HostImageSelect(const QString &name) :
- ImageSelectSetting(this), HostDBStorage(this, name) { }
-};*/
-
+/*
class HostRemoteType: public HostImageSelect {
public:
HostRemoteType();
};
-
+*/
#define MV_ROOT "/usr/MythVantage/"
-int runsettings(bool = false , bool = false , bool = false ,bool = false ,bool = false, bool = false,bool = false,bool = false , bool = false , bool = false , bool = false, bool = false , bool = false , bool = false , bool = false, bool = false , bool = false , bool = false , bool = false, bool = false);
+int runsettings(bool = false, bool = false, bool = false, bool = false,
+ bool = false, bool = false, bool = false, bool = false,
+ bool = false, bool = false, bool = false, bool = false,
+ bool = false, bool = false, bool = false, bool = false,
+ bool = false, bool = false, bool = false, bool = false);
//void ReadDDCifno(void);
void run_systemconfig(QString,bool = false,QString = "");
+void settingsWait();
void writesettings();
//void testXconfiguration();
-
-
-
struct HostParms
{
@@ -329,7 +280,6 @@ struct HostParms
QString ThisHostkeyeth0;
QString ThisHostMTUeth0;
-
QString ThisHostIPeth1;
QString ThisHostNETMASKeth1;
QString ThisHostDNSeth1;
@@ -354,7 +304,6 @@ struct HostParms
QString ThisHostkeywlan0;
QString ThisHostMTUwlan0;
-
QString ThisHostIPwlan1;
QString ThisHostNETMASKwlan1;
QString ThisHostDNSwlan1;
@@ -379,7 +328,6 @@ struct HostParms
QString ThisHostkeyath0;
QString ThisHostMTUath0;
-
QString ThisRemote;
QString ThisHostRemotebucket;
@@ -393,12 +341,12 @@ struct HostParms
QString ThisNFS;
QString ThisMythWEB;
QString ThisHostwebauth;
- // QString ThisHostServiceHobbit;
- // QString ThisHostServiceRRD;
+// QString ThisHostServiceHobbit;
+// QString ThisHostServiceRRD;
QString ThisHostRunDHCP;
QString ThisSystemType;
-// QString ThisBlaster;
+// QString ThisBlaster;
QString ThisHostTransmitproto_1;
QString ThisHostTransmitproto_2;
@@ -416,12 +364,6 @@ struct HostParms
QString ThisHostTransmitDelay_4;
QString ThisHostTransmitSend_after_4;
-
-
-
-
-
-
QString ThisReceiverType;
QString ThisHDHRlirc_device;
QString ThisHostLircWait;
@@ -431,8 +373,6 @@ struct HostParms
QString ThisDBhost;
QString ThisXres;
-
-
QString ThisHostBEWait;
QString ThisHostUseXLargeMouse;
QString ThisShutdowntime;
@@ -503,7 +443,6 @@ struct HostParms
QString ThisHostXBMC;
QString ThisHostPLEXHT;
QString ThisHostPLEXMS;
- QString ThisHostHuluDesktop;
QString ThisHostpluginmythgameMame;
QString ThisHostpluginmythgamefceux;
@@ -549,10 +488,4 @@ struct DDCinfo
QString Displaysize;
};
-
-
-
-
-
-
#endif
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/main.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/main.cpp
index 5c2e128..6751796 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/main.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/main.cpp
@@ -1,5 +1,4 @@
-//#include <qapplication.h>
-
+// mythinstall
#include "installdialog.h"
#include "installsettings.h"
#include "password_manage.h"
@@ -12,6 +11,7 @@
#include <QDir>
#include <QTextStream>
+#include <stdio.h>
#include <cstdlib>
#include <sys/types.h>
#include <sys/stat.h>
@@ -19,8 +19,6 @@
#include <chrono> // for milliseconds
#include <thread> // for sleep_for
-#include <stdio.h>
-
//MythTV
#include "langsettings.h"
#include "mythcontext.h"
@@ -39,18 +37,18 @@
#include "mythuihelper.h"
//??
-#include "myththemebase.h"
+//#include "myththemebase.h"
HostParms hostparm;
DDCinfo ddcinfo;
-void initKeys(void)
-{
- REG_KEY("Welcome", "STARTXTERM", "Open an Xterm window", "F12");
- REG_KEY("Welcome", "SHOWSETTINGS", "Show Mythshutdown settings", "F11");
-}
+//void initKeys(void)
+//{
+// REG_KEY("Welcome", "STARTXTERM", "Open an Xterm window", "F12");
+// REG_KEY("Welcome", "SHOWSETTINGS", "Show Mythshutdown settings", "F11");
+//}
int main(int argc, char **argv)
{
@@ -67,7 +65,7 @@ int main(int argc, char **argv)
bool bShowplugins = false;
bool bShowsoftware = false;
bool bShowTemplate = false;
- bool bShowuser = false;
+ bool bShowuser = false;
bool bShowwebuser = false;
bool bRunSetup = false;
bool bShowHelp = false;
@@ -78,8 +76,8 @@ int main(int argc, char **argv)
bool bShowquestion = false;
bool bShowsupplemental = false;
bool bShowremotes_only = false;
- bool bShowvnc = false;
- bool bShowFileshare = false;
+ bool bShowvnc = false;
+ bool bShowFileshare = false;
QStringList template_c_line ;
QString modulelist = "" ;
@@ -261,14 +259,17 @@ int main(int argc, char **argv)
showLang = true;
LCD::SetupLCD();
+
if (class LCD *lcd = LCD::Get())
lcd->switchToTime();
-
MythTranslation::load("mythfrontend");
+
GetMythUI()->LoadQtConfig();
+
MythMainWindow *mainWindow = GetMythMainWindow();
mainWindow->Init();
+ MythScreenStack *mainStack = mainWindow->GetMainStack();
// if parms were passed to -t then doen't init the screen.
// if ( template_c_line.size() == 0 )
@@ -282,14 +283,15 @@ int main(int argc, char **argv)
// initKeys();
// };
- gCoreContext->ActivateSettingsCache(false);
- gCoreContext->ClearSettingsCache();
- gCoreContext->ActivateSettingsCache(false);
+// gCoreContext->ActivateSettingsCache(false);
+// gCoreContext->ClearSettingsCache();
+// gCoreContext->ActivateSettingsCache(false);
+ MythScreenType *screen;
if (bShowSettings)
{
- gCoreContext->ActivateSettingsCache(false);
- gCoreContext->ClearSettingsCache();
+ //gCoreContext->ActivateSettingsCache(false);
+ //gCoreContext->ClearSettingsCache();
bool runconfig = false;
int sysRet=system("cp -f /etc/systemconfig /tmp/systemconfig.bak");
if (sysRet < 0)
@@ -321,7 +323,6 @@ int main(int argc, char **argv)
"libdvdcss",
"mythweather",
"mythzoneminder",
- "huludesktop",
"openpht",
"plex-media-server",
"kodi",
@@ -347,7 +348,6 @@ int main(int argc, char **argv)
"Hostpluginmythvideo_dvdcss",
"Hostpluginmythweather",
"Hostpluginmythzoneminder",
- "HostHuluDesktop",
"HostPLEXHT",
"HostPLEXMS",
"HostXBMC",
@@ -389,14 +389,18 @@ int main(int argc, char **argv)
}
//DONE sync db with pacman
- runsettings(false,bShowNetwork,bShowHostype,bShowMisc,bShowshutdown,bShowadvanced,bShowsound,bShowadvancedX,bShowAccesscontrol,bShowplugins,bShowsoftware,bShowuser,bShowwebuser,bShowddns,bShowinfrared,bShowscreensaver,bShowsupplemental,bShowremotes_only,bShowvnc,bShowFileshare);
+ runsettings(false,bShowNetwork,bShowHostype,bShowMisc,bShowshutdown,
+ bShowadvanced,bShowsound,bShowadvancedX,bShowAccesscontrol,
+ bShowplugins,bShowsoftware,bShowuser,bShowwebuser,bShowddns,
+ bShowinfrared,bShowscreensaver,bShowsupplemental,
+ bShowremotes_only,bShowvnc,bShowFileshare);
QString newdb = gCoreContext->GetSetting("HostMysqlserver");
QString newhostype = gCoreContext->GetSetting("HostSystemType");
int status = system("diff /tmp/systemconfig.bak /etc/systemconfig");
bool restart = false;
//save my settings in case db switches
QString cmdtxt=MV_ROOT;
- cmdtxt.append("bin/myth_settings_wrapper.sh -c save -t syssettings -d " + olddb);
+ cmdtxt.append("bin/myth_settings_wrapper.sh -c save -t syssettings -d " + olddb);
sysRet=system(qPrintable(cmdtxt));
if (sysRet < 0)
LOG(VB_GENERAL, LOG_ERR, "Could not save settings");
@@ -413,7 +417,7 @@ int main(int argc, char **argv)
//db changed save setting from olddb
QString cmdtxt;
cmdtxt=MV_ROOT;
- cmdtxt.append("bin/myth_settings_wrapper.sh -c save -t syssettings -d " + olddb ) ;
+ cmdtxt.append("bin/myth_settings_wrapper.sh -c save -t syssettings -d " + olddb);
int sysRet=system(qPrintable(cmdtxt));
if (sysRet < 0)
LOG(VB_GENERAL, LOG_ERR, "Could not save settings");
@@ -421,15 +425,14 @@ int main(int argc, char **argv)
if ( runconfig )
{
- //LOG(VB_GENERAL, LOG_ERR,
- // "mythinstall: this is where i stalled");
+ //LOG(VB_GENERAL, LOG_ERR, "mythinstall: this is where i stalled");
if ( newhostype != oldhostype )
modulelist.append("hostypec,");
- // trim off last ,
+ // trim off last ,
modulelist.truncate(modulelist.length()-1);
QString cmdtxt;
- cmdtxt=MV_ROOT ;
- cmdtxt.append("bin/myth_settings_wrapper.sh -c restore -t syssettings -d ");
+ cmdtxt=MV_ROOT;
+ cmdtxt.append("bin/myth_settings_wrapper.sh -c restore -t syssettings -d ");
QString dbcommand = cmdtxt;
dbcommand.append(newdb);
run_systemconfig(modulelist,restart,dbcommand);
@@ -438,8 +441,8 @@ int main(int argc, char **argv)
if (sysRet < 0)
LOG(VB_GENERAL, LOG_ERR, "Could not remove /tmp/systemconfig.bak.");
- gCoreContext->ActivateSettingsCache(false);
- gCoreContext->ClearSettingsCache();
+// gCoreContext->ActivateSettingsCache(false);
+// gCoreContext->ClearSettingsCache();
if ( restart )
{
QString prompt;
@@ -469,9 +472,9 @@ int main(int argc, char **argv)
if (sysRet < 0)
LOG(VB_GENERAL, LOG_ERR, "Could not reload frontend.");
}
- gCoreContext->ActivateSettingsCache(false);
- gCoreContext->ClearSettingsCache();
- gCoreContext->SendMessage("CLEAR_SETTINGS_CACHE");
+// gCoreContext->ActivateSettingsCache(false);
+// gCoreContext->ClearSettingsCache();
+// gCoreContext->SendMessage("CLEAR_SETTINGS_CACHE");
}//run settings
else if (bShowTemplate)
@@ -644,6 +647,8 @@ int main(int argc, char **argv)
}
DestroyMythMainWindow();
delete gContext;
+// gContext = nullptr;
+// delete qApp;
SignalHandler::Done();
return retval;
}
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/misc_settings.h b/abs/core/mythinstall/MythVantage-app/mythinstall/misc_settings.h
index 325fc0e..3e76ae6 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/misc_settings.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/misc_settings.h
@@ -3,7 +3,7 @@
#include <iostream>
#include <fstream>
#include <stdio.h>
-#include "settings.h"
+//#include "settings.h"
#include "installsettings.h"
#include <qsqldatabase.h>
#include <qsqlquery.h>
@@ -16,7 +16,7 @@
#include "mythmiscutil.h"
-class MiscMainFrame: public VerticalConfigurationGroup {
+class MiscMainFrame: public GroupSetting {
Q_OBJECT
public:
MiscMainFrame();
@@ -29,14 +29,14 @@ signals:
void update_timezone(QString);
};
-class MiscMainFrame2: public VerticalConfigurationGroup {
+class MiscMainFrame2: public GroupSetting {
Q_OBJECT
public:
MiscMainFrame2();
};
/*
-class TimezoneButton: public VerticalConfigurationGroup {
+class TimezoneButton: public GroupSetting {
Q_OBJECT
public:
TimezoneButton();
@@ -49,28 +49,28 @@ signals:
};
*/
-class TimezoneRegion: public TriggeredConfigurationGroup {
+class TimezoneRegion: public GroupSetting {
Q_OBJECT
public:
TimezoneRegion();
- HostComboBox *HostTimeZoneRegion;
- HostComboBox *HostTimezoneRegion_US;
- HostComboBox *HostTimezoneRegion_Pacific;
- HostComboBox *HostTimezoneRegion_Mideast;
- HostComboBox *HostTimezoneRegion_Mexico;
- HostComboBox *HostTimezoneRegion_Indian;
- HostComboBox *HostTimezoneRegion_Europe;
- HostComboBox *HostTimezoneRegion_Etc;
- HostComboBox *HostTimezoneRegion_Chile;
- HostComboBox *HostTimezoneRegion_Canada;
- HostComboBox *HostTimezoneRegion_Brazil;
- HostComboBox *HostTimezoneRegion_Australia;
- HostComboBox *HostTimezoneRegion_Atlantic;
- HostComboBox *HostTimezoneRegion_Asia;
- HostComboBox *HostTimezoneRegion_Arctic;
- HostComboBox *HostTimezoneRegion_Antarctica;
- HostComboBox *HostTimezoneRegion_America;
- HostComboBox *HostTimezoneRegion_Africa;
+ HostComboBoxSetting *HostTimeZoneRegion;
+ HostComboBoxSetting *HostTimezoneRegion_US;
+ HostComboBoxSetting *HostTimezoneRegion_Pacific;
+ HostComboBoxSetting *HostTimezoneRegion_Mideast;
+ HostComboBoxSetting *HostTimezoneRegion_Mexico;
+ HostComboBoxSetting *HostTimezoneRegion_Indian;
+ HostComboBoxSetting *HostTimezoneRegion_Europe;
+ HostComboBoxSetting *HostTimezoneRegion_Etc;
+ HostComboBoxSetting *HostTimezoneRegion_Chile;
+ HostComboBoxSetting *HostTimezoneRegion_Canada;
+ HostComboBoxSetting *HostTimezoneRegion_Brazil;
+ HostComboBoxSetting *HostTimezoneRegion_Australia;
+ HostComboBoxSetting *HostTimezoneRegion_Atlantic;
+ HostComboBoxSetting *HostTimezoneRegion_Asia;
+ HostComboBoxSetting *HostTimezoneRegion_Arctic;
+ HostComboBoxSetting *HostTimezoneRegion_Antarctica;
+ HostComboBoxSetting *HostTimezoneRegion_America;
+ HostComboBoxSetting *HostTimezoneRegion_Africa;
void timezoneregion_fillselection(QString);
void timezoneregion_fillselection_zone();
@@ -84,7 +84,7 @@ signals:
/*
class NFSSettings: public
- TriggeredConfigurationGroup {
+ GroupSetting {
public:
NFSSettings();
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/mythinstall.pro b/abs/core/mythinstall/MythVantage-app/mythinstall/mythinstall.pro
index 099d0f0..08704cf 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/mythinstall.pro
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/mythinstall.pro
@@ -38,21 +38,22 @@ INSTALLS += uifiles
QMAKE_CLEAN += $(TARGET)
# Input
-//HEADERS += commandlineparser.h
-//SOURCES += main.cpp commandlineparser.cpp
-
HEADERS += installdialog.h commandlineparser.h installsettings.h
-HEADERS += settemplate.h installationtype.h xorgsettings.h password_manage.h
-HEADERS += misc_settings.h mv_common.h infrared.h compat-mv.h supplemental.h
+HEADERS += installationtype.h xorgsettings.h password_manage.h
+#HEADERS += settemplate.h installationtype.h xorgsettings.h password_manage.h
+#HEADERS += misc_settings.h mv_common.h infrared.h compat-mv.h supplemental.h
+HEADERS += misc_settings.h mv_common.h infrared.h supplemental.h
HEADERS += vnc.h fileshare.h questionnotice.h
-HEADERS += mythconfigdialogs.h mythconfiggroups.h
-HEADERS += settings.h
+#HEADERS += mythconfigdialogs.h mythconfiggroups.h
+#HEADERS += settings.h
SOURCES += main.cpp commandlineparser.cpp installdialog.cpp installsettings.cpp
-SOURCES += settemplate.cpp installationtype.cpp xorgsettings.cpp
-SOURCES += password_manage.cpp misc_settings.cpp infrared.cpp compat-mv.cpp
+SOURCES += installationtype.cpp xorgsettings.cpp
+#SOURCES += settemplate.cpp installationtype.cpp xorgsettings.cpp
+#SOURCES += password_manage.cpp misc_settings.cpp infrared.cpp compat-mv.cpp
+SOURCES += password_manage.cpp misc_settings.cpp infrared.cpp
SOURCES += supplemental.cpp vnc.cpp fileshare.cpp questionnotice.cpp
-SOURCES += mythconfigdialogs.cpp mythconfiggroups.cpp
-SOURCES += settings.cpp
+#SOURCES += mythconfigdialogs.cpp mythconfiggroups.cpp
+#SOURCES += settings.cpp
QT += sql xml network widgets
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.cpp
index 11e2974..3fc0e02 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.cpp
@@ -128,31 +128,31 @@ bool UserManagement::user_valid_check(QString check_string)
}
-UserManagement::UserManagement():
- VerticalConfigurationGroup(false,false,false,false)
+UserManagement::UserManagement()
{
- setLabel(QObject::tr("User Accounts"));
- userlist = new TransComboBoxSetting(false);
+ GroupSetting* UMsettings = new GroupSetting();
+ UMsettings->setLabel(QObject::tr("User Accounts"));
+ HostComboBoxSetting* userlist = new HostComboBoxSetting(false);
userlist->setLabel(QObject::tr("User"));
userlist->addSelection("root");
userlist->addSelection("mythtv");
user_fillselection();
userlist->setHelpText(QObject::tr("Select the user to change the user password or delete the user account."));
- userpass1= new TransLineEditSetting(true);
+ userpass1= new HostLineEditSetting(true);
userpass1->setLabel("Password");
userpass1->SetPasswordEcho(passtoggle);
userpass1->setHelpText("The following characters will not be accepted: " + invalid_chars);
- passToggleButton = new TransButtonSetting;
+ passToggleButton = new ButtonStandardSetting;
passToggleButton->setLabel("Toggle Password View");
passToggleButton->setHelpText(QObject::tr("Hide or show the password."));
- info = new TransLabelSetting;
- info->setValue("");
+// info = new TransLabelSetting;
+// info->setValue("");
- userapplyButton = new TransButtonSetting;
+ userapplyButton = new ButtonStandardSetting;
userapplyButton->setLabel("Apply New Password");
usercreateButton = new TransButtonSetting;
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.h b/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.h
index 049cbce..cea7010 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/password_manage.h
@@ -1,24 +1,24 @@
-#include <settings.h>
+//#include <settings.h>
+#include "standardsettings.h"
#include "mythdialogs.h"
//#include "libmyth/mythdialogs.h"
#include "libmyth/mythwidgets.h"
#include "installsettings.h"
#include <QTextStream>
-class UserManagement: public
- VerticalConfigurationGroup {
+class UserManagement: public GroupSetting {
Q_OBJECT
public:
UserManagement();
- TransComboBoxSetting *userlist;
- TransLineEditSetting *userpass1;
- TransButtonSetting *userapplyButton;
- TransButtonSetting *usercreateButton;
- TransButtonSetting *userdeleteButton;
- TransButtonSetting *passToggleButton;
- TransLabelSetting *info;
- TransCheckBoxSetting *lockaccount;
- HostCheckBox *rootSSH;
+ HostComboBoxSetting *userlist;
+ HostTextEditSetting *userpass1;
+ ButtonStandardSetting *userapplyButton;
+ ButtonStandardSetting *usercreateButton;
+ ButtonStandardSetting *userdeleteButton;
+ ButtonStandardSetting *passToggleButton;
+// TransLabelSetting *info;
+// TransMythUICheckBoxSetting *lockaccount;
+ HostCheckBoxSetting *rootSSH;
void user_fillselection(void);
bool user_exist_check(QString);
bool user_valid_check(QString);
@@ -33,29 +33,26 @@ public slots:
-class WebPassword: public
- TriggeredConfigurationGroup {
+class WebPassword: public GroupSetting {
Q_OBJECT
public:
WebPassword();
- HostLineEdit *webuser;
- HostLineEdit *webpassword;
- HostCheckBox *webAuth;
- TransButtonSetting *webpassToggleButton;
- TransLabelSetting *info;
+ HostTextEditSetting *webuser;
+ HostTextEditSetting *webpassword;
+ HostCheckBoxSetting *webAuth;
+ ButtonStandardSetting *webpassToggleButton;
+// TransLabelSetting *info;
bool valid_check(QString);
- TransButtonSetting *webapplyButton;
+ ButtonStandardSetting *webapplyButton;
public slots:
void webpassword_gathersettings();
void togglepass();
};
-class WebPasswordFrame: public
- VerticalConfigurationGroup {
+class WebPasswordFrame: public GroupSetting {
Q_OBJECT
public:
WebPasswordFrame();
- TransButtonSetting *webapplyButton;
-
+ ButtonStandardSetting *webapplyButton;
};
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.cpp
index 7201304..def6ae6 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.cpp
@@ -44,7 +44,7 @@ void choosetemplate (QString templateop, QString templatename , QString templat
MythCtemplate setting;
// setting.load();
// setting.save();
- setting.exec();
+// setting.exec();
};
QString thistemplate;
@@ -283,9 +283,9 @@ void c_from(QString copyhost, QString templatenumber)
-static HostComboBox *HOSTtemplatetype()
+static HostComboBoxSetting *HOSTtemplatetype()
{
- HostComboBox *gc = new HostComboBox("HOSTtemplatetype");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HOSTtemplatetype");
gc->setLabel(QObject::tr("Template options"));
gc->addSelection("Do Nothing") ;
gc->addSelection("restore");
@@ -297,9 +297,9 @@ static HostComboBox *HOSTtemplatetype()
return gc;
}
-static HostComboBox *HostTemplateSave()
+static HostComboBoxSetting *HostTemplateSave()
{
- HostComboBox *gc = new HostComboBox("HostTemplateSave");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostTemplateSave");
gc->setLabel(QObject::tr("Save Template"));
// gc->addSelection("none");
gc->addSelection("user1") ;
@@ -309,9 +309,9 @@ static HostComboBox *HostTemplateSave()
return gc;
}
-static HostComboBox *HostTemplateCopy_restore()
+static HostComboBoxSetting *HostTemplateCopy_restore()
{
- HostComboBox *gc = new HostComboBox("HostTemplateRestore");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostTemplateRestore");
gc->setLabel(QObject::tr("Template"));
// gc->addSelection("none");
gc->addSelection("Current");
@@ -323,9 +323,9 @@ static HostComboBox *HostTemplateCopy_restore()
return gc;
}
-static HostComboBox *HostTemplateRestore()
+static HostComboBoxSetting *HostTemplateRestore()
{
- HostComboBox *gc = new HostComboBox("HostTemplateRestore");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostTemplateRestore");
gc->setLabel(QObject::tr("Template"));
// gc->addSelection("none");
gc->addSelection("default_1");
@@ -338,9 +338,9 @@ static HostComboBox *HostTemplateRestore()
return gc;
}
-static HostComboBox *HostSelectcopy_from()
+static HostComboBoxSetting *HostSelectcopy_from()
{
- HostComboBox *gc = new HostComboBox("HostSelectcopy_from");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostSelectcopy_from");
gc->setLabel(QObject::tr("Host"));
// gc->addSelection("none");
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.h b/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.h
index a730cf5..c89ef33 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/settemplate.h
@@ -1,7 +1,7 @@
-#include <settings.h>
+//#include <settings.h>
#include "mythdialogs.h"
-class MythCtemplate: public ConfigurationWizard {
+class MythCtemplate: public GroupSetting {
public:
MythCtemplate();
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/supplemental.h b/abs/core/mythinstall/MythVantage-app/mythinstall/supplemental.h
index 835d161..c8a670a 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/supplemental.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/supplemental.h
@@ -3,7 +3,7 @@
#include <iostream>
#include <fstream>
#include <stdio.h>
-#include "settings.h"
+//#include "settings.h"
#include "installsettings.h"
#include <qsqldatabase.h>
#include <qsqlquery.h>
@@ -15,12 +15,12 @@
#include <qapplication.h>
#include "mythmiscutil.h"
-class WindowManager_settings: public TriggeredConfigurationGroup {
+class WindowManager_settings: public GroupSetting {
Q_OBJECT
public:
WindowManager_settings();
- HostCheckBox *HostEnhancedWMStyle;
- HostCheckBox *HostSupplemental;
+ HostCheckBoxSetting *HostEnhancedWMStyle;
+ HostCheckBoxSetting *HostSupplemental;
signals:
void eth0_is_default(void);
public slots:
@@ -29,7 +29,7 @@ public:
-class Supplementalhostsettings: public VerticalConfigurationGroup {
+class Supplementalhostsettings: public GroupSetting {
// Q_OBJECT
public:
Supplementalhostsettings();
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.cpp
index 96cb107..11bc371 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.cpp
@@ -19,9 +19,10 @@ extern HostParms hostparm;
// return gc;
// };
//---------x11vnc
-static HostLineEdit *HostXVNCpassword()
+//static HostLineEdit *HostXVNCpassword()
+static HostTextEditSetting *HostXVNCpassword()
{
- HostLineEdit *gc = new HostLineEdit("HostXVNCpassword");
+ HostTextEditSetting *gc = new HostTextEditSetting("HostXVNCpassword");
gc->setLabel(QObject::tr("Password"));
gc->setValue("");
gc->SetPasswordEcho(true);
@@ -29,82 +30,99 @@ static HostLineEdit *HostXVNCpassword()
return gc;
};
-static HostCheckBox *HostXVNCEnable()
+static HostCheckBoxSetting *HostXVNCEnable()
{
- HostCheckBox *gc = new HostCheckBox("HostXVNCEnable");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostXVNCEnable");
gc->setLabel(QObject::tr("Enable XVNC"));
gc->setValue(false);
gc->setHelpText(QObject::tr("This will allow you to remotely see what is currently displayed on the main screen. The session will be available on vnc:2 (port 5902)."));
return gc;
};
-
-class XVNCsettings: public TriggeredConfigurationGroup {
+/*
+class XVNCsettings: public GroupSetting {
public:
- XVNCsettings():
- TriggeredConfigurationGroup(false,false,false,false) {
+ XVNCsettings()
+// TriggeredConfigurationGroup(false,false,false,false) {
+ {
setLabel(QObject::tr("XVNC Settings"));
- SetVertical(true);
- Setting* trigger = HostXVNCEnable() ;
+// SetVertical(true);
+// Setting* trigger = HostXVNCEnable() ;
+ HostCheckBoxSetting* trigger = HostXVNCEnable();
addChild(trigger);
- setTrigger(trigger);
+// setTrigger(trigger);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false,false,false,false);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false,false,false,false);
//settings->addChild(HostXVNClogin());
- settings->addChild(HostXVNCpassword());
-
- addTarget("0", new VerticalConfigurationGroup(false, false));
- addTarget("1", settings);
- };
+// settings->addChild(HostXVNCpassword());
+ HostTextEditSetting* settings = HostXVNCpassword();
+// settings->addTargetedChild("0", new VerticalConfigurationGroup(false, false));
+ settings->addTargetedChild("1", settings);
+ }
};
-
+*/
//------------------
-static HostLineEdit *HostVNCpassword()
+static HostTextEditSetting *HostVNCpassword()
{
- HostLineEdit *gc = new HostLineEdit("HostVNCpassword");
- gc->setLabel(QObject::tr("Password"));
+ HostTextEditSetting *gc = new HostTextEditSetting("HostVNCpassword");
+ gc->setLabel(QObject::tr("VNC Password"));
gc->setValue("");
gc->SetPasswordEcho(true);
gc->setHelpText(QObject::tr("Password for VNC account must be at least 5 characters long. Passwords shorter than 5 characters long will silently fail."));
return gc;
};
-static HostCheckBox *HostVNCEnable()
+static HostCheckBoxSetting *HostVNCEnable()
{
- HostCheckBox *gc = new HostCheckBox("HostVNCEnable");
+ HostCheckBoxSetting *gc = new HostCheckBoxSetting("HostVNCEnable");
gc->setLabel(QObject::tr("Enable VNC"));
gc->setValue(false);
gc->setHelpText(QObject::tr("This will start a seperate VNC session that can be used for remote administration. The session will be available on vnc:1 (port 5901)."));
return gc;
};
-
-class VNCsettings: public TriggeredConfigurationGroup {
+/*
+class VNCsettings: public GroupSetting {
public:
- VNCsettings():
- TriggeredConfigurationGroup(false,false,false,false) {
+ VNCsettings()
+// TriggeredConfigurationGroup(false,false,false,false) {
+ {
setLabel(QObject::tr("VNC Settings"));
- SetVertical(true);
- Setting* trigger = HostVNCEnable() ;
+// SetVertical(true);
+// Setting* trigger = HostVNCEnable() ;
+ HostCheckBoxSetting* trigger = HostVNCEnable();
addChild(trigger);
- setTrigger(trigger);
+// setTrigger(trigger);
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false,false,false,false);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false,false,false,false);
//settings->addChild(HostVNClogin());
- settings->addChild(HostVNCpassword());
+ //settings->addChild(HostVNCpassword());
- addTarget("0", new VerticalConfigurationGroup(false, false));
- addTarget("1", settings);
- };
+ HostTextEditSetting* settings = HostVNCpassword();
+// addTarget("0", new VerticalConfigurationGroup(false, false));
+ settings->addTargetedChild("1", settings);
+// addTarget("1", settings);
+ }
};
+*/
-
-VNChostsettings::VNChostsettings():
- VerticalConfigurationGroup(false,false,false,false)
- {
- setLabel(QObject::tr("Screen Sharing Settings"));
- VNCsettings *vncframe = new VNCsettings();
- XVNCsettings *xvncframe = new XVNCsettings();
- addChild(vncframe);
- addChild(xvncframe);
- }
+VNChostsettings::VNChostsettings()
+{
+ GroupSetting* SSsettings = new GroupSetting();
+ SSsettings->setLabel(QObject::tr("Screen Sharing Settings"));
+ HostCheckBoxSetting* vnctrigger = HostVNCEnable();
+ addChild(vnctrigger);
+ vnctrigger->addTargetedChild("1", HostVNCpassword());
+ //HostTextEditSetting* vncsettings = HostVNCpassword();
+ //vncsettings->addTargetedChild("1", vncsettings);
+
+ //SSsettings->addChild(XVNCsettings());
+ setLabel(QObject::tr("XVNC Settings"));
+ HostCheckBoxSetting* xvnctrigger = HostXVNCEnable();
+ addChild(xvnctrigger);
+ HostTextEditSetting* xvncsettings = HostXVNCpassword();
+// settings->addTargetedChild("0", new VerticalConfigurationGroup(false, false));
+ xvncsettings->addTargetedChild("1", xvncsettings);
+
+ //addChild(SSsettings);
+}
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.h b/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.h
index 3b1b349..c1d04d3 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/vnc.h
@@ -3,8 +3,9 @@
#include <iostream>
#include <fstream>
#include <stdio.h>
-#include "settings.h"
-#include "installsettings.h"
+//#include "settings.h"
+#include "standardsettings.h"
+//#include "installsettings.h"
#include <qsqldatabase.h>
#include <qsqlquery.h>
@@ -16,13 +17,7 @@
#include "mythmiscutil.h"
-class VNChostsettings: public VerticalConfigurationGroup {
+class VNChostsettings: public GroupSetting {
public:
VNChostsettings();
-
};
-
-
-
-
-
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.cpp b/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.cpp
index eb6c893..f34f95d 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.cpp
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.cpp
@@ -61,7 +61,6 @@ static HostComboBox *HostXgeneric_connection()
gc->setHelpText(QObject::tr("Video-out"));
return gc;
}
-*/
static HostCheckBox *HostXIgnoreEDID()
{
@@ -278,11 +277,11 @@ void AdvancedXGeneric_modelines::AdvancedXGeneric_modelines_GatherSettings(void)
// Jump to final step
testXconfiguration();
}
-
+*/
// --------------------------------------------start of nvidia specific ------------------------------------
-
+/*
AdvancedXNvidiaConnections::AdvancedXNvidiaConnections():
TriggeredConfigurationGroup(false,false,true,true,true,true,true,true) {
@@ -544,7 +543,7 @@ void AdvancedXcardtype::AdvancedXcardgatherSettings(void)
else
emit go();
};
-
+*/
// AdvancedXSettings::AdvancedXSettings():
// TriggeredConfigurationGroup(true,true,true,true,true,true,true,true) {
@@ -591,14 +590,11 @@ void AdvancedXcardtype::AdvancedXcardgatherSettings(void)
//
// };
-AdvancedXSettings::AdvancedXSettings():
- TriggeredConfigurationGroup(true,true,true,true,true,true,true,true) {
+AdvancedXSettings::AdvancedXSettings(): GroupSetting()
+{
setLabel(QObject::tr("Display Settings"));
-
-
-
- HostXIgnoreConfig = new HostCheckBox("HostXIgnoreConfig");
+ HostXIgnoreConfig = new HostCheckBoxSetting("HostXIgnoreConfig");
HostXIgnoreConfig->setLabel(QObject::tr("User Supplied Configuration"));
HostXIgnoreConfig->setValue(false);
#ifdef __MVAPP__
@@ -607,31 +603,21 @@ AdvancedXSettings::AdvancedXSettings():
HostXIgnoreConfig->setHelpText(QObject::tr("If checked, the system will use the configuration file provided by YOU. Place your configuration file in /home/mythtv/templates/xorg.user."));
#endif
- Setting* Advancedxsettings = HostXIgnoreConfig;
- addChild(Advancedxsettings);
- setTrigger(Advancedxsettings);
-
-
-
-
-
-
- ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
-
-
- ConfigurationGroup* setting1 = new GridConfigurationGroup(1,false);
- setting1->addChild(HostXres());
-
- addTarget("0",setting1);
- addTarget("1", settings);
-
+// Setting* Advancedxsettings = HostXIgnoreConfig;
+ addChild(HostXIgnoreConfig);
+// setTrigger(Advancedxsettings);
+// ConfigurationGroup* settings = new VerticalConfigurationGroup(false);
+// ConfigurationGroup* setting1 = new GridConfigurationGroup(1,false);
+ HostXIgnoreConfig->addTargetedChild("1", HostXres());
+// addTarget("0",setting1);
+// addTarget("1", settings);
};
-
+/*
void AdvancedXSettings::ADJUSTEDID(void)
{
EDIDOptions edidscreen;
@@ -684,10 +670,4 @@ void testXconfiguration(void)
GetMythMainWindow(), QObject::tr("Test X button"),
message);
};
-
-
-
-
-
-
-
+*/
diff --git a/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.h b/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.h
index ad62564..8c659f7 100755
--- a/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.h
+++ b/abs/core/mythinstall/MythVantage-app/mythinstall/xorgsettings.h
@@ -1,6 +1,6 @@
-#include <settings.h>
-#include "mythdialogs.h"
-#include "libmyth/mythdialogs.h"
+//#include <settings.h>
+//#include "mythdialogs.h"
+//#include "libmyth/mythdialogs.h"
#include "libmyth/mythwidgets.h"
#include "installsettings.h"
@@ -8,13 +8,13 @@
#include <qdir.h>
-class AdvancedXNvidiaConnections: public TriggeredConfigurationGroup {
+class AdvancedXNvidiaConnections: public GroupSetting {
Q_OBJECT
public:
AdvancedXNvidiaConnections();
- HostComboBox *HostXNvidiaConnection;
- HostComboBox *HostXnVidiaTVformat;
- HostComboBox *HostXnVidiaTVstandard;
+ HostComboBoxSetting *HostXNvidiaConnection;
+ HostComboBoxSetting *HostXnVidiaTVformat;
+ HostComboBoxSetting *HostXnVidiaTVstandard;
public slots:
void AdvancedXNvidiaConnectionsGatherSettings();
@@ -23,20 +23,20 @@ signals:
};
-class AdvancedXNvidia_modelines: public TriggeredConfigurationGroup {
+class AdvancedXNvidia_modelines: public GroupSetting {
Q_OBJECT
public:
AdvancedXNvidia_modelines();
- HostComboBox *HostXNvidiaModelineCatagory;
- HostComboBox *HostXNvidiaadvancedresVESA;
- HostComboBox *HostXNvidiaadvancedresATSC;
- HostComboBox *HostXNvidiaadvancedresDVD;
- HostComboBox *HostXNvidiaadvancedresNTSC;
- HostComboBox *HostXNvidiaadvancedresCustom;
- HostCheckBox *HostXnVidia1080p;
- HostCheckBox *HostXnVidia1080i;
- HostCheckBox *HostXnVidia720p;
- HostCheckBox *HostXnVidia480p;
+ HostComboBoxSetting *HostXNvidiaModelineCatagory;
+ HostComboBoxSetting *HostXNvidiaadvancedresVESA;
+ HostComboBoxSetting *HostXNvidiaadvancedresATSC;
+ HostComboBoxSetting *HostXNvidiaadvancedresDVD;
+ HostComboBoxSetting *HostXNvidiaadvancedresNTSC;
+ HostComboBoxSetting *HostXNvidiaadvancedresCustom;
+ HostCheckBoxSetting *HostXnVidia1080p;
+ HostCheckBoxSetting *HostXnVidia1080i;
+ HostCheckBoxSetting *HostXnVidia720p;
+ HostCheckBoxSetting *HostXnVidia480p;
void Nvidia_fillselection(QString);
public slots:
void AdvancedXNvidia_modelines_GatherSettings(void);
@@ -45,11 +45,11 @@ public slots:
//-------------------------------------------------
-class AdvancedXcardtype: public TriggeredConfigurationGroup {
+class AdvancedXcardtype: public GroupSetting {
Q_OBJECT
public:
AdvancedXcardtype();
- HostComboBox *HostXcardtype;
+ HostComboBoxSetting *HostXcardtype;
public slots:
void AdvancedXcardgatherSettings();
@@ -60,34 +60,33 @@ signals:
};
-class AdvancedXSettings: public TriggeredConfigurationGroup {
+class AdvancedXSettings: public GroupSetting {
Q_OBJECT
public:
AdvancedXSettings();
- HostCheckBox *HostXIgnoreConfig;
+ HostCheckBoxSetting *HostXIgnoreConfig;
protected slots:
void ADJUSTEDID(void);
};
-class AdvancedXGeneric_modelines: public TriggeredConfigurationGroup {
+class AdvancedXGeneric_modelines: public GroupSetting {
Q_OBJECT
public:
AdvancedXGeneric_modelines();
- HostComboBox *HostXModelineCatagory;
- HostComboBox *HostXadvancedresVESA;
- HostComboBox *HostXadvancedresATSC;
- HostComboBox *HostXadvancedresDVD;
- HostComboBox *HostXadvancedresNTSC;
- HostComboBox *HostXadvancedresCustom;
+ HostComboBoxSetting *HostXModelineCatagory;
+ HostComboBoxSetting *HostXadvancedresVESA;
+ HostComboBoxSetting *HostXadvancedresATSC;
+ HostComboBoxSetting *HostXadvancedresDVD;
+ HostComboBoxSetting *HostXadvancedresNTSC;
+ HostComboBoxSetting *HostXadvancedresCustom;
void generic_fillselection(QString);
public slots:
void AdvancedXGeneric_modelines_GatherSettings(void);
};
-class EDIDOptions : public ConfigurationWizard
-{
+class EDIDOptions : public GroupSetting {
public:
EDIDOptions();
};
@@ -101,10 +100,10 @@ void ReadDDCvalues();
#include <iostream>
-static HostComboBox *HostXres()
+static HostComboBoxSetting *HostXres()
//Used in the simple config
{
- HostComboBox *gc = new HostComboBox("HostXres");
+ HostComboBoxSetting *gc = new HostComboBoxSetting("HostXres");
gc->setLabel(QObject::tr("Initial Resolution"));
gc->addSelection("Auto") ;
gc->setHelpText(QObject::tr(""));
@@ -124,4 +123,3 @@ static HostComboBox *HostXres()
return gc;
}
-
diff --git a/abs/core/mythinstall/PKGBUILD b/abs/core/mythinstall/PKGBUILD
index 24a8235..76cce00 100644
--- a/abs/core/mythinstall/PKGBUILD
+++ b/abs/core/mythinstall/PKGBUILD
@@ -1,7 +1,7 @@
# Maintainer: Jams
pkgname=mythinstall
pkgver=8.6
-pkgrel=1
+pkgrel=2
pkgdesc="LinHES installer/systemconfig GUI."
arch=('x86_64')
depends=('mythtv>=30.0' 'LinHES-config')
diff --git a/abs/core/mythtv/stable-30/git_src/git_hash b/abs/core/mythtv/stable-30/git_src/git_hash
index 49df4ff..f40e231 100644
--- a/abs/core/mythtv/stable-30/git_src/git_hash
+++ b/abs/core/mythtv/stable-30/git_src/git_hash
@@ -1 +1 @@
-60cfb7c05ae21d0049537aaa66f8f70a836a1138
+c6b20b072e2ac3e9e158e9eaba478d99d43163ad
diff --git a/abs/core/mythtv/stable-30/git_src/git_hash_web b/abs/core/mythtv/stable-30/git_src/git_hash_web
index b192069..594dcdf 100644
--- a/abs/core/mythtv/stable-30/git_src/git_hash_web
+++ b/abs/core/mythtv/stable-30/git_src/git_hash_web
@@ -1 +1 @@
-8dc8a715aae7db7bbc3b857a337a4761af8341f7
+d80a66340a7120dcd1743468d1dc828b80f3ba89
diff --git a/abs/core/mythtv/stable-30/mythplugins/PKGBUILD b/abs/core/mythtv/stable-30/mythplugins/PKGBUILD
index 7828a2c..456471e 100644
--- a/abs/core/mythtv/stable-30/mythplugins/PKGBUILD
+++ b/abs/core/mythtv/stable-30/mythplugins/PKGBUILD
@@ -9,7 +9,7 @@ pkgname=('mytharchive'
'mythweather'
'mythzoneminder')
pkgver=30.0
-pkgrel=5
+pkgrel=12
arch=('x86_64')
url="http://www.mythtv.org"
license=('GPL')
diff --git a/abs/core/mythtv/stable-30/mythtv/PKGBUILD b/abs/core/mythtv/stable-30/mythtv/PKGBUILD
index 1aefb62..a12b1e4 100644
--- a/abs/core/mythtv/stable-30/mythtv/PKGBUILD
+++ b/abs/core/mythtv/stable-30/mythtv/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=mythtv
pkgver=30.0
-pkgrel=5
+pkgrel=13
commit_hash=`cat ../git_src/git_hash`
pkgdesc="A Homebrew PVR project $commit_hash"
arch=('x86_64')
@@ -31,13 +31,14 @@ patches=(
'autoskip_reduce_commskip_jumpback.patch'
'change_msg_types.patch'
# 'disable_mythnotification_tuner_failure.patch'
- 'searchMetatdataSelectedGrabber.patch'
+ 'searchMetatdataSelectedGrabber.patch' #MythTV Ticket 13429
'defaultThemeLinHES.patch'
'addEnableDisableAutoShutdownToSystemMenu.patch'
- 'mythfrontend_en_us.ts_Title_Case.patch'
- 'fixTranslations.patch'
- 'pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch'
- 'addHostnameIPtoMachineStatus.patch'
+ 'mythfrontend_en_us.ts_Title_Case.patch' #MythTV Ticket 13286
+ 'fixTranslations.patch' #MythTV Ticket 13286
+# 'pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch'
+ 'addHostnameIPtoMachineStatus.patch' #MythTV Ticket 13430
+ 'sortingPrefixesFixAn.patch'
'revertQTsettingsForMythinstall.patch'
)
@@ -136,9 +137,8 @@ md5sums=('fb5a87c52a31168a0c8fdde72f27cc45'
'0f674b9cad031ba1e03aaf6b5ee1499f'
'b0b238320fa78a4928dce2cea7c85071'
'8e4492d1777234a021f368bd6ee964ee'
- '208f46d91c5911e9572d300d89381d7b'
+ '55f9ed657dc84e3fe0c1462c05c57447'
'72404ebfec2f18536ccc10d8e2bc8757'
- 'd05eaf66c434a131c8efb4d87e99b402'
'b3ae1cc55f40c6953121415e08c166f4'
'73ad2f3bec8745f7a3bbf2169ee34db3'
'633cd853a89aeee5388daaad21ccec28')
diff --git a/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch b/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch
index 2669566..54198c5 100644
--- a/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch
+++ b/abs/core/mythtv/stable-30/mythtv/mythfrontend_en_us.ts_Title_Case.patch
@@ -1,5 +1,5 @@
--- src/mythtv/i18n/mythfrontend_en_us.ts.orig 2019-02-25 01:33:22.413248950 +0000
-+++ src/mythtv/i18n/mythfrontend_en_us.ts 2019-03-01 22:16:23.173068477 +0000
++++ src/mythtv/i18n/mythfrontend_en_us.ts 2019-03-22 15:12:46.665338437 +0000
@@ -4,21 +4,21 @@
<context>
<name>(Categories)</name>
@@ -2618,7 +2618,8 @@
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="2462"/>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="2510"/>
<source>If enabled, MythTV will always be on top</source>
- <translation>If enabled, MythTV will always be on top</translation>
+- <translation>If enabled, MythTV will always be on top</translation>
++ <translation>If enabled, MythTV will always be on top.</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="2470"/>
@@ -9675,31 +9676,32 @@
<source>Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you for this password when required</source>
- <translation>Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you for this password when required</translation>
+ <translation>Your iPhone, iPad, iPod Touch, or iTunes on your computer will prompt you for this password when required.</translation>
-+ </message>
-+ <message>
-+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="3297"/>
-+ <source>AirPlay - Password</source>
-+ <translation>AirPlay - Password</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="3140"/>
-+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="3308"/>
- <source>AirPlay full screen playback</source>
+- <source>AirPlay full screen playback</source>
- <translation>AirPlay full screen playback</translation>
-+ <translation>AirPlay Fullscreen Playback</translation>
++ <location filename="../programs/mythfrontend/globalsettings.cpp" line="3297"/>
++ <source>AirPlay - Password</source>
++ <translation>AirPlay - Password</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="3144"/>
-+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="3312"/>
- <source>During music playback, displays album cover and various media information in full screen mode</source>
- <translation>During music playback, displays album cover and various media information in full screen mode</translation>
+- <source>During music playback, displays album cover and various media information in full screen mode</source>
+- <translation>During music playback, displays album cover and various media information in full screen mode</translation>
++ <location filename="../programs/mythfrontend/globalsettings.cpp" line="3308"/>
++ <source>AirPlay full screen playback</source>
++ <translation>AirPlay Fullscreen Playback</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="3154"/>
- <source>All AirPlay settings take effect when you restart MythFrontend.</source>
- <translation>All AirPlay settings take effect when you restart MythFrontend.</translation>
-- </message>
-- <message>
++ <location filename="../programs/mythfrontend/globalsettings.cpp" line="3312"/>
++ <source>During music playback, displays album cover and various media information in full screen mode</source>
++ <translation>During music playback, displays album cover and various media information in full screen mode.</translation>
+ </message>
+ <message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="3165"/>
- <source>AirTunes RSA key couldn&apos;t be loaded. Check http://www.mythtv.org/wiki/AirTunes/AirPlay. Last Error: %1</source>
- <translation>AirTunes RSA key couldn&apos;t be loaded. Check http://www.mythtv.org/wiki/AirTunes/AirPlay. Last Error: %1</translation>
@@ -14712,8 +14714,7 @@
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="712"/>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="770"/>
<source>Example custom filter list: &apos;ivtc,denoise3d&apos;</source>
-- <translation>Example custom filter list: &apos;ivtc,denoise3d&apos;</translation>
-+ <translation>Example Custom Filter List: &apos;ivtc,denoise3d&apos;</translation>
+ <translation>Example custom filter list: &apos;ivtc,denoise3d&apos;</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="715"/>
@@ -14736,21 +14737,19 @@
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="920"/>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="978"/>
+ <source>Invalid frame rate specification(%1), discarded</source>
-+ <translation>Invalid Frame Rate Specification(%1), Discarded</translation>
++ <translation>Invalid Frame Rate Specification (%1), Discarded</translation>
+ </message>
+ <message>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="1057"/>
<source>Main deinterlacing method. %1</source>
-- <translation>Main deinterlacing method. %1</translation>
-+ <translation>Main Deinterlacing Method. %1</translation>
+ <translation>Main deinterlacing method. %1</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="927"/>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="1064"/>
<source>Fallback deinterlacing method. %1</source>
-- <translation>Fallback deinterlacing method. %1</translation>
-+ <translation>Fallback Deinterlacing Method. %1</translation>
-+ </message>
+ <translation>Fallback deinterlacing method. %1</translation>
+ </message>
+ <message>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="1089"/>
+ <source>Remove this profile item?</source>
@@ -14784,7 +14783,7 @@
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="1149"/>
+ <source>framerate</source>
+ <translation>framerate</translation>
- </message>
++ </message>
</context>
<context>
<name>PlaybackSettings</name>
@@ -15118,7 +15117,7 @@
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="1411"/>
<source>Selects how to sort a show&apos;s episodes</source>
- <translation>Selects how to sort a show&apos;s episodes</translation>
-+ <translation>Selects How to Sort a Show&apos;s Episodes</translation>
++ <translation>Selects how to sort a show&apos;s episodes.</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="1424"/>
@@ -15309,7 +15308,8 @@
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="1738"/>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="1754"/>
<source>Set the choice between viewing the current recording group in the OSD, or showing the &apos;Watch Recording&apos; screen when &apos;Jump to Program&apos; is activated. If enabled, the recordings are shown in the OSD</source>
- <translation>Set the choice between viewing the current recording group in the OSD, or showing the &apos;Watch Recording&apos; screen when &apos;Jump to Program&apos; is activated. If enabled, the recordings are shown in the OSD</translation>
+- <translation>Set the choice between viewing the current recording group in the OSD, or showing the &apos;Watch Recording&apos; screen when &apos;Jump to Program&apos; is activated. If enabled, the recordings are shown in the OSD</translation>
++ <translation>Set the choice between viewing the current recording group in the OSD, or showing the &apos;Watch Recording&apos; screen when &apos;Jump to Program&apos; is activated. If enabled, the recordings are shown in the OSD.</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="1751"/>
@@ -20624,13 +20624,14 @@
+ <location filename="../libs/libmythtv/videodisplayprofile.cpp" line="1801"/>
<source>OSD rendering method</source>
- <translation>OSD rendering method</translation>
-+ <translation>OSD Rendering Method</translation>
++ <translation>OSD rendering method.</translation>
</message>
<message>
- <location filename="../libs/libmythtv/videodisplayprofile.cpp" line="1433"/>
+ <location filename="../libs/libmythtv/videodisplayprofile.cpp" line="1807"/>
<source>Render the OSD using the XVideo chromakey feature.This renderer does not alpha blend but is the fastest OSD renderer for XVideo.</source>
- <translation>Render the OSD using the XVideo chromakey feature.This renderer does not alpha blend but is the fastest OSD renderer for XVideo.</translation>
+- <translation>Render the OSD using the XVideo chromakey feature.This renderer does not alpha blend but is the fastest OSD renderer for XVideo.</translation>
++ <translation>Render the OSD using the XVideo chromakey feature. This renderer does not alpha blend but is the fastest OSD renderer for XVideo.</translation>
</message>
<message>
- <location filename="../libs/libmythtv/videodisplayprofile.cpp" line="1437"/>
@@ -28909,7 +28910,8 @@
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="2298"/>
+ <location filename="../programs/mythfrontend/globalsettings.cpp" line="2361"/>
<source>Default refresh rate when watching a video. Leave at &quot;Auto&quot; to automatically use the best available</source>
- <translation>Default refresh rate when watching a video. Leave at &quot;Auto&quot; to automatically use the best available</translation>
+- <translation>Default refresh rate when watching a video. Leave at &quot;Auto&quot; to automatically use the best available</translation>
++ <translation>Default refresh rate when watching a video. Leave at &quot;Auto&quot; to automatically use the best available.</translation>
</message>
<message>
- <location filename="../programs/mythfrontend/globalsettings.cpp" line="2302"/>
diff --git a/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch b/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch
index 2845250..f164bb1 100644
--- a/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch
+++ b/abs/core/mythtv/stable-30/mythtv/pull103-Add-heuristic-in-TMDB-script-to-detect-movie-release-years.patch
@@ -1,14 +1,14 @@
---- src/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2017-02-23 13:18:12.000000000 +0100
-+++ src/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2017-02-25 13:12:40.213333328 +0100
-@@ -29,6 +29,7 @@
-
+--- src/mythtv/programs/scripts/metadata/Movie/tmdb3.py.orig 2019-06-12 14:43:30.593862061 +0000
++++ src/mythtv/programs/scripts/metadata/Movie/tmdb3.py 2019-06-12 14:55:34.110317249 +0000
+@@ -30,6 +30,7 @@
from optparse import OptionParser
import sys
+ import signal
+import re
- def buildSingle(inetref, opts):
- from MythTV.tmdb3.tmdb_exceptions import TMDBRequestInvalid
-@@ -122,11 +123,27 @@
+ def timeouthandler(signal, frame):
+ raise RuntimeError("Timed out")
+@@ -126,11 +127,27 @@
# replace all dashes from queries to work around search behavior
# as negative to all text that comes afterwards
query = query.replace('-',' ')
diff --git a/abs/core/mythtv/stable-30/mythtv/sortingPrefixesFixAn.patch b/abs/core/mythtv/stable-30/mythtv/sortingPrefixesFixAn.patch
new file mode 100644
index 0000000..3d1a380
--- /dev/null
+++ b/abs/core/mythtv/stable-30/mythtv/sortingPrefixesFixAn.patch
@@ -0,0 +1,12 @@
+diff --git a/mythtv/libs/libmythbase/mythsorthelper.cpp b/mythtv/libs/libmythbase/mythsorthelper.cpp
+index 642c42d8f4..b6f064cccd 100644
+--- a/mythtv/libs/libmythbase/mythsorthelper.cpp
++++ b/mythtv/libs/libmythbase/mythsorthelper.cpp
+@@ -14,7 +14,6 @@ void MythSortHelper::MythSortHelperCommon(void)
+ {
+ m_prefixes = tr("^(The |A |An )",
+ "Regular Expression for what to ignore when sorting");
+- m_prefixes = m_prefixes.trimmed();
+ if (not hasPrefixes()) {
+ // This language doesn't ignore any words when sorting
+ m_prefix_mode = SortPrefixKeep;
diff --git a/abs/core/mythtv/stable-30/mythweb/PKGBUILD b/abs/core/mythtv/stable-30/mythweb/PKGBUILD
index 17e8c04..47bf184 100644
--- a/abs/core/mythtv/stable-30/mythweb/PKGBUILD
+++ b/abs/core/mythtv/stable-30/mythweb/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=mythweb
pkgver=30.0
-pkgrel=1
+pkgrel=3
commit_hash=`cat ../git_src/git_hash_web`
pkgdesc="Web interface for MythTV's backend, $commit_hash"
arch=('x86_64')
diff --git a/abs/core/ncurses/PKGBUILD b/abs/core/ncurses/PKGBUILD
index 53e7682..2175cb3 100644
--- a/abs/core/ncurses/PKGBUILD
+++ b/abs/core/ncurses/PKGBUILD
@@ -1,36 +1,39 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=ncurses
-pkgver=6.1
-pkgrel=3
+pkgver=6.2
+_pkgver=${pkgver/+/-}
+pkgrel=1
pkgdesc='System V Release 4.0 curses emulation library'
arch=(x86_64)
-url='http://invisible-island.net/ncurses/ncurses.html'
+url='https://invisible-island.net/ncurses/ncurses.html'
license=(MIT)
depends=(glibc gcc-libs)
provides=(libncurses++w.so libformw.so libmenuw.so libpanelw.so libncursesw.so)
-#source=(http://invisible-mirror.net/archives/ncurses/current/ncurses-${_pkgver}.tgz{,.asc})
+replaces=(alacritty-terminfo)
source=(https://ftp.gnu.org/pub/gnu/ncurses/ncurses-$pkgver.tar.gz{,.sig})
-md5sums=('98c889aaf8d23910d2b92d65be2e737a'
+#source=(http://invisible-mirror.net/archives/ncurses/current/ncurses-${_pkgver}.tgz{,.asc})
+md5sums=('e812da327b1c2214ac1aed440ea3ae8d'
'SKIP')
validpgpkeys=('C52048C0C0748FEE227D47A2702353E0F7E48EDB') # Thomas Dickey
build() {
- cd $pkgname-$pkgver
+ cd $pkgname-$_pkgver
./configure --prefix=/usr --mandir=/usr/share/man \
--with-pkg-config-libdir=/usr/lib/pkgconfig \
--with-shared --with-normal --without-debug --without-ada \
- --enable-widec --enable-pc-files --with-cxx-binding --with-cxx-shared
+ --enable-widec --enable-pc-files --with-cxx-binding --with-cxx-shared \
+ --with-manpage-format=normal
make
}
package() {
- cd $pkgname-$pkgver
+ cd $pkgname-$_pkgver
make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
# fool packages looking to link to non-wide-character ncurses libraries
for lib in ncurses ncurses++ form panel menu; do
@@ -41,13 +44,10 @@ package() {
for lib in tic tinfo; do
echo "INPUT(libncursesw.so.${pkgver:0:1})" > "$pkgdir/usr/lib/lib${lib}.so"
ln -s libncursesw.so.${pkgver:0:1} "$pkgdir/usr/lib/lib${lib}.so.${pkgver:0:1}"
+ ln -s ncursesw.pc "$pkgdir/usr/lib/pkgconfig/${lib}.pc"
done
# some packages look for -lcurses during build
echo 'INPUT(-lncursesw)' > "$pkgdir/usr/lib/libcursesw.so"
ln -s libncurses.so "$pkgdir/usr/lib/libcurses.so"
-
- # install license, rip it from the readme
- install -d "$pkgdir/usr/share/licenses/$pkgname"
- grep -B 100 '$Id' README > "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
diff --git a/abs/core/nettle/PKGBUILD b/abs/core/nettle/PKGBUILD
index 486f7a3..a90d167 100644
--- a/abs/core/nettle/PKGBUILD
+++ b/abs/core/nettle/PKGBUILD
@@ -1,20 +1,19 @@
-# $Id$
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
# Contributor: bender02 at gmx dot com
pkgname=nettle
-pkgver=3.2
+pkgver=3.6
pkgrel=1
pkgdesc="A low-level cryptographic library"
-arch=('i686' 'x86_64')
-url="http://www.lysator.liu.se/~nisse/nettle/"
+arch=('x86_64')
+url="https://www.lysator.liu.se/~nisse/nettle"
license=('GPL2')
-install=$pkgname.install
depends=('gmp')
+provides=('libnettle.so' 'libhogweed.so')
checkdepends=('valgrind')
source=(https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz{,.sig})
-md5sums=('afb15b4764ebf1b4e6d06c62bd4d29e4'
- 'SKIP')
+sha256sums=('d24c0d0f2abffbc8f4f34dcf114b0f131ec3774895f3555922fe2f40f3d5e3f1'
+ 'SKIP')
validpgpkeys=('343C2FF0FBEE5EC2EDBEF399F3599FF828C67298') # Niels Möller <nisse@lysator.liu.se>
diff --git a/abs/core/nettle/nettle.install b/abs/core/nettle/nettle.install
deleted file mode 100644
index 3d19b5f..0000000
--- a/abs/core/nettle/nettle.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=/usr/share/info
-filelist=(nettle.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/abs/core/npth/PKGBUILD b/abs/core/npth/PKGBUILD
index 8ff7904..7c2e687 100644
--- a/abs/core/npth/PKGBUILD
+++ b/abs/core/npth/PKGBUILD
@@ -1,11 +1,10 @@
-# $Id$
# Maintainer: Gaetan Bisson <bisson@archlinux.org>
pkgname=npth
-pkgver=1.5
-pkgrel=1
+pkgver=1.6
+pkgrel=2
pkgdesc='New portable threads library'
-url='http://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git'
+url='https://git.gnupg.org/cgi-bin/gitweb.cgi?p=npth.git'
license=('LGPL')
options=('!libtool')
arch=('x86_64')
@@ -14,7 +13,7 @@ validpgpkeys=('D8692123C4065DEA5E0F3AB5249B39D24F25E3B6'
'031EC2536E580D8EA286A9F22071B08A33BD3F06'
'D238EA65D64C67ED4C3073F28A861B1C7EFD60D9')
source=("ftp://ftp.gnupg.org/gcrypt/${pkgname}/${pkgname}-${pkgver}.tar.bz2"{,.sig})
-sha256sums=('294a690c1f537b92ed829d867bee537e46be93fbd60b16c04630fbbfcd9db3c2'
+sha256sums=('1393abd9adcf0762d34798dc34fdcf4d0d22a8410721e76f1e3afcd1daa4e2d1'
'SKIP')
build() {
diff --git a/abs/core/openldap/PKGBUILD b/abs/core/openldap/PKGBUILD
index 304224d..4d1ed07 100644
--- a/abs/core/openldap/PKGBUILD
+++ b/abs/core/openldap/PKGBUILD
@@ -1,28 +1,22 @@
-# $Id$
# Maintainer:
pkgbase=openldap
pkgname=('openldap' 'libldap')
-pkgver=2.4.45
-pkgrel=4
+pkgver=2.4.53
+pkgrel=3
arch=('x86_64')
url="https://www.openldap.org/"
license=('custom')
-makedepends=('libltdl' 'libsasl' 'e2fsprogs' 'util-linux' 'chrpath' 'unixodbc')
+makedepends=('libtool' 'libsasl' 'e2fsprogs' 'util-linux' 'chrpath' 'unixodbc')
options=('!makeflags' 'emptydirs')
source=(https://www.openldap.org/software/download/OpenLDAP/openldap-release/${pkgbase}-${pkgver}.tgz
slapd.service openldap.tmpfiles openldap.sysusers openldap-ntlm.patch)
-sha1sums=('c98437385d3eaee80c9e2c09f3f0d4b7c140233d'
+sha1sums=('9a03db5cc02fd8b0afc5bf11fb10f7cd5260bcf0'
'2441815efbfa01ad7a1d39068e5503b53d1d04b0'
'1f68bd85fb50595c4e916db164d8e90e0c6e21ee'
'2bf64351c32b0bf0a70663bd42de22910998b795'
'e4afd9f1c810ef4c4cd8fe1101dfe5887f2b7eef')
-# see http://www.openldap.org/faq/data/cache/756.html
-# there's no proper backend support for anything apart from
-# BerkeleyDB, if we don't want to drop local backend server support
-# we are forced to keep Berkeley DB here
-
prepare() {
cd ${pkgbase}-${pkgver}
patch -p1 -i "${srcdir}"/openldap-ntlm.patch
@@ -41,6 +35,9 @@ build() {
--enable-crypt --enable-spasswd --enable-modules \
--enable-backends --disable-ndb --enable-overlays=mod \
--with-cyrus-sasl --with-threads
+
+ sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
+
make
make -C contrib/slapd-modules/nssov OPT="$CFLAGS $CPPFLAGS" prefix=/usr libexecdir=/usr/lib sysconfdir=/etc/openldap
@@ -78,7 +75,7 @@ package_libldap() {
package_openldap() {
pkgdesc="Lightweight Directory Access Protocol (LDAP) client and server"
- depends=("libldap>=${pkgver}" 'libltdl' 'unixodbc')
+ depends=("libldap>=${pkgver}" 'libtool' 'unixodbc' 'perl')
backup=('etc/openldap/slapd.conf' 'etc/openldap/slapd.ldif')
cd ${pkgbase}-${pkgver}
diff --git a/abs/core/openssh/PKGBUILD b/abs/core/openssh/PKGBUILD
index b180b75..a7c3f0d 100644
--- a/abs/core/openssh/PKGBUILD
+++ b/abs/core/openssh/PKGBUILD
@@ -1,44 +1,46 @@
-# $Id$
-# Maintainer: Gaetan Bisson <bisson@archlinux.org>
+# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org>
+# Contributor: Gaetan Bisson <bisson@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=openssh
-pkgver=7.6p1
-pkgrel=2
-pkgdesc='Free version of the SSH connectivity tools'
+pkgver=8.4p1
+pkgrel=1
+pkgdesc='Premier connectivity tool for remote login with the SSH protocol'
url='https://www.openssh.com/portable.html'
license=('custom:BSD')
arch=('x86_64')
-makedepends=('linux-headers')
-depends=('krb5' 'openssl' 'libedit' 'ldns')
+depends=('glibc' 'krb5' 'openssl' 'libedit' 'ldns' 'libxcrypt' 'libcrypt.so' 'zlib' 'pam')
+makedepends=('linux-headers' 'libfido2')
+checkdepends=('inetutils')
optdepends=('xorg-xauth: X11 forwarding'
- 'x11-ssh-askpass: input passphrase in X')
+ 'x11-ssh-askpass: input passphrase in X'
+ 'libfido2: FIDO/U2F support')
validpgpkeys=('59C2118ED206D927E667EBE3D3E5F56B6D920D30')
+#source=("git://anongit.mindrot.org/openssh.git?signed#tag=V_8_2_P1"
source=("https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/${pkgname}-${pkgver}.tar.gz"{,.asc}
- 'openssl-1.1.0.patch'
'sshdgenkeys.service'
- 'sshd@.service'
'sshd.service'
- 'sshd.socket'
'sshd.conf'
- 'sshd.pam')
-sha256sums=('a323caeeddfe145baaa0db16e98d784b1fbc7dd436a6bf1f479dfd5cd1d21723'
+ 'sshd.pam'
+ 'glibc-2.31.patch')
+sha256sums=('5a01d22e407eb1c05ba8a8f7c654d388a13e9f226e4ed33bd38748dafa1d2b24'
'SKIP'
- '1fcae9fc461026d96d08b38457e7ffe281b4319caaada1508f9eb74c2566ba5d'
'4031577db6416fcbaacf8a26a024ecd3939e5c10fe6a86ee3f0eea5093d533b7'
- '3a0845737207f4eda221c9c9fb64e766ade9684562d8ba4f705f7ae6826886e5'
- 'c5ed9fa629f8f8dbf3bae4edbad4441c36df535088553fe82695c52d7bde30aa'
- 'de14363e9d4ed92848e524036d9e6b57b2d35cc77d377b7247c38111d2a3defd'
+ 'e40f8b7c8e5e2ecf3084b3511a6c36d5b5c9f9e61f2bb13e3726c71dc7d4fbc7'
'4effac1186cc62617f44385415103021f72f674f8b8e26447fc1139c670090f6'
- '64576021515c0a98b0aaf0a0ae02e0f5ebe8ee525b1e647ab68f369f81ecd846')
+ '64576021515c0a98b0aaf0a0ae02e0f5ebe8ee525b1e647ab68f369f81ecd846'
+ '25b4a4d9e2d9d3289ef30636a30e85fa1c71dd930d5efd712cca1a01a5019f93')
backup=('etc/ssh/ssh_config' 'etc/ssh/sshd_config' 'etc/pam.d/sshd')
+install=install
+
prepare() {
- cd $pkgname-$pkgver
- # OpenSSL 1.1.0 patch from http://vega.pgw.jp/~kabe/vsd/patch/openssh-7.4p1-openssl-1.1.0c.patch.html
- patch -Np1 -i ../openssl-1.1.0.patch
+ cd "${srcdir}/${pkgname}-${pkgver}"
+
+ patch -p1 -i ../glibc-2.31.patch
+ autoreconf
}
build() {
@@ -49,8 +51,10 @@ build() {
--sbindir=/usr/bin \
--libexecdir=/usr/lib/ssh \
--sysconfdir=/etc/ssh \
+ --disable-strip \
--with-ldns \
--with-libedit \
+ --with-security-key-builtin \
--with-ssl-engine \
--with-pam \
--with-privsep-user=nobody \
@@ -84,9 +88,7 @@ package() {
install -Dm644 LICENCE "${pkgdir}/usr/share/licenses/${pkgname}/LICENCE"
install -Dm644 ../sshdgenkeys.service "${pkgdir}"/usr/lib/systemd/system/sshdgenkeys.service
- install -Dm644 ../sshd@.service "${pkgdir}"/usr/lib/systemd/system/sshd@.service
install -Dm644 ../sshd.service "${pkgdir}"/usr/lib/systemd/system/sshd.service
- install -Dm644 ../sshd.socket "${pkgdir}"/usr/lib/systemd/system/sshd.socket
install -Dm644 ../sshd.conf "${pkgdir}"/usr/lib/tmpfiles.d/sshd.conf
install -Dm644 ../sshd.pam "${pkgdir}"/etc/pam.d/sshd
diff --git a/abs/core/openssh/glibc-2.31.patch b/abs/core/openssh/glibc-2.31.patch
new file mode 100644
index 0000000..1870428
--- /dev/null
+++ b/abs/core/openssh/glibc-2.31.patch
@@ -0,0 +1,100 @@
+From beee0ef61866cb567b9abc23bd850f922e59e3f0 Mon Sep 17 00:00:00 2001
+From: Darren Tucker <dtucker@dtucker.net>
+Date: Wed, 13 Nov 2019 23:19:35 +1100
+Subject: [PATCH] seccomp: Allow clock_nanosleep() in sandbox.
+
+seccomp: Allow clock_nanosleep() to make OpenSSH working with latest
+glibc. Patch from Jakub Jelen <jjelen@redhat.com> via bz #3093.
+---
+ sandbox-seccomp-filter.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c
+index b5cda70bb..96ab141f7 100644
+--- a/sandbox-seccomp-filter.c
++++ b/sandbox-seccomp-filter.c
+@@ -242,6 +242,12 @@ static const struct sock_filter preauth_insns[] = {
+ #ifdef __NR_nanosleep
+ SC_ALLOW(__NR_nanosleep),
+ #endif
++#ifdef __NR_clock_nanosleep
++ SC_ALLOW(__NR_clock_nanosleep),
++#endif
++#ifdef __NR_clock_nanosleep
++ SC_ALLOW(__NR_clock_nanosleep),
++#endif
+ #ifdef __NR__newselect
+ SC_ALLOW(__NR__newselect),
+ #endif
+From 69298ebfc2c066acee5d187eac8ce9f38c796630 Mon Sep 17 00:00:00 2001
+From: Darren Tucker <dtucker@dtucker.net>
+Date: Wed, 13 Nov 2019 23:27:31 +1100
+Subject: [PATCH] Remove duplicate __NR_clock_nanosleep
+
+---
+ sandbox-seccomp-filter.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c
+index 96ab141f7..be2397671 100644
+--- a/sandbox-seccomp-filter.c
++++ b/sandbox-seccomp-filter.c
+@@ -245,9 +245,6 @@ static const struct sock_filter preauth_insns[] = {
+ #ifdef __NR_clock_nanosleep
+ SC_ALLOW(__NR_clock_nanosleep),
+ #endif
+-#ifdef __NR_clock_nanosleep
+- SC_ALLOW(__NR_clock_nanosleep),
+-#endif
+ #ifdef __NR__newselect
+ SC_ALLOW(__NR__newselect),
+ #endif
+From 030b4c2b8029563bc8a9fd764288fde08fa2347c Mon Sep 17 00:00:00 2001
+From: Darren Tucker <dtucker@dtucker.net>
+Date: Mon, 16 Dec 2019 13:55:56 +1100
+Subject: [PATCH] Allow clock_nanosleep_time64 in seccomp sandbox.
+
+Needed on Linux ARM. bz#3100, patch from jjelen@redhat.com.
+---
+ sandbox-seccomp-filter.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c
+index be2397671..3ef30c9d5 100644
+--- a/sandbox-seccomp-filter.c
++++ b/sandbox-seccomp-filter.c
+@@ -245,6 +245,9 @@ static const struct sock_filter preauth_insns[] = {
+ #ifdef __NR_clock_nanosleep
+ SC_ALLOW(__NR_clock_nanosleep),
+ #endif
++#ifdef __NR_clock_nanosleep_time64
++ SC_ALLOW(__NR_clock_nanosleep_time64),
++#endif
+ #ifdef __NR__newselect
+ SC_ALLOW(__NR__newselect),
+ #endif
+From a991cc5ed5a7c455fefe909a30cf082011ef5dff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 7 Jan 2020 16:26:45 -0800
+Subject: [PATCH] seccomp: Allow clock_gettime64() in sandbox.
+
+This helps sshd accept connections on mips platforms with
+upcoming glibc ( 2.31 )
+---
+ sandbox-seccomp-filter.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/sandbox-seccomp-filter.c b/sandbox-seccomp-filter.c
+index 3ef30c9d5..999c46c9f 100644
+--- a/sandbox-seccomp-filter.c
++++ b/sandbox-seccomp-filter.c
+@@ -248,6 +248,9 @@ static const struct sock_filter preauth_insns[] = {
+ #ifdef __NR_clock_nanosleep_time64
+ SC_ALLOW(__NR_clock_nanosleep_time64),
+ #endif
++#ifdef __NR_clock_gettime64
++ SC_ALLOW(__NR_clock_gettime64),
++#endif
+ #ifdef __NR__newselect
+ SC_ALLOW(__NR__newselect),
+ #endif
diff --git a/abs/core/openssh/install b/abs/core/openssh/install
new file mode 100644
index 0000000..47c1e77
--- /dev/null
+++ b/abs/core/openssh/install
@@ -0,0 +1,32 @@
+pre_upgrade() {
+ # Remove socket activation. See: https://bugs.archlinux.org/task/62248
+ if (( $(vercmp $2 8.0p1-3) < 0 )); then
+ if systemctl is-enabled -q sshd.socket; then
+ cat <<EOF
+==> This package no longer provides sshd.socket and sshd@.service;
+==> copies of those files will be placed under /etc/systemd/system
+==> but please migrate to sshd.service whenever possible.
+EOF
+ src=/usr/lib/systemd/system
+ dst=/etc/systemd/system
+ for i in sshd.socket sshd\@.service; do
+ if [[ ! -e "$dst/$i" ]]; then
+ cp -v "$src/$i" "$dst/$i"
+ fi
+ done
+ systemctl reenable sshd.socket
+ fi
+ fi
+}
+
+post_upgrade() {
+ if (( $(vercmp $2 8.2p1-3) < 0 )); then
+ if systemctl is-active sshd.service >/dev/null; then
+ cat <<EOF
+==> After this upgrade, your existing SSH daemon may be unable to accept
+==> new connections. To fix this, your SSH daemon will now be restarted.
+EOF
+ systemctl restart sshd.service
+ fi
+ fi
+}
diff --git a/abs/core/openssh/openssl-1.1.0.patch b/abs/core/openssh/openssl-1.1.0.patch
deleted file mode 100644
index f5454ac..0000000
--- a/abs/core/openssh/openssl-1.1.0.patch
+++ /dev/null
@@ -1,1982 +0,0 @@
-diff -Naur old/auth-pam.c new/auth-pam.c
---- old/auth-pam.c 2017-10-03 21:49:05.363829772 -1000
-+++ new/auth-pam.c 2017-10-03 21:55:50.869718862 -1000
-@@ -128,6 +128,10 @@
- typedef pthread_t sp_pthread_t;
- #else
- typedef pid_t sp_pthread_t;
-+# define pthread_create(a, b, c, d) _ssh_compat_pthread_create(a, b, c, d)
-+# define pthread_exit(a) _ssh_compat_pthread_exit(a)
-+# define pthread_cancel(a) _ssh_compat_pthread_cancel(a)
-+# define pthread_join(a, b) _ssh_compat_pthread_join(a, b)
- #endif
-
- struct pam_ctxt {
-diff -Naur old/cipher.c new/cipher.c
---- old/cipher.c 2017-10-03 21:49:05.367162904 -1000
-+++ new/cipher.c 2017-10-03 21:55:50.869718862 -1000
-@@ -297,7 +297,10 @@
- goto out;
- }
- }
-- if (EVP_CipherInit(cc->evp, NULL, (u_char *)key, NULL, -1) == 0) {
-+ /* in OpenSSL 1.1.0, EVP_CipherInit clears all previous setups;
-+ use EVP_CipherInit_ex for augmenting */
-+ if (EVP_CipherInit_ex(cc->evp, NULL, NULL, (u_char *)key, NULL, -1) == 0)
-+ {
- ret = SSH_ERR_LIBCRYPTO_ERROR;
- goto out;
- }
-@@ -486,7 +489,7 @@
- len, iv))
- return SSH_ERR_LIBCRYPTO_ERROR;
- } else
-- memcpy(iv, cc->evp->iv, len);
-+ memcpy(iv, EVP_CIPHER_CTX_iv(cc->evp), len);
- #endif
- return 0;
- }
-@@ -520,14 +523,19 @@
- EVP_CTRL_GCM_SET_IV_FIXED, -1, (void *)iv))
- return SSH_ERR_LIBCRYPTO_ERROR;
- } else
-- memcpy(cc->evp->iv, iv, evplen);
-+ memcpy(EVP_CIPHER_CTX_iv(cc->evp), iv, evplen);
- #endif
- return 0;
- }
-
- #ifdef WITH_OPENSSL
--#define EVP_X_STATE(evp) (evp)->cipher_data
--#define EVP_X_STATE_LEN(evp) (evp)->cipher->ctx_size
-+# if OPENSSL_VERSION_NUMBER >= 0x10100000UL
-+#define EVP_X_STATE(evp) EVP_CIPHER_CTX_get_cipher_data(evp)
-+#define EVP_X_STATE_LEN(evp) EVP_CIPHER_impl_ctx_size(EVP_CIPHER_CTX_cipher(evp))
-+# else
-+#define EVP_X_STATE(evp) (evp).cipher_data
-+#define EVP_X_STATE_LEN(evp) (evp).cipher->ctx_size
-+# endif
- #endif
-
- int
-diff -Naur old/cipher.h new/cipher.h
---- old/cipher.h 2017-10-03 21:49:05.367162904 -1000
-+++ new/cipher.h 2017-10-03 21:55:50.869718862 -1000
-@@ -46,7 +46,18 @@
- #define CIPHER_DECRYPT 0
-
- struct sshcipher;
-+#if 0
-+struct sshcipher_ctx {
-+ int plaintext;
-+ int encrypt;
-+ EVP_CIPHER_CTX *evp;
-+ struct chachapoly_ctx cp_ctx; /* XXX union with evp? */
-+ struct aesctr_ctx ac_ctx; /* XXX union with evp? */
-+ const struct sshcipher *cipher;
-+};
-+#else
- struct sshcipher_ctx;
-+#endif
-
- const struct sshcipher *cipher_by_name(const char *);
- const char *cipher_warning_message(const struct sshcipher_ctx *);
-diff -Naur old/configure new/configure
---- old/configure 2017-10-03 21:49:05.410493626 -1000
-+++ new/configure 2017-10-03 22:01:49.159050540 -1000
-@@ -12688,7 +12688,6 @@
- 100*) ;; # 1.0.x
- 200*) ;; # LibreSSL
- *)
-- as_fn_error $? "OpenSSL >= 1.1.0 is not yet supported (have \"$ssl_library_ver\")" "$LINENO" 5
- ;;
- esac
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ssl_library_ver" >&5
-diff -Naur old/dh.c new/dh.c
---- old/dh.c 2017-10-03 21:49:05.370496037 -1000
-+++ new/dh.c 2017-10-03 21:55:50.869718862 -1000
-@@ -212,14 +212,15 @@
- /* diffie-hellman-groupN-sha1 */
-
- int
--dh_pub_is_valid(DH *dh, BIGNUM *dh_pub)
-+dh_pub_is_valid(const DH *dh, const BIGNUM *dh_pub)
- {
- int i;
- int n = BN_num_bits(dh_pub);
- int bits_set = 0;
- BIGNUM *tmp;
-+ const BIGNUM *p;
-
-- if (dh_pub->neg) {
-+ if (BN_is_negative(dh_pub)) {
- logit("invalid public DH value: negative");
- return 0;
- }
-@@ -232,7 +233,8 @@
- error("%s: BN_new failed", __func__);
- return 0;
- }
-- if (!BN_sub(tmp, dh->p, BN_value_one()) ||
-+ DH_get0_pqg(dh, &p, NULL, NULL);
-+ if (!BN_sub(tmp, p, BN_value_one()) ||
- BN_cmp(dh_pub, tmp) != -1) { /* pub_exp > p-2 */
- BN_clear_free(tmp);
- logit("invalid public DH value: >= p-1");
-@@ -243,14 +245,14 @@
- for (i = 0; i <= n; i++)
- if (BN_is_bit_set(dh_pub, i))
- bits_set++;
-- debug2("bits set: %d/%d", bits_set, BN_num_bits(dh->p));
-+ debug2("bits set: %d/%d", bits_set, BN_num_bits(p));
-
- /*
- * if g==2 and bits_set==1 then computing log_g(dh_pub) is trivial
- */
- if (bits_set < 4) {
- logit("invalid public DH value (%d/%d)",
-- bits_set, BN_num_bits(dh->p));
-+ bits_set, BN_num_bits(p));
- return 0;
- }
- return 1;
-@@ -260,9 +262,13 @@
- dh_gen_key(DH *dh, int need)
- {
- int pbits;
-+ const BIGNUM *p, *pub_key;
-+ BIGNUM *priv_key;
-
-- if (need < 0 || dh->p == NULL ||
-- (pbits = BN_num_bits(dh->p)) <= 0 ||
-+ DH_get0_pqg(dh, &p, NULL, NULL);
-+
-+ if (need < 0 || p == NULL ||
-+ (pbits = BN_num_bits(p)) <= 0 ||
- need > INT_MAX / 2 || 2 * need > pbits)
- return SSH_ERR_INVALID_ARGUMENT;
- if (need < 256)
-@@ -271,10 +277,13 @@
- * Pollard Rho, Big step/Little Step attacks are O(sqrt(n)),
- * so double requested need here.
- */
-- dh->length = MINIMUM(need * 2, pbits - 1);
-- if (DH_generate_key(dh) == 0 ||
-- !dh_pub_is_valid(dh, dh->pub_key)) {
-- BN_clear_free(dh->priv_key);
-+ DH_set_length(dh, MIN(need * 2, pbits - 1));
-+ if (DH_generate_key(dh) == 0) {
-+ return SSH_ERR_LIBCRYPTO_ERROR;
-+ }
-+ DH_get0_key(dh, &pub_key, &priv_key);
-+ if (!dh_pub_is_valid(dh, pub_key)) {
-+ BN_clear(priv_key);
- return SSH_ERR_LIBCRYPTO_ERROR;
- }
- return 0;
-@@ -283,16 +292,27 @@
- DH *
- dh_new_group_asc(const char *gen, const char *modulus)
- {
-- DH *dh;
-+ DH *dh = NULL;
-+ BIGNUM *p=NULL, *g=NULL;
-
-- if ((dh = DH_new()) == NULL)
-- return NULL;
-- if (BN_hex2bn(&dh->p, modulus) == 0 ||
-- BN_hex2bn(&dh->g, gen) == 0) {
-- DH_free(dh);
-- return NULL;
-+ if ((dh = DH_new()) == NULL ||
-+ (p = BN_new()) == NULL ||
-+ (g = BN_new()) == NULL)
-+ goto null;
-+ if (BN_hex2bn(&p, modulus) == 0 ||
-+ BN_hex2bn(&g, gen) == 0) {
-+ goto null;
- }
-+ if (DH_set0_pqg(dh, p, NULL, g) == 0) {
-+ goto null;
-+ }
-+ p = g = NULL;
- return (dh);
-+null:
-+ BN_free(p);
-+ BN_free(g);
-+ DH_free(dh);
-+ return NULL;
- }
-
- /*
-@@ -307,8 +327,8 @@
-
- if ((dh = DH_new()) == NULL)
- return NULL;
-- dh->p = modulus;
-- dh->g = gen;
-+ if (DH_set0_pqg(dh, modulus, NULL, gen) == 0)
-+ return NULL;
-
- return (dh);
- }
-diff -Naur old/dh.h new/dh.h
---- old/dh.h 2017-10-03 21:49:05.370496037 -1000
-+++ new/dh.h 2017-10-03 21:55:50.869718862 -1000
-@@ -42,7 +42,7 @@
- DH *dh_new_group_fallback(int);
-
- int dh_gen_key(DH *, int);
--int dh_pub_is_valid(DH *, BIGNUM *);
-+int dh_pub_is_valid(const DH *, const BIGNUM *);
-
- u_int dh_estimate(int);
-
-diff -Naur old/digest-openssl.c new/digest-openssl.c
---- old/digest-openssl.c 2017-10-03 21:49:05.370496037 -1000
-+++ new/digest-openssl.c 2017-10-03 21:55:50.869718862 -1000
-@@ -43,7 +43,7 @@
-
- struct ssh_digest_ctx {
- int alg;
-- EVP_MD_CTX mdctx;
-+ EVP_MD_CTX *mdctx;
- };
-
- struct ssh_digest {
-@@ -106,20 +106,21 @@
- size_t
- ssh_digest_blocksize(struct ssh_digest_ctx *ctx)
- {
-- return EVP_MD_CTX_block_size(&ctx->mdctx);
-+ return EVP_MD_CTX_block_size(ctx->mdctx);
- }
-
- struct ssh_digest_ctx *
- ssh_digest_start(int alg)
- {
- const struct ssh_digest *digest = ssh_digest_by_alg(alg);
-- struct ssh_digest_ctx *ret;
-+ struct ssh_digest_ctx *ret = NULL;
-
- if (digest == NULL || ((ret = calloc(1, sizeof(*ret))) == NULL))
- return NULL;
- ret->alg = alg;
-- EVP_MD_CTX_init(&ret->mdctx);
-- if (EVP_DigestInit_ex(&ret->mdctx, digest->mdfunc(), NULL) != 1) {
-+ if ((ret->mdctx = EVP_MD_CTX_new()) == NULL ||
-+ EVP_DigestInit_ex(ret->mdctx, digest->mdfunc(), NULL) != 1) {
-+ EVP_MD_CTX_free(ret->mdctx);
- free(ret);
- return NULL;
- }
-@@ -132,7 +133,7 @@
- if (from->alg != to->alg)
- return SSH_ERR_INVALID_ARGUMENT;
- /* we have bcopy-style order while openssl has memcpy-style */
-- if (!EVP_MD_CTX_copy_ex(&to->mdctx, &from->mdctx))
-+ if (!EVP_MD_CTX_copy_ex(to->mdctx, from->mdctx))
- return SSH_ERR_LIBCRYPTO_ERROR;
- return 0;
- }
-@@ -140,7 +141,7 @@
- int
- ssh_digest_update(struct ssh_digest_ctx *ctx, const void *m, size_t mlen)
- {
-- if (EVP_DigestUpdate(&ctx->mdctx, m, mlen) != 1)
-+ if (EVP_DigestUpdate(ctx->mdctx, m, mlen) != 1)
- return SSH_ERR_LIBCRYPTO_ERROR;
- return 0;
- }
-@@ -161,7 +162,7 @@
- return SSH_ERR_INVALID_ARGUMENT;
- if (dlen < digest->digest_len) /* No truncation allowed */
- return SSH_ERR_INVALID_ARGUMENT;
-- if (EVP_DigestFinal_ex(&ctx->mdctx, d, &l) != 1)
-+ if (EVP_DigestFinal_ex(ctx->mdctx, d, &l) != 1)
- return SSH_ERR_LIBCRYPTO_ERROR;
- if (l != digest->digest_len) /* sanity */
- return SSH_ERR_INTERNAL_ERROR;
-@@ -172,7 +173,7 @@
- ssh_digest_free(struct ssh_digest_ctx *ctx)
- {
- if (ctx != NULL) {
-- EVP_MD_CTX_cleanup(&ctx->mdctx);
-+ EVP_MD_CTX_free(ctx->mdctx);
- explicit_bzero(ctx, sizeof(*ctx));
- free(ctx);
- }
-diff -Naur old/kexdhc.c new/kexdhc.c
---- old/kexdhc.c 2017-10-03 21:49:05.373829169 -1000
-+++ new/kexdhc.c 2017-10-03 21:55:50.869718862 -1000
-@@ -81,11 +81,16 @@
- goto out;
- }
- debug("sending SSH2_MSG_KEXDH_INIT");
-- if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0 ||
-- (r = sshpkt_start(ssh, SSH2_MSG_KEXDH_INIT)) != 0 ||
-- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 ||
-+ {
-+ const BIGNUM *pub_key;
-+ if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0)
-+ goto out;
-+ DH_get0_key(kex->dh, &pub_key, NULL);
-+ if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_INIT)) != 0 ||
-+ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 ||
- (r = sshpkt_send(ssh)) != 0)
- goto out;
-+ }
- #ifdef DEBUG_KEXDH
- DHparams_print_fp(stderr, kex->dh);
- fprintf(stderr, "pub= ");
-@@ -169,6 +174,9 @@
-
- /* calc and verify H */
- hashlen = sizeof(hash);
-+ {
-+ const BIGNUM *pub_key;
-+ DH_get0_key(kex->dh, &pub_key, NULL);
- if ((r = kex_dh_hash(
- kex->hash_alg,
- kex->client_version_string,
-@@ -176,11 +184,13 @@
- sshbuf_ptr(kex->my), sshbuf_len(kex->my),
- sshbuf_ptr(kex->peer), sshbuf_len(kex->peer),
- server_host_key_blob, sbloblen,
-- kex->dh->pub_key,
-+ pub_key,
- dh_server_pub,
- shared_secret,
-- hash, &hashlen)) != 0)
-+ hash, &hashlen)) != 0) {
- goto out;
-+ }
-+ }
-
- if ((r = sshkey_verify(server_host_key, signature, slen, hash, hashlen,
- ssh->compat)) != 0)
-diff -Naur old/kexdhs.c new/kexdhs.c
---- old/kexdhs.c 2017-10-03 21:49:05.373829169 -1000
-+++ new/kexdhs.c 2017-10-03 21:55:50.869718862 -1000
-@@ -87,6 +87,10 @@
- ssh_dispatch_set(ssh, SSH2_MSG_KEXDH_INIT, &input_kex_dh_init);
- r = 0;
- out:
-+ if (r != 0) {
-+ if (kex->dh) DH_free(kex->dh);
-+ kex->dh = NULL;
-+ }
- return r;
- }
-
-@@ -163,6 +167,9 @@
- goto out;
- /* calc H */
- hashlen = sizeof(hash);
-+ {
-+ const BIGNUM *pub_key;
-+ DH_get0_key(kex->dh, &pub_key, NULL);
- if ((r = kex_dh_hash(
- kex->hash_alg,
- kex->client_version_string,
-@@ -171,10 +178,12 @@
- sshbuf_ptr(kex->my), sshbuf_len(kex->my),
- server_host_key_blob, sbloblen,
- dh_client_pub,
-- kex->dh->pub_key,
-+ pub_key,
- shared_secret,
-- hash, &hashlen)) != 0)
-+ hash, &hashlen)) != 0) {
- goto out;
-+ }
-+ }
-
- /* save session id := H */
- if (kex->session_id == NULL) {
-@@ -195,12 +204,17 @@
- /* destroy_sensitive_data(); */
-
- /* send server hostkey, DH pubkey 'f' and singed H */
-+ {
-+ const BIGNUM *pub_key;
-+ DH_get0_key(kex->dh, &pub_key, NULL);
- if ((r = sshpkt_start(ssh, SSH2_MSG_KEXDH_REPLY)) != 0 ||
- (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 ||
-- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */
-+ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */
- (r = sshpkt_put_string(ssh, signature, slen)) != 0 ||
-- (r = sshpkt_send(ssh)) != 0)
-+ (r = sshpkt_send(ssh)) != 0) {
- goto out;
-+ }
-+ }
-
- if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0)
- r = kex_send_newkeys(ssh);
-diff -Naur old/kexgexc.c new/kexgexc.c
---- old/kexgexc.c 2017-10-03 21:49:05.373829169 -1000
-+++ new/kexgexc.c 2017-10-03 21:55:50.869718862 -1000
-@@ -118,11 +118,17 @@
- p = g = NULL; /* belong to kex->dh now */
-
- /* generate and send 'e', client DH public key */
-- if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0 ||
-- (r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_INIT)) != 0 ||
-- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 ||
-- (r = sshpkt_send(ssh)) != 0)
-+ {
-+ const BIGNUM *pub_key;
-+ if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0)
-+ goto out;
-+ DH_get0_key(kex->dh, &pub_key, NULL);
-+ if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_INIT)) != 0 ||
-+ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 ||
-+ (r = sshpkt_send(ssh)) != 0) {
- goto out;
-+ }
-+ }
- debug("SSH2_MSG_KEX_DH_GEX_INIT sent");
- #ifdef DEBUG_KEXDH
- DHparams_print_fp(stderr, kex->dh);
-@@ -134,10 +140,12 @@
- ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_REPLY, &input_kex_dh_gex_reply);
- r = 0;
- out:
-- if (p)
-+ if (r != 0) {
- BN_clear_free(p);
-- if (g)
- BN_clear_free(g);
-+ DH_free(kex->dh);
-+ kex->dh = NULL;
-+ }
- return r;
- }
-
-@@ -214,6 +222,10 @@
-
- /* calc and verify H */
- hashlen = sizeof(hash);
-+ {
-+ const BIGNUM *p, *g, *pub_key;
-+ DH_get0_pqg(kex->dh, &p, NULL, &g);
-+ DH_get0_key(kex->dh, &pub_key, NULL);
- if ((r = kexgex_hash(
- kex->hash_alg,
- kex->client_version_string,
-@@ -222,12 +234,14 @@
- sshbuf_ptr(kex->peer), sshbuf_len(kex->peer),
- server_host_key_blob, sbloblen,
- kex->min, kex->nbits, kex->max,
-- kex->dh->p, kex->dh->g,
-- kex->dh->pub_key,
-+ p, g,
-+ pub_key,
- dh_server_pub,
- shared_secret,
-- hash, &hashlen)) != 0)
-+ hash, &hashlen)) != 0) {
- goto out;
-+ }
-+ }
-
- if ((r = sshkey_verify(server_host_key, signature, slen, hash,
- hashlen, ssh->compat)) != 0)
-diff -Naur old/kexgexs.c new/kexgexs.c
---- old/kexgexs.c 2017-10-03 21:49:05.373829169 -1000
-+++ new/kexgexs.c 2017-10-03 21:55:50.869718862 -1000
-@@ -101,11 +101,16 @@
- goto out;
- }
- debug("SSH2_MSG_KEX_DH_GEX_GROUP sent");
-+ {
-+ const BIGNUM *p, *g;
-+ DH_get0_pqg(kex->dh, &p, NULL, &g);
- if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_GROUP)) != 0 ||
-- (r = sshpkt_put_bignum2(ssh, kex->dh->p)) != 0 ||
-- (r = sshpkt_put_bignum2(ssh, kex->dh->g)) != 0 ||
-- (r = sshpkt_send(ssh)) != 0)
-+ (r = sshpkt_put_bignum2(ssh, p)) != 0 ||
-+ (r = sshpkt_put_bignum2(ssh, g)) != 0 ||
-+ (r = sshpkt_send(ssh)) != 0) {
- goto out;
-+ }
-+ }
-
- /* Compute our exchange value in parallel with the client */
- if ((r = dh_gen_key(kex->dh, kex->we_need * 8)) != 0)
-@@ -115,6 +120,10 @@
- ssh_dispatch_set(ssh, SSH2_MSG_KEX_DH_GEX_INIT, &input_kex_dh_gex_init);
- r = 0;
- out:
-+ if (r != 0) {
-+ DH_free(kex->dh);
-+ kex->dh = NULL;
-+ }
- return r;
- }
-
-@@ -191,6 +200,10 @@
- goto out;
- /* calc H */
- hashlen = sizeof(hash);
-+ {
-+ const BIGNUM *p, *g, *pub_key;
-+ DH_get0_pqg(kex->dh, &p, NULL, &g);
-+ DH_get0_key(kex->dh, &pub_key, NULL);
- if ((r = kexgex_hash(
- kex->hash_alg,
- kex->client_version_string,
-@@ -199,12 +212,14 @@
- sshbuf_ptr(kex->my), sshbuf_len(kex->my),
- server_host_key_blob, sbloblen,
- kex->min, kex->nbits, kex->max,
-- kex->dh->p, kex->dh->g,
-+ p, g,
- dh_client_pub,
-- kex->dh->pub_key,
-+ pub_key,
- shared_secret,
-- hash, &hashlen)) != 0)
-+ hash, &hashlen)) != 0) {
- goto out;
-+ }
-+ }
-
- /* save session id := H */
- if (kex->session_id == NULL) {
-@@ -225,12 +240,17 @@
- /* destroy_sensitive_data(); */
-
- /* send server hostkey, DH pubkey 'f' and singed H */
-+ {
-+ const BIGNUM *pub_key;
-+ DH_get0_key(kex->dh, &pub_key, NULL);
- if ((r = sshpkt_start(ssh, SSH2_MSG_KEX_DH_GEX_REPLY)) != 0 ||
- (r = sshpkt_put_string(ssh, server_host_key_blob, sbloblen)) != 0 ||
-- (r = sshpkt_put_bignum2(ssh, kex->dh->pub_key)) != 0 || /* f */
-+ (r = sshpkt_put_bignum2(ssh, pub_key)) != 0 || /* f */
- (r = sshpkt_put_string(ssh, signature, slen)) != 0 ||
-- (r = sshpkt_send(ssh)) != 0)
-+ (r = sshpkt_send(ssh)) != 0) {
- goto out;
-+ }
-+ }
-
- if ((r = kex_derive_keys_bn(ssh, hash, hashlen, shared_secret)) == 0)
- r = kex_send_newkeys(ssh);
-diff -Naur old/monitor.c new/monitor.c
---- old/monitor.c 2017-10-03 21:49:05.377162302 -1000
-+++ new/monitor.c 2017-10-03 21:55:50.869718862 -1000
-@@ -586,10 +586,12 @@
- buffer_put_char(m, 0);
- return (0);
- } else {
-+ const BIGNUM *p, *g;
-+ DH_get0_pqg(dh, &p, NULL, &g);
- /* Send first bignum */
- buffer_put_char(m, 1);
-- buffer_put_bignum2(m, dh->p);
-- buffer_put_bignum2(m, dh->g);
-+ buffer_put_bignum2(m, p);
-+ buffer_put_bignum2(m, g);
-
- DH_free(dh);
- }
-diff -Naur old/openbsd-compat/openssl-compat.c new/openbsd-compat/openssl-compat.c
---- old/openbsd-compat/openssl-compat.c 2017-10-03 21:49:05.397161097 -1000
-+++ new/openbsd-compat/openssl-compat.c 2017-10-03 21:55:50.886387486 -1000
-@@ -75,7 +75,6 @@
- /* Enable use of crypto hardware */
- ENGINE_load_builtin_engines();
- ENGINE_register_all_complete();
-- OPENSSL_config(NULL);
- }
- #endif
-
-diff -Naur old/regress/unittests/sshkey/test_file.c new/regress/unittests/sshkey/test_file.c
---- old/regress/unittests/sshkey/test_file.c 2017-10-03 21:49:05.387161699 -1000
-+++ new/regress/unittests/sshkey/test_file.c 2017-10-03 21:55:50.883053761 -1000
-@@ -60,9 +60,14 @@
- a = load_bignum("rsa_1.param.n");
- b = load_bignum("rsa_1.param.p");
- c = load_bignum("rsa_1.param.q");
-- ASSERT_BIGNUM_EQ(k1->rsa->n, a);
-- ASSERT_BIGNUM_EQ(k1->rsa->p, b);
-- ASSERT_BIGNUM_EQ(k1->rsa->q, c);
-+ {
-+ const BIGNUM *n, *p, *q;
-+ RSA_get0_key(k1->rsa, &n, NULL, NULL);
-+ RSA_get0_factors(k1->rsa, &p, &q);
-+ ASSERT_BIGNUM_EQ(n, a);
-+ ASSERT_BIGNUM_EQ(p, b);
-+ ASSERT_BIGNUM_EQ(q, c);
-+ }
- BN_free(a);
- BN_free(b);
- BN_free(c);
-@@ -151,9 +156,14 @@
- a = load_bignum("dsa_1.param.g");
- b = load_bignum("dsa_1.param.priv");
- c = load_bignum("dsa_1.param.pub");
-- ASSERT_BIGNUM_EQ(k1->dsa->g, a);
-- ASSERT_BIGNUM_EQ(k1->dsa->priv_key, b);
-- ASSERT_BIGNUM_EQ(k1->dsa->pub_key, c);
-+ {
-+ const BIGNUM *g, *priv_key, *pub_key;
-+ DSA_get0_pqg(k1->dsa, NULL, NULL, &g);
-+ DSA_get0_key(k1->dsa, &pub_key, &priv_key);
-+ ASSERT_BIGNUM_EQ(g, a);
-+ ASSERT_BIGNUM_EQ(priv_key, b);
-+ ASSERT_BIGNUM_EQ(pub_key, c);
-+ }
- BN_free(a);
- BN_free(b);
- BN_free(c);
-diff -Naur old/regress/unittests/sshkey/test_sshkey.c new/regress/unittests/sshkey/test_sshkey.c
---- old/regress/unittests/sshkey/test_sshkey.c 2017-10-03 21:49:05.387161699 -1000
-+++ new/regress/unittests/sshkey/test_sshkey.c 2017-10-03 21:55:50.883053761 -1000
-@@ -197,9 +197,14 @@
- k1 = sshkey_new(KEY_RSA);
- ASSERT_PTR_NE(k1, NULL);
- ASSERT_PTR_NE(k1->rsa, NULL);
-- ASSERT_PTR_NE(k1->rsa->n, NULL);
-- ASSERT_PTR_NE(k1->rsa->e, NULL);
-- ASSERT_PTR_EQ(k1->rsa->p, NULL);
-+ {
-+ const BIGNUM *n, *e, *p;
-+ RSA_get0_key(k1->rsa, &n, &e, NULL);
-+ RSA_get0_factors(k1->rsa, &p, NULL);
-+ ASSERT_PTR_NE(n, NULL);
-+ ASSERT_PTR_NE(e, NULL);
-+ ASSERT_PTR_EQ(p, NULL);
-+ }
- sshkey_free(k1);
- TEST_DONE();
-
-@@ -207,8 +212,13 @@
- k1 = sshkey_new(KEY_DSA);
- ASSERT_PTR_NE(k1, NULL);
- ASSERT_PTR_NE(k1->dsa, NULL);
-- ASSERT_PTR_NE(k1->dsa->g, NULL);
-- ASSERT_PTR_EQ(k1->dsa->priv_key, NULL);
-+ {
-+ const BIGNUM *g, *priv_key;
-+ DSA_get0_pqg(k1->dsa, NULL, NULL, &g);
-+ DSA_get0_key(k1->dsa, NULL, &priv_key);
-+ ASSERT_PTR_NE(g, NULL);
-+ ASSERT_PTR_EQ(priv_key, NULL);
-+ }
- sshkey_free(k1);
- TEST_DONE();
-
-@@ -234,9 +244,14 @@
- k1 = sshkey_new_private(KEY_RSA);
- ASSERT_PTR_NE(k1, NULL);
- ASSERT_PTR_NE(k1->rsa, NULL);
-- ASSERT_PTR_NE(k1->rsa->n, NULL);
-- ASSERT_PTR_NE(k1->rsa->e, NULL);
-- ASSERT_PTR_NE(k1->rsa->p, NULL);
-+ {
-+ const BIGNUM *n, *e, *p;
-+ RSA_get0_key(k1->rsa, &n, &e, NULL);
-+ RSA_get0_factors(k1->rsa, &p, NULL);
-+ ASSERT_PTR_NE(n, NULL);
-+ ASSERT_PTR_NE(e, NULL);
-+ ASSERT_PTR_NE(p, NULL);
-+ }
- ASSERT_INT_EQ(sshkey_add_private(k1), 0);
- sshkey_free(k1);
- TEST_DONE();
-@@ -245,8 +260,13 @@
- k1 = sshkey_new_private(KEY_DSA);
- ASSERT_PTR_NE(k1, NULL);
- ASSERT_PTR_NE(k1->dsa, NULL);
-- ASSERT_PTR_NE(k1->dsa->g, NULL);
-- ASSERT_PTR_NE(k1->dsa->priv_key, NULL);
-+ {
-+ const BIGNUM *g, *priv_key;
-+ DSA_get0_pqg(k1->dsa, NULL, NULL, &g);
-+ DSA_get0_key(k1->dsa, NULL, &priv_key);
-+ ASSERT_PTR_NE(g, NULL);
-+ ASSERT_PTR_NE(priv_key, NULL);
-+ }
- ASSERT_INT_EQ(sshkey_add_private(k1), 0);
- sshkey_free(k1);
- TEST_DONE();
-@@ -285,18 +305,28 @@
- ASSERT_INT_EQ(sshkey_generate(KEY_RSA, 1024, &kr), 0);
- ASSERT_PTR_NE(kr, NULL);
- ASSERT_PTR_NE(kr->rsa, NULL);
-- ASSERT_PTR_NE(kr->rsa->n, NULL);
-- ASSERT_PTR_NE(kr->rsa->e, NULL);
-- ASSERT_PTR_NE(kr->rsa->p, NULL);
-- ASSERT_INT_EQ(BN_num_bits(kr->rsa->n), 1024);
-+ {
-+ const BIGNUM *n, *e, *p;
-+ RSA_get0_key(kr->rsa, &n, &e, NULL);
-+ RSA_get0_factors(kr->rsa, &p, NULL);
-+ ASSERT_PTR_NE(n, NULL);
-+ ASSERT_PTR_NE(e, NULL);
-+ ASSERT_PTR_NE(p, NULL);
-+ ASSERT_INT_EQ(BN_num_bits(n), 1024);
-+ }
- TEST_DONE();
-
- TEST_START("generate KEY_DSA");
- ASSERT_INT_EQ(sshkey_generate(KEY_DSA, 1024, &kd), 0);
- ASSERT_PTR_NE(kd, NULL);
- ASSERT_PTR_NE(kd->dsa, NULL);
-- ASSERT_PTR_NE(kd->dsa->g, NULL);
-- ASSERT_PTR_NE(kd->dsa->priv_key, NULL);
-+ {
-+ const BIGNUM *g, *priv_key;
-+ DSA_get0_pqg(kd->dsa, NULL, NULL, &g);
-+ DSA_get0_key(kd->dsa, NULL, &priv_key);
-+ ASSERT_PTR_NE(g, NULL);
-+ ASSERT_PTR_NE(priv_key, NULL);
-+ }
- TEST_DONE();
-
- #ifdef OPENSSL_HAS_ECC
-@@ -323,9 +353,14 @@
- ASSERT_PTR_NE(kr, k1);
- ASSERT_INT_EQ(k1->type, KEY_RSA);
- ASSERT_PTR_NE(k1->rsa, NULL);
-- ASSERT_PTR_NE(k1->rsa->n, NULL);
-- ASSERT_PTR_NE(k1->rsa->e, NULL);
-- ASSERT_PTR_EQ(k1->rsa->p, NULL);
-+ {
-+ const BIGNUM *n, *e, *p;
-+ RSA_get0_key(k1->rsa, &n, &e, NULL);
-+ RSA_get0_factors(k1->rsa, &p, NULL);
-+ ASSERT_PTR_NE(n, NULL);
-+ ASSERT_PTR_NE(e, NULL);
-+ ASSERT_PTR_EQ(p, NULL);
-+ }
- TEST_DONE();
-
- TEST_START("equal KEY_RSA/demoted KEY_RSA");
-@@ -339,8 +374,13 @@
- ASSERT_PTR_NE(kd, k1);
- ASSERT_INT_EQ(k1->type, KEY_DSA);
- ASSERT_PTR_NE(k1->dsa, NULL);
-- ASSERT_PTR_NE(k1->dsa->g, NULL);
-- ASSERT_PTR_EQ(k1->dsa->priv_key, NULL);
-+ {
-+ const BIGNUM *g, *priv_key;
-+ DSA_get0_pqg(k1->dsa, NULL, NULL, &g);
-+ DSA_get0_key(k1->dsa, NULL, &priv_key);
-+ ASSERT_PTR_NE(g, NULL);
-+ ASSERT_PTR_EQ(priv_key, NULL);
-+ }
- TEST_DONE();
-
- TEST_START("equal KEY_DSA/demoted KEY_DSA");
-diff -Naur old/ssh-dss.c new/ssh-dss.c
---- old/ssh-dss.c 2017-10-03 21:49:05.403827361 -1000
-+++ new/ssh-dss.c 2017-10-03 21:55:50.869718862 -1000
-@@ -53,6 +53,7 @@
- DSA_SIG *sig = NULL;
- u_char digest[SSH_DIGEST_MAX_LENGTH], sigblob[SIGBLOB_LEN];
- size_t rlen, slen, len, dlen = ssh_digest_bytes(SSH_DIGEST_SHA1);
-+ const BIGNUM *r, *s;
- struct sshbuf *b = NULL;
- int ret = SSH_ERR_INVALID_ARGUMENT;
-
-@@ -76,15 +77,16 @@
- goto out;
- }
-
-- rlen = BN_num_bytes(sig->r);
-- slen = BN_num_bytes(sig->s);
-+ DSA_SIG_get0(sig, &r, &s);
-+ rlen = BN_num_bytes(r);
-+ slen = BN_num_bytes(s);
- if (rlen > INTBLOB_LEN || slen > INTBLOB_LEN) {
- ret = SSH_ERR_INTERNAL_ERROR;
- goto out;
- }
- explicit_bzero(sigblob, SIGBLOB_LEN);
-- BN_bn2bin(sig->r, sigblob + SIGBLOB_LEN - INTBLOB_LEN - rlen);
-- BN_bn2bin(sig->s, sigblob + SIGBLOB_LEN - slen);
-+ BN_bn2bin(r, sigblob + SIGBLOB_LEN - INTBLOB_LEN - rlen);
-+ BN_bn2bin(s, sigblob + SIGBLOB_LEN - slen);
-
- if (compat & SSH_BUG_SIGBLOB) {
- if (sigp != NULL) {
-@@ -176,17 +178,26 @@
- }
-
- /* parse signature */
-+ {
-+ BIGNUM *r=NULL, *s=NULL;
- if ((sig = DSA_SIG_new()) == NULL ||
-- (sig->r = BN_new()) == NULL ||
-- (sig->s = BN_new()) == NULL) {
-+ (r = BN_new()) == NULL ||
-+ (s = BN_new()) == NULL) {
- ret = SSH_ERR_ALLOC_FAIL;
-+ BN_free(r);
-+ BN_free(s);
- goto out;
- }
-- if ((BN_bin2bn(sigblob, INTBLOB_LEN, sig->r) == NULL) ||
-- (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, sig->s) == NULL)) {
-+ if ((BN_bin2bn(sigblob, INTBLOB_LEN, r) == NULL) ||
-+ (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, s) == NULL)) {
- ret = SSH_ERR_LIBCRYPTO_ERROR;
-+ BN_free(r);
-+ BN_free(s);
- goto out;
- }
-+ DSA_SIG_set0(sig, r, s);
-+ r = s = NULL;
-+ }
-
- /* sha1 the data */
- if ((ret = ssh_digest_memory(SSH_DIGEST_SHA1, data, datalen,
-diff -Naur old/ssh-ecdsa.c new/ssh-ecdsa.c
---- old/ssh-ecdsa.c 2017-10-03 21:49:05.403827361 -1000
-+++ new/ssh-ecdsa.c 2017-10-03 21:55:50.869718862 -1000
-@@ -80,9 +80,14 @@
- ret = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
-- if ((ret = sshbuf_put_bignum2(bb, sig->r)) != 0 ||
-- (ret = sshbuf_put_bignum2(bb, sig->s)) != 0)
-+ {
-+ const BIGNUM *r, *s;
-+ ECDSA_SIG_get0(sig, &r, &s);
-+ if ((ret = sshbuf_put_bignum2(bb, r)) != 0 ||
-+ (ret = sshbuf_put_bignum2(bb, s)) != 0) {
- goto out;
-+ }
-+ }
- if ((ret = sshbuf_put_cstring(b, sshkey_ssh_name_plain(key))) != 0 ||
- (ret = sshbuf_put_stringb(b, bb)) != 0)
- goto out;
-@@ -151,11 +156,27 @@
- ret = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
-- if (sshbuf_get_bignum2(sigbuf, sig->r) != 0 ||
-- sshbuf_get_bignum2(sigbuf, sig->s) != 0) {
-+ {
-+ BIGNUM *r=NULL, *s=NULL;
-+ if ((r = BN_new()) == NULL ||
-+ (s = BN_new()) == NULL) {
-+ ret = SSH_ERR_ALLOC_FAIL;
-+ goto out_rs;
-+ }
-+ if (sshbuf_get_bignum2(sigbuf, r) != 0 ||
-+ sshbuf_get_bignum2(sigbuf, s) != 0) {
- ret = SSH_ERR_INVALID_FORMAT;
-+ goto out_rs;
-+ }
-+ if (ECDSA_SIG_set0(sig, r, s) == 0) {
-+ ret = SSH_ERR_LIBCRYPTO_ERROR;
-+out_rs:
-+ BN_free(r);
-+ BN_free(s);
- goto out;
- }
-+ r = s = NULL;
-+ }
- if (sshbuf_len(sigbuf) != 0) {
- ret = SSH_ERR_UNEXPECTED_TRAILING_DATA;
- goto out;
-diff -Naur old/ssh-keygen.c new/ssh-keygen.c
---- old/ssh-keygen.c 2017-10-03 21:49:05.403827361 -1000
-+++ new/ssh-keygen.c 2017-10-03 21:55:50.869718862 -1000
-@@ -496,11 +496,33 @@
-
- switch (key->type) {
- case KEY_DSA:
-- buffer_get_bignum_bits(b, key->dsa->p);
-- buffer_get_bignum_bits(b, key->dsa->g);
-- buffer_get_bignum_bits(b, key->dsa->q);
-- buffer_get_bignum_bits(b, key->dsa->pub_key);
-- buffer_get_bignum_bits(b, key->dsa->priv_key);
-+ {
-+ BIGNUM *p=NULL, *g=NULL, *q=NULL, *pub_key=NULL, *priv_key=NULL;
-+ if ((p=BN_new()) == NULL ||
-+ (g=BN_new()) == NULL ||
-+ (q=BN_new()) == NULL ||
-+ (pub_key=BN_new()) == NULL ||
-+ (priv_key=BN_new()) == NULL) {
-+ BN_free(p);
-+ BN_free(g);
-+ BN_free(q);
-+ BN_free(pub_key);
-+ BN_free(priv_key);
-+ return NULL;
-+ }
-+ buffer_get_bignum_bits(b, p);
-+ buffer_get_bignum_bits(b, g);
-+ buffer_get_bignum_bits(b, q);
-+ buffer_get_bignum_bits(b, pub_key);
-+ buffer_get_bignum_bits(b, priv_key);
-+ if (DSA_set0_pqg(key->dsa, p, q, g) == 0 ||
-+ DSA_set0_key(key->dsa, pub_key, priv_key) == 0) {
-+ fatal("failed to set DSA key");
-+ BN_free(p); BN_free(g); BN_free(q);
-+ BN_free(pub_key); BN_free(priv_key);
-+ return NULL;
-+ }
-+ }
- break;
- case KEY_RSA:
- if ((r = sshbuf_get_u8(b, &e1)) != 0 ||
-@@ -517,16 +539,52 @@
- e += e3;
- debug("e %lx", e);
- }
-- if (!BN_set_word(key->rsa->e, e)) {
-+ {
-+ BIGNUM *rsa_e = NULL;
-+ BIGNUM *d=NULL, *n=NULL, *iqmp=NULL, *q=NULL, *p=NULL;
-+ BIGNUM *dmp1=NULL, *dmq1=NULL; /* dummy input to set in RSA_set0_crt_params */
-+ rsa_e = BN_new();
-+ if (!rsa_e || !BN_set_word(rsa_e, e)) {
-+ if (rsa_e) BN_free(rsa_e);
- sshbuf_free(b);
- sshkey_free(key);
- return NULL;
- }
-- buffer_get_bignum_bits(b, key->rsa->d);
-- buffer_get_bignum_bits(b, key->rsa->n);
-- buffer_get_bignum_bits(b, key->rsa->iqmp);
-- buffer_get_bignum_bits(b, key->rsa->q);
-- buffer_get_bignum_bits(b, key->rsa->p);
-+ if ((d=BN_new()) == NULL ||
-+ (n=BN_new()) == NULL ||
-+ (iqmp=BN_new()) == NULL ||
-+ (q=BN_new()) == NULL ||
-+ (p=BN_new()) == NULL ||
-+ (dmp1=BN_new()) == NULL ||
-+ (dmq1=BN_new()) == NULL) {
-+ BN_free(d); BN_free(n); BN_free(iqmp);
-+ BN_free(q); BN_free(p);
-+ BN_free(dmp1); BN_free(dmq1);
-+ return NULL;
-+ }
-+ BN_clear(dmp1); BN_clear(dmq1);
-+ buffer_get_bignum_bits(b, d);
-+ buffer_get_bignum_bits(b, n);
-+ buffer_get_bignum_bits(b, iqmp);
-+ buffer_get_bignum_bits(b, q);
-+ buffer_get_bignum_bits(b, p);
-+ if (RSA_set0_key(key->rsa, n, rsa_e, d) == 0)
-+ goto null;
-+ n = d = NULL;
-+ if (RSA_set0_factors(key->rsa, p, q) == 0)
-+ goto null;
-+ p = q = NULL;
-+ /* dmp1, dmq1 should not be NULL for initial set0 */
-+ if (RSA_set0_crt_params(key->rsa, dmp1, dmq1, iqmp) == 0) {
-+ null:
-+ fatal("Failed to set RSA parameters");
-+ BN_free(d); BN_free(n); BN_free(iqmp);
-+ BN_free(q); BN_free(p);
-+ BN_free(dmp1); BN_free(dmq1);
-+ return NULL;
-+ }
-+ dmp1 = dmq1 = iqmp = NULL;
-+ }
- if ((r = ssh_rsa_generate_additional_parameters(key)) != 0)
- fatal("generate RSA parameters failed: %s", ssh_err(r));
- break;
-@@ -636,7 +694,7 @@
- identity_file);
- }
- fclose(fp);
-- switch (EVP_PKEY_type(pubkey->type)) {
-+ switch (EVP_PKEY_type(EVP_PKEY_id(pubkey))) {
- case EVP_PKEY_RSA:
- if ((*k = sshkey_new(KEY_UNSPEC)) == NULL)
- fatal("sshkey_new failed");
-@@ -660,7 +718,7 @@
- #endif
- default:
- fatal("%s: unsupported pubkey type %d", __func__,
-- EVP_PKEY_type(pubkey->type));
-+ EVP_PKEY_type(EVP_PKEY_id(pubkey)));
- }
- EVP_PKEY_free(pubkey);
- return;
-diff -Naur old/ssh-pkcs11-client.c new/ssh-pkcs11-client.c
---- old/ssh-pkcs11-client.c 2017-10-03 21:49:05.403827361 -1000
-+++ new/ssh-pkcs11-client.c 2017-10-03 21:55:50.869718862 -1000
-@@ -143,12 +143,13 @@
- static int
- wrap_key(RSA *rsa)
- {
-- static RSA_METHOD helper_rsa;
-+ static RSA_METHOD *helper_rsa;
-
-- memcpy(&helper_rsa, RSA_get_default_method(), sizeof(helper_rsa));
-- helper_rsa.name = "ssh-pkcs11-helper";
-- helper_rsa.rsa_priv_enc = pkcs11_rsa_private_encrypt;
-- RSA_set_method(rsa, &helper_rsa);
-+ if ((helper_rsa = RSA_meth_dup(RSA_get_default_method())) == NULL)
-+ return (-1); /* XXX but caller isn't checking */
-+ RSA_meth_set1_name(helper_rsa, "ssh-pkcs11-helper");
-+ RSA_meth_set_priv_enc(helper_rsa, pkcs11_rsa_private_encrypt);
-+ RSA_set_method(rsa, helper_rsa);
- return (0);
- }
-
-diff -Naur old/ssh-pkcs11.c new/ssh-pkcs11.c
---- old/ssh-pkcs11.c 2017-10-03 21:49:05.403827361 -1000
-+++ new/ssh-pkcs11.c 2017-10-03 21:55:50.869718862 -1000
-@@ -67,7 +67,7 @@
- struct pkcs11_provider *provider;
- CK_ULONG slotidx;
- int (*orig_finish)(RSA *rsa);
-- RSA_METHOD rsa_method;
-+ RSA_METHOD *rsa_method;
- char *keyid;
- int keyid_len;
- };
-@@ -326,13 +326,15 @@
- k11->keyid = xmalloc(k11->keyid_len);
- memcpy(k11->keyid, keyid_attrib->pValue, k11->keyid_len);
- }
-- k11->orig_finish = def->finish;
-- memcpy(&k11->rsa_method, def, sizeof(k11->rsa_method));
-- k11->rsa_method.name = "pkcs11";
-- k11->rsa_method.rsa_priv_enc = pkcs11_rsa_private_encrypt;
-- k11->rsa_method.rsa_priv_dec = pkcs11_rsa_private_decrypt;
-- k11->rsa_method.finish = pkcs11_rsa_finish;
-- RSA_set_method(rsa, &k11->rsa_method);
-+ k11->orig_finish = RSA_meth_get_finish(def);
-+
-+ if ((k11->rsa_method = RSA_meth_new("pkcs11", RSA_meth_get_flags(def))) == NULL)
-+ return -1;
-+ RSA_meth_set_priv_enc(k11->rsa_method, pkcs11_rsa_private_encrypt);
-+ RSA_meth_set_priv_dec(k11->rsa_method, pkcs11_rsa_private_decrypt);
-+ RSA_meth_set_finish(k11->rsa_method, pkcs11_rsa_finish);
-+
-+ RSA_set_method(rsa, k11->rsa_method);
- RSA_set_app_data(rsa, k11);
- return (0);
- }
-@@ -512,10 +514,19 @@
- if ((rsa = RSA_new()) == NULL) {
- error("RSA_new failed");
- } else {
-- rsa->n = BN_bin2bn(attribs[1].pValue,
-- attribs[1].ulValueLen, NULL);
-- rsa->e = BN_bin2bn(attribs[2].pValue,
-- attribs[2].ulValueLen, NULL);
-+ BIGNUM *n=NULL, *e=NULL;
-+ n = BN_new();
-+ e = BN_new();
-+ if (n == NULL || e == NULL)
-+ error("BN_new alloc failed");
-+ if (BN_bin2bn(attribs[1].pValue,
-+ attribs[1].ulValueLen, n) == NULL ||
-+ BN_bin2bn(attribs[2].pValue,
-+ attribs[2].ulValueLen, e) == NULL)
-+ error("BN_bin2bn failed");
-+ if (RSA_set0_key(rsa, n, e, NULL) == 0)
-+ error("RSA_set0_key failed");
-+ n = e = NULL;
- }
- } else {
- cp = attribs[2].pValue;
-@@ -525,17 +536,20 @@
- == NULL) {
- error("d2i_X509 failed");
- } else if ((evp = X509_get_pubkey(x509)) == NULL ||
-- evp->type != EVP_PKEY_RSA ||
-- evp->pkey.rsa == NULL) {
-+ EVP_PKEY_id(evp) != EVP_PKEY_RSA ||
-+ EVP_PKEY_get0_RSA(evp) == NULL) {
- debug("X509_get_pubkey failed or no rsa");
-- } else if ((rsa = RSAPublicKey_dup(evp->pkey.rsa))
-+ } else if ((rsa = RSAPublicKey_dup(EVP_PKEY_get0_RSA(evp)))
- == NULL) {
- error("RSAPublicKey_dup");
- }
- if (x509)
- X509_free(x509);
- }
-- if (rsa && rsa->n && rsa->e &&
-+ {
-+ const BIGNUM *n, *e;
-+ RSA_get0_key(rsa, &n, &e, NULL);
-+ if (rsa && n && e &&
- pkcs11_rsa_wrap(p, slotidx, &attribs[0], rsa) == 0) {
- if ((key = sshkey_new(KEY_UNSPEC)) == NULL)
- fatal("sshkey_new failed");
-@@ -555,6 +569,7 @@
- } else if (rsa) {
- RSA_free(rsa);
- }
-+ }
- for (i = 0; i < 3; i++)
- free(attribs[i].pValue);
- }
-diff -Naur old/ssh-rsa.c new/ssh-rsa.c
---- old/ssh-rsa.c 2017-10-03 21:49:05.403827361 -1000
-+++ new/ssh-rsa.c 2017-10-03 22:06:32.005937158 -1000
-@@ -99,13 +99,27 @@
- }
- rsa = key->rsa;
-
-- if ((BN_sub(aux, rsa->q, BN_value_one()) == 0) ||
-- (BN_mod(rsa->dmq1, rsa->d, aux, ctx) == 0) ||
-- (BN_sub(aux, rsa->p, BN_value_one()) == 0) ||
-- (BN_mod(rsa->dmp1, rsa->d, aux, ctx) == 0)) {
-+ {
-+ const BIGNUM *q, *d, *p;
-+ BIGNUM *dmq1=NULL, *dmp1=NULL;
-+ if ((dmq1 = BN_new()) == NULL ||
-+ (dmp1 = BN_new()) == NULL ) {
-+ r = SSH_ERR_ALLOC_FAIL;
-+ goto out;
-+ }
-+ RSA_get0_key(rsa, NULL, NULL, &d);
-+ RSA_get0_factors(rsa, &p, &q);
-+ if ((BN_sub(aux, q, BN_value_one()) == 0) ||
-+ (BN_mod(dmq1, d, aux, ctx) == 0) ||
-+ (BN_sub(aux, p, BN_value_one()) == 0) ||
-+ (BN_mod(dmp1, d, aux, ctx) == 0) ||
-+ RSA_set0_crt_params(rsa, dmp1, dmq1, NULL) == 0) {
- r = SSH_ERR_LIBCRYPTO_ERROR;
-+ BN_clear_free(dmp1);
-+ BN_clear_free(dmq1);
- goto out;
- }
-+ }
- r = 0;
- out:
- BN_clear_free(aux);
-@@ -136,7 +150,7 @@
- if (key == NULL || key->rsa == NULL || hash_alg == -1 ||
- sshkey_type_plain(key->type) != KEY_RSA)
- return SSH_ERR_INVALID_ARGUMENT;
-- if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE)
-+ if (RSA_bits(key->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE)
- return SSH_ERR_KEY_LENGTH;
- slen = RSA_size(key->rsa);
- if (slen <= 0 || slen > SSHBUF_MAX_BIGNUM)
-@@ -210,7 +224,7 @@
- sshkey_type_plain(key->type) != KEY_RSA ||
- sig == NULL || siglen == 0)
- return SSH_ERR_INVALID_ARGUMENT;
-- if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE)
-+ if (RSA_bits(key->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE)
- return SSH_ERR_KEY_LENGTH;
-
- if ((b = sshbuf_from(sig, siglen)) == NULL)
-diff -Naur old/sshkey.c new/sshkey.c
---- old/sshkey.c 2017-10-03 21:49:05.407160494 -1000
-+++ new/sshkey.c 2017-10-03 22:16:31.124964276 -1000
-@@ -264,10 +264,18 @@
- #ifdef WITH_OPENSSL
- case KEY_RSA:
- case KEY_RSA_CERT:
-- return BN_num_bits(k->rsa->n);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000UL
-+ return RSA_bits(k->rsa);
-+#else
-+ return RSA_bits(key->rsa);
-+#endif
- case KEY_DSA:
- case KEY_DSA_CERT:
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000UL
-+ return DSA_bits(k->dsa);
-+#else
- return BN_num_bits(k->dsa->p);
-+#endif
- case KEY_ECDSA:
- case KEY_ECDSA_CERT:
- return sshkey_curve_nid_to_bits(k->ecdsa_nid);
-@@ -466,28 +474,55 @@
- #ifdef WITH_OPENSSL
- case KEY_RSA:
- case KEY_RSA_CERT:
-+ {
-+ BIGNUM *n=NULL, *e=NULL; /* just allocate */
- if ((rsa = RSA_new()) == NULL ||
-- (rsa->n = BN_new()) == NULL ||
-- (rsa->e = BN_new()) == NULL) {
-+ (n = BN_new()) == NULL ||
-+ (e = BN_new()) == NULL) {
-+ BN_free(n);
-+ BN_free(e);
- if (rsa != NULL)
- RSA_free(rsa);
- free(k);
- return NULL;
- }
-+ BN_clear(n); BN_clear(e);
-+ if (RSA_set0_key(rsa, n, e, NULL) == 0)
-+ return NULL;
-+ n = e = NULL;
-+ }
- k->rsa = rsa;
- break;
- case KEY_DSA:
- case KEY_DSA_CERT:
-+ {
-+ BIGNUM *p=NULL, *q=NULL, *g=NULL, *pubkey=NULL; /* just allocate */
- if ((dsa = DSA_new()) == NULL ||
-- (dsa->p = BN_new()) == NULL ||
-- (dsa->q = BN_new()) == NULL ||
-- (dsa->g = BN_new()) == NULL ||
-- (dsa->pub_key = BN_new()) == NULL) {
-+ (p = BN_new()) == NULL ||
-+ (q = BN_new()) == NULL ||
-+ (g = BN_new()) == NULL ||
-+ (pubkey = BN_new()) == NULL) {
-+ BN_free(p);
-+ BN_free(q);
-+ BN_free(g);
-+ BN_free(pubkey);
- if (dsa != NULL)
- DSA_free(dsa);
- free(k);
- return NULL;
- }
-+ if (DSA_set0_pqg(dsa, p, q, g) == 0) {
-+ BN_free(p); BN_free(q); BN_free(g);
-+ BN_free(pubkey);
-+ return NULL;
-+ }
-+ p = q = g = NULL;
-+ if (DSA_set0_key(dsa, pubkey, NULL) == 0) {
-+ BN_free(pubkey);
-+ return NULL;
-+ }
-+ pubkey = NULL;
-+ }
- k->dsa = dsa;
- break;
- case KEY_ECDSA:
-@@ -523,6 +558,51 @@
- #ifdef WITH_OPENSSL
- case KEY_RSA:
- case KEY_RSA_CERT:
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000UL
-+ /* Allocate BIGNUM. This is a mess.
-+ For OpenSSL 1.1.x API these shouldn't be mandatory,
-+ but some regression tests for non-NULL pointer of
-+ the data. */
-+#define new_or_dup(bn, nbn) \
-+ if (bn == NULL) { \
-+ if ((nbn = BN_new()) == NULL) \
-+ return SSH_ERR_ALLOC_FAIL; \
-+ } else { \
-+ /* otherwise use-after-free will occur */ \
-+ if ((nbn = BN_dup(bn)) == NULL) \
-+ return SSH_ERR_ALLOC_FAIL; \
-+ }
-+ {
-+ const BIGNUM *d, *iqmp, *q, *p, *dmq1, *dmp1; /* allocate if NULL */
-+ BIGNUM *nd, *niqmp, *nq, *np, *ndmq1, *ndmp1;
-+
-+ RSA_get0_key(k->rsa, NULL, NULL, &d);
-+ RSA_get0_factors(k->rsa, &p, &q);
-+ RSA_get0_crt_params(k->rsa, &dmp1, &dmq1, &iqmp);
-+
-+ new_or_dup(d, nd);
-+ new_or_dup(iqmp, niqmp);
-+ new_or_dup(q, nq);
-+ new_or_dup(p, np);
-+ new_or_dup(dmq1, ndmq1);
-+ new_or_dup(dmp1, ndmp1);
-+
-+ if (RSA_set0_key(k->rsa, NULL, NULL, nd) == 0)
-+ goto error1;
-+ nd = NULL;
-+ if (RSA_set0_factors(k->rsa, np, nq) == 0)
-+ goto error1;
-+ np = nq = NULL;
-+ if (RSA_set0_crt_params(k->rsa, ndmp1, ndmq1, niqmp) == 0) {
-+error1:
-+ BN_free(nd);
-+ BN_free(np); BN_free(nq);
-+ BN_free(ndmp1); BN_free(ndmq1); BN_free(niqmp);
-+ return SSH_ERR_LIBCRYPTO_ERROR;
-+ }
-+ ndmp1 = ndmq1 = niqmp = NULL;
-+ }
-+#else
- #define bn_maybe_alloc_failed(p) (p == NULL && (p = BN_new()) == NULL)
- if (bn_maybe_alloc_failed(k->rsa->d) ||
- bn_maybe_alloc_failed(k->rsa->iqmp) ||
-@@ -531,13 +611,28 @@
- bn_maybe_alloc_failed(k->rsa->dmq1) ||
- bn_maybe_alloc_failed(k->rsa->dmp1))
- return SSH_ERR_ALLOC_FAIL;
-+#endif
- break;
- case KEY_DSA:
- case KEY_DSA_CERT:
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000UL
-+ {
-+ const BIGNUM *priv_key;
-+ BIGNUM *npriv_key;
-+ DSA_get0_key(k->dsa, NULL, &priv_key);
-+ new_or_dup(priv_key, npriv_key);
-+ if (DSA_set0_key(k->dsa, NULL, npriv_key) == 0) {
-+ BN_free(npriv_key);
-+ return SSH_ERR_LIBCRYPTO_ERROR;
-+ }
-+ }
-+#else
- if (bn_maybe_alloc_failed(k->dsa->priv_key))
- return SSH_ERR_ALLOC_FAIL;
-+#endif
- break;
- #undef bn_maybe_alloc_failed
-+#undef new_or_dup
- case KEY_ECDSA:
- case KEY_ECDSA_CERT:
- /* Cannot do anything until we know the group */
-@@ -655,16 +750,34 @@
- #ifdef WITH_OPENSSL
- case KEY_RSA_CERT:
- case KEY_RSA:
-- return a->rsa != NULL && b->rsa != NULL &&
-- BN_cmp(a->rsa->e, b->rsa->e) == 0 &&
-- BN_cmp(a->rsa->n, b->rsa->n) == 0;
-+ {
-+ const BIGNUM *a_e, *b_e, *a_n, *b_n;
-+ const BIGNUM *a_d, *b_d;
-+ if (a->rsa == NULL) return 0;
-+ if (b->rsa == NULL) return 0;
-+ RSA_get0_key(a->rsa, &a_n, &a_e, &a_d);
-+ RSA_get0_key(b->rsa, &b_n, &b_e, &b_d);
-+ return
-+ BN_cmp(a_e, b_e) == 0 &&
-+ BN_cmp(a_n, b_n) == 0;
-+ }
- case KEY_DSA_CERT:
- case KEY_DSA:
-- return a->dsa != NULL && b->dsa != NULL &&
-- BN_cmp(a->dsa->p, b->dsa->p) == 0 &&
-- BN_cmp(a->dsa->q, b->dsa->q) == 0 &&
-- BN_cmp(a->dsa->g, b->dsa->g) == 0 &&
-- BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0;
-+ {
-+ const BIGNUM *a_p, *a_q, *a_g, *a_pub_key;
-+ const BIGNUM *b_p, *b_q, *b_g, *b_pub_key;
-+ if (a->dsa == NULL) return 0;
-+ if (b->dsa == NULL) return 0;
-+ DSA_get0_pqg(a->dsa, &a_p, &a_q, &a_g);
-+ DSA_get0_pqg(b->dsa, &b_p, &b_q, &b_g);
-+ DSA_get0_key(a->dsa, &a_pub_key, NULL);
-+ DSA_get0_key(b->dsa, &b_pub_key, NULL);
-+ return
-+ BN_cmp(a_p, b_p) == 0 &&
-+ BN_cmp(a_q, b_q) == 0 &&
-+ BN_cmp(a_g, b_g) == 0 &&
-+ BN_cmp(a_pub_key, b_pub_key) == 0;
-+ }
- # ifdef OPENSSL_HAS_ECC
- case KEY_ECDSA_CERT:
- case KEY_ECDSA:
-@@ -742,12 +855,17 @@
- case KEY_DSA:
- if (key->dsa == NULL)
- return SSH_ERR_INVALID_ARGUMENT;
-+ {
-+ const BIGNUM *p, *q, *g, *pub_key;
-+ DSA_get0_pqg(key->dsa, &p, &q, &g);
-+ DSA_get0_key(key->dsa, &pub_key, NULL);
- if ((ret = sshbuf_put_cstring(b, typename)) != 0 ||
-- (ret = sshbuf_put_bignum2(b, key->dsa->p)) != 0 ||
-- (ret = sshbuf_put_bignum2(b, key->dsa->q)) != 0 ||
-- (ret = sshbuf_put_bignum2(b, key->dsa->g)) != 0 ||
-- (ret = sshbuf_put_bignum2(b, key->dsa->pub_key)) != 0)
-+ (ret = sshbuf_put_bignum2(b, p)) != 0 ||
-+ (ret = sshbuf_put_bignum2(b, q)) != 0 ||
-+ (ret = sshbuf_put_bignum2(b, g)) != 0 ||
-+ (ret = sshbuf_put_bignum2(b, pub_key)) != 0)
- return ret;
-+ }
- break;
- # ifdef OPENSSL_HAS_ECC
- case KEY_ECDSA:
-@@ -763,10 +881,14 @@
- case KEY_RSA:
- if (key->rsa == NULL)
- return SSH_ERR_INVALID_ARGUMENT;
-+ {
-+ const BIGNUM *e, *n;
-+ RSA_get0_key(key->rsa, &n, &e, NULL);
- if ((ret = sshbuf_put_cstring(b, typename)) != 0 ||
-- (ret = sshbuf_put_bignum2(b, key->rsa->e)) != 0 ||
-- (ret = sshbuf_put_bignum2(b, key->rsa->n)) != 0)
-+ (ret = sshbuf_put_bignum2(b, e)) != 0 ||
-+ (ret = sshbuf_put_bignum2(b, n)) != 0)
- return ret;
-+ }
- break;
- #endif /* WITH_OPENSSL */
- case KEY_ED25519:
-@@ -1643,13 +1765,32 @@
- case KEY_DSA_CERT:
- if ((n = sshkey_new(k->type)) == NULL)
- return SSH_ERR_ALLOC_FAIL;
-- if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) ||
-- (BN_copy(n->dsa->q, k->dsa->q) == NULL) ||
-- (BN_copy(n->dsa->g, k->dsa->g) == NULL) ||
-- (BN_copy(n->dsa->pub_key, k->dsa->pub_key) == NULL)) {
-+ {
-+ const BIGNUM *p, *q, *g, *pub_key, *priv_key;
-+ BIGNUM *cp=NULL, *cq=NULL, *cg=NULL, *cpub_key=NULL;
-+ DSA_get0_pqg(k->dsa, &p, &q, &g);
-+ DSA_get0_key(k->dsa, &pub_key, &priv_key);
-+ if ((cp = BN_dup(p)) == NULL ||
-+ (cq = BN_dup(q)) == NULL ||
-+ (cg = BN_dup(g)) == NULL ||
-+ (cpub_key = BN_dup(pub_key)) == NULL) {
-+ BN_free(cp); BN_free(cq); BN_free(cg);
-+ BN_free(cpub_key);
- sshkey_free(n);
- return SSH_ERR_ALLOC_FAIL;
- }
-+ if (DSA_set0_pqg(n->dsa, cp, cq, cg) == 0)
-+ goto error1;
-+ cp = cq = cg = NULL;
-+ if (DSA_set0_key(n->dsa, cpub_key, NULL) == 0) {
-+error1:
-+ BN_free(cp); BN_free(cq); BN_free(cg);
-+ BN_free(cpub_key);
-+ sshkey_free(n);
-+ return SSH_ERR_LIBCRYPTO_ERROR;
-+ }
-+ cpub_key = NULL;
-+ }
- break;
- # ifdef OPENSSL_HAS_ECC
- case KEY_ECDSA:
-@@ -1673,11 +1814,23 @@
- case KEY_RSA_CERT:
- if ((n = sshkey_new(k->type)) == NULL)
- return SSH_ERR_ALLOC_FAIL;
-- if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) ||
-- (BN_copy(n->rsa->e, k->rsa->e) == NULL)) {
-+ {
-+ const BIGNUM *nn, *e, *d;
-+ BIGNUM *cn=NULL, *ce=NULL;
-+ RSA_get0_key(k->rsa, &nn, &e, &d);
-+ if ((cn = BN_dup(nn)) == NULL ||
-+ (ce = BN_dup(e)) == NULL ) {
-+ BN_free(cn); BN_free(ce);
- sshkey_free(n);
- return SSH_ERR_ALLOC_FAIL;
- }
-+ if (RSA_set0_key(n->rsa, cn, ce, NULL) == 0) {
-+ BN_free(cn); BN_free(ce);
-+ sshkey_free(n);
-+ return SSH_ERR_LIBCRYPTO_ERROR;
-+ }
-+ cn = ce = NULL;
-+ }
- break;
- #endif /* WITH_OPENSSL */
- case KEY_ED25519:
-@@ -1875,12 +2028,27 @@
- ret = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
-- if (sshbuf_get_bignum2(b, key->rsa->e) != 0 ||
-- sshbuf_get_bignum2(b, key->rsa->n) != 0) {
-+ {
-+ BIGNUM *e=NULL, *n=NULL;
-+ if ((e = BN_new()) == NULL ||
-+ (n = BN_new()) == NULL ) {
-+ ret = SSH_ERR_ALLOC_FAIL;
-+ BN_free(e); BN_free(n);
-+ goto out;
-+ }
-+ if (sshbuf_get_bignum2(b, e) != 0 ||
-+ sshbuf_get_bignum2(b, n) != 0) {
- ret = SSH_ERR_INVALID_FORMAT;
-+ BN_free(e); BN_free(n);
- goto out;
- }
-- if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
-+ if (RSA_set0_key(key->rsa, n, e, NULL) == 0) {
-+ BN_free(e); BN_free(n);
-+ return SSH_ERR_LIBCRYPTO_ERROR;
-+ }
-+ n = e = NULL;
-+ }
-+ if (RSA_bits(key->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
- ret = SSH_ERR_KEY_LENGTH;
- goto out;
- }
-@@ -1900,13 +2068,36 @@
- ret = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
-- if (sshbuf_get_bignum2(b, key->dsa->p) != 0 ||
-- sshbuf_get_bignum2(b, key->dsa->q) != 0 ||
-- sshbuf_get_bignum2(b, key->dsa->g) != 0 ||
-- sshbuf_get_bignum2(b, key->dsa->pub_key) != 0) {
-+ {
-+ BIGNUM *p=NULL, *q=NULL, *g=NULL, *pub_key=NULL;
-+ if ((p = BN_new()) == NULL ||
-+ (q = BN_new()) == NULL ||
-+ (g = BN_new()) == NULL ||
-+ (pub_key = BN_new()) == NULL) {
-+ ret = SSH_ERR_ALLOC_FAIL;
-+ goto error1;
-+ }
-+ if (sshbuf_get_bignum2(b, p) != 0 ||
-+ sshbuf_get_bignum2(b, q) != 0 ||
-+ sshbuf_get_bignum2(b, g) != 0 ||
-+ sshbuf_get_bignum2(b, pub_key) != 0) {
- ret = SSH_ERR_INVALID_FORMAT;
-+ goto error1;
-+ }
-+ if (DSA_set0_pqg(key->dsa, p, q, g) == 0) {
-+ ret = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error1;
-+ }
-+ p = q = g = NULL;
-+ if (DSA_set0_key(key->dsa, pub_key, NULL) == 0) {
-+ ret = SSH_ERR_LIBCRYPTO_ERROR;
-+error1:
-+ BN_free(p); BN_free(q); BN_free(g);
-+ BN_free(pub_key);
- goto out;
- }
-+ pub_key = NULL;
-+ }
- #ifdef DEBUG_PK
- DSA_print_fp(stderr, key->dsa, 8);
- #endif
-@@ -2140,26 +2331,63 @@
- goto fail;
- /* FALLTHROUGH */
- case KEY_RSA:
-- if ((pk->rsa = RSA_new()) == NULL ||
-- (pk->rsa->e = BN_dup(k->rsa->e)) == NULL ||
-- (pk->rsa->n = BN_dup(k->rsa->n)) == NULL) {
-+ if ((pk->rsa = RSA_new()) == NULL ){
- ret = SSH_ERR_ALLOC_FAIL;
- goto fail;
- }
-+ {
-+ const BIGNUM *ke, *kn;
-+ BIGNUM *pke=NULL, *pkn=NULL;
-+ RSA_get0_key(k->rsa, &kn, &ke, NULL);
-+ if ((pke = BN_dup(ke)) == NULL ||
-+ (pkn = BN_dup(kn)) == NULL) {
-+ ret = SSH_ERR_ALLOC_FAIL;
-+ BN_free(pke); BN_free(pkn);
-+ goto fail;
-+ }
-+ if (RSA_set0_key(pk->rsa, pkn, pke, NULL) == 0) {
-+ ret = SSH_ERR_LIBCRYPTO_ERROR;
-+ BN_free(pke); BN_free(pkn);
-+ goto fail;
-+ }
-+ pkn = pke = NULL;
-+ }
- break;
- case KEY_DSA_CERT:
- if ((ret = sshkey_cert_copy(k, pk)) != 0)
- goto fail;
- /* FALLTHROUGH */
- case KEY_DSA:
-- if ((pk->dsa = DSA_new()) == NULL ||
-- (pk->dsa->p = BN_dup(k->dsa->p)) == NULL ||
-- (pk->dsa->q = BN_dup(k->dsa->q)) == NULL ||
-- (pk->dsa->g = BN_dup(k->dsa->g)) == NULL ||
-- (pk->dsa->pub_key = BN_dup(k->dsa->pub_key)) == NULL) {
-+ if ((pk->dsa = DSA_new()) == NULL ) {
- ret = SSH_ERR_ALLOC_FAIL;
- goto fail;
- }
-+ {
-+ const BIGNUM *kp, *kq, *kg, *kpub_key;
-+ BIGNUM *pkp=NULL, *pkq=NULL, *pkg=NULL, *pkpub_key=NULL;
-+ DSA_get0_pqg(k->dsa, &kp, &kq, &kg);
-+ DSA_get0_key(k->dsa, &kpub_key, NULL);
-+ if ((pkp = BN_dup(kp)) == NULL ||
-+ (pkq = BN_dup(kq)) == NULL ||
-+ (pkg = BN_dup(kg)) == NULL ||
-+ (pkpub_key = BN_dup(kpub_key)) == NULL) {
-+ ret = SSH_ERR_ALLOC_FAIL;
-+ goto error1;
-+ }
-+ if (DSA_set0_pqg(pk->dsa, pkp, pkq, pkg) == 0) {
-+ ret = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error1;
-+ }
-+ pkp = pkq = pkg = NULL;
-+ if (DSA_set0_key(pk->dsa, pkpub_key, NULL) == 0) {
-+ ret = SSH_ERR_LIBCRYPTO_ERROR;
-+error1:
-+ BN_free(pkp); BN_free(pkq); BN_free(pkg);
-+ BN_free(pkpub_key);
-+ goto fail;
-+ }
-+ pkpub_key = NULL;
-+ }
- break;
- case KEY_ECDSA_CERT:
- if ((ret = sshkey_cert_copy(k, pk)) != 0)
-@@ -2281,11 +2509,17 @@
- switch (k->type) {
- #ifdef WITH_OPENSSL
- case KEY_DSA_CERT:
-- if ((ret = sshbuf_put_bignum2(cert, k->dsa->p)) != 0 ||
-- (ret = sshbuf_put_bignum2(cert, k->dsa->q)) != 0 ||
-- (ret = sshbuf_put_bignum2(cert, k->dsa->g)) != 0 ||
-- (ret = sshbuf_put_bignum2(cert, k->dsa->pub_key)) != 0)
-+ {
-+ const BIGNUM *p, *q, *g, *pub_key;
-+ DSA_get0_pqg(k->dsa, &p, &q, &g);
-+ DSA_get0_key(k->dsa, &pub_key, NULL);
-+ if ((ret = sshbuf_put_bignum2(cert, p)) != 0 ||
-+ (ret = sshbuf_put_bignum2(cert, q)) != 0 ||
-+ (ret = sshbuf_put_bignum2(cert, g)) != 0 ||
-+ (ret = sshbuf_put_bignum2(cert, pub_key)) != 0) {
- goto out;
-+ }
-+ }
- break;
- # ifdef OPENSSL_HAS_ECC
- case KEY_ECDSA_CERT:
-@@ -2298,9 +2532,15 @@
- break;
- # endif /* OPENSSL_HAS_ECC */
- case KEY_RSA_CERT:
-- if ((ret = sshbuf_put_bignum2(cert, k->rsa->e)) != 0 ||
-- (ret = sshbuf_put_bignum2(cert, k->rsa->n)) != 0)
-+ {
-+ const BIGNUM *e, *n;
-+ RSA_get0_key(k->rsa, &n, &e, NULL);
-+ if (n == NULL || e == NULL ||
-+ (ret = sshbuf_put_bignum2(cert, e)) != 0 ||
-+ (ret = sshbuf_put_bignum2(cert, n)) != 0) {
- goto out;
-+ }
-+ }
- break;
- #endif /* WITH_OPENSSL */
- case KEY_ED25519_CERT:
-@@ -2474,42 +2714,67 @@
- switch (key->type) {
- #ifdef WITH_OPENSSL
- case KEY_RSA:
-- if ((r = sshbuf_put_bignum2(b, key->rsa->n)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->e)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->d)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->iqmp)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->p)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->q)) != 0)
-+ {
-+ const BIGNUM *n, *e, *d, *iqmp, *p, *q;
-+ RSA_get0_key(key->rsa, &n, &e, &d);
-+ RSA_get0_crt_params(key->rsa, NULL, NULL, &iqmp);
-+ RSA_get0_factors(key->rsa, &p, &q);
-+ if ((r = sshbuf_put_bignum2(b, n)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, e)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, d)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, iqmp)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, p)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, q)) != 0) {
- goto out;
-+ }
-+ }
- break;
- case KEY_RSA_CERT:
- if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) {
- r = SSH_ERR_INVALID_ARGUMENT;
- goto out;
- }
-+ {
-+ const BIGNUM *d, *iqmp, *p, *q;
-+ RSA_get0_key(key->rsa, NULL, NULL, &d);
-+ RSA_get0_crt_params(key->rsa, NULL, NULL, &iqmp);
-+ RSA_get0_factors(key->rsa, &p, &q);
- if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->d)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->iqmp)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->p)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->rsa->q)) != 0)
-+ (r = sshbuf_put_bignum2(b, d)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, iqmp)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, p)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, q)) != 0) {
- goto out;
-+ }
-+ }
- break;
- case KEY_DSA:
-- if ((r = sshbuf_put_bignum2(b, key->dsa->p)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->dsa->q)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->dsa->g)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->dsa->pub_key)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->dsa->priv_key)) != 0)
-+ {
-+ const BIGNUM *p, *q, *g, *pub_key, *priv_key;
-+ DSA_get0_pqg(key->dsa, &p, &q, &g);
-+ DSA_get0_key(key->dsa, &pub_key, &priv_key);
-+ if ((r = sshbuf_put_bignum2(b, p)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, q)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, g)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, pub_key)) != 0 ||
-+ (r = sshbuf_put_bignum2(b, priv_key)) != 0) {
- goto out;
-+ }
-+ }
- break;
- case KEY_DSA_CERT:
- if (key->cert == NULL || sshbuf_len(key->cert->certblob) == 0) {
- r = SSH_ERR_INVALID_ARGUMENT;
- goto out;
- }
-+ {
-+ const BIGNUM *priv_key;
-+ DSA_get0_key(key->dsa, NULL, &priv_key);
- if ((r = sshbuf_put_stringb(b, key->cert->certblob)) != 0 ||
-- (r = sshbuf_put_bignum2(b, key->dsa->priv_key)) != 0)
-+ (r = sshbuf_put_bignum2(b, priv_key)) != 0) {
- goto out;
-+ }
-+ }
- break;
- # ifdef OPENSSL_HAS_ECC
- case KEY_ECDSA:
-@@ -2585,18 +2850,61 @@
- r = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
-- if ((r = sshbuf_get_bignum2(buf, k->dsa->p)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->dsa->q)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->dsa->g)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->dsa->pub_key)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->dsa->priv_key)) != 0)
-+ {
-+ BIGNUM *p=NULL, *q=NULL, *g=NULL, *pub_key=NULL, *priv_key=NULL;
-+ if ((p = BN_new()) == NULL ||
-+ (q = BN_new()) == NULL ||
-+ (g = BN_new()) == NULL ||
-+ (pub_key = BN_new()) == NULL ||
-+ (priv_key = BN_new()) == NULL) {
-+ r = SSH_ERR_ALLOC_FAIL;
-+ goto error1;
-+ }
-+ if (p == NULL || q == NULL || g == NULL ||
-+ pub_key == NULL || priv_key == NULL ||
-+ (r = sshbuf_get_bignum2(buf, p)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, q)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, g)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, pub_key)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, priv_key)) != 0) {
-+ goto error1;
-+ }
-+ if (DSA_set0_pqg(k->dsa, p, q, g) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error1;
-+ }
-+ p = q = g = NULL;
-+ if (DSA_set0_key(k->dsa, pub_key, priv_key) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+error1:
-+ BN_free(p); BN_free(q); BN_free(g);
-+ BN_free(pub_key); BN_free(priv_key);
- goto out;
-+ }
-+ pub_key = priv_key = NULL;
-+ }
- break;
- case KEY_DSA_CERT:
-- if ((r = sshkey_froms(buf, &k)) != 0 ||
-+ {
-+ BIGNUM *priv_key=NULL;
-+ if ((priv_key = BN_new()) == NULL) {
-+ r = SSH_ERR_ALLOC_FAIL;
-+ goto out;
-+ }
-+ if (priv_key == NULL ||
-+ (r = sshkey_froms(buf, &k)) != 0 ||
- (r = sshkey_add_private(k)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->dsa->priv_key)) != 0)
-+ (r = sshbuf_get_bignum2(buf, priv_key)) != 0) {
-+ BN_free(priv_key);
-+ goto out;
-+ }
-+ if (DSA_set0_key(k->dsa, NULL, priv_key) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ BN_free(priv_key);
- goto out;
-+ }
-+ priv_key = NULL;
-+ }
- break;
- # ifdef OPENSSL_HAS_ECC
- case KEY_ECDSA:
-@@ -2655,29 +2963,104 @@
- r = SSH_ERR_ALLOC_FAIL;
- goto out;
- }
-- if ((r = sshbuf_get_bignum2(buf, k->rsa->n)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->e)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->d)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->iqmp)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->p)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->q)) != 0 ||
-- (r = ssh_rsa_generate_additional_parameters(k)) != 0)
-+ {
-+ BIGNUM *n=NULL, *e=NULL, *d=NULL, *iqmp=NULL, *p=NULL, *q=NULL;
-+ BIGNUM *dmp1=NULL, *dmq1=NULL; /* dummy for RSA_set0_crt_params */
-+ if ((n = BN_new()) == NULL ||
-+ (e = BN_new()) == NULL ||
-+ (d = BN_new()) == NULL ||
-+ (iqmp = BN_new()) == NULL ||
-+ (p = BN_new()) == NULL ||
-+ (q = BN_new()) == NULL ||
-+ (dmp1 = BN_new()) == NULL ||
-+ (dmq1 = BN_new()) == NULL) {
-+ r = SSH_ERR_ALLOC_FAIL;
-+ goto error2;
-+ }
-+ BN_clear(dmp1); BN_clear(dmq1);
-+ if ((r = sshbuf_get_bignum2(buf, n)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, e)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, d)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, iqmp)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, p)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, q)) != 0) {
-+ goto error2;
-+ }
-+ if (RSA_set0_key(k->rsa, n, e, d) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error2;
-+ }
-+ n = e = d = NULL;
-+ /* dmp1,dmpq1 should be non NULL to set iqmp value */
-+ if (RSA_set0_crt_params(k->rsa, dmp1, dmq1, iqmp) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error2;
-+ }
-+ dmp1 = dmq1 = iqmp = NULL;
-+ if (RSA_set0_factors(k->rsa, p, q) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ error2:
-+ BN_free(n); BN_free(e); BN_free(d);
-+ BN_free(iqmp);
-+ BN_free(p); BN_free(q);
-+ BN_free(dmp1); BN_free(dmq1);
-+ goto out;
-+ }
-+ p = q = NULL;
-+ if ((r = ssh_rsa_generate_additional_parameters(k)) != 0) {
- goto out;
-- if (BN_num_bits(k->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
-+ }
-+ }
-+ if (RSA_bits(k->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
- r = SSH_ERR_KEY_LENGTH;
- goto out;
- }
- break;
- case KEY_RSA_CERT:
-+ {
-+ BIGNUM *d=NULL, *iqmp=NULL, *p=NULL, *q=NULL;
-+ BIGNUM *dmp1=NULL, *dmq1=NULL; /* dummy for RSA_set0_crt_params */
-+ if ((d = BN_new()) == NULL ||
-+ (iqmp = BN_new()) == NULL ||
-+ (p = BN_new()) == NULL ||
-+ (q = BN_new()) == NULL ||
-+ (dmp1 = BN_new()) == NULL ||
-+ (dmq1 = BN_new()) == NULL) {
-+ r = SSH_ERR_ALLOC_FAIL;
-+ goto error3;
-+ }
-+ BN_clear(dmp1); BN_clear(dmq1);
- if ((r = sshkey_froms(buf, &k)) != 0 ||
- (r = sshkey_add_private(k)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->d)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->iqmp)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->p)) != 0 ||
-- (r = sshbuf_get_bignum2(buf, k->rsa->q)) != 0 ||
-- (r = ssh_rsa_generate_additional_parameters(k)) != 0)
-+ (r = sshbuf_get_bignum2(buf, d)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, iqmp)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, p)) != 0 ||
-+ (r = sshbuf_get_bignum2(buf, q)) != 0) {
-+ goto error3;
-+ }
-+ if (RSA_set0_key(k->rsa, NULL, NULL, d) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error3;
-+ }
-+ /* dmp1,dmpq1 should be non NULL to set value */
-+ if (RSA_set0_crt_params(k->rsa, dmp1, dmq1, iqmp) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ goto error3;
-+ }
-+ dmp1 = dmq1 = iqmp = NULL;
-+ if (RSA_set0_factors(k->rsa, p, q) == 0) {
-+ r = SSH_ERR_LIBCRYPTO_ERROR;
-+ error3:
-+ BN_free(d); BN_free(iqmp);
-+ BN_free(p); BN_free(q);
-+ BN_free(dmp1); BN_free(dmq1);
- goto out;
-- if (BN_num_bits(k->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
-+ }
-+ p = q = NULL;
-+ if ((r = ssh_rsa_generate_additional_parameters(k)) != 0)
-+ goto out;
-+ }
-+ if (RSA_bits(k->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
- r = SSH_ERR_KEY_LENGTH;
- goto out;
- }
-@@ -3395,7 +3778,6 @@
- switch (pem_reason) {
- case EVP_R_BAD_DECRYPT:
- return SSH_ERR_KEY_WRONG_PASSPHRASE;
-- case EVP_R_BN_DECODE_ERROR:
- case EVP_R_DECODE_ERROR:
- #ifdef EVP_R_PRIVATE_KEY_DECODE_ERROR
- case EVP_R_PRIVATE_KEY_DECODE_ERROR:
-@@ -3460,7 +3842,7 @@
- r = convert_libcrypto_error();
- goto out;
- }
-- if (pk->type == EVP_PKEY_RSA &&
-+ if (EVP_PKEY_id(pk) == EVP_PKEY_RSA &&
- (type == KEY_UNSPEC || type == KEY_RSA)) {
- if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) {
- r = SSH_ERR_ALLOC_FAIL;
-@@ -3475,11 +3857,11 @@
- r = SSH_ERR_LIBCRYPTO_ERROR;
- goto out;
- }
-- if (BN_num_bits(prv->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
-+ if (RSA_bits(prv->rsa) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
- r = SSH_ERR_KEY_LENGTH;
- goto out;
- }
-- } else if (pk->type == EVP_PKEY_DSA &&
-+ } else if (EVP_PKEY_id(pk) == EVP_PKEY_DSA &&
- (type == KEY_UNSPEC || type == KEY_DSA)) {
- if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) {
- r = SSH_ERR_ALLOC_FAIL;
-@@ -3491,7 +3873,7 @@
- DSA_print_fp(stderr, prv->dsa, 8);
- #endif
- #ifdef OPENSSL_HAS_ECC
-- } else if (pk->type == EVP_PKEY_EC &&
-+ } else if (EVP_PKEY_id(pk) == EVP_PKEY_EC &&
- (type == KEY_UNSPEC || type == KEY_ECDSA)) {
- if ((prv = sshkey_new(KEY_UNSPEC)) == NULL) {
- r = SSH_ERR_ALLOC_FAIL;
diff --git a/abs/core/openssh/sshd.service b/abs/core/openssh/sshd.service
index 55ed953..a893724 100644
--- a/abs/core/openssh/sshd.service
+++ b/abs/core/openssh/sshd.service
@@ -12,6 +12,3 @@ Restart=always
[Install]
WantedBy=multi-user.target
-
-# This service file runs an SSH daemon that forks for each incoming connection.
-# If you prefer to spawn on-demand daemons, use sshd.socket and sshd@.service.
diff --git a/abs/core/openssh/sshd.socket b/abs/core/openssh/sshd.socket
deleted file mode 100644
index e09e328..0000000
--- a/abs/core/openssh/sshd.socket
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Conflicts=sshd.service
-Wants=sshdgenkeys.service
-
-[Socket]
-ListenStream=22
-Accept=yes
-
-[Install]
-WantedBy=sockets.target
diff --git a/abs/core/openssh/sshd@.service b/abs/core/openssh/sshd@.service
deleted file mode 100644
index 0201a9d..0000000
--- a/abs/core/openssh/sshd@.service
+++ /dev/null
@@ -1,9 +0,0 @@
-[Unit]
-Description=OpenSSH Per-Connection Daemon
-After=sshdgenkeys.service
-
-[Service]
-ExecStart=-/usr/bin/sshd -i
-StandardInput=socket
-StandardError=syslog
-KillMode=process
diff --git a/abs/core/openvpn/PKGBUILD b/abs/core/openvpn/PKGBUILD
new file mode 100644
index 0000000..53eae44
--- /dev/null
+++ b/abs/core/openvpn/PKGBUILD
@@ -0,0 +1,74 @@
+# Maintainer: Christian Hesse <mail@eworm.de>
+
+pkgname=openvpn
+pkgver=2.4.7
+pkgrel=1
+pkgdesc='An easy-to-use, robust and highly configurable VPN (Virtual Private Network)'
+arch=('x86_64')
+url='https://openvpn.net/index.php/open-source.html'
+depends=('openssl' 'lzo' 'iproute2' 'systemd' 'pkcs11-helper')
+optdepends=('easy-rsa: easy CA and certificate handling'
+ 'pam: authenticate via PAM')
+makedepends=('git' 'systemd')
+license=('custom')
+validpgpkeys=('F554A3687412CFFEBDEFE0A312F5F7B42F2B01E7' # OpenVPN - Security Mailing List <security@openvpn.net>
+ 'B62E6A2B4E56570B7BDC6BE01D829EFECA562812') # Gert Doering <gert@v6.de>
+source=("git+https://github.com/OpenVPN/openvpn.git#tag=v${pkgver}")
+#source=("git+https://github.com/OpenVPN/openvpn.git#tag=v${pkgver}?signed")
+sha256sums=('SKIP')
+
+prepare() {
+ cd "${srcdir}"/${pkgname}
+
+ autoreconf -i
+}
+
+build() {
+ mkdir "${srcdir}"/build
+ cd "${srcdir}"/build
+
+ "${srcdir}"/${pkgname}/configure \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --enable-iproute2 \
+ --enable-pkcs11 \
+ --enable-plugins \
+ --enable-systemd \
+ --enable-x509-alt-username
+ make
+}
+
+check() {
+ cd "${srcdir}"/build
+
+ make check
+}
+
+package() {
+ cd "${srcdir}"/build
+
+ # Install openvpn
+ make DESTDIR="${pkgdir}" install
+
+ # Create empty configuration directories
+ install -d -m0750 -g 90 "${pkgdir}"/etc/openvpn/{client,server}
+
+ # Install license
+ install -d -m0755 "${pkgdir}"/usr/share/licenses/openvpn/
+ ln -sf /usr/share/doc/openvpn/{COPYING,COPYRIGHT.GPL} "${pkgdir}"/usr/share/licenses/openvpn/
+
+ cd "${srcdir}"/${pkgname}
+
+ # Install examples
+ install -d -m0755 "${pkgdir}"/usr/share/openvpn
+ cp -r sample/sample-config-files "${pkgdir}"/usr/share/openvpn/examples
+
+ # Install contrib
+ for FILE in $(find contrib -type f); do
+ case "$(file --brief --mime-type "${FILE}")" in
+ "text/x-shellscript") install -D -m0755 "${FILE}" "${pkgdir}/usr/share/openvpn/${FILE}" ;;
+ *) install -D -m0644 "${FILE}" "${pkgdir}/usr/share/openvpn/${FILE}" ;;
+ esac
+ done
+}
+
diff --git a/abs/core/p11-kit/PKGBUILD b/abs/core/p11-kit/PKGBUILD
index 4b1f06d..256592d 100644
--- a/abs/core/p11-kit/PKGBUILD
+++ b/abs/core/p11-kit/PKGBUILD
@@ -1,63 +1,71 @@
-# $Id$
+# Maintainer: Jan Alexander Steffens (heftig) <heftig@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
-pkgname=p11-kit
-pkgver=0.23.9
+pkgbase=p11-kit
+pkgname=(p11-kit libp11-kit)
+pkgver=0.23.21
pkgrel=1
-pkgdesc="Provides a way to load and enumerate PKCS#11 modules"
-arch=(i686 x86_64)
+pkgdesc="Loads and enumerates PKCS#11 modules"
url="https://p11-glue.freedesktop.org"
+arch=(x86_64)
license=(BSD)
-depends=(glibc libtasn1 libffi)
-makedepends=(gtk-doc git)
-_commit=34cb047e20af02ef3d820a295e9e29f618b83bab # tags/0.23.9^0
-source=("git+https://github.com/p11-glue/p11-kit#commit=$_commit"
- libnssckbi-compat.patch)
-sha256sums=('SKIP'
- '8f763cdbc6c0ca6c5a7898f9fd6f3018b7ac5b1aca36f67c6c813343c2962962')
-validpgpkeys=('C0F67099B808FB063E2C81117BFB1108D92765AF')
-
-pkgver() {
- cd $pkgname
- git describe --tags | sed 's/-/+/g'
-}
+makedepends=(gtk-doc git meson libtasn1 libffi systemd bash-completion)
+source=("git+https://github.com/p11-glue/p11-kit?signed#tag=$pkgver")
+sha256sums=('SKIP')
+validpgpkeys=('C0F67099B808FB063E2C81117BFB1108D92765AF' # Stef Walter
+ '462225C3B46F34879FC8496CD605848ED7E69871') # Daiki Ueno
prepare() {
- cd $pkgname
-
- # Build and install an additional library (libnssckbi-p11-kit.so) which
- # is a copy of p11-kit-trust.so but uses the same label for root certs as
- # libnssckbi.so ("Builtin Object Token" instead of "Default Trust")
- # https://bugs.freedesktop.org/show_bug.cgi?id=66161
- patch -Np1 -i ../libnssckbi-compat.patch
-
- NOCONFIGURE=1 ./autogen.sh
+ cd p11-kit
}
build() {
- cd $pkgname
-
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --libexecdir=/usr/lib \
- --enable-doc \
- --with-module-path=/usr/lib/pkcs11 \
- --with-trust-paths=/etc/ca-certificates/trust-source:/usr/share/ca-certificates/trust-source
- make
+ arch-meson p11-kit build \
+ --buildtype debugoptimized \
+ -D gtk_doc=true \
+ -D man=true \
+ -D trust_paths=/etc/ca-certificates/trust-source:/usr/share/ca-certificates/trust-source
+ meson compile -C build
}
check() {
- cd $pkgname
- make check
+ meson test -C build --print-errorlogs
}
-package() {
- cd $pkgname
- make DESTDIR="$pkgdir" install
- install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+_pick() {
+ local p="$1" f d; shift
+ for f; do
+ d="$srcdir/$p/${f#$pkgdir/}"
+ mkdir -p "$(dirname "$d")"
+ mv "$f" "$d"
+ rmdir -p --ignore-fail-on-non-empty "$(dirname "$f")"
+ done
+}
+
+package_p11-kit() {
+ depends=("libp11-kit=$pkgver-$pkgrel" coreutils libp11-kit.so libsystemd.so)
+ install=p11-kit.install
+
+ DESTDIR="$pkgdir" meson install -C build
+ ln -sr "$pkgdir/usr/bin/update-ca-trust" "$pkgdir/usr/lib/p11-kit/trust-extract-compat"
+
+ # Split libp11-kit
+ _pick lib "$pkgdir"/usr/include
+ _pick lib "$pkgdir"/usr/lib/{p11-kit-proxy.so,libp11-kit.*}
+ _pick lib "$pkgdir"/usr/lib/{pkcs11,pkgconfig}
+ _pick lib "$pkgdir"/usr/share/{locale,p11-kit}
+
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit/COPYING
+}
+
+package_libp11-kit() {
+ pkgdesc+=" (library)"
+ depends=(glibc libtasn1 libffi)
+ provides=(libp11-kit.so)
+
+ mv lib/* "$pkgdir"
- ln -srf "$pkgdir/usr/bin/update-ca-trust" "$pkgdir/usr/lib/p11-kit/trust-extract-compat"
+ install -Dt "$pkgdir/usr/share/licenses/$pkgname" -m644 p11-kit/COPYING
}
# vim:set ts=2 sw=2 et:
diff --git a/abs/core/p11-kit/libnssckbi-compat.patch b/abs/core/p11-kit/libnssckbi-compat.patch
deleted file mode 100644
index d1b70a3..0000000
--- a/abs/core/p11-kit/libnssckbi-compat.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-diff -upr p11-kit-0.23.1.orig/trust/Makefile.am p11-kit-0.23.1/trust/Makefile.am
---- p11-kit-0.23.1.orig/trust/Makefile.am 2014-11-12 12:58:50.000000000 +0200
-+++ p11-kit-0.23.1/trust/Makefile.am 2015-03-30 16:43:35.275993032 +0300
-@@ -61,6 +61,20 @@ p11_kit_trust_la_LDFLAGS = \
-
- p11_kit_trust_la_SOURCES = $(TRUST_SRCS)
-
-+libnssckbi_compatdir = $(libdir)
-+libnssckbi_compat_LTLIBRARIES = \
-+ libnssckbi-p11-kit.la
-+
-+libnssckbi_p11_kit_la_CFLAGS = \
-+ -DLIBNSSCKBI_COMPAT \
-+ $(p11_kit_trust_la_CFLAGS)
-+
-+libnssckbi_p11_kit_la_LIBADD = $(p11_kit_trust_la_LIBADD)
-+
-+libnssckbi_p11_kit_la_LDFLAGS = $(p11_kit_trust_la_LDFLAGS)
-+
-+libnssckbi_p11_kit_la_SOURCES = $(p11_kit_trust_la_SOURCES)
-+
- libtrust_testable_la_LDFLAGS = \
- -no-undefined
-
-diff -upr p11-kit-0.23.1.orig/trust/module.c p11-kit-0.23.1/trust/module.c
---- p11-kit-0.23.1.orig/trust/module.c 2014-12-16 12:24:01.000000000 +0200
-+++ p11-kit-0.23.1/trust/module.c 2015-03-30 16:48:41.370360130 +0300
-@@ -196,7 +196,11 @@ create_tokens_inlock (p11_array *tokens,
- const char *label;
- } labels[] = {
- { "~/", "User Trust" },
-+#ifdef LIBNSSCKBI_COMPAT
-+ { DATA_DIR, "Builtin Object Token" },
-+#else
- { DATA_DIR, "Default Trust" },
-+#endif
- { SYSCONFDIR, "System Trust" },
- { NULL },
- };
-@@ -521,9 +525,15 @@ sys_C_GetSlotInfo (CK_SLOT_ID id,
- info->flags = CKF_TOKEN_PRESENT;
- strncpy ((char*)info->manufacturerID, MANUFACTURER_ID, 32);
-
-- /* If too long, copy the first 64 characters into buffer */
-- path = p11_token_get_path (token);
-+#ifdef LIBNSSCKBI_COMPAT
-+ /* Change description to match libnssckbi so HPKP works in Chromium */
-+ if (strcmp (p11_token_get_label (token), "Builtin Object Token" ) == 0)
-+ path = "NSS Builtin Objects";
-+ else
-+#endif
-+ path = p11_token_get_path (token);
- length = strlen (path);
-+ /* If too long, copy the first 64 characters into buffer */
- if (length > sizeof (info->slotDescription))
- length = sizeof (info->slotDescription);
- memset (info->slotDescription, ' ', sizeof (info->slotDescription));
diff --git a/abs/core/p11-kit/p11-kit.install b/abs/core/p11-kit/p11-kit.install
new file mode 100644
index 0000000..2f82c56
--- /dev/null
+++ b/abs/core/p11-kit/p11-kit.install
@@ -0,0 +1,23 @@
+_global_units() {
+ local unit=p11-kit-server.socket dir=/etc/systemd/user/sockets.target.wants
+
+ case $1 in
+ enable)
+ mkdir -p $dir
+ ln -sf /usr/lib/systemd/user/$unit $dir/$unit
+ ;;
+ disable)
+ rm -f $dir/$unit
+ rmdir -p --ignore-fail-on-non-empty $dir
+ ;;
+ esac
+}
+
+post_install() {
+ # Enable socket by default
+ _global_units enable
+}
+
+pre_remove() {
+ _global_units disable
+}
diff --git a/abs/core/pacman/PKGBUILD b/abs/core/pacman/PKGBUILD
index e30c4bd..582d60e 100644
--- a/abs/core/pacman/PKGBUILD
+++ b/abs/core/pacman/PKGBUILD
@@ -1,32 +1,35 @@
# vim: set ts=2 sw=2 et:
-# $Id$
# Maintainer: Dan McGee <dan@archlinux.org>
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=pacman
-pkgver=5.0.2
-pkgrel=2
+pkgver=5.2.2
+pkgrel=1
pkgdesc="A library-based package manager with dependency support"
arch=('x86_64')
-url="http://www.archlinux.org/pacman/"
+url="https://www.archlinux.org/pacman/"
license=('GPL')
-groups=('base' 'base-devel')
+groups=('base-devel')
depends=('bash' 'glibc' 'libarchive' 'curl'
'gpgme' 'pacman-mirrorlist' 'archlinux-keyring')
makedepends=('asciidoc')
-checkdepends=('python2' 'fakechroot')
-provides=('pacman-contrib')
-conflicts=('pacman-contrib')
-replaces=('pacman-contrib')
-backup=(etc/pacman.conf etc/makepkg.conf)
+checkdepends=('python' 'fakechroot')
+optdepends=('perl-locale-gettext: translation support in makepkg-template')
+provides=('libalpm.so')
+backup=(etc/pacman.conf
+ etc/makepkg.conf)
options=('strip' 'debug')
validpgpkeys=('6645B0A8C7005E78DB1D7864F99FFE0FEAE999BD' # Allan McRae <allan@archlinux.org>
'B8151B117037781095514CA7BBDFFC92306B1121') # Andrew Gregory (pacman) <andrew@archlinux.org>
source=(https://sources.archlinux.org/other/pacman/$pkgname-$pkgver.tar.gz{,.sig}
- pacman.conf.i686
- pacman.conf.x86_64
+ pacman.conf
makepkg-asroot.patch
makepkg.conf)
+sha256sums=('bb201a9f2fb53c28d011f661d50028efce6eef2c1d2a36728bdd0130189349a0'
+ 'SKIP'
+ '3353f363088c73f1f86a890547c0f87c7473e5caf43bbbc768c2e9a7397f2aa2'
+ '8a7019948c0917d70937a518a131b330a0adab66c1bd367ff4073046acf4c8a7'
+ '9c769f13c09a6f24c393a9762474eded2f269d8966e7764d9160d62232a7919b')
build() {
@@ -37,7 +40,6 @@ build() {
--with-scriptlet-shell=/usr/bin/bash \
--with-ldconfig=/usr/bin/ldconfig
make V=1
- make -C contrib
}
check() {
@@ -48,51 +50,14 @@ package() {
cd "$pkgname-$pkgver"
make DESTDIR="$pkgdir" install
- make DESTDIR="$pkgdir" -C contrib install
# install Arch specific stuff
install -dm755 "$pkgdir/etc"
- install -m644 "$srcdir/pacman.conf.$CARCH" "$pkgdir/etc/pacman.conf"
-
- case $CARCH in
- i686)
- mycarch="i686"
- mychost="i686-pc-linux-gnu"
- myflags="-march=i686"
- ;;
- x86_64)
- mycarch="x86_64"
- mychost="x86_64-pc-linux-gnu"
- myflags="-march=x86-64"
- ;;
- esac
-
- # set things correctly in the default conf file
+ install -m644 "$srcdir/pacman.conf" "$pkgdir/etc"
install -m644 "$srcdir/makepkg.conf" "$pkgdir/etc"
- sed -i "$pkgdir/etc/makepkg.conf" \
- -e "s|@CARCH[@]|$mycarch|g" \
- -e "s|@CHOST[@]|$mychost|g" \
- -e "s|@CARCHFLAGS[@]|$myflags|g"
-
- # put bash_completion in the right location
- install -dm755 "$pkgdir/usr/share/bash-completion/completions"
- mv "$pkgdir/etc/bash_completion.d/pacman" "$pkgdir/usr/share/bash-completion/completions"
- rmdir "$pkgdir/etc/bash_completion.d"
-
- for f in makepkg pacman-key; do
- ln -s pacman "$pkgdir/usr/share/bash-completion/completions/$f"
- done
-
- install -Dm644 contrib/PKGBUILD.vim "$pkgdir/usr/share/vim/vimfiles/syntax/PKGBUILD.vim"
#restore --asroot makepkg option
cd $pkgdir/usr/bin/
patch -p0 -i "$srcdir/makepkg-asroot.patch"
rm $pkgdir/usr/bin/makepkg.orig
}
-md5sums=('f36f5e7e95a89436febe1bcca874fc33'
- 'SKIP'
- 'bdb40c76225c2fd8874bd34b6a3f6ad7'
- 'c511ee4c7a86a37e8841440ede89300d'
- '4950b7c5adf80e082a726dd11b9cb12f'
- 'ce959232a30f1fbd33f536c76a9df198')
diff --git a/abs/core/pacman/makepkg-asroot.patch b/abs/core/pacman/makepkg-asroot.patch
index 8da3fb0..8169bd8 100644
--- a/abs/core/pacman/makepkg-asroot.patch
+++ b/abs/core/pacman/makepkg-asroot.patch
@@ -1,6 +1,6 @@
---- makepkg.orig 2016-04-22 15:35:51.860386914 +0000
-+++ makepkg 2016-04-22 15:39:19.543784899 +0000
-@@ -1917,7 +1917,7 @@
+--- makepkg.orig 2020-05-24 03:07:41.473343487 +0000
++++ makepkg 2020-05-24 03:39:17.572299608 +0000
+@@ -1027,7 +1027,7 @@
'help' 'holdver' 'ignorearch' 'install' 'key:' 'log' 'noarchive' 'nobuild'
'nocolor' 'nocheck' 'nodeps' 'noextract' 'noprepare' 'nosign' 'packagelist'
'printsrcinfo' 'repackage' 'rmdeps' 'sign' 'skipchecksums' 'skipinteg'
@@ -9,14 +9,15 @@
# Pacman Options
OPT_LONG+=('asdeps' 'noconfirm' 'needed' 'noprogressbar')
-@@ -2114,9 +2114,7 @@
+@@ -1173,9 +1173,8 @@
if (( ! INFAKEROOT )); then
if (( EUID == 0 )); then
- error "$(gettext "Running %s as root is not allowed as it can cause permanent,\n\
-catastrophic damage to your system.")" "makepkg"
-- exit 1 # $E_USER_ABORT
-+ :
+- exit $E_ROOT
++ plain "$(gettext "Running %s as root.")" "makepkg"
++ #exit $E_ROOT
fi
else
if [[ -z $FAKEROOTKEY ]]; then
diff --git a/abs/core/pacman/makepkg.conf b/abs/core/pacman/makepkg.conf
index 8fa4fb0..d8bf59e 100644
--- a/abs/core/pacman/makepkg.conf
+++ b/abs/core/pacman/makepkg.conf
@@ -1,3 +1,4 @@
+#!/hint/bash
#
# /etc/makepkg.conf
#
@@ -8,9 +9,10 @@
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
-DLAGENTS=('ftp::/usr/bin/curl -fC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
- 'http::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
- 'https::/usr/bin/curl -fLC - --retry 3 --retry-delay 3 -o %o %u'
+DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
+ 'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
+ 'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
+ 'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')
@@ -30,27 +32,27 @@ VCSCLIENTS=('bzr::bzr'
# ARCHITECTURE, COMPILE FLAGS
#########################################################################
#
-CARCH="@CARCH@"
-CHOST="@CHOST@"
+CARCH="x86_64"
+CHOST="x86_64-pc-linux-gnu"
#-- Compiler and Linker Flags
-# -march (or -mcpu) builds exclusively for an architecture
-# -mtune optimizes for an architecture, but builds for whole processor family
CPPFLAGS="-D_FORTIFY_SOURCE=2"
-CFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
-CXXFLAGS="@CARCHFLAGS@ -mtune=generic -O2 -pipe -fstack-protector-strong -fno-plt"
+CFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"
+CXXFLAGS="-march=x86-64 -mtune=generic -O2 -pipe -fno-plt"
LDFLAGS="-Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now"
+#RUSTFLAGS="-C opt-level=2"
#-- Make Flags: change this for DistCC/SMP systems
#MAKEFLAGS="-j2"
#-- Debugging flags
DEBUG_CFLAGS="-g -fvar-tracking-assignments"
DEBUG_CXXFLAGS="-g -fvar-tracking-assignments"
+#DEBUG_RUSTFLAGS="-C debuginfo=2"
#########################################################################
# BUILD ENVIRONMENT
#########################################################################
#
-# Defaults: BUILDENV=(!distcc color !ccache check !sign)
+# Defaults: BUILDENV=(!distcc !color !ccache check !sign)
# A negated environment option will do the opposite of the comments below.
#
#-- distcc: Use the Distributed C/C++/ObjC compiler
@@ -73,7 +75,7 @@ BUILDENV=(!distcc color !ccache check !sign)
# These are default values for the options=() settings
#########################################################################
#
-# Default: OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
+# Default: OPTIONS=(!strip docs libtool staticlibs emptydirs !zipman !purge !debug)
# A negated option will do the opposite of the comments below.
#
#-- strip: Strip symbols from binaries/libraries
@@ -83,13 +85,11 @@ BUILDENV=(!distcc color !ccache check !sign)
#-- emptydirs: Leave empty directories in packages
#-- zipman: Compress manual (man and info) pages in MAN_DIRS with gzip
#-- purge: Remove files specified by PURGE_TARGETS
-#-- upx: Compress binary executable files using UPX
-#-- optipng: Optimize PNG images with optipng
#-- debug: Add debugging flags as specified in DEBUG_* variables
#
-OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !optipng !upx !debug)
+OPTIONS=(strip docs !libtool !staticlibs emptydirs zipman purge !debug)
-#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
+#-- File integrity checks to use. Valid: md5, sha1, sha224, sha256, sha384, sha512, b2
INTEGRITY_CHECK=(md5)
#-- Options to be used when stripping binaries. See `man strip' for details.
STRIP_BINARIES="--strip-all"
@@ -103,6 +103,8 @@ MAN_DIRS=({usr{,/local}{,/share},opt/*}/{man,info})
DOC_DIRS=(usr/{,local/}{,share/}{doc,gtk-doc} opt/*/{doc,gtk-doc})
#-- Files to be removed from all packages (if purge is specified)
PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
+#-- Directory to store source code in for debug packages
+DBGSRCDIR="/usr/src/debug"
#########################################################################
# PACKAGE OUTPUT
@@ -130,18 +132,16 @@ PURGE_TARGETS=(usr/{,share}/info/dir .packlist *.pod)
COMPRESSGZ=(gzip -c -f -n)
COMPRESSBZ2=(bzip2 -c -f)
COMPRESSXZ=(xz -c -z -)
+COMPRESSZST=(zstd -c -z -q -)
COMPRESSLRZ=(lrzip -q)
COMPRESSLZO=(lzop -q)
COMPRESSZ=(compress -c -f)
+COMPRESSLZ4=(lz4 -q)
+COMPRESSLZ=(lzip -c -f)
#########################################################################
# EXTENSION DEFAULTS
#########################################################################
#
-# WARNING: Do NOT modify these variables unless you know what you are
-# doing.
-#
-PKGEXT='.pkg.tar.xz'
+PKGEXT='.pkg.tar.zst'
SRCEXT='.src.tar.gz'
-
-# vim: set ft=sh ts=2 sw=2 et:
diff --git a/abs/core/pacman/pacman.conf.x86_64 b/abs/core/pacman/pacman.conf
index 8ce6919..0a04238 100644
--- a/abs/core/pacman/pacman.conf.x86_64
+++ b/abs/core/pacman/pacman.conf
@@ -16,10 +16,9 @@
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
-#XferCommand = /usr/bin/curl -C - -f %u > %o
+#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
-#UseDelta = 0.7
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
diff --git a/abs/core/pacman/pacman.conf.i686 b/abs/core/pacman/pacman.conf.i686
deleted file mode 100644
index 0ea1570..0000000
--- a/abs/core/pacman/pacman.conf.i686
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-# /etc/pacman.conf
-#
-# See the pacman.conf(5) manpage for option and repository directives
-
-#
-# GENERAL OPTIONS
-#
-[options]
-# The following paths are commented out with their default values listed.
-# If you wish to use different paths, uncomment and update the paths.
-#RootDir = /
-#DBPath = /var/lib/pacman/
-#CacheDir = /var/cache/pacman/pkg/
-#LogFile = /var/log/pacman.log
-#GPGDir = /etc/pacman.d/gnupg/
-#HookDir = /etc/pacman.d/hooks/
-HoldPkg = pacman glibc
-#XferCommand = /usr/bin/curl -C - -f %u > %o
-#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
-#CleanMethod = KeepInstalled
-#UseDelta = 0.7
-Architecture = auto
-
-# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
-#IgnorePkg =
-#IgnoreGroup =
-
-#NoUpgrade =
-#NoExtract =
-
-# Misc options
-#UseSyslog
-#Color
-#TotalDownload
-CheckSpace
-#VerbosePkgLists
-
-# By default, pacman accepts packages signed by keys that its local keyring
-# trusts (see pacman-key and its man page), as well as unsigned packages.
-SigLevel = Required DatabaseOptional
-LocalFileSigLevel = Optional
-#RemoteFileSigLevel = Required
-
-# NOTE: You must run `pacman-key --init` before first using pacman; the local
-# keyring can then be populated with the keys of all official Arch Linux
-# packagers with `pacman-key --populate archlinux`.
-
-#
-# REPOSITORIES
-# - can be defined here or included from another file
-# - pacman will search repositories in the order defined here
-# - local/custom mirrors can be added here or in separate files
-# - repositories listed first will take precedence when packages
-# have identical names, regardless of version number
-# - URLs will have $repo replaced by the name of the current repo
-# - URLs will have $arch replaced by the name of the architecture
-#
-# Repository entries are of the format:
-# [repo-name]
-# Server = ServerName
-# Include = IncludePath
-#
-# The header [repo-name] is crucial - it must be present and
-# uncommented to enable the repo.
-#
-
-# The testing repositories are disabled by default. To enable, uncomment the
-# repo name header and Include lines. You can add preferred servers immediately
-# after the header, and they will be used before the default mirrors.
-
-#[testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[core]
-Include = /etc/pacman.d/mirrorlist
-
-[extra]
-Include = /etc/pacman.d/mirrorlist
-
-#[community-testing]
-#Include = /etc/pacman.d/mirrorlist
-
-[community]
-Include = /etc/pacman.d/mirrorlist
-
-# An example of a custom package repository. See the pacman manpage for
-# tips on creating your own repositories.
-#[custom]
-#SigLevel = Optional TrustAll
-#Server = file:///home/custompkgs
diff --git a/abs/core/pam/0e9b286afe1224b91ff00936058b084ad4b776e4.patch b/abs/core/pam/0e9b286afe1224b91ff00936058b084ad4b776e4.patch
new file mode 100644
index 0000000..5715b8f
--- /dev/null
+++ b/abs/core/pam/0e9b286afe1224b91ff00936058b084ad4b776e4.patch
@@ -0,0 +1,31 @@
+From 0e9b286afe1224b91ff00936058b084ad4b776e4 Mon Sep 17 00:00:00 2001
+From: ikerexxe <ipedrosa@redhat.com>
+Date: Tue, 16 Jun 2020 14:44:04 +0200
+Subject: [PATCH] pam_usertype: avoid determining if user exists
+
+Taking a look at the time for the password prompt to appear it was
+possible to determine if a user existed in a system. Solved it by
+matching the runtime until the password prompt was shown by always
+checking the password hash for an existing and a non-existing user.
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
+---
+ modules/pam_usertype/pam_usertype.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/modules/pam_usertype/pam_usertype.c b/modules/pam_usertype/pam_usertype.c
+index 2807c306..d03b73b5 100644
+--- a/modules/pam_usertype/pam_usertype.c
++++ b/modules/pam_usertype/pam_usertype.c
+@@ -139,8 +139,11 @@ pam_usertype_get_uid(struct pam_usertype_opts *opts,
+ "error retrieving information about user %s", username);
+ }
+
++ pam_modutil_getpwnam(pamh, "root");
++
+ return PAM_USER_UNKNOWN;
+ }
++ pam_modutil_getpwnam(pamh, "pam_usertype_non_existent:");
+
+ *_uid = pwd->pw_uid;
+
diff --git a/abs/core/pam/395915dae1571e10e2766c999974de864655ea3a.patch b/abs/core/pam/395915dae1571e10e2766c999974de864655ea3a.patch
new file mode 100644
index 0000000..d96d890
--- /dev/null
+++ b/abs/core/pam/395915dae1571e10e2766c999974de864655ea3a.patch
@@ -0,0 +1,47 @@
+From 395915dae1571e10e2766c999974de864655ea3a Mon Sep 17 00:00:00 2001
+From: ikerexxe <ipedrosa@redhat.com>
+Date: Mon, 15 Jun 2020 09:52:11 +0200
+Subject: [PATCH] pam_faillock: change /run/faillock/$USER permissions to 0660
+
+Nowadays, /run/faillock/$USER files have user:root ownership and 0600
+permissions. This forces the process that writes to these files to have
+CAP_DAC_OVERRIDE capabilites. Just by changing the permissions to 0660
+the capability can be removed, which leads to a more secure system.
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1661822
+---
+ modules/pam_faillock/faillock.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/modules/pam_faillock/faillock.c b/modules/pam_faillock/faillock.c
+index e492f5f9..4ea94cbe 100644
+--- a/modules/pam_faillock/faillock.c
++++ b/modules/pam_faillock/faillock.c
+@@ -76,7 +76,7 @@ open_tally (const char *dir, const char *user, uid_t uid, int create)
+ flags |= O_CREAT;
+ }
+
+- fd = open(path, flags, 0600);
++ fd = open(path, flags, 0660);
+
+ free(path);
+
+@@ -88,6 +88,18 @@ open_tally (const char *dir, const char *user, uid_t uid, int create)
+ if (st.st_uid != uid) {
+ ignore_return(fchown(fd, uid, -1));
+ }
++
++ /*
++ * If umask is set to 022, as will probably in most systems, then the
++ * group will not be able to write to the file. So, change the file
++ * permissions just in case.
++ * Note: owners of this file are user:root, so if the permissions are
++ * not changed the root process writing to this file will require
++ * CAP_DAC_OVERRIDE.
++ */
++ if (!(st.st_mode & S_IWGRP)) {
++ ignore_return(fchmod(fd, 0660));
++ }
+ }
+ }
+
diff --git a/abs/core/pam/PKGBUILD b/abs/core/pam/PKGBUILD
index 63bd83d..bcad4df 100644
--- a/abs/core/pam/PKGBUILD
+++ b/abs/core/pam/PKGBUILD
@@ -1,70 +1,60 @@
-# $Id$
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=pam
-pkgver=1.3.0
-pkgrel=2
+pkgver=1.4.0
+pkgrel=3
pkgdesc="PAM (Pluggable Authentication Modules) library"
-arch=('i686' 'x86_64')
+arch=('x86_64')
license=('GPL2')
url="http://linux-pam.org"
-depends=('glibc' 'cracklib' 'libtirpc' 'pambase')
+depends=('glibc' 'libtirpc' 'pambase' 'audit')
makedepends=('flex' 'w3m' 'docbook-xml>=4.4' 'docbook-xsl')
-backup=(etc/security/{access.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/default/passwd etc/environment)
-source=(http://linux-pam.org/library/Linux-PAM-$pkgver.tar.bz2
- https://sources.archlinux.org/other/pam_unix2/pam_unix2-2.9.1.tar.bz2
- pam_unix2-glibc216.patch)
-md5sums=('da4b2289b7cfb19583d54e9eaaef1c3a'
- 'da6a46e5f8cd3eaa7cbc4fc3a7e2b555'
- 'dac109f68e04a4df37575fda6001ea17')
+backup=(etc/security/{access.conf,faillock.conf,group.conf,limits.conf,namespace.conf,namespace.init,pam_env.conf,time.conf} etc/environment)
+source=(https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz
+ https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz.asc
+ 395915dae1571e10e2766c999974de864655ea3a.patch
+ af0faf666c5008e54dfe43684f210e3581ff1bca.patch
+ 0e9b286afe1224b91ff00936058b084ad4b776e4.patch
+ $pkgname.tmpfiles)
+validpgpkeys=(
+ '8C6BFD92EE0F42EDF91A6A736D1A7F052E5924BB' # Thorsten Kukuk
+ '296D6F29A020808E8717A8842DB5BD89A340AEB7' #Dimitry V. Levin <ldv@altlinux.org>
+)
+
+sha256sums=('cd6d928c51e64139be3bdb38692c68183a509b83d4f2c221024ccd4bcddfd034'
+ 'SKIP'
+ 'cd2440d7bec55fa91e499060c0bf248f4fd20e7a0ef613eb7a06ee083f7ce21b'
+ 'ac3e1d307756f5975587a7846500414c02d2b60acb271017b9c7aa6f47c89875'
+ '68f81b67dde5ee6003524b6b14e2d6f27edcfc0a2bde4c55a1cacbc6e299c207'
+ '5631f224e90c4f0459361c2a5b250112e3a91ba849754bb6f67d69d683a2e5ac')
options=('!emptydirs')
-prepare () {
- cd $srcdir/Linux-PAM-$pkgver
-
- # fix pam_unix2 building
- cd $srcdir/pam_unix2-2.9.1
- patch -Np1 -i "${srcdir}/pam_unix2-glibc216.patch"
+prepare() {
+ cd Linux-PAM-$pkgver
+ patch -p1 -i ../395915dae1571e10e2766c999974de864655ea3a.patch
+ patch -p1 -i ../af0faf666c5008e54dfe43684f210e3581ff1bca.patch
+ patch -p1 -i ../0e9b286afe1224b91ff00936058b084ad4b776e4.patch
}
build() {
- cd $srcdir/Linux-PAM-$pkgver
+ cd Linux-PAM-$pkgver
./configure --libdir=/usr/lib --sbindir=/usr/bin --disable-db
make
-
- cd $srcdir/pam_unix2-2.9.1
- # modify flags to build against the pam compiled here, not a system lib.
- ./configure \
- CFLAGS="$CFLAGS -I$srcdir/Linux-PAM-$pkgver/libpam/include/" \
- LDFLAGS="$LDFLAGS -L$srcdir/Linux-PAM-$pkgver/libpam/.libs/" \
- --libdir=/usr/lib \
- --sbindir=/usr/bin
- make
}
package() {
- cd $srcdir/Linux-PAM-$pkgver
- make DESTDIR=$pkgdir SCONFIGDIR=/etc/security install
-
- # build pam_unix2 module
- # source ftp://ftp.suse.com/pub/people/kukuk/pam/pam_unix2
- cd $srcdir/pam_unix2-2.9.1
- make DESTDIR=$pkgdir install
-
- # fix some missing symlinks from old pam for compatibility
- cd $pkgdir/usr/lib/security
- ln -s pam_unix.so pam_unix_acct.so
- ln -s pam_unix.so pam_unix_auth.so
- ln -s pam_unix.so pam_unix_passwd.so
- ln -s pam_unix.so pam_unix_session.so
+ install -Dm 644 $pkgname.tmpfiles "$pkgdir"/usr/lib/tmpfiles.d/$pkgname.conf
+ cd Linux-PAM-$pkgver
+ make DESTDIR="$pkgdir" SCONFIGDIR=/etc/security install
# set unix_chkpwd uid
- chmod +s $pkgdir/usr/bin/unix_chkpwd
+ chmod +s "$pkgdir"/usr/bin/unix_chkpwd
+
# remove doc which is not used anymore
# FS #40749
- rm $pkgdir/usr/share/doc/Linux-PAM/sag-pam_userdb.html
+ #rm "$pkgdir"/usr/share/doc/Linux-PAM/sag-pam_userdb.html
# disable coredumps
sed -i 's|# End of file||' $pkgdir/etc/security/limits.conf
diff --git a/abs/core/pam/af0faf666c5008e54dfe43684f210e3581ff1bca.patch b/abs/core/pam/af0faf666c5008e54dfe43684f210e3581ff1bca.patch
new file mode 100644
index 0000000..924cec3
--- /dev/null
+++ b/abs/core/pam/af0faf666c5008e54dfe43684f210e3581ff1bca.patch
@@ -0,0 +1,85 @@
+From af0faf666c5008e54dfe43684f210e3581ff1bca Mon Sep 17 00:00:00 2001
+From: ikerexxe <ipedrosa@redhat.com>
+Date: Tue, 16 Jun 2020 14:32:36 +0200
+Subject: [PATCH] pam_unix: avoid determining if user exists
+
+Taking a look at the time for the password prompt to appear it was
+possible to determine if a user existed in a system. Solved it by
+matching the runtime until the password prompt was shown by always
+checking the password hash for an existing and a non-existing user.
+
+Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1629598
+---
+ modules/pam_unix/passverify.c | 6 ++++++
+ modules/pam_unix/support.c | 33 ++++++++++++++++++++++++++-------
+ 2 files changed, 32 insertions(+), 7 deletions(-)
+
+diff --git a/modules/pam_unix/passverify.c b/modules/pam_unix/passverify.c
+index a571b4f7..7455eae6 100644
+--- a/modules/pam_unix/passverify.c
++++ b/modules/pam_unix/passverify.c
+@@ -1096,6 +1096,12 @@ helper_verify_password(const char *name, const char *p, int nullok)
+ if (pwd == NULL || hash == NULL) {
+ helper_log_err(LOG_NOTICE, "check pass; user unknown");
+ retval = PAM_USER_UNKNOWN;
++ } else if (p[0] == '\0' && nullok) {
++ if (hash[0] == '\0') {
++ retval = PAM_SUCCESS;
++ } else {
++ retval = PAM_AUTH_ERR;
++ }
+ } else {
+ retval = verify_pwd_hash(p, hash, nullok);
+ }
+diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c
+index 41db1f04..dc67238c 100644
+--- a/modules/pam_unix/support.c
++++ b/modules/pam_unix/support.c
+@@ -601,6 +601,8 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned long long ctrl, const char *name
+ char *salt = NULL;
+ int daysleft;
+ int retval;
++ int execloop = 1;
++ int nonexistent = 1;
+
+ D(("called"));
+
+@@ -624,14 +626,31 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned long long ctrl, const char *name
+
+ /* UNIX passwords area */
+
+- retval = get_pwd_hash(pamh, name, &pwd, &salt);
++ /*
++ * Execute this loop twice: one checking the password hash of an existing
++ * user and another one for a non-existing user. This way the runtimes
++ * are equal, making it more difficult to differentiate existing from
++ * non-existing users.
++ */
++ while (execloop) {
++ retval = get_pwd_hash(pamh, name, &pwd, &salt);
+
+- if (retval == PAM_UNIX_RUN_HELPER) {
+- /* salt will not be set here so we can return immediately */
+- if (_unix_run_helper_binary(pamh, NULL, ctrl, name) == PAM_SUCCESS)
+- return 1;
+- else
+- return 0;
++ if (retval == PAM_UNIX_RUN_HELPER) {
++ execloop = 0;
++ if(nonexistent) {
++ get_pwd_hash(pamh, "pam_unix_non_existent:", &pwd, &salt);
++ }
++ /* salt will not be set here so we can return immediately */
++ if (_unix_run_helper_binary(pamh, NULL, ctrl, name) == PAM_SUCCESS)
++ return 1;
++ else
++ return 0;
++ } else if (retval == PAM_USER_UNKNOWN) {
++ name = "root";
++ nonexistent = 0;
++ } else {
++ execloop = 0;
++ }
+ }
+
+ /* Does this user have a password? */
diff --git a/abs/core/pam/pam.tmpfiles b/abs/core/pam/pam.tmpfiles
new file mode 100644
index 0000000..f6e490b
--- /dev/null
+++ b/abs/core/pam/pam.tmpfiles
@@ -0,0 +1 @@
+d /run/faillock 0755 root root -
diff --git a/abs/core/pam/pam_unix2-glibc216.patch b/abs/core/pam/pam_unix2-glibc216.patch
deleted file mode 100644
index faa6a23..0000000
--- a/abs/core/pam/pam_unix2-glibc216.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Index: pam_unix2-2.9.1/src/read-files.c
-===================================================================
---- pam_unix2-2.9.1.orig/src/read-files.c
-+++ pam_unix2-2.9.1/src/read-files.c
-@@ -30,8 +30,14 @@
- #include <errno.h>
- #include <fcntl.h>
- #include <nss.h>
--#include <bits/libc-lock.h>
-+#include <pthread.h>
- #define __libc_lock_t pthread_mutex_t
-+#define __libc_lock_define_initialized(CLASS,NAME) \
-+ CLASS __libc_lock_t NAME = PTHREAD_MUTEX_INITIALIZER;
-+#define __libc_lock_lock(NAME) \
-+ pthread_mutex_lock, (&(NAME))
-+#define __libc_lock_unlock(NAME) \
-+ pthread_mutex_unlock, (&(NAME))
-
- #include "read-files.h"
-
diff --git a/abs/core/pambase/PKGBUILD b/abs/core/pambase/PKGBUILD
index 7d0f0c2..537077f 100644
--- a/abs/core/pambase/PKGBUILD
+++ b/abs/core/pambase/PKGBUILD
@@ -1,12 +1,11 @@
-# $Id$
# Maintainer: Dave Reisner <dreisner@archlinux.org>
pkgname=pambase
-pkgver=20171006
-pkgrel=1
+pkgver=20200721.1
+pkgrel=2
pkgdesc="Base PAM configuration for services"
arch=('any')
-url="http://www.archlinux.org"
+url="https://www.archlinux.org"
license=('GPL')
source=('system-auth'
'system-local-login'
@@ -20,12 +19,12 @@ backup=('etc/pam.d/system-auth'
'etc/pam.d/system-remote-login'
'etc/pam.d/system-services'
'etc/pam.d/other')
-sha256sums=('3eb67872e436817ec97c4f3795adba2cf1d3829ea4e107ef5747569e4eeb5746'
+sha256sums=('89d62406b2d623a76d53c33aca98ce8ee124ed4a450ff6c8a44cfccca78baa2f'
'005736b9bd650ff5e5d82a7e288853776d5bb8c90185d5774c07231c1e1c64a9'
- '75b3bc548ff8b037d28bda9413d2e18ddda17c96a7956f00d259b9d29b87a5b3'
+ '2ed270c2789526336cc6479e63f6263b5c6f41cfc829a17a449a38621b6bf020'
'005736b9bd650ff5e5d82a7e288853776d5bb8c90185d5774c07231c1e1c64a9'
'6eb1acdd3fa9f71a7f93fbd529be57ea65bcafc6e3a98a06af4d88013fc6a567'
- 'de66118684a2ecec18017dd96e50a489f30465510250c007ced16f81fb542ba5')
+ 'd5ed59ec2157c19c87964a162f7ca84d53c19fb2bd68d3fbc1671ba8d906346f')
package() {
install -dm755 "$pkgdir/etc/pam.d"
diff --git a/abs/core/pambase/other b/abs/core/pambase/other
index 08498b4..3f50bd1 100644
--- a/abs/core/pambase/other
+++ b/abs/core/pambase/other
@@ -1,5 +1,9 @@
#%PAM-1.0
-auth required pam_unix.so
-account required pam_unix.so
-password required pam_unix.so
-session required pam_unix.so
+auth required pam_deny.so
+auth required pam_warn.so
+account required pam_deny.so
+account required pam_warn.so
+password required pam_deny.so
+password required pam_warn.so
+session required pam_deny.so
+session required pam_warn.so
diff --git a/abs/core/pambase/system-auth b/abs/core/pambase/system-auth
index 2645043..af1d3a6 100644
--- a/abs/core/pambase/system-auth
+++ b/abs/core/pambase/system-auth
@@ -1,16 +1,26 @@
#%PAM-1.0
-auth required pam_unix.so try_first_pass nullok
-auth optional pam_permit.so
-auth required pam_env.so
+auth required pam_faillock.so preauth
+# Optionally use requisite above if you do not want to prompt for the password
+# on locked accounts.
+auth [success=2 default=ignore] pam_unix.so try_first_pass nullok
+-auth [success=1 default=ignore] pam_systemd_home.so
+auth [default=die] pam_faillock.so authfail
+auth optional pam_permit.so
+auth required pam_env.so
+auth required pam_faillock.so authsucc
+# If you drop the above call to pam_faillock.so the lock will be done also
+# on non-consecutive authentication failures.
-account required pam_unix.so
-account optional pam_permit.so
-account required pam_time.so
+-account [success=1 default=ignore] pam_systemd_home.so
+account required pam_unix.so
+account optional pam_permit.so
+account required pam_time.so
-password required pam_unix.so try_first_pass nullok sha512 shadow
-password optional pam_permit.so
+-password [success=1 default=ignore] pam_systemd_home.so
+password required pam_unix.so try_first_pass nullok shadow
+password optional pam_permit.so
-session required pam_limits.so
-session required pam_unix.so
-session optional pam_permit.so
+session required pam_limits.so
+session required pam_unix.so
+session optional pam_permit.so
diff --git a/abs/core/pambase/system-login b/abs/core/pambase/system-login
index 6ab3e7b..80eed54 100644
--- a/abs/core/pambase/system-login
+++ b/abs/core/pambase/system-login
@@ -1,6 +1,5 @@
#%PAM-1.0
-auth required pam_tally.so onerr=succeed file=/var/log/faillog
auth required pam_shells.so
auth requisite pam_nologin.so
auth include system-auth
@@ -17,4 +16,4 @@ session include system-auth
session optional pam_motd.so motd=/etc/motd
session optional pam_mail.so dir=/var/spool/mail standard quiet
-session optional pam_systemd.so
-session required pam_env.so
+session required pam_env.so user_readenv=1
diff --git a/abs/core/parted/PKGBUILD b/abs/core/parted/PKGBUILD
index 77539f2..4cb5d0b 100644
--- a/abs/core/parted/PKGBUILD
+++ b/abs/core/parted/PKGBUILD
@@ -1,36 +1,30 @@
-# $Id$
# Maintainer: Giovanni Scafora <giovanni@archlinux.org>
# Contributor: Aaron Griffin <aaron@archlinux.org>
pkgname=parted
-pkgver=3.2
-pkgrel=6
+pkgver=3.3
+pkgrel=2
pkgdesc="A program for creating, destroying, resizing, checking and copying partitions"
arch=('x86_64')
license=('GPL3')
-url="http://www.gnu.org/software/parted/parted.html"
-depends=('device-mapper')
+url='https://www.gnu.org/software/parted/parted.html'
+depends=('device-mapper' 'util-linux-libs')
makedepends=('pkg-config')
-validpgpkeys=('1B49F933916A37A3F45A1812015F4DD4A70FB705') # Phillip Susi <psusi@ubuntu.com>
-source=("https://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz"{,.sig}
- 'parted-735669-fat16-crash-v1.patch')
-sha256sums=('858b589c22297cacdf437f3baff6f04b333087521ab274f7ab677cb8c6bb78e4'
- 'SKIP'
- '3cbf31765b1653609a4c95687b91e34dd57ad3498d5d02019c966bd46d25d100')
-
-prepare() {
- cd "${srcdir}/${pkgname}-${pkgver}"
-
- patch -Np1 -i "${srcdir}/parted-735669-fat16-crash-v1.patch"
-}
+validpgpkeys=('1B49F933916A37A3F45A1812015F4DD4A70FB705' # Phillip Susi <psusi@ubuntu.com>
+ 'B4C6B451E4FA8B4232CA191E117E8C168EFE3A7F') # Brian C. Lane <bcl@redhat.com>
+source=("https://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.xz"{,.sig})
+sha256sums=('57e2b4bd87018625c515421d4524f6e3b55175b472302056391c5f7eccb83d44'
+ 'SKIP')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
- ./configure --prefix=/usr \
- --sbindir=/usr/bin \
- --disable-debug \
- --disable-rpath
+ # Do *not* add --disable-debug, it prevents building fatresize
+ # https://github.com/ya-mouse/fatresize/issues/9
+ ./configure \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --disable-rpath
make
}
diff --git a/abs/core/parted/parted-735669-fat16-crash-v1.patch b/abs/core/parted/parted-735669-fat16-crash-v1.patch
deleted file mode 100644
index 2124ab3..0000000
--- a/abs/core/parted/parted-735669-fat16-crash-v1.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From 3a4c152d38ce34481b0f4fda8aea4e71a8280d8f Mon Sep 17 00:00:00 2001
-From: Mike Fleetwood <mike.fleetwood@googlemail.com>
-Date: Sat, 27 Sep 2014 10:23:17 +0100
-Subject: [PATCH 1/3] lib-fs-resize: Prevent crash resizing FAT16 file systems
-
-Resizing FAT16 file system crashes in libparted/fs/r/fat/resize.c
-create_resize_context() because it was dereferencing NULL pointer
-fs_info->info_sector to copy the info_sector.
-
-Only FAT32 file systems have info_sector populated by fat_open() ->
-fat_info_sector_read(). FAT12 and FAT16 file systems don't have an
-info_sector so pointer fs_info->info_sector remains assigned NULL from
-fat_alloc(). When resizing a FAT file system create_resize_context()
-was always dereferencing fs_info->info_sector to memory copy the
-info_sector, hence it crashed for FAT12 and FAT16.
-
-Make create_resize_context() only copy the info_sector for FAT32 file
-systems.
-
-Reported by Christian Hesse in
-https://bugzilla.gnome.org/show_bug.cgi?id=735669
----
- NEWS | 4 ++++
- libparted/fs/r/fat/resize.c | 12 +++++++++---
- 2 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index 297b0a5..da7db50 100644
---- a/NEWS
-+++ b/NEWS
-@@ -2,6 +2,10 @@ GNU parted NEWS -*- outline -*-
-
- * Noteworthy changes in release ?.? (????-??-??) [?]
-
-+** Bug Fixes
-+
-+ libparted-fs-resize: Prevent crash resizing FAT16 file systems.
-+
-
- * Noteworthy changes in release 3.2 (2014-07-28) [stable]
-
-diff --git a/libparted/fs/r/fat/resize.c b/libparted/fs/r/fat/resize.c
-index 919acf0..bfe60a0 100644
---- a/libparted/fs/r/fat/resize.c
-+++ b/libparted/fs/r/fat/resize.c
-@@ -668,11 +668,17 @@ create_resize_context (PedFileSystem* fs, const PedGeometry* new_geom)
-
- /* preserve boot code, etc. */
- new_fs_info->boot_sector = ped_malloc (new_geom->dev->sector_size);
-- new_fs_info->info_sector = ped_malloc (new_geom->dev->sector_size);
- memcpy (new_fs_info->boot_sector, fs_info->boot_sector,
- new_geom->dev->sector_size);
-- memcpy (new_fs_info->info_sector, fs_info->info_sector,
-- new_geom->dev->sector_size);
-+ new_fs_info->info_sector = NULL;
-+ if (fs_info->fat_type == FAT_TYPE_FAT32)
-+ {
-+ PED_ASSERT (fs_info->info_sector != NULL);
-+ new_fs_info->info_sector =
-+ ped_malloc (new_geom->dev->sector_size);
-+ memcpy (new_fs_info->info_sector, fs_info->info_sector,
-+ new_geom->dev->sector_size);
-+ }
-
- new_fs_info->logical_sector_size = fs_info->logical_sector_size;
- new_fs_info->sector_count = new_geom->length;
---
-1.7.1
-
-
-From 2b5a4805533557b1bcdb5f70537569383f1fe7e8 Mon Sep 17 00:00:00 2001
-From: Mike Fleetwood <mike.fleetwood@googlemail.com>
-Date: Sat, 27 Sep 2014 11:31:46 +0100
-Subject: [PATCH 2/3] tests: t3000-resize-fs.sh: Add FAT16 resizing test
-
-Add FAT16 resizing test so that we don't regress again.
----
- tests/t3000-resize-fs.sh | 16 +++++++++++++---
- 1 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/tests/t3000-resize-fs.sh b/tests/t3000-resize-fs.sh
-index 8cab476..9084eb4 100755
---- a/tests/t3000-resize-fs.sh
-+++ b/tests/t3000-resize-fs.sh
-@@ -46,7 +46,7 @@ device_sectors_required=$(echo $default_end | sed 's/s$//')
- # Ensure that $dev is large enough for this test
- test $device_sectors_required -le $dev_n_sectors || fail=1
-
--for fs_type in hfs+ fat32; do
-+for fs_type in hfs+ fat32 fat16; do
-
- # create an empty $fs_type partition, cylinder aligned, size > 256 MB
- parted -a min -s $dev mkpart p1 $start $default_end > out 2>&1 || fail=1
-@@ -59,6 +59,7 @@ for fs_type in hfs+ fat32; do
- wait_for_dev_to_appear_ ${dev}1
-
- case $fs_type in
-+ fat16) mkfs_cmd='mkfs.vfat -F 16'; fsck='fsck.vfat -v';;
- fat32) mkfs_cmd='mkfs.vfat -F 32'; fsck='fsck.vfat -v';;
- hfs*) mkfs_cmd='mkfs.hfs'; fsck=fsck.hfs;;
- *) error "internal error: unhandled fs type: $fs_type";;
-@@ -70,8 +71,17 @@ for fs_type in hfs+ fat32; do
- # NOTE: shrinking is the only type of resizing that works.
- # resize that file system to be one cylinder (8MiB) smaller
- fs-resize ${dev}1 0 $new_end > out 2>&1 || fail=1
-- # expect no output
-- compare /dev/null out || fail=1
-+
-+ # check for expected output
-+ case $fs_type in
-+ fat16) cat << EOF > exp || framework_failure
-+Information: Would you like to use FAT32? If you leave your file system as FAT16, then you will have no problems. If you convert to FAT32, and MS Windows is installed on this partition, then you must re-install the MS Windows boot loader. If you want to do this, you should consult the Parted manual (or your distribution's manual). Also, converting to FAT32 will make the file system unreadable by MS DOS, MS Windows 95a, and MS Windows NT.
-+EOF
-+ ;;
-+ fat32) cat /dev/null > exp || framework_failure;; # expect no output
-+ hfs*) cat /dev/null > exp || framework_failure;; # expect no output
-+ esac
-+ compare exp out || fail=1
-
- # This is known to segfault with fsck.hfs from
- # Fedora 16's hfsplus-tools-332.14-12.fc15.x86_64.
---
-1.7.1
-
-
-From ca37fcb204f97964ff2c92ea0221367e798810bb Mon Sep 17 00:00:00 2001
-From: Mike Fleetwood <mike.fleetwood@googlemail.com>
-Date: Sun, 28 Sep 2014 11:54:45 +0100
-Subject: [PATCH 3/3] tests: t3000-resize-fs.sh: Add requirement on mkfs.vfat
-
-Add test skipping requirement on mkfs.vfat for the FAT32 and FAT16 file
-system resizing tests. This matches existing test skipping requirement
-on mkfs.hfs for the hfs+ file system.
-
-* tests/t3000-resize-fs.sh: Also correct skip_test_ to skip_.
-* tests/t-lib-helpers.sh: Also update message for requirement of hfs.
----
- tests/t-lib-helpers.sh | 8 +++++++-
- tests/t3000-resize-fs.sh | 5 +++--
- 2 files changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/tests/t-lib-helpers.sh b/tests/t-lib-helpers.sh
-index 4e83a05..c8684bb 100644
---- a/tests/t-lib-helpers.sh
-+++ b/tests/t-lib-helpers.sh
-@@ -20,7 +20,13 @@ require_acl_()
- require_hfs_()
- {
- mkfs.hfs 2>&1 | grep '^usage:' \
-- || skip_ "This test requires HFS support."
-+ || skip_ "mkfs.hfs: command not found"
-+}
-+
-+require_fat_()
-+{
-+ mkfs.vfat 2>&1 | grep '^Usage:' \
-+ || skip_ "mkfs.vfat: command not found"
- }
-
- # Skip this test if we're not in SELinux "enforcing" mode.
-diff --git a/tests/t3000-resize-fs.sh b/tests/t3000-resize-fs.sh
-index 9084eb4..a79a307 100755
---- a/tests/t3000-resize-fs.sh
-+++ b/tests/t3000-resize-fs.sh
-@@ -18,7 +18,7 @@
-
- . "${srcdir=.}/init.sh"; path_prepend_ ../parted .
- require_hfs_
--
-+require_fat_
- require_root_
- require_scsi_debug_module_
- require_512_byte_sector_size_
-@@ -31,7 +31,7 @@ default_end=546147s
-
- # create memory-backed device
- scsi_debug_setup_ dev_size_mb=550 > dev-name ||
-- skip_test_ 'failed to create scsi_debug device'
-+ skip_ 'failed to create scsi_debug device'
- dev=$(cat dev-name)
-
- fail=0
-@@ -47,6 +47,7 @@ device_sectors_required=$(echo $default_end | sed 's/s$//')
- test $device_sectors_required -le $dev_n_sectors || fail=1
-
- for fs_type in hfs+ fat32 fat16; do
-+ echo "fs_type=$fs_type"
-
- # create an empty $fs_type partition, cylinder aligned, size > 256 MB
- parted -a min -s $dev mkpart p1 $start $default_end > out 2>&1 || fail=1
---
-1.7.1
-
diff --git a/abs/core/pcre/PKGBUILD b/abs/core/pcre/PKGBUILD
index 0b25d9f..e24ab03 100644
--- a/abs/core/pcre/PKGBUILD
+++ b/abs/core/pcre/PKGBUILD
@@ -1,21 +1,20 @@
-# $Id$
# Maintainer: Sébastien "Seblu" Luttringer
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Eric Belanger <eric@archlinux.org>
# Contributor: John Proctor <jproctor@prium.net>
pkgname=pcre
-pkgver=8.41
+pkgver=8.44
pkgrel=1
pkgdesc='A library that implements Perl 5-style regular expressions'
arch=('x86_64')
-url='http://www.pcre.org/'
+url='https://www.pcre.org/'
license=('BSD')
depends=('gcc-libs' 'readline' 'zlib' 'bzip2' 'bash')
validpgpkeys=('45F68D54BBE23FB3039B46E59766E084FB0F43D8') # Philip Hazel
source=("https://ftp.pcre.org/pub/pcre/$pkgname-$pkgver.tar.bz2"{,.sig})
-md5sums=('c160d22723b1670447341b08c58981c1'
- 'SKIP')
+sha512sums=('f26d850aab5228799e58ac8c2306fb313889332c39e29b118ef1de57677c5c90f970d68d3f475cabc64f8b982a77f04eca990ff1057f3ccf5e19bd137997c4ac'
+ 'SKIP')
prepare() {
cd $pkgname-$pkgver
diff --git a/abs/core/pcre2/PKGBUILD b/abs/core/pcre2/PKGBUILD
index 9c2e463..6e122f1 100644
--- a/abs/core/pcre2/PKGBUILD
+++ b/abs/core/pcre2/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Mateusz 'mrlemux' Lemusisk mrlemux at gmail dotcom
# Based on the pcre package by Sébastien "Seblu" Luttringer
@@ -7,15 +6,17 @@
# Contributor: John Proctor <jproctor@prium.net>
pkgname=pcre2
-pkgver=10.30
+pkgver=10.35
pkgrel=1
pkgdesc='A library that implements Perl 5-style regular expressions. 2nd version'
arch=('x86_64')
-url='http://www.pcre.org/'
+url='https://www.pcre.org/'
license=('BSD')
depends=('gcc-libs' 'readline' 'zlib' 'bzip2' 'bash')
-source=("ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/$pkgname-$pkgver.tar.bz2")
-sha512sums=('f247a9f917c75920793b9919a45bb1426d126246e7a5d04e39d9407e44b5781f894a90cd3d232b385436b2f22be391335ab782664dd3a28c79058a2fcc74dc3e')
+source=("https://ftp.pcre.org/pub/pcre/$pkgname-$pkgver.tar.bz2"{,.sig})
+sha512sums=('ecfb8d48e219daff02874783b7b436fe7d70d8471e44eb66e1e29abb7b0aa67547e6b5fba7058b074ac90eef265ece7d12728f80afdda45b6b8124435f4561fd'
+ 'SKIP')
+validpgpkeys=('45F68D54BBE23FB3039B46E59766E084FB0F43D8') # Philip Hazel
build() {
cd $pkgname-$pkgver
diff --git a/abs/core/perl_modules/perl-authen-pam/PKGBUILD b/abs/core/perl_modules/perl-authen-pam/PKGBUILD
new file mode 100644
index 0000000..09392e5
--- /dev/null
+++ b/abs/core/perl_modules/perl-authen-pam/PKGBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Jose Riha <jose1711 gmail com>
+# Maintainer: Amish <contact at via dot aur>
+# Contributor: Christian Hesse <mail@earthworm.de>
+# Contributor: mr_nuub
+
+pkgname=perl-authen-pam
+pkgver=0.16
+pkgrel=7
+pkgdesc="Perl interface to PAM library"
+_dist=Authen-PAM
+arch=('any')
+url="https://metacpan.org/release/${_dist}"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+options=('!emptydirs' purge)
+source=("https://cpan.metacpan.org/authors/id/N/NI/NIKIP/${_dist}-${pkgver}.tar.gz")
+md5sums=('7278471dfa694d9ef312bc92d7099af2')
+sha512sums=('2419698193697cb8c9ac3a1527a25abefffd9f15f4b492006081b2c8e7fe9e01e00f33e8fed6a07611b725b38ed92d9feb51b8ba61e4c23313cc5ff9ea1c05fd')
+
+prepare() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ sed -i -e 's#require "pam.cfg"#require "./pam.cfg"#g' Makefile.PL
+}
+
+build() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
+ export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps
+ /usr/bin/perl Makefile.PL
+ make
+}
+
+check() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
+ export PERL_MM_USE_DEFAULT=1
+ echo skipped for now as tests asks for user password
+ #make test
+}
+
+package() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
+ make install INSTALLDIRS=vendor DESTDIR="${pkgdir}"
+}
diff --git a/abs/core/perl_modules/perl-encode-detect/PKGBUILD b/abs/core/perl_modules/perl-encode-detect/PKGBUILD
new file mode 100644
index 0000000..946893c
--- /dev/null
+++ b/abs/core/perl_modules/perl-encode-detect/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Amish <contact at via dot aur>
+# Contributor: John D Jones III AKA jnbek <jnbek1972 -_AT_- g m a i l -_Dot_- com>
+
+pkgname=perl-encode-detect
+pkgver=1.01
+pkgrel=6
+pkgdesc="An Encode::Encoding subclass that detects the encoding of data"
+_dist=Encode-Detect
+arch=('any')
+url="https://metacpan.org/release/${_dist}"
+license=('GPL' 'PerlArtistic')
+depends=('perl')
+makedepends=('perl-module-build')
+options=('!emptydirs' purge)
+source=("https://cpan.metacpan.org/authors/id/J/JG/JGMYERS/${_dist}-${pkgver}.tar.gz")
+md5sums=('ee9faf55d7105c97b02b8ebe590819c7')
+sha512sums=('cc9c81f716dcb61abb321abd84e4ebb95a674d9aa34c4265f58cace38f6d15ef4f2b8338190ae7d200672e047b795a30ce6155f9c1b1c424e25d962579b96224')
+
+build() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
+ export PERL_MM_USE_DEFAULT=1 PERL_AUTOINSTALL=--skipdeps
+ /usr/bin/perl Makefile.PL
+ make
+}
+
+check() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
+ export PERL_MM_USE_DEFAULT=1
+ make test
+}
+
+package() {
+ cd "${srcdir}/${_dist}-${pkgver}"
+ unset PERL5LIB PERL_MM_OPT PERL_LOCAL_LIB_ROOT
+ make install INSTALLDIRS=vendor DESTDIR="${pkgdir}"
+}
diff --git a/abs/core/pkcs11-helper/PKGBUILD b/abs/core/pkcs11-helper/PKGBUILD
new file mode 100644
index 0000000..8356766
--- /dev/null
+++ b/abs/core/pkcs11-helper/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer:
+# Contributor: Stanislaw Datskevich <me a nek0 net>
+# Contributor: Gregor Robinson <gregor@fiatflux.co.uk>
+# Contributor: Martin Perner <martin dot perner at gmail dot com>
+
+pkgname=pkcs11-helper
+pkgver=1.25.1
+pkgrel=1
+pkgdesc="A library that simplifies the interaction with PKCS11 providers for end-user applications using a simple API and optional OpenSSL engine"
+arch=('x86_64')
+url='https://github.com/OpenSC/pkcs11-helper'
+license=(GPL BSD)
+depends=('gnutls' 'nss' 'openssl')
+source=("https://github.com/OpenSC/${pkgname}/releases/download/${pkgname}-${pkgver}/${pkgname}-${pkgver}.tar.bz2")
+sha256sums=('10dd8a1dbcf41ece051fdc3e9642b8c8111fe2c524cb966c0870ef3413c75a77')
+
+build() {
+ cd pkcs11-helper-$pkgver
+ libtoolize
+ aclocal
+ autoheader
+ automake --add-missing
+ autoreconf -v
+ ./configure --prefix=/usr
+ make
+}
+
+package() {
+ cd pkcs11-helper-$pkgver
+ make DESTDIR="$pkgdir" install
+ mkdir -p "$pkgdir"/usr/share/licenses/$pkgname/
+ install -D -m0644 COPYING* "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
diff --git a/abs/core/python/PKGBUILD b/abs/core/python/PKGBUILD
index 5a3a401..acb5af1 100644
--- a/abs/core/python/PKGBUILD
+++ b/abs/core/python/PKGBUILD
@@ -1,48 +1,40 @@
-# $Id$
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Jason Chu <jason@archlinux.org>
-pkgname=python
-pkgver=3.6.8
-pkgrel=1
-_pybasever=3.6
+shopt -s extglob
+
+pkgbase=python
+pkgname=(python python-tests)
+pkgver=3.8.5
+pkgrel=2
+_pybasever=${pkgver%.*}
pkgdesc="Next generation of the python high-level scripting language"
arch=('x86_64')
license=('custom')
-url="http://www.python.org/"
-depends=('expat' 'bzip2' 'gdbm' 'openssl' 'libffi' 'zlib')
-makedepends=('tk' 'sqlite' 'valgrind' 'bluez-libs' 'mpdecimal' 'llvm' 'gdb' 'xorg-server-xvfb')
-optdepends=('python-setuptools'
- 'python-pip'
- 'sqlite'
- 'mpdecimal: for decimal'
- 'xz: for lzma'
- 'tk: for tkinter')
-provides=('python3')
-replaces=('python3')
-source=("https://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"{,.asc}
- dont-make-libpython-readonly.patch)
-sha512sums=('b17867e451ebe662f50df83ed112d3656c089e7d750651ea640052b01b713b58e66aac9e082f71fd16f5b5510bc9b797f5ccd30f5399581e9aa406197f02938a'
- 'SKIP'
- '2ef96708d5b13ae2a3d2cc62c87b4780e60ecfce914e190564492def3a11d5e56977659f41c7f9d12266e58050c766bce4e2b5d50b708eb792794fa8357920c4')
-validpgpkeys=('0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D') # Ned Deily (Python release signing key) <nad@python.org>
+url="https://www.python.org/"
+depends=('bzip2' 'expat' 'gdbm' 'libffi' 'libnsl' 'libxcrypt' 'openssl' 'zlib')
+makedepends=('tk' 'sqlite' 'valgrind' 'bluez-libs' 'mpdecimal' 'llvm' 'gdb' 'xorg-server-xvfb' 'ttf-font')
+source=("https://www.python.org/ftp/python/${pkgver%rc*}/Python-${pkgver}.tar.xz"{,.asc})
+sha512sums=('460cee65d7df7150694590575502d7f22e548ebfc99c8f8b363eef8bf30ee72e58d8ffacb1d607824f877f880eb9fd6775a508388029583e1e1df3380f3f9587'
+ 'SKIP')
+validpgpkeys=('0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D' # Ned Deily (Python release signing key) <nad@python.org>
+ 'E3FF2839C048B25C084DEBE9B26995E310250568') # Łukasz Langa (GPG langa.pl) <lukasz@langa.pl>
prepare() {
cd Python-${pkgver}
- # FS#45809
- patch -p1 -i ../dont-make-libpython-readonly.patch
-
# FS#23997
sed -i -e "s|^#.* /usr/local/bin/python|#!/usr/bin/python|" Lib/cgi.py
- # Ensure that we are using the system copy of various libraries (expat, zlib, libffi, and libmpdec),
+ # Speed up LTO
+ sed -i -e "s|-flto |-flto=4 |g" configure configure.ac
+
+ # Ensure that we are using the system copy of various libraries (expat, libffi, and libmpdec),
# rather than copies shipped in the tarball
rm -r Modules/expat
- rm -r Modules/zlib
rm -r Modules/_ctypes/{darwin,libffi}*
rm -r Modules/_decimal/libmpdec
}
@@ -50,10 +42,15 @@ prepare() {
build() {
cd Python-${pkgver}
+ # PGO should be done with -O3
+ # Also included the -fno-semantic-interposition optimization:
+ # https://fedoraproject.org/wiki/Changes/PythonNoSemanticInterpositionSpeedup
+ CFLAGS="${CFLAGS/-O2/-O3} -fno-semantic-interposition"
+ LDFLAGS="$LDFLAGS -fno-semantic-interposition"
+
# Disable bundled pip & setuptools
./configure --prefix=/usr \
--enable-shared \
- --with-threads \
--with-computed-gotos \
--enable-optimizations \
--with-lto \
@@ -69,12 +66,11 @@ build() {
export servernum=99
while ! xvfb-run -a -n "$servernum" /bin/true 2>/dev/null; do servernum=$((servernum+1)); done
- LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1280x720x24 -ac +extension GLX" -a -n "$servernum" make EXTRA_CFLAGS="$CFLAGS"
+ LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1920x1080x16 -ac +extension GLX" -a -n "$servernum" make EXTRA_CFLAGS="$CFLAGS"
}
check() {
- # test_gdb is expected to fail with LTO~
- # test_idle, test_tk, test_ttk_guionly segfaults on 3.6.5
+ # test_tk: https://bugs.python.org/issue41306
cd Python-${pkgver}
@@ -83,18 +79,33 @@ check() {
while ! xvfb-run -a -n "$servernum" /bin/true 2>/dev/null; do servernum=$((servernum+1)); done
LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
- LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1280x720x24 -ac +extension GLX" -a -n "$servernum" \
- "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_gdb -x test_idle -x test_tk -x test_ttk_guionly
+ LC_CTYPE=en_US.UTF-8 xvfb-run -s "-screen 0 1920x1080x16 -ac +extension GLX" -a -n "$servernum" \
+ "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_tk
}
-package() {
+package_python() {
+ optdepends=('python-setuptools'
+ 'python-pip'
+ 'sqlite'
+ 'mpdecimal: for decimal'
+ 'xz: for lzma'
+ 'tk: for tkinter')
+ provides=('python3')
+ replaces=('python3')
+
cd Python-${pkgver}
# Hack to avoid building again
sed -i 's/^all:.*$/all: build_all/' Makefile
+ # PGO should be done with -O3
+ CFLAGS="${CFLAGS/-O2/-O3}"
+
make DESTDIR="${pkgdir}" EXTRA_CFLAGS="$CFLAGS" install
+ # Split tests
+ rm -r "$pkgdir"/usr/lib/python*/{test,ctypes/test,distutils/tests,idlelib/idle_test,lib2to3/tests,sqlite3/test,tkinter/test,unittest/test}
+
# Why are these not done by default...
ln -s python3 "${pkgdir}"/usr/bin/python
ln -s python3-config "${pkgdir}"/usr/bin/python-config
@@ -110,3 +121,28 @@ package() {
# License
install -Dm644 LICENSE "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
}
+
+package_python-tests() {
+ pkgdesc="Regression tests packages for Python"
+ depends=('python')
+
+ cd Python-${pkgver}
+
+ make DESTDIR="${pkgdir}" EXTRA_CFLAGS="$CFLAGS" libinstall
+ cd "$pkgdir"/usr/lib/python*/
+ rm -r !(test|ctypes|distutils|idlelib|lib2to3|sqlite3|tkinter|unittest)
+ cd "$pkgdir"/usr/lib/python*/ctypes
+ rm -r !(test)
+ cd "$pkgdir"/usr/lib/python*/distutils
+ rm -r !(tests)
+ cd "$pkgdir"/usr/lib/python*/idlelib
+ rm -r !(idle_test)
+ cd "$pkgdir"/usr/lib/python*/lib2to3
+ rm -r !(tests)
+ cd "$pkgdir"/usr/lib/python*/sqlite3
+ rm -r !(test)
+ cd "$pkgdir"/usr/lib/python*/tkinter
+ rm -r !(test)
+ cd "$pkgdir"/usr/lib/python*/unittest
+ rm -r !(test)
+}
diff --git a/abs/core/python/dont-make-libpython-readonly.patch b/abs/core/python/dont-make-libpython-readonly.patch
deleted file mode 100644
index 92308bf..0000000
--- a/abs/core/python/dont-make-libpython-readonly.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Makefile.pre.in b/Makefile.pre.in
-index ce2c0aa..7d6dcf7 100644
---- a/Makefile.pre.in
-+++ b/Makefile.pre.in
-@@ -60,7 +60,7 @@ INSTALL_DATA= @INSTALL_DATA@
- # Shared libraries must be installed with executable mode on some systems;
- # rather than figuring out exactly which, we always give them executable mode.
- # Also, making them read-only seems to be a good idea...
--INSTALL_SHARED= ${INSTALL} -m 555
-+INSTALL_SHARED= ${INSTALL} -m 755
-
- MKDIR_P= @MKDIR_P@
-
diff --git a/abs/core/python/genrebuild b/abs/core/python/genrebuild
new file mode 100755
index 0000000..5f447b0
--- /dev/null
+++ b/abs/core/python/genrebuild
@@ -0,0 +1,7 @@
+#!/bin/bash
+(
+_pyver=$(expac %v python | grep -oP '^[0-9]+\.[0-9]+')
+pacman -Fq /usr/lib/python${_pyver}/ | grep -v archlinuxcn | cut -d / -f 2
+sogrep all libpython${_pyver}m.so
+printf "%s\n" boost vim
+) | sort -u
diff --git a/abs/core/python2/PKGBUILD b/abs/core/python2/PKGBUILD
index aabe74a..fee49e7 100644
--- a/abs/core/python2/PKGBUILD
+++ b/abs/core/python2/PKGBUILD
@@ -1,18 +1,17 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Stéphane Gaudreault <stephane@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: Jason Chu <jason@archlinux.org>
pkgname=python2
-pkgver=2.7.14
+pkgver=2.7.18
pkgrel=2
_pybasever=2.7
pkgdesc="A high-level scripting language"
arch=('x86_64')
license=('PSF')
-url="http://www.python.org/"
-depends=('bzip2' 'gdbm' 'openssl' 'zlib' 'expat' 'sqlite' 'libffi')
+url="https://www.python.org/"
+depends=('bzip2' 'expat' 'gdbm' 'libffi' 'libnsl' 'libxcrypt' 'openssl' 'sqlite' 'zlib')
makedepends=('tk' 'bluez-libs')
checkdepends=('gdb' 'file' 'xorg-server-xvfb')
optdepends=('tk: for IDLE'
@@ -20,16 +19,19 @@ optdepends=('tk: for IDLE'
'python2-pip')
conflicts=('python<3')
source=("https://www.python.org/ftp/python/${pkgver%rc?}/Python-${pkgver}.tar.xz"{,.asc}
- descr_ref.patch fix-profile-task.patch)
-sha512sums=('78310b0be6388ffa15f29a80afb9ab3c03a572cb094e9da00cfe391afadb51696e41f592eb658d6a31a2f422fdac8a55214a382cbb8cfb43d4a127d5b35ea7f9'
+ mtime-workaround.patch)
+sha512sums=('a7bb62b51f48ff0b6df0b18f5b0312a523e3110f49c3237936bfe56ed0e26838c0274ff5401bda6fc21bf24337477ccac49e8026c5d651e4b4cafb5eb5086f6c'
'SKIP'
- '2e16eb23eb402dbe921c09bce99b400c10939114b4a1ded0e94a744d8cb66427947bc8d07c4fb054f9fe0906d10d1da509fc2273fd136225c0f019cc43dd045d'
- '5d7b47bfa9f13cf5fb827546189d823033278f96866366fca5257aaf819c92ffb26e2116426c84ab78d9ae3178eebb591fa4b2f22cfc2725e3e3e795fdb5c2b6')
+ '4e761cfd57791e8b72ecdf84c2e03875bf074311130eea5b8e97409fa304fa3468dbd359a511c4e9978e686e662c58054b4174d3e73f845fa9ded2e83a3a8076')
validpgpkeys=('C01E1CAD5EA2C4F0B8E3571504C367C218ADD4FF') # Benjamin Peterson
prepare() {
cd Python-${pkgver}
+ # makepkg will touch all files to $SOURCE_DATE_EPOCH which will break pyc file's mtime check.
+ # workaround this by touching them to $SOURCE_DATE_EPOCH before running compileall.
+ patch -p0 -i ../mtime-workaround.patch
+
# Temporary workaround for FS#22322
# See http://bugs.python.org/issue10835 for upstream report
sed -i "/progname =/s/python/python${_pybasever}/" Python/pythonrun.c
@@ -55,13 +57,6 @@ prepare() {
# Workaround asdl_c.py/makeopcodetargets.py errors after we touched the shebangs
touch Include/Python-ast.h Python/Python-ast.c Python/opcode_targets.h
-
- # FS#48761
- # http://bugs.python.org/issue25750
- patch -Np1 -i ../descr_ref.patch
-
- # Backport from Python 3.x
- patch -Np2 -i ../fix-profile-task.patch
}
build() {
@@ -84,13 +79,14 @@ build() {
}
check() {
- # Since 2.7.13,
- # test_replace_overflow (present in test_bytes, test_str, test_string, test_unicode, test_userstring) segfault on i686
- # test_bigrepeat (present in test_tuple) segfault on i686
+ # Since 2.7.14 with latest xvfb
+ # test_idle, test_tk, test_ttk_guionly: segfaults
+ # Since 2.7.15: test_ctypes
+ # test_ftplib test_imaplib test_urllib2_localnet: krb5 errors
cd Python-${pkgver}
LD_LIBRARY_PATH="${srcdir}/Python-${pkgver}":${LD_LIBRARY_PATH} \
- xvfb-run "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_bytes test_str test_string test_tuple test_unicode test_userstring
+ xvfb-run "${srcdir}/Python-${pkgver}/python" -m test.regrtest -v -uall -x test_idle test_tk test_ttk_guionly test_ctypes test_ssl test_ftplib test_imaplib test_urllib2_localnet
}
package() {
diff --git a/abs/core/python2/descr_ref.patch b/abs/core/python2/descr_ref.patch
deleted file mode 100644
index b55cf58..0000000
--- a/abs/core/python2/descr_ref.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-When calling tp_descr_get(self, obj, type), make sure that we own a reference to "self"
-
-diff -ru Python-2.7.9/Objects/typeobject.c Python-2.7.9-fixed//Objects/typeobject.c
---- Python-2.7.9/Objects/typeobject.c 2014-12-10 16:59:57.000000000 +0100
-+++ Python-2.7.9-fixed//Objects/typeobject.c 2015-11-27 20:39:58.276156800 +0100
-@@ -2542,6 +2542,7 @@
- PyTypeObject *metatype = Py_TYPE(type);
- PyObject *meta_attribute, *attribute;
- descrgetfunc meta_get;
-+ PyObject* res;
-
- if (!PyString_Check(name)) {
- PyErr_Format(PyExc_TypeError,
-@@ -2563,6 +2564,7 @@
- meta_attribute = _PyType_Lookup(metatype, name);
-
- if (meta_attribute != NULL) {
-+ Py_INCREF(meta_attribute);
- meta_get = Py_TYPE(meta_attribute)->tp_descr_get;
-
- if (meta_get != NULL && PyDescr_IsData(meta_attribute)) {
-@@ -2570,10 +2572,11 @@
- * writes. Assume the attribute is not overridden in
- * type's tp_dict (and bases): call the descriptor now.
- */
-- return meta_get(meta_attribute, (PyObject *)type,
-+ res = meta_get(meta_attribute, (PyObject *)type,
- (PyObject *)metatype);
-+ Py_DECREF(meta_attribute);
-+ return res;
- }
-- Py_INCREF(meta_attribute);
- }
-
- /* No data descriptor found on metatype. Look in tp_dict of this
-@@ -2581,6 +2584,7 @@
- attribute = _PyType_Lookup(type, name);
- if (attribute != NULL) {
- /* Implement descriptor functionality, if any */
-+ Py_INCREF(attribute);
- descrgetfunc local_get = Py_TYPE(attribute)->tp_descr_get;
-
- Py_XDECREF(meta_attribute);
-@@ -2588,11 +2592,12 @@
- if (local_get != NULL) {
- /* NULL 2nd argument indicates the descriptor was
- * found on the target object itself (or a base) */
-- return local_get(attribute, (PyObject *)NULL,
-+ res = local_get(attribute, (PyObject *)NULL,
- (PyObject *)type);
-+ Py_DECREF(attribute);
-+ return res;
- }
-
-- Py_INCREF(attribute);
- return attribute;
- }
-
diff --git a/abs/core/python2/fix-profile-task.patch b/abs/core/python2/fix-profile-task.patch
deleted file mode 100644
index c6558ef..0000000
--- a/abs/core/python2/fix-profile-task.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Python-2.7.13/Makefile.pre.in b/Python-2.7.13/Makefile.pre.in
-index e288964..22edc27 100644
---- a/Python-2.7.13/Makefile.pre.in
-+++ b/Python-2.7.13/Makefile.pre.in
-@@ -456,7 +456,7 @@ build_all_generate_profile:
-
- run_profile_task:
- : # FIXME: can't run for a cross build
-- $(LLVM_PROF_FILE) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
-+ $(LLVM_PROF_FILE) $(RUNSHARED) ./$(BUILDPYTHON) $(PROFILE_TASK) || true
-
- build_all_merge_profile:
- $(LLVM_PROF_MERGER)
diff --git a/abs/core/python2/mtime-workaround.patch b/abs/core/python2/mtime-workaround.patch
new file mode 100644
index 0000000..4d3aaac
--- /dev/null
+++ b/abs/core/python2/mtime-workaround.patch
@@ -0,0 +1,10 @@
+--- Makefile.pre.in.orig 2020-03-21 08:40:27.031543502 +0800
++++ Makefile.pre.in 2020-03-21 08:47:27.277107917 +0800
+@@ -1137,6 +1137,7 @@
+ $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
+ $(DESTDIR)$(LIBDEST)/distutils/tests ; \
+ fi
++ find $(DESTDIR)$(LIBDEST) -exec touch -h -d @$(SOURCE_DATE_EPOCH) {} +
+ PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+ $(PYTHON_FOR_BUILD) -Wi -tt $(DESTDIR)$(LIBDEST)/compileall.py \
+ -d $(LIBDEST) -f \
diff --git a/abs/core/python_modules/cython/PKGBUILD b/abs/core/python_modules/cython/PKGBUILD
index 6826749..6383f1c 100644
--- a/abs/core/python_modules/cython/PKGBUILD
+++ b/abs/core/python_modules/cython/PKGBUILD
@@ -1,23 +1,27 @@
-# $Id$
# Maintainer: Antonio Rojas <arojas@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor: Igor Scabini <furester @ gmail.com>
pkgname=(cython cython2)
pkgbase=cython
-pkgver=0.27.3
-pkgrel=3
+pkgver=0.29.21
+pkgrel=1
pkgdesc="C-Extensions for Python"
arch=(x86_64)
-url="http://cython.org"
+url="https://cython.org"
license=(APACHE)
makedepends=(python-setuptools python2-setuptools)
-source=($pkgbase-$pkgver.tar.gz::"https://github.com/cython/cython/archive/$pkgver.tar.gz")
-sha256sums=('648feb8a257574a3e4ef854475e7d767732ef26e870d2f9fcc1ca5b244b3ac89')
+source=($pkgbase-$pkgver.tar.gz::"https://github.com/cython/cython/archive/$pkgver.tar.gz"
+ cython-hash-int-conversion.patch::"https://github.com/cython/cython/commit/28251032.patch")
+sha256sums=('e2e38e1f0572ca54d6085df3dec8b607d20e81515fb80215aed19c81e8fe2079'
+ '28b2b065a9853e86d0bc09287e8a21f50ebc1f3cfee3b2ab03b6b917cb9e81d8')
prepare() {
cp -r cython-$pkgver cython2-$pkgver
find cython2-$pkgver -name '*.py' | xargs sed -e 's|/usr/bin/env python|/usr/bin/env python2|' -e 's|/usr/bin/python|/usr/bin/python2|' -i
+
+ cd cython-$pkgver
+ patch -p1 -i ../cython-hash-int-conversion.patch # Allow non-int conversion to Py_hash_t, needed by sagemath
}
build() {
@@ -29,7 +33,7 @@ build() {
}
package_cython() {
- depends=(python python-setuptools)
+ depends=(python-setuptools)
cd cython-$pkgver
python setup.py install --root="$pkgdir" --skip-build
@@ -41,7 +45,7 @@ package_cython() {
}
package_cython2() {
- depends=(python2 python2-setuptools)
+ depends=(python2-setuptools)
cd cython2-$pkgver
python2 setup.py install --root="$pkgdir" --skip-build
diff --git a/abs/core/python_modules/docutils/PKGBUILD b/abs/core/python_modules/docutils/PKGBUILD
index 1b7cbe6..fda440e 100644
--- a/abs/core/python_modules/docutils/PKGBUILD
+++ b/abs/core/python_modules/docutils/PKGBUILD
@@ -1,19 +1,18 @@
-# $Id$
# Maintainer: Sébastien Luttringer
# Contributor : Ionut Biru <ibiru@archlinux.org>
# Contributor: Sergej Pupykin <pupykin.s+arch@gmail.com>
pkgbase=docutils
pkgname=('python-docutils' 'python2-docutils')
-pkgver=0.14
-pkgrel=1
+pkgver=0.16
+pkgrel=4
pkgdesc='Set of tools for processing plaintext docs into formats such as HTML, XML, or LaTeX'
arch=('any')
url='http://docutils.sourceforge.net'
license=('custom')
makedepends=('python' 'python2')
-source=("http://downloads.sourceforge.net/$pkgbase/$pkgbase-$pkgver.tar.gz")
-md5sums=('c53768d63db3873b7d452833553469de')
+source=("https://downloads.sourceforge.net/$pkgbase/$pkgbase-$pkgver.tar.gz")
+sha512sums=('1a4e1bdedc79388e73dd438ae6d4d2ba67a005c745613452e027c0f6b378058b528f3329d650454fc0d3dd5253a1eb95dc52b35846cbfb4d8618d9bd4c3ad934')
build() {
cd $pkgbase-$pkgver
diff --git a/abs/core/python_modules/python-acme/PKGBUILD b/abs/core/python_modules/python-acme/PKGBUILD
new file mode 100644
index 0000000..181ae1b
--- /dev/null
+++ b/abs/core/python_modules/python-acme/PKGBUILD
@@ -0,0 +1,30 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Gordian Edenhofer <gordian.edenhofer[at]yahoo[dot]de>
+
+pkgname=python-acme
+pkgver=0.35.0
+pkgrel=1
+pkgdesc="ACME protocol implementation in Python"
+arch=('any')
+license=('Apache')
+url="https://github.com/certbot/certbot"
+depends=('python-setuptools' 'python-pyopenssl' 'python-pyrfc3339' 'python-pytz' 'python-requests'
+ 'python-six' 'python-josepy' 'python-mock' 'python-requests-toolbelt')
+checkdepends=('python-pytest-runner')
+source=("https://pypi.io/packages/source/a/acme/acme-$pkgver.tar.gz")
+sha512sums=('55a6b330ba698f13af0510e59fb5748ffada9c6bb10115fe53d7acb81c4504be0eedb787ca4fc34d3929f90933f7d0ec93e015f786f002364c7455134f041467')
+
+build() {
+ cd acme-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd acme-$pkgver
+ python setup.py pytest
+}
+
+package() {
+ cd acme-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
diff --git a/abs/core/python_modules/python-appdirs/PKGBUILD b/abs/core/python_modules/python-appdirs/PKGBUILD
index 2b6a71c..1f7f529 100644
--- a/abs/core/python_modules/python-appdirs/PKGBUILD
+++ b/abs/core/python_modules/python-appdirs/PKGBUILD
@@ -1,18 +1,17 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Tobias Roettger <toroettg@gmail.com>
pkgbase=python-appdirs
pkgname=(python-appdirs python2-appdirs)
-pkgver=1.4.3
-pkgrel=2
+pkgver=1.4.4
+pkgrel=1
pkgdesc='A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".'
arch=('any')
url="https://github.com/ActiveState/appdirs"
license=('MIT')
makedepends=('python-setuptools' 'python2-setuptools')
source=("https://pypi.io/packages/source/a/appdirs/appdirs-$pkgver.tar.gz")
-md5sums=('44c679904082a2133f5566c8a0d3ab42')
+sha512sums=('8b0cdd9fd471d45b186aa47607691cf378dabd3edc7b7026a57bd6d6f57698e86f440818a5e23ba4288b35d6bb8cb6eb0106eae8aab09d8863ee15025d300883')
prepare() {
cp -a appdirs-$pkgver{,-py2}
diff --git a/abs/core/python_modules/python-babel/PKGBUILD b/abs/core/python_modules/python-babel/PKGBUILD
index fcbdc4b..1b144f7 100644
--- a/abs/core/python_modules/python-babel/PKGBUILD
+++ b/abs/core/python_modules/python-babel/PKGBUILD
@@ -1,54 +1,48 @@
-# $Id$
# Maintainer: Morten Linderud <foxboron@archlinux.no>
# Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>
# Contributor : Giedrius Slavinskas <giedrius25@gmail.com>
-pkgbase=python-babel
-pkgname=(python-babel python2-babel)
-pkgver=2.5.3
-pkgrel=4
+pkgname=python-babel
+pkgver=2.8.1
+_core=36
+pkgrel=2
pkgdesc="A collection of tools for internationalizing Python applications"
url="http://babel.pocoo.org/"
license=("BSD")
arch=('any')
-makedepends=('python' 'python2'
- 'python-setuptools' 'python2-setuptools'
- 'python-pytz' 'python2-pytz')
-noextract=("core-28.zip")
-source=("$pkgbase-$pkgver.tar.gz::https://github.com/python-babel/babel/archive/v$pkgver.tar.gz"
- "core-29.zip::http://unicode.org/Public/cldr/29/core.zip")
-sha256sums=('4c231f28875552abe18c6c10829cec0884d7eeb27423b562357250dc32090cb9'
- 'b3308f8d3b4a80045ce4262b2784ac8d99775e80aaacafbf1277833f6b28ffda')
+depends=('python' 'python-pytz')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-pytest-runner' 'python-freezegun')
+noextract=("cldr-core-$_core.zip")
+source=("$pkgname-$pkgver.tar.gz::https://github.com/python-babel/babel/archive/v$pkgver.tar.gz"
+ "cldr-core-$_core.zip::http://unicode.org/Public/cldr/$_core/core.zip"
+ "python-3.9.patch")
+sha256sums=('2324e41ffb439a83748813e54718574c094222bb32996d466958a7a3d6c23a47'
+ '07279e56c1f4266d140b907ef3ec379dce0a99542303a9628562ac5fe460ba43'
+ '13adbc61cf0c59f215f38cd5b1a4dc3c29f2e35c9e9d054f64a9f03308401b0a')
prepare() {
- cp -a babel-$pkgver{,-py2}
- cp "$srcdir"/core-29.zip babel-$pkgver-py2/cldr/
- cp "$srcdir"/core-29.zip babel-$pkgver/cldr/
+ # Python 3.9 fixes
+ patch -Np1 -d babel-$pkgver <python-3.9.patch
+
+ cp "$srcdir"/cldr-core-$_core.zip babel-$pkgver/cldr/cldr-core-$_core.zip
}
build(){
cd "$srcdir/babel-$pkgver"
python setup.py import_cldr
python setup.py build
+}
- cd "$srcdir/babel-$pkgver-py2"
- python2 setup.py import_cldr
- python2 setup.py build
+check(){
+ cd "$srcdir/babel-$pkgver"
+ # the tests fail if running in the wrong timezone:
+ # https://github.com/python-babel/babel/issues/757
+ TZ=UTC python setup.py pytest
}
package_python-babel() {
- depends=('python' 'python-pytz')
-
cd "$srcdir"/babel-${pkgver}
python setup.py install --root="$pkgdir" --optimize=1 --skip-build
install -D -m0644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-
-package_python2-babel() {
- depends=('python2' 'python2-pytz')
-
- cd "$srcdir"/babel-${pkgver}-py2
- python2 setup.py install --root="$pkgdir" --optimize=1 --skip-build
- mv "$pkgdir"/usr/bin/pybabel "$pkgdir"/usr/bin/pybabel2
- install -D -m0644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
-}
diff --git a/abs/core/python_modules/python-babel/python-3.9.patch b/abs/core/python_modules/python-babel/python-3.9.patch
new file mode 100644
index 0000000..676c682
--- /dev/null
+++ b/abs/core/python_modules/python-babel/python-3.9.patch
@@ -0,0 +1,202 @@
+From 4fa749b918810b52a63b312d82e4003e24db0406 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Mon, 6 Jan 2020 00:37:39 +0100
+Subject: [PATCH] Replace usage of parser.suite with ast.parse
+
+Replaced usage of the long-superseded "parser.suite" module in the
+mako.util package for parsing the python magic encoding comment with the
+"ast.parse" function introduced many years ago in Python 2.5, as
+"parser.suite" is emitting deprecation warnings in Python 3.9.
+
+Fixes https://github.com/sqlalchemy/mako/issues/310
+See also https://github.com/sqlalchemy/mako/commit/2dae7d2c3da73653e6de329dc15c55056a0b9ab6
+---
+ babel/util.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/babel/util.py b/babel/util.py
+index 73a90516..c371badb 100644
+--- a/babel/util.py
++++ b/babel/util.py
+@@ -68,8 +68,8 @@ def parse_encoding(fp):
+ m = PYTHON_MAGIC_COMMENT_re.match(line1)
+ if not m:
+ try:
+- import parser
+- parser.suite(line1.decode('latin-1'))
++ import ast
++ ast.parse(line1.decode('latin-1'))
+ except (ImportError, SyntaxError, UnicodeEncodeError):
+ # Either it's a real syntax error, in which case the source is
+ # not valid python source, or line2 is a continuation of line1,
+
+From 167b71421f113e2210e4deefef5020402492e5be Mon Sep 17 00:00:00 2001
+From: Felix Schwarz <felix.schwarz@oss.schwarz.eu>
+Date: Tue, 5 May 2020 09:58:01 +0200
+Subject: [PATCH] stop using deprecated ElementTree methods "getchildren()" and
+ "getiterator()"
+
+Both methods were removed in Python 3.9 as mentioned in the release notes:
+
+> Methods getchildren() and getiterator() of classes ElementTree and Element in
+> the ElementTree module have been removed. They were deprecated in Python 3.2.
+> Use iter(x) or list(x) instead of x.getchildren() and x.iter() or
+> list(x.iter()) instead of x.getiterator().
+---
+ scripts/import_cldr.py | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/scripts/import_cldr.py b/scripts/import_cldr.py
+index 8993b68e..2ed3af91 100755
+--- a/scripts/import_cldr.py
++++ b/scripts/import_cldr.py
+@@ -598,7 +598,7 @@ def parse_calendar_months(data, calendar):
+ for width in ctxt.findall('monthWidth'):
+ width_type = width.attrib['type']
+ widths = ctxts.setdefault(width_type, {})
+- for elem in width.getiterator():
++ for elem in width.iter():
+ if elem.tag == 'month':
+ _import_type_text(widths, elem, int(elem.attrib['type']))
+ elif elem.tag == 'alias':
+@@ -616,7 +616,7 @@ def parse_calendar_days(data, calendar):
+ for width in ctxt.findall('dayWidth'):
+ width_type = width.attrib['type']
+ widths = ctxts.setdefault(width_type, {})
+- for elem in width.getiterator():
++ for elem in width.iter():
+ if elem.tag == 'day':
+ _import_type_text(widths, elem, weekdays[elem.attrib['type']])
+ elif elem.tag == 'alias':
+@@ -634,7 +634,7 @@ def parse_calendar_quarters(data, calendar):
+ for width in ctxt.findall('quarterWidth'):
+ width_type = width.attrib['type']
+ widths = ctxts.setdefault(width_type, {})
+- for elem in width.getiterator():
++ for elem in width.iter():
+ if elem.tag == 'quarter':
+ _import_type_text(widths, elem, int(elem.attrib['type']))
+ elif elem.tag == 'alias':
+@@ -649,7 +649,7 @@ def parse_calendar_eras(data, calendar):
+ for width in calendar.findall('eras/*'):
+ width_type = NAME_MAP[width.tag]
+ widths = eras.setdefault(width_type, {})
+- for elem in width.getiterator():
++ for elem in width.iter():
+ if elem.tag == 'era':
+ _import_type_text(widths, elem, type=int(elem.attrib.get('type')))
+ elif elem.tag == 'alias':
+@@ -676,7 +676,7 @@ def parse_calendar_periods(data, calendar):
+ def parse_calendar_date_formats(data, calendar):
+ date_formats = data.setdefault('date_formats', {})
+ for format in calendar.findall('dateFormats'):
+- for elem in format.getiterator():
++ for elem in format.iter():
+ if elem.tag == 'dateFormatLength':
+ type = elem.attrib.get('type')
+ if _should_skip_elem(elem, type, date_formats):
+@@ -696,7 +696,7 @@ def parse_calendar_date_formats(data, calendar):
+ def parse_calendar_time_formats(data, calendar):
+ time_formats = data.setdefault('time_formats', {})
+ for format in calendar.findall('timeFormats'):
+- for elem in format.getiterator():
++ for elem in format.iter():
+ if elem.tag == 'timeFormatLength':
+ type = elem.attrib.get('type')
+ if _should_skip_elem(elem, type, time_formats):
+@@ -717,7 +717,7 @@ def parse_calendar_datetime_skeletons(data, calendar):
+ datetime_formats = data.setdefault('datetime_formats', {})
+ datetime_skeletons = data.setdefault('datetime_skeletons', {})
+ for format in calendar.findall('dateTimeFormats'):
+- for elem in format.getiterator():
++ for elem in format.iter():
+ if elem.tag == 'dateTimeFormatLength':
+ type = elem.attrib.get('type')
+ if _should_skip_elem(elem, type, datetime_formats):
+@@ -880,7 +880,7 @@ def parse_interval_formats(data, tree):
+ interval_formats[None] = elem.text
+ elif elem.tag == "intervalFormatItem":
+ skel_data = interval_formats.setdefault(elem.attrib["id"], {})
+- for item_sub in elem.getchildren():
++ for item_sub in elem:
+ if item_sub.tag == "greatestDifference":
+ skel_data[item_sub.attrib["id"]] = split_interval_pattern(item_sub.text)
+ else:
+@@ -903,7 +903,7 @@ def parse_currency_formats(data, tree):
+ type = '%s:%s' % (type, curr_length_type)
+ if _should_skip_elem(elem, type, currency_formats):
+ continue
+- for child in elem.getiterator():
++ for child in elem.iter():
+ if child.tag == 'alias':
+ currency_formats[type] = Alias(
+ _translate_alias(['currency_formats', elem.attrib['type']],
+
+From 7bdaa28a55e8d8228d5434effa4b1473ab7b3669 Mon Sep 17 00:00:00 2001
+From: Felix Schwarz <felix.schwarz@oss.schwarz.eu>
+Date: Tue, 5 May 2020 08:05:56 +0000
+Subject: [PATCH] fix tests when using Python 3.9a6
+
+In Python 3.9a6 integer values for future flags were changed to prevent
+collision with compiler flags. We need to retrieve these at runtime so
+the test suite works with Python <= 3.8 as well as Python 3.9.
+---
+ tests/test_util.py | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/tests/test_util.py b/tests/test_util.py
+index a6a4450c..b9343aaa 100644
+--- a/tests/test_util.py
++++ b/tests/test_util.py
+@@ -11,6 +11,7 @@
+ # individuals. For the exact contribution history, see the revision
+ # history and logs, available at http://babel.edgewall.org/log/.
+
++import __future__
+ import unittest
+
+ import pytest
+@@ -20,6 +21,12 @@
+ from babel.util import parse_future_flags
+
+
++class _FF:
++ division = __future__.division.compiler_flag
++ print_function = __future__.print_function.compiler_flag
++ with_statement = __future__.with_statement.compiler_flag
++ unicode_literals = __future__.unicode_literals.compiler_flag
++
+ def test_distinct():
+ assert list(util.distinct([1, 2, 1, 3, 4, 4])) == [1, 2, 3, 4]
+ assert list(util.distinct('foobar')) == ['f', 'o', 'b', 'a', 'r']
+@@ -70,25 +77,25 @@ def test_parse_encoding_non_ascii():
+ from __future__ import print_function,
+ division, with_statement,
+ unicode_literals
+-''', 0x10000 | 0x2000 | 0x8000 | 0x20000),
++''', _FF.print_function | _FF.division | _FF.with_statement | _FF.unicode_literals),
+ ('''
+ from __future__ import print_function, division
+ print('hello')
+-''', 0x10000 | 0x2000),
++''', _FF.print_function | _FF.division),
+ ('''
+ from __future__ import print_function, division, unknown,,,,,
+ print 'hello'
+-''', 0x10000 | 0x2000),
++''', _FF.print_function | _FF.division),
+ ('''
+ from __future__ import (
+ print_function,
+ division)
+-''', 0x10000 | 0x2000),
++''', _FF.print_function | _FF.division),
+ ('''
+ from __future__ import \\
+ print_function, \\
+ division
+-''', 0x10000 | 0x2000),
++''', _FF.print_function | _FF.division),
+ ])
+ def test_parse_future(source, result):
+ fp = BytesIO(source.encode('latin-1'))
diff --git a/abs/core/python_modules/python-beautifulsoup4/PKGBUILD b/abs/core/python_modules/python-beautifulsoup4/PKGBUILD
index 5ed3781..e3d2f56 100644
--- a/abs/core/python_modules/python-beautifulsoup4/PKGBUILD
+++ b/abs/core/python_modules/python-beautifulsoup4/PKGBUILD
@@ -1,20 +1,19 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Daniel Wallace <danielwallace at gtmanfred dot com>
# Contributor: Giovanni Scafora <giovanni@archlinux.org>
pkgbase=python-beautifulsoup4
pkgname=('python-beautifulsoup4' 'python2-beautifulsoup4')
-pkgver=4.6.0
-pkgrel=2
+pkgver=4.9.3
+pkgrel=3
pkgdesc="A Python HTML/XML parser designed for quick turnaround projects like screen-scraping"
arch=('any')
-url="http://www.crummy.com/software/BeautifulSoup/index.html"
+url="https://www.crummy.com/software/BeautifulSoup/index.html"
license=('PSF')
-makedepends=('python-setuptools' 'python2-setuptools')
+makedepends=('python-setuptools' 'python2-setuptools' 'python-soupsieve' 'python2-soupsieve')
checkdepends=('python-pytest' 'python2-pytest')
-source=("http://www.crummy.com/software/BeautifulSoup/bs4/download/${pkgver%.*}/${pkgbase#*-}-$pkgver.tar.gz")
-sha512sums=('1a7eee4218e58cc3852e71fe4f0892f673bb46a851941264766a38eff8ef05d612d88b4641fcb478ce8f66ac50dc987ca039923c4bbb11867c74813289f7e578')
+source=("https://pypi.io/packages/source/b/beautifulsoup4/beautifulsoup4-$pkgver.tar.gz")
+sha512sums=('e3cb6258bd7c51f12128fa8ee5948fb3566163ae233fac2dda21bab7772ab8dbb384d920b0ea138ef9921307b48f89cee3a9bf6111dfc8903d917ee7af365f34')
prepare() {
cp -a beautifulsoup4-$pkgver{,-py2}
@@ -37,7 +36,7 @@ check() {
}
package_python-beautifulsoup4() {
- depends=('python')
+ depends=('python-soupsieve')
optdepends=('python-chardet: to autodetect character encodings'
'python-lxml: alternative HTML parser'
'python-html5lib: alternative HTML parser')
@@ -47,7 +46,7 @@ package_python-beautifulsoup4() {
}
package_python2-beautifulsoup4() {
- depends=('python2')
+ depends=('python2-soupsieve')
optdepends=('python2-chardet: to autodetect character encodings'
'python2-lxml: alternative HTML parser'
'python2-html5lib: alternative HTML parser')
diff --git a/abs/core/python_modules/python-chardet/PKGBUILD b/abs/core/python_modules/python-chardet/PKGBUILD
index 6b6332d..a123390 100644
--- a/abs/core/python_modules/python-chardet/PKGBUILD
+++ b/abs/core/python_modules/python-chardet/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer : Felix Yan <felixonmars@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: William Rea <sillywilly@gmail.com>
@@ -6,7 +5,7 @@
pkgbase=python-chardet
pkgname=('python-chardet' 'python2-chardet')
pkgver=3.0.4
-pkgrel=2
+pkgrel=7
arch=('any')
url="https://github.com/chardet/chardet"
license=('LGPL')
diff --git a/abs/core/python_modules/python-configargparse/PKGBUILD b/abs/core/python_modules/python-configargparse/PKGBUILD
new file mode 100644
index 0000000..5225200
--- /dev/null
+++ b/abs/core/python_modules/python-configargparse/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgname=python-configargparse
+pkgver=0.14.0
+pkgrel=2
+pkgdesc='A drop-in replacement for argparse that allows options to also be set via config files and/or environment variables'
+arch=('any')
+url='https://github.com/zorro3/ConfigArgParse'
+license=('MIT')
+depends=('python')
+makedepends=('python-setuptools')
+checkdepends=('python-yaml')
+optdepends=('python-yaml: for YAML support')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/bw2/ConfigArgParse/archive/$pkgver.tar.gz")
+sha512sums=('e48ca61027abf0e0acb8414b6d89b276b186b4f714368b8c33975537c2264bb2d81f18cf3013b99d9ce752014361afa973f704b3f6957ca4b98319bb0ca5ca8c')
+
+build() {
+ cd ConfigArgParse-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd ConfigArgParse-$pkgver
+ python setup.py test || warning 'Ignoring TestWrappingMetavar failure'
+}
+
+package() {
+ cd ConfigArgParse-$pkgver
+
+ python setup.py install --root="$pkgdir" --optimize=1
+ install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+}
diff --git a/abs/core/python_modules/python-configobj/PKGBUILD b/abs/core/python_modules/python-configobj/PKGBUILD
new file mode 100644
index 0000000..df251f7
--- /dev/null
+++ b/abs/core/python_modules/python-configobj/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Alexander Rødseth <rodseth@gmail.com>
+# Contributor: Angel 'angvp' Velasquez <angvp[at]archlinux.com.ve>
+# Contributor: Stefan Husmann <stefan-husmann@t-online.de>
+# Contributor: Manuel "ekerazha" C. (www.ekerazha.com)
+
+pkgbase=python-configobj
+pkgname=('python-configobj' 'python2-configobj')
+pkgver=5.0.6
+pkgrel=4
+pkgdesc='Simple but powerful config file reader and writer for Python'
+arch=('any')
+url='https://github.com/DiffSK/configobj'
+license=('BSD')
+makedepends=('python' 'python2')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/DiffSK/configobj/archive/v$pkgver.tar.gz")
+sha256sums=('2e140354efcca6f558ff9ee941b435ae09a617bc071797bef62c8d6ed2033d5e')
+
+package_python-configobj() {
+ depends=('python-six')
+ cd "configobj-$pkgver"
+
+ python setup.py install --root="$pkgdir" --optimize=1
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+package_python2-configobj() {
+ depends=('python2-six')
+ cd "configobj-$pkgver"
+
+ python2 setup.py install --root="$pkgdir" --optimize=1
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-future/PKGBUILD b/abs/core/python_modules/python-future/PKGBUILD
index 3cc7fa5..55c7d3b 100644
--- a/abs/core/python_modules/python-future/PKGBUILD
+++ b/abs/core/python_modules/python-future/PKGBUILD
@@ -1,66 +1,38 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Christopher Arndt <aur -at- chrisarndt -dot- de>
# Contributor: Gaute Hope <eg@gaute.vetsj.com>
# Contributor: Melissa Padilla <mpadilla2 at hotmail dot com>
-pkgbase=python-future
-pkgname=(python-future python2-future)
-pkgver=0.16.0
+pkgname=python-future
+pkgver=0.18.2
pkgrel=3
pkgdesc="Clean single-source support for Python 3 and 2"
-url="http://python-future.org/"
+url="https://python-future.org/"
arch=('any')
license=('MIT')
-makedepends=('python-setuptools' 'python2-setuptools')
-checkdepends=('python-requests' 'python2-requests')
+depends=('python')
+provides=('futurize' 'pasteurize')
+checkdepends=('python-requests')
+makedepends=('python-setuptools')
+optdepends=('python-setuptools: futurize and pasteurize scripts')
options=('!emptydirs')
source=("https://pypi.io/packages/source/f/future/future-$pkgver.tar.gz")
-sha256sums=('e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb')
-
-prepare() {
- cp -a future-$pkgver{,-py2}
-}
+sha512sums=('91c025f7d94bcdf93df838fab67053165a414fc84e8496f92ecbb910dd55f6b6af5e360bbd051444066880c5a6877e75157bd95e150ead46e5c605930dfc50f2')
build() {
cd "$srcdir"/future-$pkgver
python setup.py build
-
- cd "$srcdir"/future-$pkgver-py2
- python2 setup.py build
}
check() {
cd "$srcdir"/future-$pkgver
- PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python setup.py test || warning "Tests failed"
-
- cd "$srcdir"/future-$pkgver-py2
- PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python2 setup.py test
+#PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python setup.py test || warning "Tests failed"
}
-package_python-future() {
- depends=('python')
- optdepends=('python-setuptools: futurize and pasteurize scripts')
- provides=('futurize' 'pasteurize')
-
+package() {
cd future-$pkgver
python setup.py install --root="$pkgdir" --optimize=1
install -D -m644 LICENSE.txt \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
}
-
-package_python2-future() {
- depends=('python2')
- optdepends=('python2-setuptools: futurize2 and pasteurize2 scripts')
-
- cd future-$pkgver-py2
-
- python2 setup.py install --root="$pkgdir" --optimize=1
-
- mv "$pkgdir"/usr/bin/futurize{,2}
- mv "$pkgdir"/usr/bin/pasteurize{,2}
-
- install -D -m644 LICENSE.txt \
- "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.txt
-}
diff --git a/abs/core/python_modules/python-html5lib/PKGBUILD b/abs/core/python_modules/python-html5lib/PKGBUILD
index 4991390..2e7f14b 100644
--- a/abs/core/python_modules/python-html5lib/PKGBUILD
+++ b/abs/core/python_modules/python-html5lib/PKGBUILD
@@ -5,23 +5,29 @@
pkgbase=python-html5lib
pkgname=('python2-html5lib' 'python-html5lib')
-pkgver=1.0.1
-pkgrel=2
+pkgver=1.1
+pkgrel=5
arch=('any')
url="https://github.com/html5lib"
license=('MIT')
-makedepends=('python-setuptools' 'python2-setuptools' 'python-webencodings' 'python2-webencodings')
-checkdepends=('python-six' 'python2-six' 'python-pytest-expect' 'python2-pytest-expect'
- 'python-lxml' 'python2-lxml' 'python-mock' 'python2-mock')
-_test_commit=c305da74fae50fb018870de7a042da36c1a93b65
+_deps=('six' 'webencodings')
+makedepends=('python-setuptools' 'python2-setuptools' "${_deps[@]/#/python-}" "${_deps[@]/#/python2-}")
+_checkdeps=('pytest' 'pytest-expect' 'lxml' 'mock')
+checkdepends=("${_checkdeps[@]/#/python-}" "${_checkdeps[@]/#/python2-}")
+_test_commit=71eebd59772d1d39aced0c0582ae9c09acf3ce6e
source=("$pkgbase-$pkgver.tar.gz::https://github.com/html5lib/html5lib-python/archive/${pkgver}.tar.gz"
+ "https://github.com/html5lib/html5lib-python/commit/2c19b9899ab3a3e8bd0ca35e5d78544334204169.patch"
"https://github.com/html5lib/html5lib-tests/archive/${_test_commit}.tar.gz")
-sha256sums=('fabbebd6a55d07842087f13849076eeed350aa8bb6c9ec840f6a6aba9388db06'
- 'cb261423c644b3469ac66926e290060b481371d0952995d270492fc761d0209a')
+sha256sums=('66e9e24a53c10c27abb6be8a3cf2cf55824c6ea1cef8570a633cb223ec46e894'
+ '6f37b33667e35ea138279be9842f012792821b1497b81ae4b108a74180cfe249'
+ 'c866f5e4ae9ef34313e2b61fcb74849b6f8aef970bf8249956b6a5d142197087')
prepare() {
cd "${srcdir}"/html5lib-python-${pkgver}
+ # fix pytest 6 compat
+ patch -p1 -i ../2c19b9899ab3a3e8bd0ca35e5d78544334204169.patch
+
rmdir html5lib/tests/testdata
ln -sfT ../../../html5lib-tests-${_test_commit} html5lib/tests/testdata
}
@@ -42,22 +48,21 @@ check() {
package_python-html5lib() {
pkgdesc="A Python HTML parser/tokenizer based on the WHATWG HTML5 spec"
- depends=('python' 'python-six' 'python-webencodings')
+ depends=("${_deps[@]/#/python-}")
optdepends=('python-lxml: lxml treebuilder'
'python-genshi: genshi treewalker')
cd "${srcdir}"/html5lib-python-${pkgver}
python setup.py install --root="${pkgdir}" --optimize=1 --skip-build
- install -Dm755 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}
package_python2-html5lib() {
pkgdesc="A Python2 HTML parser/tokenizer based on the WHATWG HTML5 spec"
- depends=('python2' 'python2-six' 'python2-webencodings')
- optdepends=('python2-lxml: lxml treebuilder'
- 'python2-genshi: genshi treewalker')
+ depends=("${_deps[@]/#/python2-}")
+ optdepends=('python2-lxml: lxml treebuilder')
cd "${srcdir}"/html5lib-python-${pkgver}
python2 setup.py install --root="${pkgdir}" --optimize=1 --skip-build
- install -Dm755 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}
diff --git a/abs/core/python_modules/python-idna/PKGBUILD b/abs/core/python_modules/python-idna/PKGBUILD
index 00a64bf..6f5941d 100644
--- a/abs/core/python_modules/python-idna/PKGBUILD
+++ b/abs/core/python_modules/python-idna/PKGBUILD
@@ -1,19 +1,19 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgbase=python-idna
pkgname=('python-idna' 'python2-idna')
-pkgver=2.6
-pkgrel=1
+pkgver=2.10
+pkgrel=3
pkgdesc="Internationalized Domain Names in Applications (IDNA)"
arch=('any')
license=('BSD')
url="https://github.com/kjd/idna"
makedepends=('python-setuptools' 'python2-setuptools')
source=("https://pypi.io/packages/source/i/idna/idna-$pkgver.tar.gz")
-sha512sums=('cb5dbfab44c4d11521c67f9d29391f184d1267a3da6dc89f4ed12c60a7a909d5c7474c3ea2bddd0af7063f4f620e87a8dd586bb07e8b961b30b1dd7c969704c2')
+sha512sums=('83b412de2f79a4bc86fb4bdac7252521b9d84f0be54f4fb1bde1ee13a210bbfa4b1a98247affbc7921046fb117a591316c12694c1be72865767646554c5207ac')
prepare() {
+ rm -r idna-$pkgver/*.egg-info
cp -a idna-$pkgver{,-py2}
}
diff --git a/abs/core/python_modules/python-imagesize/PKGBUILD b/abs/core/python_modules/python-imagesize/PKGBUILD
index c8ee2da..6b20113 100644
--- a/abs/core/python_modules/python-imagesize/PKGBUILD
+++ b/abs/core/python_modules/python-imagesize/PKGBUILD
@@ -1,39 +1,31 @@
-pkgbase=python-imagesize
-pkgname=('python-imagesize' 'python2-imagesize')
-pkgver=1.0.0
-pkgrel=1
+pkgname=python-imagesize
+pkgver=1.2.0
+pkgrel=4
pkgdesc='Getting image size from png/jpeg/jpeg2000/gif file'
url='https://github.com/shibukawa/imagesize_py'
arch=('any')
license=('MIT')
-makedepends=('python-setuptools' 'python2-setuptools')
+depends=('python')
+makedepends=('python-setuptools')
source=("https://files.pythonhosted.org/packages/source/i/imagesize/imagesize-$pkgver.tar.gz")
-md5sums=('9aa76df782f1df5b917794638b6bb6c2')
+sha256sums=('b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1')
build() {
- cp -r imagesize-$pkgver imagesize-$pkgver-py2
-
cd "$srcdir"/imagesize-$pkgver
python setup.py build
-
- cd "$srcdir"/imagesize-$pkgver-py2
- python2 setup.py build
}
-package_python-imagesize() {
- depends=('python')
-
- cd imagesize-$pkgver
- python setup.py install --root="$pkgdir" --optimize=1
+check() {
+ cd "$srcdir"/imagesize-$pkgver
+ python -m unittest discover -v
}
-package_python2-imagesize() {
- depends=('python2')
-
- cd imagesize-$pkgver-py2
- python2 setup.py install --root="$pkgdir" --optimize=1
+package() {
+ cd imagesize-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 LICENSE.rst "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.rst
}
diff --git a/abs/core/python_modules/python-jinja/PKGBUILD b/abs/core/python_modules/python-jinja/PKGBUILD
index 1bcd44e..c9822bd 100644
--- a/abs/core/python_modules/python-jinja/PKGBUILD
+++ b/abs/core/python_modules/python-jinja/PKGBUILD
@@ -1,49 +1,49 @@
-# $Id$
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
+# Contributor: David Runge <dave@sleepmap.de>
# Contributor: Peter Baldwin <bald_pete@hotmail.com>
pkgname=('python-jinja' 'python2-jinja')
-pkgver=2.10
-pkgrel=1
+pkgver=2.11.2
+pkgrel=4
pkgdesc="A simple pythonic template language written in Python"
arch=('any')
-url="http://jinja.pocoo.org/"
+url="https://palletsprojects.com/p/jinja/"
license=('BSD')
makedepends=('python-setuptools' 'python2-setuptools' 'python-markupsafe'
'python2-markupsafe')
-source=(https://pypi.org/packages/source/J/Jinja2/Jinja2-$pkgver.tar.gz)
-sha256sums=('f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4')
+checkdepends=('python-pytest' 'python2-pytest')
+source=(https://files.pythonhosted.org/packages/source/J/Jinja2/Jinja2-$pkgver.tar.gz)
+sha256sums=('89aab215427ef59c34ad58735269eb58b1a5808103067f7bb9d5836c651b3bb0')
build() {
- cd "$srcdir"
-
- rm -rf python{2,3}-build
- for builddir in python{2,3}-build; do
- cp -r Jinja2-$pkgver $builddir
- pushd $builddir
- ${builddir%-build} setup.py build
- popd
- done
+ cd Jinja2-$pkgver
+ python3 setup.py build
+}
+
+check() {
+ cd Jinja2-$pkgver
+ export PYTHONPATH=build/lib:$PYTHONPATH
+ py.test
+ py.test2
}
package_python-jinja() {
depends=('python-setuptools' 'python-markupsafe')
+ optdepends=('python-babel: for i18n support')
- cd "$srcdir/python3-build"
-
- python3 setup.py install --root="$pkgdir" -O1
+ cd Jinja2-$pkgver
+ python3 setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 LICENSE.rst -t "$pkgdir/usr/share/licenses/$pkgname"
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -Dm644 ext/Vim/jinja.vim -t "$pkgdir/usr/share/vim/vimfiles/syntax"
}
package_python2-jinja() {
depends=('python2-setuptools' 'python2-markupsafe')
- cd "$srcdir/python2-build"
-
- python2 setup.py install --root="$pkgdir" -O1
-
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ cd Jinja2-$pkgver
+ python2 setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 LICENSE.rst -t "$pkgdir/usr/share/licenses/$pkgname"
}
# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-josepy/PKGBUILD b/abs/core/python_modules/python-josepy/PKGBUILD
new file mode 100644
index 0000000..7e56bda
--- /dev/null
+++ b/abs/core/python_modules/python-josepy/PKGBUILD
@@ -0,0 +1,58 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgbase=python-josepy
+pkgname=(python-josepy python2-josepy)
+pkgver=1.1.0
+pkgrel=2
+pkgdesc="JOSE protocol implementation in Python"
+url="https://github.com/certbot/josepy"
+license=('PerlArtistic')
+arch=('any')
+makedepends=('python-cryptography' 'python2-cryptography' 'python-pyopenssl' 'python2-pyopenssl'
+ 'python-setuptools' 'python2-setuptools')
+checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'python-coverage' 'python2-coverage'
+ 'python-pytest-isort' 'python2-pytest-isort' 'python-pytest-cache'
+ 'python2-pytest-cache' 'python-pytest-cov' 'python2-pytest-cov' 'flake8'
+ 'python2-flake8' 'python-pytest-flake8' 'python2-pytest-flake8' 'python-mock'
+ 'python2-mock')
+source=("https://pypi.io/packages/source/j/josepy/josepy-$pkgver.tar.gz")
+sha512sums=('eee886565b1cb92e6d7a42f1e3666a158c162fb891f90de844118ac32b24f6deccf2eee5990ba100827109203f7da99c2b55735fb7bda05fd7a447dca39d6362')
+
+prepare() {
+ # https://github.com/certbot/josepy/issues/24
+ sed -i 's/flake8-ignore = E501/flake8-ignore = E501 W504/' josepy-$pkgver/pytest.ini\
+
+ cp -a josepy-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/josepy-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/josepy-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/josepy-$pkgver
+ python setup.py pytest
+
+ cd "$srcdir"/josepy-$pkgver-py2
+ python2 setup.py pytest
+}
+
+package_python-josepy() {
+ depends=('python-cryptography' 'python-pyopenssl' 'python-setuptools')
+
+ cd josepy-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-josepy() {
+ depends=('python2-cryptography' 'python2-pyopenssl' 'python2-setuptools')
+
+ cd josepy-$pkgver-py2
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ mv "$pkgdir"/usr/bin/jws{,2}
+}
diff --git a/abs/core/python_modules/python-lxml/PKGBUILD b/abs/core/python_modules/python-lxml/PKGBUILD
index f939617..b38d024 100644
--- a/abs/core/python_modules/python-lxml/PKGBUILD
+++ b/abs/core/python_modules/python-lxml/PKGBUILD
@@ -3,17 +3,17 @@
pkgbase=python-lxml
pkgname=('python-lxml' 'python2-lxml' 'python-lxml-docs')
-pkgver=4.3.0
-pkgrel=1
+pkgver=4.6.1
+pkgrel=3
arch=('x86_64')
license=('BSD' 'custom')
-url="http://lxml.de/"
-makedepends=('libxslt' 'python-setuptools' 'python2-setuptools' 'epydoc' 'python2-pygments'
- 'python2-docutils' 'cython' 'cython2')
+url="https://lxml.de/"
+makedepends=('libxslt' 'python-setuptools' 'python2-setuptools' 'python-pygments'
+ 'python-sphinx' 'python-sphinx_rtd_theme' 'cython' 'cython2')
checkdepends=('python-cssselect' 'python2-cssselect' 'python-html5lib' 'python2-html5lib'
'python-beautifulsoup4' 'python2-beautifulsoup4')
source=("https://github.com/lxml/lxml/archive/lxml-$pkgver.tar.gz")
-sha512sums=('3739e243b543e8a5f678aaca19fe1b5be21351c343065fe8e52709523d4e27dbd5c846c0681473b9612fd73af6a4d04ec21c6834e53680410cab854b7f7f1675')
+sha512sums=('3cc917e7535ac1be3db8939f72846313267c8b1f0adccc92a2155a160ed7299d0def718bdae1379e42398ca1b959b1130505597febca00f02cb87c8666f1f1c3')
prepare() {
mv lxml-lxml-$pkgver lxml-$pkgver
@@ -26,20 +26,20 @@ prepare() {
build() {
cd "$srcdir"/lxml-$pkgver
python setup.py build
+ make html
cd "$srcdir"/lxml-$pkgver-py2
python2 setup.py build
- make PYTHON=python2 html
}
check() {
# TODO: Find a sane way to skip inplace build
cd "$srcdir"/lxml-$pkgver
- make PYTHON=python test || warning "Tests failed"
+ make PYTHON=python test
cd "$srcdir"/lxml-$pkgver-py2
- make PYTHON=python2 test || warning "Tests failed"
+ make PYTHON=python2 test
}
package_python-lxml() {
@@ -84,7 +84,7 @@ package_python-lxml-docs() {
pkgdesc="Python binding for the libxml2 and libxslt libraries (docs)"
options=('docs')
- cd lxml-$pkgver-py2
+ cd lxml-$pkgver
install -d "$pkgdir"/usr/share/doc/$pkgbase
cp -r doc/html "$pkgdir"/usr/share/doc/$pkgbase
diff --git a/abs/core/python_modules/python-markupsafe/PKGBUILD b/abs/core/python_modules/python-markupsafe/PKGBUILD
index ec6d6f9..a57d99d 100644
--- a/abs/core/python_modules/python-markupsafe/PKGBUILD
+++ b/abs/core/python_modules/python-markupsafe/PKGBUILD
@@ -1,53 +1,46 @@
-# $Id$
# Maintainer : Felix Yan <felixonmars@archlinux.org>
# Contributor: Ionut Biru <ibiru@archlinux.org>
# Contributor: Alex Anthony <alex.anthony28991@gmail.com>
+pkgbase=python-markupsafe
pkgname=('python-markupsafe' 'python2-markupsafe')
-pkgver=1.0
-pkgrel=1
+pkgver=1.1.1
+pkgrel=6
pkgdesc="Implements a XML/HTML/XHTML Markup safe string for Python"
arch=('x86_64')
-url="http://pypi.python.org/pypi/MarkupSafe"
-license=('custom')
+url="https://pypi.python.org/pypi/MarkupSafe"
+license=('BSD')
makedepends=('python-setuptools' 'python2-setuptools')
-source=("https://pypi.io/packages/source/M/MarkupSafe/MarkupSafe-${pkgver}.tar.gz")
-sha512sums=('7437a02cb1b9c1d6d6c20b13d394f24a1cd1cb8c743f832d8b1cbb6ab8846f70f54d924dd693423b33c4d592e772983ae38fd4a35961e233457c48bd3584ecb8')
-
-prepare() {
- cp -a MarkupSafe-$pkgver{,-py2}
-}
+checkdepends=('python-pytest-runner' 'python2-pytest-runner')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/pallets/markupsafe/archive/$pkgver.tar.gz")
+sha512sums=('c2a1072c5dd0918e47f9cfbd30b79b0690a43635f7cfc3fdd27f3df52f8e20406d7e3cfadd29df8ab1d1110f50e23eb7c7272707e0739d862d4b1edb59bbc241')
build() {
- cd "$srcdir"/MarkupSafe-$pkgver
+ cd markupsafe-$pkgver
python setup.py build
-
- cd "$srcdir"/MarkupSafe-$pkgver-py2
python2 setup.py build
}
check() {
- cd "$srcdir"/MarkupSafe-$pkgver
- python setup.py test
-
- cd "$srcdir"/MarkupSafe-$pkgver-py2
- python2 setup.py test
+ cd markupsafe-$pkgver
+ python setup.py pytest
+ python2 setup.py pytest
}
package_python-markupsafe() {
depends=('python')
- cd MarkupSafe-$pkgver
+ cd markupsafe-$pkgver
python setup.py install --root="$pkgdir" --optimize=1
- install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/python-markupsafe/LICENSE
+ install -D -m644 LICENSE.rst "$pkgdir"/usr/share/licenses/python-markupsafe/LICENSE.rst
}
package_python2-markupsafe() {
depends=('python2')
- cd MarkupSafe-$pkgver-py2
+ cd markupsafe-$pkgver
python2 setup.py install --root="$pkgdir" --optimize=1
- install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/python2-markupsafe/LICENSE
+ install -D -m644 LICENSE.rst "$pkgdir"/usr/share/licenses/python2-markupsafe/LICENSE.rst
}
diff --git a/abs/core/python_modules/python-mysqlclient/PKGBUILD b/abs/core/python_modules/python-mysqlclient/PKGBUILD
new file mode 100644
index 0000000..8b49ff4
--- /dev/null
+++ b/abs/core/python_modules/python-mysqlclient/PKGBUILD
@@ -0,0 +1,26 @@
+# Maintainer: Florian Pritz <bluewind@xinu.at>
+# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
+
+pkgname=python-mysqlclient
+_libname=${pkgname/python-/}
+pkgver=2.0.1
+pkgrel=1
+pkgdesc="Fork of MySQL-python with support for Python 3"
+arch=('x86_64')
+url="https://github.com/PyMySQL/mysqlclient-python"
+license=('GPL')
+depends=('python' 'libmysqlclient')
+makedepends=('mysql' 'python-setuptools')
+source=("https://files.pythonhosted.org/packages/source/${_libname:0:1}/$_libname/$_libname-$pkgver.tar.gz")
+
+build() {
+ cd "$srcdir"/$_libname-$pkgver
+ python setup.py build
+}
+
+package() {
+ cd "$srcdir"/$_libname-$pkgver
+ python setup.py install -O1 --skip-build --root="$pkgdir"
+}
+
+sha256sums=('fb2f75aea14722390d2d8ddf384ad99da708c707a96656210a7be8af20a2c5e5')
diff --git a/abs/core/python_modules/python-ordered-set/PKGBUILD b/abs/core/python_modules/python-ordered-set/PKGBUILD
new file mode 100644
index 0000000..cb67a21
--- /dev/null
+++ b/abs/core/python_modules/python-ordered-set/PKGBUILD
@@ -0,0 +1,33 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Tobias Roettger <toroettg@gmail.com>
+
+pkgname=python-ordered-set
+pkgver=4.0.2
+pkgrel=1
+pkgdesc='A MutableSet that remembers its order, so that every entry has an index'
+arch=('any')
+url="https://github.com/LuminosoInsight/ordered-set"
+license=('MIT')
+depends=('python')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest')
+source=("https://pypi.io/packages/source/o/ordered-set/ordered-set-$pkgver.tar.gz")
+md5sums=('5d88f3870c32d4868b28c8fe833f7e74')
+
+build() {
+ cd ordered-set-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd ordered-set-$pkgver
+ pytest --doctest-modules test.py ordered_set.py README.md --doctest-glob=README.md --ignore=setup.py
+}
+
+package() {
+ cd ordered-set-$pkgver
+ python setup.py install --root="$pkgdir/" --optimize=1
+ install -Dm644 MIT-LICENSE -t "$pkgdir"/usr/share/licenses/$pkgname/
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-packaging/PKGBUILD b/abs/core/python_modules/python-packaging/PKGBUILD
index 34a48bc..d23b937 100644
--- a/abs/core/python_modules/python-packaging/PKGBUILD
+++ b/abs/core/python_modules/python-packaging/PKGBUILD
@@ -1,49 +1,41 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgbase=python-packaging
pkgname=(python-packaging python2-packaging)
-pkgver=16.8
-pkgrel=3
+pkgver=20.4
+pkgrel=1
pkgdesc="Core utilities for Python packages"
arch=('any')
url="https://github.com/pypa/packaging"
license=('Apache')
-makedepends=('python-setuptools' 'python2-setuptools' 'python-pyparsing' 'python2-pyparsing' 'git')
-checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'python-pretend' 'python2-pretend' 'python-coverage' 'python2-coverage')
-source=("git+https://github.com/pypa/packaging.git#tag=$pkgver")
-md5sums=('SKIP')
-
-prepare() {
- cp -a packaging{,-py2}
-}
+makedepends=('python-setuptools' 'python2-setuptools' 'python-pyparsing' 'python2-pyparsing')
+checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'python-pretend' 'python2-pretend'
+ 'python-coverage' 'python2-coverage')
+source=("https://pypi.io/packages/source/p/packaging/packaging-$pkgver.tar.gz")
+sha512sums=('d53912041a9950efb5d221fc968adc328c2ef1e54ec9806d2158fd6db1b170e37afb05213f5750b10c59927504083ca3781c958caa0c802b1c7c0fe1ac1682a4')
build() {
- cd "$srcdir"/packaging
+ cd packaging-$pkgver
python setup.py build
-
- cd "$srcdir"/packaging-py2
python2 setup.py build
}
check() {
- cd "$srcdir"/packaging
- python setup.py ptr
-
- cd "$srcdir"/packaging-py2
- python2 setup.py ptr
+ cd packaging-$pkgver
+ python setup.py pytest
+ python2 setup.py pytest
}
package_python-packaging() {
depends=('python-pyparsing' 'python-six')
- cd "$srcdir"/packaging
+ cd packaging-$pkgver
python setup.py install --root "$pkgdir"
}
package_python2-packaging() {
depends=('python2-pyparsing' 'python2-six')
- cd "$srcdir"/packaging-py2
+ cd packaging-$pkgver
python2 setup.py install --root "$pkgdir"
}
diff --git a/abs/core/python_modules/python-parsedatetime/PKGBUILD b/abs/core/python_modules/python-parsedatetime/PKGBUILD
new file mode 100644
index 0000000..d504708
--- /dev/null
+++ b/abs/core/python_modules/python-parsedatetime/PKGBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Hugo Osvaldo Barrera <hugo@barrera.io>
+# Contributor: Daniel M. Capella <polycitizen@gmail.com>
+# Contributor: Hugo Osvaldo Barrera <hugo@barrera.io>
+# Contributor: Limao Luo <luolimao+AUR@gmail.com>
+# Contributor: Jeremy Sands <cto@jeremysands.com>
+
+pkgname=python-parsedatetime
+pkgver=2.4
+pkgrel=3
+pkgdesc="Parse human-readable date/time strings."
+arch=('any')
+license=('Apache')
+url='http://github.com/bear/parsedatetime'
+depends=('python-future')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest-runner')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/bear/parsedatetime/archive/v$pkgver.tar.gz")
+sha512sums=('0fd8bfa3411476a20d8874b44036bc162735fb7865d39ca98b0a608daec39daac47100314279dbf66229ec333821492744f7505315d955f58216fdaa75cbf046')
+
+build() {
+ cd parsedatetime-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd parsedatetime-$pkgver
+ python setup.py pytest
+}
+
+package() {
+ cd parsedatetime-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
diff --git a/abs/core/python_modules/python-psutil/PKGBUILD b/abs/core/python_modules/python-psutil/PKGBUILD
index 1d05b76..53c5779 100644
--- a/abs/core/python_modules/python-psutil/PKGBUILD
+++ b/abs/core/python_modules/python-psutil/PKGBUILD
@@ -2,23 +2,21 @@
pkgbase=python-psutil
pkgname=('python-psutil' 'python2-psutil')
-pkgver=5.4.7
+pkgver=5.7.2
pkgrel=1
arch=('x86_64')
url='https://github.com/giampaolo/psutil'
license=('custom: BSD')
makedepends=('python' 'python-setuptools' 'python2' 'python2-setuptools')
-checkdepends=('net-tools' 'procps-ng' 'python2-nose' 'python-nose')
+checkdepends=('net-tools' 'procps-ng' 'python2-ipaddress' 'python2-mock' 'python-mock' 'python-pytest')
source=("https://github.com/giampaolo/psutil/archive/release-$pkgver.tar.gz")
-md5sums=('e8d6259eafe5925e7c522868aedd2caa')
+sha512sums=('dc22b95aa5a816ffb3a30ff261cc8ce10eeca005e8602438ba6269816114d97cad7dbc55a0826838baba24d1b539b895d0a0c3fa86a10474df9a0266f03a26ea')
build() {
cd psutil-release-$pkgver
- msg python
python setup.py build --build-lib=build/python
- msg python2
python2 setup.py build --build-lib=build/python2
find build/python2 -type f -exec \
sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python2,' {} \;
@@ -27,15 +25,12 @@ build() {
check() {
cd psutil-release-$pkgver
- msg python
- export PYTHONPATH="$PWD/build/python"
- cd psutil/tests/
- # FIXME: dynamic loading so
+ # Required for testing
+#cp setup.py build/python
+#cp -r scripts build/python/
-
- msg python2
- export PYTHONPATH="$PWD/build/python2"
- #python2 psutil/tests/runner.py
+# 4 non-working tests in build chroot, requires fixes. Test framework does not allow exclusion.
+# PYTHONPATH="$PWD/build/python" python psutil/tests/__main__.py
}
package_python-psutil() {
diff --git a/abs/core/python_modules/python-pygments/PKGBUILD b/abs/core/python_modules/python-pygments/PKGBUILD
index ef7fc43..20edf45 100644
--- a/abs/core/python_modules/python-pygments/PKGBUILD
+++ b/abs/core/python_modules/python-pygments/PKGBUILD
@@ -1,62 +1,44 @@
# Maintainer: Evangelos Foutras <evangelos@foutrelis.com>
# Contributor: Timm Preetz <timm@preetz.us>
-pkgname=('python-pygments' 'python2-pygments' 'pygmentize')
-pkgver=2.3.1
-pkgrel=1
+pkgname=python-pygments
+pkgver=2.7.2
+pkgrel=3
pkgdesc="Python syntax highlighter"
arch=('any')
-url="http://pygments.org/"
+url="https://pygments.org/"
license=('BSD')
-makedepends=('python-setuptools' 'python2-setuptools')
-options=('!emptydirs')
+depends=('python-setuptools')
+makedepends=('python-sphinx')
+checkdepends=('python-pytest')
+provides=('pygmentize')
+conflicts=('pygmentize')
+replaces=('pygmentize')
source=(https://pypi.org/packages/source/P/Pygments/Pygments-$pkgver.tar.gz)
-sha256sums=('5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a')
-
-package_python-pygments() {
- depends=('python-setuptools')
+sha256sums=('381985fcc551eb9d37c52088a32914e00517e57f4a21609f48141ba08e193fa0')
+build() {
cd "$srcdir/Pygments-$pkgver"
-
- python3 setup.py install --root="$pkgdir" -O1
-
- # pygmentize is shipped in its own package
- rm "$pkgdir/usr/bin/pygmentize"
-
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ make -C doc html
}
-package_python2-pygments() {
- depends=('python2-setuptools')
- install=python2-pygments.install
-
+check() {
cd "$srcdir/Pygments-$pkgver"
-
- python2 setup.py install --root="$pkgdir" -O1
-
- # pygmentize is shipped in its own package
- rm "$pkgdir/usr/bin/pygmentize"
-
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ PYTHONDONTWRITEBYTECODE=1 pytest
}
-package_pygmentize() {
- depends=('python-pygments')
-
+package() {
cd "$srcdir/Pygments-$pkgver"
+ export PYTHONHASHSEED=0
python3 setup.py install --root="$pkgdir" -O1
+ install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname"
- # Remove all files except for usr/bin/pygmentize
- find "$pkgdir" -type f -not -name pygmentize -delete
-
- # Drop version dependency from console script
- sed -i "s/Pygments==$pkgver/Pygments/g" "$pkgdir/usr/bin/pygmentize"
-
+ mkdir -p "$pkgdir/usr/share/doc"
+ cp -rT doc/_build/html "$pkgdir/usr/share/doc/$pkgname"
+ install -Dm644 doc/pygmentize.1 -t "$pkgdir/usr/share/man/man1"
install -Dm644 external/pygments.bashcomp \
"$pkgdir/usr/share/bash-completion/completions/pygmentize"
-
- install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
}
# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-pygments/python2-pygments.install b/abs/core/python_modules/python-pygments/python2-pygments.install
deleted file mode 100644
index 3949246..0000000
--- a/abs/core/python_modules/python-pygments/python2-pygments.install
+++ /dev/null
@@ -1,7 +0,0 @@
-post_upgrade() {
- if (($(vercmp $2 2.0.2-2) < 0)); then
- echo ':: /usr/bin/pygmentize has been moved to the pygmentize package'
- fi
-}
-
-# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-pyparsing/PKGBUILD b/abs/core/python_modules/python-pyparsing/PKGBUILD
index 97da919..6c09fed 100644
--- a/abs/core/python_modules/python-pyparsing/PKGBUILD
+++ b/abs/core/python_modules/python-pyparsing/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Alexander F Rødseth <xyproto@archlinux.org>
# Contributor: Chris Brannon <cmbrannon79@gmail.com>
@@ -8,45 +7,32 @@
pkgname=python-pyparsing
pkgname=('python-pyparsing' 'python2-pyparsing')
-pkgver=2.2.0
-pkgrel=2
+pkgver=2.4.7
+pkgrel=1
pkgdesc='General parsing module for Python'
arch=('any')
-url='http://pyparsing.wikispaces.com/'
-makedepends=('python-setuptools' 'python2-setuptools' 'subversion')
+url='https://github.com/pyparsing/pyparsing/'
+makedepends=('python-setuptools' 'python2-setuptools')
license=('MIT')
-source=("svn://svn.code.sf.net/p/pyparsing/code/tags/pyparsing_$pkgver")
-sha256sums=('SKIP')
-
-prepare() {
- cp -a pyparsing_$pkgver{,-py2}
-
- # :/
- sed -i '1i#coding=utf-8' pyparsing_$pkgver-py2/src/unitTests.py
-}
+source=("https://github.com/pyparsing/pyparsing/archive/pyparsing_$pkgver.tar.gz")
+sha512sums=('c7a546729f86a2b5176e2482b566b9fd715b03e495aaef4d720b21307bb03f385dbc849247f8d266cb3d92be0a83c34ce4995b655ce85318355d5a0d42d6991e')
build() {
- cd "$srcdir"/pyparsing_$pkgver/src
+ cd pyparsing-pyparsing_$pkgver
python setup.py build
-
- cd "$srcdir"/pyparsing_$pkgver-py2/src
python2 setup.py build
}
check() {
- export LC_CTYPE=en_US.UTF-8
-
- cd "$srcdir"/pyparsing_$pkgver/src
+ cd pyparsing-pyparsing_$pkgver
python unitTests.py
-
- cd "$srcdir"/pyparsing_$pkgver-py2/src
python2 unitTests.py
}
package_python-pyparsing() {
depends=('python')
- cd pyparsing_$pkgver/src
+ cd pyparsing-pyparsing_$pkgver
python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
@@ -55,7 +41,7 @@ package_python-pyparsing() {
package_python2-pyparsing() {
depends=('python2')
- cd pyparsing_$pkgver-py2/src
+ cd pyparsing-pyparsing_$pkgver
python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
diff --git a/abs/core/python_modules/python-html5lib/LICENSE b/abs/core/python_modules/python-pyrfc3339/LICENSE.txt
index 89de354..1daa66c 100644
--- a/abs/core/python_modules/python-html5lib/LICENSE
+++ b/abs/core/python_modules/python-pyrfc3339/LICENSE.txt
@@ -1,3 +1,5 @@
+Copyright (c) 2010 Kurt Raschke
+
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
diff --git a/abs/core/python_modules/python-pyrfc3339/PKGBUILD b/abs/core/python_modules/python-pyrfc3339/PKGBUILD
new file mode 100644
index 0000000..e6127ec
--- /dev/null
+++ b/abs/core/python_modules/python-pyrfc3339/PKGBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Gordian Edenhofer <gordian.edenhofer[at]yahoo[dot]de>
+
+pkgname=(python-pyrfc3339 python2-pyrfc3339)
+pkgver=1.1
+pkgrel=2
+pkgdesc="Parses and generates RFC 3339-compliant timestamps using Python datetime.datetime objects."
+arch=('any')
+license=('MIT')
+url="https://pypi.python.org/pypi/pyRFC3339"
+makedepends=('python-setuptools' 'python2-setuptools' 'python-pytz' 'python2-pytz')
+checkdepends=('python-nose' 'python2-nose')
+source=("https://pypi.python.org/packages/source/p/pyRFC3339/pyRFC3339-${pkgver}.tar.gz"
+ LICENSE.txt)
+sha512sums=('958b7761fab590aa42bb57a955c5d834441f717796a452b60df21663099dcf2fc046afe60f8157fd0f1edfd95c5e9c9c5349ab10ca4078d210fc63d848496a2f'
+ '73c58b87e14593ee283cc323a93820c18a00e9af4e5027687fc8f6cd5735c98f341c6ac1aa90c040d0899766cabb976a85201b171874b4b81934ff02a9728f2d')
+
+prepare() {
+ cp -a pyRFC3339-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir/pyRFC3339-$pkgver"
+ python setup.py build
+
+ cd "$srcdir/pyRFC3339-$pkgver-py2"
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir/pyRFC3339-$pkgver"
+ python setup.py test
+
+ cd "$srcdir/pyRFC3339-$pkgver-py2"
+ python2 setup.py test
+}
+
+package_python-pyrfc3339() {
+ depends=('python-pytz')
+
+ cd "$srcdir/pyRFC3339-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+ install -D -m644 ../LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
+}
+
+package_python2-pyrfc3339() {
+ depends=('python2-pytz')
+
+ cd "$srcdir/pyRFC3339-$pkgver-py2"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+ install -D -m644 ../LICENSE.txt "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt"
+}
diff --git a/abs/core/python_modules/python-pytest-runner/PKGBUILD b/abs/core/python_modules/python-pytest-runner/PKGBUILD
index 8928aa0..891ce11 100644
--- a/abs/core/python_modules/python-pytest-runner/PKGBUILD
+++ b/abs/core/python_modules/python-pytest-runner/PKGBUILD
@@ -1,44 +1,43 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
pkgbase=python-pytest-runner
pkgname=('python-pytest-runner' 'python2-pytest-runner')
-pkgver=2.11.1
-pkgrel=2
+pkgver=5.2
+pkgrel=1
pkgdesc="Invoke py.test as distutils command with dependency resolution"
arch=('any')
license=('MIT')
url="https://github.com/pytest-dev/pytest-runner"
-makedepends=('python-pytest' 'python-setuptools-scm' 'python2-pytest' 'python2-setuptools-scm' 'git')
-source=("git+https://github.com/pytest-dev/pytest-runner.git#tag=$pkgver")
-sha512sums=('SKIP')
+makedepends=('python-pytest' 'python2-pytest' 'python-setuptools-scm' 'python2-setuptools-scm')
+checkdepends=('python-pytest-black' 'python-pytest-cov' 'python-pytest-virtualenv'
+ 'python-pytest-flake8')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/pytest-dev/pytest-runner/archive/$pkgver.tar.gz")
+sha512sums=('0ce9c191481ab97795d0f45bdea7669cb61c3ac6aac476954d34c3e09e6fb08fd6bf73f192c014cb7ff2bd90dbfeb0f01d9a9ba7a9c6caeb371e40b42b558d63')
prepare() {
- cp -a pytest-runner{,-py2}
+ cp -a pytest-runner-$pkgver{,-py2}
+
+ export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver
}
build() {
- cd "$srcdir"/pytest-runner
+ cd "$srcdir"/pytest-runner-$pkgver
python setup.py build
- cd "$srcdir"/pytest-runner-py2
+ cd "$srcdir"/pytest-runner-$pkgver-py2
python2 setup.py build
}
check() {
- cd "$srcdir"/pytest-runner
+ cd pytest-runner-$pkgver
python setup.py egg_info
PYTHONPATH="$PWD" pytest
-
- cd "$srcdir"/pytest-runner-py2
- python2 setup.py egg_info
- PYTHONPATH="$PWD" pytest2
}
package_python-pytest-runner() {
depends=('python-pytest')
- cd pytest-runner
+ cd pytest-runner-$pkgver
python setup.py install --root="$pkgdir" --optimize=1
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
@@ -46,7 +45,7 @@ package_python-pytest-runner() {
package_python2-pytest-runner() {
depends=('python2-pytest')
- cd pytest-runner-py2
+ cd pytest-runner-$pkgver-py2
python2 setup.py install --root="$pkgdir" --optimize=1
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
diff --git a/abs/core/python_modules/python-pytz/0001-Use-the-system-zoneinfo-from-the-tzdata-package.patch b/abs/core/python_modules/python-pytz/0001-Use-the-system-zoneinfo-from-the-tzdata-package.patch
new file mode 100644
index 0000000..ba7e388
--- /dev/null
+++ b/abs/core/python_modules/python-pytz/0001-Use-the-system-zoneinfo-from-the-tzdata-package.patch
@@ -0,0 +1,69 @@
+From 74baf31e5505d03a71df49894d57e1011e771eb9 Mon Sep 17 00:00:00 2001
+From: Eli Schwartz <eschwartz@archlinux.org>
+Date: Mon, 4 May 2020 15:26:01 -0400
+Subject: [PATCH] Use the system zoneinfo from the tzdata package.
+
+We don't need to ship these vendored blobs as our system copy works
+quite well.
+
+Signed-off-by: Eli Schwartz <eschwartz@archlinux.org>
+---
+ src/pytz/__init__.py | 13 +------------
+ src/pytz/tzfile.py | 2 +-
+ src/setup.py | 2 --
+ 3 files changed, 2 insertions(+), 15 deletions(-)
+
+diff --git a/src/pytz/__init__.py b/src/pytz/__init__.py
+index c25a1d1..3cc59ef 100644
+--- a/src/pytz/__init__.py
++++ b/src/pytz/__init__.py
+@@ -92,19 +92,8 @@ def open_resource(name):
+ if zoneinfo_dir is not None:
+ filename = os.path.join(zoneinfo_dir, *name_parts)
+ else:
+- filename = os.path.join(os.path.dirname(__file__),
++ filename = os.path.join('/usr', 'share',
+ 'zoneinfo', *name_parts)
+- if not os.path.exists(filename):
+- # http://bugs.launchpad.net/bugs/383171 - we avoid using this
+- # unless absolutely necessary to help when a broken version of
+- # pkg_resources is installed.
+- try:
+- from pkg_resources import resource_stream
+- except ImportError:
+- resource_stream = None
+-
+- if resource_stream is not None:
+- return resource_stream(__name__, 'zoneinfo/' + name)
+ return open(filename, 'rb')
+
+
+diff --git a/src/pytz/tzfile.py b/src/pytz/tzfile.py
+index 25117f3..98eba05 100644
+--- a/src/pytz/tzfile.py
++++ b/src/pytz/tzfile.py
+@@ -126,7 +126,7 @@ def build_tzinfo(zone, fp):
+ if __name__ == '__main__':
+ import os.path
+ from pprint import pprint
+- base = os.path.join(os.path.dirname(__file__), 'zoneinfo')
++ base = os.path.join('/usr', 'share', 'zoneinfo')
+ tz = build_tzinfo('Australia/Melbourne',
+ open(os.path.join(base, 'Australia', 'Melbourne'), 'rb'))
+ tz = build_tzinfo('US/Eastern',
+diff --git a/src/setup.py b/src/setup.py
+index fa9a592..675618c 100644
+--- a/src/setup.py
++++ b/src/setup.py
+@@ -22,8 +22,6 @@ for dirpath, dirnames, filenames in os.walk(os.path.join('pytz', 'zoneinfo')):
+ for filename in filenames])
+ package_data = {'pytz': resources}
+
+-assert len(resources) > 10, 'zoneinfo files not found!'
+-
+ setup(
+ name='pytz',
+ version=pytz.VERSION,
+--
+2.26.2
+
diff --git a/abs/core/python_modules/python-pytz/PKGBUILD b/abs/core/python_modules/python-pytz/PKGBUILD
index fca20e0..7eb49b7 100644
--- a/abs/core/python_modules/python-pytz/PKGBUILD
+++ b/abs/core/python_modules/python-pytz/PKGBUILD
@@ -4,23 +4,31 @@
# Contributor: William Rea <sillywilly@gmail.com>
pkgname=('python-pytz' 'python2-pytz')
-pkgver=2018.3
-pkgrel=1
+pkgver=2020.4
+pkgrel=3
arch=('any')
-url="http://pypi.python.org/pypi/pytz"
+url="https://pypi.python.org/pypi/pytz"
license=("MIT")
makedepends=('python' 'python2')
-source=("https://pypi.io/packages/source/p/pytz/pytz-${pkgver}.tar.gz")
-md5sums=('abb07c09c79f78d7c04f222a550c99ef')
+source=("https://pypi.io/packages/source/p/pytz/pytz-${pkgver}.tar.gz"
+ "0001-Use-the-system-zoneinfo-from-the-tzdata-package.patch")
+sha512sums=('dcbe763bc6e48c52df855fe03a8109dc0656a0e851324c0468f4307e8aff60e577fe0c9f0b062319e90d2f639b96e98edf8346064705e244143386c863a0aa7c'
+ '3cbd497313c3049a2ae04298118aefb6dfa9ec4626078c665c95c13a78ae944b33a68813aea0c53b02b0532b64221cca4a0cd2153bd91b3760916bc3c0f6df8f')
validpgpkeys=('C7ECC365AB6F255E1EB9BA1701FA998FBAC6374A')
+prepare() {
+ cd pytz-$pkgver
+
+ patch -p2 -i ../0001-Use-the-system-zoneinfo-from-the-tzdata-package.patch
+ rm -r pytz/zoneinfo/
+}
+
build(){
- cd $srcdir
cp -rf pytz-$pkgver pytz2-$pkgver
}
check(){
- cd $srcdir/pytz-$pkgver/pytz/tests
+ cd pytz-$pkgver/pytz/tests
python3 test_tzinfo.py
python2 test_tzinfo.py
@@ -30,14 +38,11 @@ package_python-pytz(){
depends=('python')
pkgdesc="Cross platform time zone library for Python"
- cd $srcdir/pytz-$pkgver
+ cd pytz-$pkgver
- # Fix locale https://github.com/ipython/ipython/issues/2057
- export LC_ALL=en_US.UTF-8
+ python3 setup.py install --root="$pkgdir"/
- python3 setup.py install --root=$pkgdir/
-
- install -D LICENSE.txt $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
@@ -45,12 +50,9 @@ package_python2-pytz(){
depends=('python2')
pkgdesc="Cross platform time zone library for Python"
- cd $srcdir/pytz2-$pkgver
-
- # python 2 fix
-# sed -i 's_#!/usr/bin/env python_#!/usr/bin/env python2_' pytz/tzfile.py
+ cd pytz2-$pkgver
- python2 setup.py install --root="$pkgdir/"
+ python2 setup.py install --root="$pkgdir"/
- install -D LICENSE.txt "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+ install -Dm644 LICENSE.txt "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
diff --git a/abs/core/python_modules/python-requests-toolbelt/PKGBUILD b/abs/core/python_modules/python-requests-toolbelt/PKGBUILD
new file mode 100644
index 0000000..ac5f91b
--- /dev/null
+++ b/abs/core/python_modules/python-requests-toolbelt/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: eolianoe <eolianoe At GoogleMAIL DoT com>
+
+pkgbase=python-requests-toolbelt
+pkgname=('python-requests-toolbelt' 'python2-requests-toolbelt')
+pkgver=0.9.1
+pkgrel=1
+pkgdesc="A toolbelt of useful classes and functions to be used with python-requests."
+arch=('any')
+url="https://github.com/requests/toolbelt"
+license=('Apache')
+makedepends=('python-setuptools' 'python2-setuptools' 'python-requests' 'python2-requests')
+checkdepends=('python-pytest' 'python2-pytest' 'python-betamax' 'python2-betamax'
+ 'python-mock' 'python2-mock' 'python-pyopenssl' 'python2-pyopenssl')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/requests/toolbelt/archive/$pkgver.tar.gz")
+sha512sums=('12667056c225ce0bc88a5959660103feed23810890abd3890ef15581aa64c09c0552c3974473e1742cbe6200bd37d6475ad34ec051e83d4fbf0a33f320dbc0cc')
+
+prepare() {
+ cp -a toolbelt-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/toolbelt-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/toolbelt-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/toolbelt-$pkgver
+ py.test
+
+ cd "$srcdir"/toolbelt-$pkgver-py2
+ py.test2
+}
+
+package_python-requests-toolbelt() {
+ depends=('python-requests')
+
+ cd toolbelt-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-requests-toolbelt() {
+ depends=('python2-requests')
+
+ cd toolbelt-$pkgver-py2
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
diff --git a/abs/core/python_modules/python-requests/PKGBUILD b/abs/core/python_modules/python-requests/PKGBUILD
index e791c7b..eee0bf0 100644
--- a/abs/core/python_modules/python-requests/PKGBUILD
+++ b/abs/core/python_modules/python-requests/PKGBUILD
@@ -1,10 +1,9 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Massimiliano Torromeo <massimiliano.torromeo@gmail.com>
pkgbase=python-requests
pkgname=('python-requests' 'python2-requests')
-pkgver=2.18.4
+pkgver=2.25.0
pkgrel=1
pkgdesc="Python HTTP for Humans"
arch=('any')
@@ -12,16 +11,16 @@ url="http://python-requests.org"
license=('Apache')
makedepends=('python-setuptools' 'python2-setuptools' 'python-chardet' 'python2-chardet'
'python-urllib3' 'python2-urllib3' 'python-idna' 'python2-idna')
-checkdepends=('python-pytest-httpbin' 'python2-pytest-httpbin' 'python-pytest-mock'
- 'python2-pytest-mock' 'python-pysocks' 'python2-pysocks')
-source=("$pkgbase-$pkgver.tar.gz::https://github.com/kennethreitz/requests/archive/v$pkgver.tar.gz"
+checkdepends=('python-pytest-httpbin' 'python-pytest-mock' 'python-pysocks' 'python-pyopenssl')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/psf/requests/archive/v$pkgver.tar.gz"
certs.patch)
-sha512sums=('8ca20fe18d13b8c62977be0c51617f2ae8618d3d002ad4dc554362828855db7359274efbff0cd13e8c5699508913e91205cffcf306221a70321e74ac10b2d4d7'
+sha512sums=('f60d8dbbc7aaebaedc7647ab2cec1fffd01547ea3340b91d9c7fea51fde4cb932aaf81e3b8aac9f4be11243e4fc44c8266a69db5f52c4eb2afb1b7714c150b95'
'424a3bb01b23409284f6c9cd2bc22d92df31b85cfd96e1d1b16b5d68adeca670dfed4fff7977d8b10980102b0f780eacc465431021fcd661f3a17168a02a39a3')
prepare() {
cd "$srcdir"/requests-$pkgver
sed -e '/certifi/d' \
+ -e "s/,<.*'/'/" \
-i setup.py
patch -p1 -i "$srcdir"/certs.patch
@@ -39,11 +38,10 @@ build() {
}
check() {
- cd "$srcdir"/requests-$pkgver
- py.test tests
+ # Seems to be a problem about pytest-httpbin
- cd "$srcdir"/requests-$pkgver-py2
- py.test2 tests
+ cd requests-$pkgver
+ pytest tests --deselect tests/test_requests.py::TestRequests::test_https_warnings
}
package_python-requests() {
diff --git a/abs/core/python_modules/python-setuptools/PKGBUILD b/abs/core/python_modules/python-setuptools/PKGBUILD
index c90e33c..32ac764 100644
--- a/abs/core/python_modules/python-setuptools/PKGBUILD
+++ b/abs/core/python_modules/python-setuptools/PKGBUILD
@@ -1,26 +1,47 @@
-# $Id$
# Maintainer: Angel Velasquez <angvp@archlinux.org>
# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Eli Schwartz <eschwartz@archlinux.org>
-pkgbase=python-setuptools
-pkgname=('python-setuptools' 'python2-setuptools')
-pkgver=39.0.1
+pkgname=python-setuptools
+pkgver=50.3.0
pkgrel=1
epoch=1
pkgdesc="Easily download, build, install, upgrade, and uninstall Python packages"
arch=('any')
license=('PSF')
-url="http://pypi.python.org/pypi/setuptools"
-makedepends=('python-packaging' 'python2-packaging' 'python-appdirs' 'python2-appdirs')
-checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'python-pytest-flake8'
- 'python2-pytest-flake8' 'python-mock' 'python2-mock' 'python-pytest-fixture-config'
- 'python2-pytest-fixture-config' 'python-pytest-virtualenv' 'python2-pytest-virtualenv'
- 'python-wheel' 'python2-wheel' 'python-pip' 'python2-pip' 'git')
-source=("$pkgbase-$pkgver.tar.gz::https://github.com/pypa/setuptools/archive/v$pkgver.tar.gz")
-sha512sums=('34df8f10e89825975c82059c759690a2cc1486fc84c71a76875b92c2452529fbdd628e11e3043e479ea3f031af18b37a37b86d2a8d2505c300188eccdc109332')
+url="https://pypi.org/project/setuptools/"
+depends=('python-appdirs' 'python-packaging' 'python-ordered-set')
+makedepends=('git')
+checkdepends=('python-jaraco.envs' 'python-mock' 'python-pip' 'python-pytest-fixture-config'
+ 'python-pytest-flake8' 'python-pytest-virtualenv' 'python-wheel' 'python-paver'
+ 'python-pytest-cov')
+provides=('python-distribute')
+replaces=('python-distribute')
+source=("$pkgname-$pkgver.tar.gz::https://github.com/pypa/setuptools/archive/v$pkgver.tar.gz")
+sha512sums=('d4c9191049faa187516634f54a33ce63a547e960800f7855561811f2fff41c9aa32049a0dc755baf0992bd15f02ed89d5e6caa829a35da4440056de03f921502')
+
+export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0
prepare() {
- rm -r setuptools-$pkgver/{pkg_resources,setuptools}/_vendor
+ rm -r setuptools-$pkgver/{pkg_resources,setuptools}/{extern,_vendor}
+
+ # Upstream devendoring logic is badly broken, see:
+ # https://bugs.archlinux.org/task/58670
+ # https://github.com/pypa/pip/issues/5429
+ # https://github.com/pypa/setuptools/issues/1383
+ # The simplest fix is to simply rewrite import paths to use the canonical
+ # location in the first place
+ for _module in setuptools pkg_resources '' ; do
+ find setuptools-$pkgver -name \*.py -exec sed -i \
+ -e 's/from '$_module.extern' import/import/' \
+ -e 's/from '$_module.extern'./from /' \
+ -e 's/import '$_module.extern'./import /' \
+ -e "s/__import__('$_module.extern./__import__('/" \
+ {} +
+ done
+
+ # Fix for flake8
+ sed -i 's/import six, ordered_set/import six\nimport ordered_set/' setuptools-$pkgver/setuptools/command/sdist.py
# Remove post-release tag since we are using stable tags
sed -e '/tag_build = .post/d' \
@@ -28,34 +49,24 @@ prepare() {
-i setuptools-$pkgver/setup.cfg
# 'Clean' installation is expected to fail since we removed bundled packages
- sed -i '/^def test_clean_env_install/i import pytest\n\n@pytest.mark.xfail' setuptools-$pkgver/setuptools/tests/test_virtualenv.py
+ sed -i '/^def test_clean_env_install/i @pytest.mark.xfail' setuptools-$pkgver/setuptools/tests/test_virtualenv.py
# Tests failed. Importing an unbundled new setuptools in a virtualenv does not work, but this won't
# affect normal virtualenv usage (which don't have to import the unbundled setuptools in *current*
# dir.
sed -e '/^def test_pip_upgrade_from_source/i @pytest.mark.xfail' \
-e '/^def test_test_command_install_requirements/i @pytest.mark.xfail' \
+ -e '/^def test_no_missing_dependencies/i @pytest.mark.xfail' \
-i setuptools-$pkgver/setuptools/tests/test_virtualenv.py
-
- cp -a setuptools-$pkgver{,-py2}
-
+
cd "$srcdir"/setuptools-$pkgver
sed -i -e "s|^#\!.*/usr/bin/env python|#!/usr/bin/env python3|" setuptools/command/easy_install.py
-
- cd "$srcdir"/setuptools-$pkgver-py2
- sed -i -e "s|^#\!.*/usr/bin/env python|#!/usr/bin/env python2|" setuptools/command/easy_install.py
-
- export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0
}
build() {
- cd "$srcdir"/setuptools-$pkgver
+ cd setuptools-$pkgver
python bootstrap.py
python setup.py build
-
- cd "$srcdir"/setuptools-$pkgver-py2
- python2 bootstrap.py
- python2 setup.py build
}
check() { (
@@ -65,28 +76,11 @@ check() { (
# https://github.com/pypa/setuptools/pull/810
export PYTHONDONTWRITEBYTECODE=1
- cd "$srcdir"/setuptools-$pkgver
- python setup.py pytest
-
- cd "$srcdir"/setuptools-$pkgver-py2
- python2 setup.py pytest
+ cd setuptools-$pkgver
+ python -m pytest --deselect setuptools/tests/test_distutils_adoption.py
)}
-package_python-setuptools() {
- depends=('python-packaging' 'python-appdirs')
- provides=('python-distribute')
- replaces=('python-distribute')
-
- cd "$srcdir"/setuptools-$pkgver
+package() {
+ cd setuptools-$pkgver
python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 --skip-build
}
-
-package_python2-setuptools() {
- depends=('python2-packaging' 'python2-appdirs')
- provides=('python2-distribute')
- replaces=('python2-distribute')
-
- cd "$srcdir"/setuptools-$pkgver-py2
- python2 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1 --skip-build
- rm "$pkgdir"/usr/bin/easy_install
-}
diff --git a/abs/core/python_modules/python-simplejson/PKGBUILD b/abs/core/python_modules/python-simplejson/PKGBUILD
index 0e1a323..c953a4e 100644
--- a/abs/core/python_modules/python-simplejson/PKGBUILD
+++ b/abs/core/python_modules/python-simplejson/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer: Alexander Rødseth <rodseth@gmail.com>
# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
@@ -6,7 +5,7 @@
pkgbase=python-simplejson
pkgname=('python-simplejson' 'python2-simplejson')
-pkgver=3.13.2
+pkgver=3.17.2
pkgrel=1
pkgdesc='Simple, fast, extensible JSON encoder/decoder for Python'
license=('MIT')
@@ -15,7 +14,7 @@ url='https://github.com/simplejson/simplejson'
makedepends=('python-setuptools' 'python2-setuptools')
checkdepends=('python-pytest-runner' 'python2-pytest-runner')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/simplejson/simplejson/archive/v$pkgver.tar.gz")
-sha512sums=('b1d6c68e1a6c967dfb695d0cd3d8dca19d458b650ddc0c8273328378eab7f52b801ee29431a6b3bde16608e886259267f41cbefabb7fbe7adb1e243479f91132')
+sha512sums=('59428640d43fdc6927db752a36196f48d00818a87d924358deab7e498709515423ecdd34dece31364c5e8d64b63d99112fd4a4b8a03b9f9c6533268afc38e314')
prepare() {
cp -a simplejson-$pkgver{,-py2}
diff --git a/abs/core/python_modules/python-six/PKGBUILD b/abs/core/python_modules/python-six/PKGBUILD
index 56ca2de..185fc39 100644
--- a/abs/core/python_modules/python-six/PKGBUILD
+++ b/abs/core/python_modules/python-six/PKGBUILD
@@ -1,20 +1,19 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Jelle van der Waa <jelle@vdwaa.nl>
# Contributer: Allan McRae <allan@archlinux.org>
pkgbase=python-six
pkgname=('python2-six' 'python-six')
-pkgver=1.11.0
+pkgver=1.15.0
pkgrel=1
pkgdesc="Python 2 and 3 compatibility utilities"
arch=('any')
-url="http://pypi.python.org/pypi/six/"
+url="https://pypi.python.org/pypi/six/"
license=('MIT')
makedepends=('python-setuptools' 'python2-setuptools')
-checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'tk')
+checkdepends=('python-pytest' 'python2-pytest' 'tk')
source=("https://pypi.io/packages/source/s/six/six-$pkgver.tar.gz")
-sha512sums=('33f246a2e987141e17e5edad9d3537cf3aba0cbdd0bc2a907ea52ce0d674b1474f29c3dd5cc26605fd960396054b189ca5f501708333cad234c223131483fe24')
+sha512sums=('eb840ac17f433f1fc4af56de75cfbfe0b54e6a737bb23c453bf09a4a13d768d153e46064880dc763f4c5cc2785b78ea6d3d3b4a41fed181cb9064837e3f699a9')
build() {
cp -a six-$pkgver{,-py2}
@@ -22,10 +21,10 @@ build() {
check() {
cd "$srcdir"/six-$pkgver
- python setup.py pytest
+ python -m pytest
cd "$srcdir"/six-$pkgver-py2
- python2 setup.py pytest
+ python2 -m pytest
}
package_python-six() {
diff --git a/abs/core/python_modules/python-snowballstemmer/PKGBUILD b/abs/core/python_modules/python-snowballstemmer/PKGBUILD
index 676c0e8..0351e53 100644
--- a/abs/core/python_modules/python-snowballstemmer/PKGBUILD
+++ b/abs/core/python_modules/python-snowballstemmer/PKGBUILD
@@ -1,47 +1,32 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: xantares
-pkgbase=python-snowballstemmer
-pkgname=('python-snowballstemmer' 'python2-snowballstemmer')
-pkgver=1.2.1
-pkgrel=2
+pkgname=python-snowballstemmer
+pkgver=2.0.0
+pkgrel=6
arch=('any')
pkgdesc="Snowball stemming library collection for Python"
-url='https://github.com/shibukawa/snowball_py'
+url='https://snowballstem.org'
license=('BSD')
-makedepends=('python' 'python2')
-source=("https://pypi.python.org/packages/source/s/snowballstemmer/snowballstemmer-${pkgver}.tar.gz")
-md5sums=('643b019667a708a922172e33a99bf2fa')
-
-prepare() {
- cp -a snowballstemmer-${pkgver}{,-py2}
-}
+depends=('python')
+optdepends=('python-pystemmer: for improved performance')
+makedepends=('python-setuptools')
+source=("https://pypi.python.org/packages/source/s/snowballstemmer/snowballstemmer-$pkgver.tar.gz")
+md5sums=('c05ec4a897be3c953c8b8b844c4241d4')
build() {
- cd "$srcdir"/snowballstemmer-${pkgver}
+ cd "$srcdir"/snowballstemmer-$pkgver
python setup.py build
-
- cd "$srcdir"/snowballstemmer-${pkgver}-py2
- python2 setup.py build
}
-package_python-snowballstemmer() {
- depends=('python')
- optdepends=('python-pystemmer: for improved performance')
-
- cd "$srcdir"/snowballstemmer-${pkgver}
- python setup.py install --root="$pkgdir" --optimize=1
-
- install -Dm644 LICENSE.rst "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.rst
+check() {
+ cd "$srcdir"/snowballstemmer-$pkgver/src
+ PYTHONPATH=. python sample/testapp.py english "what's this"
}
-package_python2-snowballstemmer() {
- depends=('python2')
- optdepends=('python2-pystemmer: for improved performance')
-
- cd "$srcdir"/snowballstemmer-${pkgver}-py2
- python2 setup.py install --root="$pkgdir" --optimize=1
+package() {
+ cd "$srcdir"/snowballstemmer-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
- install -Dm644 LICENSE.rst "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.rst
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
diff --git a/abs/core/python_modules/python-soupsieve/PKGBUILD b/abs/core/python_modules/python-soupsieve/PKGBUILD
new file mode 100644
index 0000000..8b65574
--- /dev/null
+++ b/abs/core/python_modules/python-soupsieve/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgname=python-soupsieve
+pkgver=2.0.1
+pkgrel=3
+pkgdesc="A CSS4 selector implementation for Beautiful Soup"
+url="https://github.com/facelessuser/soupsieve"
+license=('MIT')
+arch=('any')
+depends=('python')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-beautifulsoup4' 'python-html5lib' 'python-lxml')
+source=("https://github.com/facelessuser/soupsieve/archive/$pkgver/$pkgname-$pkgver.tar.gz")
+sha512sums=('f4ef4deee81bb31952e1d3216250712f09b425e7a2253e15bd1b38cb74b680e421e7d086a8770737898f6b57867f07f2dd07b8a98108d05e338bce92b274b85f')
+
+build() {
+ cd soupsieve-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd soupsieve-$pkgver
+ pytest
+}
+
+package() {
+ cd soupsieve-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+
+ install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
+}
diff --git a/abs/core/python_modules/python-sphinx-alabaster-theme/PKGBUILD b/abs/core/python_modules/python-sphinx-alabaster-theme/PKGBUILD
index d3203be..9900d02 100644
--- a/abs/core/python_modules/python-sphinx-alabaster-theme/PKGBUILD
+++ b/abs/core/python_modules/python-sphinx-alabaster-theme/PKGBUILD
@@ -1,43 +1,30 @@
-# $Id$
# Maintainer: Johannes Löthberg <johannes@kyriasis.com>
# Contributor: xantares
-pkgbase=python-sphinx-alabaster-theme
-pkgname=(python-sphinx-alabaster-theme python2-sphinx-alabaster-theme)
-pkgver=0.7.10
-pkgrel=1
+pkgname=python-sphinx-alabaster-theme
+pkgver=0.7.12
+pkgrel=6
pkgdesc="Sphinx default theme"
url='https://github.com/bitprophet/alabaster'
arch=('any')
license=('custom:BSD')
+depends=('python')
makedepends=('python-setuptools' 'python2-setuptools')
source=("https://pypi.org/packages/source/a/alabaster/alabaster-$pkgver.tar.gz")
-md5sums=('7934dccf38801faa105f6e7b4784f493')
+md5sums=('3591827fde96d1dd23970fb05410ed04')
build() {
- cp -r alabaster-"$pkgver" alabaster-"$pkgver"-py2
-
cd alabaster-"$pkgver"
python setup.py build
-
- cd "$srcdir"/alabaster-"$pkgver"-py2
- python2 setup.py build
}
-package_python-sphinx-alabaster-theme() {
+package() {
cd alabaster-"$pkgver"
python setup.py install --root="$pkgdir" --optimize=1
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
}
-
-package_python2-sphinx-alabaster-theme() {
- cd alabaster-"$pkgver"-py2
- python2 setup.py install --root="$pkgdir" --optimize=1
-
- install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/"$pkgname"/LICENSE
-}
diff --git a/abs/core/python_modules/python-sphinx/PKGBUILD b/abs/core/python_modules/python-sphinx/PKGBUILD
index cab258e..33328d1 100644
--- a/abs/core/python_modules/python-sphinx/PKGBUILD
+++ b/abs/core/python_modules/python-sphinx/PKGBUILD
@@ -1,150 +1,63 @@
-# $Id$
# Maintainer: Johannes Löthberg <johannes@kyriasis.com>
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
# Contributor: Sébastien Luttringer
# Contributor: Angel Velasquez <angvp@archlinux.org>
# Contributor: Fabio Volpe <volpefabio@gmail.com>
-pkgbase=python-sphinx
-pkgname=('python-sphinx' 'python2-sphinx')
-pkgver=1.7.0
-pkgrel=1
-
+pkgname=python-sphinx
+pkgver=3.2.1
+pkgrel=3
+pkgdesc='Python documentation generator'
arch=('any')
-url='http://sphinx.pocoo.org/'
+url=http://www.sphinx-doc.org/
license=('BSD')
-
-makedepends=(
- 'python-setuptools'
- 'python-docutils'
- 'python-jinja'
- 'python-pygments'
- 'python-six'
- 'python-imagesize'
- 'python-sphinxcontrib-websupport'
- 'python-sqlalchemy'
- 'python-whoosh'
- 'python2-setuptools'
- 'python2-docutils'
- 'python2-jinja'
- 'python2-pygments'
- 'python2-six'
- 'python2-imagesize'
- 'python2-sphinxcontrib-websupport'
- 'python2-sqlalchemy'
- 'python2-whoosh'
- 'python2-typing'
-)
-
-checkdepends=(
- 'texlive-latexextra'
- 'python-nose' 'python2-nose'
- 'python-snowballstemmer' 'python2-snowballstemmer'
- 'python-babel' 'python2-babel'
- 'python-sphinx-alabaster-theme' 'python2-sphinx-alabaster-theme'
- 'python-sphinx_rtd_theme' 'python2-sphinx_rtd_theme'
- 'python-mock' 'python2-mock'
- 'python-html5lib' 'python2-html5lib'
- 'python-requests' 'python2-requests'
- 'python2-pytest' 'python-pytest'
- 'python2-enum34'
- 'python-sphinxcontrib-websupport' 'python2-sphinxcontrib-websupport'
- 'imagemagick' 'librsvg'
-)
-
-source=("https://pypi.org/packages/source/S/Sphinx/Sphinx-$pkgver.tar.gz"{,.asc})
-
-validpgpkeys=('8A11B79A5D0D749A66F0A030102C2C17498D6B9E'
- 'E9BEABB07E7B9CC3F56E62C91425F8CE5EBA0E07')
-md5sums=('7d6d8226148378875986310aea68702e'
- 'SKIP')
+depends=('python-babel'
+ 'python-docutils'
+ 'python-imagesize'
+ 'python-jinja'
+ 'python-pygments'
+ 'python-requests'
+ 'python-setuptools'
+ 'python-snowballstemmer'
+ 'python-sphinx-alabaster-theme'
+ 'python-sphinxcontrib-'{{apple,dev,html}help,jsmath,qthelp,serializinghtml})
+checkdepends=('cython'
+ 'imagemagick' 'librsvg'
+ 'python-html5lib'
+ 'python-pytest'
+ 'texlive-fontsextra' 'texlive-latexextra')
+optdepends=('imagemagick: for ext.imgconverter'
+ 'texlive-latexextra: for generation of PDF documentation')
+source=("https://pypi.org/packages/source/S/Sphinx/Sphinx-$pkgver.tar.gz"{,.asc}
+ $pkgname-pygments-2.7.patch::https://github.com/sphinx-doc/sphinx/commit/85b24a2e88ea.patch)
+sha256sums=('321d6d9b16fa381a5306e5a0b76cd48ffbc588e6340059a729c6fdd66087e0e8'
+ 'SKIP'
+ '6b790f4b3b540924a6a7861452fcbac8123f1e0a6c1765f5caafd7cb94fcecec')
+validpgpkeys=('8A11B79A5D0D749A66F0A030102C2C17498D6B9E' # Takeshi KOMIYA
+ 'E9BEABB07E7B9CC3F56E62C91425F8CE5EBA0E07') # Takayuki Shimizukawa
prepare() {
- # souce duplication is required because makefile modify source code
- # setyp.py --build tricks don't works well
- cp -a Sphinx-$pkgver Sphinx-${pkgver}2
- # change python2 interpreter
- find Sphinx-${pkgver}2 -type f -exec \
- sed -i '1s,^#! \?/usr/bin/\(env \|\)python$,#!/usr/bin/python2,' {} \;
- # change sphinx-binaries name in source code
- find Sphinx-${pkgver}2 -type f -name '*.py' -exec \
- sed -ri 's,(sphinx-(:?build|apidoc|autogen|quickstart)),\12,' {} \;
+ cd Sphinx-$pkgver
+
+ # Fix test failure with pygments 2.7
+ patch -Np1 -i ../$pkgname-pygments-2.7.patch
}
build() {
- msg2 'Python 3 version'
- cd "$srcdir"/Sphinx-$pkgver
- make PYTHON=python3 build
-
- msg2 'Python 2 version'
- cd "$srcdir"/Sphinx-${pkgver}2
- make PYTHON=python2 build
+ cd Sphinx-$pkgver
+ make build
}
-#check() {
-# msg2 'Python 3 version'
-# cd "$srcdir"/Sphinx-$pkgver
-# LC_ALL="en_US.UTF-8" make PYTHON=python3 test
-# rm -r tests
-#
-# msg2 'Python 2 version'
-# cd "$srcdir"/Sphinx-${pkgver}2
-# LC_ALL="en_US.UTF-8" make PYTHON=python2 test
-# rm -r tests
-#}
-
-package_python-sphinx() {
- pkgdesc='Python3 documentation generator'
- depends=(
- 'python-setuptools'
- 'python-jinja'
- 'python-pygments'
- 'python-docutils'
- 'python-sphinx_rtd_theme'
- 'python-sphinx-alabaster-theme'
- 'python-babel'
- 'python-snowballstemmer'
- 'python-six'
- 'python-imagesize'
- 'python-requests'
- 'python-sphinxcontrib-websupport'
- 'python-sqlalchemy'
- 'python-whoosh'
- )
- optdepends=('texlive-latexextra: for generation of PDF documentation'
- 'imagemagick: ext.imageconverter')
-
+check() {
cd Sphinx-$pkgver
- python setup.py install --root="$pkgdir" --optimize=1
-
- install -Dm644 "$srcdir"/Sphinx-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/python-sphinx/LICENSE
+ LC_ALL="en_US.UTF-8" make test
+ rm -r tests
}
-package_python2-sphinx() {
- pkgdesc='Python2 documentation generator'
- depends=(
- 'python2-setuptools'
- 'python2-jinja'
- 'python2-pygments'
- 'python2-docutils'
- 'python2-sphinx_rtd_theme'
- 'python2-sphinx-alabaster-theme'
- 'python2-babel'
- 'python2-snowballstemmer'
- 'python2-six'
- 'python2-imagesize'
- 'python2-requests'
- 'python2-sphinxcontrib-websupport'
- 'python2-sqlalchemy'
- 'python2-whoosh'
- 'python2-typing'
- )
- optdepends=('texlive-latexextra: for generation of PDF documentation'
- 'imagemagick: ext.imageconverter')
-
- cd Sphinx-${pkgver}2
- python2 setup.py install --root="$pkgdir" --optimize=1
-
- install -Dm644 "$srcdir"/Sphinx-$pkgver/LICENSE "$pkgdir"/usr/share/licenses/python2-sphinx/LICENSE
+package() {
+ cd Sphinx-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
}
# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-sphinxcontrib-applehelp/PKGBUILD b/abs/core/python_modules/python-sphinxcontrib-applehelp/PKGBUILD
new file mode 100644
index 0000000..92bfa97
--- /dev/null
+++ b/abs/core/python_modules/python-sphinxcontrib-applehelp/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
+
+_name=sphinxcontrib-applehelp
+pkgname=python-sphinxcontrib-applehelp
+pkgver=1.0.2
+pkgrel=3
+pkgdesc='Sphinx extension which outputs Apple help books'
+arch=('any')
+url=https://github.com/sphinx-doc/sphinxcontrib-applehelp
+license=('BSD')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-sphinx')
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz")
+sha256sums=('a072735ec80e7675e3f432fcae8610ecf509c5f1869d17e2eecff44389cdbc58')
+
+build() {
+ cd $_name-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd $_name-$pkgver
+ pytest
+}
+
+package() {
+ cd $_name-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-sphinxcontrib-devhelp/PKGBUILD b/abs/core/python_modules/python-sphinxcontrib-devhelp/PKGBUILD
new file mode 100644
index 0000000..105a41d
--- /dev/null
+++ b/abs/core/python_modules/python-sphinxcontrib-devhelp/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
+
+_name=sphinxcontrib-devhelp
+pkgname=python-sphinxcontrib-devhelp
+pkgver=1.0.2
+pkgrel=3
+pkgdesc='Sphinx extension which outputs Devhelp document'
+arch=('any')
+url=https://github.com/sphinx-doc/sphinxcontrib-devhelp
+license=('BSD')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-sphinx')
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz")
+sha256sums=('ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4')
+
+build() {
+ cd $_name-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd $_name-$pkgver
+ pytest
+}
+
+package() {
+ cd $_name-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-sphinxcontrib-htmlhelp/PKGBUILD b/abs/core/python_modules/python-sphinxcontrib-htmlhelp/PKGBUILD
new file mode 100644
index 0000000..ac87604
--- /dev/null
+++ b/abs/core/python_modules/python-sphinxcontrib-htmlhelp/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
+
+_name=sphinxcontrib-htmlhelp
+pkgname=python-sphinxcontrib-htmlhelp
+pkgver=1.0.3
+pkgrel=3
+pkgdesc='Sphinx extension which renders HTML help files'
+arch=('any')
+url=https://github.com/sphinx-doc/sphinxcontrib-htmlhelp
+license=('BSD')
+makedepends=('python-setuptools')
+checkdepends=('python-html5lib' 'python-pytest' 'python-sphinx')
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz")
+sha256sums=('e8f5bb7e31b2dbb25b9cc435c8ab7a79787ebf7f906155729338f3156d93659b')
+
+build() {
+ cd $_name-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd $_name-$pkgver
+ pytest
+}
+
+package() {
+ cd $_name-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-sphinxcontrib-jsmath/PKGBUILD b/abs/core/python_modules/python-sphinxcontrib-jsmath/PKGBUILD
new file mode 100644
index 0000000..d50d95e
--- /dev/null
+++ b/abs/core/python_modules/python-sphinxcontrib-jsmath/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
+
+_name=sphinxcontrib-jsmath
+pkgname=python-sphinxcontrib-jsmath
+pkgver=1.0.1
+pkgrel=6
+pkgdesc='Sphinx extension which renders display math in HTML via JavaScript'
+arch=('any')
+url=https://github.com/sphinx-doc/sphinxcontrib-jsmath
+license=('BSD')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-sphinx')
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz")
+sha256sums=('a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8')
+
+build() {
+ cd $_name-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd $_name-$pkgver
+ pytest
+}
+
+package() {
+ cd $_name-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-sphinxcontrib-qthelp/PKGBUILD b/abs/core/python_modules/python-sphinxcontrib-qthelp/PKGBUILD
new file mode 100644
index 0000000..38ff257
--- /dev/null
+++ b/abs/core/python_modules/python-sphinxcontrib-qthelp/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
+
+_name=sphinxcontrib-qthelp
+pkgname=python-sphinxcontrib-qthelp
+pkgver=1.0.3
+pkgrel=3
+pkgdesc='Sphinx extension which outputs QtHelp document'
+arch=('any')
+url=https://github.com/sphinx-doc/sphinxcontrib-qthelp
+license=('BSD')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-sphinx')
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz")
+sha256sums=('4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72')
+
+build() {
+ cd $_name-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd $_name-$pkgver
+ pytest
+}
+
+package() {
+ cd $_name-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-sphinxcontrib-serializinghtml/PKGBUILD b/abs/core/python_modules/python-sphinxcontrib-serializinghtml/PKGBUILD
new file mode 100644
index 0000000..baaa7d4
--- /dev/null
+++ b/abs/core/python_modules/python-sphinxcontrib-serializinghtml/PKGBUILD
@@ -0,0 +1,32 @@
+# Maintainer: Daniel M. Capella <polyzen@archlinux.org>
+
+_name=sphinxcontrib-serializinghtml
+pkgname=python-sphinxcontrib-serializinghtml
+pkgver=1.1.4
+pkgrel=3
+pkgdesc='Sphinx extension which outputs "serialized" HTML files (json and pickle)'
+arch=('any')
+url=https://github.com/sphinx-doc/sphinxcontrib-serializinghtml
+license=('BSD')
+makedepends=('python-setuptools')
+checkdepends=('python-pytest' 'python-sphinx')
+source=("https://files.pythonhosted.org/packages/source/${_name::1}/$_name/$_name-$pkgver.tar.gz")
+sha256sums=('eaa0eccc86e982a9b939b2b82d12cc5d013385ba5eadcc7e4fed23f4405f77bc')
+
+build() {
+ cd $_name-$pkgver
+ python setup.py build
+}
+
+check() {
+ cd $_name-$pkgver
+ pytest
+}
+
+package() {
+ cd $_name-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1 --skip-build
+ install -Dm644 -t "$pkgdir"/usr/share/licenses/$pkgname LICENSE
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-urllib3/PKGBUILD b/abs/core/python_modules/python-urllib3/PKGBUILD
index e4af9f4..1022f05 100644
--- a/abs/core/python_modules/python-urllib3/PKGBUILD
+++ b/abs/core/python_modules/python-urllib3/PKGBUILD
@@ -1,4 +1,3 @@
-# $Id$
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor: Patrice Peterson <runiq at archlinux dot us>
# Contributor: Chris Brannon <cmbrannon79@gmail.com>
@@ -6,7 +5,7 @@
pkgbase=python-urllib3
pkgname=(python-urllib3 python2-urllib3 python-urllib3-doc)
-pkgver=1.22
+pkgver=1.25.10
pkgrel=1
pkgdesc="HTTP library with thread-safe connection pooling and file post support"
arch=("any")
@@ -14,19 +13,17 @@ url="https://github.com/shazow/urllib3"
license=("MIT")
makedepends=('python-setuptools' 'python2-setuptools' 'python2-sphinx' 'python-ndg-httpsclient'
'python2-ndg-httpsclient' 'python-pyasn1' 'python2-pyasn1' 'python-pyopenssl'
- 'python2-pyopenssl' 'python-pysocks' 'python2-pysocks' 'python-mock' 'python2-mock')
-checkdepends=('python-pytest-runner' 'python2-pytest-runner' 'python-tornado' 'python2-tornado'
- 'python-nose' 'python2-nose' 'python-psutil' 'python2-psutil'
- 'python-gcp-devrel-py-tools' 'python2-gcp-devrel-py-tools')
+ 'python2-pyopenssl' 'python-pysocks' 'python2-pysocks' 'python-mock' 'python2-mock'
+ 'python-brotli')
+checkdepends=('python-pytest-runner' 'python-tornado' 'python-nose' 'python-psutil' 'python-trustme'
+ 'python-gcp-devrel-py-tools' 'python-pytest-timeout' 'python-flaky')
source=("$pkgbase-$pkgver.tar.gz::https://github.com/shazow/urllib3/archive/$pkgver.tar.gz"
- tornado-4.3.patch)
-sha512sums=('1b45a4a64e71847a4fc62b9263235d5b05b62076698fa324454efeb7ad065abd702cc9eadb2d396d9270b07e91e9bad94c52a4b9b115aadccb27f81955e6feab'
- '7c09acefa963a80379f8b2f3f2c2c7546ec62025058c1ae024bc954d49392d7956b8b3ceaed40b3d3ab06bcf9c74bfb4214425b66cc55c50ffc2642e2d35c498')
+ urllib3-use-brotli.patch::https://github.com/urllib3/urllib3/pull/1620.patch)
+sha512sums=('7927e58de8ef24474179297e6ef7700bb3026a13d578e5bb01e32c6c4b6b5e70cc35980a815e3bcd976678e344250222d38fb86abe0f956e5023deb0f80bc1a1'
+ '86f1dc1c8391a8dc9e9de5ff5243abe10579e363083b496aa3740def20e90969fcb470cbc50c1e0062317b235a697dba5f474d0fe635f94497aeac9abd07a414')
prepare() {
- # https://github.com/shazow/urllib3/pull/1236
- (cd urllib3-$pkgver; patch -p1 -i ../tornado-4.3.patch)
-
+ patch -d urllib3-$pkgver -p1 -i ../urllib3-use-brotli.patch
cp -a urllib3-$pkgver{,-py2}
}
@@ -43,16 +40,15 @@ build() {
}
check() {
- cd "$srcdir"/urllib3-$pkgver
+ cd urllib3-$pkgver
python setup.py pytest
-
- cd "$srcdir"/urllib3-$pkgver-py2
- python2 setup.py pytest
}
package_python-urllib3() {
depends=('python')
- optdepends=('python-pysocks: SOCKS support')
+ optdepends=('python-pysocks: SOCKS support'
+ 'python-brotli: Brotli support'
+ 'python-pyopenssl: security support')
cd urllib3-$pkgver
python setup.py install --root="$pkgdir"
@@ -61,7 +57,8 @@ package_python-urllib3() {
package_python2-urllib3() {
depends=('python2')
- optdepends=('python2-pysocks: SOCKS support')
+ optdepends=('python2-pysocks: SOCKS support'
+ 'python2-pyopenssl: security support')
cd urllib3-$pkgver-py2
python2 setup.py install --root="$pkgdir"
diff --git a/abs/core/python_modules/python-urllib3/tornado-4.3.patch b/abs/core/python_modules/python-urllib3/tornado-4.3.patch
deleted file mode 100644
index 7f4a669..0000000
--- a/abs/core/python_modules/python-urllib3/tornado-4.3.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 39eebb652db570cf51994f404da3dd91c8a9f4cc Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Fri, 21 Jul 2017 23:25:35 +0800
-Subject: [PATCH] Fix compatibility with tornado 4.3+
-
-`HTTPHeaders` is not JSON serializable, so make it a dict first.
----
- dummyserver/handlers.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/dummyserver/handlers.py b/dummyserver/handlers.py
-index a943b836b..b91fe7215 100644
---- a/dummyserver/handlers.py
-+++ b/dummyserver/handlers.py
-@@ -225,7 +225,7 @@ def encodingrequest(self, request):
- return Response(data, headers=headers)
-
- def headers(self, request):
-- return Response(json.dumps(request.headers))
-+ return Response(json.dumps(dict(request.headers)))
-
- def successful_retry(self, request):
- """ Handler which will return an error and then success
diff --git a/abs/core/python_modules/python-zope-component/PKGBUILD b/abs/core/python_modules/python-zope-component/PKGBUILD
new file mode 100644
index 0000000..46a47f3
--- /dev/null
+++ b/abs/core/python_modules/python-zope-component/PKGBUILD
@@ -0,0 +1,61 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Simon Hanna <simon dot hanna AT serve-me DOT info>
+
+pkgbase=python-zope-component
+pkgname=('python-zope-component' 'python2-zope-component')
+pkgver=4.5
+pkgrel=1
+pkgdesc="Represents the core of the Zope Component Architecture"
+arch=('any')
+url="https://github.com/zopefoundation/zope.component"
+license=('ZPL')
+makedepends=('python-setuptools' 'python2-setuptools' 'python-zope-deferredimport'
+ 'python2-zope-deferredimport' 'python-zope-deprecation' 'python2-zope-deprecation'
+ 'python-zope-event' 'python2-zope-event' 'python-zope-hookable' 'python2-zope-hookable'
+ 'python-zope-interface' 'python2-zope-interface')
+checkdepends=('python-zope-testrunner' 'python2-zope-testrunner' 'python-persistent'
+ 'python2-persistent' 'python-zope-location' 'python2-zope-location'
+ 'python-zope-proxy' 'python2-zope-proxy' 'python-zope-security'
+ 'python2-zope-security' 'python-zope-configuration' 'python2-zope-configuration'
+ 'python-zope-i18nmessageid' 'python2-zope-i18nmessageid')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/zopefoundation/zope.component/archive/$pkgver.tar.gz")
+sha512sums=('cca873bcb62b6eb60825c55fa8fe9704e505c9bec90f851921545d543c23e3995cc9d70ab9e7b8cc6b37853bbcffd09c93891f675ff113e68b56e23d8b28c912')
+
+prepare() {
+ # Build in separated dir to avoid polluting .pyc files
+ cp -a zope.component-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/zope.component-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/zope.component-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/zope.component-$pkgver
+ PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python -m zope.testrunner --test-path=src
+
+ cd "$srcdir"/zope.component-$pkgver-py2
+ PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python2 -m zope.testrunner --test-path=src
+}
+
+package_python-zope-component() {
+ depends=('python-setuptools' 'python-zope-deferredimport' 'python-zope-deprecation'
+ 'python-zope-event' 'python-zope-hookable' 'python-zope-interface')
+
+ cd zope.component-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-zope-component() {
+ depends=('python2-setuptools' 'python2-zope-deferredimport' 'python2-zope-deprecation'
+ 'python2-zope-event' 'python2-zope-hookable' 'python2-zope-interface')
+
+ cd zope.component-$pkgver-py2
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-zope-deferredimport/PKGBUILD b/abs/core/python_modules/python-zope-deferredimport/PKGBUILD
new file mode 100644
index 0000000..072d35f
--- /dev/null
+++ b/abs/core/python_modules/python-zope-deferredimport/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgbase=python-zope-deferredimport
+pkgname=('python-zope-deferredimport' 'python2-zope-deferredimport')
+pkgver=4.3
+pkgrel=2
+pkgdesc="Allows you to perform imports names that will only be resolved when used in the code"
+arch=('any')
+url="https://github.com/zopefoundation/zope.deferredimport"
+license=('ZPL')
+makedepends=('python-setuptools' 'python2-setuptools' 'python-zope-proxy' 'python2-zope-proxy')
+checkdepends=('python-zope-testrunner' 'python2-zope-testrunner')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/zopefoundation/zope.deferredimport/archive/$pkgver.tar.gz")
+sha512sums=('0b62cf6caa7709dbb6b0ae85bf9c5e24909c79af57da8e3d081e69ff9f73fc60fbe5a83cdfe795551eeee3c045d3783a09cb3e6eb3964a44e6fbbea149ca3f8a')
+
+prepare() {
+ # Build in separated dir to avoid polluting .pyc files
+ cp -a zope.deferredimport-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/zope.deferredimport-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/zope.deferredimport-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/zope.deferredimport-$pkgver
+ PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python -m zope.testrunner --test-path=src
+
+ cd "$srcdir"/zope.deferredimport-$pkgver-py2
+ PYTHONPATH="$PWD/build/lib:$PYTHONPATH" python2 -m zope.testrunner --test-path=src
+}
+
+package_python-zope-deferredimport() {
+ depends=('python-setuptools' 'python-zope-proxy')
+
+ cd zope.deferredimport-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-zope-deferredimport() {
+ depends=('python2-setuptools' 'python2-zope-proxy')
+
+ cd zope.deferredimport-$pkgver-py2
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-zope-deprecation/PKGBUILD b/abs/core/python_modules/python-zope-deprecation/PKGBUILD
new file mode 100644
index 0000000..69486f8
--- /dev/null
+++ b/abs/core/python_modules/python-zope-deprecation/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgbase=python-zope-deprecation
+pkgname=('python-zope-deprecation' 'python2-zope-deprecation')
+pkgver=4.4.0
+pkgrel=1
+pkgdesc="Zope Deprecation Infrastructure"
+arch=('any')
+url="https://github.com/zopefoundation/zope.deprecation"
+license=('ZPL')
+makedepends=('python-setuptools' 'python2-setuptools')
+checkdepends=('python-nose' 'python2-nose')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/zopefoundation/zope.deprecation/archive/$pkgver.tar.gz")
+sha512sums=('d8632a3442eee059383014bb3341b30897ad8f9206b71bc586c873c4cccf5f87296edaf18f1e1c93878f480e3b0e8e1c1936ac19ed327f4ab227402ebbc73e0e')
+
+prepare() {
+ cp -a zope.deprecation-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/zope.deprecation-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/zope.deprecation-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/zope.deprecation-$pkgver
+ nosetests3
+
+ cd "$srcdir"/zope.deprecation-$pkgver-py2
+ nosetests2
+}
+
+package_python-zope-deprecation() {
+ depends=('python-setuptools')
+
+ cd zope.deprecation-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-zope-deprecation() {
+ depends=('python2-setuptools')
+
+ cd zope.deprecation-$pkgver-py2
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-zope-event/PKGBUILD b/abs/core/python_modules/python-zope-event/PKGBUILD
new file mode 100644
index 0000000..58c2e79
--- /dev/null
+++ b/abs/core/python_modules/python-zope-event/PKGBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Simon Hanna <simon dot hanna AT serve-me DOT info>
+
+pkgbase=python-zope-event
+pkgname=('python-zope-event' 'python2-zope-event')
+pkgver=4.4
+pkgrel=1
+pkgdesc="Provides a simple event system"
+arch=(any)
+license=('ZPL')
+url="https://github.com/zopefoundation/zope.event"
+makedepends=('python-setuptools' 'python2-setuptools')
+source=("https://github.com/zopefoundation/zope.event/archive/${pkgver}.tar.gz")
+sha512sums=('653273d021a43dca6d77900a3e2928f1621fd9c47a536ddd186e00b601670a4ac72042a1eadf18cf9912609025b491cee41508e8eb53bf2dc2ada2c5d3d5bb70')
+makedepends=('python-setuptools' 'python2-setuptools')
+
+prepare() {
+ cp -a zope.event-${pkgver}{,-py2}
+}
+
+build() {
+ cd "${srcdir}/zope.event-${pkgver}"
+ python setup.py build
+
+ cd "${srcdir}/zope.event-${pkgver}-py2"
+ python2 setup.py build
+}
+
+check() {
+ cd "${srcdir}/zope.event-${pkgver}"
+ python setup.py test
+
+ cd "${srcdir}/zope.event-${pkgver}-py2"
+ python2 setup.py test
+}
+
+package_python-zope-event() {
+ depends=('python')
+ cd "$srcdir/zope.event-$pkgver"
+ python setup.py install --root="$pkgdir/" --optimize=1
+}
+
+package_python2-zope-event() {
+ depends=('python2')
+ cd "$srcdir/zope.event-$pkgver"
+ python2 setup.py install --root="$pkgdir/" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-zope-hookable/PKGBUILD b/abs/core/python_modules/python-zope-hookable/PKGBUILD
new file mode 100644
index 0000000..6a2a7b9
--- /dev/null
+++ b/abs/core/python_modules/python-zope-hookable/PKGBUILD
@@ -0,0 +1,50 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgbase=python-zope-hookable
+pkgname=('python-zope-hookable' 'python2-zope-hookable')
+pkgver=4.2.0
+pkgrel=2
+pkgdesc="Represents the core of the Zope hookable Architecture"
+arch=('x86_64')
+url="https://github.com/zopefoundation/zope.hookable"
+license=('ZPL')
+makedepends=('python-setuptools' 'python2-setuptools')
+checkdepends=('python-nose' 'python2-nose' 'python2-pytest-runner')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/zopefoundation/zope.hookable/archive/$pkgver.tar.gz")
+sha512sums=('aeeafff7e5c7cbe3d5944864278896f926086514e75be1d5956e32fc0a3769ac11b008c3855a0816084c7deb64f14c65db49852dac2beaf06420a304af6ebb69')
+
+prepare() {
+ cp -a zope.hookable-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/zope.hookable-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/zope.hookable-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/zope.hookable-$pkgver
+ python setup.py nosetests
+
+ cd "$srcdir"/zope.hookable-$pkgver-py2
+ python2 setup.py pytest
+}
+
+package_python-zope-hookable() {
+ depends=('python-setuptools')
+
+ cd "$srcdir"/zope.hookable-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-zope-hookable() {
+ depends=('python2-setuptools')
+
+ cd "$srcdir"/zope.hookable-$pkgver-py2
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python-zope-proxy/PKGBUILD b/abs/core/python_modules/python-zope-proxy/PKGBUILD
new file mode 100644
index 0000000..c3e257f
--- /dev/null
+++ b/abs/core/python_modules/python-zope-proxy/PKGBUILD
@@ -0,0 +1,51 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgbase=python-zope-proxy
+pkgname=('python-zope-proxy' 'python2-zope-proxy')
+pkgver=4.3.1
+pkgrel=1
+pkgdesc="Generic Transparent Proxies"
+arch=('x86_64')
+url="https://github.com/zopefoundation/zope.proxy"
+license=('ZPL')
+makedepends=('python-setuptools' 'python2-setuptools' 'python-zope-interface'
+ 'python2-zope-interface')
+checkdepends=('python-zope-security' 'python2-zope-security')
+source=("$pkgbase-$pkgver.tar.gz::https://github.com/zopefoundation/zope.proxy/archive/$pkgver.tar.gz")
+sha512sums=('1072258c35bf23162c4f347060ea79979cbfc551c308e809b7e63f1d9434f566b665954edf3d2ab0b72161fb74b0e707c5904775876188306411ed0401424612')
+
+prepare() {
+ cp -a zope.proxy-$pkgver{,-py2}
+}
+
+build() {
+ cd "$srcdir"/zope.proxy-$pkgver
+ python setup.py build
+
+ cd "$srcdir"/zope.proxy-$pkgver-py2
+ python2 setup.py build
+}
+
+check() {
+ cd "$srcdir"/zope.proxy-$pkgver
+ python setup.py test || :
+
+ cd "$srcdir"/zope.proxy-$pkgver-py2
+ python2 setup.py test
+}
+
+package_python-zope-proxy() {
+ depends=('python-setuptools' 'python-zope-interface')
+
+ cd zope.proxy-$pkgver
+ python setup.py install --root="$pkgdir" --optimize=1
+}
+
+package_python2-zope-proxy() {
+ depends=('python2-setuptools' 'python2-zope-interface')
+
+ cd zope.proxy-$pkgver
+ python2 setup.py install --root="$pkgdir" --optimize=1
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/python_modules/python2-backports.functools_lru_cache/PKGBUILD b/abs/core/python_modules/python2-backports.functools_lru_cache/PKGBUILD
new file mode 100644
index 0000000..fd5eb30
--- /dev/null
+++ b/abs/core/python_modules/python2-backports.functools_lru_cache/PKGBUILD
@@ -0,0 +1,38 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+# Contributor: Crass00 <crass00 @ hotmail . com>
+
+pkgname=python2-backports.functools_lru_cache
+pkgver=1.6.1
+pkgrel=2
+pkgdesc="Backport of functools.lru_cache from Python 3.3"
+arch=('any')
+url="https://github.com/jaraco/backports.functools_lru_cache"
+license=('MIT')
+depends=('python2-backports')
+makedepends=('python2-setuptools-scm')
+checkdepends=('python2-pytest')
+source=("https://pypi.io/packages/source/b/backports.functools_lru_cache/backports.functools_lru_cache-$pkgver.tar.gz")
+sha512sums=('5764cc6ed83dc4abc2a7e5f8b5bb30c7b7554aafcbb6dfcececdb3646fe9298a8c1791a02112238ec94a0e383855bdec43bf9094f40b57124d0a0c9aa7c67f88')
+
+prepare() {
+ cd backports.functools_lru_cache-$pkgver
+ # Style or coverage checks are not relevant for us
+ sed -i 's/--flake8 --black --cov//' pytest.ini
+}
+
+build() {
+ cd backports.functools_lru_cache-$pkgver
+ python2 setup.py build
+}
+
+check() {
+ cd backports.functools_lru_cache-$pkgver
+ python2 -m pytest
+}
+
+package() {
+ cd backports.functools_lru_cache-$pkgver
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ rm "$pkgdir"/usr/lib/python2.7/site-packages/backports/__init__.py*
+}
diff --git a/abs/core/python_modules/python2-backports/PKGBUILD b/abs/core/python_modules/python2-backports/PKGBUILD
new file mode 100644
index 0000000..0585c1d
--- /dev/null
+++ b/abs/core/python_modules/python2-backports/PKGBUILD
@@ -0,0 +1,25 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgname=python2-backports
+pkgver=1.0
+pkgrel=3
+pkgdesc="Namespace package required for backports collection"
+arch=('any')
+url="https://pypi.python.org/pypi/backports"
+license=('PSF')
+depends=('python2')
+
+build() {
+ cd "$srcdir"
+ cat << EOF > __init__.py
+from pkgutil import extend_path
+__path__ = extend_path(__path__, __name__)
+EOF
+ python2 -m compileall .
+}
+
+package() {
+ cd "$srcdir"
+ install -Dm644 __init__.py "$pkgdir/usr/lib/python2.7/site-packages/backports/__init__.py"
+ install -Dm644 __init__.pyc "$pkgdir/usr/lib/python2.7/site-packages/backports/__init__.pyc"
+}
diff --git a/abs/core/python_modules/python2-futures/PKGBUILD b/abs/core/python_modules/python2-futures/PKGBUILD
index dcaed42..7034b40 100644
--- a/abs/core/python_modules/python2-futures/PKGBUILD
+++ b/abs/core/python_modules/python2-futures/PKGBUILD
@@ -1,12 +1,11 @@
-# $Id$
# Maintainer: Balló György <ballogyor+arch at gmail dot com>
# Contributor: Jaroslav Lichtblau <dragonlord@aur.archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
pkgname=python2-futures
_pkgname=futures
-pkgver=3.1.1
-pkgrel=1
+pkgver=3.3.0
+pkgrel=2
pkgdesc="Backport of the concurrent.futures package from Python 3.2"
arch=('any')
url="https://github.com/agronholm/pythonfutures"
@@ -14,7 +13,7 @@ license=('BSD')
depends=('python2')
source=("$_pkgname-$pkgver.tar.gz::https://github.com/agronholm/pythonfutures/archive/$pkgver.tar.gz"
LICENSE)
-md5sums=('c500fc20a02b83e7ec88dc5bac9649f5'
+md5sums=('f27b1e0bd1fb32b2b2c79cb0823f2a2d'
'dd6708d05936d3f6c4e20ed14c87b5e3')
build() {
diff --git a/abs/core/python_modules/python2-soupsieve/PKGBUILD b/abs/core/python_modules/python2-soupsieve/PKGBUILD
new file mode 100644
index 0000000..f552d97
--- /dev/null
+++ b/abs/core/python_modules/python2-soupsieve/PKGBUILD
@@ -0,0 +1,31 @@
+# Maintainer: Felix Yan <felixonmars@archlinux.org>
+
+pkgname=python2-soupsieve
+pkgver=1.9.6
+pkgrel=2
+pkgdesc="A CSS4 selector implementation for Beautiful Soup"
+url="https://github.com/facelessuser/soupsieve"
+license=('MIT')
+arch=('any')
+depends=('python2-backports.functools_lru_cache')
+makedepends=('python2-setuptools')
+checkdepends=('python2-pytest' 'python2-beautifulsoup4' 'python2-html5lib' 'python2-lxml')
+source=("https://github.com/facelessuser/soupsieve/archive/$pkgver/$pkgname-$pkgver.tar.gz")
+sha512sums=('44954cdedc16a51c794ebe6770caeb8f179167ad2f0a0478cb1efd5878d6cc49fffd6119125964b19184afa6d0d7dedadb81dee020a48c5128ccf56e36a78f61')
+
+build() {
+ cd soupsieve-$pkgver
+ python2 setup.py build
+}
+
+check() {
+ cd soupsieve-$pkgver
+ pytest2
+}
+
+package() {
+ cd soupsieve-$pkgver
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ install -Dm644 LICENSE.md "$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
+}
diff --git a/abs/core/readline/PKGBUILD b/abs/core/readline/PKGBUILD
index 6934ca0..914d224 100644
--- a/abs/core/readline/PKGBUILD
+++ b/abs/core/readline/PKGBUILD
@@ -1,16 +1,15 @@
-# $Id$
# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=readline
-_basever=7.0
-_patchlevel=003
+_basever=8.0
+_patchlevel=004
pkgver=${_basever}.${_patchlevel}
pkgrel=1
pkgdesc='GNU readline library'
arch=('x86_64')
-url='http://tiswww.case.edu/php/chet/readline/rltop.html'
+url='https://tiswww.case.edu/php/chet/readline/rltop.html'
license=('GPL')
backup=('etc/inputrc')
depends=('glibc' 'ncurses' 'libncursesw.so')
@@ -52,12 +51,14 @@ package() {
install -Dm644 inputrc "$pkgdir"/etc/inputrc
}
-md5sums=('205b03a87fc83dab653b628c59b9fc91'
+md5sums=('7e6c1f16aee3244a69aba6e438295ca3'
'SKIP'
'58d54966c1191db45973cb3191ac621a'
- 'e299384458a4cbefaaac3f30e9cc2bba'
+ 'c3e27b8a0d8e37a4172654e5f3ef2eec'
'SKIP'
- 'f9071a353e2fd52a91d32667b23715d6'
+ '2e631f1973dfe4b0ef042c40b8fdb47e'
'SKIP'
- '03595464cf0283286a6e07f4f01c4a70'
+ '9d2344b399237fa7abdbcf966b364c97'
+ 'SKIP'
+ '0c0406762a9afcd34c6a77268fea0ccb'
'SKIP')
diff --git a/abs/core/runit-scripts/PKGBUILD b/abs/core/runit-scripts/PKGBUILD
index 11aee66..30dede0 100755
--- a/abs/core/runit-scripts/PKGBUILD
+++ b/abs/core/runit-scripts/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=runit-scripts
-pkgver=8.5
-pkgrel=4
+pkgver=8.7
+pkgrel=1
pkgdesc="collection of startup scripts for runit"
url="http://smarden.org/runit/"
license=('BSD')
diff --git a/abs/core/runit-scripts/runitscripts/services/alsa-utils/run b/abs/core/runit-scripts/runitscripts/services/alsa-utils/run
index a376059..a15a911 100755
--- a/abs/core/runit-scripts/runitscripts/services/alsa-utils/run
+++ b/abs/core/runit-scripts/runitscripts/services/alsa-utils/run
@@ -1,4 +1,5 @@
#!/bin/sh
+MYTH_RUN_STATUS="1"
set -e
/usr/bin/alsactl restore
exec chpst -b alsa pause
diff --git a/abs/core/runit-scripts/runitscripts/services/apcupsd/run b/abs/core/runit-scripts/runitscripts/services/apcupsd/run
index 70bd9e0..7d9034e 100755
--- a/abs/core/runit-scripts/runitscripts/services/apcupsd/run
+++ b/abs/core/runit-scripts/runitscripts/services/apcupsd/run
@@ -1,6 +1,6 @@
#!/bin/sh
exec 2>&1
-
+MYTH_RUN_STATUS="1"
. /etc/rc.conf
. /etc/rc.d/functions
diff --git a/abs/core/runit-scripts/runitscripts/services/autofs/run b/abs/core/runit-scripts/runitscripts/services/autofs/run
index c0800a2..941d59c 100755
--- a/abs/core/runit-scripts/runitscripts/services/autofs/run
+++ b/abs/core/runit-scripts/runitscripts/services/autofs/run
@@ -1,6 +1,6 @@
#!/bin/sh
exec 2>&1
-
+MYTH_RUN_STATUS="1"
. /etc/rc.conf
. /etc/rc.d/functions
diff --git a/abs/core/runit-scripts/runitscripts/services/certmaster/run b/abs/core/runit-scripts/runitscripts/services/certmaster/run
index 0f5add7..f3ac054 100644
--- a/abs/core/runit-scripts/runitscripts/services/certmaster/run
+++ b/abs/core/runit-scripts/runitscripts/services/certmaster/run
@@ -1,4 +1,5 @@
#!/bin/bash
+MYTH_RUN_STATUS="1"
if [ ! -e /etc/pki/certmaster/ca/certmaster.key ]
then
/usr/bin/certmaster daemon
diff --git a/abs/core/runit-scripts/runitscripts/services/irexec/run b/abs/core/runit-scripts/runitscripts/services/irexec/run
index 01b775a..bd6f418 100644
--- a/abs/core/runit-scripts/runitscripts/services/irexec/run
+++ b/abs/core/runit-scripts/runitscripts/services/irexec/run
@@ -1,7 +1,7 @@
#!/bin/sh
exec 2>&1
export TERM=linux
-
+MYTH_RUN_STATUS="1"
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/profile
diff --git a/abs/core/runit-scripts/runitscripts/services/mysql/run b/abs/core/runit-scripts/runitscripts/services/mysql/run
index 8fad493..51dc27f 100755
--- a/abs/core/runit-scripts/runitscripts/services/mysql/run
+++ b/abs/core/runit-scripts/runitscripts/services/mysql/run
@@ -1,6 +1,7 @@
#!/bin/bash
exec 2>&1
export TERM=linux
+MYTH_RUN_STATUS="1"
. /etc/rc.conf
. /etc/rc.d/functions
stat_runit "Starting Mysql"
diff --git a/abs/core/runit-scripts/runitscripts/services/plexmediaserver/run b/abs/core/runit-scripts/runitscripts/services/plexmediaserver/run
index 6d0b04e..a6e521a 100755
--- a/abs/core/runit-scripts/runitscripts/services/plexmediaserver/run
+++ b/abs/core/runit-scripts/runitscripts/services/plexmediaserver/run
@@ -1,6 +1,7 @@
#!/bin/sh
exec 2>&1
export TERM=linux
+MYTH_RUN_STATUS="1"
. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/plexmediaserver
@@ -17,4 +18,4 @@ export LC_ALL="${LANG}"
export LANG="${LANG}"
ulimit -s 3000
-exec chpst -uplex:plex /opt/plexmediaserver/Plex\ Media\ Server
+exec chpst -uplex:plex /usr/lib/plexmediaserver/Plex\ Media\ Server
diff --git a/abs/core/runit-scripts/runitscripts/services/remotes/run b/abs/core/runit-scripts/runitscripts/services/remotes/run
index 9fbb16e..9c61daa 100755
--- a/abs/core/runit-scripts/runitscripts/services/remotes/run
+++ b/abs/core/runit-scripts/runitscripts/services/remotes/run
@@ -8,7 +8,7 @@ export TERM=linux
LOG=/tmp/remotes.log
MODPROBE="/usr/bin/modprobe"
-LIRCD="/usr/bin/lircd "
+LIRCD="/usr/bin/lircd"
SETSERIAL="/usr/bin/setserial"
@@ -112,7 +112,7 @@ else
if [ x$HostBlasterType = xCommandIR -o x$ReceiverType = xCommandIR ]
then
- CMD="$LIRCD-r -n --driver=commandir"
+ CMD="$LIRCD --release --nodaemon --driver=commandir"
printhl " Using commandir"
echo $CMD >>$LOG
$CMD >>$LOG 2>>$LOG
@@ -120,7 +120,7 @@ else
elif [ x$HostBlasterType = xiguanaIR-usb -o x$ReceiverType = xiguanaIR-usb ]
then
sv start igdaemon
- CMD="$LIRCD-r -n --driver=iguanaIR"
+ CMD="$LIRCD --release --nodaemon --driver=iguanaIR"
printhl " Using iguanaIR usb"
echo $CMD >>$LOG
$CMD >>$LOG 2>>$LOG
@@ -128,7 +128,7 @@ else
elif [ x$ReceiverType = "xSiliconDust_HDHR" ]
then
# if using the SiliconDust_HDHR as an I/R Receiver
- CMD="$LIRCD-H udp -d 5000 -n"
+ CMD="$LIRCD --nodaemon --driver=udp --device=5000"
printhl " Using SiliconDust on port 5000"
echo $CMD >>$LOG
$CMD >>$LOG 2>>$LOG
@@ -177,7 +177,7 @@ else
DEFINED_RECEIVER="False"
for i in `seq 1 $num_lirc`
do
- CMD="$LIRCD-r -d /dev/lirc$i --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
+ CMD="$LIRCD --release --device=/dev/lirc$i --driver=default --output=/var/run/lirc/lircd$i --pidfile=/var/run/lircd$i.pid --listen=876$i"
printhl " Device $i"
echo $CMD >>$LOG
$CMD >>$LOG 2>>$LOG
@@ -216,24 +216,24 @@ else
then
#start receiver
#start blaster chain
- CMD="$LIRCD-r -d $IRNODE --output=/var/run/lirc/lircd1 --pidfile=/var/run/lircd1.pid --listen=8761"
- LCMD="$LIRCD-r -n -d $BLASTERNODE --output /var/run/lirc/lircd $LASTCMD"
+ CMD="$LIRCD --release --device=$IRNODE --driver=default --output=/var/run/lirc/lircd1 --pidfile=/var/run/lircd1.pid --listen=8761"
+ LCMD="$LIRCD --release --nodaemon --device=$BLASTERNODE --driver=default --output=/var/run/lirc/lircd $LASTCMD"
echo $CMD >>$LOG
$CMD >>$LOG 2>>$LOG
elif [ x$USE_BLASTER = xTrue ]
then
#start only the blaster
- LCMD="$LIRCD-r -n -d $BLASTERNODE --output /var/run/lirc/lircd $LASTCMD"
+ LCMD="$LIRCD --release --nodaemon --device=$BLASTERNODE --driver=default --output=/var/run/lirc/lircd $LASTCMD"
elif [ x$DEFINED_RECEIVER = xTrue ]
then
#start reciever
- LCMD="$LIRCD-r -n -d $IRNODE --output /var/run/lirc/lircd"
+ LCMD="$LIRCD --release --nodaemon --device=$IRNODE --driver=default --output=/var/run/lirc/lircd"
else
#default case of /dev/lirc0
- LCMD="$LIRCD-r -n -d /dev/lirc0 --output /var/run/lirc/lircd $LASTCMD"
+ LCMD="$LIRCD --release --nodaemon --device=/dev/lirc0 --driver=default --output=/var/run/lirc/lircd $LASTCMD"
fi
echo $LASTCMD >>$LOG
@@ -242,10 +242,8 @@ else
-
echo "Starting remotes from $LCMD" >>$LOG
exec $LCMD >>$LOG 2>>$LOG
-
fi
fi
fi
diff --git a/abs/core/runit-scripts/runitscripts/services/rpcbind/run b/abs/core/runit-scripts/runitscripts/services/rpcbind/run
index 86a961b..9853b88 100755
--- a/abs/core/runit-scripts/runitscripts/services/rpcbind/run
+++ b/abs/core/runit-scripts/runitscripts/services/rpcbind/run
@@ -4,4 +4,4 @@ export TERM=linux
. /etc/rc.conf
. /etc/rc.d/functions
stat_runit "Starting rpc.bind"
-exec /usr/bin/rpcbind -d
+exec /usr/bin/rpcbind -d -f
diff --git a/abs/core/runit-scripts/runitscripts/services/rslsync/run b/abs/core/runit-scripts/runitscripts/services/rslsync/run
new file mode 100755
index 0000000..089c979
--- /dev/null
+++ b/abs/core/runit-scripts/runitscripts/services/rslsync/run
@@ -0,0 +1,21 @@
+#!/bin/sh
+exec 2>&1
+export TERM=linux
+. /etc/rc.conf
+. /etc/rc.d/functions
+stat_runit "Starting rslsync daemon"
+
+FILE=/home/mythtv/.config/rslsync/rslsync.conf
+STORAGE=/data/storage/disk0/media/resilio/.sync
+
+if [ ! -f "$FILE" ]; then
+ mkdir -p /home/mythtv/.config/rslsync/
+ cp /etc/rslsync.conf "$FILE"
+ chown -R mythtv:mythtv /home/mythtv/.config/rslsync
+fi
+if [ ! -d "$STORAGE" ]; then
+ mkdir -p $STORAGE
+ chown -R mythtv:mythtv /data/storage/disk0/media/resilio/
+fi
+
+exec chpst -umythtv /usr/bin/rslsync --nodaemon --config $FILE --storage $STORAGE
diff --git a/abs/core/sed/PKGBUILD b/abs/core/sed/PKGBUILD
index a6e3219..29905cd 100644
--- a/abs/core/sed/PKGBUILD
+++ b/abs/core/sed/PKGBUILD
@@ -1,34 +1,49 @@
-# $Id: PKGBUILD 187041 2013-06-03 11:15:34Z allan $
-# Maintainer: Allan McRae <allan@archlinux.org>
+# Maintainer: Sébastien "Seblu" Luttringer <seblu@archlinux.org>
+# Contributor: Allan McRae <allan@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgname=sed
-pkgver=4.2.2
-pkgrel=3
-pkgdesc="GNU stream editor"
-arch=('i686' 'x86_64')
-url="http://www.gnu.org/software/sed"
+pkgver=4.8
+pkgrel=1
+pkgdesc='GNU stream editor'
+arch=('x86_64')
+url='https://www.gnu.org/software/sed/'
license=('GPL3')
-groups=('base' 'base-devel')
-depends=('acl' 'sh')
+groups=('base-devel')
+depends=('glibc' 'acl' 'attr')
makedepends=('gettext')
-install=sed.install
-source=(ftp://ftp.gnu.org/pub/gnu/sed/${pkgname}-${pkgver}.tar.gz{,.sig})
+source=("https://ftp.gnu.org/pub/gnu/sed/$pkgname-$pkgver.tar.xz"{,.sig})
+validpgpkeys=('155D3FC500C834486D1EEA677FD9FCCB000BEEEE') #Jim Meyering <jim@meyering.net>
+sha256sums=('f79b0cfea71b37a8eeec8490db6c5f7ae7719c35587f21edb0617f370eeff633'
+ 'SKIP')
+
+prepare() {
+ cd $pkgname-$pkgver
+ # apply patch from the source array (should be a pacman feature)
+ local src
+ for src in "${source[@]}"; do
+ src="${src%%::*}"
+ src="${src##*/}"
+ [[ $src = *.patch ]] || continue
+ msg2 "Applying patch $src..."
+ patch -Np1 < "../$src"
+ done
+}
build() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd $pkgname-$pkgver
./configure --prefix=/usr
make
}
check() {
- cd ${srcdir}/${pkgname}-${pkgver}
+ cd $pkgname-$pkgver
make check
}
package() {
- cd ${srcdir}/${pkgname}-${pkgver}
- make DESTDIR=${pkgdir} install
+ cd $pkgname-$pkgver
+ make DESTDIR="$pkgdir" install
}
-md5sums=('4111de4faa3b9848a0686b2f260c5056'
- 'SKIP')
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/sed/sed.install b/abs/core/sed/sed.install
deleted file mode 100644
index c052403..0000000
--- a/abs/core/sed/sed.install
+++ /dev/null
@@ -1,20 +0,0 @@
-infodir=/usr/share/info
-filelist=(sed.info)
-
-post_install() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
-
-post_upgrade() {
- post_install $1
-}
-
-pre_remove() {
- [ -x usr/bin/install-info ] || return 0
- for file in ${filelist[@]}; do
- install-info --delete $infodir/$file.gz $infodir/dir 2> /dev/null
- done
-}
diff --git a/abs/core/shadow/PKGBUILD b/abs/core/shadow/PKGBUILD
index 0ca6f54..de451df 100644
--- a/abs/core/shadow/PKGBUILD
+++ b/abs/core/shadow/PKGBUILD
@@ -1,24 +1,25 @@
-# $Id: PKGBUILD 197840 2013-10-30 11:06:53Z allan $
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Maintainer: Aaron Griffin <aaron@archlinux.org>
pkgname=shadow
-pkgver=4.1.5.1
-pkgrel=7
+pkgver=4.8.1
+pkgrel=4
pkgdesc="Password and account management tool suite with support for shadow files and PAM"
-arch=('i686' 'x86_64')
-url='http://pkg-shadow.alioth.debian.org/'
+arch=('x86_64')
+url='https://github.com/shadow-maint/shadow'
license=('BSD')
-groups=('base')
-depends=('bash' 'pam' 'acl')
+# libcap-ng needed by install scriptlet for 'filecap'
+depends=('pam' 'acl' 'libacl.so' 'audit' 'libaudit.so' 'libcap-ng' 'libcap-ng.so'
+ 'libxcrypt' 'libcrypt.so')
backup=(etc/login.defs
etc/pam.d/{chage,passwd,shadow,useradd,usermod,userdel}
etc/pam.d/{chpasswd,newusers,groupadd,groupdel,groupmod}
etc/pam.d/{chgpasswd,groupmems}
etc/default/useradd)
options=(strip debug)
-install='shadow.install'
-source=("http://pkg-shadow.alioth.debian.org/releases/$pkgname-$pkgver.tar.bz2"{,.sig}
+validpgpkeys=('D5C2F9BFCA128BBA22A77218872F702C4D6E25A8' # Christian Perrier
+ 'F1D08DB778185BF784002DFFE9FEEA06A85E3F9D') # Serge Hallyn
+source=("https://github.com/shadow-maint/shadow/releases/download/$pkgver/shadow-$pkgver.tar.xz"{,.asc}
LICENSE
chgpasswd
chpasswd
@@ -26,52 +27,38 @@ source=("http://pkg-shadow.alioth.debian.org/releases/$pkgname-$pkgver.tar.bz2"{
login.defs
newusers
passwd
- shadow.cron.daily
- useradd.defaults
- xstrdup.patch
- shadow-strncpy-usage.patch
- lastlog.tmpfiles)
-sha1sums=('81f38720b953ef9c2c100c43d02dfe19cafd6c30'
+ shadow.{timer,service}
+ useradd.defaults)
+install=shadow.install
+sha1sums=('63457a0ba58dc4e81b2663b839dc6c89d3343f12'
'SKIP'
'33a6cf1e44a1410e5c9726c89e5de68b78f5f922'
'4ad0e059406a305c8640ed30d93c2a1f62c2f4ad'
'12427b1ca92a9b85ca8202239f0d9f50198b818f'
'0e56fed7fc93572c6bf0d8f3b099166558bb46f1'
- 'e92045fb75e0c21a3f294a00de0bd2cd252e9463'
+ '81a02eadb5f605fef5c75b6d8a03713a7041864b'
'12427b1ca92a9b85ca8202239f0d9f50198b818f'
'611be25d91c3f8f307c7fe2485d5f781e5dee75f'
- '98f4919014b1a9eb9f01ca7731e04b1d973cedd5'
- '9ae93de5987dd0ae428f0cc1a5a5a5cd53583f19'
- '6010fffeed1fc6673ad9875492e1193b1a847b53'
- '21e12966a6befb25ec123b403cd9b5c492fe5b16'
- 'f57ecde3f72b4738fad75c097d19cf46a412350f')
+ 'a154a94b47a3d0c6c287253b98c0d10b861226d0'
+ 'b5540736f5acbc23b568973eb5645604762db3dd'
+ 'c173208c5cf34528602f9931468a67b7f68abad3')
build() {
cd "$pkgname-$pkgver"
- # avoid transitive linking issues with binutils 2.22
- sed -i '/^user\(mod\|add\)_LDADD/s|$| -lattr|' src/Makefile.am
-
- # link to glibc's crypt(3)
- export LIBS="-lcrypt"
-
- # need to offer these upstream
- patch -Np1 <"$srcdir/xstrdup.patch"
- patch -Np1 <"$srcdir/shadow-strncpy-usage.patch"
-
- # supress etc/pam.d/*, we provide our own
- sed -i '/^SUBDIRS/s/pam.d//' etc/Makefile.in
-
+ autoreconf -fsiv
./configure \
--prefix=/usr \
--bindir=/usr/bin \
--sbindir=/usr/bin \
- --libdir=/lib \
+ --libdir=/usr/lib \
--mandir=/usr/share/man \
--sysconfdir=/etc \
+ --disable-account-tools-setuid \
--with-libpam \
- --without-selinux \
- --with-group-name-max-length=32
+ --with-group-name-max-length=32 \
+ --with-audit \
+ --without-selinux
make
}
@@ -85,16 +72,19 @@ package() {
install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/shadow/LICENSE"
# useradd defaults
- install -Dm644 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd"
+ install -Dm600 "$srcdir/useradd.defaults" "$pkgdir/etc/default/useradd"
- # cron job
- install -Dm744 "$srcdir/shadow.cron.daily" "$pkgdir/etc/cron.daily/shadow"
+ # systemd units
+ install -D -m644 "$srcdir/shadow.timer" "$pkgdir/usr/lib/systemd/system/shadow.timer"
+ install -D -m644 "$srcdir/shadow.service" "$pkgdir/usr/lib/systemd/system/shadow.service"
+ install -d -m755 "$pkgdir/usr/lib/systemd/system/timers.target.wants"
+ ln -s ../shadow.timer "$pkgdir/usr/lib/systemd/system/timers.target.wants/shadow.timer"
# login.defs
install -Dm644 "$srcdir/login.defs" "$pkgdir/etc/login.defs"
# PAM config - custom
- install -dm755 "$pkgdir/etc/pam.d"
+ rm "$pkgdir/etc/pam.d"/*
install -t "$pkgdir/etc/pam.d" -m644 "$srcdir"/{passwd,chgpasswd,chpasswd,newusers}
# PAM config - from tarball
@@ -106,9 +96,6 @@ package() {
install -Dm644 "$srcdir/defaults.pam" "$pkgdir/etc/pam.d/$file"
done
- # lastlog log file creation
- install -Dm644 "$srcdir/lastlog.tmpfiles" "${pkgdir}/usr/lib/tmpfiles.d/lastlog.conf"
-
# Remove evil/broken tools
rm "$pkgdir"/usr/sbin/logoutd
diff --git a/abs/core/shadow/lastlog.tmpfiles b/abs/core/shadow/lastlog.tmpfiles
deleted file mode 100644
index 9c07b39..0000000
--- a/abs/core/shadow/lastlog.tmpfiles
+++ /dev/null
@@ -1 +0,0 @@
-f /var/log/lastlog 0644 root root
diff --git a/abs/core/shadow/login.defs b/abs/core/shadow/login.defs
index 5913671..a0afbc1 100644
--- a/abs/core/shadow/login.defs
+++ b/abs/core/shadow/login.defs
@@ -81,8 +81,8 @@ HUSHLOGIN_FILE .hushlogin
# *REQUIRED* The default PATH settings, for superuser and normal users.
#
# (they are minimal, add the rest in the shell startup files)
-ENV_SUPATH PATH=/usr/bin
-ENV_PATH PATH=/usr/bin
+ENV_SUPATH PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
+ENV_PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/bin
#
# Terminal permissions
@@ -201,3 +201,8 @@ USERGROUPS_ENAB yes
# file.
#
MOTD_FILE
+
+#
+# Hash shadow passwords with SHA512.
+#
+ENCRYPT_METHOD SHA512
diff --git a/abs/core/shadow/shadow-strncpy-usage.patch b/abs/core/shadow/shadow-strncpy-usage.patch
deleted file mode 100644
index 5aba8fa..0000000
--- a/abs/core/shadow/shadow-strncpy-usage.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff -u shadow-4.1.5/src/usermod.c.orig shadow-4.1.5/src/usermod.c
---- shadow-4.1.5/src/usermod.c.orig 2012-02-13 08:19:43.792146449 -0500
-+++ shadow-4.1.5/src/usermod.c 2012-02-13 08:21:19.375114500 -0500
-@@ -182,7 +182,7 @@
- struct tm *tp;
-
- if (date < 0) {
-- strncpy (buf, "never", maxsize);
-+ strncpy (buf, "never", maxsize - 1);
- } else {
- time_t t = (time_t) date;
- tp = gmtime (&t);
-diff -u shadow-4.1.5/src/login.c.orig shadow-4.1.5/src/login.c
---- shadow-4.1.5/src/login.c.orig 2012-02-13 08:19:50.951994454 -0500
-+++ shadow-4.1.5/src/login.c 2012-02-13 08:21:04.490430937 -0500
-@@ -752,7 +752,8 @@
- _("%s login: "), hostn);
- } else {
- strncpy (loginprompt, _("login: "),
-- sizeof (loginprompt));
-+ sizeof (loginprompt) - 1);
-+ loginprompt[sizeof (loginprompt) - 1] = '\0';
- }
-
- retcode = pam_set_item (pamh, PAM_USER_PROMPT, loginprompt);
diff --git a/abs/core/shadow/shadow.cron.daily b/abs/core/shadow/shadow.cron.daily
deleted file mode 100755
index 1373ecd..0000000
--- a/abs/core/shadow/shadow.cron.daily
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-# Verify integrity of password and group files
-/usr/bin/pwck -r
-/usr/bin/grpck -r
-
diff --git a/abs/core/shadow/shadow.install b/abs/core/shadow/shadow.install
index 14384c3..83d9ab7 100644
--- a/abs/core/shadow/shadow.install
+++ b/abs/core/shadow/shadow.install
@@ -1,9 +1,22 @@
+setcaps() {
+ _setcap() {
+ if filecap "$1" "$2"; then
+ chmod -s "$1"
+ fi
+ }
+
+ # shadow ships these as setuid, but if we can apply file caps, use those instead.
+ # 'filecap' insists on absolute paths
+ _setcap /usr/bin/newuidmap setuid
+ _setcap /usr/bin/newgidmap setgid
+}
+
+post_install() {
+ setcaps
+}
+
post_upgrade() {
- grpck -r >/dev/null 2>&1
- if [ $? -eq 2 ]; then
- printf '%s\n' \
- "==> Warning: /etc/group or /etc/gshadow are inconsistent." \
- " Run 'grpck' to correct this."
- fi
- return 0
+ setcaps
}
+
+# vim:set ts=2 sw=2 et:
diff --git a/abs/core/shadow/shadow.service b/abs/core/shadow/shadow.service
new file mode 100644
index 0000000..39025d9
--- /dev/null
+++ b/abs/core/shadow/shadow.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Verify integrity of password and group files
+After=systemd-sysusers.service
+
+[Service]
+Type=simple
+# Always run both checks, but fail the service if either fails
+ExecStart=/bin/sh -c '/usr/bin/pwck -r || r=1; /usr/bin/grpck -r && exit $r'
+Nice=19
+IOSchedulingClass=best-effort
+IOSchedulingPriority=7
diff --git a/abs/core/shadow/shadow.timer b/abs/core/shadow/shadow.timer
new file mode 100644
index 0000000..9cc6baa
--- /dev/null
+++ b/abs/core/shadow/shadow.timer
@@ -0,0 +1,7 @@
+[Unit]
+Description=Daily verification of password and group files
+
+[Timer]
+OnCalendar=daily
+AccuracySec=12h
+Persistent=true
diff --git a/abs/core/shadow/useradd.defaults b/abs/core/shadow/useradd.defaults
index b800b17..e07fe27 100644
--- a/abs/core/shadow/useradd.defaults
+++ b/abs/core/shadow/useradd.defaults
@@ -1,6 +1,6 @@
# useradd defaults file for ArchLinux
# original changes by TomK
-GROUP=100
+GROUP=users
HOME=/home
INACTIVE=-1
EXPIRE=
diff --git a/abs/core/shadow/xstrdup.patch b/abs/core/shadow/xstrdup.patch
deleted file mode 100644
index bce4342..0000000
--- a/abs/core/shadow/xstrdup.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- shadow-4.1.2.1/libmisc/xmalloc.c 2008-08-30 21:55:44.000000000 -0500
-+++ shadow-4.1.2.1/libmisc/xmalloc.c.new 2008-08-30 21:55:36.000000000 -0500
-@@ -61,5 +61,6 @@
-
- char *xstrdup (const char *str)
- {
-+ if(str == NULL) return NULL;
- return strcpy (xmalloc (strlen (str) + 1), str);
- }
diff --git a/abs/core/systemd/0001-Use-Arch-Linux-device-access-groups.patch b/abs/core/systemd/0001-Use-Arch-Linux-device-access-groups.patch
new file mode 100644
index 0000000..ccc9ad2
--- /dev/null
+++ b/abs/core/systemd/0001-Use-Arch-Linux-device-access-groups.patch
@@ -0,0 +1,67 @@
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Tue, 6 Mar 2018 23:39:47 +0100
+Subject: [PATCH] Use Arch Linux' device access groups
+
+ cdrom → optical
+ dialout → uucp
+ tape → storage
+---
+ rules.d/50-udev-default.rules.in | 14 +++++++-------
+ sysusers.d/basic.conf.in | 6 +++---
+ 2 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/rules.d/50-udev-default.rules.in b/rules.d/50-udev-default.rules.in
+index 191f56f42..f81c4d0fc 100644
+--- a/rules.d/50-udev-default.rules.in
++++ b/rules.d/50-udev-default.rules.in
+@@ -22,7 +22,7 @@ SUBSYSTEM=="tty", KERNEL=="sclp_line[0-9]*", GROUP="tty", MODE="0620"
+ SUBSYSTEM=="tty", KERNEL=="ttysclp[0-9]*", GROUP="tty", MODE="0620"
+ SUBSYSTEM=="tty", KERNEL=="3270/tty[0-9]*", GROUP="tty", MODE="0620"
+ SUBSYSTEM=="vc", KERNEL=="vcs*|vcsa*", GROUP="tty"
+-KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="dialout"
++KERNEL=="tty[A-Z]*[0-9]|ttymxc[0-9]*|pppox[0-9]*|ircomm[0-9]*|noz[0-9]*|rfcomm[0-9]*", GROUP="uucp"
+
+ SUBSYSTEM=="mem", KERNEL=="mem|kmem|port", GROUP="kmem", MODE="0640"
+
+@@ -57,13 +57,13 @@ KERNEL=="irlpt[0-9]*", GROUP="lp"
+ SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ENV{ID_USB_INTERFACES}=="*:0701??:*", GROUP="lp"
+
+ SUBSYSTEM=="block", GROUP="disk"
+-SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="cdrom"
+-SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="cdrom"
+-KERNEL=="sch[0-9]*", GROUP="cdrom"
+-KERNEL=="pktcdvd[0-9]*", GROUP="cdrom"
+-KERNEL=="pktcdvd", GROUP="cdrom"
++SUBSYSTEM=="block", KERNEL=="sr[0-9]*", GROUP="optical"
++SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="4|5", GROUP="optical"
++KERNEL=="sch[0-9]*", GROUP="optical"
++KERNEL=="pktcdvd[0-9]*", GROUP="optical"
++KERNEL=="pktcdvd", GROUP="optical"
+
+-SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="tape"
++SUBSYSTEM=="scsi_generic|scsi_tape", SUBSYSTEMS=="scsi", ATTRS{type}=="1|8", GROUP="storage"
+ SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="0", GROUP="disk"
+ KERNEL=="qft[0-9]*|nqft[0-9]*|zqft[0-9]*|nzqft[0-9]*|rawqft[0-9]*|nrawqft[0-9]*", GROUP="disk"
+ KERNEL=="loop-control", GROUP="disk", OPTIONS+="static_node=loop-control"
+diff --git a/sysusers.d/basic.conf.in b/sysusers.d/basic.conf.in
+index 8e358c02d..33e513a36 100644
+--- a/sysusers.d/basic.conf.in
++++ b/sysusers.d/basic.conf.in
+@@ -24,14 +24,14 @@ g utmp - - -
+
+ # Hardware access groups
+ g audio - - -
+-g cdrom - - -
+-g dialout - - -
+ g disk - - -
+ g input - - -
+ g kvm - - -
+ g lp - - -
++g optical - - -
+ g render - - -
+-g tape - - -
++g storage - - -
++g uucp - - -
+ g video - - -
+
+ # Default group for normal users
diff --git a/abs/core/systemd/20-systemd-sysusers.hook b/abs/core/systemd/20-systemd-sysusers.hook
new file mode 100644
index 0000000..edc7195
--- /dev/null
+++ b/abs/core/systemd/20-systemd-sysusers.hook
@@ -0,0 +1,10 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Target = usr/lib/sysusers.d/*.conf
+
+[Action]
+Description = Creating system user accounts...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook sysusers
diff --git a/abs/core/systemd/30-systemd-binfmt.hook b/abs/core/systemd/30-systemd-binfmt.hook
new file mode 100644
index 0000000..19f3bcc
--- /dev/null
+++ b/abs/core/systemd/30-systemd-binfmt.hook
@@ -0,0 +1,10 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Target = usr/lib/binfmt.d/*.conf
+
+[Action]
+Description = Registering binary formats...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook binfmt
diff --git a/abs/core/systemd/30-systemd-catalog.hook b/abs/core/systemd/30-systemd-catalog.hook
new file mode 100644
index 0000000..6e717b9
--- /dev/null
+++ b/abs/core/systemd/30-systemd-catalog.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib/systemd/catalog/*
+
+[Action]
+Description = Updating journal message catalog...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook catalog
diff --git a/abs/core/systemd/30-systemd-daemon-reload.hook b/abs/core/systemd/30-systemd-daemon-reload.hook
new file mode 100644
index 0000000..dff95e4
--- /dev/null
+++ b/abs/core/systemd/30-systemd-daemon-reload.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib/systemd/system/*
+
+[Action]
+Description = Reloading system manager configuration...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook daemon-reload
diff --git a/abs/core/systemd/systemd-hwdb.hook b/abs/core/systemd/30-systemd-hwdb.hook
index d7c9877..1d85e29 100644
--- a/abs/core/systemd/systemd-hwdb.hook
+++ b/abs/core/systemd/30-systemd-hwdb.hook
@@ -1,5 +1,5 @@
[Trigger]
-Type = File
+Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
@@ -8,4 +8,4 @@ Target = usr/lib/udev/hwdb.d/*
[Action]
Description = Updating udev hardware database...
When = PostTransaction
-Exec = /usr/bin/systemd-hwdb --usr update
+Exec = /usr/share/libalpm/scripts/systemd-hook hwdb
diff --git a/abs/core/systemd/30-systemd-sysctl.hook b/abs/core/systemd/30-systemd-sysctl.hook
new file mode 100644
index 0000000..e2354c0
--- /dev/null
+++ b/abs/core/systemd/30-systemd-sysctl.hook
@@ -0,0 +1,10 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Target = usr/lib/sysctl.d/*.conf
+
+[Action]
+Description = Applying kernel sysctl settings...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook sysctl
diff --git a/abs/core/systemd/systemd-tmpfiles.hook b/abs/core/systemd/30-systemd-tmpfiles.hook
index 18cdd91..b07db6a 100644
--- a/abs/core/systemd/systemd-tmpfiles.hook
+++ b/abs/core/systemd/30-systemd-tmpfiles.hook
@@ -1,5 +1,5 @@
[Trigger]
-Type = File
+Type = Path
Operation = Install
Operation = Upgrade
Target = usr/lib/tmpfiles.d/*.conf
@@ -7,5 +7,4 @@ Target = usr/lib/tmpfiles.d/*.conf
[Action]
Description = Creating temporary files...
When = PostTransaction
-Exec = /bin/sh -c 'while read -r f; do /usr/bin/systemd-tmpfiles --create "$(basename "$f")"; done'
-NeedsTargets
+Exec = /usr/share/libalpm/scripts/systemd-hook tmpfiles
diff --git a/abs/core/systemd/30-systemd-udev-reload.hook b/abs/core/systemd/30-systemd-udev-reload.hook
new file mode 100644
index 0000000..7676cca
--- /dev/null
+++ b/abs/core/systemd/30-systemd-udev-reload.hook
@@ -0,0 +1,11 @@
+[Trigger]
+Type = Path
+Operation = Install
+Operation = Upgrade
+Operation = Remove
+Target = usr/lib/udev/rules.d/*
+
+[Action]
+Description = Reloading device manager configuration...
+When = PostTransaction
+Exec = /usr/share/libalpm/scripts/systemd-hook udev-reload
diff --git a/abs/core/systemd/systemd-update.hook b/abs/core/systemd/30-systemd-update.hook
index 3697fbd..f95d9dc 100644
--- a/abs/core/systemd/systemd-update.hook
+++ b/abs/core/systemd/30-systemd-update.hook
@@ -1,5 +1,5 @@
[Trigger]
-Type = File
+Type = Path
Operation = Install
Operation = Upgrade
Operation = Remove
@@ -8,4 +8,4 @@ Target = usr/
[Action]
Description = Arming ConditionNeedsUpdate...
When = PostTransaction
-Exec = /usr/bin/touch -c /usr
+Exec = /usr/share/libalpm/scripts/systemd-hook update
diff --git a/abs/core/systemd/PKGBUILD b/abs/core/systemd/PKGBUILD
index 93f942b..5f551df 100644
--- a/abs/core/systemd/PKGBUILD
+++ b/abs/core/systemd/PKGBUILD
@@ -1,28 +1,26 @@
-# $Id$
# Maintainer: Christian Hesse <mail@eworm.de>
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Maintainer: Tom Gundersen <teg@jklm.no>
pkgbase=systemd
-pkgname=('systemd' 'libsystemd' 'systemd-sysvcompat')
-# latest commit on stable branch
-_commit='738ab7502afb7663d9aacdd73e79025aa7cd0a9b'
-# Bump this to latest major release for signed tag verification,
-# the commit count is handled by pkgver() function.
-pkgver=238.0
+pkgname=('systemd' 'systemd-libs' 'systemd-resolvconf' 'systemd-sysvcompat')
+_tag='27d60e13ed5db2194cac14ad4cc86ad06d753805' # git rev-parse v${pkgver}
+pkgver=246.6
pkgrel=1
arch=('x86_64')
-url="https://www.github.com/systemd/systemd"
+url='https://www.github.com/systemd/systemd'
makedepends=('acl' 'cryptsetup' 'docbook-xsl' 'gperf' 'lz4' 'xz' 'pam' 'libelf'
- 'intltool' 'iptables' 'kmod' 'libcap' 'libidn' 'libgcrypt'
- 'libmicrohttpd' 'libxslt' 'util-linux' 'linux-api-headers'
+ 'intltool' 'iptables' 'kmod' 'libcap' 'libidn2' 'libgcrypt'
+ 'libmicrohttpd' 'libxcrypt' 'libxslt' 'util-linux' 'linux-api-headers'
'python-lxml' 'quota-tools' 'shadow' 'gnu-efi-libs' 'git'
- 'meson' 'libseccomp' 'pcre2')
+ 'meson' 'libseccomp' 'pcre2' 'audit' 'kexec-tools' 'libxkbcommon'
+ 'bash-completion' 'p11-kit' 'systemd')
options=('strip')
validpgpkeys=('63CDA1E5D3FC22B998D20DD6327F26951A015CC4' # Lennart Poettering <lennart@poettering.net>
'5C251B5FC54EB2F80F407AAAC54CA336CFEB557E') # Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
-source=('git://github.com/systemd/systemd-stable.git'
- 'git://github.com/systemd/systemd.git' # pull in for tags, backports & reverts
+source=("git+https://github.com/systemd/systemd-stable#tag=${_tag}?signed"
+ "git+https://github.com/systemd/systemd#tag=v${pkgver%.*}?signed"
+ '0001-Use-Arch-Linux-device-access-groups.patch'
'initcpio-hook-udev'
'initcpio-install-systemd'
'initcpio-install-udev'
@@ -30,23 +28,36 @@ source=('git://github.com/systemd/systemd-stable.git'
'loader.conf'
'splash-arch.bmp'
'systemd-user.pam'
- 'systemd-hwdb.hook'
- 'systemd-sysusers.hook'
- 'systemd-tmpfiles.hook'
- 'systemd-update.hook')
+ 'systemd-hook'
+ '20-systemd-sysusers.hook'
+ '30-systemd-binfmt.hook'
+ '30-systemd-catalog.hook'
+ '30-systemd-daemon-reload.hook'
+ '30-systemd-hwdb.hook'
+ '30-systemd-sysctl.hook'
+ '30-systemd-tmpfiles.hook'
+ '30-systemd-udev-reload.hook'
+ '30-systemd-update.hook')
sha512sums=('SKIP'
'SKIP'
+ 'e38c7c422c82953f9c2476a5ab8009d614cbec839e4088bff5db7698ddc84e3d8ed64f32ed323f57b1913c5c9703546f794996cb415ed7cdda930b627962a3c4'
'f0d933e8c6064ed830dec54049b0a01e27be87203208f6ae982f10fb4eddc7258cb2919d594cbfb9a33e74c3510cfd682f3416ba8e804387ab87d1a217eb4b73'
- '86d7cacd7536b1069c82bbbb08de7ec81e7f0f18a19fc2b06fabe90db4700623eb3540b75121080d325672d92e26912632ae4f93fd3c0bb48eb3e5eedd88352c'
+ 'f1f0bc599eb73b96f81e5413a55617ab82978d057dc0cabf226d225bb836a967fe13b84c4f24f64c074b6568026ab81d457512ff20a5918892c47a3a603eaa6e'
'a25b28af2e8c516c3a2eec4e64b8c7f70c21f974af4a955a4a9d45fd3e3ff0d2a98b4419fe425d47152d5acae77d64e69d8d014a7209524b75a81b0edb10bf3a'
'61032d29241b74a0f28446f8cf1be0e8ec46d0847a61dadb2a4f096e8686d5f57fe5c72bcf386003f6520bc4b5856c32d63bf3efe7eb0bc0deefc9f68159e648'
'c416e2121df83067376bcaacb58c05b01990f4614ad9de657d74b6da3efa441af251d13bf21e3f0f71ddcb4c9ea658b81da3d915667dc5c309c87ec32a1cb5a5'
'5a1d78b5170da5abe3d18fdf9f2c3a4d78f15ba7d1ee9ec2708c4c9c2e28973469bc19386f70b3cf32ffafbe4fcc4303e5ebbd6d5187a1df3314ae0965b25e75'
'b90c99d768dc2a4f020ba854edf45ccf1b86a09d2f66e475de21fe589ff7e32c33ef4aa0876d7f1864491488fd7edb2682fc0d68e83a6d4890a0778dc2d6fe19'
- '2c1f765e7cefc50f07ad994634ea25d9396e6b9c0de46e58f18377e642a471517a0dbf5eb547070a38c6ecf84ec8e030f650a6cee010871cd7a466a32534adda'
- '7d49a948f5d58f662a7d81544254528257ef8c0a08ca560834f09a7cdf566161d2df4d419ebbc2983196cd45c9eeefcd0c4c2c554376916dce42e895262afc30'
- 'e521d92674597f82d589b83c378c50c92c881fdb84c436c8b26f7a3436a4c91a20585824a5563933f6868a3023b9ee2fdc7bd58e04bb47c25a0a36e296308fd3'
- '10190fba9f39a8f4b620a0829e0ba8ed63bb4dbeca712966011ee7807880d01ab2abff1a80baafeb6674db70526a473fe585db8190e864f318fc4d6068552618')
+ '869dab2b1837c964add4019bb402e24e52dbb7f009850ca69fcc5deddd923eeb98eb8ee38601f6e31531f30322472fe7df09af84df27f0467708406c55885323'
+ '299dcc7094ce53474521356647bdd2fb069731c08d14a872a425412fcd72da840727a23664b12d95465bf313e8e8297da31259508d1c62cc2dcea596160e21c5'
+ '0d6bc3d928cfafe4e4e0bc04dbb95c5d2b078573e4f9e0576e7f53a8fab08a7077202f575d74a3960248c4904b5f7f0661bf17dbe163c524ab51dd30e3cb80f7'
+ '2b50b25e8680878f7974fa9d519df7e141ca11c4bfe84a92a5d01bb193f034b1726ea05b3c0030bad1fbda8dbb78bf1dc7b73859053581b55ba813c39b27d9dc'
+ '63e55b3acd14bc54320b6f2310b43398651ad4e262d4f4a0135e05d34a993e56ed673cc46e57f15b418371df5c4cef6f54486db96325e4abb1d33fb1a3946254'
+ 'a1661ab946c6cd7d3c6251a2a9fd68afe231db58ce33c92c42594aedb5629be8f299ba08a34713327b373a3badd1554a150343d8d3e5dfb102999c281bd49154'
+ '9426829605bbb9e65002437e02ed54e35c20fdf94706770a3dc1049da634147906d6b98bf7f5e7516c84068396a12c6feaf72f92b51bdf19715e0f64620319de'
+ 'da7a97d5d3701c70dd5388b0440da39006ee4991ce174777931fea2aa8c90846a622b2b911f02ae4d5fffb92680d9a7e211c308f0f99c04896278e2ee0d9a4dc'
+ 'a50d202a9c2e91a4450b45c227b295e1840cc99a5e545715d69c8af789ea3dd95a03a30f050d52855cabdc9183d4688c1b534eaa755ebe93616f9d192a855ee3'
+ '825b9dd0167c072ba62cabe0677e7cd20f2b4b850328022540f122689d8b25315005fa98ce867cf6e7460b2b26df16b88bb3b5c9ebf721746dce4e2271af7b97')
_backports=(
)
@@ -54,215 +65,205 @@ _backports=(
_reverts=(
)
-_validate_tag() {
- local success fingerprint trusted status tag=v${pkgver%.*}
-
- parse_gpg_statusfile /dev/stdin < <(git verify-tag --raw "$tag" 2>&1)
-
- if (( ! success )); then
- error 'failed to validate tag %s\n' "$tag"
- return 1
- fi
-
- if ! in_array "$fingerprint" "${validpgpkeys[@]}" && (( ! trusted )); then
- error 'unknown or untrusted public key: %s\n' "$fingerprint"
- return 1
- fi
-
- case $status in
- 'expired')
- warning 'the signature has expired'
- ;;
- 'expiredkey')
- warning 'the key has expired'
- ;;
- esac
-
- return 0
-}
-
-pkgver() {
- local version count
-
- cd "$pkgbase-stable"
-
- version="$(git describe --abbrev=0 --tags)"
- count="$(git rev-list --count ${version}..)"
- printf '%s.%s' "${version#v}" "${count}"
-}
-
prepare() {
cd "$pkgbase-stable"
- git remote add upstream ../systemd/
- git fetch --all
-
- git checkout "${_commit}"
+ # add upstream repository for cherry-picking
+ git remote add -f upstream ../systemd
- _validate_tag || return
-
- local _commit
- for _commit in "${_backports[@]}"; do
- git cherry-pick -n "$_commit"
+ local _c
+ for _c in "${_backports[@]}"; do
+ git log --oneline -1 "${_c}"
+ git cherry-pick -n "${_c}"
done
- for _commit in "${_reverts[@]}"; do
- git revert -n "$_commit"
+ for _c in "${_reverts[@]}"; do
+ git log --oneline -1 "${_c}"
+ git revert -n "${_c}"
done
+
+ # Replace cdrom/dialout/tape groups with optical/uucp/storage
+ patch -Np1 -i ../0001-Use-Arch-Linux-device-access-groups.patch
}
build() {
- local timeservers=({0..3}.arch.pool.ntp.org)
+ local _timeservers=({0..3}.arch.pool.ntp.org)
+ local _nameservers=(
+ # We use these public name services, ordered by their
+ # privacy policy (hopefully):
+ # * Cloudflare (https://1.1.1.1/)
+ # * Quad9 without filtering (https://www.quad9.net/)
+ # * Google (https://developers.google.com/speed/public-dns/)
+ 1.1.1.1
+ 9.9.9.10
+ 8.8.8.8
+ 2606:4700:4700::1111
+ 2620:fe::10
+ 2001:4860:4860::8888
+ )
+
+ local _meson_options=(
+ -Dversion-tag="${pkgver}-${pkgrel}-arch"
- local meson_options=(
- -Daudit=false
- -Dgnuefi=true
+ -Dgnu-efi=true
-Dima=false
+ -Dlibidn2=true
-Dlz4=true
+ -Dman=true
+ # We disable DNSSEC by default, it still causes trouble:
+ # https://github.com/systemd/systemd/issues/10579
+
-Ddbuspolicydir=/usr/share/dbus-1/system.d
-Ddefault-dnssec=no
- # TODO(dreisner): consider changing this to unified
-Ddefault-hierarchy=hybrid
-Ddefault-kill-user-processes=false
+ -Ddefault-locale=C
+ -Ddns-over-tls=openssl
-Dfallback-hostname='archlinux'
- -Dntp-servers="${timeservers[*]}"
+ -Dnologin-path=/usr/bin/nologin
+ -Dntp-servers="${_timeservers[*]}"
+ -Ddns-servers="${_nameservers[*]}"
-Drpmmacrosdir=no
-Dsysvinit-path=
-Dsysvrcnd-path=
)
- arch-meson "$pkgbase-stable" build "${meson_options[@]}"
+ arch-meson "$pkgbase-stable" build "${_meson_options[@]}"
ninja -C build
}
+check() {
+ meson test -C build
+}
+
package_systemd() {
- pkgdesc="system and service manager"
+ pkgdesc='system and service manager'
license=('GPL2' 'LGPL2.1')
- groups=('base-devel')
- depends=('acl' 'bash' 'cryptsetup' 'dbus' 'iptables' 'kbd' 'kmod' 'hwids' 'libcap'
- 'libgcrypt' 'libsystemd' 'libidn' 'lz4' 'pam' 'libelf' 'libseccomp'
- 'util-linux' 'xz' 'pcre2')
+ depends=('acl' 'libacl.so' 'bash' 'cryptsetup' 'libcryptsetup.so' 'dbus'
+ 'iptables' 'kbd' 'kmod' 'libkmod.so' 'hwids' 'libcap' 'libcap.so'
+ 'libgcrypt' 'libxcrypt' 'libcrypt.so' 'systemd-libs' 'libidn2' 'libidn2.so' 'lz4' 'pam'
+ 'libelf' 'libseccomp' 'libseccomp.so' 'util-linux' 'libblkid.so'
+ 'libmount.so' 'xz' 'pcre2' 'audit' 'libaudit.so' 'libp11-kit'
+ 'libp11-kit.so' 'openssl')
provides=('nss-myhostname' "systemd-tools=$pkgver" "udev=$pkgver")
replaces=('nss-myhostname' 'systemd-tools' 'udev')
conflicts=('nss-myhostname' 'systemd-tools' 'udev')
optdepends=('libmicrohttpd: remote journald capabilities'
'quota-tools: kernel-level quota management'
'systemd-sysvcompat: symlink package to provide sysvinit binaries'
- 'polkit: allow administration as unprivileged user')
+ 'polkit: allow administration as unprivileged user'
+ 'curl: machinectl pull-tar and pull-raw')
backup=(etc/pam.d/systemd-user
etc/systemd/coredump.conf
etc/systemd/journald.conf
etc/systemd/journal-remote.conf
etc/systemd/journal-upload.conf
etc/systemd/logind.conf
+ etc/systemd/networkd.conf
+ etc/systemd/resolved.conf
+ etc/systemd/sleep.conf
etc/systemd/system.conf
etc/systemd/timesyncd.conf
- etc/systemd/resolved.conf
etc/systemd/user.conf
etc/udev/udev.conf)
- install="systemd.install"
+ install=systemd.install
- DESTDIR="$pkgdir" ninja -C build install
+ DESTDIR="$pkgdir" meson install -C build
- # don't write units to /etc by default. some of these will be re-enabled on
- # post_install.
- rm -r "$pkgdir/etc/systemd/system/"*.wants
- rm -r "$pkgdir/etc/systemd/system/"*.service
+ # we'll create this on installation
+ #rmdir "$pkgdir"/var/log/journal/remote
- # add back tmpfiles.d/legacy.conf
- install -m644 "$pkgbase-stable/tmpfiles.d/legacy.conf" "$pkgdir/usr/lib/tmpfiles.d"
+ # runtime libraries shipped with systemd-libs
+ install -d -m0755 systemd-libs
+ mv "$pkgdir"/usr/lib/lib{nss,systemd,udev}*.so* systemd-libs
- # Replace dialout/tape/cdrom group in rules with uucp/storage/optical group
- sed -i 's#GROUP="dialout"#GROUP="uucp"#g;
- s#GROUP="tape"#GROUP="storage"#g;
- s#GROUP="cdrom"#GROUP="optical"#g' "$pkgdir"/usr/lib/udev/rules.d/*.rules
- sed -i 's/dialout/uucp/g;
- s/tape/storage/g;
- s/cdrom/optical/g' "$pkgdir"/usr/lib/sysusers.d/basic.conf
+ # manpages shipped with systemd-sysvcompat
+ rm "$pkgdir"/usr/share/man/man8/{halt,poweroff,reboot,shutdown}.8
- # add mkinitcpio hooks
- install -Dm644 "$srcdir/initcpio-install-systemd" "$pkgdir/usr/lib/initcpio/install/systemd"
- install -Dm644 "$srcdir/initcpio-install-udev" "$pkgdir/usr/lib/initcpio/install/udev"
- install -Dm644 "$srcdir/initcpio-hook-udev" "$pkgdir/usr/lib/initcpio/hooks/udev"
+ # executable (symlinks) shipped with systemd-sysvcompat
+ rm "$pkgdir"/usr/bin/{halt,init,poweroff,reboot,shutdown}
- # ensure proper permissions for /var/log/journal
- # The permissions are stored with named group by tar, so this works with
- # users and groups populated by systemd-sysusers. This is only to prevent a
- # warning from pacman as permissions are set by systemd-tmpfiles anyway.
- chown root:systemd-journal "$pkgdir/var/log/journal"
- chmod 2755 "$pkgdir/var/log/journal"
+ # files shipped with systemd-resolvconf
+ rm "$pkgdir"/usr/{bin/resolvconf,share/man/man1/resolvconf.1}
- # match directory owner/group and mode from extra/polkit
- chown root:102 "$pkgdir"/usr/share/polkit-1/rules.d
- chmod 0750 "$pkgdir"/usr/share/polkit-1/rules.d
+ # avoid a potential conflict with [core]/filesystem
+ rm "$pkgdir"/usr/share/factory/etc/{issue,nsswitch.conf}
+ sed -i -e '/^C \/etc\/nsswitch\.conf/d' \
+ -e '/^C \/etc\/issue/d' "$pkgdir"/usr/lib/tmpfiles.d/etc.conf
- # we'll create this on installation
- # rmdir "$pkgdir/var/log/journal/remote"
+ # add back tmpfiles.d/legacy.conf, normally omitted without sysv-compat
+ install -m0644 $pkgbase-stable/tmpfiles.d/legacy.conf "$pkgdir"/usr/lib/tmpfiles.d
# ship default policy to leave services disabled
echo 'disable *' >"$pkgdir"/usr/lib/systemd/system-preset/99-default.preset
- # manpages shipped with systemd-sysvcompat
- rm "$pkgdir"/usr/share/man/man8/{halt,poweroff,reboot,runlevel,shutdown,telinit}.8
-
- # executable (symlinks) shipped with systemd-sysvcompat
- rm "$pkgdir"/usr/bin/{halt,init,poweroff,reboot,runlevel,shutdown,telinit}
+ # add mkinitcpio hooks
+ install -D -m0644 initcpio-install-systemd "$pkgdir"/usr/lib/initcpio/install/systemd
+ install -D -m0644 initcpio-install-udev "$pkgdir"/usr/lib/initcpio/install/udev
+ install -D -m0644 initcpio-hook-udev "$pkgdir"/usr/lib/initcpio/hooks/udev
- # runtime libraries shipped with libsystemd
- rm "$pkgdir"/usr/lib/lib{nss,systemd,udev}*.so*
+ # The group 'systemd-journal' is allocated dynamically and may have varying
+ # gid on different systems. Let's install with gid 0 (root), systemd-tmpfiles
+ # will fix the permissions for us. (see /usr/lib/tmpfiles.d/systemd.conf)
+ install -d -o root -g root -m 2755 "$pkgdir"/var/log/journal
- # allow core/filesystem to pristine nsswitch.conf
- rm "$pkgdir/usr/share/factory/etc/nsswitch.conf"
- sed -i '/^C \/etc\/nsswitch\.conf/d' "$pkgdir/usr/lib/tmpfiles.d/etc.conf"
+ # match directory owner/group and mode from [extra]/polkit
+ install -d -o root -g 102 -m 0750 "$pkgdir"/usr/share/polkit-1/rules.d
# add example bootctl configuration
- install -Dm644 "$srcdir/arch.conf" "$pkgdir"/usr/share/systemd/bootctl/arch.conf
- install -Dm644 "$srcdir/loader.conf" "$pkgdir"/usr/share/systemd/bootctl/loader.conf
- install -Dm644 "$srcdir/splash-arch.bmp" "$pkgdir"/usr/share/systemd/bootctl/splash-arch.bmp
+ install -D -m0644 arch.conf "$pkgdir"/usr/share/systemd/bootctl/arch.conf
+ install -D -m0644 loader.conf "$pkgdir"/usr/share/systemd/bootctl/loader.conf
+ install -D -m0644 splash-arch.bmp "$pkgdir"/usr/share/systemd/bootctl/splash-arch.bmp
- install -Dm644 "$srcdir/systemd-hwdb.hook" "$pkgdir/usr/share/libalpm/hooks/systemd-hwdb.hook"
- install -Dm644 "$srcdir/systemd-sysusers.hook" "$pkgdir/usr/share/libalpm/hooks/systemd-sysusers.hook"
- install -Dm644 "$srcdir/systemd-tmpfiles.hook" "$pkgdir/usr/share/libalpm/hooks/systemd-tmpfiles.hook"
- install -Dm644 "$srcdir/systemd-update.hook" "$pkgdir/usr/share/libalpm/hooks/systemd-update.hook"
+ # pacman hooks
+ install -D -m0755 systemd-hook "$pkgdir"/usr/share/libalpm/scripts/systemd-hook
+ install -D -m0644 -t "$pkgdir"/usr/share/libalpm/hooks *.hook
# overwrite the systemd-user PAM configuration with our own
- install -Dm644 systemd-user.pam "$pkgdir/etc/pam.d/systemd-user"
+ install -D -m0644 systemd-user.pam "$pkgdir"/etc/pam.d/systemd-user
}
-package_libsystemd() {
- pkgdesc="systemd client libraries"
- depends=('glibc' 'libcap' 'libgcrypt' 'lz4' 'xz')
- license=('GPL2')
- provides=('libsystemd.so' 'libudev.so')
+package_systemd-libs() {
+ pkgdesc='systemd client libraries'
+ depends=('glibc' 'libcap' 'libgcrypt' 'lz4' 'xz' 'zstd')
+ license=('LGPL2.1')
+ provides=('libsystemd' 'libsystemd.so' 'libudev.so')
+ conflicts=('libsystemd')
+ replaces=('libsystemd')
- # meson does not support installing subsets of files, no?
- # So do a full install to temporary directory, then install what we need.
- DESTDIR="$srcdir"/full-install ninja -C build install
+ install -d -m0755 "$pkgdir"/usr
+ mv systemd-libs "$pkgdir"/usr/lib
+}
- install -dm755 "$pkgdir"/usr/lib/
- cp --archive "$srcdir"/full-install/usr/lib/lib{nss_*,systemd,udev}.so* "$pkgdir"/usr/lib/
+package_systemd-resolvconf() {
+ pkgdesc='systemd resolvconf replacement (for use with systemd-resolved)'
+ license=('LGPL2.1')
+ depends=('systemd')
+ provides=('openresolv' 'resolvconf')
+ conflicts=('openresolv')
+
+ install -d -m0755 "$pkgdir"/usr/bin
+ ln -s resolvectl "$pkgdir"/usr/bin/resolvconf
+
+ install -d -m0755 "$pkgdir"/usr/share/man/man1
+ ln -s resolvectl.1.gz "$pkgdir"/usr/share/man/man1/resolvconf.1.gz
}
package_systemd-sysvcompat() {
- pkgdesc="sysvinit compat for systemd"
+ pkgdesc='sysvinit compat for systemd'
license=('GPL2')
- groups=('base')
conflicts=('sysvinit')
depends=('systemd')
- install -dm755 "$pkgdir"/usr/share/man/man8
- cp -d --no-preserve=ownership,timestamp \
- build/man/{telinit,halt,reboot,poweroff,runlevel,shutdown}.8 \
- "$pkgdir"/usr/share/man/man8
-
- install -dm755 "$pkgdir/usr/bin"
- # for tool in runlevel reboot shutdown poweroff halt telinit; do
- for tool in runlevel telinit; do
- ln -s 'systemctl' "$pkgdir/usr/bin/$tool"
- done
+ install -D -m0644 -t "$pkgdir"/usr/share/man/man8 \
+ build/man/{halt,poweroff,reboot,shutdown}.8
- ln -s '../lib/systemd/systemd' "$pkgdir/usr/bin/init"
+ install -d -m0755 "$pkgdir"/usr/bin
+ ln -s ../lib/systemd/systemd "$pkgdir"/usr/bin/init
+# for tool in halt poweroff reboot shutdown; do
+# ln -s systemctl "$pkgdir"/usr/bin/$tool
+# done
}
-# vim: ft=sh syn=sh et
+# vim:ft=sh syn=sh et sw=2:
diff --git a/abs/core/systemd/__changelog b/abs/core/systemd/__changelog
index 591fa91..b70327a 100644
--- a/abs/core/systemd/__changelog
+++ b/abs/core/systemd/__changelog
@@ -1,3 +1,5 @@
PKGBUILD: comment out rmdir "$pkgdir/var/log/journal/remote"
-PKGBUILD: Change for tool in runlevel reboot shutdown poweroff halt telinit; do
- to for tool in runlevel telinit; do
+PKGBUILD: comment out:
+ for tool in halt poweroff reboot shutdown; do
+ ln -s systemctl "$pkgdir"/usr/bin/$tool
+ done
diff --git a/abs/core/systemd/initcpio-install-systemd b/abs/core/systemd/initcpio-install-systemd
index 40a352c..9e23070 100644
--- a/abs/core/systemd/initcpio-install-systemd
+++ b/abs/core/systemd/initcpio-install-systemd
@@ -69,10 +69,13 @@ add_systemd_unit() {
map add_systemd_unit "${values[@]}"
;;
Exec*)
- # don't add binaries unless they are required
- if [[ ${values[0]:0:1} != '-' ]]; then
- add_binary "${values[0]}"
- fi
+ # do not add binaries unless they are required,
+ # strip special executable prefixes
+ case ${values[0]} in
+ -*) ;;
+ !!*) add_binary "${values[0]#!!}" ;;
+ *) add_binary "${values[0]#[@!:+]}" ;;
+ esac
;;
esac
@@ -110,8 +113,10 @@ build() {
add_binary /usr/bin/sulogin
map add_binary \
+ /usr/bin/journalctl \
/usr/bin/systemd-tmpfiles \
/usr/lib/systemd/systemd-hibernate-resume \
+ /usr/lib/systemd/systemd-shutdown \
/usr/lib/systemd/systemd-sulogin-shell \
/usr/lib/systemd/system-generators/systemd-fstab-generator \
/usr/lib/systemd/system-generators/systemd-gpt-auto-generator \
@@ -167,15 +172,9 @@ build() {
'group: files' \
'shadow: files'
- echo "root:x:0:0:root:/:/bin/sh" >"$BUILDROOT/etc/passwd"
- echo "root:x:0:root" >"$BUILDROOT/etc/group"
- echo "root::::::::" >"$BUILDROOT/etc/shadow"
-
- add_systemd_drop_in systemd-udevd.service resolve-names <<EOF
-[Service]
-ExecStart=
-ExecStart=/usr/lib/systemd/systemd-udevd --resolve-names=never
-EOF
+ echo "root:x:0:0:root:/root:/bin/sh" >"$BUILDROOT/etc/passwd"
+ echo 'root:*:::::::' >"$BUILDROOT/etc/shadow"
+ getent group root audio disk input kmem kvm lp optical render storage tty uucp video | awk -F: ' { print $1 ":x:" $3 ":" }' >"$BUILDROOT/etc/group"
add_dir "/etc/modules-load.d"
(
diff --git a/abs/core/systemd/systemd-hook b/abs/core/systemd/systemd-hook
new file mode 100644
index 0000000..6f2e899
--- /dev/null
+++ b/abs/core/systemd/systemd-hook
@@ -0,0 +1,37 @@
+#!/bin/sh -e
+
+systemd_live() {
+ if [ ! -d /run/systemd/system ]; then
+ echo >&2 " Skipped: Current root is not booted."
+ exit 0
+ fi
+}
+
+udevd_live() {
+ if [ ! -d /run/udev ]; then
+ echo >&2 " Skipped: Device manager is not running."
+ exit 0
+ fi
+}
+
+op="$1"; shift
+
+case "$op" in
+ catalog) /usr/bin/journalctl --update-catalog ;;
+ hwdb) /usr/bin/systemd-hwdb --usr update ;;
+ update) touch -c /usr ;;
+ sysusers) /usr/bin/systemd-sysusers ;;
+ tmpfiles) /usr/bin/systemd-tmpfiles --create ;;
+
+ daemon-reload) systemd_live; /usr/bin/systemctl daemon-reload ;;
+ udev-reload) udevd_live; /usr/bin/udevadm control --reload ;;
+ binfmt) systemd_live; /usr/lib/systemd/systemd-binfmt ;;
+ sysctl) systemd_live; /usr/lib/systemd/systemd-sysctl ;;
+
+ # For use by other packages
+ reload) systemd_live; /usr/bin/systemctl try-reload-or-restart "$@" ;;
+
+ *) echo >&2 " Invalid operation '$op'"; exit 1 ;;
+esac
+
+exit 0
diff --git a/abs/core/systemd/systemd-sysusers.hook b/abs/core/systemd/systemd-sysusers.hook
deleted file mode 100644
index 6b8affa..0000000
--- a/abs/core/systemd/systemd-sysusers.hook
+++ /dev/null
@@ -1,11 +0,0 @@
-[Trigger]
-Type = File
-Operation = Install
-Operation = Upgrade
-Target = usr/lib/sysusers.d/*.conf
-
-[Action]
-Description = Updating system user accounts...
-When = PostTransaction
-Exec = /bin/sh -c 'while read -r f; do /usr/bin/systemd-sysusers "$(basename "$f")" ; done'
-NeedsTargets
diff --git a/abs/core/systemd/systemd.install b/abs/core/systemd/systemd.install
index fedc747..4171101 100644
--- a/abs/core/systemd/systemd.install
+++ b/abs/core/systemd/systemd.install
@@ -53,6 +53,15 @@ _233_75_3_changes() {
fi
}
+_242_0_2_changes() {
+ if [[ -L var/lib/systemd/timesync ]]; then
+ rm var/lib/systemd/timesync
+ if [[ -d var/lib/private/systemd/timesync ]]; then
+ mv var/lib/{private/,}systemd/timesync
+ fi
+ fi
+}
+
post_install() {
systemd-machine-id-setup
@@ -87,6 +96,7 @@ post_upgrade() {
230-1
232-8
233.75-3
+ 242.0-2
)
for v in "${upgrades[@]}"; do
diff --git a/abs/core/tzdata/PKGBUILD b/abs/core/tzdata/PKGBUILD
index 0606eaf..961dc8f 100644
--- a/abs/core/tzdata/PKGBUILD
+++ b/abs/core/tzdata/PKGBUILD
@@ -1,17 +1,20 @@
-# $Id$
# Maintainer: Andreas Radke <andyrtr@archlinux.org>
pkgname=tzdata
-pkgver=2017a
+pkgver=2020a
+_tzcode=2020a
+_tzdata=2020a
pkgrel=1
pkgdesc="Sources for time zone and daylight saving time data"
-arch=('any')
-url="http://www.iana.org/time-zones"
-license=('GPL')
+arch=('x86_64')
+url="https://www.iana.org/time-zones"
+license=('custom: public domain')
options=('!emptydirs')
-# new signing key is not available via public keyservers
-source=(https://www.iana.org/time-zones/repository/releases/${pkgname}${pkgver}.tar.gz{,.asc})
-sha512sums=('fe57930711998a0755749a2bf1b32fdbc9e6ee249762017beea52eae7e521236396300fe2d79298fd81eb6d73fb7567884c35995ed248be06188329d937e3873'
+source=(https://www.iana.org/time-zones/repository/releases/tzcode${_tzcode}.tar.gz{,.asc}
+ https://www.iana.org/time-zones/repository/releases/${pkgname}${_tzdata}.tar.gz{,.asc})
+sha512sums=('5235d6590e844491df32375857f5f36ba0046f2d21a078375188dff79b125cf9b69136a0a431624de1ecfa9d53b62a232f0e6ee0b734294cec62b670e6265cb2'
+ 'SKIP'
+ '2a2fc2e3ad8a6e4c574242296c847ad582c2c1d86add9c556e65c812d19b9528522e3c4dddb5239017091825d2acc5a2ccaf21dc41b900b6c300ef4264cc5a9d'
'SKIP')
validpgpkeys=('7E3792A9D8ACF7D633BC1588ED97E90E62AA7E34') # Paul Eggert <eggert@cs.ucla.edu>
@@ -20,12 +23,30 @@ timezones=('africa' 'antarctica' 'asia' 'australasia'
'pacificnew' 'etcetera' 'backward'
'systemv' 'factory')
+prepare() {
+ sed -i "s:sbin:bin:g" Makefile
+}
+
+build() {
+ make LFLAGS=${LDFLAGS}
+}
+
package() {
- cd ${srcdir}
- zic -y ./yearistype -d ${pkgdir}/usr/share/zoneinfo ${timezones[@]}
- zic -y ./yearistype -d ${pkgdir}/usr/share/zoneinfo/posix ${timezones[@]}
- zic -y ./yearistype -d ${pkgdir}/usr/share/zoneinfo/right -L leapseconds ${timezones[@]}
+ cd "${srcdir}"
+ # install tzcode stuff
+ make DESTDIR="${pkgdir}" install
+
+ # install tzdata stuff
+ ./zic -d "${pkgdir}"/usr/share/zoneinfo ${timezones[@]}
+ ./zic -d "${pkgdir}"/usr/share/zoneinfo/posix ${timezones[@]}
+ ./zic -d "${pkgdir}"/usr/share/zoneinfo/right -L leapseconds ${timezones[@]}
+
+ ./zic -d "${pkgdir}"/usr/share/zoneinfo -p America/New_York
+ install -m444 -t "${pkgdir}"/usr/share/zoneinfo iso3166.tab zone1970.tab zone.tab # zone.tab is depricated and will go soon
- zic -y ./yearistype -d ${pkgdir}/usr/share/zoneinfo -p America/New_York
- install -m444 -t ${pkgdir}/usr/share/zoneinfo iso3166.tab zone1970.tab zone.tab # zone.tab is depricated and will go soon
+ # cleanup
+ rm "${pkgdir}/etc/localtime"
+
+ # install license
+ install -Dm644 LICENSE "${pkgdir}"/usr/share/licenses/${pkgname}/LICENSE
}
diff --git a/abs/core/util-linux/PKGBUILD b/abs/core/util-linux/PKGBUILD
index c672254..d6a168e 100644
--- a/abs/core/util-linux/PKGBUILD
+++ b/abs/core/util-linux/PKGBUILD
@@ -1,30 +1,30 @@
-# $Id$
# Maintainer: Tom Gundersen <teg@jklm.no>
# Maintainer: Dave Reisner <dreisner@archlinux.org>
# Contributor: judd <jvinet@zeroflux.org>
pkgbase=util-linux
-pkgname=(util-linux libutil-linux)
-_pkgmajor=2.31
-pkgver=${_pkgmajor}.1
-pkgrel=1
-pkgdesc="Miscellaneous system utilities for Linux"
-url="https://www.kernel.org/pub/linux/utils/util-linux/"
+pkgname=(util-linux util-linux-libs)
+_pkgmajor=2.36
+pkgver=${_pkgmajor}
+pkgrel=4
+pkgdesc='Miscellaneous system utilities for Linux'
+url='https://github.com/karelzak/util-linux'
arch=('x86_64')
-makedepends=('systemd' 'python' 'libcap-ng')
+makedepends=('systemd' 'python' 'libcap-ng' 'libxcrypt')
license=('GPL2')
-options=('strip' 'debug')
+options=('strip')
validpgpkeys=('B0C64D14301CC6EFAEDF60E4E4B71D5EEC39C284') # Karel Zak
source=("https://www.kernel.org/pub/linux/utils/util-linux/v$_pkgmajor/$pkgbase-$pkgver.tar."{xz,sign}
- pam-{login,common,su}
+ pam-{login,common,runuser,su}
'util-linux.sysusers'
'60-rfkill.rules'
'rfkill-unblock_.service'
'rfkill-block_.service')
-sha256sums=('1a51b16fa9cd51d26ef9ab52d2f1de12403b810fc8252bf7d478df91b3cddf11'
+sha256sums=('9e4b1c67eb13b9b67feb32ae1dc0d50e08ce9e5d82e1cccd0ee771ad2fa9e0b1'
'SKIP'
'993a3096c2b113e6800f2abbd5d4233ebf1a97eef423990d3187d665d3490b92'
'fc6807842f92e9d3f792d6b64a0d5aad87995a279153ab228b1b2a64d9f32f20'
+ '95b7cdc4cba17494d7b87f37f8d0937ec54c55de0e3ce9d9ab05ad5cc76bf935'
'51eac9c2a2f51ad3982bba35de9aac5510f1eeff432d2d63c6362e45d620afc0'
'10b0505351263a099163c0d928132706e501dd0a008dac2835b052167b14abe3'
'7423aaaa09fee7f47baa83df9ea6fef525ff9aec395c8cbd9fe848ceb2643f37'
@@ -34,32 +34,46 @@ sha256sums=('1a51b16fa9cd51d26ef9ab52d2f1de12403b810fc8252bf7d478df91b3cddf11'
build() {
cd "$pkgbase-$pkgver"
- ./configure --prefix=/usr \
- --libdir=/usr/lib \
- --bindir=/usr/bin \
- --localstatedir=/run \
- --enable-fs-paths-extra=/usr/bin \
- --enable-raw \
- --enable-vipw \
- --enable-newgrp \
- --enable-chfn-chsh \
- --enable-write \
- --enable-mesg \
- --with-python=3
+ # We ship Debian's hardlink in package 'hardlink', Fedora's hardlink was
+ # merged in util-linux. For now we disable the latter, but let's dicuss
+ # the details:
+ # https://bugs.archlinux.org/task/62896
+ # https://github.com/karelzak/util-linux/issues/808
+
+ ./configure \
+ --prefix=/usr \
+ --libdir=/usr/lib \
+ --bindir=/usr/bin \
+ --sbindir=/usr/bin \
+ --localstatedir=/var \
+ --enable-usrdir-path \
+ --enable-fs-paths-default=/usr/bin:/usr/local/bin \
+ --enable-raw \
+ --enable-vipw \
+ --enable-newgrp \
+ --enable-chfn-chsh \
+ --enable-write \
+ --enable-mesg \
+ --disable-hardlink \
+ --with-python=3
make
}
package_util-linux() {
- conflicts=('eject' 'zramctl' 'rfkill')
- provides=('eject' 'zramctl' 'rfkill')
- replaces=('zramctl' 'rfkill')
- depends=('pam' 'shadow' 'coreutils' 'libsystemd' 'libcap-ng' 'libutil-linux')
- optdepends=('python: python bindings to libmount')
- groups=('base' 'base-devel')
+ conflicts=('rfkill')
+ provides=('rfkill')
+ replaces=('rfkill')
+ depends=('pam' 'shadow' 'coreutils' 'systemd-libs' 'libsystemd.so'
+ 'libudev.so' 'libcap-ng' 'libxcrypt' 'libcrypt.so' 'util-linux-libs'
+ 'libmagic.so' 'libncursesw.so' 'libreadline.so')
+ optdepends=('python: python bindings to libmount'
+ 'words: default dictionary for look')
backup=(etc/pam.d/chfn
etc/pam.d/chsh
etc/pam.d/login
+ etc/pam.d/runuser
+ etc/pam.d/runuser-l
etc/pam.d/su
etc/pam.d/su-l)
@@ -71,11 +85,13 @@ package_util-linux() {
chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}}
# install PAM files for login-utils
- install -Dm644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
- install -m644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
- install -m644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
- install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
- install -m644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
+ install -Dm0644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chfn"
+ install -m0644 "$srcdir/pam-common" "$pkgdir/etc/pam.d/chsh"
+ install -m0644 "$srcdir/pam-login" "$pkgdir/etc/pam.d/login"
+ install -m0644 "$srcdir/pam-runuser" "$pkgdir/etc/pam.d/runuser"
+ install -m0644 "$srcdir/pam-runuser" "$pkgdir/etc/pam.d/runuser-l"
+ install -m0644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su"
+ install -m0644 "$srcdir/pam-su" "$pkgdir/etc/pam.d/su-l"
# TODO(dreisner): offer this upstream?
sed -i '/ListenStream/ aRuntimeDirectory=uuidd' "$pkgdir/usr/lib/systemd/system/uuidd.socket"
@@ -83,28 +99,30 @@ package_util-linux() {
# adjust for usrmove
# TODO(dreisner): fix configure.ac upstream so that this isn't needed
cd "$pkgdir"
- mv {,usr/}sbin/* usr/bin
- rmdir sbin usr/sbin
+ mv usr/sbin/* usr/bin
+ rmdir usr/sbin
- ### runtime libs are shipped as part of libutil-linux
+ ### runtime libs are shipped as part of util-linux-libs
rm "$pkgdir"/usr/lib/lib*.{a,so}*
### install systemd-sysusers
- install -Dm644 "$srcdir/util-linux.sysusers" \
+ install -Dm0644 "$srcdir/util-linux.sysusers" \
"$pkgdir/usr/lib/sysusers.d/util-linux.conf"
- install -Dm644 "$srcdir/60-rfkill.rules" \
+ install -Dm0644 "$srcdir/60-rfkill.rules" \
"$pkgdir/usr/lib/udev/rules.d/60-rfkill.rules"
- install -Dm644 "$srcdir/rfkill-unblock_.service" \
+ install -Dm0644 "$srcdir/rfkill-unblock_.service" \
"$pkgdir/usr/lib/systemd/system/rfkill-unblock@.service"
- install -Dm644 "$srcdir/rfkill-block_.service" \
+ install -Dm0644 "$srcdir/rfkill-block_.service" \
"$pkgdir/usr/lib/systemd/system/rfkill-block@.service"
}
-package_libutil-linux() {
+package_util-linux-libs() {
pkgdesc="util-linux runtime libraries"
- provides=('libblkid.so' 'libfdisk.so' 'libmount.so' 'libsmartcols.so' 'libuuid.so')
+ provides=('libutil-linux' 'libblkid.so' 'libfdisk.so' 'libmount.so' 'libsmartcols.so' 'libuuid.so')
+ conflicts=('libutil-linux')
+ replaces=('libutil-linux')
make -C "$pkgbase-$pkgver" DESTDIR="$pkgdir" install-usrlib_execLTLIBRARIES
}
diff --git a/abs/core/util-linux/pam-runuser b/abs/core/util-linux/pam-runuser
new file mode 100644
index 0000000..d5b1ea3
--- /dev/null
+++ b/abs/core/util-linux/pam-runuser
@@ -0,0 +1,4 @@
+#%PAM-1.0
+
+auth sufficient pam_rootok.so
+session include system-login
diff --git a/abs/core/wget/PKGBUILD b/abs/core/wget/PKGBUILD
index 65fd903..7932add 100644
--- a/abs/core/wget/PKGBUILD
+++ b/abs/core/wget/PKGBUILD
@@ -2,7 +2,7 @@
# Maintainer: Eric Bélanger <eric@archlinux.org>
pkgname=wget
-pkgver=1.20.1
+pkgver=1.20.3
pkgrel=3
pkgdesc='Network utility to retrieve files from the Web'
url='https://www.gnu.org/software/wget/wget.html'
@@ -13,7 +13,7 @@ checkdepends=('perl-http-daemon' 'perl-io-socket-ssl' 'python')
optdepends=('ca-certificates: HTTPS downloads')
backup=('etc/wgetrc')
source=(https://ftp.gnu.org/gnu/${pkgname}/${pkgname}-${pkgver}.tar.lz{,.sig})
-sha256sums=('0f63e84dd23dc53ab3ab6f483c3afff8301e54c165783f772101cdd9b1c64928'
+sha256sums=('69607ce8216c2d1126b7a872db594b3f21e511e660e07ca1f81be96650932abb'
'SKIP')
validpgpkeys=('AC404C1C0BF735C63FF4D562263D6DF2E163E1EA'
'7845120B07CBD8D6ECE5FF2B2A1743EDA91A35B6'
diff --git a/abs/core/xfsprogs/PKGBUILD b/abs/core/xfsprogs/PKGBUILD
index fe9196b..acdf970 100644
--- a/abs/core/xfsprogs/PKGBUILD
+++ b/abs/core/xfsprogs/PKGBUILD
@@ -1,33 +1,33 @@
-# $Id$
-#
+# Maintainer : Tobias Powalowski <tpowa@archlinux.org>
pkgname=xfsprogs
-pkgver=4.8.0
+pkgver=5.8.0
pkgrel=1
pkgdesc="XFS filesystem utilities"
-arch=('i686' 'x86_64')
+arch=('x86_64')
license=('LGPL')
-url="http://oss.sgi.com/projects/xfs/"
-groups=('base')
-depends=('libutil-linux')
+url="https://xfs.org"
+depends=('sh' 'util-linux-libs' 'icu' 'device-mapper')
+optdepends=('python: for xfs_scrub_all script'
+ 'smtp-forwarder: for xfs_scrub_fail script')
makedepends=('git')
options=('!makeflags')
-source=("git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git#tag=v${pkgver}")
+source=("git+https://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git#tag=v${pkgver}")
md5sums=('SKIP')
build() {
- cd "${srcdir}/${pkgname}-dev"
+ cd ${pkgname}-dev
make configure
export OPTIMIZER="-march=${CARCH/_/-} -O1"
export DEBUG=-DNDEBUG
- ./configure --prefix=/usr --sbindir=/usr/bin
+ ./configure --prefix=/usr --sbindir=/usr/bin --with-systemd-unit-dir=/usr/lib/systemd/system
make
}
package() {
- cd "${srcdir}/${pkgname}-dev"
+ cd ${pkgname}-dev
make DIST_ROOT="${pkgdir}" PKG_ROOT_SBIN_DIR="/usr/bin" install install-dev
- chown -R root $pkgdir
- chgrp -R root $pkgdir
+ chown -R root "$pkgdir"
+ chgrp -R root "$pkgdir"
# add hack as we cannot set rootlibdir
mv "${pkgdir}"/lib/libhandle.so* "${pkgdir}/usr/lib/"
rm -rf "${pkgdir}/lib"
diff --git a/abs/core/xmltv/PKGBUILD b/abs/core/xmltv/PKGBUILD
index b9cf6a0..182041f 100644
--- a/abs/core/xmltv/PKGBUILD
+++ b/abs/core/xmltv/PKGBUILD
@@ -1,6 +1,6 @@
pkgname=xmltv
-pkgver=0.5.70
-pkgrel=180827
+pkgver=0.6.1
+pkgrel=190421
_pkgver="xmltv"
pkgdesc="Set of utilities to download tv listings and format them in xml"
arch=('any')
diff --git a/abs/core/xymon/PKGBUILD b/abs/core/xymon/PKGBUILD
index 76bf18d..06c9ca4 100755
--- a/abs/core/xymon/PKGBUILD
+++ b/abs/core/xymon/PKGBUILD
@@ -1,10 +1,10 @@
pkgbase=xymon
pkgname=('xymonserver' 'xymonclient')
pkgver=4.3.28
-pkgrel=7
+pkgrel=8
pkgdesc="Xymon is a system for monitoring of hosts and networks"
license=('GPL')
-arch=('i686' 'x86_64')
+arch=('x86_64')
url="http://www.xymon.com/"
source=("https://downloads.sourceforge.net/project/xymon/Xymon/$pkgver/$pkgbase-$pkgver.tar.gz"
'alerts.cfg'
@@ -187,7 +187,7 @@ md5sums=('14501ab2cfce9a332c1590543dfcbd0f'
'31ac5c1f6dcc9408b64c4107b325a9a6'
'1eee1cf4ded13fcef9f3b43faa20dbe1'
'80d9cfac86c6d96836e6f406e35e7cf5'
- 'df77d1de72157d23a301a72288fbf7e5'
+ 'd2c6d0d18bdaa40a2c82332937253cfc'
'b1d5592fa92ef71303621964e84c2b9e'
'f1146cc034f6d11e7d7e68f24bc89dff'
'2a509d81ee1655130ce40bf970719e0a'
diff --git a/abs/core/xymon/hbnotes.py b/abs/core/xymon/hbnotes.py
index d18a606..1d3e459 100755
--- a/abs/core/xymon/hbnotes.py
+++ b/abs/core/xymon/hbnotes.py
@@ -39,8 +39,8 @@ def create_dot_file():
tunerdict = {}
for row in result:
hostname = row[0]
- dot_hostname = row[0].replace('.','_')
- dot_hostname = row[0].replace('-','__')
+ dot_hostname = hostname.replace('.','_')
+ dot_hostname = dot_hostname.replace('-','__')
#Find the system type
cursor.execute("select value,data from settings where hostname=%s and value in ('HostSystemType','HostRunFrontend');",(row))
hostvalues=cursor.fetchall()
diff --git a/abs/core/zstd/PKGBUILD b/abs/core/zstd/PKGBUILD
new file mode 100644
index 0000000..391b14e
--- /dev/null
+++ b/abs/core/zstd/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
+# Contributor: Andrzej Giniewicz <gginiu@gmail.com>
+# Contributor: Johan Förberg <johan@forberg.se>
+
+pkgname=zstd
+pkgver=1.4.5
+pkgrel=1
+pkgdesc='Zstandard - Fast real-time compression algorithm'
+arch=(x86_64)
+url='https://www.zstd.net/'
+license=(BSD GPL2)
+depends=(zlib xz lz4)
+makedepends=(gtest)
+source=($pkgname-$pkgver.tar.gz::https://github.com/facebook/zstd/archive/v${pkgver}.tar.gz)
+sha256sums=('734d1f565c42f691f8420c8d06783ad818060fc390dee43ae0a89f86d0a4f8c2')
+
+build() {
+ cd $pkgname-$pkgver
+ make
+ make zstdmt
+ make -C contrib/pzstd
+}
+
+check() {
+ cd $pkgname-$pkgver
+ make check
+ make -C contrib/pzstd test
+}
+
+package() {
+ cd $pkgname-$pkgver
+ make PREFIX=/usr DESTDIR="$pkgdir/" install
+ install -Dm755 zstdmt "$pkgdir/usr/bin/zstdmt"
+ install -Dm755 contrib/pzstd/pzstd "$pkgdir/usr/bin/pzstd"
+ install -Dm644 LICENSE "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}