1
0
Fork 0
mirror of git://slackware.nl/current.git synced 2025-01-18 22:27:20 +01:00

Sun Nov 10 20:38:31 UTC 2024

l/imagemagick-7.1.1_40-x86_64-1.txz:  Upgraded.
l/python-hatchling-1.26.1-x86_64-1.txz:  Upgraded.
l/python-zipp-3.21.0-x86_64-1.txz:  Upgraded.
l/qt6-6.8.0_20241001_0c20a491-x86_64-1.txz:  Upgraded.
n/c-ares-1.34.3-x86_64-1.txz:  Upgraded.
n/netatalk-4.0.5-x86_64-1.txz:  Upgraded.
x/xtrans-1.5.2-noarch-1.txz:  Upgraded.
y/bsd-games-2.17-x86_64-6.txz:  Rebuilt.
  /etc/profile.d/bsd-games-login-fortune.{csh,sh}: suppress fortune output if
  $HOME/.hushlogin exists. Thanks to GazL.
This commit is contained in:
Patrick J Volkerding 2024-11-10 20:38:31 +00:00 committed by Eric Hameleers
parent 0665074a8c
commit 3ecfa9b836
14 changed files with 3581 additions and 4362 deletions

View file

@ -11,9 +11,29 @@
<description>Tracking Slackware development in git.</description>
<language>en-us</language>
<id xmlns="http://www.w3.org/2005/Atom">urn:uuid:c964f45e-6732-11e8-bbe5-107b4450212f</id>
<pubDate>Sat, 9 Nov 2024 20:28:56 GMT</pubDate>
<lastBuildDate>Sat, 9 Nov 2024 20:59:53 GMT</lastBuildDate>
<pubDate>Sun, 10 Nov 2024 20:38:31 GMT</pubDate>
<lastBuildDate>Sun, 10 Nov 2024 21:34:15 GMT</lastBuildDate>
<generator>maintain_current_git.sh v 1.17</generator>
<item>
<title>Sun, 10 Nov 2024 20:38:31 GMT</title>
<pubDate>Sun, 10 Nov 2024 20:38:31 GMT</pubDate>
<link>https://git.slackware.nl/current/tag/?h=20241110203831</link>
<guid isPermaLink="false">20241110203831</guid>
<description>
<![CDATA[<pre>
l/imagemagick-7.1.1_40-x86_64-1.txz: Upgraded.
l/python-hatchling-1.26.1-x86_64-1.txz: Upgraded.
l/python-zipp-3.21.0-x86_64-1.txz: Upgraded.
l/qt6-6.8.0_20241001_0c20a491-x86_64-1.txz: Upgraded.
n/c-ares-1.34.3-x86_64-1.txz: Upgraded.
n/netatalk-4.0.5-x86_64-1.txz: Upgraded.
x/xtrans-1.5.2-noarch-1.txz: Upgraded.
y/bsd-games-2.17-x86_64-6.txz: Rebuilt.
/etc/profile.d/bsd-games-login-fortune.{csh,sh}: suppress fortune output if
$HOME/.hushlogin exists. Thanks to GazL.
</pre>]]>
</description>
</item>
<item>
<title>Sat, 9 Nov 2024 20:28:56 GMT</title>
<pubDate>Sat, 9 Nov 2024 20:28:56 GMT</pubDate>

View file

@ -1,3 +1,15 @@
Sun Nov 10 20:38:31 UTC 2024
l/imagemagick-7.1.1_40-x86_64-1.txz: Upgraded.
l/python-hatchling-1.26.1-x86_64-1.txz: Upgraded.
l/python-zipp-3.21.0-x86_64-1.txz: Upgraded.
l/qt6-6.8.0_20241001_0c20a491-x86_64-1.txz: Upgraded.
n/c-ares-1.34.3-x86_64-1.txz: Upgraded.
n/netatalk-4.0.5-x86_64-1.txz: Upgraded.
x/xtrans-1.5.2-noarch-1.txz: Upgraded.
y/bsd-games-2.17-x86_64-6.txz: Rebuilt.
/etc/profile.d/bsd-games-login-fortune.{csh,sh}: suppress fortune output if
$HOME/.hushlogin exists. Thanks to GazL.
+--------------------------+
Sat Nov 9 20:28:56 UTC 2024
ap/mariadb-11.4.4-x86_64-3.txz: Rebuilt.
Moved default options (--skip-networking --disable-ssl) into

View file

@ -1,20 +1,20 @@
Sat Nov 9 20:32:35 UTC 2024
Sun Nov 10 20:43:27 UTC 2024
Here is the file list for this directory. If you are using a
mirror site and find missing or extra files in the disk
subdirectories, please have the archive administrator refresh
the mirror.
drwxr-xr-x 12 root root 4096 2024-11-09 20:28 .
drwxr-xr-x 12 root root 4096 2024-11-10 20:38 .
-rw-r--r-- 1 root root 5767 2022-02-02 22:44 ./ANNOUNCE.15.0
-rw-r--r-- 1 root root 16617 2022-02-02 23:27 ./CHANGES_AND_HINTS.TXT
-rw-r--r-- 1 root root 1159044 2024-11-08 22:22 ./CHECKSUMS.md5
-rw-r--r-- 1 root root 195 2024-11-08 22:22 ./CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 1159224 2024-11-09 20:32 ./CHECKSUMS.md5
-rw-r--r-- 1 root root 195 2024-11-09 20:32 ./CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 17976 1994-06-10 02:28 ./COPYING
-rw-r--r-- 1 root root 35147 2007-06-30 04:21 ./COPYING3
-rw-r--r-- 1 root root 19573 2016-06-23 20:08 ./COPYRIGHT.TXT
-rw-r--r-- 1 root root 616 2006-10-02 04:37 ./CRYPTO_NOTICE.TXT
-rw-r--r-- 1 root root 1228362 2024-11-09 20:28 ./ChangeLog.txt
-rw-r--r-- 1 root root 1228905 2024-11-10 20:38 ./ChangeLog.txt
drwxr-xr-x 3 root root 4096 2013-03-20 22:17 ./EFI
drwxr-xr-x 2 root root 4096 2024-11-08 21:35 ./EFI/BOOT
-rw-r--r-- 1 root root 1200128 2024-09-12 20:40 ./EFI/BOOT/bootx64.efi
@ -25,9 +25,9 @@ drwxr-xr-x 2 root root 4096 2024-11-08 21:35 ./EFI/BOOT
-rwxr-xr-x 1 root root 2504 2019-07-05 18:54 ./EFI/BOOT/make-grub.sh
-rw-r--r-- 1 root root 10722 2013-09-21 19:02 ./EFI/BOOT/osdetect.cfg
-rw-r--r-- 1 root root 1273 2013-08-12 21:08 ./EFI/BOOT/tools.cfg
-rw-r--r-- 1 root root 1516855 2024-11-08 22:22 ./FILELIST.TXT
-rw-r--r-- 1 root root 1517069 2024-11-09 20:32 ./FILELIST.TXT
-rw-r--r-- 1 root root 1572 2012-08-29 18:27 ./GPG-KEY
-rw-r--r-- 1 root root 913802 2024-11-09 20:32 ./PACKAGES.TXT
-rw-r--r-- 1 root root 913802 2024-11-10 20:42 ./PACKAGES.TXT
-rw-r--r-- 1 root root 8034 2022-02-02 03:36 ./README.TXT
-rw-r--r-- 1 root root 2640 2024-11-08 21:16 ./README.initrd
-rw-r--r-- 1 root root 34114 2023-12-11 20:35 ./README_CRYPT.TXT
@ -662,11 +662,11 @@ drwxr-xr-x 2 root root 4096 2022-02-03 07:02 ./patches
-rw-r--r-- 1 root root 575 2022-02-03 07:02 ./patches/FILE_LIST
-rw-r--r-- 1 root root 14 2022-02-03 07:02 ./patches/MANIFEST.bz2
-rw-r--r-- 1 root root 224 2022-02-03 07:02 ./patches/PACKAGES.TXT
drwxr-xr-x 17 root root 4096 2024-11-09 20:32 ./slackware64
-rw-r--r-- 1 root root 356662 2024-11-09 20:32 ./slackware64/CHECKSUMS.md5
-rw-r--r-- 1 root root 195 2024-11-09 20:32 ./slackware64/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 441685 2024-11-09 20:31 ./slackware64/FILE_LIST
-rw-r--r-- 1 root root 4808999 2024-11-09 20:31 ./slackware64/MANIFEST.bz2
drwxr-xr-x 17 root root 4096 2024-11-10 20:43 ./slackware64
-rw-r--r-- 1 root root 356662 2024-11-10 20:43 ./slackware64/CHECKSUMS.md5
-rw-r--r-- 1 root root 195 2024-11-10 20:43 ./slackware64/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 441685 2024-11-10 20:42 ./slackware64/FILE_LIST
-rw-r--r-- 1 root root 4820686 2024-11-10 20:42 ./slackware64/MANIFEST.bz2
lrwxrwxrwx 1 root root 15 2009-08-23 23:34 ./slackware64/PACKAGES.TXT -> ../PACKAGES.TXT
drwxr-xr-x 2 root root 32768 2024-11-08 22:20 ./slackware64/a
-rw-r--r-- 1 root root 327 2022-02-15 18:16 ./slackware64/a/aaa_base-15.1-x86_64-2.txt
@ -2780,7 +2780,7 @@ drwxr-xr-x 2 root root 86016 2024-11-09 20:31 ./slackware64/kde
-rw-r--r-- 1 root root 517 2024-02-15 21:47 ./slackware64/kde/zanshin-23.08.5-x86_64-1.txt
-rw-r--r-- 1 root root 686104 2024-02-15 21:47 ./slackware64/kde/zanshin-23.08.5-x86_64-1.txz
-rw-r--r-- 1 root root 163 2024-02-15 21:47 ./slackware64/kde/zanshin-23.08.5-x86_64-1.txz.asc
drwxr-xr-x 2 root root 102400 2024-11-09 20:31 ./slackware64/l
drwxr-xr-x 2 root root 102400 2024-11-10 20:42 ./slackware64/l
-rw-r--r-- 1 root root 329 2022-03-06 20:00 ./slackware64/l/GConf-3.2.6-x86_64-8.txt
-rw-r--r-- 1 root root 928144 2022-03-06 20:00 ./slackware64/l/GConf-3.2.6-x86_64-8.txz
-rw-r--r-- 1 root root 163 2022-03-06 20:00 ./slackware64/l/GConf-3.2.6-x86_64-8.txz.asc
@ -3183,9 +3183,9 @@ drwxr-xr-x 2 root root 102400 2024-11-09 20:31 ./slackware64/l
-rw-r--r-- 1 root root 473 2021-02-13 06:52 ./slackware64/l/id3lib-3.8.3-x86_64-4.txt
-rw-r--r-- 1 root root 161400 2021-02-13 06:52 ./slackware64/l/id3lib-3.8.3-x86_64-4.txz
-rw-r--r-- 1 root root 163 2021-02-13 06:52 ./slackware64/l/id3lib-3.8.3-x86_64-4.txz.asc
-rw-r--r-- 1 root root 537 2024-10-06 18:12 ./slackware64/l/imagemagick-7.1.1_39-x86_64-1.txt
-rw-r--r-- 1 root root 8630244 2024-10-06 18:12 ./slackware64/l/imagemagick-7.1.1_39-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-10-06 18:12 ./slackware64/l/imagemagick-7.1.1_39-x86_64-1.txz.asc
-rw-r--r-- 1 root root 537 2024-11-10 18:47 ./slackware64/l/imagemagick-7.1.1_40-x86_64-1.txt
-rw-r--r-- 1 root root 8629956 2024-11-10 18:47 ./slackware64/l/imagemagick-7.1.1_40-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-10 18:47 ./slackware64/l/imagemagick-7.1.1_40-x86_64-1.txz.asc
-rw-r--r-- 1 root root 399 2023-10-05 20:06 ./slackware64/l/immer-0.8.1-x86_64-1.txt
-rw-r--r-- 1 root root 67400 2023-10-05 20:06 ./slackware64/l/immer-0.8.1-x86_64-1.txz
-rw-r--r-- 1 root root 163 2023-10-05 20:06 ./slackware64/l/immer-0.8.1-x86_64-1.txz.asc
@ -3853,9 +3853,9 @@ drwxr-xr-x 2 root root 102400 2024-11-09 20:31 ./slackware64/l
-rw-r--r-- 1 root root 416 2024-09-14 17:25 ./slackware64/l/python-hatch-vcs-0.4.0-x86_64-1.txt
-rw-r--r-- 1 root root 10104 2024-09-14 17:25 ./slackware64/l/python-hatch-vcs-0.4.0-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-09-14 17:25 ./slackware64/l/python-hatch-vcs-0.4.0-x86_64-1.txz.asc
-rw-r--r-- 1 root root 355 2024-06-23 17:05 ./slackware64/l/python-hatchling-1.25.0-x86_64-1.txt
-rw-r--r-- 1 root root 159952 2024-06-23 17:05 ./slackware64/l/python-hatchling-1.25.0-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-06-23 17:05 ./slackware64/l/python-hatchling-1.25.0-x86_64-1.txz.asc
-rw-r--r-- 1 root root 355 2024-11-10 18:45 ./slackware64/l/python-hatchling-1.26.1-x86_64-1.txt
-rw-r--r-- 1 root root 141664 2024-11-10 18:45 ./slackware64/l/python-hatchling-1.26.1-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-10 18:45 ./slackware64/l/python-hatchling-1.26.1-x86_64-1.txz.asc
-rw-r--r-- 1 root root 381 2024-03-29 04:28 ./slackware64/l/python-html5lib-1.1-x86_64-2.txt
-rw-r--r-- 1 root root 239216 2024-03-29 04:28 ./slackware64/l/python-html5lib-1.1-x86_64-2.txz
-rw-r--r-- 1 root root 195 2024-03-29 04:28 ./slackware64/l/python-html5lib-1.1-x86_64-2.txz.asc
@ -3958,9 +3958,9 @@ drwxr-xr-x 2 root root 102400 2024-11-09 20:31 ./slackware64/l
-rw-r--r-- 1 root root 327 2024-11-09 19:10 ./slackware64/l/python-wheel-0.45.0-x86_64-1.txt
-rw-r--r-- 1 root root 135464 2024-11-09 19:10 ./slackware64/l/python-wheel-0.45.0-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-09 19:10 ./slackware64/l/python-wheel-0.45.0-x86_64-1.txz.asc
-rw-r--r-- 1 root root 327 2024-09-13 18:10 ./slackware64/l/python-zipp-3.20.2-x86_64-1.txt
-rw-r--r-- 1 root root 19084 2024-09-13 18:10 ./slackware64/l/python-zipp-3.20.2-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-09-13 18:10 ./slackware64/l/python-zipp-3.20.2-x86_64-1.txz.asc
-rw-r--r-- 1 root root 327 2024-11-10 18:49 ./slackware64/l/python-zipp-3.21.0-x86_64-1.txt
-rw-r--r-- 1 root root 19840 2024-11-10 18:49 ./slackware64/l/python-zipp-3.21.0-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-10 18:49 ./slackware64/l/python-zipp-3.21.0-x86_64-1.txz.asc
-rw-r--r-- 1 root root 389 2024-03-20 18:41 ./slackware64/l/python2-pycairo-1.18.2-x86_64-1.txt
-rw-r--r-- 1 root root 172764 2024-03-20 18:41 ./slackware64/l/python2-pycairo-1.18.2-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-03-20 18:41 ./slackware64/l/python2-pycairo-1.18.2-x86_64-1.txz.asc
@ -3970,9 +3970,9 @@ drwxr-xr-x 2 root root 102400 2024-11-09 20:31 ./slackware64/l
-rw-r--r-- 1 root root 247 2024-11-02 02:17 ./slackware64/l/qt5-5.15.15_20241031_933cb170-x86_64-1.txt
-rw-r--r-- 1 root root 99035540 2024-11-02 02:17 ./slackware64/l/qt5-5.15.15_20241031_933cb170-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-02 02:17 ./slackware64/l/qt5-5.15.15_20241031_933cb170-x86_64-1.txz.asc
-rw-r--r-- 1 root root 247 2024-10-28 21:06 ./slackware64/l/qt6-6.7.3_20240920_90e86aee-x86_64-4.txt
-rw-r--r-- 1 root root 149164176 2024-10-28 21:06 ./slackware64/l/qt6-6.7.3_20240920_90e86aee-x86_64-4.txz
-rw-r--r-- 1 root root 195 2024-10-28 21:06 ./slackware64/l/qt6-6.7.3_20240920_90e86aee-x86_64-4.txz.asc
-rw-r--r-- 1 root root 247 2024-11-10 00:23 ./slackware64/l/qt6-6.8.0_20241001_0c20a491-x86_64-1.txt
-rw-r--r-- 1 root root 157224244 2024-11-10 00:23 ./slackware64/l/qt6-6.8.0_20241001_0c20a491-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-10 00:23 ./slackware64/l/qt6-6.8.0_20241001_0c20a491-x86_64-1.txz.asc
-rw-r--r-- 1 root root 402 2024-05-04 17:16 ./slackware64/l/qtkeychain-0.14.3-x86_64-1.txt
-rw-r--r-- 1 root root 54912 2024-05-04 17:16 ./slackware64/l/qtkeychain-0.14.3-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-05-04 17:16 ./slackware64/l/qtkeychain-0.14.3-x86_64-1.txz.asc
@ -4112,7 +4112,7 @@ drwxr-xr-x 2 root root 102400 2024-11-09 20:31 ./slackware64/l
-rw-r--r-- 1 root root 403 2023-12-11 22:02 ./slackware64/l/zxing-cpp-2.2.1-x86_64-1.txt
-rw-r--r-- 1 root root 773596 2023-12-11 22:02 ./slackware64/l/zxing-cpp-2.2.1-x86_64-1.txz
-rw-r--r-- 1 root root 163 2023-12-11 22:02 ./slackware64/l/zxing-cpp-2.2.1-x86_64-1.txz.asc
drwxr-xr-x 2 root root 36864 2024-11-08 22:20 ./slackware64/n
drwxr-xr-x 2 root root 36864 2024-11-10 20:42 ./slackware64/n
-rw-r--r-- 1 root root 357 2024-08-21 17:23 ./slackware64/n/ModemManager-1.22.0-x86_64-1.txt
-rw-r--r-- 1 root root 1520380 2024-08-21 17:23 ./slackware64/n/ModemManager-1.22.0-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-08-21 17:23 ./slackware64/n/ModemManager-1.22.0-x86_64-1.txz.asc
@ -4146,9 +4146,9 @@ drwxr-xr-x 2 root root 36864 2024-11-08 22:20 ./slackware64/n
-rw-r--r-- 1 root root 612 2021-02-13 11:57 ./slackware64/n/bsd-finger-0.17-x86_64-5.txt
-rw-r--r-- 1 root root 20452 2021-02-13 11:57 ./slackware64/n/bsd-finger-0.17-x86_64-5.txz
-rw-r--r-- 1 root root 163 2021-02-13 11:57 ./slackware64/n/bsd-finger-0.17-x86_64-5.txz.asc
-rw-r--r-- 1 root root 484 2024-10-15 19:51 ./slackware64/n/c-ares-1.34.2-x86_64-1.txt
-rw-r--r-- 1 root root 202180 2024-10-15 19:51 ./slackware64/n/c-ares-1.34.2-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-10-15 19:51 ./slackware64/n/c-ares-1.34.2-x86_64-1.txz.asc
-rw-r--r-- 1 root root 484 2024-11-09 22:26 ./slackware64/n/c-ares-1.34.3-x86_64-1.txt
-rw-r--r-- 1 root root 202552 2024-11-09 22:26 ./slackware64/n/c-ares-1.34.3-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-09 22:26 ./slackware64/n/c-ares-1.34.3-x86_64-1.txz.asc
-rw-r--r-- 1 root root 367 2024-08-30 17:30 ./slackware64/n/ca-certificates-20240830-noarch-1.txt
-rw-r--r-- 1 root root 142756 2024-08-30 17:30 ./slackware64/n/ca-certificates-20240830-noarch-1.txz
-rw-r--r-- 1 root root 195 2024-08-30 17:30 ./slackware64/n/ca-certificates-20240830-noarch-1.txz.asc
@ -4360,9 +4360,9 @@ drwxr-xr-x 2 root root 36864 2024-11-08 22:20 ./slackware64/n
-rw-r--r-- 1 root root 513 2021-02-13 12:14 ./slackware64/n/net-tools-20181103_0eebece-x86_64-3.txt
-rw-r--r-- 1 root root 130856 2021-02-13 12:14 ./slackware64/n/net-tools-20181103_0eebece-x86_64-3.txz
-rw-r--r-- 1 root root 163 2021-02-13 12:14 ./slackware64/n/net-tools-20181103_0eebece-x86_64-3.txz.asc
-rw-r--r-- 1 root root 580 2024-11-04 18:28 ./slackware64/n/netatalk-4.0.4-x86_64-1.txt
-rw-r--r-- 1 root root 616520 2024-11-04 18:28 ./slackware64/n/netatalk-4.0.4-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-04 18:28 ./slackware64/n/netatalk-4.0.4-x86_64-1.txz.asc
-rw-r--r-- 1 root root 580 2024-11-10 18:49 ./slackware64/n/netatalk-4.0.5-x86_64-1.txt
-rw-r--r-- 1 root root 616984 2024-11-10 18:49 ./slackware64/n/netatalk-4.0.5-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-11-10 18:49 ./slackware64/n/netatalk-4.0.5-x86_64-1.txz.asc
-rw-r--r-- 1 root root 646 2021-02-13 12:15 ./slackware64/n/netdate-bsd4-x86_64-4.txt
-rw-r--r-- 1 root root 9020 2021-02-13 12:15 ./slackware64/n/netdate-bsd4-x86_64-4.txz
-rw-r--r-- 1 root root 163 2021-02-13 12:15 ./slackware64/n/netdate-bsd4-x86_64-4.txz.asc
@ -4637,7 +4637,7 @@ drwxr-xr-x 2 root root 4096 2024-09-17 23:31 ./slackware64/tcl
-rw-r--r-- 1 root root 227 2024-09-17 23:06 ./slackware64/tcl/tk-8.6.15-x86_64-1.txt
-rw-r--r-- 1 root root 1813700 2024-09-17 23:06 ./slackware64/tcl/tk-8.6.15-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-09-17 23:06 ./slackware64/tcl/tk-8.6.15-x86_64-1.txz.asc
drwxr-xr-x 2 root root 65536 2024-11-09 20:31 ./slackware64/x
drwxr-xr-x 2 root root 65536 2024-11-10 20:41 ./slackware64/x
-rw-r--r-- 1 root root 440 2024-08-09 18:16 ./slackware64/x/OpenCC-1.1.9-x86_64-1.txt
-rw-r--r-- 1 root root 649604 2024-08-09 18:16 ./slackware64/x/OpenCC-1.1.9-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-08-09 18:16 ./slackware64/x/OpenCC-1.1.9-x86_64-1.txz.asc
@ -5510,9 +5510,9 @@ drwxr-xr-x 2 root root 65536 2024-11-09 20:31 ./slackware64/x
-rw-r--r-- 1 root root 308 2024-10-25 17:32 ./slackware64/x/xterm-395-x86_64-1.txt
-rw-r--r-- 1 root root 443080 2024-10-25 17:32 ./slackware64/x/xterm-395-x86_64-1.txz
-rw-r--r-- 1 root root 195 2024-10-25 17:32 ./slackware64/x/xterm-395-x86_64-1.txz.asc
-rw-r--r-- 1 root root 391 2024-10-13 18:23 ./slackware64/x/xtrans-1.5.1-noarch-1.txt
-rw-r--r-- 1 root root 64856 2024-10-13 18:23 ./slackware64/x/xtrans-1.5.1-noarch-1.txz
-rw-r--r-- 1 root root 195 2024-10-13 18:23 ./slackware64/x/xtrans-1.5.1-noarch-1.txz.asc
-rw-r--r-- 1 root root 391 2024-11-09 22:30 ./slackware64/x/xtrans-1.5.2-noarch-1.txt
-rw-r--r-- 1 root root 64944 2024-11-09 22:30 ./slackware64/x/xtrans-1.5.2-noarch-1.txz
-rw-r--r-- 1 root root 195 2024-11-09 22:30 ./slackware64/x/xtrans-1.5.2-noarch-1.txz.asc
-rw-r--r-- 1 root root 235 2023-02-05 20:19 ./slackware64/x/xvidtune-1.0.4-x86_64-1.txt
-rw-r--r-- 1 root root 30176 2023-02-05 20:19 ./slackware64/x/xvidtune-1.0.4-x86_64-1.txz
-rw-r--r-- 1 root root 163 2023-02-05 20:19 ./slackware64/x/xvidtune-1.0.4-x86_64-1.txz.asc
@ -5786,10 +5786,10 @@ drwxr-xr-x 2 root root 12288 2024-11-08 22:20 ./slackware64/xfce
-rw-r--r-- 1 root root 285 2022-12-17 20:37 ./slackware64/xfce/xfwm4-4.18.0-x86_64-1.txt
-rw-r--r-- 1 root root 454376 2022-12-17 20:37 ./slackware64/xfce/xfwm4-4.18.0-x86_64-1.txz
-rw-r--r-- 1 root root 163 2022-12-17 20:37 ./slackware64/xfce/xfwm4-4.18.0-x86_64-1.txz.asc
drwxr-xr-x 2 root root 4096 2024-05-05 18:37 ./slackware64/y
-rw-r--r-- 1 root root 608 2024-05-04 02:10 ./slackware64/y/bsd-games-2.17-x86_64-5.txt
-rw-r--r-- 1 root root 1947344 2024-05-04 02:10 ./slackware64/y/bsd-games-2.17-x86_64-5.txz
-rw-r--r-- 1 root root 195 2024-05-04 02:10 ./slackware64/y/bsd-games-2.17-x86_64-5.txz.asc
drwxr-xr-x 2 root root 4096 2024-11-10 20:41 ./slackware64/y
-rw-r--r-- 1 root root 608 2024-11-10 20:20 ./slackware64/y/bsd-games-2.17-x86_64-6.txt
-rw-r--r-- 1 root root 1950780 2024-11-10 20:20 ./slackware64/y/bsd-games-2.17-x86_64-6.txz
-rw-r--r-- 1 root root 195 2024-11-10 20:20 ./slackware64/y/bsd-games-2.17-x86_64-6.txz.asc
-rwxr-xr-x 1 root root 2897 2009-06-24 22:06 ./slackware64/y/install-packages
-rw-r--r-- 1 root root 446 2006-09-18 10:41 ./slackware64/y/install.end
-rw-r--r-- 1 root root 1198 2020-12-30 21:55 ./slackware64/y/maketag
@ -5798,11 +5798,11 @@ drwxr-xr-x 2 root root 4096 2024-05-05 18:37 ./slackware64/y
-rw-r--r-- 1 root root 1488844 2024-05-05 17:22 ./slackware64/y/nethack-3.6.7-x86_64-2.txz
-rw-r--r-- 1 root root 195 2024-05-05 17:22 ./slackware64/y/nethack-3.6.7-x86_64-2.txz.asc
-rw-r--r-- 1 root root 26 2020-12-30 21:55 ./slackware64/y/tagfile
drwxr-xr-x 18 root root 4096 2024-11-09 20:32 ./source
-rw-r--r-- 1 root root 626128 2024-11-09 20:32 ./source/CHECKSUMS.md5
-rw-r--r-- 1 root root 195 2024-11-09 20:32 ./source/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 872551 2024-11-09 20:32 ./source/FILE_LIST
-rw-r--r-- 1 root root 30582193 2024-11-09 20:32 ./source/MANIFEST.bz2
drwxr-xr-x 18 root root 4096 2024-11-10 20:43 ./source
-rw-r--r-- 1 root root 625857 2024-11-10 20:43 ./source/CHECKSUMS.md5
-rw-r--r-- 1 root root 195 2024-11-10 20:43 ./source/CHECKSUMS.md5.asc
-rw-r--r-- 1 root root 876306 2024-11-10 20:43 ./source/FILE_LIST
-rw-r--r-- 1 root root 30660186 2024-11-10 20:43 ./source/MANIFEST.bz2
-rw-r--r-- 1 root root 828 2022-02-02 04:43 ./source/README.TXT
drwxr-xr-x 125 root root 4096 2024-11-08 17:37 ./source/a
-rw-r--r-- 1 root root 339 2023-09-28 19:06 ./source/a/FTBFSlog
@ -10102,7 +10102,7 @@ drwxr-xr-x 2 root root 4096 2024-11-03 22:56 ./source/kde/wcslib
-rw-r--r-- 1 root root 2662768 2024-10-28 13:58 ./source/kde/wcslib/wcslib-8.4.tar.lz
-rwxr-xr-x 1 root root 4397 2024-11-03 22:56 ./source/kde/wcslib/wcslib.SlackBuild
-rw-r--r-- 1 root root 44 2023-11-17 18:29 ./source/kde/wcslib/wcslib.url
drwxr-xr-x 439 root root 16384 2024-11-04 21:49 ./source/l
drwxr-xr-x 439 root root 16384 2024-11-10 17:34 ./source/l
-rw-r--r-- 1 root root 2653 2024-03-22 18:04 ./source/l/FTBFSlog
drwxr-xr-x 3 root root 4096 2022-03-06 19:58 ./source/l/GConf
-rw-r--r-- 1 root root 1559904 2013-01-22 02:48 ./source/l/GConf/GConf-3.2.6.tar.xz
@ -10889,9 +10889,9 @@ drwxr-xr-x 2 root root 4096 2018-01-05 18:45 ./source/l/id3lib/patches
-rw-r--r-- 1 root root 629 2017-09-11 16:30 ./source/l/id3lib/patches/id3lib.utf8_writing.patch.gz
-rw-r--r-- 1 root root 517 2017-09-11 16:30 ./source/l/id3lib/patches/id3lib.vbr_stack_smash.patch.gz
-rw-r--r-- 1 root root 927 2018-02-27 06:12 ./source/l/id3lib/slack-desc
drwxr-xr-x 2 root root 4096 2024-10-06 18:04 ./source/l/imagemagick
-rw-r--r-- 1 root root 10730649 2024-10-05 13:08 ./source/l/imagemagick/ImageMagick-7.1.1-39.tar.lz
-rw-r--r-- 1 root root 833 2024-10-05 13:47 ./source/l/imagemagick/ImageMagick-7.1.1-39.tar.lz.asc
drwxr-xr-x 2 root root 4096 2024-11-10 18:45 ./source/l/imagemagick
-rw-r--r-- 1 root root 10735085 2024-11-09 15:53 ./source/l/imagemagick/ImageMagick-7.1.1-40.tar.lz
-rw-r--r-- 1 root root 833 2024-11-09 16:46 ./source/l/imagemagick/ImageMagick-7.1.1-40.tar.lz.asc
-rw-r--r-- 1 root root 309 2016-05-17 04:08 ./source/l/imagemagick/doinst.sh.gz
-rwxr-xr-x 1 root root 7385 2024-10-06 18:04 ./source/l/imagemagick/imagemagick.SlackBuild
-rw-r--r-- 1 root root 81 2022-11-08 20:07 ./source/l/imagemagick/imagemagick.url
@ -12062,10 +12062,10 @@ drwxr-xr-x 2 root root 4096 2024-09-14 17:24 ./source/l/python-hatch-vcs
-rw-r--r-- 1 root root 34 2024-09-14 17:17 ./source/l/python-hatch-vcs/hatch-vcs.url
-rwxr-xr-x 1 root root 2969 2024-09-14 17:19 ./source/l/python-hatch-vcs/python-hatch-vcs.SlackBuild
-rw-r--r-- 1 root root 912 2024-09-14 17:25 ./source/l/python-hatch-vcs/slack-desc
drwxr-xr-x 2 root root 4096 2024-06-23 17:05 ./source/l/python-hatchling
-rw-r--r-- 1 root root 64632 2024-06-22 17:27 ./source/l/python-hatchling/hatchling-1.25.0.tar.gz
drwxr-xr-x 2 root root 4096 2024-11-10 18:45 ./source/l/python-hatchling
-rw-r--r-- 1 root root 54879 2024-11-10 15:22 ./source/l/python-hatchling/hatchling-1.26.1.tar.gz
-rw-r--r-- 1 root root 35 2024-01-24 20:36 ./source/l/python-hatchling/hatchling.url
-rwxr-xr-x 1 root root 3123 2024-04-05 17:26 ./source/l/python-hatchling/python-hatchling.SlackBuild
-rwxr-xr-x 1 root root 3040 2024-11-10 18:45 ./source/l/python-hatchling/python-hatchling.SlackBuild
-rw-r--r-- 1 root root 819 2024-02-04 18:45 ./source/l/python-hatchling/slack-desc
drwxr-xr-x 2 root root 4096 2024-03-29 03:06 ./source/l/python-html5lib
-rw-r--r-- 1 root root 195641 2020-06-22 23:27 ./source/l/python-html5lib/html5lib-python-1.1.tar.lz
@ -12245,10 +12245,10 @@ drwxr-xr-x 2 root root 4096 2024-11-09 19:10 ./source/l/python-wheel
-rw-r--r-- 1 root root 787 2021-02-06 19:09 ./source/l/python-wheel/slack-desc
-rw-r--r-- 1 root root 107426 2024-11-08 21:45 ./source/l/python-wheel/wheel-0.45.0.tar.gz
-rw-r--r-- 1 root root 31 2024-01-24 21:16 ./source/l/python-wheel/wheel.url
drwxr-xr-x 2 root root 4096 2024-09-13 18:10 ./source/l/python-zipp
drwxr-xr-x 2 root root 4096 2024-11-10 18:49 ./source/l/python-zipp
-rwxr-xr-x 1 root root 2908 2024-08-12 04:34 ./source/l/python-zipp/python-zipp.SlackBuild
-rw-r--r-- 1 root root 818 2021-11-17 19:03 ./source/l/python-zipp/slack-desc
-rw-r--r-- 1 root root 24199 2024-09-13 13:44 ./source/l/python-zipp/zipp-3.20.2.tar.gz
-rw-r--r-- 1 root root 24545 2024-11-10 15:05 ./source/l/python-zipp/zipp-3.21.0.tar.gz
-rw-r--r-- 1 root root 30 2021-11-17 19:00 ./source/l/python-zipp/zipp.url
drwxr-xr-x 2 root root 4096 2024-03-20 12:46 ./source/l/python2-pycairo
-rw-r--r-- 1 root root 200462 2023-04-10 04:44 ./source/l/python2-pycairo/pycairo-1.18.2.tar.gz
@ -12280,23 +12280,20 @@ drwxr-xr-x 2 root root 4096 2022-03-20 19:27 ./source/l/qt5/profile.d
-rw-r--r-- 1 root root 642958237 2024-10-31 01:02 ./source/l/qt5/qt-everywhere-src-5.15.15_20241031_933cb170.tar.lz
-rwxr-xr-x 1 root root 12142 2024-10-26 19:12 ./source/l/qt5/qt5.SlackBuild
-rw-r--r-- 1 root root 698 2024-02-27 19:56 ./source/l/qt5/slack-desc
drwxr-xr-x 4 root root 4096 2024-10-27 23:59 ./source/l/qt6
drwxr-xr-x 4 root root 4096 2024-11-10 17:35 ./source/l/qt6
-rw-r--r-- 1 root root 319 2013-12-17 17:08 ./source/l/qt6/doinst.sh
-rwxr-xr-x 1 root root 2477 2024-10-06 18:13 ./source/l/qt6/fetch_sources.sh
drwxr-xr-x 2 root root 4096 2024-10-14 23:19 ./source/l/qt6/patches
-rw-r--r-- 1 root root 8517 2024-10-14 18:48 ./source/l/qt6/patches/0a1d8fb26d1e89c82a0d35dd728d7e928a94d197.patch
-rw-r--r-- 1 root root 4429 2024-10-12 21:29 ./source/l/qt6/patches/4a368a06afa5929d8674d2e94c2d7cbd6ad85d4e.patch
-rw-r--r-- 1 root root 1442 2024-10-12 21:30 ./source/l/qt6/patches/687fc1601863ae7a67897bc3590b33bd3bdcc3bc.patch
-rwxr-xr-x 1 root root 2477 2024-11-09 20:37 ./source/l/qt6/fetch_sources.sh
drwxr-xr-x 2 root root 4096 2024-11-09 21:39 ./source/l/qt6/patches
-rw-r--r-- 1 root root 4990 2024-11-09 21:38 ./source/l/qt6/patches/861a7921ed7833a90f77b5fca436c789a4f9517c.patch
-rw-r--r-- 1 root root 628 2024-02-27 23:49 ./source/l/qt6/patches/nodejs-allow-32bit.patch
-rw-r--r-- 1 root root 417 2017-06-17 20:15 ./source/l/qt6/patches/qt5.mysql.h.diff
-rw-r--r-- 1 root root 948 2023-02-25 21:11 ./source/l/qt6/patches/qt6-webengine_32bit_compressing_files.patch
-rw-r--r-- 1 root root 346 2024-04-17 00:40 ./source/l/qt6/patches/qtwebengine-6.7.0-displaykey-header.patch
-rw-r--r-- 1 root root 27623 2024-08-08 03:31 ./source/l/qt6/patches/qtwebengine-ffmpeg-7.patch
drwxr-xr-x 2 root root 4096 2024-01-14 19:31 ./source/l/qt6/profile.d
-rw-r--r-- 1 root root 1102 2023-10-04 12:20 ./source/l/qt6/profile.d/qt6.csh
-rw-r--r-- 1 root root 971 2023-10-04 12:19 ./source/l/qt6/profile.d/qt6.sh
-rw-r--r-- 1 root root 958005312 2024-09-20 02:39 ./source/l/qt6/qt-everywhere-src-6.7.3_20240920_90e86aee.tar.lz
-rwxr-xr-x 1 root root 13216 2024-10-27 23:59 ./source/l/qt6/qt6.SlackBuild
-rw-r--r-- 1 root root 1017393566 2024-10-02 20:45 ./source/l/qt6/qt-everywhere-src-6.8.0_20241001_0c20a491.tar.lz
-rwxr-xr-x 1 root root 12908 2024-11-09 21:48 ./source/l/qt6/qt6.SlackBuild
-rw-r--r-- 1 root root 698 2024-02-27 19:56 ./source/l/qt6/slack-desc
drwxr-xr-x 2 root root 4096 2024-10-10 17:40 ./source/l/qtkeychain
-rw-r--r-- 1 root root 43196 2024-05-03 19:10 ./source/l/qtkeychain/qtkeychain-0.14.3.tar.lz
@ -12690,8 +12687,8 @@ drwxr-xr-x 2 root root 4096 2022-09-06 18:27 ./source/n/bsd-finger
-rw-r--r-- 1 root root 1479 2017-08-02 23:32 ./source/n/bsd-finger/bsd-finger-wide-char-support5.patch.gz
-rwxr-xr-x 1 root root 3941 2022-09-06 18:27 ./source/n/bsd-finger/bsd-finger.SlackBuild
-rw-r--r-- 1 root root 1071 2018-02-27 06:13 ./source/n/bsd-finger/slack-desc
drwxr-xr-x 2 root root 4096 2024-10-15 19:51 ./source/n/c-ares
-rw-r--r-- 1 root root 627986 2024-10-15 10:11 ./source/n/c-ares/c-ares-1.34.2.tar.lz
drwxr-xr-x 2 root root 4096 2024-11-09 22:25 ./source/n/c-ares
-rw-r--r-- 1 root root 625384 2024-11-09 17:40 ./source/n/c-ares/c-ares-1.34.3.tar.lz
-rwxr-xr-x 1 root root 4229 2024-07-24 20:54 ./source/n/c-ares/c-ares.SlackBuild
-rw-r--r-- 1 root root 970 2021-04-09 19:13 ./source/n/c-ares/slack-desc
drwxr-xr-x 2 root root 4096 2024-08-30 17:30 ./source/n/ca-certificates
@ -13123,9 +13120,9 @@ drwxr-xr-x 2 root root 4096 2021-02-13 05:32 ./source/n/net-tools
-rwxr-xr-x 1 root root 4292 2021-02-13 05:32 ./source/n/net-tools/net-tools.SlackBuild
-rw-r--r-- 1 root root 659 2017-11-12 19:13 ./source/n/net-tools/net-tools.config.h.gz
-rw-r--r-- 1 root root 970 2018-02-27 06:13 ./source/n/net-tools/slack-desc
drwxr-xr-x 2 root root 4096 2024-11-04 18:28 ./source/n/netatalk
drwxr-xr-x 2 root root 4096 2024-11-10 18:48 ./source/n/netatalk
-rw-r--r-- 1 root root 377 2020-02-07 01:00 ./source/n/netatalk/doinst.sh.gz
-rw-r--r-- 1 root root 885880 2024-11-02 21:01 ./source/n/netatalk/netatalk-4.0.4.tar.xz
-rw-r--r-- 1 root root 922892 2024-11-10 08:43 ./source/n/netatalk/netatalk-4.0.5.tar.xz
-rwxr-xr-x 1 root root 4864 2024-10-05 17:57 ./source/n/netatalk/netatalk.SlackBuild
-rw-r--r-- 1 root root 63 2023-01-13 19:51 ./source/n/netatalk/netatalk.url
-rw-r--r-- 1 root root 1009 2018-09-05 21:12 ./source/n/netatalk/rc.atalk.new
@ -15146,7 +15143,7 @@ drwxr-xr-x 2 root root 12288 2024-07-29 17:55 ./source/x/x11/slack-desc
-rw-r--r-- 1 root root 716 2012-04-08 02:21 ./source/x/x11/slack-desc/xwd
-rw-r--r-- 1 root root 702 2012-04-08 02:21 ./source/x/x11/slack-desc/xwininfo
-rw-r--r-- 1 root root 668 2012-04-07 23:42 ./source/x/x11/slack-desc/xwud
drwxr-xr-x 12 root root 4096 2024-11-08 18:46 ./source/x/x11/src
drwxr-xr-x 12 root root 4096 2024-11-09 22:30 ./source/x/x11/src
drwxr-xr-x 2 root root 4096 2024-11-08 18:42 ./source/x/x11/src/app
-rw-r--r-- 1 root root 120780 2024-06-16 17:38 ./source/x/x11/src/app/appres-1.0.7.tar.xz
-rw-r--r-- 1 root root 117904 2023-01-28 17:31 ./source/x/x11/src/app/beforelight-1.0.6.tar.xz
@ -15312,7 +15309,7 @@ drwxr-xr-x 2 root root 4096 2024-03-03 19:29 ./source/x/x11/src/font
-rwxr-xr-x 1 root root 2154 2020-07-09 18:37 ./source/x/x11/src/get-xf86-video-sis.sh
-rwxr-xr-x 1 root root 2154 2020-07-09 18:37 ./source/x/x11/src/get-xf86-video-v4l.sh
-rwxr-xr-x 1 root root 2205 2022-08-08 20:05 ./source/x/x11/src/get-xf86-video-vmware.sh
drwxr-xr-x 2 root root 4096 2024-11-06 19:26 ./source/x/x11/src/lib
drwxr-xr-x 2 root root 4096 2024-11-09 22:30 ./source/x/x11/src/lib
-rw-r--r-- 1 root root 293016 2024-08-02 00:15 ./source/x/x11/src/lib/libFS-1.0.10.tar.xz
-rw-r--r-- 1 root root 335960 2022-12-08 16:09 ./source/x/x11/src/lib/libICE-1.1.1.tar.xz
-rw-r--r-- 1 root root 306944 2022-12-20 02:26 ./source/x/x11/src/lib/libSM-1.2.4.tar.xz
@ -15356,7 +15353,7 @@ drwxr-xr-x 2 root root 4096 2024-11-06 19:26 ./source/x/x11/src/lib
-rw-r--r-- 1 root root 259024 2022-12-08 16:08 ./source/x/x11/src/lib/libxshmfence-1.3.2.tar.xz
-rw-r--r-- 1 root root 649200 2024-11-05 17:04 ./source/x/x11/src/lib/pixman-0.44.0.tar.xz
-rw-r--r-- 1 root root 266788 2023-10-19 20:39 ./source/x/x11/src/lib/xcb-util-cursor-0.1.5.tar.xz
-rw-r--r-- 1 root root 175624 2024-10-12 20:45 ./source/x/x11/src/lib/xtrans-1.5.1.tar.xz
-rw-r--r-- 1 root root 176680 2024-11-09 17:11 ./source/x/x11/src/lib/xtrans-1.5.2.tar.xz
drwxr-xr-x 2 root root 4096 2024-04-15 19:31 ./source/x/x11/src/proto
-rw-r--r-- 1 root root 151748 2024-04-15 14:39 ./source/x/x11/src/proto/xcb-proto-1.17.0.tar.xz
-rw-r--r-- 1 root root 760500 2024-03-26 07:17 ./source/x/x11/src/proto/xorgproto-2024.1.tar.xz
@ -16038,11 +16035,11 @@ drwxr-xr-x 2 root root 4096 2022-12-17 20:36 ./source/xfce/xfwm4
-rw-r--r-- 1 root root 886 2020-12-23 08:10 ./source/xfce/xfwm4/xinitrc.xfce
drwxr-xr-x 4 root root 4096 2020-12-30 21:23 ./source/y
-rw-r--r-- 1 root root 111 2022-02-07 20:58 ./source/y/FTBFSlog
drwxr-xr-x 3 root root 4096 2024-05-04 00:01 ./source/y/bsd-games
drwxr-xr-x 3 root root 4096 2024-11-10 20:15 ./source/y/bsd-games
-rw-r--r-- 1 root root 1794497 2005-02-18 19:17 ./source/y/bsd-games/bsd-games-2.17.tar.lz
-rw-r--r-- 1 root root 164 1999-09-27 21:18 ./source/y/bsd-games/bsd-games-login-fortune.csh
-rw-r--r-- 1 root root 164 2010-05-11 19:26 ./source/y/bsd-games/bsd-games-login-fortune.sh
-rwxr-xr-x 1 root root 8233 2024-05-11 04:02 ./source/y/bsd-games/bsd-games.SlackBuild
-rw-r--r-- 1 root root 289 2024-11-10 20:18 ./source/y/bsd-games/bsd-games-login-fortune.csh
-rw-r--r-- 1 root root 318 2024-11-10 20:19 ./source/y/bsd-games/bsd-games-login-fortune.sh
-rwxr-xr-x 1 root root 8233 2024-11-10 20:04 ./source/y/bsd-games/bsd-games.SlackBuild
-rw-r--r-- 1 root root 15107 2002-03-10 05:09 ./source/y/bsd-games/fortunes-linuxcookie.tar.gz
-rw-r--r-- 1 root root 104848 1993-10-25 00:02 ./source/y/bsd-games/hangman-words.gz
drwxr-xr-x 2 root root 4096 2024-05-11 04:00 ./source/y/bsd-games/patches

View file

@ -29,7 +29,7 @@ BUILD=${BUILD:-1}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i586 ;;
i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;
@ -44,18 +44,15 @@ if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then
exit 0
fi
if [ "${ARCH}" = "i586" ]; then
SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "s390" ]; then
SLKCFLAGS="-O2"
if [ "${ARCH}" = "i686" ]; then
SLKCFLAGS="-O2 -march=pentium4 -mtune=generic"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
SLKCFLAGS="-O2 -march=x86-64 -mtune=generic -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
TMP=${TMP:-/tmp}

View file

@ -21,7 +21,7 @@
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
BRANCH="6.7.3"
BRANCH="6.8.0"
rm -f qt-everywhere-src-*.tar*

View file

@ -1,225 +0,0 @@
From 0a1d8fb26d1e89c82a0d35dd728d7e928a94d197 Mon Sep 17 00:00:00 2001
From: Mitch Curtis <mitch.curtis@qt.io>
Date: Tue, 24 Sep 2024 14:44:25 +0800
Subject: [PATCH 1/1] ListView: fix countChanged not being emitted in certain
cases
This broke after 477c15def834bd49553c00b90f3a2006456ea931.
countChanged would have normally been emitted in the call to
applyModelChanges that we skipped after adding the q->size().isNull()
check.
We can check hasPendingChanges() to know if a count change
is pending (which is also the first thing applyModelChanges checks
before doing its work), and if so, emit countChanged so that
any bindings that are relying on it can function as expected.
Fixes: QTBUG-129165
Pick-to: 6.5 6.7 6.8 dev
Change-Id: Ic045f1870b39d192f6880e23daab03fd73a16d58
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
---
src/quick/items/qquickitemview.cpp | 31 +++++++++++++++++-----
src/quick/items/qquickitemview_p_p.h | 2 ++
.../data/visibleBoundToCountGreaterThanZero.qml | 31 ++++++++++++++++++++++
.../quick/qquicklistview2/tst_qquicklistview2.cpp | 20 ++++++++++++++
4 files changed, 78 insertions(+), 6 deletions(-)
create mode 100644 tests/auto/quick/qquicklistview2/data/visibleBoundToCountGreaterThanZero.qml
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 0a6a3e949bd..19e5b7f4029 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -10,6 +10,7 @@
QT_BEGIN_NAMESPACE
Q_LOGGING_CATEGORY(lcItemViewDelegateLifecycle, "qt.quick.itemview.lifecycle")
+Q_LOGGING_CATEGORY(lcCount, "qt.quick.itemview.count")
// Default cacheBuffer for all views.
#ifndef QML_VIEW_DEFAULTCACHEBUFFER
@@ -223,7 +224,7 @@ void QQuickItemView::setModel(const QVariant &m)
this, SLOT(modelUpdated(QQmlChangeSet,bool)));
if (QQmlDelegateModel *dataModel = qobject_cast<QQmlDelegateModel*>(d->model))
QObjectPrivate::connect(dataModel, &QQmlDelegateModel::delegateChanged, d, &QQuickItemViewPrivate::applyDelegateChange);
- emit countChanged();
+ d->emitCountChanged();
}
emit modelChanged();
d->moveReason = QQuickItemViewPrivate::Other;
@@ -255,7 +256,7 @@ void QQuickItemView::setDelegate(QQmlComponent *delegate)
int oldCount = dataModel->count();
dataModel->setDelegate(delegate);
if (oldCount != dataModel->count())
- emit countChanged();
+ d->emitCountChanged();
}
emit delegateChanged();
d->delegateValidated = false;
@@ -1125,6 +1126,14 @@ void QQuickItemViewPrivate::showVisibleItems() const
}
}
+// Simplifies debugging of count.
+void QQuickItemViewPrivate::emitCountChanged()
+{
+ Q_Q(QQuickItemView);
+ qCDebug(lcCount).nospace() << "about to emit countChanged for " << q << "; count changed to " << q->count();
+ emit q->countChanged();
+}
+
void QQuickItemViewPrivate::itemGeometryChanged(QQuickItem *item, QQuickGeometryChange change,
const QRectF &oldGeometry)
{
@@ -1224,7 +1233,7 @@ void QQuickItemView::modelUpdated(const QQmlChangeSet &changeSet, bool reset)
d->updateTrackedItem();
}
d->moveReason = QQuickItemViewPrivate::Other;
- emit countChanged();
+ d->emitCountChanged();
#if QT_CONFIG(quick_viewtransitions)
if (d->transitioner && d->transitioner->populateTransition)
d->forceLayoutPolish();
@@ -1487,7 +1496,7 @@ void QQuickItemView::componentComplete()
d->fixupPosition();
}
if (d->model && d->model->count())
- emit countChanged();
+ d->emitCountChanged();
}
@@ -1813,7 +1822,7 @@ void QQuickItemViewPrivate::refill(qreal from, qreal to)
}
if (prevCount != itemCount)
- emit q->countChanged();
+ emitCountChanged();
} while (currentChanges.hasPendingChanges() || bufferedChanges.hasPendingChanges());
storeFirstVisibleItemPosition();
}
@@ -1864,6 +1873,16 @@ void QQuickItemViewPrivate::layout()
// if either dimension is negative, but apparently we support negative-sized
// views (see tst_QQuickListView::resizeView).
if ((!isValid() && !visibleItems.size()) || q->size().isNull()) {
+ if (q->size().isNull() && hasPendingChanges()) {
+ // count() refers to the number of items in the model, not in the view
+ // (which is why we don't emit for the !visibleItems.size() case).
+ // If there are pending model changes, emit countChanged in order to
+ // support the use case of QTBUG-129165, where visible is bound to count > 0
+ // and the ListView is in a layout with Layout.preferredHeight bound to
+ // contentHeight. This ensures that a hidden ListView will become visible.
+ emitCountChanged();
+ }
+
clear();
setPosition(contentStartOffset());
updateViewport();
@@ -2138,7 +2157,7 @@ bool QQuickItemViewPrivate::applyModelChanges(ChangeResult *totalInsertionResult
updateSections();
if (prevItemCount != itemCount)
- emit q->countChanged();
+ emitCountChanged();
if (!visibleAffected && viewportChanged)
updateViewport();
diff --git a/src/quick/items/qquickitemview_p_p.h b/src/quick/items/qquickitemview_p_p.h
index 9cb6ea8fd5c..b5d70c6d6f4 100644
--- a/src/quick/items/qquickitemview_p_p.h
+++ b/src/quick/items/qquickitemview_p_p.h
@@ -229,6 +229,8 @@ public:
releaseItem(item, reusableFlag);
}
+ void emitCountChanged();
+
virtual QQuickItemViewAttached *getAttachedObject(const QObject *) const { return nullptr; }
QPointer<QQmlInstanceModel> model;
diff --git a/tests/auto/quick/qquicklistview2/data/visibleBoundToCountGreaterThanZero.qml b/tests/auto/quick/qquicklistview2/data/visibleBoundToCountGreaterThanZero.qml
new file mode 100644
index 00000000000..e75c779584e
--- /dev/null
+++ b/tests/auto/quick/qquicklistview2/data/visibleBoundToCountGreaterThanZero.qml
@@ -0,0 +1,31 @@
+import QtQuick
+import QtQuick.Layouts
+
+ColumnLayout {
+ property alias listView: listView
+
+ ListView {
+ id: listView
+
+ visible: count > 0 // actual defect. countChanged never fires so this never turns true
+
+ Layout.fillWidth: true
+ Layout.preferredHeight: contentHeight // grow with content, initially 0
+
+ model: ListModel {
+ id: idModel
+ }
+
+ delegate: Text {
+ required property string name
+ text: name
+ }
+
+ Timer {
+ running: true
+ interval: 10
+ repeat: true
+ onTriggered: idModel.append({name:"Hello"})
+ }
+ }
+}
diff --git a/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp b/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp
index 96dd27e7d28..c07a30d4011 100644
--- a/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp
+++ b/tests/auto/quick/qquicklistview2/tst_qquicklistview2.cpp
@@ -18,6 +18,8 @@ Q_LOGGING_CATEGORY(lcTests, "qt.quick.tests")
using namespace QQuickViewTestUtils;
using namespace QQuickVisualTestUtils;
+static const int oneSecondInMs = 1000;
+
class tst_QQuickListView2 : public QQmlDataTest
{
Q_OBJECT
@@ -68,6 +70,7 @@ private slots:
void bindingDirectlyOnPositionInHeaderAndFooterDelegates();
void clearObjectListModel();
+ void visibleBoundToCountGreaterThanZero();
private:
void flickWithTouch(QQuickWindow *window, const QPoint &from, const QPoint &to);
@@ -1312,6 +1315,23 @@ void tst_QQuickListView2::clearObjectListModel()
QVERIFY(!list.itemAtIndex(0));
}
+void tst_QQuickListView2::visibleBoundToCountGreaterThanZero()
+{
+ QQuickView window;
+ QVERIFY(QQuickTest::showView(window, testFileUrl("visibleBoundToCountGreaterThanZero.qml")));
+
+ auto *listView = window.rootObject()->property("listView").value<QQuickListView *>();
+ QVERIFY(listView);
+
+ QSignalSpy countChangedSpy(listView, SIGNAL(countChanged()));
+ QVERIFY(countChangedSpy.isValid());
+
+ QTRY_COMPARE_GT_WITH_TIMEOUT(listView->count(), 1, oneSecondInMs);
+ // Using the TRY variant here as well is necessary.
+ QTRY_COMPARE_GT_WITH_TIMEOUT(countChangedSpy.count(), 1, oneSecondInMs);
+ QVERIFY(listView->isVisible());
+}
+
QTEST_MAIN(tst_QQuickListView2)
#include "tst_qquicklistview2.moc"
--
2.16.3

View file

@ -1,93 +0,0 @@
From 4a368a06afa5929d8674d2e94c2d7cbd6ad85d4e Mon Sep 17 00:00:00 2001
From: Paul Wicking <paul.wicking@qt.io>
Date: Fri, 13 Sep 2024 14:37:38 +0200
Subject: [PATCH] QDoc: Adapt to breaking changes in LLVM 19
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Due to upstream changes in LLVM 19, QDoc fails to compile when linked
against Clang libraries from this version of LLVM. Three issues arise;
- Two cases of passing an argument of wrong type to a function.
- One case of accessing a non-existing member of an enumeration.
One upstream change (see [0]) is responsible for two of the issues:
- `get_expression_as_string()` is modified such that it correctly
obtains the parameter type when calling
`get_fully_qualified_type_name()`, by appending
`.getArgument().getAsType()` to the call to `getDefaultArgument()`.
- `get_default_value_initializer_as_string()` is modified such that it
correctly passes the source expression to
`get_expression_as_string()`, by appending `.getSourceExpression()`
to the call to `getDefaultArgument()`.
Both of these changes are is incompatible with QDoc built against
Clang libraries from earlier versions of LLVM, and are therefore
wrapped in #if-ery.
Finally, LLVM 19 drops a value used in QDoc from the enumeration
`clang::TemplateName::Qualified`, see [1]. The enum value `Fully` is
removed without replacement. The enum is left with two values,
`AsWritten` and `None`. QDoc is modified such that it relies on the
former of the two. This change doesn't cause any change in output from
QDoc when built against Clang libraries from LLVM 17 and 18, and the
change is therefore not wrapped in #if-ery.
[0] - https://github.com/llvm/llvm-project/commit/e42b799bb28815431f2c5a95f7e13fde3f1b36a1
[1] - https://github.com/llvm/llvm-project/commit/9c4a716c12920
Done-with: Khem Raj <raj.khem@gmail.com>
Fixes: QTBUG-128644
Pick-to: 6.8
Change-Id: I34fbb46cf28b5676b4adda5e563d6d59fc40f602
Reviewed-by: Luca Di Sera <luca.disera@qt.io>
Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
---
src/qdoc/qdoc/src/qdoc/clangcodeparser.cpp | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/qdoc/qdoc/src/qdoc/clangcodeparser.cpp b/src/qdoc/qdoc/src/qdoc/clangcodeparser.cpp
index eb3a781bc..385d651ec 100644
--- a/src/qdoc/qdoc/src/qdoc/clangcodeparser.cpp
+++ b/src/qdoc/qdoc/src/qdoc/clangcodeparser.cpp
@@ -207,9 +207,15 @@ static std::string get_expression_as_string(const clang::Expr* expression, const
* If the parameter has no default value the empty string will be returned.
*/
static std::string get_default_value_initializer_as_string(const clang::TemplateTypeParmDecl* parameter) {
+#if LIBCLANG_VERSION_MAJOR >= 19
+ return (parameter && parameter->hasDefaultArgument()) ?
+ get_fully_qualified_type_name(parameter->getDefaultArgument().getArgument().getAsType(), parameter->getASTContext()) :
+ "";
+#else
return (parameter && parameter->hasDefaultArgument()) ?
get_fully_qualified_type_name(parameter->getDefaultArgument(), parameter->getASTContext()) :
"";
+#endif
}
@@ -223,8 +229,13 @@ static std::string get_default_value_initializer_as_string(const clang::Template
* If the parameter as no default value the empty string will be returned.
*/
static std::string get_default_value_initializer_as_string(const clang::NonTypeTemplateParmDecl* parameter) {
+#if LIBCLANG_VERSION_MAJOR >= 19
+ return (parameter && parameter->hasDefaultArgument()) ?
+ get_expression_as_string(parameter->getDefaultArgument().getSourceExpression(), parameter->getASTContext()) : "";
+#else
return (parameter && parameter->hasDefaultArgument()) ?
get_expression_as_string(parameter->getDefaultArgument(), parameter->getASTContext()) : "";
+#endif
}
@@ -244,7 +255,7 @@ static std::string get_default_value_initializer_as_string(const clang::Template
const clang::TemplateName template_name = parameter->getDefaultArgument().getArgument().getAsTemplate();
llvm::raw_string_ostream ss{default_value};
- template_name.print(ss, parameter->getASTContext().getPrintingPolicy(), clang::TemplateName::Qualified::Fully);
+ template_name.print(ss, parameter->getASTContext().getPrintingPolicy(), clang::TemplateName::Qualified::AsWritten);
}
return default_value;

View file

@ -1,30 +0,0 @@
From 687fc1601863ae7a67897bc3590b33bd3bdcc3bc Mon Sep 17 00:00:00 2001
From: Joerg Bornemann <joerg.bornemann@qt.io>
Date: Mon, 15 Jul 2024 15:17:04 +0200
Subject: [PATCH] lupdate/clang: Fix deprecation warning with llvm 18
Change-Id: Ib22dda34bfdf7a1cd0e9932eec0f6f13a912a688
Reviewed-by: Lucie Gerard <lucie.gerard@qt.io>
---
src/linguist/lupdate/clangtoolastreader.cpp | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/linguist/lupdate/clangtoolastreader.cpp b/src/linguist/lupdate/clangtoolastreader.cpp
index 6b85c6ccb3..3db9e0d64a 100644
--- a/src/linguist/lupdate/clangtoolastreader.cpp
+++ b/src/linguist/lupdate/clangtoolastreader.cpp
@@ -782,8 +782,14 @@ bool LupdateVisitor::VisitNamedDecl(clang::NamedDecl *namedDeclaration)
if (!fullLocation.isValid() || !fullLocation.getFileEntry())
return true;
+#if (LUPDATE_CLANG_VERSION >= LUPDATE_CLANG_VERSION_CHECK(18,0,0))
+ auto fileEntry = fullLocation.getFileEntryRef();
+ if (fileEntry && !LupdatePrivate::isFileSignificant(fileEntry->getName().str()))
+ return true;
+#else
if (!LupdatePrivate::isFileSignificant(fullLocation.getFileEntry()->getName().str()))
return true;
+#endif
qCDebug(lcClang) << "NamedDecl Name: " << QString::fromStdString(namedDeclaration->getQualifiedNameAsString());
qCDebug(lcClang) << "NamedDecl source: " << QString::fromStdString(namedDeclaration->getSourceRange().printToString(

View file

@ -0,0 +1,130 @@
From 861a7921ed7833a90f77b5fca436c789a4f9517c Mon Sep 17 00:00:00 2001
From: Mitch Curtis <mitch.curtis@qt.io>
Date: Tue, 22 Oct 2024 13:26:08 +0800
Subject: [PATCH] QQuickItemView: fix crash with zero-size SwipeView that uses
Repeater
When running the minimal example from the bug report, the order of
events is:
1. deletables are iterated in QQuickRepeater::clear(), and deleteLater
is called on the delegate item.
2. deletables are unparented. This causes Container (SwipeView) to be
notified of the parent change and it removes the item. Part of this
involves changing the currentIndex, since the removed item was current.
3. SwipeView's contentItem (ListView) has its currentIndex bound to the
container's, so QQuickItemView::setCurrentIndex is called.
4. setCurrentIndex calls updateCurrent, which detects that the
currentIndex (which is -1, because there was only one item) is out of
range and so releases the item. This causes it to be added to
unrequestedItems, even though it has been scheduled for deletion.
This patch makes QQuickItemView detect that the item is going to be
deleted and not add it to the list of deletables.
Fixes: QTBUG-129622
Pick-to: 6.5
Change-Id: I999aedbdfafc61ff6d33eb6579331f470e9c1454
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
(cherry picked from commit 18a6a658aaf25fa8c380daef8a72dee4c1661164)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
---
src/quick/items/qquickitemview.cpp | 4 +-
.../quickcontrols/controls/data/tst_swipeview.qml | 59 ++++++++++++++++++++++
2 files changed, 62 insertions(+), 1 deletion(-)
diff --git a/src/quick/items/qquickitemview.cpp b/src/quick/items/qquickitemview.cpp
index 19e5b7f4029..dabd5630dbc 100644
--- a/src/quick/items/qquickitemview.cpp
+++ b/src/quick/items/qquickitemview.cpp
@@ -2499,7 +2499,9 @@ bool QQuickItemViewPrivate::releaseItem(FxViewItem *item, QQmlInstanceModel::Reu
// One case where this can happen is moving an item out of one ObjectModel and into another.
QQuickItemPrivate::get(item->item)->setCulled(true);
}
- if (!isClearing)
+ // If deleteLater was called, the item isn't long for this world and so we shouldn't store references to it.
+ // This can happen when a Repeater is used to populate items in SwipeView's ListView contentItem.
+ if (!isClearing && !QObjectPrivate::get(item->item)->deleteLaterCalled)
unrequestedItems.insert(item->item, model->indexOf(item->item, q));
} else if (flags & QQmlInstanceModel::Destroyed) {
item->item->setParentItem(nullptr);
diff --git a/tests/auto/quickcontrols/controls/data/tst_swipeview.qml b/tests/auto/quickcontrols/controls/data/tst_swipeview.qml
index 3a7558c0e4d..a3dd16c3044 100644
--- a/tests/auto/quickcontrols/controls/data/tst_swipeview.qml
+++ b/tests/auto/quickcontrols/controls/data/tst_swipeview.qml
@@ -4,6 +4,7 @@
import QtQuick
import QtTest
import QtQuick.Controls
+import QtQuick.Layouts
TestCase {
id: testCase
@@ -760,4 +761,62 @@ TestCase {
tryCompare(swipeListView, "contentX", swipeListView.width, 1000)
compare(item2.x, swipeListView.width)
}
+
+ Component {
+ id: zeroSizeSwipeViewWithRepeatersComponent
+
+ Item {
+ objectName: "rootItem"
+ anchors.fill: parent
+
+ property alias swipeView: swipeView
+ property int d
+
+ Timer {
+ interval: 2
+ running: true
+ repeat: false
+ onTriggered: d = 2
+ }
+
+ SwipeView {
+ id: swipeView
+ contentItem.objectName: "swipeViewListView"
+
+ Repeater {
+ objectName: "swipeViewContentItemRepeater"
+ model: [
+ {
+ title: d
+ }
+ ]
+
+ delegate: GridLayout {
+ objectName: "gridLayoutDelegate"
+
+ Repeater {
+ id: repeater
+ objectName: "delegateRepeater"
+ model: d
+ delegate: Item {
+ objectName: "delegate" + index
+
+ required property int index
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ // QTBUG-129622
+ function test_zeroSizeSwipeViewWithRepeaters() {
+ let root = createTemporaryObject(zeroSizeSwipeViewWithRepeatersComponent, testCase)
+ verify(root)
+
+ let swipeView = root.swipeView
+ tryCompare(root, "d", 2)
+ // Shouldn't crash when the model is changed.
+ }
}
--
2.16.3

View file

@ -1,585 +0,0 @@
From 6e554a30893150793c2638e3689cf208ffc8e375 Mon Sep 17 00:00:00 2001
From: Dale Curtis <dalecurtis@chromium.org>
Date: Sat, 2 Apr 2022 05:13:53 +0000
Subject: [PATCH] Roll src/third_party/ffmpeg/ 574c39cce..32b2d1d526 (1125
commits)
https://chromium.googlesource.com/chromium/third_party/ffmpeg.git/+log/574c39cce323..32b2d1d526
Created with:
roll-dep src/third_party/ffmpeg
Fixed: 1293918
Cq-Include-Trybots: luci.chromium.try:mac_chromium_asan_rel_ng,linux_chromium_asan_rel_ng,linux_chromium_chromeos_asan_rel_ng
Change-Id: I41945d0f963e3d1f65940067bac22f63b68e37d2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3565647
Auto-Submit: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Dale Curtis <dalecurtis@chromium.org>
Cr-Commit-Position: refs/heads/main@{#988253}
---
.../clear_key_cdm/ffmpeg_cdm_audio_decoder.cc | 29 ++++++++++---------
media/ffmpeg/ffmpeg_common.cc | 11 +++----
media/filters/audio_file_reader.cc | 9 +++---
media/filters/audio_file_reader_unittest.cc | 6 ++--
.../filters/audio_video_metadata_extractor.cc | 11 +++++--
.../filters/ffmpeg_aac_bitstream_converter.cc | 7 +++--
...ffmpeg_aac_bitstream_converter_unittest.cc | 2 +-
media/filters/ffmpeg_audio_decoder.cc | 13 +++++----
8 files changed, 51 insertions(+), 37 deletions(-)
diff --git a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
index e4fc3f460e2..9b1ad9f7675 100644
--- a/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
+++ b/media/cdm/library_cdm/clear_key_cdm/ffmpeg_cdm_audio_decoder.cc
@@ -74,7 +74,7 @@ void CdmAudioDecoderConfigToAVCodecContext(
codec_context->sample_fmt = AV_SAMPLE_FMT_NONE;
}
- codec_context->channels = config.channel_count;
+ codec_context->ch_layout.nb_channels = config.channel_count;
codec_context->sample_rate = config.samples_per_second;
if (config.extra_data) {
@@ -124,8 +124,8 @@ void CopySamples(cdm::AudioFormat cdm_format,
case cdm::kAudioFormatPlanarS16:
case cdm::kAudioFormatPlanarF32: {
const int decoded_size_per_channel =
- decoded_audio_size / av_frame.channels;
- for (int i = 0; i < av_frame.channels; ++i) {
+ decoded_audio_size / av_frame.ch_layout.nb_channels;
+ for (int i = 0; i < av_frame.ch_layout.nb_channels; ++i) {
memcpy(output_buffer, av_frame.extended_data[i],
decoded_size_per_channel);
output_buffer += decoded_size_per_channel;
@@ -185,13 +185,14 @@ bool FFmpegCdmAudioDecoder::Initialize(
// Success!
decoding_loop_ = std::make_unique<FFmpegDecodingLoop>(codec_context_.get());
samples_per_second_ = config.samples_per_second;
- bytes_per_frame_ = codec_context_->channels * config.bits_per_channel / 8;
+ bytes_per_frame_ =
+ codec_context_->ch_layout.nb_channels * config.bits_per_channel / 8;
output_timestamp_helper_ =
std::make_unique<AudioTimestampHelper>(config.samples_per_second);
is_initialized_ = true;
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
av_sample_format_ = codec_context_->sample_fmt;
return true;
@@ -291,18 +292,19 @@ cdm::Status FFmpegCdmAudioDecoder::DecodeBuffer(
for (auto& frame : audio_frames) {
int decoded_audio_size = 0;
if (frame->sample_rate != samples_per_second_ ||
- frame->channels != channels_ || frame->format != av_sample_format_) {
+ frame->ch_layout.nb_channels != channels_ ||
+ frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
<< " Sample Rate: " << frame->sample_rate << " vs "
<< samples_per_second_
<< ", Channels: " << frame->ch_layout.nb_channels << " vs "
<< channels_ << ", Sample Format: " << frame->format << " vs "
<< av_sample_format_;
return cdm::kDecodeError;
}
decoded_audio_size = av_samples_get_buffer_size(
- nullptr, codec_context_->channels, frame->nb_samples,
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
codec_context_->sample_fmt, 1);
if (!decoded_audio_size)
continue;
@@ -320,9 +323,9 @@ bool FFmpegCdmAudioDecoder::OnNewFrame(
size_t* total_size,
std::vector<std::unique_ptr<AVFrame, ScopedPtrAVFreeFrame>>* audio_frames,
AVFrame* frame) {
- *total_size += av_samples_get_buffer_size(
- nullptr, codec_context_->channels, frame->nb_samples,
- codec_context_->sample_fmt, 1);
+ *total_size += av_samples_get_buffer_size(
+ nullptr, codec_context_->ch_layout.nb_channels, frame->nb_samples,
+ codec_context_->sample_fmt, 1);
audio_frames->emplace_back(av_frame_clone(frame));
return true;
}
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 87ca8969626..76f03d6608e 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -345,10 +345,11 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
codec_context->sample_fmt, codec_context->codec_id);
ChannelLayout channel_layout =
- codec_context->channels > 8
+ codec_context->ch_layout.nb_channels > 8
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(codec_context->channel_layout,
- codec_context->channels);
+ : ChannelLayoutToChromeChannelLayout(
+ codec_context->ch_layout.u.mask,
+ codec_context->ch_layout.nb_channels);
int sample_rate = codec_context->sample_rate;
switch (codec) {
@@ -401,7 +402,7 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
extra_data, encryption_scheme, seek_preroll,
codec_context->delay);
if (channel_layout == CHANNEL_LAYOUT_DISCRETE)
- config->SetChannelsForDiscrete(codec_context->channels);
+ config->SetChannelsForDiscrete(codec_context->ch_layout.nb_channels);
#if BUILDFLAG(ENABLE_PLATFORM_AC3_EAC3_AUDIO)
// These are bitstream formats unknown to ffmpeg, so they don't have
@@ -470,7 +471,7 @@ void AudioDecoderConfigToAVCodecContext(const AudioDecoderConfig& config,
// TODO(scherkus): should we set |channel_layout|? I'm not sure if FFmpeg uses
// said information to decode.
- codec_context->channels = config.channels();
+ codec_context->ch_layout.nb_channels = config.channels();
codec_context->sample_rate = config.samples_per_second();
if (config.extra_data().empty()) {
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index 5f257bdfaa6..e1be5aa9a5b 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -113,14 +113,15 @@ bool AudioFileReader::OpenDecoder() {
// Verify the channel layout is supported by Chrome. Acts as a sanity check
// against invalid files. See http://crbug.com/171962
- if (ChannelLayoutToChromeChannelLayout(codec_context_->channel_layout,
- codec_context_->channels) ==
+ if (ChannelLayoutToChromeChannelLayout(
+ codec_context_->ch_layout.u.mask,
+ codec_context_->ch_layout.nb_channels) ==
CHANNEL_LAYOUT_UNSUPPORTED) {
return false;
}
// Store initial values to guard against midstream configuration changes.
- channels_ = codec_context_->channels;
+ channels_ = codec_context_->ch_layout.nb_channels;
audio_codec_ = CodecIDToAudioCodec(codec_context_->codec_id);
sample_rate_ = codec_context_->sample_rate;
av_sample_format_ = codec_context_->sample_fmt;
@@ -223,7 +224,7 @@ bool AudioFileReader::OnNewFrame(
if (frames_read < 0)
return false;
- const int channels = frame->channels;
+ const int channels = frame->ch_layout.nb_channels;
if (frame->sample_rate != sample_rate_ || channels != channels_ ||
frame->format != av_sample_format_) {
DLOG(ERROR) << "Unsupported midstream configuration change!"
diff --git a/media/filters/ffmpeg_aac_bitstream_converter.cc b/media/filters/ffmpeg_aac_bitstream_converter.cc
index 6f231c85729..ca5e5fb927d 100644
--- a/media/filters/ffmpeg_aac_bitstream_converter.cc
+++ b/media/filters/ffmpeg_aac_bitstream_converter.cc
@@ -195,14 +195,15 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
if (!header_generated_ || codec_ != stream_codec_parameters_->codec_id ||
audio_profile_ != stream_codec_parameters_->profile ||
sample_rate_index_ != sample_rate_index ||
- channel_configuration_ != stream_codec_parameters_->channels ||
+ channel_configuration_ !=
+ stream_codec_parameters_->ch_layout.nb_channels ||
frame_length_ != header_plus_packet_size) {
header_generated_ =
GenerateAdtsHeader(stream_codec_parameters_->codec_id,
0, // layer
stream_codec_parameters_->profile, sample_rate_index,
0, // private stream
- stream_codec_parameters_->channels,
+ stream_codec_parameters_->ch_layout.nb_channels,
0, // originality
0, // home
0, // copyrighted_stream
@@ -214,7 +215,7 @@ bool FFmpegAACBitstreamConverter::ConvertPacket(AVPacket* packet) {
codec_ = stream_codec_parameters_->codec_id;
audio_profile_ = stream_codec_parameters_->profile;
sample_rate_index_ = sample_rate_index;
- channel_configuration_ = stream_codec_parameters_->channels;
+ channel_configuration_ = stream_codec_parameters_->ch_layout.nb_channels;
frame_length_ = header_plus_packet_size;
}
diff --git a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
index 1fd4c5ccd7d..f59bcd8fdaf 100644
--- a/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
+++ b/media/filters/ffmpeg_aac_bitstream_converter_unittest.cc
@@ -34,7 +34,7 @@ class FFmpegAACBitstreamConverterTest : public testing::Test {
memset(&test_parameters_, 0, sizeof(AVCodecParameters));
test_parameters_.codec_id = AV_CODEC_ID_AAC;
test_parameters_.profile = FF_PROFILE_AAC_MAIN;
- test_parameters_.channels = 2;
+ test_parameters_.ch_layout.nb_channels = 2;
test_parameters_.extradata = extradata_header_;
test_parameters_.extradata_size = sizeof(extradata_header_);
}
diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc
index 6a56c675f7d..4615fdeb3fb 100644
--- a/media/filters/ffmpeg_audio_decoder.cc
+++ b/media/filters/ffmpeg_audio_decoder.cc
@@ -28,7 +28,7 @@ namespace media {
// Return the number of channels from the data in |frame|.
static inline int DetermineChannels(AVFrame* frame) {
- return frame->channels;
+ return frame->ch_layout.nb_channels;
}
// Called by FFmpeg's allocation routine to allocate a buffer. Uses
@@ -231,7 +231,7 @@ bool FFmpegAudioDecoder::OnNewFrame(const DecoderBuffer& buffer,
// Translate unsupported into discrete layouts for discrete configurations;
// ffmpeg does not have a labeled discrete configuration internally.
ChannelLayout channel_layout = ChannelLayoutToChromeChannelLayout(
- codec_context_->channel_layout, codec_context_->channels);
+ codec_context_->ch_layout.u.mask, codec_context_->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED &&
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE) {
channel_layout = CHANNEL_LAYOUT_DISCRETE;
@@ -348,11 +348,11 @@ bool FFmpegAudioDecoder::ConfigureDecoder(const AudioDecoderConfig& config) {
// Success!
av_sample_format_ = codec_context_->sample_fmt;
- if (codec_context_->channels != config.channels()) {
+ if (codec_context_->ch_layout.nb_channels != config.channels()) {
MEDIA_LOG(ERROR, media_log_)
<< "Audio configuration specified " << config.channels()
<< " channels, but FFmpeg thinks the file contains "
- << codec_context_->channels << " channels";
+ << codec_context_->ch_layout.nb_channels << " channels";
ReleaseFFmpegResources();
state_ = DecoderState::kUninitialized;
return false;
@@ -403,7 +403,7 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
if (frame->nb_samples <= 0)
return AVERROR(EINVAL);
- if (s->channels != channels) {
+ if (s->ch_layout.nb_channels != channels) {
DLOG(ERROR) << "AVCodecContext and AVFrame disagree on channel count.";
return AVERROR(EINVAL);
}
@@ -436,7 +436,8 @@ int FFmpegAudioDecoder::GetAudioBuffer(struct AVCodecContext* s,
ChannelLayout channel_layout =
config_.channel_layout() == CHANNEL_LAYOUT_DISCRETE
? CHANNEL_LAYOUT_DISCRETE
- : ChannelLayoutToChromeChannelLayout(s->channel_layout, s->channels);
+ : ChannelLayoutToChromeChannelLayout(s->ch_layout.u.mask,
+ s->ch_layout.nb_channels);
if (channel_layout == CHANNEL_LAYOUT_UNSUPPORTED) {
DLOG(ERROR) << "Unsupported channel layout.";
commit 62274859104bd828373ae406aa9309e610449ac5
Author: Ted Meyer <tmathmeyer@chromium.org>
Date: Fri Mar 22 19:56:55 2024 +0000
Replace deprecated use of AVCodecContext::reordered_opaque
We can use the AV_CODEC_FLAG_COPY_OPAQUE flag on the codec context
now to trigger timestamp propagation.
Bug: 330573128
Change-Id: I6bc57241a35ab5283742aad8d42acb4dc5e85858
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5384308
Commit-Queue: Ted (Chromium) Meyer <tmathmeyer@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1277051}
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
index bd75477feeabb..8a658a58caac5 100644
--- a/media/filters/ffmpeg_video_decoder.cc
+++ b/media/filters/ffmpeg_video_decoder.cc
@@ -134,7 +134,7 @@ bool FFmpegVideoDecoder::IsCodecSupported(VideoCodec codec) {
}
FFmpegVideoDecoder::FFmpegVideoDecoder(MediaLog* media_log)
- : media_log_(media_log) {
+ : media_log_(media_log), timestamp_map_(128) {
DVLOG(1) << __func__;
DETACH_FROM_SEQUENCE(sequence_checker_);
}
@@ -363,8 +363,10 @@ bool FFmpegVideoDecoder::FFmpegDecode(const DecoderBuffer& buffer) {
DCHECK(packet->data);
DCHECK_GT(packet->size, 0);
- // Let FFmpeg handle presentation timestamp reordering.
- codec_context_->reordered_opaque = buffer.timestamp().InMicroseconds();
+ const int64_t timestamp = buffer.timestamp().InMicroseconds();
+ const TimestampId timestamp_id = timestamp_id_generator_.GenerateNextId();
+ timestamp_map_.Put(std::make_pair(timestamp_id, timestamp));
+ packet->opaque = reinterpret_cast<void*>(timestamp_id.GetUnsafeValue());
}
FFmpegDecodingLoop::DecodeStatus decode_status = decoding_loop_->DecodePacket(
packet, base::BindRepeating(&FFmpegVideoDecoder::OnNewFrame,
@@ -423,7 +425,12 @@ bool FFmpegVideoDecoder::OnNewFrame(AVFrame* frame) {
}
gfx::Size natural_size = aspect_ratio.GetNaturalSize(visible_rect);
- const auto pts = base::Microseconds(frame->reordered_opaque);
+ const auto ts_id = TimestampId(reinterpret_cast<size_t>(frame->opaque));
+ const auto ts_lookup = timestamp_map_.Get(ts_id);
+ if (ts_lookup == timestamp_map_.end()) {
+ return false;
+ }
+ const auto pts = base::Microseconds(std::get<1>(*ts_lookup));
auto video_frame = VideoFrame::WrapExternalDataWithLayout(
opaque->layout, visible_rect, natural_size, opaque->data, opaque->size,
pts);
@@ -498,8 +505,10 @@ bool FFmpegVideoDecoder::ConfigureDecoder(const VideoDecoderConfig& config,
codec_context_->thread_count = GetFFmpegVideoDecoderThreadCount(config);
codec_context_->thread_type =
FF_THREAD_SLICE | (low_delay ? 0 : FF_THREAD_FRAME);
+
codec_context_->opaque = this;
codec_context_->get_buffer2 = GetVideoBufferImpl;
+ codec_context_->flags |= AV_CODEC_FLAG_COPY_OPAQUE;
if (base::FeatureList::IsEnabled(kFFmpegAllowLists)) {
// Note: FFmpeg will try to free this string, so we must duplicate it.
diff --git a/media/filters/ffmpeg_video_decoder.h b/media/filters/ffmpeg_video_decoder.h
index d02cb89c3ddf7..0a2de1c623fff 100644
--- a/media/filters/ffmpeg_video_decoder.h
+++ b/media/filters/ffmpeg_video_decoder.h
@@ -7,10 +7,12 @@
#include <memory>
+#include "base/containers/lru_cache.h"
#include "base/functional/callback.h"
#include "base/memory/raw_ptr.h"
#include "base/memory/scoped_refptr.h"
#include "base/sequence_checker.h"
+#include "base/types/id_type.h"
#include "media/base/supported_video_decoder_config.h"
#include "media/base/video_decoder.h"
#include "media/base/video_decoder_config.h"
@@ -87,6 +89,20 @@ class MEDIA_EXPORT FFmpegVideoDecoder : public VideoDecoder {
// FFmpeg structures owned by this object.
std::unique_ptr<AVCodecContext, ScopedPtrAVFreeContext> codec_context_;
+ // The gist here is that timestamps need to be 64 bits to store microsecond
+ // precision. A 32 bit integer would overflow at ~35 minutes at this level of
+ // precision. We can't cast the timestamp to the void ptr object used by the
+ // opaque field in ffmpeg then, because it would lose data on a 32 bit build.
+ // However, we don't actually have 2^31 timestamped frames in a single
+ // playback, so it's fine to use the 32 bit value as a key in a map which
+ // contains the actual timestamps. Additionally, we've in the past set 128
+ // outstanding frames for re-ordering as a limit for cross-thread decoding
+ // tasks, so we'll do that here too with the LRU cache.
+ using TimestampId = base::IdType<int64_t, size_t, 0>;
+
+ TimestampId::Generator timestamp_id_generator_;
+ base::LRUCache<TimestampId, int64_t> timestamp_map_;
+
VideoDecoderConfig config_;
scoped_refptr<FrameBufferPool> frame_pool_;
diff --git a/media/ffmpeg/ffmpeg_common.cc b/media/ffmpeg/ffmpeg_common.cc
index 3331581a6fee6..69539fd6594ec 100644
--- a/media/ffmpeg/ffmpeg_common.cc
+++ b/media/ffmpeg/ffmpeg_common.cc
@@ -404,7 +404,9 @@ bool AVCodecContextToAudioDecoderConfig(const AVCodecContext* codec_context,
// TODO(dalecurtis): Just use the profile from the codec context if ffmpeg
// ever starts supporting xHE-AAC.
- if (codec_context->profile == FF_PROFILE_UNKNOWN) {
+ constexpr uint8_t kXHEAAc = 41;
+ if (codec_context->profile == FF_PROFILE_UNKNOWN ||
+ codec_context->profile == kXHEAAc) {
// Errors aren't fatal here, so just drop any MediaLog messages.
NullMediaLog media_log;
mp4::AAC aac_parser;
diff --git a/media/ffmpeg/ffmpeg_regression_tests.cc b/media/ffmpeg/ffmpeg_regression_tests.cc
index 05dcb1cd62c75..866f446698947 100644
--- a/media/ffmpeg/ffmpeg_regression_tests.cc
+++ b/media/ffmpeg/ffmpeg_regression_tests.cc
@@ -90,16 +90,16 @@ FFMPEG_TEST_CASE(Cr62127,
PIPELINE_ERROR_DECODE,
PIPELINE_ERROR_DECODE);
FFMPEG_TEST_CASE(Cr93620, "security/93620.ogg", PIPELINE_OK, PIPELINE_OK);
-FFMPEG_TEST_CASE(Cr100492,
- "security/100492.webm",
- DECODER_ERROR_NOT_SUPPORTED,
- DECODER_ERROR_NOT_SUPPORTED);
+FFMPEG_TEST_CASE(Cr100492, "security/100492.webm", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr100543, "security/100543.webm", PIPELINE_OK, PIPELINE_OK);
FFMPEG_TEST_CASE(Cr101458,
"security/101458.webm",
PIPELINE_ERROR_DECODE,
PIPELINE_ERROR_DECODE);
-FFMPEG_TEST_CASE(Cr108416, "security/108416.webm", PIPELINE_OK, PIPELINE_OK);
+FFMPEG_TEST_CASE(Cr108416,
+ "security/108416.webm",
+ PIPELINE_ERROR_DECODE,
+ PIPELINE_ERROR_DECODE);
FFMPEG_TEST_CASE(Cr110849,
"security/110849.mkv",
DEMUXER_ERROR_COULD_NOT_OPEN,
@@ -154,7 +154,10 @@ FFMPEG_TEST_CASE(Cr234630b,
"security/234630b.mov",
DEMUXER_ERROR_NO_SUPPORTED_STREAMS,
DEMUXER_ERROR_NO_SUPPORTED_STREAMS);
-FFMPEG_TEST_CASE(Cr242786, "security/242786.webm", PIPELINE_OK, PIPELINE_OK);
+FFMPEG_TEST_CASE(Cr242786,
+ "security/242786.webm",
+ PIPELINE_OK,
+ PIPELINE_ERROR_DECODE);
// Test for out-of-bounds access with slightly corrupt file (detection logic
// thinks it's a MONO file, but actually contains STEREO audio).
FFMPEG_TEST_CASE(Cr275590,
@@ -372,8 +375,8 @@ FFMPEG_TEST_CASE(WEBM_2,
DEMUXER_ERROR_NO_SUPPORTED_STREAMS);
FFMPEG_TEST_CASE(WEBM_4,
"security/out.webm.68798.1929",
- DECODER_ERROR_NOT_SUPPORTED,
- DECODER_ERROR_NOT_SUPPORTED);
+ PIPELINE_OK,
+ PIPELINE_OK);
FFMPEG_TEST_CASE(WEBM_5, "frame_size_change.webm", PIPELINE_OK, PIPELINE_OK);
// General MKV test cases.
diff --git a/media/filters/audio_decoder_unittest.cc b/media/filters/audio_decoder_unittest.cc
index a31823cfe3b58..e43f408b79e5c 100644
--- a/media/filters/audio_decoder_unittest.cc
+++ b/media/filters/audio_decoder_unittest.cc
@@ -484,7 +484,7 @@ constexpr TestParams kXheAacTestParams[] = {
}},
0,
29400,
- CHANNEL_LAYOUT_MONO,
+ CHANNEL_LAYOUT_UNSUPPORTED,
AudioCodecProfile::kXHE_AAC},
#endif
{AudioCodec::kAAC,
diff --git a/media/filters/audio_file_reader_unittest.cc b/media/filters/audio_file_reader_unittest.cc
index c0cc568d63019..edf9470f2f8b3 100644
--- a/media/filters/audio_file_reader_unittest.cc
+++ b/media/filters/audio_file_reader_unittest.cc
@@ -62,15 +62,14 @@ class AudioFileReaderTest : public testing::Test {
// Verify packets are consistent across demuxer runs. Reads the first few
// packets and then seeks back to the start timestamp and verifies that the
// hashes match on the packets just read.
- void VerifyPackets() {
- const int kReads = 3;
+ void VerifyPackets(int packet_reads) {
const int kTestPasses = 2;
AVPacket packet;
base::TimeDelta start_timestamp;
std::vector<std::string> packet_md5_hashes_;
for (int i = 0; i < kTestPasses; ++i) {
- for (int j = 0; j < kReads; ++j) {
+ for (int j = 0; j < packet_reads; ++j) {
ASSERT_TRUE(reader_->ReadPacketForTesting(&packet));
// On the first pass save the MD5 hash of each packet, on subsequent
@@ -99,7 +98,8 @@ class AudioFileReaderTest : public testing::Test {
int sample_rate,
base::TimeDelta duration,
int frames,
- int expected_frames) {
+ int expected_frames,
+ int packet_reads = 3) {
Initialize(fn);
ASSERT_TRUE(reader_->Open());
EXPECT_EQ(channels, reader_->channels());
@@ -113,7 +113,7 @@ class AudioFileReaderTest : public testing::Test {
EXPECT_EQ(reader_->HasKnownDuration(), false);
}
if (!packet_verification_disabled_)
- ASSERT_NO_FATAL_FAILURE(VerifyPackets());
+ ASSERT_NO_FATAL_FAILURE(VerifyPackets(packet_reads));
ReadAndVerify(hash, expected_frames);
}
@@ -220,7 +220,7 @@ TEST_F(AudioFileReaderTest, AAC_ADTS) {
}
TEST_F(AudioFileReaderTest, MidStreamConfigChangesFail) {
- RunTestFailingDecode("midstream_config_change.mp3", 42624);
+ RunTestFailingDecode("midstream_config_change.mp3", 0);
}
#endif
@@ -230,7 +230,7 @@ TEST_F(AudioFileReaderTest, VorbisInvalidChannelLayout) {
TEST_F(AudioFileReaderTest, WaveValidFourChannelLayout) {
RunTest("4ch.wav", "131.71,38.02,130.31,44.89,135.98,42.52,", 4, 44100,
- base::Microseconds(100001), 4411, 4410);
+ base::Microseconds(100001), 4411, 4410, /*packet_reads=*/2);
}
TEST_F(AudioFileReaderTest, ReadPartialMP3) {
diff --git a/media/filters/ffmpeg_video_decoder.cc b/media/filters/ffmpeg_video_decoder.cc
index 8a658a58caac5..9d6ed8aeb5c48 100644
--- a/media/filters/ffmpeg_video_decoder.cc
+++ b/media/filters/ffmpeg_video_decoder.cc
@@ -213,10 +213,6 @@ int FFmpegVideoDecoder::GetVideoBuffer(struct AVCodecContext* codec_context,
frame->linesize[plane] = layout->planes()[plane].stride;
}
- // This seems unsafe, given threaded decoding. However, `reordered_opaque` is
- // also going away upstream, so we need a whole new mechanism either way.
- frame->reordered_opaque = codec_context->reordered_opaque;
-
// This will be freed by `ReleaseVideoBufferImpl`.
auto* opaque = new OpaqueData(fb_priv, frame_pool_, data, allocation_size,
std::move(*layout));
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc
index e1be5aa9a5b13..951c003956fb5 100644
--- a/media/filters/audio_file_reader.cc
+++ b/media/filters/audio_file_reader.cc
@@ -243,18 +243,10 @@ bool AudioFileReader::OnNewFrame(
// silence from being output. In the case where we are also discarding some
// portion of the packet (as indicated by a negative pts), we further want to
// adjust the duration downward by however much exists before zero.
-#if BUILDFLAG(USE_SYSTEM_FFMPEG)
- if (audio_codec_ == AudioCodec::kAAC && frame->pkt_duration) {
-#else
if (audio_codec_ == AudioCodec::kAAC && frame->duration) {
-#endif // BUILDFLAG(USE_SYSTEM_FFMPEG)
const base::TimeDelta pkt_duration = ConvertFromTimeBase(
glue_->format_context()->streams[stream_index_]->time_base,
-#if BUILDFLAG(USE_SYSTEM_FFMPEG)
- frame->pkt_duration + std::min(static_cast<int64_t>(0), frame->pts));
-#else
frame->duration + std::min(static_cast<int64_t>(0), frame->pts));
-#endif // BUILDFLAG(USE_SYSTEM_FFMPEG)
const base::TimeDelta frame_duration =
base::Seconds(frames_read / static_cast<double>(sample_rate_));
diff --git a/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc b/chromium/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
index c6446c2..805b95b 100644
--- a/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
+++ b/third_party/webrtc/modules/video_coding/codecs/h264/h264_decoder_impl.cc
@@ -233,7 +233,6 @@
int total_size = y_size + 2 * uv_size;
av_frame->format = context->pix_fmt;
- av_frame->reordered_opaque = context->reordered_opaque;
// Create a VideoFrame object, to keep a reference to the buffer.
// TODO(nisse): The VideoFrame's timestamp and rotation info is not used.
@@ -381,8 +380,6 @@
return WEBRTC_VIDEO_CODEC_ERROR;
}
packet->size = static_cast<int>(input_image.size());
- int64_t frame_timestamp_us = input_image.ntp_time_ms_ * 1000; // ms -> μs
- av_context_->reordered_opaque = frame_timestamp_us;
int result = avcodec_send_packet(av_context_.get(), packet.get());
@@ -399,10 +396,6 @@
return WEBRTC_VIDEO_CODEC_ERROR;
}
- // We don't expect reordering. Decoded frame timestamp should match
- // the input one.
- RTC_DCHECK_EQ(av_frame_->reordered_opaque, frame_timestamp_us);
-
// TODO(sakal): Maybe it is possible to get QP directly from FFmpeg.
h264_bitstream_parser_.ParseBitstream(input_image);
absl::optional<int> qp = h264_bitstream_parser_.GetLastSliceQp();

View file

@ -32,7 +32,7 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=qt6
VERSION=$(ls qt-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)
BUILD=${BUILD:-4}
BUILD=${BUILD:-1}
PKGSRC=$(echo $VERSION | cut -d - -f 1)
PKGVER=$(echo $VERSION | tr - _)
@ -153,20 +153,9 @@ pushd qtwebengine
cat $CWD/patches/qtwebengine-6.7.0-displaykey-header.patch | patch -p1 --verbose || exit 1
popd
# Fix build with ffmpeg-7:
pushd qtwebengine/src/3rdparty/chromium
cat $CWD/patches/qtwebengine-ffmpeg-7.patch | patch -p1 --verbose || exit 1
popd
# Fix build with llvm19:
pushd qttools
cat $CWD/patches/4a368a06afa5929d8674d2e94c2d7cbd6ad85d4e.patch | patch -p1 --verbose || exit 1
cat $CWD/patches/687fc1601863ae7a67897bc3590b33bd3bdcc3bc.patch | patch -p1 --verbose || exit 1
popd
# [PATCH] ListView: fix countChanged not being emitted in certain cases.
# [PATCH] QQuickItemView: fix crash with zero-size SwipeView that uses Repeater
pushd qtdeclarative
cat $CWD/patches/0a1d8fb26d1e89c82a0d35dd728d7e928a94d197.patch | patch -p1 --verbose || exit 1
cat $CWD/patches/861a7921ed7833a90f77b5fca436c789a4f9517c.patch | patch -p1 --verbose || exit 1
popd
# Previously we didn't have a protobuf package in Slackware.
@ -224,6 +213,8 @@ cmake -S $(pwd) -B build-${PKGNAM} \
-DFEATURE_webengine_system_ffmpeg="${SYSTEM_FFMPEG}" \
-DFEATURE_webengine_system_pulseaudio="${USE_PULSEAUDIO}" \
-DFEATURE_webengine_webrtc_pipewire=ON \
-DFEATURE_quick3dxr_openxr:BOOL=OFF \
-DFEATURE_system_openxr:BOOL=OFF \
$PROTOBUF \
-DQT_BUILD_EXAMPLES=OFF || exit 1
#cmake --build build-${PKGNAM} --parallel $NINJAJOBS || cmake --build build-${PKGNAM} || exit 1

View file

@ -1,6 +1,8 @@
#!/bin/csh
# Print a fortune cookie for login shells:
if ( { tty --silent } ) then >& /dev/null
# Only output a fortune if $HOME/.hushlogin does not exist,
# and this is an interactive shell:
if ( ( ! -e $HOME/.hushlogin ) && { tty --silent } ) then >& /dev/null
echo "" ; fortune fortunes fortunes2 linuxcookie ; echo ""
endif

View file

@ -1,11 +1,14 @@
#!/bin/sh
# Print a fortune cookie for interactive shells:
# Print a fortune cookie for login shells:
case $- in
*i* ) # We're interactive
# Only output a fortune if $HOME/.hushlogin does not exist:
if [ ! -e $HOME/.hushlogin ]; then
# Only output a fortune on interactive shells:
case $- in
*i* ) # We're interactive
echo
fortune fortunes fortunes2 linuxcookie
echo
;;
esac
esac
fi

View file

@ -24,12 +24,12 @@ cd $(dirname $0) ; CWD=$(pwd)
PKGNAM=bsd-games
VERSION=${VERSION:-2.17}
BUILD=${BUILD:-5}
BUILD=${BUILD:-6}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) export ARCH=i586 ;;
i?86) export ARCH=i686 ;;
arm*) export ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) export ARCH=$( uname -m ) ;;